diff --git a/ChangeLog b/ChangeLog index 257ce0432ae1c846e194f101070b4cbeb9917acb..3c7607deb604a9287a53c1680ec8af1c86d4fc4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,11 +9,68 @@ * * Contents: log of changes made to the SExtractor source * -* Last modify: 14/07/2006 +* Last modify: 17/01/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ +------------------------------------------------------------------------ +r380 | bertin | 2007-01-17 17:52:49 +0100 (Wed, 17 Jan 2007) | 3 lines + +Added options for compiling with icc (Intel compiler). +Pushed version number to 2.5.1. + +------------------------------------------------------------------------ +r365 | bertin | 2006-11-09 18:39:27 +0100 (Thu, 09 Nov 2006) | 2 lines + +Undo previous changes (wrong repository!!). + +------------------------------------------------------------------------ +r364 | bertin | 2006-11-09 17:58:18 +0100 (Thu, 09 Nov 2006) | 2 lines + +Added lmfit routines by Joachim Wuttke in the form of a library. + +------------------------------------------------------------------------ +r358 | bertin | 2006-10-29 21:04:25 +0100 (Sun, 29 Oct 2006) | 5 lines + +Updated FITS library to the latest version. +Fixed some UCDs in output parameters. +Applied patch by Sergio Pascual for configuring the path to the XSL file. +Updated the BUGS section. + +------------------------------------------------------------------------ +r327 | bertin | 2006-08-16 18:06:49 +0200 (Wed, 16 Aug 2006) | 2 lines + +Discard NaN pixels in non-weighted background measurements (as in SWarp). + +------------------------------------------------------------------------ +r305 | baillard | 2006-07-19 15:28:15 +0200 (Wed, 19 Jul 2006) | 2 lines + +Change name + +------------------------------------------------------------------------ +r303 | baillard | 2006-07-19 15:05:48 +0200 (Wed, 19 Jul 2006) | 2 lines + +Change names + +------------------------------------------------------------------------ +r295 | baillard | 2006-07-18 13:54:43 +0200 (Tue, 18 Jul 2006) | 2 lines + +Move sextractor to public repository + +------------------------------------------------------------------------ +r290 | bertin | 2006-07-17 19:56:12 +0200 (Mon, 17 Jul 2006) | 4 lines + +Doc: keyword list updated. +ChangeLog updated. +Back-propagated destructive byte-swapping bugfix in FITS library. + +------------------------------------------------------------------------ +r289 | bertin | 2006-07-14 20:25:09 +0200 (Fri, 14 Jul 2006) | 3 lines + +Removed warnings in psf.c (P.Delorme's edits) using brute-force. +Switched ChangeLog to SVN format. + ------------------------------------------------------------------------ r288 | bertin | 2006-07-14 20:13:39 +0200 (Fri, 14 Jul 2006) | 8 lines diff --git a/HISTORY b/HISTORY index 065cf302a9fd0528ce0532b7064522ae4978b72a..321526470bf4eb8237ccb5767e2303cede56e64c 100644 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,7 @@ +Dec 07: 2.7 + - FITS I/O and astrometry layers updated (same as SWarp and SCAMP) + - Support for model-fitting + Jul 06: 2.5 - Support for VOTable catalogs and metadata in output. diff --git a/Makefile.am b/Makefile.am index 9a8cee9b6798cca078c72a0b8c36cfc295a77fd6..f1f8d05bc05cb5a4a59614cf9272218363177e45 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,29 +1,68 @@ # Main Makefile for SExtractor -# Copyright (C) 2002-2005 Emmanuel Bertin. +# Copyright (C) 2002-2008 Emmanuel Bertin. AUTOMAKE_OPTIONS = foreign no-dependencies -SUBDIRS = man src +SUBDIRS = man src tests +dist_pkgdata_DATA = xsl/sextractor.xsl EXTRA_DIST = config doc AUTHORS BUGS ChangeLog COPYING HISTORY \ INSTALL README THANKS \ - acx_prog_cc_optim.m4 -RPM_ROOTDIR = /usr/src/RPM + acx_atlas.m4 acx_prog_cc_optim.m4 \ + acx_urbi_resolve_dir.m4 +RPM_ROOTDIR = `rpmbuild --nobuild -E %_topdir` RPM_SRCDIR = $(RPM_ROOTDIR)/SOURCES +dist-hook: + rm -rf `find $(distdir) -name .svn` + rpm: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - rpmbuild -ba --clean $(PACKAGE_NAME).spec $(PACKAGE_NAME)-mp.spec + rpmbuild -ba --clean --nodeps $(PACKAGE_NAME).spec + +rpm-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + USE_ICC="1" rpmbuild -ba --clean --nodeps $(PACKAGE_NAME).spec rpm-opteron: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - GCCFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ - -march=opteron" rpmbuild -ba --target=x86_64 \ - --clean $(PACKAGE_NAME).spec + TPXCC="gcc" TPXFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ + -march=opteron" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-lfftw3 -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=x86_64 --clean $(PACKAGE_NAME).spec rpm-athlon: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - GCCFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall -m32 \ - -march=i686 -msse -mfpmath=sse -mtune=athlon" rpmbuild \ - -ba --target=i686 --clean $(PACKAGE_NAME).spec + TPXCC="gcc" TPXFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ + -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-L/usr/lib/ -lm -L/usr/local/lib/ -lfftw3 \ + -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=i686 --clean $(PACKAGE_NAME).spec + +rpm-opteron-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + TPXCC="icc" TPXFLAGS="-O3 -g -axWPT -ip -unroll" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-lfftw3 -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=x86_64 --clean --nodeps $(PACKAGE_NAME).spec + +rpm-athlon-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + TPXCC="icc32" TPXFLAGS="-O3 -g -axKWNPT -ip -unroll" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-L/usr/local/lib/ -L/usr/lib/ -lfftw3 \ + -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=i686 --clean $(PACKAGE_NAME).spec + athlon: - $(MAKE) CFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" LIBS="-lm" + $(MAKE) CFLAGS="-O -g -pthread -funroll-loops -fomit-frame-pointer \ + -Wall -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" \ + LIBS="-L/usr/lib/ -lpthread -lm -L/usr/local/lib/ \ + -lfftw3 -lfftw3_threads \ + -llapack -lcblas -latlas -lm" + +pentium-icc: + $(MAKE) CC="icc32" CFLAGS="-O3 -axKWNPT -ip -unroll -pthread" \ + LIBS="-L/usr/lib/ -lpthread -lm -L/usr/local/lib/ -llapack \ + -lcblas -latlas -lfftw3 -lfftw3_threads" -debug: - $(MAKE) CFLAGS="-O3 -funroll-loops -fomit-frame-pointer -Wall -m32 -g" +icc: + $(MAKE) CC="icc" CFLAGS="-O3 -g -axWPT -ip -unroll -pthread" diff --git a/Makefile.in b/Makefile.in index 71e14656d4acfd494bdc7e63a7f9342a7c771035..d85ef5e7fd14a2387cbcac788f1ed1b9a838ff2a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -13,15 +13,12 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -33,34 +30,51 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/sextractor-tpx.spec.in $(srcdir)/sextractor.spec.in \ +DIST_COMMON = README $(am__configure_deps) $(dist_pkgdata_DATA) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in $(srcdir)/sextractor.spec.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL \ THANKS autoconf/config.guess autoconf/config.sub \ autoconf/depcomp autoconf/install-sh autoconf/ltmain.sh \ autoconf/missing autoconf/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acx_prog_cc_optim.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno + configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = sextractor.spec sextractor-tpx.spec +CONFIG_CLEAN_FILES = sextractor.spec depcomp = am__depfiles_maybe = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-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 uninstall-recursive +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 = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(pkgdatadir)" +dist_pkgdataDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_pkgdata_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -76,9 +90,12 @@ GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -88,16 +105,27 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATE2 = @DATE2@ DATE3 = @DATE3@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -105,8 +133,11 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGER = @PACKAGER@ @@ -116,51 +147,78 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ +build = @build@ build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ +host = @host@ host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Main Makefile for SExtractor -# Copyright (C) 2002-2005 Emmanuel Bertin. +# Copyright (C) 2002-2008 Emmanuel Bertin. AUTOMAKE_OPTIONS = foreign no-dependencies -SUBDIRS = man src +SUBDIRS = man src tests +dist_pkgdata_DATA = xsl/sextractor.xsl EXTRA_DIST = config doc AUTHORS BUGS ChangeLog COPYING HISTORY \ INSTALL README THANKS \ - acx_prog_cc_optim.m4 + acx_atlas.m4 acx_prog_cc_optim.m4 \ + acx_urbi_resolve_dir.m4 -RPM_ROOTDIR = /usr/src/RPM +RPM_ROOTDIR = `rpmbuild --nobuild -E %_topdir` RPM_SRCDIR = $(RPM_ROOTDIR)/SOURCES all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -203,7 +261,7 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @@ -218,9 +276,32 @@ distclean-hdr: -rm -f config.h stamp-h1 sextractor.spec: $(top_builddir)/config.status $(srcdir)/sextractor.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ -sextractor-tpx.spec: $(top_builddir)/config.status $(srcdir)/sextractor-tpx.spec.in - cd $(top_builddir) && $(SHELL) ./config.status $@ -uninstall-info-am: + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +install-dist_pkgdataDATA: $(dist_pkgdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" + @list='$(dist_pkgdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ + $(dist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ + done + +uninstall-dist_pkgdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_pkgdata_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ + done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -253,8 +334,7 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: +$(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -298,8 +378,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -324,8 +404,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -335,13 +415,12 @@ ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique @@ -356,24 +435,22 @@ distclean-tags: distdir: $(DISTFILES) $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/autoconf $(distdir)/man - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + 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; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -387,7 +464,7 @@ distdir: $(DISTFILES) list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ @@ -395,14 +472,19 @@ distdir: $(DISTFILES) $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + ! -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 @@ -412,6 +494,10 @@ dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) @@ -438,6 +524,8 @@ distcheck: dist GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ @@ -477,7 +565,7 @@ distcheck: dist $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ @@ -498,9 +586,12 @@ distcleancheck: distclean exit 1; } >&2 check-am: all-am check: check-recursive -all-am: Makefile config.h +all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: + for dir in "$(DESTDIR)$(pkgdatadir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive @@ -527,12 +618,13 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-generic mostlyclean-am +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-tags +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags dvi: dvi-recursive @@ -544,14 +636,22 @@ info: info-recursive info-am: -install-data-am: +install-data-am: install-dist_pkgdataDATA + +install-dvi: install-dvi-recursive install-exec-am: +install-html: install-html-recursive + install-info: install-info-recursive install-man: +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -562,7 +662,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive @@ -572,45 +672,86 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-recursive ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ - dist-tarZ dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-recursive distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ - uninstall-info-am +uninstall-am: uninstall-dist_pkgdataDATA + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-dist_pkgdataDATA 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-recursive uninstall uninstall-am \ + uninstall-dist_pkgdataDATA + +dist-hook: + rm -rf `find $(distdir) -name .svn` rpm: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - rpmbuild -ba --clean $(PACKAGE_NAME).spec $(PACKAGE_NAME)-mp.spec + rpmbuild -ba --clean --nodeps $(PACKAGE_NAME).spec + +rpm-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + USE_ICC="1" rpmbuild -ba --clean --nodeps $(PACKAGE_NAME).spec rpm-opteron: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - GCCFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ - -march=opteron" rpmbuild -ba --target=x86_64 \ - --clean $(PACKAGE_NAME).spec + TPXCC="gcc" TPXFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ + -march=opteron" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-lfftw3 -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=x86_64 --clean $(PACKAGE_NAME).spec rpm-athlon: dist cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) - GCCFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall -m32 \ - -march=i686 -msse -mfpmath=sse -mtune=athlon" rpmbuild \ - -ba --target=i686 --clean $(PACKAGE_NAME).spec -athlon: - $(MAKE) CFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" LIBS="-lm" + TPXCC="gcc" TPXFLAGS="-O -g -funroll-loops -fomit-frame-pointer -Wall \ + -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-L/usr/lib/ -lm -L/usr/local/lib/ -lfftw3 \ + -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=i686 --clean $(PACKAGE_NAME).spec + +rpm-opteron-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + TPXCC="icc" TPXFLAGS="-O3 -g -axWPT -ip -unroll" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-lfftw3 -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=x86_64 --clean --nodeps $(PACKAGE_NAME).spec -debug: - $(MAKE) CFLAGS="-O3 -funroll-loops -fomit-frame-pointer -Wall -m32 -g" +rpm-athlon-icc: dist + cp -f $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_SRCDIR) + TPXCC="icc32" TPXFLAGS="-O3 -g -axKWNPT -ip -unroll" \ + TPXLDFLAGS="-static -shared-libgcc" \ + TPXLIBS="-L/usr/local/lib/ -L/usr/lib/ -lfftw3 \ + -llapack -lcblas -latlas -lm" \ + rpmbuild -ba --target=i686 --clean $(PACKAGE_NAME).spec + +athlon: + $(MAKE) CFLAGS="-O -g -pthread -funroll-loops -fomit-frame-pointer \ + -Wall -m32 -march=i686 -msse -mfpmath=sse -mtune=athlon" \ + LIBS="-L/usr/lib/ -lpthread -lm -L/usr/local/lib/ \ + -lfftw3 -lfftw3_threads \ + -llapack -lcblas -latlas -lm" + +pentium-icc: + $(MAKE) CC="icc32" CFLAGS="-O3 -axKWNPT -ip -unroll -pthread" \ + LIBS="-L/usr/lib/ -lpthread -lm -L/usr/local/lib/ -llapack \ + -lcblas -latlas -lfftw3 -lfftw3_threads" + +icc: + $(MAKE) CC="icc" CFLAGS="-O3 -g -axWPT -ip -unroll -pthread" # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/README b/README index 749f37dc3c6b20a3df7e167a18b4f0acef023e39..6d7cb02c5b81d54d48eae7b987131c5ec85b5dec 100644 --- a/README +++ b/README @@ -8,25 +8,10 @@ input image is a MEF. - The (main) default config file can be dumped by typing "sex -d". Secondary configuration files like default.param are still needed, though. -In case of problems, questions or suggestions related to the software, -please don't hesitate to send a mail (preferably in english) to the -official mailing list: -sextractor@iap.fr -These questions and answers to them are posted on the Web at: -http://terapix.iap.fr/soft/sextractor/ -In any case you can still reach me at bertin@iap.fr. I cannot garantee -that I will reply immediately, but I will try for sure to provide -an answer. ------------ -Notes: -- A version "sextractor-2.3.1_lanl" of SExtractor is available on -SourceForge thanks to Mark Galassi and Dan Starr: -http://sourceforge.net/projects/sextractor/ -It is a reconditioned version of SExtractor 2.2.2. The LanL and the TERAPIX -(present one) versions follow two different development branches. -- Benne Holwerda has written a SExtractor handbook and a -GUI which can be found in the doc/ subdirectory or at -http://www-int.stsci.edu/~holwerda/OldHomepage/se.html - +The SExtractor homepage is +http://terapix.iap.fr/soft/sextractor +In case of problems, questions or suggestions related to the software, please +refer to the TERAPIX forum: +http://terapix.iap.fr/forum/ Emmanuel Bertin. diff --git a/THANKS b/THANKS index d8c10f011d72a9411a1027edb91e986a2775ba7a..929178ab1240171cd66c7f088f873942eea899b2 100644 --- a/THANKS +++ b/THANKS @@ -1,21 +1,40 @@ Stephane Arnouts Suggestions and extensive testing +Pierre Astier + Suggestions and bug fixes +Eric Aubourg + Hints about how to optimize a C code +Anthony Baillard + Testing of model-fitting Mark Calabretta SExtractor makes use of his nice WCS library -Gerard Tissier - Preliminary implementation of the VOTable output -Jean-Paul Kneib -Ian Smail - Suggestions and spreading the software back in the early days! Pascal Fouque Suggestions and testing -Eric Aubourg - Hints about how to optimize a C code -Ville Laurikari - For his VL_PROG_CC_WARNINGS (modified to ACX_PROG_CC_OPTIM) +Delphine Hardin + Suggestions and bug fixes Benne Holwerda For making his cookbook available -ESO - Financial support +Jean-Paul Kneib , Ian Smail + Suggestions and spreading the software back in the early days! +Ville Laurikari + For his VL_PROG_CC_WARNINGS (modified to ACX_PROG_CC_OPTIM) +Valerie de Lapparent + Suggestions and testing of model-fitting +Chiara Marmo + For providing the VOTable to HTML XSLT filter and testing. +Joe Mohr + Suggestions and testing +Gerard Tissier + Preliminary implementation of the VOTable output +Joachim Wuttke + For his implementation of the Levenberg-Marquardt algorithm + +Institut d'Astrophysique de Paris +University of Leiden +European Southern Observatory +University of Illinois + Financial and technical support + Too many people to list Help in discovering bugs or bringing suggestions + diff --git a/aclocal.m4 b/aclocal.m4 index 0c32a668713e19a9097d8ba1d4507207af06aa90..0c68dc8157c14874c82c588d9fc5bdcfe5ec909f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008 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. @@ -11,7 +11,6583 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(AC_AUTOCONF_VERSION, [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +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'.])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 51 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='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 avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])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_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_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. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_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 conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# 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. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|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*) + libsuff=64 + 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" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + 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_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_REQUIRE([LT_AC_PROG_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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# 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*) + # 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; + ;; + + 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; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + 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"; 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 + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + 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 +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +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_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + 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 + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && 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_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + 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_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_AC_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 .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_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 +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[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 +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +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" +m4_if($1,[],[ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then + # 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 -e 's/;/ /g'` + else + lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`echo $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${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 + 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 + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/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 + 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=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + 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=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognize shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_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="ifelse([$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 <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$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 +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognize a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_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 + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /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 + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +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 + ;; + +gnu*) + 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]) 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 Linux ELF. +linux* | k*bsd*-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=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + 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 + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +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 +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-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_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[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_AC_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_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which 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 "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_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(int, char *[[]]) { return(0); }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_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_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++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_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_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_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' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_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; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_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_AC_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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux* | k*bsd*-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_AC_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_AC_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; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_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' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + osf3*) + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_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 can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # 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. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +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 +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([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. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +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... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + # + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_AC_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac +])# AC_LIBTOOL_POSTDEP_PREDEP + +# AC_LIBTOOL_LANG_F77_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) +AC_DEFUN([_LT_AC_LANG_F77_CONFIG], +[AC_REQUIRE([AC_PROG_F77]) +AC_LANG_PUSH(Fortran 77) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_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_AC_TAGVAR(objext, $1)=$objext + +# 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_AC_SYS_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" +CC=${F77-"f77"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +_LT_AC_TAGVAR(GCC, $1)="$G77" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_F77_CONFIG + + +# AC_LIBTOOL_LANG_GCJ_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) +AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], +[AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_AC_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_AC_SYS_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" +CC=${GCJ-"gcj"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_GCJ_CONFIG + + +# AC_LIBTOOL_LANG_RC_CONFIG +# ------------------------- +# Ensure that the configuration vars for the Windows resource compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) +AC_DEFUN([_LT_AC_LANG_RC_CONFIG], +[AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_AC_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_AC_SYS_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" +CC=${RC-"windres"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_RC_CONFIG + + +# AC_LIBTOOL_CONFIG([TAGNAME]) +# ---------------------------- +# If TAGNAME is not passed, then 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 +# TAGNAME from the matching tagged config vars. +AC_DEFUN([AC_LIBTOOL_CONFIG], +[# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + _LT_AC_TAGVAR(compiler, $1) \ + _LT_AC_TAGVAR(CC, $1) \ + _LT_AC_TAGVAR(LD, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ + _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ + _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ + _LT_AC_TAGVAR(old_archive_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ + _LT_AC_TAGVAR(predep_objects, $1) \ + _LT_AC_TAGVAR(postdep_objects, $1) \ + _LT_AC_TAGVAR(predeps, $1) \ + _LT_AC_TAGVAR(postdeps, $1) \ + _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ + _LT_AC_TAGVAR(archive_cmds, $1) \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ + _LT_AC_TAGVAR(postinstall_cmds, $1) \ + _LT_AC_TAGVAR(postuninstall_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ + _LT_AC_TAGVAR(allow_undefined_flag, $1) \ + _LT_AC_TAGVAR(no_undefined_flag, $1) \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ + _LT_AC_TAGVAR(hardcode_automatic, $1) \ + _LT_AC_TAGVAR(module_cmds, $1) \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) \ + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ + _LT_AC_TAGVAR(fix_srcfile_path, $1) \ + _LT_AC_TAGVAR(exclude_expsyms, $1) \ + _LT_AC_TAGVAR(include_expsyms, $1); do + + case $var in + _LT_AC_TAGVAR(old_archive_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ + _LT_AC_TAGVAR(archive_cmds, $1) | \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\[$]0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` + ;; + esac + +ifelse([$1], [], + [cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + AC_MSG_NOTICE([creating $ofile])], + [cfgfile="$ofile"]) + + cat <<__EOF__ >> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed 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//" + +# 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # 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" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([LT_AC_PROG_SED]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output 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]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + 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 + +# 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 + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, 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. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" + CFLAGS="$lt_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 -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +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 +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $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_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # 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*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_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 + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + 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_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[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 + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_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_AC_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_AC_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* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_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 + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $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_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + 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_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_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_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_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~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_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' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) + $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_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + + +# Cheap backport of AS_EXECUTABLE_P and required macros +# from Autoconf 2.59; we should not use $as_executable_p directly. + +# _AS_TEST_PREPARE +# ---------------- +m4_ifndef([_AS_TEST_PREPARE], +[m4_defun([_AS_TEST_PREPARE], +[if test -x / >/dev/null 2>&1; then + as_executable_p='test -x' +else + as_executable_p='test -f' +fi +])])# _AS_TEST_PREPARE + +# AS_EXECUTABLE_P +# --------------- +# Check whether a file is executable. +m4_ifndef([AS_EXECUTABLE_P], +[m4_defun([AS_EXECUTABLE_P], +[AS_REQUIRE([_AS_TEST_PREPARE])dnl +$as_executable_p $1[]dnl +])])# AS_EXECUTABLE_P + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -21,14 +6597,31 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +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.10.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.6])]) +[AM_AUTOMAKE_VERSION([1.10.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -108,14 +6701,14 @@ AU_DEFUN([fp_PROG_CC_STDC]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # 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. -# serial 7 +# serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -124,8 +6717,10 @@ AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' @@ -139,15 +6734,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # 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. -# serial 8 +# serial 9 # 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, @@ -175,6 +6769,7 @@ AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" 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=]) @@ -240,6 +6835,7 @@ AC_CACHE_CHECK([dependency style of $depcc], depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} 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 sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then @@ -292,7 +6888,8 @@ if test "x$enable_dependency_tracking" != xno; then AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -317,8 +6914,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # 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. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + # 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 @@ -377,14 +6975,14 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 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. -# serial 12 +# serial 13 # 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. @@ -401,16 +6999,20 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # 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.58])dnl +[AC_PREREQ([2.60])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 -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +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 @@ -430,6 +7032,9 @@ m4_ifval([$2], 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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [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 @@ -465,6 +7070,10 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) @@ -478,16 +7087,17 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX], # 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 - $1 | $1:* ) + $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # @@ -500,7 +7110,7 @@ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. @@ -578,14 +7188,14 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # 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. -# serial 4 +# serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -601,6 +7211,7 @@ AC_SUBST($1)]) # If it does, 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 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then @@ -611,7 +7222,7 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -619,60 +7230,23 @@ fi # AM_PROG_MKDIR_P # --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) +# Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) # Helper functions for option handling. -*- Autoconf -*- @@ -784,9 +7358,21 @@ 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="\${SHELL} \$(install_sh) -c -s" +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Copyright (C) 2006 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]) + # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. diff --git a/acx_atlas.m4 b/acx_atlas.m4 new file mode 100644 index 0000000000000000000000000000000000000000..4e4b9cfbae1b6383278a88de56edc4b398957d53 --- /dev/null +++ b/acx_atlas.m4 @@ -0,0 +1,218 @@ +dnl @synopsis ACX_ATLAS([ATLAS_LIBDIR, ATLAS_INCDIR, ATLAS_PFLAG, [ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]]) +dnl This macro figures out if the ATLAS library and header files +dnl are installed. +dnl You may wish to use these variables in your default LIBS: +dnl +dnl LIBS="$ATLAS_LIBS $LIBS" +dnl +dnl ACTION-IF-FOUND is a list of shell commands to run if BLAS/LAPACK +dnl is found (HAVE_ATLAS is defined first), and ACTION-IF-NOT-FOUND +dnl is a list of commands to run it if it is not found. +dnl +dnl @version $Id: acx_atlas.m4,v 1.0 2007/10/19 21:30:17 bertin Exp $ +dnl @author Emmanuel Bertin + +AC_DEFUN([ACX_ATLAS], [ +AC_REQUIRE([AC_CANONICAL_HOST]) + +dnl -------------------- +dnl Search include files +dnl -------------------- + +acx_atlas_ok=no +if test x$2 = x; then + if test x$1 = x; then + AC_CHECK_HEADERS([cblas.h clapack.h],[acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE(ATLAS_BLAS_H, "cblas.h", [BLAS header filename.]) + AC_DEFINE(ATLAS_LAPACK_H, "clapack.h", [CLAPACK header filename.]) + else + AC_CHECK_HEADERS([atlas/cblas.h atlas/clapack.h],[acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE(ATLAS_BLAS_H, "atlas/cblas.h", [BLAS header filename.]) + AC_DEFINE(ATLAS_LAPACK_H, "atlas/clapack.h", [CLAPACK header filename.]) + else + atlas_def=/usr/local/atlas + AC_CHECK_HEADERS( + [$atlas_def/include/cblas.h $atlas_def/include/clapack.h], + [acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE_UNQUOTED(ATLAS_BLAS_H, "$atlas_def/include/cblas.h", + [BLAS header filename.]) + AC_DEFINE_UNQUOTED(ATLAS_LAPACK_H, "$atlas_def/include/clapack.h", + [CLAPACK header filename.]) + else + atlas_def=/usr/atlas + AC_CHECK_HEADERS( + [$atlas_def/include/cblas.h $atlas_def/include/clapack.h], + [acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE_UNQUOTED(ATLAS_BLAS_H, "$atlas_def/include/cblas.h", + [BLAS header filename.]) + AC_DEFINE_UNQUOTED(ATLAS_LAPACK_H, "$atlas_def/include/clapack.h", + [CLAPACK header filename.]) + else + ATLAS_ERROR="CBLAS/LAPack include files not found!" + fi + fi + fi + fi + else + AC_CHECK_HEADERS([$1/include/cblas.h $1/include/clapack.h], + [acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE_UNQUOTED(ATLAS_BLAS_H, "$1/include/cblas.h", + [BLAS header filename.]) + AC_DEFINE_UNQUOTED(ATLAS_LAPACK_H, "$1/include/clapack.h", + [CLAPACK header filename.]) + else + AC_CHECK_HEADERS([cblas.h clapack.h],[acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE_UNQUOTED(ATLAS_BLAS_H, "cblas.h", + [BLAS header filename.]) + AC_DEFINE_UNQUOTED(ATLAS_LAPACK_H, "clapack.h", + [CLAPACK header filename.]) + else + ATLAS_ERROR="CBLAS/LAPack include files not found in $1/include!" + fi + fi + fi +else + AC_CHECK_HEADERS([$2/cblas.h $2/clapack.h], [acx_atlas_ok=yes]) + if test x$acx_atlas_ok = xyes; then + AC_DEFINE_UNQUOTED(ATLAS_BLAS_H, "$2/cblas.h", + [BLAS header filename.]) + AC_DEFINE_UNQUOTED(ATLAS_LAPACK_H, "$2/clapack.h", + [CLAPACK header filename.]) + else + ATLAS_ERROR="CBLAS/LAPack include files not found in $2!" + fi +fi + +dnl -------------------- +dnl Search library files +dnl -------------------- + +if test x$acx_atlas_ok = xyes; then + OLIBS="$LIBS" + LIBS="" + if test x$1 = x; then + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="" + else + atlas_def=/usr/local/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$atlas_def/lib -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$atlas_def/lib -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def/lib" + else + atlas_def=/usr/lib64/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$atlas_def -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$atlas_def -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def" + else + atlas_def=/usr/lib/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$atlas_def -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$atlas_def -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def" + else + atlas_def=/usr/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$atlas_def/lib -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$atlas_def/lib -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def/lib" + else + ATLAS_ERROR="CBLAS/LAPack library files not found at usual locations!" + fi + fi + fi + fi + fi + else + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$1 -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$1 -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$1" + else + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + AC_CHECK_LIB(lapack, [clapack_dpotrf],, [acx_atlas_ok=no], + [-L$1/lib -lcblas -latlas -lm]) + AC_CHECK_LIB(cblas, cblas_dgemm,, [acx_atlas_ok=no], + [-L$1/lib -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$1/lib" + else + ATLAS_ERROR="CBLAS/LAPack library files not found in $1!" + fi + fi + fi + LIBS="$OLIBS" +fi + +AC_SUBST(ATLAS_LIBPATH) +AC_SUBST(ATLAS_CFLAGS) + +dnl ------------------------------------------------------------------------- +dnl Finally, check MP version and execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND +dnl ------------------------------------------------------------------------- +if test x"$acx_atlas_ok" = xyes; then + AC_DEFINE(HAVE_ATLAS,1, + [Define if you have the ATLAS libraries and header files.]) + if test x$3 = xyes; then +dnl Check whether the multithreaded version of ATLAS is there too: + AC_CHECK_LIB(ptcblas, cblas_dgemm,, [acx_atlas_ok=no], + [$ATLAS_LIBPATH -lcblas -latlas -lm]) + if test x$acx_atlas_ok = xyes; then + ATLAS_LIB="$ATLAS_LIBPATH -llapack -lptcblas -lcblas -latlas" + LIBS="$OLIBS" + AC_SUBST(ATLAS_LIB) + AC_DEFINE(HAVE_ATLAS_MP,1, + [Define if you have the parallel ATLAS libraries.]) + $4 + else + ATLAS_ERROR="CBLAS/LAPack was compiled without multithreading support!" + AC_SUBST(ATLAS_ERROR) + $5 + fi + else + ATLAS_LIB="$ATLAS_LIBPATH -llapack -lcblas -latlas" + LIBS="$OLIBS" + AC_SUBST(ATLAS_LIB) + $4 + fi +else + AC_SUBST(ATLAS_ERROR) + $5 +fi + +])dnl ACX_ATLAS diff --git a/acx_fftw.m4 b/acx_fftw.m4 new file mode 100644 index 0000000000000000000000000000000000000000..047375140848f60daff555f63e444ab1d48ac061 --- /dev/null +++ b/acx_fftw.m4 @@ -0,0 +1,172 @@ +dnl @synopsis ACX_FFTW([FFTW_DIR, FFTW_INCDIR, FFTW_PFLAG, FFTW_FFLAG, [ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]]) +dnl This macro figures out if the FFTW3 libraries and header +dnl files are installed. +dnl You may wish to use these variables in your default LIBS and CFLAGS: +dnl +dnl LIBS="$FFTW_LIBS $LIBS" +dnl +dnl ACTION-IF-FOUND is a list of shell commands to run if FFTW +dnl is found (HAVE_FFTWx are defined first), and ACTION-IF-NOT-FOUND +dnl is a list of commands to run it if it is not found. +dnl +dnl @version $Id: acx_fftw.m4,v 1.0 2008/08/28 21:30:17 bertin Exp $ +dnl @author Emmanuel Bertin + +AC_DEFUN([ACX_FFTW], [ +AC_REQUIRE([AC_CANONICAL_HOST]) + +dnl -------------------- +dnl Search include files +dnl -------------------- + +acx_fftw_ok=no +if test x$2 = x; then + if test x$1 = x; then + AC_CHECK_HEADER(fftw3.h,[acx_fftw_ok=yes]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(FFTW_H, "fftw.h", [FFTW header filename.]) + else + AC_CHECK_HEADER(fftw/fftw3.h,[acx_fftw_ok=yes]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(FFTW_H, "fftw/fftw3.h", [FFTW header filename.]) + else + FFTW_ERROR="FFTW include files not found in default location!" + fi + fi + else + AC_CHECK_HEADER($1/include/fftw3.h,[acx_fftw_ok=yes]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(FFTW_H, "$1/include/fftw3.h", [FFTW header filename.]) + else + AC_CHECK_HEADER(fftw3.h,[acx_fftw_ok=yes]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(FFTW_H, "fftw.h", [FFTW header filename.]) + else + FFTW_ERROR="FFTW include files not found in $1/include!" + fi + fi + fi +else + AC_CHECK_HEADER($2/fftw3.h,[acx_fftw_ok=yes]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(FFTW_H, "$2/fftw3.h", [FFTW header filename.]) + else + FFTW_ERROR="FFTW include files not found in $2!" + fi +fi + +dnl -------------------- +dnl Search library files +dnl -------------------- + +FFTW_LIBS="" +OLIBS="$LIBS" +LIBS="" + +if test x$acx_fftw_ok = xyes; then + if test x$1 = x; then + if test x$4 = xyes; then + AC_CHECK_LIB(fftw3f, fftwf_execute, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-lm]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWF,1, + [Define if you have the FFTW single precision libraries and header files.]) + FFTW_LIBS="-lfftw3f" + else + FFTW_ERROR="FFTW single precision library files not found at usual locations!" + fi + else + AC_CHECK_LIB(fftw3, fftw_execute, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-lm]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTW,1, + [Define if you have the FFTW double precision libraries and header files.]) + FFTW_LIBS="-lfftw3" + else + FFTW_ERROR="FFTW double precision library files not found at usual locations!" + fi + fi + if test x$acx_fftw_ok = xyes && test x$3 = xyes; then + if test x$4 = xyes; then + AC_CHECK_LIB(fftw3f_threads, fftwf_init_threads, + [acx_fftw_ok=yes], [acx_fftw_ok=no], [-lfftw3f -lm -lpthread]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWFT,1, + [Define if you have the FFTW single precision multithreaded libraries and header files.]) + FFTW_LIBS="-lfftw3f_threads -lfftw3f" + else + FFTW_ERROR="FFTW single precision library was compiled without multithreading support!" + fi + else + AC_CHECK_LIB(fftw3_threads, fftw_init_threads, + [acx_fftw_ok=yes], [acx_fftw_ok=no], [-lfftw3 -lm -lpthread]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWT,1, + [Define if you have the FFTW double precision multithreaded libraries and header files.]) + FFTW_LIBS="-lfftw3_threads -lfftw3" + else + FFTW_ERROR="FFTW double precision library was compiled without multithreading support!" + fi + fi + fi + else +dnl ------------------------- +dnl Specific libdir specified +dnl ------------------------- + if test x$4 = xyes; then + AC_CHECK_LIB(fftw3f, fftwf_execute, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-L$1 -lm]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWF,1, + [Define if you have the FFTW single precision libraries and header files.]) + FFTW_LIBS="-L$1 -lfftw3f" + else + FFTW_ERROR="FFTW single precision library files not found in $1!" + fi + else + AC_CHECK_LIB(fftw3, fftw_execute, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-L$1 -lm]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTW,1, + [Define if you have the FFTW double precision libraries and header files.]) + FFTW_LIBS="-L$1 -lfftw3" + else + FFTW_ERROR="FFTW double precision library files not found in $1!" + fi + fi + if test x$acx_fftw_ok = xyes && test x$3 = xyes; then + if test x$4 = xyes; then + AC_CHECK_LIB(fftw3f_threads, fftwf_init_threads, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-L$1 -lfftw3f -lm -lpthread]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWFT,1, + [Define if you have the FFTW single precision multithreaded libraries and header files.]) + FFTW_LIBS="-L$1 -lfftw3f_threads -lfftw3f" + else + FFTW_ERROR="FFTW single precision library in $1 was compiled without multithreading support!" + fi + else + AC_CHECK_LIB(fftw3_threads, fftw_init_threads, [acx_fftw_ok=yes], + [acx_fftw_ok=no], [-L$1 -lfftw3 -lm -lpthread]) + if test x$acx_fftw_ok = xyes; then + AC_DEFINE(HAVE_FFTWT,1, + [Define if you have the FFTW double precision multithreaded libraries and header files.]) + FFTW_LIBS="-L$1 -lfftw3_threads -lfftw3" + else + FFTW_ERROR="FFTW double precision library in $1 was compiled without multithreading support!" + fi + fi + fi + fi +fi + +LIBS="$OLIBS" +if test x$acx_fftw_ok = xyes; then + AC_SUBST(FFTW_LIBS) + $5 +else + AC_SUBST(FFTW_ERROR) + $6 +fi + +])dnl ACX_FFTW diff --git a/acx_prog_cc_optim.m4 b/acx_prog_cc_optim.m4 index 23b2d02826fd5cf940529b167253a9181eceb64f..8e27e209e44becf258356d603bd0666524d5b9c2 100644 --- a/acx_prog_cc_optim.m4 +++ b/acx_prog_cc_optim.m4 @@ -8,7 +8,7 @@ dnl IRIX C compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 dnl (Unicos 10.0.0.8) C compiler. dnl dnl This macro is a modification of Ville Laurikari's VL_PROG_CC_WARNINGS -dnl @version 1.0 (2002-04-15) +dnl @version 1.2 (2008-10-01) dnl @authors Emmanuel Bertin Ville Laurikari dnl AC_DEFUN([ACX_PROG_CC_OPTIM], [ @@ -19,10 +19,6 @@ AC_DEFUN([ACX_PROG_CC_OPTIM], [ int main(int argc, char **argv) { return 0; } EOF - dnl GCC - if test "$GCC" = "yes"; then - prog_cc_optim_flags="-O -funroll-loops -fomit-frame-pointer -Wall -g" - dnl Most compilers print some kind of a version string with some command dnl line options (often "-V"). The version string should be checked dnl before doing a test compilation run with compiler-specific flags. @@ -32,56 +28,85 @@ EOF dnl erratic things when invoked with flags meant for a different dnl compiler. + dnl INTEL C 64bits compiler + if $CC -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && + $CC -c -O conftest.c > /dev/null 2>&1 && + test -f conftest.o; then + prog_cc_optim_flags="-O3 -axWPTS -ip -no-prec-div -unroll" + prog_ld_optim_flags="-static-intel" + + dnl INTEL C 32bits compiler + elif $CC -V 2>&1 | grep -i "Intel(R)" > /dev/null 2>&1 && + $CC -c -O conftest.c > /dev/null 2>&1 && + test -f conftest.o; then + prog_cc_optim_flags="-O -axKWNPTS -ip -no-prec-div" + prog_ld_optim_flags="-static-intel" + + dnl GCC + elif test "$GCC" = "yes"; then + prog_cc_optim_flags="-O3 -g -funroll-loops -fomit-frame-pointer -Wall" + prog_ld_optim_flags="" + dnl Solaris C compiler elif $CC -V 2>&1 | grep -i "WorkShop" > /dev/null 2>&1 && $CC -c -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O" + prog_ld_optim_flags="" dnl Digital Unix/Compaq C compiler elif ($CC -V 2>&1 | grep -i "Digital UNIX Compiler"> /dev/null 2>&1 || $CC -V 2>&1 | grep -i "Compaq C"> /dev/null 2>&1) && $CC -c -fast conftest.c > /dev/null 2>&1 && test -f conftest.o; then - prog_cc_optim_flags="-fast -tune host" + prog_cc_optim_flags="-fast -tune host" + prog_ld_optim_flags="" dnl C for AIX Compiler elif $CC 2>&1 | grep -i "C for AIX Compiler" > /dev/null 2>&1 && $CC -c -qinfo=all -O2 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O2" + prog_ld_optim_flags="" dnl IRIX C compiler elif $CC -version 2>&1 | grep -i "MIPSpro Compilers" > /dev/null 2>&1 && $CC -c -fullwarn -O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O3" + prog_ld_optim_flags="" dnl HP-UX C compiler elif what $CC 2>&1 | grep -i "HP C Compiler" > /dev/null 2>&1 && $CC -c -Aa +O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="+O3" + prog_ld_optim_flags="" dnl The NEC SX-5 (Super-UX 10) C compiler elif $CC -V 2>&1 | grep "/SX" > /dev/null 2>&1 && $CC -c -Xc -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O" + prog_ld_optim_flags="" dnl The Cray C compiler (Unicos) elif $CC -V 2>&1 | grep -i "Cray" > /dev/null 2>&1 && $CC -c -h conform -O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O3" + prog_ld_optim_flags="" fi rm -f conftest.* fi if test -n "$prog_cc_optim_flags"; then CFLAGS="$CFLAGS $prog_cc_optim_flags" + LDFLAGS="$LDFLAGS $prog_ld_optim_flags" else - prog_cc_optim_flags="unknown" + prog_cc_optim_flags="" + prog_ld_optim_flags="" fi ]) ])dnl + diff --git a/acx_pthread.m4 b/acx_pthread.m4 new file mode 100644 index 0000000000000000000000000000000000000000..d0229b4a45e3b031aa8b781e2a6b2c4acc9048fa --- /dev/null +++ b/acx_pthread.m4 @@ -0,0 +1,227 @@ +dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +dnl +dnl This macro figures out how to build C programs using POSIX +dnl threads. It sets the PTHREAD_LIBS output variable to the threads +dnl library and linker flags, and the PTHREAD_CFLAGS output variable +dnl to any special C compiler flags that are needed. (The user can also +dnl force certain compiler flags/libs to be tested by setting these +dnl environment variables.) +dnl +dnl Also sets PTHREAD_CC to any special C compiler that is needed for +dnl multi-threaded programs (defaults to the value of CC otherwise). +dnl (This is necessary on AIX to use the special cc_r compiler alias.) +dnl +dnl If you are only building threads programs, you may wish to +dnl use these variables in your default LIBS, CFLAGS, and CC: +dnl +dnl LIBS="$PTHREAD_LIBS $LIBS" +dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +dnl CC="$PTHREAD_CC" +dnl +dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute +dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE +dnl to that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +dnl +dnl ACTION-IF-FOUND is a list of shell commands to run if a threads +dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands +dnl to run it if it is not found. If ACTION-IF-FOUND is not specified, +dnl the default action will define HAVE_PTHREAD. +dnl +dnl Please let the authors know if this macro fails on any platform, +dnl or if you have any other suggestions or comments. This macro was +dnl based on work by SGJ on autoconf scripts for FFTW (www.fftw.org) +dnl (with help from M. Frigo), as well as ac_pthread and hb_pthread +dnl macros posted by AFC to the autoconf macro repository. We are also +dnl grateful for the helpful feedback of numerous users. +dnl +dnl @version $Id: acx_pthread.m4,v 1.4 2001/03/16 08:40:17 simons Exp $ +dnl @author Steven G. Johnson and Alejandro Forero Cuervo +dnl modified by E.Bertin (ordering of flags and deactivated +dnl pthread.h check) 2002/04/25 + +AC_DEFUN([ACX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +acx_pthread_ok=no + +# First, check if the POSIX threads header, pthread.h, is available. +# If it isn't, don't bother looking for the threads libraries. +# AC_CHECK_HEADER(pthread.h, , acx_pthread_ok=noheader) +AC_CHECK_HEADER(pthread.h, , acx_pthread_ok=no) + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) + AC_MSG_RESULT($acx_pthread_ok) + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread pthread -pthread -pthreads -mthreads --thread-safe -mt" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# pthread: Linux, etcetera +# --thread-safe: KAI C++ + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthread or + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_TRY_LINK([#include ], + [pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], + [acx_pthread_ok=yes]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($acx_pthread_ok) + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: threads are created detached by default + # and the JOINABLE attribute has a nonstandard name (UNDETACHED). + AC_MSG_CHECKING([for joinable pthread attribute]) + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_JOINABLE;], + ok=PTHREAD_CREATE_JOINABLE, ok=unknown) + if test x"$ok" = xunknown; then + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_UNDETACHED;], + ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) + fi + if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then + AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, + [Define to the necessary symbol if this constant + uses a non-standard name on your system.]) + fi + AC_MSG_RESULT(${ok}) + if test x"$ok" = xunknown; then + AC_MSG_WARN([we do not know how to create joinable pthreads]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";; + *solaris* | alpha*-osf*) flag="-D_REENTRANT";; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with cc_r + AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) +else + PTHREAD_CC="$CC" +fi + +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) + : +else + acx_pthread_ok=no + $2 +fi + +])dnl ACX_PTHREAD diff --git a/acx_urbi_resolve_dir.m4 b/acx_urbi_resolve_dir.m4 new file mode 100644 index 0000000000000000000000000000000000000000..cd8b1eadf751f58e65c3a4e267f4c9da143acc43 --- /dev/null +++ b/acx_urbi_resolve_dir.m4 @@ -0,0 +1,48 @@ + + +# URBI_RESOLVE_DIR_PREPARE +# ------------------------ +# Define urbi_resolve_dir. +m4_defun([URBI_RESOLVE_DIR_PREPARE], +[# PATH urbi_resolve_dir(DIR) +# -------------------------- +# Return the DIR with all inner variables expanded. +urbi_resolve_dir () +{ + ac_$0_dir=$[]1 + ac_$0_res= + ac_$0_prefix_NONE= + ac_$0_exec_prefix_NONE= + test "x$prefix" = xNONE && + ac_$0_exec_prefix_NONE=yes && + prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && + ac_$0_exec_prefix_NONE=yes && + exec_prefix=$prefix + while true + do + eval ac_$0_res="$ac_$0_dir" + if test x"$ac_$0_dir" == x"$ac_$0_res"; then + break + fi + ac_$0_dir=$ac_$0_res + done + test "$ac_$0_prefix_NONE" && prefix=NONE + test "$ac_$0_exec_prefix_NONE" && exec_prefix=NONE + echo "$ac_$0_res" +} +]) + + +# PATH URBI_RESOLVE_DIR(DIR) +# -------------------------- +# Return the DIR with all inner variables expanded. +AC_DEFUN([URBI_RESOLVE_DIR], +[AC_REQUIRE([URBI_RESOLVE_DIR_PREPARE])dnl +urbi_resolve_dir '$1'[]dnl +]) + + +## Local Variables: +## mode: autoconf +## End: diff --git a/autoconf/config.guess b/autoconf/config.guess index dff9e481b70f9505b49ce999629a168a19976f4f..ca2a03ca4f18f15603819e72c218515d4a4b763c 100755 --- a/autoconf/config.guess +++ b/autoconf/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2001-09-04' +timestamp='2008-01-08' # 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 @@ -17,15 +18,18 @@ timestamp='2001-09-04' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Written by Per Bothner . -# Please send patches to . + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and @@ -52,8 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -65,11 +69,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -87,30 +91,42 @@ if test $# != 0; then exit 1 fi +trap 'exit 1' 1 2 15 -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; 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. -# CC_FOR_BUILD -- compiler used by this script. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int dummy(){}" > $dummy.c ; - for c in cc gcc c89 ; do - ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; - if test $? = 0 ; then +# 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 ; - rm -f $dummy.c $dummy.o $dummy.rel ; 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' +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) @@ -127,29 +143,31 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) - # Netbsd (nbsd) targets should (where applicable) match one or + # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. - # Determine the machine/vendor (is the vendor relevant). - case "${UNAME_MACHINE}" in - amiga) machine=m68k-unknown ;; - arm32) machine=arm-unknown ;; - atari*) machine=m68k-atari ;; - sun3*) machine=m68k-sun ;; - mac68k) machine=m68k-apple ;; - macppc) machine=powerpc-apple ;; - hp3[0-9][05]) machine=m68k-hp ;; - ibmrt|romp-ibm) machine=romp-ibm ;; - *) machine=${UNAME_MACHINE}-unknown ;; + # + # 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}" in - i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null @@ -166,120 +184,128 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; + 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:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *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. - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - eval $set_cc_for_build - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - esac - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + 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 0;; + 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 0;; + 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 @@ -287,25 +313,32 @@ EOF else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + 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 ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + 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 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -314,12 +347,12 @@ EOF esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + 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) @@ -329,16 +362,10 @@ EOF echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - sparc*:NetBSD:*) - echo `uname -p`-unknown-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + 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 @@ -349,49 +376,40 @@ EOF # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -415,27 +433,33 @@ EOF exit (-1); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + $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 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + 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 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -451,29 +475,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + 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 0 ;; # Note that: echo "'`uname -s`'" gives '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 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -481,7 +505,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -496,17 +520,20 @@ EOF exit(0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo rs6000-ibm-aix3.2.5 + 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 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` + exit ;; + *:AIX:*:[456]) + 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 @@ -518,38 +545,36 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + 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]) - case "${HPUX_REV}" in - 11.[0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + 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 @@ -558,13 +583,13 @@ EOF 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 ;; - esac - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include @@ -597,17 +622,37 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy - fi ;; + (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 __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -635,158 +680,247 @@ EOF exit (0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; - hppa*:OpenBSD:*:*) - echo hppa-unknown-openbsd - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + 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 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; + 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 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + 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 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + 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 ;; 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 i386-pc-interix - exit 0 ;; + echo i586-pc-interix + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + 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/[-(].*//'`-gnu + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + 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-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux - exit 0 ;; + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) - case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in - big) echo mips-unknown-linux-gnu && exit 0 ;; - little) echo mipsel-unknown-linux-gnu && exit 0 ;; - esac + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -800,7 +934,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -808,27 +942,37 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. - ld_supported_targets=`cd /; ld --help 2>&1 \ + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// @@ -840,52 +984,58 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build - cat >$dummy.c < -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-pc-linux-gnu\n", argv[1]); -# else - printf ("%s-pc-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-pc-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-pc-linux-gnuaout\n", argv[1]); -#endif - return 0; -} + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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 0 ;; + 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... @@ -893,7 +1043,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + 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.0*:*) + 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 @@ -901,99 +1071,100 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + 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 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + 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|egrep '^Machine.*Pent ?II' >/dev/null) \ + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + 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 i386. echo i386-pc-msdosdjgpp - exit 0 ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 - exit 0 ;; + exit ;; paragon:*:*:*) echo i860-intel-osf1 - exit 0 ;; + 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 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + 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 0 + && { 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 0 ;; + && { 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 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1001,82 +1172,107 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + 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 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + 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 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + 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 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo `uname -p`-${UNAME_MACHINE}-nto-qnx - exit 0 ;; + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[KW]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1087,36 +1283,47 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + 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 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1148,7 +1355,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1237,12 +1444,12 @@ main () } EOF -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1251,22 +1458,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1277,7 +1484,9 @@ 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 - ftp://ftp.gnu.org/pub/gnu/config/ + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/autoconf/config.sub b/autoconf/config.sub index 393f13d373dc87d2dbdd58b8243d27974bb5079d..6759825a5b7fcf64476b4398dc0e30b3090b925c 100755 --- a/autoconf/config.sub +++ b/autoconf/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2001-09-07' +timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,15 +22,17 @@ timestamp='2001-09-07' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Please send patches to . + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -69,8 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -82,11 +85,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,7 +101,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -117,7 +120,9 @@ esac # 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* | storm-chaos* | os2-emx* | windows32-*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -143,7 +148,7 @@ case $os in -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) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -168,6 +173,10 @@ case $os in -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/'` @@ -184,6 +193,10 @@ case $os in # 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/'` @@ -226,32 +239,53 @@ case $basic_machine in 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ | c4x | clipper \ - | d10v | d30v | dsp16xx \ - | fr30 \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el | mips64vr4300 \ - | mips64vr4300el | mips64vr5000 | mips64vr5000el \ - | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \ - | mipsisa32 \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | s390 | s390x \ - | sh | sh[34] | sh[34]eb | shbe | shle \ - | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \ - | stormy16 | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 \ + | score \ + | sh | sh[1234] | sh[24]a | 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 | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ | we32k \ - | x86 | xscale \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -262,6 +296,9 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -278,41 +315,68 @@ case $basic_machine in 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alphapca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armv*-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c54x-* \ - | clipper-* | cray2-* | cydra-* \ - | d10v-* | d30v-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | m32r-* \ - | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ - | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \ - | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | s390-* | s390x-* \ - | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \ - | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ - | v850-* | vax-* \ + | sh-* | sh[1234]-* | sh[24]a-* | 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-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # 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) @@ -329,6 +393,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -343,6 +410,12 @@ case $basic_machine in 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 @@ -374,6 +447,18 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -394,30 +479,45 @@ case $basic_machine in basic_machine=c38-convex os=-bsd ;; - cray | ymp) - basic_machine=ymp-cray + cray | j90) + basic_machine=j90-cray os=-unicos ;; - cray2) - basic_machine=cray2-cray - os=-unicos + craynv) + basic_machine=craynv-cray + os=-unicosmp ;; - [cjt]90) - basic_machine=${basic_machine}-cray - os=-unicos + 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 @@ -426,6 +526,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -576,6 +680,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -591,6 +703,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -598,32 +714,27 @@ case $basic_machine in basic_machine=m68k-atari os=-mint ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; msdos) basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -699,6 +810,13 @@ case $basic_machine in 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 @@ -715,55 +833,75 @@ case $basic_machine in 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-*) + pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pentium | p5 | k5 | k6 | nexgen) + 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) + pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-*) + 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-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown - ;; + ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; + ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown - ;; + ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown - ;; + ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; @@ -774,6 +912,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -784,10 +926,30 @@ case $basic_machine in 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 ;; @@ -795,7 +957,13 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; - sparclite-wrs) + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -862,22 +1030,46 @@ case $basic_machine in os=-dynix ;; t3e) - basic_machine=t3e-cray + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-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 @@ -899,8 +1091,8 @@ case $basic_machine in os=-vms ;; vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; + basic_machine=f301-fujitsu + ;; vxworks960) basic_machine=i960-wrs os=-vxworks @@ -921,17 +1113,17 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt - ;; - xmp) - basic_machine=xmp-cray - os=-unicos + xbox) + basic_machine=i686-pc + os=-mingw32 ;; - xps | xps100) + xps | xps100) basic_machine=xps100-honeywell ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim @@ -952,16 +1144,12 @@ case $basic_machine in op60c) basic_machine=hppa1.1-oki ;; - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -978,13 +1166,13 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; - cydra) + cydra) basic_machine=cydra-cydrome ;; orion) @@ -999,10 +1187,6 @@ case $basic_machine in pmac | pmac-mpw) basic_machine=powerpc-apple ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; @@ -1058,17 +1242,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -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* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos*) + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1080,16 +1270,21 @@ case $os in ;; esac ;; + -nto-qnx*) + ;; -nto*) - os=-nto-qnx + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -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|'` ;; @@ -1102,6 +1297,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1120,14 +1318,23 @@ case $os in -acis*) os=-aos ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; + -nova*) + os=-rtmk-nova + ;; -ns2 ) - os=-nextstep2 + os=-nextstep2 ;; -nsk*) os=-nsk @@ -1139,6 +1346,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1166,8 +1376,17 @@ case $os in -xenix) os=-xenix ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe ;; -none) ;; @@ -1191,6 +1410,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1200,10 +1425,14 @@ case $basic_machine in arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; - pdp11-*) + pdp11-*) os=-none ;; *-dec | vax-*) @@ -1224,12 +1453,18 @@ case $basic_machine in 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 ;; @@ -1239,9 +1474,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1293,19 +1534,19 @@ case $basic_machine in *-next) os=-nextstep3 ;; - *-gould) + *-gould) os=-sysv ;; - *-highlevel) + *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; - *-sgi) + *-sgi) os=-irix ;; - *-siemens) + *-siemens) os=-sysv4 ;; *-masscomp) @@ -1374,10 +1615,16 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; - -vxsim* | -vxworks*) + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) @@ -1401,7 +1648,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/autoconf/depcomp b/autoconf/depcomp index 3480ce4e96d431f9d70162fd1cd79366c714996b..e5f9736c7239301c765e2d7abefb9bb9b9237ac5 100755 --- a/autoconf/depcomp +++ b/autoconf/depcomp @@ -1,7 +1,10 @@ #! /bin/sh - # depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. + +scriptversion=2007-03-29.01 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 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 @@ -15,8 +18,8 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -25,22 +28,45 @@ # Originally written by Alexandre Oliva . +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 outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + 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 -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -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" @@ -66,7 +92,20 @@ 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. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" +## 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 -eq 0; then : else @@ -172,31 +211,43 @@ sgi) aix) # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. 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. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - outname="$stripped.o" + # 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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 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 -eq 0; then : else - rm -f "$tmpdepfile" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -206,38 +257,136 @@ aix) rm -f "$tmpdepfile" ;; +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + 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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + 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 -eq 0; then : + else + 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#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 + # 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. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - base=`echo "$object" | sed -e 's/\.o$//' -e 's/\.lo$//'` - tmpdepfile1="$base.o.d" - tmpdepfile2="$base.d" if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # 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.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else - rm -f "$tmpdepfile1" "$tmpdepfile2" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -250,34 +399,42 @@ tru64) dashmstdout) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - test -z "$dashmflag" && dashmflag=-M - ( IFS=" " - case " $* " in - *" --mode=compile "*) # this is libtool, let us make it quiet - for arg - do # cycle over the arguments - case "$arg" in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--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 - "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi + 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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' @@ -295,33 +452,37 @@ dashXmstdout) ;; makedepend) - # X makedepend - ( - shift - cleared=no - for arg in "$@"; do - case $cleared in no) - set ""; shift - cleared=yes - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift;; - -*) - ;; - *) - set fnord "$@" "$arg"; shift;; - esac + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + 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. + -*|$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" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' @@ -334,35 +495,40 @@ makedepend) cpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--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 - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -372,49 +538,27 @@ cpp) msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, + # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; - *) + *) set fnord "$@" "$arg" shift shift ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" @@ -434,3 +578,12 @@ none) 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-end: "$" +# End: diff --git a/autoconf/install-sh b/autoconf/install-sh index 398a88e1421823561abbf2d48ca8f263babc04d9..a5897de6ea7f74f83fd793474bb4738d32884719 100755 --- a/autoconf/install-sh +++ b/autoconf/install-sh @@ -1,251 +1,519 @@ #!/bin/sh -# # install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). + +scriptversion=2006-12-25.00 + +# 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. # -# Copyright 1991 by the Massachusetts Institute of Technology +# 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. # -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. +# +# 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. It can only install one file at a time, a restriction -# shared with many OS's install programs. +# from scratch. +nl=' +' +IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec else - : + doit_exec=$doit fi -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else +# 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_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. +src= +dst= +dir_arg= +dst_arg= - if [ -f $src -o -d $src ] - then - : - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - : - fi +copy_on_change=false +no_target_directory= -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - : - fi -fi +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` +Options: + --help display this help and exit. + --version display version info and exit. -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script + -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. -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-${defaultIFS}}" +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" +while test $# -ne 0; do + case $1 in + -c) ;; -pathcomp='' + -C) copy_on_change=true;; -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift + -d) dir_arg=true;; - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - : - fi + -g) chgrpcmd="$chgrpprog $2" + shift;; - pathcomp="${pathcomp}/" -done -fi + --help) echo "$usage"; exit $?;; -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi -else + -o) chowncmd="$chownprog $2" + shift;; -# If we're going to rename the final executable, determine the name now. + -s) stripcmd=$stripprog;; - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi + -t) dst_arg=$2 + shift;; -# don't allow the sed command to completely eliminate the filename + -T) no_target_directory=true;; - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - : - fi - -# Make a temp file name in the proper directory. + --version) echo "$0 $scriptversion"; exit $?;; - dsttmp=$dstdir/#inst.$$# + --) shift + break;; -# Move or copy the file name to the temp name + -*) echo "$0: invalid option: $1" >&2 + exit 1;; - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && + *) break;; + esac + shift +done -# and set any options; do chmod last to preserve setuid bits +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 + done +fi -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. +if 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 [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 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 -# Now rename the file to the real destination. +for src +do + # Protect names starting with `-'. + 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 + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile + # 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 -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + 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 -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-writeable 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 + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && 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` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob 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 -exit 0 +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/autoconf/ltmain.sh b/autoconf/ltmain.sh index 89bba5406ef82ab180f983cc16aa6811552a3a7f..8e5a9304f12fc674ab4b97e65b8a0645257bf140 100644 --- a/autoconf/ltmain.sh +++ b/autoconf/ltmain.sh @@ -1,8 +1,8 @@ # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify @@ -17,13 +17,49 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +basename="s,^.*/,,g" + +# 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 $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.24 +TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)" + +# Be Bourne compatible (taken from Autoconf:_AS_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 + # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. @@ -36,7 +72,7 @@ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then : else # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} + exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then @@ -45,19 +81,9 @@ if test "X$1" = X--fallback-echo; then cat <&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + $echo "$modename: not configured to build any kind of library" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE fi # Global variables. @@ -102,11 +142,286 @@ run= show="$echo" show_help= execute_dlfiles= +duplicate_deps=no +preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool 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 "$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" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# 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. +func_win32_libid () +{ + 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 + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + 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_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 () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + 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 "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # 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. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # 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 + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + 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 + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + 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" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + 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 have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no # Parse our command line options once, thoroughly. -while test $# -gt 0 +while test "$#" -gt 0 do arg="$1" shift @@ -122,6 +437,34 @@ do execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; *) eval "$prev=\$arg" ;; @@ -139,18 +482,28 @@ do ;; --version) - echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - exit 0 + echo "\ +$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP + +Copyright (C) 2007 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." + exit $? ;; --config) - sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 - exit 0 + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? ;; --debug) - echo "$progname: enabling shell trace mode" + $echo "$progname: enabling shell trace mode" set -x + preserve_args="$preserve_args $arg" ;; --dry-run | -n) @@ -158,18 +511,18 @@ do ;; --features) - echo "host: $host" + $echo "host: $host" if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" + $echo "enable shared libraries" else - echo "disable shared libraries" + $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - echo "enable static libraries" + $echo "enable static libraries" else - echo "disable static libraries" + $echo "disable static libraries" fi - exit 0 + exit $? ;; --finish) mode="finish" ;; @@ -181,6 +534,19 @@ do --quiet | --silent) show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" ;; -dlopen) @@ -191,7 +557,7 @@ do -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *) @@ -204,19 +570,20 @@ done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi -# Mandrake: (gc) It's bad to link C++ code with GCC, so we need to use the compiler name if provided -if test "$mode" = link && test -n "$archive_cmds" && test -x "/usr/bin/perl"; then - case $nonopt in - *cc | *++ | gcc* | *-gcc* | egcs*) - archive_cmds=`echo $archive_cmds | perl -pe 's/^\S+\s+//'` - archive_cmds="$nonopt $archive_cmds" - archive_expsym_cmds=`echo $archive_expsym_cmds | perl -pe 's/^\S+\s+//'` - archive_expsym_cmds="$nonopt $archive_expsym_cmds" - esac -fi +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac # 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 @@ -227,8 +594,10 @@ if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in - *cc | *++ | gcc* | *-gcc*) + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do @@ -269,7 +638,7 @@ if test -z "$show_help"; then if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. @@ -283,158 +652,127 @@ if test -z "$show_help"; then modename="$modename: compile" # Get the compilation command and the source file. base_compile= - prev= - lastarg= - srcfile="$nonopt" + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes suppress_output= + arg_mode=normal + libobj= + later= - user_target=no for arg do - case $prev in - "") ;; - xcompiler) - # Aesthetically quote the previous argument. - prev= - lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - - case $arg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi + target ) + libobj="$arg" + arg_mode=normal continue ;; - esac - # Accept any command-line options. - case $arg in - -o) - if test "$user_target" != "no"; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 - fi - user_target=next - ;; + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; - -static) - build_old_libs=yes - continue - ;; + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; - -prefer-pic) - pic_mode=yes - continue - ;; + -no-suppress) + suppress_opt=no + continue + ;; - -prefer-non-pic) - pic_mode=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. - -Xcompiler) - prev=xcompiler - continue - ;; + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac - lastarg="$lastarg $arg" - done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - - # Add the arguments to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else + # Add the arguments to base_compile. base_compile="$base_compile $lastarg" - fi - continue - ;; - esac + continue + ;; - case $user_target in - next) - # The next one is the -o target name - user_target=yes - continue - ;; - yes) - # We got the output file - user_target=set - libobj="$arg" - continue + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg ;; - esac - - # Accept the current argument as the source file. - lastarg="$srcfile" - srcfile="$arg" + esac # case $arg_mode # Aesthetically quote the previous argument. - - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $lastarg in + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - done + base_compile="$base_compile $lastarg" + done # for arg - case $user_target in - set) + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE ;; - no) - # Get the name of the library object. - libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE ;; *) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSfmso]' + xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; @@ -442,10 +780,14 @@ if test -z "$show_help"; then *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; + *.[fF][09]?) xform=[fF][09]. ;; *.for) xform=for ;; + *.java) xform=java ;; + *.obj) xform=obj ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` @@ -454,25 +796,63 @@ if test -z "$show_help"; then *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then - removelist="$obj $libobj" + removelist="$obj $lobj $libobj ${libobj}T" else - removelist="$libobj" + removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in @@ -491,8 +871,9 @@ if test -z "$show_help"; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else + output_obj= need_locks=no lockfile= fi @@ -500,13 +881,13 @@ if test -z "$show_help"; then # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do + until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then - echo "\ + $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` @@ -518,14 +899,33 @@ avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi - echo $srcfile > "$lockfile" + $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != x"$srcfile"; then - echo "\ + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` @@ -594,13 +979,13 @@ avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one - if test x"$output_obj" != x"$libobj"; then - $show "$mv $output_obj $libobj" - if $run $mv $output_obj $libobj; then : + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist @@ -608,77 +993,50 @@ compiler." fi fi - # If we have no pic_flag, then copy the object into place and finish. - if (test -z "$pic_flag" || test "$pic_mode" != default) && - test "$build_old_libs" = yes; then - # Rename the .lo from within objdir to obj - if test -f $obj; then - $show $rm $obj - $run $rm $obj - fi + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != x"$srcfile"; then - echo "\ + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` @@ -693,11 +1051,11 @@ avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed - if test x"$output_obj" != x"$obj"; then + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else @@ -707,29 +1065,31 @@ compiler." fi fi - # Create an invalid libtool object if no PIC, so that we do not - # accidentally link it into a program. - if test "$build_libtool_libs" != yes; then - $show "echo timestamp > $libobj" - $run eval "echo timestamp > \$libobj" || exit $? - else - # Move the .lo from within objdir - $show "$mv $libobj $lo_libobj" - if $run $mv $libobj $lo_libobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - else + prefer_static_libs=yes + ;; + -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - 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 - prefer_static_libs=yes break ;; esac @@ -826,7 +1203,7 @@ compiler." 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 + while test "$#" -gt 0; do arg="$1" shift case $arg in @@ -891,7 +1268,7 @@ compiler." export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" - exit 1 + exit $EXIT_FAILURE fi prev= continue @@ -901,23 +1278,140 @@ compiler." prev= continue ;; - inst_prefix) + inst_prefix) inst_prefix_dir="$arg" prev= continue ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; release) release="-$arg" prev= continue ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$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 "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; 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" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then @@ -949,13 +1443,33 @@ compiler." finalize_command="$finalize_command $wl$qarg" continue ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac - fi # test -n $prev + fi # test -n "$prev" prevarg="$arg" @@ -997,7 +1511,7 @@ compiler." -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 + exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms @@ -1007,6 +1521,18 @@ compiler." continue ;; + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + -inst-prefix-dir) prev=inst_prefix continue @@ -1016,7 +1542,7 @@ compiler." # 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*) + no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; @@ -1033,7 +1559,8 @@ compiler." absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 + absdir="$dir" + notinst_path="$notinst_path $dir" fi dir="$absdir" ;; @@ -1047,10 +1574,15 @@ compiler." esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac continue @@ -1059,36 +1591,99 @@ compiler." -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; - *-*-mingw* | *-*-os2*) + *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; - *-*-openbsd*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd*) - # Do not include libc_r directly, use -pthread flag. + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" continue ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac fi deplibs="$deplibs $arg" continue ;; + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + -module) module=yes continue ;; + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + -no-fast-install) fast_install=no continue @@ -1096,9 +1691,9 @@ compiler." -no-install) case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) # The PATH hackery in wrapper scripts is required on Windows - # in order for the loader to find any dlls it needs. + # and Darwin in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no @@ -1113,8 +1708,18 @@ compiler." continue ;; + -objectlist) + prev=objectlist + continue + ;; + -o) prev=output ;; + -precious-files-regex) + prev=precious_regex + continue + ;; + -release) prev=release continue @@ -1137,7 +1742,7 @@ compiler." [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac case "$xrpath " in @@ -1147,7 +1752,7 @@ compiler." continue ;; - -static) + -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 @@ -1165,6 +1770,11 @@ compiler." prev=vinfo continue ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` @@ -1213,6 +1823,11 @@ compiler." continue ;; + -XCClinker) + prev=xcclinker + continue + ;; + # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need @@ -1225,29 +1840,106 @@ compiler." esac ;; - *.lo | *.$objext) - # A library or standard object. - if test "$prev" = dlfiles; then - # This file was specified with -dlopen. - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $arg" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi + *.$objext) + # A standard object. + objs="$objs $arg" + ;; - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` - prev= - else + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. case $arg in - *.lo) libobjs="$libobjs $arg" ;; - *) objs="$objs $arg" ;; + */* | *\\*) . $arg ;; + *) . ./$arg ;; esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$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 "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; 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" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi fi ;; @@ -1298,7 +1990,7 @@ compiler." if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then @@ -1307,6 +1999,7 @@ compiler." finalize_command="$finalize_command $arg" fi + oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" @@ -1330,9 +2023,9 @@ compiler." if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir - status=$? - if test "$status" -ne 0 && test ! -d "$output_objdir"; then - exit $status + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status fi fi @@ -1341,7 +2034,7 @@ compiler." "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; @@ -1349,7 +2042,17 @@ compiler." *) linkmode=prog ;; # Anything else should be a program. esac + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac specialdeplibs= + libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) @@ -1369,7 +2072,7 @@ compiler." # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= - if test "X$duplicate_deps" = "Xyes" ; then + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; @@ -1385,7 +2088,6 @@ compiler." newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" @@ -1394,7 +2096,7 @@ compiler." *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -1411,39 +2113,55 @@ compiler." ;; esac for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi if test "$linkmode" = prog; then - # Determine which files to process case $pass in - dlopen) - libs="$dlfiles" - save_deplibs="$deplibs" # Collect dlpreopened libraries - deplibs= - ;; + dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi for deplib in $libs; do lib= found=no case $deplib in - -l*) - if test "$linkmode" = oldlib && test "$linkmode" = obj; then - $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 - continue + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" fi - if test "$pass" = conv; then - deplibs="$deplib $deplibs" + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - # Search the libtool library - lib="$searchdir/lib${name}.la" - if test -f "$lib"; then - found=yes - break - fi + 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 "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library @@ -1455,6 +2173,42 @@ compiler." test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue + else # 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 "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi fi ;; # -l -L*) @@ -1472,14 +2226,14 @@ compiler." fi if test "$pass" = scan; then deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) - $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue @@ -1504,16 +2258,33 @@ compiler." fi case $linkmode in lib) - if test "$deplibs_check_method" != pass_all; then - echo - echo "*** Warning: This library needs some functionality provided by $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." + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." else - echo - echo "*** Warning: Linking the shared library $output against the" - echo "*** static library $deplib is not portable!" + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue @@ -1530,14 +2301,18 @@ compiler." esac # linkmode ;; # *.$libext *.lo | *.$objext) - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi fi continue ;; @@ -1548,15 +2323,15 @@ compiler." esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. - if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` @@ -1569,8 +2344,11 @@ compiler." library_names= old_library= # If the library was installed with an old release of libtool, - # it will not redefine variable installed. + # it will not redefine variables installed, or shouldnotlink installed=yes + shouldnotlink=no + avoidtemprpath= + # Read the .la file case $lib in @@ -1580,8 +2358,7 @@ compiler." if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then - # Add dl[pre]opened files of deplib + { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi @@ -1592,7 +2369,7 @@ compiler." if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" @@ -1609,11 +2386,12 @@ compiler." done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 + exit $EXIT_FAILURE fi continue fi # $pass = conv + # Get the name of the library we link against. linklib= for l in $old_library $library_names; do @@ -1621,19 +2399,23 @@ compiler." done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. - dlprefiles="$dlprefiles $lib" + # 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. + dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi @@ -1665,11 +2447,19 @@ compiler." dir="$libdir" absdir="$libdir" fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` @@ -1677,7 +2467,7 @@ compiler." if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). @@ -1699,11 +2489,12 @@ compiler." compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else - deplibs="$lib $deplibs" + deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi + if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" @@ -1737,13 +2528,21 @@ compiler." continue fi # $linkmode = prog... - link_static=no # Whether the deplib will be linked statically - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # Link against this shared library + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + 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 + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi - if test "$linkmode,$pass" = "prog,link" || - { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. @@ -1765,17 +2564,6 @@ compiler." esac ;; esac - if test "$linkmode" = prog; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - fi fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && @@ -1785,11 +2573,56 @@ compiler." # 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 "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; 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 "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname @@ -1803,7 +2636,7 @@ compiler." elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin*) + *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; @@ -1815,17 +2648,18 @@ compiler." # Make a new name for the extract_expsyms_cmds to use soroot="$soname" - soname=`echo $soroot | sed -e 's/^.*\///'` - newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" + cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -1836,9 +2670,10 @@ compiler." if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" + cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -1858,6 +2693,26 @@ compiler." immediate | unsupported) if test "$hardcode_direct" = no; 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 module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; 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 + fi + esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; @@ -1876,6 +2731,14 @@ compiler." add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" @@ -1889,7 +2752,7 @@ compiler." if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 + exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then @@ -1917,7 +2780,6 @@ compiler." if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= - add_prefix_dir= add_dir= add= # Finalize command for both is simple: just hardcode it. @@ -1932,42 +2794,36 @@ compiler." *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" + elif test "$hardcode_automatic" = yes; 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 + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi add="-l$name" fi - if test -n "$inst_prefix_dir"; then - case "$libdir" in - [\\/]*) - add_prefix_dir="-L$inst_prefix_dir$libdir" - ;; - esac - fi - - # add_prefix_dir must be appended instead, otherwise it can - # possibly be overrided by any hardcoded -L/... path in deplibs if test "$linkmode" = prog; then - test -n "$add_prefix_dir" && finalize_deplibs="$finalize_deplibs $add_prefix_dir" test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else - test -n "$add_prefix_dir" && deplibs="$deplibs $add_prefix_dir" test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - - # Try to link the static library # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. @@ -1987,20 +2843,21 @@ compiler." # 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 library needs some functionality provided by $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." + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - echo "*** Therefore, libtool will create a static module, that should work " - echo "*** as long as the dlopening application is linked with the -dlopen flag." + $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." + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module @@ -2010,8 +2867,6 @@ compiler." fi fi else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi @@ -2019,7 +2874,8 @@ compiler." if test "$linkmode" = lib; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= @@ -2071,29 +2927,75 @@ compiler." ;; esac if grep "^installed=no" $deplib > /dev/null; then - path="-L$absdir/$objdir" + path="$absdir/$objdir" else - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi - path="-L$absdir" + path="$absdir" fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + 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 "$path/$depdepl" ; then + depdepl="$path/$depdepl" + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; - *) deplibs="$deplibs $path" ;; + *) deplibs="$path $deplibs" ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs + dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do @@ -2101,7 +3003,6 @@ compiler." done fi if test "$pass" != dlopen; then - test "$pass" != scan && dependency_libs="$newdependency_libs" if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= @@ -2124,9 +3025,30 @@ compiler." 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" ;; *) @@ -2154,11 +3076,20 @@ compiler." eval $var=\"$tmp_libs\" done # for var fi - if test "$pass" = "conv" && - { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then - libs="$deplibs" # reset libs - deplibs= - fi + # 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 + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" @@ -2167,6 +3098,10 @@ compiler." case $linkmode in oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi @@ -2180,7 +3115,7 @@ compiler." fi if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 + $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then @@ -2202,17 +3137,19 @@ compiler." case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` @@ -2223,11 +3160,11 @@ compiler." if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 + exit $EXIT_FAILURE else - echo - echo "*** Warning: Linking the shared library $output against the non-libtool" - echo "*** objects $objs is not portable!" + $echo + $echo "*** Warning: Linking the shared library $output against the non-libtool" + $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi @@ -2246,14 +3183,16 @@ compiler." if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. - libext=al + # 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 if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then @@ -2269,45 +3208,83 @@ compiler." if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi - current="$2" - revision="$3" - age="$4" + # 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="$2" + number_minor="$3" + number_revision="$4" + # + # 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 + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac # Check that each of the things are valid numbers. case $current in - [0-9]*) ;; + 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]) ;; *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac case $revision in - [0-9]*) ;; + 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]) ;; *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac case $age in - [0-9]*) ;; + 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]) ;; *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Calculate the version variables. @@ -2324,6 +3301,7 @@ compiler." versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; @@ -2337,16 +3315,24 @@ compiler." versuffix=".$current"; ;; - irix) - major=`expr $current - $age + 1` - verstring="sgi$major.$revision" + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + major=`expr $current - $age` + else + major=`expr $current - $age + 1` + fi + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` - verstring="sgi$major.$iface:$verstring" + verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. @@ -2360,7 +3346,7 @@ compiler." ;; osf) - major=`expr $current - $age` + major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" @@ -2390,20 +3376,19 @@ compiler." *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= - verstring="0.0" case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely - verstring="" + verstring= ;; *) verstring="0.0" @@ -2437,9 +3422,30 @@ compiler." fi if test "$mode" != relink; then - # Remove our outputs. - $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" - $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* + # 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) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi fi # Now set the variables for building old libraries. @@ -2451,11 +3457,11 @@ compiler." fi # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'` - deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'` - dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'` - done + #for path in $notinst_path; do + # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` + # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` + # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` + #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. @@ -2505,10 +3511,16 @@ compiler." *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; - *-*-openbsd*) + *-*-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 "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" @@ -2537,7 +3549,7 @@ compiler." # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behaviour. + # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) @@ -2550,64 +3562,85 @@ compiler." int main() { return 0; } EOF $rm conftest - $CC -o conftest conftest.c $deplibs - if test "$?" -eq 0 ; then + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do - name="`expr $i : '-l\(.*\)'`" + name=`expr $i : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $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." + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$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 + deplib_match=$2 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$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 else newdeplibs="$newdeplibs $i" fi done else - # Error occured in the first compile. Let's try to salvage the situation: - # Compile a seperate program for each library. + # 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 - name="`expr $i : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then + name=`expr $i : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then $rm conftest - $CC -o conftest conftest.c $i - # Did it work? - if test "$?" -eq 0 ; then + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $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." + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$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 + deplib_match=$2 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$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." + $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 else newdeplibs="$newdeplibs $i" @@ -2619,13 +3652,22 @@ EOF set dummy $deplibs_check_method file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$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 # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then @@ -2638,35 +3680,36 @@ EOF # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | sed 's/.* -> //'` + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done - # It is ok to link against an archive when - # building a shared library. - if $AR -t $potlib > /dev/null 2>&1; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | sed 10q \ - | egrep "$file_magic_regex" > /dev/null; then + | ${SED} 10q \ + | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi - done - done + done + done + fi if test -n "$a_deplib" ; then droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $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 + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi fi else # Add a -L argument. @@ -2678,29 +3721,47 @@ EOF set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - if eval echo \"$potent_lib\" 2>/dev/null \ - | sed 10q \ - | egrep "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$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 + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done done - done + fi if test -n "$a_deplib" ; then droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $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 + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi fi else # Add a -L argument. @@ -2710,16 +3771,23 @@ EOF ;; none | unknown | *) newdeplibs="" - if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | - grep . >/dev/null; then - echo + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ + | grep . >/dev/null; then + $echo if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." + $echo "*** Warning: inter-library dependencies are not supported in this platform." else - echo "*** Warning: inter-library dependencies are not known to be supported." + $echo "*** Warning: inter-library dependencies are not known to be supported." fi - echo "*** All declared inter-library dependencies are being dropped." + $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; @@ -2739,17 +3807,17 @@ EOF if test "$droppeddeps" = yes; then if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - echo "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." + $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." + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -2759,16 +3827,16 @@ EOF 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." + $echo "*** The inter-library dependencies that have been dropped here will be" + $echo "*** automatically added whenever a program is linked with this library" + $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." + $echo + $echo "*** Since this library must not contain undefined symbols," + $echo "*** because either the platform does not support them or" + $echo "*** it was explicitly requested with -no-undefined," + $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -2783,6 +3851,35 @@ EOF deplibs=$newdeplibs fi + + # 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 "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). library_names= old_library= @@ -2826,7 +3923,14 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - eval dep_rpath=\"$hardcode_libdir_flag_spec\" + if test -n "$hardcode_libdir_flag_spec_ld"; then + case $archive_cmds in + *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; + *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; + esac + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -2846,6 +3950,7 @@ EOF 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 realname="$2" @@ -2856,31 +3961,17 @@ EOF else soname="$realname" fi - test -z "$dlname" && dlname=$soname + if test -z "$dlname"; then + dlname=$soname + fi lib="$output_objdir/$realname" + linknames= for link do linknames="$linknames $link" done - # Ensure that we have .o objects for linkers which dislike .lo - # (e.g. aix) in case we are running --disable-static - for obj in $libobjs; do - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - if test ! -f $xdir/$oldobj; then - $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" - $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? - fi - done - # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` @@ -2890,17 +3981,29 @@ EOF $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" + cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "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"; then - $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi @@ -2911,74 +4014,210 @@ EOF $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && 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 "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # 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 + output_la=`$echo "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 + 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~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + + $echo "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" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output - libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` - done + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" - fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. - # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi + # Do each of the archive commands. + if test "$module" = yes && 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 - # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" - else - eval cmds=\"$archive_cmds\" + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" - $run eval "$cmd" || exit $? + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(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 "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + + exit $EXIT_SUCCESS fi # Create links to the real library. @@ -3026,7 +4265,7 @@ EOF *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 + exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` @@ -3047,46 +4286,20 @@ EOF reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi @@ -3094,10 +4307,11 @@ EOF reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -3110,7 +4324,7 @@ EOF $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then @@ -3121,37 +4335,24 @@ EOF # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "echo timestamp > $libobj" - $run eval "echo timestamp > $libobj" || exit $? - exit 0 + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" - else - # Just create a symlink. - $show $rm $libobj - $run $rm $libobj - xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$libobj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - $show "(cd $xdir && $LN_S $oldobj $baseobj)" - $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? fi if test -n "$gentop"; then @@ -3159,12 +4360,12 @@ EOF $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS ;; prog) case $host in - *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;; + *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 @@ -3189,6 +4390,45 @@ EOF ;; esac + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + 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 "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" @@ -3233,10 +4473,15 @@ EOF fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac done @@ -3339,31 +4584,43 @@ extern \"C\" { done if test -n "$exclude_expsyms"; then - $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then - $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" + export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols - $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac else - $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" - name=`echo "$arg" | sed -e 's%^.*/%%'` - $run eval 'echo ": $name " >> "$nlist"' + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done @@ -3372,12 +4629,18 @@ extern \"C\" { test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then - egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S @@ -3386,7 +4649,7 @@ extern \"C\" { if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else - echo '/* NONE */' >> "$output_objdir/$dlsyms" + $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ @@ -3401,7 +4664,26 @@ extern \"C\" { #endif /* The mapping between symbol names and symbols. */ +" + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ +/* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ +struct { +" + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ const struct { +" + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } @@ -3438,30 +4720,43 @@ static const void *lt_preloaded_setup() { *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DPIC";; + *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac else @@ -3470,19 +4765,19 @@ static const void *lt_preloaded_setup() { # really was required. # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" - status=$? + exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then @@ -3490,7 +4785,7 @@ static const void *lt_preloaded_setup() { $run $rm "$output_objdir/${outputname}S.${objext}" fi - exit $status + exit $exit_status fi if test -n "$shlibpath_var"; then @@ -3549,7 +4844,7 @@ static const void *lt_preloaded_setup() { # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? - exit 0 + exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then @@ -3563,7 +4858,7 @@ static const void *lt_preloaded_setup() { if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` else # fast_install is set to needless relink_command= @@ -3600,14 +4895,14 @@ static const void *lt_preloaded_setup() { fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` fi # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else @@ -3619,15 +4914,376 @@ static const void *lt_preloaded_setup() { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in - *.exe) output=`echo $output|sed 's,.exe$,,'` ;; + *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in - *cygwin*) exeext=.exe ;; + *cygwin*) + exeext=.exe + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac - $rm $output - trap "$rm $output; exit 1" 1 2 15 + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + 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 + + cat > $cwrappersource <> $cwrappersource<<"EOF" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#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 +# 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 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" + return 127; +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("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; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +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]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + 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 = 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 ("getcwd failed"); + 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 ("getcwd failed"); + 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 * +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 (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL @@ -3643,12 +5299,26 @@ static const void *lt_preloaded_setup() { # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' +Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' +# Be Bourne compatible (taken from Autoconf:_AS_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. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" @@ -3681,7 +5351,7 @@ else test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` @@ -3694,7 +5364,7 @@ else fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. @@ -3703,12 +5373,12 @@ else " if test "$fast_install" = yes; then - echo >> $output "\ + $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" @@ -3719,7 +5389,7 @@ else $rm \"\$progdir/\$file\" fi" - echo >> $output "\ + $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then @@ -3727,7 +5397,7 @@ else else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" - exit 1 + exit $EXIT_FAILURE fi fi @@ -3737,13 +5407,13 @@ else $rm \"\$progdir/\$file\" fi" else - echo >> $output "\ + $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi - echo >> $output "\ + $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" @@ -3774,47 +5444,35 @@ else # Run the actual program with our arguments. " case $host in - # win32 systems need to use the prog path for dll - # lookup to work - *-*-cygwin* | *-*-pw32*) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ - # Export the path to the program. - PATH=\"\$progdir:\$PATH\" - export PATH - - exec \$program \${1+\"\$@\"} + exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 + \$echo \"\$0: cannot exec \$program \$*\" + exit $EXIT_FAILURE fi else # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 + \$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 + $echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit $EXIT_FAILURE fi fi\ " chmod +x $output fi - exit 0 + exit $EXIT_SUCCESS ;; esac @@ -3830,74 +5488,130 @@ fi\ oldobjs="$libobjs_save" build_libtool_libs=no else - oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` + oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" + cmds=$old_archive_from_new_cmds else - # Ensure that we have .o objects in place in case we decided - # not to build a shared library, and have fallen back to building - # static libs even though --disable-static was passed! - for oldobj in $oldobjs; do - if test ! -f $oldobj; then - xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$oldobj"; then - xdir="." - else - xdir="$xdir" + # 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 + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "copying selected object files to avoid basename conflicts..." + + if test -z "$gentop"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status fi - baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` - obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` - $show "(cd $xdir && ${LN_S} $obj $baseobj)" - $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? fi - done + + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + counter=`expr $counter + 1` + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + $run ln "$obj" "$gentop/$newobj" || + $run cp "$obj" "$gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_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 + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$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= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do + eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? @@ -3929,8 +5643,12 @@ fi\ fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + # Only create the output if not a dry run. if test -z "$run"; then @@ -3946,10 +5664,10 @@ fi\ case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; @@ -3960,10 +5678,10 @@ fi\ newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done @@ -3971,20 +5689,39 @@ fi\ newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file @@ -4013,6 +5750,9 @@ 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' @@ -4032,7 +5772,7 @@ relink_command=\"$relink_command\"" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac - exit 0 + exit $EXIT_SUCCESS ;; # libtool install mode @@ -4043,11 +5783,11 @@ relink_command=\"$relink_command\"" # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -4056,14 +5796,14 @@ relink_command=\"$relink_command\"" shift else install_prog= - arg="$nonopt" + arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -4081,28 +5821,31 @@ relink_command=\"$relink_command\"" do if test -n "$dest"; then files="$files $dest" - dest="$arg" + dest=$arg continue fi case $arg in -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; - -*) ;; - + -*) + ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else - dest="$arg" + dest=$arg continue fi ;; @@ -4111,7 +5854,7 @@ relink_command=\"$relink_command\"" # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac @@ -4121,13 +5864,13 @@ relink_command=\"$relink_command\"" if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -z "$files"; then @@ -4137,7 +5880,7 @@ relink_command=\"$relink_command\"" $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. @@ -4158,7 +5901,7 @@ relink_command=\"$relink_command\"" if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi case $destdir in @@ -4170,7 +5913,7 @@ relink_command=\"$relink_command\"" *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -4195,11 +5938,11 @@ relink_command=\"$relink_command\"" *.la) # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi library_names= @@ -4231,21 +5974,24 @@ relink_command=\"$relink_command\"" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. + # 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. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` else - relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` fi $echo "$modename: warning: relinking \`$file'" 1>&2 @@ -4253,7 +5999,7 @@ relink_command=\"$relink_command\"" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - continue + exit $EXIT_FAILURE fi fi @@ -4277,23 +6023,36 @@ relink_command=\"$relink_command\"" 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 if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" + cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" - $run eval "$cmd" || exit $? + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } done IFS="$save_ifs" fi @@ -4331,7 +6090,7 @@ relink_command=\"$relink_command\"" *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -4349,7 +6108,7 @@ relink_command=\"$relink_command\"" $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi - exit 0 + exit $EXIT_SUCCESS ;; *) @@ -4361,21 +6120,47 @@ relink_command=\"$relink_command\"" 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 + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo 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. + # # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 - exit 1 + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit $EXIT_FAILURE fi finalize=yes @@ -4397,31 +6182,25 @@ relink_command=\"$relink_command\"" done relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo 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. + # # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null` - if test $? = 0 ; then : - else - tmpdir="$tmpdir/libtool-$$" - fi - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : - else - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + tmpdir=`func_mktempdir` + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` $show "$relink_command" if $run eval "$relink_command"; then : @@ -4436,14 +6215,14 @@ relink_command=\"$relink_command\"" fi else # Install the binary that we compiled earlier. - file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another - # one anyways + # one anyway case $install_prog,$host in - /usr/bin/install*,*cygwin*) + */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok @@ -4452,7 +6231,7 @@ relink_command=\"$relink_command\"" destfile=$destfile.exe ;; *:*.exe) - destfile=`echo $destfile | sed -e 's,.exe$,,'` + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; @@ -4473,16 +6252,17 @@ relink_command=\"$relink_command\"" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - if test -n "$stripme" && test -n "$striplib"; then + if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" + cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -4496,9 +6276,9 @@ relink_command=\"$relink_command\"" if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -4517,10 +6297,11 @@ relink_command=\"$relink_command\"" for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" + cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" @@ -4537,43 +6318,43 @@ relink_command=\"$relink_command\"" fi # Exit here if they wanted silent mode. - test "$show" = : && exit 0 + test "$show" = : && exit $EXIT_SUCCESS - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" + $echo "X----------------------------------------------------------------------" | $Xsed + $echo "Libraries have been installed in:" for libdir in $libdirs; do - echo " $libdir" + $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:" + $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" + $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" + $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" + $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then - echo " - have your system administrator run these commands:$admincmds" + $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'" + $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi - echo - echo "See any operating system documentation about shared libraries for" - echo "more information, such as the ld(1) and ld.so(8) manual pages." - echo "----------------------------------------------------------------------" - exit 0 + $echo + $echo "See any operating system documentation about shared libraries for" + $echo "more information, such as the ld(1) and ld.so(8) manual pages." + $echo "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS ;; # libtool execute mode @@ -4585,7 +6366,7 @@ relink_command=\"$relink_command\"" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" - exit 1 + exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. @@ -4593,18 +6374,18 @@ relink_command=\"$relink_command\"" if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Read the libtool library. @@ -4630,8 +6411,10 @@ relink_command=\"$relink_command\"" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 + if test ! -f "$dir/$dlname"; then + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit $EXIT_FAILURE + fi fi ;; @@ -4671,7 +6454,7 @@ relink_command=\"$relink_command\"" -*) ;; *) # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; @@ -4694,13 +6477,13 @@ relink_command=\"$relink_command\"" eval "export $shlibpath_var" fi - # Restore saved enviroment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi + # Restore saved environment variables + for lt_var in LANG 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 + fi" + done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" @@ -4711,7 +6494,7 @@ relink_command=\"$relink_command\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -4739,18 +6522,19 @@ relink_command=\"$relink_command\"" if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi rmdirs= + origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. - objdir="$objdir" + objdir="$origobjdir" else - objdir="$dir/$objdir" + objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" @@ -4780,7 +6564,7 @@ relink_command=\"$relink_command\"" case $name in *.la) # Possibly a libtool archive, so verify it. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. @@ -4788,15 +6572,24 @@ relink_command=\"$relink_command\"" rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - if test "$mode" = uninstall; then + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" + cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -4808,10 +6601,11 @@ relink_command=\"$relink_command\"" if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" + cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -4821,27 +6615,58 @@ relink_command=\"$relink_command\"" IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. - fi + ;; + esac fi ;; *.lo) - if test "$build_old_libs" = yes; then - oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` - rmfiles="$rmfiles $dir/$oldobj" + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi fi ;; *) - # Do a test to see if this is a libtool program. - if test "$mode" = clean && - (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$file + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi fi fi ;; @@ -4849,6 +6674,7 @@ relink_command=\"$relink_command\"" $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done + objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do @@ -4864,20 +6690,20 @@ relink_command=\"$relink_command\"" "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd - exit 1 + exit $EXIT_FAILURE fi # We need to display help for each of the modes. @@ -4896,6 +6722,7 @@ Provide generalized library-building support services. --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: @@ -4909,8 +6736,10 @@ MODE must be one of the following: uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE." - exit 0 +a more detailed description of MODE. + +Report bugs to ." + exit $EXIT_SUCCESS ;; clean) @@ -5011,9 +6840,9 @@ The following components of LINK-COMMAND are treated specially: -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 + try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX - try to export only the symbols matching 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 @@ -5021,12 +6850,17 @@ The following components of LINK-COMMAND are treated specially: -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 + -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 - -static do not do any dynamic linking of libtool libraries + -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] + specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. @@ -5062,14 +6896,33 @@ Otherwise, only FILE itself is deleted using RM." *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac -echo +$echo $echo "Try \`$modename --help' for more information about other modes." -exit 0 +exit $? + +# The TAGs below are defined such that we never get into a situation +# in which 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 +disable_libs=shared +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +disable_libs=static +# ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script diff --git a/autoconf/missing b/autoconf/missing index dd583709f535918128e0f8d3b6a4fddf64c87cec..1c8ff7049d8f3aaa9741c53e7f3145d9b76a77d8 100755 --- a/autoconf/missing +++ b/autoconf/missing @@ -1,6 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -15,8 +19,8 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -29,6 +33,8 @@ if test $# -eq 0; then fi run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. @@ -38,18 +44,24 @@ else configure_ac=configure.in fi -case "$1" in +msg="missing on your system" + +case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in -h|--h|--he|--hel|--help) echo "\ @@ -67,6 +79,7 @@ Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c @@ -74,11 +87,15 @@ Supported PROGRAM values: lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" + echo "missing $scriptversion (GNU Automake)" + exit $? ;; -*) @@ -87,14 +104,44 @@ Supported PROGRAM values: exit 1 ;; - aclocal*) +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 fi + ;; +esac +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -102,13 +149,8 @@ WARNING: \`$1' is missing on your system. You should only need it if ;; autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -116,13 +158,8 @@ WARNING: \`$1' is missing on your system. You should only need it if ;; autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -130,7 +167,7 @@ WARNING: \`$1' is missing on your system. You should only need it if test -z "$files" && files="config.h" touch_files= for f in $files; do - case "$f" in + case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; @@ -140,13 +177,8 @@ WARNING: \`$1' is missing on your system. You should only need it if ;; automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -156,20 +188,15 @@ WARNING: \`$1' is missing on your system. You should only need it if ;; autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU + You can get \`$1' as part of \`Autoconf' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else @@ -185,74 +212,67 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your bison|yacc) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi - if [ ! -f y.tab.h ]; then + if test ! -f y.tab.h; then echo >y.tab.h fi - if [ ! -f y.tab.c ]; then + if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi - if [ ! -f lex.yy.c ]; then + if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then touch $file else test -z "$file" || exec >$file @@ -262,54 +282,58 @@ WARNING: \`$1' is missing on your system. You should only need it if ;; makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 touch $file ;; tar) shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then - gnutar ${1+"$@"} && exit 0 + gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then - gtar ${1+"$@"} && exit 0 + gtar "$@" && exit 0 fi firstarg="$1" if shift; then - case "$firstarg" in + case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" ${1+"$@"} && exit 0 + tar "$firstarg" "$@" && exit 0 ;; esac - case "$firstarg" in + case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" ${1+"$@"} && exit 0 + tar "$firstarg" "$@" && exit 0 ;; esac fi @@ -323,10 +347,10 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments. *) echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing + it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 @@ -334,3 +358,10 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your esac exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/config.h.in b/config.h.in index 7395a9bd40d4f811e245a07b465affa7d2fddcaf..46133feed9652ecbe0ce96f06e7fd5719fd385aa 100644 --- a/config.h.in +++ b/config.h.in @@ -1,14 +1,58 @@ /* config.h.in. Generated from configure.ac by autoheader. */ +/* BLAS header filename. */ +#undef ATLAS_BLAS_H + +/* CLAPACK header filename. */ +#undef ATLAS_LAPACK_H + /* Archive creation date */ #undef DATE +/* FFTW header filename. */ +#undef FFTW_H + /* Define to 1 if you have the `atexit' function. */ #undef HAVE_ATEXIT +/* Define if you have the ATLAS libraries and header files. */ +#undef HAVE_ATLAS + +/* Define to 1 if you have the header file. */ +#undef HAVE_ATLAS_CBLAS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ATLAS_CLAPACK_H + +/* Define if you have the parallel ATLAS libraries. */ +#undef HAVE_ATLAS_MP + +/* Define to 1 if you have the header file. */ +#undef HAVE_CBLAS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CLAPACK_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H +/* Define if you have the FFTW double precision libraries and header files. */ +#undef HAVE_FFTW + +/* Define if you have the FFTW single precision libraries and header files. */ +#undef HAVE_FFTWF + +/* Define if you have the FFTW single precision multithreaded libraries and + header files. */ +#undef HAVE_FFTWFT + +/* Define if you have the FFTW double precision multithreaded libraries and + header files. */ +#undef HAVE_FFTWT + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO @@ -21,15 +65,23 @@ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `cblas' library (-lcblas). */ +#undef HAVE_LIBCBLAS + +/* Define to 1 if you have the `lapack' library (-llapack). */ +#undef HAVE_LIBLAPACK + /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM +/* Define to 1 if you have the `ptcblas' library (-lptcblas). */ +#undef HAVE_LIBPTCBLAS + /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#undef HAVE_MALLOC +/* Define to 1 if you have the `logf' function. */ +#undef HAVE_LOGF /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H @@ -55,6 +107,12 @@ /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP +/* Define if you have POSIX threads libraries and header files. */ +#undef HAVE_PTHREAD + +/* Define to 1 if you have the `sincos' function. */ +#undef HAVE_SINCOS + /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG @@ -111,6 +169,10 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define to the necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE @@ -123,9 +185,15 @@ /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME +/* Triggers multhreading */ +#undef USE_THREADS + /* Version number of package */ #undef VERSION +/* Default URL of the XSLT filter */ +#undef XSL_URL + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS @@ -141,13 +209,10 @@ /* Define to `int' if doesn't define. */ #undef gid_t -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to `long' if does not define. */ +/* Define to `long int' if does not define. */ #undef off_t -/* Define to `unsigned' if does not define. */ +/* Define to `unsigned int' if does not define. */ #undef size_t /* Define to `int' if doesn't define. */ diff --git a/configure b/configure index 3bab1ba35973b8efc446cb5b9c809df34b9d088b..b57fc70188c52d6182a522ad9d30455274960462 100755 --- a/configure +++ b/configure @@ -1,27 +1,56 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for sextractor 2.5.0. +# Generated by GNU Autoconf 2.61 for sextractor 2.8.2. # # Report bugs to . # -# Copyright (C) 2003 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be Bourne compatible +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -31,8 +60,43 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' @@ -46,18 +110,19 @@ do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else - $as_unset $as_var + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +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 +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -65,157 +130,388 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || + X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +# CDPATH. +$as_unset CDPATH -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no fi + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in + case $as_dir in /*) - if ("$as_dir/$as_base" -c ' + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || + chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" # Exit status is that of the last command. exit } -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +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=: @@ -224,7 +520,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -233,86 +550,360 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" -# CDPATH. -$as_unset CDPATH +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac -exec 6>&1 +echo=${ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi -# Identity of this package. -PACKAGE_NAME='sextractor' +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +tagnames=${tagnames+${tagnames},}CXX + +tagnames=${tagnames+${tagnames},}F77 + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='sextractor' PACKAGE_TARNAME='sextractor' -PACKAGE_VERSION='2.5.0' -PACKAGE_STRING='sextractor 2.5.0' +PACKAGE_VERSION='2.8.2' +PACKAGE_STRING='sextractor 2.8.2' PACKAGE_BUGREPORT='bertin@iap.fr' ac_unique_file="src/makeit.c" # Factoring default headers for most tests. ac_includes_default="\ #include -#if HAVE_SYS_TYPES_H +#ifdef HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H # include #endif -#if STDC_HEADERS +#ifdef STDC_HEADERS # include # include #else -# if HAVE_STDLIB_H +# ifdef HAVE_STDLIB_H # include # endif #endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif -#if HAVE_STRINGS_H +#ifdef HAVE_STRINGS_H # include #endif -#if HAVE_INTTYPES_H +#ifdef HAVE_INTTYPES_H # include -#else -# if HAVE_STDINT_H -# include -# endif #endif -#if HAVE_UNISTD_H +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar PACKAGER DATE2 DATE3 CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP EGREP LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +PACKAGER +DATE2 +DATE3 +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +SED +GREP +EGREP +LN_S +ECHO +AR +RANLIB +CPP +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +CXXCPP +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +LIBOBJS +PTHREAD_CC +PTHREAD_LIBS +PTHREAD_CFLAGS +USE_THREADS_TRUE +USE_THREADS_FALSE +FFTW_LIBS +FFTW_ERROR +ATLAS_LIBPATH +ATLAS_CFLAGS +ATLAS_LIB +ATLAS_ERROR +LTLIBOBJS' ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +F77 +FFLAGS' + # Initialize some variables set by options. ac_init_help= @@ -339,34 +930,48 @@ x_libraries=NONE # 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' -datadir='${prefix}/share' +datarootdir='${prefix}/share' +datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' +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" + eval $ac_prev=\$ac_option ac_prev= continue fi - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_option in + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -388,33 +993,45 @@ do --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) + -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -441,6 +1058,12 @@ do -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 ;; @@ -465,13 +1088,16 @@ do | --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 | --local | --loca | --loc | --lo) + | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -536,6 +1162,16 @@ do | --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 ;; @@ -588,24 +1224,20 @@ do -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. @@ -636,8 +1268,7 @@ Try \`$0 --help' for more information." >&2 expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" + eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) @@ -657,27 +1288,19 @@ if test -n "$ac_prev"; then { (exit 1); exit 1; }; } fi -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir do - eval ac_val=$`echo $ac_var` + eval ac_val=\$$ac_var case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' @@ -704,74 +1327,76 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + 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 + if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } - fi fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP + 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. @@ -780,7 +1405,7 @@ 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 sextractor 2.5.0 to adapt to many kinds of systems. +\`configure' configures sextractor 2.8.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -800,9 +1425,6 @@ Configuration: -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] -_ACEOF - - cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] @@ -820,15 +1442,22 @@ 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] - --datadir=DIR read-only architecture-independent data [PREFIX/share] --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] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] + --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/sextractor] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -837,12 +1466,16 @@ 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] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sextractor 2.5.0:";; + short | recursive ) echo "Configuration of sextractor 2.8.2:";; esac cat <<\_ACEOF @@ -851,141 +1484,142 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-icc Enable special mode for compilation with the Intel compiler (off by default) - --enable-gprof Enable special mode for compilation with the gprof - profiler (off by default) - --enable-static Enable static linking (off by default) --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors + --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-largefile omit support for large files + --enable-threads[=] + Enable multhreading (on with up to $n_pthreads + threads by default) + --enable-gprof Enable special mode for compilation with the gprof + profiler (off by default) + --enable-static Enable static linking (off by default) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] + --with-atlas= + Provide an alternative path to the ATLAS library + --with-atlas-incdir= + Provide an alternative path to the ATLAS include + directory + --with-fftw= + Provide an alternative path to the FFTW library + --with-fftw-incdir= + Provide an alternative path to the FFTW include + directory + --with-xsl_url= + Provide an alternative default URL of the XSLT + filter Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + F77 Fortran 77 compiler command + FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF +ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. - ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue + test -d "$ac_dir" || continue ac_builddir=. -if test "$ac_dir" != .; then +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + 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 ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; + 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 - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style 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 - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } done fi -test -n "$ac_init_help" && exit 0 +test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sextractor configure 2.5.0 -generated by GNU Autoconf 2.59 +sextractor configure 2.8.2 +generated by GNU Autoconf 2.61 -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF - exit 0 + exit fi -exec 5>config.log -cat >&5 <<_ACEOF +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 sextractor $as_me 2.5.0, which was -generated by GNU Autoconf 2.59. Invocation command line was +It was created by sextractor $as_me 2.8.2, which was +generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF +exec 5>>config.log { cat <<_ASUNAME ## --------- ## @@ -1004,7 +1638,7 @@ uname -v = `(uname -v) 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` -hostinfo = `(hostinfo) 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` @@ -1018,6 +1652,7 @@ do test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done +IFS=$as_save_IFS } >&5 @@ -1039,7 +1674,6 @@ _ACEOF ac_configure_args= ac_configure_args0= ac_configure_args1= -ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1050,7 +1684,7 @@ do -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in @@ -1072,9 +1706,7 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " + ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done @@ -1085,8 +1717,8 @@ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_ # 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: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. +# 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. { @@ -1099,20 +1731,34 @@ trap 'exit_status=$? _ASBOX echo # The following way of writing the cache mishandles newlines in values, -{ +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) + 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" - ;; + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} + esac | + sort +) echo cat <<\_ASBOX @@ -1123,22 +1769,28 @@ _ASBOX echo for ac_var in $ac_subst_vars do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## +## ------------------- ## +## File substitutions. ## +## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1150,26 +1802,24 @@ _ASBOX ## ----------- ## _ASBOX echo - sed "/^$/d" confdefs.h | sort + cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status - ' 0 +' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h +rm -f -r conftest* confdefs.h # Predefined preprocessor variables. @@ -1200,14 +1850,17 @@ _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" fi -for ac_site_file in $CONFIG_SITE; do +shift +for ac_site_file +do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} @@ -1220,12 +1873,11 @@ done # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do +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" + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 @@ -1250,8 +1902,7 @@ echo "$as_me: current value: $ac_new_val" >&2;} # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1268,12 +1919,6 @@ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start ov { (exit 1); exit 1; }; } fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - @@ -1298,37 +1943,49 @@ 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 ac_aux_dir= -for ac_dir in autoconf $srcdir/autoconf; do - if test -f $ac_dir/install-sh; then +for ac_dir in autoconf "$srcdir"/autoconf; 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 + 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 + elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&2;} + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf \"$srcdir\"/autoconf" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in autoconf \"$srcdir\"/autoconf" >&2;} { (exit 1); exit 1; }; } fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - ac_config_headers="$ac_config_headers config.h" +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +ac_config_headers="$ac_config_headers config.h" + +am__api_version='1.10' -am__api_version="1.9" # 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: @@ -1342,8 +1999,8 @@ am__api_version="1.9" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1365,7 +2022,7 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -1384,21 +2041,22 @@ case $as_dir/ in ;; esac done +IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will + # 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 path is relative. + # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -1408,8 +2066,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file @@ -1451,20 +2109,20 @@ echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" + 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" + program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed +rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` @@ -1479,45 +2137,60 @@ else echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" else - mkdir_p='$(install_sh) -d' + # 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. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" fi fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1530,54 +2203,57 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + test -n "$AWK" && break done -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF +SHELL = /bin/sh all: - @echo 'ac_maketemp="$(MAKE)"' + @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi +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 \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } SET_MAKE= else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -1590,12 +2266,16 @@ else fi rmdir .tst 2>/dev/null -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +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 + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } + fi fi # test whether we have cygpath @@ -1610,7 +2290,7 @@ fi # Define the identity of the package. PACKAGE='sextractor' - VERSION='2.5.0' + VERSION='2.8.2' cat >>confdefs.h <<_ACEOF @@ -1638,7 +2318,7 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -install_sh=${install_sh-"$am_aux_dir/install-sh"} +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right @@ -1648,8 +2328,8 @@ 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1662,32 +2342,34 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1700,33 +2382,47 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi - STRIP=$ac_ct_STRIP + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi else STRIP="$ac_cv_prog_STRIP" fi fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. @@ -1758,9 +2454,34 @@ DATE3="$date3" # Include macros + + + + + + + + +# URBI_RESOLVE_DIR_PREPARE +# ------------------------ +# Define urbi_resolve_dir. + + + +# PATH URBI_RESOLVE_DIR(DIR) +# -------------------------- +# Return the DIR with all inner variables expanded. + + + +## Local Variables: +## mode: autoconf +## End: + + # Display pakage and version number -echo "$as_me:$LINENO: result: *********** Configuring: $PACKAGE $VERSION ($date) **********" >&5 -echo "${ECHO_T}*********** Configuring: $PACKAGE $VERSION ($date) **********" >&6 +{ echo "$as_me:$LINENO: result: *********** Configuring: $PACKAGE $VERSION ($date) **********" >&5 +echo "${ECHO_T}*********** Configuring: $PACKAGE $VERSION ($date) **********" >&6; } # Initialize the list of compilers to consider cclist="cc gcc" @@ -1772,53 +2493,29 @@ myldflags="$LDFLAGS" LDFLAGS="" # Provide special option for the Linux Intel C compiler -echo "$as_me:$LINENO: checking for Linux Intel C compiler mode" >&5 -echo $ECHO_N "checking for Linux Intel C compiler mode... $ECHO_C" >&6 -# Check whether --enable-icc or --disable-icc was given. +{ echo "$as_me:$LINENO: checking for Linux Intel C compiler mode" >&5 +echo $ECHO_N "checking for Linux Intel C compiler mode... $ECHO_C" >&6; } +# Check whether --enable-icc was given. if test "${enable_icc+set}" = set; then - enableval="$enable_icc" - use_icc="yes" + enableval=$enable_icc; use_icc="yes" cclist="icc $cclist" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } else use_icc="no" - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi; - -# Provide special option for gprof profiling -echo "$as_me:$LINENO: checking for gprof profiler mode" >&5 -echo $ECHO_N "checking for gprof profiler mode... $ECHO_C" >&6 -# Check whether --enable-gprof or --disable-gprof was given. -if test "${enable_gprof+set}" = set; then - enableval="$enable_gprof" - use_gprof="yes" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - use_gprof="no" - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi; + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi -# Enable static linking -echo "$as_me:$LINENO: checking static linking" >&5 -echo $ECHO_N "checking static linking... $ECHO_C" >&6 -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - use_static="yes" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - use_static="no" - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi; # Checks for programs. # GCC is chosen last because it is likely to yield less optimized code +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' @@ -1829,8 +2526,8 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1843,25 +2540,27 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + test -n "$CC" && break done fi @@ -1871,8 +2570,8 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1885,29 +2584,45 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + test -n "$ac_ct_CC" && break done - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi fi @@ -1918,21 +2633,35 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 +echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } @@ -1957,47 +2686,77 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out + # 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 | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. break;; * ) break;; esac done +test "$ac_cv_exeext" = no && ac_cv_exeext= + else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -2009,19 +2768,21 @@ See \`config.log' for more details." >&2;} fi ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 -# Check the compiler produces executables we can run. If not, either +# Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then @@ -2040,22 +2801,27 @@ See \`config.log' for more details." >&2;} fi fi fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either +# Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then @@ -2066,9 +2832,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 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 | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext break;; * ) break;; esac @@ -2082,14 +2847,14 @@ See \`config.log' for more details." >&2;} fi rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2109,14 +2874,20 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + 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 ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac @@ -2134,12 +2905,12 @@ fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2162,50 +2933,49 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2221,59 +2991,139 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" else CFLAGS= fi fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_prog_cc_stdc=no + ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2307,12 +3157,17 @@ static char *f (char * (*g) (char **, int), char **p, ...) /* 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 -std1 is added to get + 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 -std1. */ + 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);}; @@ -2327,205 +3182,57 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break done -rm -f conftest.$ac_ext conftest.$ac_objext +rm -f conftest.$ac_ext CC=$ac_save_CC fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2533,7 +3240,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" - ac_config_commands="$ac_config_commands depfiles" +ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} @@ -2543,8 +3250,8 @@ am__doit: .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none @@ -2571,22 +3278,20 @@ if test "$am__include" = "#"; then fi -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. +# Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" + enableval=$enable_dependency_tracking; +fi -fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi - - -if test "x$enable_dependency_tracking" != xno; then + if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else @@ -2596,11 +3301,10 @@ fi - depcc="$CC" am_compiler_list= -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2664,6 +3368,7 @@ else depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} 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 sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then @@ -2689,13 +3394,11 @@ else fi fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - -if + if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= @@ -2706,7 +3409,7 @@ else fi -# C Compiler: Check that it is ANSI C +# C Compiler: Check that it is ANSI C and POSIX-compliant ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2715,8 +3418,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2729,32 +3432,34 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2767,36 +3472,51 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2809,74 +3529,34 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi + fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2890,7 +3570,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2901,6 +3581,7 @@ do 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. @@ -2918,22 +3599,23 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2946,36 +3628,38 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -2988,29 +3672,45 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } fi + test -n "$ac_ct_CC" && break done - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi fi fi @@ -3023,27 +3723,41 @@ See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 +echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -3066,50 +3780,49 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -3125,59 +3838,139 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_prog_cc_stdc=no + ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3211,12 +4004,17 @@ static char *f (char * (*g) (char **, int), char **p, ...) /* 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 -std1 is added to get + 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 -std1. */ + 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);}; @@ -3231,205 +4029,57 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break done -rm -f conftest.$ac_ext conftest.$ac_objext +rm -f conftest.$ac_ext CC=$ac_save_CC fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3438,8 +4088,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -3503,6 +4153,7 @@ else depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} 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 sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then @@ -3528,13 +4179,11 @@ else fi fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - -if + if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= @@ -3548,15 +4197,13 @@ fi am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -# C Compiler: Check that it is POSIX-compliant -echo "$as_me:$LINENO: checking for library containing strerror" >&5 -echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking for library containing strerror" >&5 +echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; } if test "${ac_cv_search_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS -ac_cv_search_strerror=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3564,122 +4211,80 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char strerror (); int main () { -strerror (); +return strerror (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_strerror="none required" + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_strerror=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_strerror" = no; then - for ac_lib in cposix; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -int -main () -{ -strerror (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_strerror="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +fi +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_strerror+set}" = set; then + break fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done +done +if test "${ac_cv_search_strerror+set}" = set; then + : +else + ac_cv_search_strerror=no fi +rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 -echo "${ECHO_T}$ac_cv_search_strerror" >&6 -if test "$ac_cv_search_strerror" != no; then - test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS" +{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 +echo "${ECHO_T}$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi msg="for C compiler optimization flags" - echo "$as_me:$LINENO: checking $msg" >&5 -echo $ECHO_N "checking $msg... $ECHO_C" >&6 + { echo "$as_me:$LINENO: checking $msg" >&5 +echo $ECHO_N "checking $msg... $ECHO_C" >&6; } if test "${prog_cc_optim_flags+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -3689,228 +4294,19637 @@ else int main(int argc, char **argv) { return 0; } EOF - if test "$GCC" = "yes"; then - prog_cc_optim_flags="-O -funroll-loops -fomit-frame-pointer -Wall -g" + if $CC -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && + $CC -c -O conftest.c > /dev/null 2>&1 && + test -f conftest.o; then + prog_cc_optim_flags="-O3 -axWPTS -ip -no-prec-div -unroll" + prog_ld_optim_flags="-static-intel" + + elif $CC -V 2>&1 | grep -i "Intel(R)" > /dev/null 2>&1 && + $CC -c -O conftest.c > /dev/null 2>&1 && + test -f conftest.o; then + prog_cc_optim_flags="-O -axKWNPTS -ip -no-prec-div" + prog_ld_optim_flags="-static-intel" + + elif test "$GCC" = "yes"; then + prog_cc_optim_flags="-O3 -g -funroll-loops -fomit-frame-pointer -Wall" + prog_ld_optim_flags="" elif $CC -V 2>&1 | grep -i "WorkShop" > /dev/null 2>&1 && $CC -c -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O" + prog_ld_optim_flags="" elif ($CC -V 2>&1 | grep -i "Digital UNIX Compiler"> /dev/null 2>&1 || $CC -V 2>&1 | grep -i "Compaq C"> /dev/null 2>&1) && $CC -c -fast conftest.c > /dev/null 2>&1 && test -f conftest.o; then - prog_cc_optim_flags="-fast -tune host" + prog_cc_optim_flags="-fast -tune host" + prog_ld_optim_flags="" elif $CC 2>&1 | grep -i "C for AIX Compiler" > /dev/null 2>&1 && $CC -c -qinfo=all -O2 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O2" + prog_ld_optim_flags="" elif $CC -version 2>&1 | grep -i "MIPSpro Compilers" > /dev/null 2>&1 && $CC -c -fullwarn -O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O3" + prog_ld_optim_flags="" elif what $CC 2>&1 | grep -i "HP C Compiler" > /dev/null 2>&1 && $CC -c -Aa +O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="+O3" + prog_ld_optim_flags="" elif $CC -V 2>&1 | grep "/SX" > /dev/null 2>&1 && $CC -c -Xc -O conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O" + prog_ld_optim_flags="" elif $CC -V 2>&1 | grep -i "Cray" > /dev/null 2>&1 && $CC -c -h conform -O3 conftest.c > /dev/null 2>&1 && test -f conftest.o; then prog_cc_optim_flags="-O3" + prog_ld_optim_flags="" fi rm -f conftest.* fi if test -n "$prog_cc_optim_flags"; then CFLAGS="$CFLAGS $prog_cc_optim_flags" + LDFLAGS="$LDFLAGS $prog_ld_optim_flags" else - prog_cc_optim_flags="unknown" + prog_cc_optim_flags="" + prog_ld_optim_flags="" fi fi -echo "$as_me:$LINENO: result: $prog_cc_optim_flags" >&5 -echo "${ECHO_T}$prog_cc_optim_flags" >&6 +{ echo "$as_me:$LINENO: result: $prog_cc_optim_flags" >&5 +echo "${ECHO_T}$prog_cc_optim_flags" >&6; } -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +# 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 -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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - + enable_static=no fi + + + +#AC_DISABLE_SHARED +# 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 -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 + + +# 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 - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + enable_fast_install=yes fi + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. as_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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + +fi + +SED=$lt_cv_path_SED + +{ echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6; } + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done done + done +IFS=$as_save_IFS + - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 + else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cv_path_GREP=$GREP fi - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" + fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - # 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/* ) ;; + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) - # 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_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 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + 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 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +NM="$lt_cv_path_NM" + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given 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 +aix4* | aix5*) + 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 + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +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 + ;; + +gnu*) + 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]) 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 Linux ELF. +linux* | k*bsd*-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=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + 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 + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + +# 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 whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 5181 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|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*) + libsuff=64 + 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" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + 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" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + + +esac + +need_locks="$enable_libtool_lock" + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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'. + 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_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + 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 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + 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 + ;; + none) break ;; + esac + # 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. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} 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 sub/conftest.${OBJEXT-o} 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_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +fi + + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + { echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$F77" && break + done +fi +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_F77="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_F77" && break +done + + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_f77_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_prog_f77_g=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi +else + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi +fi + +G77=`test $ac_compiler_gnu = yes && echo yes` +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 + + + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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*) + # 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; + ;; + + 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; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + 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"; 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 + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + 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 + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi + + + + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + 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 + +# 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 + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Try without a prefix undercore, 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. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +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 + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='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 avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$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 + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_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 <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_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 <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +enable_dlopen=no +enable_win32_dll=no + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +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 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 conftest* + + + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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" + # 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:7924: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7928: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + 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 + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + hpux*) + # 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='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + 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 "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + 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' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # 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' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # 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='' + ;; + esac + ;; + esac + ;; + + 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*) + 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 + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_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" + # 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:8214: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8218: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } + +if test x"$lt_prog_compiler_pic_works" = xyes; 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 +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works=yes + fi + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } + +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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:8318: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8322: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + archive_cmds= + archive_expsym_cmds= + old_archive_From_new_cmds= + old_archive_from_expsyms_cmds= + export_dynamic_flag_spec= + whole_archive_flag_spec= + thread_safe_flag_spec= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + always_export_symbols=no + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an 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_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # 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 2>/dev/null` in + *\ [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 + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + 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 (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + 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 + ;; + + 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* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + 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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # 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; $echo \"$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' ;; + 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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; 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 + 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 $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' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + 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 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$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 $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; 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 "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + 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")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + 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_libdir_separator=':' + link_all_deplibs=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + 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 "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # 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_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $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. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # 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 `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + hardcode_direct=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 "$GCC" = yes -a "$with_gnu_ld" = no; 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 ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${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' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=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 "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + 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 + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${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 ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + 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' + 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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + 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 "$GCC" = yes; 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 can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + 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='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +# +# 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 "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 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:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +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" + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then + # 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 -e 's/;/ /g'` + else + lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`echo $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${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 + 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 + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/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 + 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=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + 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=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# 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" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + 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 + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&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 +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&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 +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + +# Report which library types will actually be built +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler \ + CC \ + LD \ + lt_prog_compiler_wl \ + lt_prog_compiler_pic \ + lt_prog_compiler_static \ + lt_prog_compiler_no_builtin_flag \ + export_dynamic_flag_spec \ + thread_safe_flag_spec \ + whole_archive_flag_spec \ + enable_shared_with_static_runtimes \ + old_archive_cmds \ + old_archive_from_new_cmds \ + predep_objects \ + postdep_objects \ + predeps \ + postdeps \ + compiler_lib_search_path \ + archive_cmds \ + archive_expsym_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + old_archive_from_expsyms_cmds \ + allow_undefined_flag \ + no_undefined_flag \ + export_symbols_cmds \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ + hardcode_automatic \ + module_cmds \ + module_expsym_cmds \ + lt_cv_prog_compiler_c_o \ + fix_srcfile_path \ + exclude_expsyms \ + include_expsyms; do + + case $var in + old_archive_cmds | \ + old_archive_from_new_cmds | \ + archive_cmds | \ + archive_expsym_cmds | \ + module_cmds | \ + module_expsym_cmds | \ + old_archive_from_expsyms_cmds | \ + export_symbols_cmds | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + { echo "$as_me:$LINENO: creating $ofile" >&5 +echo "$as_me: creating $ofile" >&6;} + + cat <<__EOF__ >> "$cfgfile" +#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed 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//" + +# 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$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 + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# 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 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 + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # 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" + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +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" + + +# Check whether --with-tags was given. +if test "${with_tags+set}" = set; then + withval=$with_tags; tagnames="$withval" +fi + + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + else + { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in + "") ;; + *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +echo "$as_me: error: invalid tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { (exit 1); exit 1; }; } + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$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(int, char *[]) { return(0); }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# 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 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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +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++"} +compiler=$CC +compiler_CXX=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +else + lt_prog_compiler_no_builtin_flag_CXX= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + 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 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${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 + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + 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. + archive_cmds_CXX='$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 "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +ld_shlibs_CXX=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=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_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # 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_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$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. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${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_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + archive_cmds_CXX='$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' + fi + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_CXX=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs_CXX=no + ;; + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + gnu*) + ;; + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=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 + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=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 + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$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; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 + ld_shlibs_CXX=no + fi + ;; + esac + ;; + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${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_CXX='$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_CXX='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++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + ;; + linux* | k*bsd*-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. + archive_cmds_CXX='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' + archive_expsym_cmds_CXX='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; echo $list' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # 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."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$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 + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$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' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$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 + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # 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=`echo $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; echo $list' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # 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. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=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::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + else + ld_shlibs_CXX=no + fi + ;; + osf3*) + 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. + archive_cmds_CXX='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' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # 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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # 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 "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + 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. + archive_cmds_CXX='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' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='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' + + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # 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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # 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 "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$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' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=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?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # 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. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$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. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # 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. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; +esac +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +GCC_CXX="$GXX" +LD_CXX="$LD" + + +cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; 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 + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p 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 "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$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 "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$rm -f confest.$objext + +# PORTME: override above test on systems where it is broken +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. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + # + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + +lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32*) + # 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_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + 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_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # 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*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--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 + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_CXX='-qnocommon' + lt_prog_compiler_wl_CXX='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+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_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-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_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # 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:13189: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:13193: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_CXX=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_CXX=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_CXX=yes + fi + else + lt_prog_compiler_static_works_CXX=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=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:13293: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:13297: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_CXX=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 .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/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 + 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=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + 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=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || \ + test -n "$runpath_var_CXX" || \ + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + fix_srcfile_path_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do + + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_CXX +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_CXX + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# 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_CXX + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +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 +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +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 + + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + +archive_cmds_need_lc_F77=no +allow_undefined_flag_F77= +always_export_symbols_F77=no +archive_expsym_cmds_F77= +export_dynamic_flag_spec_F77= +hardcode_direct_F77=no +hardcode_libdir_flag_spec_F77= +hardcode_libdir_flag_spec_ld_F77= +hardcode_libdir_separator_F77= +hardcode_minus_L_F77=no +hardcode_automatic_F77=no +module_cmds_F77= +module_expsym_cmds_F77= +link_all_deplibs_F77=unknown +old_archive_cmds_F77=$old_archive_cmds +no_undefined_flag_F77= +whole_archive_flag_spec_F77= +enable_shared_with_static_runtimes_F77=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +objext_F77=$objext + +# 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. + +# 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 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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +compiler_F77=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +GCC_F77="$G77" +LD_F77="$LD" + +lt_prog_compiler_wl_F77= +lt_prog_compiler_pic_F77= +lt_prog_compiler_static_F77= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_static_F77='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_F77='-fno-common' + ;; + + 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_F77=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_F77=-Kconform_pic + fi + ;; + + hpux*) + # 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_F77='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_F77='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + else + lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_F77='-qnocommon' + lt_prog_compiler_wl_F77='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_F77='-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_F77='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_F77='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_F77='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-fpic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_F77='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + lt_prog_compiler_wl_F77='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + lt_prog_compiler_wl_F77='' + ;; + esac + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_F77='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static_F77='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_F77='-Qoption ld ';; + *) + lt_prog_compiler_wl_F77='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_F77='-Qoption ld ' + lt_prog_compiler_pic_F77='-PIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_F77='-Kconform_pic' + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_can_build_shared_F77=no + ;; + + uts4*) + lt_prog_compiler_pic_F77='-pic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_F77"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_F77=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_F77" + # 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:14857: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14861: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_F77=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } + +if test x"$lt_prog_compiler_pic_works_F77" = xyes; then + case $lt_prog_compiler_pic_F77 in + "" | " "*) ;; + *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; + esac +else + lt_prog_compiler_pic_F77= + lt_prog_compiler_can_build_shared_F77=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_F77= + ;; + *) + lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_F77=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_F77=yes + fi + else + lt_prog_compiler_static_works_F77=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } + +if test x"$lt_prog_compiler_static_works_F77" = xyes; then + : +else + lt_prog_compiler_static_F77= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_F77=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:14961: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14965: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_F77=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 .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_F77= + enable_shared_with_static_runtimes_F77=no + archive_cmds_F77= + archive_expsym_cmds_F77= + old_archive_From_new_cmds_F77= + old_archive_from_expsyms_cmds_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + thread_safe_flag_spec_F77= + hardcode_libdir_flag_spec_F77= + hardcode_libdir_flag_spec_ld_F77= + hardcode_libdir_separator_F77= + hardcode_direct_F77=no + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=unsupported + link_all_deplibs_F77=unknown + hardcode_automatic_F77=no + module_cmds_F77= + module_expsym_cmds_F77= + always_export_symbols_F77=no + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_F77= + # 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_F77="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_F77=yes + if test "$with_gnu_ld" = yes; 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_F77='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_F77='${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_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_F77= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [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 + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_F77='$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_F77='-L$libdir' + hardcode_minus_L_F77=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_F77=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_F77=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=no + enable_shared_with_static_runtimes_F77=yes + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_F77=no + fi + ;; + + interix[3-9]*) + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${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_F77='$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_F77='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* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_F77='$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 + else + ld_shlibs_F77=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $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_F77=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_F77=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + + if test "$ld_shlibs_F77" = no; then + runpath_var= + hardcode_libdir_flag_spec_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=yes + archive_expsym_cmds_F77='$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_F77=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_F77=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + 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_F77='' + hardcode_direct_F77=yes + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_F77=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_F77=yes + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_libdir_separator_F77= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # 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_F77=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_F77='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_F77="-z nodefs" + archive_expsym_cmds_F77="\$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. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${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_F77=' ${wl}-bernotok' + allow_undefined_flag_F77=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_F77='$convenience' + archive_cmds_need_lc_F77=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_F77='$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_F77='-L$libdir' + hardcode_minus_L_F77=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_F77=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_F77=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_F77=' ' + allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_F77='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_F77='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_F77=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_F77=no + hardcode_direct_F77=no + hardcode_automatic_F77=yes + hardcode_shlibpath_var_F77=unsupported + whole_archive_flag_spec_F77='' + link_all_deplibs_F77=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_F77=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + freebsd1*) + ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -shared -fPIC ${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_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_F77='+b $libdir' + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + ;; + *) + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + link_all_deplibs_F77=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + newsos6) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_shlibpath_var_F77=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + ;; + *) + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs_F77=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + allow_undefined_flag_F77=unsupported + archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_F77='-rpath $libdir' + fi + hardcode_libdir_separator_F77=: + ;; + + solaris*) + no_undefined_flag_F77=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$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' + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_shlibpath_var_F77=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs_F77=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_F77='$CC -r -o $output$reload_objs' + hardcode_direct_F77=no + ;; + motorola) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv4.3*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_F77=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_F77='${wl}-z,text' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_F77='${wl}-z,text' + allow_undefined_flag_F77='${wl}-z,nodefs' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + export_dynamic_flag_spec_F77='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + *) + ld_shlibs_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +echo "${ECHO_T}$ld_shlibs_F77" >&6; } +test "$ld_shlibs_F77" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_F77" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_F77=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_F77 in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_F77 + pic_flag=$lt_prog_compiler_pic_F77 + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_F77 + allow_undefined_flag_F77= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_F77=no + else + archive_cmds_need_lc_F77=yes + fi + allow_undefined_flag_F77=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/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 + 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=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + 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=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_F77= +if test -n "$hardcode_libdir_flag_spec_F77" || \ + test -n "$runpath_var_F77" || \ + test "X$hardcode_automatic_F77" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_F77" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && + test "$hardcode_minus_L_F77" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_F77=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_F77=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_F77=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +echo "${ECHO_T}$hardcode_action_F77" >&6; } + +if test "$hardcode_action_F77" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_F77 \ + CC_F77 \ + LD_F77 \ + lt_prog_compiler_wl_F77 \ + lt_prog_compiler_pic_F77 \ + lt_prog_compiler_static_F77 \ + lt_prog_compiler_no_builtin_flag_F77 \ + export_dynamic_flag_spec_F77 \ + thread_safe_flag_spec_F77 \ + whole_archive_flag_spec_F77 \ + enable_shared_with_static_runtimes_F77 \ + old_archive_cmds_F77 \ + old_archive_from_new_cmds_F77 \ + predep_objects_F77 \ + postdep_objects_F77 \ + predeps_F77 \ + postdeps_F77 \ + compiler_lib_search_path_F77 \ + archive_cmds_F77 \ + archive_expsym_cmds_F77 \ + postinstall_cmds_F77 \ + postuninstall_cmds_F77 \ + old_archive_from_expsyms_cmds_F77 \ + allow_undefined_flag_F77 \ + no_undefined_flag_F77 \ + export_symbols_cmds_F77 \ + hardcode_libdir_flag_spec_F77 \ + hardcode_libdir_flag_spec_ld_F77 \ + hardcode_libdir_separator_F77 \ + hardcode_automatic_F77 \ + module_cmds_F77 \ + module_expsym_cmds_F77 \ + lt_cv_prog_compiler_c_o_F77 \ + fix_srcfile_path_F77 \ + exclude_expsyms_F77 \ + include_expsyms_F77; do + + case $var in + old_archive_cmds_F77 | \ + old_archive_from_new_cmds_F77 | \ + archive_cmds_F77 | \ + archive_expsym_cmds_F77 | \ + module_cmds_F77 | \ + module_expsym_cmds_F77 | \ + old_archive_from_expsyms_cmds_F77 | \ + export_symbols_cmds_F77 | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_F77 + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_F77 + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_F77 + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_F77 + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_F77 + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_F77 +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_F77 + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_F77 +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_F77 +archive_expsym_cmds=$lt_archive_expsym_cmds_F77 +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_F77 +module_expsym_cmds=$lt_module_expsym_cmds_F77 + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_F77 + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_F77 + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_F77 + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_F77 + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_F77 + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_F77 + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_F77 + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_F77 + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 + +# 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_F77 + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_F77 + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_F77 + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_F77 + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_F77 + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_F77 + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +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" + + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +objext_GCJ=$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. + +# 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 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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +compiler_GCJ=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +archive_cmds_need_lc_GCJ=no + +old_archive_cmds_GCJ=$old_archive_cmds + + +lt_prog_compiler_no_builtin_flag_GCJ= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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" + # 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:17150: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17154: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl_GCJ= +lt_prog_compiler_pic_GCJ= +lt_prog_compiler_static_GCJ= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_static_GCJ='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_GCJ='-fno-common' + ;; + + 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_GCJ=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_GCJ=-Kconform_pic + fi + ;; + + hpux*) + # 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_GCJ='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_GCJ='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + else + lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_GCJ='-qnocommon' + lt_prog_compiler_wl_GCJ='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_GCJ='-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_GCJ='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-fpic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + lt_prog_compiler_wl_GCJ='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + lt_prog_compiler_wl_GCJ='' + ;; + esac + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_GCJ='-Qoption ld ';; + *) + lt_prog_compiler_wl_GCJ='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_GCJ='-Qoption ld ' + lt_prog_compiler_pic_GCJ='-PIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_GCJ='-Kconform_pic' + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_can_build_shared_GCJ=no + ;; + + uts4*) + lt_prog_compiler_pic_GCJ='-pic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_GCJ"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_GCJ=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_GCJ" + # 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:17440: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17444: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_GCJ=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then + case $lt_prog_compiler_pic_GCJ in + "" | " "*) ;; + *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; + esac +else + lt_prog_compiler_pic_GCJ= + lt_prog_compiler_can_build_shared_GCJ=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_GCJ= + ;; + *) + lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_GCJ=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_GCJ=yes + fi + else + lt_prog_compiler_static_works_GCJ=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then + : +else + lt_prog_compiler_static_GCJ= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_GCJ=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:17544: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:17548: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_GCJ=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 .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_GCJ= + enable_shared_with_static_runtimes_GCJ=no + archive_cmds_GCJ= + archive_expsym_cmds_GCJ= + old_archive_From_new_cmds_GCJ= + old_archive_from_expsyms_cmds_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + thread_safe_flag_spec_GCJ= + hardcode_libdir_flag_spec_GCJ= + hardcode_libdir_flag_spec_ld_GCJ= + hardcode_libdir_separator_GCJ= + hardcode_direct_GCJ=no + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=unsupported + link_all_deplibs_GCJ=unknown + hardcode_automatic_GCJ=no + module_cmds_GCJ= + module_expsym_cmds_GCJ= + always_export_symbols_GCJ=no + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_GCJ= + # 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_GCJ="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_GCJ=yes + if test "$with_gnu_ld" = yes; 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_GCJ='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_GCJ='${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_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_GCJ= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [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 + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_GCJ='$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_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_GCJ=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_GCJ=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=no + enable_shared_with_static_runtimes_GCJ=yes + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + interix[3-9]*) + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${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_GCJ='$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_GCJ='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* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_GCJ='$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 + else + ld_shlibs_GCJ=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $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_GCJ=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_GCJ=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + + if test "$ld_shlibs_GCJ" = no; then + runpath_var= + hardcode_libdir_flag_spec_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=yes + archive_expsym_cmds_GCJ='$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_GCJ=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_GCJ=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + 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_GCJ='' + hardcode_direct_GCJ=yes + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_GCJ=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_GCJ=yes + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_libdir_separator_GCJ= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # 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_GCJ=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_GCJ='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_GCJ="-z nodefs" + archive_expsym_cmds_GCJ="\$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. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${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_GCJ=' ${wl}-bernotok' + allow_undefined_flag_GCJ=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_GCJ='$convenience' + archive_cmds_need_lc_GCJ=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_GCJ='$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_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_GCJ=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_GCJ=' ' + allow_undefined_flag_GCJ=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_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_GCJ='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_GCJ=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_GCJ=no + hardcode_direct_GCJ=no + hardcode_automatic_GCJ=yes + hardcode_shlibpath_var_GCJ=unsupported + whole_archive_flag_spec_GCJ='' + link_all_deplibs_GCJ=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_GCJ=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + freebsd1*) + ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -shared -fPIC ${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_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + ;; + *) + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + link_all_deplibs_GCJ=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + newsos6) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_shlibpath_var_GCJ=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + ;; + *) + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs_GCJ=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + allow_undefined_flag_GCJ=unsupported + archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_GCJ='-rpath $libdir' + fi + hardcode_libdir_separator_GCJ=: + ;; + + solaris*) + no_undefined_flag_GCJ=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$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' + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_shlibpath_var_GCJ=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs_GCJ=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_GCJ='$CC -r -o $output$reload_objs' + hardcode_direct_GCJ=no + ;; + motorola) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4.3*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_GCJ=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_GCJ='${wl}-z,text' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_GCJ='${wl}-z,text' + allow_undefined_flag_GCJ='${wl}-z,nodefs' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + *) + ld_shlibs_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +test "$ld_shlibs_GCJ" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_GCJ" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_GCJ=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_GCJ in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_GCJ + pic_flag=$lt_prog_compiler_pic_GCJ + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ + allow_undefined_flag_GCJ= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_GCJ=no + else + archive_cmds_need_lc_GCJ=yes + fi + allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/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 + 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=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + 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=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var_GCJ" || \ + test "X$hardcode_automatic_GCJ" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6; } + +if test "$hardcode_action_GCJ" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_GCJ \ + CC_GCJ \ + LD_GCJ \ + lt_prog_compiler_wl_GCJ \ + lt_prog_compiler_pic_GCJ \ + lt_prog_compiler_static_GCJ \ + lt_prog_compiler_no_builtin_flag_GCJ \ + export_dynamic_flag_spec_GCJ \ + thread_safe_flag_spec_GCJ \ + whole_archive_flag_spec_GCJ \ + enable_shared_with_static_runtimes_GCJ \ + old_archive_cmds_GCJ \ + old_archive_from_new_cmds_GCJ \ + predep_objects_GCJ \ + postdep_objects_GCJ \ + predeps_GCJ \ + postdeps_GCJ \ + compiler_lib_search_path_GCJ \ + archive_cmds_GCJ \ + archive_expsym_cmds_GCJ \ + postinstall_cmds_GCJ \ + postuninstall_cmds_GCJ \ + old_archive_from_expsyms_cmds_GCJ \ + allow_undefined_flag_GCJ \ + no_undefined_flag_GCJ \ + export_symbols_cmds_GCJ \ + hardcode_libdir_flag_spec_GCJ \ + hardcode_libdir_flag_spec_ld_GCJ \ + hardcode_libdir_separator_GCJ \ + hardcode_automatic_GCJ \ + module_cmds_GCJ \ + module_expsym_cmds_GCJ \ + lt_cv_prog_compiler_c_o_GCJ \ + fix_srcfile_path_GCJ \ + exclude_expsyms_GCJ \ + include_expsyms_GCJ; do + + case $var in + old_archive_cmds_GCJ | \ + old_archive_from_new_cmds_GCJ | \ + archive_cmds_GCJ | \ + archive_expsym_cmds_GCJ | \ + module_cmds_GCJ | \ + module_expsym_cmds_GCJ | \ + old_archive_from_expsyms_cmds_GCJ | \ + export_symbols_cmds_GCJ | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_GCJ + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_GCJ + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_GCJ + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_GCJ + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_GCJ + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_GCJ +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_GCJ + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_GCJ +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_GCJ +archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_GCJ +module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_GCJ + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_GCJ + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_GCJ + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_GCJ + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_GCJ + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_GCJ + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_GCJ + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ + +# 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_GCJ + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_GCJ + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_GCJ + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_GCJ + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_GCJ + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_GCJ + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +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" + + else + tagname="" + fi + ;; + + RC) + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$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. + +# 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 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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +compiler_RC=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + +lt_cv_prog_compiler_c_o_RC=yes + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_RC \ + CC_RC \ + LD_RC \ + lt_prog_compiler_wl_RC \ + lt_prog_compiler_pic_RC \ + lt_prog_compiler_static_RC \ + lt_prog_compiler_no_builtin_flag_RC \ + export_dynamic_flag_spec_RC \ + thread_safe_flag_spec_RC \ + whole_archive_flag_spec_RC \ + enable_shared_with_static_runtimes_RC \ + old_archive_cmds_RC \ + old_archive_from_new_cmds_RC \ + predep_objects_RC \ + postdep_objects_RC \ + predeps_RC \ + postdeps_RC \ + compiler_lib_search_path_RC \ + archive_cmds_RC \ + archive_expsym_cmds_RC \ + postinstall_cmds_RC \ + postuninstall_cmds_RC \ + old_archive_from_expsyms_cmds_RC \ + allow_undefined_flag_RC \ + no_undefined_flag_RC \ + export_symbols_cmds_RC \ + hardcode_libdir_flag_spec_RC \ + hardcode_libdir_flag_spec_ld_RC \ + hardcode_libdir_separator_RC \ + hardcode_automatic_RC \ + module_cmds_RC \ + module_expsym_cmds_RC \ + lt_cv_prog_compiler_c_o_RC \ + fix_srcfile_path_RC \ + exclude_expsyms_RC \ + include_expsyms_RC; do + + case $var in + old_archive_cmds_RC | \ + old_archive_from_new_cmds_RC | \ + archive_cmds_RC | \ + archive_expsym_cmds_RC | \ + module_cmds_RC | \ + module_expsym_cmds_RC | \ + old_archive_from_expsyms_cmds_RC | \ + export_symbols_cmds_RC | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_RC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_RC + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_RC +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_RC + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_RC + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_RC + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# 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_RC + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +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" + + ;; + + *) + { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi +fi + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Prevent multiple expansion + + + + + + + + + + + + + + + + + + + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +# Checks for libraries. + +{ echo "$as_me:$LINENO: checking for sin in -lm" >&5 +echo $ECHO_N "checking for sin in -lm... $ECHO_C" >&6; } +if test "${ac_cv_lib_m_sin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sin (); +int +main () +{ +return sin (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_m_sin=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_sin=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 +echo "${ECHO_T}$ac_cv_lib_m_sin" >&6; } +if test $ac_cv_lib_m_sin = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + + +# Checks for header files. +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + + + + + + + + + +for ac_header in fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \ + sys/types.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# Checks for typedefs, structures, and compiler characteristics. +{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_const=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef off_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_off_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6; } +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_tm=sys/time.h +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; } +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF + +fi + + +# Checks for library functions. +{ echo "$as_me:$LINENO: checking for error_at_line" >&5 +echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } +if test "${ac_cv_lib_error_at_line+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +error_at_line (0, 0, "", 0, "an error occurred"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_error_at_line=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_error_at_line=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 +echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } +if test $ac_cv_lib_error_at_line = no; then + case " $LIBOBJS " in + *" error.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS error.$ac_objext" + ;; +esac + +fi + +#AC_FUNC_MALLOC + + +for ac_header in stdlib.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in getpagesize +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +{ echo "$as_me:$LINENO: checking for working mmap" >&5 +echo $ECHO_N "checking for working mmap... $ECHO_C" >&6; } +if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +/* malloc might have been renamed as rpl_malloc. */ +#undef malloc + +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the file system buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propagated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ + +#include +#include + +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H +char *malloc (); +#endif + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +/* Assume that all systems that can run configure have sys/param.h. */ +# ifndef HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +int +main () +{ + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize (); + + /* First, make a file with some known garbage in it. */ + data = (char *) malloc (pagesize); + if (!data) + return 1; + for (i = 0; i < pagesize; ++i) + *(data + i) = rand (); + umask (0); + fd = creat ("conftest.mmap", 0600); + if (fd < 0) + return 1; + if (write (fd, data, pagesize) != pagesize) + return 1; + close (fd); + + /* Next, try to mmap the file at a fixed address which already has + something else allocated at it. If we can, also make sure that + we see the same garbage. */ + fd = open ("conftest.mmap", O_RDWR); + if (fd < 0) + return 1; + data2 = (char *) malloc (2 * pagesize); + if (!data2) + return 1; + data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + return 1; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + return 1; + + /* Finally, make sure that changes to the mapped area do not + percolate back to the file as seen by read(). (This is a bug on + some variants of i386 svr4.0.) */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = (char *) malloc (pagesize); + if (!data3) + return 1; + if (read (fd, data3, pagesize) != pagesize) + return 1; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + return 1; + close (fd); + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_mmap_fixed_mapped=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_mmap_fixed_mapped=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6; } +if test $ac_cv_func_mmap_fixed_mapped = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MMAP 1 +_ACEOF + +fi +rm -f conftest.mmap + +{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_signal=int +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_signal=void +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + +{ echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 +echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; } +if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f conftest.sym conftest.file +echo >conftest.file +if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then + ac_cv_func_lstat_dereferences_slashed_symlink=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_lstat_dereferences_slashed_symlink=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +else + # If the `ln -s' command failed, then we probably don't even + # have an lstat function. + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f conftest.sym conftest.file + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } + +test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + +if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then + case " $LIBOBJS " in + *" lstat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lstat.$ac_objext" + ;; +esac + +fi + +{ echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 +echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6; } +if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_stat_empty_string_bug=yes +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + return stat ("", &sbuf) == 0; + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_stat_empty_string_bug=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_stat_empty_string_bug=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 +echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6; } +if test $ac_cv_func_stat_empty_string_bug = yes; then + case " $LIBOBJS " in + *" stat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS stat.$ac_objext" + ;; +esac + + +cat >>confdefs.h <<_ACEOF +#define HAVE_STAT_EMPTY_STRING_BUG 1 +_ACEOF + +fi + + +for ac_func in strftime +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + # strftime is in -lintl on SCO UNIX. +{ echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 +echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6; } +if test "${ac_cv_lib_intl_strftime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strftime (); +int +main () +{ +return strftime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_intl_strftime=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_strftime=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6; } +if test $ac_cv_lib_intl_strftime = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_STRFTIME 1 +_ACEOF + +LIBS="-lintl $LIBS" +fi + +fi +done + + + + + + + + + + + +for ac_func in atexit getenv memcpy memmove memset mkdir munmap strstr \ + sincos logf +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# Check support for large files +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -f conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -f conftest* + fi +fi + +{ echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 +echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_largefile_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_sys_largefile_source=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGEFILE_SOURCE 1 +#include +int +main () +{ +return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_sys_largefile_source=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_cv_sys_largefile_source=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6; } +case $ac_cv_sys_largefile_source in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +_ACEOF +;; +esac +rm -f conftest* + +# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug +# in glibc 2.1.3, but that breaks too many other things. +# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. +if test $ac_cv_sys_largefile_source != unknown; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSEEKO 1 +_ACEOF + +fi + + +# Set the data directory to a true absolute path +datadir2=$(# PATH urbi_resolve_dir(DIR) +# -------------------------- +# Return the DIR with all inner variables expanded. +urbi_resolve_dir () +{ + ac_URBI_RESOLVE_DIR_PREPARE_dir=$1 + ac_URBI_RESOLVE_DIR_PREPARE_res= + ac_URBI_RESOLVE_DIR_PREPARE_prefix_NONE= + ac_URBI_RESOLVE_DIR_PREPARE_exec_prefix_NONE= + test "x$prefix" = xNONE && + ac_URBI_RESOLVE_DIR_PREPARE_exec_prefix_NONE=yes && + prefix=$ac_default_prefix + test "x$exec_prefix" = xNONE && + ac_URBI_RESOLVE_DIR_PREPARE_exec_prefix_NONE=yes && + exec_prefix=$prefix + while true + do + eval ac_URBI_RESOLVE_DIR_PREPARE_res="$ac_URBI_RESOLVE_DIR_PREPARE_dir" + if test x"$ac_URBI_RESOLVE_DIR_PREPARE_dir" == x"$ac_URBI_RESOLVE_DIR_PREPARE_res"; then + break + fi + ac_URBI_RESOLVE_DIR_PREPARE_dir=$ac_URBI_RESOLVE_DIR_PREPARE_res + done + test "$ac_URBI_RESOLVE_DIR_PREPARE_prefix_NONE" && prefix=NONE + test "$ac_URBI_RESOLVE_DIR_PREPARE_exec_prefix_NONE" && exec_prefix=NONE + echo "$ac_URBI_RESOLVE_DIR_PREPARE_res" +} + +urbi_resolve_dir '$datadir') + +# Provide special options for ATLAS + +# Check whether --with-atlas was given. +if test "${with_atlas+set}" = set; then + withval=$with_atlas; atlas_libdir=$withval +else + atlas_libdir="" + +fi + + +# Check whether --with-atlas-incdir was given. +if test "${with_atlas_incdir+set}" = set; then + withval=$with_atlas_incdir; atlas_incdir=$withval +else + atlas_incdir="" + +fi + + +# Provide special options for FFTW + +# Check whether --with-fftw was given. +if test "${with_fftw+set}" = set; then + withval=$with_fftw; fftw_libdir=$withval +else + fftw_libdir="" + +fi + + +# Check whether --with-fftw-incdir was given. +if test "${with_fftw_incdir+set}" = set; then + withval=$with_fftw_incdir; fftw_incdir=$withval +else + fftw_incdir="" + +fi + + +# Provide a special option for the default XSLT URL + +# Check whether --with-xsl_url was given. +if test "${with_xsl_url+set}" = set; then + withval=$with_xsl_url; xsl_url=$withval +else + xsl_url="file://$datadir2/$PACKAGE_NAME/$PACKAGE_NAME.xsl" + +fi + + + +cat >>confdefs.h <<_ACEOF +#define XSL_URL "$xsl_url" +_ACEOF + + +# Set flags for multithreading +n_pthreads=16 +# Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then + enableval=$enable_threads; if test "$enableval" = "no"; then + use_pthreads="no" + else + use_pthreads="yes" + if test "$enableval" != "yes"; then + n_pthreads=$enableval + fi + fi +else + use_pthreads=yes + +fi + + +# Provide special option for gprof profiling +{ echo "$as_me:$LINENO: checking for gprof profiler mode" >&5 +echo $ECHO_N "checking for gprof profiler mode... $ECHO_C" >&6; } +# Check whether --enable-gprof was given. +if test "${enable_gprof+set}" = set; then + enableval=$enable_gprof; use_gprof="yes" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + use_gprof="no" + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Enable static linking +{ echo "$as_me:$LINENO: checking static linking" >&5 +echo $ECHO_N "checking static linking... $ECHO_C" >&6; } +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; use_static="yes" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + use_static="no" + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +################# Actions to complete in case of multhreading ################ + +cat >>confdefs.h <<_ACEOF +#define THREADS_NMAX $n_pthreads +_ACEOF + +if test "$use_pthreads" = "yes"; then + { echo "$as_me:$LINENO: checking for multithreading" >&5 +echo $ECHO_N "checking for multithreading... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: maximum of $n_pthreads thread(s)" >&5 +echo "${ECHO_T}maximum of $n_pthreads thread(s)" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define USE_THREADS 1 +_ACEOF + +# CC, CFLAGS and LIBS are system and compiler-dependent + + +acx_pthread_ok=no + +# First, check if the POSIX threads header, pthread.h, is available. +# If it isn't, don't bother looking for the threads libraries. +# AC_CHECK_HEADER(pthread.h, , acx_pthread_ok=noheader) +if test "${ac_cv_header_pthread_h+set}" = set; then + { echo "$as_me:$LINENO: checking for pthread.h" >&5 +echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6; } +if test "${ac_cv_header_pthread_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5 +echo "${ECHO_T}$ac_cv_header_pthread_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking pthread.h usability" >&5 +echo $ECHO_N "checking pthread.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking pthread.h presence" >&5 +echo $ECHO_N "checking pthread.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: pthread.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: pthread.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: pthread.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: pthread.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: pthread.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: pthread.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: pthread.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: pthread.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: pthread.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: pthread.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for pthread.h" >&5 +echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6; } +if test "${ac_cv_header_pthread_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_pthread_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5 +echo "${ECHO_T}$ac_cv_header_pthread_h" >&6; } + +fi +if test $ac_cv_header_pthread_h = yes; then + : +else + acx_pthread_ok=no +fi + + + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* 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 pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + acx_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 +echo "${ECHO_T}$acx_pthread_ok" >&6; } + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread pthread -pthread -pthreads -mthreads --thread-safe -mt" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# pthread: Linux, etcetera +# --thread-safe: KAI C++ + +case "${host_cpu}-${host_os}" in + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthread or + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + { echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5 +echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6; } + ;; + + -*) + { echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5 +echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + *) + { echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5 +echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + acx_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 +echo "${ECHO_T}$acx_pthread_ok" >&6; } + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: threads are created detached by default + # and the JOINABLE attribute has a nonstandard name (UNDETACHED). + { echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5 +echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int attr=PTHREAD_CREATE_JOINABLE; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ok=PTHREAD_CREATE_JOINABLE +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ok=unknown +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test x"$ok" = xunknown; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int attr=PTHREAD_CREATE_UNDETACHED; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ok=PTHREAD_CREATE_UNDETACHED +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ok=unknown +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<\_ACEOF +#define PTHREAD_CREATE_JOINABLE $ok +_ACEOF + + fi + { echo "$as_me:$LINENO: result: ${ok}" >&5 +echo "${ECHO_T}${ok}" >&6; } + if test x"$ok" = xunknown; then + { echo "$as_me:$LINENO: WARNING: we do not know how to create joinable pthreads" >&5 +echo "$as_me: WARNING: we do not know how to create joinable pthreads" >&2;} + fi + + { echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5 +echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6; } + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";; + *solaris* | alpha*-osf*) flag="-D_REENTRANT";; + esac + { echo "$as_me:$LINENO: result: ${flag}" >&5 +echo "${ECHO_T}${flag}" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with cc_r + # Extract the first word of "cc_r", so it can be a program name with args. +set dummy cc_r; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_PTHREAD_CC="cc_r" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}" +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5 +echo "${ECHO_T}$PTHREAD_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +else + PTHREAD_CC="$CC" +fi + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD 1 +_ACEOF + + : +else + acx_pthread_ok=no + +fi + + + CC="$PTHREAD_CC" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS -D_REENTRANT" + LIBS="$PTHREAD_LIBS $LIBS" +fi + if test $use_pthreads = "yes"; then + USE_THREADS_TRUE= + USE_THREADS_FALSE='#' +else + USE_THREADS_TRUE='#' + USE_THREADS_FALSE= +fi + + +################ handle the FFTW library (Fourier transforms) ################ + + + + +acx_fftw_ok=no +if test x$fftw_incdir = x; then + if test x$fftw_libdir = x; then + if test "${ac_cv_header_fftw3_h+set}" = set; then + { echo "$as_me:$LINENO: checking for fftw3.h" >&5 +echo $ECHO_N "checking for fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw3_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking fftw3.h usability" >&5 +echo $ECHO_N "checking fftw3.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking fftw3.h presence" >&5 +echo $ECHO_N "checking fftw3.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: fftw3.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: fftw3.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: fftw3.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: fftw3.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: fftw3.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: fftw3.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: fftw3.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: fftw3.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for fftw3.h" >&5 +echo $ECHO_N "checking for fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_fftw3_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw3_h" >&6; } + +fi +if test $ac_cv_header_fftw3_h = yes; then + acx_fftw_ok=yes +fi + + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define FFTW_H "fftw.h" +_ACEOF + + else + if test "${ac_cv_header_fftw_fftw3_h+set}" = set; then + { echo "$as_me:$LINENO: checking for fftw/fftw3.h" >&5 +echo $ECHO_N "checking for fftw/fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw_fftw3_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking fftw/fftw3.h usability" >&5 +echo $ECHO_N "checking fftw/fftw3.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking fftw/fftw3.h presence" >&5 +echo $ECHO_N "checking fftw/fftw3.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw/fftw3.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: fftw/fftw3.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for fftw/fftw3.h" >&5 +echo $ECHO_N "checking for fftw/fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_fftw_fftw3_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw_fftw3_h" >&6; } + +fi +if test $ac_cv_header_fftw_fftw3_h = yes; then + acx_fftw_ok=yes +fi + + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define FFTW_H "fftw/fftw3.h" +_ACEOF + + else + FFTW_ERROR="FFTW include files not found in default location!" + fi + fi + else + as_ac_Header=`echo "ac_cv_header_$fftw_libdir/include/fftw3.h" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $fftw_libdir/include/fftw3.h" >&5 +echo $ECHO_N "checking for $fftw_libdir/include/fftw3.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $fftw_libdir/include/fftw3.h usability" >&5 +echo $ECHO_N "checking $fftw_libdir/include/fftw3.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$fftw_libdir/include/fftw3.h> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $fftw_libdir/include/fftw3.h presence" >&5 +echo $ECHO_N "checking $fftw_libdir/include/fftw3.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$fftw_libdir/include/fftw3.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_libdir/include/fftw3.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $fftw_libdir/include/fftw3.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $fftw_libdir/include/fftw3.h" >&5 +echo $ECHO_N "checking for $fftw_libdir/include/fftw3.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + acx_fftw_ok=yes +fi + + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define FFTW_H "$fftw_libdir/include/fftw3.h" +_ACEOF + + else + if test "${ac_cv_header_fftw3_h+set}" = set; then + { echo "$as_me:$LINENO: checking for fftw3.h" >&5 +echo $ECHO_N "checking for fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw3_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking fftw3.h usability" >&5 +echo $ECHO_N "checking fftw3.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking fftw3.h presence" >&5 +echo $ECHO_N "checking fftw3.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: fftw3.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: fftw3.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: fftw3.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: fftw3.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: fftw3.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: fftw3.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: fftw3.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: fftw3.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: fftw3.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for fftw3.h" >&5 +echo $ECHO_N "checking for fftw3.h... $ECHO_C" >&6; } +if test "${ac_cv_header_fftw3_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_fftw3_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_fftw3_h" >&5 +echo "${ECHO_T}$ac_cv_header_fftw3_h" >&6; } + +fi +if test $ac_cv_header_fftw3_h = yes; then + acx_fftw_ok=yes +fi + + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define FFTW_H "fftw.h" +_ACEOF + + else + FFTW_ERROR="FFTW include files not found in $fftw_libdir/include!" + fi + fi + fi +else + as_ac_Header=`echo "ac_cv_header_$fftw_incdir/fftw3.h" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $fftw_incdir/fftw3.h" >&5 +echo $ECHO_N "checking for $fftw_incdir/fftw3.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $fftw_incdir/fftw3.h usability" >&5 +echo $ECHO_N "checking $fftw_incdir/fftw3.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$fftw_incdir/fftw3.h> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $fftw_incdir/fftw3.h presence" >&5 +echo $ECHO_N "checking $fftw_incdir/fftw3.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$fftw_incdir/fftw3.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $fftw_incdir/fftw3.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $fftw_incdir/fftw3.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -done - +{ echo "$as_me:$LINENO: checking for $fftw_incdir/fftw3.h" >&5 +echo $ECHO_N "checking for $fftw_incdir/fftw3.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + acx_fftw_ok=yes fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + if test x$acx_fftw_ok = xyes; then -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +cat >>confdefs.h <<\_ACEOF +#define FFTW_H "$fftw_incdir/fftw3.h" +_ACEOF + + else + FFTW_ERROR="FFTW include files not found in $fftw_incdir!" + fi +fi -# Checks for libraries. +FFTW_LIBS="" +OLIBS="$LIBS" +LIBS="" -echo "$as_me:$LINENO: checking for sin in -lm" >&5 -echo $ECHO_N "checking for sin in -lm... $ECHO_C" >&6 -if test "${ac_cv_lib_m_sin+set}" = set; then +if test x$acx_fftw_ok = xyes; then + if test x$fftw_libdir = x; then + if test xno = xyes; then + { echo "$as_me:$LINENO: checking for fftwf_execute in -lfftw3f" >&5 +echo $ECHO_N "checking for fftwf_execute in -lfftw3f... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3f_fftwf_execute+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" +LIBS="-lfftw3f -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3918,578 +23932,829 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char sin (); +char fftwf_execute (); int main () { -sin (); +return fftwf_execute (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_m_sin=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3f_fftwf_execute=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_m_sin=no + ac_cv_lib_fftw3f_fftwf_execute=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_m_sin" >&5 -echo "${ECHO_T}$ac_cv_lib_m_sin" >&6 -if test $ac_cv_lib_m_sin = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3f_fftwf_execute" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3f_fftwf_execute" >&6; } +if test $ac_cv_lib_fftw3f_fftwf_execute = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no fi + if test x$acx_fftw_ok = xyes; then -# Checks for header files. -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTWF 1 +_ACEOF + + FFTW_LIBS="-lfftw3f" + else + FFTW_ERROR="FFTW single precision library files not found at usual locations!" + fi + else + { echo "$as_me:$LINENO: checking for fftw_execute in -lfftw3" >&5 +echo $ECHO_N "checking for fftw_execute in -lfftw3... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3_fftw_execute+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3 -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include + +/* 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 - Syntax error +char fftw_execute (); +int +main () +{ +return fftw_execute (); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3_fftw_execute=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue + ac_cv_lib_fftw3_fftw_execute=no fi -rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3_fftw_execute" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3_fftw_execute" >&6; } +if test $ac_cv_lib_fftw3_fftw_execute = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no +fi + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTW 1 +_ACEOF + + FFTW_LIBS="-lfftw3" + else + FFTW_ERROR="FFTW double precision library files not found at usual locations!" + fi + fi + if test x$acx_fftw_ok = xyes && test x$use_pthreads = xyes; then + if test xno = xyes; then + { echo "$as_me:$LINENO: checking for fftwf_init_threads in -lfftw3f_threads" >&5 +echo $ECHO_N "checking for fftwf_init_threads in -lfftw3f_threads... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3f_threads_fftwf_init_threads+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3f_threads -lfftw3f -lm -lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + +/* 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 fftwf_init_threads (); +int +main () +{ +return fftwf_init_threads (); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3f_threads_fftwf_init_threads=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break + ac_cv_lib_fftw3f_threads_fftwf_init_threads=no fi -rm -f conftest.err conftest.$ac_ext -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3f_threads_fftwf_init_threads" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3f_threads_fftwf_init_threads" >&6; } +if test $ac_cv_lib_fftw3f_threads_fftwf_init_threads = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no fi - done - ac_cv_prog_CPP=$CPP + if test x$acx_fftw_ok = xyes; then -fi - CPP=$ac_cv_prog_CPP +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTWFT 1 +_ACEOF + + FFTW_LIBS="-lfftw3f_threads -lfftw3f" + else + FFTW_ERROR="FFTW single precision library was compiled without multithreading support!" + fi + else + { echo "$as_me:$LINENO: checking for fftw_init_threads in -lfftw3_threads" >&5 +echo $ECHO_N "checking for fftw_init_threads in -lfftw3_threads... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3_threads_fftw_init_threads+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3_threads -lfftw3 -lm -lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include + +/* 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 - Syntax error +char fftw_init_threads (); +int +main () +{ +return fftw_init_threads (); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3_threads_fftw_init_threads=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue + ac_cv_lib_fftw3_threads_fftw_init_threads=no fi -rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3_threads_fftw_init_threads" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3_threads_fftw_init_threads" >&6; } +if test $ac_cv_lib_fftw3_threads_fftw_init_threads = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no +fi + + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTWT 1 +_ACEOF + + FFTW_LIBS="-lfftw3_threads -lfftw3" + else + FFTW_ERROR="FFTW double precision library was compiled without multithreading support!" + fi + fi + fi + else + if test xno = xyes; then + { echo "$as_me:$LINENO: checking for fftwf_execute in -lfftw3f" >&5 +echo $ECHO_N "checking for fftwf_execute in -lfftw3f... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3f_fftwf_execute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3f -L$fftw_libdir -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + +/* 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 fftwf_execute (); +int +main () +{ +return fftwf_execute (); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3f_fftwf_execute=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break + ac_cv_lib_fftw3f_fftwf_execute=no fi -rm -f conftest.err conftest.$ac_ext -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3f_fftwf_execute" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3f_fftwf_execute" >&6; } +if test $ac_cv_lib_fftw3f_fftwf_execute = yes; then + acx_fftw_ok=yes else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi + acx_fftw_ok=no fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep + if test x$acx_fftw_ok = xyes; then -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTWF 1 +_ACEOF + + FFTW_LIBS="-L$fftw_libdir -lfftw3f" + else + FFTW_ERROR="FFTW single precision library files not found in $fftw_libdir!" + fi + else + { echo "$as_me:$LINENO: checking for fftw_execute in -lfftw3" >&5 +echo $ECHO_N "checking for fftw_execute in -lfftw3... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3_fftw_execute+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3 -L$fftw_libdir -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#include -#include +/* 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 fftw_execute (); int main () { - +return fftw_execute (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3_fftw_execute=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no + ac_cv_lib_fftw3_fftw_execute=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3_fftw_execute" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3_fftw_execute" >&6; } +if test $ac_cv_lib_fftw3_fftw_execute = yes; then + acx_fftw_ok=yes else - ac_cv_header_stdc=no + acx_fftw_ok=no fi -rm -f conftest* -fi + if test x$acx_fftw_ok = xyes; then -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTW 1 +_ACEOF + + FFTW_LIBS="-L$fftw_libdir -lfftw3" + else + FFTW_ERROR="FFTW double precision library files not found in $fftw_libdir!" + fi + fi + if test x$acx_fftw_ok = xyes && test x$use_pthreads = xyes; then + if test xno = xyes; then + { echo "$as_me:$LINENO: checking for fftwf_init_threads in -lfftw3f_threads" >&5 +echo $ECHO_N "checking for fftwf_init_threads in -lfftw3f_threads... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3f_threads_fftwf_init_threads+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3f_threads -L$fftw_libdir -lfftw3f -lm -lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +/* 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 fftwf_init_threads (); +int +main () +{ +return fftwf_init_threads (); + ; + return 0; +} _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3f_threads_fftwf_init_threads=yes else - ac_cv_header_stdc=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_fftw3f_threads_fftwf_init_threads=no fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3f_threads_fftwf_init_threads" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3f_threads_fftwf_init_threads" >&6; } +if test $ac_cv_lib_fftw3f_threads_fftwf_init_threads = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no 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 - : + if test x$acx_fftw_ok = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FFTWFT 1 +_ACEOF + + FFTW_LIBS="-L$fftw_libdir -lfftw3f_threads -lfftw3f" + else + FFTW_ERROR="FFTW single precision library in $fftw_libdir was compiled without multithreading support!" + fi + else + { echo "$as_me:$LINENO: checking for fftw_init_threads in -lfftw3_threads" >&5 +echo $ECHO_N "checking for fftw_init_threads in -lfftw3_threads... $ECHO_C" >&6; } +if test "${ac_cv_lib_fftw3_threads_fftw_init_threads+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfftw3_threads -L$fftw_libdir -lfftw3 -lm -lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +/* 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 fftw_init_threads (); int main () { - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); +return fftw_init_threads (); + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_fftw3_threads_fftw_init_threads=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + ac_cv_lib_fftw3_threads_fftw_init_threads=no fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_fftw3_threads_fftw_init_threads" >&5 +echo "${ECHO_T}$ac_cv_lib_fftw3_threads_fftw_init_threads" >&6; } +if test $ac_cv_lib_fftw3_threads_fftw_init_threads = yes; then + acx_fftw_ok=yes +else + acx_fftw_ok=no fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then + + if test x$acx_fftw_ok = xyes; then cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 +#define HAVE_FFTWT 1 _ACEOF + FFTW_LIBS="-L$fftw_libdir -lfftw3_threads -lfftw3" + else + FFTW_ERROR="FFTW double precision library in $fftw_libdir was compiled without multithreading support!" + fi + fi + fi + fi fi -# On IRIX 5.3, sys/types and inttypes.h are conflicting. +LIBS="$OLIBS" +if test x$acx_fftw_ok = xyes; then + + use_fftw=yes +else + + use_fftw=no +fi +if test "$use_fftw" = "yes"; then + LIBS="$FFTW_LIBS $LIBS" +else + { { echo "$as_me:$LINENO: error: $FFTW_ERROR Exiting." >&5 +echo "$as_me: error: $FFTW_ERROR Exiting." >&2;} + { (exit 1); exit 1; }; } +fi +################## handle the ATLAS library(linear algebra) ################## +acx_atlas_ok=no +if test x$atlas_incdir = x; then + if test x$atlas_libdir = x; then -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h +for ac_header in cblas.h clapack.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else - cat >conftest.$ac_ext <<_ACEOF + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default - #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" + eval "$as_ac_Header=\$ac_header_preproc" fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - + acx_atlas_ok=yes fi done + if test x$acx_atlas_ok = xyes; then +cat >>confdefs.h <<\_ACEOF +#define ATLAS_BLAS_H "cblas.h" +_ACEOF +cat >>confdefs.h <<\_ACEOF +#define ATLAS_LAPACK_H "clapack.h" +_ACEOF + else - - - -for ac_header in fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h sys/types.h unistd.h +for ac_header in atlas/cblas.h atlas/clapack.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4500,41 +24765,37 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4543,24 +24804,22 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 @@ -4568,9 +24827,10 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -4594,461 +24854,389 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + ( cat <<\_ASBOX ## ---------------------------- ## ## Report this to bertin@iap.fr ## ## ---------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - + acx_atlas_ok=yes fi done + if test x$acx_atlas_ok = xyes; then -# Checks for typedefs, structures, and compiler characteristics. -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} +cat >>confdefs.h <<\_ACEOF +#define ATLAS_BLAS_H "atlas/cblas.h" _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_const=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF -#define const +#define ATLAS_LAPACK_H "atlas/clapack.h" _ACEOF -fi + else + atlas_def=/usr/local/atlas -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 -if test "${ac_cv_type_off_t+set}" = set; then + +for ac_header in $atlas_def/include/cblas.h $atlas_def/include/clapack.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else - cat >conftest.$ac_ext <<_ACEOF + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -int -main () -{ -if ((off_t *) 0) - return 0; -if (sizeof (off_t)) - return 0; - ; - return 0; -} +#include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_off_t=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define off_t long -_ACEOF -fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_size_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_header_preproc=no fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned -_ACEOF -fi +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 -if test "${ac_cv_struct_tm+set}" = set; then +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -struct tm *tp; tp->tm_sec; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_struct_tm=time.h -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } -ac_cv_struct_tm=sys/time.h fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + acx_atlas_ok=yes fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 -if test $ac_cv_struct_tm = sys/time.h; then -cat >>confdefs.h <<\_ACEOF -#define TM_IN_SYS_TIME 1 +done + + if test x$acx_atlas_ok = xyes; then + +cat >>confdefs.h <<_ACEOF +#define ATLAS_BLAS_H "$atlas_def/include/cblas.h" _ACEOF -fi -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 -if test "${ac_cv_type_uid_t+set}" = set; then +cat >>confdefs.h <<_ACEOF +#define ATLAS_LAPACK_H "$atlas_def/include/clapack.h" +_ACEOF + + else + atlas_def=/usr/atlas + + +for ac_header in $atlas_def/include/cblas.h $atlas_def/include/clapack.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else - cat >conftest.$ac_ext <<_ACEOF + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - +$ac_includes_default +#include <$ac_header> _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes else - ac_cv_type_uid_t=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 -if test $ac_cv_type_uid_t = no; then - -cat >>confdefs.h <<\_ACEOF -#define uid_t int -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define gid_t int -_ACEOF + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_header_compiler=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } -# Checks for library functions. -echo "$as_me:$LINENO: checking for error_at_line" >&5 -echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6 -if test "${ac_cv_lib_error_at_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -int -main () -{ -error_at_line (0, 0, "", 0, ""); - ; - return 0; -} +#include <$ac_header> _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_error_at_line=yes + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_error_at_line=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext + ac_header_preproc=no fi -echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 -echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6 -if test $ac_cv_lib_error_at_line = no; then - case $LIBOBJS in - "error.$ac_objext" | \ - *" error.$ac_objext" | \ - "error.$ac_objext "* | \ - *" error.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + acx_atlas_ok=yes +fi + +done + + if test x$acx_atlas_ok = xyes; then + +cat >>confdefs.h <<_ACEOF +#define ATLAS_BLAS_H "$atlas_def/include/cblas.h" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ATLAS_LAPACK_H "$atlas_def/include/clapack.h" +_ACEOF + + else + ATLAS_ERROR="CBLAS/LAPack include files not found!" + fi + fi + fi + fi + else -for ac_header in stdlib.h +for ac_header in $atlas_libdir/include/cblas.h $atlas_libdir/include/clapack.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -5059,41 +25247,37 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -5102,24 +25286,22 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 @@ -5127,9 +25309,10 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -5153,134 +25336,228 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + ( cat <<\_ASBOX ## ---------------------------- ## ## Report this to bertin@iap.fr ## ## ---------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - + acx_atlas_ok=yes fi done -echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then + if test x$acx_atlas_ok = xyes; then + +cat >>confdefs.h <<_ACEOF +#define ATLAS_BLAS_H "$atlas_libdir/include/cblas.h" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ATLAS_LAPACK_H "$atlas_libdir/include/clapack.h" +_ACEOF + + else + + +for ac_header in cblas.h clapack.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else - if test "$cross_compiling" = yes; then - ac_cv_func_malloc_0_nonnull=no -else - cat >conftest.$ac_ext <<_ACEOF + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if STDC_HEADERS || HAVE_STDLIB_H -# include -#else -char *malloc (); -#endif - -int -main () -{ -exit (malloc (0) ? 0 : 1); - ; - return 0; -} +$ac_includes_default +#include <$ac_header> _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_malloc_0_nonnull=yes + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_malloc_0_nonnull=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + ac_header_preproc=no fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to bertin@iap.fr ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6 -if test $ac_cv_func_malloc_0_nonnull = yes; then +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 1 -_ACEOF - -else - cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 0 +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF + acx_atlas_ok=yes +fi - case $LIBOBJS in - "malloc.$ac_objext" | \ - *" malloc.$ac_objext" | \ - "malloc.$ac_objext "* | \ - *" malloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; -esac +done + if test x$acx_atlas_ok = xyes; then -cat >>confdefs.h <<\_ACEOF -#define malloc rpl_malloc +cat >>confdefs.h <<_ACEOF +#define ATLAS_BLAS_H "cblas.h" _ACEOF -fi - +cat >>confdefs.h <<_ACEOF +#define ATLAS_LAPACK_H "clapack.h" +_ACEOF + else + ATLAS_ERROR="CBLAS/LAPack include files not found in $atlas_libdir/include!" + fi + fi + fi +else -for ac_header in stdlib.h unistd.h +for ac_header in $atlas_incdir/cblas.h $atlas_incdir/clapack.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -5291,41 +25568,37 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -5334,24 +25607,22 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 @@ -5359,9 +25630,10 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in @@ -5385,636 +25657,443 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + ( cat <<\_ASBOX ## ---------------------------- ## ## Report this to bertin@iap.fr ## ## ---------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - + acx_atlas_ok=yes fi done + if test x$acx_atlas_ok = xyes; then -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +cat >>confdefs.h <<_ACEOF +#define ATLAS_BLAS_H "$atlas_incdir/cblas.h" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define ATLAS_LAPACK_H "$atlas_incdir/clapack.h" +_ACEOF + + else + ATLAS_ERROR="CBLAS/LAPack include files not found in $atlas_incdir!" + fi +fi + + +if test x$acx_atlas_ok = xyes; then + OLIBS="$LIBS" + LIBS="" + if test x$atlas_libdir = x; then + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 +/* 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. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif #ifdef __cplusplus -} +extern "C" #endif - +char clapack_dpotrf (); int main () { -return f != $ac_func; +return clapack_dpotrf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - + ac_cv_lib_lapack_clapack_dpotrf=no fi -done - -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -/* malloc might have been renamed as rpl_malloc. */ -#undef malloc - -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propagated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include -#include - -#if !STDC_HEADERS && !HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H -# include -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main () -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - exit (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - exit (1); - if (write (fd, data, pagesize) != pagesize) - exit (1); - close (fd); - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - exit (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - exit (1); - data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - exit (1); - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - exit (1); - if (read (fd, data3, pagesize) != pagesize) - exit (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - exit (1); - close (fd); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 _ACEOF + LIBS="-llapack $LIBS" + +else + acx_atlas_ok=no fi -rm -f conftest.mmap -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include -#include -#ifdef signal -# undef signal -#endif + +/* 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" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); +extern "C" #endif - +char cblas_dgemm (); int main () { -int i; +return cblas_dgemm (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_signal=int + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF + LIBS="-lcblas $LIBS" -echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 -echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6 -if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 else - rm -f conftest.sym conftest.file -echo >conftest.file -if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then - if test "$cross_compiling" = yes; then - ac_cv_func_lstat_dereferences_slashed_symlink=no + acx_atlas_ok=no +fi + + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="" + else + atlas_def=/usr/local/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_def/lib -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + +/* 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 clapack_dpotrf (); int main () { -struct stat sbuf; - /* Linux will dereference the symlink and fail. - That is better in the sense that it means we will not - have to compile and use the lstat wrapper. */ - exit (lstat ("conftest.sym/", &sbuf) ? 0 : 1); +return clapack_dpotrf (); ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_lstat_dereferences_slashed_symlink=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_lstat_dereferences_slashed_symlink=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -else - # If the `ln -s' command failed, then we probably don't even - # have an lstat function. - ac_cv_func_lstat_dereferences_slashed_symlink=no + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.sym conftest.file +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 -echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6 - -test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && - -cat >>confdefs.h <<_ACEOF -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 _ACEOF + LIBS="-llapack $LIBS" -if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then - case $LIBOBJS in - "lstat.$ac_objext" | \ - *" lstat.$ac_objext" | \ - "lstat.$ac_objext "* | \ - *" lstat.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; -esac - +else + acx_atlas_ok=no fi -echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 -echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6 -if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then - ac_cv_func_stat_empty_string_bug=yes -else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -L$atlas_def/lib -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + +/* 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 cblas_dgemm (); int main () { -struct stat sbuf; - exit (stat ("", &sbuf) ? 1 : 0); +return cblas_dgemm (); ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_stat_empty_string_bug=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_stat_empty_string_bug=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + ac_cv_lib_cblas_cblas_dgemm=no fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 -echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6 -if test $ac_cv_func_stat_empty_string_bug = yes; then - case $LIBOBJS in - "stat.$ac_objext" | \ - *" stat.$ac_objext" | \ - "stat.$ac_objext "* | \ - *" stat.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; -esac - -cat >>confdefs.h <<_ACEOF -#define HAVE_STAT_EMPTY_STRING_BUG 1 +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF -fi + LIBS="-lcblas $LIBS" +else + acx_atlas_ok=no +fi -for ac_func in strftime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def/lib" + else + atlas_def=/usr/lib64/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_def -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 +/* 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. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif #ifdef __cplusplus -} +extern "C" #endif - +char clapack_dpotrf (); int main () { -return f != $ac_func; +return clapack_dpotrf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBLAPACK 1 _ACEOF + LIBS="-llapack $LIBS" + else - # strftime is in -lintl on SCO UNIX. -echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 -echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 -if test "${ac_cv_lib_intl_strftime+set}" = set; then + acx_atlas_ok=no +fi + + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $LIBS" +LIBS="-lcblas -L$atlas_def -latlas -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6022,732 +26101,804 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strftime (); +char cblas_dgemm (); int main () { -strftime (); +return cblas_dgemm (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_intl_strftime=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_intl_strftime=no + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 -if test $ac_cv_lib_intl_strftime = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STRFTIME 1 +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF -LIBS="-lintl $LIBS" -fi + LIBS="-lcblas $LIBS" +else + acx_atlas_ok=no fi -done - - + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def" + else + atlas_def=/usr/lib/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes - - - - - -for ac_func in atexit getenv memcpy memmove memset mkdir munmap strstr -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_def -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 +/* 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. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif #ifdef __cplusplus -} +extern "C" #endif - +char clapack_dpotrf (); int main () { -return f != $ac_func; +return clapack_dpotrf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_LIBLAPACK 1 _ACEOF -fi -done - + LIBS="-llapack $LIBS" -# Check support for large files -# Check whether --enable-largefile or --disable-largefile was given. -if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" +else + acx_atlas_ok=no +fi -fi; -if test "$enable_largefile" != no; then - echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_CC+set}" = set; then +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -L$atlas_def -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* 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 cblas_dgemm (); int main () { - +return cblas_dgemm (); ; return 0; } _ACEOF - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext - CC="$CC -n32" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_largefile_CC=' -n32'; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -rm -f conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 +_ACEOF + + LIBS="-lcblas $LIBS" + +else + acx_atlas_ok=no fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def" + else + atlas_def=/usr/atlas + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_file_offset_bits=no - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_def/lib -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* 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 clapack_dpotrf (); int main () { - +return clapack_dpotrf (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 +_ACEOF + + LIBS="-llapack $LIBS" + +else + acx_atlas_ok=no +fi + + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -L$atlas_def/lib -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* 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 cblas_dgemm (); int main () { - +return cblas_dgemm (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_file_offset_bits=64; break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF + LIBS="-lcblas $LIBS" + +else + acx_atlas_ok=no fi -rm -f conftest* - echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_large_files+set}" = set; then + + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_def/lib" + else + ATLAS_ERROR="CBLAS/LAPack library files not found at usual locations!" + fi + fi + fi + fi + fi + else + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_large_files=no - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_libdir -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* 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 clapack_dpotrf (); int main () { - +return clapack_dpotrf (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 +_ACEOF + + LIBS="-llapack $LIBS" + +else + acx_atlas_ok=no +fi + + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -L$atlas_libdir -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + +/* 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 cblas_dgemm (); int main () { - +return cblas_dgemm (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_large_files=1; break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF -fi -rm -f conftest* + LIBS="-lcblas $LIBS" + +else + acx_atlas_ok=no fi -echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_source+set}" = set; then + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_libdir" + else + unset ac_cv_lib_lapack_clapack_dpotrf + unset ac_cv_lib_cblas_cblas_dgemm + acx_atlas_ok=yes + +{ echo "$as_me:$LINENO: checking for clapack_dpotrf in -llapack" >&5 +echo $ECHO_N "checking for clapack_dpotrf in -llapack... $ECHO_C" >&6; } +if test "${ac_cv_lib_lapack_clapack_dpotrf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - while :; do - ac_cv_sys_largefile_source=no - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-llapack -L$atlas_libdir/lib -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + +/* 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 clapack_dpotrf (); int main () { -return !fseeko; +return clapack_dpotrf (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_lapack_clapack_dpotrf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_lapack_clapack_dpotrf=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_lapack_clapack_dpotrf" >&5 +echo "${ECHO_T}$ac_cv_lib_lapack_clapack_dpotrf" >&6; } +if test $ac_cv_lib_lapack_clapack_dpotrf = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLAPACK 1 +_ACEOF + + LIBS="-llapack $LIBS" + +else + acx_atlas_ok=no +fi + + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_cblas_cblas_dgemm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcblas -L$atlas_libdir/lib -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 -#include + +/* 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 cblas_dgemm (); int main () { -return !fseeko; +return cblas_dgemm (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_largefile_source=1; break + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_lib_cblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 -if test "$ac_cv_sys_largefile_source" != no; then -cat >>confdefs.h <<_ACEOF -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_cblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_cblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCBLAS 1 _ACEOF + LIBS="-lcblas $LIBS" + +else + acx_atlas_ok=no fi -rm -f conftest* -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -echo "$as_me:$LINENO: checking for fseeko" >&5 -echo $ECHO_N "checking for fseeko... $ECHO_C" >&6 -if test "${ac_cv_func_fseeko+set}" = set; then + if test x$acx_atlas_ok = xyes; then + ATLAS_LIBPATH="-L$atlas_libdir/lib" + else + ATLAS_ERROR="CBLAS/LAPack library files not found in $atlas_libdir!" + fi + fi + fi + LIBS="$OLIBS" +fi + + + + +if test x"$acx_atlas_ok" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ATLAS 1 +_ACEOF + + if test x$use_pthreads = xyes; then + +{ echo "$as_me:$LINENO: checking for cblas_dgemm in -lptcblas" >&5 +echo $ECHO_N "checking for cblas_dgemm in -lptcblas... $ECHO_C" >&6; } +if test "${ac_cv_lib_ptcblas_cblas_dgemm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lptcblas $ATLAS_LIBPATH -lcblas -latlas -lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include + +/* 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 cblas_dgemm (); int main () { -return fseeko && fseeko (stdin, 0, 0); +return cblas_dgemm (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fseeko=yes + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_ptcblas_cblas_dgemm=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_fseeko=no + ac_cv_lib_ptcblas_cblas_dgemm=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_func_fseeko" >&5 -echo "${ECHO_T}$ac_cv_func_fseeko" >&6 -if test $ac_cv_func_fseeko = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_FSEEKO 1 +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ptcblas_cblas_dgemm" >&5 +echo "${ECHO_T}$ac_cv_lib_ptcblas_cblas_dgemm" >&6; } +if test $ac_cv_lib_ptcblas_cblas_dgemm = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTCBLAS 1 _ACEOF + LIBS="-lptcblas $LIBS" + +else + acx_atlas_ok=no fi + if test x$acx_atlas_ok = xyes; then + ATLAS_LIB="$ATLAS_LIBPATH -llapack -lptcblas -lcblas -latlas" + LIBS="$OLIBS" -########################### No multithreading yet! ########################### -#AC_DEFINE(USE_THREADS, 1, [Triggers multhreading]) -cat >>confdefs.h <<_ACEOF -#define THREADS_NMAX 1 +cat >>confdefs.h <<\_ACEOF +#define HAVE_ATLAS_MP 1 _ACEOF + use_atlas=yes + else + ATLAS_ERROR="CBLAS/LAPack was compiled without multithreading support!" + + use_atlas=no + fi + else + ATLAS_LIB="$ATLAS_LIBPATH -llapack -lcblas -latlas" + LIBS="$OLIBS" + + use_atlas=yes + fi +else + + use_atlas=no +fi -# href to the XSL style-sheet in preflist.h -CFLAGS="$CFLAGS -DXSL_URL=\\\"file://$datadir/${PACKAGE_NAME}/${PACKAGE_NAME}.xsl\\\"" -# Special optimization options for the INTEL C compiler -if test $use_icc = "yes" -a $CC = "icc"; then - CFLAGS="$CFLAGS -O3 -axiMKW -ipo -ipo_obj -unroll" +if test "$use_atlas" = "yes"; then + LIBS="$ATLAS_LIB $LIBS" +else + { { echo "$as_me:$LINENO: error: $ATLAS_ERROR Exiting." >&5 +echo "$as_me: error: $ATLAS_ERROR Exiting." >&2;} + { (exit 1); exit 1; }; } fi # Link with gprof option @@ -6755,30 +26906,37 @@ if test "$use_gprof" = "yes"; then if test "$use_icc" = "yes"; then CFLAGS="$CFLAGS -pq" else - CFLAGS="-O3 -pg" + CFLAGS="$CFLAGS -pg" fi use_static="no" fi +# Static linking option if test "$use_static" = "yes"; then - LDFLAGS="$LDFLAGS -static" + LDFLAGS="-static -shared-libgcc $LDFLAGS" fi # Override automatic CFLAGS and LDFLAGS with those of user -if test -n "$mycflags"; then -CFLAGS="$mycflags" -fi -if test -n "$myldflags"; then -LDFLAGS="$myldflags" -fi +#if test -n "$mycflags"; then +#CFLAGS="$mycflags" +#fi +#if test -n "$myldflags"; then +#LDFLAGS="$myldflags" +#fi # Display compiler and linker flags -echo "$as_me:$LINENO: result: I will compile using: $CC $CFLAGS" >&5 -echo "${ECHO_T}I will compile using: $CC $CFLAGS" >&6 -echo "$as_me:$LINENO: result: I will link using: $CC $LDFLAGS $LIBS" >&5 -echo "${ECHO_T}I will link using: $CC $LDFLAGS $LIBS" >&6 +{ echo "$as_me:$LINENO: result: ***************************************************************" >&5 +echo "${ECHO_T}***************************************************************" >&6; } +{ echo "$as_me:$LINENO: result: Compile cmdline: $CC $CFLAGS" >&5 +echo "${ECHO_T}Compile cmdline: $CC $CFLAGS" >&6; } +{ echo "$as_me:$LINENO: result: Link cmdline: $CC $LDFLAGS $LIBS" >&5 +echo "${ECHO_T}Link cmdline: $CC $LDFLAGS $LIBS" >&6; } +{ echo "$as_me:$LINENO: result: Default XSLT URL: $xsl_url" >&5 +echo "${ECHO_T}Default XSLT URL: $xsl_url" >&6; } +{ echo "$as_me:$LINENO: result: ***************************************************************" >&5 +echo "${ECHO_T}***************************************************************" >&6; } - ac_config_files="$ac_config_files Makefile man/Makefile src/Makefile src/fits/Makefile src/wcs/Makefile sextractor.spec sextractor-tpx.spec man/sex.1" +ac_config_files="$ac_config_files Makefile src/Makefile src/fits/Makefile src/levmar/Makefile src/wcs/Makefile man/Makefile tests/Makefile sextractor.spec man/sex.1" @@ -6786,32 +26944,18 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -6839,6 +26983,20 @@ echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${USE_THREADS_TRUE}" && test -z "${USE_THREADS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_THREADS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_THREADS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files @@ -6863,17 +27021,45 @@ cat >>$CONFIG_STATUS <<\_ACEOF ## M4sh Initialization. ## ## --------------------- ## -# Be Bourne compatible +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -6883,8 +27069,43 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' @@ -6898,18 +27119,19 @@ do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else - $as_unset $as_var + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +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 +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -6917,159 +27139,120 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || + X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi +# CDPATH. +$as_unset CDPATH - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" # Exit status is that of the last command. exit } -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; esac -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +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=: @@ -7078,7 +27261,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -7087,31 +27291,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - exec 6>&1 -# Open the log real soon, to keep \$[0] and so on meaningful, and to +# 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. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by sextractor $as_me 2.5.0, which was -generated by GNU Autoconf 2.59. Invocation command line was +# values after options handling. +ac_log=" +This file was extended by sextractor $as_me 2.8.2, which was +generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -7119,30 +27306,20 @@ generated by GNU Autoconf 2.59. Invocation command line was CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + _ACEOF +cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi +_ACEOF cat >>$CONFIG_STATUS <<\_ACEOF - ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. @@ -7150,7 +27327,7 @@ current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit - -V, --version print version number, then exit + -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions @@ -7169,19 +27346,22 @@ Configuration commands: $config_commands Report bugs to ." -_ACEOF +_ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -sextractor config.status 2.5.0 -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" +sextractor config.status 2.8.2 +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF @@ -7192,39 +27372,24 @@ while test $# != 0 do case $1 in --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; - -*) + *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; esac case $ac_option in # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift @@ -7234,18 +27399,24 @@ Try \`$0 --help' for more information." >&2;} $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; - *) ac_config_targets="$ac_config_targets $1" ;; + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; esac shift @@ -7261,44 +27432,57 @@ fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 +_ACEOF cat >>$CONFIG_STATUS <<_ACEOF # -# INIT-COMMANDS section. +# INIT-COMMANDS # - AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. for ac_config_target in $ac_config_targets do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/fits/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/fits/Makefile" ;; - "src/wcs/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/wcs/Makefile" ;; - "sextractor.spec" ) CONFIG_FILES="$CONFIG_FILES sextractor.spec" ;; - "sextractor-tpx.spec" ) CONFIG_FILES="$CONFIG_FILES sextractor-tpx.spec" ;; - "man/sex.1" ) CONFIG_FILES="$CONFIG_FILES man/sex.1" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/fits/Makefile") CONFIG_FILES="$CONFIG_FILES src/fits/Makefile" ;; + "src/levmar/Makefile") CONFIG_FILES="$CONFIG_FILES src/levmar/Makefile" ;; + "src/wcs/Makefile") CONFIG_FILES="$CONFIG_FILES src/wcs/Makefile" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "sextractor.spec") CONFIG_FILES="$CONFIG_FILES sextractor.spec" ;; + "man/sex.1") CONFIG_FILES="$CONFIG_FILES man/sex.1" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done + # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely @@ -7310,331 +27494,478 @@ if $ac_need_defaults; then fi # Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, +# simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. +# 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 || { - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } - # Create a (secure) tmp directory for tmp files. { - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - # -# CONFIG_FILES section. +# Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@PACKAGER@,$PACKAGER,;t t -s,@DATE2@,$DATE2,;t t -s,@DATE3@,$DATE3,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +PACKAGER!$PACKAGER$ac_delim +DATE2!$DATE2$ac_delim +DATE3!$DATE3$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +SED!$SED$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LN_S!$LN_S$ac_delim +ECHO!$ECHO$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +CPP!$CPP$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -fi # test -n "$CONFIG_FILES" +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +CXXCPP!$CXXCPP$ac_delim +F77!$F77$ac_delim +FFLAGS!$FFLAGS$ac_delim +ac_ct_F77!$ac_ct_F77$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +PTHREAD_CC!$PTHREAD_CC$ac_delim +PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim +PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim +USE_THREADS_TRUE!$USE_THREADS_TRUE$ac_delim +USE_THREADS_FALSE!$USE_THREADS_FALSE$ac_delim +FFTW_LIBS!$FFTW_LIBS$ac_delim +FFTW_ERROR!$FFTW_ERROR$ac_delim +ATLAS_LIBPATH!$ATLAS_LIBPATH$ac_delim +ATLAS_CFLAGS!$ATLAS_CFLAGS$ac_delim +ATLAS_LIB!$ATLAS_LIB$ac_delim +ATLAS_ERROR!$ATLAS_ERROR$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 21; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof _ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; esac - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || + 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 || + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + 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 ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - ac_builddir=. -if test "$ac_dir" != .; then +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + 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 ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; + 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 -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + case $ac_mode in + :F) + # + # CONFIG_FILE + # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$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 - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac _ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub @@ -7642,387 +27973,175 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs +rm -f conftest.defines conftest.tail +echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - rm -f $ac_file - mv $tmp/config.h $ac_file + mv "$tmp/config.h" $ac_file fi else - cat $tmp/config.h - rm -f $tmp/config.h + echo "/* $configure_input */" + cat "$ac_result" fi + rm -f "$tmp/out12" # 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 - $ac_file | $ac_file:* ) + $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac +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 || +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 + ;; -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; 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. @@ -8030,20 +28149,32 @@ echo "$as_me: executing $ac_dest commands" >&6;} # 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. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || + # 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 || + X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` else continue fi @@ -8065,53 +28196,79 @@ echo X"$mf" | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + 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 ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; + esac -done -_ACEOF +done # for ac_tag -cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF diff --git a/configure.ac b/configure.ac index e43c7643bd4b927ec2786d8a43fad977d38adae9..fba04f90666822c490f516ed99a9e435871a7234 100644 --- a/configure.ac +++ b/configure.ac @@ -1,12 +1,12 @@ # configure.in for SExtractor -# (C) E.Bertin 2002-2006 +# (C) E.Bertin 2002-2008 # Process this file with autoconf to produce a configure script. # First, disable the annoying config.cache define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) # This is your standard Bertin source code... -AC_INIT(sextractor, 2.5.0, [bertin@iap.fr]) +AC_INIT(sextractor, 2.8.2, [bertin@iap.fr]) AC_CONFIG_SRCDIR(src/makeit.c) AC_CONFIG_AUX_DIR(autoconf) AM_CONFIG_HEADER(config.h) @@ -20,7 +20,11 @@ AC_SUBST(DATE2, "$date2") AC_SUBST(DATE3, "$date3") # Include macros +sinclude(acx_atlas.m4) +sinclude(acx_fftw.m4) sinclude(acx_prog_cc_optim.m4) +sinclude(acx_pthread.m4) +sinclude(acx_urbi_resolve_dir.m4) # Display pakage and version number AC_MSG_RESULT([*********** Configuring: $PACKAGE $VERSION ($date) **********]) @@ -46,37 +50,17 @@ AC_ARG_ENABLE(icc, use_icc="no" AC_MSG_RESULT([no])) -# Provide special option for gprof profiling -AC_MSG_CHECKING([for gprof profiler mode]) -AC_ARG_ENABLE(gprof, - [AC_HELP_STRING([--enable-gprof], - [Enable special mode for compilation with the gprof profiler \ -(off by default)])], - use_gprof="yes" - AC_MSG_RESULT([yes]), - use_gprof="no" - AC_MSG_RESULT([no])) - -# Enable static linking -AC_MSG_CHECKING([static linking]) -AC_ARG_ENABLE(static, - [AC_HELP_STRING([--enable-static], - [Enable static linking \ -(off by default)])], - use_static="yes" - AC_MSG_RESULT([yes]), - use_static="no" - AC_MSG_RESULT([no])) - # Checks for programs. # GCC is chosen last because it is likely to yield less optimized code +AC_LANG(C) AC_PROG_CC([$cclist]) -# C Compiler: Check that it is ANSI C +# C Compiler: Check that it is ANSI C and POSIX-compliant AM_PROG_CC_STDC -# C Compiler: Check that it is POSIX-compliant AC_ISC_POSIX ACX_PROG_CC_OPTIM -AC_PROG_RANLIB +AC_DISABLE_STATIC +#AC_DISABLE_SHARED +AC_PROG_LIBTOOL AC_PROG_INSTALL # Checks for libraries. @@ -84,7 +68,8 @@ AC_CHECK_LIB(m, sin) # Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h sys/types.h unistd.h]) +AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \ + sys/types.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -95,24 +80,127 @@ AC_TYPE_UID_T # Checks for library functions. AC_FUNC_ERROR_AT_LINE -AC_FUNC_MALLOC +#AC_FUNC_MALLOC AC_FUNC_MMAP AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_STRFTIME -AC_CHECK_FUNCS([atexit getenv memcpy memmove memset mkdir munmap strstr]) +AC_CHECK_FUNCS([atexit getenv memcpy memmove memset mkdir munmap strstr \ + sincos logf]) # Check support for large files AC_SYS_LARGEFILE AC_FUNC_FSEEKO -########################### No multithreading yet! ########################### -#AC_DEFINE(USE_THREADS, 1, [Triggers multhreading]) -AC_DEFINE_UNQUOTED(THREADS_NMAX, 1,[Maximum number of POSIX threads]) +# Set the data directory to a true absolute path +datadir2=$(URBI_RESOLVE_DIR([$datadir])) + +# Provide special options for ATLAS +AC_ARG_WITH(atlas, + [AC_HELP_STRING([--with-atlas=], + [Provide an alternative path to the ATLAS library])], + atlas_libdir=$withval, + atlas_libdir="" + ) +AC_ARG_WITH(atlas-incdir, + [AC_HELP_STRING([--with-atlas-incdir=], + [Provide an alternative path to the ATLAS include directory])], + atlas_incdir=$withval, + atlas_incdir="" + ) + +# Provide special options for FFTW +AC_ARG_WITH(fftw, + [AC_HELP_STRING([--with-fftw=], + [Provide an alternative path to the FFTW library])], + fftw_libdir=$withval, + fftw_libdir="" + ) +AC_ARG_WITH(fftw-incdir, + [AC_HELP_STRING([--with-fftw-incdir=], + [Provide an alternative path to the FFTW include directory])], + fftw_incdir=$withval, + fftw_incdir="" + ) + +# Provide a special option for the default XSLT URL +AC_ARG_WITH(xsl_url, + [AC_HELP_STRING([--with-xsl_url=], + [Provide an alternative default URL of the XSLT filter])], + [xsl_url=$withval], + [xsl_url="file://$datadir2/$PACKAGE_NAME/$PACKAGE_NAME.xsl"] + ) + +AC_DEFINE_UNQUOTED([XSL_URL], "$xsl_url",[Default URL of the XSLT filter]) + +# Set flags for multithreading +n_pthreads=16 +AC_ARG_ENABLE(threads, + [AC_HELP_STRING([--enable-threads@<:@=@:>@], + [Enable multhreading (on with up to $n_pthreads threads by default)])], + if test "$enableval" = "no"; then + use_pthreads="no" + else + use_pthreads="yes" + if test "$enableval" != "yes"; then + n_pthreads=$enableval + fi + fi, + use_pthreads=yes + ) + +# Provide special option for gprof profiling +AC_MSG_CHECKING([for gprof profiler mode]) +AC_ARG_ENABLE(gprof, + [AC_HELP_STRING([--enable-gprof], + [Enable special mode for compilation with the gprof profiler \ +(off by default)])], + use_gprof="yes" + AC_MSG_RESULT([yes]), + use_gprof="no" + AC_MSG_RESULT([no])) + +# Enable static linking +AC_MSG_CHECKING([static linking]) +AC_ARG_ENABLE(static, + [AC_HELP_STRING([--enable-static], + [Enable static linking \ +(off by default)])], + use_static="yes" + AC_MSG_RESULT([yes]), + use_static="no" + AC_MSG_RESULT([no])) -# Special optimization options for the INTEL C compiler -if test $use_icc = "yes" -a $CC = "icc"; then - CFLAGS="$CFLAGS -O3 -axiMKW -ipo -ipo_obj -unroll" +################# Actions to complete in case of multhreading ################ +AC_DEFINE_UNQUOTED(THREADS_NMAX, $n_pthreads,[Maximum number of POSIX threads]) +if test "$use_pthreads" = "yes"; then + AC_MSG_CHECKING([for multithreading]) + AC_MSG_RESULT([maximum of $n_pthreads thread(s)]) + AC_DEFINE(USE_THREADS, 1, [Triggers multhreading]) +# CC, CFLAGS and LIBS are system and compiler-dependent + ACX_PTHREAD + CC="$PTHREAD_CC" + [CFLAGS="$CFLAGS $PTHREAD_CFLAGS -D_REENTRANT"] + LIBS="$PTHREAD_LIBS $LIBS" +fi +AM_CONDITIONAL(USE_THREADS, test $use_pthreads = "yes") + +################ handle the FFTW library (Fourier transforms) ################ +ACX_FFTW($fftw_libdir,$fftw_incdir,$use_pthreads,no, + [use_fftw=yes],[use_fftw=no]) +if test "$use_fftw" = "yes"; then + LIBS="$FFTW_LIBS $LIBS" +else + AC_MSG_ERROR([$FFTW_ERROR Exiting.]) +fi + +################## handle the ATLAS library(linear algebra) ################## +ACX_ATLAS($atlas_libdir,$atlas_incdir,$use_pthreads, + [use_atlas=yes],[use_atlas=no]) +if test "$use_atlas" = "yes"; then + LIBS="$ATLAS_LIB $LIBS" +else + AC_MSG_ERROR([$ATLAS_ERROR Exiting.]) fi # Link with gprof option @@ -120,26 +208,39 @@ if test "$use_gprof" = "yes"; then if test "$use_icc" = "yes"; then CFLAGS="$CFLAGS -pq" else - CFLAGS="-O3 -pg" + CFLAGS="$CFLAGS -pg" fi use_static="no" fi +# Static linking option if test "$use_static" = "yes"; then - LDFLAGS="$LDFLAGS -static" + LDFLAGS="-static -shared-libgcc $LDFLAGS" fi # Override automatic CFLAGS and LDFLAGS with those of user -if test -n "$mycflags"; then -CFLAGS="$mycflags" -fi -if test -n "$myldflags"; then -LDFLAGS="$myldflags" -fi +#if test -n "$mycflags"; then +#CFLAGS="$mycflags" +#fi +#if test -n "$myldflags"; then +#LDFLAGS="$myldflags" +#fi # Display compiler and linker flags -AC_MSG_RESULT([I will compile using: $CC $CFLAGS]) -AC_MSG_RESULT([I will link using: $CC $LDFLAGS $LIBS]) - -AC_CONFIG_FILES([Makefile man/Makefile src/Makefile src/fits/Makefile src/wcs/Makefile sextractor.spec sextractor-tpx.spec man/sex.1]) +AC_MSG_RESULT([***************************************************************]) +AC_MSG_RESULT([Compile cmdline: $CC $CFLAGS]) +AC_MSG_RESULT([Link cmdline: $CC $LDFLAGS $LIBS]) +AC_MSG_RESULT([Default XSLT URL: $xsl_url]) +AC_MSG_RESULT([***************************************************************]) + +AC_CONFIG_FILES([ +Makefile +src/Makefile +src/fits/Makefile +src/levmar/Makefile +src/wcs/Makefile +man/Makefile +tests/Makefile +sextractor.spec +man/sex.1]) AC_OUTPUT diff --git a/doc/Guide2source_extractor.pdf b/doc/Guide2source_extractor.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bbc5a296b346148cf4fa8fc597c9544335d2b42c Binary files /dev/null and b/doc/Guide2source_extractor.pdf differ diff --git a/doc/SE_Handbook.4.pdf b/doc/SE_Handbook.4.pdf deleted file mode 100644 index a6f55add33d15016685d61ada177a28f0d171ffe..0000000000000000000000000000000000000000 Binary files a/doc/SE_Handbook.4.pdf and /dev/null differ diff --git a/man/Makefile.in b/man/Makefile.in index 70e0908433b54986b74bc492fcfcfeb2239926be..c1c02fee23024320501781005e10a80f59bebe88 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -13,15 +13,11 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -33,11 +29,16 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ subdir = man DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/sex.1.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acx_prog_cc_optim.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -53,9 +54,12 @@ NROFF = nroff MANS = $(dist_man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -65,16 +69,27 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATE2 = @DATE2@ DATE3 = @DATE3@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -82,8 +97,11 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGER = @PACKAGER@ @@ -93,41 +111,66 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ +build = @build@ build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ +host = @host@ host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Manpage Makefile for SExtractor # Copyright (C) 2002 Emmanuel Bertin. @@ -144,9 +187,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu man/Makefile + $(AUTOMAKE) --foreign man/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -166,10 +209,15 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh sex.1: $(top_builddir)/config.status $(srcdir)/sex.1.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -uninstall-info-am: + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ @@ -214,7 +262,7 @@ uninstall-man1: done install-manx: $(manx_MANS) $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(manxdir)" || $(mkdir_p) "$(DESTDIR)$(manxdir)" + test -z "$(manxdir)" || $(MKDIR_P) "$(DESTDIR)$(manxdir)" @list='$(manx_MANS) $(dist_manx_MANS) $(nodist_manx_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ @@ -265,22 +313,21 @@ CTAGS: distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @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; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -296,7 +343,7 @@ check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(manxdir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am @@ -324,7 +371,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -342,12 +389,20 @@ info-am: install-data-am: install-man +install-dvi: install-dvi-am + install-exec-am: +install-html: install-html-am + install-info: install-info-am install-man: install-man1 install-manx +install-pdf: install-pdf-am + +install-ps: install-ps-am + installcheck-am: maintainer-clean: maintainer-clean-am @@ -356,7 +411,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am @@ -366,19 +421,24 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-man +uninstall-am: uninstall-man uninstall-man: uninstall-man1 uninstall-manx -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-man1 install-manx install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \ - uninstall-man uninstall-man1 uninstall-manx +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + 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-man1 \ + install-manx 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 uninstall uninstall-am uninstall-man uninstall-man1 \ + uninstall-manx # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/man/sex.1 b/man/sex.1 index e5411353499e014ddf4fb9840921a334b5307e9f..0600470b37ad958bd279951dee04e6b4b403cd60 100644 --- a/man/sex.1 +++ b/man/sex.1 @@ -1,4 +1,4 @@ -.TH SEXTRACTOR "1" "October 2006" "SWarp 2.5.0" "User Commands" +.TH SEXTRACTOR "1" "November 2008" "SWarp 2.8.2" "User Commands" .SH NAME sex \- extract a source catalog from an astronomical FITS image .SH SYNOPSIS diff --git a/sextractor-tpx.spec.in b/sextractor-tpx.spec.in index 6ff251469642a6bfb7e2911a67c6cdf5a04d16e7..d6ecc30bd29379c8a199c8fb9f1b730d886a2f3f 100644 --- a/sextractor-tpx.spec.in +++ b/sextractor-tpx.spec.in @@ -20,7 +20,7 @@ SExtractor stands for ``Source Extractor'': a software for making catalog of sou %setup -q %build -./configure --prefix=$RPM_BUILD_ROOT/usr/local/ --mandir=$RPM_BUILD_ROOT/usr/local/man/ --enable-static +./configure --prefix=$RPM_BUILD_ROOT/usr/local/ --mandir=$RPM_BUILD_ROOT/usr/local/man/ --with-xsl_url=file:///usr/local/share/@PACKAGE_NAME@/sextractor.xsl --enable-static make @@ -35,6 +35,7 @@ rm -rf $RPM_BUILD_ROOT /usr/local/bin/sex /usr/local/man/man1/sex.1 /usr/local/man/manx/sex.x +/usr/local/share/@PACKAGE_NAME@ %doc AUTHORS BUGS ChangeLog COPYING HISTORY INSTALL README THANKS doc/README.DOC doc/sextractor.ps %changelog diff --git a/sextractor.spec.in b/sextractor.spec.in index d505b2ce4073f7ab798849ec49d06555d17dae2c..49087d7b1a04a287e145aeb88ecd2b0814b14562 100644 --- a/sextractor.spec.in +++ b/sextractor.spec.in @@ -8,10 +8,12 @@ Version: %{version} Release: %{release} Source0: ftp://ftp.iap.fr/pub/from_users/bertin/sextractor/%{name}-%{version}.tar.gz URL: http://terapix.iap.fr/soft/%{name} -License: LGPL +License: GPLv3+ Group: Sciences/Astronomy BuildRoot: %{_tmppath}/%{name}-buildroot -Prefix: %{_prefix} +BuildRequires: pkgconfig +BuildRequires: fftw-devel >= 3.1 +BuildRequires: atlas-devel >= 3.6.0 %description SExtractor stands for ``Source Extractor'': a software for making catalog of sources from astronomical images. @@ -20,26 +22,28 @@ SExtractor stands for ``Source Extractor'': a software for making catalog of sou %setup -q %build -if test "$GCCFLAGS"; then -./configure --enable-static --prefix=$RPM_BUILD_ROOT/usr/local/ --mandir=$RPM_BUILD_ROOT/usr/local/man/ -make CFLAGS="$GCCFLAGS" +if test "$USE_ICC"; then +%configure --enable-icc else -./configure --prefix=$RPM_BUILD_ROOT/usr/local/ --mandir=$RPM_BUILD_ROOT/usr/local/man/ -make +%configure fi +make %{?_smp_mflags} %install -make install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) -/usr/local/bin/sex -/usr/local/man/man1/sex.1 -/usr/local/man/manx/sex.x %doc AUTHORS BUGS ChangeLog COPYING HISTORY INSTALL README THANKS doc/README.DOC doc/sextractor.pdf +%{_bindir}/sex +%{_bindir}/ldactoasc +%{_mandir}/man1/sex.1* +%{_mandir}/manx/sex.x* +%{_datadir}/@PACKAGE_NAME@ %changelog * @DATE2@ @PACKAGER@ <@PACKAGE_BUGREPORT@> diff --git a/src/Makefile.am b/src/Makefile.am index 7f1e3532b76ca5114202e821801dad08f458a2c2..ead93ca2333800560da9d36c5c453fb6d656e9bd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,20 +1,26 @@ # Program Makefile for SEx -# Copyright (C) 2004-2006 Emmanuel Bertin. -SUBDIRS = fits wcs -bin_PROGRAMS = sex +# Copyright (C) 2004-2008 Emmanuel Bertin. +SUBDIRS = fits levmar wcs +bin_PROGRAMS = sex ldactoasc +check_PROGRAMS = sex sex_SOURCES = analyse.c assoc.c astrom.c back.c bpro.c catout.c \ - check.c clean.c extract.c field.c filter.c \ - flag.c graph.c growth.c image.c interpolate.c \ - main.c makeit.c manobjlist.c misc.c neurro.c pc.c \ - photom.c plist.c poly.c prefs.c psf.c readimage.c \ - refine.c retina.c scan.c som.c weight.c winpos.c \ - xml.c \ + check.c clean.c extract.c fft.c field.c filter.c \ + fitswcs.c flag.c graph.c growth.c image.c \ + interpolate.c main.c makeit.c manobjlist.c misc.c \ + neurro.c pattern.c pc.c photom.c plist.c prefs.c \ + profit.c psf.c readimage.c refine.c retina.c scan.c \ + som.c weight.c winpos.c xml.c \ assoc.h astrom.h back.h bpro.h check.h clean.h \ - define.h extract.h field.h filter.h flag.h \ - globals.h growth.h image.h interpolate.h key.h \ - neurro.h param.h photom.h plist.h poly.h prefs.h \ - preflist.h psf.h retina.h sexhead1.h sexhead.h \ - sexheadsc.h som.h types.h weight.h winpos.h xml.h -AM_CPPFLAGS = -DXSL_URL=\"file://$(pkgdatadir)/${PACKAGE_NAME}.xsl\" -sex_LDADD = $(top_builddir)/src/fits/libfits.a $(top_builddir)/src/wcs/libwcs_c.a + define.h extract.h fft.h field.h filter.h fitswcs.h \ + flag.h globals.h growth.h image.h interpolate.h \ + key.h neurro.h param.h paramprofit.h pattern.h \ + photom.h plist.h prefs.h preflist.h profit.h psf.h \ + retina.h sexhead1.h sexhead.h sexheadsc.h som.h \ + threads.h types.h wcscelsys.h weight.h winpos.h xml.h +ldactoasc_SOURCES = ldactoasc.c ldactoasc.h +sex_LDADD = $(top_builddir)/src/fits/libfits.a \ + $(top_builddir)/src/wcs/libwcs_c.a \ + $(top_builddir)/src/levmar/liblevmar.a +ldactoasc_LDADD = $(top_builddir)/src/fits/libfits.a DATE=`date +"%Y-%m-%d"` + diff --git a/src/Makefile.in b/src/Makefile.in index e61b88a2be855ec2a924b1e4450b5b8321709ddc..8b48d5c820921d44c56135e94a361e764d9a9d6a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -14,15 +14,11 @@ @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -34,11 +30,17 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -bin_PROGRAMS = sex$(EXEEXT) +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = sex$(EXEEXT) ldactoasc$(EXEEXT) +check_PROGRAMS = sex$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acx_prog_cc_optim.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -48,43 +50,59 @@ CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) +am_ldactoasc_OBJECTS = ldactoasc.$(OBJEXT) +ldactoasc_OBJECTS = $(am_ldactoasc_OBJECTS) +ldactoasc_DEPENDENCIES = $(top_builddir)/src/fits/libfits.a am_sex_OBJECTS = analyse.$(OBJEXT) assoc.$(OBJEXT) astrom.$(OBJEXT) \ back.$(OBJEXT) bpro.$(OBJEXT) catout.$(OBJEXT) check.$(OBJEXT) \ - clean.$(OBJEXT) extract.$(OBJEXT) field.$(OBJEXT) \ - filter.$(OBJEXT) flag.$(OBJEXT) graph.$(OBJEXT) \ - growth.$(OBJEXT) image.$(OBJEXT) interpolate.$(OBJEXT) \ - main.$(OBJEXT) makeit.$(OBJEXT) manobjlist.$(OBJEXT) \ - misc.$(OBJEXT) neurro.$(OBJEXT) pc.$(OBJEXT) photom.$(OBJEXT) \ - plist.$(OBJEXT) poly.$(OBJEXT) prefs.$(OBJEXT) psf.$(OBJEXT) \ - readimage.$(OBJEXT) refine.$(OBJEXT) retina.$(OBJEXT) \ - scan.$(OBJEXT) som.$(OBJEXT) weight.$(OBJEXT) winpos.$(OBJEXT) \ - xml.$(OBJEXT) + clean.$(OBJEXT) extract.$(OBJEXT) fft.$(OBJEXT) \ + field.$(OBJEXT) filter.$(OBJEXT) fitswcs.$(OBJEXT) \ + flag.$(OBJEXT) graph.$(OBJEXT) growth.$(OBJEXT) \ + image.$(OBJEXT) interpolate.$(OBJEXT) main.$(OBJEXT) \ + makeit.$(OBJEXT) manobjlist.$(OBJEXT) misc.$(OBJEXT) \ + neurro.$(OBJEXT) pattern.$(OBJEXT) pc.$(OBJEXT) \ + photom.$(OBJEXT) plist.$(OBJEXT) prefs.$(OBJEXT) \ + profit.$(OBJEXT) psf.$(OBJEXT) readimage.$(OBJEXT) \ + refine.$(OBJEXT) retina.$(OBJEXT) scan.$(OBJEXT) som.$(OBJEXT) \ + weight.$(OBJEXT) winpos.$(OBJEXT) xml.$(OBJEXT) sex_OBJECTS = $(am_sex_OBJECTS) sex_DEPENDENCIES = $(top_builddir)/src/fits/libfits.a \ - $(top_builddir)/src/wcs/libwcs_c.a -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) + $(top_builddir)/src/wcs/libwcs_c.a \ + $(top_builddir)/src/levmar/liblevmar.a +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(sex_SOURCES) -DIST_SOURCES = $(sex_SOURCES) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(ldactoasc_SOURCES) $(sex_SOURCES) +DIST_SOURCES = $(ldactoasc_SOURCES) $(sex_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-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 uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -94,16 +112,27 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATE2 = @DATE2@ DATE3 = @DATE3@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -111,8 +140,11 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGER = @PACKAGER@ @@ -122,65 +154,96 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ +build = @build@ build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ +host = @host@ host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Program Makefile for SEx -# Copyright (C) 2004-2006 Emmanuel Bertin. -SUBDIRS = fits wcs +# Copyright (C) 2004-2008 Emmanuel Bertin. +SUBDIRS = fits levmar wcs sex_SOURCES = analyse.c assoc.c astrom.c back.c bpro.c catout.c \ - check.c clean.c extract.c field.c filter.c \ - flag.c graph.c growth.c image.c interpolate.c \ - main.c makeit.c manobjlist.c misc.c neurro.c pc.c \ - photom.c plist.c poly.c prefs.c psf.c readimage.c \ - refine.c retina.c scan.c som.c weight.c winpos.c \ - xml.c \ + check.c clean.c extract.c fft.c field.c filter.c \ + fitswcs.c flag.c graph.c growth.c image.c \ + interpolate.c main.c makeit.c manobjlist.c misc.c \ + neurro.c pattern.c pc.c photom.c plist.c prefs.c \ + profit.c psf.c readimage.c refine.c retina.c scan.c \ + som.c weight.c winpos.c xml.c \ assoc.h astrom.h back.h bpro.h check.h clean.h \ - define.h extract.h field.h filter.h flag.h \ - globals.h growth.h image.h interpolate.h key.h \ - neurro.h param.h photom.h plist.h poly.h prefs.h \ - preflist.h psf.h retina.h sexhead1.h sexhead.h \ - sexheadsc.h som.h types.h weight.h winpos.h xml.h - -sex_LDADD = $(top_builddir)/src/fits/libfits.a $(top_builddir)/src/wcs/libwcs_c.a + define.h extract.h fft.h field.h filter.h fitswcs.h \ + flag.h globals.h growth.h image.h interpolate.h \ + key.h neurro.h param.h paramprofit.h pattern.h \ + photom.h plist.h prefs.h preflist.h profit.h psf.h \ + retina.h sexhead1.h sexhead.h sexheadsc.h som.h \ + threads.h types.h wcscelsys.h weight.h winpos.h xml.h + +ldactoasc_SOURCES = ldactoasc.c ldactoasc.h +sex_LDADD = $(top_builddir)/src/fits/libfits.a \ + $(top_builddir)/src/wcs/libwcs_c.a \ + $(top_builddir)/src/levmar/liblevmar.a + +ldactoasc_LDADD = $(top_builddir)/src/fits/libfits.a DATE = `date +"%Y-%m-%d"` all: all-recursive .SUFFIXES: -.SUFFIXES: .c .o .obj +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -190,9 +253,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile + $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -212,14 +275,15 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ + || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done @@ -232,10 +296,24 @@ uninstall-binPROGRAMS: done clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +ldactoasc$(EXEEXT): $(ldactoasc_OBJECTS) $(ldactoasc_DEPENDENCIES) + @rm -f ldactoasc$(EXEEXT) + $(LINK) $(ldactoasc_OBJECTS) $(ldactoasc_LDADD) $(LIBS) sex$(EXEEXT): $(sex_OBJECTS) $(sex_DEPENDENCIES) @rm -f sex$(EXEEXT) - $(LINK) $(sex_LDFLAGS) $(sex_OBJECTS) $(sex_LDADD) $(LIBS) + $(LINK) $(sex_OBJECTS) $(sex_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -252,23 +330,27 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clean.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fft.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fitswcs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flag.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graph.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/growth.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpolate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldactoasc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makeit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/manobjlist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/neurro.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pattern.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/photom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plist.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poly.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readimage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/refine.Po@am__quote@ @@ -280,19 +362,31 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -uninstall-info-am: + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +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. @@ -325,8 +419,7 @@ $(RECURSIVE_TARGETS): $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: +$(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -370,8 +463,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -396,8 +489,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -407,13 +500,12 @@ ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique @@ -427,22 +519,21 @@ 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)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @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; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -456,7 +547,7 @@ distdir: $(DISTFILES) list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ @@ -464,17 +555,20 @@ distdir: $(DISTFILES) $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive @@ -502,7 +596,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am +clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ + clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -522,12 +617,20 @@ info-am: install-data-am: +install-dvi: install-dvi-recursive + install-exec-am: install-binPROGRAMS +install-html: install-html-recursive + install-info: install-info-recursive install-man: +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -537,7 +640,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-recursive @@ -547,23 +651,26 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-binPROGRAMS uninstall-info-am +uninstall-am: uninstall-binPROGRAMS -uninstall-info: uninstall-info-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-binPROGRAMS clean-generic clean-recursive ctags \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-binPROGRAMS \ + clean-checkPROGRAMS clean-generic clean-libtool ctags \ ctags-recursive distclean distclean-compile distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ + 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 \ - maintainer-clean-recursive mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-info-am + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/analyse.c b/src/analyse.c index 18e724a16d3539e07788d8cb5631fb5aa5b789ef..d982c43b21e0c1f1a84dbb449e78627af6da5e31 100644 --- a/src/analyse.c +++ b/src/analyse.c @@ -9,7 +9,7 @@ * * Contents: analyse(), endobject()...: measurements on detections. * -* Last modify: 12/01/2006 +* Last modify: 18/11/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -37,11 +37,13 @@ #include "image.h" #include "photom.h" #include "psf.h" +#include "profit.h" #include "retina.h" #include "som.h" #include "winpos.h" static obj2struct *obj2 = &outobj2; +extern profitstruct *theprofit; /********************************* analyse ***********************************/ void analyse(picstruct *field, picstruct *dfield, int objnb, @@ -88,10 +90,10 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, checkstruct *check; pliststruct *pixt; int i,j,k,h, photoflag,area,errflag, cleanflag, - pospeakflag, profflag, minarea, gainflag; + pospeakflag, minarea, gainflag; double tv,sigtv, ngamma, esum, emx2,emy2,emxy, err,gain,backnoise2,dbacknoise2, - xm,ym, x,y,var,var2, profflux,proffluxvar; + xm,ym, x,y,var,var2; float *heap,*heapt,*heapj,*heapk, swap; PIXTYPE pix, cdpix, tpix, peak,cdpeak, thresh,dthresh; static PIXTYPE threshs[NISO]; @@ -112,8 +114,7 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, xm = ym = dbacknoise2 = 0.0; /* to avoid gcc -Wall warnings */ pospeakflag = FLAG(obj.peakx); - profflag = FLAG(obj.flux_prof); - gain = prefs.gain; + gain = field->gain; ngamma = field->ngamma; photoflag = (prefs.detect_type==PHOTO); gainflag = PLISTEXIST(var) && prefs.weightgain_flag; @@ -143,7 +144,7 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, /* Measure essential isophotal parameters in the measurement image... */ - tv = sigtv = profflux = proffluxvar = 0.0; + tv = sigtv = 0.0; var = backnoise2 = field->backsig*field->backsig; peak = -BIG; cdpeak = -BIG; @@ -178,12 +179,6 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, sigtv += var2; - if (profflag && cdpix>0.0) - { - profflux += cdpix*pix; - proffluxvar += cdpix*var2; - } - if (pix>thresh) area++; tv += pix; @@ -245,12 +240,6 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, free(heap); } - if (profflag) - { - obj->flux_prof = obj->fdflux>0.0? (float)(profflux/obj->fdflux) : 0.0; - obj->fluxerr_prof = obj->fdflux>0.0? (float)(proffluxvar/obj->fdflux):0.0; - } - if (errflag) { double flux2; @@ -348,7 +337,7 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, mx = obj->mx; my = obj->my; dbkg = obj->dbkg; - sat = (double)(prefs.satur_level - obj->bkg); + sat = (double)(field->satur_level - obj->bkg); s = sx = sy = sxx = sxy = 0.0; for (pixt=pixel+obj->firstpix;pixt>=pixel;pixt=pixel+PLIST(pixt,nextpix)) { @@ -484,11 +473,6 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, /*-- Convert the father of photom. error estimates from variance to RMS */ obj2->flux_iso = obj->flux; obj2->fluxerr_iso = sqrt(obj->fluxerr); - if (FLAG(obj.flux_prof)) - { - obj2->flux_prof = obj->flux_prof; - obj2->fluxerr_prof = sqrt(obj->fluxerr_prof); - } if (FLAG(obj2.flux_isocor)) computeisocorflux(field, obj); @@ -512,7 +496,7 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, compute_winpos(field, wfield, obj); /*-- What about the peak of the profile? */ - if (obj->peak+obj->bkg >= prefs.satur_level) + if (obj->peak+obj->bkg >= field->satur_level) obj->flag |= OBJ_SATUR; /*-- Check-image CHECK_APERTURES option */ @@ -602,7 +586,7 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, } som_phot(thesom, obj->bkg, field->backsig, - (float)prefs.gain, obj->mx-ix, obj->my-iy, + (float)field->gain, obj->mx-ix, obj->my-iy, FLAG(obj2.vector_somfit)?outobj2.vector_somfit:NULL, -1.0); obj2->stderr_somfit = thesom->stderror; obj2->flux_somfit = thesom->amp; @@ -617,9 +601,6 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, copyimage_center(field, outobj2.vigshift, prefs.vigshiftsize[0], prefs.vigshiftsize[1], obj->mx, obj->my); -/*--- Express everything in magnitude units */ - computemags(field, obj); - /*------------------------------- PSF fitting ------------------------------*/ nsub = 1; if (prefs.psf_flag) @@ -655,6 +636,14 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, } } +/*----------------------------- Profile fitting -----------------------------*/ + nsub = 1; + if (prefs.prof_flag) + profit_fit(theprofit, field, wfield, obj, obj2); + +/*--- Express everything in magnitude units */ + computemags(field, obj); + /*-------------------------------- Astrometry ------------------------------*/ if (prefs.world_flag) computeastrom(field, obj); @@ -704,6 +693,25 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, writecat(n, objlist); } } + else + { +/*-- Treatment of discarded detections */ +/*-- update segmentation map */ + if ((check=prefs.check[CHECK_SEGMENTATION])) + { + ULONG *pix; + ULONG oldsnumber = obj->number; + int dx,dx0,dy,dpix; + + pix = (ULONG *)check->pix + check->width*obj->ymin + obj->xmin; + dx0 = obj->xmax-obj->xmin+1; + dpix = check->width-dx0; + for (dy=obj->ymax-obj->ymin+1; dy--; pix += dpix) + for (dx=dx0; dx--; pix++) + if (*pix==oldsnumber) + *pix = 0; + } + } /* Remove again from the image the object's pixels if BLANKing is on ... */ /*-- ... and free memory */ diff --git a/src/assoc.h b/src/assoc.h index fc39b131bb7a41aef8a180dd5e95f40656f54431..86abac4830142084b9ad8b9b31d207861e376ffa 100644 --- a/src/assoc.h +++ b/src/assoc.h @@ -9,13 +9,13 @@ * * Contents: Include file for assoc.c. * -* Last modify: 25/06/97 +* Last modify: 14/10/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ -#define ASSOC_BUFINC 65536 /* Assoc buffer increment (bytes) */ +#define ASSOC_BUFINC 131072 /* Assoc buffer increment (bytes) */ /*--------------------------------- typedefs --------------------------------*/ diff --git a/src/astrom.c b/src/astrom.c index f9461636a989247b59a0e7d74e62bfce343bf0b6..86ff9c63a01fc0bd0ef5703a24b54d32dcfbd0db 100644 --- a/src/astrom.c +++ b/src/astrom.c @@ -9,7 +9,7 @@ * * Contents: Astrometrical computations. * -* Last modify: 13/07/2006 +* Last modify: 19/05/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -27,6 +27,7 @@ #include "globals.h" #include "prefs.h" #include "astrom.h" +#include "fitswcs.h" #include "wcs/tnx.h" static obj2struct *obj2 = &outobj2; @@ -38,114 +39,41 @@ Initialize astrometrical structures. void initastrom(picstruct *field) { - astromstruct *as; - double *lm; - int l,n, lng,lat, naxis; + wcsstruct *wcs; - as = field->astrom; - - naxis = as->naxis; + wcs = field->wcs; /* Test if the WCS is in use */ - if (as->wcs_flag) -/*-- ...Yes: launch the WCS stuff! */ + if (wcs->lng != wcs->lat) { - QCALLOC(as->lin, struct linprm, 1); - QMALLOC(as->cel, struct celprm, 1); - QMALLOC(as->prj, struct prjprm, 1); - QMALLOC(as->lin->cdelt, double, naxis); - QMALLOC(as->lin->crpix, double, naxis); - QMALLOC(as->lin->pc, double, naxis*naxis); -/* Set WCS flags to 0: structures will be reinitialized by the WCS library */ - as->wcs->flag = as->lin->flag = as->cel->flag = as->prj->flag = 0; - as->lin->naxis = as->naxis; - -/* wcsprm structure */ - lng = as->lng = as->wcs->lng; - lat = as->lat = as->wcs->lat; - -/*-- linprm structure */ - for (l=0; llin->crpix[l] = as->crpix[l]; - as->lin->cdelt[l] = as->cdelt[l]; - as->cel->ref[l] = as->crval[l]; - } - for (l=0; llin->pc[l] = as->pc[l]; - -/*-- celprm structure */ - if (lng>=0) - { - as->cel->ref[0] = as->crval[lng]; - as->cel->ref[1] = as->crval[lat]; - } - else - { - as->cel->ref[0] = as->crval[0]; - as->cel->ref[1] = as->crval[1]; - } - as->cel->ref[2] = as->longpole; - as->cel->ref[3] = as->latpole; - -/* prjprm structure */ - as->prj->r0 = as->r0; - as->prj->tnx_lngcor = as->tnx_lngcor; - as->prj->tnx_latcor = as->tnx_latcor; - if (lng>=0) - { - n = 0; - for (l=100; l--;) - { - as->prj->p[l] = as->projp[l+lng*100]; - as->prj->p[l+100] = as->projp[l+lat*100]; - if (!n && (as->prj->p[l] || as->prj->p[l+100])) - n = l+1; - } - } - -/*-- Compute an "average linear matrix" (at field center) */ - compute_wcs(field, (field->width+1)/2.0, (field->height+1)/2.0); - -/*---- Compute Pole coordinates in J2000 and/or B1950 for THETAs */ if (FLAG(obj2.theta2000) || FLAG(obj2.theta1950) || FLAG(obj2.poserr_theta2000) || FLAG(obj2.poserr_theta1950) || FLAG(obj2.win_theta2000) || FLAG(obj2.win_theta1950) - || FLAG(obj2.winposerr_theta2000) || FLAG(obj2.winposerr_theta1950)) + || FLAG(obj2.winposerr_theta2000) || FLAG(obj2.winposerr_theta1950) + || FLAG(obj2.prof_spheroid_theta2000) + || FLAG(obj2.prof_spheroid_theta1950) + || FLAG(obj2.prof_disk_theta2000) || FLAG(obj2.prof_disk_theta1950) +// || FLAG(obj2.prof_arms_theta2000) || FLAG(obj2.prof_arms_theta1950) + || FLAG(obj2.prof_bar_theta2000) || FLAG(obj2.prof_bar_theta1950)) { - if (fabs(as->equinox-2000.0)>0.003) - precess(as->equinox, 0.0, 90.0, 2000.0, &as->ap2000, &as->dp2000); + if (fabs(wcs->equinox-2000.0)>0.003) + precess(wcs->equinox, 0.0, 90.0, 2000.0, &wcs->ap2000, &wcs->dp2000); else { - as->ap2000 = 0.0; - as->dp2000 = 90.0; + wcs->ap2000 = 0.0; + wcs->dp2000 = 90.0; } if (FLAG(obj2.theta1950) || FLAG(obj2.poserr_theta1950)) - j2b(as->equinox, as->ap2000, as->dp2000, &as->ap1950, &as->dp1950); + j2b(wcs->equinox, wcs->ap2000, wcs->dp2000, &wcs->ap1950, &wcs->dp1950); } } - else -/*-- ...No: compute only the determinant */ - { -/*-- Simplify the original FITS PC matrix */ - lm = as->linmat; - for (l=0; lpc[l]*as->cdelt[l/naxis]; -/*-- Check valid only in 2D */ - if ((as->lindet = lm[0]*lm[3] - lm[1]*lm[2]) == 0.0) - warning ("Null determinant in the global distortion matrix:\n", - " Some WORLD-parameters will be incorrect"); - } /* Override astrometric definitions only if user supplies a pixel-scale */ if (prefs.pixel_scale == 0.0) - { - as->pixscale = sqrt(fabs(as->lindet)); - field->pixscale = 3600.0*as->pixscale; /* in arcsec2 */ - } + field->pixscale = wcs->pixscale*3600.0; /* in arcsec */ else - as->pixscale = (field->pixscale=prefs.pixel_scale)/3600.0; + field->pixscale = prefs.pixel_scale; return; } @@ -158,124 +86,175 @@ Compute real WORLD coordinates and dimensions according to FITS info. void computeastrom(picstruct *field, objstruct *obj) { - astromstruct *as; - double *lm, *wcspos; + wcsstruct *wcs; + double rawpos[NAXIS], wcspos[NAXIS], + pixscale2, da,dd; + int lng,lat; - as = field->astrom; - lm = as->linmat; + wcs = field->wcs; + lng = wcs->lng; + lat = wcs->lat; + pixscale2 = 0.0; /* To avoid gcc -Wall warnings */ /* If working with WCS, compute WORLD coordinates and local matrix */ if (FLAG(obj2.mxw)) { - if (as->wcs_flag) + rawpos[0] = obj2->posx; + rawpos[1] = obj2->posy; + raw_to_wcs(wcs, rawpos, wcspos); + obj2->mxw = wcspos[0]; + obj2->myw = wcspos[1]; + if (lng != lat) { - wcspos = compute_wcs(field, obj2->posx, obj2->posy); - obj2->alphas = obj2->mxw = wcspos[0]; - obj2->deltas = obj2->myw = wcspos[1]; + obj2->alphas = lngmxw : obj2->myw; + obj2->deltas = lngmyw : obj2->mxw; if (FLAG(obj2.alpha2000)) { - if (fabs(as->equinox-2000.0)>0.003) - precess(as->equinox, wcspos[0], wcspos[1], + if (fabs(wcs->equinox-2000.0)>0.003) + precess(wcs->equinox, wcspos[lngalpha2000, &obj2->delta2000); else { - obj2->alpha2000 = obj2->mxw; - obj2->delta2000 = obj2->myw; + obj2->alpha2000 = lngmxw : obj2->myw; + obj2->delta2000 = lngmyw : obj2->mxw; + } + if (FLAG(obj2.dtheta2000)) + { + da = wcs->ap2000 - obj2->alpha2000; + dd = (sin(wcs->dp2000*DEG) + -sin(obj2->delta2000*DEG)*sin(obj2->deltas*DEG)) + /(cos(obj2->delta2000*DEG)*cos(obj2->deltas*DEG)); + dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; + obj2->dtheta2000 = (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); } if (FLAG(obj2.alpha1950)) - j2b(as->equinox, obj2->alpha2000, obj2->delta2000, + { + j2b(wcs->equinox, obj2->alpha2000, obj2->delta2000, &obj2->alpha1950, &obj2->delta1950); + if (FLAG(obj2.dtheta1950)) + { + da = wcs->ap1950 - obj2->alpha1950; + dd = (sin(wcs->dp1950*DEG) + -sin(obj2->delta1950*DEG)*sin(obj2->deltas*DEG)) + /(cos(obj2->delta1950*DEG)*cos(obj2->deltas*DEG)); + dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; + obj2->dtheta1950 = (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); + } + } } } - else - { - double dx,dy; - - dx = obj2->posx - as->crpix[0]; - dy = obj2->posy - as->crpix[1]; - obj2->mxw = as->crval[0]+ lm[0]*dx + lm[1]*dy; /* CDELT included! */ - obj2->myw = as->crval[1]+ lm[2]*dx + lm[3]*dy; /* CDELT included! */ - } } /* Idem for peak-flux positions */ if (FLAG(obj2.peakxw)) { - if (as->wcs_flag) + rawpos[0] = obj->peakx; + rawpos[1] = obj->peaky; + raw_to_wcs(wcs, rawpos, wcspos); + obj2->peakxw = wcspos[0]; + obj2->peakyw = wcspos[1]; + if (lng != lat) { - wcspos = compute_wcs(field, (double)obj->peakx, (double)obj->peaky); - obj2->peakalphas = obj2->peakxw = wcspos[0]; - obj2->peakdeltas = obj2->peakyw = wcspos[1]; + obj2->peakalphas = lngpeakxw : obj2->peakyw; + obj2->peakdeltas = lngpeakyw : obj2->peakxw; if (FLAG(obj2.peakalpha2000)) { - if (fabs(as->equinox-2000.0)>0.003) - precess(as->equinox, wcspos[0], wcspos[1], + if (fabs(wcs->equinox-2000.0)>0.003) + precess(wcs->equinox, wcspos[lngpeakalpha2000, &obj2->peakdelta2000); else { - obj2->peakalpha2000 = obj2->peakxw; - obj2->peakdelta2000 = obj2->peakyw; + obj2->peakalpha2000 = lngpeakxw : obj2->peakyw; + obj2->peakdelta2000 = lngpeakyw : obj2->peakxw; } if (FLAG(obj2.peakalpha1950)) - j2b(as->equinox, obj2->peakalpha2000, obj2->peakdelta2000, + j2b(wcs->equinox, obj2->peakalpha2000, obj2->peakdelta2000, &obj2->peakalpha1950, &obj2->peakdelta1950); } } - else - { - double dx,dy; - - dx = obj->peakx - as->crpix[0]; - dy = obj->peaky - as->crpix[1]; - obj2->peakxw = as->crval[0]+ lm[0]*dx + lm[1]*dy; /* CDELT included! */ - obj2->peakyw = as->crval[1]+ lm[2]*dx + lm[3]*dy; /* CDELT included! */ - } } /* Idem for Windowed positions */ if (FLAG(obj2.winpos_xw)) { - if (as->wcs_flag) + rawpos[0] = obj2->winpos_x; + rawpos[1] = obj2->winpos_y; + raw_to_wcs(wcs, rawpos, wcspos); + obj2->winpos_xw = wcspos[0]; + obj2->winpos_yw = wcspos[1]; + if (lng != lat) { - wcspos = compute_wcs(field, obj2->winpos_x, obj2->winpos_y); - obj2->winpos_alphas = obj2->winpos_xw = wcspos[0]; - obj2->winpos_deltas = obj2->winpos_yw = wcspos[1]; + obj2->winpos_alphas = lngwinpos_xw : obj2->winpos_yw; + obj2->winpos_deltas = lngwinpos_yw : obj2->winpos_xw; if (FLAG(obj2.winpos_alpha2000)) { - if (fabs(as->equinox-2000.0)>0.003) - precess(as->equinox, wcspos[0], wcspos[1], + if (fabs(wcs->equinox-2000.0)>0.003) + precess(wcs->equinox, wcspos[0], wcspos[1], 2000.0, &obj2->winpos_alpha2000, &obj2->winpos_delta2000); else { - obj2->winpos_alpha2000 = obj2->winpos_xw; - obj2->winpos_delta2000 = obj2->winpos_yw; + obj2->winpos_alpha2000 = lngwinpos_xw : obj2->winpos_yw; + obj2->winpos_delta2000 = lngwinpos_yw : obj2->winpos_xw; } if (FLAG(obj2.winpos_alpha1950)) - j2b(as->equinox, obj2->winpos_alpha2000, obj2->winpos_delta2000, + j2b(wcs->equinox, obj2->winpos_alpha2000, obj2->winpos_delta2000, &obj2->winpos_alpha1950, &obj2->winpos_delta1950); } } - else - { - double dx,dy; + } - dx = obj2->winpos_x - as->crpix[0]; - dy = obj2->winpos_y - as->crpix[1]; - obj2->winpos_xw = as->crval[0]+ lm[0]*dx + lm[1]*dy;/* CDELT included! */ - obj2->winpos_yw = as->crval[1]+ lm[2]*dx + lm[3]*dy;/* CDELT included! */ +/* Idem for Model-fitted positions */ + if (FLAG(obj2.xw_prof)) + { + rawpos[0] = obj2->x_prof; + rawpos[1] = obj2->y_prof; + raw_to_wcs(wcs, rawpos, wcspos); + obj2->xw_prof = wcspos[0]; + obj2->yw_prof = wcspos[1]; + if (lng != lat) + { + obj2->alphas_prof = lngxw_prof : obj2->yw_prof; + obj2->deltas_prof = lngyw_prof : obj2->xw_prof; + if (FLAG(obj2.alpha2000_prof)) + { + if (fabs(wcs->equinox-2000.0)>0.003) + precess(wcs->equinox, wcspos[0], wcspos[1], + 2000.0, &obj2->alpha2000_prof, &obj2->delta2000_prof); + else + { + obj2->alpha2000_prof = lngxw_prof : obj2->yw_prof; + obj2->delta2000_prof = lngyw_prof : obj2->xw_prof; + } + if (FLAG(obj2.alpha1950_prof)) + j2b(wcs->equinox, obj2->alpha2000_prof, obj2->delta2000_prof, + &obj2->alpha1950_prof, &obj2->delta1950_prof); + } } } /* Custom coordinate system for the MAMA machine */ if (FLAG(obj2.mamaposx)) { - double dx,dy; + rawpos[0] = obj2->posx - 0.5; + rawpos[1] = obj2->posy - 0.5; + raw_to_wcs(wcs, rawpos, wcspos); + obj2->mamaposx = wcspos[1]*(MAMA_CORFLEX+1.0); + obj2->mamaposy = wcspos[0]*(MAMA_CORFLEX+1.0); + } - dx = obj2->posx - 0.5; - dy = obj2->posy - 0.5; - obj2->mamaposx = (as->crval[1]+lm[2]*dx+lm[3]*dy) - *(MAMA_CORFLEX+1.0); /* CDELT included! */ - obj2->mamaposy = (as->crval[0]+lm[0]*dx+lm[1]*dy); /* CDELT included! */ + if (FLAG(obj2.mx2w) + || FLAG(obj2.win_mx2w) + || FLAG(obj2.poserr_mx2w) + || FLAG(obj2.winposerr_mx2w) + || FLAG(obj2.poserrmx2w_prof) + || FLAG(obj2.prof_flagw) + || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) + || FLAG(obj2.fdnpixw) + || FLAG(obj2.fwhmw)))) + { + rawpos[0] = obj2->posx; + rawpos[1] = obj2->posy; + pixscale2 = wcs_jacobian(wcs, rawpos, obj2->jacob); } /* Express shape parameters in WORLD frame */ @@ -283,134 +262,55 @@ void computeastrom(picstruct *field, objstruct *obj) astrom_shapeparam(field, obj); if (FLAG(obj2.win_mx2w)) astrom_winshapeparam(field, obj); + if (FLAG(obj2.prof_flagw)) + astrom_profshapeparam(field, obj); /* Express position error parameters in WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_errparam(field, obj); if (FLAG(obj2.winposerr_mx2w)) astrom_winerrparam(field, obj); + if (FLAG(obj2.poserrmx2w_prof)) + astrom_proferrparam(field, obj); if (FLAG(obj2.npixw)) - obj2->npixw = obj->npix*as->pixscale*as->pixscale; + obj2->npixw = obj->npix * (prefs.pixel_scale? + field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fdnpixw)) - obj2->fdnpixw = obj->fdnpix*as->pixscale*as->pixscale; + obj2->fdnpixw = obj->fdnpix * (prefs.pixel_scale? + field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fwhmw)) - obj2->fwhmw = obj->fwhm*as->pixscale; + obj2->fwhmw = obj->fwhm * (prefs.pixel_scale? + field->pixscale/3600.0 : sqrt(pixscale2)); return; } -/****************************** compute_wcs *********************************/ -/* -Compute real WORLD coordinates and local distortion matrix according to the -WCS info. -*/ -double *compute_wcs(picstruct *field, double mx, double my) - - { - astromstruct *as; - static double pixpos[NAXIS], wcspos[NAXIS],wcspos0[2], imgcrd[NAXIS], - phi,theta; - double *lm, al,da,de,cde; - int rcode, lng,lat, naxis; - - as = field->astrom; - lm = as->linmat; - - naxis = as->naxis; - lng = as->lng; - lat = as->lat; - if (lng == lat) - { - lng = 0; - lat = 1; - } - - pixpos[lng] = mx; - pixpos[lat] = my; - - if ((rcode=wcsrev((const char(*)[9])as->ctype, as->wcs, pixpos, as->lin, - imgcrd, as->prj, &phi, &theta, as->crval, as->cel, wcspos))) - error(EXIT_FAILURE, "*Error* in WCSlib: ", (char *)wcsrev_errmsg[rcode]); - -/* Compute the local distortion matrix */ - al = wcspos0[lngctype, as->wcs, pixpos, as->lin, - imgcrd, as->prj, &phi, &theta, as->crval, as->cel, wcspos))) - error(EXIT_FAILURE, "*Error* in WCSlib: ", (char *)wcsrev_errmsg[rcode]); - - da = wcspos[lng]-al; - if (da>180.0) - da -= 360.0; - else if (da<-180.0) - da += 360.0; - - lm[lng] = da*(cde=cos(de*DEG)); - lm[lat] = wcspos[lat] - de; - -/* Get world coordinates for vector 0,1 */ -/* Second one */ - pixpos[lng] = mx; - pixpos[lat] = my + 1.0; - if ((rcode=wcsrev((const char(*)[9])as->ctype, as->wcs, pixpos, as->lin, - imgcrd, as->prj, &phi, &theta, as->crval, as->cel, wcspos))) - error(EXIT_FAILURE, "*Error* in WCSlib: ", (char *)wcsrev_errmsg[rcode]); - - da = wcspos[lng]-al; - if (da>180.0) - da -= 360.0; - else if (da<-180.0) - da += 360.0; - - lm[2] = da*cde; - lm[3] = wcspos[lat] - de; - - as->lindet = lm[lng+lng*naxis]*lm[lat+lat*naxis] - - lm[lng+lat*naxis]*lm[lat+lng*naxis]; - if (as->lindet == 0.0) - warning ("Null determinant in the local distortion matrix:\n", - " Some WORLD-parameters will be incorrect"); - - if (prefs.pixel_scale == 0.0) - as->pixscale = sqrt(fabs(as->lindet)); - - return wcspos0; - } - - /****************************** astrom_shapeparam ****************************/ /* Compute shape parameters in WORLD and SKY coordinates. */ void astrom_shapeparam(picstruct *field, objstruct *obj) { - astromstruct *as; - double *lm, - dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; int lng,lat, naxis; - as = field->astrom; - lm = as->linmat; - - naxis = as->naxis; - lng = as->lng; - lat = as->lat; + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; if (lng == lat) { lng = 0; lat = 1; } - lm0 = lm[lng+naxis*lng]; - lm1 = lm[lat+naxis*lng]; - lm2 = lm[lng+naxis*lat]; - lm3 = lm[lat+naxis*lat]; + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; /* All WORLD params based on 2nd order moments have to pass through here */ @@ -423,36 +323,20 @@ void astrom_shapeparam(picstruct *field, objstruct *obj) temp=xm2-ym2; if (FLAG(obj2.thetaw)) { - obj2->thetaw = (temp == 0.0)? (45.0) : (0.5*atan2(2.0 * xym,temp)/DEG); - if (as->wcs_flag && FLAG(obj2.thetas)) - obj2->thetas = obj2->thetaw + (obj2->thetaw>0.0?-90:90.0); + obj2->thetaw = fmod_m90_p90((temp == 0.0)? + (45.0) : (0.5*atan2(2.0 * xym,temp)/DEG)); /*-- Compute position angles in J2000 or B1950 reference frame */ - if (as->wcs_flag) + if (wcs->lng != wcs->lat) { - double da,dd; - + if (FLAG(obj2.thetas)) + obj2->thetas = fmod_m90_p90(lngthetaw>0.0?90:-90.0) - obj2->thetaw) + : obj2->thetaw); if (FLAG(obj2.theta2000)) - { - da = as->ap2000 - obj2->alpha2000; - dd = (sin(as->dp2000*DEG) - -sin(obj2->delta2000*DEG)*sin(obj2->deltas*DEG)) - /(cos(obj2->delta2000*DEG)*cos(obj2->deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->theta2000 = obj2->thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } - + obj2->theta2000 = fmod_m90_p90(obj2->thetas + obj2->dtheta2000); if (FLAG(obj2.theta1950)) - { - da = as->ap1950 - obj2->alpha1950; - dd = (sin(as->dp1950*DEG) - -sin(obj2->delta1950*DEG)*sin(obj2->deltas*DEG)) - /(cos(obj2->delta1950*DEG)*cos(obj2->deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->theta1950 = obj2->thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } + obj2->theta1950 = fmod_m90_p90(obj2->thetas + obj2->dtheta1950); } } @@ -488,26 +372,23 @@ Compute shape parameters in WORLD and SKY coordinates. */ void astrom_winshapeparam(picstruct *field, objstruct *obj) { - astromstruct *as; - double *lm, - dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; int lng,lat, naxis; - as = field->astrom; - lm = as->linmat; - - naxis = as->naxis; - lng = as->lng; - lat = as->lat; + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; if (lng == lat) { lng = 0; lat = 1; } - lm0 = lm[lng+naxis*lng]; - lm1 = lm[lat+naxis*lng]; - lm2 = lm[lng+naxis*lat]; - lm3 = lm[lat+naxis*lat]; + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; /* All WORLD params based on 2nd order moments have to pass through here */ dx2 = obj2->win_mx2; @@ -519,37 +400,20 @@ void astrom_winshapeparam(picstruct *field, objstruct *obj) temp=xm2-ym2; if (FLAG(obj2.win_thetaw)) { - obj2->win_thetaw = (temp == 0.0)? (45.0) : (0.5*atan2(2.0*xym,temp)/DEG); - if (as->wcs_flag && FLAG(obj2.win_thetas)) - obj2->win_thetas = obj2->win_thetaw + - (obj2->win_thetaw>0.0?-90:90.0); + obj2->win_thetaw = fmod_m90_p90((temp == 0.0)? + (45.0) : (0.5*atan2(2.0*xym,temp)/DEG)); /*-- Compute position angles in J2000 or B1950 reference frame */ - if (as->wcs_flag) + if (wcs->lng != wcs->lat) { - double da,dd; - + if (FLAG(obj2.win_thetas)) + obj2->win_thetas = fmod_m90_p90(lngwin_thetaw>0.0?90:-90.0) - obj2->win_thetaw) + : obj2->win_thetaw); if (FLAG(obj2.win_theta2000)) - { - da = as->ap2000 - obj2->winpos_alpha2000; - dd = (sin(as->dp2000*DEG) - -sin(obj2->winpos_delta2000*DEG)*sin(obj2->winpos_deltas*DEG)) - /(cos(obj2->winpos_delta2000*DEG)*cos(obj2->winpos_deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->win_theta2000 = obj2->win_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } - + obj2->win_theta2000 = fmod_m90_p90(obj2->win_thetas + obj2->dtheta2000); if (FLAG(obj2.win_theta1950)) - { - da = as->ap1950 - obj2->winpos_alpha1950; - dd = (sin(as->dp1950*DEG) - -sin(obj2->winpos_delta1950*DEG)*sin(obj2->winpos_deltas*DEG)) - /(cos(obj2->winpos_delta1950*DEG)*cos(obj2->winpos_deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->win_theta1950 = obj2->win_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } + obj2->win_theta1950 = fmod_m90_p90(obj2->win_thetas + obj2->dtheta1950); } } @@ -585,26 +449,23 @@ Compute error ellipse parameters in WORLD and SKY coordinates. */ void astrom_errparam(picstruct *field, objstruct *obj) { - astromstruct *as; - double *lm, - dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; int lng,lat, naxis; - as = field->astrom; - lm = as->linmat; - - naxis = as->naxis; - lng = as->lng; - lat = as->lat; + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; if (lng == lat) { lng = 0; lat = 1; } - lm0 = lm[lng+naxis*lng]; - lm1 = lm[lat+naxis*lng]; - lm2 = lm[lng+naxis*lat]; - lm3 = lm[lat+naxis*lat]; + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; /* All WORLD params based on 2nd order moments have to pass through here */ dx2 = obj->poserr_mx2; @@ -616,37 +477,22 @@ void astrom_errparam(picstruct *field, objstruct *obj) temp=xm2-ym2; if (FLAG(obj2.poserr_thetaw)) { - obj2->poserr_thetaw = (temp==0.0)? (45.0):(0.5*atan2(2.0*xym,temp)/DEG); - if (as->wcs_flag && FLAG(obj2.poserr_thetas)) - obj2->poserr_thetas = obj2->poserr_thetaw - + (obj2->poserr_thetaw>0.0? -90:90.0); + obj2->poserr_thetaw = fmod_m90_p90((temp==0.0)? + (45.0):(0.5*atan2(2.0*xym,temp)/DEG)); /*-- Compute position angles in J2000 or B1950 reference frame */ - if (as->wcs_flag) + if (wcs->lng != wcs->lat) { - double da,dd; - + if (FLAG(obj2.poserr_thetas)) + obj2->poserr_thetas = fmod_m90_p90(lngposerr_thetaw>0.0?90:-90.0) - obj2->poserr_thetaw) + : obj2->poserr_thetaw); if (FLAG(obj2.poserr_theta2000)) - { - da = as->ap2000 - obj2->alpha2000; - dd = (sin(as->dp2000*DEG) - -sin(obj2->delta2000*DEG)*sin(obj2->deltas*DEG)) - /(cos(obj2->delta2000*DEG)*cos(obj2->deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->poserr_theta2000 = obj2->poserr_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } - + obj2->poserr_theta2000 = fmod_m90_p90(obj2->poserr_thetas + + obj2->dtheta2000); if (FLAG(obj2.poserr_theta1950)) - { - da = as->ap1950 - obj2->alpha1950; - dd = (sin(as->dp1950*DEG) - -sin(obj2->delta1950*DEG)*sin(obj2->deltas*DEG)) - /(cos(obj2->delta1950*DEG)*cos(obj2->deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->poserr_theta1950 = obj2->poserr_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } + obj2->poserr_theta1950 = fmod_m90_p90(obj2->poserr_thetas + + obj2->dtheta1950); } } @@ -681,26 +527,23 @@ Compute error ellipse parameters in WORLD and SKY coordinates. */ void astrom_winerrparam(picstruct *field, objstruct *obj) { - astromstruct *as; - double *lm, - dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; int lng,lat, naxis; - as = field->astrom; - lm = as->linmat; - - naxis = as->naxis; - lng = as->lng; - lat = as->lat; + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; if (lng == lat) { lng = 0; lat = 1; } - lm0 = lm[lng+naxis*lng]; - lm1 = lm[lat+naxis*lng]; - lm2 = lm[lng+naxis*lat]; - lm3 = lm[lat+naxis*lat]; + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; /* All WORLD params based on 2nd order moments have to pass through here */ dx2 = obj2->winposerr_mx2; @@ -712,37 +555,22 @@ void astrom_winerrparam(picstruct *field, objstruct *obj) temp=xm2-ym2; if (FLAG(obj2.winposerr_thetaw)) { - obj2->winposerr_thetaw = (temp==0.0)? (45.0):(0.5*atan2(2.0*xym,temp)/DEG); - if (as->wcs_flag && FLAG(obj2.winposerr_thetas)) - obj2->winposerr_thetas = obj2->winposerr_thetaw - + (obj2->winposerr_thetaw>0.0? -90:90.0); + obj2->winposerr_thetaw = (fmod_m90_p90(temp==0.0)? + (45.0):(0.5*atan2(2.0*xym,temp)/DEG)); /*-- Compute position angles in J2000 or B1950 reference frame */ - if (as->wcs_flag) + if (wcs->lng != wcs->lat) { - double da,dd; - + if (FLAG(obj2.winposerr_thetas)) + obj2->winposerr_thetas = fmod_m90_p90(lngwinposerr_thetaw>0.0?90:-90.0) - obj2->winposerr_thetaw) + : obj2->winposerr_thetaw); if (FLAG(obj2.winposerr_theta2000)) - { - da = as->ap2000 - obj2->winpos_alpha2000; - dd = (sin(as->dp2000*DEG) - -sin(obj2->winpos_delta2000*DEG)*sin(obj2->winpos_deltas*DEG)) - /(cos(obj2->winpos_delta2000*DEG)*cos(obj2->winpos_deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->winposerr_theta2000 = obj2->winposerr_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } - + obj2->winposerr_theta2000 = fmod_m90_p90(obj2->winposerr_thetas + + obj2->dtheta2000); if (FLAG(obj2.winposerr_theta1950)) - { - da = as->ap1950 - obj2->winpos_alpha1950; - dd = (sin(as->dp1950*DEG) - -sin(obj2->winpos_delta1950*DEG)*sin(obj2->winpos_deltas*DEG)) - /(cos(obj2->winpos_delta1950*DEG)*cos(obj2->winpos_deltas*DEG)); - dd = dd<1.0? (dd>-1.0?acos(dd)/DEG:180.0) : 0.0; - obj2->winposerr_theta1950 = obj2->winposerr_thetas - + (((da>0.0 && da<180.0) || da<-180.0)?-dd:dd); - } + obj2->winposerr_theta1950 = fmod_m90_p90(obj2->winposerr_thetas + + obj2->dtheta1950); } } @@ -771,184 +599,277 @@ void astrom_winerrparam(picstruct *field, objstruct *obj) } -/******************************* copyastrom *********************************/ +/***************************** astrom_proferrparam ***************************/ /* -Copy astrometrical structures. +Compute error ellipse parameters in WORLD and SKY coordinates. */ -void copyastrom(picstruct *infield, picstruct *outfield) - +void astrom_proferrparam(picstruct *field, objstruct *obj) { - astromstruct *inas, *outas; - int naxis; + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3; + int lng,lat, naxis; - if (infield->astrom) + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; + if (lng == lat) { - QMEMCPY(infield->astrom, outfield->astrom, astromstruct, 1); - inas = infield->astrom; - outas = outfield->astrom; - naxis = inas->naxis; - if (inas->wcs_flag) - { - QMEMCPY(inas->wcs, outas->wcs, struct wcsprm, 1); - QMEMCPY(inas->lin, outas->lin, struct linprm, 1); - QMEMCPY(inas->cel, outas->cel, struct celprm, 1); - QMEMCPY(inas->prj, outas->prj, struct prjprm, 1); - QMEMCPY(inas->lin->cdelt, outas->lin->cdelt, double, naxis); - QMEMCPY(inas->lin->crpix, outas->lin->crpix, double, naxis); - QMEMCPY(inas->lin->pc, outas->lin->pc, double, naxis*naxis); - outas->tnx_lngcor = copy_tnxaxis(inas->tnx_lngcor); - outas->tnx_latcor = copy_tnxaxis(inas->tnx_latcor); - } + lng = 0; + lat = 1; } + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; - return; - } - - -/******************************* endastrom ***********************************/ -/* -Free astrometrical structures. -*/ -void endastrom(picstruct *field) +/* All WORLD params based on 2nd order moments have to pass through here */ + dx2 = obj2->poserrmx2_prof; + dy2 = obj2->poserrmy2_prof; + dxy = obj2->poserrmxy_prof; + obj2->poserrmx2w_prof = xm2 = lm0*lm0*dx2+lm1*lm1*dy2+lm0*lm1*dxy; + obj2->poserrmy2w_prof = ym2 = lm2*lm2*dx2+lm3*lm3*dy2+lm2*lm3*dxy; + obj2->poserrmxyw_prof = xym = lm0*lm2*dx2+lm1*lm3*dy2+(lm0*lm3+lm1*lm2)*dxy; + temp=xm2-ym2; + if (FLAG(obj2.poserrthetaw_prof)) + { + obj2->poserrthetaw_prof = (fmod_m90_p90(temp==0.0)? + (45.0):(0.5*atan2(2.0*xym,temp)/DEG)); - { - astromstruct *as; +/*-- Compute position angles in J2000 or B1950 reference frame */ + if (wcs->lng != wcs->lat) + { + if (FLAG(obj2.poserrthetas_prof)) + obj2->poserrthetas_prof = fmod_m90_p90(lngposerrthetaw_prof>0.0?90:-90.0)-obj2->poserrthetaw_prof) + : obj2->poserrthetaw_prof); + if (FLAG(obj2.poserrtheta2000_prof)) + obj2->poserrtheta2000_prof = fmod_m90_p90(obj2->poserrthetas_prof + + obj2->dtheta2000); + if (FLAG(obj2.poserrtheta1950_prof)) + obj2->poserrtheta1950_prof = fmod_m90_p90(obj2->poserrthetas_prof + + obj2->dtheta1950); + } + } - as = field->astrom; - if (as->wcs_flag) + if (FLAG(obj2.poserraw_prof)) { - free(as->lin->cdelt); - free(as->lin->crpix); - free(as->lin->pc); - free(as->wcs); - free(as->lin); - free(as->cel); - free(as->prj); - free_tnxaxis(as->tnx_lngcor); - free_tnxaxis(as->tnx_latcor); + temp = sqrt(0.25*temp*temp+xym*xym); + pm2 = 0.5*(xm2+ym2); + obj2->poserraw_prof = (float)sqrt(pm2+temp); + obj2->poserrbw_prof = (float)sqrt(pm2-temp); } - free(as); + if (FLAG(obj2.poserrcxxw_prof)) + { +/*-- Handle large, fully correlated profiles (can cause a singularity...) */ + if ((temp=xm2*ym2-xym*xym)<1e-6) + { + temp = 1e-6; + xym *= 0.99999; + } + obj2->poserrcxxw_prof = (float)(ym2/temp); + obj2->poserrcyyw_prof = (float)(xm2/temp); + obj2->poserrcxyw_prof = (float)(-2*xym/temp); + } return; } -/********************************* precess ***********************************/ +/*************************** astrom_profshapeparam ***************************/ /* -precess equatorial coordinates according to the equinox (from Ephemerides du -Bureau des Longitudes 1992). Epoch for coordinates should be J2000 -(FK5 system). +Compute profile-fitting shape parameters in WORLD and SKY coordinates. */ -void precess(double yearin, double alphain, double deltain, - double yearout, double *alphaout, double *deltaout) - +void astrom_profshapeparam(picstruct *field, objstruct *obj) { - double dzeta,theta,z, t1,t1t1, t2,t2t2,t2t2t2, - cddsadz, cddcadz, cdd, sdd, adz, cdin,sdin,ct,st,caindz; - - alphain *= DEG; - deltain *= DEG; - - t1 = (yearin - 2000.0)/1000.0; - t2 = (yearout - yearin)/1000.0; - t1t1 = t1*t1; - t2t2t2 = (t2t2 = t2*t2)*t2; - theta = (97171.735e-06 - 413.691e-06*t1 - 1.052e-06 * t1t1) * t2 - + (-206.846e-06 - 1.052e-06*t1) * t2t2 - 202.812e-06 * t2t2t2; - dzeta = (111808.609e-06 + 677.071e-06*t1 - 0.674e-06 * t1t1) * t2 - + (146.356e-06 - 1.673e-06*t1) * t2t2 + 87.257e-06 * t2t2t2; - z = (111808.609e-06 +677.071e-06*t1 - 0.674e-06 * t1t1) * t2 - + (530.716e-06 + 0.320e-06*t1) * t2t2 + 88.251e-06 * t2t2t2; - cddsadz = (cdin=cos(deltain)) * sin(alphain+dzeta); - cddcadz = -(sdin=sin(deltain))*(st=sin(theta)) - +cdin*(ct=cos(theta))*(caindz=cos(alphain+dzeta)); - sdd = sdin*ct + cdin*st*caindz; - cdd = cos(*deltaout = asin(sdd)); - adz = asin(cddsadz/cdd); - if (cddcadz<0.0) - adz = PI - adz; - if (adz<0.0) - adz += 2.0*PI; - adz += z; - *alphaout = adz/DEG; - *deltaout /= DEG; - - return; - } - + wcsstruct *wcs; + double dx2,dy2,dxy, xm2,ym2,xym, temp,pm2, lm0,lm1,lm2,lm3, ct,st; + int lng,lat, naxis; -/*********************************** j2b *************************************/ -/* -conver equatorial coordinates from equinox and epoch J2000 to equinox and -epoch B1950 for extragalactic sources (from Aoki et al. 1983, after -inversion of their matrix and some custom arrangements). -*/ -void j2b(double yearobs, double alphain, double deltain, - double *alphaout, double *deltaout) - { - int i,j; - static double a[3] = {-1.62557e-6, -0.31919e-6, -0.13843e-6}, - ap[3] = {1.245e-3, -1.580e-3, -0.659e-3}, - m[6][6] = { - { 0.9999256794678425, 0.01118148281196562, 0.004859003848996022, - -2.423898417033081e-06,-2.710547600126671e-08,-1.177738063266745e-08}, - {-0.01118148272969232, 0.9999374849247641, -2.717708936468247e-05, - 2.710547578707874e-08,-2.423927042585208e-06, 6.588254898401055e-11}, - {-0.00485900399622881, -2.715579322970546e-05, 0.999988194643078, - 1.177738102358923e-08, 6.582788892816657e-11,-2.424049920613325e-06}, - {-0.0005508458576414713, 0.2384844384742432, -0.4356144527773499, - 0.9999043171308133, 0.01118145410120206, 0.004858518651645554}, - {-0.2385354433560954, -0.002664266996872802, 0.01225282765749546, - -0.01118145417187502, 0.9999161290795875, -2.717034576263522e-05}, - { 0.4357269351676567, -0.008536768476441086, 0.002113420799663768, - -0.004858518477064975, -2.715994547222661e-05, 0.9999668385070383}}, - a1[3], r[3], ro[3], r1[3], r2[3], v1[3], v[3]; - static double cai, sai, cdi, sdi, dotp, rmod, alpha, delta, t1; - -/* Convert Julian years from J2000.0 to tropic centuries from B1950.0 */ - t1 = ((yearobs - 2000.0) + (MJD2000 - MJD1950)/365.25)*JU2TROP/100.0; - alphain *= DEG; - deltain *= DEG; - cai = cos(alphain); - sai = sin(alphain); - cdi = cos(deltain); - sdi = sin(deltain); - r[0] = cdi*cai; - r[1] = cdi*sai; - r[2] = sdi; - for (i=0; i<3; i++) - v[i] = r2[i] = v1[i] = 0.0; - for (j=0; j<6; j++) - for (i=0; i<6; i++) - if (j<3) - r2[j] += m[j][i]*(i<3?r[i]:v[i-3]); - else - v1[j-3] += m[j][i]*(i<3?r[i]:v[i-3]); + wcs = field->wcs; + naxis = wcs->naxis; + lng = wcs->lng; + lat = wcs->lat; + if (lng == lat) + { + lng = 0; + lat = 1; + } + lm0 = obj2->jacob[lng+naxis*lng]; + lm1 = obj2->jacob[lat+naxis*lng]; + lm2 = obj2->jacob[lng+naxis*lat]; + lm3 = obj2->jacob[lat+naxis*lat]; + +/* Spheroid World coordinates */ + obj2->prof_spheroid_thetaerrw=obj2->prof_spheroid_thetaerr; /* quick & dirty*/ + if (FLAG(obj2.prof_spheroid_reffw)) + { + ct = cos(obj2->prof_spheroid_theta*DEG); + st = sin(obj2->prof_spheroid_theta*DEG); + dx2 = obj2->prof_spheroid_reff*obj2->prof_spheroid_reff * (ct*ct + + st*st * obj2->prof_spheroid_aspect*obj2->prof_spheroid_aspect); + dy2 = obj2->prof_spheroid_reff*obj2->prof_spheroid_reff * (st*st + + ct*ct * obj2->prof_spheroid_aspect*obj2->prof_spheroid_aspect); + dxy = ct*st * obj2->prof_spheroid_reff*obj2->prof_spheroid_reff + *(1.0 - obj2->prof_spheroid_aspect*obj2->prof_spheroid_aspect); + xm2 = lm0*lm0*dx2 + lm1*lm1*dy2 + lm0*lm1*dxy; + ym2 = lm2*lm2*dx2 + lm3*lm3*dy2 + lm2*lm3*dxy; + xym = lm0*lm2*dx2 + lm1*lm3*dy2 + (lm0*lm3+lm1*lm2)*dxy; + temp=xm2-ym2; + if (FLAG(obj2.prof_spheroid_thetaw)) + { + obj2->prof_spheroid_thetaw = fmod_m90_p90((temp == 0.0)? + (45.0) : (0.5*atan2(2.0 * xym,temp)/DEG)); - for (i=0; i<3; i++) - r1[i] = r2[i]+v1[i]*ARCSEC*t1; + if (wcs->lng != wcs->lat) + { + if (FLAG(obj2.prof_spheroid_thetas)) + obj2->prof_spheroid_thetas = fmod_m90_p90(lngprof_spheroid_thetaw>0.0?90:-90.0) + - obj2->prof_spheroid_thetaw) + : obj2->prof_spheroid_thetaw); + if (FLAG(obj2.prof_spheroid_theta2000)) + obj2->prof_spheroid_theta2000=fmod_m90_p90(obj2->prof_spheroid_thetas + + obj2->dtheta2000); + if (FLAG(obj2.prof_spheroid_theta1950)) + obj2->prof_spheroid_theta1950=fmod_m90_p90(obj2->prof_spheroid_thetas + + obj2->dtheta1950); + } + } + temp = sqrt(0.25*temp*temp+xym*xym); + pm2 = 0.5*(xm2+ym2); + obj2->prof_spheroid_reffw = sqrt(pm2+temp); + obj2->prof_spheroid_refferrw = obj2->prof_spheroid_reff > 0.0? + obj2->prof_spheroid_refferr/obj2->prof_spheroid_reff + *obj2->prof_spheroid_reffw + : 0.0; + obj2->prof_spheroid_aspectw = obj2->prof_spheroid_reffw>0.0? + sqrt(pm2-temp) / obj2->prof_spheroid_reffw + : obj2->prof_spheroid_aspect; + obj2->prof_spheroid_aspecterrw = obj2->prof_spheroid_aspect > 0.0? + obj2->prof_spheroid_aspecterr/obj2->prof_spheroid_aspect + *obj2->prof_spheroid_aspectw + : 0.0; + } - dotp = 0.0; - for (i=0; i<3; i++) +/* Disk World coordinates */ + obj2->prof_disk_thetaerrw = obj2->prof_disk_thetaerr; /* quick & dirty*/ + if (FLAG(obj2.prof_disk_scalew)) { - a1[i] = a[i]+ap[i]*ARCSEC*t1; - dotp += a1[i]*(r1[i]+a1[i]); + ct = cos(obj2->prof_disk_theta*DEG); + st = sin(obj2->prof_disk_theta*DEG); + dx2 = obj2->prof_disk_scale*obj2->prof_disk_scale * (ct*ct + + st*st * obj2->prof_disk_aspect*obj2->prof_disk_aspect); + dy2 = obj2->prof_disk_scale*obj2->prof_disk_scale * (st*st + + ct*ct * obj2->prof_disk_aspect*obj2->prof_disk_aspect); + dxy = ct*st * obj2->prof_disk_scale*obj2->prof_disk_scale + *(1.0 - obj2->prof_disk_aspect*obj2->prof_disk_aspect); + xm2 = lm0*lm0*dx2 + lm1*lm1*dy2 + lm0*lm1*dxy; + ym2 = lm2*lm2*dx2 + lm3*lm3*dy2 + lm2*lm3*dxy; + xym = lm0*lm2*dx2 + lm1*lm3*dy2 + (lm0*lm3+lm1*lm2)*dxy; + temp=xm2-ym2; + if (FLAG(obj2.prof_disk_thetaw)) + { + obj2->prof_disk_thetaw = fmod_m90_p90((temp == 0.0)? + (45.0) : (0.5*atan2(2.0 * xym,temp)/DEG)); + +/*---- Compute position angles in J2000 or B1950 reference frame */ + if (wcs->lng != wcs->lat) + { + if (FLAG(obj2.prof_disk_thetas)) + obj2->prof_disk_thetas = fmod_m90_p90(lngprof_disk_thetaw>0.0?90:-90.0) + - obj2->prof_disk_thetaw) + : obj2->prof_disk_thetaw); + if (FLAG(obj2.prof_disk_theta2000)) + obj2->prof_disk_theta2000 = fmod_m90_p90(obj2->prof_disk_thetas + + obj2->dtheta2000); + if (FLAG(obj2.prof_disk_theta1950)) + obj2->prof_disk_theta1950 = fmod_m90_p90(obj2->prof_disk_thetas + + obj2->dtheta1950); + } + } + temp = sqrt(0.25*temp*temp+xym*xym); + pm2 = 0.5*(xm2+ym2); + obj2->prof_disk_scalew = sqrt(pm2+temp); + obj2->prof_disk_scaleerrw = obj2->prof_disk_scale > 0.0? + obj2->prof_disk_scaleerr/obj2->prof_disk_scale*obj2->prof_disk_scalew + : 0.0; + obj2->prof_disk_aspectw = obj2->prof_disk_scalew>0.0? + sqrt(pm2-temp) / obj2->prof_disk_scalew + : obj2->prof_disk_aspect; + obj2->prof_disk_aspecterrw = obj2->prof_disk_aspect > 0.0? + obj2->prof_disk_aspecterr/obj2->prof_disk_aspect*obj2->prof_disk_aspectw + : 0.0; +/*-- Arms World coordinates */ + if (FLAG(obj2.prof_arms_scalew)) + { + obj2->prof_arms_scalew = (obj2->prof_disk_scale > 0.0) ? + obj2->prof_arms_scale*obj2->prof_disk_scalew/obj2->prof_disk_scale + : 0.0; + obj2->prof_arms_scaleerrw = (obj2->prof_arms_scale > 0.0) ? + obj2->prof_arms_scaleerr/obj2->prof_arms_scale*obj2->prof_arms_scalew + : 0.0; + obj2->prof_arms_startw = (obj2->prof_disk_scale > 0.0) ? + obj2->prof_arms_start*obj2->prof_disk_scalew/obj2->prof_disk_scale + : 0.0; + obj2->prof_arms_starterrw = (obj2->prof_arms_start > 0.0) ? + obj2->prof_arms_starterr/obj2->prof_arms_start*obj2->prof_arms_startw + : 0.0; + } } - dotp = 2.0/(sqrt(1+4.0*dotp)+1.0); - rmod = 0.0; - for (i=0; i<3; i++) + +/* Bar World coordinates */ + obj2->prof_bar_thetaerrw = obj2->prof_bar_thetaerr; + if (FLAG(obj2.prof_bar_lengthw)) { - ro[i] = dotp*(r1[i]+a1[i]); - rmod += ro[i]*ro[i]; + ct = cos(obj2->prof_bar_theta*DEG); + st = sin(obj2->prof_bar_theta*DEG); + dx2 = obj2->prof_bar_length*obj2->prof_bar_length * (ct*ct + + st*st * obj2->prof_bar_aspect*obj2->prof_bar_aspect); + dy2 = obj2->prof_bar_length*obj2->prof_bar_length * (st*st + + ct*ct * obj2->prof_bar_aspect*obj2->prof_bar_aspect); + dxy = ct*st * obj2->prof_bar_length*obj2->prof_bar_length + *(1.0 - obj2->prof_bar_aspect*obj2->prof_bar_aspect); + xm2 = lm0*lm0*dx2 + lm1*lm1*dy2 + lm0*lm1*dxy; + ym2 = lm2*lm2*dx2 + lm3*lm3*dy2 + lm2*lm3*dxy; + xym = lm0*lm2*dx2 + lm1*lm3*dy2 + (lm0*lm3+lm1*lm2)*dxy; + temp=xm2-ym2; + if (FLAG(obj2.prof_bar_thetaw)) + { + obj2->prof_bar_thetaw = fmod_m90_p90((temp == 0.0)? + (45.0) : (0.5*atan2(2.0 * xym,temp)/DEG)); + +/*---- Compute position angles in J2000 or B1950 reference frame */ + if (wcs->lng != wcs->lat) + { + if (FLAG(obj2.prof_bar_thetas)) + obj2->prof_bar_thetas = fmod_m90_p90(lngprof_bar_thetaw>0.0?90:-90.0) + - obj2->prof_bar_thetaw) + : obj2->prof_bar_thetaw); + if (FLAG(obj2.prof_bar_theta2000)) + obj2->prof_bar_theta2000 = fmod_m90_p90(obj2->prof_bar_thetas + + obj2->dtheta2000); + if (FLAG(obj2.prof_bar_theta1950)) + obj2->prof_bar_theta1950 = fmod_m90_p90(obj2->prof_bar_thetas + + obj2->dtheta1950); + } + } + temp = sqrt(0.25*temp*temp+xym*xym); + pm2 = 0.5*(xm2+ym2); + obj2->prof_bar_lengthw = sqrt(pm2+temp); + obj2->prof_bar_lengtherrw = obj2->prof_bar_length > 0.0? + obj2->prof_bar_lengtherr/obj2->prof_bar_length*obj2->prof_bar_lengthw + : 0.0; + obj2->prof_bar_aspectw = obj2->prof_bar_lengthw>0.0? + sqrt(pm2-temp) / obj2->prof_bar_lengthw + : obj2->prof_bar_aspect; + obj2->prof_bar_aspecterrw = obj2->prof_bar_aspect > 0.0? + obj2->prof_bar_aspecterr/obj2->prof_bar_aspect*obj2->prof_bar_aspectw + : 0.0; } - rmod = sqrt(rmod); - delta = asin(ro[2]/rmod); - alpha = acos(ro[0]/cos(delta)/rmod); - if (ro[1]<0) - alpha = 2.0*PI - alpha; - *alphaout = alpha/DEG; - *deltaout = delta/DEG; return; } diff --git a/src/astrom.h b/src/astrom.h index fec0727745c598b316c409b010363ec71513bc7b..06f30399f49073f24a8f64706b3f82977a16abc3 100644 --- a/src/astrom.h +++ b/src/astrom.h @@ -9,11 +9,15 @@ * * Contents: Astrometrical stuff. * -* Last modify: 13/07/2006 +* Last modify: 18/05/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ +#ifndef _FITSWCS_H_ +#include "fitswcs.h" +#endif + /*----------------------------- Internal constants --------------------------*/ #define DEG (PI/180.0) /* 1 deg in radians */ @@ -21,50 +25,17 @@ #define MJD2000 51544.50000 /* Modified Julian date for J2000.0 */ #define MJD1950 33281.92346 /* Modified Julian date for B1950.0 */ #define JU2TROP 1.0000214 /* 1 Julian century in tropical units*/ -#define NAXIS 3 /* Max number of FITS axes */ #define MAMA_CORFLEX 3.3e-5 /* MAMA coordinate correction factor */ /*------------------------------- structures --------------------------------*/ - -typedef struct structastrom - { - int naxis; /* Number of image axes */ - - char ctype[NAXIS][9]; /* FITS CTYPE strings */ - char cunit[NAXIS][32]; /* FITS CUNIT strings */ - double crval[NAXIS]; /* FITS CRVAL parameters */ - double cdelt[NAXIS]; /* FITS CDELT parameters */ - double crpix[NAXIS]; /* FITS CRPIX parameters */ - double projp[100*NAXIS]; /* FITS PROJP parameters */ - double longpole,latpole; /* FITS LONGPOLE and LATPOLE */ - double pc[NAXIS*NAXIS]; /* FITS PC matrix */ - double linmat[NAXIS*NAXIS]; /* Local linear mapping matrix */ - double lindet; /* Determinant of the local matrix */ - double pixscale; /* (Local) pixel scale */ - double ap2000,dp2000; /* J2000 coordinates of pole */ - double ap1950,dp1950; /* B1950 coordinates of pole */ - double equinox; /* Equinox of observations */ - enum {RDSYS_ICRS, RDSYS_FK5, RDSYS_FK4, RDSYS_FK4_NO_E, RDSYS_GAPPT} - radecsys; /* FITS RADECSYS reference frame */ - int wcs_flag; /* WCSLIB: can it be used? */ - int lat,lng; /* longitude and latitude axes # */ - double r0; /* projection "radius" */ - struct wcsprm *wcs; /* WCSLIB's wcsprm structure */ - struct linprm *lin; /* WCSLIB's linprm structure */ - struct celprm *cel; /* WCSLIB's celprm structure */ - struct prjprm *prj; /* WCSLIB's prjprm structure */ - struct tnxaxis *tnx_latcor; /* IRAF's TNX latitude corrections */ - struct tnxaxis *tnx_lngcor; /* IRAF's TNX longitude corrections */ - } astromstruct; - /*------------------------------- functions ---------------------------------*/ extern void astrom_errparam(picstruct *, objstruct *), - astrom_winerrparam(picstruct *, objstruct *), + astrom_proferrparam(picstruct *, objstruct *), + astrom_profshapeparam(picstruct *, objstruct *), astrom_shapeparam(picstruct *, objstruct *), + astrom_winerrparam(picstruct *, objstruct *), astrom_winshapeparam(picstruct *, objstruct *), computeastrom(picstruct *, objstruct *), - copyastrom(picstruct *infield, picstruct *outfield), - endastrom(picstruct *), initastrom(picstruct *), j2b(double, double, double, double *, double *), precess(double,double,double,double,double *,double *); diff --git a/src/back.c b/src/back.c index 7472a133bea1d4f4d341ed30758b011813b9abe8..cac7adb12729e8e149e6386dbfaf8a9f4c8bbaff 100644 --- a/src/back.c +++ b/src/back.c @@ -9,7 +9,7 @@ * * Contents: functions dealing with background computation. * -* Last modify: 16/08/2006 +* Last modify: 27/10/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -129,10 +129,10 @@ void makeback(picstruct *field, picstruct *wfield) /*---- The image is small enough so that we can make exhaustive stats */ if (j == ny-1 && field->npix%bufsize) bufsize = field->npix%bufsize; - readdata(field, buf, bufsize); + read_body(field->tab, buf, bufsize); if (wfield) { - readdata(wfield, wbuf, bufsize); + read_body(wfield->tab, wbuf, bufsize); weight_to_var(wfield, wbuf, bufsize); } /*---- Build the histograms */ @@ -185,7 +185,7 @@ void makeback(picstruct *field, picstruct *wfield) buft = buf; for (i=nlines; i--; buft += w) { - readdata(field, buft, w); + read_body(field->tab, buft, w); if (i) QFSEEK(field->file, jumpsize*(OFF_T)field->bytepix, SEEK_CUR, field->filename); @@ -199,7 +199,7 @@ void makeback(picstruct *field, picstruct *wfield) wbuft = wbuf; for (i=nlines; i--; wbuft += w) { - readdata(wfield, wbuft, w); + read_body(wfield->tab, wbuft, w); weight_to_var(wfield, wbuft, w); if (i) QFSEEK(wfield->file, jumpsize*(OFF_T)wfield->bytepix, SEEK_CUR, @@ -230,10 +230,10 @@ void makeback(picstruct *field, picstruct *wfield) { if (bufsize2>size) bufsize2 = size; - readdata(field, buf, bufsize2); + read_body(field->tab, buf, bufsize2); if (wfield) { - readdata(wfield, wbuf, bufsize2); + read_body(wfield->tab, wbuf, bufsize2); weight_to_var(wfield, wbuf, bufsize2); } backhisto(backmesh, wbackmesh, buf, wbuf, bufsize2, nx, w, bw, @@ -676,21 +676,18 @@ void filterback(picstruct *field) { float *back,*sigma, *back2,*sigma2, *bmask,*smask, *sigmat, d2,d2min, fthresh, med, val,sval; - int i,j,px,py, np, nx,ny, npxm,npxp, npym,npyp, dpx,dpy, x,y, nmin; + int i,j,px,py, np, nx,ny, npx,npx2, npy,npy2, dpx,dpy, x,y, nmin; fthresh = prefs.backfthresh; nx = field->nbackx; ny = field->nbacky; np = field->nback; - npxm = field->nbackfx/2; - npxp = field->nbackfx - npxm; - npym = field->nbackfy/2; - npyp = field->nbackfy - npym; - npym *= nx; - npyp *= nx; - - QMALLOC(bmask, float, field->nbackfx*field->nbackfy); - QMALLOC(smask, float, field->nbackfx*field->nbackfy); + npx = field->nbackfx/2; + npy = field->nbackfy/2; + npy *= nx; + + QMALLOC(bmask, float, (2*npx+1)*(2*npy+1)); + QMALLOC(smask, float, (2*npx+1)*(2*npy+1)); QMALLOC(back2, float, np); QMALLOC(sigma2, float, np); @@ -732,20 +729,30 @@ void filterback(picstruct *field) /* Do the actual filtering */ for (py=0; pynpy) + npy2 = npy; + if (npy2>py) + npy2 = py; for (px=0; pxnpx) + npx2 = npx; + if (npx2>px) + npx2 = px; i=0; - for (dpy = -npym; dpy< npyp; dpy+=nx) - for (dpx = -npxm; dpx < npxp; dpx++) + for (dpy = -npy2; dpy<=npy2; dpy+=nx) + { + y = py+dpy; + for (dpx = -npx2; dpx <= npx2; dpx++) { - y = py+dpy; x = px+dpx; - if (y>=0 && y=0 && x=fthresh) { back2[px+py] = med; @@ -757,6 +764,7 @@ void filterback(picstruct *field) sigma2[px+py] = sigma[px+py]; } } + } free(bmask); free(smask); diff --git a/src/catout.c b/src/catout.c index 12177069b53eea313b83968b87361674a87de71b..e1efada4ee3ecd67ec017fa75ca0c24621e4c921 100644 --- a/src/catout.c +++ b/src/catout.c @@ -9,7 +9,7 @@ * * Contents: functions for output of catalog data. * -* Last modify: 13/07/2006 +* Last modify: 25/09/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -103,6 +103,19 @@ void readcatparams(char *filename) memset(&outobj2, 0, sizeof(outobj2)); updateparamflags(); + return; + } + + +/******************************* alloccatparams ******************************/ +/* +Allocate memory for parameter arrays +*/ +void alloccatparams(void) + { + keystruct *key; + int i; + /* Go back to multi-dimensional arrays for memory allocation */ if (thecat.nparam) for (i=objtab->nkey, key=objtab->key; i--; key = key->nextkey) @@ -120,6 +133,30 @@ void readcatparams(char *filename) return; } +/*************************** changecatparamarrays ****************************/ +/* +Change parameter array dimensions +*/ +void changecatparamarrays(char *keyword, int *axisn, int naxis) + { + keystruct *key; + int d,i, size; + + if (thecat.nparam) + for (i=objtab->nkey, key=objtab->key; i--; key = key->nextkey) + if (key->naxis && !strcmp(keyword, key->name)) + { + size = t_size[key->ttype]; + if (key->naxis != naxis) + key->naxis = naxis; + for (d=0; dnaxisn[d]=axisn[d]); + key->nbytes = size; + break; + } + + return; + } /***************************** updateparamflags ******************************/ /* @@ -130,6 +167,178 @@ void updateparamflags() { int i; +/*----------------------------- Model-fitting -----------------------------*/ + + prefs.pattern_flag |= FLAG(obj2.prof_disk_patternvector) + | FLAG(obj2.prof_disk_patternmodvector) + | FLAG(obj2.prof_disk_patternargvector) + | FLAG(obj2.prof_disk_patternspiral); + FLAG(obj2.prof_disk_scale) |= prefs.pattern_flag; + + FLAG(obj2.poserraw_prof) |= FLAG(obj2.poserrbw_prof); + FLAG(obj2.poserrcxxw_prof) |= FLAG(obj2.poserrcyyw_prof) + | FLAG(obj2.poserrcxyw_prof); + FLAG(obj2.poserrthetas_prof) |= FLAG(obj2.poserrtheta1950_prof) + | FLAG(obj2.poserrtheta2000_prof); + FLAG(obj2.poserrthetaw_prof) |= FLAG(obj2.poserrthetas_prof); + + FLAG(obj2.poserrmx2w_prof) |= FLAG(obj2.poserrmy2w_prof) + | FLAG(obj2.poserrmxyw_prof) + | FLAG(obj2.poserrthetaw_prof)|FLAG(obj2.poserraw_prof) + | FLAG(obj2.poserrcxxw_prof); + + FLAG(obj2.poserra_prof) |= FLAG(obj2.poserrb_prof) + | FLAG(obj2.poserrtheta_prof) + | FLAG(obj2.poserraw_prof); + FLAG(obj2.poserrcxx_prof) |= FLAG(obj2.poserrcyy_prof) + | FLAG(obj2.poserrcxy_prof); + FLAG(obj2.alpha1950_prof) |= FLAG(obj2.delta1950_prof) + | FLAG(obj2.poserrtheta1950_prof); + FLAG(obj2.alpha2000_prof) |= FLAG(obj2.delta2000_prof) + | FLAG(obj2.alpha1950_prof) + | FLAG(obj2.poserrtheta2000_prof); + FLAG(obj2.alphas_prof) |= FLAG(obj2.deltas_prof) + | FLAG(obj2.alpha2000_prof); + FLAG(obj2.xw_prof) |= FLAG(obj2.yw_prof) + | FLAG(obj2.alphas_prof); + + FLAG(obj2.x_prof) |= FLAG(obj2.y_prof) + | FLAG(obj2.xw_prof) + | FLAG(obj2.poserra_prof) + | FLAG(obj2.poserrcxx_prof); + FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); + FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); + FLAG(obj2.prof_spheroid_mag) |= FLAG(obj2.prof_spheroid_magerr); + FLAG(obj2.prof_spheroid_reff) |= FLAG(obj2.prof_spheroid_refferr); + FLAG(obj2.prof_spheroid_aspect) |= FLAG(obj2.prof_spheroid_aspecterr); + FLAG(obj2.prof_spheroid_theta) |= FLAG(obj2.prof_spheroid_thetaerr); + FLAG(obj2.prof_spheroid_sersicn) |= FLAG(obj2.prof_spheroid_sersicnerr); + FLAG(obj2.prof_disk_mag) |= FLAG(obj2.prof_disk_magerr); + FLAG(obj2.prof_disk_scale) |= FLAG(obj2.prof_disk_scaleerr); + FLAG(obj2.prof_disk_aspect) |= FLAG(obj2.prof_disk_aspecterr); + FLAG(obj2.prof_disk_inclination) |= FLAG(obj2.prof_disk_inclinationerr); + FLAG(obj2.prof_disk_theta) |= FLAG(obj2.prof_disk_thetaerr); + FLAG(obj2.prof_bar_mag) |= FLAG(obj2.prof_bar_magerr); + FLAG(obj2.prof_bar_length) |= FLAG(obj2.prof_bar_lengtherr); + FLAG(obj2.prof_bar_aspect) |= FLAG(obj2.prof_bar_aspecterr); + FLAG(obj2.prof_bar_theta) |= FLAG(obj2.prof_bar_thetaerr); + FLAG(obj2.prof_arms_mag) |= FLAG(obj2.prof_arms_magerr); + FLAG(obj2.dtheta1950) |= FLAG(obj2.prof_spheroid_theta1950) + | FLAG(obj2.prof_disk_theta1950) +// | FLAG(obj2.prof_arms_theta1950) + | FLAG(obj2.prof_bar_theta1950) + | FLAG(obj2.poserrtheta1950_psf) + | FLAG(obj2.win_theta1950) + | FLAG(obj2.winposerr_theta1950) + | FLAG(obj2.poserr_theta1950) + | FLAG(obj2.theta1950) + | FLAG(obj2.poserrtheta1950_prof); + FLAG(obj2.dtheta2000) |= FLAG(obj2.prof_spheroid_theta2000) + | FLAG(obj2.prof_disk_theta2000) +// | FLAG(obj2.prof_arms_theta2000) + | FLAG(obj2.prof_bar_theta2000) + | FLAG(obj2.poserrtheta2000_psf) + | FLAG(obj2.win_theta2000) + | FLAG(obj2.winposerr_theta2000) + | FLAG(obj2.poserr_theta2000) + | FLAG(obj2.theta2000) + | FLAG(obj2.poserrtheta2000_prof); + + + FLAG(obj2.prof_spheroid_thetas) |= FLAG(obj2.prof_spheroid_theta2000) + | FLAG(obj2.prof_spheroid_theta1950); + FLAG(obj2.prof_spheroid_thetaw) |= FLAG(obj2.prof_spheroid_thetas); + FLAG(obj2.prof_disk_thetas) |= FLAG(obj2.prof_disk_theta2000) + | FLAG(obj2.prof_disk_theta1950); + FLAG(obj2.prof_disk_thetaw) |= FLAG(obj2.prof_disk_thetas); + FLAG(obj2.prof_bar_thetas) |= FLAG(obj2.prof_bar_theta2000) + | FLAG(obj2.prof_bar_theta1950); + FLAG(obj2.prof_bar_thetaw) |= FLAG(obj2.prof_bar_thetas); +/* + FLAG(obj2.prof_arms_thetaw) |= FLAG(obj2.prof_arms_thetas) + | FLAG(obj2.prof_arms_theta2000) + | FLAG(obj2.prof_arms_theta1950); +*/ + FLAG(obj2.prof_arms_scalew) |= FLAG(obj2.prof_arms_startw) + | FLAG(obj2.prof_arms_scaleerrw) + | FLAG(obj2.prof_arms_starterrw); + + FLAG(obj2.prof_bar_lengthw) |= FLAG(obj2.prof_bar_aspectw) + | FLAG(obj2.prof_bar_thetaw) + | FLAG(obj2.prof_bar_lengtherrw) + | FLAG(obj2.prof_bar_aspecterrw) + | FLAG(obj2.prof_bar_thetaerrw); + + FLAG(obj2.prof_disk_scalew) |= FLAG(obj2.prof_disk_aspectw) + | FLAG(obj2.prof_disk_thetaw) + | FLAG(obj2.prof_disk_scaleerrw) + | FLAG(obj2.prof_disk_aspecterrw) + | FLAG(obj2.prof_disk_thetaerrw) + | FLAG(obj2.prof_arms_scalew); + + FLAG(obj2.prof_spheroid_reffw) |= FLAG(obj2.prof_spheroid_aspectw) + | FLAG(obj2.prof_spheroid_thetaw) + | FLAG(obj2.prof_spheroid_refferrw) + | FLAG(obj2.prof_spheroid_aspecterrw) + | FLAG(obj2.prof_spheroid_thetaerrw); + + FLAG(obj2.prof_flagw) |= FLAG(obj2.prof_spheroid_reffw) + | FLAG(obj2.prof_disk_scalew) + | FLAG(obj2.prof_bar_lengthw) + | FLAG(obj2.prof_arms_scalew); + + FLAG(obj2.prof_mx2) |= FLAG(obj2.prof_my2) | FLAG(obj2.prof_mxy) + | FLAG(obj2.prof_e1) |FLAG(obj2.prof_e2) + | FLAG(obj2.prof_eps1) |FLAG(obj2.prof_eps2); + FLAG(obj2.prof_arms_flux) |= FLAG(obj2.prof_arms_fluxerr) + | FLAG(obj2.prof_arms_mag) + | FLAG(obj2.prof_arms_scalew) + | FLAG(obj2.prof_arms_scale) + | FLAG(obj2.prof_arms_posang) + | FLAG(obj2.prof_arms_pitch) + | FLAG(obj2.prof_arms_start) + | FLAG(obj2.prof_arms_quadfrac); + FLAG(obj2.prof_bar_theta) |= FLAG(obj2.prof_bar_lengthw); + FLAG(obj2.prof_bar_flux) |= FLAG(obj2.prof_bar_fluxerr) + | FLAG(obj2.prof_bar_mag) + | FLAG(obj2.prof_bar_lengthw) + | FLAG(obj2.prof_bar_length) + | FLAG(obj2.prof_bar_aspect) + | FLAG(obj2.prof_bar_posang) + | FLAG(obj2.prof_bar_theta) + | FLAG(obj2.prof_arms_flux); + FLAG(obj2.prof_disk_flux) |= FLAG(obj2.prof_disk_fluxerr) + | FLAG(obj2.prof_disk_mag) + | FLAG(obj2.prof_disk_scalew) + | FLAG(obj2.prof_disk_scale) + | FLAG(obj2.prof_disk_aspect) + | FLAG(obj2.prof_disk_inclination) + | FLAG(obj2.prof_disk_theta) + | FLAG(obj2.prof_bar_flux); + FLAG(obj2.prof_spheroid_flux) |= FLAG(obj2.prof_spheroid_fluxerr) + | FLAG(obj2.prof_spheroid_mag) + | FLAG(obj2.prof_spheroid_reffw) + | FLAG(obj2.prof_spheroid_reff) + | FLAG(obj2.prof_spheroid_aspect) + | FLAG(obj2.prof_spheroid_theta) + | FLAG(obj2.prof_spheroid_sersicn); + prefs.prof_flag |= FLAG(obj2.prof_chi2) | FLAG(obj2.prof_niter) + | FLAG(obj2.prof_vector) | FLAG(obj2.prof_errvector) + | FLAG(obj2.x_prof) | FLAG(obj2.y_prof) + | FLAG(obj2.prof_mx2) + | FLAG(obj2.prof_disk_flux) + | FLAG(obj2.prof_spheroid_flux); + + +/* If only global parameters are requested, fit a Sersic model */ + if (prefs.prof_flag && !(FLAG(obj2.prof_spheroid_flux) + | FLAG(obj2.prof_disk_flux))) + { + FLAG(obj2.prof_spheroid_flux) |= prefs.prof_flag; + FLAG(obj2.prof_spheroid_sersicn) |= prefs.prof_flag; + } + + /*------------------------------ Astrometry ---------------------------------*/ FLAG(obj2.win_aw) |= FLAG(obj2.win_bw) | FLAG(obj2.win_polarw); FLAG(obj2.win_cxxw) |= FLAG(obj2.win_cyyw) | FLAG(obj2.win_cxyw); @@ -202,12 +411,12 @@ void updateparamflags() FLAG(obj2.peakalpha1950) |= FLAG(obj2.peakdelta1950); FLAG(obj2.alpha1950) |= FLAG(obj2.delta1950) | FLAG(obj2.theta1950) - | FLAG(obj2.poserr_theta1950); + | FLAG(obj2.poserr_theta1950) | FLAG(obj2.dtheta1950); +; FLAG(obj2.peakalpha2000) |= FLAG(obj2.peakdelta2000) | FLAG(obj2.peakalpha1950); FLAG(obj2.alpha2000) |= FLAG(obj2.delta2000) | FLAG(obj2.alpha1950) - | FLAG(obj2.theta2000) - | FLAG(obj2.poserr_theta2000); + | FLAG(obj2.dtheta2000); FLAG(obj2.peakalphas) |= FLAG(obj2.peakdeltas) | FLAG(obj2.peakalpha2000); FLAG(obj2.alphas) |= FLAG(obj2.deltas) | FLAG(obj2.alpha2000); FLAG(obj2.thetas) |= FLAG(obj2.theta1950) | FLAG(obj2.theta2000); @@ -239,7 +448,7 @@ void updateparamflags() FLAG(obj2.flux_best) |= FLAG(obj2.mag_best) | FLAG(obj2.fluxerr_best); - FLAG(obj2.hl_radius) |= FLAG(obj2.winpos_x); + FLAG(obj2.hl_radius) |= FLAG(obj2.winpos_x) | prefs.prof_flag; FLAG(obj2.flux_auto) |= FLAG(obj2.mag_auto) | FLAG(obj2.magerr_auto) | FLAG(obj2.fluxerr_auto) @@ -260,9 +469,6 @@ void updateparamflags() FLAG(obj2.flux_aper) |= FLAG(obj2.mag_aper)|FLAG(obj2.magerr_aper) | FLAG(obj2.fluxerr_aper); - FLAG(obj.flux_prof) |= FLAG(obj2.mag_prof)|FLAG(obj2.magerr_prof) - | FLAG(obj2.flux_prof) | FLAG(obj2.fluxerr_prof); - FLAG(obj2.flux_galfit) |= FLAG(obj2.mag_galfit) | FLAG(obj2.magerr_galfit) | FLAG(obj2.fluxerr_galfit); @@ -330,6 +536,26 @@ void updateparamflags() } +/********************************** dumpparams *******************************/ +/* +Initialize the catalog header +*/ +void dumpparams(void) + { + int i; + + for (i=0; *objkey[i].name ; i++) + if (*objkey[i].unit) + printf("#%-22.22s %-58.58s [%s]\n", + objkey[i].name, objkey[i].comment, objkey[i].unit); + else + printf("#%-22.22s %-58.58s\n", + objkey[i].name, objkey[i].comment); + + return; + } + + /********************************** initcat **********************************/ /* Initialize the catalog header @@ -355,10 +581,10 @@ void initcat(void) for (i=0,n=1; i++nkey; key=key->nextkey) { if (*key->unit) - fprintf(ascfile, "# %3d %-15.15s %-47.47s [%s]\n", + fprintf(ascfile, "# %3d %-22.22s %-58.58s [%s]\n", n, key->name,key->comment, key->unit); else - fprintf(ascfile, "# %3d %-15.15s %.47s\n", + fprintf(ascfile, "# %3d %-22.22s %-58.58s\n", n, key->name,key->comment); n += key->nbytes/t_size[key->ttype]; } @@ -494,9 +720,9 @@ void reinitcat(picstruct *field) case FITS_LDAC: /*------ We create a dummy table (only used through its header) */ QCALLOC(asctab, tabstruct, 1); - asctab->headnblock = field->fitsheadsize/FBSIZE; - QMALLOC(asctab->headbuf, char, asctab->headnblock*FBSIZE); - memcpy(asctab->headbuf, field->fitshead, asctab->headnblock*FBSIZE); + asctab->headnblock = field->tab->headnblock; + QMEMCPY(field->tab->headbuf, asctab->headbuf, char, + asctab->headnblock*FBSIZE); key = headkey; while (*key->name) addkeyto_head(asctab, key++); @@ -522,9 +748,9 @@ void reinitcat(picstruct *field) case FITS_TPX: /*------ We create a dummy table (only used through its header) */ QCALLOC(asctab, tabstruct, 1); - asctab->headnblock = field->fitsheadsize/FBSIZE; - QMALLOC(asctab->headbuf, char, asctab->headnblock*FBSIZE); - memcpy(asctab->headbuf, field->fitshead, asctab->headnblock*FBSIZE); + asctab->headnblock = field->tab->headnblock; + QMEMCPY(field->tab->headbuf, asctab->headbuf, char, + asctab->headnblock*FBSIZE); key = headkey; while (*key->name) addkeyto_head(asctab, key++); @@ -703,8 +929,8 @@ void reendcat() head = key->ptr; fitswrite(head, "SEXNDET ", &thecat.ndetect,H_INT,T_LONG); fitswrite(head, "SEXNFIN ", &thecat.ntotal, H_INT,T_LONG); - fitswrite(head, "SEXDATE ", thecat.ext_date, H_STRING, 0); - fitswrite(head, "SEXTIME ", thecat.ext_time, H_STRING, 0); + fitswrite(head, "SEXDATE ", thecat.ext_date, H_STRING, T_STRING); + fitswrite(head, "SEXTIME ", thecat.ext_time, H_STRING, T_STRING); fitswrite(head, "SEXELAPS", &thecat.ext_elapsed, H_FLOAT, T_DOUBLE); QFTELL(fitscat->file, pos, fitscat->filename); QFSEEK(fitscat->file, tab->headpos, SEEK_SET, fitscat->filename); diff --git a/src/check.c b/src/check.c index 7290862d3308a36eb78c22a351f8718b76657cc0..54e7f69ef2a5aba37b2419f68520d6208e73f5d2 100644 --- a/src/check.c +++ b/src/check.c @@ -9,7 +9,7 @@ * * Contents: handling of "check-images". * -* Last modify: 15/06/2004 +* Last modify: 17/09/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -26,7 +26,7 @@ #include "define.h" #include "globals.h" #include "fits/fitscat.h" -#include "astrom.h" +#include "fitswcs.h" #include "check.h" /********************************* addcheck **********************************/ @@ -61,8 +61,8 @@ void addcheck(checkstruct *check, float *psf, } if (xmin<0) { - psf += -xmin; - w2 -= -xmin; + psf -= xmin; + w2 += xmin; xmin = 0; } @@ -181,7 +181,7 @@ initialize check-image (for subsequent writing). void reinitcheck(picstruct *field, checkstruct *check) { - astromstruct *as; + wcsstruct *wcs; char *buf; int i, ival; size_t padsize; @@ -190,15 +190,14 @@ void reinitcheck(picstruct *field, checkstruct *check) PIXTYPE *ptrf; /* Inherit the field FITS header */ - check->fitsheadsize = field->fitsheadsize; - QMALLOC(check->fitshead, char, check->fitsheadsize); - memcpy(check->fitshead, field->fitshead, check->fitsheadsize); + check->fitsheadsize = field->tab->headnblock*FBSIZE; + QMEMCPY(field->tab->headbuf, check->fitshead, char, check->fitsheadsize); check->y = 0; /* Neutralize possible scaling factors */ dval = 1.0;fitswrite(check->fitshead, "BSCALE ", &dval, H_FLOAT, T_DOUBLE); dval = 0.0;fitswrite(check->fitshead, "BZERO ", &dval, H_FLOAT, T_DOUBLE); ival = 1;fitswrite(check->fitshead, "BITSGN ", &ival, H_INT, T_LONG); - if (field->compress_type != ICOMPRESS_NONE) + if (field->tab->compress_type != COMPRESS_NONE) fitswrite(check->fitshead, "IMAGECOD", "NONE", H_STRING, T_STRING); fitswrite(check->fitshead, "ORIGIN ", BANNER, H_STRING, T_STRING); @@ -242,6 +241,9 @@ void reinitcheck(picstruct *field, checkstruct *check) case CHECK_SUBPCPROTOS: case CHECK_PCPROTOS: case CHECK_PCOPROTOS: + case CHECK_SUBPROFILES: + case CHECK_PROFILES: + case CHECK_PATTERNS: ival = -32; fitswrite(check->fitshead, "BITPIX ", &ival, H_INT, T_LONG); check->width = field->width; @@ -289,24 +291,24 @@ void reinitcheck(picstruct *field, checkstruct *check) check->height = field->nbacky; fitswrite(check->fitshead, "NAXIS2 ", &check->height, H_INT, T_LONG); /*---- Scale the WCS information if present */ - if ((as=field->astrom)) + if ((wcs=field->wcs)) { - dval = as->cdelt[0]*field->backw; + dval = wcs->cdelt[0]*field->backw; fitswrite(check->fitshead, "CDELT1 ", &dval, H_EXPO, T_DOUBLE); - dval = as->cdelt[1]*field->backh; + dval = wcs->cdelt[1]*field->backh; fitswrite(check->fitshead, "CDELT2 ", &dval, H_EXPO, T_DOUBLE); - dval = (as->crpix[0]-0.5)/field->backw + 0.5; + dval = (wcs->crpix[0]-0.5)/field->backw + 0.5; fitswrite(check->fitshead, "CRPIX1 ", &dval, H_EXPO, T_DOUBLE); - dval = (as->crpix[1]-0.5)/field->backh + 0.5; + dval = (wcs->crpix[1]-0.5)/field->backh + 0.5; fitswrite(check->fitshead, "CRPIX2 ", &dval, H_EXPO, T_DOUBLE); - dval = as->pc[0]*as->cdelt[0]*field->backw; + dval = wcs->cd[0]*field->backw; fitswrite(check->fitshead, "CD1_1 ", &dval, H_EXPO, T_DOUBLE); - dval = as->pc[1]*as->cdelt[1]*field->backh; + dval = wcs->cd[1]*field->backh; fitswrite(check->fitshead, "CD1_2 ", &dval, H_EXPO, T_DOUBLE); - dval = as->pc[2]*as->cdelt[0]*field->backw; + dval = wcs->cd[wcs->naxis]*field->backw; fitswrite(check->fitshead, "CD2_1 ", &dval, H_EXPO, T_DOUBLE); - dval = as->pc[3]*as->cdelt[1]*field->backh; + dval = wcs->cd[wcs->naxis+1]*field->backh; fitswrite(check->fitshead, "CD2_2 ", &dval, H_EXPO, T_DOUBLE); } check->npix = check->width*check->height; @@ -348,7 +350,7 @@ void reinitcheck(picstruct *field, checkstruct *check) break; default: - error(EXIT_FAILURE, "*Internal Error* in ", "initcheck()!"); + error(EXIT_FAILURE, "*Internal Error* in ", "reinitcheck()!"); } return; @@ -363,7 +365,8 @@ void writecheck(checkstruct *check, PIXTYPE *data, int w) { if (check->type == CHECK_APERTURES || check->type == CHECK_SUBPSFPROTOS - || check->type == CHECK_SUBPCPROTOS || check->type == CHECK_PCOPROTOS) + || check->type == CHECK_SUBPCPROTOS || check->type == CHECK_PCOPROTOS + || check->type == CHECK_SUBPROFILES) { memcpy((PIXTYPE *)check->pix + w*(check->y++), data, w*sizeof(PIXTYPE)); return; @@ -424,7 +427,10 @@ void reendcheck(picstruct *field, checkstruct *check) case CHECK_SUBPCPROTOS: case CHECK_PCPROTOS: case CHECK_PCOPROTOS: + case CHECK_SUBPROFILES: + case CHECK_PROFILES: case CHECK_ASSOC: + case CHECK_PATTERNS: if (bswapflag) swapbytes(check->pix, sizeof(PIXTYPE), (int)check->npix); QFWRITE(check->pix,check->npix*sizeof(PIXTYPE), diff --git a/src/check.h b/src/check.h index 3915d621f74e5518badc390151422ecf1325bf0b..e2c61aadd95a1d30ca5d4164db0ade2d46d9bf7a 100644 --- a/src/check.h +++ b/src/check.h @@ -9,7 +9,7 @@ * * Contents: handling of "check-images". * -* Last modify: 15/12/2002 +* Last modify: 18/09/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -23,7 +23,7 @@ typedef struct structcheck char *fitshead; /* ptr to check-image FITS header */ int fitsheadsize; /* size of check-image FITS header */ void *pix; /* ptr to check-image pixmap */ - int width, height; /* size of check-image */ + int width, height, depth; /* size of check-image */ size_t npix; /* number of pixels in check-image */ int y; /* current line in check-image */ PIXTYPE overlay; /* intensity of the overlayed plots */ diff --git a/src/clean.c b/src/clean.c index ca1a98b52bc62f5b07d1c7907b45f7e87ae0f2a6..eeca60947bdec01080d32c9251b4c41f74995b16 100644 --- a/src/clean.c +++ b/src/clean.c @@ -10,7 +10,7 @@ * Contents: functions that remove spurious detections from the * catalog * -* Last modify: 15/02/2005 +* Last modify: 20/06/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -250,15 +250,6 @@ void mergeobject(objstruct *objslave,objstruct *objmaster) *pix = colormaster; } - if (FLAG(obj.flux_prof)) - { - objmaster->flux_prof = (objmaster->flux_prof*objmaster->fdflux - + objslave->flux_prof*objslave->fdflux) - / (objmaster->fdflux + objslave->fdflux); - objmaster->fluxerr_prof = (objmaster->fluxerr_prof*objmaster->fdflux - + objslave->fluxerr_prof*objslave->fdflux) - / (objmaster->fdflux + objslave->fdflux); - } objmaster->fdnpix += objslave->fdnpix; objmaster->dnpix += objslave->dnpix; objmaster->fdflux += objslave->fdflux; diff --git a/src/define.h b/src/define.h index 02bc8dfee43f1550397af2a21d5ed86e54894a86..4f2ad77d8276204405a7d73b597cde093d9ef612 100644 --- a/src/define.h +++ b/src/define.h @@ -9,7 +9,7 @@ * * Contents: global definitions. * -* Last modify: 12/07/2006 +* Last modify: 14/11/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -24,12 +24,14 @@ /*------------------------ what, who, when and where ------------------------*/ #define BANNER "SExtractor" -#define EXECUTABLE "sex" +//#ifdef USE_THREADS +//#define MYVERSION VERSION "-MP" +//#else #define MYVERSION VERSION -#define COPYRIGHT "Emmanuel BERTIN (bertin@iap.fr)" +//#endif +#define EXECUTABLE "sex" +#define COPYRIGHT "Emmanuel BERTIN " #define WEBSITE "http://terapix.iap.fr/soft/sextractor" -#define MAILINGLIST "sextractor@iap.fr" -#define MAILINGLISTREQ "sextractor-request@iap.fr" #define INSTITUTE "TERAPIX team at IAP http://terapix.iap.fr" /*--------------------------- Internal constants ----------------------------*/ @@ -40,7 +42,6 @@ #define MARGIN_SCALE 2.0 /* Margin / object height */ #define MAXCHAR 512 /* max. number of characters */ #define MAXCHARL 16384 /* max.nb of chars in strlist*/ -#define MAXCHECK 32 /* max. # of CHECKimages */ #define MAXDEBAREA 3 /* max. area for deblending */ #define MAXFLAG 4 /* max. # of FLAG-images */ #define MAXIMAGE 2 /* max. # of input images */ @@ -48,9 +49,10 @@ #define MAXNASSOC 32 /* max. number of assoc. */ #define MAXPICSIZE 1048576 /* max. image size */ #define NISO 8 /* number of isophotes */ -#define OUTPUT stdout /* where all msgs are sent */ +#define OUTPUT stderr /* where all msgs are sent */ #define PSF_NPSFMAX 9 /* Max number of fitted PSFs */ +#define DEG (PI/180.0) /* 1 deg in radians */ #ifndef PI #define PI 3.1415926535898 /* never met before? */ #endif diff --git a/src/fft.c b/src/fft.c new file mode 100644 index 0000000000000000000000000000000000000000..f752c711a4770ff3d48cfe412224955d23c5dd81 --- /dev/null +++ b/src/fft.c @@ -0,0 +1,216 @@ +/* + fft.c + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: A program that uses FFTs +* +* Author: E.BERTIN (IAP) +* +* Contents: Routines dealing with double precision FFT. +* +* Last modify: 26/03/2007 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include + +#include "define.h" +#include "globals.h" +#include "fft.h" +#include "prefs.h" +#ifdef USE_THREADS +#include "threads.h" +#endif + + int firsttimeflag; +#ifdef USE_THREADS + pthread_mutex_t fftmutex; +#endif + +#define SWAP(a,b) tempr=(a);(a)=(b);(b)=tempr + +/****** fft_init ************************************************************ +PROTO void fft_init(void) +PURPOSE Initialize the FFT routines +INPUT -. +OUTPUT -. +NOTES Global preferences are used for multhreading. +AUTHOR E. Bertin (IAP) +VERSION 29/11/2006 + ***/ +void fft_init(void) + { + if (!firsttimeflag) + { +#ifdef USE_THREADS + if (!fftw_init_threads()) + error(EXIT_FAILURE, "*Error*: thread initialization failed in ", "FFTW"); + fftw_plan_with_nthreads(prefs.nthreads); + QPTHREAD_MUTEX_INIT(&fftmutex, NULL); +#endif + firsttimeflag = 1; + } + + return; + } + + +/****** fft_end ************************************************************ +PROTO void fft_init(void) +PURPOSE Clear up stuff set by FFT routines +INPUT -. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 29/11/2006 + ***/ +void fft_end(void) + { + + if (firsttimeflag) + { + firsttimeflag = 0; +#ifdef USE_THREADS + fftw_cleanup_threads(); + QPTHREAD_MUTEX_DESTROY(&fftmutex); +#endif + fftw_cleanup(); + } + + return; + } + + +/****** fft_conv ************************************************************ +PROTO void fft_conv(double *data1, double *fdata2, int *size) +PURPOSE Optimized 2-dimensional FFT convolution using the FFTW library. +INPUT ptr to the first image, + ptr to the Fourier transform of the second image, + image size vector. +OUTPUT -. +NOTES For data1 and fdata2, memory must be allocated for + size[0]* ... * 2*(size[naxis-1]/2+1) doubles (padding required). +AUTHOR E. Bertin (IAP) +VERSION 26/03/2007 + ***/ +void fft_conv(double *data1, double *fdata2, int *size) + { + fftw_plan plan; + double *fdata1,*fdata1p,*fdata2p, + real,imag, fac; + int i, npix,npix2; + +/* Convert axis indexing to that of FFTW */ + npix = size[0]*size[1]; + npix2 = (((size[0]/2) + 1)*2) * size[1]; + +/* Forward FFT "in place" for data1 */ +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + QFFTWMALLOC(fdata1, double, npix2); + plan = fftw_plan_dft_r2c_2d(size[1], size[0], data1, + (fftw_complex *)fdata1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + fftw_execute(plan); + +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + fftw_destroy_plan(plan); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + +/* Actual convolution (Fourier product) */ + fac = 1.0/npix; + fdata1p = fdata1; + fdata2p = fdata2; + for (i=npix2/2; i--; fdata2p+=2) + { + real = *fdata1p **fdata2p - *(fdata1p+1)**(fdata2p+1); + imag = *(fdata1p+1)**fdata2p + *fdata1p**(fdata2p+1); + *(fdata1p++) = fac*real; + *(fdata1p++) = fac*imag; + } + +/* Reverse FFT */ +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + plan = fftw_plan_dft_c2r_2d(size[1], size[0], (fftw_complex *)fdata1, + data1, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + + fftw_execute(plan); + +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + fftw_destroy_plan(plan); +/* Free the fdata1 scratch array */ + QFFTWFREE(fdata1); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + + return; + } + + +/****** fft_rtf ************************************************************ +PROTO double *fft_rtf(double *data, int *size) +PURPOSE Optimized 2-dimensional FFT "in place" using the FFTW library. +INPUT ptr to the image, + ptr to image size vector. +OUTPUT Pointer to the compressed, memory-allocated Fourier transform. +NOTES Input data may end up corrupted. +AUTHOR E. Bertin (IAP) +VERSION 26/03/2007 + ***/ +double *fft_rtf(double *data, int *size) + { + fftw_plan plan; + fftw_complex *fdata; + int npix2; + +/* Convert axis indexing to that of FFTW */ + npix2 = ((size[0]/2) + 1) * size[1]; + +/* Forward FFT "in place" for data1 */ +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + QFFTWMALLOC(fdata, fftw_complex, npix2); + plan = fftw_plan_dft_r2c_2d(size[1], size[0], data, + fdata, FFTW_ESTIMATE|FFTW_DESTROY_INPUT); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + fftw_execute(plan); +#ifdef USE_THREADS + QPTHREAD_MUTEX_LOCK(&fftmutex); +#endif + fftw_destroy_plan(plan); +#ifdef USE_THREADS + QPTHREAD_MUTEX_UNLOCK(&fftmutex); +#endif + + return (double *)fdata; + } + + diff --git a/src/fft.h b/src/fft.h new file mode 100644 index 0000000000000000000000000000000000000000..154416f916671361703be0c771af522706472f89 --- /dev/null +++ b/src/fft.h @@ -0,0 +1,37 @@ + /* + fft.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: A program that uses FFTs +* +* Author: E.BERTIN (IAP) +* +* Contents: Include for fft.c. +* +* Last modify: 29/11/2006 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifndef _FITSCAT_H_ +#include "fits/fitscat.h" +#endif + +/*---------------------------- Internal constants ---------------------------*/ + +/*------------------------------- Other Macros ------------------------------*/ +#define QFFTWMALLOC(ptr, typ, nel) \ + {if (!(ptr = (typ *)fftw_malloc((size_t)(nel)*sizeof(typ)))) \ + error(EXIT_FAILURE, "Not enough memory for ", \ + #ptr " (" #nel " elements) !");;} +#define QFFTWFREE(ptr) fftw_free(ptr) + +/*--------------------------- structure definitions -------------------------*/ + +/*---------------------------------- protos --------------------------------*/ +extern void fft_conv(double *data1, double *fdata2, int *size), + fft_end(), + fft_init(); + +extern double *fft_rtf(double *data, int *size); diff --git a/src/field.c b/src/field.c index be5f34bad3535ebe8d0de80411518995fdf728f0..28019d33805ce0fee84b35b6a11c209a4a854e6e 100644 --- a/src/field.c +++ b/src/field.c @@ -9,7 +9,7 @@ * * Contents: Handling of field structures. * -* Last modify: 29/06/2006 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -32,6 +32,7 @@ #include "back.h" #include "field.h" #include "filter.h" +#include "fitswcs.h" #include "interpolate.h" /********************************* newfield **********************************/ @@ -44,13 +45,16 @@ picstruct *newfield(char *filename, int flags, int nok) picstruct *field; catstruct *cat; tabstruct *tab; - OFF_T mefpos = 0; /* To avoid gcc -Wall warnings */ int nok2, ntab, margin; /* Move to nok'th valid FITS image extension */ if (!(cat = read_cat(filename))) error(EXIT_FAILURE, "*Error*: cannot open ", filename); - close_cat(cat); + +/* First allocate memory for the new field (and nullify pointers) */ + QCALLOC(field, picstruct, 1); + field->flags = flags; + field->cat = cat; tab = cat->tab; nok++; /* At least one pass through the loop */ nok2 = nok; @@ -60,16 +64,12 @@ picstruct *newfield(char *filename, int flags, int nok) || !strncmp(tab->xtension, "BINTABLE", 8) || !strncmp(tab->xtension, "ASCTABLE", 8)) continue; - mefpos = tab->headpos; + field->tab = tab; nok--; } if (ntab<0) error(EXIT_FAILURE, "Not enough valid FITS image extensions in ",filename); -/* First allocate memory for the new field (and nullify pointers) */ - QCALLOC(field, picstruct, 1); - field->mefpos = mefpos; - field->flags = flags; strcpy (field->filename, filename); /* A short, "relative" version of the filename */ if (!(field->rfilename = strrchr(field->filename, '/'))) @@ -80,9 +80,12 @@ picstruct *newfield(char *filename, int flags, int nok) sprintf(gstr, "Looking for %s", field->rfilename); NFPRINTF(OUTPUT, gstr); /* Check the image exists and read important info (image size, etc...) */ + field->file = cat->file; + readimagehead(field); + if (cat->ntab>1) - sprintf(gstr, "[%d/%d]", nok2, cat->ntab-1); + sprintf(gstr, "[%d/%d]", nok2, cat->tab->naxis<2? cat->ntab-1 : cat->ntab); QPRINTF(OUTPUT, "%s \"%.20s\" %s / %d x %d / %d bits %s data\n", flags&FLAG_FIELD? "Flagging from:" : (flags&(RMS_FIELD|VAR_FIELD|WEIGHT_FIELD)? @@ -93,12 +96,8 @@ picstruct *newfield(char *filename, int flags, int nok) cat->ntab>1? gstr : "", field->width, field->height, field->bytepix*8, field->bitpix>0? - (field->compress_type!=ICOMPRESS_NONE?"COMPRESSED":"INTEGER") - :"FLOATING POINT"); - -/* Provide a buffer for compressed data */ - if (field->compress_type != ICOMPRESS_NONE) - QMALLOC(field->compress_buf, char, FBSIZE); + (field->tab->compress_type!=COMPRESS_NONE?"COMPRESSED":"INTEGER") + :"FLOATING POINT"); /* Check the astrometric system and do the setup of the astrometric stuff */ if (prefs.world_flag && (flags & (MEASURE_FIELD|DETECT_FIELD))) @@ -106,6 +105,17 @@ picstruct *newfield(char *filename, int flags, int nok) else field->pixscale=prefs.pixel_scale; +/* Gain and Saturation */ + if (flags & (DETECT_FIELD|MEASURE_FIELD)) + { + if (fitsread(field->tab->headbuf, prefs.gain_key, &field->gain, + H_FLOAT, T_DOUBLE) != RETURN_OK) + field->gain = prefs.gain; + if (fitsread(field->tab->headbuf, prefs.satur_key, &field->satur_level, + H_FLOAT, T_DOUBLE) !=RETURN_OK) + field->satur_level = prefs.satur_level; + } + /* Background */ if (flags & (DETECT_FIELD|MEASURE_FIELD|WEIGHT_FIELD|VAR_FIELD|RMS_FIELD)) { @@ -143,16 +153,12 @@ picstruct *newfield(char *filename, int flags, int nok) if (prefs.filter_flag) { /*-- If filtering is on, one should consider the height of the conv. mask */ - int margin; - if (field->stripheight < thefilter->convh) field->stripheight = thefilter->convh; if (field->stripmargin < (margin = (thefilter->convh-1)/2)) field->stripmargin = margin; } - free_cat(&cat, 1); - return field; } @@ -172,15 +178,13 @@ picstruct *inheritfield(picstruct *infield, int flags) /* Copy what is important and reset the remaining */ *field = *infield; field->flags = flags; - copyastrom(infield, field); - QMEMCPY(infield->fitshead, field->fitshead, char, infield->fitsheadsize); + if (infield->wcs) + field->wcs = copy_wcs(infield->wcs); field->interp_flag = 0; field->assoc = NULL; field->strip = NULL; field->fstrip = NULL; field->reffield = infield; - field->compress_buf = NULL; - field->compress_type = ICOMPRESS_NONE; field->file = NULL; return field; @@ -194,15 +198,14 @@ Free and close everything related to a field structure. void endfield(picstruct *field) { - if (field->file) - fclose(field->file); - free(field->fitshead); +/* Free cat only if associated with an open file */ + if (field->file) + free_cat(&field->cat, 1); free(field->strip); free(field->fstrip); - free(field->compress_buf); - if (field->astrom) - endastrom(field); + if (field->wcs) + end_wcs(field->wcs); if (field->interp_flag) end_interpolate(field); endback(field); diff --git a/src/fits/Makefile.in b/src/fits/Makefile.in index adeece2ea7b6231290d19982685acbe15daf36ca..03fa853fc3f3dbe0290c4b6a12ec9c8058ad435d 100644 --- a/src/fits/Makefile.in +++ b/src/fits/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -14,15 +14,11 @@ @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -34,10 +30,15 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ subdir = src/fits DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acx_prog_cc_optim.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -45,7 +46,6 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar ARFLAGS = cru libfits_a_AR = $(AR) $(ARFLAGS) libfits_a_LIBADD = @@ -55,22 +55,30 @@ am_libfits_a_OBJECTS = fitsbody.$(OBJEXT) fitscat.$(OBJEXT) \ fitsread.$(OBJEXT) fitstab.$(OBJEXT) fitsutil.$(OBJEXT) \ fitswrite.$(OBJEXT) libfits_a_OBJECTS = $(am_libfits_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ SOURCES = $(libfits_a_SOURCES) DIST_SOURCES = $(libfits_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -80,16 +88,27 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATE2 = @DATE2@ DATE3 = @DATE3@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -97,8 +116,11 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGER = @PACKAGER@ @@ -108,41 +130,66 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ +build = @build@ build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ +host = @host@ host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Program Makefile for the FITScat library # Copyright (C) 2002 Emmanuel Bertin. @@ -155,7 +202,7 @@ libfits_a_SOURCES = fitsbody.c fitscat.c fitscheck.c fitscleanup.c \ all: all-am .SUFFIXES: -.SUFFIXES: .c .o .obj +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -165,9 +212,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/fits/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/fits/Makefile'; \ cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/fits/Makefile + $(AUTOMAKE) --foreign src/fits/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -213,27 +260,39 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fitswrite.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -uninstall-info-am: + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -245,8 +304,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -256,13 +315,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique @@ -276,22 +334,21 @@ 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)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @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; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -332,7 +389,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -352,12 +410,20 @@ info-am: install-data-am: +install-dvi: install-dvi-am + 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 + installcheck-am: maintainer-clean: maintainer-clean-am @@ -367,7 +433,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-compile mostlyclean-generic +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-am @@ -377,18 +444,22 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-info-am + clean-libtool clean-noinstLIBRARIES ctags 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 uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/fits/fitsbody.c b/src/fits/fitsbody.c index 227c1b89b19bfde29217e249991b36ecc045b488..26164feab595a798f38f5a4d77649867ffe8a04a 100644 --- a/src/fits/fitsbody.c +++ b/src/fits/fitsbody.c @@ -9,7 +9,7 @@ * * Contents: Handle memory allocation for FITS bodies. * -* Last modify: 29/06/2006 +* Last modify: 10/10/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -36,7 +36,6 @@ size_t body_maxram = BODY_DEFRAM, int body_vmnumber; -double bufdata0[DATA_BUFSIZE/sizeof(double)]; char body_swapdirname[MAXCHARS] = BODY_DEFSWAPDIR; /******* alloc_body *********************************************************** @@ -185,18 +184,19 @@ void free_body(tabstruct *tab) /******* read_body ************************************************************ PROTO read_body(tabstruct *tab, PIXTYPE *ptr, long size) -PURPOSE Read values from the body of a FITS table. +PURPOSE Read floating point values from the body of a FITS table. INPUT A pointer to the tab structure, a pointer to the array in memory, the number of elements to be read. OUTPUT -. NOTES . AUTHOR E. Bertin (IAP) -VERSION 06/11/2003 +VERSION 10/10/2007 ***/ void read_body(tabstruct *tab, PIXTYPE *ptr, size_t size) { catstruct *cat; + static double bufdata0[DATA_BUFSIZE/sizeof(double)]; unsigned char cuval, cublank; char *bufdata, cval, cblank; @@ -454,6 +454,174 @@ void read_body(tabstruct *tab, PIXTYPE *ptr, size_t size) } +/******* read_ibody *********************************************************** +PROTO read_ibody(tabstruct *tab, FLAGTYPE *ptr, long size) +PURPOSE Read integer values from the body of a FITS table. +INPUT A pointer to the tab structure, + a pointer to the array in memory, + the number of elements to be read. +OUTPUT -. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 11/10/2007 + ***/ +void read_ibody(tabstruct *tab, FLAGTYPE *ptr, size_t size) + { + catstruct *cat; + static int bufdata0[DATA_BUFSIZE/sizeof(int)]; + char *bufdata; + short val16; + int i, bowl, spoonful, npix, curval, dval; + +/* a NULL cat structure indicates that no data can be read */ + if (!(cat = tab->cat)) + return; + + switch(tab->compress_type) + { +/*-- Uncompressed image */ + case COMPRESS_NONE: + bowl = DATA_BUFSIZE/tab->bytepix; + spoonful = size0; size -= spoonful) + { + if (spoonful>size) + spoonful = size; + bufdata = (char *)bufdata0; + QFREAD(bufdata, spoonful*tab->bytepix, cat->file, cat->filename); + switch(tab->bitpix) + { + case BP_BYTE: + for (i=spoonful; i--;) + *(ptr++) = (FLAGTYPE)*((unsigned char *)bufdata++); + break; + + case BP_SHORT: + if (bswapflag) + swapbytes(bufdata, 2, spoonful); + for (i=spoonful; i--; bufdata += sizeof(unsigned short)) + *(ptr++) = (FLAGTYPE)*((unsigned short *)bufdata); + break; + + case BP_LONG: + if (bswapflag) + swapbytes(bufdata, 4, spoonful); + for (i=spoonful; i--; bufdata += sizeof(unsigned long)) + *(ptr++) = (FLAGTYPE)*((unsigned long *)bufdata); + break; + + case BP_FLOAT: + case BP_DOUBLE: + error(EXIT_FAILURE,"*Error*: I was expecting integers in ", + cat->filename); + break; + default: + error(EXIT_FAILURE,"*FATAL ERROR*: unknown BITPIX type in ", + "readdata()"); + break; + } + } + break; + +/*-- Compressed image */ + case COMPRESS_BASEBYTE: + if (!tab->compress_buf) + QMALLOC(tab->compress_buf, char, FBSIZE); + bufdata = tab->compress_bufptr; + curval = tab->compress_curval; + npix = tab->compress_npix; + while (size--) + { + if (!(npix--)) + { + if (curval != tab->compress_checkval) + error(EXIT_FAILURE, "*Error*: invalid BASEBYTE checksum in ", + cat->filename); + bufdata = tab->compress_buf; + QFREAD(bufdata, FBSIZE, cat->file, cat->filename); + curval = 0; + if (bswapflag) + swapbytes(bufdata, 4, 1); + tab->compress_checkval = *((int *)bufdata); + bufdata += 4; + if (bswapflag) + swapbytes(bufdata, 2, 1); + npix = (int)(*((short *)bufdata))-1; + bufdata+=2; + } + if ((dval=(int)*(bufdata++))==-128) + { + if (bswapflag) + swapbytes(bufdata, 2, 1); + memcpy(&val16, bufdata, 2); + dval = (int)val16; + if (dval==-32768) + { + bufdata += 2; + if (bswapflag) + swapbytes(bufdata, 4, 1); + memcpy(&dval,bufdata,4); + bufdata += 4; + } + else + bufdata += 2; + } + *(ptr++) = (FLAGTYPE)dval; + curval += dval; + } + tab->compress_curval = curval; + tab->compress_bufptr = bufdata; + tab->compress_npix = npix; + break; + + case COMPRESS_PREVPIX: + if (!tab->compress_buf) + QMALLOC(tab->compress_buf, char, FBSIZE); + bufdata = tab->compress_bufptr; + curval = tab->compress_curval; + npix = tab->compress_npix; + while (size--) + { + if (!(npix--)) + { + if (curval != tab->compress_checkval) + error(EXIT_FAILURE, "*Error*: invalid PREV_PIX checksum in ", + cat->filename); + bufdata = tab->compress_buf; + QFREAD(bufdata, FBSIZE, cat->file, cat->filename); + if (bswapflag) + swapbytes(bufdata, 2, 3); + curval = (int)*(short *)bufdata; + npix = (int)*(short *)(bufdata+=2)-1; + tab->compress_checkval = (int)(*(short *)(bufdata+=2)); + bufdata+=4; + } + if ((dval=(int)*(bufdata++))==-128) + { + if (bswapflag) + swapbytes(bufdata, 2, 1); + memcpy(&val16, bufdata, 2); + curval = (int)val16; + bufdata += 2; + } + else + curval += dval; + *(ptr++) = (FLAGTYPE)curval; + } + tab->compress_curval = curval; + tab->compress_bufptr = bufdata; + tab->compress_npix = npix; + break; + + default: + error(EXIT_FAILURE,"*Internal Error*: unknown compression mode in ", + "readdata()"); + } + + return; + } + + /******* write_body *********************************************************** PROTO write_body(tabstruct *tab, PIXTYPE *ptr, long size) PURPOSE Write values to a FITS body. @@ -463,10 +631,11 @@ INPUT A pointer to the tab structure, OUTPUT -. NOTES . AUTHOR E. Bertin (IAP) -VERSION 29/06/2006 +VERSION 11/10/2007 ***/ void write_body(tabstruct *tab, PIXTYPE *ptr, size_t size) { + static double bufdata0[DATA_BUFSIZE/sizeof(double)]; catstruct *cat; char *cbufdata0; size_t i, bowl, spoonful; diff --git a/src/fits/fitscat.h b/src/fits/fitscat.h index b4c4e6b06368fbf23f16a6f575bdfd4bfbd352af..6708f8759fd98d77051d4248b256b13cb2fdb81c 100644 --- a/src/fits/fitscat.h +++ b/src/fits/fitscat.h @@ -9,7 +9,7 @@ * * Contents: Simplified versin of the LDACTools: main include file * -* Last modify: 10/07/2006 +* Last modify: 10/10/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -22,7 +22,7 @@ #endif #define MAXCHARS 256 /* max. number of characters */ -#define WARNING_NMAX 100 /* max. number of recorded warnings */ +#define WARNING_NMAX 1000 /* max. number of recorded warnings */ /*---------------------------- return messages ------------------------------*/ @@ -75,6 +75,7 @@ typedef enum {SHOW_ASCII, SHOW_SKYCAT} output_type; /* Type of output */ typedef float PIXTYPE; /* Pixel type */ +typedef unsigned int FLAGTYPE; /* Flag type */ #ifdef HAVE_UNSIGNED_LONG_LONG typedef unsigned long long KINGSIZE_T; /* for large sizes */ @@ -212,6 +213,7 @@ extern void add_cleanupfilename(char *filename), int nkeys, unsigned char *mask), read_basic(tabstruct *tab), read_body(tabstruct *tab, PIXTYPE *ptr, size_t size), + read_ibody(tabstruct *tab, FLAGTYPE *ptr, size_t size), readbasic_head(tabstruct *tab), remove_cleanupfilename(char *filename), save_cat(catstruct *cat, char *filename), @@ -282,6 +284,7 @@ extern int about_cat(catstruct *cat, FILE *stream), long pos), remove_key(tabstruct *tab, char *keyname), remove_keys(tabstruct *tab), + removekeywordfrom_head(tabstruct *tab, char *keyword), remove_tab(catstruct *cat, char *tabname, int seg), remove_tabs(catstruct *cat), save_head(catstruct *cat, tabstruct *tab), diff --git a/src/fits/fitscat_defs.h b/src/fits/fitscat_defs.h index 78c34d19c370b7ade8ade908ad9003005c489c3a..0d02717a8237415e66afa596cb957d989bc12d29 100644 --- a/src/fits/fitscat_defs.h +++ b/src/fits/fitscat_defs.h @@ -9,7 +9,7 @@ * * Contents: Simplified version of the LDACTools: internal defs * -* Last modify: 16/08/2004 +* Last modify: 26/09/2006 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -44,6 +44,7 @@ extern int bswapflag; /* != 0 if bytes are swapped/IEEE */ #define BODY_DEFSWAPDIR "/tmp" /* OK at least for Unix systems */ #define BIG 1e+30 /* a huge number */ +#define TINY (1.0/BIG) /* a tiny number */ #ifndef PI #define PI 3.14159265359 /* never met before? */ #endif diff --git a/src/fits/fitscleanup.c b/src/fits/fitscleanup.c index d8d34310f67817da6719cdf29dbc8831e36f0580..5054be805750b7d4f9bcdd53f88e729a91b3ab37 100644 --- a/src/fits/fitscleanup.c +++ b/src/fits/fitscleanup.c @@ -9,7 +9,7 @@ * * Contents: Signal-catching routines to clean-up temporary files * -* Last modify: 10/01/2003 +* Last modify: 16/07/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -96,7 +96,7 @@ INPUT pointer to filename char string. OUTPUT -. NOTES -. AUTHOR E. Bertin (IAP) -VERSION 21/08/2000 +VERSION 16/07/2007 ***/ void remove_cleanupfilename(char *filename) { @@ -113,22 +113,17 @@ void remove_cleanupfilename(char *filename) { /* Match found: update the list and free memory is necessary*/ filename3 = filename2 - 1; + free(*filename3); for (j=i; j--;) *(filename3++) = *(filename2++); if (!((--cleanup_nfiles)%CLEANUP_NFILES)) { if (cleanup_nfiles) { - filename2 = cleanup_filename + cleanup_nfiles; - for (i=CLEANUP_NFILES; i--;) - free(*(filename2++)); QREALLOC(cleanup_filename, char *, cleanup_nfiles); } else - { - free(*cleanup_filename); free(cleanup_filename); - } } break; } diff --git a/src/fits/fitshead.c b/src/fits/fitshead.c index 7a3409c4933c3c84d04a1bb0654f34f99e99fd20..1125f88ec0f07ed012cc26068898302b400edd52 100644 --- a/src/fits/fitshead.c +++ b/src/fits/fitshead.c @@ -9,7 +9,7 @@ * * Contents: general functions for handling FITS file headers. * -* Last modify: 25/09/2004 +* Last modify: 20/06/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -315,7 +315,7 @@ INPUT Table structure. OUTPUT RETURN_OK if tab is a binary table, or RETURN_ERROR otherwise. NOTES The headbuf pointer in the tabstruct might be reallocated. AUTHOR E. Bertin (IAP & Leiden observatory) -VERSION 25/09/2004 +VERSION 11/06/2007 ***/ int update_head(tabstruct *tab) @@ -353,13 +353,13 @@ int update_head(tabstruct *tab) } /*First, remove all existing TTYPE, TFORM, etc...*/ - fitsremove(tab->headbuf, "TTYPE???"); - fitsremove(tab->headbuf, "TFORM???"); - fitsremove(tab->headbuf, "TUNIT???"); - fitsremove(tab->headbuf, "TZERO???"); - fitsremove(tab->headbuf, "TSCAL???"); - fitsremove(tab->headbuf, "TDIM???"); - fitsremove(tab->headbuf, "TDISP???"); + removekeywordfrom_head(tab, "TTYPE???"); + removekeywordfrom_head(tab, "TFORM???"); + removekeywordfrom_head(tab, "TUNIT???"); + removekeywordfrom_head(tab, "TZERO???"); + removekeywordfrom_head(tab, "TSCAL???"); + removekeywordfrom_head(tab, "TDIM???"); + removekeywordfrom_head(tab, "TDISP???"); /*Change NAXIS1 in order to take into account changes in width*/ @@ -465,8 +465,8 @@ PURPOSE Update a FITS header to make it "primary" (not extension) INPUT Table structure. OUTPUT RETURN_OK if tab header was already primary, or RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP & Leiden observatory) -VERSION 08/05/2002 +AUTHOR E. Bertin (IAP & Leiden observatory) C. Marmo (IAP) +VERSION 11/06/2007 ***/ int prim_head(tabstruct *tab) @@ -477,8 +477,13 @@ int prim_head(tabstruct *tab) { strncpy(tab->headbuf, "SIMPLE = T " "/ This is a FITS file ", 80); +/* fitsverify 4.13 (CFITSIO V3.002) return an error + if PCOUNT and GCOUNT are in a primary header (23/05/2007)*/ + removekeywordfrom_head(tab, "PCOUNT"); + removekeywordfrom_head(tab, "GCOUNT"); return RETURN_ERROR; } + return RETURN_OK; } @@ -490,8 +495,8 @@ INPUT Table structure. OUTPUT RETURN_OK if tab header was already extension, or RETURN_ERROR otherwise. NOTES -. -AUTHOR E. Bertin (IAP & Leiden observatory) -VERSION 08/05/2002 +AUTHOR E. Bertin (IAP & Leiden observatory) C. Marmo (IAP) +VERSION 20/06/2007 ***/ int ext_head(tabstruct *tab) @@ -502,6 +507,15 @@ int ext_head(tabstruct *tab) { strncpy(tab->headbuf, "XTENSION= 'IMAGE ' " "/ Image extension ", 80); +/* fitsverify 4.13 (CFITSIO V3.002) return an error + if EXTEND are in an extension header (20/06/2007)*/ + removekeywordfrom_head(tab, "EXTEND"); +/* fitsverify 4.13 (CFITSIO V3.002) return an error + if PCOUNT and GCOUNT are not in the extension header (23/05/2007) */ + addkeywordto_head(tab, "PCOUNT ", "required keyword; must = 0"); + addkeywordto_head(tab, "GCOUNT ", "required keyword; must = 1"); + fitswrite(tab->headbuf,"PCOUNT ", &tab->pcount, H_INT, T_LONG); + fitswrite(tab->headbuf,"GCOUNT ", &tab->gcount, H_INT, T_LONG); return RETURN_ERROR; } @@ -564,6 +578,36 @@ int addkeywordto_head(tabstruct *tab, char *keyword, char *comment) } +/****** removekeywordfrom_head ************************************************ +PROTO int removekeywordfrom_head(tabstruct *tab, char *keyword) +PURPOSE Remove a keyword from a table header. +INPUT Table structure, + String containing the keyword. +OUTPUT RETURN_OK if the keyword was found, RETURN_ERROR otherwise.. +NOTES The headbuf pointer in the tabstruct might be reallocated. + '?' wildcard allowed; Don't remove the ``END'' keyword with this!!! +AUTHOR E. Bertin (IAP) +VERSION 11/06/2007 + ***/ +int removekeywordfrom_head(tabstruct *tab, char *keyword) + + { + int nb; + + if (fitsremove(tab->headbuf, keyword) == RETURN_OK) + { + if ((nb=fitsfind(tab->headbuf, "END ")/(FBSIZE/80)+1) < tab->headnblock) + { + tab->headnblock = nb; + QREALLOC(tab->headbuf, char, tab->headnblock*FBSIZE); + } + return RETURN_OK; + } + else + return RETURN_ERROR; + } + + /****** tformof *************************************************************** PROTO int tformof(char *str, t_type ttype, int n) PURPOSE Return the ``TFORM'' string corresponding to a t_type diff --git a/src/fits/fitskey.c b/src/fits/fitskey.c index 4e1cfa3dd25a9a234d6409e1d97cb65794ad965d..9e6c9a39d1ead5e2a89c21d8f2b0d26ba16f6a3d 100644 --- a/src/fits/fitskey.c +++ b/src/fits/fitskey.c @@ -9,7 +9,7 @@ * * Contents: Functions related to the management of keys. * -* Last modify: 15/08/2003 +* Last modify: 04/06/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -575,7 +575,7 @@ NOTES This is approximately the same code as for read_keys. A NULL keynames pointer means read ALL keys belonging to the table. A NULL mask pointer means NO selection for reading. AUTHOR E. Bertin (IAP & Leiden observatory) -VERSION 15/08/2003 +VERSION 04/06/2007 ***/ void show_keys(tabstruct *tab, char **keynames, keystruct **keys, int nkeys, BYTE *mask, FILE *stream, @@ -691,10 +691,10 @@ void show_keys(tabstruct *tab, char **keynames, keystruct **keys, int nkeys, if (banflag) { if (*key->unit) - fprintf(stream, "# %3d %-19.19s %-47.47s [%s]\n", + fprintf(stream, "# %3d %-15.15s %-47.47s [%s]\n", n, key->name,key->comment, key->unit); else - fprintf(stream, "# %3d %-19.19s %.47s\n", + fprintf(stream, "# %3d %-15.15s %.47s\n", n, key->name,key->comment); n += key->nbytes/t_size[key->ttype]; } @@ -730,10 +730,10 @@ void show_keys(tabstruct *tab, char **keynames, keystruct **keys, int nkeys, if (banflag) { if (*key->unit) - fprintf(stream, "# %3d %-19.19s %-47.47s [%s]\n", + fprintf(stream, "# %3d %-15.15s %-47.47s [%s]\n", n, key->name,key->comment, key->unit); else - fprintf(stream, "# %3d %-19.19s %.47s\n", + fprintf(stream, "# %3d %-15.15s %.47s\n", n, key->name,key->comment); n += key->nbytes/t_size[key->ttype]; } @@ -754,10 +754,10 @@ void show_keys(tabstruct *tab, char **keynames, keystruct **keys, int nkeys, switch (o_type) { case SHOW_ASCII: if (*key->unit) - fprintf(stream, "# %-19.19s %-47.47s [%s]\n", + fprintf(stream, "# %-15.15s %-47.47s [%s]\n", key->name,key->comment, key->unit); else - fprintf(stream, "# %-19.19s %.47s\n", + fprintf(stream, "# %-15.15s %.47s\n", key->name,key->comment); break; case SHOW_SKYCAT: diff --git a/src/fits/fitsmisc.c b/src/fits/fitsmisc.c index 44ae3e6b7bd200c9d79e1a5929bc17e4eb785698..c3e56773202fdaed0c047120321666858fa31e25 100644 --- a/src/fits/fitsmisc.c +++ b/src/fits/fitsmisc.c @@ -9,7 +9,7 @@ * * Contents: miscellaneous functions. * -* Last modify: 14/07/2006 +* Last modify: 18/07/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -113,8 +113,9 @@ Swap bytes for doubles, longs and shorts (for DEC machines or PC for inst.). */ void swapbytes(void *ptr, int nb, int n) { - char *cp; - int j; + char *cp, + c; + int j; cp = (char *)ptr; @@ -122,8 +123,12 @@ void swapbytes(void *ptr, int nb, int n) { for (j=n; j--; cp+=4) { - cp[0] ^= (cp[3]^=(cp[0]^=cp[3])); - cp[1] ^= (cp[2]^=(cp[1]^=cp[2])); + c = cp[3]; + cp[3] = cp[0]; + cp[0] = c; + c = cp[2]; + cp[2] = cp[1]; + cp[1] = c; } return; } @@ -131,7 +136,11 @@ void swapbytes(void *ptr, int nb, int n) if (nb&2) { for (j=n; j--; cp+=2) - cp[0] ^= (cp[1]^=(cp[0]^=cp[1])); + { + c = cp[1]; + cp[1] = cp[0]; + cp[0] = c; + } return; } @@ -142,10 +151,18 @@ void swapbytes(void *ptr, int nb, int n) { for (j=n; j--; cp+=8) { - cp[0] ^= (cp[7]^=(cp[0]^=cp[7])); - cp[1] ^= (cp[6]^=(cp[1]^=cp[6])); - cp[2] ^= (cp[5]^=(cp[2]^=cp[5])); - cp[3] ^= (cp[4]^=(cp[3]^=cp[4])); + c = cp[7]; + cp[7] = cp[0]; + cp[0] = c; + c = cp[6]; + cp[6] = cp[1]; + cp[1] = c; + c = cp[5]; + cp[5] = cp[2]; + cp[2] = c; + c = cp[4]; + cp[4] = cp[3]; + cp[3] = c; } return; } diff --git a/src/fits/fitsutil.c b/src/fits/fitsutil.c index 6992c9990da57fecd630fe4ff65f03613b6960c2..7044add7f3a38b89ad6e06ef34e91fa432853b15 100644 --- a/src/fits/fitsutil.c +++ b/src/fits/fitsutil.c @@ -9,7 +9,7 @@ * * Contents: functions for handling FITS keywords. * -* Last modify: 21/09/2006 +* Last modify: 12/06/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -38,8 +38,8 @@ NOTES For all keywords except commentary ones (like COMMENT, HISTORY or blank), it is checked that they do not exist already. Enough memory should be provided for the FITS header to contain one more line of 80 char. -AUTHOR E. Bertin (IAP & Leiden observatory) -VERSION 13/06/2004 +AUTHOR E. Bertin (IAP & Leiden observatory) C. Marmo (IAP) +VERSION 13/06/2007 ***/ int fitsadd(char *fitsbuf, char *keyword, char *comment) @@ -76,6 +76,26 @@ int fitsadd(char *fitsbuf, char *keyword, char *comment) else return RETURN_ERROR; } +/*-- Special case of PCOUNT/GCOUNT parameters */ + if (!strncmp(keyword, "PCOUNT", 6)) + { + headpos=fitsfind(fitsbuf, "NAXIS "); + sscanf(fitsbuf+80*headpos, "NAXIS = %d", &n); + if (headpos>0) + headpos+=(n+1); + else + return RETURN_ERROR; + } + if (!strncmp(keyword, "GCOUNT", 6)) + { + headpos=fitsfind(fitsbuf, "NAXIS "); + sscanf(fitsbuf+80*headpos, "NAXIS = %d", &n); + if (headpos>0) + headpos+=(n+2); + else + return RETURN_ERROR; + } + key_ptr = fitsbuf+80*headpos; memmove(key_ptr+80, key_ptr, 80*(headpos2-headpos+1)); @@ -88,7 +108,6 @@ int fitsadd(char *fitsbuf, char *keyword, char *comment) else sprintf(str, "%-8.8s= %-47.47s", keyword, " "); - memcpy(key_ptr, str, 80); } @@ -162,7 +181,7 @@ OUTPUT RETURN_OK if something was found, RETURN_ERROR otherwise. NOTES -. AUTHOR E. Bertin (IAP), E.R. Deul - Handling of NaN -VERSION 19/09/2006 +VERSION 04/06/2007 ***/ int fitspick(char *fitsline, char *keyword, void *ptr, h_type *htype, t_type *ttype, char *comment) @@ -233,13 +252,7 @@ int fitspick(char *fitsline, char *keyword, void *ptr, h_type *htype, { for (i=j; i<80 && fitsline[i]!=(char)'/' && fitsline[i]!=(char)'.'; i++); /*-- Handle floats*/ - if (i==80) - { - *((int *)ptr) = 0; - *htype = H_INT; - *ttype = T_LONG; - } - else if (fitsline[i]==(char)'.') + if (fitsline[i]==(char)'.') { fixexponent(fitsline); *((double *)ptr) = atof(fitsline+j); diff --git a/src/fitswcs.c b/src/fitswcs.c new file mode 100644 index 0000000000000000000000000000000000000000..0f5c9f26d4c0c5c635d4cc9fa8d40aa26a7ede2d --- /dev/null +++ b/src/fitswcs.c @@ -0,0 +1,2011 @@ +/* + fitswcs.c + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: LDACTools+ +* +* Author: E.BERTIN (IAP) +* +* Contents: Read and write WCS header info. +* +* Last modify: 26/04/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_MATHIMF_H +#include +#else +#include +#endif +#include +#include +#include + +#include "fits/fitscat_defs.h" +#include "fits/fitscat.h" +#include "fitswcs.h" +#include "wcscelsys.h" +#include "wcs/wcs.h" +#include "wcs/lin.h" +#include "wcs/tnx.h" +#include "wcs/poly.h" + +/******* copy_wcs ************************************************************ +PROTO wcsstruct *copy_wcs(wcsstruct *wcsin) +PURPOSE Copy a WCS (World Coordinate System) structure. +INPUT WCS structure to be copied. +OUTPUT pointer to a copy of the input structure. +NOTES Actually, only FITS parameters are copied. Lower-level structures + such as those created by the WCS or TNX libraries are generated. +AUTHOR E. Bertin (IAP) +VERSION 31/08/2002 + ***/ +wcsstruct *copy_wcs(wcsstruct *wcsin) + + { + wcsstruct *wcs; + +/* Copy the basic stuff */ + QMEMCPY(wcsin, wcs, wcsstruct, 1); +/* The PROJP WCS parameters */ + QMEMCPY(wcsin->projp, wcs->projp, double, wcs->naxis*100); + +/* Set other structure pointers to NULL (they'll have to be reallocated) */ + wcs->wcsprm = NULL; + wcs->lin = NULL; + wcs->cel = NULL; + wcs->prj = NULL; + wcs->tnx_lngcor = copy_tnxaxis(wcsin->tnx_lngcor); + wcs->tnx_latcor = copy_tnxaxis(wcsin->tnx_latcor); + wcs->inv_x = wcs->inv_y = NULL; + + QCALLOC(wcs->wcsprm, struct wcsprm, 1); +/* Test if the WCS is recognized and a celestial pair is found */ + wcsset(wcs->naxis,(const char(*)[9])wcs->ctype, wcs->wcsprm); + +/* Initialize other WCS structures */ + init_wcs(wcs); +/* Invert projection corrections */ + invert_wcs(wcs); +/* Find the range of coordinates */ + range_wcs(wcs); + + return wcs; + } + + +/******* create_wcs *********************************************************** +PROTO wcsstruct *create_wcs(char **ctype, double *crval, double *crpix, + double *cdelt, int *naxisn, int naxis) +PURPOSE Generate a simple WCS (World Coordinate System) structure. +INPUT Pointer to an array of char strings with WCS projection on each axis, + pointer to an array of center coordinates (double), + pointer to an array of device coordinates (double), + pointer to an array of pixel scales (double), + pointer to an array of image dimensions (int), + number of dimensions. +OUTPUT pointer to a WCS structure. +NOTES If a pointer is set to null, the corresponding variables are set to + default values. +AUTHOR E. Bertin (IAP) +VERSION 09/08/2006 + ***/ +wcsstruct *create_wcs(char **ctype, double *crval, double *crpix, + double *cdelt, int *naxisn, int naxis) + + { + wcsstruct *wcs; + int l; + + QCALLOC(wcs, wcsstruct, 1); + wcs->naxis = naxis; + QCALLOC(wcs->projp, double, naxis*100); + wcs->nprojp = 0; + + wcs->longpole = wcs->latpole = 999.0; + for (l=0; lnaxisn[l] = naxisn? naxisn[l] : 360.0; +/*-- The default WCS projection system is an all-sky Aitoff projection */ + if (ctype) + strncpy(wcs->ctype[l], ctype[l], 8); + else if (l==0) + strncpy(wcs->ctype[l], "RA---AIT", 8); + else if (l==1) + strncpy(wcs->ctype[l], "DEC--AIT", 8); + wcs->crval[l] = crval? crval[l]: 0.0; + wcs->crpix[l] = crpix? crpix[l]: 0.0; + wcs->cdelt[l] = 1.0; + wcs->cd[l*(naxis+1)] = cdelt? cdelt[l] : 1.0; + } + + wcs->epoch = wcs->equinox = 2000.0; + QCALLOC(wcs->wcsprm, struct wcsprm, 1); + +/* Test if the WCS is recognized and a celestial pair is found */ + wcsset(wcs->naxis,(const char(*)[9])wcs->ctype, wcs->wcsprm); + +/* Initialize other WCS structures */ + init_wcs(wcs); +/* Invert projection corrections */ + invert_wcs(wcs); +/* Find the range of coordinates */ + range_wcs(wcs); + + return wcs; + } + + +/******* init_wcs ************************************************************ +PROTO void init_wcs(wcsstruct *wcs) +PURPOSE Initialize astrometry and WCS (World Coordinate System) structures. +INPUT WCS structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 17/05/2007 + ***/ +void init_wcs(wcsstruct *wcs) + + { + int l,n,lng,lat,naxis; + + naxis = wcs->naxis; + if (wcs->lin) + { + free(wcs->lin->cdelt); + free(wcs->lin->crpix); + free(wcs->lin->pc); + free(wcs->lin->piximg); + free(wcs->lin->imgpix); + free(wcs->lin); + } + QCALLOC(wcs->lin, struct linprm, 1); + QCALLOC(wcs->lin->cdelt, double, naxis); + QCALLOC(wcs->lin->crpix, double, naxis); + QCALLOC(wcs->lin->pc, double, naxis*naxis); + + + if (wcs->cel) + free(wcs->cel); + QCALLOC(wcs->cel, struct celprm, 1); + + if (wcs->prj) + free(wcs->prj); + QCALLOC(wcs->prj, struct prjprm, 1); + + if (wcs->inv_x) + { + poly_end(wcs->inv_x); + wcs->inv_x = NULL; + } + if (wcs->inv_y) + { + poly_end(wcs->inv_y); + wcs->inv_y = NULL; + } + +/* Set WCS flags to 0: structures will be reinitialized by the WCS library */ + wcs->lin->flag = wcs->cel->flag = wcs->prj->flag = 0; + wcs->lin->naxis = naxis; + +/* wcsprm structure */ + lng = wcs->lng = wcs->wcsprm->lng; + lat = wcs->lat = wcs->wcsprm->lat; + +/* linprm structure */ + for (l=0; llin->crpix[l] = wcs->crpix[l]; + wcs->lin->cdelt[l] = 1.0; + } + + for (l=0; llin->pc[l] = wcs->cd[l]; + +/* celprm structure */ + if (lng>=0) + { + wcs->cel->ref[0] = wcs->crval[lng]; + wcs->cel->ref[1] = wcs->crval[lat]; + } + else + { + wcs->cel->ref[0] = wcs->crval[0]; + wcs->cel->ref[1] = wcs->crval[1]; + } + wcs->cel->ref[2] = wcs->longpole; + wcs->cel->ref[3] = wcs->latpole; + +/* prjprm structure */ + wcs->prj->r0 = wcs->r0; + wcs->prj->tnx_lngcor = wcs->tnx_lngcor; + wcs->prj->tnx_latcor = wcs->tnx_latcor; + if (lng>=0) + { + n = 0; + for (l=100; l--;) + { + wcs->prj->p[l] = wcs->projp[l+lat*100]; /* lat comes first for ... */ + wcs->prj->p[l+100] = wcs->projp[l+lng*100];/* ... compatibility reasons */ + if (!n && (wcs->prj->p[l] || wcs->prj->p[l+100])) + n = l+1; + } + wcs->nprojp = n; + } + +/* Check-out chirality */ + wcs->chirality = wcs_chirality(wcs); + +/* Initialize Equatorial <=> Celestial coordinate system transforms */ + init_wcscelsys(wcs); + + return; + } + + +/******* init_wcscelsys ******************************************************* +PROTO void init_wcscelsys(wcsstruct *wcs) +PURPOSE Initialize Equatorial <=> Celestial coordinate system transforms. +INPUT WCS structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/07/2006 + ***/ +void init_wcscelsys(wcsstruct *wcs) + + { + double *mat, + a0,d0,ap,dp,ap2,y; + int s,lng,lat; + + lng = wcs->wcsprm->lng; + lat = wcs->wcsprm->lat; +/* Is it a celestial system? If not, exit! */ + if (lng==lat) + { + wcs->celsysconvflag = 0; + return; + } +/* Find the celestial system */ + for (s=0; *celsysname[s][0] && strncmp(wcs->ctype[lng], celsysname[s][0], 4); + s++); +/* Is it a known, non-equatorial system? If not, exit! */ + if (!s || !*celsysname[s][0]) + { + wcs->celsysconvflag = 0; + return; + } + wcs->celsys = (celsysenum)s; +/* Some shortcuts */ + a0 = celsysorig[s][0]*DEG; + d0 = celsysorig[s][1]*DEG; + ap = celsyspole[s][0]*DEG; + dp = celsyspole[s][1]*DEG; +/* First compute in the output referential the longitude of the south pole */ + y = sin(ap - a0); +/* + x = cos(d0)*(cos(d0)*sin(dp)*cos(ap-a0)-sin(d0)*cos(dp)); + ap2 = atan2(y,x); +*/ + ap2 = asin(cos(d0)*y) ; +/* Equatorial <=> Celestial System transformation parameters */ + mat = wcs->celsysmat; + mat[0] = ap; + mat[1] = ap2; + mat[2] = cos(dp); + mat[3] = sin(dp); + + wcs->celsysconvflag = 1; + return; + } + + +/******* read_wcs ************************************************************* +PROTO wcsstruct *read_wcs(tabstruct *tab) +PURPOSE Read WCS (World Coordinate System) info in the FITS header. +INPUT tab structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 02/01/2008 + ***/ +wcsstruct *read_wcs(tabstruct *tab) + + { +#define FITSREADF(buf, k, val, def) \ + {if (fitsread(buf,k, &val, H_FLOAT,T_DOUBLE) != RETURN_OK) \ + val = def; \ + } + +#define FITSREADI(buf, k, val, def) \ + {if (fitsread(buf,k, &val, H_INT,T_LONG) != RETURN_OK) \ + val = def; \ + } + +#define FITSREADS(buf, k, str, def) \ + {if (fitsread(buf,k,str, H_STRING,T_STRING) != RETURN_OK) \ + strcpy(str, (def)); \ + } + char str[MAXCHARS]; + char wstr1[TNX_MAXCHARS], wstr2[TNX_MAXCHARS]; + + wcsstruct *wcs; + double drota; + int j, l, naxis; + char name[16], + *buf, *filename, *ptr; + + buf = tab->headbuf; + filename = (tab->cat? tab->cat->filename : strcpy(name, "internal header")); + + FITSREADS(buf, "OBJECT ", str, "Unnamed"); + + QCALLOC(wcs, wcsstruct, 1); + if (tab->naxis > NAXIS) + { + warning("Maximum number of dimensions supported by this version of the ", + "software exceeded\n"); + tab->naxis = 2; + } + + wcs->naxis = naxis = tab->naxis; + QCALLOC(wcs->projp, double, naxis*100); + + for (l=0; lnaxisn[l] = tab->naxisn[l]; + sprintf(str, "CTYPE%-3d", l+1); + FITSREADS(buf, str, str, ""); + strncpy(wcs->ctype[l], str, 8); + sprintf(str, "CUNIT%-3d", l+1); + FITSREADS(buf, str, str, "deg"); + strncpy(wcs->cunit[l], str, 32); + sprintf(str, "CRVAL%-3d", l+1); + FITSREADF(buf, str, wcs->crval[l], 0.0); + sprintf(str, "CRPIX%-3d", l+1); + FITSREADF(buf, str, wcs->crpix[l], 1.0); + sprintf(str, "CDELT%-3d", l+1); + FITSREADF(buf, str, wcs->cdelt[l], 1.0); + sprintf(str, "CRDER%-3d", l+1); + FITSREADF(buf, str, wcs->crder[l], 0.0); + sprintf(str, "CSYER%-3d", l+1); + FITSREADF(buf, str, wcs->csyer[l], 0.0); + if (fabs(wcs->cdelt[l]) < 1e-30) + error(EXIT_FAILURE, "*Error*: CDELT parameters out of range in ", + filename); + } + + if (fitsfind(buf, "CD?_????")!=RETURN_ERROR) + { +/*-- If CD keywords exist, use them for the linear mapping terms... */ + for (l=0; lcd[l*naxis+j], l==j?1.0:0.0) + } + } + else if (fitsfind(buf, "PC00?00?")!=RETURN_ERROR) +/*-- ...If PC keywords exist, use them for the linear mapping terms... */ + for (l=0; lcd[l*naxis+j], l==j?1.0:0.0) + wcs->cd[l*naxis+j] *= wcs->cdelt[l]; + } + else + { +/*-- ...otherwise take the obsolete CROTA2 parameter */ + FITSREADF(buf, "CROTA2 ", drota, 0.0) + wcs->cd[3] = wcs->cd[0] = cos(drota*DEG); + wcs->cd[1] = -(wcs->cd[2] = sin(drota*DEG)); + wcs->cd[0] *= wcs->cdelt[0]; + wcs->cd[2] *= wcs->cdelt[0]; + wcs->cd[1] *= wcs->cdelt[1]; + wcs->cd[3] *= wcs->cdelt[1]; + } + QCALLOC(wcs->wcsprm, struct wcsprm, 1); + +/* Test if the WCS is recognized and a celestial pair is found */ + if (!wcsset(wcs->naxis,(const char(*)[9])wcs->ctype, wcs->wcsprm) + && wcs->wcsprm->flag<999) + { + char *pstr; + double date; + int biss, dpar[3]; + +/*-- Coordinate reference frame */ +/*-- Search for an observation date expressed in Julian days */ + FITSREADF(buf, "MJD-OBS ", date, -1.0); +/*-- Precession date (defined from Ephemerides du Bureau des Longitudes) */ +/*-- in Julian years from 2000.0 */ + if (date>0.0) + wcs->obsdate = 2000.0 - (MJD2000 - date)/365.25; + else + { +/*---- Search for an observation date expressed in "civilian" format */ + FITSREADS(buf, "DATE-OBS ", str, ""); + if (*str) + { +/*------ Decode DATE-OBS format: DD/MM/YY or YYYY-MM-DD */ + for (l=0; l<3 && (pstr = strtok_r(l?NULL:str,"/- ", &ptr)); l++) + dpar[l] = atoi(pstr); + if (l<3 || !dpar[0] || !dpar[1] || !dpar[2]) + { +/*-------- If DATE-OBS value corrupted or incomplete, assume 2000-1-1 */ + warning("Invalid DATE-OBS value in header: ", str); + dpar[0] = 2000; dpar[1] = 1; dpar[2] = 1; + } + else if (strchr(str, '/') && dpar[0]<32 && dpar[2]<100) + { + j = dpar[0]; + dpar[0] = dpar[2]+1900; + dpar[2] = j; + } + + biss = (dpar[0]%4)?0:1; +/*------ Convert date to MJD */ + date = -678956 + (365*dpar[0]+dpar[0]/4) - biss + + ((dpar[1]>2?((int)((dpar[1]+1)*30.6)-63+biss) + :((dpar[1]-1)*(63+biss))/2) + dpar[2]); + wcs->obsdate = 2000.0 - (MJD2000 - date)/365.25; + } + else +/*------ Well if really no date is found */ + wcs->obsdate = 0.0; + } + + FITSREADF(buf, "EPOCH", wcs->epoch, 2000.0); + FITSREADF(buf, "EQUINOX", wcs->equinox, wcs->epoch); + FITSREADS(buf, "RADECSYS", str, + wcs->equinox >= 2000.0? "ICRS" : (wcs->equinox<1984.0? "FK4" : "FK5")); + if (!strcmp(str, "ICRS")) + wcs->radecsys = RDSYS_ICRS; + else if (!strcmp(str, "FK5")) + wcs->radecsys = RDSYS_FK5; + else if (!strcmp(str, "FK4")) + { + if (wcs->equinox == 2000.0) + { + FITSREADF(buf, "EPOCH ", wcs->equinox, 1950.0); + FITSREADF(buf, "EQUINOX", wcs->equinox, wcs->equinox); + } + wcs->radecsys = RDSYS_FK4; + warning("FK4 precession formulae not yet implemented:\n", + " Astrometry may be slightly inaccurate"); + } + else if (!strcmp(str, "FK4-NO-E")) + { + if (wcs->equinox == 2000.0) + { + FITSREADF(buf, "EPOCH", wcs->equinox, 1950.0); + FITSREADF(buf, "EQUINOX", wcs->equinox, wcs->equinox); + } + wcs->radecsys = RDSYS_FK4_NO_E; + warning("FK4 precession formulae not yet implemented:\n", + " Astrometry may be slightly inaccurate"); + } + else if (!strcmp(str, "GAPPT")) + { + wcs->radecsys = RDSYS_GAPPT; + warning("GAPPT reference frame not yet implemented:\n", + " Astrometry may be slightly inaccurate"); + } + else + { + warning("Using ICRS instead of unknown astrometric reference frame: ", + str); + wcs->radecsys = RDSYS_ICRS; + } + +/*-- Projection parameters */ + if (!strcmp(wcs->wcsprm->pcode, "TNX")) + { +/*---- IRAF's TNX projection: decode these #$!?@#!! WAT parameters */ + if (fitsfind(buf, "WAT?????") != RETURN_ERROR) + { +/*------ First we need to concatenate strings */ + pstr = wstr1; + sprintf(str, "WAT1_001"); + for (j=2; fitsread(buf,str,pstr,H_STRINGS,T_STRING)==RETURN_OK; j++) + { + sprintf(str, "WAT1_%03d", j); + pstr += strlen(pstr); + } + pstr = wstr2; + sprintf(str, "WAT2_001"); + for (j=2; fitsread(buf,str,pstr,H_STRINGS,T_STRING)==RETURN_OK; j++) + { + sprintf(str, "WAT2_%03d", j); + pstr += strlen(pstr); + } +/*------ LONGPOLE defaulted to 180 deg if not found */ + if ((pstr = strstr(wstr1, "longpole")) + || (pstr = strstr(wstr2, "longpole"))) + pstr = strpbrk(pstr, "1234567890-+."); + wcs->longpole = pstr? atof(pstr) : 999.0; + wcs->latpole = 999.0; +/*------ RO defaulted to 180/PI if not found */ + if ((pstr = strstr(wstr1, "ro")) + || (pstr = strstr(wstr2, "ro"))) + pstr = strpbrk(pstr, "1234567890-+."); + wcs->r0 = pstr? atof(pstr) : 0.0; +/*------ Read the remaining TNX parameters */ + if ((pstr = strstr(wstr1, "lngcor")) + || (pstr = strstr(wstr2, "lngcor"))) + wcs->tnx_lngcor = read_tnxaxis(pstr); + if (!wcs->tnx_lngcor) + error(EXIT_FAILURE, "*Error*: incorrect TNX parameters in ", + filename); + if ((pstr = strstr(wstr1, "latcor")) + || (pstr = strstr(wstr2, "latcor"))) + wcs->tnx_latcor = read_tnxaxis(pstr); + if (!wcs->tnx_latcor) + error(EXIT_FAILURE, "*Error*: incorrect TNX parameters in ", + filename); + } + } + else + { + FITSREADF(buf, "LONGPOLE", wcs->longpole, 999.0); + FITSREADF(buf, "LATPOLE ", wcs->latpole, 999.0); +/*---- Old convention */ + if (fitsfind(buf, "PROJP???") != RETURN_ERROR) + for (j=0; j<10; j++) + { + sprintf(str, "PROJP%-3d", j); + FITSREADF(buf, str, wcs->projp[j], 0.0); + } +/*---- New convention */ + if (fitsfind(buf, "PV?_????") != RETURN_ERROR) + for (l=0; lprojp[j+l*100], 0.0); + } + } + } + +/* Initialize other WCS structures */ + init_wcs(wcs); + +/* Find the range of coordinates */ + range_wcs(wcs); +/* Invert projection corrections */ + invert_wcs(wcs); + +#undef FITSREADF +#undef FITSREADI +#undef FITSREADS + + return wcs; + } + + +/******* write_wcs *********************************************************** +PROTO void write_wcs(tabstruct *tab, wcsstruct *wcs) +PURPOSE Write WCS (World Coordinate System) info in the FITS header. +INPUT tab structure, + WCS structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 17/07/2006 + ***/ +void write_wcs(tabstruct *tab, wcsstruct *wcs) + + { + char str[MAXCHARS]; + int j, l, naxis; + + naxis = wcs->naxis; + addkeywordto_head(tab, "BITPIX ", "Bits per pixel"); + fitswrite(tab->headbuf, "BITPIX ", &tab->bitpix, H_INT, T_LONG); + addkeywordto_head(tab, "NAXIS ", "Number of axes"); + fitswrite(tab->headbuf, "NAXIS ", &wcs->naxis, H_INT, T_LONG); + for (l=0; lheadbuf, str, &wcs->naxisn[l], H_INT, T_LONG); + } + addkeywordto_head(tab, "EQUINOX ", "Mean equinox"); + fitswrite(tab->headbuf, "EQUINOX ", &wcs->equinox, H_FLOAT, T_DOUBLE); + addkeywordto_head(tab, "RADECSYS", "Astrometric system"); + switch(wcs->radecsys) + { + case RDSYS_ICRS: + fitswrite(tab->headbuf, "RADECSYS", "ICRS", H_STRING, T_STRING); + break; + case RDSYS_FK5: + fitswrite(tab->headbuf, "RADECSYS", "FK5", H_STRING, T_STRING); + break; + case RDSYS_FK4: + fitswrite(tab->headbuf, "RADECSYS", "FK4", H_STRING, T_STRING); + break; + case RDSYS_FK4_NO_E: + fitswrite(tab->headbuf, "RADECSYS", "FK4-NO-E", H_STRING, T_STRING); + break; + case RDSYS_GAPPT: + fitswrite(tab->headbuf, "RADECSYS", "GAPPT", H_STRING, T_STRING); + break; + default: + error(EXIT_FAILURE, "*Error*: unknown RADECSYS type in write_wcs()", ""); + } + for (l=0; lheadbuf, str, wcs->ctype[l], H_STRING, T_STRING); + sprintf(str, "CUNIT%-3d", l+1); + addkeywordto_head(tab, str, "Axis unit"); + fitswrite(tab->headbuf, str, wcs->cunit[l], H_STRING, T_STRING); + sprintf(str, "CRVAL%-3d", l+1); + addkeywordto_head(tab, str, "World coordinate on this axis"); + fitswrite(tab->headbuf, str, &wcs->crval[l], H_EXPO, T_DOUBLE); + sprintf(str, "CRPIX%-3d", l+1); + addkeywordto_head(tab, str, "Reference pixel on this axis"); + fitswrite(tab->headbuf, str, &wcs->crpix[l], H_EXPO, T_DOUBLE); + for (j=0; jheadbuf, str, &wcs->cd[l*naxis+j], H_EXPO, T_DOUBLE); + } + for (j=0; j<100; j++) + if (wcs->projp[j+100*l] != 0.0) + { + sprintf(str, "PV%d_%d", l+1, j); + addkeywordto_head(tab, str, "Projection distortion parameter"); + fitswrite(tab->headbuf, str, &wcs->projp[j+100*l], H_EXPO, T_DOUBLE); + } + } + +/* Update the tab data */ + readbasic_head(tab); + + return; + } + + +/******* end_wcs ************************************************************** +PROTO void end_wcs(wcsstruct *wcs) +PURPOSE Free WCS (World Coordinate System) infos. +INPUT WCS structure. +OUTPUT -. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 24/05/2000 + ***/ +void end_wcs(wcsstruct *wcs) + + { + if (wcs) + { + if (wcs->lin) + { + free(wcs->lin->cdelt); + free(wcs->lin->crpix); + free(wcs->lin->pc); + free(wcs->lin->piximg); + free(wcs->lin->imgpix); + free(wcs->lin); + } + free(wcs->cel); + free(wcs->prj); + free(wcs->wcsprm); + free_tnxaxis(wcs->tnx_lngcor); + free_tnxaxis(wcs->tnx_latcor); + poly_end(wcs->inv_x); + poly_end(wcs->inv_y); + free(wcs->projp); + free(wcs); + } + + return; + } + + +/******* wcs_supproj ********************************************************* +PROTO int wcs_supproj(char *name) +PURPOSE Tell if a projection system is supported or not. +INPUT Proposed projection code name. +OUTPUT RETURN_OK if projection is supported, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 24/05/2000 + ***/ +int wcs_supproj(char *name) + + { + char projcode[26][5] = + {"AZP", "TAN", "SIN", "STG", "ARC", "ZPN", "ZEA", "AIR", "CYP", "CAR", + "MER", "CEA", "COP", "COD", "COE", "COO", "BON", "PCO", "GLS", "PAR", + "AIT", "MOL", "CSC", "QSC", "TSC", "NONE"}; + int i; + + for (i=0; i<26; i++) + if (!strcmp(name, projcode[i])) + return RETURN_OK; + + return RETURN_ERROR; + } + + +/******* invert_wcs *********************************************************** +PROTO void invert_wcs(wcsstruct *wcs) +PURPOSE Invert WCS projection mapping (using a polynomial). +INPUT WCS structure. +OUTPUT -. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 06/11/2003 + ***/ +void invert_wcs(wcsstruct *wcs) + + { + polystruct *poly; + double pixin[NAXIS],raw[NAXIS],rawmin[NAXIS]; + double *outpos,*outpost, *lngpos,*lngpost, + *latpos,*latpost, + lngstep,latstep, rawsize, epsilon; + int group[] = {1,1}; + /* Don't ask, this is needed by poly_init()! */ + int i,j,lng,lat,deg, tnxflag, maxflag; + +/* Check first that inversion is not straightforward */ + lng = wcs->wcsprm->lng; + lat = wcs->wcsprm->lat; + if (!strcmp(wcs->wcsprm->pcode, "TNX")) + tnxflag = 1; + else if (!strcmp(wcs->wcsprm->pcode, "TAN") + && (wcs->projp[1+lng*100] || wcs->projp[1+lat*100])) + tnxflag = 0; + else + return; + +/* We define x as "longitude" and y as "latitude" projections */ +/* We assume that PCxx cross-terms with additional dimensions are small */ +/* Sample the whole image with a regular grid */ + lngstep = wcs->naxisn[lng]/(WCS_NGRIDPOINTS-1.0); + latstep = wcs->naxisn[lat]/(WCS_NGRIDPOINTS-1.0); + QMALLOC(outpos, double, 2*WCS_NGRIDPOINTS2); + QMALLOC(lngpos, double, WCS_NGRIDPOINTS2); + QMALLOC(latpos, double, WCS_NGRIDPOINTS2); + for (i=0; inaxis; i++) + raw[i] = rawmin[i] = 0.5; + outpost = outpos; + lngpost = lngpos; + latpost = latpos; + for (j=WCS_NGRIDPOINTS; j--; raw[lat]+=latstep) + { + raw[lng] = rawmin[lng]; + for (i=WCS_NGRIDPOINTS; i--; raw[lng]+=lngstep) + { + if (linrev(raw, wcs->lin, pixin)) + error(EXIT_FAILURE, "*Error*: incorrect linear conversion in ", + wcs->wcsprm->pcode); + *(lngpost++) = pixin[lng]; + *(latpost++) = pixin[lat]; + if (tnxflag) + { + *(outpost++) = pixin[lng] + +raw_to_tnxaxis(wcs->tnx_lngcor,pixin[lng],pixin[lat]); + *(outpost++) = pixin[lat] + +raw_to_tnxaxis(wcs->tnx_latcor,pixin[lng],pixin[lat]); + } + else + { + raw_to_pv(wcs->prj,pixin[lng],pixin[lat], outpost, outpost+1); + outpost += 2; + } + } + } + +/* Invert "longitude" */ +/* Compute the extent of the pixel in reduced projected coordinates */ + linrev(rawmin, wcs->lin, pixin); + pixin[lng] += ARCSEC/DEG; + linfwd(pixin, wcs->lin, raw); + rawsize = sqrt((raw[lng]-rawmin[lng])*(raw[lng]-rawmin[lng]) + +(raw[lat]-rawmin[lat])*(raw[lat]-rawmin[lat]))*DEG/ARCSEC; + if (!rawsize) + error(EXIT_FAILURE, "*Error*: incorrect linear conversion in ", + wcs->wcsprm->pcode); + epsilon = WCS_INVACCURACY/rawsize; +/* Find the lowest degree polynom */ + poly = NULL; /* to avoid gcc -Wall warnings */ + maxflag = 1; + for (deg=1; deg<=WCS_INVMAXDEG && maxflag; deg++) + { + if (deg>1) + poly_end(poly); + poly = poly_init(group, 2, °, 1); + poly_fit(poly, outpos, lngpos, NULL, WCS_NGRIDPOINTS2, NULL); + maxflag = 0; + outpost = outpos; + lngpost = lngpos; + for (i=WCS_NGRIDPOINTS2; i--; outpost+=2) + if (fabs(poly_func(poly, outpost)-*(lngpost++))>epsilon) + { + maxflag = 1; + break; + } + } + if (maxflag) + warning("Significant inaccuracy likely to occur in projection",""); +/* Now link the created structure */ + wcs->prj->inv_x = wcs->inv_x = poly; + +/* Invert "latitude" */ +/* Compute the extent of the pixel in reduced projected coordinates */ + linrev(rawmin, wcs->lin, pixin); + pixin[lat] += ARCSEC/DEG; + linfwd(pixin, wcs->lin, raw); + rawsize = sqrt((raw[lng]-rawmin[lng])*(raw[lng]-rawmin[lng]) + +(raw[lat]-rawmin[lat])*(raw[lat]-rawmin[lat]))*DEG/ARCSEC; + if (!rawsize) + error(EXIT_FAILURE, "*Error*: incorrect linear conversion in ", + wcs->wcsprm->pcode); + epsilon = WCS_INVACCURACY/rawsize; +/* Find the lowest degree polynom */ + maxflag = 1; + for (deg=1; deg<=WCS_INVMAXDEG && maxflag; deg++) + { + if (deg>1) + poly_end(poly); + poly = poly_init(group, 2, °, 1); + poly_fit(poly, outpos, latpos, NULL, WCS_NGRIDPOINTS2, NULL); + maxflag = 0; + outpost = outpos; + latpost = latpos; + for (i=WCS_NGRIDPOINTS2; i--; outpost+=2) + if (fabs(poly_func(poly, outpost)-*(latpost++))>epsilon) + { + maxflag = 1; + break; + } + } + if (maxflag) + warning("Significant inaccuracy likely to occur in projection",""); +/* Now link the created structure */ + wcs->prj->inv_y = wcs->inv_y = poly; + +/* Free memory */ + free(outpos); + free(lngpos); + free(latpos); + + return; + } + + +/******* range_wcs *********************************************************** +PROTO void range_wcs(wcsstruct *wcs) +PURPOSE Find roughly the range of WCS coordinates on all axes, + and typical pixel scales. +INPUT WCS structure. +OUTPUT -. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 09/08/2006 + ***/ +void range_wcs(wcsstruct *wcs) + + { + double step[NAXIS], raw[NAXIS], rawmin[NAXIS], + world[NAXIS], world2[NAXIS]; + double *worldmin, *worldmax, *scale, *worldc, + rad, radmax, lc; + int linecount[NAXIS]; + int i,j, naxis, npoints, lng,lat; + + naxis = wcs->naxis; + +/* World range */ + npoints = 1; + worldmin = wcs->wcsmin; + worldmax = wcs->wcsmax; +/* First, find the center and use it as a reference point for lng */ + lng = wcs->lng; + lat = wcs->lat; + for (i=0; inaxisn[i]+1.0)/2.0; + if (raw_to_wcs(wcs, raw, world)) + { +/*-- Oops no mapping there! So explore the image in an increasingly large */ +/*-- domain to find a better "center" (now we know there must be angular */ +/*-- coordinates) */ + for (j=0; j<100; j++) + { + for (i=0; inaxisn[i]/100.0*(0.5-(double)rand()/RAND_MAX); + if (!raw_to_wcs(wcs, raw, world)) + break; + } + } + + if (lng!=lat) + lc = fmod(world[lng]+180.0, 360.0); + else + { + lc = 0.0; /* to avoid gcc -Wall warnings */ + lng = -1; + } + +/* Pixel scales at image center */ + scale = wcs->wcsscale; + for (i=0; ipixscale = scale[i] = sqrt(wcs_scale(wcs, raw)); + else + { + raw[i] += 1.0; + raw_to_wcs(wcs, raw, world2); + scale[i] = fabs(world2[i] - world[i]); + raw[i] -= 1.0; + if (lng==lat) + wcs->pixscale = scale[i]; + } + wcs->wcsscalepos[i] = world[i]; + } + + +/* Find "World limits" */ + for (i=0; inaxisn[i]/(WCS_NRANGEPOINTS-1.0); + npoints *= WCS_NRANGEPOINTS; + worldmax[i] = -(worldmin[i] = 1e31); + linecount[i] = 0; + } + + radmax = 0.0; + worldc = wcs->wcsscalepos; + + for (j=npoints; j--;) + { + raw_to_wcs(wcs, raw, world); + for (i=0; ilc) + world[i] -= 359.9999; + if (world[i]worldmax[i]) + worldmax[i] = world[i]; + } + +/*-- Compute maximum distance to center */ + if ((rad=wcs_dist(wcs, world, worldc)) > radmax) + radmax = rad; + + for (i=0; iwcsmaxradius = radmax; + + if (lng!=lat) + { + if (worldmax[lat]<-90.0) + worldmax[lat] = -90.0; + if (worldmax[lat]>90.0) + worldmax[lat] = 90.0; + } + + return; + } + + +/******* frame_wcs *********************************************************** +PROTO void frame_wcs(wcsstruct *wcsin, wcsstruct *wcsout) +PURPOSE Find the x and y limits of an input frame in an output image. +INPUT WCS structure of the input frame, + WCS structure of the output frame. +OUTPUT -. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 29/12/2004 + ***/ +void frame_wcs(wcsstruct *wcsin, wcsstruct *wcsout) + + { + double rawin[NAXIS], rawout[NAXIS], world[NAXIS]; + int linecount[NAXIS]; + double worldc; + int *min, *max, + i,j, naxis, npoints, out, swapflag; + + naxis = wcsin->naxis; + +/* World range */ + npoints = 1; + min = wcsin->outmin; + max = wcsin->outmax; + for (i=0; ilng != wcsout->lng) || (wcsin->lat != wcsout->lat)) + && (wcsin->lng != wcsin->lat) && (wcsout->lng != wcsout->lat)); + + for (j=npoints; j--;) + { + if (!raw_to_wcs(wcsin, rawin, world)) + { + if (swapflag) + { + worldc = world[wcsout->lat]; + world[wcsout->lat] = world[wcsin->lat]; + world[wcsin->lat] = worldc; + } + if (!wcs_to_raw(wcsout, world, rawout)) + for (i=0; imax[i]) + max[i] = out; + } + } + for (i=0; inaxisn[i] + *(1-cos(PI*(linecount[i]+1.0)/(WCS_NRANGEPOINTS-1))); + if (++linecount[i]-2147483647) + min[i] -= 2; + if (max[i]>2147483647) + max[i] += 2; + } + + return; + } + + +/******* reaxe_wcs *********************************************************** +PROTO int reaxe_wcs(wcsstruct *wcs, int lng, int lat) +PURPOSE Reformulate a wcs structure to match lng and lat axis indices +INPUT WCS structure, + longitude index, + latitude index. +OUTPUT RETURN_OK if successful, RETURN_ERROR otherwise. +NOTES . +AUTHOR E. Bertin (IAP) +VERSION 20/11/2003 + ***/ +int reaxe_wcs(wcsstruct *wcs, int lng, int lat) + + { + char strlng[80], strlat[80]; + double dlng,dlat,dlng2,dlat2; + int l, ilng,ilat,olng,olat, naxis; + + olng = wcs->lng; + olat = wcs->lat; + if (lng<0 || lat<0 || olng<0 || olat<0) + return RETURN_ERROR; + + ilng = wcs->naxisn[olng]; + ilat = wcs->naxisn[olat]; + wcs->naxisn[lng] = ilng; + wcs->naxisn[lat] = ilat; + strcpy(strlng, wcs->ctype[olng]); + strcpy(strlat, wcs->ctype[olat]); + strcpy(wcs->ctype[lng], strlng); + strcpy(wcs->ctype[lat], strlat); + dlng = wcs->crval[olng]; + dlat = wcs->crval[olat]; + wcs->crval[lng] = dlng; + wcs->crval[lat] = dlat; + naxis = wcs->naxis; + dlng = wcs->cd[olng+olng*naxis]; + dlng2 = wcs->cd[olng+olat*naxis]; + dlat = wcs->cd[olat+olat*naxis]; + dlat2 = wcs->cd[olat+olng*naxis]; + wcs->cd[lng+lng*naxis] = dlng2; + wcs->cd[lng+lat*naxis] = dlng; + wcs->cd[lat+lat*naxis] = dlat2; + wcs->cd[lat+lng*naxis] = dlat; + for (l=0; l<100; l++) + { + dlng = wcs->projp[l+olng*100]; + dlat = wcs->projp[l+olat*100]; + wcs->projp[l+lng*100] = dlng; + wcs->projp[l+lat*100] = dlat; + } + +/*-- Reinitialize wcs */ + wcsset(wcs->naxis,(const char(*)[9])wcs->ctype, wcs->wcsprm); + +/*-- Initialize other WCS structures */ + init_wcs(wcs); +/*-- Find the range of coordinates */ + range_wcs(wcs); + + return RETURN_OK; + } + + +/******* celsys_to_eq ********************************************************* +PROTO int celsys_to_eq(wcsstruct *wcs, double *wcspos) +PURPOSE Convert arbitrary celestial coordinates to equatorial. +INPUT WCS structure, + Coordinate vector. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 08/02/2007 + ***/ +int celsys_to_eq(wcsstruct *wcs, double *wcspos) + + { + double *mat, + a2,d2,sd2,cd2cp,sd,x,y; + int lng, lat; + + mat = wcs->celsysmat; + a2 = wcspos[lng = wcs->wcsprm->lng]*DEG - mat[1]; + d2 = wcspos[lat = wcs->wcsprm->lat]*DEG; +/* A bit of spherical trigonometry... */ +/* Compute the latitude... */ + sd2 = sin(d2); + cd2cp = cos(d2)*mat[2]; + sd = sd2*mat[3]-cd2cp*cos(a2); +/* ...and the longitude */ + y = cd2cp*sin(a2); + x = sd2 - sd*mat[3]; + wcspos[lng] = fmod((atan2(y,x) + mat[0])/DEG+360.0, 360.0); + wcspos[lat] = asin(sd)/DEG; + + return RETURN_OK; + } + + +/******* eq_to_celsys ********************************************************* +PROTO int eq_to_celsys(wcsstruct *wcs, double *wcspos) +PURPOSE Convert equatorial to arbitrary celestial coordinates. +INPUT WCS structure, + Coordinate vector. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 08/02/2007 + ***/ +int eq_to_celsys(wcsstruct *wcs, double *wcspos) + + { + double *mat, + a,d,sd2,cdcp,sd,x,y; + int lng, lat; + + mat = wcs->celsysmat; + a = wcspos[lng = wcs->wcsprm->lng]*DEG - mat[0]; + d = wcspos[lat = wcs->wcsprm->lat]*DEG; +/* A bit of spherical trigonometry... */ +/* Compute the latitude... */ + sd = sin(d); + cdcp = cos(d)*mat[2]; + sd2 = sd*mat[3]+cdcp*cos(a); +/* ...and the longitude */ + y = cdcp*sin(a); + x = sd2*mat[3]-sd; + wcspos[lng] = fmod((atan2(y,x) + mat[1])/DEG+360.0, 360.0); + wcspos[lat] = asin(sd2)/DEG; + + return RETURN_OK; + } + + +/******* raw_to_wcs *********************************************************** +PROTO int raw_to_wcs(wcsstruct *, double *, double *) +PURPOSE Convert raw (pixel) coordinates to WCS (World Coordinate System). +INPUT WCS structure, + Pointer to the array of input coordinates, + Pointer to the array of output coordinates. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 08/02/2007 + ***/ +int raw_to_wcs(wcsstruct *wcs, double *pixpos, double *wcspos) + + { + double imgcrd[NAXIS], + phi,theta; + int i; + + if (wcsrev((const char(*)[9])wcs->ctype, wcs->wcsprm, pixpos, + wcs->lin,imgcrd, wcs->prj, &phi, &theta, wcs->crval, wcs->cel, wcspos)) + { + for (i=0; inaxis; i++) + wcspos[i] = WCS_NOCOORD; + return RETURN_ERROR; + } + +/* If needed, convert from a different coordinate system to equatorial */ + if (wcs->celsysconvflag) + celsys_to_eq(wcs, wcspos); + + return RETURN_OK; + } + + +/******* wcs_to_raw *********************************************************** +PROTO int wcs_to_raw(wcsstruct *, double *, double *) +PURPOSE Convert WCS (World Coordinate System) coords to raw (pixel) coords. +INPUT WCS structure, + Pointer to the array of input coordinates, + Pointer to the array of output coordinates. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 08/02/2007 + ***/ +int wcs_to_raw(wcsstruct *wcs, double *wcspos, double *pixpos) + + { + double imgcrd[NAXIS], + phi,theta; + int i; + +/* If needed, convert to a coordinate system different from equatorial */ + if (wcs->celsysconvflag) + eq_to_celsys(wcs, wcspos); + + if (wcsfwd((const char(*)[9])wcs->ctype,wcs->wcsprm,wcspos, + wcs->crval, wcs->cel,&phi,&theta,wcs->prj, imgcrd,wcs->lin,pixpos)) + { + for (i=0; inaxis; i++) + pixpos[i] = WCS_NOCOORD; + return RETURN_ERROR; + } + + return RETURN_OK; + } + + +/******* red_to_raw ********************************************************** +PROTO int red_to_raw(wcsstruct *, double *, double *) +PURPOSE Convert reduced (World Coordinate System) coords to raw (pixel) + coords. +INPUT WCS structure, + Pointer to the array of input (reduced) coordinates, + Pointer to the array of output (pixel) coordinates. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 23/10/2003 + ***/ +int red_to_raw(wcsstruct *wcs, double *redpos, double *pixpos) + + { + struct wcsprm *wcsprm; + double offset; + + wcsprm = wcs->wcsprm; +/* Initialize if required */ + if (wcsprm && wcsprm->flag != WCSSET) + { + if (wcsset(wcs->naxis, (const char(*)[9])wcs->ctype, wcsprm)) + return RETURN_ERROR; + } + + if (wcsprm && wcsprm->flag != 999 && wcsprm->cubeface != -1) + { +/*-- Separation between faces */ + offset = (wcs->prj->r0 == 0.0 ? 90.0 : wcs->prj->r0*PI/2.0); +/*-- Stack faces in a cube */ + if (redpos[wcs->lat] < -0.5*offset) + { + redpos[wcs->lat] += offset; + redpos[wcsprm->cubeface] = 5.0; + } + else if (redpos[wcs->lat] > 0.5*offset) + { + redpos[wcs->lat] -= offset; + redpos[wcsprm->cubeface] = 0.0; + } + else if (redpos[wcs->lng] > 2.5*offset) + { + redpos[wcs->lng] -= 3.0*offset; + redpos[wcsprm->cubeface] = 4.0; + } + else if (redpos[wcs->lng] > 1.5*offset) + { + redpos[wcs->lng] -= 2.0*offset; + redpos[wcsprm->cubeface] = 3.0; + } + else if (redpos[wcs->lng] > 0.5*offset) + { + redpos[wcs->lng] -= offset; + redpos[wcsprm->cubeface] = 2.0; + } + else + redpos[wcsprm->cubeface] = 1.0; + } + +/* Apply forward linear transformation */ + if (linfwd(redpos, wcs->lin, pixpos)) + return RETURN_ERROR; + + return RETURN_OK; + } + + +/******* raw_to_red ********************************************************** +PROTO int raw_to_red(wcsstruct *, double *, double *) +PURPOSE Convert raw (pixel) coordinates to reduced WCS coordinates. +INPUT WCS structure, + Pointer to the array of input (pixel) coordinates, + Pointer to the array of output (reduced) coordinates. +OUTPUT RETURN_OK if mapping successful, RETURN_ERROR otherwise. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 23/10/2003 + ***/ +int raw_to_red(wcsstruct *wcs, double *pixpos, double *redpos) + + { + struct wcsprm *wcsprm; + double offset; + int face; + + wcsprm = wcs->wcsprm; +/* Initialize if required */ + if (wcsprm && wcsprm->flag != WCSSET) + { + if (wcsset(wcs->naxis, (const char(*)[9])wcs->ctype, wcsprm)) + return RETURN_ERROR; + } + +/* Apply reverse linear transformation */ + if (linrev(pixpos, wcs->lin, redpos)) + return RETURN_ERROR; + + if (wcsprm && wcsprm->flag != 999 && wcsprm->cubeface != -1) + { +/*-- Do we have a CUBEFACE axis? */ + face = (int)(redpos[wcsprm->cubeface] + 0.5); + if (fabs(redpos[wcsprm->cubeface]-face) > 1e-10) + return RETURN_ERROR; + +/*-- Separation between faces. */ + offset = (wcs->prj->r0 == 0.0 ? 90.0 : wcs->prj->r0*PI/2.0); +/*-- Lay out faces in a plane. */ + switch (face) + { + case 0: + redpos[wcs->lat] += offset; + break; + case 1: + break; + case 2: + redpos[wcs->lng] += offset; + break; + case 3: + redpos[wcs->lng] += offset*2; + break; + case 4: + redpos[wcs->lng] += offset*3; + break; + case 5: + redpos[wcs->lat] -= offset; + break; + default: + return RETURN_ERROR; + } + } + + return RETURN_OK; + } + + +/******* wcs_dist *********************************************************** +PROTO double wcs_dist(wcsstruct *wcs, double *wcspos1, double *wcspos2) +PURPOSE Compute the angular distance between 2 points on the sky. +INPUT WCS structure, + Pointer to the first array of world coordinates, + Pointer to the second array of world coordinates. +OUTPUT Angular distance (in degrees) between points. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 24/07/2002 + ***/ +double wcs_dist(wcsstruct *wcs, double *wcspos1, double *wcspos2) + + { + double d, dp; + int i, lng, lat; + + lng = wcs->lng; + lat = wcs->lat; + if (lat!=lng) + { +/*-- We are operating in angular coordinates */ + d = sin(wcspos1[lat]*DEG)*sin(wcspos2[lat]*DEG) + + cos(wcspos1[lat]*DEG)*cos(wcspos2[lat]*DEG) + *cos((wcspos1[lng]-wcspos2[lng])*DEG); + return d>-1.0? (d<1.0 ? acos(d)/DEG : 0.0) : 180.0; + } + else + { + d = 0.0; + for (i=0; inaxis; i++) + { + dp = wcspos1[i] - wcspos2[i]; + d += dp*dp; + } + return sqrt(d); + } + } + + +/******* wcs_scale *********************************************************** +PROTO double wcs_scale(wcsstruct *wcs, double *pixpos) +PURPOSE Compute the sky area equivalent to a local pixel. +INPUT WCS structure, + Pointer to the array of local raw coordinates, +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 03/01/2008 + ***/ +double wcs_scale(wcsstruct *wcs, double *pixpos) + + { + double wcspos[NAXIS], wcspos1[NAXIS], wcspos2[NAXIS], pixpos2[NAXIS]; + double dpos1,dpos2; + int lng, lat; + + if (raw_to_wcs(wcs, pixpos, wcspos)) + return 0.0; + + lng = wcs->lng; + lat = wcs->lat; + if (lng == lat) + { + lng = 0; + lat = 1; + } + +/* Compute pixel scale */ + pixpos2[lng] = pixpos[lng] + 1.0; + pixpos2[lat] = pixpos[lat]; + if (raw_to_wcs(wcs, pixpos2, wcspos1)) + return 0.0; + pixpos2[lng] -= 1.0; + pixpos2[lat] += 1.0; + if (raw_to_wcs(wcs, pixpos2, wcspos2)) + return 0.0; + dpos1 = wcspos1[lng]-wcspos[lng]; + dpos2 = wcspos2[lng]-wcspos[lng]; + if (wcs->lng!=wcs->lat) + { + if (dpos1>180.0) + dpos1 -= 360.0; + else if (dpos1<-180.0) + dpos1 += 360.0; + if (dpos2>180.0) + dpos2 -= 360.0; + else if (dpos2<-180.0) + dpos2 += 360.0; + return fabs((dpos1*(wcspos2[lat]-wcspos[lat]) + -(wcspos1[lat]-wcspos[lat])*dpos2)*cos(wcspos[lat]*DEG)); + } + else + return fabs((dpos1*(wcspos2[lat]-wcspos[lat]) + -(wcspos1[lat]-wcspos[lat])*dpos2)); + } + + +/****** wcs jacobian ********************************************************* +PROTO double wcs_jacobian(wcsstruct *wcs, double *pixpos, double *jacob) +PURPOSE Compute the local Jacobian matrice of the astrometric deprojection. +INPUT WCS structure, + Pointer to the array of local raw coordinates, + Pointer to the jacobian array (output). +OUTPUT Determinant over spatial coordinates (=pixel area), or -1.0 if mapping + was unsuccesful. +NOTES Memory must have been allocated (naxis*naxis*sizeof(double)) for the + Jacobian array. +AUTHOR E. Bertin (IAP) +VERSION 11/10/2007 + ***/ +double wcs_jacobian(wcsstruct *wcs, double *pixpos, double *jacob) + { + double pixpos0[NAXIS], wcspos0[NAXIS], wcspos[NAXIS], + dpos; + int i,j, lng,lat,naxis; + + lng = wcs->lng; + lat = wcs->lat; + naxis = wcs->naxis; + for (i=0; i180.0) + dpos -= 360.0; + else if (dpos<-180.0) + dpos += 360.0; + dpos *= cos(wcspos0[lat]*DEG); + } + jacob[j*naxis+i] = dpos; + } + } + + if (lng==lat) + { + lng = 0; + lat = 1; + } + + return fabs(jacob[lng+naxis*lng]*jacob[lat+naxis*lat] + - jacob[lat+naxis*lng]*jacob[lng+naxis*lat]); + } + + +/******* wcs_chirality ******************************************************* +PROTO int wcs_chirality(wcsstruct *wcs) +PURPOSE Compute the chirality of a WCS projection. +INPUT WCS structure. +OUTPUT +1 if determinant of matrix is positive, -1 if negative, 0 if null. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 26/09/2006 + ***/ +int wcs_chirality(wcsstruct *wcs) + + { + double a; + int lng,lat, naxis; + + lng = wcs->lng; + lat = wcs->lat; + naxis = wcs->naxis; + if (lng==lat && naxis>=2) + { + lng = 0; + lat = 1; + } + + a = wcs->cd[lng*naxis+lng]*wcs->cd[lat*naxis+lat] + - wcs->cd[lng*naxis+lat]*wcs->cd[lat*naxis+lng]; + return a>TINY? 1 : (a<-TINY? -1 : 0); + } + + +/****** precess_wcs ********************************************************** +PROTO void precess_wcs(wcsstruct *wcs, double yearin, double yearout) +PURPOSE Precess the content of a WCS structure according to the equinox. +INPUT WCS structure, + Input year, + Output year. +OUTPUT -. +NOTES Epoch for coordinates should be J2000 (FK5 system). +AUTHOR E. Bertin (IAP) +VERSION 04/01/2008 + ***/ +void precess_wcs(wcsstruct *wcs, double yearin, double yearout) + + { + double crval[NAXIS],a[NAXIS*NAXIS],b[NAXIS*NAXIS], + *c,*at, + val, cas, sas, angle, dalpha; + int i,j,k, lng,lat, naxis; + + lng = wcs->lng; + lat = wcs->lat; + if (lat==lng || yearin==yearout) + return; + naxis = wcs->naxis; +/* Precess to year out */ + precess(yearin, wcs->crval[lng], wcs->crval[lat], yearout, + &crval[lng], &crval[lat]); + + dalpha = (crval[lng] - wcs->crval[lng])*DEG; + +/* Compute difference angle with the north axis between start and end */ + angle = (dalpha!=0.0 && (crval[lat] - wcs->crval[lat])*DEG != 0.0) ? + 180.0 - (atan2(sin(dalpha), + cos(crval[lat]*DEG)*tan(wcs->crval[lat]*DEG) + - sin(crval[lat]*DEG)*cos(dalpha)) + + atan2(sin(dalpha), + cos(wcs->crval[lat]*DEG)*tan(crval[lat]*DEG) + - sin(wcs->crval[lat]*DEG)*cos(dalpha)))/DEG + : 0.0; + +/* A = C*B */ + c = wcs->cd; +/* The B matrix is made of 2 numbers */ + + cas = cos(angle*DEG); + sas = sin(-angle*DEG); + for (i=0; icrval[lng] = crval[lng]; + wcs->crval[lat] = crval[lat]; + wcs->equinox = yearout; + +/* Initialize other WCS structures */ + init_wcs(wcs); +/* Find the range of coordinates */ + range_wcs(wcs); +/* Invert projection corrections */ + invert_wcs(wcs); + + return; + } + + +/********************************* precess ***********************************/ +/* +precess equatorial coordinates according to the equinox (from Ephemerides du +Bureau des Longitudes 1992). Epoch for coordinates should be J2000 +(FK5 system). +*/ +void precess(double yearin, double alphain, double deltain, + double yearout, double *alphaout, double *deltaout) + + { + double dzeta,theta,z, t1,t1t1, t2,t2t2,t2t2t2, + cddsadz, cddcadz, cdd, sdd, adz, cdin,sdin,ct,st,caindz; + + alphain *= DEG; + deltain *= DEG; + + t1 = (yearin - 2000.0)/1000.0; + t2 = (yearout - yearin)/1000.0; + t1t1 = t1*t1; + t2t2t2 = (t2t2 = t2*t2)*t2; + theta = (97171.735e-06 - 413.691e-06*t1 - 1.052e-06 * t1t1) * t2 + + (-206.846e-06 - 1.052e-06*t1) * t2t2 - 202.812e-06 * t2t2t2; + dzeta = (111808.609e-06 + 677.071e-06*t1 - 0.674e-06 * t1t1) * t2 + + (146.356e-06 - 1.673e-06*t1) * t2t2 + 87.257e-06 * t2t2t2; + z = (111808.609e-06 +677.071e-06*t1 - 0.674e-06 * t1t1) * t2 + + (530.716e-06 + 0.320e-06*t1) * t2t2 + 88.251e-06 * t2t2t2; + cddsadz = (cdin=cos(deltain)) * sin(alphain+dzeta); + cddcadz = -(sdin=sin(deltain))*(st=sin(theta)) + +cdin*(ct=cos(theta))*(caindz=cos(alphain+dzeta)); + sdd = sdin*ct + cdin*st*caindz; + cdd = cos(*deltaout = asin(sdd)); + adz = asin(cddsadz/cdd); + if (cddcadz<0.0) + adz = PI - adz; + if (adz<0.0) + adz += 2.0*PI; + adz += z; + *alphaout = adz/DEG; + *deltaout /= DEG; + + return; + } + + +/********************************* b2j ***********************************/ +/* +conver equatorial coordinates from equinox and epoch B1950 to equinox and +epoch J2000 for extragalactic sources (from Aoki et al. 1983). +*/ +void b2j(double yearobs, double alphain, double deltain, + double *alphaout, double *deltaout) + { + int i,j; + double a[3] = {-1.62557e-6, -0.31919e-6, -0.13843e-6}, + ap[3] = {1.245e-3, -1.580e-3, -0.659e-3}, + m[6][6] = { + { 0.9999256782, -0.0111820611, -0.0048579477, + 0.00000242395018, -0.00000002710663, -0.00000001177656}, + { 0.0111820610, 0.9999374784, -0.0000271765, + 0.00000002710663, 0.00000242397878, -0.00000000006587}, + { 0.0048579479, -0.0000271474, 0.9999881997, + 0.00000001177656, -0.00000000006582, 0.00000242410173}, + {-0.000551, -0.238565, 0.435739, + 0.99994704, -0.01118251, -0.00485767}, + { 0.238514, -0.002662, -0.008541, + 0.01118251, 0.99995883, -0.00002718}, + {-0.435623, 0.012254, 0.002117, + 0.00485767, -0.00002714, 1.00000956}}, + a1[3], r[3], ro[3], r1[3], r2[3], v1[3], v[3]; + double cai, sai, cdi, sdi, dotp, rmod, alpha, delta, + t1 = (yearobs - 1950.0)/100.0; + + alphain *= PI/180.0; + deltain *= PI/180.0; + cai = cos(alphain); + sai = sin(alphain); + cdi = cos(deltain); + sdi = sin(deltain); + ro[0] = cdi*cai; + ro[1] = cdi*sai; + ro[2] = sdi; + dotp = 0.0; + for (i=0; i<3; i++) + { + a1[i] = a[i]+ap[i]*ARCSEC*t1; + dotp += a1[i]*ro[i]; + } + for (i=0; i<3; i++) + { + r1[i] = ro[i] - a1[i] + dotp*ro[i]; + r[i] = v[i] = v1[i] = 0.0; + } + for (j=0; j<6; j++) + for (i=0; i<6; i++) + { + if (j<3) + r[j] += m[j][i]*(i<3?r1[i]:v1[i-3]); + else + v[j-3] += m[j][i]*(i<3?r1[i]:v1[i-3]); + } + rmod = 0.0; + for (i=0; i<3; i++) + { + r2[i] = r[i]+v[i]*ARCSEC*(t1-0.5); + rmod += r2[i]*r2[i]; + } + rmod = sqrt(rmod); + delta = asin(r2[2]/rmod); + alpha = acos(r2[0]/cos(delta)/rmod); + if (r2[1]<0) + alpha = 2*PI - alpha; + *alphaout = alpha*180.0/PI; + *deltaout = delta*180.0/PI; + + return; + } + + +/*********************************** j2b *************************************/ +/* +conver equatorial coordinates from equinox and epoch J2000 to equinox and +epoch B1950 for extragalactic sources (from Aoki et al. 1983, after +inversion of their matrix and some custom arrangements). +*/ +void j2b(double yearobs, double alphain, double deltain, + double *alphaout, double *deltaout) + { + int i,j; + double a[3] = {-1.62557e-6, -0.31919e-6, -0.13843e-6}, + ap[3] = {1.245e-3, -1.580e-3, -0.659e-3}, + m[6][6] = { + { 0.9999256794678425, 0.01118148281196562, 0.004859003848996022, + -2.423898417033081e-06,-2.710547600126671e-08,-1.177738063266745e-08}, + {-0.01118148272969232, 0.9999374849247641, -2.717708936468247e-05, + 2.710547578707874e-08,-2.423927042585208e-06, 6.588254898401055e-11}, + {-0.00485900399622881, -2.715579322970546e-05, 0.999988194643078, + 1.177738102358923e-08, 6.582788892816657e-11,-2.424049920613325e-06}, + {-0.0005508458576414713, 0.2384844384742432, -0.4356144527773499, + 0.9999043171308133, 0.01118145410120206, 0.004858518651645554}, + {-0.2385354433560954, -0.002664266996872802, 0.01225282765749546, + -0.01118145417187502, 0.9999161290795875, -2.717034576263522e-05}, + { 0.4357269351676567, -0.008536768476441086, 0.002113420799663768, + -0.004858518477064975, -2.715994547222661e-05, 0.9999668385070383}}, + a1[3], r[3], ro[3], r1[3], r2[3], v1[3], v[3]; + double cai, sai, cdi, sdi, dotp, rmod, alpha, delta, t1; + +/* Convert Julian years from J2000.0 to tropic centuries from B1950.0 */ + t1 = ((yearobs - 2000.0) + (MJD2000 - MJD1950)/365.25)*JU2TROP/100.0; + alphain *= DEG; + deltain *= DEG; + cai = cos(alphain); + sai = sin(alphain); + cdi = cos(deltain); + sdi = sin(deltain); + r[0] = cdi*cai; + r[1] = cdi*sai; + r[2] = sdi; + for (i=0; i<3; i++) + v[i] = r2[i] = v1[i] = 0.0; + for (j=0; j<6; j++) + for (i=0; i<6; i++) + if (j<3) + r2[j] += m[j][i]*(i<3?r[i]:v[i-3]); + else + v1[j-3] += m[j][i]*(i<3?r[i]:v[i-3]); + + for (i=0; i<3; i++) + r1[i] = r2[i]+v1[i]*ARCSEC*t1; + + dotp = 0.0; + for (i=0; i<3; i++) + { + a1[i] = a[i]+ap[i]*ARCSEC*t1; + dotp += a1[i]*(r1[i]+a1[i]); + } + dotp = 2.0/(sqrt(1+4.0*dotp)+1.0); + rmod = 0.0; + for (i=0; i<3; i++) + { + ro[i] = dotp*(r1[i]+a1[i]); + rmod += ro[i]*ro[i]; + } + rmod = sqrt(rmod); + delta = asin(ro[2]/rmod); + alpha = acos(ro[0]/cos(delta)/rmod); + if (ro[1]<0) + alpha = 2.0*PI - alpha; + *alphaout = alpha/DEG; + *deltaout = delta/DEG; + + return; + } + + +/******************************** degtosexal *********************************/ +/* +Convert degrees to hh mm ss.xx alpha coordinates. +*/ +char *degtosexal(double alpha, char *str) + + { + int hh, mm; + double ss; + + if (alpha>=0.0 && alpha <360.0) + { + hh = (int)(alpha/15.0); + mm = (int)(60.0*(alpha/15.0 - hh)); + ss = 60.0*(60.0*(alpha/15.0 - hh) - mm); + } + else + hh = mm = ss = 0.0; + sprintf(str,"%02d:%02d:%05.2f", hh, mm, ss); + + return str; + } + + +/******************************** degtosexde *********************************/ +/* +Convert degrees to dd dm ds.x delta coordinates. +*/ +char *degtosexde(double delta, char *str) + + { + char sign; + double ds; + int dd, dm; + + sign = delta<0.0?'-':'+'; + delta = fabs(delta); + if (delta>=-90.0 && delta <=90.0) + { + dd = (int)delta; + dm = (int)(60.0*(delta - dd)); + ds = 60.0*fabs(60.0*(delta - dd) - dm); + } + else + dd = dm = ds = 0.0; + sprintf(str,"%c%02d:%02d:%04.1f", sign, dd, dm, ds); + return str; + } + + +/******************************** sextodegal *********************************/ +/* +Convert hh mm ss.xxx alpha coordinates to degrees. +*/ +double sextodegal(char *hms) + { + double val; + char *ptr; + + val = atof(strtok_r(hms, ": \t", &ptr))*15.0; /* Hours */ + val += atof(strtok_r(NULL, ": \t", &ptr))/4.0; /* Minutes */ + val += atof(strtok_r(NULL, ": \t", &ptr))/240.0; /* Seconds */ + + return val; + } + + +/******************************** sextodegde *********************************/ +/* +Convert dd dm ds.xxx delta coordinates to degrees. +*/ +double sextodegde(char *dms) + { + double val, sgn; + char *str, *ptr; + + str = strtok_r(dms, ": \t", &ptr); + sgn = (strchr(str, '-') ? -1.0:1.0); + val = atof(dms); /* Degrees */ + val += atof(strtok_r(NULL, ": \t", &ptr))*sgn/60.0; /* Minutes */ + val += atof(strtok_r(NULL, ": \t", &ptr))*sgn/3600.0; /* Seconds */ + + return val; + } + + +/******************************** fmod_0_p360 *******************************/ +/* +Fold input angle in the [0,+360[ domain. +*/ +double fmod_0_p360(double angle) + { + return angle>0.0? fmod(angle,360.0) : fmod(angle,360.0)+360.0; + } + + +/******************************** fmod_m90_p90 *******************************/ +/* +Fold input angle in the [-90,+90[ domain. +*/ +double fmod_m90_p90(double angle) + { + return angle>0.0? fmod(angle+90.0,180.0)-90.0 : fmod(angle-90.0,180.0)+90.0; + } + + diff --git a/src/fitswcs.h b/src/fitswcs.h new file mode 100644 index 0000000000000000000000000000000000000000..51a78c41ea09d17a06473847e1e5dbdc3ffed396 --- /dev/null +++ b/src/fitswcs.h @@ -0,0 +1,146 @@ +/* + fitswcs.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: LDACTools+ +* +* Author: E.BERTIN (IAP) +* +* Contents: Include file for fitswcs.c +* +* Last modify: 26/04/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifndef _FITSWCS_H_ +#define _FITSWCS_H_ + +/*-------------------------------- macros -----------------------------------*/ + +/*----------------------------- Internal constants --------------------------*/ + +#define NAXIS 2 /* Max number of FITS axes */ + +#define DEG (PI/180.0) /* 1 deg in radians */ +#define ARCMIN (DEG/60.0) /* 1 arcsec in radians */ +#define ARCSEC (DEG/3600.0) /* 1 arcsec in radians */ +#define MAS (ARCSEC/1000.0) /* 1 mas in radians */ +#define MJD2000 51544.50000 /* Modified Julian date for J2000.0 */ +#define MJD1950 33281.92346 /* Modified Julian date for B1950.0 */ +#define JU2TROP 1.0000214 /* 1 Julian century in tropical units*/ +#define WCS_NOCOORD 1e31 /* Code for non-existing coordinates */ + +#define WCS_NGRIDPOINTS 12 /* Number of WCS grid points / axis */ +#define WCS_NGRIDPOINTS2 (WCS_NGRIDPOINTS*WCS_NGRIDPOINTS) +#define WCS_INVMAXDEG 9 /* Maximum inversion polynom degree */ +#define WCS_INVACCURACY 0.04 /* Maximum inversion error (pixels) */ +#define WCS_NRANGEPOINTS 32 /* Number of WCS range points / axis */ + +/*-------------------------------- typedefs ---------------------------------*/ + +typedef enum {CELSYS_NATIVE, CELSYS_PIXEL, CELSYS_EQUATORIAL, CELSYS_GALACTIC, + CELSYS_ECLIPTIC, CELSYS_SUPERGALACTIC} celsysenum; + +/*------------------------------- structures --------------------------------*/ + +typedef struct wcs + { + int naxis; /* Number of image axes */ + int naxisn[NAXIS]; /* FITS NAXISx parameters */ + char ctype[NAXIS][9]; /* FITS CTYPE strings */ + char cunit[NAXIS][32]; /* FITS CUNIT strings */ + double crval[NAXIS]; /* FITS CRVAL parameters */ + double cdelt[NAXIS]; /* FITS CDELT parameters */ + double crpix[NAXIS]; /* FITS CRPIX parameters */ + double crder[NAXIS]; /* FITS CRDER parameters */ + double csyer[NAXIS]; /* FITS CSYER parameters */ + double cd[NAXIS*NAXIS]; /* FITS CD matrix */ + double *projp; /* FITS PV/PROJP mapping parameters */ + int nprojp; /* number of useful projp parameters */ + double longpole,latpole; /* FITS LONGPOLE and LATPOLE */ + double wcsmin[NAXIS]; /* minimum values of WCS coords */ + double wcsmax[NAXIS]; /* maximum values of WCS coords */ + double wcsscale[NAXIS]; /* typical pixel scale at center */ + double wcsscalepos[NAXIS]; /* WCS coordinates of scaling point */ + double wcsmaxradius; /* Maximum distance to wcsscalepos */ + int outmin[NAXIS]; /* minimum output pixel coordinate */ + int outmax[NAXIS]; /* maximum output pixel coordinate */ + int lat,lng; /* longitude and latitude axes # */ + double r0; /* projection "radius" */ + double lindet; /* Determinant of the local matrix */ + int chirality; /* Chirality of the CD matrix */ + double pixscale; /* (Local) pixel scale */ + double ap2000,dp2000; /* J2000 coordinates of pole */ + double ap1950,dp1950; /* B1950 coordinates of pole */ + double obsdate; /* Date of observations */ + double equinox; /* Equinox of observations */ + double epoch; /* Epoch of observations (deprec.) */ + enum {RDSYS_ICRS, RDSYS_FK5, RDSYS_FK4, RDSYS_FK4_NO_E, RDSYS_GAPPT} + radecsys; /* FITS RADECSYS reference frame */ + celsysenum celsys; /* Celestial coordinate system */ + double celsysmat[4]; /* Equ. <=> Cel. system parameters */ + int celsysconvflag; /* Equ. <=> Cel. conversion needed? */ + struct wcsprm *wcsprm; /* WCSLIB's wcsprm structure */ + struct linprm *lin; /* WCSLIB's linprm structure */ + struct celprm *cel; /* WCSLIB's celprm structure */ + struct prjprm *prj; /* WCSLIB's prjprm structure */ + struct tnxaxis *tnx_latcor; /* IRAF's TNX latitude corrections */ + struct tnxaxis *tnx_lngcor; /* IRAF's TNX longitude corrections */ + struct poly *inv_x; /* Proj. correction polynom in x */ + struct poly *inv_y; /* Proj. correction polynom in y */ + } wcsstruct; + +/*------------------------------- functions ---------------------------------*/ + +extern wcsstruct *create_wcs(char **ctype, double *crval, double *crpix, + double *cdelt, int *naxisn, int naxis), + *copy_wcs(wcsstruct *wcsin), + *read_wcs(tabstruct *tab); + +extern double fmod_0_p360(double angle), + fmod_m90_p90(double angle), + sextodegal(char *hms), + sextodegde(char *dms), + wcs_dist(wcsstruct *wcs, + double *wcspos1, double *wcspos2), + wcs_jacobian(wcsstruct *wcs, double *pixpos, + double *jacob), + wcs_scale(wcsstruct *wcs, double *pixpos); + +extern int celsys_to_eq(wcsstruct *wcs, double *wcspos), + eq_to_celsys(wcsstruct *wcs, double *wcspos), + raw_to_red(wcsstruct *wcs, + double *pixpos, double *redpos), + raw_to_wcs(wcsstruct *wcs, + double *pixpos, double *wcspos), + reaxe_wcs(wcsstruct *wcs, int lng, int lat), + red_to_raw(wcsstruct *wcs, + double *redpos, double *pixpos), + wcs_chirality(wcsstruct *wcs), + wcs_supproj(char *name), + wcs_to_raw(wcsstruct *wcs, + double *wcspos, double *pixpos); + +extern char *degtosexal(double alpha, char *str), + *degtosexde(double delta, char *str); + +extern void b2j(double yearobs, double alphain, double deltain, + double *alphaout, double *deltaout), + end_wcs(wcsstruct *wcs), + init_wcs(wcsstruct *wcs), + init_wcscelsys(wcsstruct *wcs), + invert_wcs(wcsstruct *wcs), + frame_wcs(wcsstruct *wcsin, wcsstruct *wcsout), + j2b(double yearobs, double alphain, double deltain, + double *alphaout, double *deltaout), + precess(double yearin, double alphain, double deltain, + double yearout, + double *alphaout, double *deltaout), + precess_wcs(wcsstruct *wcs, double yearin, + double yearout), + range_wcs(wcsstruct *wcs), + write_wcs(tabstruct *tab, wcsstruct *wcs); + +#endif diff --git a/src/globals.h b/src/globals.h index e9d62f0827aef27755eda300366b332c8a326038..99febe213801e6431cbb4e5cd79eff344d936660 100644 --- a/src/globals.h +++ b/src/globals.h @@ -9,7 +9,7 @@ * * Contents: global declarations. * -* Last modify: 14/07/2006 +* Last modify: 11/05/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -27,13 +27,16 @@ float ctg[37], stg[37]; char gstr[MAXCHAR]; /*------------------------------- functions ---------------------------------*/ -extern void allocparcelout(void), +extern void alloccatparams(void), + allocparcelout(void), analyse(picstruct *, picstruct *, int, objliststruct *), blankit(char *, int), endcat(char *error), reendcat(void), + changecatparamarrays(char *keyword, int *axisn, int naxis), closecheck(void), copydata(picstruct *, int, int), + dumpparams(void), endfield(picstruct *), endobject(picstruct *, picstruct *, picstruct *, picstruct *, int, objliststruct *), diff --git a/src/growth.c b/src/growth.c index 04798410b5c7bd553cde9972a9a03bb777db1a32..cdd281eb80111fab576b9c6bf14d9cc2995ea316 100644 --- a/src/growth.c +++ b/src/growth.c @@ -9,7 +9,7 @@ * * Contents: Make growth curves. * -* Last modify: 15/02/2005 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -103,7 +103,7 @@ void makeavergrowth(picstruct *field, picstruct *wfield, objstruct *obj) pflag = (prefs.detect_type==PHOTO)? 1:0; corrflag = (prefs.mask_type==MASK_CORRECT); var = backnoise2 = field->backsig*field->backsig; - gain = prefs.gain; + gain = field->gain; /* Integration radius */ rlim = GROWTH_NSIG*obj->a; diff --git a/src/ldactoasc.c b/src/ldactoasc.c new file mode 100644 index 0000000000000000000000000000000000000000..b5753b547da9a4771b86a54f502409440b395f42 --- /dev/null +++ b/src/ldactoasc.c @@ -0,0 +1,103 @@ +/* + ldactoasc.c + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: LDACtoASC +* +* Author: E.BERTIN (IAP) +* +* Contents: Convert LDAC binary format to ASCII. +* +* Last modify: 19/12/2007 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include "ldactoasc.h" +#include "fits/fitscat.h" + +#define SYNTAX "ldactoasc catalog\n" +extern const char notokstr[]; + +/********************************** main ************************************/ +int main(int argc, char *argv[]) + + { + catstruct *cat; + tabstruct *tab; + unsigned short ashort=1; + char catname[MAXCHAR]; + int a, t, opt,opt2, flag; + + if (argc<2) + { + fprintf(OUTPUT, "\n %s Version %s (%s)\n", + BANNER, MYVERSION, DATE); + fprintf(OUTPUT, "\nFor information, please contact: %s\n", COPYRIGHT); + error(EXIT_SUCCESS, "SYNTAX: ", SYNTAX); + } + +/* Test if byteswapping will be needed */ + bswapflag = *((char *)&ashort); + +/* Default parameters */ + for (a=1; atab; + for (t=cat->ntab; t--; tab=tab->nexttab) + if (!strcmp("LDAC_OBJECTS", tab->extname) + || !strcmp("OBJECTS", tab->extname)) + { + show_keys(tab, NULL, NULL, 0, NULL, stdout, 1, flag, 0, SHOW_ASCII); + flag = 0; + } + free_cat(&cat, 1); + } + else + error(EXIT_FAILURE,"Cannot open ",catname); + + return EXIT_SUCCESS; + } + diff --git a/src/ldactoasc.h b/src/ldactoasc.h new file mode 100644 index 0000000000000000000000000000000000000000..c408e6f263268194441f7858c3dffd27ce449a41 --- /dev/null +++ b/src/ldactoasc.h @@ -0,0 +1,146 @@ + /* + ldactoasc.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: LDACtoASC +* +* Author: E.BERTIN (IAP) +* +* Contents: global definitions. +* +* Last modify: 04/06/2007 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +/* Check if we are using a configure script here */ +#ifndef HAVE_CONFIG_H +#define VERSION "1.x" +#define DATE "2007-06-04" +#define THREADS_NMAX 16 /* max. number of threads */ +#endif + +/*------------------------ what, who, when and where ------------------------*/ + +#define BANNER "LDACtoASC" +#ifdef USE_THREADS +#define MYVERSION VERSION "-MP" +#else +#define MYVERSION VERSION +#endif +#define COPYRIGHT "Emmanuel BERTIN " +#define WEBSITE "http://terapix.iap.fr/soft/sextractor/" +#define INSTITUTE "TERAPIX team at IAP http://terapix.iap.fr" + +/*----------------------------- Physical constants --------------------------*/ + +#ifndef PI +#define PI 3.1415926535898 +#endif + +/*----------------------------- Internal constants --------------------------*/ + +#define BIG 1e+30 /* a huge number */ +#define TINY (1.0/BIG) /* a small number */ +#define OUTPUT stdout /* where all msgs are sent */ +#define MAXCHAR 512 /* max. number of characters */ +#define MAXFILE 32768 /* max number of input files */ + +/*------------ Set defines according to machine's specificities -------------*/ + +#if 0 +#define NO_ENVVAR +#endif + +/*--------------------- in case of missing constants ------------------------*/ + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif + +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif +#ifndef EXIT_FAILURE +#define EXIT_FAILURE -1 +#endif + +/*---------------------------- return messages ------------------------------*/ + +#define RETURN_OK 0 +#define RETURN_ERROR (-1) +#define RETURN_FATAL_ERROR (-2) + +/*------------------------------- Other Macros ------------------------------*/ + +#define DEXP(x) exp(2.30258509299*(x)) /* 10^x */ + +#define QFREAD(ptr, size, afile, fname) \ + if (fread(ptr, (size_t)(size), (size_t)1, afile)!=1) \ + error(EXIT_FAILURE, "*Error* while reading ", fname) + +#define QFWRITE(ptr, size, afile, fname) \ + if (fwrite(ptr, (size_t)(size), (size_t)1, afile)!=1) \ + error(EXIT_FAILURE, "*Error* while writing ", fname) + +#define QFSEEK(afile, offset, pos, fname) \ + if (fseek(afile, (offset), pos)) \ + error(EXIT_FAILURE,"*Error*: file positioning failed in ", \ + fname) + +#define QFTELL(pos, afile, fname) \ + if ((pos=ftell(afile))==-1) \ + error(EXIT_FAILURE,"*Error*: file position unknown in ", \ + fname) + +#define QCALLOC(ptr, typ, nel) \ + {if (!(ptr = (typ *)calloc((size_t)(nel),sizeof(typ)))) \ + error(EXIT_FAILURE, "Not enough memory for ", \ + #ptr " (" #nel " elements) !");;} + +#define QMALLOC(ptr, typ, nel) \ + {if (!(ptr = (typ *)malloc((size_t)(nel)*sizeof(typ)))) \ + error(EXIT_FAILURE, "Not enough memory for ", \ + #ptr " (" #nel " elements) !");;} + +#define QREALLOC(ptr, typ, nel) \ + {if (!(ptr = (typ *)realloc(ptr, (size_t)(nel)*sizeof(typ)))) \ + error(EXIT_FAILURE, "Not enough memory for ", \ + #ptr " (" #nel " elements) !");;} + +#define QMEMCPY(ptrin, ptrout, typ, nel) \ + {if (ptrin) \ + {if (!(ptrout = (typ *)malloc((size_t)(nel)*sizeof(typ)))) \ + error(EXIT_FAILURE, "Not enough memory for ", \ + #ptrout " (" #nel " elements) !"); \ + memcpy(ptrout, ptrin, (size_t)(nel)*sizeof(typ));};;} + +#define QPOPEN(file, cmdline, flag) \ + {if (!(file=popen(cmdline, flag))) \ + error(EXIT_FAILURE, "*Error*: cannot execute ", cmdline);;} + +#define RINT(x) (int)(floor(x+0.5)) + +#define NPRINTF if (prefs.verbose_type == NORM) fprintf + +#define NFPRINTF(w,x) {if (prefs.verbose_type == NORM) \ + fprintf(w, "\33[1M> %s\n\33[1A",x);} + +#define FPRINTF if (prefs.verbose_type == FULL) fprintf + +#define QPRINTF if (prefs.verbose_type != QUIET) fprintf + +#define QIPRINTF(w,x) {if (prefs.verbose_type == NORM) \ + fprintf(w, "\33[7m%s\33[0m\n", x); \ + else if (prefs.verbose_type == LOG) \ + fprintf(w, "%s\n", x);} + +#define QBPRINTF(w,x) {if (prefs.verbose_type == NORM) \ + fprintf(w, "\33[01;31m%s\33[0m\n", x); \ + else if (prefs.verbose_type == LOG) \ + fprintf(w, "%s\n", x);} + diff --git a/src/levmar/Axb.c b/src/levmar/Axb.c new file mode 100644 index 0000000000000000000000000000000000000000..a2b43fb8c2c6bf9ade97d909ad17e4104d03fab6 --- /dev/null +++ b/src/levmar/Axb.c @@ -0,0 +1,74 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Solution of linear systems involved in the Levenberg - Marquardt +// minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +/******************************************************************************** + * LAPACK-based implementations for various linear system solvers. The same core + * code is used with appropriate #defines to derive single and double precision + * solver versions, see also Axb_core.c + ********************************************************************************/ + +#include +#include +#include + +#include "lm.h" +#include "misc.h" + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d +#define LM_CNST(x) (x) +#ifndef HAVE_LAPACK +#include +#define LM_REAL_EPSILON DBL_EPSILON +#endif + +#include "Axb_core.c" + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_CNST +#undef LM_REAL_EPSILON +#endif /* LM_DBL_PREC */ + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution +#ifndef HAVE_LAPACK +#define LM_REAL_EPSILON FLT_EPSILON +#endif + +#include "Axb_core.c" + +#undef LM_REAL +#undef LM_PREFIX +#undef __SUBCNST +#undef LM_CNST +#undef LM_REAL_EPSILON +#endif /* LM_SNGL_PREC */ diff --git a/src/levmar/Axb_core.c b/src/levmar/Axb_core.c new file mode 100644 index 0000000000000000000000000000000000000000..c29119674b86fd3efbaf303712b19b176b2fd4ae --- /dev/null +++ b/src/levmar/Axb_core.c @@ -0,0 +1,969 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Solution of linear systems involved in the Levenberg - Marquardt +// minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + + +/* Solvers for the linear systems Ax=b. Solvers should NOT modify their A & B arguments! */ + + +#ifndef LM_REAL // not included by Axb.c +#error This file should not be compiled directly! +#endif + +#ifdef LINSOLVERS_RETAIN_MEMORY +#define __STATIC__ static +#else +#define __STATIC__ // empty +#endif /* LINSOLVERS_RETAIN_MEMORY */ + +#ifdef HAVE_LAPACK + +/* prototypes of LAPACK routines */ + +#define GEQRF LM_ADD_PREFIX(geqrf_) +#define ORGQR LM_ADD_PREFIX(orgqr_) +#define TRTRS LM_ADD_PREFIX(trtrs_) +#define POTF2 LM_ADD_PREFIX(potf2_) +#define POTRF LM_ADD_PREFIX(potrf_) +#define GETRF LM_ADD_PREFIX(getrf_) +#define GETRS LM_ADD_PREFIX(getrs_) +#define GESVD LM_ADD_PREFIX(gesvd_) +#define GESDD LM_ADD_PREFIX(gesdd_) + +/* QR decomposition */ +extern int GEQRF(int *m, int *n, LM_REAL *a, int *lda, LM_REAL *tau, LM_REAL *work, int *lwork, int *info); +extern int ORGQR(int *m, int *n, int *k, LM_REAL *a, int *lda, LM_REAL *tau, LM_REAL *work, int *lwork, int *info); + +/* solution of triangular systems */ +extern int TRTRS(char *uplo, char *trans, char *diag, int *n, int *nrhs, LM_REAL *a, int *lda, LM_REAL *b, int *ldb, int *info); + +/* cholesky decomposition */ +extern int POTF2(char *uplo, int *n, LM_REAL *a, int *lda, int *info); +extern int POTRF(char *uplo, int *n, LM_REAL *a, int *lda, int *info); /* block version of dpotf2 */ + +/* LU decomposition and systems solution */ +extern int GETRF(int *m, int *n, LM_REAL *a, int *lda, int *ipiv, int *info); +extern int GETRS(char *trans, int *n, int *nrhs, LM_REAL *a, int *lda, int *ipiv, LM_REAL *b, int *ldb, int *info); + +/* Singular Value Decomposition (SVD) */ +extern int GESVD(char *jobu, char *jobvt, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, LM_REAL *u, int *ldu, + LM_REAL *vt, int *ldvt, LM_REAL *work, int *lwork, int *info); + +/* lapack 3.0 new SVD routine, faster than xgesvd(). + * In case that your version of LAPACK does not include them, use the above two older routines + */ +extern int GESDD(char *jobz, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, LM_REAL *u, int *ldu, LM_REAL *vt, int *ldvt, + LM_REAL *work, int *lwork, int *iwork, int *info); + +/* precision-specific definitions */ +#define AX_EQ_B_QR LM_ADD_PREFIX(Ax_eq_b_QR) +#define AX_EQ_B_QRLS LM_ADD_PREFIX(Ax_eq_b_QRLS) +#define AX_EQ_B_CHOL LM_ADD_PREFIX(Ax_eq_b_Chol) +#define AX_EQ_B_LU LM_ADD_PREFIX(Ax_eq_b_LU) +#define AX_EQ_B_SVD LM_ADD_PREFIX(Ax_eq_b_SVD) + +/* + * This function returns the solution of Ax = b + * + * The function is based on QR decomposition with explicit computation of Q: + * If A=Q R with Q orthogonal and R upper triangular, the linear system becomes + * Q R x = b or R x = Q^T b. + * The last equation can be solved directly. + * + * A is mxm, b is mx1 + * + * The function returns 0 in case of error, 1 if successfull + * + * This function is often called repetitively to solve problems of identical + * dimensions. To avoid repetitive malloc's and free's, allocated memory is + * retained between calls and free'd-malloc'ed when not of the appropriate size. + * A call with NULL as the first argument forces this memory to be released. + */ +int AX_EQ_B_QR(LM_REAL *A, LM_REAL *B, LM_REAL *x, int m) +{ +__STATIC__ LM_REAL *buf=NULL; +__STATIC__ int buf_sz=0; + +LM_REAL *a, *qtb, *tau, *r, *work; +int a_sz, qtb_sz, tau_sz, r_sz, tot_sz; +register int i, j; +int info, worksz, nrhs=1; +register LM_REAL sum; + + if(!A) +#ifdef LINSOLVERS_RETAIN_MEMORY + { + if(buf) free(buf); + buf_sz=0; + buf=NULL; + return 1; + } +#else + return 1; /* NOP */ +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + /* calculate required memory size */ + a_sz=m*m; + qtb_sz=m; + tau_sz=m; + r_sz=m*m; /* only the upper triangular part really needed */ + worksz=3*m; /* this is probably too much */ + tot_sz=a_sz + qtb_sz + tau_sz + r_sz + worksz; + +#ifdef LINSOLVERS_RETAIN_MEMORY + if(tot_sz>buf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_QR) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_QR) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + a=buf; + qtb=a+a_sz; + tau=qtb+qtb_sz; + r=tau+tau_sz; + work=r+r_sz; + + /* store A (column major!) into a */ + for(i=0; ibuf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_QRLS) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_QRLS) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + a=buf; + atb=a+a_sz; + tau=atb+atb_sz; + r=tau+tau_sz; + work=r+r_sz; + + /* store A (column major!) into a */ + for(i=0; ibuf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_CHOL) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_CHOL) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + a=buf; + b=a+a_sz; + + /* store A (column major!) into a anb B into b */ + for(i=0; ibuf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_LU) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_LU) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + ipiv=(int *)buf; + a=(LM_REAL *)(ipiv + ipiv_sz); + b=a+a_sz; + work=b+b_sz; + + /* store A (column major!) into a and B into b */ + for(i=0; ibuf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_SVD) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_SVD) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + iwork=(int *)buf; + a=(LM_REAL *)(iwork+iworksz); + /* store A (column major!) into a */ + for(i=0; i0.0; eps*=LM_CNST(0.5)) + ; + eps*=LM_CNST(2.0); + } + + /* compute the pseudoinverse in a */ + for(i=0; ithresh; rank++){ + one_over_denom=LM_CNST(1.0)/s[rank]; + + for(j=0; jbuf_sz){ /* insufficient memory, allocate a "big" memory chunk at once */ + if(buf) free(buf); /* free previously allocated memory */ + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_LU) "() failed!\n"); + exit(1); + } + } +#else + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", AX_EQ_B_LU) "() failed!\n"); + exit(1); + } +#endif /* LINSOLVERS_RETAIN_MEMORY */ + + ipiv=(int *)buf; + a=(LM_REAL *)(ipiv + ipiv_sz); + b=a+a_sz; + work=b+b_sz; + + /* store A (column major!) into a and B into b */ + for(i=0; i + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/src/levmar/Makefile.am b/src/levmar/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..00ec8b7b1a9d06c9444c7581cd4e4c7cb7ba3002 --- /dev/null +++ b/src/levmar/Makefile.am @@ -0,0 +1,10 @@ +# Makefile.am for the levmar Levenberg-Marquardt fitting library +# Copyright (C) 2008 Emmanuel Bertin. +# levmar code by Manolis Lourakis +# http://www.ics.forth.gr/~lourakis/levmar/ +noinst_LIBRARIES = liblevmar.a +liblevmar_a_SOURCES = Axb.c lmbc.c lm.c lmblec.c lmlec.c misc.c \ + compiler.h lm.h misc.h +EXTRA_liblevmar_a_SOURCES = Axb_core.c lmbc_core.c lm_core.c \ + lmblec_core.c lmlec_core.c misc_core.c \ + LICENSE README README.txt lmdemo.c diff --git a/src/levmar/Makefile.icc b/src/levmar/Makefile.icc new file mode 100644 index 0000000000000000000000000000000000000000..85bb0d50f0f3db36cfcca6e3659ea0a5e5776b1a --- /dev/null +++ b/src/levmar/Makefile.icc @@ -0,0 +1,58 @@ +# +# Unix/Linux Intel ICC Makefile for Levenberg - Marquardt minimization +# To be used with "make -f Makefile.icc" +# Under windows, use Makefile.vc for MSVC +# + +CC=icc #-w1 # warnings on +CXX=icpc +CONFIGFLAGS=#-ULINSOLVERS_RETAIN_MEMORY +ARCHFLAGS=-march=pentium4 -mcpu=pentium4 +CFLAGS=$(CONFIGFLAGS) $(ARCHFLAGS) -O3 -tpp7 -xW -ip -ipo -unroll #-g +LAPACKLIBS_PATH=/usr/local/lib # WHEN USING LAPACK, CHANGE THIS TO WHERE YOUR COMPILED LIBS ARE! +LDFLAGS=-L$(LAPACKLIBS_PATH) -L. +LIBOBJS=lm.o Axb.o misc.o lmlec.o lmbc.o lmblec.o +LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c lmblec.c +DEMOBJS=lmdemo.o +DEMOSRCS=lmdemo.c +AR=xiar +#RANLIB=ranlib +LAPACKLIBS=-llapack -lblas -lf2c # comment this line if you are not using LAPACK. + # On systems with a FORTRAN (not f2c'ed) version of LAPACK, -lf2c is + # not necessary; on others, -lf2c is equivalent to -lF77 -lI77 + +# The following works with the ATLAS updated lapack and Linux_P4SSE2 from http://www.netlib.org/atlas/archives/linux/ +#LAPACKLIBS=-L/usr/local/atlas/lib -llapack -lcblas -lf77blas -latlas -lf2c + +LIBS=$(LAPACKLIBS) + +all: liblevmar.a lmdemo + +liblevmar.a: $(LIBOBJS) + $(AR) crv liblevmar.a $(LIBOBJS) + #$(RANLIB) liblevmar.a + +lmdemo: $(DEMOBJS) liblevmar.a + $(CC) $(ARCHFLAGS) $(LDFLAGS) $(DEMOBJS) -o lmdemo -llevmar $(LIBS) -lm + +lm.o: lm.c lm_core.c lm.h misc.h compiler.h +Axb.o: Axb.c Axb_core.c lm.h misc.h +misc.o: misc.c misc_core.c lm.h misc.h +lmlec.o: lmlec.c lmlec_core.c lm.h misc.h +lmbc.o: lmbc.c lmbc_core.c lm.h misc.h compiler.h +lmblec.o: lmblec.c lmblec_core.c lm.h misc.h + +lmdemo.o: lm.h + +clean: + @rm -f $(LIBOBJS) $(DEMOBJS) + +cleanall: clean + @rm -f lmdemo + @rm -f liblevmar.a + +depend: + makedepend -f Makefile.icc $(LIBSRCS) $(DEMOSRCS) + +# DO NOT DELETE THIS LINE -- make depend depends on it. + diff --git a/src/levmar/Makefile.in b/src/levmar/Makefile.in new file mode 100644 index 0000000000000000000000000000000000000000..28d82204fb57c7e32ccaeab37bcac829c5253483 --- /dev/null +++ b/src/levmar/Makefile.in @@ -0,0 +1,468 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/levmar +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) +ARFLAGS = cru +liblevmar_a_AR = $(AR) $(ARFLAGS) +liblevmar_a_LIBADD = +am_liblevmar_a_OBJECTS = Axb.$(OBJEXT) lmbc.$(OBJEXT) lm.$(OBJEXT) \ + lmblec.$(OBJEXT) lmlec.$(OBJEXT) misc.$(OBJEXT) +liblevmar_a_OBJECTS = $(am_liblevmar_a_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(liblevmar_a_SOURCES) $(EXTRA_liblevmar_a_SOURCES) +DIST_SOURCES = $(liblevmar_a_SOURCES) $(EXTRA_liblevmar_a_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE2 = @DATE2@ +DATE3 = @DATE3@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGER = @PACKAGER@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Makefile.am for the levmar Levenberg-Marquardt fitting library +# Copyright (C) 2008 Emmanuel Bertin. +# levmar code by Manolis Lourakis +# http://www.ics.forth.gr/~lourakis/levmar/ +noinst_LIBRARIES = liblevmar.a +liblevmar_a_SOURCES = Axb.c lmbc.c lm.c lmblec.c lmlec.c misc.c \ + compiler.h lm.h misc.h + +EXTRA_liblevmar_a_SOURCES = Axb_core.c lmbc_core.c lm_core.c \ + lmblec_core.c lmlec_core.c misc_core.c \ + LICENSE README README.txt lmdemo.c + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/levmar/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/levmar/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +liblevmar.a: $(liblevmar_a_OBJECTS) $(liblevmar_a_DEPENDENCIES) + -rm -f liblevmar.a + $(liblevmar_a_AR) liblevmar.a $(liblevmar_a_OBJECTS) $(liblevmar_a_LIBADD) + $(RANLIB) liblevmar.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Axb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Axb_core.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lm_core.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmbc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmbc_core.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmblec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmblec_core.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmdemo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmlec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmlec_core.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_core.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +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 $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$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 $(LIBRARIES) +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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-noinstLIBRARIES \ + 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 + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +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 + +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 all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES ctags 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 uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/levmar/Makefile.vc b/src/levmar/Makefile.vc new file mode 100644 index 0000000000000000000000000000000000000000..52e3910a5a5c75528a19fff8bff68238d25cb172 --- /dev/null +++ b/src/levmar/Makefile.vc @@ -0,0 +1,58 @@ +# +# MS Visual C Makefile for Levenberg - Marquardt minimization +# Under Unix/Linux, use Makefile for GCC +# +# At the command prompt, type +# nmake /f Makefile.vc +# +# NOTE: To use this, you must have MSVC installed and properly +# configured for command line use (you might need to run VCVARS32.BAT +# included with your copy of MSVC). Another option is to use the +# free MSVC toolkit from http://msdn.microsoft.com/visualc/vctoolkit2003/ +# + +MAKE=nmake /nologo +CC=cl /nologo +CONFIGFLAGS=#/ULINSOLVERS_RETAIN_MEMORY +# YOU MIGHT WANT TO UNCOMMENT THE FOLLOWING LINE +#SPOPTFLAGS=/GL /G7 /arch:SSE2 # special optimization: resp. whole program opt., Athlon/Pentium4 opt., SSE2 extensions +# /MD COMPILES WITH MULTIPLE THREADS SUPPORT. TO DISABLE IT, SUBSTITUTE WITH /ML +# FLAG /EHsc SUPERSEDED /GX IN MSVC'05. IF YOU HAVE AN EARLIER VERSION THAT COMPLAINS ABOUT IT, CHANGE /EHsc TO /GX +CFLAGS=$(CONFIGFLAGS) /I. /MD /W3 /EHsc /O2 $(SPOPTFLAGS) # /Wall +LAPACKLIBS_PATH=C:\src\lib # WHEN USING LAPACK, CHANGE THIS TO WHERE YOUR COMPILED LIBS ARE! +LDFLAGS=/link /subsystem:console /opt:ref /libpath:$(LAPACKLIBS_PATH) /libpath:. +LIBOBJS=lm.obj Axb.obj misc.obj lmlec.obj lmbc.obj lmblec.obj +LIBSRCS=lm.c Axb.c misc.c lmlec.c lmbc.c lmblec.c +DEMOBJS=lmdemo.obj +DEMOSRCS=lmdemo.c +AR=lib /nologo + +# comment the following line if you are not using LAPACK +LAPACKLIBS=clapack.lib blas.lib libF77.lib libI77.lib + +LIBS=levmar.lib $(LAPACKLIBS) + +all: levmar.lib lmdemo.exe + +levmar.lib: $(LIBOBJS) + $(AR) /out:levmar.lib $(LIBOBJS) + +lmdemo.exe: $(DEMOBJS) levmar.lib + $(CC) $(DEMOBJS) $(LDFLAGS) /out:lmdemo.exe $(LIBS) + +lm.obj: lm.c lm_core.c lm.h misc.h compiler.h +Axb.obj: Axb.c Axb_core.c lm.h misc.h +misc.obj: misc.c misc_core.c lm.h misc.h +lmlec.obj: lmlec.c lmlec_core.c lm.h misc.h +lmbc.obj: lmbc.c lmbc_core.c lm.h misc.h compiler.h +lmblec.obj: lmblec.c lmblec_core.c lm.h misc.h + +lmdemo.obj: lm.h + +clean: + -del $(LIBOBJS) $(DEMOBJS) + +cleanall: clean + -del lmdemo.exe + -del levmar.lib + diff --git a/src/levmar/README b/src/levmar/README new file mode 100644 index 0000000000000000000000000000000000000000..58dfdd9ad9d2cc4094c2fe5a5fe733a7bf96348c --- /dev/null +++ b/src/levmar/README @@ -0,0 +1,4 @@ +The levmar v2.3 library has been included in this package untouched, except for +three warnings removed, LU decomposition replaced with calls to ATLAS-Lapack +routines, Hessian matrix inversion done with SVD, and an AutoMakefile added. + Emmanuel Bertin diff --git a/src/levmar/README.txt b/src/levmar/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..d748726fe5e5cb2262e5913224ce1f76cea1af0b --- /dev/null +++ b/src/levmar/README.txt @@ -0,0 +1,70 @@ + ************************************************************** + LEVMAR + version 2.3 + By Manolis Lourakis + + Institute of Computer Science + Foundation for Research and Technology - Hellas + Heraklion, Crete, Greece + ************************************************************** + + +GENERAL +This is levmar, a copylefted C/C++ implementation of the Levenberg-Marquardt non-linear +least squares algorithm. levmar includes double and single precision LM versions, both +with analytic and finite difference approximated jacobians. levmar also has some support +for constrained non-linear least squares, allowing linear equation and box constraints. +You have the following options regarding the solution of the underlying augmented normal +equations: + +1) Assuming that you have LAPACK (or an equivalent vendor library such as ESSL, MKL, + NAG, ...) installed, you can use the included LAPACK-based solvers (default). + +2) If you don't have LAPACK or decide not to use it, undefine HAVE_LAPACK in lm.h + and a LAPACK-free, LU-based linear systems solver will by used. Also, the line + setting the variable LAPACKLIBS in the Makefile should be commented out. + +It is strongly recommended that you *do* employ LAPACK; if you don't have it already, +I suggest getting clapack from http://www.netlib.org/clapack. However, LAPACK's +use is not mandatory and the 2nd option makes levmar totally self-contained. +See lmdemo.c for examples of use and http://www.ics.forth.gr/~lourakis/levmar +for general comments. + +The mathematical theory behind levmar is described in the lecture notes entitled +"Methods for Non-Linear Least Squares Problems", by K. Madsen, H.B. Nielsen and O. Tingleff, +Technical University of Denmark (http://www.imm.dtu.dk/courses/02611/nllsq.pdf). + +LICENSE +levmar is released under the GNU Public License (GPL), which can be found in the included +LICENSE file. Note that under the terms of GPL, commercial use is allowed only if a software +employing levmar is also published in source under the GPL. However, if you are interested +in using levmar in a proprietary commercial apprlication, a commercial license for levmar +can be obtained by contacting the author using the email address at the end of this file. + +COMPILATION + - You might first consider setting a few configuration options at the top of + lm.h. See the accompanying comments for more details. + + - On a Linux/Unix system, typing "make" will build both levmar and the demo + program using gcc. Alternatively, if Intel's C++ compiler is installed, it + can be used by typing "make -f Makefile.icc". + + - Under Windows and if Visual C is installed & configured for command line + use, type "nmake /f Makefile.vc" in a cmd window to build levmar and the + demo program. In case of trouble, read the comments on top of Makefile.vc + + - levmar can also be built under various platforms using the CMake cross-platform + build system. The included CMakeLists.txt file can be used to generate makefiles + for Unix systems or project files for Windows systems. See http://www.cmake.org + for details. + +MATLAB INTERFACE +Since version 2.2, the levmar distrubution includes a matlab interface. +See the 'matlab' subdirectory for more information and examples of use. + +Notice that *_core.c files are not to be compiled directly; For example, +Axb_core.c is included by Axb.c, to provide single and double precision +routine versions. + + +Send your comments/bug reports to lourakis at ics forth gr diff --git a/src/levmar/compiler.h b/src/levmar/compiler.h new file mode 100644 index 0000000000000000000000000000000000000000..c15e22067cd43cc6f51d85f06d9218d35f30b48f --- /dev/null +++ b/src/levmar/compiler.h @@ -0,0 +1,41 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef _COMPILER_H_ +#define _COMPILER_H_ + +/* note: intel's icc defines both __ICC & __INTEL_COMPILER. + * Also, some compilers other than gcc define __GNUC__, + * therefore gcc should be checked last + */ +#ifdef _MSC_VER +#define inline __inline // MSVC +#elif !defined(__ICC) && !defined(__INTEL_COMPILER) && !defined(__GNUC__) +#define inline // other than MSVC, ICC, GCC: define empty +#endif + +#ifdef _MSC_VER +#define LM_FINITE _finite // MSVC +#elif defined(__ICC) || defined(__INTEL_COMPILER) || defined(__GNUC__) +#define LM_FINITE finite // ICC, GCC +#else +#define LM_FINITE finite // other than MSVC, ICC, GCC, let's hope this will work +#endif + +#endif /* _COMPILER_H_ */ diff --git a/src/levmar/expfit.c b/src/levmar/expfit.c new file mode 100644 index 0000000000000000000000000000000000000000..43790ebd1093a3a53a3ecf1a1bd36019d6a3d37d --- /dev/null +++ b/src/levmar/expfit.c @@ -0,0 +1,122 @@ +//////////////////////////////////////////////////////////////////////////////////// +// Example program that shows how to use levmar in order to fit the three- +// parameter exponential model x_i = p[0]*exp(-p[1]*i) + p[2] to a set of +// data measurements; example is based on a similar one from GSL. +// +// Copyright (C) 2008 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +//////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include + +#include + +#ifndef LM_DBL_PREC +#error Example program assumes that levmar has been compiled with double precision, see LM_DBL_PREC! +#endif + + +/* the following macros concern the initialization of a random number generator for adding noise */ +#undef REPEATABLE_RANDOM +#define DBL_RAND_MAX (double)(RAND_MAX) + +#ifdef _MSC_VER // MSVC +#include +#define GETPID _getpid +#elif defined(__GNUC__) // GCC +#include +#include +#define GETPID getpid +#else +#warning Do not know the name of the function returning the process id for your OS/compiler combination +#define GETPID 0 +#endif /* _MSC_VER */ + +#ifdef REPEATABLE_RANDOM +#define INIT_RANDOM(seed) srandom(seed) +#else +#define INIT_RANDOM(seed) srandom((int)GETPID()) // seed unused +#endif + +/* Gaussian noise with mean m and variance s, uses the Box-Muller transformation */ +double gNoise(double m, double s) +{ +double r1, r2, val; + + r1=((double)random())/DBL_RAND_MAX; + r2=((double)random())/DBL_RAND_MAX; + + val=sqrt(-2.0*log(r1))*cos(2.0*M_PI*r2); + + val=s*val+m; + + return val; +} + +/* model to be fitted to measurements: x_i = p[0]*exp(-p[1]*i) + p[2], i=0...n-1 */ +void expfunc(double *p, double *x, int m, int n, void *data) +{ +register int i; + + for(i=0; i +#include +#include +#include + +#include "lm.h" +#include "compiler.h" +#include "misc.h" + +#define EPSILON 1E-12 +#define ONE_THIRD 0.3333333334 /* 1.0/3.0 */ + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s + +#define LM_REAL_MAX FLT_MAX +#define LM_REAL_MIN -FLT_MAX +#define LM_REAL_EPSILON FLT_EPSILON +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution + +#include "lm_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_EPSILON +#undef LM_REAL_MIN +#undef __SUBCNST +#undef LM_CNST +#endif /* LM_SNGL_PREC */ + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d + +#define LM_REAL_MAX DBL_MAX +#define LM_REAL_MIN -DBL_MAX +#define LM_REAL_EPSILON DBL_EPSILON +#define LM_CNST(x) (x) + +#include "lm_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_EPSILON +#undef LM_REAL_MIN +#undef LM_CNST +#endif /* LM_DBL_PREC */ diff --git a/src/levmar/lm.h b/src/levmar/lm.h new file mode 100644 index 0000000000000000000000000000000000000000..dd12b5848a6ffbabf72ab5741a4337e680202735 --- /dev/null +++ b/src/levmar/lm.h @@ -0,0 +1,259 @@ +/* +//////////////////////////////////////////////////////////////////////////////////// +// +// Prototypes and definitions for the Levenberg - Marquardt minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +//////////////////////////////////////////////////////////////////////////////////// +*/ + +#ifndef _LM_H_ +#define _LM_H_ + + +/************************************* Start of configuration options *************************************/ + +/* specify whether to use LAPACK or not. The first option is strongly recommended */ +#define HAVE_LAPACK /* use LAPACK */ +#undef HAVE_LAPACK /* uncomment this to force not using LAPACK */ + +/* to avoid the overhead of repeated mallocs(), routines in Axb.c can be instructed to + * retain working memory between calls. Such a choice, however, renders these routines + * non-reentrant and is not safe in a shared memory multiprocessing environment. + * Bellow, this option is turned on only when not compiling with OpenMP. + */ +#if !defined(_OPENMP) +#define LINSOLVERS_RETAIN_MEMORY /* comment this if you don't want routines in Axb.c retain working memory between calls */ +#endif + +/* determine the precision variants to be build. Default settings build + * both the single and double precision routines + */ +#define LM_DBL_PREC /* comment this if you don't want the double precision routines to be compiled */ +#define LM_SNGL_PREC /* comment this if you don't want the single precision routines to be compiled */ + +/****************** End of configuration options, no changes necessary beyond this point ******************/ + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define FABS(x) (((x)>=0.0)? (x) : -(x)) + +/* work arrays size for ?levmar_der and ?levmar_dif functions. + * should be multiplied by sizeof(double) or sizeof(float) to be converted to bytes + */ +#define LM_DER_WORKSZ(npar, nmeas) (2*(nmeas) + 4*(npar) + (nmeas)*(npar) + (npar)*(npar)) +#define LM_DIF_WORKSZ(npar, nmeas) (4*(nmeas) + 4*(npar) + (nmeas)*(npar) + (npar)*(npar)) + +/* work arrays size for ?levmar_bc_der and ?levmar_bc_dif functions. + * should be multiplied by sizeof(double) or sizeof(float) to be converted to bytes + */ +#define LM_BC_DER_WORKSZ(npar, nmeas) (2*(nmeas) + 4*(npar) + (nmeas)*(npar) + (npar)*(npar)) +#define LM_BC_DIF_WORKSZ(npar, nmeas) LM_BC_DER_WORKSZ((npar), (nmeas)) /* LEVMAR_BC_DIF currently implemented using LEVMAR_BC_DER()! */ + +/* work arrays size for ?levmar_lec_der and ?levmar_lec_dif functions. + * should be multiplied by sizeof(double) or sizeof(float) to be converted to bytes + */ +#define LM_LEC_DER_WORKSZ(npar, nmeas, nconstr) LM_DER_WORKSZ((npar)-(nconstr), (nmeas)) +#define LM_LEC_DIF_WORKSZ(npar, nmeas, nconstr) LM_DIF_WORKSZ((npar)-(nconstr), (nmeas)) + +/* work arrays size for ?levmar_blec_der and ?levmar_blec_dif functions. + * should be multiplied by sizeof(double) or sizeof(float) to be converted to bytes + */ +#define LM_BLEC_DER_WORKSZ(npar, nmeas, nconstr) LM_LEC_DER_WORKSZ((npar), (nmeas)+(npar), (nconstr)) +#define LM_BLEC_DIF_WORKSZ(npar, nmeas, nconstr) LM_LEC_DIF_WORKSZ((npar), (nmeas)+(npar), (nconstr)) + +#define LM_OPTS_SZ 5 /* max(4, 5) */ +#define LM_INFO_SZ 9 +#define LM_ERROR -1 +#define LM_INIT_MU 1E-03 +#define LM_STOP_THRESH 1E-17 +#define LM_DIFF_DELTA 1E-06 +#define LM_VERSION "2.3 (May 2008)" + +#ifdef LM_DBL_PREC +/* double precision LM, with & without Jacobian */ +/* unconstrained minimization */ +extern int dlevmar_der( + void (*func)(double *p, double *hx, int m, int n, void *adata), + void (*jacf)(double *p, double *j, int m, int n, void *adata), + double *p, double *x, int m, int n, int itmax, double *opts, + double *info, double *work, double *covar, void *adata); + +extern int dlevmar_dif( + void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *x, int m, int n, int itmax, double *opts, + double *info, double *work, double *covar, void *adata); + +/* box-constrained minimization */ +extern int dlevmar_bc_der( + void (*func)(double *p, double *hx, int m, int n, void *adata), + void (*jacf)(double *p, double *j, int m, int n, void *adata), + double *p, double *x, int m, int n, double *lb, double *ub, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); + +extern int dlevmar_bc_dif( + void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *x, int m, int n, double *lb, double *ub, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); + +#ifdef HAVE_LAPACK +/* linear equation constrained minimization */ +extern int dlevmar_lec_der( + void (*func)(double *p, double *hx, int m, int n, void *adata), + void (*jacf)(double *p, double *j, int m, int n, void *adata), + double *p, double *x, int m, int n, double *A, double *b, int k, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); + +extern int dlevmar_lec_dif( + void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *x, int m, int n, double *A, double *b, int k, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); + +/* box & linear equation constrained minimization */ +extern int dlevmar_blec_der( + void (*func)(double *p, double *hx, int m, int n, void *adata), + void (*jacf)(double *p, double *j, int m, int n, void *adata), + double *p, double *x, int m, int n, double *lb, double *ub, double *A, double *b, int k, double *wghts, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); + +extern int dlevmar_blec_dif( + void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *x, int m, int n, double *lb, double *ub, double *A, double *b, int k, double *wghts, + int itmax, double *opts, double *info, double *work, double *covar, void *adata); +#endif /* HAVE_LAPACK */ + +#endif /* LM_DBL_PREC */ + + +#ifdef LM_SNGL_PREC +/* single precision LM, with & without Jacobian */ +/* unconstrained minimization */ +extern int slevmar_der( + void (*func)(float *p, float *hx, int m, int n, void *adata), + void (*jacf)(float *p, float *j, int m, int n, void *adata), + float *p, float *x, int m, int n, int itmax, float *opts, + float *info, float *work, float *covar, void *adata); + +extern int slevmar_dif( + void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *x, int m, int n, int itmax, float *opts, + float *info, float *work, float *covar, void *adata); + +/* box-constrained minimization */ +extern int slevmar_bc_der( + void (*func)(float *p, float *hx, int m, int n, void *adata), + void (*jacf)(float *p, float *j, int m, int n, void *adata), + float *p, float *x, int m, int n, float *lb, float *ub, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); + +extern int slevmar_bc_dif( + void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *x, int m, int n, float *lb, float *ub, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); + +#ifdef HAVE_LAPACK +/* linear equation constrained minimization */ +extern int slevmar_lec_der( + void (*func)(float *p, float *hx, int m, int n, void *adata), + void (*jacf)(float *p, float *j, int m, int n, void *adata), + float *p, float *x, int m, int n, float *A, float *b, int k, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); + +extern int slevmar_lec_dif( + void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *x, int m, int n, float *A, float *b, int k, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); + +/* box & linear equation constrained minimization */ +extern int slevmar_blec_der( + void (*func)(float *p, float *hx, int m, int n, void *adata), + void (*jacf)(float *p, float *j, int m, int n, void *adata), + float *p, float *x, int m, int n, float *lb, float *ub, float *A, float *b, int k, float *wghts, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); + +extern int slevmar_blec_dif( + void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *x, int m, int n, float *lb, float *ub, float *A, float *b, int k, float *wghts, + int itmax, float *opts, float *info, float *work, float *covar, void *adata); +#endif /* HAVE_LAPACK */ + +#endif /* LM_SNGL_PREC */ + +/* linear system solvers */ +#ifdef HAVE_LAPACK + +#ifdef LM_DBL_PREC +extern int dAx_eq_b_QR(double *A, double *B, double *x, int m); +extern int dAx_eq_b_QRLS(double *A, double *B, double *x, int m, int n); +extern int dAx_eq_b_Chol(double *A, double *B, double *x, int m); +extern int dAx_eq_b_LU(double *A, double *B, double *x, int m); +extern int dAx_eq_b_SVD(double *A, double *B, double *x, int m); +#endif /* LM_DBL_PREC */ + +#ifdef LM_SNGL_PREC +extern int sAx_eq_b_QR(float *A, float *B, float *x, int m); +extern int sAx_eq_b_QRLS(float *A, float *B, float *x, int m, int n); +extern int sAx_eq_b_Chol(float *A, float *B, float *x, int m); +extern int sAx_eq_b_LU(float *A, float *B, float *x, int m); +extern int sAx_eq_b_SVD(float *A, float *B, float *x, int m); +#endif /* LM_SNGL_PREC */ + +#else /* no LAPACK */ + +#ifdef LM_DBL_PREC +extern int dAx_eq_b_LU_noLapack(double *A, double *B, double *x, int n); +#endif /* LM_DBL_PREC */ + +#ifdef LM_SNGL_PREC +extern int sAx_eq_b_LU_noLapack(float *A, float *B, float *x, int n); +#endif /* LM_SNGL_PREC */ + +#endif /* HAVE_LAPACK */ + +/* Jacobian verification, double & single precision */ +#ifdef LM_DBL_PREC +extern void dlevmar_chkjac( + void (*func)(double *p, double *hx, int m, int n, void *adata), + void (*jacf)(double *p, double *j, int m, int n, void *adata), + double *p, int m, int n, void *adata, double *err); +#endif /* LM_DBL_PREC */ + +#ifdef LM_SNGL_PREC +extern void slevmar_chkjac( + void (*func)(float *p, float *hx, int m, int n, void *adata), + void (*jacf)(float *p, float *j, int m, int n, void *adata), + float *p, int m, int n, void *adata, float *err); +#endif /* LM_SNGL_PREC */ + +/* standard deviation & Pearson's correlation coefficient for best-fit parameters */ +#ifdef LM_DBL_PREC +extern double dlevmar_stddev( double *covar, int m, int i); +extern double dlevmar_corcoef(double *covar, int m, int i, int j); +#endif /* LM_DBL_PREC */ + +#ifdef LM_SNGL_PREC +extern float slevmar_stddev( float *covar, int m, int i); +extern float slevmar_corcoef(float *covar, int m, int i, int j); +#endif /* LM_SNGL_PREC */ + +#ifdef __cplusplus +} +#endif + +#endif /* _LM_H_ */ diff --git a/src/levmar/lm_core.c b/src/levmar/lm_core.c new file mode 100644 index 0000000000000000000000000000000000000000..7f5f07cb23769f29ba59e5716d1cac216fbdd091 --- /dev/null +++ b/src/levmar/lm_core.c @@ -0,0 +1,810 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef LM_REAL // not included by lm.c +#error This file should not be compiled directly! +#endif + + +/* precision-specific definitions */ +#define LEVMAR_DER LM_ADD_PREFIX(levmar_der) +#define LEVMAR_DIF LM_ADD_PREFIX(levmar_dif) +#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx) +#define LEVMAR_FDIF_CENT_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_cent_jac_approx) +#define LEVMAR_TRANS_MAT_MAT_MULT LM_ADD_PREFIX(levmar_trans_mat_mat_mult) +#define LEVMAR_L2NRMXMY LM_ADD_PREFIX(levmar_L2nrmxmy) +#define LEVMAR_COVAR LM_ADD_PREFIX(levmar_covar) + +#ifdef HAVE_LAPACK +#define AX_EQ_B_LU LM_ADD_PREFIX(Ax_eq_b_LU) +#define AX_EQ_B_CHOL LM_ADD_PREFIX(Ax_eq_b_Chol) +#define AX_EQ_B_QR LM_ADD_PREFIX(Ax_eq_b_QR) +#define AX_EQ_B_QRLS LM_ADD_PREFIX(Ax_eq_b_QRLS) +#define AX_EQ_B_SVD LM_ADD_PREFIX(Ax_eq_b_SVD) +#else +#define AX_EQ_B_LU LM_ADD_PREFIX(Ax_eq_b_LU_noLapack) +#endif /* HAVE_LAPACK */ + +/* + * This function seeks the parameter vector p that best describes the measurements vector x. + * More precisely, given a vector function func : R^m --> R^n with n>=m, + * it finds p s.t. func(p) ~= x, i.e. the squared second order (i.e. L2) norm of + * e=x-func(p) is minimized. + * + * This function requires an analytic Jacobian. In case the latter is unavailable, + * use LEVMAR_DIF() bellow + * + * Returns the number of iterations (>=0) if successfull, LM_ERROR if failed + * + * For more details, see K. Madsen, H.B. Nielsen and O. Tingleff's lecture notes on + * non-linear least squares at http://www.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf + */ + +int LEVMAR_DER( + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), /* functional relation describing measurements. A p \in R^m yields a \hat{x} \in R^n */ + void (*jacf)(LM_REAL *p, LM_REAL *j, int m, int n, void *adata), /* function to evaluate the Jacobian \part x / \part p */ + LM_REAL *p, /* I/O: initial parameter estimates. On output has the estimated solution */ + LM_REAL *x, /* I: measurement vector. NULL implies a zero vector */ + int m, /* I: parameter vector dimension (i.e. #unknowns) */ + int n, /* I: measurement vector dimension */ + int itmax, /* I: maximum number of iterations */ + LM_REAL opts[4], /* I: minim. options [\mu, \epsilon1, \epsilon2, \epsilon3]. Respectively the scale factor for initial \mu, + * stopping thresholds for ||J^T e||_inf, ||Dp||_2 and ||e||_2. Set to NULL for defaults to be used + */ + LM_REAL info[LM_INFO_SZ], + /* O: information regarding the minimization. Set to NULL if don't care + * info[0]= ||e||_2 at initial p. + * info[1-4]=[ ||e||_2, ||J^T e||_inf, ||Dp||_2, mu/max[J^T J]_ii ], all computed at estimated p. + * info[5]= # iterations, + * info[6]=reason for terminating: 1 - stopped by small gradient J^T e + * 2 - stopped by small Dp + * 3 - stopped by itmax + * 4 - singular matrix. Restart from current p with increased mu + * 5 - no further error reduction is possible. Restart with increased mu + * 6 - stopped by small ||e||_2 + * 7 - stopped by invalid (i.e. NaN or Inf) "func" values. This is a user error + * info[7]= # function evaluations + * info[8]= # Jacobian evaluations + */ + LM_REAL *work, /* working memory at least LM_DER_WORKSZ() reals large, allocated if NULL */ + LM_REAL *covar, /* O: Covariance matrix corresponding to LS solution; mxm. Set to NULL if not needed. */ + void *adata) /* pointer to possibly additional data, passed uninterpreted to func & jacf. + * Set to NULL if not needed + */ +{ +register int i, j, k, l; +int worksz, freework=0, issolved; +/* temp work arrays */ +LM_REAL *e, /* nx1 */ + *hx, /* \hat{x}_i, nx1 */ + *jacTe, /* J^T e_i mx1 */ + *jac, /* nxm */ + *jacTjac, /* mxm */ + *Dp, /* mx1 */ + *diag_jacTjac, /* diagonal of J^T J, mx1 */ + *pDp; /* p + Dp, mx1 */ + +register LM_REAL mu, /* damping constant */ + tmp; /* mainly used in matrix & vector multiplications */ +LM_REAL p_eL2, jacTe_inf, pDp_eL2; /* ||e(p)||_2, ||J^T e||_inf, ||e(p+Dp)||_2 */ +LM_REAL p_L2, Dp_L2=LM_REAL_MAX, dF, dL; +LM_REAL tau, eps1, eps2, eps2_sq, eps3; +LM_REAL init_p_eL2; +int nu=2, nu2, stop=0, nfev, njev=0; +const int nm=n*m; +int (*linsolver)(LM_REAL *A, LM_REAL *B, LM_REAL *x, int m)=NULL; + + mu=jacTe_inf=0.0; /* -Wall */ + + if(ntmp) tmp=diag_jacTjac[i]; /* find max diagonal element */ + mu=tau*tmp; + } + + /* determine increment using adaptive damping */ + while(1){ + /* augment normal equations */ + for(i=0; i=(p_L2+eps2)/(LM_CNST(EPSILON)*LM_CNST(EPSILON))){ /* almost singular */ + //if(Dp_L2>=(p_L2+eps2)/LM_CNST(EPSILON)){ /* almost singular */ + stop=4; + break; + } + + (*func)(pDp, hx, m, n, adata); ++nfev; /* evaluate function at p + Dp */ + /* compute ||e(pDp)||_2 */ + /* ### hx=x-hx, pDp_eL2=||hx|| */ +#if 1 + pDp_eL2=LEVMAR_L2NRMXMY(hx, x, hx, n); +#else + for(i=0, pDp_eL2=0.0; i0.0 && dF>0.0){ /* reduction in error, increment is accepted */ + tmp=(LM_CNST(2.0)*dF/dL-LM_CNST(1.0)); + tmp=LM_CNST(1.0)-tmp*tmp*tmp; + mu=mu*( (tmp>=LM_CNST(ONE_THIRD))? tmp : LM_CNST(ONE_THIRD) ); + nu=2; + + for(i=0 ; i=itmax) stop=3; + + for(i=0; i=10)? m: 10, updjac, updp=1, newjac; +const int nm=n*m; +int (*linsolver)(LM_REAL *A, LM_REAL *B, LM_REAL *x, int m)=NULL; + + mu=jacTe_inf=p_L2=0.0; /* -Wall */ + updjac=newjac=0; /* -Wall */ + + if(n16) || updjac==K){ /* compute difference approximation to J */ + if(using_ffdif){ /* use forward differences */ + LEVMAR_FDIF_FORW_JAC_APPROX(func, p, hx, wrk, delta, jac, m, n, adata); + ++njap; nfev+=m; + } + else{ /* use central differences */ + LEVMAR_FDIF_CENT_JAC_APPROX(func, p, wrk, wrk2, delta, jac, m, n, adata); + ++njap; nfev+=2*m; + } + nu=2; updjac=0; updp=0; newjac=1; + } + + if(newjac){ /* Jacobian has changed, recompute J^T J, J^t e, etc */ + newjac=0; + + /* J^T J, J^T e */ + if(nm<=__BLOCKSZ__SQ){ // this is a small problem + /* This is the straightforward way to compute J^T J, J^T e. However, due to + * its noncontinuous memory access pattern, it incures many cache misses when + * applied to large minimization problems (i.e. problems involving a large + * number of free variables and measurements), in which J is too large to + * fit in the L1 cache. For such problems, a cache-efficient blocking scheme + * is preferable. + * + * Thanks to John Nitao of Lawrence Livermore Lab for pointing out this + * performance problem. + * + * On the other hand, the straightforward algorithm is faster on small + * problems since in this case it avoids the overheads of blocking. + */ + + for(i=0; itmp) tmp=diag_jacTjac[i]; /* find max diagonal element */ + mu=tau*tmp; + } + + /* determine increment using adaptive damping */ + + /* augment normal equations */ + for(i=0; i=(p_L2+eps2)/(LM_CNST(EPSILON)*LM_CNST(EPSILON))){ /* almost singular */ + //if(Dp_L2>=(p_L2+eps2)/LM_CNST(EPSILON)){ /* almost singular */ + stop=4; + break; + } + + (*func)(pDp, wrk, m, n, adata); ++nfev; /* evaluate function at p + Dp */ + /* compute ||e(pDp)||_2 */ + /* ### wrk2=x-wrk, pDp_eL2=||wrk2|| */ +#if 1 + pDp_eL2=LEVMAR_L2NRMXMY(wrk2, x, wrk, n); +#else + for(i=0, pDp_eL2=0.0; i0){ /* update jac */ + for(i=0; i0.0 && dF>0.0){ /* reduction in error, increment is accepted */ + tmp=(LM_CNST(2.0)*dF/dL-LM_CNST(1.0)); + tmp=LM_CNST(1.0)-tmp*tmp*tmp; + mu=mu*( (tmp>=LM_CNST(ONE_THIRD))? tmp : LM_CNST(ONE_THIRD) ); + nu=2; + + for(i=0 ; i=itmax) stop=3; + + for(i=0; i +#include +#include +#include + +#include "lm.h" +#include "compiler.h" +#include "misc.h" + +#define EPSILON 1E-12 +#define ONE_THIRD 0.3333333334 /* 1.0/3.0 */ + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s + +#define LM_REAL_MAX FLT_MAX +#define LM_REAL_MIN -FLT_MAX + +#define LM_REAL_EPSILON FLT_EPSILON +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution + +#include "lmbc_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_MIN +#undef LM_REAL_EPSILON +#undef __SUBCNST +#undef LM_CNST +#endif /* LM_SNGL_PREC */ + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d + +#define LM_REAL_MAX DBL_MAX +#define LM_REAL_MIN -DBL_MAX + +#define LM_REAL_EPSILON DBL_EPSILON +#define LM_CNST(x) (x) + +#include "lmbc_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_MIN +#undef LM_REAL_EPSILON +#undef LM_CNST +#endif /* LM_DBL_PREC */ diff --git a/src/levmar/lmbc_core.c b/src/levmar/lmbc_core.c new file mode 100644 index 0000000000000000000000000000000000000000..ff6079076bc2fc9f8bdb7b2a521a7529d9f0bd79 --- /dev/null +++ b/src/levmar/lmbc_core.c @@ -0,0 +1,919 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004-05 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef LM_REAL // not included by lmbc.c +#error This file should not be compiled directly! +#endif + + +/* precision-specific definitions */ +#define FUNC_STATE LM_ADD_PREFIX(func_state) +#define LNSRCH LM_ADD_PREFIX(lnsrch) +#define BOXPROJECT LM_ADD_PREFIX(boxProject) +#define LEVMAR_BOX_CHECK LM_ADD_PREFIX(levmar_box_check) +#define LEVMAR_BC_DER LM_ADD_PREFIX(levmar_bc_der) +#define LEVMAR_BC_DIF LM_ADD_PREFIX(levmar_bc_dif) //CHECKME +#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx) +#define LEVMAR_FDIF_CENT_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_cent_jac_approx) +#define LEVMAR_TRANS_MAT_MAT_MULT LM_ADD_PREFIX(levmar_trans_mat_mat_mult) +#define LEVMAR_L2NRMXMY LM_ADD_PREFIX(levmar_L2nrmxmy) +#define LEVMAR_COVAR LM_ADD_PREFIX(levmar_covar) +#define LMBC_DIF_DATA LM_ADD_PREFIX(lmbc_dif_data) +#define LMBC_DIF_FUNC LM_ADD_PREFIX(lmbc_dif_func) +#define LMBC_DIF_JACF LM_ADD_PREFIX(lmbc_dif_jacf) + +#ifdef HAVE_LAPACK +#define AX_EQ_B_LU LM_ADD_PREFIX(Ax_eq_b_LU) +#define AX_EQ_B_CHOL LM_ADD_PREFIX(Ax_eq_b_Chol) +#define AX_EQ_B_QR LM_ADD_PREFIX(Ax_eq_b_QR) +#define AX_EQ_B_QRLS LM_ADD_PREFIX(Ax_eq_b_QRLS) +#define AX_EQ_B_SVD LM_ADD_PREFIX(Ax_eq_b_SVD) +#else +#define AX_EQ_B_LU LM_ADD_PREFIX(Ax_eq_b_LU_noLapack) +#endif /* HAVE_LAPACK */ + +/* find the median of 3 numbers */ +#define __MEDIAN3(a, b, c) ( ((a) >= (b))?\ + ( ((c) >= (a))? (a) : ( ((c) <= (b))? (b) : (c) ) ) : \ + ( ((c) >= (b))? (b) : ( ((c) <= (a))? (a) : (c) ) ) ) + +#define _POW_ LM_CNST(2.1) + +#define __LSITMAX 150 // max #iterations for line search + +struct FUNC_STATE{ + int n, *nfev; + LM_REAL *hx, *x; + void *adata; +}; + +static void +LNSRCH(int m, LM_REAL *x, LM_REAL f, LM_REAL *g, LM_REAL *p, LM_REAL alpha, LM_REAL *xpls, + LM_REAL *ffpls, void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), struct FUNC_STATE state, + int *mxtake, int *iretcd, LM_REAL stepmx, LM_REAL steptl, LM_REAL *sx) +{ +/* Find a next newton iterate by backtracking line search. + * Specifically, finds a \lambda such that for a fixed alpha<0.5 (usually 1e-4), + * f(x + \lambda*p) <= f(x) + alpha * \lambda * g^T*p + * + * Translated (with minor changes) from Schnabel, Koontz & Weiss uncmin.f, v1.3 + + * PARAMETERS : + + * m --> dimension of problem (i.e. number of variables) + * x(m) --> old iterate: x[k-1] + * f --> function value at old iterate, f(x) + * g(m) --> gradient at old iterate, g(x), or approximate + * p(m) --> non-zero newton step + * alpha --> fixed constant < 0.5 for line search (see above) + * xpls(m) <-- new iterate x[k] + * ffpls <-- function value at new iterate, f(xpls) + * func --> name of subroutine to evaluate function + * state <--> information other than x and m that func requires. + * state is not modified in xlnsrch (but can be modified by func). + * iretcd <-- return code + * mxtake <-- boolean flag indicating step of maximum length used + * stepmx --> maximum allowable step size + * steptl --> relative step size at which successive iterates + * considered close enough to terminate algorithm + * sx(m) --> diagonal scaling matrix for x, can be NULL + + * internal variables + + * sln newton length + * rln relative length of newton step +*/ + + register int i, j; + int firstback = 1; + LM_REAL disc; + LM_REAL a3, b; + LM_REAL t1, t2, t3, lambda, tlmbda, rmnlmb; + LM_REAL scl, rln, sln, slp; + LM_REAL tmp1, tmp2; + LM_REAL fpls, pfpls = 0., plmbda = 0.; /* -Wall */ + + f*=LM_CNST(0.5); + *mxtake = 0; + *iretcd = 2; + tmp1 = 0.; + if(!sx) /* no scaling */ + for (i = 0; i < m; ++i) + tmp1 += p[i] * p[i]; + else + for (i = 0; i < m; ++i) + tmp1 += sx[i] * sx[i] * p[i] * p[i]; + sln = (LM_REAL)sqrt(tmp1); + if (sln > stepmx) { + /* newton step longer than maximum allowed */ + scl = stepmx / sln; + for(i=0; i=LM_CNST(1.))? FABS(x[i]) : LM_CNST(1.); + tmp2 = FABS(p[i])/tmp1; + if(rln < tmp2) rln = tmp2; + } + else + for (i = 0; i < m; ++i) { + tmp1 = (FABS(x[i])>=LM_CNST(1.)/sx[i])? FABS(x[i]) : LM_CNST(1.)/sx[i]; + tmp2 = FABS(p[i])/tmp1; + if(rln < tmp2) rln = tmp2; + } + rmnlmb = steptl / rln; + lambda = LM_CNST(1.0); + + /* check if new iterate satisfactory. generate new lambda if necessary. */ + + for(j=__LSITMAX; j>=0; --j) { + for (i = 0; i < m; ++i) + xpls[i] = x[i] + lambda * p[i]; + + /* evaluate function at new point */ + (*func)(xpls, state.hx, m, state.n, state.adata); ++(*(state.nfev)); + /* ### state.hx=state.x-state.hx, tmp1=||state.hx|| */ +#if 1 + tmp1=LEVMAR_L2NRMXMY(state.hx, state.x, state.hx, state.n); +#else + for(i=0, tmp1=0.0; i stepmx * LM_CNST(.99)) *mxtake = 1; + return; + } + + /* else : solution not (yet) found */ + + /* First find a point with a finite value */ + + if (lambda < rmnlmb) { + /* no satisfactory xpls found sufficiently distinct from x */ + + *iretcd = 1; + return; + } + else { /* calculate new lambda */ + + /* modifications to cover non-finite values */ + if (!LM_FINITE(fpls)) { + lambda *= LM_CNST(0.1); + firstback = 1; + } + else { + if (firstback) { /* first backtrack: quadratic fit */ + tlmbda = -lambda * slp / ((fpls - f - slp) * LM_CNST(2.)); + firstback = 0; + } + else { /* all subsequent backtracks: cubic fit */ + t1 = fpls - f - lambda * slp; + t2 = pfpls - f - plmbda * slp; + t3 = LM_CNST(1.) / (lambda - plmbda); + a3 = LM_CNST(3.) * t3 * (t1 / (lambda * lambda) + - t2 / (plmbda * plmbda)); + b = t3 * (t2 * lambda / (plmbda * plmbda) + - t1 * plmbda / (lambda * lambda)); + disc = b * b - a3 * slp; + if (disc > b * b) + /* only one positive critical point, must be minimum */ + tlmbda = (-b + ((a3 < 0)? -(LM_REAL)sqrt(disc): (LM_REAL)sqrt(disc))) /a3; + else + /* both critical points positive, first is minimum */ + tlmbda = (-b + ((a3 < 0)? (LM_REAL)sqrt(disc): -(LM_REAL)sqrt(disc))) /a3; + + if (tlmbda > lambda * LM_CNST(.5)) + tlmbda = lambda * LM_CNST(.5); + } + plmbda = lambda; + pfpls = fpls; + if (tlmbda < lambda * LM_CNST(.1)) + lambda *= LM_CNST(.1); + else + lambda = tlmbda; + } + } + } + /* this point is reached when the iterations limit is exceeded */ + *iretcd = 1; /* failed */ + return; +} /* LNSRCH */ + +/* Projections to feasible set \Omega: P_{\Omega}(y) := arg min { ||x - y|| : x \in \Omega}, y \in R^m */ + +/* project vector p to a box shaped feasible set. p is a mx1 vector. + * Either lb, ub can be NULL. If not NULL, they are mx1 vectors + */ +static void BOXPROJECT(LM_REAL *p, LM_REAL *lb, LM_REAL *ub, int m) +{ +register int i; + + if(!lb){ /* no lower bounds */ + if(!ub) /* no upper bounds */ + return; + else{ /* upper bounds only */ + for(i=0; iub[i]) p[i]=ub[i]; + } + } + else + if(!ub){ /* lower bounds only */ + for(i=0; i R^n with n>=m, + * it finds p s.t. func(p) ~= x, i.e. the squared second order (i.e. L2) norm of + * e=x-func(p) is minimized under the constraints lb[i]<=p[i]<=ub[i]. + * If no lower bound constraint applies for p[i], use -DBL_MAX/-FLT_MAX for lb[i]; + * If no upper bound constraint applies for p[i], use DBL_MAX/FLT_MAX for ub[i]. + * + * This function requires an analytic Jacobian. In case the latter is unavailable, + * use LEVMAR_BC_DIF() bellow + * + * Returns the number of iterations (>=0) if successfull, LM_ERROR if failed + * + * For details, see C. Kanzow, N. Yamashita and M. Fukushima: "Levenberg-Marquardt + * methods for constrained nonlinear equations with strong local convergence properties", + * Journal of Computational and Applied Mathematics 172, 2004, pp. 375-397. + * Also, see K. Madsen, H.B. Nielsen and O. Tingleff's lecture notes on + * unconstrained Levenberg-Marquardt at http://www.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf + */ + +int LEVMAR_BC_DER( + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), /* functional relation describing measurements. A p \in R^m yields a \hat{x} \in R^n */ + void (*jacf)(LM_REAL *p, LM_REAL *j, int m, int n, void *adata), /* function to evaluate the Jacobian \part x / \part p */ + LM_REAL *p, /* I/O: initial parameter estimates. On output has the estimated solution */ + LM_REAL *x, /* I: measurement vector. NULL implies a zero vector */ + int m, /* I: parameter vector dimension (i.e. #unknowns) */ + int n, /* I: measurement vector dimension */ + LM_REAL *lb, /* I: vector of lower bounds. If NULL, no lower bounds apply */ + LM_REAL *ub, /* I: vector of upper bounds. If NULL, no upper bounds apply */ + int itmax, /* I: maximum number of iterations */ + LM_REAL opts[4], /* I: minim. options [\mu, \epsilon1, \epsilon2, \epsilon3]. Respectively the scale factor for initial \mu, + * stopping thresholds for ||J^T e||_inf, ||Dp||_2 and ||e||_2. Set to NULL for defaults to be used. + * Note that ||J^T e||_inf is computed on free (not equal to lb[i] or ub[i]) variables only. + */ + LM_REAL info[LM_INFO_SZ], + /* O: information regarding the minimization. Set to NULL if don't care + * info[0]= ||e||_2 at initial p. + * info[1-4]=[ ||e||_2, ||J^T e||_inf, ||Dp||_2, mu/max[J^T J]_ii ], all computed at estimated p. + * info[5]= # iterations, + * info[6]=reason for terminating: 1 - stopped by small gradient J^T e + * 2 - stopped by small Dp + * 3 - stopped by itmax + * 4 - singular matrix. Restart from current p with increased mu + * 5 - no further error reduction is possible. Restart with increased mu + * 6 - stopped by small ||e||_2 + * 7 - stopped by invalid (i.e. NaN or Inf) "func" values. This is a user error + * info[7]= # function evaluations + * info[8]= # Jacobian evaluations + */ + LM_REAL *work, /* working memory at least LM_BC_DER_WORKSZ() reals large, allocated if NULL */ + LM_REAL *covar, /* O: Covariance matrix corresponding to LS solution; mxm. Set to NULL if not needed. */ + void *adata) /* pointer to possibly additional data, passed uninterpreted to func & jacf. + * Set to NULL if not needed + */ +{ +register int i, j, k, l; +int worksz, freework=0, issolved; +/* temp work arrays */ +LM_REAL *e, /* nx1 */ + *hx, /* \hat{x}_i, nx1 */ + *jacTe, /* J^T e_i mx1 */ + *jac, /* nxm */ + *jacTjac, /* mxm */ + *Dp, /* mx1 */ + *diag_jacTjac, /* diagonal of J^T J, mx1 */ + *pDp; /* p + Dp, mx1 */ + +register LM_REAL mu, /* damping constant */ + tmp; /* mainly used in matrix & vector multiplications */ +LM_REAL p_eL2, jacTe_inf, pDp_eL2; /* ||e(p)||_2, ||J^T e||_inf, ||e(p+Dp)||_2 */ +LM_REAL p_L2, Dp_L2=LM_REAL_MAX, dF, dL; +LM_REAL tau, eps1, eps2, eps2_sq, eps3; +LM_REAL init_p_eL2; +int nu=2, nu2, stop=0, nfev, njev=0; +const int nm=n*m; + +/* variables for constrained LM */ +struct FUNC_STATE fstate; +LM_REAL alpha=LM_CNST(1e-4), beta=LM_CNST(0.9), gamma=LM_CNST(0.99995), gamma_sq=gamma*gamma, rho=LM_CNST(1e-8); +LM_REAL t, t0; +LM_REAL steptl=LM_CNST(1e3)*(LM_REAL)sqrt(LM_REAL_EPSILON), jacTeDp; +LM_REAL tmin=LM_CNST(1e-12), tming=LM_CNST(1e-18); /* minimum step length for LS and PG steps */ +const LM_REAL tini=LM_CNST(1.0); /* initial step length for LS and PG steps */ +int nLMsteps=0, nLSsteps=0, nPGsteps=0, gprevtaken=0; +int numactive; +int (*linsolver)(LM_REAL *A, LM_REAL *B, LM_REAL *x, int m)=NULL; + + mu=jacTe_inf=t=0.0; tmin=tmin; /* -Wall */ + + if(n0; + * if p[i]==lb[i] g[i]<0; otherwise g[i]=0 + */ + for(i=j=numactive=0, p_L2=jacTe_inf=0.0; i0.0) ++j; } + else if(lb && p[i]==lb[i]){ ++numactive; if(jacTe[i]<0.0) ++j; } + else if(jacTe_inf < (tmp=FABS(jacTe[i]))) jacTe_inf=tmp; + + diag_jacTjac[i]=jacTjac[i*m+i]; /* save diagonal entries so that augmentation can be later canceled */ + p_L2+=p[i]*p[i]; + } + //p_L2=sqrt(p_L2); + +#if 0 +if(!(k%100)){ + printf("Current estimate: "); + for(i=0; itmp) tmp=diag_jacTjac[i]; /* find max diagonal element */ + mu=tau*tmp; + } + else + mu=LM_CNST(0.5)*tau*p_eL2; /* use Kanzow's starting mu */ + } + + /* determine increment using a combination of adaptive damping, line search and projected gradient search */ + while(1){ + /* augment normal equations */ + for(i=0; i=(p_L2+eps2)/(LM_CNST(EPSILON)*LM_CNST(EPSILON))){ /* almost singular */ + stop=4; + break; + } + + (*func)(pDp, hx, m, n, adata); ++nfev; /* evaluate function at p + Dp */ + /* ### hx=x-hx, pDp_eL2=||hx|| */ +#if 1 + pDp_eL2=LEVMAR_L2NRMXMY(hx, x, hx, n); +#else + for(i=0, pDp_eL2=0.0; i0.0){ + dF=p_eL2-pDp_eL2; + tmp=(LM_CNST(2.0)*dF/dL-LM_CNST(1.0)); + tmp=LM_CNST(1.0)-tmp*tmp*tmp; + mu=mu*( (tmp>=LM_CNST(ONE_THIRD))? tmp : LM_CNST(ONE_THIRD) ); + } + else + mu=(mu>=pDp_eL2)? pDp_eL2 : mu; /* pDp_eL2 is the new pDp_eL2 */ +#else + + mu=(mu>=pDp_eL2)? pDp_eL2 : mu; /* pDp_eL2 is the new pDp_eL2 */ +#endif + + nu=2; + + for(i=0 ; i=LM_CNST(1.0))? tmp : LM_CNST(1.0) ); + +#if 1 + /* use Schnabel's backtracking line search; it requires fewer "func" evaluations */ + LNSRCH(m, p, p_eL2, jacTe, Dp, alpha, pDp, &pDp_eL2, func, fstate, + &mxtake, &iretcd, stepmx, steptl, NULL); /* NOTE: LNSRCH() updates hx */ + if(iretcd!=0) goto gradproj; /* rather inelegant but effective way to handle LNSRCH() failures... */ +#else + /* use the simpler (but slower!) line search described by Kanzow et al */ + for(t=tini; t>tmin; t*=beta){ + for(i=0; itming; t*=beta){ + for(i=0; i=itmax) stop=3; + + for(i=0; ifunc))(p, hx, m, n, dta->adata); +} + +void LMBC_DIF_JACF(LM_REAL *p, LM_REAL *jac, int m, int n, void *data) +{ +struct LMBC_DIF_DATA *dta=(struct LMBC_DIF_DATA *)data; + + /* evaluate user-supplied function at p */ + (*(dta->func))(p, dta->hx, m, n, dta->adata); + LEVMAR_FDIF_FORW_JAC_APPROX(dta->func, p, dta->hx, dta->hxx, dta->delta, jac, m, n, dta->adata); +} + + +/* No Jacobian version of the LEVMAR_BC_DER() function above: the Jacobian is approximated with + * the aid of finite differences (forward or central, see the comment for the opts argument) + * Ideally, this function should be implemented with a secant approach. Currently, it just calls + * LEVMAR_BC_DER() + */ +int LEVMAR_BC_DIF( + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), /* functional relation describing measurements. A p \in R^m yields a \hat{x} \in R^n */ + LM_REAL *p, /* I/O: initial parameter estimates. On output has the estimated solution */ + LM_REAL *x, /* I: measurement vector. NULL implies a zero vector */ + int m, /* I: parameter vector dimension (i.e. #unknowns) */ + int n, /* I: measurement vector dimension */ + LM_REAL *lb, /* I: vector of lower bounds. If NULL, no lower bounds apply */ + LM_REAL *ub, /* I: vector of upper bounds. If NULL, no upper bounds apply */ + int itmax, /* I: maximum number of iterations */ + LM_REAL opts[5], /* I: opts[0-4] = minim. options [\mu, \epsilon1, \epsilon2, \epsilon3, \delta]. Respectively the + * scale factor for initial \mu, stopping thresholds for ||J^T e||_inf, ||Dp||_2 and ||e||_2 and + * the step used in difference approximation to the Jacobian. Set to NULL for defaults to be used. + * If \delta<0, the Jacobian is approximated with central differences which are more accurate + * (but slower!) compared to the forward differences employed by default. + */ + LM_REAL info[LM_INFO_SZ], + /* O: information regarding the minimization. Set to NULL if don't care + * info[0]= ||e||_2 at initial p. + * info[1-4]=[ ||e||_2, ||J^T e||_inf, ||Dp||_2, mu/max[J^T J]_ii ], all computed at estimated p. + * info[5]= # iterations, + * info[6]=reason for terminating: 1 - stopped by small gradient J^T e + * 2 - stopped by small Dp + * 3 - stopped by itmax + * 4 - singular matrix. Restart from current p with increased mu + * 5 - no further error reduction is possible. Restart with increased mu + * 6 - stopped by small ||e||_2 + * 7 - stopped by invalid (i.e. NaN or Inf) "func" values. This is a user error + * info[7]= # function evaluations + * info[8]= # Jacobian evaluations + */ + LM_REAL *work, /* working memory at least LM_BC_DIF_WORKSZ() reals large, allocated if NULL */ + LM_REAL *covar, /* O: Covariance matrix corresponding to LS solution; mxm. Set to NULL if not needed. */ + void *adata) /* pointer to possibly additional data, passed uninterpreted to func. + * Set to NULL if not needed + */ +{ +struct LMBC_DIF_DATA data; +int ret; + + //fprintf(stderr, RCAT("\nWarning: current implementation of ", LEVMAR_BC_DIF) "() does not use a secant approach!\n\n"); + + data.func=func; + data.hx=(LM_REAL *)malloc(2*n*sizeof(LM_REAL)); /* allocate a big chunk in one step */ + if(!data.hx){ + fprintf(stderr, LCAT(LEVMAR_BC_DIF, "(): memory allocation request failed\n")); + exit(1); + } + data.hxx=data.hx+n; + data.adata=adata; + data.delta=(opts)? FABS(opts[4]) : (LM_REAL)LM_DIFF_DELTA; // no central differences here... + + ret=LEVMAR_BC_DER(LMBC_DIF_FUNC, LMBC_DIF_JACF, p, x, m, n, lb, ub, itmax, opts, info, work, covar, (void *)&data); + + if(info) /* correct the number of function calls */ + info[7]+=info[8]*(m+1); /* each Jacobian evaluation costs m+1 function calls */ + + free(data.hx); + + return ret; +} +/* undefine everything. THIS MUST REMAIN AT THE END OF THE FILE */ +#undef FUNC_STATE +#undef LNSRCH +#undef BOXPROJECT +#undef LEVMAR_BOX_CHECK +#undef LEVMAR_BC_DER +#undef LMBC_DIF_DATA +#undef LMBC_DIF_FUNC +#undef LMBC_DIF_JACF +#undef LEVMAR_BC_DIF +#undef LEVMAR_FDIF_FORW_JAC_APPROX +#undef LEVMAR_FDIF_CENT_JAC_APPROX +#undef LEVMAR_COVAR +#undef LEVMAR_TRANS_MAT_MAT_MULT +#undef LEVMAR_L2NRMXMY +#undef AX_EQ_B_LU +#undef AX_EQ_B_CHOL +#undef AX_EQ_B_QR +#undef AX_EQ_B_QRLS +#undef AX_EQ_B_SVD diff --git a/src/levmar/lmblec.c b/src/levmar/lmblec.c new file mode 100644 index 0000000000000000000000000000000000000000..4d41309aa885d2c72b93b7614659647114cded4e --- /dev/null +++ b/src/levmar/lmblec.c @@ -0,0 +1,89 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004-06 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +/******************************************************************************** + * combined box and linear equation constraints Levenberg-Marquardt nonlinear + * minimization. The same core code is used with appropriate #defines to derive + * single and double precision versions, see also lmblec_core.c + ********************************************************************************/ + +#include +#include +#include +#include + +#include "lm.h" +#include "misc.h" + +#ifndef HAVE_LAPACK + +#ifdef _MSC_VER +#pragma message("Combined box and linearly constrained optimization requires LAPACK and was not compiled!") +/* +#else +#warning Combined box and linearly constrained optimization requires LAPACK and was not compiled! +*/ +#endif // _MSC_VER + +#else // LAPACK present + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s + +#define LM_REAL_MAX FLT_MAX +#define LM_REAL_MIN -FLT_MAX +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution + +#include "lmblec_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_MIN +#undef __SUBCNST +#undef LM_CNST +#endif /* LM_SNGL_PREC */ + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d + +#define LM_REAL_MAX DBL_MAX +#define LM_REAL_MIN -DBL_MAX +#define LM_CNST(x) (x) + +#include "lmblec_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_MAX +#undef LM_REAL_MIN +#undef LM_CNST +#endif /* LM_DBL_PREC */ + +#endif /* HAVE_LAPACK */ diff --git a/src/levmar/lmblec_core.c b/src/levmar/lmblec_core.c new file mode 100644 index 0000000000000000000000000000000000000000..85ddcb0fa26c99d0336358e9dab228f95dba9c33 --- /dev/null +++ b/src/levmar/lmblec_core.c @@ -0,0 +1,393 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004-06 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +/******************************************************************************* + * This file implements combined box and linear equation constraints. + * + * Note that the algorithm implementing linearly constrained minimization does + * so by a change in parameters that transforms the original program into an + * unconstrained one. To employ the same idea for implementing box & linear + * constraints would require the transformation of box constraints on the + * original parameters to box constraints for the new parameter set. This + * being impossible, a different approach is used here for finding the minimum. + * The trick is to remove the box constraints by augmenting the function to + * be fitted with penalty terms and then solve the resulting problem (which + * involves linear constrains only) with the functions in lmlec.c + * + * More specifically, for the constraint a<=x[i]<=b to hold, the term C[i]= + * (2*x[i]-(a+b))/(b-a) should be within [-1, 1]. This is enforced by adding + * the penalty term w[i]*max((C[i])^2-1, 0) to the objective function, where + * w[i] is a large weight. In the case of constraints of the form a<=x[i], + * the term C[i]=a-x[i] has to be non positive, thus the penalty term is + * w[i]*max(C[i], 0). If x[i]<=b, C[i]=x[i]-b has to be non negative and + * the penalty is w[i]*max(C[i], 0). The derivatives needed for the Jacobian + * are as follows: + * For the constraint a<=x[i]<=b: 4*(2*x[i]-(a+b))/(b-a)^2 if x[i] not in [a, b], + * 0 otherwise + * For the constraint a<=x[i]: -1 if x[i]<=a, 0 otherwise + * For the constraint x[i]<=b: 1 if b<=x[i], 0 otherwise + * + * Note that for the above to work, the weights w[i] should be large enough; + * depending on your minimization problem, the default values might need some + * tweaking (see arg "wghts" below). + *******************************************************************************/ + +#ifndef LM_REAL // not included by lmblec.c +#error This file should not be compiled directly! +#endif + + +#define __MAX__(x, y) (((x)>=(y))? (x) : (y)) +#define __BC_WEIGHT__ LM_CNST(1E+04) + +#define __BC_INTERVAL__ 0 +#define __BC_LOW__ 1 +#define __BC_HIGH__ 2 + +/* precision-specific definitions */ +#define LEVMAR_BOX_CHECK LM_ADD_PREFIX(levmar_box_check) +#define LMBLEC_DATA LM_ADD_PREFIX(lmblec_data) +#define LMBLEC_FUNC LM_ADD_PREFIX(lmblec_func) +#define LMBLEC_JACF LM_ADD_PREFIX(lmblec_jacf) +#define LEVMAR_LEC_DER LM_ADD_PREFIX(levmar_lec_der) +#define LEVMAR_LEC_DIF LM_ADD_PREFIX(levmar_lec_dif) +#define LEVMAR_BLEC_DER LM_ADD_PREFIX(levmar_blec_der) +#define LEVMAR_BLEC_DIF LM_ADD_PREFIX(levmar_blec_dif) +#define LEVMAR_COVAR LM_ADD_PREFIX(levmar_covar) +#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx) + +struct LMBLEC_DATA{ + LM_REAL *x, *lb, *ub, *w; + int *bctype; + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata); + void (*jacf)(LM_REAL *p, LM_REAL *jac, int m, int n, void *adata); + void *adata; +}; + +/* augmented measurements */ +static void LMBLEC_FUNC(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata) +{ +struct LMBLEC_DATA *data=(struct LMBLEC_DATA *)adata; +int nn; +register int i, j, *typ; +register LM_REAL *lb, *ub, *w, tmp; + + nn=n-m; + lb=data->lb; + ub=data->ub; + w=data->w; + typ=data->bctype; + (*(data->func))(p, hx, m, nn, data->adata); + + for(i=nn, j=0; ilb; + ub=data->ub; + w=data->w; + typ=data->bctype; + (*(data->jacf))(p, jac, m, nn, data->adata); + + /* clear all extra rows */ + for(i=nn*m; i R^n with n>=m, + * it finds p s.t. func(p) ~= x, i.e. the squared second order (i.e. L2) norm of + * e=x-func(p) is minimized under the constraints lb[i]<=p[i]<=ub[i] and A p=b; + * A is kxm, b kx1. Note that this function DOES NOT check the satisfiability of + * the specified box and linear equation constraints. + * If no lower bound constraint applies for p[i], use -DBL_MAX/-FLT_MAX for lb[i]; + * If no upper bound constraint applies for p[i], use DBL_MAX/FLT_MAX for ub[i]. + * + * This function requires an analytic Jacobian. In case the latter is unavailable, + * use LEVMAR_BLEC_DIF() bellow + * + * Returns the number of iterations (>=0) if successfull, LM_ERROR if failed + * + * For more details on the algorithm implemented by this function, please refer to + * the comments in the top of this file. + * + */ +int LEVMAR_BLEC_DER( + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), /* functional relation describing measurements. A p \in R^m yields a \hat{x} \in R^n */ + void (*jacf)(LM_REAL *p, LM_REAL *j, int m, int n, void *adata), /* function to evaluate the Jacobian \part x / \part p */ + LM_REAL *p, /* I/O: initial parameter estimates. On output has the estimated solution */ + LM_REAL *x, /* I: measurement vector. NULL implies a zero vector */ + int m, /* I: parameter vector dimension (i.e. #unknowns) */ + int n, /* I: measurement vector dimension */ + LM_REAL *lb, /* I: vector of lower bounds. If NULL, no lower bounds apply */ + LM_REAL *ub, /* I: vector of upper bounds. If NULL, no upper bounds apply */ + LM_REAL *A, /* I: constraints matrix, kxm */ + LM_REAL *b, /* I: right hand constraints vector, kx1 */ + int k, /* I: number of constraints (i.e. A's #rows) */ + LM_REAL *wghts, /* mx1 weights for penalty terms, defaults used if NULL */ + int itmax, /* I: maximum number of iterations */ + LM_REAL opts[4], /* I: minim. options [\mu, \epsilon1, \epsilon2, \epsilon3]. Respectively the scale factor for initial \mu, + * stopping thresholds for ||J^T e||_inf, ||Dp||_2 and ||e||_2. Set to NULL for defaults to be used + */ + LM_REAL info[LM_INFO_SZ], + /* O: information regarding the minimization. Set to NULL if don't care + * info[0]= ||e||_2 at initial p. + * info[1-4]=[ ||e||_2, ||J^T e||_inf, ||Dp||_2, mu/max[J^T J]_ii ], all computed at estimated p. + * info[5]= # iterations, + * info[6]=reason for terminating: 1 - stopped by small gradient J^T e + * 2 - stopped by small Dp + * 3 - stopped by itmax + * 4 - singular matrix. Restart from current p with increased mu + * 5 - no further error reduction is possible. Restart with increased mu + * 6 - stopped by small ||e||_2 + * 7 - stopped by invalid (i.e. NaN or Inf) "func" values. This is a user error + * info[7]= # function evaluations + * info[8]= # Jacobian evaluations + */ + LM_REAL *work, /* working memory at least LM_BLEC_DER_WORKSZ() reals large, allocated if NULL */ + LM_REAL *covar, /* O: Covariance matrix corresponding to LS solution; mxm. Set to NULL if not needed. */ + void *adata) /* pointer to possibly additional data, passed uninterpreted to func & jacf. + * Set to NULL if not needed + */ +{ + struct LMBLEC_DATA data; + int ret; + LM_REAL locinfo[LM_INFO_SZ]; + register int i; + + if(!jacf){ + fprintf(stderr, RCAT("No function specified for computing the Jacobian in ", LEVMAR_BLEC_DER) + RCAT("().\nIf no such function is available, use ", LEVMAR_BLEC_DIF) RCAT("() rather than ", LEVMAR_BLEC_DER) "()\n"); + return LM_ERROR; + } + + if(!LEVMAR_BOX_CHECK(lb, ub, m)){ + fprintf(stderr, LCAT(LEVMAR_BLEC_DER, "(): at least one lower bound exceeds the upper one\n")); + return LM_ERROR; + } + + /* measurement vector needs to be extended by m */ + if(x){ /* nonzero x */ + data.x=(LM_REAL *)malloc((n+m)*sizeof(LM_REAL)); + if(!data.x){ + fprintf(stderr, LCAT(LEVMAR_BLEC_DER, "(): memory allocation request #1 failed\n")); + exit(1); + } + + for(i=0; i +#include +#include +#include + +#include "lm.h" + +#ifndef LM_DBL_PREC +#error Demo program assumes that levmar has been compiled with double precision, see LM_DBL_PREC! +#endif + + +/* Sample functions to be minimized with LM and their Jacobians. + * More test functions at http://www.csit.fsu.edu/~burkardt/f_src/test_nls/test_nls.html + * Check also the CUTE problems collection at ftp://ftp.numerical.rl.ac.uk/pub/cute/; + * CUTE is searchable through http://numawww.mathematik.tu-darmstadt.de:8081/opti/select.html + * CUTE problems can also be solved through the AMPL web interface at http://www.ampl.com/TRYAMPL/startup.html + * + * Nonlinear optimization models in AMPL can be found at http://www.princeton.edu/~rvdb/ampl/nlmodels/ + */ + +#define ROSD 105.0 + +/* Rosenbrock function, global minimum at (1, 1) */ +void ros(double *p, double *x, int m, int n, void *data) +{ +register int i; + + for(i=0; i=0)? 0.25 : -0.25; + + x[0]=10.0*(p[2] - 10.0*theta); + x[1]=10.0*(sqrt(p[0]*p[0] + p[1]*p[1]) - 1.0); + x[2]=p[2]; +} + +void jachelval(double *p, double *jac, int m, int n, void *data) +{ +register int i=0; +double tmp; + + tmp=p[0]*p[0] + p[1]*p[1]; + + jac[i++]=50.0*p[1]/(M_PI*tmp); + jac[i++]=-50.0*p[0]/(M_PI*tmp); + jac[i++]=10.0; + + jac[i++]=10.0*p[0]/sqrt(tmp); + jac[i++]=10.0*p[1]/sqrt(tmp); + jac[i++]=0.0; + + jac[i++]=0.0; + jac[i++]=0.0; + jac[i++]=1.0; +} + +/* Boggs - Tolle problem 3 (linearly constrained), minimum at (-0.76744, 0.25581, 0.62791, -0.11628, 0.25581) + * constr1: p[0] + 3*p[1] = 0; + * constr2: p[2] + p[3] - 2*p[4] = 0; + * constr3: p[1] - p[4] = 0; + */ +void bt3(double *p, double *x, int m, int n, void *data) +{ +register int i; +double t1, t2, t3, t4; + + t1=p[0]-p[1]; + t2=p[1]+p[2]-2.0; + t3=p[3]-1.0; + t4=p[4]-1.0; + + for(i=0; i=-1.5; + */ +void hs01(double *p, double *x, int m, int n, void *data) +{ +double t; + + t=p[0]*p[0]; + x[0]=10.0*(p[1]-t); + x[1]=1.0-p[0]; +} + +void jachs01(double *p, double *jac, int m, int n, void *data) +{ +register int j=0; + + jac[j++]=-20.0*p[0]; + jac[j++]=10.0; + + jac[j++]=-1.0; + jac[j++]=0.0; +} + +/* Hock - Schittkowski MODIFIED problem 21 (box constrained), minimum at (2.0, 0.0) + * constr1: 2 <= p[0] <=50; + * constr2: -50 <= p[1] <=50; + * + * Original HS21 has the additional constraint 10*p[0] - p[1] >= 10; which is inactive + * at the solution, so it is dropped here. + */ +void hs21(double *p, double *x, int m, int n, void *data) +{ + x[0]=p[0]/10.0; + x[1]=p[1]; +} + +void jachs21(double *p, double *jac, int m, int n, void *data) +{ +register int j=0; + + jac[j++]=0.1; + jac[j++]=0.0; + + jac[j++]=0.0; + jac[j++]=1.0; +} + +/* Problem hatfldb (box constrained), minimum at (0.947214, 0.8, 0.64, 0.4096) + * constri: p[i]>=0.0; (i=1..4) + * constr5: p[1]<=0.8; + */ +void hatfldb(double *p, double *x, int m, int n, void *data) +{ +register int i; + + x[0]=p[0]-1.0; + + for(i=1; i=0.0; (i=1..4) + * constri+4: p[i]<=10.0; (i=1..4) + */ +void hatfldc(double *p, double *x, int m, int n, void *data) +{ +register int i; + + x[0]=p[0]-1.0; + + for(i=1; i=-0.3; + * subject to cons5: + * x[1]<=0.7; + * + */ +void modbt7(double *p, double *x, int m, int n, void *data) +{ +register int i; + + for(i=0; i=0.0001; (i=1..5) + * constri+5: p[i]<=100.0; (i=1..5) + */ +void combust(double *p, double *x, int m, int n, void *data) +{ + double R, R5, R6, R7, R8, R9, R10; + + R=10; + R5=0.193; + R6=4.10622*1e-4; + R7=5.45177*1e-4; + R8=4.4975*1e-7; + R9=3.40735*1e-5; + R10=9.615*1e-7; + + x[0]=p[0]*p[1]+p[0]-3*p[4]; + x[1]=2*p[0]*p[1]+p[0]+3*R10*p[1]*p[1]+p[1]*p[2]*p[2]+R7*p[1]*p[2]+R9*p[1]*p[3]+R8*p[1]-R*p[4]; + x[2]=2*p[1]*p[2]*p[2]+R7*p[1]*p[2]+2*R5*p[2]*p[2]+R6*p[2]-8*p[4]; + x[3]=R9*p[1]*p[3]+2*p[3]*p[3]-4*R*p[4]; + x[4]=p[0]*p[1]+p[0]+R10*p[1]*p[1]+p[1]*p[2]*p[2]+R7*p[1]*p[2]+R9*p[1]*p[3]+R8*p[1]+R5*p[2]*p[2]+R6*p[2]+p[3]*p[3]-1.0; +} + +void jaccombust(double *p, double *jac, int m, int n, void *data) +{ +register int j=0; + double R, R5, R6, R7, R8, R9, R10; + + R=10; + R5=0.193; + R6=4.10622*1e-4; + R7=5.45177*1e-4; + R8=4.4975*1e-7; + R9=3.40735*1e-5; + R10=9.615*1e-7; + + for(j=0; j +#include +#include + +#include "lm.h" +#include "misc.h" + + +#ifndef HAVE_LAPACK + +#ifdef _MSC_VER +#pragma message("Linearly constrained optimization requires LAPACK and was not compiled!") +/* +#else +#warning Linearly constrained optimization requires LAPACK and was not compiled! +*/ +#endif // _MSC_VER + +#else // LAPACK present + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s + +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution + +#include "lmlec_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef __SUBCNST +#undef LM_CNST +#endif /* LM_SNGL_PREC */ + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d + +#define LM_CNST(x) (x) + +#include "lmlec_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_CNST +#endif /* LM_DBL_PREC */ + +#endif /* HAVE_LAPACK */ + diff --git a/src/levmar/lmlec_core.c b/src/levmar/lmlec_core.c new file mode 100644 index 0000000000000000000000000000000000000000..53be7f54a35689c5640cf87c47c093fe7a7e8702 --- /dev/null +++ b/src/levmar/lmlec_core.c @@ -0,0 +1,654 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004-05 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef LM_REAL // not included by lmlec.c +#error This file should not be compiled directly! +#endif + + +/* precision-specific definitions */ +#define LMLEC_DATA LM_ADD_PREFIX(lmlec_data) +#define LMLEC_ELIM LM_ADD_PREFIX(lmlec_elim) +#define LMLEC_FUNC LM_ADD_PREFIX(lmlec_func) +#define LMLEC_JACF LM_ADD_PREFIX(lmlec_jacf) +#define LEVMAR_LEC_DER LM_ADD_PREFIX(levmar_lec_der) +#define LEVMAR_LEC_DIF LM_ADD_PREFIX(levmar_lec_dif) +#define LEVMAR_DER LM_ADD_PREFIX(levmar_der) +#define LEVMAR_DIF LM_ADD_PREFIX(levmar_dif) +#define LEVMAR_TRANS_MAT_MAT_MULT LM_ADD_PREFIX(levmar_trans_mat_mat_mult) +#define LEVMAR_COVAR LM_ADD_PREFIX(levmar_covar) +#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx) + +#define GEQP3 LM_ADD_PREFIX(geqp3_) +#define ORGQR LM_ADD_PREFIX(orgqr_) +#define TRTRI LM_ADD_PREFIX(trtri_) + +struct LMLEC_DATA{ + LM_REAL *c, *Z, *p, *jac; + int ncnstr; + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata); + void (*jacf)(LM_REAL *p, LM_REAL *jac, int m, int n, void *adata); + void *adata; +}; + +/* prototypes for LAPACK routines */ +extern int GEQP3(int *m, int *n, LM_REAL *a, int *lda, int *jpvt, + LM_REAL *tau, LM_REAL *work, int *lwork, int *info); + +extern int ORGQR(int *m, int *n, int *k, LM_REAL *a, int *lda, LM_REAL *tau, + LM_REAL *work, int *lwork, int *info); + +extern int TRTRI(char *uplo, char *diag, int *n, LM_REAL *a, int *lda, int *info); + +/* + * This function implements an elimination strategy for linearly constrained + * optimization problems. The strategy relies on QR decomposition to transform + * an optimization problem constrained by Ax=b to an equivalent, unconstrained + * one. Also referred to as "null space" or "reduced Hessian" method. + * See pp. 430-433 (chap. 15) of "Numerical Optimization" by Nocedal-Wright + * for details. + * + * A is mxn with m<=n and rank(A)=m + * Two matrices Y and Z of dimensions nxm and nx(n-m) are computed from A^T so that + * their columns are orthonormal and every x can be written as x=Y*b + Z*x_z= + * c + Z*x_z, where c=Y*b is a fixed vector of dimension n and x_z is an + * arbitrary vector of dimension n-m. Then, the problem of minimizing f(x) + * subject to Ax=b is equivalent to minimizing f(c + Z*x_z) with no constraints. + * The computed Y and Z are such that any solution of Ax=b can be written as + * x=Y*x_y + Z*x_z for some x_y, x_z. Furthermore, A*Y is nonsingular, A*Z=0 + * and Z spans the null space of A. + * + * The function accepts A, b and computes c, Y, Z. If b or c is NULL, c is not + * computed. Also, Y can be NULL in which case it is not referenced. + * The function returns 0 in case of error, A's computed rank if successfull + * + */ +static int LMLEC_ELIM(LM_REAL *A, LM_REAL *b, LM_REAL *c, LM_REAL *Y, LM_REAL *Z, int m, int n) +{ +static LM_REAL eps=LM_CNST(-1.0); + +LM_REAL *buf=NULL; +LM_REAL *a, *tau, *work, *r, aux; +register LM_REAL tmp; +int a_sz, jpvt_sz, tau_sz, r_sz, Y_sz, worksz; +int info, rank, *jpvt, tot_sz, mintmn, tm, tn; +register int i, j, k; + + if(m>n){ + fprintf(stderr, RCAT("matrix of constraints cannot have more rows than columns in", LMLEC_ELIM) "()!\n"); + return LM_ERROR; + } + + tm=n; tn=m; // transpose dimensions + mintmn=m; + + /* calculate required memory size */ + worksz=-1; // workspace query. Optimal work size is returned in aux + //ORGQR((int *)&tm, (int *)&tm, (int *)&mintmn, NULL, (int *)&tm, NULL, (LM_REAL *)&aux, &worksz, &info); + GEQP3((int *)&tm, (int *)&tn, NULL, (int *)&tm, NULL, NULL, (LM_REAL *)&aux, (int *)&worksz, &info); + worksz=(int)aux; + a_sz=tm*tm; // tm*tn is enough for xgeqp3() + jpvt_sz=tn; + tau_sz=mintmn; + r_sz=mintmn*mintmn; // actually smaller if a is not of full row rank + Y_sz=(Y)? 0 : tm*tn; + + tot_sz=jpvt_sz*sizeof(int) + (a_sz + tau_sz + r_sz + worksz + Y_sz)*sizeof(LM_REAL); + buf=(LM_REAL *)malloc(tot_sz); /* allocate a "big" memory chunk at once */ + if(!buf){ + fprintf(stderr, RCAT("Memory allocation request failed in ", LMLEC_ELIM) "()\n"); + exit(1); + } + + a=(LM_REAL *)buf; + jpvt=(int *)(a+a_sz); + tau=(LM_REAL *)(jpvt + jpvt_sz); + r=tau+tau_sz; + work=r+r_sz; + if(!Y) Y=work+worksz; + + /* copy input array so that LAPACK won't destroy it. Note that copying is + * done in row-major order, which equals A^T in column-major + */ + for(i=0; i0){ + fprintf(stderr, RCAT(RCAT("unknown LAPACK error (%d) for ", GEQP3) " in ", LMLEC_ELIM) "()\n", info); + free(buf); + return 0; + } + } + /* the upper triangular part of a now contains the upper triangle of the unpermuted R */ + + if(eps<0.0){ + LM_REAL aux; + + /* compute machine epsilon. DBL_EPSILON should do also */ + for(eps=LM_CNST(1.0); aux=eps+LM_CNST(1.0), aux-LM_CNST(1.0)>0.0; eps*=LM_CNST(0.5)) + ; + eps*=LM_CNST(2.0); + } + + tmp=tm*LM_CNST(10.0)*eps*FABS(a[0]); // threshold. tm is max(tm, tn) + tmp=(tmp>LM_CNST(1E-12))? tmp : LM_CNST(1E-12); // ensure that threshold is not too small + /* compute A^T's numerical rank by counting the non-zeros in R's diagonal */ + for(i=rank=0; itmp || a[i*(tm+1)]<-tmp) ++rank; /* loop across R's diagonal elements */ + else break; /* diagonal is arranged in absolute decreasing order */ + + if(rank0){ + fprintf(stderr, RCAT(RCAT("A(%d, %d) is exactly zero for ", TRTRI) " (singular matrix) in ", LMLEC_ELIM) "()\n", info, info); + free(buf); + return 0; + } + } + /* then, transpose r in place */ + for(i=0; i0){ + fprintf(stderr, RCAT(RCAT("unknown LAPACK error (%d) for ", ORGQR) " in ", LMLEC_ELIM) "()\n", info); + free(buf); + return 0; + } + } + + /* compute Y=Q_1*R^-T*P^T. Y is tm x rank */ + for(i=0; incnstr; + c=data->c; + Z=data->Z; + p=data->p; + /* p=c + Z*pp */ + for(i=0; ifunc))(p, hx, m, n, data->adata); +} + +/* constrained Jacobian: given pp, compute the Jacobian at c + Z*pp + * Using the chain rule, the Jacobian with respect to pp equals the + * product of the Jacobian with respect to p (at c + Z*pp) times Z + */ +static void LMLEC_JACF(LM_REAL *pp, LM_REAL *jacjac, int mm, int n, void *adata) +{ +struct LMLEC_DATA *data=(struct LMLEC_DATA *)adata; +int m; +register int i, j, l; +register LM_REAL sum, *aux1, *aux2; +LM_REAL *c, *Z, *p, *jac; + + m=mm+data->ncnstr; + c=data->c; + Z=data->Z; + p=data->p; + jac=data->jac; + /* p=c + Z*pp */ + for(i=0; ijacf))(p, jac, m, n, data->adata); + + /* compute jac*Z in jacjac */ + if(n*m<=__BLOCKSZ__SQ){ // this is a small problem + /* This is the straightforward way to compute jac*Z. However, due to + * its noncontinuous memory access pattern, it incures many cache misses when + * applied to large minimization problems (i.e. problems involving a large + * number of free variables and measurements), in which jac is too large to + * fit in the L1 cache. For such problems, a cache-efficient blocking scheme + * is preferable. On the other hand, the straightforward algorithm is faster + * on small problems since in this case it avoids the overheads of blocking. + */ + + for(i=0; iLM_CNST(1E-03)) + fprintf(stderr, RCAT("Warning: component %d of starting point not feasible in ", LEVMAR_LEC_DER) "()! [%.10g reset to %.10g]\n", + i, p0[i], tmp); + } + + if(!info) info=locinfo; /* make sure that LEVMAR_DER() is called with non-null info */ + /* note that covariance computation is not requested from LEVMAR_DER() */ + ret=LEVMAR_DER(LMLEC_FUNC, LMLEC_JACF, pp, x, mm, n, itmax, opts, info, work, NULL, (void *)&data); + + /* p=c + Z*pp */ + for(i=0; iLM_CNST(1E-03)) + fprintf(stderr, RCAT("Warning: component %d of starting point not feasible in ", LEVMAR_LEC_DIF) "()! [%.10g reset to %.10g]\n", + i, p0[i], tmp); + } + + if(!info) info=locinfo; /* make sure that LEVMAR_DIF() is called with non-null info */ + /* note that covariance computation is not requested from LEVMAR_DIF() */ + ret=LEVMAR_DIF(LMLEC_FUNC, pp, x, mm, n, itmax, opts, info, work, NULL, (void *)&data); + + /* p=c + Z*pp */ + for(i=0; i -L levmar.c -llevmar -lclapack -lblas -lf2c + +Make sure that you substitute the angle brackets with the correct paths to +the levmar and the blas/lapack directories. Also, on certain systems, +-lf2c should be changed to -llibF77 -llibI77 +If your mex compiler has not been configured, the following command should be run first: + +mex -setup + + +TESTING +After compiling, execute lmdemo.m with matlab < lmdemo.m diff --git a/src/levmar/matlab/bt3.m b/src/levmar/matlab/bt3.m new file mode 100644 index 0000000000000000000000000000000000000000..a8e4773e14debf239dcbe91cd857843e1dbdd3f3 --- /dev/null +++ b/src/levmar/matlab/bt3.m @@ -0,0 +1,11 @@ +function x = bt3(p, adata) + n=5; + + t1=p(1)-p(2); + t2=p(2)+p(3)-2.0; + t3=p(4)-1.0; + t4=p(5)-1.0; + + for i=1:n + x(i)=t1*t1 + t2*t2 + t3*t3 + t4*t4; + end diff --git a/src/levmar/matlab/expfit.m b/src/levmar/matlab/expfit.m new file mode 100644 index 0000000000000000000000000000000000000000..eeb37fccedd4abbc88a70d0939de9e1985b6927b --- /dev/null +++ b/src/levmar/matlab/expfit.m @@ -0,0 +1,8 @@ +function x = expfit(p, data) + n=data; + +% data1, data2 are actually unused + + for i=1:n + x(i)=p(1)*exp(-p(2)*i) + p(3); + end diff --git a/src/levmar/matlab/hs01.m b/src/levmar/matlab/hs01.m new file mode 100644 index 0000000000000000000000000000000000000000..c6912f205d0d277aec9fcd1574e0f517e522e17e --- /dev/null +++ b/src/levmar/matlab/hs01.m @@ -0,0 +1,6 @@ +function x = hs01(p) + n=2; + + t=p(1)*p(1); + x(1)=10.0*(p(2)-t); + x(2)=1.0-p(1); diff --git a/src/levmar/matlab/jacbt3.m b/src/levmar/matlab/jacbt3.m new file mode 100644 index 0000000000000000000000000000000000000000..becb3b59dc966f867c424e277db48b07d220e036 --- /dev/null +++ b/src/levmar/matlab/jacbt3.m @@ -0,0 +1,13 @@ +function jac = bt3_jac(p, adata) + n=5; + m=5; + + t1=p(1)-p(2); + t2=p(2)+p(3)-2.0; + t3=p(4)-1.0; + t4=p(5)-1.0; + + for i=1:n + jac(i, 1:m)=[2.0*t1, 2.0*(t2-t1), 2.0*t2, 2.0*t3, 2.0*t4]; + end + diff --git a/src/levmar/matlab/jacexpfit.m b/src/levmar/matlab/jacexpfit.m new file mode 100644 index 0000000000000000000000000000000000000000..13747fde20bf9c87ad3b328d17a8edd8f897fdce --- /dev/null +++ b/src/levmar/matlab/jacexpfit.m @@ -0,0 +1,7 @@ +function jac = expfit_jac(p, data) + n=data; + m=max(size(p)); + + for i=1:n + jac(i, 1:m)=[exp(-p(2)*i), -p(1)*i*exp(-p(2)*i), 1.0]; + end diff --git a/src/levmar/matlab/jachs01.m b/src/levmar/matlab/jachs01.m new file mode 100644 index 0000000000000000000000000000000000000000..49ee83a61e5e803a56d60ccf58520b581416939e --- /dev/null +++ b/src/levmar/matlab/jachs01.m @@ -0,0 +1,5 @@ +function jac = hs01_jac(p) + m=2; + + jac(1, 1:m)=[-20.0*p(1), 10.0]; + jac(2, 1:m)=[-1.0, 0.0]; diff --git a/src/levmar/matlab/jacmeyer.m b/src/levmar/matlab/jacmeyer.m new file mode 100644 index 0000000000000000000000000000000000000000..9d8ff5d9be08ced93b561f043a309294a7fc6e76 --- /dev/null +++ b/src/levmar/matlab/jacmeyer.m @@ -0,0 +1,10 @@ +function jac = meyer_jac(p, data1, data2) + n=16; + m=3; + + for i=1:n + ui=0.45+0.05*i; + tmp=exp(10.0*p(2)/(ui+p(3)) - 13.0); + + jac(i, 1:m)=[tmp, 10.0*p(1)*tmp/(ui+p(3)), -10.0*p(1)*p(2)*tmp/((ui+p(3))*(ui+p(3)))]; + end diff --git a/src/levmar/matlab/jacmodhs52.m b/src/levmar/matlab/jacmodhs52.m new file mode 100644 index 0000000000000000000000000000000000000000..30b524bb8561b12ff24460da0a919eb71d2f87ff --- /dev/null +++ b/src/levmar/matlab/jacmodhs52.m @@ -0,0 +1,7 @@ +function jac = modhs52_jac(p) + m=5; + + jac(1, 1:m)=[4.0, -1.0, 0.0, 0.0, 0.0]; + jac(2, 1:m)=[0.0, 1.0, 1.0, 0.0, 0.0]; + jac(3, 1:m)=[0.0, 0.0, 0.0, 1.0, 0.0]; + jac(4, 1:m)=[0.0, 0.0, 0.0, 0.0, 1.0]; diff --git a/src/levmar/matlab/levmar.c b/src/levmar/matlab/levmar.c new file mode 100644 index 0000000000000000000000000000000000000000..77129efbe66972a3a77d3a6730aa395a44cad451 --- /dev/null +++ b/src/levmar/matlab/levmar.c @@ -0,0 +1,580 @@ +/* //////////////////////////////////////////////////////////////////////////////// +// +// Matlab MEX file for the Levenberg - Marquardt minimization algorithm +// Copyright (C) 2007 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +//////////////////////////////////////////////////////////////////////////////// */ + +#include +#include +#include +#include +#include +#include + +#include + +#include + +/** +#define DEBUG +**/ + +#ifndef HAVE_LAPACK +#ifdef _MSC_VER +#pragma message("LAPACK not available, certain functionalities cannot be compiled!") +#else +#warning LAPACK not available, certain functionalities cannot be compiled +#endif /* _MSC_VER */ +#endif /* HAVE_LAPACK */ + +#define __MAX__(A, B) ((A)>=(B)? (A) : (B)) + +#define MIN_UNCONSTRAINED 0 +#define MIN_CONSTRAINED_BC 1 +#define MIN_CONSTRAINED_LEC 2 +#define MIN_CONSTRAINED_BLEC 3 + +struct mexdata { + /* matlab names of the fitting function & its Jacobian */ + char *fname, *jacname; + + /* binary flags specifying if input p0 is a row or column vector */ + int isrow_p0; + + /* rhs args to be passed to matlab. rhs[0] is reserved for + * passing the parameter vector. If present, problem-specific + * data are passed in rhs[1], rhs[2], etc + */ + mxArray **rhs; + int nrhs; /* >= 1 */ +}; + +/* display printf-style error messages in matlab */ +static void matlabFmtdErrMsgTxt(char *fmt, ...) +{ +char buf[256]; +va_list args; + + va_start(args, fmt); + vsprintf(buf, fmt, args); + va_end(args); + + mexErrMsgTxt(buf); +} + +/* display printf-style warning messages in matlab */ +static void matlabFmtdWarnMsgTxt(char *fmt, ...) +{ +char buf[256]; +va_list args; + + va_start(args, fmt); + vsprintf(buf, fmt, args); + va_end(args); + + mexWarnMsgTxt(buf); +} + +static void func(double *p, double *hx, int m, int n, void *adata) +{ +mxArray *lhs[1]; +double *mp, *mx; +register int i; +struct mexdata *dat=(struct mexdata *)adata; + + /* prepare to call matlab */ + mp=mxGetPr(dat->rhs[0]); + for(i=0; inrhs, dat->rhs, dat->fname); + + /* copy back results & cleanup */ + mx=mxGetPr(lhs[0]); + for(i=0; irhs[0]); + for(i=0; inrhs, dat->rhs, dat->jacname); + + /* copy back results & cleanup. Note that the nxm Jacobian + * computed by matlab should be transposed so that + * levmar gets it in row major, as expected + */ + mj=mxGetPr(lhs[0]); + for(i=0; irhs[0]); + for(i=0; inrhs, dat->rhs, dat->fname); + if(i){ + fprintf(stderr, "levmar: error calling '%s'.\n", dat->fname); + ret=1; + } + else if(!mxIsDouble(lhs[0]) || mxIsComplex(lhs[0]) || !(mxGetM(lhs[0])==1 || mxGetN(lhs[0])==1) || + __MAX__(mxGetM(lhs[0]), mxGetN(lhs[0]))!=n){ + fprintf(stderr, "levmar: '%s' should produce a real vector with %d elements (got %d).\n", + dat->fname, m, __MAX__(mxGetM(lhs[0]), mxGetN(lhs[0]))); + ret=1; + } + /* delete the matrix created by matlab */ + mxDestroyArray(lhs[0]); + + if(havejac){ + /* attempt to call the supplied jac */ + i=mexCallMATLAB(1, lhs, dat->nrhs, dat->rhs, dat->jacname); + if(i){ + fprintf(stderr, "levmar: error calling '%s'.\n", dat->jacname); + ret=1; + } + else if(!mxIsDouble(lhs[0]) || mxIsComplex(lhs[0]) || mxGetM(lhs[0])!=n || mxGetN(lhs[0])!=m){ + fprintf(stderr, "levmar: '%s' should produce a real %dx%d matrix (got %dx%d).\n", + dat->jacname, n, m, mxGetM(lhs[0]), mxGetN(lhs[0])); + ret=1; + } + else if(mxIsSparse(lhs[0])){ + fprintf(stderr, "levmar: '%s' should produce a real dense matrix (got a sparse one).\n", dat->jacname); + ret=1; + } + /* delete the matrix created by matlab */ + mxDestroyArray(lhs[0]); + } + + mexSetTrapFlag(0); /* on error terminate the MEX-file and return control to the MATLAB prompt */ + + return ret; +} + + +/* +[ret, p, info, covar]=levmar_der (f, j, p0, x, itmax, opts, 'unc' ...) +[ret, p, info, covar]=levmar_bc (f, j, p0, x, itmax, opts, 'bc', lb, ub, ...) +[ret, p, info, covar]=levmar_lec (f, j, p0, x, itmax, opts, 'lec', A, b, ...) +[ret, p, info, covar]=levmar_blec(f, j, p0, x, itmax, opts, 'blec', lb, ub, A, b, wghts, ...) +*/ + +void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *Prhs[]) +{ +register int i; +register double *pdbl; +mxArray **prhs=(mxArray **)&Prhs[0], *At; +struct mexdata mdata; +int len, status; +double *p, *p0, *ret, *x; +int m, n, havejac, Arows, itmax, nopts, mintype, nextra; +double opts[LM_OPTS_SZ]={LM_INIT_MU, LM_STOP_THRESH, LM_STOP_THRESH, LM_STOP_THRESH, LM_DIFF_DELTA}; +double info[LM_INFO_SZ]; +double *lb=NULL, *ub=NULL, *A=NULL, *b=NULL, *wghts=NULL, *covar=NULL; + + /* parse input args; start by checking their number */ + if((nrhs<5)) + matlabFmtdErrMsgTxt("levmar: at least 5 input arguments required (got %d).", nrhs); + if(nlhs>4) + matlabFmtdErrMsgTxt("levmar: too many output arguments (max. 4, got %d).", nlhs); + else if(nlhs<2) + matlabFmtdErrMsgTxt("levmar: too few output arguments (min. 2, got %d).", nlhs); + + /* note that in order to accommodate optional args, prhs & nrhs are adjusted accordingly below */ + + /** func **/ + /* first argument must be a string , i.e. a char row vector */ + if(mxIsChar(prhs[0])!=1) + mexErrMsgTxt("levmar: first argument must be a string."); + if(mxGetM(prhs[0])!=1) + mexErrMsgTxt("levmar: first argument must be a string (i.e. char row vector)."); + /* store supplied name */ + len=mxGetN(prhs[0])+1; + mdata.fname=mxCalloc(len, sizeof(char)); + status=mxGetString(prhs[0], mdata.fname, len); + if(status!=0) + mexErrMsgTxt("levmar: not enough space. String is truncated."); + + /** jac (optional) **/ + /* check whether second argument is a string */ + if(mxIsChar(prhs[1])==1){ + if(mxGetM(prhs[1])!=1) + mexErrMsgTxt("levmar: second argument must be a string (i.e. row vector)."); + /* store supplied name */ + len=mxGetN(prhs[1])+1; + mdata.jacname=mxCalloc(len, sizeof(char)); + status=mxGetString(prhs[1], mdata.jacname, len); + if(status!=0) + mexErrMsgTxt("levmar: not enough space. String is truncated."); + havejac=1; + + ++prhs; + --nrhs; + } + else{ + mdata.jacname=NULL; + havejac=0; + } + +#ifdef DEBUG + fflush(stderr); + fprintf(stderr, "LEVMAR: %s analytic Jacobian\n", havejac? "with" : "no"); +#endif /* DEBUG */ + +/* CHECK +if(!mxIsDouble(prhs[1]) || mxIsComplex(prhs[1]) || !(mxGetM(prhs[1])==1 && mxGetN(prhs[1])==1)) +*/ + + /** p0 **/ + /* the second required argument must be a real row or column vector */ + if(!mxIsDouble(prhs[1]) || mxIsComplex(prhs[1]) || !(mxGetM(prhs[1])==1 || mxGetN(prhs[1])==1)) + mexErrMsgTxt("levmar: p0 must be a real vector."); + p0=mxGetPr(prhs[1]); + /* determine if we have a row or column vector and retrieve its + * size, i.e. the number of parameters + */ + if(mxGetM(prhs[1])==1){ + m=mxGetN(prhs[1]); + mdata.isrow_p0=1; + } + else{ + m=mxGetM(prhs[1]); + mdata.isrow_p0=0; + } + /* copy input parameter vector to avoid destroying it */ + p=mxMalloc(m*sizeof(double)); + for(i=0; iLM_OPTS_SZ) + matlabFmtdErrMsgTxt("levmar: opts must have at most %d elements, got %d.", LM_OPTS_SZ, nopts); + else if(nopts<((havejac)? LM_OPTS_SZ-1 : LM_OPTS_SZ)) + matlabFmtdWarnMsgTxt("levmar: only the %d first elements of opts specified, remaining set to defaults.", nopts); + for(i=0; i=6 && mxIsChar(prhs[5])==1 && mxGetM(prhs[5])==1){ + char *minhowto; + + /* examine supplied name */ + len=mxGetN(prhs[5])+1; + minhowto=mxCalloc(len, sizeof(char)); + status=mxGetString(prhs[5], minhowto, len); + if(status!=0) + mexErrMsgTxt("levmar: not enough space. String is truncated."); + + for(i=0; minhowto[i]; ++i) + minhowto[i]=tolower(minhowto[i]); + if(!strncmp(minhowto, "unc", 3)) mintype=MIN_UNCONSTRAINED; + else if(!strncmp(minhowto, "bc", 2)) mintype=MIN_CONSTRAINED_BC; + else if(!strncmp(minhowto, "lec", 3)) mintype=MIN_CONSTRAINED_LEC; + else if(!strncmp(minhowto, "blec", 4)) mintype=MIN_CONSTRAINED_BLEC; + else matlabFmtdErrMsgTxt("levmar: unknown minimization type '%s'.", minhowto); + + mxFree(minhowto); + + ++prhs; + --nrhs; + } + else + mintype=MIN_UNCONSTRAINED; + + if(mintype==MIN_UNCONSTRAINED) goto extraargs; + + /* arguments below this point are optional and their presence depends + * upon the minimization type determined above + */ + /** lb, ub **/ + if(nrhs>=7 && (mintype==MIN_CONSTRAINED_BC || mintype==MIN_CONSTRAINED_BLEC)){ + /* check if the next two arguments are real row or column vectors */ + if(mxIsDouble(prhs[5]) && !mxIsComplex(prhs[5]) && (mxGetM(prhs[5])==1 || mxGetN(prhs[5])==1)){ + if(mxIsDouble(prhs[6]) && !mxIsComplex(prhs[6]) && (mxGetM(prhs[6])==1 || mxGetN(prhs[6])==1)){ + if((i=__MAX__(mxGetM(prhs[5]), mxGetN(prhs[5])))!=m) + matlabFmtdErrMsgTxt("levmar: lb must have %d elements, got %d.", m, i); + if((i=__MAX__(mxGetM(prhs[6]), mxGetN(prhs[6])))!=m) + matlabFmtdErrMsgTxt("levmar: ub must have %d elements, got %d.", m, i); + + lb=mxGetPr(prhs[5]); + ub=mxGetPr(prhs[6]); + + prhs+=2; + nrhs-=2; + } + } + } + + /** A, b **/ + if(nrhs>=7 && (mintype==MIN_CONSTRAINED_LEC || mintype==MIN_CONSTRAINED_BLEC)){ + /* check if the next two arguments are a real matrix and a real row or column vector */ + if(mxIsDouble(prhs[5]) && !mxIsComplex(prhs[5]) && mxGetM(prhs[5])>=1 && mxGetN(prhs[5])>=1){ + if(mxIsDouble(prhs[6]) && !mxIsComplex(prhs[6]) && (mxGetM(prhs[6])==1 || mxGetN(prhs[6])==1)){ + if((i=mxGetN(prhs[5]))!=m) + matlabFmtdErrMsgTxt("levmar: A must have %d columns, got %d.", m, i); + if((i=__MAX__(mxGetM(prhs[6]), mxGetN(prhs[6])))!=(Arows=mxGetM(prhs[5]))) + matlabFmtdErrMsgTxt("levmar: b must have %d elements, got %d.", Arows, i); + + At=prhs[5]; + b=mxGetPr(prhs[6]); + A=getTranspose(At); + + prhs+=2; + nrhs-=2; + } + } + } + + /* wghts */ + /* check if we have a weights vector */ + if(nrhs>=6 && mintype==MIN_CONSTRAINED_BLEC){ /* only check if we have seen both box & linear constraints */ + if(mxIsDouble(prhs[5]) && !mxIsComplex(prhs[5]) && (mxGetM(prhs[5])==1 || mxGetN(prhs[5])==1)){ + if(__MAX__(mxGetM(prhs[5]), mxGetN(prhs[5]))==m){ + wghts=mxGetPr(prhs[5]); + + ++prhs; + --nrhs; + } + } + } + /* arguments below this point are assumed to be extra arguments passed + * to every invocation of the fitting function and its Jacobian + */ + +extraargs: + /* handle any extra args and allocate memory for + * passing the current parameter estimate to matlab + */ + nextra=nrhs-5; + mdata.nrhs=nextra+1; + mdata.rhs=(mxArray **)mxMalloc(mdata.nrhs*sizeof(mxArray *)); + for(i=0; i3) /* covariance output required */ + covar=mxMalloc(m*m*sizeof(double)); + + /* invoke levmar */ + if(!lb && !ub){ + if(!A && !b){ /* no constraints */ + if(havejac) + status=dlevmar_der(func, jacfunc, p, x, m, n, itmax, opts, info, NULL, covar, (void *)&mdata); + else + status=dlevmar_dif(func, p, x, m, n, itmax, opts, info, NULL, covar, (void *)&mdata); +#ifdef DEBUG + fflush(stderr); + fprintf(stderr, "LEVMAR: calling dlevmar_der()/dlevmar_dif()\n"); +#endif /* DEBUG */ + } + else{ /* linear constraints */ +#ifdef HAVE_LAPACK + if(havejac) + status=dlevmar_lec_der(func, jacfunc, p, x, m, n, A, b, Arows, itmax, opts, info, NULL, covar, (void *)&mdata); + else + status=dlevmar_lec_dif(func, p, x, m, n, A, b, Arows, itmax, opts, info, NULL, covar, (void *)&mdata); +#else + mexErrMsgTxt("levmar: no linear constraints support, HAVE_LAPACK was not defined during MEX-file compilation."); +#endif /* HAVE_LAPACK */ + +#ifdef DEBUG + fflush(stderr); + fprintf(stderr, "LEVMAR: calling dlevmar_lec_der()/dlevmar_lec_dif()\n"); +#endif /* DEBUG */ + } + } + else{ + if(!A && !b){ /* box constraints */ + if(havejac) + status=dlevmar_bc_der(func, jacfunc, p, x, m, n, lb, ub, itmax, opts, info, NULL, covar, (void *)&mdata); + else + status=dlevmar_bc_dif(func, p, x, m, n, lb, ub, itmax, opts, info, NULL, covar, (void *)&mdata); +#ifdef DEBUG + fflush(stderr); + fprintf(stderr, "LEVMAR: calling dlevmar_bc_der()/dlevmar_bc_dif()\n"); +#endif /* DEBUG */ + } + else{ /* box & linear constraints */ +#ifdef HAVE_LAPACK + if(havejac) + status=dlevmar_blec_der(func, jacfunc, p, x, m, n, lb, ub, A, b, Arows, wghts, itmax, opts, info, NULL, covar, (void *)&mdata); + else + status=dlevmar_blec_dif(func, p, x, m, n, lb, ub, A, b, Arows, wghts, itmax, opts, info, NULL, covar, (void *)&mdata); +#else + mexErrMsgTxt("levmar: no box & linear constraints support, HAVE_LAPACK was not defined during MEX-file compilation."); +#endif /* HAVE_LAPACK */ + +#ifdef DEBUG + fflush(stderr); + fprintf(stderr, "LEVMAR: calling dlevmar_blec_der()/dlevmar_blec_dif()\n"); +#endif /* DEBUG */ + } + } +#ifdef DEBUG + fflush(stderr); + printf("LEVMAR: minimization returned %d in %g iter, reason %g\n\tSolution: ", status, info[5], info[6]); + for(i=0; i2){ + plhs[2]=mxCreateDoubleMatrix(1, LM_INFO_SZ, mxREAL); + pdbl=mxGetPr(plhs[2]); + for(i=0; i3){ + plhs[3]=mxCreateDoubleMatrix(m, m, mxREAL); + pdbl=mxGetPr(plhs[3]); + for(i=0; i +#include +#include +#include + +#include "lm.h" +#include "misc.h" + +#if !defined(LM_DBL_PREC) && !defined(LM_SNGL_PREC) +#error At least one of LM_DBL_PREC, LM_SNGL_PREC should be defined! +#endif + +#ifdef LM_SNGL_PREC +/* single precision (float) definitions */ +#define LM_REAL float +#define LM_PREFIX s + +#define LM_REAL_EPSILON FLT_EPSILON +#define __SUBCNST(x) x##F +#define LM_CNST(x) __SUBCNST(x) // force substitution + +#include "misc_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_EPSILON +#undef __SUBCNST +#undef LM_CNST +#endif /* LM_SNGL_PREC */ + +#ifdef LM_DBL_PREC +/* double precision definitions */ +#define LM_REAL double +#define LM_PREFIX d + +#define LM_REAL_EPSILON DBL_EPSILON +#define LM_CNST(x) (x) + +#include "misc_core.c" // read in core code + +#undef LM_REAL +#undef LM_PREFIX +#undef LM_REAL_EPSILON +#undef LM_CNST +#endif /* LM_DBL_PREC */ diff --git a/src/levmar/misc.h b/src/levmar/misc.h new file mode 100644 index 0000000000000000000000000000000000000000..48f42df61be0e6ea306a38f4b4531d2022f56c4e --- /dev/null +++ b/src/levmar/misc.h @@ -0,0 +1,97 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef _MISC_H_ +#define _MISC_H_ + +/* common prefix for BLAS subroutines. Leave undefined in case of no prefix. You might also need to modify LM_BLAS_PREFIX below */ +/* f2c'd BLAS */ +//#define LM_BLAS_PREFIX f2c_ +/* C BLAS */ +//#define LM_BLAS_PREFIX cblas_ + +/* common suffix for BLAS subroutines */ +//#define LM_BLAS_SUFFIX // define empty if a f2c_ or cblas_ prefix was defined for LM_BLAS_PREFIX above +#define LM_BLAS_SUFFIX _ // use this in case of no BLAS prefix + + +#define LCAT_(a, b) #a b +#define LCAT(a, b) LCAT_(a, b) // force substitution +#define RCAT_(a, b) a #b +#define RCAT(a, b) RCAT_(a, b) // force substitution + +#define __BLOCKSZ__ 32 /* block size for cache-friendly matrix-matrix multiply. It should be + * such that __BLOCKSZ__^2*sizeof(LM_REAL) is smaller than the CPU (L1) + * data cache size. Notice that a value of 32 when LM_REAL=double assumes + * an 8Kb L1 data cache (32*32*8=8K). This is a concervative choice since + * newer Pentium 4s have a L1 data cache of size 16K, capable of holding + * up to 45x45 double blocks. + */ +#define __BLOCKSZ__SQ (__BLOCKSZ__)*(__BLOCKSZ__) + +/* add a prefix in front of a token */ +#define LM_CAT__(a, b) a ## b +#define LM_CAT_(a, b) LM_CAT__(a, b) // force substitution +#define LM_ADD_PREFIX(s) LM_CAT_(LM_PREFIX, s) + +#ifdef __cplusplus +extern "C" { +#endif + +/* blocking-based matrix multiply */ +extern void slevmar_trans_mat_mat_mult(float *a, float *b, int n, int m); +extern void dlevmar_trans_mat_mat_mult(double *a, double *b, int n, int m); + +/* forward finite differences */ +extern void slevmar_fdif_forw_jac_approx(void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *hx, float *hxx, float delta, + float *jac, int m, int n, void *adata); +extern void dlevmar_fdif_forw_jac_approx(void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *hx, double *hxx, double delta, + double *jac, int m, int n, void *adata); + +/* central finite differences */ +extern void slevmar_fdif_cent_jac_approx(void (*func)(float *p, float *hx, int m, int n, void *adata), + float *p, float *hxm, float *hxp, float delta, + float *jac, int m, int n, void *adata); +extern void dlevmar_fdif_cent_jac_approx(void (*func)(double *p, double *hx, int m, int n, void *adata), + double *p, double *hxm, double *hxp, double delta, + double *jac, int m, int n, void *adata); + +/* e=x-y and ||e|| */ +extern float slevmar_L2nrmxmy(float *e, float *x, float *y, int n); +extern double dlevmar_L2nrmxmy(double *e, double *x, double *y, int n); + +/* covariance of LS fit */ +extern int slevmar_covar(float *JtJ, float *C, float sumsq, int m, int n); +extern int dlevmar_covar(double *JtJ, double *C, double sumsq, int m, int n); + +/* box constraints consistency check */ +extern int slevmar_box_check(float *lb, float *ub, int m); +extern int dlevmar_box_check(double *lb, double *ub, int m); + +/* Cholesky */ +extern int slevmar_chol(float *C, float *W, int m); +extern int dlevmar_chol(double *C, double *W, int m); + +#ifdef __cplusplus +} +#endif + +#endif /* _MISC_H_ */ diff --git a/src/levmar/misc_core.c b/src/levmar/misc_core.c new file mode 100644 index 0000000000000000000000000000000000000000..6ffa6d0dd68cf9e5631d965a540c2fb6f24ce144 --- /dev/null +++ b/src/levmar/misc_core.c @@ -0,0 +1,1110 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Levenberg - Marquardt non-linear minimization algorithm +// Copyright (C) 2004-05 Manolis Lourakis (lourakis at ics forth gr) +// Institute of Computer Science, Foundation for Research & Technology - Hellas +// Heraklion, Crete, Greece. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#ifndef LM_REAL // not included by misc.c +#error This file should not be compiled directly! +#endif + + +/* precision-specific definitions */ +#define LEVMAR_CHKJAC LM_ADD_PREFIX(levmar_chkjac) +#define LEVMAR_FDIF_FORW_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_forw_jac_approx) +#define LEVMAR_FDIF_CENT_JAC_APPROX LM_ADD_PREFIX(levmar_fdif_cent_jac_approx) +#define LEVMAR_TRANS_MAT_MAT_MULT LM_ADD_PREFIX(levmar_trans_mat_mat_mult) +#define LEVMAR_COVAR LM_ADD_PREFIX(levmar_covar) +#define LEVMAR_STDDEV LM_ADD_PREFIX(levmar_stddev) +#define LEVMAR_CORCOEF LM_ADD_PREFIX(levmar_corcoef) +#define LEVMAR_BOX_CHECK LM_ADD_PREFIX(levmar_box_check) +#define LEVMAR_L2NRMXMY LM_ADD_PREFIX(levmar_L2nrmxmy) + +#ifdef HAVE_LAPACK +#define LEVMAR_PSEUDOINVERSE LM_ADD_PREFIX(levmar_pseudoinverse) +static int LEVMAR_PSEUDOINVERSE(LM_REAL *A, LM_REAL *B, int m); + +/* BLAS matrix multiplication & LAPACK SVD routines */ +#ifdef LM_BLAS_PREFIX +#define GEMM LM_CAT_(LM_BLAS_PREFIX, LM_ADD_PREFIX(LM_CAT_(gemm, LM_BLAS_SUFFIX))) +#else +#define GEMM LM_ADD_PREFIX(LM_CAT_(gemm, LM_BLAS_SUFFIX)) +#endif +/* C := alpha*op( A )*op( B ) + beta*C */ +extern void GEMM(char *transa, char *transb, int *m, int *n, int *k, + LM_REAL *alpha, LM_REAL *a, int *lda, LM_REAL *b, int *ldb, LM_REAL *beta, LM_REAL *c, int *ldc); + +#define GESVD LM_ADD_PREFIX(gesvd_) +#define GESDD LM_ADD_PREFIX(gesdd_) +extern int GESVD(char *jobu, char *jobvt, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, LM_REAL *u, int *ldu, + LM_REAL *vt, int *ldvt, LM_REAL *work, int *lwork, int *info); + +/* lapack 3.0 new SVD routine, faster than xgesvd() */ +extern int GESDD(char *jobz, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, LM_REAL *u, int *ldu, LM_REAL *vt, int *ldvt, + LM_REAL *work, int *lwork, int *iwork, int *info); + +/* cholesky decomposition */ +#define POTF2 LM_ADD_PREFIX(potf2_) +extern int POTF2(char *uplo, int *n, LM_REAL *a, int *lda, int *info); + +#define LEVMAR_CHOLESKY LM_ADD_PREFIX(levmar_chol) + +#else +#define LEVMAR_LUINVERSE LM_ADD_PREFIX(levmar_LUinverse_noLapack) + +static int LEVMAR_LUINVERSE(LM_REAL *A, LM_REAL *B, int m); +#endif /* HAVE_LAPACK */ + +/* blocked multiplication of the transpose of the nxm matrix a with itself (i.e. a^T a) + * using a block size of bsize. The product is returned in b. + * Since a^T a is symmetric, its computation can be speeded up by computing only its + * upper triangular part and copying it to the lower part. + * + * More details on blocking can be found at + * http://www-2.cs.cmu.edu/afs/cs/academic/class/15213-f02/www/R07/section_a/Recitation07-SectionA.pdf + */ +void LEVMAR_TRANS_MAT_MAT_MULT(LM_REAL *a, LM_REAL *b, int n, int m) +{ +#ifdef HAVE_LAPACK /* use BLAS matrix multiply */ + +LM_REAL alpha=LM_CNST(1.0), beta=LM_CNST(0.0); + /* Fool BLAS to compute a^T*a avoiding transposing a: a is equivalent to a^T in column major, + * therefore BLAS computes a*a^T with a and a*a^T in column major, which is equivalent to + * computing a^T*a in row major! + */ + GEMM("N", "T", &m, &m, &n, &alpha, a, &m, a, &m, &beta, b, &m); + +#else /* no LAPACK, use blocking-based multiply */ + +register int i, j, k, jj, kk; +register LM_REAL sum, *bim, *akm; +const int bsize=__BLOCKSZ__; + +#define __MIN__(x, y) (((x)<=(y))? (x) : (y)) +#define __MAX__(x, y) (((x)>=(y))? (x) : (y)) + + /* compute upper triangular part using blocking */ + for(jj=0; jj R^n: Given a p in R^m it yields hx in R^n + * jacf points to a function implementing the Jacobian of func, whose correctness + * is to be tested. Given a p in R^m, jacf computes into the nxm matrix j the + * Jacobian of func at p. Note that row i of j corresponds to the gradient of + * the i-th component of func, evaluated at p. + * p is an input array of length m containing the point of evaluation. + * m is the number of variables + * n is the number of functions + * adata points to possible additional data and is passed uninterpreted + * to func, jacf. + * err is an array of length n. On output, err contains measures + * of correctness of the respective gradients. if there is + * no severe loss of significance, then if err[i] is 1.0 the + * i-th gradient is correct, while if err[i] is 0.0 the i-th + * gradient is incorrect. For values of err between 0.0 and 1.0, + * the categorization is less certain. In general, a value of + * err[i] greater than 0.5 indicates that the i-th gradient is + * probably correct, while a value of err[i] less than 0.5 + * indicates that the i-th gradient is probably incorrect. + * + * + * The function does not perform reliably if cancellation or + * rounding errors cause a severe loss of significance in the + * evaluation of a function. therefore, none of the components + * of p should be unusually small (in particular, zero) or any + * other value which may cause loss of significance. + */ + +void LEVMAR_CHKJAC( + void (*func)(LM_REAL *p, LM_REAL *hx, int m, int n, void *adata), + void (*jacf)(LM_REAL *p, LM_REAL *j, int m, int n, void *adata), + LM_REAL *p, int m, int n, void *adata, LM_REAL *err) +{ +LM_REAL factor=LM_CNST(100.0); +LM_REAL one=LM_CNST(1.0); +LM_REAL zero=LM_CNST(0.0); +LM_REAL *fvec, *fjac, *pp, *fvecp, *buf; + +register int i, j; +LM_REAL eps, epsf, temp, epsmch; +LM_REAL epslog; +int fvec_sz=n, fjac_sz=n*m, pp_sz=m, fvecp_sz=n; + + epsmch=LM_REAL_EPSILON; + eps=(LM_REAL)sqrt(epsmch); + + buf=(LM_REAL *)malloc((fvec_sz + fjac_sz + pp_sz + fvecp_sz)*sizeof(LM_REAL)); + if(!buf){ + fprintf(stderr, LCAT(LEVMAR_CHKJAC, "(): memory allocation request failed\n")); + exit(1); + } + fvec=buf; + fjac=fvec+fvec_sz; + pp=fjac+fjac_sz; + fvecp=pp+pp_sz; + + /* compute fvec=func(p) */ + (*func)(p, fvec, m, n, adata); + + /* compute the Jacobian at p */ + (*jacf)(p, fjac, m, n, adata); + + /* compute pp */ + for(j=0; j=epsf*FABS(fvec[i])) + temp=eps*FABS((fvecp[i]-fvec[i])/eps - err[i])/(FABS(fvec[i])+FABS(fvecp[i])); + err[i]=one; + if(temp>epsmch && temp=eps) err[i]=zero; + } + + free(buf); + + return; +} + +#ifdef HAVE_LAPACK +/* + * This function computes the pseudoinverse of a square matrix A + * into B using SVD. A and B can coincide + * + * The function returns 0 in case of error (e.g. A is singular), + * the rank of A if successfull + * + * A, B are mxm + * + */ +static int LEVMAR_PSEUDOINVERSE(LM_REAL *A, LM_REAL *B, int m) +{ +LM_REAL *buf=NULL; +int buf_sz=0; +static LM_REAL eps=LM_CNST(-1.0); + +register int i, j; +LM_REAL *a, *u, *s, *vt, *work; +int a_sz, u_sz, s_sz, vt_sz, tot_sz; +LM_REAL thresh, one_over_denom; +int info, rank, worksz, *iwork, iworksz; + + /* calculate required memory size */ + worksz=16*m; /* more than needed */ + iworksz=8*m; + a_sz=m*m; + u_sz=m*m; s_sz=m; vt_sz=m*m; + + tot_sz=iworksz*sizeof(int) + (a_sz + u_sz + s_sz + vt_sz + worksz)*sizeof(LM_REAL); + + buf_sz=tot_sz; + buf=(LM_REAL *)malloc(buf_sz); + if(!buf){ + fprintf(stderr, RCAT("memory allocation in ", LEVMAR_PSEUDOINVERSE) "() failed!\n"); + exit(1); + } + + iwork=(int *)buf; + a=(LM_REAL *)(iwork+iworksz); + /* store A (column major!) into a */ + for(i=0; i0.0; eps*=LM_CNST(0.5)) + ; + eps*=LM_CNST(2.0); + } + + /* compute the pseudoinverse in B */ + for(i=0; ithresh; rank++){ + one_over_denom=LM_CNST(1.0)/s[rank]; + + for(j=0; jmax) + max=tmp; + if(max==0.0){ + fprintf(stderr, RCAT("Singular matrix A in ", LEVMAR_LUINVERSE) "()!\n"); + free(buf); + + return 0; + } + work[i]=LM_CNST(1.0)/max; + } + + for(j=0; j=max){ + max=tmp; + maxi=i; + } + } + if(j!=maxi){ + for(k=0; k=0; --i){ + sum=x[i]; + for(j=i+1; jub[i]) return 0; + + return 1; +} + +#ifdef HAVE_LAPACK + +/* compute the Cholesky decompostion of C in W, s.t. C=W^t W and W is upper triangular */ +int LEVMAR_CHOLESKY(LM_REAL *C, LM_REAL *W, int m) +{ +register int i, j; +int info; + + /* copy weights array C to W (in column-major order!) so that LAPACK won't destroy it */ + for(i=0; i>bpwr)< (maxarg2) ?\ + (maxarg1) : (maxarg2)) +#define PYTHAG(a,b) ((at=fabs(a)) > (bt=fabs(b)) ? \ + (ct=bt/at,at*sqrt(1.0+ct*ct)) \ + : (bt ? (ct=at/bt,bt*sqrt(1.0+ct*ct)): 0.0)) +#define SIGN(a,b) ((b) >= 0.0 ? fabs(a) : -fabs(a)) +#define TOL 1.0e-11 + + int flag,i,its,j,jj,k,l,mmi,nm, nml, rank; + LM_REAL *vmat,*wmat, + *w,*ap,*ap0,*ap1,*ap10,*rv1p,*vp,*vp0,*vp1,*vp10, + *rv1,*tmp, + c,f,h,s,x,y,z, + anorm, g, scale, + at,bt,ct,maxarg1,maxarg2, + thresh, wmax; + + anorm = g = scale = 0.0; + + rv1=(LM_REAL *)malloc(m*sizeof(LM_REAL)); + tmp=(LM_REAL *)malloc(m*sizeof(LM_REAL)); + vmat=(LM_REAL *)malloc(m*m*sizeof(LM_REAL)); + wmat=(LM_REAL *)malloc(m*sizeof(LM_REAL)); + + l = nm = nml = 0; /* To avoid gcc -Wall warnings */ + for (i=0;i=0;i--) + { + if (i < m-1) + { + if (g) + { + ap0 = a+l*m+i; + vp0 = vmat+i*m+l; + vp10 = vmat+l*m+l; + g *= *ap0; + for (ap=ap0,vp=vp0,j=nml; j--; ap+=m) + *(vp++) = *ap/g; + for (j=nml; j--; vp10+=m) + { + for (s=0.0,ap=ap0,vp1=vp10,k=nml; k--; ap+=m) + s += *ap**(vp1++); + for (vp=vp0,vp1=vp10,k=nml; k--;) + *(vp1++) += s**(vp++); + } + } + vp = vmat+l*m+i; + vp1 = vmat+i*m+l; + for (j=nml; j--; vp+=m) + *vp = *(vp1++) = 0.0; + } + vmat[i*m+i]=1.0; + g=rv1[i]; + l=i; + nml = m-l; + } + + for (i=m; --i>=0;) + { + l=i+1; + nml = m-l; + mmi=m-i; + g=wmat[i]; + ap0 = a+i*m+i; + ap10 = ap0 + m; + for (ap=ap10,j=nml;j--;ap+=m) + *ap=0.0; + if (g) + { + g=1.0/g; + for (j=nml;j--; ap10+=m) + { + for (s=0.0,ap=ap0,ap1=ap10,k=mmi; --k;) + s += *(++ap)**(++ap1); + f = (s/(*ap0))*g; + for (ap=ap0,ap1=ap10,k=mmi;k--;) + *(ap1++) += f**(ap++); + } + for (ap=ap0,j=mmi;j--;) + *(ap++) *= g; + } + else + for (ap=ap0,j=mmi;j--;) + *(ap++)=0.0; + ++(*ap0); + } + + for (k=m; --k>=0;) + { + for (its=0;its<100;its++) + { + flag=1; + for (l=k;l>=0;l--) + { + nm=l-1; + if (fabs(rv1[l]) <= anorm*TOL) + { + flag=0; + break; + } + if (fabs(wmat[nm]) <= anorm*TOL) + break; + } + if (flag) + { + c=0.0; + s=1.0; + ap0 = a+nm*m; + ap10 = a+l*m; + for (i=l; i<=k; i++,ap10+=m) + { + f=s*rv1[i]; + if (fabs(f) <= anorm*TOL) + break; + g=wmat[i]; + h=PYTHAG(f,g); + wmat[i]=h; + h=1.0/h; + c=g*h; + s=(-f*h); + for (ap=ap0,ap1=ap10,j=m; j--;) + { + z = *ap1; + y = *ap; + *(ap++) = y*c+z*s; + *(ap1++) = z*c-y*s; + } + } + } + z=wmat[k]; + if (l == k) + { + if (z < 0.0) + { + wmat[k] = -z; + vp = vmat+k*m; + for (j=m; j--; vp++) + *vp = (-*vp); + } + break; + } + x=wmat[l]; + nm=k-1; + y=wmat[nm]; + g=rv1[nm]; + h=rv1[k]; + f=((y-z)*(y+z)+(g-h)*(g+h))/(2.0*h*y); + g=PYTHAG(f,1.0); + f=((x-z)*(x+z)+h*((y/(f+SIGN(g,f)))-h))/x; + c=s=1.0; + ap10 = a+l*m; + vp10 = vmat+l*m; + for (j=l;j<=nm;j++,ap10+=m,vp10+=m) + { + i=j+1; + g=rv1[i]; + y=wmat[i]; + h=s*g; + g=c*g; + z=PYTHAG(f,h); + rv1[j]=z; + c=f/z; + s=h/z; + f=x*c+g*s; + g=g*c-x*s; + h=y*s; + y=y*c; + for (vp=(vp1=vp10)+m,jj=m; jj--;) + { + z = *vp; + x = *vp1; + *(vp1++) = x*c+z*s; + *(vp++) = z*c-x*s; + } + z=PYTHAG(f,h); + wmat[j]=z; + if (z) + { + z=1.0/z; + c=f*z; + s=h*z; + } + f=c*g+s*y; + x=c*y-s*g; + for (ap=(ap1=ap10)+m,jj=m; jj--;) + { + z = *ap; + y = *ap1; + *(ap1++) = y*c+z*s; + *(ap++) = z*c-y*s; + } + } + rv1[l]=0.0; + rv1[k]=f; + wmat[k]=x; + } + } + + wmax=0.0; + w = wmat; + for (j=m;j--; w++) + if (*w > wmax) + wmax=*w; + thresh=TOL*wmax; + rank = 0; + w = wmat; + for (j=m;j--; w++) + if (*w <= thresh) + *w = 0.0; + else + { + rank++; + *w = 1.0 / *w; + } + + for (j=0; j [][-c ][- ]\n" \ -"> to dump a default configuration file: " EXECUTABLE " -d \n" \ -"> to dump a default extended configuration file: " EXECUTABLE " -dd \n" +"> to dump a default configuration file: " EXECUTABLE " -d \n" \ +"> to dump a default extended configuration file: " EXECUTABLE " -dd \n" \ +"> to dump a full list of measurement parameters: " EXECUTABLE " -dp \n" extern const char notokstr[]; +extern keystruct objkey[]; /********************************** main ************************************/ int main(int argc, char *argv[]) @@ -80,7 +82,12 @@ int main(int argc, char *argv[]) strcpy(prefs.prefs_name, argv[++a]); break; case 'd': - dumpprefs(opt2=='d' ? 1 : 0); + if (opt2=='d') + dumpprefs(1); + else if (opt2=='p') + dumpparams(); + else + dumpprefs(0); exit(EXIT_SUCCESS); break; case 'v': @@ -114,12 +121,14 @@ int main(int argc, char *argv[]) } readprefs(prefs.prefs_name, argkey, argval, narg); + preprefs(); free(argkey); free(argval); makeit(); + endprefs(); NFPRINTF(OUTPUT, ""); NPRINTF(OUTPUT, "> All done (in %.0f s)\n", prefs.time_diff); diff --git a/src/makeit.c b/src/makeit.c index de85cbb5e9b832eacb6b6209c8d3b5e9ef36e6c0..02c1801fd568915853a112ce1a9bf6aef157adec 100644 --- a/src/makeit.c +++ b/src/makeit.c @@ -9,7 +9,7 @@ * * Contents: main program. * -* Last modify: 14/07/2006 +* Last modify: 20/11/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -31,16 +31,22 @@ #include "assoc.h" #include "back.h" #include "check.h" +#include "fft.h" #include "field.h" #include "filter.h" #include "growth.h" #include "interpolate.h" +#include "pattern.h" #include "psf.h" +#include "profit.h" #include "som.h" #include "weight.h" #include "xml.h" -time_t thetimet, thetimet2; +static int selectext(char *filename); +time_t thetimet, thetimet2; +extern profitstruct *theprofit; +extern char profname[][32]; /******************************** makeit *************************************/ /* @@ -53,9 +59,12 @@ void makeit() picstruct *dfield, *field,*pffield[MAXFLAG], *wfield,*dwfield; catstruct *imacat; tabstruct *imatab; + patternstruct *pattern; static time_t thetime1, thetime2; struct tm *tm; - int i, nok, ntab, next; + int nflag[MAXFLAG], + i, nok, ntab, next, ntabmax, forcextflag, + nima0,nima1, nweight0,nweight1, npat; /* Install error logging */ error_installfunc(write_error); @@ -84,7 +93,7 @@ void makeit() readcatparams(prefs.param_name); useprefs(); /* update things accor. to prefs parameters */ - if (prefs.psf_flag) + if (prefs.psf_flag || prefs.prof_flag) { NFPRINTF(OUTPUT, "Reading PSF information"); thepsf = psf_load(prefs.psf_name[0]); @@ -95,6 +104,51 @@ void makeit() useprefs(); } + if (prefs.prof_flag) + { + fft_init(); +/* Create profiles at full resolution */ + NFPRINTF(OUTPUT, "Preparing profile models"); + theprofit = profit_init(thepsf); + changecatparamarrays("VECTOR_PROF", &theprofit->nparam, 1); + changecatparamarrays("VECTOR_PROFERR", &theprofit->nparam, 1); + if (prefs.pattern_flag) + { + npat = prefs.prof_disk_patternvectorsize; + if (npatsize[2]; + changecatparamarrays("DISK_PATTERN_VECTOR", &npat, 1); + } + if (FLAG(obj2.prof_disk_patternmodvector)) + { + npat = pattern->ncomp*pattern->nfreq; + changecatparamarrays("DISK_PATTERNMOD_VECTOR", &npat, 1); + } + if (FLAG(obj2.prof_disk_patternargvector)) + { + npat = pattern->ncomp*pattern->nfreq; + changecatparamarrays("DISK_PATTERNARG_VECTOR", &npat, 1); + } + pattern_end(pattern); + } + QPRINTF(OUTPUT, "Fitting model: "); + for (i=0; inprof; i++) + { + if (i) + QPRINTF(OUTPUT, "+"); + QPRINTF(OUTPUT, "%s", profname[theprofit->prof[i]->code]); + } + QPRINTF(OUTPUT, "\n"); + } + if (prefs.filter_flag) { NFPRINTF(OUTPUT, "Reading detection filter"); @@ -128,21 +182,47 @@ void makeit() if (prefs.growth_flag) initgrowth(); -/* Compute the number of valid input extensions */ +/* Allocate memory for multidimensional catalog parameter arrays */ + alloccatparams(); + useprefs(); + +/* Check if a specific extension should be loaded */ + if ((nima0=selectext(prefs.image_name[0])) != RETURN_ERROR) + { + forcextflag = 1; + ntabmax = next = 1; + } + else + forcextflag = 0; + if (!(imacat = read_cat(prefs.image_name[0]))) error(EXIT_FAILURE, "*Error*: cannot open ", prefs.image_name[0]); close_cat(imacat); imatab = imacat->tab; - next = 0; - for (ntab = 0 ; ntabntab; ntab++, imatab = imatab->nexttab) + + if (!forcextflag) { -/*-- Check for the next valid image extension */ - if ((imatab->naxis < 2) + ntabmax = imacat->ntab; +/*-- Compute the number of valid input extensions */ + next = 0; + for (ntab = 0 ; ntabntab; ntab++, imatab = imatab->nexttab) + { +/*---- Check for the next valid image extension */ + if ((imatab->naxis < 2) || !strncmp(imatab->xtension, "BINTABLE", 8) || !strncmp(imatab->xtension, "ASCTABLE", 8)) - continue; - next++; + continue; + next++; + } } + +/* Do the same for other data (but do not force single extension mode) */ + nima1 = selectext(prefs.image_name[1]); + nweight0 = selectext(prefs.wimage_name[0]); + nweight1 = selectext(prefs.wimage_name[1]); + for (i=0; intab; ntab++, imatab = imatab->nexttab) + for (ntab = 0 ; ntabnexttab) { /*-- Check for the next valid image extension */ - if ((imatab->naxis < 2) + if (!forcextflag && ((imatab->naxis < 2) || !strncmp(imatab->xtension, "BINTABLE", 8) - || !strncmp(imatab->xtension, "ASCTABLE", 8)) + || !strncmp(imatab->xtension, "ASCTABLE", 8))) continue; nok++; @@ -190,8 +269,10 @@ void makeit() if (prefs.dimage_flag) { /*---- Init the Detection and Measurement-images */ - dfield = newfield(prefs.image_name[0], DETECT_FIELD, nok); - field = newfield(prefs.image_name[1], MEASURE_FIELD, nok); + dfield = newfield(prefs.image_name[0], DETECT_FIELD, + nima0<0? nok:nima0); + field = newfield(prefs.image_name[1], MEASURE_FIELD, + nima1<0? nok:nima1); if ((field->width!=dfield->width) || (field->height!=dfield->height)) error(EXIT_FAILURE, "*Error*: Frames have different sizes",""); /*---- Prepare interpolation */ @@ -202,7 +283,9 @@ void makeit() } else { - field = newfield(prefs.image_name[0], DETECT_FIELD | MEASURE_FIELD, nok); + field = newfield(prefs.image_name[0], DETECT_FIELD | MEASURE_FIELD, + nima0<0? nok:nima0); + /*-- Prepare interpolation */ if ((prefs.dweight_flag || prefs.weight_flag) && prefs.interp_type[0] == INTERP_ALL) @@ -222,7 +305,7 @@ void makeit() { /*-------- First: the "measurement" weights */ wfield = newweight(prefs.wimage_name[1],field,prefs.weight_type[1], - nok); + nweight1<0? nok:nweight1); wtype = prefs.weight_type[1]; interpthresh = prefs.weight_thresh[1]; /*-------- Convert the interpolation threshold to variance units */ @@ -239,13 +322,13 @@ void makeit() if (prefs.weight_type[0] == WEIGHT_FROMINTERP) { dwfield=newweight(prefs.wimage_name[0],wfield,prefs.weight_type[0], - nok); + nweight0<0? nok:nweight0); weight_to_var(wfield, &interpthresh, 1); } else { dwfield = newweight(prefs.wimage_name[0], dfield?dfield:field, - prefs.weight_type[0], nok); + prefs.weight_type[0], nweight0<0? nok:nweight0); weight_to_var(dwfield, &interpthresh, 1); } dwfield->weight_thresh = interpthresh; @@ -258,7 +341,7 @@ void makeit() { /*------ Single-weight-map mode */ wfield = newweight(prefs.wimage_name[0], dfield?dfield:field, - prefs.weight_type[0], nok); + prefs.weight_type[0], nweight0<0? nok:nweight0); wtype = prefs.weight_type[0]; interpthresh = prefs.weight_thresh[0]; /*------ Convert the interpolation threshold to variance units */ @@ -273,7 +356,8 @@ void makeit() /*-- Init the FLAG-images */ for (i=0; iwidth!=field->width) || (pffield[i]->height!=field->height)) error(EXIT_FAILURE, @@ -424,7 +508,13 @@ void makeit() if (prefs.growth_flag) endgrowth(); - if (prefs.psf_flag) + if (prefs.prof_flag) + { + profit_end(theprofit); + fft_end(); + } + + if (prefs.psf_flag || prefs.prof_flag) psf_end(thepsf,thepsfit); /*?*/ if (prefs.dpsf_flag) @@ -474,6 +564,34 @@ void initglob() } +/****** selectext ************************************************************ +PROTO int selectext(char *filename) +PURPOSE Return the user-selected extension number [%d] from the file name. +INPUT Filename character string. +OUTPUT Extension number, or RETURN_ERROR if nos extension specified. +NOTES The bracket and its extension number are removed from the filename if + found. +AUTHOR E. Bertin (IAP) +VERSION 08/10/2007 + ***/ +static int selectext(char *filename) + { + char *bracl,*bracr; + int next; + + if (filename && (bracl=strrchr(filename, '['))) + { + *bracl = '\0'; + if ((bracr=strrchr(bracl+1, ']'))) + *bracr = '\0'; + next = strtol(bracl+1, NULL, 0); + return next; + } + + return RETURN_ERROR; + } + + /****** write_error ******************************************************** PROTO int write_error(char *msg1, char *msg2) PURPOSE Manage files in case of a catched error diff --git a/src/param.h b/src/param.h index 987b656d86d95654b01577e9e5448845d6929b43..8caee3849ec3f37aa2e7345c7bec47692d3e298c 100644 --- a/src/param.h +++ b/src/param.h @@ -9,7 +9,7 @@ * * Contents: parameter list for catalog data. * -* Last modify: 28/09/2006 +* Last modify: 18/05/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -103,19 +103,6 @@ keystruct objkey[] = { &outobj2.magerr_best, H_FLOAT, T_FLOAT, "%8.4f", "mag", "stat.stdev;phot.mag", "mag"}, - {"FLUX_PROFILE", "Flux weighted by the FILTERed profile", - &outobj2.flux_prof, H_FLOAT, T_FLOAT, "%12.7g", "count" - "phot.flux", "ct"}, - {"FLUXERR_PROFILE", "RMS error for PROFILE flux", - &outobj2.fluxerr_prof, H_FLOAT, T_FLOAT, "%12.7g", "count", - "stat.stdev;phot.flux", "ct"}, - {"MAG_PROFILE", "Magnitude weighted by the FILTERed profile", - &outobj2.mag_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", - "phot.mag", "mag"}, - {"MAGERR_PROFILE", "RMS error for MAG_PROFILE", - &outobj2.magerr_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", - "stat.stdev;phot.mag", "mag"}, - {"FLUX_WIN", "Gaussian-weighted flux", &outobj2.flux_win, H_FLOAT, T_FLOAT, "%12.7g", "count", "phot.flux", "ct"}, @@ -413,7 +400,7 @@ keystruct objkey[] = { "src.impactParam;pos.errorEllipse", "deg-2"}, {"ERRA_IMAGE", "RMS position error along major axis", - &outobj2.poserr_a, H_FLOAT, T_FLOAT, "%8.4f", "pixel" + &outobj2.poserr_a, H_FLOAT, T_FLOAT, "%8.4f", "pixel", "stat.stdev;stat.max;pos.errorEllipse;instr.det;meta.main", "pix"}, {"ERRB_IMAGE", "RMS position error along minor axis", &outobj2.poserr_b, H_FLOAT, T_FLOAT, "%8.4f", "pixel", @@ -473,7 +460,8 @@ keystruct objkey[] = { "pos.eq.ra", "deg"}, {"DELTAWIN_B1950", "Windowed declination (B1950)", &outobj2.winpos_delta1950, H_FLOAT, T_DOUBLE, "%+11.7f", "deg", - "pos.eq.deg", "deg"}, + "pos.eq.dec", "deg"}, + {"X2WIN_IMAGE", "Windowed variance along x", &outobj2.win_mx2, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", "src.impactParam;instr.det", "pix2"}, @@ -865,9 +853,9 @@ keystruct objkey[] = { {"PC", "Principal components", &outobj2.vector_pc, H_FLOAT, T_FLOAT, "%15.10e", "", "src.morph.param", "", 1, &prefs.pc_vectorsize}, -/* - {"RETINOUT", T_FLOAT, &outobj.retinout, "%13g "}, -*/ + +#include "paramprofit.h" + {""} }; diff --git a/src/paramprofit.h b/src/paramprofit.h new file mode 100644 index 0000000000000000000000000000000000000000..318176d6e2998b11c578ebe1146434c815bcb63f --- /dev/null +++ b/src/paramprofit.h @@ -0,0 +1,449 @@ +/* + paramprofit.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: SExtractor +* +* Author: E.BERTIN (IAP) +* +* Contents: Model-fitting parameter list for catalog data. +* +* Last modify: 25/09/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + + {"VECTOR_MODEL", "Model-fitting coefficients", + &outobj2.prof_vector, H_FLOAT, T_FLOAT, "%12.4g", "", + "stat.fit.param;src.morph.param", "", 1, &prefs.prof_vectorsize}, + {"VECTOR_MODELERR", "Model-fitting coefficient uncertainties", + &outobj2.prof_errvector, H_FLOAT, T_FLOAT, "%12.4g", "", + "stat.stdev;stat.fit;src.morph.param", "", 1, + &prefs.prof_errvectorsize}, + {"CHI2_MODEL", "Reduced Chi2 of the fit", + &outobj2.prof_chi2, H_FLOAT, T_FLOAT, "%12.7g", "", + "stat.fit.chi2;src.morph", ""}, + {"FLAGS_MODEL", "Model-fitting flags", + &outobj2.prof_flag, H_INT, T_BYTE, "%3d", "", + "meta.code;stat.fit;src.morph", ""}, + {"NITER_MODEL", "Number of iterations for model-fitting", + &outobj2.prof_niter, H_INT, T_SHORT, "%3d", "", + "meta.number;stat.fit;src.morph", ""}, + {"FLUX_MODEL", "Flux from model-fitting", + &outobj2.flux_prof, H_FLOAT, T_FLOAT, "%12.7g", "count", + "phot.count;stat.fit.param", "ct"}, + {"FLUXERR_MODEL", "RMS error on model-fitting flux", + &outobj2.fluxerr_prof, H_FLOAT, T_FLOAT, "%12.7g", "count", + "stat.error;phot.count;stat.fit.param", "ct"}, + {"MAG_MODEL", "Magnitude from model-fitting", + &outobj2.mag_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "phot.mag;stat.fit.param", "mag"}, + {"MAGERR_MODEL", "RMS error on model-fitting magnitude", + &outobj2.mag_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "stat.error;phot.mag;stat.fit.param", "mag"}, + + {"XMODEL_IMAGE", "X coordinate from model-fitting", + &outobj2.x_prof, H_FLOAT, T_FLOAT, "%10.3f", "pixel", + "pos.cartesian.x;stat.fit.param;instr.det;meta.main", "pix"}, + {"YMODEL_IMAGE", "Y coordinate from model-fitting", + &outobj2.y_prof, H_FLOAT, T_FLOAT, "%10.3f", "pixel", + "pos.cartesian.y;stat.fit.param;instr.det;meta.main", "pix"}, + + {"XMODEL_WORLD", "Fitted position along world x axis", + &outobj2.xw_prof, H_FLOAT, T_DOUBLE, "%15.10e", "deg", + "pos.eq.ra;stat.fit.param", "deg"}, + {"YMODEL_WORLD", "Fitted position along world y axis", + &outobj2.yw_prof, H_FLOAT, T_DOUBLE, "%15.10e", "deg", + "pos.eq.dec;stat.fit.param", "deg"}, + + {"ALPHAMODEL_SKY", "Fitted position along right ascension (native)", + &outobj2.alphas_prof, H_FLOAT, T_DOUBLE, "%11.7f", "deg", + "pos.eq.ra;stat.fit.param", "deg"}, + {"DELTAMODEL_SKY", "Fitted position along declination (native)", + &outobj2.deltas_prof, H_FLOAT, T_DOUBLE, "%+11.7f", "deg", + "pos.eq.dec;stat.fit.param", "deg"}, + + {"ALPHAMODEL_J2000", "Fitted position along right ascension (J2000)", + &outobj2.alpha2000_prof, H_FLOAT, T_DOUBLE, "%11.7f", "deg", + "pos.eq.ra;stat.fit.param", "deg"}, + {"DELTAMODEL_J2000", "Fitted position along declination (J2000)", + &outobj2.delta2000_prof, H_FLOAT, T_DOUBLE, "%+11.7f", "deg", + "pos.eq.dec;stat.fit.param", "deg"}, + + {"ALPHAMODEL_B1950", "Fitted position along right ascension (B1950)", + &outobj2.alpha1950_prof, H_FLOAT, T_DOUBLE, "%11.7f", "deg", + "pos.eq.ra;stat.fit.param", "deg"}, + {"DELTAMODEL_B1950", "Fitted position along declination (B1950)", + &outobj2.delta1950_prof, H_FLOAT, T_DOUBLE, "%+11.7f", "deg", + "pos.eq.dec;stat.fit.param", "deg"}, + + {"ERRX2MODEL_IMAGE", "Variance of fitted position along x", + &outobj2.poserrmx2_prof, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "stat.variance;pos.errorEllipse;stat.fit.param;instr.det", "pix2"}, + {"ERRY2MODEL_IMAGE", "Variance of fitted position along y", + &outobj2.poserrmy2_prof, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "stat.variance;pos.errorEllipse;stat.fit.param;instr.det", "pix2"}, + {"ERRXYMODEL_IMAGE", "Covariance of fitted position between x and y", + &outobj2.poserrmxy_prof, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "stat.covariance;pos.errorEllipse;stat.fit.param;instr.det", "pix2"}, + {"ERRX2MODEL_WORLD", "Variance of fitted position along X-WORLD (alpha)", + &outobj2.poserrmx2w_prof, H_EXPO, T_DOUBLE, "%15.10e", "deg**2", + "stat.variance;pos.errorEllipse;stat.fit.param", "deg2"}, + {"ERRY2MODEL_WORLD", "Variance of fitted position along Y-WORLD (delta)", + &outobj2.poserrmy2w_prof, H_EXPO, T_DOUBLE, "%15.10e", "deg**2", + "stat.variance;pos.errorEllipse;stat.fit.param", "deg2"}, + {"ERRXYMODEL_WORLD", "Covariance of fitted position X-WORLD/Y-WORLD", + &outobj2.poserrmxyw_prof, H_EXPO, T_DOUBLE, "%15.10e", "deg**2", + "stat.covariance;pos.errorEllipse;stat.fit.param", "deg2"}, + + {"ERRCXXMODEL_IMAGE", "Cxx error ellipse parameter of fitted position", + &outobj2.poserrcxx_prof, H_EXPO, T_FLOAT, "%12.7g", "pixel**(-2)", + "src.impactParam;pos.errorEllipse;stat.fit.param;instr.det", "pix-2"}, + {"ERRCYYMODEL_IMAGE", "Cyy error ellipse parameter of fitted position", + &outobj2.poserrcyy_prof, H_EXPO, T_FLOAT, "%12.7g", "pixel**(-2)", + "src.impactParam;pos.errorEllipse;stat.fit.param;instr.det", "pix-2"}, + {"ERRCXYMODEL_IMAGE", "Cxy error ellipse parameter of fitted position", + &outobj2.poserrcxy_prof, H_EXPO, T_FLOAT, "%12.7g", "pixel**(-2)", + "src.impactParam;pos.errorEllipse;stat.fit.param;instr.det", "pix-2"}, + {"ERRCXXMODEL_WORLD", "Cxx fitted error ellipse parameter (WORLD units)", + &outobj2.poserrcxxw_prof, H_EXPO, T_FLOAT, "%12.7g", "deg**(-2)", + "src.impactParam;pos.errorEllipse;stat.fit.param", "deg-2"}, + {"ERRCYYMODEL_WORLD", "Cyy fitted error ellipse parameter (WORLD units)", + &outobj2.poserrcyyw_prof, H_EXPO, T_FLOAT, "%12.7g", "deg**(-2)", + "src.impactParam;pos.errorEllipse;stat.fit.param", "deg-2"}, + {"ERRCXYMODEL_WORLD", "Cxy fitted error ellipse parameter (WORLD units)", + &outobj2.poserrcxyw_prof, H_EXPO, T_FLOAT, "%12.7g", "deg**(-2)", + "src.impactParam;pos.errorEllipsestat.fit.param", "deg-2"}, + + {"ERRAMODEL_IMAGE", "RMS error of fitted position along major axis", + &outobj2.poserra_prof, H_FLOAT, T_FLOAT, "%8.4f", "pixel", + "stat.stdev;stat.max;pos.errorEllipse;stat.fit.param;instr.det", "pix"}, + {"ERRBMODEL_IMAGE", "RMS error of fitted position along minor axis", + &outobj2.poserrb_prof, H_FLOAT, T_FLOAT, "%8.4f", "pixel", + "stat.stdev;stat.min;pos.errorEllipse;stat.fit.param;instr.det", "pix"}, + {"ERRTHETAMODEL_IMAGE", "Error ellipse pos.angle of fitted position (CCW/x)", + &outobj2.poserrtheta_prof, H_FLOAT, T_FLOAT, "%5.1f", "deg", + "pos.posAng;pos.errorEllipse;stat.fit.param;instr.det", "deg"}, + {"ERRAMODEL_WORLD", "World RMS error of fitted position along major axis", + &outobj2.poserraw_prof, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.stdev;stat.max;pos.errorEllipse;stat.fit.param", "deg"}, + {"ERRBMODEL_WORLD", "World RMS error of fitted position along minor axis", + &outobj2.poserrbw_prof, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.stdev;stat.min;pos.errorEllipse;stat.fit.param", "deg"}, + {"ERRTHETAMODEL_WORLD", "Error ellipse pos.angle of fitted position (CCW/world-x)", + &outobj2.poserrthetaw_prof, H_FLOAT, T_FLOAT, "%5.1f", "deg", + "pos.posAng;pos.errorEllipse;stat.fit.param", "deg"}, + {"ERRTHETAMODEL_SKY", "Native fitted error ellipse pos. angle (east of north)", + &outobj2.poserrthetas_prof, H_FLOAT, T_FLOAT, "%5.1f", "deg", + "pos.posAng;pos.errorEllipse;stat.fit.param", "deg"}, + {"ERRTHETAMODEL_J2000", "J2000 fitted error ellipse pos. angle (east of north)", + &outobj2.poserrtheta2000_prof, H_FLOAT, T_FLOAT, "%5.1f", "deg", + "pos.posAng;pos.errorEllipse;stat.fit.param", "deg"}, + {"ERRTHETAMODEL_B1950", "B1950 fitted error ellipse pos. angle (east of north)", + &outobj2.poserrtheta1950_prof, H_FLOAT, T_FLOAT, "%5.1f", "deg", + "pos.posAng;pos.errorEllipse;stat.fit.param", "deg"}, + + + {"X2MODEL_IMAGE", "Variance along x from model-fitting", + &outobj2.prof_mx2, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "src.impactParam;stat.fit;instr.det", "pix2"}, + {"Y2MODEL_IMAGE", "Variance along y from model-fitting", + &outobj2.prof_my2, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "src.impactParam;stat.fit;instr.det", "pix2"}, + {"XYMODEL_IMAGE", "Covariance between x and y from model-fitting", + &outobj2.prof_mxy, H_EXPO, T_DOUBLE, "%15.10e", "pixel**2", + "src.impactParam;stat.fit;instr.det", "pix2"}, + {"E1MODEL_IMAGE", "Ellipticity component from model-fitting", + &outobj2.prof_e1, H_FLOAT, T_FLOAT, "%10.6f", "", + "src.ellipticity;stat.fit;instr.det", ""}, + {"E2MODEL_IMAGE", "Ellipticity component from model-fitting", + &outobj2.prof_e2, H_FLOAT, T_FLOAT, "%10.6f", "", + "src.ellipticity;stat.fit;instr.det", ""}, + {"EPS1MODEL_IMAGE", "Ellipticity component (quadratic) from model-fitting", + &outobj2.prof_eps1, H_FLOAT, T_FLOAT, "%10.6f", "", + "src.ellipticity;stat.fit;instr.det", ""}, + {"EPS2MODEL_IMAGE", "Ellipticity component (quadratic) from model-fitting", + &outobj2.prof_eps2, H_FLOAT, T_FLOAT, "%10.6f", "", + "src.ellipticity;stat.fit;instr.det", ""}, + + {"FLUX_BACKOFFSET", "Background offset from fitting", + &outobj2.prof_offset_flux, H_FLOAT, T_FLOAT, "%12.7g", "count", + "instr.skyLevel;arith.diff;stat.fit.param", "ct"}, + {"FLUXERR_BACKOFFSET", "RMS error on fitted background offset", + &outobj2.prof_offset_fluxerr, H_FLOAT, T_FLOAT, "%12.7g", "count", + "stat.error;instr.skyLevel;arith.diff;stat.fit.param", "ct"}, + + {"FLUX_SPHEROID", "Spheroid total flux from fitting", + &outobj2.prof_spheroid_flux, H_FLOAT, T_FLOAT, "%12.7g", "count", + "phot.count;stat.fit.param", "ct"}, + {"FLUXERR_SPHEROID", "RMS error on fitted spheroid total flux", + &outobj2.prof_spheroid_fluxerr, H_FLOAT, T_FLOAT, "%12.7g", "count", + "stat.error;phot.count;stat.fit.param", "ct"}, + {"MAG_SPHEROID", "Spheroid total magnitude from fitting", + &outobj2.prof_spheroid_mag, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "phot.mag;stat.fit.param", "mag"}, + {"MAGERR_SPHEROID", "RMS error on fitted spheroid total magnitude", + &outobj2.prof_spheroid_magerr, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "stat.error;phot.mag;stat.fit.param", "mag"}, + {"SPHEROID_REFF_IMAGE", "Spheroid effective radius from fitting", + &outobj2.prof_spheroid_reff, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"SPHEROID_REFFERR_IMAGE", "RMS error on fitted spheroid effective radius", + &outobj2.prof_spheroid_refferr, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "stat.error;src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"SPHEROID_REFF_WORLD", "Spheroid effective radius from fitting", + &outobj2.prof_spheroid_reffw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "src.morph.scLength;stat.fit.param", "deg"}, + {"SPHEROID_REFFERR_WORLD", "RMS error on fitted spheroid effective radius", + &outobj2.prof_spheroid_refferrw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.error;src.morph.scLength;stat.fit.param", "deg"}, + {"SPHEROID_ASPECT_IMAGE", "Spheroid aspect ratio from fitting", + &outobj2.prof_spheroid_aspect, H_FLOAT, T_FLOAT, "%6.4f", "", + "phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"SPHEROID_ASPECTERR_IMAGE", "RMS error on fitted spheroid aspect ratio", + &outobj2.prof_spheroid_aspecterr, H_FLOAT, T_FLOAT, "%6.4f", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"SPHEROID_ASPECT_WORLD", "Spheroid aspect ratio from fitting", + &outobj2.prof_spheroid_aspectw, H_FLOAT, T_FLOAT, "%6.4f", "", + "phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"SPHEROID_ASPECTERR_WORLD", "RMS error on fitted spheroid aspect ratio", + &outobj2.prof_spheroid_aspecterrw, H_FLOAT, T_FLOAT, "%6.4f", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"SPHEROID_THETA_IMAGE", "Spheroid position angle (CCW/x) from fitting", + &outobj2.prof_spheroid_theta, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"SPHEROID_THETAERR_IMAGE", "RMS error on spheroid position angle", + &outobj2.prof_spheroid_thetaerr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"SPHEROID_THETA_WORLD", "Spheroid position angle (CCW/world-x)", + &outobj2.prof_spheroid_thetaw, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"SPHEROID_THETAERR_WORLD", "RMS error on spheroid position angle", + &outobj2.prof_spheroid_thetaerrw, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param", "deg"}, + {"SPHEROID_THETA_SKY", "Spheroid position angle (east of north, native)", + &outobj2.prof_spheroid_thetas, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"SPHEROID_THETA_J2000", "Spheroid position angle (east of north, J2000)", + &outobj2.prof_spheroid_theta2000, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"SPHEROID_THETA_B1950", "Spheroid position angle (east of north, B1950)", + &outobj2.prof_spheroid_theta1950, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"SPHEROID_SERSICN", "Spheroid Sersic index from fitting", + &outobj2.prof_spheroid_sersicn, H_FLOAT, T_FLOAT, "%6.3f", "", + "src.morph;stat.fit.param", ""}, + {"SPHEROID_SERSICNERR", "RMS error on fitted spheroid Sersic index", + &outobj2.prof_spheroid_sersicnerr, H_FLOAT, T_FLOAT, "%6.3f", "", + "stat.error;src.morph;stat.fit.param", ""}, + + {"FLUX_DISK", "Disk total flux from fitting", + &outobj2.prof_disk_flux, H_FLOAT, T_FLOAT, "%12.7g", "count", + "phot.count;stat.fit.param", "ct"}, + {"FLUXERR_DISK", "RMS error on fitted disk total flux", + &outobj2.prof_disk_fluxerr, H_FLOAT, T_FLOAT, "%12.7g", "count", + "stat.error;phot.count;stat.fit.param", "ct"}, + {"MAG_DISK", "Disk total magnitude from fitting", + &outobj2.prof_disk_mag, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "phot.mag;stat.fit.param", "mag"}, + {"MAGERR_DISK", "RMS error on fitted disk total magnitude", + &outobj2.prof_disk_magerr, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "stat.error;phot.mag;stat.fit.param", "mag"}, + {"DISK_SCALE_IMAGE", "Disk scalelength from fitting", + &outobj2.prof_disk_scale, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"DISK_SCALEERR_IMAGE", "RMS error on fitted disk scalelength", + &outobj2.prof_disk_scaleerr, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "stat.error;src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"DISK_SCALE_WORLD", "Disk scalelength from fitting (world coords)", + &outobj2.prof_disk_scalew, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "src.morph.scLength;stat.fit.param", "deg"}, + {"DISK_SCALEERR_WORLD", "RMS error on fitted disk scalelength (world coords)", + &outobj2.prof_disk_scaleerrw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.error;src.morph.scLength;stat.fit.param", "deg"}, + {"DISK_ASPECT_IMAGE", "Disk aspect ratio from fitting", + &outobj2.prof_disk_aspect, H_FLOAT, T_FLOAT, "%6.4f", "", + "phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"DISK_ASPECTERR_IMAGE", "RMS error on fitted disk aspect ratio", + &outobj2.prof_disk_aspecterr, H_FLOAT, T_FLOAT, "%6.4f", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"DISK_ASPECT_WORLD", "Disk aspect ratio from fitting", + &outobj2.prof_disk_aspectw, H_FLOAT, T_FLOAT, "%6.4f", "", + "phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"DISK_ASPECTERR_WORLD", "RMS error on disk aspect ratio", + &outobj2.prof_disk_aspecterrw, H_FLOAT, T_FLOAT, "%6.4f", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"DISK_INCLINATION", "Disk inclination from fitting", + &outobj2.prof_disk_inclination, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "src.morph;stat.fit.param;instr.det", "deg"}, + {"DISK_INCLINATIONERR", "RMS error on disk inclination from fitting", + &outobj2.prof_disk_inclinationerr, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "stat.error;src.morph;stat.fit.param;instr.det", "deg"}, + {"DISK_THETA_IMAGE", "Disk position angle (CCW/x) from fitting", + &outobj2.prof_disk_theta, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"DISK_THETAERR_IMAGE", "RMS error on fitted disk position angle", + &outobj2.prof_disk_thetaerr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"DISK_THETA_WORLD", "Disk position angle (CCW/world-x)", + &outobj2.prof_disk_thetaw, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"DISK_THETAERR_WORLD", "RMS error on disk position angle", + &outobj2.prof_disk_thetaerrw, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param", "deg"}, + {"DISK_THETA_SKY", "Disk position angle (east of north, native)", + &outobj2.prof_disk_thetas, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"DISK_THETA_J2000", "Disk position angle (east of north, J2000)", + &outobj2.prof_disk_theta2000, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"DISK_THETA_B1950", "Disk position angle (east of north, B1950)", + &outobj2.prof_disk_theta1950, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"DISK_PATTERN_VECTOR", "Disk pattern fitted coefficients", + &outobj2.prof_disk_patternvector, H_FLOAT, T_FLOAT, "%12.4g", "", + "stat.fit.param;src.morph.param", "", 1, + &prefs.prof_disk_patternvectorsize}, + {"DISK_PATTERNMOD_VECTOR", "Disk pattern fitted moduli", + &outobj2.prof_disk_patternmodvector, H_FLOAT, T_FLOAT, "%12.4g", "", + "stat.fit.param;src.morph.param", "", 1, + &prefs.prof_disk_patternmodvectorsize}, + {"DISK_PATTERNARG_VECTOR", "Disk pattern fitted arguments", + &outobj2.prof_disk_patternargvector, H_FLOAT, T_FLOAT, "%12.4g", "deg", + "stat.fit.param;src.morph.param", "deg", 1, + &prefs.prof_disk_patternargvectorsize}, + {"DISK_PATTERN_SPIRAL", "Disk pattern spiral index", + &outobj2.prof_disk_patternspiral, H_FLOAT, T_FLOAT, "%12.4g", "", + "stat.fit.param;src.morph.param", ""}, + {"FLUX_BAR", "Bar total flux from fitting", + &outobj2.prof_bar_flux, H_FLOAT, T_FLOAT, "%12.g", "count", + "phot.count;stat.fit.param", "ct"}, + {"FLUXERR_BAR", "RMS error on fitted total bar flux", + &outobj2.prof_bar_fluxerr, H_FLOAT, T_FLOAT, "%12.g", "count", + "stat.error;phot.count;stat.fit.param", "ct"}, + {"MAG_BAR", "Bar total magnitude from fitting", + &outobj2.prof_bar_mag, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "phot.mag;stat.fit.param", "mag"}, + {"MAGERR_BAR", "RMS error on fitted total bar magnitude", + &outobj2.prof_bar_magerr, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "stat.error;phot.mag;stat.fit.param", "mag"}, + {"BAR_LENGTH_IMAGE", "Bar length from fitting", + &outobj2.prof_bar_length, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"BAR_LENGTHERR_IMAGE", "RMS error on fitted bar length", + &outobj2.prof_bar_lengtherr, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "stat.error;src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"BAR_LENGTH_WORLD", "Bar length from fitting", + &outobj2.prof_bar_lengthw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "src.morph.scLength;stat.fit.param", "deg"}, + {"BAR_LENGTHERR_WORLD", "RMS error on fitted bar length (world coords)", + &outobj2.prof_bar_lengtherrw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.error;src.morph.scLength;stat.fit.param", "deg"}, + {"BAR_ASPECT_IMAGE", "Bar aspect ratio from fitting", + &outobj2.prof_bar_aspect, H_FLOAT, T_FLOAT, "%6.4f", "", + "phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"BAR_ASPECTERR_IMAGE", "RMS error on fitted bar aspect ratio", + &outobj2.prof_bar_aspecterr, H_FLOAT, T_FLOAT, "%6.4f", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param;instr.det", ""}, + {"BAR_ASPECT_WORLD", "Bar aspect ratio from fitting", + &outobj2.prof_bar_aspectw, H_FLOAT, T_FLOAT, "%12.7g", "", + "phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"BAR_ASPECTERR_WORLD", "RMS error on fitted bar aspect ratio", + &outobj2.prof_bar_aspecterrw, H_FLOAT, T_FLOAT, "%12.7g", "", + "stat.error;phys.size.axisRatio;src.morph;stat.fit.param", ""}, + {"BAR_POSANG", "Bar true position angle (CCW/disk maj.axis) from fitting", + &outobj2.prof_bar_posang, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.bodyrc.long;src.morph;stat.fit.param", "deg"}, + {"BAR_POSANGERR", "RMS error on fitted true bar position angle", + &outobj2.prof_bar_posangerr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.bodyrc.long;src.morph;stat.fit.param", "deg"}, + {"BAR_THETA_IMAGE", "Bar projected angle (CCW/x) from fitting", + &outobj2.prof_bar_theta, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"BAR_THETAERR_IMAGE", "RMS error on fitted bar projected angle", + &outobj2.prof_bar_thetaerr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"BAR_THETA_WORLD", "Bar projected angle (CCW/world-x) from fitting", + &outobj2.prof_bar_thetaw, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"BAR_THETAERR_WORLD", "RMS error on fitted bar projected angle", + &outobj2.prof_bar_thetaerrw, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param", "deg"}, + {"BAR_THETA_SKY", "Bar projected angle (east of north, native) from fitting", + &outobj2.prof_bar_thetas, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"BAR_THETA_J2000", "Bar projected angle (east of north, J2000) from fitting", + &outobj2.prof_bar_theta2000, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"BAR_THETA_B1950", "Bar projected angle (east of north, B1950) from fitting", + &outobj2.prof_bar_theta1950, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"FLUX_ARMS", "Total flux in spiral arms from fitting", + &outobj2.prof_arms_flux, H_FLOAT, T_FLOAT, "%12.g", "count", + "phot.count;stat.fit.param", "ct"}, + {"FLUXERR_ARMS", "RMS error on fitted total flux in spiral arms", + &outobj2.prof_arms_fluxerr, H_FLOAT, T_FLOAT, "%12.g", "count", + "stat.error;phot.count;stat.fit.param", "ct"}, + {"MAG_ARMS", "Total magnitude in spiral arms from fitting", + &outobj2.prof_arms_mag, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "phot.mag;stat.fit.param", "mag"}, + {"MAGERR_ARMS", "RMS error on fitted total magnitude in spiral arms", + &outobj2.prof_arms_magerr, H_FLOAT, T_FLOAT, "%8.4f", "mag", + "stat.error;phot.mag;stat.fit.param", "mag"}, + {"ARMS_SCALE_IMAGE", "Spiral arms scale length from fitting", + &outobj2.prof_arms_scale, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"ARMS_SCALEERR_IMAGE", "RMS error on fitted spiral arms scale length", + &outobj2.prof_arms_scaleerr, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "stat.error;src.morph.scLength;stat.fit.param;instr.det", "pix"}, + {"ARMS_SCALE_WORLD", "Spiral arms scale length from fitting", + &outobj2.prof_arms_scalew, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "src.morph.scLength;stat.fit.param", "deg"}, + {"ARMS_SCALEERR_WORLD", "RMS error on fitted spiral arm scale length", + &outobj2.prof_arms_scaleerrw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.error;src.morph.scLength;stat.fit.param", "deg"}, + {"ARMS_POSANG", "Pos. angle (CCW/disk maj.axis) of spiral arms from fitting", + &outobj2.prof_arms_posang, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.bodyrc.long;src.morph;stat.fit.param", "deg"}, + {"ARMS_POSANGERR", "RMS error on fitted spiral arm position angle", + &outobj2.prof_arms_posangerr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.bodyrc.long;src.morph;stat.fit.param", "deg"}, +/* + {"ARMS_THETA_WORLD", "Pos. angle (CCW/world-x) of spiral arms", + &outobj2.prof_arms_thetaw, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"ARMS_THETA_SKY", "Pos. angle (east of north, native) of spiral arms", + &outobj2.prof_arms_thetas, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"ARMS_THETA_J2000", "Pos. angle (east of north, J2000) of spiral arms", + &outobj2.prof_arms_theta2000, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, + {"ARMS_THETA_B1950", "Pos. angle (east of north, B1950) of spiral arms", + &outobj2.prof_arms_theta1950, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param", "deg"}, +*/ + {"ARMS_PITCH", "Pitch angle of spiral arms from fitting", + &outobj2.prof_arms_pitch, H_FLOAT, T_FLOAT, "%+7.3f", "deg", + "pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"ARMS_PITCHERR", "RMS error on fitted spiral arm pitch angle", + &outobj2.prof_arms_pitcherr, H_FLOAT, T_FLOAT, "%7.3f", "deg", + "stat.error;pos.posAng;src.morph;stat.fit.param;instr.det", "deg"}, + {"ARMS_START_IMAGE", "Starting radius of spiral arms from fitting", + &outobj2.prof_arms_start, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "pos.distance;src.morph;stat.fit.param;instr.det", "pix"}, + {"ARMS_STARTERR_IMAGE", "RMS error on fitted spiral arm starting radius", + &outobj2.prof_arms_starterr, H_FLOAT, T_FLOAT, "%10.4f", "pixel", + "stat.error;pos.distance;src.morph;stat.fit.param;instr.det", "pix"}, + {"ARMS_START_WORLD", "Starting radius of spiral arms from fitting", + &outobj2.prof_arms_startw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "pos.distance;src.morph;stat.fit.param", "deg"}, + {"ARMS_STARTERR_WORLD", "RMS error on spiral arm starting radius", + &outobj2.prof_arms_starterrw, H_FLOAT, T_FLOAT, "%12.7g", "deg", + "stat.error;pos.distance;src.morph;stat.fit.param", "deg"}, + {"ARMS_QUADFRAC", "Fraction of spiral arms in quadrature from fitting", + &outobj2.prof_arms_quadfrac, H_FLOAT, T_FLOAT, "%6.4f", "deg", + "phot.count;arith.ratio;src.morph;stat.fit.param", "deg"}, + {"ARMS_QUADFRACERR", "RMS error on fitted spiral arms quadrature fraction", + &outobj2.prof_arms_quadfracerr, H_FLOAT, T_FLOAT, "%6.4f", "deg", + "stat.error;phot.count;arith.ratio;src.morph;stat.fit.param", "deg"}, diff --git a/src/pattern.c b/src/pattern.c new file mode 100644 index 0000000000000000000000000000000000000000..d7f68a16da27ec19f45be2b4a88be8cb2372de21 --- /dev/null +++ b/src/pattern.c @@ -0,0 +1,789 @@ + /* + pattern.c + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: SExtractor +* +* Authors: E.BERTIN (IAP) +* +* Contents: Generate and handle image patterns for image fitting. +* +* Last modify: 20/11/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_MATHIMF_H +#include +#else +#define _GNU_SOURCE +#include +#endif + +#include +#include +#include +#include ATLAS_LAPACK_H + +#include "define.h" +#include "globals.h" +#include "prefs.h" +#include "fits/fitscat.h" +#include "fitswcs.h" +#include "check.h" +#include "pattern.h" +#include "profit.h" + +static double psf_laguerre(double x, int p, int q); + +/*------------------------------- variables ---------------------------------*/ + +/****** pattern_init *********************************************************** +PROTO patternstruct pattern_init(profitstruct *profit, pattern_type ptype, + int ncomp) +PURPOSE Allocate and initialize a new pattern structure. +INPUT Pointer to a profit structure, + Pattern type, + Number of independent components. +OUTPUT Pointer to the new pattern structure. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 19/11/2008 + ***/ +patternstruct *pattern_init(profitstruct *profit, pattypenum ptype, int ncomp) + { + patternstruct *pattern; + int ninpix, noutpix; + + if (!ncomp) + ncomp = PATTERN_NCOMP; + QCALLOC(pattern, patternstruct, 1); + pattern->type = ptype; + pattern->ncomp = ncomp; + pattern->size[0] = profit->modnaxisn[0]; + pattern->size[1] = profit->modnaxisn[1]; + switch(pattern->type) + { + case PATTERN_QUADRUPOLE: + case PATTERN_OCTOPOLE: + pattern->nmodes = 2; + pattern->nfreq = 1; + pattern->size[2] = ncomp*pattern->nmodes; + break; + case PATTERN_POLARFOURIER: + pattern->nfreq = PATTERN_FMAX+1; + pattern->nmodes = 2*PATTERN_FMAX+1; + pattern->size[2] = ncomp*pattern->nmodes; + break; + case PATTERN_POLARSHAPELETS: + pattern->nfreq = 0; + pattern->nmodes = 0; + pattern->size[2] = (ncomp+1)*(ncomp+2)/2; + break; + default: + error(EXIT_FAILURE, "*Internal Error*: Unknown Pattern type",""); + } + + ninpix = pattern->size[0]*pattern->size[1] * pattern->size[2]; + noutpix = profit->objnaxisn[0]*profit->objnaxisn[1] * pattern->size[2]; + QMALLOC(pattern->coeff, double, pattern->size[2]); + QMALLOC(pattern->norm, double, pattern->size[2]); + QMALLOC(pattern->modpix, double, ninpix); + QMALLOC(pattern->lmodpix, PIXTYPE, noutpix); + if (pattern->ncomp) + { + QMALLOC(pattern->r, double, pattern->ncomp); + } + if (pattern->nfreq) + { + QMALLOC(pattern->mcoeff, double, ncomp*pattern->nfreq); + QMALLOC(pattern->acoeff, double, ncomp*pattern->nfreq); + } + + return pattern; + } + + +/****** pattern_end *********************************************************** +PROTO void pattern_end(patternstruct *pattern) +PURPOSE End (deallocate) a pattern structure. +INPUT Pattern structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 02/10/2008 + ***/ +void pattern_end(patternstruct *pattern) + { + free(pattern->norm); + free(pattern->r); + free(pattern->modpix); + free(pattern->lmodpix); + free(pattern->coeff); + free(pattern->mcoeff); + free(pattern->acoeff); + free(pattern); + + return; + } + + +/****** pattern_fit ****************************************************** +PROTO void pattern_resample(patternstruct *pattern) +PURPOSE Resample a pattern structure. +INPUT Pointer to pattern structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 01/10/2008 + ***/ +void pattern_fit(patternstruct *pattern, profitstruct *profit) + { + checkstruct *check; + double *inpix, *doutpix1, *alpha,*beta, + dval, dprod; + PIXTYPE *outpix,*outpix1,*outpix2; + PIXTYPE *weightpix; + int n,p,p2, nvec, ninpix, noutpix; + + nvec = pattern->size[2]; + pattern_create(pattern, profit); + QMALLOC(alpha, double, nvec*nvec); + beta = pattern->coeff; + inpix = pattern->modpix; + ninpix = pattern->size[0]*pattern->size[1]; + outpix = pattern->lmodpix; + noutpix = profit->objnaxisn[0]*profit->objnaxisn[1]; + for (p=0; plmodpix; + for (p2=0; p2<=p; p2++) + { + weightpix = profit->objweight; + outpix2 = outpix; + dval = 0.0; + for (n=noutpix; n--;) + { + dprod = *(outpix1++)**(outpix2++); + if (*(weightpix++)>0.0) + dval += dprod; + } + alpha[p*nvec+p2] = alpha[p2*nvec+p] = dval; + } + weightpix = profit->objweight; + doutpix1 = profit->resi; + outpix2 = outpix; + dval = 0.0; + for (n=noutpix; n--;) + { + dprod = *doutpix1**(outpix2++); + if (*(weightpix++)>0.0) + { + dval += dprod; + doutpix1++; + } + } + alpha[p*(nvec+1)] += 0.2; + beta[p] = dval; + inpix += ninpix; + outpix += noutpix; + } + +/* Solve the system */ + clapack_dpotrf(CblasRowMajor,CblasUpper,nvec,alpha,nvec); + clapack_dpotrs(CblasRowMajor,CblasUpper,nvec,1,alpha,nvec,beta,nvec); + + pattern_compmodarg(pattern, profit); + + free(alpha); + + if ((check = prefs.check[CHECK_PATTERNS])) + { + QCALLOC(outpix, PIXTYPE, noutpix); + outpix2 = pattern->lmodpix; + for (p=0; pcoeff[p]; + outpix1 = outpix; + for (n=noutpix; n--;) + *(outpix1++) += dval**(outpix2++); + } + addcheck(check, outpix, profit->objnaxisn[0],profit->objnaxisn[1], + profit->ix, profit->iy, 1.0); + free(outpix); + } +/* +{ +catstruct *cat; +char name[MAXCHAR]; +static int number; +int nout; + +nout = nvec; +QCALLOC(outpix, PIXTYPE, ninpix*nout); +outpix1 = outpix; +doutpix1 = pattern->modpix; +for (p=0; pcoeff[p]; +for (n=ninpix; n--; ) +*(outpix1++) += dval**(doutpix1++); +if (pattern->type==PATTERN_POLARFOURIER) + { + if ((p%pattern->nmodes)%2) + outpix1 -= ninpix; + } +else if (pattern->type==PATTERN_POLARSHAPELETS) + { + } +else if (!(p%2)) + outpix1 -= noutpix; +} +cat=new_cat(1); +init_cat(cat); +cat->tab->naxis=3; +QMALLOC(cat->tab->naxisn, int, 3); +cat->tab->naxisn[0]=profit->modnaxisn[0]; +cat->tab->naxisn[1]=profit->modnaxisn[1]; +cat->tab->naxisn[2]=nout; +cat->tab->bitpix=BP_FLOAT; +cat->tab->bytepix=4; +cat->tab->bodybuf=(char *)outpix; +cat->tab->tabsize=cat->tab->naxisn[0]*cat->tab->naxisn[1]*cat->tab->naxisn[2]*sizeof(PIXTYPE); +sprintf(name, "tata_%02d.fits", ++number); +save_cat(cat, name); +cat->tab->bodybuf=NULL; +free_cat(&cat, 1); +free(outpix); +} +*/ + return; + } + + +/****** pattern_compmodarg **************************************************** +PROTO void pattern_comparg(patternstruct *pattern, profitstruct *profit) +PURPOSE Compute modulus and argument for each pair of Fourier components. +INPUT Pointer to pattern structure, + pointer to profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 20/11/2008 + ***/ +void pattern_compmodarg(patternstruct *pattern, profitstruct *profit) + { + double *coeff,*mcoeff,*acoeff, *normt, + arg,argo,darg, ima,rea; + int f,p, nfreq; + + if (pattern->type == PATTERN_POLARSHAPELETS) + return; + + coeff = pattern->coeff; + mcoeff = pattern->mcoeff; + acoeff = pattern->acoeff; + nfreq = pattern->nfreq; + normt = pattern->norm; + argo = 0.0; /* To avoid gcc -Wall warnings */ + for (p=0; pncomp; p++) + { + for (f=0; ftype == PATTERN_POLARFOURIER && !f) + { + *(mcoeff++) = fabs(*coeff) * *(normt++); + *(acoeff++) = *(coeff++)<0.0? 180.0 : 0.0; + } + else + { + rea = *(coeff++) * *(normt++); + ima = *(coeff++) * *(normt++); + *(mcoeff++) = sqrt(rea*rea + ima*ima); + arg = atan2(ima, rea)/DEG; + if (p>0) + { + argo = *(acoeff-nfreq); + darg = arg - fmod(argo+180.0, 360.0) + 180.0;; +/*-------- disambiguate increasing or decreasing phase angles */ + if (darg > 180.0) + darg -= 360.0; + else if (darg < -180.0) + darg += 360.0; + *acoeff = argo + darg; + acoeff++; + } + else + *(acoeff++) = arg; + argo = arg; + } + } + } + + return; + } + + +/****** pattern_spiral ****************************************************** +PROTO float pattern_spiral(patternstruct *pattern) +PURPOSE Compute a pattern spiral index. +INPUT Pointer to pattern structure. +OUTPUT Spiral index. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 14/10/2008 + ***/ +float pattern_spiral(patternstruct *pattern) + { + double w,x,y, s,sx,sy,sxx,sxy; + int f,i,p, pstart; + + if (pattern->ncomp<2) + return 0.0; + + pstart = (int)(pattern->ncomp/pattern->rmax+0.4999) - 1; + if (pstart<0) + pstart = 0; + else if (pstart>pattern->ncomp-2) + pstart = pattern->ncomp-2; + + s = sx = sy = sxx = sxy = 0.0; + for (p=pstart; pncomp; p++) + { + w = y = 0.0; + for (f=0; fnfreq; f++) + { + if (pattern->type == PATTERN_POLARFOURIER && (!f || f==1 || f==3)) + continue; + i = p*pattern->nfreq + f; + w += pattern->mcoeff[i]; + y += pattern->mcoeff[i]*pattern->acoeff[i]/f; + } + x = (double)(p - pstart); + if (w>0.0) + y /= w; + s += w; + sx += w*x; + sy += w*y; + sxx += w*x*x; + sxy += w*x*y; + } + + return (s*sxy - sx*sy)/(s*sxx - sx*sx); + } + + +/****** pattern_create ****************************************************** +PROTO void pattern_create(patternstruct *pattern, profitstruct *profit) +PURPOSE create a pattern basis. +INPUT Pointer to pattern structure, + pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 20/11/2008 + ***/ +void pattern_create(patternstruct *pattern, profitstruct *profit) + { + double *scbuf[PATTERN_FMAX],*scpix[PATTERN_FMAX], + *scpixt,*cpix,*spix, *pix, *r2buf,*r2pix,*modpix, + *normt, *pmodpix, + x1,x2, x1t,x2t, r,r2,r2min,r2max, + mod,ang,ang0, cosang,sinang, angcoeff, posangle,flux, + ctheta,stheta, saspect,xscale,yscale, scale, aspect, + cd11,cd12,cd21,cd22, x1cout,x2cout, cmod,smod, + cnorm,snorm,norm,norm0, dval, det, rad, dnrad, + cpnorm,spnorm,pnorm, rl,rl2,rh,rh2,r0,r02, sbd, + bt, wb, omwb, bflux, margin2, dposangle; + int f,i,p, ix1,ix2, nrad, npix; + + double *fr2,*fr2t,*fexpr2,*fexpr2t,*ftheta,*fthetat, + dm,fac, beta, invbeta2; + int m,n, nmax, kmax,hnmm; + +/* Compute Profile CD matrix */ + aspect = fabs(*profit->paramlist[PARAM_DISK_ASPECT]); + posangle = fmod_m90_p90(*profit->paramlist[PARAM_DISK_POSANG])*DEG; + scale = fabs(*profit->paramlist[PARAM_DISK_SCALE]/profit->pixstep); + flux = fabs(*profit->paramlist[PARAM_DISK_FLUX])*1.67835; + bflux = fabs(*profit->paramlist[PARAM_SPHEROID_FLUX]); + bt = bflux / (bflux+flux); + if (bt > PATTERN_BTMAX) + { + wb = (bt - PATTERN_BTMAX) / (1.0 - PATTERN_BTMAX); + if (wb > 1.0) + wb = 1.0; + omwb = 1.0 - wb; + flux = wb*bflux + omwb*flux; + scale = omwb*scale + + wb*fabs(*profit->paramlist[PARAM_SPHEROID_REFF]/profit->pixstep)*1.5; + aspect = omwb*aspect + + wb*fabs(*profit->paramlist[PARAM_SPHEROID_ASPECT]); + posangle /= DEG; + dposangle = fmod_m90_p90(*profit->paramlist[PARAM_SPHEROID_POSANG]) + - posangle; + if (dposangle > 90.0) + dposangle -= 180.0; + else if (dposangle < -90.0) + dposangle += 180.0; + posangle = fmod_m90_p90(posangle + wb*dposangle)*DEG; + } + + ctheta = cos(posangle); + stheta = sin(posangle); + saspect = fabs(aspect); + xscale = (scale==0.0)? 0.0 : 1.0/scale; + yscale = (scale*saspect == 0.0)? 0.0 : 1.0/(scale*saspect); + cd11 = xscale*ctheta; + cd12 = xscale*stheta; + cd21 = -yscale*stheta; + cd22 = yscale*ctheta; + + x1cout = (double)(pattern->size[0]/2); + x2cout = (double)(pattern->size[1]/2); + +/* Determinant of the change of coordinate system */ + det = xscale*yscale; + sbd = fabs(flux)*det/(2.0*PI); + r2min = det/10.0; +/* Stay within an ellipse contained in the pattern raster, both in x and y */ + r2max = PATTERN_SCALE*PATTERN_SCALE; + margin2 = (1.0-PATTERN_MARGIN)*(1.0-PATTERN_MARGIN); + if (r2max > (dval = margin2 + * x1cout*x1cout * det*det / (cd12*cd12+cd22*cd22))) + r2max = dval; + if (r2max > (dval = margin2 + * x2cout*x2cout * det*det / (cd21*cd21+cd11*cd11))) + r2max = dval; +/* Set the limit of the pattern extent */ +// rad = 4.0*profit->obj->a*xscale; +/* The pattern limit does not exceed 90% of the mapped ellipse "radius" */ +// if (rad*rad > 0.9*0.9*r2max) + nrad = pattern->ncomp; + pattern->rmax = rad = sqrt(r2max); + if (!nrad) + error(EXIT_FAILURE, + "*Error*: insufficient number of vector elements", + " for generating the pattern basis"); + dnrad = (double)nrad; + npix = pattern->size[0]*pattern->size[1]; + normt = pattern->norm; + switch(pattern->type) + { + case PATTERN_QUADRUPOLE: + case PATTERN_OCTOPOLE: + cpix = pattern->modpix; + spix = pattern->modpix+npix; + angcoeff = (pattern->type==PATTERN_OCTOPOLE)? 4.0 : 2.0; + for (p=0; pr[p] = r0 = (p+1)*rad/dnrad; + r02 = r0*r0; + rh = (p+2)*rad/dnrad; + rh2 = rh*rh; + pmodpix = profit->modpix; + for (ix2=pattern->size[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=pattern->size[0]; ix1--; pmodpix++) + { + r2 = x1t*x1t+x2t*x2t; + if (r2>rl2 && r2 0.0? 1.0/sqrt(cnorm) : 1.0); + *(normt++) = cnorm*sqrt(cpnorm); + for (i=npix; i--;) + *(cpix++) *= cnorm; + spix -= npix; + snorm = (snorm > 0.0? 1.0/sqrt(snorm) : 1.0); + *(normt++) = snorm*sqrt(spnorm); + for (i=npix; i--;) + *(spix++) *= snorm; + } + break; + case PATTERN_POLARFOURIER: +/*---- Pre-compute radii and quadrupoles to speed up computations later */ + QMALLOC(r2buf, double, npix); + r2pix = r2buf; + for (f=0; fsize[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=pattern->size[0]; ix1--;) + { + *(r2pix++) = x1t*x1t+x2t*x2t; + ang = ang0 = atan2(x2t,x1t); + for (f=0; fmodpix; + for (p=0; pr[p] = r0 = (p+1)*rad/dnrad; + r02 = r0*r0; + rh = (p+2)*rad/dnrad; + rh2 = rh*rh; + for (f=0; f<=PATTERN_FMAX; f++) + { + norm = pnorm = 0.0; + r2pix = r2buf; + pmodpix = profit->modpix; + if (!f) + { + for (i=npix; i--; pmodpix++) + { + r2 = *(r2pix++); + if (r2>rl2 && r2 1.0/BIG? 1.0/sqrt(norm) : 1.0); + *(normt++) = pnorm > 1.0/BIG? 1.0/sqrt(pnorm) : 0.0; + for (i=npix; i--;) + *(pix++) *= norm; + modpix = pix; + } + else + { + modpix -= npix; + scpixt = scbuf[f-1]; + for (i=npix; i--; pmodpix++) + { + *(pix++) = dval = *(modpix++)**(scpixt++); + norm += dval*dval; + pnorm += dval*dval**pmodpix**pmodpix; + } + pix -= npix; + pnorm = norm*sbd*sbd; + norm = (norm > 0.0? 1.0/sqrt(norm) : 1.0); + *(normt++) = pnorm > 1.0/BIG? norm0/sqrt(pnorm) : 0.0; + for (i=npix; i--;) + *(pix++) *= norm; + modpix -= npix; + norm = pnorm = 0.0; + pmodpix = profit->modpix; + for (i=npix; i--; pmodpix++) + { + *(pix++) = dval = *(modpix++)**(scpixt++); + norm += dval*dval; + pnorm += dval*dval**pmodpix**pmodpix; + } + pix -= npix; + pnorm = norm*sbd*sbd; + norm = (norm > 0.0? 1.0/sqrt(norm) : 1.0); + *(normt++) = pnorm > 1.0/BIG? norm0/sqrt(pnorm) : 0.0; + for (i=npix; i--;) + *(pix++) *= norm; + } + } + } + free(r2buf); + for (f=0; fncomp; + kmax = (nmax+1)*(nmax+2)/2; + beta = 0.667; + + invbeta2 = 1.0/(beta*beta); + +/*---- Precompute some slow functions */ + QMALLOC(fr2, double, npix); + QMALLOC(fexpr2, double, npix); + QMALLOC(ftheta, double, npix); + fr2t = fr2; + fexpr2t = fexpr2; + fthetat = ftheta; + x1 = -x1cout; + x2 = -x2cout; + for (ix2=pattern->size[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=pattern->size[0]; ix1--;) + { + *(fr2t++) = r2 = (x1t*x1t+x2t*x2t)*invbeta2; + *(fexpr2t++) = exp(-r2/2.0); + *(fthetat++) = atan2(x2t,x1t); + x1t += cd11; + x2t += cd21; + } + } + + pix = pattern->modpix; + for (n=0; n<=nmax; n++) + { + for (m=n%2; m<=n; m+=2) + { + dm = (double)m; +/*-------- Compute ((n+m)/2)!/((n-m)/2)! */ + hnmm = (n-m)/2; + fac = 1.0; +// for (p=(n+m)/2; p>=hnmm; p--) +// if (p) +// fac *= (double)p; +// fac = sqrt(1.0/(PI*fac))/beta; + if ((hnmm%2)) + fac = -fac; + fr2t = fr2; + fexpr2t = fexpr2; + fthetat = ftheta; + norm = 0.0; + for (i=npix; i--;fr2t++) + { + *(pix++) = dval = fac*pow(*fr2t, dm/2.0) + *psf_laguerre(*fr2t, hnmm, m) + **(fexpr2t++)*cos(dm**(fthetat++)); + norm += dval*dval; + } + pix -= npix; + pnorm = norm*sbd*sbd; + norm = (norm > 0.0? 1.0/sqrt(norm) : 1.0); + *(normt++) = pnorm > 1.0/BIG? norm0/sqrt(pnorm) : 0.0; + for (i=npix; i--;) + *(pix++) *= norm; + if (m!=0) + { + fr2t = fr2; + fexpr2t = fexpr2; + fthetat = ftheta; + norm = 0.0; + for (i=npix; i--; fr2t++) + { + *(pix++) = dval = fac*pow(*fr2t, dm/2.0) + *psf_laguerre(*fr2t, hnmm, m) + **(fexpr2t++)*sin(dm**(fthetat++)); + norm += dval*dval; + } + pix -= npix; + pnorm = norm*sbd*sbd; + norm = (norm > 0.0? 1.0/sqrt(norm) : 1.0); + *(normt++) = pnorm > 1.0/BIG? norm0/sqrt(pnorm) : 0.0; + for (i=npix; i--;) + *(pix++) *= norm; + } + } + } + + free(fr2); + free(fexpr2); + free(ftheta); + break; + default: + error(EXIT_FAILURE, "*Internal Error*: Unknown Pattern type",""); + } + + return; + } + + +/****** psf_laguerre ********************************************************** +PROTO double psf_laguerre(double x, int p, int q) +PURPOSE Return Laguerre polynomial value. +INPUT x, + p, + q. +OUTPUT Value of the Laguerre polynomial. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 12/11/2007 + ***/ +static double psf_laguerre(double x, int p, int q) + { + double dn,dq, lpm1,lpm2, l; + int n; + + dq = q - 1.0; + if (p==0) + return 1.0; + else if (p==1) + return (2.0 - x + dq); + else + { + l = 0.0; + lpm2 = 1.0; + lpm1 = 2.0 - x + dq; + dn = 2.0; + for (n=p-1; n--; dn+=1.0) + { + l = (2.0+(dq-x)/dn)*lpm1 - (1.0+dq/dn)*lpm2; + lpm2 = lpm1; + lpm1 = l; + } + } + + return l; + } + + + diff --git a/src/pattern.h b/src/pattern.h new file mode 100644 index 0000000000000000000000000000000000000000..e6e26d3b0f5d9d7d6dec632881f9c801c803962d --- /dev/null +++ b/src/pattern.h @@ -0,0 +1,80 @@ + /* + pattern.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: SExtractor +* +* Authors: E.BERTIN (IAP) +* +* Contents: Include file for pattern.c. +* +* Last modify: 19/11/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifndef _PROFIT_H_ +#include "profit.h" +#endif + +#ifndef _PATTERN_H_ +#define _PATTERN_H_ + +/*-------------------------------- flags ------------------------------------*/ +/*-------------------------------- macros -----------------------------------*/ +/*----------------------------- Internal constants --------------------------*/ + +#define PATTERN_FMAX 4 /* Maximum pattern angular frequency */ +#define PATTERN_NCOMP 16 /* Default number of components (radii) */ +#define PATTERN_SCALE 5.0 /* Pattern scale in units of r_eff */ +#define PATTERN_MARGIN 0.2 /* Pattern margin in fractions of radius */ +#define PATTERN_BTMAX 0.6 /* Maximum B/T for pure disk scaling */ + +/* NOTES: +One must have: PATTERN_SIZE > 1 + PATTERN_SCALE > 0.0 + PATTERN_BTMAX < 1.0 +*/ + +/*--------------------------------- typedefs --------------------------------*/ + +typedef enum {PATTERN_QUADRUPOLE, PATTERN_OCTOPOLE, + PATTERN_POLARFOURIER, PATTERN_POLARSHAPELETS, + PATTERN_NPATTERNS} + pattypenum; /* Pattern code */ + +/*--------------------------- structure definitions -------------------------*/ + +typedef struct + { + pattypenum type; /* Pattern code */ + int ncomp; /* Number of independent components */ + int nmodes; /* Number of modes per component */ + int nfreq; /* Number of waves per component */ + double x[2]; /* Coordinate vector */ + double rmax; /* Largest radius in units of scale */ + double *r; /* Reduced radius */ + double *norm; /* Pattern vector norm */ + double *coeff; /* Fitted pattern coefficients */ + double *mcoeff; /* Modulus from pattern coefficients */ + double *acoeff; /* Argument from pattern coefficients */ + double *modpix; /* Pattern pixmaps */ + PIXTYPE *lmodpix; /* Low resolution pattern pixmaps */ + int size[3]; /* Pixmap size for each axis */ + } patternstruct; + + +/*----------------------------- Global variables ----------------------------*/ +/*-------------------------------- functions --------------------------------*/ + +patternstruct *pattern_init(profitstruct *profit, pattypenum ptype, int nvec); + +float pattern_spiral(patternstruct *pattern); +void pattern_compmodarg(patternstruct *pattern,profitstruct *profit), + pattern_create(patternstruct *pattern, profitstruct *profit), + pattern_end(patternstruct *pattern), + pattern_fit(patternstruct *pattern, profitstruct *profit); + +#endif + diff --git a/src/pc.c b/src/pc.c index 25034b776ba9818020d0ad2c51e3cb5986f06cca..8fc2c5951c7ace6f0915f7d2286c4f1b33d85261 100644 --- a/src/pc.c +++ b/src/pc.c @@ -9,7 +9,7 @@ * * Contents: Stuff related to Principal Component Analysis (PCA). * -* Last modify: 27/11/2003 +* Last modify: 11/10/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -29,7 +29,7 @@ #include "fits/fitscat.h" #include "check.h" #include "image.h" -#include "poly.h" +#include "wcs/poly.h" #include "psf.h" static obj2struct *obj2 = &outobj2; diff --git a/src/photom.c b/src/photom.c index b4149feae6f8fc96bf39b1d798d928f8eae7586e..98da34b74015090d2529c42e0797620242da6a53 100644 --- a/src/photom.c +++ b/src/photom.c @@ -9,7 +9,7 @@ * * Contents: Compute magnitudes and other photometrical parameters. * -* Last modify: 24/08/2005 +* Last modify: 02/05/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -61,7 +61,7 @@ void computeaperflux(picstruct *field, picstruct *wfield, corrflag = (prefs.mask_type==MASK_CORRECT); gainflag = wfield && prefs.weightgain_flag; var = backnoise2 = field->backsig*field->backsig; - gain = prefs.gain; + gain = field->gain; /* Integration radius */ raper = prefs.apert[i]/2.0; raper2 = raper*raper; @@ -235,7 +235,7 @@ void computepetroflux(picstruct *field, picstruct *dfield, picstruct *wfield, mx = obj->mx; my = obj->my; var = backnoise2 = field->backsig*field->backsig; - gain = prefs.gain; + gain = field->gain; pflag = (prefs.detect_type==PHOTO)? 1:0; corrflag = (prefs.mask_type==MASK_CORRECT); gainflag = wfield && prefs.weightgain_flag; @@ -534,7 +534,7 @@ void computeautoflux(picstruct *field, picstruct *dfield, picstruct *wfield, mx = obj->mx; my = obj->my; var = backnoise2 = field->backsig*field->backsig; - gain = prefs.gain; + gain = field->gain; pflag = (prefs.detect_type==PHOTO)? 1:0; corrflag = (prefs.mask_type==MASK_CORRECT); gainflag = wfield && prefs.weightgain_flag; @@ -865,7 +865,7 @@ void computemags(picstruct *field, objstruct *obj) 1.086*obj2->fluxerr_somfit/obj2->flux_somfit :99.0; -/* Mag. PROFILE */ +/* Mag. models */ if (FLAG(obj2.mag_prof)) obj2->mag_prof = obj2->flux_prof>0.0? -2.5*log10(obj2->flux_prof) + prefs.mag_zeropoint @@ -875,6 +875,50 @@ void computemags(picstruct *field, objstruct *obj) 1.086*obj2->fluxerr_prof/obj2->flux_prof :99.0; + if (FLAG(obj2.prof_spheroid_mag)) + obj2->prof_spheroid_mag = obj2->prof_spheroid_flux>0.0? + -2.5*log10(obj2->prof_spheroid_flux) + + prefs.mag_zeropoint + :99.0; + if (FLAG(obj2.prof_spheroid_magerr)) + obj2->prof_spheroid_magerr = obj2->prof_spheroid_flux>0.0? + 1.086*obj2->prof_spheroid_fluxerr + / obj2->prof_spheroid_flux + :99.0; + + if (FLAG(obj2.prof_disk_mag)) + obj2->prof_disk_mag = obj2->prof_disk_flux>0.0? + -2.5*log10(obj2->prof_disk_flux) + + prefs.mag_zeropoint + :99.0; + if (FLAG(obj2.prof_disk_magerr)) + obj2->prof_disk_magerr = obj2->prof_disk_flux>0.0? + 1.086*obj2->prof_disk_fluxerr + / obj2->prof_disk_flux + :99.0; + + if (FLAG(obj2.prof_bar_mag)) + obj2->prof_bar_mag = obj2->prof_bar_flux>0.0? + -2.5*log10(obj2->prof_bar_flux) + + prefs.mag_zeropoint + :99.0; + if (FLAG(obj2.prof_bar_magerr)) + obj2->prof_bar_magerr = obj2->prof_bar_flux>0.0? + 1.086*obj2->prof_bar_fluxerr + /obj2->prof_bar_flux + :99.0; + + if (FLAG(obj2.prof_arms_mag)) + obj2->prof_arms_mag = obj2->prof_arms_flux>0.0? + -2.5*log10(obj2->prof_arms_flux) + + prefs.mag_zeropoint + :99.0; + if (FLAG(obj2.prof_arms_magerr)) + obj2->prof_arms_magerr = obj2->prof_arms_flux>0.0? + 1.086*obj2->prof_arms_fluxerr + /obj2->prof_arms_flux + :99.0; + /* Mag. WINdowed */ if (FLAG(obj2.mag_win)) obj2->mag_win = obj2->flux_win>0.0? diff --git a/src/poly.c b/src/poly.c deleted file mode 100644 index fdbd40d5096b0c48e399f55d639462cb5e4717d8..0000000000000000000000000000000000000000 --- a/src/poly.c +++ /dev/null @@ -1,350 +0,0 @@ - /* - poly.c - -*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -* -* Part of: A program using Polynomials -* -* Author: E.BERTIN (IAP) -* -* Contents: Polynomial fitting -* -* Last modify: 13/12/2002 -* -*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include "define.h" -#include "globals.h" -#include "poly.h" - - -/****** poly_init ************************************************************ -PROTO polystruct *poly_init(int *group, int ndim, int *degree, int ngroup) -PURPOSE Allocate and initialize a polynom structure. -INPUT 1D array containing the group for each parameter, - number of dimensions (parameters), - 1D array with the polynomial degree for each group, - number of groups. -OUTPUT polystruct pointer. -NOTES -. -AUTHOR E. Bertin (IAP) -VERSION 11/02/99 - ***/ -polystruct *poly_init(int *group, int ndim, int *degree, int ngroup) - { - polystruct *poly; - char str[MAXCHAR]; - static int nd[POLY_MAXDIM]; - int *groupt, - d,g,n,num,den; - - QCALLOC(poly, polystruct, 1); - if ((poly->ndim=ndim) > POLY_MAXDIM) - { - sprintf(str, "The dimensionality of the polynom (%d) exceeds the maximum\n" - "allowed one (%d)", ndim, POLY_MAXDIM); - error(EXIT_FAILURE, "*Error*: ", str); - } - - if (ndim) - QMALLOC(poly->group, int, poly->ndim); - for (groupt=poly->group, d=ndim; d--;) - *(groupt++) = *(group++)-1; - - poly->ngroup = ngroup; - if (ngroup) - { - group = poly->group; /* Forget the original *group */ - - QMALLOC(poly->degree, int, poly->ngroup); - -/*-- Compute the number of context parameters for each group */ - memset(nd, 0, ngroup*sizeof(int)); - for (d=0; dngroup) - error(EXIT_FAILURE, "*Error*: polynomial GROUP out of range", ""); - nd[g]++; - } - } - -/* Compute the total number of coefficients */ - poly->ncoeff = 1; - for (g=0; gdegree[g]=*(degree++))>POLY_MAXDEGREE) - { - sprintf(str, "The degree of the polynom (%d) exceeds the maximum\n" - "allowed one (%d)", poly->degree[g], POLY_MAXDEGREE); - error(EXIT_FAILURE, "*Error*: ", str); - } - -/*-- There are (n+d)!/(n!d!) coeffs per group, that is Prod_(i<=d) (n+i)/i */ - for (num=den=1, n=nd[g]; d; num*=(n+d), den*=d--); - poly->ncoeff *= num/den; - } - - QMALLOC(poly->basis, double, poly->ncoeff); - QCALLOC(poly->coeff, double, poly->ncoeff); - - return poly; - } - - -/****** poly_end ************************************************************* -PROTO void poly_end(polystruct *poly) -PURPOSE Free a polynom structure and everything it contains. -INPUT polystruct pointer. -OUTPUT -. -NOTES -. -AUTHOR E. Bertin (IAP, Leiden observatory & ESO) -VERSION 28/01/99 - ***/ -void poly_end(polystruct *poly) - { - free(poly->coeff); - free(poly->basis); - free(poly->degree); - free(poly->group); - free(poly); - } - - -/****** poly_func ************************************************************ -PROTO double poly_func(polystruct *poly, double *pos) -PURPOSE Evaluate a multidimensional polynom. -INPUT polystruct pointer, - pointer to the 1D array of input vector data. -OUTPUT Polynom value. -NOTES Values of the basis functions are updated in poly->basis. -AUTHOR E. Bertin (IAP) -VERSION 11/02/99 - ***/ -double poly_func(polystruct *poly, double *pos) - { - static double xpol[POLY_MAXDIM+1]; - double *post, *xpolt, *basis, *coeff, val, xval; - static int expo[POLY_MAXDIM+1], gexpo[POLY_MAXDIM+1]; - int *expot, *degree,*degreet, *group,*groupt, *gexpot, - d,g,t, ndim; - -/* Prepare the vectors and counters */ - ndim = poly->ndim; - basis = poly->basis; - coeff = poly->coeff; - group = poly->group; - degree = poly->degree; - if (ndim) - { - for (xpolt=xpol, expot=expo, post=pos, d=ndim; --d;) - { - *(++xpolt) = 1.0; - *(++expot) = 0; - } - for (gexpot=gexpo, degreet=degree, g=poly->ngroup; g--;) - *(gexpot++) = *(degreet++); - if (gexpo[*group]) - gexpo[*group]--; - } - -/* -*pos=1.001;*(pos+1)=1.0001;*(pos+2)=1.00001; -*/ -/* The constant term is handled separately */ - val = *(coeff++); - *(basis++) = 1.0; - *expo = 1; - *xpol = *pos; - -/* Compute the rest of the polynom */ - for (t=poly->ncoeff; --t; ) - { -/*-- xpol[0] contains the current product of the x^n's */ - val += (*(basis++)=*xpol)**(coeff++); -/*-- A complex recursion between terms of the polynom speeds up computations */ - post = pos; - groupt = group; - expot = expo; - xpolt = xpol; -/* -printf("%d%d%d %7.5f %7.5f %7.5f %d %d\n", - *expo, *(expo+1), *(expo+2), *xpol, - *(xpol+1), *(xpol+2) , *gexpo, *(gexpo+1)); -*/ - for (d=0; dncoeff; - ndim = poly->ndim; - matsize = ncoeff*ncoeff; - basis = poly->basis; - extbasist = extbasis; - QCALLOC(alpha, double, matsize); - QCALLOC(beta, double, ncoeff); - -/* Build the covariance matrix */ - for (n=ndata; n--;) - { - if (x) - { -/*---- If x!=NULL, compute the basis functions */ - poly_func(poly, x); - x+=ndim; -/*---- If, in addition, extbasis is provided, then fill it */ - if (extbasis) - for (basis1=basis,j=ncoeff; j--;) - *(extbasist++) = *(basis1++); - } - else -/*---- If x==NULL, then rely on pre-computed basis functions */ - for (basis1=basis,j=ncoeff; j--;) - *(basis1++) = *(extbasist++); - - basis1 = basis; - wval = *(w++); - yval = *(y++); - betat = beta; - alphat = alpha; - for (j=ncoeff; j--;) - { - val = *(basis1++)*wval; - *(betat++) += val*yval; - for (basis2=basis,i=ncoeff; i--;) - *(alphat++) += val**(basis2++); - } - } - -/* Solve the system */ - cholsolve(alpha,beta,ncoeff); - - free(alpha); - -/* Now fill the coeff array with the result of the fit */ - betat = beta; - coeff = poly->coeff; - for (j=ncoeff; j--;) - *(coeff++) = *(betat++); - - free(beta); - - return; - } - - -/****** cholsolve ************************************************************* -PROTO void cholsolve(double *a, double *b, int n) -PURPOSE Solve a system of linear equations, using Cholesky decomposition. -INPUT Pointer to the (pseudo 2D) matrix of coefficients, - pointer to the 1D column vector, - matrix size. -OUTPUT -. -NOTES Based on Numerical Recipes, 2nd ed. (Chap 2.9). The matrix of - coefficients must be symmetric and positive definite. -AUTHOR E. Bertin (IAP, Leiden observatory & ESO) -VERSION 13/12/98 - ***/ -void cholsolve(double *a, double *b, int n) - { - double *p, *x, sum; - int i,j,k; - -/* Allocate memory to store the diagonal elements */ - QMALLOC(p, double, n); - -/* Cholesky decomposition */ - for (i=0; i=0; k--) - sum -= a[i*n+k]*a[j*n+k]; - if (i==j) - { - if (sum <= 0.0) - error(EXIT_FAILURE, "*Error*: Non positive definite matrix in ", - "cholsolve()"); - p[i] = sqrt(sum); - } - else - a[j*n+i] = sum/p[i]; - } - -/* Solve the system */ - x = b; /* Just to save memory: the solution replaces b */ - for (i=0; i=0; k--) - sum -= a[i*n+k]*x[k]; - x[i] = sum/p[i]; - } - - for (i=n-1; i>=0; i--) - { - for (sum=x[i],k=i+1; k #include #include +#include +#if defined(USE_THREADS) \ +&& (defined(__APPLE__) || defined(FREEBSD) || defined(NETBSD)) /* BSD, Apple */ + #include + #include +#elif defined(USE_THREADS) && defined(HAVE_MPCTL) /* HP/UX */ + #include +#endif #include "define.h" #include "globals.h" @@ -370,6 +378,68 @@ int cistrcmp(char *cs, char *ct, int mode) } +/********************************* preprefs **********************************/ +/* +Set number of threads and endianity. +*/ +void preprefs() + + { + unsigned short ashort=1; +#ifdef USE_THREADS + int nproc; +#endif + +/* Test if byteswapping will be needed */ + bswapflag = *((char *)&ashort); + +/* Multithreading */ +#ifdef USE_THREADS + if (!prefs.nthreads) + { +/*-- Get the number of processors for parallel builds */ +/*-- See, e.g. http://ndevilla.free.fr/threads */ + nproc = -1; +#if defined(_SC_NPROCESSORS_ONLN) /* AIX, Solaris, Linux */ + nproc = (int)sysconf(_SC_NPROCESSORS_ONLN); +#elif defined(_SC_NPROCESSORS_CONF) + nproc = (int)sysconf(_SC_NPROCESSORS_CONF); +#elif defined(__APPLE__) || defined(FREEBSD) || defined(NETBSD) /* BSD, Apple */ + { + int mib[2]; + size_t len; + + mib[0] = CTL_HW; + mib[1] = HW_NCPU; + len = sizeof(nproc); + sysctl(mib, 2, &nproc, &len, NULL, 0); + } +#elif defined (_SC_NPROC_ONLN) /* SGI IRIX */ + nproc = sysconf(_SC_NPROC_ONLN); +#elif defined(HAVE_MPCTL) /* HP/UX */ + nproc = mpctl(MPC_GETNUMSPUS_SYS, 0, 0); +#endif + + if (nproc>0) + prefs.nthreads = nproc; + else + { + prefs.nthreads = 2; + warning("Cannot find the number of CPUs on this system:", + "NTHREADS defaulted to 2"); + } + } +#else + if (prefs.nthreads != 1) + { + prefs.nthreads = 1; + warning("NTHREADS != 1 ignored: ", + "this build of " BANNER " is single-threaded"); + } +#endif + } + + /********************************* useprefs **********************************/ /* Update various structures according to the prefs. @@ -377,13 +447,9 @@ Update various structures according to the prefs. void useprefs() { - unsigned short ashort=1; int i, margin, naper; char *str; -/* Test if byteswapping will be needed */ - bswapflag = *((char *)&ashort); - /*-------------------------------- Images ----------------------------------*/ prefs.dimage_flag = (prefs.nimage_name>1); @@ -402,9 +468,10 @@ void useprefs() prefs.world_flag = FLAG(obj2.mxw) || FLAG(obj2.mamaposx) || FLAG(obj2.peakxw) || FLAG(obj2.winpos_xw) || FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) + || FLAG(obj2.xw_prof) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) - || FLAG(obj2.fwhmw); + || FLAG(obj2.fwhmw) || FLAG(obj2.prof_flagw); /* Default astrometric settings */ strcpy(prefs.coosys, "ICRS"); prefs.epoch = 2000.0; @@ -514,6 +581,20 @@ void useprefs() prefs.pc_flag = 1; } +/*-------------------------- Profile-fitting -------------------------------*/ + if (prefs.check_flag) + for (i=0; i +#else +#define _GNU_SOURCE +#include +#endif + +#ifdef HAVE_LOGF +#define LOGF logf +#else +#define LOGF log +#endif + +#include +#include +#include + +#include "define.h" +#include "globals.h" +#include "prefs.h" +#include "fits/fitscat.h" +#include "levmar/lm.h" +#include "fft.h" +#include "fitswcs.h" +#include "check.h" +#include "pattern.h" +#include "psf.h" +#include "profit.h" + +static double prof_interpolate(profstruct *prof, double *posin); +static double interpolate_pix(double *posin, double *pix, int *naxisn, + interpenum interptype); + +static void make_kernel(double pos, double *kernel, interpenum interptype); + +/*------------------------------- variables ---------------------------------*/ + +char profname[][32]={"background offset", "Sersic spheroid", + "De Vaucouleurs spheroid", "exponential disk", "spiral arms", + "bar", "inner ring", "outer ring", "tabulated model", + ""}; + +int interp_kernwidth[5]={1,2,4,6,8}; +int theniter, the_gal; +/* "Local" global variables; it seems dirty but it simplifies a lot */ +/* interfacing to the LM routines */ +static picstruct *the_field, *the_wfield; +profitstruct *theprofit; + +/****** profit_init *********************************************************** +PROTO profitstruct profit_init(psfstruct *psf) +PURPOSE Allocate and initialize a new profile-fitting structure. +INPUT Pointer to PSF structure. +OUTPUT A pointer to an allocated profit structure. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 26/04/2008 + ***/ +profitstruct *profit_init(psfstruct *psf) + { + profitstruct *profit; + int p, nprof, + backflag, spheroidflag, diskflag, barflag, armsflag; + + QCALLOC(profit, profitstruct, 1); + profit->psf = psf; + profit->psfdft = NULL; + + profit->nparam = 0; + QMALLOC(profit->prof, profstruct *, PROF_NPROF); + backflag = spheroidflag = diskflag = barflag = armsflag = 0; + nprof = 0; + for (p=0; pprof[p] = prof_init(profit, PROF_BACK); + backflag = 1; + nprof++; + } + else if (!spheroidflag && FLAG(obj2.prof_spheroid_flux)) + { + profit->prof[p] = prof_init(profit, + FLAG(obj2.prof_spheroid_sersicn)? PROF_SERSIC : PROF_DEVAUCOULEURS); + spheroidflag = 1; + nprof++; + } + else if (!diskflag && FLAG(obj2.prof_disk_flux)) + { + profit->prof[p] = prof_init(profit, PROF_EXPONENTIAL); + diskflag = 1; + nprof++; + } + else if (diskflag && !barflag && FLAG(obj2.prof_bar_flux)) + { + profit->prof[p] = prof_init(profit, PROF_BAR); + barflag = 1; + nprof++; + } + else if (barflag && !armsflag && FLAG(obj2.prof_arms_flux)) + { + profit->prof[p] = prof_init(profit, PROF_ARMS); + armsflag = 1; + nprof++; + } + + QMALLOC(profit->covar, double, profit->nparam*profit->nparam); + profit->nprof = nprof; + + return profit; + } + + +/****** profit_end ************************************************************ +PROTO void prof_end(profstruct *prof) +PURPOSE End (deallocate) a profile-fitting structure. +INPUT Prof structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 26/04/2008 + ***/ +void profit_end(profitstruct *profit) + { + int p; + + for (p=0; pnprof; p++) + prof_end(profit->prof[p]); + free(profit->prof); + free(profit->covar); + free(profit->psfdft); + free(profit); + + return; + } + + +/****** profit_fit ************************************************************ +PROTO void profit_fit(profitstruct *profit, picstruct *field, + picstruct *wfield, objstruct *obj, obj2struct *obj2) +PURPOSE Fit profile(s) convolved with the PSF to a detected object. +INPUT Array of profile structures, + Number of profiles, + Pointer to the profile-fitting structure, + Pointer to the field, + Pointer to the field weight, + Pointer to the obj. +OUTPUT Pointer to an allocated fit structure (containing details about the + fit). +NOTES It is a modified version of the lm_minimize() of lmfit. +AUTHOR E. Bertin (IAP) +VERSION 20/11/2008 + ***/ +void profit_fit(profitstruct *profit, + picstruct *field, picstruct *wfield, + objstruct *obj, obj2struct *obj2) + { + patternstruct *pattern; + psfstruct *psf; + checkstruct *check; + double *oldparaminit, + psf_fwhm, oldchi2, a , cp,sp, emx2,emy2,emxy; + int i,j,p, oldniter, nparam, ncomp; + + nparam = profit->nparam; + if (profit->psfdft) + { + QFREE(profit->psfdft); + } + + psf = profit->psf; + profit->pixstep = psf->pixstep; + +/* Create pixmaps at image resolution */ + psf_fwhm = psf->masksize[0]*psf->pixstep; + profit->objnaxisn[0] = (((int)((obj->xmax-obj->xmin+1) + psf_fwhm + 0.499) + *1.2)/2)*2 + 1; + profit->objnaxisn[1] = (((int)((obj->ymax-obj->ymin+1) + psf_fwhm + 0.499) + *1.2)/2)*2 + 1; + profit->ix = (int)(obj->mx + 0.49999);/* internal convention: 1st pix = 0 */ + profit->iy = (int)(obj->my + 0.49999);/* internal convention: 1st pix = 0 */ + + if (profit->objnaxisn[1]objnaxisn[0]) + profit->objnaxisn[1] = profit->objnaxisn[0]; + else + profit->objnaxisn[0] = profit->objnaxisn[1]; + +/* Use (dirty) global variables to interface with lmfit */ + the_field = field; + the_wfield = wfield; + theprofit = profit; + profit->obj = obj; + profit->obj2 = obj2; + + QMALLOC(profit->objpix, PIXTYPE, profit->objnaxisn[0]*profit->objnaxisn[1]); + QMALLOC(profit->objweight, PIXTYPE,profit->objnaxisn[0]*profit->objnaxisn[1]); + QMALLOC(profit->lmodpix, PIXTYPE, profit->objnaxisn[0]*profit->objnaxisn[1]); + profit->nresi = profit_copyobjpix(profit, field, wfield); + if (profit->nresi < nparam) + { + for (p=0; pprof_vector[p] = 0.0; + obj2->prof_niter = 0; + return; + } + + QMALLOC(profit->resi, double, profit->nresi); + +/* Create pixmap at PSF resolution */ + profit->modnaxisn[0] = + ((int)(profit->objnaxisn[0]/profit->pixstep +0.4999)/2+1)*2; + profit->modnaxisn[1] = + ((int)(profit->objnaxisn[1]/profit->pixstep +0.4999)/2+1)*2; + if (profit->modnaxisn[1] < profit->modnaxisn[0]) + profit->modnaxisn[1] = profit->modnaxisn[0]; + else + profit->modnaxisn[0] = profit->modnaxisn[1]; + +/* Allocate memory for the complete model */ + QCALLOC(profit->modpix, double, profit->modnaxisn[0]*profit->modnaxisn[1]); + QMALLOC(profit->psfpix, double, profit->modnaxisn[0]*profit->modnaxisn[1]); +/* Allocate memory for the partial model */ + QMALLOC(profit->pmodpix, float, profit->modnaxisn[0]*profit->modnaxisn[1]); + +/* Compute the local PSF */ + profit_psf(profit); + +/* Set initial guesses and boundaries */ + obj2->prof_flag = 0; + profit->sigma = obj->sigbkg; + + profit_resetparams(profit); + +//for (p=0; pparaminit[p]); +//printf("\n"); + +the_gal++; + +/* Actual minimisation */ + profit->niter = profit_minimize(profit, PROFIT_MAXITER); + + QMEMCPY(profit->paraminit, oldparaminit, double, nparam); + if (profit_setparam(profit, PARAM_ARMS_PITCH, 160.0, 130.0, 175.0)==RETURN_OK) + { + oldchi2 = profit->chi2; + oldniter = profit->niter; + profit_resetparams(profit); + profit_setparam(profit, PARAM_ARMS_PITCH, 160.0, 130.0, 175.0); + profit->niter = profit_minimize(profit, PROFIT_MAXITER); + if (profit->chi2 > oldchi2) + { + memcpy(profit->paraminit, oldparaminit, nparam*sizeof(double)); + profit->chi2 = oldchi2; + profit->niter = oldniter; + } + else + obj2->prof_flag |= PROFIT_FLIPPED; + } + +/* Convert covariance matrix to bound space */ + profit_covarunboundtobound(profit); + for (p=0; pparamerr[p]= sqrt(profit->covar[p*(nparam+1)]); + +/* Equate param and paraminit vectors to avoid confusion later on */ + for (p=0; pnparam; p++) + profit->param[p] = profit->paraminit[p]; + +//printf("--> "); +//for (p=0; pnparam; p++) +//printf("%g %g %g\n", profit->param[p], profit->parammin[p], profit->parammax[p]); +//printf("(%d)\n", profit->niter); + +/* CHECK-Images */ + if ((check = prefs.check[CHECK_SUBPROFILES])) + { + profit_residuals(profit,field,wfield,profit->param,profit->resi); + addcheck(check, profit->lmodpix, profit->objnaxisn[0],profit->objnaxisn[1], + profit->ix,profit->iy, -1.0); + } + if ((check = prefs.check[CHECK_PROFILES])) + { + profit_residuals(profit,field,wfield,profit->param,profit->resi); + addcheck(check, profit->lmodpix, profit->objnaxisn[0],profit->objnaxisn[1], + profit->ix,profit->iy, 1.0); + } + +/* Fill measurement parameters */ + if (FLAG(obj2.prof_vector)) + { + for (p=0; pprof_vector[p]= profit->param[p]; + } + if (FLAG(obj2.prof_errvector)) + { + for (p=0; pprof_errvector[p]= profit->paramerr[p]; + } + + obj2->prof_niter = profit->niter; + obj2->flux_prof = profit->flux; + obj2->prof_chi2 = profit->chi2; + if (FLAG(obj2.x_prof)) + { + i = profit->paramindex[PARAM_X]; + j = profit->paramindex[PARAM_Y]; +/*-- Model coordinates follow the FITS convention (first pixel at 1,1) */ + obj2->x_prof = profit->ix + *profit->paramlist[PARAM_X] + 1.0; + obj2->y_prof = profit->iy + *profit->paramlist[PARAM_Y] + 1.0; + obj2->poserrmx2_prof = emx2 = profit->covar[i*(nparam+1)]; + obj2->poserrmy2_prof = emy2 = profit->covar[j*(nparam+1)]; + obj2->poserrmxy_prof = emxy = profit->covar[i+j*nparam]; + +/*-- Error ellipse parameters */ + if (FLAG(obj2.poserra_prof)) + { + double pmx2,pmy2,temp,theta; + + if (fabs(temp=emx2-emy2) > 0.0) + theta = atan2(2.0 * emxy,temp) / 2.0; + else + theta = PI/4.0; + + temp = sqrt(0.25*temp*temp+ emxy*emxy); + pmy2 = pmx2 = 0.5*(emx2+emy2); + pmx2+=temp; + pmy2-=temp; + + obj2->poserra_prof = (float)sqrt(pmx2); + obj2->poserrb_prof = (float)sqrt(pmy2); + obj2->poserrtheta_prof = theta*180.0/PI; + } + + if (FLAG(obj2.poserrcxx_prof)) + { + double temp; + + obj2->poserrcxx_prof = (float)(emy2/(temp=emx2*emy2-emxy*emxy)); + obj2->poserrcyy_prof = (float)(emx2/temp); + obj2->poserrcxy_prof = (float)(-2*emxy/temp); + } + } + + + if (FLAG(obj2.prof_mx2)) + { + memset(profit->modpix, 0, + profit->modnaxisn[0]*profit->modnaxisn[1]*sizeof(double)); + for (p=0; pnprof; p++) + prof_add(profit->prof[p], profit); + profit_moments(profit); + } + +/* Bulge */ + if (FLAG(obj2.prof_spheroid_flux)) + { + obj2->prof_spheroid_flux = *profit->paramlist[PARAM_SPHEROID_FLUX]; + obj2->prof_spheroid_fluxerr = + profit->paramerr[profit->paramindex[PARAM_SPHEROID_FLUX]]; + obj2->prof_spheroid_reff = *profit->paramlist[PARAM_SPHEROID_REFF]; + obj2->prof_spheroid_refferr = + profit->paramerr[profit->paramindex[PARAM_SPHEROID_REFF]]; + obj2->prof_spheroid_aspect = *profit->paramlist[PARAM_SPHEROID_ASPECT]; + obj2->prof_spheroid_aspecterr = + profit->paramerr[profit->paramindex[PARAM_SPHEROID_ASPECT]]; + obj2->prof_spheroid_theta = + fmod_m90_p90(*profit->paramlist[PARAM_SPHEROID_POSANG]); + obj2->prof_spheroid_thetaerr = + profit->paramerr[profit->paramindex[PARAM_SPHEROID_POSANG]]; + if (FLAG(obj2.prof_spheroid_sersicn)) + { + obj2->prof_spheroid_sersicn = *profit->paramlist[PARAM_SPHEROID_SERSICN]; + obj2->prof_spheroid_sersicnerr = + profit->paramerr[profit->paramindex[PARAM_SPHEROID_SERSICN]]; + } + } + +/* Disk */ + if (FLAG(obj2.prof_disk_flux)) + { + obj2->prof_disk_flux = *profit->paramlist[PARAM_DISK_FLUX]; + obj2->prof_disk_fluxerr = + profit->paramerr[profit->paramindex[PARAM_DISK_FLUX]]; + obj2->prof_disk_scale = *profit->paramlist[PARAM_DISK_SCALE]; + obj2->prof_disk_scaleerr = + profit->paramerr[profit->paramindex[PARAM_DISK_SCALE]]; + obj2->prof_disk_aspect = *profit->paramlist[PARAM_DISK_ASPECT]; + obj2->prof_disk_aspecterr = + profit->paramerr[profit->paramindex[PARAM_DISK_ASPECT]]; + obj2->prof_disk_theta = fmod_m90_p90(*profit->paramlist[PARAM_DISK_POSANG]); + obj2->prof_disk_thetaerr = + profit->paramerr[profit->paramindex[PARAM_DISK_POSANG]]; + if (FLAG(obj2.prof_disk_inclination)) + { + obj2->prof_disk_inclination = acos(obj2->prof_disk_aspect) / DEG; + if (FLAG(obj2.prof_disk_inclinationerr)) + { + a = sqrt(1.0-obj2->prof_disk_aspect*obj2->prof_disk_aspect); + obj2->prof_disk_inclinationerr = obj2->prof_disk_aspecterr + /(a>0.1? a : 0.1)/DEG; + } + } + +/* Disk pattern */ + if (prefs.pattern_flag) + { + profit_residuals(profit,field,wfield,profit->param,profit->resi); + pattern = pattern_init(profit, prefs.pattern_type, + prefs.prof_disk_patternncomp); + pattern_fit(pattern, profit); + if (FLAG(obj2.prof_disk_patternspiral)) + obj2->prof_disk_patternspiral = pattern_spiral(pattern); + if (FLAG(obj2.prof_disk_patternvector)) + { + ncomp = pattern->size[2]; + for (p=0; pprof_disk_patternvector[p] = (float)pattern->coeff[p]; + } + if (FLAG(obj2.prof_disk_patternmodvector)) + { + ncomp = pattern->ncomp*pattern->nfreq; + for (p=0; pprof_disk_patternmodvector[p] = (float)pattern->mcoeff[p]; + } + if (FLAG(obj2.prof_disk_patternargvector)) + { + ncomp = pattern->ncomp*pattern->nfreq; + for (p=0; pprof_disk_patternargvector[p] = (float)pattern->acoeff[p]; + } + pattern_end(pattern); + } + +/* Bar */ + if (FLAG(obj2.prof_bar_flux)) + { + obj2->prof_bar_flux = *profit->paramlist[PARAM_BAR_FLUX]; + obj2->prof_bar_fluxerr = + profit->paramerr[profit->paramindex[PARAM_BAR_FLUX]]; + obj2->prof_bar_length = *profit->paramlist[PARAM_ARMS_START] + **profit->paramlist[PARAM_DISK_SCALE]; + obj2->prof_bar_lengtherr = *profit->paramlist[PARAM_ARMS_START] + * profit->paramerr[profit->paramindex[PARAM_DISK_SCALE]] + + *profit->paramlist[PARAM_DISK_SCALE] + * profit->paramerr[profit->paramindex[PARAM_ARMS_START]]; + obj2->prof_bar_aspect = *profit->paramlist[PARAM_BAR_ASPECT]; + obj2->prof_bar_aspecterr = + profit->paramerr[profit->paramindex[PARAM_BAR_ASPECT]]; + obj2->prof_bar_posang = + fmod_m90_p90(*profit->paramlist[PARAM_ARMS_POSANG]); + obj2->prof_bar_posangerr = + profit->paramerr[profit->paramindex[PARAM_ARMS_POSANG]]; + if (FLAG(obj2.prof_bar_theta)) + { + cp = cos(obj2->prof_bar_posang*DEG); + sp = sin(obj2->prof_bar_posang*DEG); + a = obj2->prof_disk_aspect; + obj2->prof_bar_theta = fmod_m90_p90(atan2(a*sp,cp)/DEG + + obj2->prof_disk_theta); + obj2->prof_bar_thetaerr = obj2->prof_bar_posangerr*a/(cp*cp+a*a*sp*sp); + } + +/* Arms */ + if (FLAG(obj2.prof_arms_flux)) + { + obj2->prof_arms_flux = *profit->paramlist[PARAM_ARMS_FLUX]; + obj2->prof_arms_fluxerr = + profit->paramerr[profit->paramindex[PARAM_ARMS_FLUX]]; + obj2->prof_arms_pitch = + fmod_m90_p90(*profit->paramlist[PARAM_ARMS_PITCH]); + obj2->prof_arms_pitcherr = + profit->paramerr[profit->paramindex[PARAM_ARMS_PITCH]]; + obj2->prof_arms_start = *profit->paramlist[PARAM_ARMS_START] + **profit->paramlist[PARAM_DISK_SCALE]; + obj2->prof_arms_starterr = *profit->paramlist[PARAM_ARMS_START] + * profit->paramerr[profit->paramindex[PARAM_DISK_SCALE]] + + *profit->paramlist[PARAM_DISK_SCALE] + * profit->paramerr[profit->paramindex[PARAM_ARMS_START]]; + obj2->prof_arms_quadfrac = *profit->paramlist[PARAM_ARMS_QUADFRAC]; + obj2->prof_arms_quadfracerr = + profit->paramerr[profit->paramindex[PARAM_ARMS_QUADFRAC]]; + obj2->prof_arms_posang = + fmod_m90_p90(*profit->paramlist[PARAM_ARMS_POSANG]); + obj2->prof_arms_posangerr = + profit->paramerr[profit->paramindex[PARAM_ARMS_POSANG]]; + } + } + } + +/* clean up. */ + free(profit->modpix); + free(profit->psfpix); + free(profit->pmodpix); + free(profit->lmodpix); + free(profit->objpix); + free(profit->objweight); + free(profit->resi); + free(oldparaminit); +//for (ix=0; ixnparam;ix++) +//printf("%10.5f ", sqrt(profit->covar[ix*profit->nparam+ix])); +//printf("\n"); + return; + } + + +/****** profit_psf ************************************************************ +PROTO void profit_psf(profitstruct *profit) +PURPOSE Build the local PSF at a given resolution. +INPUT Profile-fitting structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 22/10/2008 + ***/ +void profit_psf(profitstruct *profit) + { + double posin[2], posout[2], dnaxisn[2], + *pixout, + xcout,ycout, xcin,ycin, invpixstep, flux, norm; + int d,i; + + psf = profit->psf; + psf_build(psf); + + xcout = (double)(profit->modnaxisn[0]/2) + 1.0; /* FITS convention */ + ycout = (double)(profit->modnaxisn[1]/2) + 1.0; /* FITS convention */ + xcin = (psf->masksize[0]/2) + 1.0; /* FITS convention */ + ycin = (psf->masksize[1]/2) + 1.0; /* FITS convention */ + invpixstep = profit->pixstep / psf->pixstep; + +/* Initialize multi-dimensional counters */ + for (d=0; d<2; d++) + { + posout[d] = 1.0; /* FITS convention */ + dnaxisn[d] = profit->modnaxisn[d]+0.5; + } + +/* Remap each pixel */ + pixout = profit->psfpix; + flux = 0.0; + for (i=profit->modnaxisn[0]*profit->modnaxisn[1]; i--;) + { + posin[0] = (posout[0] - xcout)*invpixstep + xcin; + posin[1] = (posout[1] - ycout)*invpixstep + ycin; + flux += ((*(pixout++) = interpolate_pix(posin, psf->maskloc, + psf->masksize, INTERP_LANCZOS3))); + for (d=0; d<2; d++) + if ((posout[d]+=1.0) < dnaxisn[d]) + break; + else + posout[d] = 1.0; + } + +/* Normalize PSF flux (just in case...) */ + flux *= psf->pixstep*psf->pixstep; + if (fabs(flux) > 0.0) + { + norm = 1.0/flux; + pixout = profit->psfpix; + for (i=profit->modnaxisn[0]*profit->modnaxisn[1]; i--;) + *(pixout++) *= norm; + } + + return; + } + + +/****** profit_findinit ******************************************************* +PROTO void profit_findinit(profitstruct *profit) +PURPOSE Find a suitable set of initialisation parameters +INPUT Pointer to the profit structure involved in the fit. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 16/04/2008 + ***/ +void profit_findinit(profitstruct *profit) + { + int p; + + for (p=0; pnprof; p++) + switch (profit->prof[p]->code) + { + default: + break; + } + + return; + } + + +/****** profit_minimize ******************************************************* +PROTO void profit_minimize(profitstruct *profit) +PURPOSE Provide a function returning residuals to lmfit. +INPUT Pointer to the profit structure involved in the fit, + maximum number of iterations. +OUTPUT Number of iterations used. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 23/05/2008 + ***/ +int profit_minimize(profitstruct *profit, int niter) + { + double lm_opts[5], info[LM_INFO_SZ]; + int m,n; + +/* Allocate work space */ + n = profit->nparam; + m = profit->nresi; + + memset(profit->resi, 0, profit->nresi*sizeof(double)); + memset(profit->covar, 0, profit->nparam*profit->nparam*sizeof(double)); + profit_boundtounbound(profit, profit->paraminit); + +/* Perform fit */ + lm_opts[0] = 1.0e-3; + lm_opts[1] = 1.0e-17; + lm_opts[2] = 1.0e-17; + lm_opts[3] = 1.0e-17; + lm_opts[4] = 1.0e-6; + + niter = dlevmar_dif(profit_evaluate, profit->paraminit, profit->resi, + n, m, niter, lm_opts, info, NULL, profit->covar, profit); + + profit_unboundtobound(profit, profit->paraminit); + + + return niter; + } + + +/****** profit_printout ******************************************************* +PROTO void profit_printout(int n_par, double* par, int m_dat, double* fvec, + void *data, int iflag, int iter, int nfev ) +PURPOSE Provide a function to print out results to lmfit. +INPUT Number of fitted parameters, + pointer to the vector of parameters, + number of data points, + pointer to the vector of residuals (output), + pointer to the data structure (unused), + 0 (init) 1 (outer loop) 2(inner loop) -1(terminated), + outer loop counter, + number of calls to evaluate(). +OUTPUT -. +NOTES Input arguments are there only for compatibility purposes (unused) +AUTHOR E. Bertin (IAP) +VERSION 17/09/2008 + ***/ +void profit_printout(int n_par, double* par, int m_dat, double* fvec, + void *data, int iflag, int iter, int nfev ) + { + checkstruct *check; + profitstruct *profit; + char filename[256]; + static int itero; + + profit = (profitstruct *)data; + + if (0 && (iter!=itero || iter<0)) + { + if (iter<0) + itero++; + else + itero = iter; + sprintf(filename, "check_%d_%04d.fits", the_gal, itero); + check=initcheck(filename, CHECK_PROFILES, 0); + reinitcheck(the_field, check); + addcheck(check, profit->lmodpix, profit->objnaxisn[0],profit->objnaxisn[1], + profit->ix,profit->iy, 1.0); + + reendcheck(the_field, check); + endcheck(check); + } + + return; + } + + +/****** profit_evaluate ****************************************************** +PROTO void profit_evaluate(double *par, double *fvec, int m, int n, + void *adata) +PURPOSE Provide a function returning residuals to levmar. +INPUT Pointer to the vector of parameters, + pointer to the vector of residuals (output), + number of model parameters, + number of data points, + pointer to a data structure (unused). +OUTPUT -. +NOTES Input arguments are there only for compatibility purposes (unused) +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +void profit_evaluate(double *par, double *fvec, int m, int n, + void *adata) + { + profitstruct *profit; + + profit = (profitstruct *)adata; + profit_unboundtobound(profit, par); + profit_residuals(profit, the_field, the_wfield, par, fvec); + profit_boundtounbound(profit, par); + profit_printout(m, par, n, fvec, adata, 0, -1, 0 ); + return; + } + + +/****** profit_residuals ****************************************************** +PROTO double *prof_residuals(profitstruct *profit, picstruct *field, + picstruct *wfield, double *param, double *resi) +PURPOSE Compute the vector of residuals between the data and the galaxy + profile model. +INPUT Profile-fitting structure, + pointer to the field, + pointer to the field weight, + pointer to the obj, + pointer to the model parameters (output), + pointer to the computed residuals (output). +OUTPUT Vector of residuals. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 15/09/2008 + ***/ +double *profit_residuals(profitstruct *profit, picstruct *field, + picstruct *wfield, double *param, double *resi) + { + int p; + + memset(profit->modpix, 0, + profit->modnaxisn[0]*profit->modnaxisn[1]*sizeof(double)); + for (p=0; pnparam; p++) + profit->param[p] = param[p]; + for (p=0; pnprof; p++) + prof_add(profit->prof[p], profit); + profit_convolve(profit, profit->modpix); + profit_resample(profit, profit->modpix, profit->lmodpix); + profit_compresi(profit, resi); + + return resi; + } + + +/****** profit_compresi ****************************************************** +PROTO double *prof_compresi(profitstruct *profit, double *resi) +PURPOSE Compute the vector of residuals between the data and the galaxy + profile model. +INPUT Profile-fitting structure, + pointer to the obj, + vector of residuals (output). +OUTPUT Vector of residuals. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +double *profit_compresi(profitstruct *profit, double *resi) + { + double *resit, + error, x1c,x1,x2,rmin; + PIXTYPE *objpix, *objweight, *lmodpix, + val,val2,wval, invsig; + int npix, ix1,ix2; + +/* Compute vector of residuals */ + npix = profit->objnaxisn[0]*profit->objnaxisn[1]; + resit = resi; + objpix = profit->objpix; + objweight = profit->objweight; + lmodpix = profit->lmodpix; + invsig = 1.0/PROFIT_DYNPARAM; + error = 0.0; + x1c = (double)(profit->objnaxisn[0]/2); + rmin = profit->obj2->hl_radius / 2.0; + x2 = -(double)(profit->objnaxisn[1]/2); + for (ix2=profit->objnaxisn[1]; ix2--; x2+=1.0) + { + x1 = -x1c; + for (ix1=profit->objnaxisn[0]; ix1--; x1+=1.0, lmodpix++) + { + val = *(objpix++); + if ((wval=*(objweight++))>0.0) + { + val2 = (double)(val - *lmodpix)*wval*invsig; + val2 = val2>0.0? LOGF(1.0+val2) : -LOGF(1.0-val2); + *(resit++) = val2*PROFIT_DYNPARAM; +// *(resit++) = val2*(rmin/(sqrt(r2)+rmin)); + error += val2*val2; + } + } + } + + profit->chi2 = PROFIT_DYNPARAM*PROFIT_DYNPARAM*error/npix; + + return resi; + } + + +/****** profit_resample ****************************************************** +PROTO void prof_resample(profitstruct *profit, double *inpix, + PIXTYPE *outpix) +PURPOSE Resample the current full resolution model to image resolution. +INPUT Profile-fitting structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 15/09/2008 + ***/ +void profit_resample(profitstruct *profit, double *inpix, PIXTYPE *outpix) + { + double posin[2], posout[2], dnaxisn[2], + *dx,*dy, + xcout,ycout, xcin,ycin, invpixstep, flux; + int d,i; + + xcout = (double)(profit->objnaxisn[0]/2) + 1.0; /* FITS convention */ + if ((dx=(profit->paramlist[PARAM_X]))) + xcout += *dx; + ycout = (double)(profit->objnaxisn[1]/2) + 1.0; /* FITS convention */ + if ((dy=(profit->paramlist[PARAM_Y]))) + ycout += *dy; + xcin = (profit->modnaxisn[0]/2) + 1.0; /* FITS convention */ + ycin = (profit->modnaxisn[1]/2) + 1.0; /* FITS convention */ + invpixstep = 1.0/profit->pixstep; + +/* Initialize multi-dimensional counters */ + for (d=0; d<2; d++) + { + posout[d] = 1.0; /* FITS convention */ + dnaxisn[d] = profit->objnaxisn[d]+0.5; + } + +/* Remap each pixel */ + flux = 0.0; + for (i=profit->objnaxisn[0]*profit->objnaxisn[1]; i--;) + { + posin[0] = (posout[0] - xcout)*invpixstep + xcin; + posin[1] = (posout[1] - ycout)*invpixstep + ycin; + flux += ((*(outpix++) = (PIXTYPE)(interpolate_pix(posin, inpix, + profit->modnaxisn, INTERP_LANCZOS3)))); + for (d=0; d<2; d++) + if ((posout[d]+=1.0) < dnaxisn[d]) + break; + else + posout[d] = 1.0; + } + + profit->flux = flux; + + return; + } + + +/****** profit_convolve ******************************************************* +PROTO void profit_convolve(profitstruct *profit, double *modpix) +PURPOSE Convolve a model image with the local PSF. +INPUT Pointer to the profit structure, + Pointer to the image raster. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 15/09/2008 + ***/ +void profit_convolve(profitstruct *profit, double *modpix) + { + if (!profit->psfdft) + profit_makedft(profit); + + fft_conv(modpix, profit->psfdft, profit->modnaxisn); + + return; + } + + +/****** profit_makedft ******************************************************* +PROTO void profit_makedft(profitstruct *profit) +PURPOSE Create the Fourier transform of the descrambled PSF component. +INPUT Pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 22/04/2008 + ***/ +void profit_makedft(profitstruct *profit) + { + psfstruct *psf; + double *mask,*maskt, *ppix; + double dx,dy, r,r2,rmin,rmin2,rmax,rmax2,rsig,invrsig2; + int width,height,npix,offset, psfwidth,psfheight,psfnpix, + cpwidth, cpheight,hcpwidth,hcpheight, i,j,x,y; + + if (!(psf=profit->psf)) + return; + + psfwidth = profit->modnaxisn[0]; + psfheight = profit->modnaxisn[1]; + psfnpix = psfwidth*psfheight; + width = profit->modnaxisn[0]; + height = profit->modnaxisn[1]; + npix = width*height; + QCALLOC(mask, double, npix); + cpwidth = (width>psfwidth)?psfwidth:width; + hcpwidth = cpwidth>>1; + cpwidth = hcpwidth<<1; + offset = width - cpwidth; + cpheight = (height>psfheight)?psfheight:height; + hcpheight = cpheight>>1; + cpheight = hcpheight<<1; + +/* Frame and descramble the PSF data */ + ppix = profit->psfpix + (psfheight/2)*psfwidth + psfwidth/2; + maskt = mask; + for (j=hcpheight; j--; ppix+=psfwidth) + { + for (i=hcpwidth; i--;) + *(maskt++) = *(ppix++); + ppix -= cpwidth; + maskt += offset; + for (i=hcpwidth; i--;) + *(maskt++) = *(ppix++); + } + + ppix = profit->psfpix + ((psfheight/2)-hcpheight)*psfwidth + psfwidth/2; + maskt += width*(height-cpheight); + for (j=hcpheight; j--; ppix+=psfwidth) + { + for (i=hcpwidth; i--;) + *(maskt++) = *(ppix++); + ppix -= cpwidth; + maskt += offset; + for (i=hcpwidth; i--;) + *(maskt++) = *(ppix++); + } + +/* Truncate to a disk that has diameter = (box width) */ + rmax = cpwidth - 1.0 - hcpwidth; + if (rmax > (r=hcpwidth)) + rmax = r; + if (rmax > (r=cpheight-1.0-hcpheight)) + rmax = r; + if (rmax > (r=hcpheight)) + rmax = r; + if (rmax<1.0) + rmax = 1.0; + rmax2 = rmax*rmax; + rsig = psf->fwhm/profit->pixstep; + invrsig2 = 1/(2*rsig*rsig); + rmin = rmax - (3*rsig); /* 3 sigma annulus (almost no aliasing) */ + rmin2 = rmin*rmin; + + maskt = mask; + dy = 0.0; + for (y=hcpheight; y--; dy+=1.0) + { + dx = 0.0; + for (x=hcpwidth; x--; dx+=1.0, maskt++) + if ((r2=dx*dx+dy*dy)>rmin2) + *maskt *= (r2>rmax2)?0.0:exp((2*rmin*sqrt(r2)-r2-rmin2)*invrsig2); + dx = -hcpwidth; + maskt += offset; + for (x=hcpwidth; x--; dx+=1.0, maskt++) + if ((r2=dx*dx+dy*dy)>rmin2) + *maskt *= (r2>rmax2)?0.0:exp((2*rmin*sqrt(r2)-r2-rmin2)*invrsig2); + } + dy = -hcpheight; + maskt += width*(height-cpheight); + for (y=hcpheight; y--; dy+=1.0) + { + dx = 0.0; + for (x=hcpwidth; x--; dx+=1.0, maskt++) + if ((r2=dx*dx+dy*dy)>rmin2) + *maskt *= (r2>rmax2)?0.0:exp((2*rmin*sqrt(r2)-r2-rmin2)*invrsig2); + dx = -hcpwidth; + maskt += offset; + for (x=hcpwidth; x--; dx+=1.0, maskt++) + if ((r2=dx*dx+dy*dy)>rmin2) + *maskt *= (r2>rmax2)?0.0:exp((2*rmin*sqrt(r2)-r2-rmin2)*invrsig2); + } + +/* Finally move to Fourier space */ + profit->psfdft = fft_rtf(mask, profit->modnaxisn); + + free(mask); + + return; + } + + +/****** profit_copyobjpix ***************************************************** +PROTO int profit_copyobjpix(profitstruct *profit, picstruct *field, + picstruct *wfield) +PURPOSE Copy a piece of the input field image to a profit structure. +INPUT Pointer to the profit structure, + Pointer to the field structure, + Pointer to the field weight structure. +OUTPUT The number of valid pixels copied. +NOTES Global preferences are used. +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +int profit_copyobjpix(profitstruct *profit, picstruct *field, + picstruct *wfield) + { + double dx2, dy2, dr2, rad2; + PIXTYPE *pixin,*pixout, *wpixin,*wpixout, + backnoise2, invgain, satlevel, wthresh, pix, wpix; + int i,x,y, xmin,xmax,ymin,ymax, w,h,w2,dw, npix, off, gainflag, + ix,iy; + +/* First put the image background to -BIG */ + pixout = profit->objpix; + wpixout = profit->objweight; + w = profit->objnaxisn[0]; + h = profit->objnaxisn[1]; + for (i=w*h; i--;) + { + *(pixout++) = -BIG; + *(wpixout++) = 0.0; + } + +/* Don't go further if out of frame!! */ + ix = profit->ix; + iy = profit->iy; + if (ix<0 || ix>=field->width || iyymin || iy>=field->ymax) + return 0; + + backnoise2 = field->backsig*field->backsig; + invgain = (field->gain > 0.0) ? 1.0/field->gain : 0.0; + satlevel = field->satur_level - profit->obj->bkg; + rad2 = h/2.0; + if (rad2 > w/2.0) + rad2 = w/2.0; + rad2 *= rad2; + + +/* Set the image boundaries */ + pixout = profit->objpix; + wpixout = profit->objweight; + ymin = iy-h/2; + ymax = ymin + h; + if (yminymin) + { + off = (field->ymin-ymin)*w; + pixout += off; + wpixout += off; + ymin = field->ymin; + } + if (ymax>field->ymax) + ymax = field->ymax; + + xmin = ix-w/2; + xmax = xmin + w; + w2 = w; + if (xmax>field->width) + { + w2 -= xmax-field->width; + xmax = field->width; + } + if (xmin<0) + { + pixout -= xmin; + wpixout -= xmin; + w2 += xmin; + xmin = 0; + } + +/* Copy the right pixels to the destination */ + dw = w - w2; + npix = 0; + if (wfield) + { + wthresh = wfield->weight_thresh; + gainflag = prefs.weightgain_flag; +/*-- Do the same for the weights */ + npix = 0; + + for (y=ymin; y-BIG && pix0.0? + (gainflag? pix*wpix/backnoise2:pix)*invgain : 0.0)); + npix++; + } + else + *(wpixout++) = 0.0; + } + } + } + else + for (y=ymin; y-BIG) + { + *(wpixout++) = 1.0 / sqrt(backnoise2 + (pix>0.0?pix*invgain : 0.0)); + npix++; + } + else + *(wpixout++) = 0.0; + } + } + + return npix; + } + + +/****** profit_spiralindex **************************************************** +PROTO double profit_spiralindex(profitstruct *profit) +PURPOSE Compute the spiral index of a galaxy image (positive for arms + extending counter-clockwise and negative for arms extending CW, 0 for + no spiral pattern). +INPUT Profile-fitting structure. +OUTPUT Vector of residuals. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +double profit_spiralindex(profitstruct *profit) + { + objstruct *obj; + obj2struct *obj2; + double *dx,*dy, *fdx,*fdy, *gdx,*gdy, *gdxt,*gdyt, *pix, + fwhm, invtwosigma2, hw,hh, ohw,ohh, x,y,xstart, tx,ty,txstart, + gx,gy, r2, spirindex, invsig, val, sep; + PIXTYPE *fpix; + int i,j, npix; + + npix = profit->objnaxisn[0]*profit->objnaxisn[1]; + + obj = profit->obj; + obj2 = profit->obj2; +/* Compute simple derivative vectors at a fraction of the object scale */ + fwhm = obj2->hl_radius * 2.0 / 4.0; + if (fwhm < 2.0) + fwhm = 2.0; + sep = 2.0; + + invtwosigma2 = -(2.35*2.35/(2.0*fwhm*fwhm)); + hw = (double)(profit->objnaxisn[0]/2); + ohw = profit->objnaxisn[0] - hw; + hh = (double)(profit->objnaxisn[1]/2); + ohh = profit->objnaxisn[1] - hh; + txstart = -hw; + ty = -hh; + QMALLOC(dx, double, npix); + pix = dx; + for (j=profit->objnaxisn[1]; j--; ty+=1.0) + { + tx = txstart; + y = ty < -0.5? ty + hh : ty - ohh; + for (i=profit->objnaxisn[0]; i--; tx+=1.0) + { + x = tx < -0.5? tx + hw : tx - ohw; + *(pix++) = exp(invtwosigma2*((x+sep)*(x+sep)+y*y)) + - exp(invtwosigma2*((x-sep)*(x-sep)+y*y)); + } + } + QMALLOC(dy, double, npix); + pix = dy; + ty = -hh; + for (j=profit->objnaxisn[1]; j--; ty+=1.0) + { + tx = txstart; + y = ty < -0.5? ty + hh : ty - ohh; + for (i=profit->objnaxisn[0]; i--; tx+=1.0) + { + x = tx < -0.5? tx + hw : tx - ohw; + *(pix++) = exp(invtwosigma2*(x*x+(y+sep)*(y+sep))) + - exp(invtwosigma2*(x*x+(y-sep)*(y-sep))); + } + } + + QMALLOC(gdx, double, npix); + gdxt = gdx; + fpix = profit->objpix; + invsig = npix/profit->sigma; + for (i=npix; i--; fpix++) + { + val = *fpix > -1e29? *fpix*invsig : 0.0; + *(gdxt++) = (val>0.0? log(1.0+val) : -log(1.0-val)); + } + gdy = NULL; /* to avoid gcc -Wall warnings */ + QMEMCPY(gdx, gdy, double, npix); + fdx = fft_rtf(dx, profit->objnaxisn); + fft_conv(gdx, fdx, profit->objnaxisn); + fdy = fft_rtf(dy, profit->objnaxisn); + fft_conv(gdy, fdy, profit->objnaxisn); + +/* Compute estimator */ + invtwosigma2 = -1.18*1.18 / (2.0*obj2->hl_radius*obj2->hl_radius); + xstart = -hw - obj->mx + (int)(obj->mx+0.49999); + y = -hh - obj->my + (int)(obj->my+0.49999);; + spirindex = 0.0; + gdxt = gdx; + gdyt = gdy; + for (j=profit->objnaxisn[1]; j--; y+=1.0) + { + x = xstart; + for (i=profit->objnaxisn[0]; i--; x+=1.0) + { + gx = *(gdxt++); + gy = *(gdyt++); + if ((r2=x*x+y*y)>0.0) + spirindex += (x*y*(gx*gx-gy*gy)+gx*gy*(y*y-x*x))/r2 + * exp(invtwosigma2*r2); + } + } + + free(dx); + free(dy); + free(fdx); + free(fdy); + free(gdx); + free(gdy); + + return spirindex; + } + + +/****** profit_moments **************************************************** +PROTO void profit_moments(profitstruct *profit) +PURPOSE Compute the 2nd order moments from the unconvolved object model. +INPUT Profile-fitting structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +void profit_moments(profitstruct *profit) + { + objstruct *obj; + obj2struct *obj2; + double *pix, + hw,hh, x,y, xstart, val, + mx,my, sum, mx2,my2,mxy, den; + int ix,iy; + + obj = profit->obj; + obj2 = profit->obj2; + hw = (double)(profit->modnaxisn[0]/2); + hh = (double)(profit->modnaxisn[1]/2); + xstart = -hw; + y = -hh; + pix = profit->modpix; + mx2 = my2 = mxy = mx = my = sum = 0.0; + for (iy=profit->modnaxisn[1]; iy--; y+=1.0) + { + x = xstart; + for (ix=profit->modnaxisn[0]; ix--; x+=1.0) + { + val = *(pix++); + sum += val; + mx += val*x; + my += val*y; + mx2 += val*x*x; + mxy += val*x*y; + my2 += val*y*y; + } + } + + if (sum <= 1.0/BIG) + sum = 1.0; + mx /= sum; + my /= sum; + obj2->prof_mx2 = mx2 = mx2/sum - mx*mx; + obj2->prof_my2 = my2 = my2/sum - my*my; + obj2->prof_mxy = mxy = mxy/sum - mx*my; + if (mx2+my2 > 1.0/BIG) + { + obj2->prof_eps1 = (mx2 - my2) / (mx2+my2); + obj2->prof_eps2 = 2.0*mxy / (mx2 + my2); + den = mx2+my2-mxy*mxy; + if (den>=0.0) + den = mx2+my2+2.0*sqrt(den); + else + den = mx2+my2; + obj2->prof_e1 = (mx2 - my2) / den; + obj2->prof_e2 = 2.0*mxy / den; + } + else + obj2->prof_eps1 = obj2->prof_eps2 = obj2->prof_e1 = obj2->prof_e2 = 0.0; + + return; + } + + +/****** profit_addparam ******************************************************* +PROTO void profit_addparam(profitstruct *profit, paramenum paramindex, + double **param) +PURPOSE Add a profile parameter to the list of fitted items. +INPUT Pointer to the profit structure, + Parameter index, + Pointer to the parameter pointer. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 29/03/2007 + ***/ +void profit_addparam(profitstruct *profit, paramenum paramindex, + double **param) + { +/* Check whether the parameter has already be registered */ + if (profit->paramlist[paramindex]) +/*-- Yes */ + *param = profit->paramlist[paramindex]; + else +/*-- No */ + { + *param = profit->paramlist[paramindex] = &profit->param[profit->nparam]; + profit->paramindex[paramindex] = profit->nparam++; + } + + return; + } + + +/****** profit_resetparam **************************************************** +PROTO void profit_resetparam(profitstruct *profit, paramenum paramtype) +PURPOSE Set the initial, lower and upper boundary values of a profile parameter. +INPUT Pointer to the profit structure, + Parameter index. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 25/09/2008 + ***/ +void profit_resetparam(profitstruct *profit, paramenum paramtype) + { + objstruct *obj; + obj2struct *obj2; + double param, parammin,parammax; + + obj = profit->obj; + obj2 = profit->obj2; + param = parammin = parammax = 0.0; /* Avoid gcc -Wall warnings*/ + switch(paramtype) + { + case PARAM_BACK: + param = 0.0; + parammin = -6.0*obj->sigbkg; + parammax = 6.0*obj->sigbkg; + break; + case PARAM_X: + param = obj->mx - (int)(obj->mx+0.49999); + parammin = -obj2->hl_radius*4; + parammax = obj2->hl_radius*4; + break; + case PARAM_Y: + param = obj->my - (int)(obj->my+0.49999); + parammin = -obj2->hl_radius*4; + parammax = obj2->hl_radius*4; + break; + case PARAM_SPHEROID_FLUX: + param = obj2->flux_auto/2.0; + parammin = -obj2->flux_auto/1000.0; + parammax = 2*obj2->flux_auto; + break; + case PARAM_SPHEROID_REFF: + param = obj2->hl_radius; + parammin = 0.1; + parammax = param * 4.0; + break; + case PARAM_SPHEROID_ASPECT: + param = FLAG(obj2.prof_disk_flux)? 1.0 : obj->b/obj->a; + parammin = FLAG(obj2.prof_disk_flux)? 0.5 : 0.01; + parammax = 1.0; + break; + case PARAM_SPHEROID_POSANG: + param = obj->theta; + parammin = 0.0; + parammax = 0.0; + break; + case PARAM_SPHEROID_SERSICN: + param = 4.0; + parammin = 1.0; + parammax = 10.0; + break; + case PARAM_DISK_FLUX: + param = obj2->flux_auto/2.0; + parammin = -obj2->flux_auto/1000.0; + parammax = 2*obj2->flux_auto; + break; + case PARAM_DISK_SCALE: /* From scalelength to Re */ + param = obj2->hl_radius/1.67835*sqrt(obj->a/obj->b); + parammin = param / 4.0; + parammax = param * 4.0; + break; + case PARAM_DISK_ASPECT: + param = obj->b/obj->a; + parammin = 0.01; + parammax = 1.0; + break; + case PARAM_DISK_POSANG: + param = obj->theta; + parammin = 0.0; + parammax = 0.0; + break; + case PARAM_ARMS_FLUX: + param = obj2->flux_auto/2.0; + parammin = 0.0; + parammax = obj2->flux_auto*2.0; + break; + case PARAM_ARMS_QUADFRAC: + param = 0.5; + parammin = 0.0; + parammax = 1.0; + break; + case PARAM_ARMS_SCALE: + param = 1.0; + parammin = 0.5; + parammax = 10.0; + break; + case PARAM_ARMS_START: + param = 0.5; + parammin = 0.0; + parammax = 3.0; + break; + case PARAM_ARMS_PITCH: + param = 20.0; + parammin = 5.0; + parammax = 50.0; + break; + case PARAM_ARMS_PITCHVAR: + param = 0.0; + parammin = -1.0; + parammax = 1.0; + break; +// if ((profit->spirindex=profit_spiralindex(profit, obj, obj2)) > 0.0) +// { +// param = -param; +// parammin = -parammax; +// parammax = -parammin; +// } +// printf("spiral index: %g \n", profit->spirindex); +// break; + case PARAM_ARMS_POSANG: + param = 0.0; + parammin = 0.0; + parammax = 0.0; + break; + case PARAM_ARMS_WIDTH: + param = 3.0; + parammin = 1.5; + parammax = 11.0; + break; + case PARAM_BAR_FLUX: + param = obj2->flux_auto/10.0; + parammin = 0.0; + parammax = 2.0*obj2->flux_auto; + break; + case PARAM_BAR_ASPECT: + param = 0.3; + parammin = 0.2; + parammax = 0.5; + break; + case PARAM_BAR_POSANG: + param = 0.0; + parammin = 0.0; + parammax = 0.0; + break; + case PARAM_INRING_FLUX: + param = obj2->flux_auto/10.0; + parammin = 0.0; + parammax = 2.0*obj2->flux_auto; + break; + case PARAM_INRING_WIDTH: + param = 0.3; + parammin = 0.0; + parammax = 0.5; + break; + case PARAM_INRING_ASPECT: + param = 0.8; + parammin = 0.4; + parammax = 1.0; + break; + case PARAM_OUTRING_FLUX: + param = obj2->flux_auto/10.0; + parammin = 0.0; + parammax = 2.0*obj2->flux_auto; + break; + case PARAM_OUTRING_START: + param = 4.0; + parammin = 3.5; + parammax = 6.0; + break; + case PARAM_OUTRING_WIDTH: + param = 0.3; + parammin = 0.0; + parammax = 0.5; + break; + default: + error(EXIT_FAILURE, "*Internal Error*: Unknown profile parameter in ", + "profit_resetparam()"); + break; + } + + if (parammin!=parammax && (param<=parammin || param>=parammax)) + param = (parammin+parammax)/2.0; + profit_setparam(profit, paramtype, param, parammin, parammax); + + return; + } + + +/****** profit_resetparams **************************************************** +PROTO void profit_resetparams(profitstruct *profit) +PURPOSE Set the initial, lower and upper boundary values of profile parameters. +INPUT Pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/09/2008 + ***/ +void profit_resetparams(profitstruct *profit) + { + int p; + + + for (p=0; pparamlist[(int)paramtype])) + { + index = paramptr - profit->param; + profit->paraminit[index] = param; + profit->parammin[index] = parammin; + profit->parammax[index] = parammax; + return RETURN_OK; + } + else + return RETURN_ERROR; + } + + +/****** profit_boundtounbound ************************************************* +PROTO void profit_boundtounbound(profitstruct *profit, double *param) +PURPOSE Convert parameters from bounded to unbounded space. +INPUT Pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 25/05/2007 + ***/ +void profit_boundtounbound(profitstruct *profit, double *param) + { + double num,den; + int p; + + for (p=0; pnparam; p++) + if (profit->parammin[p]!=profit->parammax[p]) + { + num = param[p] - profit->parammin[p]; + den = profit->parammax[p] - param[p]; + param[p] = num>1e-100? (den>1e-100? log(num/den): 200.0) : -200.0; + } + + return; + + } + + +/****** profit_unboundtobound ************************************************* +PROTO void profit_unboundtobound(profitstruct *profit, double *param) +PURPOSE Convert parameters from unbounded to bounded space. +INPUT Pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 18/05/2007 + ***/ +void profit_unboundtobound(profitstruct *profit, double *param) + { + int p; + + for (p=0; pnparam; p++) + if (profit->parammin[p]!=profit->parammax[p]) + param[p] = (profit->parammax[p] - profit->parammin[p]) + / (1.0 + exp(-(param[p]>200.0? 200.0 : param[p]))) + + profit->parammin[p]; + + return; + } + + +/****** profit_covarunboundtobound ******************************************** +PROTO void profit_covarunboundtobound(profitstruct *profit) +PURPOSE Convert covariance matrix from unbounded to bounded space. +INPUT Pointer to the profit structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 30/04/2008 + ***/ +void profit_covarunboundtobound(profitstruct *profit) + { + double *covar, *dxdy,*x,*xmin,*xmax, + dxmin, dxmax; + int p,p1,p2, nparam; + + nparam = profit->nparam; + QMALLOC(dxdy, double, nparam); + x = profit->paraminit; + xmin = profit->parammin; + xmax = profit->parammax; + for (p=0; pnparam; p++) + if (xmin[p]!=xmax[p]) + { + dxmin = x[p] - xmin[p]; + dxmax= xmax[p] - x[p]; + dxdy[p] = (fabs(dxmin) < 1.0/BIG && fabs(dxmax) < 1.0/BIG) ? + 0.0 : dxmin*dxmax/(dxmin+dxmax); + } + else + dxdy[p] = 1.0; + + covar = profit->covar; + for (p2=0; p2code = profcode; + switch(profcode) + { + case PROF_BACK: + prof->naxis = 2; + prof->pix = NULL; + profit_addparam(profit, PARAM_BACK, &prof->flux); + prof->typscale = 1.0; + break; + case PROF_SERSIC: + prof->naxis = 3; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_SPHEROID_FLUX, &prof->flux); + profit_addparam(profit, PARAM_SPHEROID_REFF, &prof->scale); + profit_addparam(profit, PARAM_SPHEROID_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_SPHEROID_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_SPHEROID_SERSICN, &prof->extra[0]); + break; + case PROF_DEVAUCOULEURS: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_SPHEROID_FLUX, &prof->flux); + profit_addparam(profit, PARAM_SPHEROID_REFF, &prof->scale); + profit_addparam(profit, PARAM_SPHEROID_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_SPHEROID_POSANG, &prof->posangle); + break; + case PROF_EXPONENTIAL: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_DISK_FLUX, &prof->flux); + profit_addparam(profit, PARAM_DISK_SCALE, &prof->scale); + profit_addparam(profit, PARAM_DISK_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_DISK_POSANG, &prof->posangle); + break; + case PROF_ARMS: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_DISK_SCALE, &prof->scale); + profit_addparam(profit, PARAM_DISK_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_DISK_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_ARMS_FLUX, &prof->flux); + profit_addparam(profit, PARAM_ARMS_QUADFRAC, &prof->featfrac); +// profit_addparam(profit, PARAM_ARMS_SCALE, &prof->featscale); + profit_addparam(profit, PARAM_ARMS_START, &prof->featstart); + profit_addparam(profit, PARAM_ARMS_PITCH, &prof->featpitch); +// profit_addparam(profit, PARAM_ARMS_PITCHVAR, &prof->featpitchvar); + profit_addparam(profit, PARAM_ARMS_POSANG, &prof->featposang); +// profit_addparam(profit, PARAM_ARMS_WIDTH, &prof->featwidth); + break; + case PROF_BAR: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_DISK_SCALE, &prof->scale); + profit_addparam(profit, PARAM_DISK_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_DISK_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_ARMS_START, &prof->featstart); + profit_addparam(profit, PARAM_BAR_FLUX, &prof->flux); + profit_addparam(profit, PARAM_BAR_ASPECT, &prof->feataspect); + profit_addparam(profit, PARAM_ARMS_POSANG, &prof->featposang); + break; + case PROF_INRING: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_DISK_SCALE, &prof->scale); + profit_addparam(profit, PARAM_DISK_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_DISK_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_ARMS_START, &prof->featstart); + profit_addparam(profit, PARAM_INRING_FLUX, &prof->flux); + profit_addparam(profit, PARAM_INRING_WIDTH, &prof->featwidth); + profit_addparam(profit, PARAM_INRING_ASPECT, &prof->feataspect); + break; + case PROF_OUTRING: + prof->naxis = 2; + prof->pix = NULL; + prof->typscale = 1.0; + profit_addparam(profit, PARAM_X, &prof->x[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_DISK_SCALE, &prof->scale); + profit_addparam(profit, PARAM_DISK_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_DISK_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_OUTRING_START, &prof->featstart); + profit_addparam(profit, PARAM_OUTRING_FLUX, &prof->flux); + profit_addparam(profit, PARAM_OUTRING_WIDTH, &prof->featwidth); + break; + case PROF_SERSIC_TABEX: /* An example of tabulated profile */ + prof->naxis = 3; + width = prof->naxisn[0] = PROFIT_PROFRES; + height = prof->naxisn[1] = PROFIT_PROFRES; + nsub = prof->naxisn[2] = PROFIT_PROFSRES; + QCALLOC(prof->pix, double, width*height*nsub); + ixc = width/2; + iyc = height/2; + rmax2 = (ixc - 1.0)*(ixc - 1.0); + re2 = width/64.0; + prof->typscale = re2; + re2 *= re2; + zero = prof->extrazero[0] = 0.2; + scale = prof->extrascale[0]= 8.0/PROFIT_PROFSRES; + pix = prof->pix; + for (s=0; sx[0]); + profit_addparam(profit, PARAM_Y, &prof->x[1]); + profit_addparam(profit, PARAM_SPHEROID_FLUX, &prof->flux); + profit_addparam(profit, PARAM_SPHEROID_REFF, &prof->scale); + profit_addparam(profit, PARAM_SPHEROID_ASPECT, &prof->aspect); + profit_addparam(profit, PARAM_SPHEROID_POSANG, &prof->posangle); + profit_addparam(profit, PARAM_SPHEROID_SERSICN, &prof->extra[0]); + break; + default: + error(EXIT_FAILURE, "*Internal Error*: Unknown profile in ", + "prof_init()"); + break; + } + + if (prof->pix) + { + prof->kernelnlines = 1; + for (d=0; dnaxis; d++) + { + prof->interptype[d] = INTERP_BILINEAR; + prof->kernelnlines *= + (prof->kernelwidth[d] = interp_kernwidth[prof->interptype[d]]); + } + prof->kernelnlines /= prof->kernelwidth[0]; + QMALLOC(prof->kernelbuf, double, prof->kernelnlines); + } + + return prof; + } + + +/****** prof_end ************************************************************** +PROTO void prof_end(profstruct *prof) +PURPOSE End (deallocate) a profile structure. +INPUT Prof structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 09/04/2007 + ***/ +void prof_end(profstruct *prof) + { + if (prof->pix) + { + free(prof->pix); + free(prof->kernelbuf); + } + free(prof); + + return; + } + + +/****** prof_add ************************************************************** +PROTO void prof_add(profstruct *prof, profitstruct *profit) +PURPOSE Add a model profile to an image. +INPUT Profile structure, + profile-fitting structure. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 03/10/2008 + ***/ +void prof_add(profstruct *prof, profitstruct *profit) + { + double posin[PROFIT_MAXEXTRA], posout[2], dnaxisn[2], + *pixout, + flux,fluxfac, scaling; + float *pixin, + amp,ctheta,stheta,cd11,cd12,cd21,cd22, dcd11,dcd21, dx1,dx2, + x1,x10,x2, x1cin,x2cin, x1cout,x2cout, xscale,yscale, saspect, + x1in,x2in, odx, ostep, + n,k, hinvn, x1t,x2t, ca,sa, u,umin, + armamp,arm2amp, armrdphidr, armrdphidrvar, posang, + width, invwidth2, + r,r2,rmin,r2min, r2minxin,r2minxout, rmax, r2max, invr2xdif, + val, theta, thresh, ra,rb; + int npix, noversamp, + d,e,i, ix1,ix2, idx1,idx2; + + npix = profit->modnaxisn[0]*profit->modnaxisn[1]; + + if (prof->code==PROF_BACK) + { + amp = fabs(*prof->flux); + pixout = profit->modpix; + for (i=npix; i--;) + *(pixout++) += amp; + return; + } + + scaling = profit->pixstep / prof->typscale; + +/* Compute Profile CD matrix */ + ctheta = cos(*prof->posangle*DEG); + stheta = sin(*prof->posangle*DEG); + saspect = fabs(*prof->aspect); + xscale = (*prof->scale==0.0)? + 0.0 : fabs(scaling / (*prof->scale*prof->typscale)); + yscale = (*prof->scale*saspect == 0.0)? + 0.0 : fabs(scaling / (*prof->scale*prof->typscale*saspect)); + cd11 = xscale*ctheta; + cd12 = xscale*stheta; + cd21 = -yscale*stheta; + cd22 = yscale*ctheta; + + dx1 = 0.0; /* Shifting operations have been moved to profit_resample() */ + dx2 = 0.0; /* Shifting operations have been moved to profit_resample() */ + + x1cout = (double)(profit->modnaxisn[0]/2); + x2cout = (double)(profit->modnaxisn[1]/2); + + switch(prof->code) + { + case PROF_SERSIC: + n = fabs(*prof->extra[0]); + k = 1.0/3.0 - 2.0*n - 4.0/(405.0*n) - 46.0/(25515.0*n*n) + - 131.0/(1148175*n*n*n); + hinvn = 0.5/n; +/*---- The consequence of sampling on flux is compensated by PSF normalisation*/ + x10 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1 = x10; + for (ix1=profit->modnaxisn[0]; ix1--; x1+=1.0) + { + x1in = cd12*x2 + cd11*x1; + x2in = cd22*x2 + cd21*x1; + ra = x1in*x1in+x2in*x2in; + val = expf(k*PROFIT_POWF(ra,hinvn)); + noversamp = (int)(val*PROFIT_OVERSAMP+0.1); + if (noversamp < 2) + *(pixin++) = val; + else + { + ostep = 1.0/noversamp; + dcd11 = cd11*ostep; + dcd21 = cd21*ostep; + odx = 0.5*(ostep-1.0); + x1t = x1+odx; + val = 0.0; + for (idx2=noversamp; idx2--; odx+=ostep) + { + x1in = cd12*(x2+odx) + cd11*x1t; + x2in = cd22*(x2+odx) + cd21*x1t; + for (idx1=noversamp; idx1--;) + { + ra = x1in*x1in+x2in*x2in; + val += expf(k*PROFIT_POWF(ra,hinvn)); + x1in += dcd11; + x2in += dcd21; + } + } + *(pixin++) = val*ostep*ostep; + } + } + } + break; + case PROF_DEVAUCOULEURS: +/*---- The consequence of sampling on flux is compensated by PSF normalisation*/ + x10 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1 = x10; + for (ix1=profit->modnaxisn[0]; ix1--; x1+=1.0) + { + x1in = cd12*x2 + cd11*x1; + x2in = cd22*x2 + cd21*x1; + ra = x1in*x1in+x2in*x2in; + val = expf(-7.6692f*PROFIT_POWF(ra,0.125)); + noversamp = (int)(sqrt(val)*PROFIT_OVERSAMP+0.1); + if (noversamp < 2) + *(pixin++) = val; + else + { + ostep = 1.0/noversamp; + dcd11 = cd11*ostep; + dcd21 = cd21*ostep; + odx = 0.5*(ostep-1.0); + x1t = x1+odx; + val = 0.0; + for (idx2=noversamp; idx2--; odx+=ostep) + { + x1in = cd12*(x2+odx) + cd11*x1t; + x2in = cd22*(x2+odx) + cd21*x1t; + for (idx1=noversamp; idx1--;) + { + ra = x1in*x1in+x2in*x2in; + val += expf(-7.6692f*PROFIT_POWF(ra,0.125)); + x1in += dcd11; + x2in += dcd21; + } + } + *(pixin++) = val*ostep*ostep; + } + } + } + break; + case PROF_EXPONENTIAL: + x1 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1in = cd12*x2 + cd11*x1; + x2in = cd22*x2 + cd21*x1; + for (ix1=profit->modnaxisn[0]; ix1--;) + { + *(pixin++) = exp(-sqrt(x1in*x1in+x2in*x2in)); + x1in += cd11; + x2in += cd21; + } + } + break; + case PROF_ARMS: + r2min = *prof->featstart**prof->featstart; + r2minxin = r2min * (1.0 - PROFIT_BARXFADE) * (1.0 - PROFIT_BARXFADE); + r2minxout = r2min * (1.0 + PROFIT_BARXFADE) * (1.0 + PROFIT_BARXFADE); + if ((invr2xdif = (r2minxout - r2minxin)) > 0.0) + invr2xdif = 1.0 / invr2xdif; + else + invr2xdif = 1.0; + umin = 0.5*logf(r2minxin + 0.00001); + arm2amp = *prof->featfrac; + armamp = 1.0 - arm2amp; + armrdphidr = 1.0/tan(*prof->featpitch*DEG); + armrdphidrvar = 0.0 /**prof->featpitchvar*/; + posang = *prof->featposang*DEG; + width = fabs(*prof->featwidth); +width = 3.0; + x1 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=profit->modnaxisn[0]; ix1--;) + { + r2 = x1t*x1t+x2t*x2t; + if (r2>r2minxin) + { + u = 0.5*logf(r2 + 0.00001); + theta = (armrdphidr+armrdphidrvar*(u-umin))*u+posang; + ca = cosf(theta); + sa = sinf(theta); + x1in = (x1t*ca - x2t*sa); + x2in = (x1t*sa + x2t*ca); + amp = expf(-sqrtf(x1t*x1t+x2t*x2t)); + if (r2featstart**prof->featstart; + r2minxin = r2min * (1.0 - PROFIT_BARXFADE) * (1.0 - PROFIT_BARXFADE); + r2minxout = r2min * (1.0 + PROFIT_BARXFADE) * (1.0 + PROFIT_BARXFADE); + if ((invr2xdif = (r2minxout - r2minxin)) > 0.0) + invr2xdif = 1.0 / invr2xdif; + else + invr2xdif = 1.0; + invwidth2 = fabs(1.0 / (*prof->featstart**prof->feataspect)); + posang = *prof->featposang*DEG; + ca = cosf(posang); + sa = sinf(posang); + x1 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=profit->modnaxisn[0]; ix1--;) + { + r2 = x1t*x1t+x2t*x2t; + if (r2r2minxin) ? + (r2minxout - r2)*invr2xdif*expf(-x2in*x2in) + : expf(-x2in*x2in); + } + else + *(pixin++) = 0.0; + x1t += cd11; + x2t += cd21; + } + } + break; + case PROF_INRING: + rmin = *prof->featstart; + r2minxin = *prof->featstart-4.0**prof->featwidth; + if (r2minxin < 0.0) + r2minxin = 0.0; + r2minxin *= r2minxin; + r2minxout = *prof->featstart+4.0**prof->featwidth; + r2minxout *= r2minxout; + invwidth2 = 0.5 / (*prof->featwidth**prof->featwidth); + cd22 /= *prof->feataspect; + cd21 /= *prof->feataspect; + x1 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=profit->modnaxisn[0]; ix1--;) + { + r2 = x1t*x1t+x2t*x2t; + if (r2>r2minxin && r2featstart; + r2minxin = *prof->featstart-4.0**prof->featwidth; + if (r2minxin < 0.0) + r2minxin = 0.0; + r2minxin *= r2minxin; + r2minxout = *prof->featstart+4.0**prof->featwidth; + r2minxout *= r2minxout; + invwidth2 = 0.5 / (*prof->featwidth**prof->featwidth); + x1 = -x1cout - dx1; + x2 = -x2cout - dx2; + pixin = profit->pmodpix; + for (ix2=profit->modnaxisn[1]; ix2--; x2+=1.0) + { + x1t = cd12*x2 + cd11*x1; + x2t = cd22*x2 + cd21*x1; + for (ix1=profit->modnaxisn[0]; ix1--;) + { + r2 = x1t*x1t+x2t*x2t; + if (r2>r2minxin && r2modnaxisn[d] + 0.99999; + } + + for (e=0; enaxis - 2; e++) + { + d = 2+e; +/*------ Compute position along axis */ + posin[d] = (*prof->extra[e]-prof->extrazero[e])/prof->extrascale[e]+1.0; +/*------ Keep position within boundaries and let interpolation do the rest */ + if (posin[d] < 0.99999) + { + if (prof->extracycleflag[e]) + posin[d] += (double)prof->naxisn[d]; + else + posin[d] = 1.0; + } + else if (posin[d] > (double)prof->naxisn[d]) + { + if (prof->extracycleflag[e]) + posin[d] = (prof->extracycleflag[e])? + fmod(posin[d], (double)prof->naxisn[d]) + : (double)prof->naxisn[d]; + } + } + x1cin = (double)(prof->naxisn[0]/2); + x2cin = (double)(prof->naxisn[1]/2); + pixin = profit->pmodpix; + for (i=npix; i--;) + { + x1 = posout[0] - x1cout - 1.0 - dx1; + x2 = posout[1] - x2cout - 1.0 - dx2; + posin[0] = cd11*x1 + cd12*x2 + x1cin + 1.0; + posin[1] = cd21*x1 + cd22*x2 + x2cin + 1.0; + *(pixin++) = prof_interpolate(prof, posin); + for (d=0; d<2; d++) + if ((posout[d]+=1.0) < dnaxisn[d]) + break; + else + posout[d] = 1.0; + } + break; + } + +/* Now find truncation threshold */ +/* Find the shortest distance to a vignet border */ + rmax = x1cout; + if (rmax > (r = x2cout)) + rmax = r; + rmax += 0.01; + if (rmax<1.0) + rmax = 1.0; + r2max = rmax*rmax; + rmin = rmax - 1.0; + r2min = rmin*rmin; + +/* Find best threshold (the max around the circle with radius rmax */ + dx2 = -x2cout; + pixin = profit->pmodpix; + thresh = -BIG; + for (ix2=profit->modnaxisn[1]; ix2--; dx2 += 1.0) + { + dx1 = -x1cout; + for (ix1=profit->modnaxisn[0]; ix1--; dx1 += 1.0) + if ((val=*(pixin++))>thresh && (r2=dx1*dx1+dx2*dx2)>r2min && r2pmodpix; + for (n=npix; n--; pixin++) + if (*pixin >= thresh) + flux += *pixin; + else + *pixin = 0.0; + +/* Correct final flux */ + fluxfac = fabs(flux)>0.0? *prof->flux / flux : 1.0; + prof->fluxfac = fluxfac; + pixin = profit->pmodpix; + pixout = profit->modpix; + for (n=npix; n--;) + *(pixout++) += fluxfac * *(pixin++); + + return; + } + + +/****** prof_interpolate ****************************************************** +PROTO double prof_interpolate(profstruct *prof, double *posin) +PURPOSE Interpolate a multidimensional model profile at a given position. +INPUT Profile structure, + input position vector. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 10/12/2006 + ***/ +static double prof_interpolate(profstruct *prof, double *posin) + { + double dpos[2+PROFIT_MAXEXTRA], + kernel_vector[INTERP_MAXKERNELWIDTH], + *kvector, *pixin,*pixout, + val; + long step[2+PROFIT_MAXEXTRA], + start, fac; + int linecount[2+PROFIT_MAXEXTRA], + *naxisn, + i,j,n, ival, nlines, kwidth,width, badpixflag, naxis; + + naxis = prof->naxis; + naxisn = prof->naxisn; + start = 0; + fac = 1; + for (n=0; ninterptype[n]==INTERP_NEARESTNEIGHBOUR)? + (int)(val-0.50001):(int)val; +/*-- Store the fractional part of the current coordinate */ + dpos[n] = val - ival; +/*-- Check if interpolation start/end exceed image boundary... */ + kwidth = prof->kernelwidth[n]; + ival-=kwidth/2; + if (ival<0 || ival+kwidth<=0 || ival+kwidth>width) + return 0.0; + +/*-- Update starting pointer */ + start += ival*fac; +/*-- Update step between interpolated regions */ + step[n] = fac*(width-kwidth); + linecount[n] = 0.0; + fac *= width; + } + +/* Update Interpolation kernel vectors */ + make_kernel(*dpos, kernel_vector, prof->interptype[0]); + kwidth = prof->kernelwidth[0]; + nlines = prof->kernelnlines; +/* First step: interpolate along NAXIS1 from the data themselves */ + badpixflag = 0; + pixin = prof->pix+start; + pixout = prof->kernelbuf; + for (j=nlines; j--;) + { + val = 0.0; + kvector = kernel_vector; + for (i=kwidth; i--;) + val += *(kvector++)**(pixin++); + *(pixout++) = val; + for (n=1; nkernelwidth[n]) + break; + else + linecount[n] = 0; /* No need to initialize it to 0! */ + } + } + +/* Second step: interpolate along other axes from the interpolation buffer */ + for (n=1; ninterptype[n]); + kwidth = prof->kernelwidth[n]; + pixout = pixin = prof->kernelbuf; + for (j = (nlines/=kwidth); j--;) + { + val = 0.0; + kvector = kernel_vector; + for (i=kwidth; i--;) + val += *(kvector++)**(pixin++); + *(pixout++) = val; + } + } + + return prof->kernelbuf[0]; + } + + +/****** interpolate_pix ****************************************************** +PROTO void interpolate_pix(double *posin, double *pix, int naxisn, + interpenum interptype) +PURPOSE Interpolate a model profile at a given position. +INPUT Profile structure, + input position vector, + input pixmap dimension vector, + interpolation type. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 07/12/2006 + ***/ +static double interpolate_pix(double *posin, double *pix, int *naxisn, + interpenum interptype) + { + double buffer[INTERP_MAXKERNELWIDTH], + kernel[INTERP_MAXKERNELWIDTH], dpos[2], + *kvector, *pixin, *pixout, + val; + int fac, ival, kwidth, start, width, step, + i,j, n; + + kwidth = interp_kernwidth[interptype]; + start = 0; + fac = 1; + for (n=0; n<2; n++) + { + val = *(posin++); + width = naxisn[n]; +/*-- Get the integer part of the current coordinate or nearest neighbour */ + ival = (interptype==INTERP_NEARESTNEIGHBOUR)? (int)(val-0.50001):(int)val; +/*-- Store the fractional part of the current coordinate */ + dpos[n] = val - ival; +/*-- Check if interpolation start/end exceed image boundary... */ + ival-=kwidth/2; + if (ival<0 || ival+kwidth<=0 || ival+kwidth>width) + return 0.0; +/*-- Update starting pointer */ + start += ival*fac; +/*-- Update step between interpolated regions */ + fac *= width; + } + +/* First step: interpolate along NAXIS1 from the data themselves */ + make_kernel(dpos[0], kernel, interptype); + step = naxisn[0]-kwidth; + pixin = pix+start; + pixout = buffer; + for (j=kwidth; j--;) + { + val = 0.0; + kvector = kernel; + for (i=kwidth; i--;) + val += *(kvector++)**(pixin++); + *(pixout++) = val; + pixin += step; + } + +/* Second step: interpolate along NAXIS2 from the interpolation buffer */ + make_kernel(dpos[1], kernel, interptype); + pixin = buffer; + val = 0.0; + kvector = kernel; + for (i=kwidth; i--;) + val += *(kvector++)**(pixin++); + + return val; + } + + +/****** make_kernel ********************************************************** +PROTO void make_kernel(double pos, double *kernel, interpenum interptype) +PURPOSE Conpute interpolation-kernel data +INPUT Position, + Pointer to the output kernel data, + Interpolation method. +OUTPUT -. +NOTES -. +AUTHOR E. Bertin (IAP) +VERSION 11/04/2008 + ***/ +void make_kernel(double pos, double *kernel, interpenum interptype) + { + double x, val, sinx1,sinx2,sinx3,cosx1; + + if (interptype == INTERP_NEARESTNEIGHBOUR) + *kernel = 1; + else if (interptype == INTERP_BILINEAR) + { + *(kernel++) = 1.0-pos; + *kernel = pos; + } + else if (interptype == INTERP_LANCZOS2) + { + if (pos<1e-5 && pos>-1e5) + { + *(kernel++) = 0.0; + *(kernel++) = 1.0; + *(kernel++) = 0.0; + *kernel = 0.0; + } + else + { + x = -PI/2.0*(pos+1.0); +#ifdef HAVE_SINCOS + sincos(x, &sinx1, &cosx1); +#else + sinx1 = sin(x); + cosx1 = cos(x); +#endif + val = (*(kernel++) = sinx1/(x*x)); + x += PI/2.0; + val += (*(kernel++) = -cosx1/(x*x)); + x += PI/2.0; + val += (*(kernel++) = -sinx1/(x*x)); + x += PI/2.0; + val += (*kernel = cosx1/(x*x)); + val = 1.0/val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *kernel *= val; + } + } + else if (interptype == INTERP_LANCZOS3) + { + if (pos<1e-5 && pos>-1e5) + { + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *(kernel++) = 1.0; + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *kernel = 0.0; + } + else + { + x = -PI/3.0*(pos+2.0); +#ifdef HAVE_SINCOS + sincos(x, &sinx1, &cosx1); +#else + sinx1 = sin(x); + cosx1 = cos(x); +#endif + val = (*(kernel++) = sinx1/(x*x)); + x += PI/3.0; + val += (*(kernel++) = (sinx2=-0.5*sinx1-0.866025403785*cosx1) + / (x*x)); + x += PI/3.0; + val += (*(kernel++) = (sinx3=-0.5*sinx1+0.866025403785*cosx1) + /(x*x)); + x += PI/3.0; + val += (*(kernel++) = sinx1/(x*x)); + x += PI/3.0; + val += (*(kernel++) = sinx2/(x*x)); + x += PI/3.0; + val += (*kernel = sinx3/(x*x)); + val = 1.0/val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *kernel *= val; + } + } + else if (interptype == INTERP_LANCZOS4) + { + if (pos<1e-5 && pos>-1e5) + { + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *(kernel++) = 1.0; + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *(kernel++) = 0.0; + *kernel = 0.0; + } + else + { + x = -PI/4.0*(pos+3.0); +#ifdef HAVE_SINCOS + sincos(x, &sinx1, &cosx1); +#else + sinx1 = sin(x); + cosx1 = cos(x); +#endif + val = (*(kernel++) = sinx1/(x*x)); + x += PI/4.0; + val +=(*(kernel++) = -(sinx2=0.707106781186*(sinx1+cosx1)) + /(x*x)); + x += PI/4.0; + val += (*(kernel++) = cosx1/(x*x)); + x += PI/4.0; + val += (*(kernel++) = -(sinx3=0.707106781186*(cosx1-sinx1))/(x*x)); + x += PI/4.0; + val += (*(kernel++) = -sinx1/(x*x)); + x += PI/4.0; + val += (*(kernel++) = sinx2/(x*x)); + x += PI/4.0; + val += (*(kernel++) = -cosx1/(x*x)); + x += PI/4.0; + val += (*kernel = sinx3/(x*x)); + val = 1.0/val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *(kernel--) *= val; + *kernel *= val; + } + } + else + error(EXIT_FAILURE, "*Internal Error*: Unknown interpolation type in ", + "make_kernel()"); + + return; + } + diff --git a/src/profit.h b/src/profit.h new file mode 100644 index 0000000000000000000000000000000000000000..37fa060a63c8cb7c99496adb775bc27cc2848707 --- /dev/null +++ b/src/profit.h @@ -0,0 +1,180 @@ + /* + profit.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: SExtractor +* +* Authors: E.BERTIN (IAP) +* +* Contents: Include file for profit.c. +* +* Last modify: 03/10/2008 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#ifndef _PROFIT_H_ +#define _PROFIT_H_ + +/*-------------------------------- flags ------------------------------------*/ + +#define PROFIT_FLIPPED 0x0001 + +/*-------------------------------- macros -----------------------------------*/ + +#define PROFIT_POW(x,a) (x>0.01? exp(a*log(x)) : pow(x,a)) +#define PROFIT_POWF(x,a) (x>0.01? expf(a*logf(x)) : powf(x,a)) + +/*----------------------------- Internal constants --------------------------*/ + +#define PROFIT_MAXITER 1000 /* Max. nb of iterations in profile fitting */ +#define PROFIT_OVERSAMP 5 /* Max. profile oversamp. factor on each axis */ +#define PROFIT_MAXPROF 8 /* Max. nb of profile components */ +#define PROFIT_DYNPARAM 100.0 /* Dynamic compression param. in sigma units */ +#define PROFIT_BARXFADE 0.1 /* Fract. of bar length crossfaded with arms */ +#define PROFIT_MAXEXTRA 2 /* Max. nb of extra free params of profiles */ +#define PROFIT_PROFRES 256 /* Pixmap size of model components */ +#define PROFIT_PROFSRES 64 /* Number of model subcomponents */ +#define INTERP_MAXKERNELWIDTH 8 /* Max. range of kernel (pixels) */ +/* NOTES: +One must have: PROFIT_NITER > 0 + PROFIT_MAXEXTRA > 0 +*/ + +/*--------------------------------- typedefs --------------------------------*/ + +typedef enum {PROF_BACK, PROF_SERSIC, PROF_DEVAUCOULEURS, + PROF_EXPONENTIAL, PROF_ARMS, PROF_BAR, PROF_INRING, + PROF_OUTRING, PROF_SERSIC_TABEX, PROF_NPROF} + proftypenum; /* Profile code */ + +typedef enum {INTERP_NEARESTNEIGHBOUR, INTERP_BILINEAR, INTERP_LANCZOS2, + INTERP_LANCZOS3, INTERP_LANCZOS4} interpenum; + +typedef enum {PARAM_BACK, PARAM_X, PARAM_Y, + PARAM_SPHEROID_FLUX, PARAM_SPHEROID_REFF, PARAM_SPHEROID_ASPECT, + PARAM_SPHEROID_POSANG, PARAM_SPHEROID_SERSICN, + PARAM_DISK_FLUX, PARAM_DISK_SCALE, PARAM_DISK_ASPECT, + PARAM_DISK_POSANG, + PARAM_ARMS_FLUX, PARAM_ARMS_QUADFRAC, PARAM_ARMS_SCALE, + PARAM_ARMS_START, PARAM_ARMS_POSANG, PARAM_ARMS_PITCH, + PARAM_ARMS_PITCHVAR, PARAM_ARMS_WIDTH, + PARAM_BAR_FLUX, PARAM_BAR_ASPECT, PARAM_BAR_POSANG, + PARAM_INRING_FLUX, PARAM_INRING_WIDTH, PARAM_INRING_ASPECT, + PARAM_OUTRING_FLUX, PARAM_OUTRING_START, PARAM_OUTRING_WIDTH, + PARAM_NPARAM} paramenum; + +/*--------------------------- structure definitions -------------------------*/ + +typedef struct + { + proftypenum code; /* Model code */ + double *pix; /* Full pixmap of the model */ + int naxis; /* Number of pixmap dimensions */ + int naxisn[3]; /* Pixmap size for each axis */ + double typscale; /* Typical scale in prof pixels */ + double fluxfac; /* Flux normalisation factor */ +/* Generic presentation parameters */ + double *flux; /* Integrated flux */ + double *x[2]; /* Coordinate vector */ + double *scale; /* Scaling vector */ + double *aspect; /* Aspect ratio */ + double *posangle; /* Position angle (CCW/NAXIS1)*/ + double *featfrac; /* Feature flux fraction */ + double *featscale; /* Feature relative scalelength */ + double *featstart; /* Feature relative starting radius */ + double *featposang; /* Feature position angle */ + double *featpitch; /* Feature pitch */ + double *featpitchvar; /* Feature pitch variation */ + double *featwidth; /* Feature width */ + double *feataspect; /* Feature aspect ratio */ + double *extra[PROFIT_MAXEXTRA];/* Parameters along extra-dimension */ + double extrazero[PROFIT_MAXEXTRA]; /* Zero-point along extra-dim. */ + double extrascale[PROFIT_MAXEXTRA]; /* Scaling along extra-dim. */ + int extracycleflag[PROFIT_MAXEXTRA]; /* !=0 for cycling dim. */ + interpenum interptype[2+PROFIT_MAXEXTRA]; /* Interpolation type */ + int kernelwidth[2+PROFIT_MAXEXTRA]; /* Kernel size */ + double *kernelbuf; /* Kernel buffer */ + int kernelnlines; /* Number of interp kernel lines */ + } profstruct; + +typedef struct + { + objstruct *obj; /* Current object */ + obj2struct *obj2; /* Current object */ + int nparam; /* Number of parameters to be fitted */ + double *paramlist[PARAM_NPARAM]; /* flat parameter list */ + int paramindex[PARAM_NPARAM];/* Vector of parameter indices */ + double param[PARAM_NPARAM]; /* Vector of parameters to be fitted */ + double paraminit[PARAM_NPARAM];/* Parameter initial guesses */ + double parammin[PARAM_NPARAM]; /* Parameter lower limits */ + double parammax[PARAM_NPARAM]; /* Parameter upper limits */ + double *covar; /* Covariance matrix */ + double paramerr[PARAM_NPARAM]; /* Std deviations of parameters */ + int niter; /* Number of iterations */ + profstruct **prof; /* Array of pointers to profiles */ + int nprof; /* Number of profiles to consider */ + struct psf *psf; /* PSF */ + double pixstep; /* Model/PSF sampling step */ + double *psfdft; /* Compressed Fourier Transform of the PSF */ + double *psfpix; /* Full res. pixmap of the PSF */ + double *modpix; /* Full res. pixmap of the complete model */ + float *pmodpix; /* Full res. pixmap of the partial model */ + int modnaxisn[3]; /* Dimensions along each axis */ + PIXTYPE *lmodpix; /* Low resolution pixmap of the model */ + PIXTYPE *objpix; /* Copy of object pixmap */ + PIXTYPE *objweight; /* Copy of object weight-map */ + int objnaxisn[2]; /* Dimensions along each axis */ + int ix, iy; /* Integer coordinates of object pixmap */ + double *resi; /* Vector of residuals */ + int nresi; /* Number of residual elements */ + double chi2; /* Std error per residual element */ + double sigma; /* Standard deviation of the pixel values */ + double flux; /* Total flux in final convolved model */ + double spirindex; /* Spiral index (>0 for CCW) */ + } profitstruct; + +/*----------------------------- Global variables ----------------------------*/ +/*-------------------------------- functions --------------------------------*/ + +profitstruct *profit_init(struct psf *psf); + +profstruct *prof_init(profitstruct *profit, proftypenum profcode); + +double *profit_compresi(profitstruct *profit, double *resi), + *profit_residuals(profitstruct *profit, picstruct *field, + picstruct *wfield, double *param, double *resi), + profit_spiralindex(profitstruct *profit); + +int profit_copyobjpix(profitstruct *profit, picstruct *field, + picstruct *wfield), + profit_minimize(profitstruct *profit, int niter), + profit_setparam(profitstruct *profit, paramenum paramtype, + double param, double parammin, double parammax); + +void prof_add(profstruct *prof, profitstruct *profit), + prof_end(profstruct *prof), + profit_addparam(profitstruct *profit, paramenum paramindex, + double **param), + profit_boundtounbound(profitstruct *profit, double *param), + profit_fit(profitstruct *profit, + picstruct *field, picstruct *wfield, + objstruct *obj, obj2struct *obj2), + profit_convolve(profitstruct *profit, double *modpix), + profit_covarunboundtobound(profitstruct *profit), + profit_end(profitstruct *profit), + profit_evaluate(double *par, double *fvec, int m, int n, + void *adata), + profit_makedft(profitstruct *profit), + profit_moments(profitstruct *profit), + profit_printout(int n_par, double* par, int m_dat, double* fvec, + void *data, int iflag, int iter, int nfev ), + profit_psf(profitstruct *profit), + profit_resample(profitstruct *profit, double *inpix, + PIXTYPE *outpix), + profit_resetparam(profitstruct *profit, paramenum paramtype), + profit_resetparams(profitstruct *profit), + profit_unboundtobound(profitstruct *profit, double *param); + +#endif diff --git a/src/psf.c b/src/psf.c index a9e635211bc1ffb3e35348ffa016b75add931d9d..29d145b59245d282206e4ccdf6f49c4a062d4a0e 100644 --- a/src/psf.c +++ b/src/psf.c @@ -10,7 +10,7 @@ * * Contents: Fit the PSF to a detection. * -* Last modify: 12/01/2006 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -31,7 +31,7 @@ #include "check.h" #include "filter.h" #include "image.h" -#include "poly.h" +#include "wcs/poly.h" #include "psf.h" /*------------------------------- variables ---------------------------------*/ @@ -84,10 +84,13 @@ void psf_end(psfstruct *psf, psfitstruct *psfit) free(psf->masksize); free(psf); - free(psfit->x); - free(psfit->y); - free(psfit->flux); - free(psfit); + if (psfit) + { + free(psfit->x); + free(psfit->y); + free(psfit->flux); + free(psfit); + } return; } @@ -288,7 +291,7 @@ void psf_readcontext(psfstruct *psf, picstruct *field) { psf->context[i] = &contextval[i]; psf->contexttyp[i] = T_DOUBLE; - if (fitsread(field->fitshead, psf->contextname[i]+1, &contextval[i], + if (fitsread(field->tab->headbuf, psf->contextname[i]+1, &contextval[i], H_FLOAT,T_DOUBLE) == RETURN_ERROR) { sprintf(gstr, "*Error*: %s parameter not found in the header of ", @@ -336,9 +339,9 @@ void psf_fit(psfstruct *psf, picstruct *field, picstruct *wfield, niter = 0; npsfmax = prefs.psf_npsfmax; pixstep = 1.0/psf->pixstep; - gain = prefs.gain; + gain = field->gain; backnoise2 = field->backsig*field->backsig; - satlevel = prefs.satur_level - obj->bkg; + satlevel = field->satur_level - obj->bkg; wthresh = wfield?wfield->weight_thresh:BIG; gainflag = prefs.weightgain_flag; psf_fwhm = psf->fwhm*psf->pixstep; @@ -760,10 +763,10 @@ void double_psf_fit(psfstruct *ppsf, picstruct *pfield, picstruct *pwfield, pdx = pdy =dx = dy = 0.0; ppixstep = 1.0/ppsf->pixstep; pixstep = 1.0/psf->pixstep; - gain = prefs.gain; + gain = field->gain; npsfmax=prefs.psf_npsfmax; pbacknoise2 = pfield->backsig*pfield->backsig; - satlevel = prefs.satur_level - obj->bkg; + satlevel = field->satur_level - obj->bkg; gainflag = prefs.weightgain_flag; psf_fwhm = psf->fwhm*psf->pixstep; ppsf_fwhm = ppsf->fwhm*ppsf->pixstep; diff --git a/src/psf.h b/src/psf.h index 5fe73e62f20a85f23730a7bbfc4789cb61042a4a..645cd456048cf199d4f94add556f3567ef6c33ce 100644 --- a/src/psf.h +++ b/src/psf.h @@ -61,7 +61,7 @@ typedef struct pc codestruct *code; } pcstruct; -typedef struct +typedef struct psf { char name[MAXCHAR]; /* Name of the file containing the PSF data */ int maskdim; /* Dimensionality of the tabulated data */ diff --git a/src/readimage.c b/src/readimage.c index 8c59f3a4009884dfad2ead326d2ae74770e2c98b..ecef0cc50234552dca73f117036c3d2ee1a7cc6e 100644 --- a/src/readimage.c +++ b/src/readimage.c @@ -9,7 +9,7 @@ * * Contents: functions for input of image data. * -* Last modify: 13/07/2006 +* Last modify: 11/10/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -30,6 +30,7 @@ #include "check.h" #include "field.h" #include "fits/fitscat.h" +#include "fitswcs.h" #include "interpolate.h" #include "back.h" #include "astrom.h" @@ -43,10 +44,12 @@ Load a new strip of pixel data into the buffer. void *loadstrip(picstruct *field, picstruct *wfield) { + tabstruct *tab; checkstruct *check; int y, w, flags, interpflag; PIXTYPE *data, *wdata, *rmsdata; + tab = field->tab; w = field->width; flags = field->flags; interpflag = (wfield && wfield->interp_flag); @@ -77,7 +80,7 @@ void *loadstrip(picstruct *field, picstruct *wfield) else if (flags & INTERP_FIELD) copydata(field, 0, nbpix); else - readdata(field, data, nbpix); + read_body(tab, data, nbpix); if (flags & (WEIGHT_FIELD|RMS_FIELD|BACKRMS_FIELD|VAR_FIELD)) weight_to_var(field, data, nbpix); if ((flags & MEASURE_FIELD) && (check=prefs.check[CHECK_IDENTICAL])) @@ -108,6 +111,8 @@ void *loadstrip(picstruct *field, picstruct *wfield) writecheck(check, data, w); if ((check = prefs.check[CHECK_SUBPCPROTOS])) writecheck(check, data, w); + if ((check = prefs.check[CHECK_SUBPROFILES])) + writecheck(check, data, w); } if ((flags&DETECT_FIELD) && (check=prefs.check[CHECK_BACKRMS])) { @@ -123,7 +128,7 @@ void *loadstrip(picstruct *field, picstruct *wfield) *sizeof(FLAGTYPE)))) error(EXIT_FAILURE,"Not enough memory for the flag buffer of ", field->rfilename); - readidata(field, field->fstrip, nbpix); + read_ibody(field->tab, field->fstrip, nbpix); } field->ymax = field->stripheight; @@ -149,7 +154,7 @@ void *loadstrip(picstruct *field, picstruct *wfield) else if (flags & INTERP_FIELD) copydata(field, field->stripylim*w, w); else - readdata(field, data, w); + read_body(tab, data, w); if (flags & (WEIGHT_FIELD|RMS_FIELD|BACKRMS_FIELD|VAR_FIELD)) weight_to_var(field, data, w); @@ -175,6 +180,8 @@ void *loadstrip(picstruct *field, picstruct *wfield) writecheck(check, data, w); if ((check = prefs.check[CHECK_SUBPCPROTOS])) writecheck(check, data, w); + if ((check = prefs.check[CHECK_SUBPROFILES])) + writecheck(check, data, w); } if ((flags&DETECT_FIELD) && (check=prefs.check[CHECK_BACKRMS])) { @@ -184,7 +191,7 @@ void *loadstrip(picstruct *field, picstruct *wfield) } } else - readidata(field, field->fstrip + field->stripylim*w, w); + read_ibody(tab, field->fstrip + field->stripylim*w, w); field->stripylim = (++field->ymin)%field->stripheight; if ((++field->ymax)height) @@ -209,664 +216,51 @@ void copydata(picstruct *field, int offset, int size) } -/******************************** readdata **********************************/ -/* -read and convert input data stream in PIXTYPE (float) format. -*/ -void readdata(picstruct *field, PIXTYPE *ptr, int size) - { - static char bufdata0[DATA_BUFSIZE]; - char *bufdata; - short val16; - int i, bowl, spoonful, npix, curval, dval; - PIXTYPE bs,bz; - - bs = (PIXTYPE)field->bscale; - bz = (PIXTYPE)field->bzero; - switch(field->compress_type) - { -/*-- Uncompressed image */ - case ICOMPRESS_NONE: - bowl = DATA_BUFSIZE/field->bytepix; - spoonful = size0; size -= spoonful) - { - if (spoonful>size) - spoonful = size; - bufdata = bufdata0; - QFREAD(bufdata, spoonful*field->bytepix, field->file,field->filename); - switch(field->bitpix) - { - case BP_BYTE: - if (field->bitsgn) - for (i=spoonful; i--;) - *(ptr++) = *(bufdata++)*bs + bz; - else - for (i=spoonful; i--;) - *(ptr++) = *((unsigned char *)bufdata++)*bs + bz; - break; - - case BP_SHORT: - if (bswapflag) - swapbytes(bufdata, 2, spoonful); - if (field->bitsgn) - for (i=spoonful; i--; bufdata += sizeof(short)) - *(ptr++) = *((short *)bufdata)*bs + bz; - else - for (i=spoonful; i--; bufdata += sizeof(USHORT)) - *(ptr++) = *((USHORT *)bufdata)*bs + bz; - break; - - case BP_LONG: - if (bswapflag) - swapbytes(bufdata, 4, spoonful); - if (field->bitsgn) - for (i=spoonful; i--; bufdata += sizeof(LONG)) - *(ptr++) = *((LONG *)bufdata)*bs + bz; - else - for (i=spoonful; i--; bufdata += sizeof(ULONG)) - *(ptr++) = *((ULONG *)bufdata)*bs + bz; - break; - - case BP_FLOAT: - if (bswapflag) - swapbytes(bufdata, 4, spoonful); - for (i=spoonful; i--; bufdata += sizeof(float)) - *(ptr++) = *((float *)bufdata)*bs + bz; - break; - - case BP_DOUBLE: - if (bswapflag) - swapbytes(bufdata, 8, spoonful); - for (i=spoonful; i--; bufdata += sizeof(double)) - *(ptr++) = *((double *)bufdata)*bs + bz; - break; - - default: - error(EXIT_FAILURE,"*FATAL ERROR*: unknown BITPIX type in ", - "readdata()"); - break; - } - } - break; - -/*-- Compressed image */ - case ICOMPRESS_BASEBYTE: - bufdata = field->compress_bufptr; - curval = field->compress_curval; - npix = field->compress_npix; - while (size--) - { - if (!(npix--)) - { - if (curval != field->compress_checkval) - error(EXIT_FAILURE, "*Error*: invalid BASEBYTE checksum in ", - field->filename); - bufdata = field->compress_buf; - QFREAD(bufdata, FBSIZE, field->file, field->filename); - curval = 0; - if (bswapflag) - swapbytes(bufdata, 4, 1); - field->compress_checkval = *((int *)bufdata); - bufdata += 4; - if (bswapflag) - swapbytes(bufdata, 2, 1); - npix = (int)(*((short *)bufdata))-1; - bufdata+=2; - } - if ((dval=(int)*(bufdata++))==-128) - { - if (bswapflag) - swapbytes(bufdata, 2, 1); - memcpy(&val16, bufdata, 2); - dval = (int)val16; - if (dval==-32768) - { - bufdata += 2; - if (bswapflag) - swapbytes(bufdata, 4, 1); - memcpy(&dval,bufdata,4); - bufdata += 4; - } - else - bufdata += 2; - } - *(ptr++) = dval*bs + bz; - curval += dval; - } - field->compress_curval = curval; - field->compress_bufptr = bufdata; - field->compress_npix = npix; - break; - - case ICOMPRESS_PREVPIX: - bufdata = field->compress_bufptr; - curval = field->compress_curval; - npix = field->compress_npix; - while (size--) - { - if (!(npix--)) - { - if (curval != field->compress_checkval) - error(EXIT_FAILURE, "*Error*: invalid PREV_PIX checksum in ", - field->filename); - bufdata = field->compress_buf; - QFREAD(bufdata, FBSIZE, field->file, field->filename); - if (bswapflag) - swapbytes(bufdata, 2, 3); - curval = (int)*(short *)bufdata; - npix = (int)*(short *)(bufdata+=2)-1; - field->compress_checkval = (int)(*(short *)(bufdata+=2)); - bufdata+=4; - } - if ((dval=(int)*(bufdata++))==-128) - { - if (bswapflag) - swapbytes(bufdata, 2, 1); - memcpy(&val16, bufdata, 2); - curval = (int)val16; - bufdata += 2; - } - else - curval += dval; - *(ptr++) = curval*bs + bz; - } - field->compress_curval = curval; - field->compress_bufptr = bufdata; - field->compress_npix = npix; - break; - - default: - error(EXIT_FAILURE,"*Internal Error*: unknown compression mode in ", - "readdata()"); - } - - return; - } - - -/******************************** readidata *********************************/ -/* -read and convert input data stream in FLAGTYPE (unsigned int) format. -*/ -void readidata(picstruct *field, FLAGTYPE *ptr, int size) - { - static char bufdata0[DATA_BUFSIZE]; - char *bufdata; - short val16; - int i, bowl, spoonful, npix, curval, dval; - - switch(field->compress_type) - { -/*-- Uncompressed image */ - case ICOMPRESS_NONE: - bowl = DATA_BUFSIZE/field->bytepix; - spoonful = size0; size -= spoonful) - { - if (spoonful>size) - spoonful = size; - bufdata = bufdata0; - QFREAD(bufdata, spoonful*field->bytepix, field->file, field->filename); - switch(field->bitpix) - { - case BP_BYTE: - for (i=spoonful; i--;) - *(ptr++) = (FLAGTYPE)*((unsigned char *)bufdata++); - break; - - case BP_SHORT: - if (bswapflag) - swapbytes(bufdata, 2, spoonful); - for (i=spoonful; i--; bufdata += sizeof(USHORT)) - *(ptr++) = (FLAGTYPE)*((USHORT *)bufdata); - break; - - case BP_LONG: - if (bswapflag) - swapbytes(bufdata, 4, spoonful); - for (i=spoonful; i--; bufdata += sizeof(ULONG)) - *(ptr++) = (FLAGTYPE)*((ULONG *)bufdata); - break; - - case BP_FLOAT: - case BP_DOUBLE: - error(EXIT_FAILURE,"*Error*: I was expecting integers in ", - field->filename); - break; - default: - error(EXIT_FAILURE,"*FATAL ERROR*: unknown BITPIX type in ", - "readdata()"); - break; - } - } - break; - -/*-- Compressed image */ - case ICOMPRESS_BASEBYTE: - bufdata = field->compress_bufptr; - curval = field->compress_curval; - npix = field->compress_npix; - while (size--) - { - if (!(npix--)) - { - if (curval != field->compress_checkval) - error(EXIT_FAILURE, "*Error*: invalid BASEBYTE checksum in ", - field->filename); - bufdata = field->compress_buf; - QFREAD(bufdata, FBSIZE, field->file, field->filename); - curval = 0; - if (bswapflag) - swapbytes(bufdata, 4, 1); - field->compress_checkval = *((int *)bufdata); - bufdata += 4; - if (bswapflag) - swapbytes(bufdata, 2, 1); - npix = (int)(*((short *)bufdata))-1; - bufdata+=2; - } - if ((dval=(int)*(bufdata++))==-128) - { - if (bswapflag) - swapbytes(bufdata, 2, 1); - memcpy(&val16, bufdata, 2); - dval = (int)val16; - if (dval==-32768) - { - bufdata += 2; - if (bswapflag) - swapbytes(bufdata, 4, 1); - memcpy(&dval,bufdata,4); - bufdata += 4; - } - else - bufdata += 2; - } - *(ptr++) = (FLAGTYPE)dval; - curval += dval; - } - field->compress_curval = curval; - field->compress_bufptr = bufdata; - field->compress_npix = npix; - break; - - case ICOMPRESS_PREVPIX: - bufdata = field->compress_bufptr; - curval = field->compress_curval; - npix = field->compress_npix; - while (size--) - { - if (!(npix--)) - { - if (curval != field->compress_checkval) - error(EXIT_FAILURE, "*Error*: invalid PREV_PIX checksum in ", - field->filename); - bufdata = field->compress_buf; - QFREAD(bufdata, FBSIZE, field->file, field->filename); - if (bswapflag) - swapbytes(bufdata, 2, 3); - curval = (int)*(short *)bufdata; - npix = (int)*(short *)(bufdata+=2)-1; - field->compress_checkval = (int)(*(short *)(bufdata+=2)); - bufdata+=4; - } - if ((dval=(int)*(bufdata++))==-128) - { - if (bswapflag) - swapbytes(bufdata, 2, 1); - memcpy(&val16, bufdata, 2); - curval = (int)val16; - bufdata += 2; - } - else - curval += dval; - *(ptr++) = (FLAGTYPE)curval; - } - field->compress_curval = curval; - field->compress_bufptr = bufdata; - field->compress_npix = npix; - break; - - default: - error(EXIT_FAILURE,"*Internal Error*: unknown compression mode in ", - "readdata()"); - } - - return; - } - - /******************************* readimagehead *******************************/ /* extract some data from the FITS-file header */ void readimagehead(picstruct *field) { - int j,l, n; - char wstr1[TNX_MAXCHARS], wstr2[TNX_MAXCHARS], - st[80], str[80], - *buf, *point; - -/* Open the file */ - if (!(field->file = fopen(field->filename, "rb"))) - error(EXIT_FAILURE,"*Error*: cannot open ", field->filename); -/* Go directly to the right extension */ - if (field->mefpos) - { - QFSEEK(field->file, field->mefpos, SEEK_SET, field->filename); - } - buf = readfitshead(field->file, field->filename, &n); - if(FITSTOI("NAXIS ", 0) < 2) +#define FITSREADS(buf, k, str, def) \ + {if (fitsread(buf,k,str, H_STRING,T_STRING) != RETURN_OK) \ + strcpy(str, (def)); \ + } + + tabstruct *tab; + + tab = field->tab; + + if(tab->naxis < 2) error(EXIT_FAILURE, field->filename, " does NOT contain 2D-data!"); /*---------------------------- Basic keywords ------------------------------*/ - field->bitpix = FITSTOI("BITPIX ", 0); - if (field->bitpix != BP_BYTE - && field->bitpix != BP_SHORT - && field->bitpix != BP_LONG - && field->bitpix != BP_FLOAT - && field->bitpix != BP_DOUBLE) + if (tab->bitpix != BP_BYTE + && tab->bitpix != BP_SHORT + && tab->bitpix != BP_LONG + && tab->bitpix != BP_FLOAT + && tab->bitpix != BP_DOUBLE) error(EXIT_FAILURE, "Sorry, I don't know that kind of data.", ""); - field->bytepix = (field->bitpix>0?field->bitpix:-field->bitpix)>>3; - field->width = FITSTOI("NAXIS1 ", 0); - field->height = FITSTOI("NAXIS2 ", 0); + field->width = tab->naxisn[0]; + field->height = tab->naxisn[1]; field->npix = (KINGSIZE_T)field->width*field->height; - field->bscale = FITSTOF("BSCALE ", 1.0); - - field->bzero = FITSTOF("BZERO ", 0.0); - field->bitsgn = FITSTOI("BITSGN ", 1); - if (field->bitsgn && prefs.fitsunsigned_flag) - field->bitsgn = 0; + if (tab->bitsgn && prefs.fitsunsigned_flag) + tab->bitsgn = 0; - FITSTOS("OBJECT ", field->ident, "Unnamed"); - -/*----------------------------- Compression --------------------------------*/ - if (fitsread(buf, "IMAGECOD", st, H_STRING, T_STRING)==RETURN_OK) - { - if (!strcmp(st, "NONE")) - field->compress_type = ICOMPRESS_NONE; - else if (!strcmp(st, "BASEBYTE")) - field->compress_type = ICOMPRESS_BASEBYTE; - else if (!strcmp(st, "PREV_PIX")) - field->compress_type = ICOMPRESS_PREVPIX; - else - warning("Compression skipped: unknown IMAGECOD parameter:", st); - } + FITSREADS(tab->headbuf, "OBJECT ", field->ident, "Unnamed"); /*----------------------------- Astrometry ---------------------------------*/ /* Presently, astrometry is done only on the measurement and detect images */ if (field->flags&(MEASURE_FIELD|DETECT_FIELD)) - { - astromstruct *as; - double drota, s; - int naxis; + field->wcs = read_wcs(tab); - QCALLOC(as, astromstruct, 1); - field->astrom = as; - - naxis = as->naxis = 2; - for (l=0; lctype[l], str, 8); - sprintf(str, "CUNIT%-3d", l+1); - FITSTOS(str, str, "deg"); - strncpy(as->cunit[l], str, 32); - sprintf(str, "CRVAL%-3d", l+1); - as->crval[l] = FITSTOF(str, 0.0); - sprintf(str, "CRPIX%-3d", l+1); - as->crpix[l] = FITSTOF(str, 1.0); - sprintf(str, "CDELT%-3d", l+1); - as->cdelt[l] = FITSTOF(str, 1.0); - if (fabs(as->cdelt[l]) < 1/BIG) - error(EXIT_FAILURE, "*Error*: CDELT parameters out of range in ", - field->filename); - } - if (fitsnfind(buf, "CD1_1", n)) - { -/*---- If CD keywords exist, use them for the linear mapping terms... */ - for (l=0; lpc[l*naxis+j] = FITSTOF(str, l==j?1.0:0.0)/as->cdelt[l]; - } - } - else if (fitsnfind(buf, "PC001001", n)) -/*---- ...If PC keywords exist, use them for the linear mapping terms... */ - for (l=0; lpc[l*naxis+j] = FITSTOF(str, l==j?1.0:0.0); - } - else - { -/*---- ...otherwise take the obsolete CROTA2 parameter */ - s = as->cdelt[1]/as->cdelt[0]; - drota = FITSTOF("CROTA2 ", 0.0); - as->pc[3] = as->pc[0] = cos(drota*DEG); - as->pc[1] = -(as->pc[2] = sin(drota*DEG)); - as->pc[1] *= s; - as->pc[2] /= s; - } - - QMALLOC(as->wcs, struct wcsprm, 1); -/*-- Test if the WCS is recognized and a celestial pair is found */ - if (prefs.world_flag - && !wcsset(as->naxis,(const char(*)[9])as->ctype, as->wcs) - && as->wcs->flag<999) - { - char *pstr; - double date; - int biss, dpar[3]; - - as->wcs_flag = 1; -/*---- Coordinate reference frame */ -/*---- Search for an observation date expressed in Julian days */ - date = FITSTOF("MJD-OBS ", -1.0); -/*---- Precession date (defined from Ephemerides du Bureau des Longitudes) */ -/*---- in Julian years from 2000.0 */ - if (date>0.0) - as->equinox = 2000.0 - (MJD2000 - date)/365.25; - else - { -/*------ Search for an observation date expressed in "civil" format */ - FITSTOS("DATE-OBS", str, ""); - if (*str) - { -/*-------- Decode DATE-OBS format: DD/MM/YY or YYYY-MM-DD */ - for (l=0; l<3 && (pstr = strtok(l?NULL:str,"/- ")); l++) - dpar[l] = atoi(pstr); - if (l<3 || !dpar[0] || !dpar[1] || !dpar[2]) - { -/*---------- If DATE-OBS value corrupted or incomplete, assume 2000-1-1 */ - warning("Invalid DATE-OBS value in header: ", str); - dpar[0] = 2000; dpar[1] = 1; dpar[2] = 1; - } - else if (strchr(str, '/') && dpar[0]<32 && dpar[2]<100) - { - j = dpar[0]; - dpar[0] = dpar[2]+1900; - dpar[2] = j; - } - - biss = (dpar[0]%4)?0:1; -/*-------- Convert date to MJD */ - date = -678956 + (365*dpar[0]+dpar[0]/4) - biss - + ((dpar[1]>2?((int)((dpar[1]+1)*30.6)-63+biss) - :((dpar[1]-1)*(63+biss))/2) + dpar[2]); - as->equinox = 2000.0 - (MJD2000 - date)/365.25; - } - else -/*-------- Well if really no date is found */ - as->equinox = 2000.0; - } - if (field->flags&MEASURE_FIELD) - prefs.epoch = as->equinox; - FITSTOS("RADECSYS", str, as->equinox<1984.0? - "FK4": (as->equinox<1999.9999? "FK5" : "ICRS")); - if (!strcmp(str, "ICRS")) - { - as->radecsys = RDSYS_ICRS; - as->equinox = FITSTOF("EQUINOX ", 2000.0); - } - else if (!strcmp(str, "FK5")) - { - as->radecsys = RDSYS_FK5; - as->equinox = FITSTOF("EQUINOX ", FITSTOF("EPOCH ", 2000.0)); - if (field->flags&MEASURE_FIELD) - sprintf(prefs.coosys, "eq_FK5"); - } - else if (!strcmp(str, "FK4")) - { - if (as->equinox == 2000.0) - as->equinox = FITSTOF("EQUINOX ", FITSTOF("EPOCH ", 1950.0)); - as->radecsys = RDSYS_FK4; - warning("FK4 precession formulae not yet implemented:\n", - " Astrometry may be slightly inaccurate"); - } - else if (!strcmp(str, "FK4-NO-E")) - { - if (as->equinox == 2000.0) - as->equinox = FITSTOF("EQUINOX ", FITSTOF("EPOCH ", 1950.0)); - as->radecsys = RDSYS_FK4_NO_E; - warning("FK4 precession formulae not yet implemented:\n", - " Astrometry may be slightly inaccurate"); - } - else if (!strcmp(str, "GAPPT")) - { - as->radecsys = RDSYS_GAPPT; - warning("GAPPT reference frame not yet implemented:\n", - " Astrometry may be slightly inaccurate"); - } - else - { - warning("Using ICRS instead of unknown astrometric reference frame: ", - str); - as->radecsys = RDSYS_ICRS; - as->equinox = FITSTOF("EQUINOX ", 2000.0); - } - -/*---- Projection parameters */ - if (!strcmp(as->wcs->pcode, "TNX")) - { -/*---- IRAF's TNX projection: decode these #$!?@#!! WAT parameters */ - if (fitsfind(buf, "WAT?????") != RETURN_ERROR) - { -/*-------- First we need to concatenate strings */ - pstr = wstr1; - sprintf(str, "WAT1_001"); - for (j=2; fitsread(buf,str,pstr,H_STRINGS,T_STRING)==RETURN_OK; j++) - { - sprintf(str, "WAT1_%03d", j); - pstr += strlen(pstr); - } - pstr = wstr2; - sprintf(str, "WAT2_001"); - for (j=2; fitsread(buf,str,pstr,H_STRINGS,T_STRING)==RETURN_OK; j++) - { - sprintf(str, "WAT2_%03d", j); - pstr += strlen(pstr); - } -/*-------- LONGPOLE defaulted to 180 deg if not found */ - if ((pstr = strstr(wstr1, "longpole")) - || (pstr = strstr(wstr2, "longpole"))) - pstr = strpbrk(pstr, "1234567890-+."); - as->longpole = pstr? atof(pstr) : 999.0; - as->latpole = 999.0; -/*-------- RO defaulted to 180/PI if not found */ - if ((pstr = strstr(wstr1, "ro")) - || (pstr = strstr(wstr2, "ro"))) - pstr = strpbrk(pstr, "1234567890-+."); - as->r0 = pstr? atof(pstr) : 0.0; -/*-------- Read the remaining TNX parameters */ - if ((pstr = strstr(wstr1, "lngcor")) - || (pstr = strstr(wstr2, "lngcor"))) - as->tnx_lngcor = read_tnxaxis(pstr); - if (!as->tnx_lngcor) - error(EXIT_FAILURE, "*Error*: incorrect TNX parameters in ", - field->filename); - if ((pstr = strstr(wstr1, "latcor")) - || (pstr = strstr(wstr2, "latcor"))) - as->tnx_latcor = read_tnxaxis(pstr); - if (!as->tnx_latcor) - error(EXIT_FAILURE, "*Error*: incorrect TNX parameters in ", - field->filename); - } - } - else - { - as->longpole = FITSTOF("LONGPOLE", 999.0); - as->latpole = FITSTOF("LATPOLE ", 999.0); - if (fitsnfind(buf, "PROJP1 ", n)) - for (l=0; l<10; l++) - { - sprintf(str, "PROJP%-3d", l); - as->projp[l] = FITSTOF(str, 0.0); - } - } - } - else - { -/*---- No need to keep memory allocated for a useless WCS structure */ - free(as->wcs); - as->wcs_flag = 0; - } - } - -/*---------------------------------------------------------------------------*/ - - field->fitshead = buf; - field->fitsheadsize = n*FBSIZE; + QFSEEK(field->file, tab->bodypos, SEEK_SET, field->filename); return; - } +#undef FITSREADS -/******************************* readfitshead ********************************/ -/* -read data from the FITS-file header -*/ -char *readfitshead(FILE *file, char *filename, int *nblock) - - { - int n; - char *buf; - - if (!(buf=(char *)malloc((size_t)FBSIZE))) - error(EXIT_FAILURE, "*Error*: Not enough memory in ", "readfitshead()"); - -/* Find the number of FITS blocks of the header while reading it */ - QFREAD(buf, FBSIZE, file, filename); - - if (strncmp(buf, "SIMPLE ", 8)) - { -/* Ugly but necessary patch to handle this stupid DeNIS compressed format! */ - if (strncmp(buf, "XTENSION", 8)) - error(EXIT_FAILURE, filename, " is NOT a FITS file!"); -/* - else - { - memset(buf, ' ', 80); - strncpy(buf, - "SIMPLE = T / Decompressed by SExtractor", 59); - } -*/ - } - - for (n=1; !fitsnfind(buf,"END ", n); n++) - { - if (!(buf=(char *)realloc(buf, (size_t)(FBSIZE*(n+1))))) - error(EXIT_FAILURE, "*Error*: Not enough memory in ", "readfitshead()"); - QFREAD(buf+n*FBSIZE, FBSIZE, file, filename); - } - - *nblock = n; - return buf; } diff --git a/src/refine.c b/src/refine.c index 444621068d6cc23ab8169aaec2497656dca4b736..9b29bac5c8d66ac79f426f88677d5ba166a68618 100644 --- a/src/refine.c +++ b/src/refine.c @@ -9,7 +9,7 @@ * * Contents: functions to refine extraction of objects. * -* Last modify: 27/11/2003 +* Last modify: 10/01/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -315,7 +315,9 @@ int gatherup(objliststruct *objlistin, objliststruct *objlistout) if (p[nobj-1] > 1.0e-31) { drand = p[nobj-1]*rand()/RAND_MAX; - for (i=1; p[i]inputw; nima = som->ninput-som->nextrainput; llim = -5.0*backnoise; - hlim = prefs.satur_level-back; + hlim = thefield2.satur_level-back; backnoise *= backnoise; ngood = 0; for (i=nima; i--;) diff --git a/src/threads.h b/src/threads.h new file mode 100644 index 0000000000000000000000000000000000000000..f097f9f117c135cc9cf0eed7c85572d57e327373 --- /dev/null +++ b/src/threads.h @@ -0,0 +1,126 @@ + /* + threads.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: A program that uses POSIX threads +* +* Author: E.BERTIN +* +* Contents: Definitions and shortcuts for POSIX threads. +* +* Last modify: 03/07/2002 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +#include +#include + +/*---- Set defines according to machine's specificities and customizing -----*/ +/*--------------------------- Technical constants ---------------------------*/ +/*---------------------------- Synchro messages -----------------------------*/ + +#define STATE_FREE 0 +#define STATE_READY 1 +#define STATE_BUSY 2 + +/*------------------------------- Other Macros ------------------------------*/ + +#define QPTHREAD_ATTR_INIT(pthread_attr) \ + {if (pthread_attr_init(pthread_attr)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_attr_init() failed for ", #pthread_attr );;} + +#define QPTHREAD_ATTR_SETDETACHSTATE(pthread_attr, attr) \ + {if (pthread_attr_setdetachstate(pthread_attr, attr)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_attr_setdetachstate() failed for ", \ + #pthread_attr );;} + +#define QPTHREAD_ATTR_DESTROY(pthread_attr) \ + {if (pthread_attr_destroy(pthread_attr)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_attr_destroy() failed for ",#pthread_attr);;} + +#define QPTHREAD_CREATE(pthread, attr, func, arg) \ + {if (pthread_create(pthread, attr, func, arg)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_create() failed for ", #pthread );;} + +#define QPTHREAD_CANCEL(pthread) \ + {if (pthread_cancel(pthread)) \ + warning( \ + "failed to cancel ", #pthread );;} + +#define QPTHREAD_JOIN(pthread, ret) \ + {if (pthread_join(pthread, ret)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_join() failed for ", #pthread );;} + +#define QPTHREAD_MUTEX_INIT(mutex, attr) \ + {if (pthread_mutex_init(mutex, attr)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_mutex_init() failed for ", #mutex );;} + +#define QPTHREAD_MUTEX_LOCK(mutex) \ + {if (pthread_mutex_lock(mutex)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_mutex_lock() failed for ", #mutex );;} + +#define QPTHREAD_MUTEX_UNLOCK(mutex) \ + {if (pthread_mutex_unlock(mutex)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_mutex_unlock() failed for ", #mutex );;} + +#define QPTHREAD_MUTEX_DESTROY(mutex) \ + {if (pthread_mutex_destroy(mutex)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_mutex_destroy() failed for ", #mutex );;} + +#define QPTHREAD_COND_INIT(cond, attr) \ + {if (pthread_cond_init(cond, attr)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_cond_init() failed for ", #cond );;} + +#define QPTHREAD_COND_WAIT(cond, mutex) \ + {if (pthread_cond_wait(cond, mutex)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_cond_wait() failed for ", #cond );;} + +#define QPTHREAD_COND_BROADCAST(cond) \ + {if (pthread_cond_broadcast(cond)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_cond_broadcast() failed for ", #cond );;} + +#define QPTHREAD_COND_SIGNAL(cond) \ + {if (pthread_cond_signal(cond)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_cond_signal() failed for ", #cond );;} + +#define QPTHREAD_COND_DESTROY(cond) \ + {if (pthread_cond_destroy(cond)) \ + error(EXIT_FAILURE, \ + "*Error*: pthread_cond_destroy() failed for ", #cond );;} + +/*------------------------------- Structures --------------------------------*/ +typedef struct _threads_gate_t + { + int ngate; /* Gate counter */ + int nthreads; /* Number of threads to manage */ + void (*func)(void); /* Function to execute at wakeup */ + pthread_mutex_t mutex; /* Main MutEx */ + pthread_mutex_t block; /* Safety Mutex (avoid "rebound") */ + pthread_cond_t condvar; /* Main condition variable */ + pthread_cond_t last; /* To wake the remaining thread up */ + } threads_gate_t; + +/*----------------------------- Global variables ----------------------------*/ + int nproc; /* Number of child threads */ + +/*--------------------------------- Functions -------------------------------*/ +threads_gate_t *threads_gate_init(int nthreads, void (*func)(void)); + +void threads_gate_end(threads_gate_t *gate), + threads_gate_sync(threads_gate_t *gate); + diff --git a/src/types.h b/src/types.h index bf1667c5696759a2b6c9eca4b6ba4402529afb52..b9e8a6d7983de437b64e01839556d30bad55cf41 100644 --- a/src/types.h +++ b/src/types.h @@ -9,7 +9,7 @@ * * Contents: global type definitions. * -* Last modify: 12/01/2006 +* Last modify: 25/09/2008 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -19,6 +19,9 @@ #ifndef _FITSCAT_H_ #include "fits/fitscat.h" #endif +#ifndef _FITSWCS_H_ +#include "fitswcs.h" +#endif /*-------------------------------- flags ------------------------------------*/ @@ -45,7 +48,6 @@ /*--------------------------------- typedefs --------------------------------*/ typedef unsigned char BYTE; /* a byte */ typedef unsigned short USHORT; /* 0 to 65535 integers */ -typedef unsigned int FLAGTYPE; /* flag type */ typedef char pliststruct; /* Dummy type for plist */ typedef int LONG; @@ -60,7 +62,9 @@ typedef enum {CHECK_NONE, CHECK_IDENTICAL, CHECK_BACKGROUND, CHECK_SEGMENTATION, CHECK_ASSOC, CHECK_SUBOBJECTS, CHECK_SUBPSFPROTOS, CHECK_PSFPROTOS, CHECK_SUBPCPROTOS, CHECK_PCPROTOS, CHECK_PCOPROTOS, - CHECK_MAPSOM} checkenum; + CHECK_MAPSOM, CHECK_SUBPROFILES, CHECK_PROFILES, CHECK_PATTERNS, + MAXCHECK} + checkenum; /* CHECK_IMAGE type */ typedef enum {WEIGHT_NONE, WEIGHT_FROMBACK, WEIGHT_FROMRMSMAP, @@ -81,8 +85,6 @@ typedef struct float dflux; /* integrated det. flux */ float flux; /* integrated mes. flux */ float fluxerr; /* integrated variance */ - float flux_prof; /* PROFILE flux*/ - float fluxerr_prof; /* PROFILE flux variance */ PIXTYPE fdpeak; /* peak intensity (ADU) */ PIXTYPE dpeak; /* peak intensity (ADU) */ PIXTYPE peak; /* peak intensity (ADU) */ @@ -144,16 +146,13 @@ typedef struct float *fluxerr_aper; /* APER flux error vector */ float *mag_aper; /* APER magnitude vector */ float *magerr_aper; /* APER mag error vector */ - float flux_prof; /* PROFILE flux*/ - float fluxerr_prof; /* PROFILE flux error */ - float mag_prof; /* PROFILE magnitude */ - float magerr_prof; /* PROFILE magnitude error */ float flux_win; /* WINdowed flux*/ float fluxerr_win; /* WINdowed flux error */ float mag_win; /* WINdowed magnitude */ float magerr_win; /* WINdowed magnitude error */ /* ---- astrometric data */ double posx,posy; /* "FITS" pos. in pixels */ + double jacob[NAXIS*NAXIS]; /* Local deproject. Jacobian */ double mamaposx,mamaposy; /* "MAMA" pos. in pixels */ float sposx,sposy; /* single precision pos. */ float poserr_a, poserr_b, @@ -179,8 +178,10 @@ typedef struct double peakalpha1950, peakdelta1950; /* B1950 for brightest pix */ double alpha2000, delta2000; /* J2000 alpha, delta */ float theta2000; /* J2000 position angle E/N */ + double dtheta2000; /* North J2000 - native angle*/ double alpha1950, delta1950; /* B1950 alpha, delta */ float theta1950; /* B1950 position angle E/N */ + double dtheta1950; /* North B1950 - native angle*/ float aw, bw; /* WORLD ellipse size */ float thetaw; /* WORLD position angle */ float cxxw,cyyw,cxyw; /* WORLD ellipse parameters */ @@ -298,6 +299,132 @@ typedef struct float fluxerr_galfit; /* RMS error on galfit flux */ float mag_galfit; /* Galaxy tot. mag from fit */ float magerr_galfit; /* RMS error on galfit mag */ +/* ---- Profile-fitting */ + float *prof_vector; /* Profile parameters */ + float *prof_errvector; /* Profile parameter errors */ + float prof_chi2; /* Reduced chi2 */ + BYTE prof_flag; /* Model-fitting flags */ + BYTE prof_flagw; /* Model-fitting WORLD flag */ + short prof_niter; /* # of model-fitting iter. */ + float flux_prof; /* Flux from model-fitting */ + float fluxerr_prof; /* RMS error on model flux */ + float mag_prof; /* Mag from model-fitting */ + float magerr_prof; /* RMS mag from model-fitting */ + float x_prof, y_prof; /* Coords from model-fitting*/ + double xw_prof, yw_prof; /* WORLD coords */ + double alphas_prof, deltas_prof; /* native alpha, delta */ + double alpha2000_prof, delta2000_prof; /* J2000 alpha, delta */ + double alpha1950_prof, delta1950_prof; /* B1950 alpha, delta */ + double poserrmx2_prof, poserrmy2_prof, + poserrmxy_prof; /* Error ellips moments */ + float poserra_prof, poserrb_prof, + poserrtheta_prof; /* Error ellips parameters */ + float poserrcxx_prof, poserrcyy_prof, + poserrcxy_prof; /* pos. error ellipse */ + double poserrmx2w_prof, poserrmy2w_prof, + poserrmxyw_prof; /* WORLD error moments */ + float poserraw_prof, poserrbw_prof, + poserrthetaw_prof; /* WORLD error parameters */ + float poserrthetas_prof; /* native error pos. angle */ + float poserrtheta2000_prof; /* J2000 error pos. angle */ + float poserrtheta1950_prof; /* B1950 error pos. angle */ + float poserrcxxw_prof, poserrcyyw_prof, + poserrcxyw_prof; /* WORLD error ellipse */ + double prof_mx2, prof_my2, prof_mxy; /* Profile model moments */ + double prof_mx2w, prof_my2w, prof_mxyw;/* WORLD profile model moments*/ + float prof_eps1, prof_eps2; /* Profile model ellip.vector */ + float prof_e1, prof_e2; /* Profile model ellip.vector */ + float prof_offset_flux; /* Background offset */ + float prof_offset_fluxerr; /* RMS error */ + float prof_spheroid_flux; /* Spheroid total flux */ + float prof_spheroid_fluxerr; /* RMS error */ + float prof_spheroid_mag; /* Spheroid "total" mag */ + float prof_spheroid_magerr; /* RMS error */ + float prof_spheroid_reff; /* Spheroid effective radius */ + float prof_spheroid_refferr; /* RMS error */ + float prof_spheroid_reffw; /* WORLD spheroid eff. radius */ + float prof_spheroid_refferrw; /* RMS error */ + float prof_spheroid_aspect; /* Spheroid aspect ratio */ + float prof_spheroid_aspecterr; /* RMS error */ + float prof_spheroid_aspectw; /* WORLD spheroid aspect ratio*/ + float prof_spheroid_aspecterrw; /* RMS error */ + float prof_spheroid_theta; /* Spheroid position angle */ + float prof_spheroid_thetaerr; /* RMS error */ + float prof_spheroid_thetaw; /* WORLD spheroid pos. angle */ + float prof_spheroid_thetaerrw; /* RMS error */ + float prof_spheroid_thetas; /* Sky spheroid pos. angle */ + float prof_spheroid_theta2000; /* J2000 spheroid pos. angle */ + float prof_spheroid_theta1950; /* B1950 spheroid pos. angle */ + float prof_spheroid_sersicn; /* Spheroid Sersic index */ + float prof_spheroid_sersicnerr; /* RMS error */ + float prof_disk_flux; /* Disk total flux */ + float prof_disk_fluxerr; /* RMS error */ + float prof_disk_mag; /* Disk "total" mag */ + float prof_disk_magerr; /* RMS error */ + float prof_disk_scale; /* Disk scale length */ + float prof_disk_scaleerr; /* RMS error */ + float prof_disk_scalew; /* WORLD disk scale length */ + float prof_disk_scaleerrw; /* RMS error */ + float prof_disk_aspect; /* Disk aspect ratio */ + float prof_disk_aspecterr; /* RMS error */ + float prof_disk_aspectw; /* WORLD disk aspect ratio */ + float prof_disk_aspecterrw; /* RMS error */ + float prof_disk_inclination; /* Disk inclination */ + float prof_disk_inclinationerr; /* RMS error */ + float prof_disk_theta; /* Disk position angle */ + float prof_disk_thetaerr; /* RMS error */ + float prof_disk_thetaw; /* WORLD disk position angle */ + float prof_disk_thetaerrw; /* RMS error */ + float prof_disk_thetas; /* Sky disk position angle */ + float prof_disk_theta2000; /* J2000 disk position angle */ + float prof_disk_theta1950; /* B1950 disk position angle */ + float *prof_disk_patternvector; /* Disk pattern coefficients */ + float *prof_disk_patternmodvector; /* Disk pattern moduli */ + float *prof_disk_patternargvector; /* Disk pattern arguments */ + float prof_disk_patternspiral; /* Disk pattern spiral index */ + float prof_bar_flux; /* Galactic bar total flux */ + float prof_bar_fluxerr; /* RMS error */ + float prof_bar_mag; /* Bar "total" magnitude */ + float prof_bar_magerr; /* RMS error */ + float prof_bar_length; /* Bar length */ + float prof_bar_lengtherr; /* RMS error */ + float prof_bar_lengthw; /* WORLD bar length */ + float prof_bar_lengtherrw; /* RMS error */ + float prof_bar_aspect; /* Bar aspect ratio */ + float prof_bar_aspecterr; /* RMS error */ + float prof_bar_aspectw; /* WORLD bar aspect ratio */ + float prof_bar_aspecterrw; /* RMS error */ + float prof_bar_posang; /* Bar true prosition angle */ + float prof_bar_posangerr; /* RMS error */ + float prof_bar_theta; /* Bar projected angle */ + float prof_bar_thetaerr; /* RMS error */ + float prof_bar_thetaw; /* WORLD bar projected angle */ + float prof_bar_thetaerrw; /* RMS error */ + float prof_bar_thetas; /* Sky bar projected angle */ + float prof_bar_theta2000; /* J2000 bar projected angle */ + float prof_bar_theta1950; /* B1950 bar projected angle */ + float prof_arms_flux; /* Spiral arms total flux */ + float prof_arms_fluxerr; /* RMS error */ + float prof_arms_mag; /* Arms "total" magnitude */ + float prof_arms_magerr; /* RMS error */ + float prof_arms_scale; /* Arms scalelength */ + float prof_arms_scaleerr; /* RMS error */ + float prof_arms_scalew; /* WORLD arms scalelength */ + float prof_arms_scaleerrw; /* RMS error */ + float prof_arms_posang; /* Arms true position angle */ + float prof_arms_posangerr; /* RMS error */ +// float prof_arms_thetaw; /* WORLD arms position angle */ +// float prof_arms_thetas; /* Sky arms position angle */ +// float prof_arms_theta2000; /* J2000 arms position angle */ +// float prof_arms_theta1950; /* B1950 arms position angle */ + float prof_arms_pitch; /* Arms pitch angle */ + float prof_arms_pitcherr; /* RMS error */ + float prof_arms_start; /* Arms starting radius */ + float prof_arms_starterr; /* RMS error */ + float prof_arms_startw; /* WORLD arms starting radius */ + float prof_arms_starterrw; /* RMS error */ + float prof_arms_quadfrac; /* Arms quadrature fraction */ + float prof_arms_quadfracerr; /* RMS error */ /* ---- MEF */ short ext_number; /* FITS extension number */ } obj2struct; @@ -321,9 +448,9 @@ typedef struct pic char *rfilename; /* pointer to the reduced image name */ char ident[MAXCHAR]; /* field identifier (read from FITS)*/ char rident[MAXCHAR]; /* field identifier (relative) */ + catstruct *cat; /* FITS structure */ + tabstruct *tab; /* FITS extension structure */ FILE *file; /* pointer the image file structure */ - char *fitshead; /* pointer to the FITS header */ - int fitsheadsize; /* FITS header size */ /* ---- main image parameters */ int bitpix, bytepix; /* nb of bits and bytes per pixel */ int bitsgn; /* non-zero if signed integer data */ @@ -345,17 +472,12 @@ typedef struct pic int stripy; /* y position in buffer */ int stripylim; /* y limit in buffer */ int stripysclim; /* y scroll limit in buffer */ -/* ---- image (de-)compression */ - enum {ICOMPRESS_NONE, ICOMPRESS_BASEBYTE, ICOMPRESS_PREVPIX} - compress_type; /* image compression type */ - char *compress_buf; /* de-compression buffer */ - char *compress_bufptr; /* present pixel in buffer */ - int compress_curval; /* current pixel or checksum value */ - int compress_checkval; /* foreseen pixel or checksum value */ - int compress_npix; /* remaining pixels in buffer */ /* ---- basic astrometric parameters */ double pixscale; /* pixel size in arcsec.pix-1 */ double epoch; /* epoch of coordinates */ +/* ---- basic photometric parameters */ + double gain; /* conversion factor in e-/ADU */ + double satur_level; /* saturation level in ADUs */ /* ---- background parameters */ float *back; /* ptr to the background map in mem */ float *dback; /* ptr to the background deriv. map */ @@ -374,7 +496,7 @@ typedef struct pic PIXTYPE thresh; /* analysis threshold */ backenum back_type; /* Background type */ /* ---- astrometric parameters */ - struct structastrom *astrom; /* astrometric data */ + struct wcs *wcs; /* astrometric data */ struct structassoc *assoc; /* ptr to the assoc-list */ int flags; /* flags defining the field type */ /* ---- image interpolation */ diff --git a/src/wcs/Makefile.in b/src/wcs/Makefile.in index e4c294df3e25dcf1a71b1486f7c40d9b5285b800..cbeab06fe3e589bf8a3aad96249e9a42b48fbfd5 100644 --- a/src/wcs/Makefile.in +++ b/src/wcs/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -14,15 +14,11 @@ @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -34,10 +30,15 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ subdir = src/wcs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acx_prog_cc_optim.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) @@ -45,7 +46,6 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LIBRARIES = $(noinst_LIBRARIES) -AR = ar ARFLAGS = cru libwcs_c_a_AR = $(AR) $(ARFLAGS) libwcs_c_a_LIBADD = @@ -53,22 +53,30 @@ am_libwcs_c_a_OBJECTS = cel.$(OBJEXT) lin.$(OBJEXT) poly.$(OBJEXT) \ proj.$(OBJEXT) sph.$(OBJEXT) tnx.$(OBJEXT) wcs.$(OBJEXT) \ wcstrig.$(OBJEXT) libwcs_c_a_OBJECTS = $(am_libwcs_c_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ SOURCES = $(libwcs_c_a_SOURCES) DIST_SOURCES = $(libwcs_c_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ @@ -78,16 +86,27 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATE2 = @DATE2@ DATE3 = @DATE3@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -95,8 +114,11 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGER = @PACKAGER@ @@ -106,41 +128,66 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ +build = @build@ build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ +host = @host@ host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Program Makefile for the WCS library # Copyright (C) 2002 Emmanuel Bertin. @@ -153,7 +200,7 @@ libwcs_c_a_SOURCES = cel.c lin.c poly.c proj.c sph.c tnx.c wcs.c \ all: all-am .SUFFIXES: -.SUFFIXES: .c .o .obj +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -163,9 +210,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/wcs/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/wcs/Makefile'; \ cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/wcs/Makefile + $(AUTOMAKE) --foreign src/wcs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -207,27 +254,39 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcstrig.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -uninstall-info-am: + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -239,8 +298,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -250,13 +309,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique @@ -270,22 +328,21 @@ 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)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @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; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -326,7 +383,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -346,12 +404,20 @@ info-am: install-data-am: +install-dvi: install-dvi-am + 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 + installcheck-am: maintainer-clean: maintainer-clean-am @@ -361,7 +427,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-compile mostlyclean-generic +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-am @@ -371,18 +438,22 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-info-am + clean-libtool clean-noinstLIBRARIES ctags 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 uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/wcs/proj.c b/src/wcs/proj.c index b5c52bed37244b7bd9ccd3274fcc47bf90c47b18..d5e7a8491f37b065813d8a46682e3ad1787f4106 100644 --- a/src/wcs/proj.c +++ b/src/wcs/proj.c @@ -191,7 +191,8 @@ * * Author: Mark Calabretta, Australia Telescope National Facility * IRAF's TNX added by E.Bertin 2000/08/23 -* $Id: proj.c,v 1.1.1.1 2004/01/04 21:33:26 bertin Exp $ +* Behaviour of Cartesian-like projections modified by E.Bertin 2005/08/29 +* $Id: proj.c,v 1.1.1.1 2008/01/10 18:00:00 bertin Exp $ *===========================================================================*/ #ifdef HAVE_CONFIG_H @@ -1359,6 +1360,10 @@ double *phi, *theta; } *phi = x*prj->w[1]; + if (*phi>180.0) + *phi -= 360.0; + else if (*phi<-180.0) + *phi += 360.0; eta = y*prj->w[3]; *theta = wcs_atan2d(eta,1.0) + wcs_asind(eta*prj->p[1]/sqrt(eta*eta+1.0)); @@ -1427,6 +1432,10 @@ double *phi, *theta; } *phi = prj->w[1]*x; + if (*phi>180.0) + *phi -= 360.0; + else if (*phi<-180.0) + *phi += 360.0; *theta = prj->w[1]*y; return 0; @@ -1497,6 +1506,10 @@ double *phi, *theta; } *phi = x*prj->w[1]; + if (*phi>180.0) + *phi -= 360.0; + else if (*phi<-180.0) + *phi += 360.0; *theta = 2.0*wcs_atand(exp(y/prj->r0)) - 90.0; return 0; @@ -1590,6 +1603,10 @@ double *phi, *theta; } *phi = x*prj->w[1]; + if (*phi>180.0) + *phi -= 360.0; + else if (*phi<-180.0) + *phi += 360.0; *theta = wcs_asind(s); return 0; @@ -3676,8 +3693,8 @@ int raw_to_pv(struct prjprm *prj, double x, double y, double *xo, double *yo) } k=prj->n; - a = prj->p; /* Longitude */ - b = prj->p+100; /* Latitude */ + a = prj->p+100; /* Latitude comes first for compatibility */ + b = prj->p; /* Longitude */ xp = *(a++); xp += *(a++)*x; yp = *(b++); @@ -3763,7 +3780,7 @@ int raw_to_pv(struct prjprm *prj, double x, double y, double *xo, double *yo) yp += *(b++)*y3*x3; if (!--k) goto poly_end; xp += *(a++)*x2*y4; - yp += *(b++)*y4*x2; + yp += *(b++)*y2*x4; if (!--k) goto poly_end; xp += *(a++)*x*y5; yp += *(b++)*y*x5; diff --git a/src/wcscelsys.h b/src/wcscelsys.h new file mode 100644 index 0000000000000000000000000000000000000000..b1425b7d3a8797f9508f6ae1b1c66ca8e36807f6 --- /dev/null +++ b/src/wcscelsys.h @@ -0,0 +1,35 @@ +/* + wcscelsys.h + +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +* +* Part of: LDACTools+ +* +* Author: E.BERTIN (IAP) +* +* Contents: Include file for fitswcs.c +* +* Last modify: 14/01/2001 +* +*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +*/ + +/*-------------------------------- constants --------------------------------*/ + +/* equatorial coordinates of origin and pole and rotation sign of equatorial,*/ +/* galactic, and ecliptic reference frames, from Allen Ast. Quant., 4th ed. */ +char celsysname[][2][8] = { {"RA--", "DEC-"}, + {"GLON", "GLAT"}, + {"ELON", "ELAT"}, + {""}}; +double celsysorig[][2] = { {0.0, 0.0}, + {266.40499625, -28.93617242}, + {0.0, 0.0} }, + celsyspole[][2] = { {0.0, 90.0}, + {192.85948123, 27.12825120}, + {273.85261111, 66.99111111}}, +/* Note: the code to handle the rotation sign is not yet implemented!!! */ + celsyssign[] = { 1.0, + 1.0, + 1.0}; + diff --git a/src/winpos.c b/src/winpos.c index 8b5c053cea39a32bbb1433b376963ffa09db99b6..b0cb46a692ea744ed18be9d32f26f6d3840c6f9d 100644 --- a/src/winpos.c +++ b/src/winpos.c @@ -9,7 +9,7 @@ * * Contents: Compute windowed barycenter * -* Last modify: 22/09/2005 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -38,7 +38,7 @@ INPUT Picture structure pointer, OUTPUT -. NOTES obj->posx and obj->posy are taken as initial centroid guesses. AUTHOR E. Bertin (IAP) -VERSION 22/09/2005 +VERSION 19/12/2007 ***/ void compute_winpos(picstruct *field, picstruct *wfield, objstruct *obj) @@ -70,7 +70,7 @@ void compute_winpos(picstruct *field, picstruct *wfield, objstruct *obj) errflag = FLAG(obj2.winposerr_mx2); momentflag = FLAG(obj2.win_mx2) | FLAG(obj2.winposerr_mx2); var = backnoise2 = field->backsig*field->backsig; - gain = prefs.gain; + gain = field->gain; sig = obj2->hl_radius*2.0/2.35; /* From half-FWHM to sigma */ twosig2 = 2.0*sig*sig; diff --git a/src/xml.c b/src/xml.c index 7f05e4d987340fd77b2b52a69d156aab729d85b4..e1b93b6760c53ecad41a1572e523abc934462f91 100644 --- a/src/xml.c +++ b/src/xml.c @@ -9,7 +9,7 @@ * * Contents: XML logging. * -* Last modify: 14/07/2006 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -82,7 +82,7 @@ INPUT -. OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. AUTHOR E. Bertin (IAP) -VERSION 11/07/2006 +VERSION 19/12/2007 ***/ int update_xml(sexcatstruct *sexcat, picstruct *dfield, picstruct *field, picstruct *dwfield, picstruct *wfield) @@ -113,6 +113,10 @@ int update_xml(sexcatstruct *sexcat, picstruct *dfield, picstruct *field, x->pixscale[1] = field->pixscale; x->epoch[0] = dfield->epoch; x->epoch[1] = field->epoch; + x->gain[0] = dfield->gain; + x->gain[1] = field->gain; + x->satur_level[0] = dfield->satur_level; + x->satur_level[1] = field->satur_level; return EXIT_SUCCESS; } @@ -213,7 +217,7 @@ INPUT Pointer to the output file (or stream), OUTPUT RETURN_OK if everything went fine, RETURN_ERROR otherwise. NOTES -. AUTHOR E. Bertin (IAP) -VERSION 14/07/2006 +VERSION 19/12/2007 ***/ int write_xml_meta(FILE *file, char *error) { @@ -352,15 +356,22 @@ int write_xml_meta(FILE *file, char *error) fprintf(file, " \n", prefs.nimage_name); + fprintf(file, " \n", + prefs.nimage_name); + fprintf(file, " \n", + prefs.nimage_name); fprintf(file, " \n"); for (n=0; n1) fprintf(file, " \n" " %d%s%s%.0f" "%d%d\n" - " %s,%s\n" + " %s,%s%g %g\n" " %g %g%g %g%g %g" - "%g %g%g %g\n" + "%g %g%f %f\n" + " %g %g%g %g\n" " \n", xmlstack[n].currext, xmlstack[n].ext_date, @@ -373,13 +384,17 @@ int write_xml_meta(FILE *file, char *error) xmlstack[n].backsig[0], xmlstack[n].backsig[1], xmlstack[n].sigfac[0], xmlstack[n].sigfac[1], xmlstack[n].thresh[0], xmlstack[n].thresh[1], - xmlstack[n].pixscale[0], xmlstack[n].pixscale[1]); + xmlstack[n].pixscale[0], xmlstack[n].pixscale[1], + xmlstack[n].epoch[0], xmlstack[n].epoch[1], + xmlstack[n].gain[0], xmlstack[n].gain[1], + xmlstack[n].satur_level[0], xmlstack[n].satur_level[1]); else fprintf(file, " \n" " %d%s%s%.0f" "%d%d\n" - " %s\n" - " %g%g%g%g%g\n" + " %s%g\n" + " %g%g%g%g%f\n" + " %g%g\n" " \n", xmlstack[n].currext, xmlstack[n].ext_date, @@ -392,7 +407,10 @@ int write_xml_meta(FILE *file, char *error) xmlstack[n].backsig[0], xmlstack[n].sigfac[0], xmlstack[n].thresh[0], - xmlstack[n].pixscale[0]); + xmlstack[n].pixscale[0], + xmlstack[n].epoch[0], + xmlstack[n].gain[0], + xmlstack[n].satur_level[0]); fprintf(file, " \n"); fprintf(file, " \n"); diff --git a/src/xml.h b/src/xml.h index b3514ce40a2f17f8206a62aa66eb0fda34b81747..fc112aa3aeb82514cc8dd5f3fbe7099c07f6476c 100644 --- a/src/xml.h +++ b/src/xml.h @@ -9,7 +9,7 @@ * * Contents: XML logging. * -* Last modify: 14/07/2005 +* Last modify: 19/12/2007 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ @@ -49,6 +49,8 @@ typedef struct float thresh[2]; /* thresholds (ADU) */ double pixscale[2]; /* pixel scale (deg2) */ double epoch[2]; /* epoch of coords */ + double gain[2]; /* gain (e-/ADU) */ + double satur_level[2]; /* saturation level */ } xmlstruct; /*------------------------------- functions ---------------------------------*/ diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..4686bc4623c8d6e51f06edecf91b860c430acd73 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,8 @@ +# Test Makefile for SExtractor +# Copyright (C) 2007 Emmanuel Bertin. +TESTS = efigi1.test +EXTRA_DIST = galaxies.fits galaxies.weight.fits \ + default.psf default.sex default.param \ + default.conv efigi1.test +distclean-local: + -rm *.cat *.xml diff --git a/tests/Makefile.in b/tests/Makefile.in new file mode 100644 index 0000000000000000000000000000000000000000..dd8f5552d3132c5ef48eb698508f8165a0e1088f --- /dev/null +++ b/tests/Makefile.in @@ -0,0 +1,421 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 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@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ + $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ + $(top_srcdir)/acx_pthread.m4 \ + $(top_srcdir)/acx_urbi_resolve_dir.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +ATLAS_CFLAGS = @ATLAS_CFLAGS@ +ATLAS_ERROR = @ATLAS_ERROR@ +ATLAS_LIB = @ATLAS_LIB@ +ATLAS_LIBPATH = @ATLAS_LIBPATH@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE2 = @DATE2@ +DATE3 = @DATE3@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW_ERROR = @FFTW_ERROR@ +FFTW_LIBS = @FFTW_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGER = @PACKAGER@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# Test Makefile for SExtractor +# Copyright (C) 2007 Emmanuel Bertin. +TESTS = efigi1.test +EXTRA_DIST = galaxies.fits galaxies.weight.fits \ + default.psf default.sex default.param \ + default.conv efigi1.test + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *$$ws$$tst$$ws*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *$$ws$$tst$$ws*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +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 $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$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 +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: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +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 + +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-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distclean-local 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 \ + uninstall uninstall-am + +distclean-local: + -rm *.cat *.xml +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tests/default.conv b/tests/default.conv new file mode 100644 index 0000000000000000000000000000000000000000..2590b9cba71399a05c5487e7a7441843f0fdb10b --- /dev/null +++ b/tests/default.conv @@ -0,0 +1,5 @@ +CONV NORM +# 3x3 ``all-ground'' convolution mask with FWHM = 2 pixels. +1 2 1 +2 4 2 +1 2 1 diff --git a/tests/default.param b/tests/default.param new file mode 100644 index 0000000000000000000000000000000000000000..6e6278deec0fc36255fbfaefe06199f6de81e508 --- /dev/null +++ b/tests/default.param @@ -0,0 +1,15 @@ +NUMBER +X_IMAGE +Y_IMAGE +XWIN_IMAGE +YWIN_IMAGE +XPROF_IMAGE +YPROF_IMAGE +FLUX_AUTO +FLUX_PROF +MAG_AUTO +MAG_PROF +FLUX_RADIUS +FLAGS +NITER_PROF +VECTOR_PROF(12) diff --git a/tests/default.psf b/tests/default.psf new file mode 100644 index 0000000000000000000000000000000000000000..01fc56167168b7253f2b37a8f79e52e1d26da4e3 Binary files /dev/null and b/tests/default.psf differ diff --git a/tests/default.sex b/tests/default.sex new file mode 100644 index 0000000000000000000000000000000000000000..625453d4327ebddd7fd19604751e463c5684e447 --- /dev/null +++ b/tests/default.sex @@ -0,0 +1,77 @@ +# Default configuration file for SExtractor 2.5.0 +# EB 2006-07-14 +# + +#-------------------------------- Catalog ------------------------------------ + +CATALOG_NAME test.cat # name of the output catalog +CATALOG_TYPE ASCII_HEAD # NONE,ASCII,ASCII_HEAD, ASCII_SKYCAT, + # ASCII_VOTABLE, FITS_1.0 or FITS_LDAC +PARAMETERS_NAME default.param # name of the file containing catalog contents + +#------------------------------- Extraction ---------------------------------- + +DETECT_TYPE CCD # CCD (linear) or PHOTO (with gamma correction) +DETECT_MINAREA 2 # minimum number of pixels above threshold +DETECT_THRESH 1.5 # or , in mag.arcsec-2 +ANALYSIS_THRESH 2 # or , in mag.arcsec-2 + +FILTER Y # apply filter for detection (Y or N)? +FILTER_NAME default.conv # name of the file containing the filter + +DEBLEND_NTHRESH 32 # Number of deblending sub-thresholds +DEBLEND_MINCONT 0.005 # Minimum contrast parameter for deblending + +CLEAN Y # Clean spurious detections? (Y or N)? +CLEAN_PARAM 1.0 # Cleaning efficiency + +MASK_TYPE CORRECT # type of detection MASKing: can be one of + # NONE, BLANK or CORRECT + +WEIGHT_TYPE NONE + +#------------------------------ Photometry ----------------------------------- + +PHOT_APERTURES 5 # MAG_APER aperture diameter(s) in pixels +PHOT_AUTOPARAMS 2.5, 3.5 # MAG_AUTO parameters: , +PHOT_PETROPARAMS 2.0, 3.5 # MAG_PETRO parameters: , + # + +SATUR_LEVEL 50000.0 # level (in ADUs) at which arises saturation + +MAG_ZEROPOINT 0.0 # magnitude zero-point +MAG_GAMMA 4.0 # gamma of emulsion (for photographic scans) +GAIN 0.0 # detector gain in e-/ADU +PIXEL_SCALE 1.0 # size of pixel in arcsec (0=use FITS WCS info) + +#------------------------- Star/Galaxy Separation ---------------------------- + +SEEING_FWHM 1.2 # stellar FWHM in arcsec +STARNNW_NAME default.nnw # Neural-Network_Weight table filename + +#------------------------------ Background ----------------------------------- + +BACK_SIZE 64 # Background mesh: or , +BACK_FILTERSIZE 3 # Background filter: or , + +BACKPHOTO_TYPE GLOBAL # can be GLOBAL or LOCAL + +#------------------------------ Check Image ---------------------------------- + +CHECKIMAGE_TYPE MODELS, -MODELS, -BACKGROUND # can be NONE, BACKGROUND, BACKGROUND_RMS, + # MINIBACKGROUND, MINIBACK_RMS, -BACKGROUND, + # FILTERED, OBJECTS, -OBJECTS, SEGMENTATION, + # or APERTURES +CHECKIMAGE_NAME prof.fits,subprof.fits,orig.fits # Filename for the check-image + +#--------------------- Memory (change with caution!) ------------------------- + +MEMORY_OBJSTACK 3000 # number of objects in stack +MEMORY_PIXSTACK 300000 # number of pixels in stack +MEMORY_BUFSIZE 1024 # number of lines in buffer + +#----------------------------- Miscellaneous --------------------------------- + +VERBOSE_TYPE NORMAL # can be QUIET, NORMAL or FULL +WRITE_XML Y # Write XML file (Y/N)? +XML_NAME sex.xml # Filename for XML output diff --git a/tests/efigi1.test b/tests/efigi1.test new file mode 100755 index 0000000000000000000000000000000000000000..a98dc0ef0fc2181460fc33c94be8bb2ec9d2b65f --- /dev/null +++ b/tests/efigi1.test @@ -0,0 +1,4 @@ +#! /bin/sh +# Copyright (C) 2007 Emmanuel Bertin. +# +../src/sex galaxies.fits -WEIGHT_IMAGE galaxies.weight.fits -CATALOG_NAME galaxies.cat diff --git a/tests/galaxies.fits b/tests/galaxies.fits new file mode 100644 index 0000000000000000000000000000000000000000..e77a515af80123db6fae369c1dc0aa45361f928d --- /dev/null +++ b/tests/galaxies.fits @@ -0,0 +1,3971 @@ +SIMPLE = T / Standard FITS format BITPIX = 16 / No. of bits per pixel NAXIS = 2 / No. of axes in image NAXIS1 = 1024 / No. of pixels NAXIS2 = 1024 / No. of pixels EXTEND = T / FITS extension may be present BLOCKED = T / FITS file may be blocked CRPIX1 = 1.000000000000E+00 / Reference pixel CRVAL1 = 1.000000000000E+00 / Coordinate at reference pixel CDELT1 = 1.000000000000E+00 / Coordinate increment per pixel CTYPE1 = ' ' / Units of coordinate CRPIX2 = 1.000000000000E+00 / Reference pixel CRVAL2 = 1.000000000000E+00 / Coordinate at reference pixel CDELT2 = 1.000000000000E+00 / Coordinate increment per pixel CTYPE2 = ' ' / Units of coordinate BUNIT = ' ' / Units of data values BSCALE = 2.92273835509 / Scaling factor: r = f*i + z BZERO = 3713.66692596 / Zero offset: r = f*i + z DATAMAX = 9.852823437500E+04 / Maximum data value DATAMIN = 3.713666992188E+03 / Minimum data value ORIGIN = 'ESO-MIDAS' / Written by MIDAS DATE = '31/08/93' / Date of writting: DD/MM/YY FILENAME= 'NA36Rm50.bdf' / Original file name MIDASFTP= 'IMAGE ' / MIDAS File Type OBJECT = 'NA36Rc50 sum of 3 frames' / MIDAS desc.: IDENT(1) DATE-OBS= '26/10/92' / MIDAS desc.: O_TIME(1) MJD-OBS = 4.892162787000E+04 / MIDAS desc.: O_TIME(4) TM-START= 1.104800000000E+04 / MIDAS desc.: O_TIME(5) EXPTIME = 1.200000000000E+03 / MIDAS desc.: O_TIME(7) INSTRUME= 'EMMI ' / MIDAS desc.: INSTRUME(1) COMMENT IP_JIDNT 7 / IHAP: identifier system \COMMENT COMMENT IP_JSEQ 24887 / IHAP: sequence number \COMMENT COMMENT IP_AHGC 2857.489 / IHAP: high cut \COMMENT COMMENT IP_ALWC 2112.953 / IHAP: low cut \COMMENT COMMENT IP_ASCX 1. / IHAP: scaling in x \COMMENT COMMENT IP_ASCY 1. / IHAP: scaling in y \COMMENT COMMENT IP_FILE 'IHAP/FITS/EM9210260304099.FITS::USER ' / IHAP: Begin of keywor\COMMENT d COMMENT IP_FEND / IHAP: End of keyword file \COMMENT COMMENT EXPTIME 400.000 \COMMENT COMMENT IP_CBEND / IHAP: comment block end \COMMENT TELESCOP= 'ESONTTB ' / MIDAS desc.: TELESCOP(1) OBSERVER= 'LAPPARENT' / MIDAS desc.: OBSERVER(1) RA = 5.648170000000E+00 / MIDAS desc.: RA(1) DEC = -3.018297000000E+01 / MIDAS desc.: DEC(1) AIRMASS = 1.068349957466E+00 / MIDAS desc.: AIRMASS(1) ESO-LOG 00:00:00> DATE = '1992-10-26' / Mon Oct 26, 1992 ESO-LOG 03:04:08>-START EXPO EMMI RED / Start exp. on EMMI Red CC ESO-LOG 03:04:09> EXPO EMMI RED NO = 24887 / Exp. num. on EMMI Red CCD ESO-LOG 03:10:52>-STOP EXPO EMMI RED / Stop exp. on EMMI Red CCD HISTORY COMPUTE/IMAG imAR0051.bdf = #0001-bias50 \HISTORY COMPUTE/IMAG imAR0051.bdf = #0001 - 1.51001E-01 \HISTORY COMPUTE/IMAG NA36Rc501 = #0001 * 1.00000E+03 / fRc50 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc501 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc50 + NA36Rc503 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc50 + NA36Rc502 \HISTORY EXTRACT/IMAG intex = NA36Rc50[@0019,@0003:@1042,@1026] \HISTORY Renamed from intex.bdf to NA36Rc50.bdf \HISTORY SELE/TABL cursor MA36Rc50 2 0. 3 Y MA36Rc50 \HISTORY READ/TABL cursor interclean 0 6.85000E+03 3 Y \HISTORY interclean Renamed from interclean.bdf to MA36Rm\HISTORY 50.bdf READ/TABL cursor MA36Rm50 0 \HISTORY 6850 3 Y MA36Rm50 READ/TABL cursor MA\HISTORY 36Rm50 0 6850 3 Y MA36Rm50 READ/TABL \HISTORY cursor MA36Rm50 0 6850 3 Y MA36Rm50 RA = 5.648169994354E+00 / MIDAS desc.: O_POS(1) DEC = -3.018300056458E+01 / MIDAS desc.: O_POS(2) AIRMASS = 1.068349957466E+00 / MIDAS desc.: O_AIRM(1) HIERARCH ESO GEN ID = 'ARC-0001/1.2' HIERARCH ESO GEN PROJ ID = '000.00.000' HIERARCH ESO GEN EXPO NO = 24887 HIERARCH ESO GEN EXPO TYPE = 'SCI ' HIERARCH ESO GEN EXPO LST = 2.420000000000E+03 HIERARCH ESO TEL ID = 'ESONTTB ' HIERARCH ESO TEL LON = 7.073450000000E+01 HIERARCH ESO TEL LAT = -2.925840000000E+01 HIERARCH ESO TEL ALTITUDE = 2440 HIERARCH ESO TEL FOCU LEN = 3.848200000000E+01 HIERARCH ESO TEL FOCU SCALE = 1.489000000000E+00 HIERARCH ESO TEL TRAK RATEA = 4.200000000000E-03 HIERARCH ESO TEL TRAK RATED = 0.000000000000E+00 HIERARCH ESO ADA ID = 'ADAPTB ' HIERARCH ESO ADA MODE = 'STD ' HIERARCH ESO ADA ROT = 0.000000000000E+00 HIERARCH ESO ADA GUID-1 X = 1.294000000000E-02 HIERARCH ESO ADA GUID-1 Y = 1.717000000000E-01 HIERARCH ESO ADA GUID-2 X = 5.070000000000E-04 HIERARCH ESO ADA GUID-2 Y = 1.110000000000E-03 HIERARCH ESO INS ID = 'EMMI #1 ' HIERARCH ESO INS COMP ID = 'HP RTE-A V5' HIERARCH ESO INS MODE = 'RILD ' HIERARCH ESO INS OPTI-2 NO = 1 HIERARCH ESO INS OPTI-2 TYPE = 'MIRROR ' HIERARCH ESO INS OPTI-2 ID = 'RILD MIR' HIERARCH ESO INS OPTI-2 NAME = 'RILD ' HIERARCH ESO INS OPTI-3 NO = 1 HIERARCH ESO INS OPTI-3 TYPE = 'FREE ' HIERARCH ESO INS MIRR-3 NAME = 'UPPER RED' HIERARCH ESO INS MIRR-3 ST = 0 HIERARCH ESO INS OPTI-7 NO = 3 HIERARCH ESO INS OPTI-7 TYPE = 'FILTER ' HIERARCH ESO INS OPTI-7 ID = '#608 ' HIERARCH ESO INS OPTI-7 NAME = 'R ' HIERARCH ESO INS OPTI-9 NO = 9 HIERARCH ESO INS OPTI-9 TYPE = 'FREE ' HIERARCH ESO DET NAME = 'THX31156' HIERARCH ESO DET ID = 'ccd$18 ' HIERARCH ESO DET TYPE = 'CCD Four_Phase' HIERARCH ESO DET PIXSIZE = 1.900000000000E-05 HIERARCH ESO DET BITS = 16 HIERARCH ESO DET FRAM NAXIS1 = 1060 HIERARCH ESO DET FRAM CRVAL1 = 1 HIERARCH ESO DET FRAM CRPIX1 = 1 HIERARCH ESO DET FRAM CDELT1 = 1 HIERARCH ESO DET FRAM NAXIS2 = 1040 HIERARCH ESO DET FRAM CRVAL2 = 1 HIERARCH ESO DET FRAM CRPIX2 = 1 HIERARCH ESO DET FRAM CDELT2 = 1 HIERARCH ESO DET DKTIME = 4.000000000000E+02 HIERARCH ESO DET TEMP_VAR = 1.000000000000E-01 HIERARCH ESO DET TEMPMEAN = 1.376000000000E+02 HIERARCH ESO DET COMP ID = 'ccdr-V1.0' HIERARCH ESO DET PARM1 = 'CLOCK=tho1k' HIERARCH ESO DET PARM2 = 'HLO1 : 2.02 VLO1 : 1.01 VDD1 : 23.03' HIERARCH ESO DET PARM3 = 'HHI1 : 15.00 VHI1 : 12.01 VDR1 : 13.98' HIERARCH ESO DET PARM4 = 'HLO2 : 2.02 RLO1 : 1.01 VGS1 : 4.99' HIERARCH ESO DET PARM5 = 'HHI2 : 15.03 RHI1 : 10.07 ICCD1 : 0.00' HIERARCH ESO DET PARM6 = 'TL 1, 5 telem. data' HIERARCH ESO DET DATE = 1.989794555664E+03 HIERARCH ESO DET MODE = 'SLOW ' HIERARCH ESO DET GAIN = 1 HIERARCH ESO DET AD_VALUE = 2.100000000000E+00 HIERARCH ESO DET DIT = 4.000000000000E+02 HIERARCH ESO DET SHUT TMOPEN = 5.000000000000E-01 HIERARCH ESO DET SHUT TMCLOS = 5.000000000000E-01 HISTORY ESO-DESCRIPTORS START ................ HISTORY 'WIND_RAW' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.9000000E+01 3.0000000E+00 1.0420000E+03 1.0260000E+03 HISTORY HISTORY 'STAT_RAW' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 6.5800000E+02 3.2767000E+04 2.3813201E+03 5.6562799E+02 2.4699001E+10 HISTORY 3.8941301E+14 2.4969999E+09 2.3490701E+03 2.3460000E+03 2.0070000E+03 HISTORY 1.6000000E+01 6.5800000E+02 3.2767000E+04 HISTORY HISTORY 'WIND_OVER' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.0000000E+01 1.0290000E+03 1.0550000E+03 1.0390000E+03 HISTORY HISTORY 'STAT_OVER' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 2.1200000E+02 2.4400000E+02 2.2111700E+02 2.5815699E+00 1.0815500E+07 HISTORY 2.3924700E+09 2.5441800E+06 2.2058000E+02 2.2050000E+02 3.3000000E+01 HISTORY 1.0000000E+00 2.1200000E+02 2.4400000E+02 HISTORY HISTORY 'BIAS_FRAME' ,'C*1 ' , 1, 7,'7A1',' ',' ' HISTORY bias50 HISTORY HISTORY 'BIAS_OVER_DIFF' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 1.5100101E-01 HISTORY HISTORY 'FLAT_WIND' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 4.5000000E+02 3.8000000E+02 7.4000000E+02 6.2000000E+02 HISTORY HISTORY 'FLAT_BKG' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 2.1311699E+03 HISTORY HISTORY 'SKIM_FRAC' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 3.5154400E-04 HISTORY HISTORY 'AV_WIND_NAME' ,'C*1 ' , 1, 5,'5A1',' ',' ' HISTORY fRc50 HISTORY HISTORY 'FLAT_FRAME' ,'C*1 ' , 1, 5,'5A1',' ',' ' HISTORY fRc50 HISTORY HISTORY 'WIND_FIN' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.9000000E+01 3.0000000E+00 1.0420000E+03 1.0260000E+03 HISTORY HISTORY 'STAT_FIN' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 6.0423798E+02 3.2842602E+04 2.1606499E+03 5.5936798E+02 2.0734501E+10 HISTORY 3.5516501E+14 2.2656100E+09 2.1273799E+03 2.1162400E+03 2.0150000E+03 HISTORY 1.6000000E+01 6.0423798E+02 3.2842602E+04 HISTORY HISTORY 'WIND_SUM' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.0000000E+00 1.0000000E+00 1.0240000E+03 1.0240000E+03 HISTORY HISTORY 'STAT_SUM' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 3.7136699E+03 9.8528203E+04 6.9033799E+03 1.6677500E+03 6.1352398E+11 HISTORY 2.8897399E+16 7.2387098E+09 6.8047002E+03 6.7938701E+03 2.0480000E+03 HISTORY 4.6318802E+01 3.7136699E+03 9.8528203E+04 HISTORY HISTORY 'LHCUTS' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 5.5000000E+03 9.0000000E+03 3.7136670E+03 9.8528234E+04 HISTORY HISTORY 'DISPLAY_DATA' ,'I*4 ' , 1, 9,'7I10',' ',' ' HISTORY 2 2 513 513 0 -1 -1 HISTORY -1 -1 HISTORY HISTORY 'BOX_MIN' ,'R*4 ' , 1, 6,'5E14.7',' ',' ' HISTORY 3.2100000E+02 2.1500000E+02 6.9644336E+03 6.3300000E+02 4.2300000E+02 HISTORY 6.8900532E+03 HISTORY HISTORY 'IJBORDER' ,'I*4 ' , 1, 4,'7I10',' ',' ' HISTORY 1 1 1024 1024 HISTORY HISTORY 'LHCUT' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 3.6236699E+03 8.0148297E+04 HISTORY HISTORY 'ZEROMAGN' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 2.4671000E+01 HISTORY HISTORY 'SEEING' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 1.8308023E+00 9.6358800E-01 HISTORY HISTORY 'PAIRSPRT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 3.1899800E+00 HISTORY HISTORY 'MULTDTCT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 4.1900001E+00 HISTORY HISTORY 'PRFLCTRL' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY -5 HISTORY HISTORY 'OUPROFIL' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 5 HISTORY HISTORY 'STMETRIC' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 9.3000001E-01 5.5799999E+00 HISTORY HISTORY 'BRGHTLMT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 1.8387699E+01 HISTORY HISTORY 'NBSTARS' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 17 HISTORY HISTORY 'PSFTAB' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 1 HISTORY HISTORY 'THRESHOLD' ,'R*4 ' , 1, 5,'5E14.7',' ',' ' HISTORY 6.8047002E+03 1.1384800E+02 1.6730800E+00 2.0000000E+00 2.5446301E+01 HISTORY HISTORY 'N_SEARCH_ANA' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 822 806 HISTORY HISTORY 'N_STAR_GAL_DEF' ,'I*4 ' , 1, 3,'7I10',' ',' ' HISTORY 46 744 16 HISTORY HISTORY 'HIST_BINS' ,'R*4 ' , 1, 5,'5E14.7',' ',' ' HISTORY 2.5600000E+02 2.8824686E+02 3.7136670E+03 7.7216609E+04 0.0000000E+00 HISTORY HISTORY 'HISTOGRAM' ,'I*4 ' , 1, 256,'7I10',' ',' ' HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 0 10 64 23 12 HISTORY 3 3 4 4 3 1 2 HISTORY 0 0 1 1 0 1 0 HISTORY 0 0 0 3 0 1 0 HISTORY 0 1 0 1 0 1 0 HISTORY 0 0 1 1 0 1 0 HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 1 1 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 1 0 0 1 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 1 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 1 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 1 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 1 0 0 0 0 HISTORY 0 0 1 0 HISTORY HISTORY 'STATISTIC' ,'R*4 ' , 1, 11,'5E14.7',' ',' ' HISTORY 3.7136670E+03 9.8528234E+04 6.9033760E+03 1.6677493E+03 6.1352378E+11 HISTORY 2.8897433E+16 7.2387144E+09 6.5048496E+03 3.8995779E+03 2.5600000E+02 HISTORY 3.7182184E+02 HISTORY HISTORY 'WINDOW_FROM' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 1 1 HISTORY HISTORY 'WINDOW_TO' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 1024 1024 HISTORY HISTORY 'NBMODIF' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 1 HISTORY HISTORY 'STARS' ,'R*4 ' , 1, 51,'5E14.7',' ',' ' HISTORY 2.6300000E+02 8.8700000E+02 4.6759199E+04 7.5000000E+01 5.6300000E+02 HISTORY 1.5854400E+04 1.3000000E+01 3.1300000E+02 4.9727699E+04 3.3900000E+02 HISTORY 4.3300000E+02 9.6787102E+04 7.0100000E+02 1.6300000E+02 1.2378200E+04 HISTORY 8.5500000E+02 2.5500000E+02 3.5242898E+04 7.6100000E+02 3.3300000E+02 HISTORY 1.4904300E+04 1.0110000E+03 3.5700000E+02 2.5686801E+04 9.0700000E+02 HISTORY 4.0100000E+02 1.6969100E+04 8.4900000E+02 5.2500000E+02 1.4543700E+04 HISTORY 9.1700000E+02 5.4500000E+02 4.4644398E+04 7.7700000E+02 5.7700000E+02 HISTORY 3.6737199E+04 1.0010000E+03 6.9500000E+02 9.8214500E+04 8.2500000E+02 HISTORY 8.0100000E+02 2.0127900E+04 6.3100000E+02 6.3500000E+02 1.6520199E+04 HISTORY 5.8500000E+02 6.7500000E+02 1.5727300E+04 6.5900000E+02 6.6500000E+02 HISTORY 2.1833900E+04 HISTORY HISTORY 'DPROFILE' ,'R*4 ' , 1, 25,'5E14.7',' ',' ' HISTORY 3.2567519E-01 6.4562768E-01 6.5725815E-01 5.2960014E-01 4.1916752E-01 HISTORY 3.0000001E-01 2.8000000E-01 2.5999999E-01 2.3999999E-01 2.0000000E-01 HISTORY 1.8000001E-01 1.6000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY HISTORY ESO-DESCRIPTORS END ................ END D-+<?+%/2K:d:;<I\4- PlB, (9::%&%':  D>;6:> +9!0<.V"*CL9EHÿôD70$=0L+#/ú$L%93ý9688GQfK7"Y4G"+L.)ÿ2 +NH1,& ,3$48.=K=ö!/4ÚHþ057%H AC2B0A'R</-#B!,,0D' #)> %D$E4ÿ"'N6>7d5F*6A0ä  I'53;4>>'MP6O5(+SW>jR5=A7-*3#;*7J&U!EE?2+'"4T17/-30?06E3<5!'T0'#.Fä Jôf?e9 $3L 59(F!@B><)#"$$41C*.(@064()2ó&)D>N8<U7'Z A, +I3%9/57e11111111111111111111111111111111111111111A=9&1111111169*Hb<WM<(7KJ/32;B9H';*EI5@1111111111111111111111111111111111111111F)1;ðA?O<$üDJ+9*0/@?-,*1F+W,4N9A') BEI:"SN<>v7=0,('1 ð"!øC1N''.< 4Bþ5?.K#> ,Ný+(+7 )/M.&&*4 ,?9V<7H(,37*)9G2M3?="I6.' Gõ).?73>!+3'(0'=.1KJ=&L$6,(-;L%J":4?55(G0&+%6,'5E-2+=&2+S*-D#A"677],8@5D ø1<% I%4D,'4( 68e;-;A!O1)e5E-)75M7*O<ñ0"0+3%-+7`6E!A5þN.=/(i>,*"R'Y;+6"-L)3(32<06-8046<R"$ 10 L0#+1@"?%ð0?77M#(<= 404-$3\23/!&0*:5*;;2(.<PT8+,3);ñ-M+)(L*'!.>)7;&! bU.((+H >L6:M+6./*.K??B3=U.NP\2V(O86H12F@8"Ld':MFTV3eqt§˜íú½8/L- +'-F-5E7D5032K8ÿK<)4Hý !%/8ô1Z%ü$6ÿ*K\$2"N;0!,øS@>$:* 4 17AX8.09*8M#IWir'Z(1)'E,_>'%-7O'H!PÔ$5I1P-.,E* ,L$ù #&:&þý(%G2*49(!02$ ó1ýGî?Q/-ø#-;-2(A )C .G*(3<6TE1B"? 1 =OK1(D,G 26[2$+4>LK2F@25GP;::'&$6C „A@4J0?I%16.!/.,0I&7;K.8M,+#60 "C2F(/d0F85‹ëìÚICDD#*>@ê# "8 (5)3.B0/'R03'#$*Y=9$($C2ûP'E?ûG3è&:`OZ.#-.)11111111111111111111111111111111111111117+9X/11111111Fù@!$=JZD.\5M/(`@O1CRO\>0@1111111111111111111111111111111111111111958=D]#>(.:,59,?(,5K$B+&M$%%'=1A07A5AI'S8/HZRP='20<1?#/U46)9 +&/A>?1@K$ 3H@$'"K2F?=<5(V7R,!E(.: K$ 0-:eD).&AL@=2 # 0>+K=$;"H1-W@034?<<H#,(%,6.1(:0*X÷Cï', &4E)33!>+ E67,2!0$1@ +.)T+/NC#0E!M50JBH6 A1RL>+EFQ. 4** 7]43Q :!ÿ0#6 $!7bü-44& ((=K!2DcMë!4  B(Q1XI!G(*CW:(F 0.>706%Z!+:F75- ^%*D-W03@]*Z6T"CEH@ò7G.6o4&õ12 82G( F(=2.?# ABG?#!,"J%3'0FADGEY513MED!-&6+W$.T=K(0)*Y.+H4@a0H%2bBTF'?\ntxкóÿFSO5 OBÿ()"2$. >))9*  ,O("89J035õ!O6>%(Zb9<"=R=3,L224)'<W085?L2,(P+98)"4?P^H0-28V@@&2(07<"-JG@<!)5@-C'!$+KF!2$8;K5"$L%0=#"8.ADBû!?#0  ;GF 6)12?3'".6C@.:#2?G<>#9O(.B+ u$$.44*O&;6A?Y+ Oø÷(=IM7D"/<O@*W)(J;7),NC-.%.K-J'2E:8'=VE\(./'55X)-N;%8.+"W +D=VPApƒaM"1@%5?9.";1*3" -99F8"4"@/ES52I+<0$'4; .j*,+)/L)3$@F3'24/1111111111111111111111111111111111111111F9YN+111111115/ ?"]8>0*?C_&</"O.*)YB;Fƒ1111111111111111111111111111111111111111'4,)%/A?./9X,?$8 5:K0%(:A.>679.*-,?+D06ý!#0=@XizSBH!ü##K/&O-ND/þ0 6;ó1@Ig$>, (0"14<11@>"''8V"4+=))IO2.6:.0E*N"2;ïNþ+*'+! R5 ;_W*6"8,FL+)Y+Hg03")1+199I"f7 ?B9>q44G;&)F0$,)<6!DSSIAA4-CI*)66?QQ3&,!$>"D MWP$/G38#D%091PB>6>T&,K'6&ZFA8:VP0N3$"-/"(G +0A?,'83&# 6)'(A/(17==>)1ü5(-3.5`" Z,ñ.$39&G. LS,5!"=9]6$%?=?$-ZH4803PB*8@T%A%V//);7I4/JV$87,D\88<A2W%!/Q40% "F/L=$9C0'74&!D#37 T4&G6; >3@7>lW$:F6WV/ct4ccaCyžÆ5x.:% B0:)F!15&XXFF:*(kD +#,G!(*OS8#,,%3I $5:6C%$0 '+<5:Jh- KH (9÷():=ó111111113 R120R;'&%98H79A+C'E. ?",(+1#*9.ü ''N#)>5+- +"2*)L40/#-BD0 -<"7A$A 0MC6<I@:0& FA 6(6;E?C;2R/R0, !(!F;#6DBW7 +49;/=8<:A$E!<6 ";/,1W9'38 TK "061%/H.t-j("?3H.('W?P?†/#;*.,4DAW(':ì3-=ì@C%)/ë#,J:V6) +ý3+&6RR,F.*&!7+Q)'7-_/1<)'08%4$1111111111111111111111111111111111111111569&=d11111111NE6F.9HIP:/;%F4?3%O6AbGb1111111111111111111111111111111111111111$E?3B),9^N%'&/;9#=:3B%=4d0>RC/FE-2-õ#8FDBe˜—Za?Q>)+3Q)0! +133@Ee&6Q=4!# (8:CCB]286, "G56OX'%3=-&2=)3+,HA;<?CHL6<<&3öL 17@5F2@2(Q +` GYrA&;'M<"7*û$ &,6-/4.?>#?3)Z= 5B D/ 3V,*+$@3+2FH&>I2$@@#8*!##Y+!J>7D6$M64)8XP,/35&,KC";%#(#E@634(2>(#L'H(&#>2+GPJù,F%G,6=,)8I1;  O232ÿR]<%d#;2@]EN%c+ !ú,T-*=/(ý@9>>'F!B>D70_6?13*B%;!(/G 2 4Z*`62B/ÿ$!&.*.!$0062C,ú/%=5G";? B8(F>e3UATD^=D^-?AH2-2K‚¡UKC3C=?RnEYHBWXßñ¡÷! <E$$$L'YPõb3;05(-*N0#K+<(''7D=$+, $61:10/)M/ !T4131(74?N +'#5G8(D!6(5">  I(A,7$&  11111111;b( 'B6B!!-Q(=*>'/*=Iö?7#,&3G2-14û-3(MI047!< #8%4A>AT0CK*6-1Dú43&E)3++N!-;B"11/$8'@33KI$aIO&*/3"'J!0M:H"T1#=%,ý#D)#HA.+W&@N#"."M 1@.Q,%U:IL)3(=8F/$.3E3$?0û#;#06@'L@L%P5i+.Oá:!=F;,BHa5;E)f[-lA241ôø6L. #"ó#0&%!=-,..6&,@.674P81111111111111111111111111111111111111111S=(1;0F11111111A=+"@e:EK)J);#>HDE1LNW>Yzm1111111111111111111111111111111111111111E+C8YI92@7&-?ZR+42TH!@+G3K6)5G&(AX7?.;2c9cy¦ªbRR8,6'5LA=9m$6:) `!GXK*8$X?.E&%7?030V@H1Y@'Xf6G-$/3û="2$d8W)+<"'J>3L"&369?;(3:EI +Z/,>(",624;]?Q)1)[= 13 %/;>4#~ 6$*LLL51:$)D<^b5$On4P,'3%B,;F#$>9>:6C*5!BJ^#-?vM- 'E%H51:+s)æ)F2<-$,@/#(#=$YJ1 !*DJ."9/]C8F+>0 661#J 7*#].:F/?A2N''=9/.1F#-&L718TAL0;-3=!4;JZ"0J0>=/.;7]G+M >R2T4Ki?</4F6'N()AB-:5146E?12;I1="9+)D8, ?H4SP2?23$L'H;&*;#G;;KC,58A1VC)j3M41^°žLi=i^[HCKl8syjƒ‰¶ºŠY"M.x(%&5%E9:GE!, R24%9 5=-FW){>d0R<)D?(W"8CA$A4[$5?*N6.M+$+ +&)+„N948(L1.1B#+ü R@-S9A$=11111111"-'/+S>P#H6()(SFc,!û'L/ + ->@3X(-#+@*+:<:!&(;$4K2%%2#dD2P#+,?<J T%+&BHK<:HM@GR@'59@&(*#=*..<X302J'$Y0eZCOA48!:+=;#(AYü*+R;<6;05O1'C=>1Q&*<O17("8EEC>$"1*I'^5"E?GM;¾ÄE("Koa<(1L1AaC7# O#54K&L$a.V!R0)' +8+1K$*+<K7æ]--+4ú:< +(F$3'1111111111111111111111111111111111111111!Y3AE+-111111112SP9 !(.-5[*+57085]8]&K2GK1111111111111111111111111111111111111111fbY)9W5G<@p=ZB3BO1FJ8A=.B5#=+LJ0QIDTB9I><@6/2YLJ’ŒKKS7)=õ^&/7>,77V 8.C*GMN,-88(5P-5AO+t:#Q)8>H?Q(9333+N8V3.H!DUF!?0=0/LCU-5K@A%+/&%;!AI.$K39H2 ; @IY03"53:/7M2d]L;%%,D-?S(1 0Q?8 ü +#!2=,*%[ +WB*?@=-KB37(BEN47J66>R.#O92T=?4MMA6+L;)XL=Og-/O77÷X#;9Sd!`GJ EðAÿ &BT_-E;+,-Z6[.P6<@,@K%Q "2+,,,1 +WZ;+!!-3><H;6$?\P%2(10<U'BJ"C/=Y@/1.'JE55M-+B(EIF%6?`NI6 .G R@9?.@)Aj0?@AB@O[+;2 E\7:?O*#\%O':'B/B(PH6.E"H6,23)3-JB>8GŠˆb‚=FF\>O:E8Ew[n—£âæ-±•O.9L*158 H.,#AG"9@23,;;3DX-FJm@C:)CbCY%6)(O}4$%8"H,.(A÷4/M-ID@4+2:*<%9!GN +!0@HB>RF97W!@ñF$11111111 HfJ654@F26$0C,C), +.H/3 +/V/Z#+J<RD6"#6!'3D9A-F+8 +!#' * + 4HD 8'-þ-4Iy6@G51@%3T+ô.Yý!I+8!H@/@N!M4L4>'F:87/=<JA/8::=+'>L-C,.?5%5,0 40!*78=N+-CX(3-,WQ4)LL+>;;þER:Fb$1HB@85-7%)@ ]€D)05>M0)"6J($%?OU'H$BS*a?2")6;/**55f*4>,ò0L-K-/A+PV5 +LDa911111111111111111111111111111111111111119;,EH11111111`[5./=9LCLD,]q<a2J83BC$pF1111111111111111111111111111111111111111;>`^iGUF$>L<\?.W0C@@DojL-N GHc<*:;:/Aa_EPX5+S.R@ZR2T=+#<K873I08lT6'ETC*GI0:/4f&DSYV= $H9P?(S8F$n=5%*?Z9/S'C:76-=R6a26,,257>7.(3.+(A:0<C-$=DSC=,2*%$& ?Z$M` LYcG2H7H07#IQ%D 92F&` +)%43"üD<",499'G;+N-J7HC*8/-@7/.Xk"Aa=<$168F1D(:T1L-< Z<5&%0I7a< =C1V$CM>:?F?*?_G@(ø 'K<@:/45].9&@(dG%-8-:G;@Z8-C#&G24A63FLOL@? +7!ü])'JN7 þ.36A>*ôH30E#JGT=M%7#;W,c*2DB45FD)$0D;=61dSv7*,^8NH1Na$+D9<PL@2o-:! 87:EC :27-M/F9>:F56H</-_3 (NC3UZ@]6MFhT`ŽtqQ8xCQmxN|_”o”•ÖTöé:A9A#-6&B.-*8# 8S&I&5 *3OCTlJM[ZCJL+sYf03;E53(:2G7]Z+ E]9##5H6$2#.@102-0G5P;;, 4#4+P11111111O;`+bG%84DE Y%^23-D H:J><;4!@1H').FO#6@PL 5EJ75Y)Q"%(H(8 &=J!2# #;,#>?E-=6%($@6*)a+5E3Mñ0"<#;14W5 M0JL*:D0;"9:7""@ G(Yk/&>G/TED(^Y6B./8C\<* Y-1<9 '/F+\N*I122õ&A+D/0*$% Y7&)5"7CCB B&/,$4&=3B:450r=$IR;<$EJR797"7:?2;0AK) ):H*85IS2d-H%7.~^-,1111111111111111111111111111111111111111'?2A11111111>2*JI7!/(9K5HG-0.XJIVg:09b1111111111111111111111111111111111111111G21|DGE@Q@=C@'Y1U+T%;(=BE&@.9K<4KVe1<H:S@w,agbuIK20B@<G?H%B08>A3S''>*[@$4ÿ;6  .14(+[&$<O0(6?/5  C;LE:+D<F,!['E>@S6+42L5/Lò+G4`A+2-!45!&0$ '%0.2<5?jF"?=<Z"ONMN`E9D.1$2>253&4+4;<5:78,)(&* +ADE2C'3^$ @5#3;M4#7>W: +: +)?3300< $6[<&?9:%9o45'A$8Fyi.,!M4+1B$8)E#7%'(;:R0\@6)UW.4O&+P-2-:$?6/36[+>35)3=AÿWQN"h5KA"ÿ:>)H(-06*;434O%'H(7M<;#7)Dc<;7!-2:F?%!,9LS+1(=O< F-28DÿD @02'630)N3Ggÿ3/':9î)6L>#4Q)O0E?9.9%qr&@,0<5.>T4KPWG>G=pb4YcJ?oZ†¢Ãþ…³G8%0;aI24!2=&>;2.87CFAQNFu)2AAF8(YX[g>ZdltVY+<&:!.þ÷;Cþ+Y#û*G"4;CK!?#8 8R:7X?+3%'$$.>111111117.&.>C0M$)&P805<'"4EMcK'/-6Q)/9%5)û-$E"3A,F"L*Y)(/U)<JZ2D1F#VC)/4ô GOn'd!+îW,#&74'>:M+.8696.*R*Q9<U5)3E!'+C7-9=5EG=7D*JG4;Vh&"FFHE9;p@,K\G3LEdC9EU8AH,1)M+RWA)R/74E;y+T.3)3 ,%"C;B&LY#'+AB8IDI:'IAB%0F7B"24%(5;;6,7I   &4 !%:B3X2D62NFP '1111111111111111111111111111111111111111R*<A"U1111111174C0K40/?CNKU)8N:OW=A?ED?Q…1111111111111111111111111111111111111111eF-N:w8E36MB)DA9C&(D8/(;B-KWCN5 E(M7b7*OdYnZ@YMbGR-#+6-b/>H,BP;H95,JQ560:<";FBM7'(;E$4(<)BB@/:D<(L!>3;W$1ZV?67%'E!'MN6?/6/_4F0 )AZ*'T<Q+?='"5=0&6FN%O_5J#8?3Z'<$0RA"\Ad! #\=3)"8904*,8E<?!1 8V5k&53K($5$!F.9G>C@7S:"2*DW+HJ-'1X5/,?&3(=4 %*-$8 /'/2%*"(^-<R.$J E5U$;,69_-ú!D/G3<!)6('>H;C*7143AB+CP'ý/<P-JNI/3&S<2:*122F7*3 E3<'S*6P>!:<Z6&EM964-)ó.B,,7S=^,b &$TH>O3OTA&T?  1BI27C=%A/.#I'$ó:I7L$3>@:)=KR.,Q|sU QFTIhk—îüMÜái3)e)0(53 !5!-)A'0=(.j0%J*,GRFZDS +991*5 @E81F)"'G:d$(%&O:=';@<ó;@$sA-1p#6G>+7.7;VTE0!$\>011111111.B"$.#  +AO$6G1=Ù<HDüPLO+:#@*.>3+47/I!(0:c5< %M*''N 5+7);9'<1AY@0E&%DK,((:$'ý5\2>3&5*.'34.$0%?&66 &")43) ,7*5*:P):\ Kö:@0"&)7#<(*-9.5JDF1 3/C\-`8;ixHdkJ#B0T(78&'+-N/5(>8H59/3I<{[$'T$H=) + KRJ +d1+@.87"8A8AB((8.#'5+4)*7'GD388-/D&#)="2A <-7401111111111111111111111111111111111111111ML13.U11111111BD3,J,#7SJ/G<lF(4;4A9.QVGD91111111111111111111111111111111111111111U-;#J6î,5M +A@&./SûUO7_MCA'L%4</#+.6Y"CVkŠQdH@:)=D6A[Rs#"I4E@0WKC<@Z&?=@:?'6>Fþ(;G 5@"4"!*.-.9L'(616<],MT0*+3C''5GN1/1/? :K$!),7K3*)$ND2(8)%D'5AGW2\M&Y49/FA DM &@&7 DH7"U<[LT1P4<B!6"1 //(8)9IID+H<6O#-Q">#55J]~%;J0K75f.5%5,[>U@ +*G.G :+D:?3*M= AIJ95.H,4N0QAV"938!/9TI;7/\B58I@+ *`'O.HM7+D9</B&/.A2%* -A)4(*(17,)dA:.82@>&!("*)4".F3%IV:%"H&Z4UFdB[)ÿ'5)'S591(0IK06P$:úU*J5H1 +<3.8/I@b4(T#@R?(ZQgFdX]ssZÊÊNõ [45%2LT-2&:+VQ#P! 068!g<F+[;PN-"3/698((=+B(6(6H!DD&L151R'5'2. E'6C[7#) HD5~F8:7) +01F11111111.. 5"?D*HA=C8- +(7);L+/M6=6+@Y 5&'3J/@)@"%"G<HFKK'@$J895 #:1 '&;,'!*G'3 ,'74U752'&&%);66MB$29o 0JG_+&<D9B-+W"D"?72M/.-GND2(#8;4@0D5DB)‰|")ŽVlUA;7*c33="41MD$+ð6/+BO7+!EK1I]IE>*75<#/(,'57*&H 0'C[O(3I6=!8P.$&2-7K."A&&/%BS=Q%9::C2W.I1*31111111111111111111111111111111111111111MJIJN2+11111111*<EA>/M;21cG6S&'Z;F#3 <kH21111111111111111111111111111111111111111AB-$EN3U'V+1R9,*(>7)Aq4JGM]<M">4J #!5,B=L<9H7c-E)$A-Rp<K0TS3 (]&W–%*7M*)!?DOJA5G#:AC&!J/(8gG-K? 3'BU(541=G1=O$:.NJ$E92)D+(58<d??K*..->O 0&4644!=)S8>6=QU!57;^6(42.H.(G!;O,.>.LP6K.3>%'573-6&0E6GL<r4252>AZX8_iU$ +>+;-<U2N*$L00-S%KS1#,A,LI"!BDCN&"ED[N*=R/9 0D/C<C4F(AE68#;#)^"3E->N'=&!:eS?32!A3+/+03>*(.4X53(!= 6&4<?1L'2I3B>.?  22Q# !*,Q$6.%>+.-:<?GST1902Jò3>67%15#F84 0.;8@b#3#51)6==4,9>445@^:>,cWG]D\/G^¡ãrƒpt˜š¾ó}5Y +@ 6:2 +>=.:; =,3;5:68=)Hd<E,77[9-. K$& +?G .3<( +:7-%8(=3!H I2)3-,XQ"09. 1$G[8- ,XSXFEOø8P6711111111...H0F6C2C!* BB'Q/1 &8(+5(!J*8O)4&3s&[>9J83 %0CD!"'TD.HQ<+E;)#=-/EI"2 +DC.þ7 +%N% H5'.ø09)!, /$3(E3-ô@8#-)8,1A:)G7ïIA.d%CRMIBA6%&#MS FQC>>CT3A=3kÈéÊ„Z89&3^;#N0F @AG3;D/N@3R;$F0+&. BHuZ@<K<?F)@)3h"17/!0@#&;'T76$%::UT'(üIG?F>U-F3='<m#61111111111111111111111111111111111111111!28"),11111111KF&/9<Q(/LV9/i*IX>&5C6(A11111111111111111111111111111111111111117j(P+G0;r/3D?7 ."R?4+1I2<1>&;<)p$GF:>PZ=Tq<L8MHA;^>xT1)P' +44ndfg4:-;-'@",%280+;67-)=.[9&0EE()/8QM7!".J,H&'6T%BI + +B!5/)< <=)(=,(25)D:D4'6!!/EC÷I6%?09F/6+L)g0T*5:?&B10=L+Ti;@.N"C:;" *D18";), =16""FC;146LJ">*D:5:UB;"9C<`+A7D84 GEU:(4L?<ö>úG&>Ke9A0%8P)S5BÿE14:2*AI")0,c?5>:;;;!)'Q2*$0O$OF$+ *A'?%B'.5+>)%-0?732 ûí9+"61K..>0,0Na)7,3,M D*(:X/4I.C1 #<568,/÷C?-77A#<Q2*(E9T\e-6(09IEIN436>?c3C<$<9X2'B/OK'@bA[nмÒd\ƒwª¿Ùi½e êøG'748+%SH+3û.6D <51!3(,'@VB;(T2*(7 B?,)*2E +6@ (2$9[" H"þ5;'A>,854!*98<7=Rî"   ]8715*!&=11111111... -E"W6 DLB8--/!ùX8H213#.K J@ +)6G:m721(]G&15 N<!9,0X.!M1>)2 4.?6%8&*%05^;:*/DAU?12;4O1"7,J(A:U9Q& ).9)D0169F)*7- "Z44:='.G +A J183 (AX1³j ³ê ôâ¬A=T-;?&V5?/M$F$2);/#&+/+IAP $4%X@%!Q%DD@ï!(1&).-3 JBU<NSP<%@/9]~S"(ø)!M.;Nj!5*5 8C8G12L6%1111111111111111111111111111111111111111,4&11111111.#=0!.6E?570/- +)%F5+NNPHK-S1111111111111111111111111111111111111111:}bS2IO!()J>;:BF'!;>%/PYA*, &9G,691,(7DI>H=E9W8)JA-/*29-SO5:G/IS;;M%6(X2CH>ú-CB"B4=+JG;7!!1$40#8N; "96,10:L)Y31C5"û(O%**+%89W,)-%3"$T=HDC>.I/A"6#;^8;7 1ODR0/6&,/#0K#18""c>1#b8+,0÷FI)B&E)12BQM>*[ >=J; +7H5//!)@-(K0:%/ 7PG4#IL-$0%8= (<$.)G%'O?Q8#/0X*P 70>B4 .4$7C,+G-'.,;%b>%&u'D!CB2\5:G810)%g$S<L>QB,+:6E!=#>yP÷* E(&ö,5*6$;{~dW"L)&?(L62=.7@5'6 ,)51%E0L(&?1.6F:A)(8ù==,K1E3!6CW7,G$Q:@DCA1]47:$-O]e'6 :P64*#OBWGgV´hoCz½CÓ6 zAAC< +&FC; &D,, 3 U.IK&!ôå>N@ A!5@85?Ga*Z?LQ943206<9@ 5 .%".,; ÛúcU3*5)8!þ#^K&'7FUP0>5'U11111111....*(J&:%; MN96G43"B8N'5*#B&÷UF#IA*=,+-1"17L& öBý;,#501'/ 0(ÿ+ ,$% N3<4ð1&))÷ +0*0L4',8PM>2'4.3N<>'U3/2188@<-<,TX#;#)*($:971:L@a>H);s/\Q·@ÅÊ 9]J-?6ÿ.=BHOG3U(B%!%LXM'Y- <**D#B/34/2*+ >@S3-;h- Y(!OgB.\I+=9VC1!B* -IL+#>00+3 30I#"+11111111111111111111111111111111111111116DFB*ö11111111AV%@X0<7KX<R1 KXV,B=(d%W-.`1111111111111111111111111111111111111111H/@2)9(28,.S>>>F6A!D560 $"=H.2^/Q#RNR@AT#:KC&?H'^L+'!6)?8)$A=6N0A$77'I.* T06-EC4A7?4%.'3@0$;;6;KHI!:H%ú, -4_%0&3 "($'<=2-#18:\ &>43'03*:9-%F>O'31DL5A(9:, +P)$#SN:+7"^)BUA.6b4: F-$:?:*1CU<MJ5>0VM#6;z )[*%JM!/@@KM'6' $32+$;A.85E6?"ê55@320=@;/%"4.  !;: ,I#')-,3O_)Z,K33$-#&C+%H9J-0NL9 IG>V.òD,N?"?C52H(' ,-D7"O$5.%E:$5vL•ú—LG2 ;/<'@@!D$F_L=@>"D70/U4(a/66:+.N3C1TMBL$&9/T'5!%%*j+MoR79=S=JQ#6Q.$9BS?-cJ:#ƒ6I<aqxfožh‚ÁÀ=Ú ô&2I.M(8:=-255=,3% + ;;-JIM</+O+C%=+?Q;2)I'KIUYAXa0./+2-,7=<+<[A+R> 7E9 /4,961A[=+%=5$711111111.....G3BF*.5"4/<"2>BD+"%ü-'?:L GS ;)Ok..L() !ó 1 -<65-/2*+<C I8%47<=J-;-S,+"/8F#!)C.F"U+2A5DDN&6Cb",04-()"!"B2:"''2H' 2@6&'KC38FI&:3%/"?3C6C63&cë/ +Nå3pp-T',:E@CRB/3Q8.0 3'9,0O?*>>'g+0( -($ I!$2&ý2<+[D/!)9 2.A/ +;Tbý);--,\-<S397:3/; -111111111111111111111111111111111111111140 !+SQ111111114'4XF8SP<G&@:g[P2?N8H=W/&QF51111111111111111111111111111111111111111U,/?]7&)2B;F!@P4J2>(X?>-<>*./B:B4 3%%>,M&H`Ž_~Z[+-) 8"8N#L(6Q3W772((*@%/-7W?.9-gE?.=,<(0&183E"%(#-"Ò%D#5ý>9.ú" '.' +89C3þ=:BK:U[#JB?)8A85c-,WQA5EO),<D<@PKD0O);VröM2HN=BJ@2'%5G$(D5M<%'1D '4.7 JEQ'6/,B@%8AS>43N@80'H3!),-=*:/1&/?Qþ*M@%F%"G-63/!<6'J7!4(3n4740KGò//CDB:0?'1IDh8"F"P$=/)&#7-,1C5)8AP;=[C#8%+OB/7L`4*##Z9& ,8"K0/d)/)JR¬G•ÈzZO2120>5A*.? +F>/,@,#271NF<:9=D "?-;,@3U%H#/CA89""1+2I@F AH/P34FE`!M-IDF<2.9.*I7ko]DW’d\?n„Ö÷1«ö#%+Q0RM,P1S 679*G-7"0&-3ae:B?\%.=G5HYB)+3.&p˜x,58(F-"<;(&RD)Kõ4:C@() +I*$(:;"9_+-.(6L:#@11111111.....Q*8 (-N62%=:;9'$-A0Tý5ûF)B/L+$+*@ FC2 +291'*C(@,;=2!;91@/(h>+8$÷>=#1P4#A7K B1G 5= *_SC>:7DD-'#LNGL:/E!378_'-O&0 +$L;ÿ63b(;4'S; KC2bA/$!’ð#©4½£;268,=((C*\+.b1'&B,0SôB23:;9ôH:/7aH !K3/., 9C$ 116699c!0;7#!6'01K00.$)>8=b%O6BA?N1111111111111111111111111111111111111111O%2<I011111111I9TA%MDF9cP;>88"=vNE3!A_1111111111111111111111111111111111111111.HEN9B ,.,D +3>)R'8J\2C-?&?&3+-eO'X41*R“lGT7O F)'"%,L/5@Rßg$,62+D5+.:05F4<551,V11,/(7H$<Y0-$JOFú-?E,2G( + :H+9 =W$"ü7GE68<A+""(î?L60E'>A\Vi59".#FOkHO_/91: #)(3;W÷8 D?0;>0:LI6(7õ+0775:$( NG#R53a +L7+IF9D(>2!4+K7(B8n1%Dk%bP*('7C*,:&S)=&0)DC)(/$A#&D@800G75.1<1"C[%B*"Q0XA: )J3C.>7-:0S#S$2=2:ICMa3DGõ.4+<:<05C5F('&{»Áp•‹nNC@82L2._7SQ6R/A;'8>91,/#<&23Y/M<D.g6J2e.Z/ûx 1+,'[KG.SN+1b379N9D#$E./+"D-D-J@OS3d4eVCHQyw¡¬¼"ढ:IKI:pQC"5Ha98B 6;3Iò ';6-%R1'9%0=*/4òI 4`Z½"ú~\:#2F))>)2$D7>41*9=7D0)15,<:)T >7@211111111......!B&4#6ü19=O<",.O@ ;5)&A'0;DE-07..(!%1'!1/k7/R!?(L-*=/D &3hB&%*&A=?,=I)1)*+P6XKH.%S= 9'!&9+74C=Jÿ(=2&@;!û),,h IM--P:-"6))N91&,I53T`!*E  +8‘Ȫ‹,P$+>(29367:231..42A(%AIj)C7OT!21)=&FX1KEYIQM;YG+#)P3?@+19:M.3.0-3+ > 773#p,0< >I3;5A"<*[I1111111111111111111111111111111111111111NAaA'$111111110""ý<=E:'H 7L,I%TE5.,:V2U>E1111111111111111111111111111111111111111K$)+s(85&,B E7>hm}7%þ2F[8,1<O1+8XK?%Il5\D< +#D,P!.B8H.?N=3CN97'V5. ="&#1:$'a$IB*!.@&R@!%0-`4F0U("L%,7KU;5LG"GG0A; ;dC., ,B949*3$9K9/0D18^H=(G@>/,T=P0<2%!L%09G(":'n6THC7DD&.W+ó%3+='B95=9T*51E5 5+"?#@JK?E6GB3CN/'#7="3=<@8D544I*)@LJ-O>77*  +;6&;<D#%'$-M#!/KD.- :'J%\/:3'+!G5)3K*D"H)-(,2??++0\-=FAK#!3 "'J)K!Cû((, :I3QsÝ‘LI6G]>/U%36"(49sBIHU@H8'!3$./"76IT(*27Z- k,*)0'T,>)R'2 C-CCQ-  J3IG4+NLJD;9A[;E0ppY]Žcu˜à•ùù28)*ZEf8v7 + R?&91#Q>%#2%#(&))P%P.-2 -@0Yc`iÝXO&!>QN@E3:G,,;;>"ûM6 +*8&#,%L%U'2/5&U#\0,11111111......+=W$S&&=#ô"=ö!N ?4L-+?J)_+*E)7hU>4.E=6_CF?& c18$+06N/W<HB;:LAA40$+8/: 3_3P6:05FL +/I0<4,K[ýAE7:= *#6. S+9?3ü=31.#@@<"2&:6&<>;AD.;+CO/ %?1V7>gLT^T;?DA /"6<11+@3H:-;;-=@%/SJ-8/7:I; "")9535;E3k%A090EW Dr*Cÿ(;*üA%=9=@".Cþ"3;&D<6))1111111111111111111111111111111111111111^3/a=.111111117N]8.RUBfC-)(#3;E<F>'327@#MTV1111111111111111111111111111111111111111?&[gB;+GLA:NB7%2M$}vX$.9\QP"58v#$'7/f"X-,B>6.170;( %A92I,./UAAG&-RJ8184-I$;,>3 26-,0>E(AS>6(*WBOGC8A;K1(DB$4'.E/%4CFD@#R'AJ6A4B" ,4(?) (#=02;$M=,03!JOUK5&O,R@J/C12TD6-.G6?+):<4:&=*!MS,.*0(C[ &-E%I`B(FS/5 +U6 6\õT;4$"64D8*<7@< C8J-e 65JEBNP@29+2D96(=O*&)(>+- b@3-,0BNRP-[D:IQG*t%)E7/J:L2819B 6H>/;)B3I_>AS@=,DI7=:+)8%1:(; -Nru4+gEWVYQEW=6A#F0 p/6#N&:5P<\%<+$?a;])D:3%)/',A?5*9/#>*23&,N+BF(E.U?bG8!25_[`5DN.E<b{³Üç|Òâ,<c629tw²1KU>";ùDS$ (7 : :$"(#f?;$ ,D>*@N*,#BJbùG:ìz8R- .-K1<.(8$^-8JL49 c'C<6RO54:#76E?'*,,,-------.....÷ 7(.87,"9.143$C;4C!FóR&R#9,,4H3.:6:GH0,P%80$%%:$$M !$GK&'#C8-O.1+8;Dý*F6S26-S(H(41,4!/+F$F"%,,%>5#  F.L+)67,/D(7ð*B78%%J ?$#4E5+KG1G^N$(:G%E.,>/ú6<55KG7RR ;5O;>)F:!,VD5F.%HG!=O$\649R$6e;*/FO]::A;$0>8-##'-D(IG8)*S BH'?.1111111111111111111111111111111111111111H),0E111111111UA4B1=VDL;&:&S:(-WUC:0FI?A?1111111111111111111111111111111111111111HLRX$+")7U(F3=<;J .Yjh89ø)18-I5>%;) ."-%"2?!0(V# L +?>#-Y**4P(,MN7)$ò(9;@G'>/:)9,J75'<+$,8<3<ME,,F8Lh_*/*S),*-?a95p))$9!8*TK-$4"J,A MC,K /9-7J%#-.M!;9&=6C"C8R5EN!Q#4$#J5+ÿL!)+ ?+=#C;0XC,> 3NúF( +'-?)<+4J3,_55(4$(C(;8,'??U9?B#`@ T77í-.%L:%$#? 0'DLD;%%2S/)QR#D%6QOc>6P' .8m"0KY:LUG<qN+<S&:G>BE;SFP,6?'4AFSNG9 8.(*[ '9Y>5%2/'G(>BN:32)S2'Y1S?-g+=F)C2W8ü%D--T> T:; =fHH%X7;'U.e5)D%+1I,%8+!0Y824[A1L(2Pú<1,M71)E,5GJCC<.H8D/@F_vCl”Üòù 5b2A@MnOw<T508>6;;+H> +,K ø"=6++,2(Q IM'& ??Š–W!63L;(>;V2KZBG8 3#(Lp21$+'2 5#;?),,,,------.....UC20("$> 6 .4<B21!=&'C94<4'(FbQ3.G7%;4%+53- 2C/bH-S6,b )/& 7?6]B36,/4+*:TJI1 /M<P:+8:4 2SJM3-E($üD.ñL22-A=7I[*7S0!(+=K%CN ->@.^R&KZ0R&;*3#B79/F  ]"(5=6&E+@!72;A'I7P9$@*?/T3^N2E696F)76;=B?$>0 H $(&0[=$4(:+3$&J$1S8=-7A1/&%%-7)7+6I,1111111111111111111111111111111111111111BIk* 11111111*:7Uƒ|eS+P(GB65FEB. +A.'NDTAE1111111111111111111111111111111111111111QT/GG-,2B14 G@8POHVKEU0;Y/&-*x8øM645;'*C38>;,,:ý=ü#90)A*]ý0G@Oh-?A324D.TB)"+LK&)C%û:Y&<$V27=rhE-6<#<5Z+ 4CM6,,>9#H\W.8C +.1/70,1þ45.V4+íP112Zb=:  E'B8N%F;D'69+JBTAû ';$47G+,HDPGa.'J-/QF#4*DYQX~•‘2*U6E)5G=16HTL(:*4"3B: )M&8öI-6<EDJ#03F? N44@61=/5" ?.61$-!I7.C[e,497M€?&H\wX1;6IXK>8!<6>"%$ U-TB<.05B!- K$CDNXlH9>;ÿW'5; 6) B?=5K3%M$4=R60=:(!û1@D@*CQ 6A*_H3DX3d/B10 G6KHZR),5 x3JXF2BG/.4(<FS:&F90B/*','d:\MESGB8T$0D¡nb4~ÍÒÊìÀê99'& +]5y_L=1;7),@%<A%F')+?0H1ô(1a6(@2ú)+?+:>]uB>,1I(8%3.D;<#F/4]C'F3&%b,9#>&)K5,,,,,------....../DJ:.J$à2Z&V."E0&*673e<P"&CW9þ"#=,D@W(,)L4$CJGþ* ='2&- %,\/'.2,0 CL4-ý/'+6=821S$&A/)9G2 3VD 3=*&A<$&:.4'A10b(9>:,AP'%)$,1W*1=&30.D2@!@'&1Q)3.57EQ$:(.) 5*P+'$ ?/!!%>'--(V-3<"1*</&%1*&#3,<"],'%S=<=,ø4R,3-C;FC)6AD,`6& ;.A5?'1111111111111111111111111111111111111111BEt>$'11111111KIufkG1$>8<]#07MW-7]Pp.L/1111111111111111111111111111111111111111=+= ,<+3A9EF HO9K-/$1&B1X;.4\8D`57?^+J5/ +4N?I13+.FZ,61+I.7;,*=IDY3b ?%8%3*C +L0()9)>4M9JGH/F;02)8+>8ON)/N=&CF+IjQ`;A k762!öHRD( $,8-'1;Q $GL)+M9%DF(=&E <?S,+2+;*%(*0;,UWJDE%Y7:TB*9KQ-XC16C0*17-#BM=tÏöä~tEOA`7TZ@BK?9B= =)u>,9+$>>J24-Q002!(U'=: +>) WP,*a%(ö-#8;DS $2'%7; H#6)5G5]3cF1S.I)39MJV[T>?):960H„‚O/"!C36 5IC#8B¢8x]5/= +1K;*1!< 8[0'&*e8N24!E->S2-C!P&Y.!D&O>?04I:;3?K*!T*(26J?,þd/!14_8/E0cE 49J"I=%X$5I+(+L9:-=w$!*5/E:IIBLjc™—¹·œÇ½rRBE%.1C@@T?C+G\%B** w3;N()APLUA6+,-I5 +!16R:9`7B?E08NG;&!9Jr)j.1K9',-  %\W7%U!N=;#v$,,,,,------......5%D-<R-,-EF64 $,@E-Eû[4C$I51,(0 /G"%%*I5<ÿ281=17<3&PC,4*4AbA6@%-)268M@& -4PQ 459<g2D/"J/(F6>C*':-+2A6A:+)'0CL'!3-;(A I'!.E?2:"0';*R<A4@N*K $T3KJ-C(B!59QT71F+H#?-/:L0-%))QC91W*9,G9527K:E6"'`$ 1,L)CC9'8M0.4 ,+S0 OJ&#8:C"M//81111111111111111111111111111111111111111;1;>>11111111#@I<?td[<T,H+3A7C aA07^#@VCKC11111111111111111111111111111111111111117Q21[$6?=I3A3?-D?,Eb$=G(@E1NN.'%F6F.P-0 7$1,9K'#K3DKCa12G;3QIF.þÿ!</ D!+-C2%ö:AK`5@A@'R'S:*I20N!+k~‡vd3G $ /B-VQ 12"<2H+=%;&'-;).:%N)#1D0,W1R3P5E;UI)/?@A,:h;m/bD1;(K%-5&'+,6"&T\`bTªT+cG GTA619=E0%:3*EB&C?J=Y2=A*Y-<:-+_&:;+`*>D,:'<82K[g!-/)C6R;;:,5B4MSPb&8J1,b $:F4M, %Z)=4Ñ §\,K.$)0SPAªÃjl*LX886Z; 01!>JS?\"G@? L@3T1?'B#%I&D6"8ÿp?5 0a4AQ]PB@)EF.L<8k#0!J D&=8 =!B O@)="V^'%?YG+B1IA/JFBA`%?:.CUŠ^®ˆW{z„„š’*!0',9H 6VN5?L:G./V$5 KýN"= G+8#7;KA'!9C71?5sN(;::#-4IL,J;M?4'.G1úC6+6H7:$/S<(1(:;41 N-@2U%,,,,,-------.....K(=7*">%N2'*6>G2*0B24.H)OO"=+0//8;58#%S>#Iû6/I8I)O29'K3$(A"C?.7-7(<A&3#F9X,O,.V3U'&3 UA!1@ÿ++÷6+'!&DD.C<46,I)-%J_2.90K9Q/H$v??XB=@m\2iJN"RA&‹D% +B):0õFI&ðFIZM51(*4BD3CF ?:83- 5!6('!:283;8J, G(E-*K!6GE&8''7I*%1)GA(;@5*ü7+(6 A1<34ûFC66J1111111111111111111111111111111111111111(%MG$0/111111114:=:I(49O!@C2@+!5!>@8X@b/,1111111111111111111111111111111111111111+L<YC#B"@HBFG?,;6J@.$&Y7a J'*J1B($)P.V%"9S+P_75#T !+(<%;(+=,>"8#GKL6IP H!*.&/ .4S5#3J(+&A3 6+3,#E8'@D'$.Kxr–—s-PQAG'# 1<""@%c+3I_:$5ý%C/!'X>9'*  3;:H4T#5/9T"+AB)+25? ,/N))*#=-"7FEFG8(82):)BF;=Q{¢•çòëÕ[Q(1>H2„MOEf;.yL_U)"&$GE2.B5> .B.>4;8APL@4+J3&FU2>-4(5J20 5M=9+'7?GD3G-# +-MEþ<D]&;! %0)>ë¢'ªV?+,=$@#;;‘ÍÊ}("/_3<5=:%S-9P (#CM[5R7(NK)GBEE 8,R64%3'N@B#0 '7T,2$@ñW"2<501H?= 725Z</T:K?<RILFG^<R-J1DDE9-YY::i=†|šgXVfx„'HJEJ2P2?6@SH4)4"B99GI1>P!$K?-157 +$A/C#87JO1M-!#‚/JL5 3,I]<eg>><*J,M/'H?1?E*"Z<R&,W0+$,,,,,,,,------.....P53B );=,c:)$$==4<+!S'1-<<U((_K'9=9N,-R3'$7"!%M _1FKO*(3>%BA,a<I:B/C/B70!-*VWK%(=2*>4!8%* J2>)C%Z$ @F/54:C)W:B)A)H$4[D%HK;##-KA:;J4XDW\MD.2?1[B2.F,2#-0.+3;BG8E,!BV1-,/6?PY' ,.5.<P/O+*21 5<F35A9Mÿ @.@7Y(>/.E0- ,L& 8.<ô*1111111111111111111111111111111111111111CLZ'@!C11111111.E)8E,VJ8Xp208Ku"O/Q'<3DC?G1111111111111111111111111111111111111111##FLM0Q1;#4*-@<8L5xL&,42N8F.4N=@K <,+($:2H?b,C34-K 97: +C@ $;5'"Z9F7"V.FD&3#3'-J3=S?>VK"%!=7*4#I&59:K/54DdaUVO<.8*A,B/%H5E(6@.F)ó] S.K,09*DKEIL:>0.%&,=2>K-7R"+:6(.I!*#31LH 2-6"+ 5V/$Q-/.I10ƒ4*B2+(>B"G=d>@ R”oST]@pv~½·…‡T'PR4,-7>$,E?+/$M1=6FEI%K .5BBH,+E1 "*7'0IGX&#30RsD3)=IB3(8567'-T]&';E;,,6F?.<72?^4>"wîcf+4?BdH. !/B¡sf&$/A716%ú<b!(*0$2B 8$>E=D&]2Pþ)(;I)EM%*-08!HBH3RC533 (:+'!)*GL'P@,(:#,>,F8HJB$B?7>3$*',5R.HVFG8ZNH*FlVgOchrNrKY—jZ",õ9+HI =TB("J]ö7(B6'6#EGDVTJ&A$ "i"$ +,/:A#/,O5Y.+$@.=st”M='-*D3$A ,&]O32B[#L474?,,,,,,------.....;<-,B8*. % (!)<2$EI(a+4D%"4747'.*65//õ)!3 #%#)=7AB;D11*=;:;D4*KL-TA6TTL4$\ Q:/''4'J).6O C7ë9EK%(5@"$0D" +0/GT$5BS$8 #25T<LIG@&`:].N9T#PM!>+;6{0>7=4#*GJ956F@3!EE.G6JD.& @('<;0--9J$L1'1(@.UF9ø=G#T6/8R'<,Q +84,\7 +>"@<D+7A61S+4&5G111111111111111111111111111111111111111185T111111119"-6+>HP ;-B0R/55")BN6L77/9.X1111111111111111111111111111111111111111F4:R: )$FDE#^@C.(5*()4û79e)F>';2<L'(.I7#Z*;CHü5O $P!C6K%<(G/("4EFD L1PH&5G9L5B&M=--NB+&0(5#>'O/ L948#965+=@dIVP`oT-N)[!+M-#=,upLB O7a4G*: &!V:3*2=j(23  +A9K 3/0*=@=4+M90"D+0K3I0"L))W'0;+.hQ":6G2,6/%7=!aÔÃÕXNO ;Žx T.š÷¤UG.,OiH(/H8R.N/8*C0H*<;S)/P9+G*Dï/?:G!?1*.M:*= +> /A:I8j@J)d?+P+I&<5/- 5u5T;0@ZrfSI/9D <4"2Hd"7/V;M)$=+6#2&G?/>&@3%L:3+IJ9/'.:D4:-GA;@6MV (;&i&<4@7AO)/6*Th24:a:S?,"*E 8##2,/::YO>7&?3PMû;,DA(1D:>93/W>^X›[^o5rW/yZb9 -8H*0 E?7a6%=') ),,H,5*'1V>;J4! 8RE&#2ÿGê-D;:B*F ,M&[Q.F^A#%$1%4 >1#@,U,&>;64(`D=S@)*TB+,,,,,,------......K72$$&(;<(="M<&2DDH31GF=74&Q?'3! f',V&8-*G+2 .72Vc A;;2IL'1'ÿ?;KC-%2'9"&Wh[''X]) 2(;G9+I'91M)"LQ6.1Jÿ1/=2M6;%Q#&&&752?(>%"*òS@,!+?;^=0=G@32g-$T3@ <%E'1 BL0M/1:+P.2K5,BL:"!;$3& >"5VEH7;:+3$,3K5D5.%:+U@5C(V0459K0" 7< ê:--?R,11111111111111111111111111111111111111119H1;Q11111111A #.#* 6N=AW631Y'A! [GCHPF31111111111111111111111111111111111111111D4GB!=2 9}G:76 DBQ89AD&''sUJ:6#;N\.J0@;mZ+-09! '1 MC1*A#E%Z-1ý(!('A1Š*7 !D/:,;B0J).?5G-û.4:)@:%Xƒƒ>N(/B!`IP-*coxX=-(&6)QA3V('??99(!7dG!(4E/ø.;8Ie2E!800+ ; KI.u? 3"74<78-':8T*BQ*N'CO?<W'`TYyvWTe95u‘§ å‡ +|zöy><2I9IFB7O67%=56$<09;-AA^2IU/B:22,-]A34(HA59&"7û.# ZG6/B08"!A(E< 5&'(7.<T),+3IH<?d^"*k4 <'JBC1$".0t)hE5B?&'A6-+%<-!X3@>"2(*&.K&73:7>2!5H2WJ5:56;)??342&LYP<[c>3 A D?a98<þ437E[ # +!F40'AHL/0#)v<AA/<.EIITWb<KZIKhE`|ePCB2*++?JH-N2*AMD/EX(:4 ,)D 6. !YX0(3:?HW)<3M!:=64J!M"180Pø)F!LS$..S@-B04R˜„N,2- +49/H4+,,,,,,-------.....:V0,2#E7<,*$7K%44=+ ".&.CJ8.%4RI)3m(J"6T 8?'2.!4)9@J.‰:U?'$+ 0U;&L)%F83F:F2@%+J)6W'(=2KD?# .A;,0P34*"2729$9J@4=&% 'èGJ$49/N';)%K$<(71-(R&JL-==A$SAZþ02Q6(?Q08H3-@18/G/D1&>/ë 1,= 6,/64( B%>C4AH6D<B&!')B(::# ,!>?W(6$JL A#F1PA9".8-1111111111111111111111111111111111111111 F5:+'"11111111j.!)O#(;aV,9/0+8Cl7E5P$J1111111111111111111111111111111111111111($bI9+.3D%9O9[9:,EŠX6&;DQí,86AA/("5=J&54& 6B1+,90?(bY,9T@A,!:7*25)!J6KW/.7(Y&&)(&Dd->316;.30'-.,#Aq ÛD,-_Y "-M8B"BtŸrˆ+"*F&1 T'"%K'8K!"b$%>+'N&%A9J-4$G,.VúG*$' (TC'EVc,9<9L65K7&06E-8.EMjFU3J]`Dœ· c ‡*É" +¸áÇ_O0.>2666'F804÷jN'.(*> G>"L-%O() .3:4ý>$7ðL)$3#ü !@C_%LBJ%% -`IFAC4%?!<U' L3' &D&0..Tn82/ DBM9<@J":@P6;5%V37$;G@@+û5-$$,#+),"%#2:%.%+?22.3H;B)1!'F<'4/-#*7?eV*Z.G;K@N'M:5&%U /c/%&O2X)=AZ/]#.WBEI .o>YdL1+@T%y6V_:ˆF, 0 A:<-!=;5*1<@+, =Q37".L+$7 QE#  A82(!'T52 =3%?[YR67(#3L%,:!-P2"\´ÚÓ˜,e;,$L3K:.J+,,,,,,,------.....8/YaEV6 ü.7M%,I*6*DúC ;:7;4)* =:  ?B*QGY*D\P#@I C=DRJTQ$)o;-I5@EC#03P-,<!CV=F&]5/?5P7 :)T541A61/47@6%5 $0@CNL >E8EY<-8'6$!(Oo[385>637s&.?@F@&IHcJ+G,G3</.HU&Fn\A DP3HAI1-83_#'L"$'].DQC*O4?/>3e>A>4+&X-*%-=!AI5=f,UGè9#),+2&+K1K-1 2+>2@/9999999999999999999),0P?@N1&Mc#!8R!E8:=111111111,d===1>;Y%?FDETRJ$DAM;B_!1'@Dø?.V,'WN49M!WIKfNj:A]2/=":L'@7MZD=>`?8$54FT+.D0053YS%*H"75@N85U%""B87H <Qì5=M=\FO-$ +:-7\"3HOCI)9H"(@)2KM* UDO2%B9344 8);+"0BG(^B+26)87V34;/^{#!³¡<=E *66O>HAN5]L):C/)-'*2P%A7#-(  :!ø +; :$!&*7L9)>4@Ce>#0:EW'"H/>'7L%(P%&,0-)6ûTF;`0#?C6ZR]GK*VUPNuúõý15?,žÂ»lqLQ0)/.#:!B0#"J#"%8A9D!"I2BAF4.1&&:?^7/+a 8E-F" 090':.B2(5,@#>51G4O13&H8GF +$Q>?$+RM9*B ;2.L.=;</S 04,H=4j$.IPQF BU:QS2W''$II;7<3P32;,OER2?$M&%+;H9 )1Z=- +),I/S(0I("34B2!F1(8M6<-!8X1c+%?,- c +.(E[:=7`G974r]4=6ID-R\NNzK@E"(H-(4 9!Y.&/-7O8D8.3IEE=)&X',80#>*3( !D&0G)Y$E(IDVB$8#"607_mµ9(é’I%3&;.9,F#)/+,,,,,,,------.....eBJFV46P:*#ZQ.úÿ6,F- % +?8:Có4>F.4X;%P86Qc!"?VQF*S3'&3_sLf:[#=) 7KI 9eH4FcP$&>S8=)% 1/16MQ$%@(K@/O P>#3BQ 1L=29,13*;!&5/bPE<,C% 8`=[>(E(M /80(:S88(*LN}Xa;#%<*Y7>AH$3%"A@^U.8?pX^P!1/H'9. -(=+3')6011A2';$ê.D$ * )''è6$G?<4)33&13M7.6'4!J/Hì3;6BQk9999999999999999999C-;::Hu'C/E:K2-þA'11111111LAK;"&A<%::h&C?[IG*UFM*%6Z4[LG"yiA7Ol-/43;IB)6-*72*29+KL=GU;jlM19U\-1(1'$+M*N>,6$MB();:SO&*#B-.80!6C/;'"A8AR,%;K..EHL]iB?;65!!0O+*!;*=7;"-**MRG%67W'=03!*CJ#-> 62C1$#2*=(g'7aµè–HP(H=ïL   'E  4]D[M3(,9!>1*/=L*& $(ÿ;'4+88,B) +/79 ;MRQ)0!%$$*.AO4A+@2 99,1r(/*=7?T%@9<V]c~[vOGA4:hªˆ²'Ä4Ž"r úÊäž"&4D75Y#.g:DC'5U6.(+3! &*6R'7-&4)4+;136?0C32G&!0 /'G65,/868,-9G= I8/;5D,5E:ZO3-,UK5C-(J6>êPJ8<"<F#@ !)AFI&-K#:D<m 0KV5Je> $;$8$;*%H2@<u?/A?FWB7!-4'3&#473\J!C"X:./=6H8&':? 4]2 /5=A#*"!= ,8HC,<#/:#FE'>9%NDC7=Tp\^CkbzI)b*#?85&LH<&OC7JJJ.<0 (66'O- )980%O4KD55'B4!'(1&K)C/13` +9(<3ˆB. E0\><vb¶ˆê^¡pF70 @EF4#3H@0++,,,,,,------.....4]HI+1&&*>2<M?C4.&6)+#%#23.=?:g:+ h`‚^):a;8>c7FA O ;8OVDD ()-C?EI=^% =1T3Q=51$K- #P<!J46'5%S.& $84SC8K&'O4F7+5'20,HA4/j+9! ":$"BT2C M@$/B1>3iGKxa! F,%>5_K86[2.B{‰C?1#, 8;(!-'"$ P?=<-FCB/@D0 6!J3(?*0$'*4E1M:07G6G3W*C78N7!>/U%*;&,FïFSO/3::::::::::9999999995#667H1W)%9?&^D<FK7 11111111<AF=<08;(-r4F3,=NV8I.2A( :-GIgT+5AU=PUCC[-TK8X5lTDG%*V8)MJ5…W>aU9J?>eGL:576P@8# F#>84?0-38H,7KX,:.F^OJaOTO:4;*%!X6?*^P=D%!C&&@  ,#0\@+F:=$)@30]=.8>@% 1>*<$& "[$3>Q"IS@MIkRHJ042B:C/S-HKK^/F=BAD6c+BV:M>+>5:!::G)=4#<4+2?>7 H3(X3J +W@45!*)287%A'<1.GE$@!ML38Bï5H!(O)47qƒj}‡zPLbyNW¹Ð /Nz’<“TY^1Mb M>5C-]<=%[<:73<.;/c93XQ@!<.5H$K#[(!+84%2? 1@2FD;=T,-V5:V2':FBVG, 5Sa$U)$aU@2#2038*62::<*?> E E):*1$3),3@5þF\:1]M96LQ85MM: >G<B*N4 #"0;C'- B/OT"PE+=$D+aH.[@2=*:B-*K&-1C?Rü+DDN*GQLJ_C5ø+=[,'<3eDcq'JK?/;]'C@, ++EDo=/=(<b)?!HIK0<Q>)J9&16;A'A7/R$3!4O&;?4&J 9$!8*74C2@F=%?{2(&D&1>>DN±oŽŠÜfA%!LAMC3HG++,,,,,,------.....a8eX>;BI T8>/F1O/I )0?(#M318/:3I@iZiQ3BS<BO9,,$(A ó06),"KCE50/.8[%CY"3D!06F@[=@ (:FS(Q#&;J+ +*'/*+.:R(S3cEQI$(*5;5L>:0UG97>2/&%AT6OCOJNmcR2;0p %B&)/+'C.F›†jN.+N*E=E:&4RK<T%49J'5$Z".nL>X6S+`!6 4%!(Jø2'!SFK<$AE*3õ#:=6:T*A*ü#&OTFC::::::::::::::::::::[%-=_1<Q4O<G D9F011111111+3/0>@7FB0=9O(,nHCX*">>.58AK>4A.V=ESME:8†0GOl?IDD@5-$$ZP 99ZOK)J0<N1S!()Wí>(!#A42>7.:1G(11G866&3/CII'AHO23D80(3DJX%)8#@4!5+3'!Xû/ BA5*0&;/K,>A*@:;/J(A'6*& )ú5>$ ,J$D+YM;#/R%B#;7 'O/DVFlzG/V*$$):CA(B RAY0NU<=% 2C=);++#PJ + QG&8.`10E^>7AQ415Z/A=,”LL|Pcz=/Nk|n}ë¹XÑˡЄ<8`?B $2(T)a0+Z,3(ô2!/!GC7". /#=:):%6;-)-'K8G!4A7G14324)`A*74>F<0,2>k#BfEg#"="(01,+;&#6m=GESM<OB-8/3@!0ø?/)=h#=M_9b=)(/(RGRIs36;5 +G<-(CY1,$Oý8=*A1J0GLD7!F=2^P*W^[> P,<)*9$A$P +F%2c+8N514L1<@@RI2hXJ7>KcG>LDqXb11MBPô"@306,_[).C'(ST/`@J.@.%$8 *%3+&/"Y;b247!GG93M5B>*aSJD6"3 G@Z,* 3QÑqíC9$,?6AU2."3(++,,,,,,-------....]gƒr{9=A6'17?ý%63?A=3A11."3 P+O@(1,UM8I69SPII5 +  @)`8,=;þR701,=5:p$WVDI36,:H  , 7*<TA46I<-2.J(&>+A!)3%.07</($,3@:'A3)9+55eY1A N>FCG;WE,+ ]?*JZ=@;VF$*?)'3`.#6@?4"&KC5g‚MO=:1FS2*14*;%07>[2?;DJ&2/,!"5"LI8-DF@ >#;OL +E1=%(HH6".+ =7^ * "Y+D%,%/:::::::::::::::::::655.%/C)5MK0K33K;111111118.(%QIQ(5G*;?2B"/NNR,;F459HHF4%W)>/4;R/Z.$>D>5'ML8H$%(K+P8(PRmFQXJ9A CG<42$DE</FC6*1*q9!8+:=?W/A,COO/U<B?OW181/PZ6:9A=@5H0E"U\( @6J,.8$%B&M4#`4H9K6-70./^[*@ýNIJ;C6F=a4D*(=0EA>&E#þ(*Z<66`lpK/7H#>!@0H-@=!1ý$ú+-,$%EH;]<9g/G8P68<X1 P!_BNZG3'/&:0, +9*k/$$=E\gR†DS+ˆ;B4QcŽÔ÷¯q_O5-);5=+c&2AQ$2A'/? \_): +1=-.7F*GM/!889))I!6C+%-81 0#'P:2@A7*_);_9G@jRS4&LN-?&"M%1)Q"&72&!>% .%4(;)785-M.EB=jW[s5H0G2,`A=7+@Pý)3D.*,;14T =N7V*+3P></+95<(#@ 7?C1/3;`A@>4-%J +@M>4/=20+O@RsXYQQIF?/FP%0gD/PdQ=SC _?MDN?0ñ4 5/%e1*?C$SF? =3@'C@G+&!+;EÿKø#A@$)H+Dð1/7(M@F1A:6)'!K%42;Z¦·õ¼Fl 90!' ,#((++,,,,,,,------....*HH%U06+&7I,<*P@50>/6" J8D21'@TA;$5@ 9E (:H,b93P,C*c0T6G!,Q? 0/1CA=3KB(,8…b?26)2*:17+30D 06('C2 8$ù1)!/= ý!4QN*D;;&4ø<(20$IwVOA5D9.RZþ(>'E*E$6(CB/47&h:=I0B+?;#I( h44EpLK:I (32'R !D;8PH- B/(;E3/ 6/+81`! +;.>:CDJ'W447&6H+,"4-8%=7"9->NSE>:TC1%-:::::::::::::6:::::EQ82B5:F!P*W?7 &=11111111//2$0FNH-]W%W'*rVZaBG4H>%3OAA],/-d<?=YWh4n@><#!G iWH?a)6#FJ;XFG.Z>8/=@)&+V#L+CG--2'6=,>*FO1!$0h1+,G!#2RS_[7, A "g#E.@T;A0@E@8/k4  1T[.%0$40#:B8+<1N:Y4?-3%%)C9@L;GC4HóE=.!8B:*(3TG+TKh8a2"A>1 b(??4)15*&2;79>$!+4A"8"&CB%UK&?>GE7-5;D4#A+&Z: 6úA:;:3K6/B(A+MPn;6I^D6JY˜v°œLgRJ;"VP,H+g%//V2L;#A="=,.2;&4J-Q?-0'dO<L* +-);>YT{B=47 +5'8:77F^3&( --*2,KR)%8:E2dOEJ4%'R"H!A4";%BF!8:-7$3F$;<51`$GCT:3_]Y)6).(Id?+JU<% +A=C6+]%6:97B6P8OA-*DG/E:)PXP@#V`1'Z')-/&?$56;.M1SY!=@"-:I!?-8F:8AoKhZCHL0J7R=fGaUQ@MYSD^3?8EW!<6F#*8(<3OS5*./D@ 53.-Q'$<B5-A#I.6+6;752" ö+K(&A.74?#G,2I2*6B4öM@4iyhi:J;7 8/<1$+++,,,,,,------....9JT4?08!#=( NNC+5G*4/:JM @5G"3A! )S8 5j$"-,UW7I20(2# 4&8*ðN2 @^hS P8%BM8%'&0R-%?!65(% +G.>ý1ò*ó)-K;8.-8:ú5X#( DJ[mW3BR[!5QO=24Z9  +AiHV&8 A ++ACA<?''A&2(2$+.2,\<;C&/ D-'C32. #<gB,M2A 0?*())L:F<+;-8 ;AC0' 4:CO 8' +Kø:3'cF4 8UC(+òBB>-:::::::::::76665:::OZ7AC:&+*?9K2;*F(f62K11111111,P$F1"565P/gB}XZ %H$1W'qC<=#S</1%STG*nD0HpBU(@0/&$N4$?5G@1gH?R8(?64B  T].K:$K)<F[?7%*>;W71U"5M.:M7$*92:A=)B'5+9O4i-4#RCBAi?'?LT4.:(. 6P@;C&)'B65:@8:(J%J?B%+#$4 A/ (lK@8@p'EB/,1*O(;:H"O@;04'"VGYW:90IQ[. &>v;7  (8$%7 "1.! 30 'V0 $5.û:3C8JE+-:*"&9]0C'9 <:JOAD<1/*95B:E1/==V/qbgŠW`Vi“o&^%=DJ1;Q DHD>D 4C-<3ÿ1$<)-:G+G@ü +H.Q<>3F3?#/`õ@b8 :=<3*9L1n"0.5_,b,1S2-J3H%A;/[NSD3/\=90)C!Z6$D"K$ E J67EEGWN002]:=04H@)P_3 YE /@>44.8113H9/!H4,#G144B"@÷D8&YSA/ G-9)B1&4%7<,F';WQbK:2FA#']lNC:]=H?KE:+%%;cB;M1IaO9 <-&"KC6.ø#9ôþ 6617 `!#Q#%-  =14"ý'I(G16%'9&,L8)7EIAf$8F$FAL.+5d\\Dö(%,ö;!&6)/+++,,,,,,------....G&IyLC.&Kÿ=!7Q=,"VF,&TR*I7'5.)C:2D0) M$"<_D#61X7*BA> 316_&?92;0>EU((EMA7(D #%"<; !Gú+,$Y2=,13;"J>J46154(9D3 ) U0H;?SGcnfP†f.s3D>@3&% Kc)'Q-4AH%/50?*i+7R=@ ú$'&:MA.$"9]<D#ü7+)!58,8=',L*-9<E:607=9&20>*3@"7,s>A<@L\%PM.AB,?8%1D38H$/>3)::::::::::7766655::J)-!^5R(M!=+M2<11111111;)BM#m6C0&/'B75>wN0]Q7[^D1;P*"6;7JC?D-F6P+"Q'8M*3:F'%Nn;?AF.>=LCFb=4-C28-q;M*<D)BT,*PD^:854d*B1-@S8RjK-0=-30+OO2#P[($*[B6/783%.P5(95N$>E-)'/\IH! '/1=IB'd4JC:G4v}wG):[L(5 ?=.'F%O:)*3FT;g + 01N2%.(9!,(<L2/19K"0>XgK9#3=RE5h,)5/"þZ+[@^G^-H<C> +A@;83?J.Vl<BC+2WyTVK]:+0x<`7;G36->1YI$8$(/;+J D+=2U7509Wi0)=ýCK90COE9Z k"$B.P!$P=0)1#7'&7J*','3!G+Z(cigN4D"+8 +D2?,R+26B6J1G1<LO1G%+4=M#JC/$ð@í66//(MÍU+.CY[D/2"8J*7 %: ?9ZRPSB:(%*DS8#;*G2I+<?6'7/)/?FF7;:-DnYVX<WXLC;L*6T"S$;59F9D37VHM(=XW™%)J4%.8;#@RB=*\PI '006TA/68Ic;%ZC$G965 GFD1:-DLZT 5A*2K+>2!'*;(8D 56.?7S@%5)>K"?H++++,,,,,,-------...918=9.;5 3))NT7*?!/U0 VV >FKU<-7", -<@$ ? 4B.+(D%4#6E N)!)8M/ ;8'"O(+;5..G<:>HûG:!=-!96-n)=>)1-J9OJW.:H65*'U>-+A%2A>=D1]FyfcPY{3S9 E>Y83=L2O0*2TC - #R@)O,>537++L4;T457'87!51 :@O.+.($A?*$þ U 6A7'Q&3&3&7<2F:7.3L^L"51KX0r-*2@JU/$8-,:A67)'I;;;;;;;;:877766555:W3SE9]%3@&EW^+*1>-611111111'O)=%__H5PE65?VB8; Q0;~2F0OIU(>FFmM86B&%N6N3CG.7`aC2FI60A.73CH>3bB&3T6>mGI':D>*J(*53)2U"-0N>6BRôZCXFö(MA@ì9  ?1$G5N*2[A=-P35A:.."#8:0$8<?>;3_%5!"4V'26,C.+<'('?)A6IZišÅ±g!B:ê4>F[!I8 3/ ,.-)-&M1;( FI"18I-H-FLI+<EiPL:"-0C>%061E"1û@EE?AEN I:%1^]„ªJ >P61!M?:0E2;:,8K&5@+T+5K@\&EE3=(S$(7'.-*#K<,ü-?5mU44*59 ;2@#1 ">8 þ76h1=<"839(HA(, A#Uv&H)<,*0%+4E-=50@4 +(65Oi%SJ-@++'a!@03<U;N&")T-4 ,LJO"EY"úD9R"-S6&@>9M. <]r;G[3NAB2.K#;?27f>;H%8"B84'! 7;;P,N 0"f4X+@,!0I8+4BKSEKiio^-U<$'/G19.=I:"CFURJ97@=TDo@]BC#(BY1!684*$",&1 ;@0T*DH490;"'"6SQ(>R+@8=58.&=LYWFAHA+"2#( .%\(3&.-$8,6#GG:!+++,,,,,,,------...;%8T(*$67)32B+&?5;@5@-I+"E'.DI - +. t;.08AJC=6:,:161.GK#7M&>7:G*6*$? (F<E,D-454#.W7D)%9!!2+#D7Ü:36%30%0Y$)5O=.2)""*');Q[yTOk`X;=7!7=AKAJ0#R<A17:L@CA6YSNTi(&8X!=-0881/-!759! I-$=1/B13%/> 71#%3##I<&N2-J2( !*7C9=:;#C+)iEoEt5;1+4/'+?(<E7=?2Eu=9ö5&;;;;;;;;;;887766655::!Z/,=M;24,20*H>111111116-3S64ED>0IZ\K-NE\VQ?@P5#U6E7YC.!.E3.="LUPZ@C0$1'C>WK1Wf*<6?O-7.r!C{9= +A%r1968<0ýC0M==UJ34$*EA>)$%M0>@#E= K=G$H6G4P4E"&5 7@@ 8#B/347,G--G)5//656&9*0S0?(2%7dŒ~%®M<0#49=*(>1(#BC;>Za35'3.%*1$),;'7'%7Y8C$=?8E#8WMB5KBEF%BJP N'%9MQ2'c õŽT$+*+6N39Q9(7RN'-,UOCEE="6).%B P6/òD/)+*8%%/$GQ=L9/<Q[G"*!7+14VJE97:5$6*1/%57?2VG- +I@&H:?.2$B*;*)B;(&V'#9*<C>K0<5 QA0/!4G$-B>B-,0E0E&67:E>*; +V&+S@GI5!3/%05J>?:*- )//:'7,S70K-#(W!F.8=$C831 U5>9@@o<Qc`]?$1&HG"<8@97K_;Gj1E=9AýQ5(4KNþ9ú+1H)<<XI767 +2!@CìEY/83+/6G33C,42GZJ4!35(!C '&8M>(;3<64/?< YñY$N14$"+ 6%=W++++,,,,,,------...LG>*T5:V<:-7:$&T qI(A;N)%@0,=2%?O[N?04!18)!%! 5.`WI! +MANW):075#>?!+,9OC0$#$=C1',@<+'(%þ%*7-]="09"E-÷BB@+D67/LFEBe€Ÿ]fFU5KJKfH*GJ6,3 I0AD6;@E8#Ak5--;%'277!I#6E<:M"%8þ%)=C72$"#4[#)Gf'-!K 6L"$S3$O. >4;?'>I0@)P4,&C0/C3?e44ü*,Q;*8+F$-C!M;;;;;;;;98877666554#2P'=@E6I 125FE-5ECþ11111111SA+L2TC FG4w52>FWXn€š|@XH9/B'(-12L0'+T 9%6J.>6<.DFG?,.:P<*qB< 8U)-@<)PR#9B%; $/(C2lJ)* 9?S9M1/-!4/)@&A>=$D6)H)<6 1,g=J,gLF7";F@P8QH>2';B60)'8:W& @. *Pö+6?R'[+6)6$?25+Hš[?ãŒ)-?#4"7G@4*0H#0QôD4&),2 ÿ %()1=M"1!:ý8<'%T+FD)+51C3D:A:+3 !S4+T:A;µÜQE)W2-$ +3?-*4(77M0$(06#*AEg=N*%10!CNT+e7:+;aaþD,x_M#8' $8P@#/)4F,;R@='AB <?H?7G (/?J;U0#7 "F<,&EC4+%_4O?089&'8I.W+=C4E+7'3I7P+K+0&37"*A/0!!3ELB-I!Wý ,' H]N*,&YV,0 DL#6N>9'J*7+EO;F'D>K-R.9. (>?0-N<UK5RF')=C)V)(+:#ZCS'= K9PCX%1(N&KV##8N'Nr2=&SL[2 5%3"6&M.C:4 ++"B-.!,EL )W9$%(Dþ;>"s4UMCwv]O'.3%5(*6&0/K\#4I=A@/ +A,"!-CD`6%+95+$C7.+++++,,,,,,------....#)44KDL >,\)57,'M-GE"*+?H-?øDj6C/,*F*ZG@TJ?:<>8(9!6'HK +:!6+ %<7%+?!H'6453(cH+ $$0>!,)E:DV6:(Y,")FCJ*GC,.99G0N&@9N?Q'$fJz™|—YK;Yx”Ÿc*g#C@X8&/ü!8gT4)1(cb+Q-3<2(=$?8/!AJ!/ò+*26&"$i51--##!Q66&dV7+$3;>072ü'D '9?;A7AH:M'6"@N0;>&4!U'&2<; *);;;;;;;;9988777665554JH'H(D6""=8$GEM/="D11111111A,!r)>4]2@9J0PtZ›Èÿ´LP??GT-T7W#%?MIZ&+B(].‹IB9TI4M*0<ROO=:177669)=."O%5=S2II[N;D"<.1C0'81(6608+29F349/I4`d%>#.\LA÷8>4$VN3;=H)0 /6F;[=B 0]K0+9S65 ">:5>(BRCJG &,G§mWrt¢Wè:2*-õ03Q41.2,73E"#H ;B=CC++JCX9-> ñ [KN9þS6>A2ø[DF1$&.A+7&Ol(0*0G.-.8LÔ®h6OWN'171 )7*&#5"/D87D8IQ2@Tb&&&8*LA/F+ZNU9@7;GR.G2K,75DW'&5g ;24#6573+48 Q=3Q>)ÿ>T8>/*N1UMH$>,>)>,4)505%E%>D 1"P1E-H'()M=IPF75%J/2E(WP[, %3O /004-6=&8+N@-36=+?X!<DH%<C%*$(&<_5P,4(K;FN 94B8"+7,-S !?5.A3TC@%a ;4:8‚lH4F-KH;I:<<F; CIf>@X8@[`PE:= .o<%=V>; +;*G.7:78499!5!TCü8!&4S%4ô/÷22#3*.O*$DB“±mdS.+T2TF ^[LJ69<>DC#2-&39C=6)&.#G(0'P++++,,,,,,-------..5÷A-,C%W)I$3(U45N/F01I-8B6 L$#_,:F5%Ob:_G'8@40?8J8KB@&QF !::GAC:g(T0*-R +"4@*,5"ö<8(3,0 >M53- Z$)+"#00<K5!/BI7??H2$; :]CYQ<OŸ´‹ma<†‹JBU:=\(T*+JWYV9I0B+3"$ #+94 >W;7A27(B2$?LC>4D5:9:CN:; "<3:OL6D36+?>PO&<<<+79F8<0ù)=8S@**%=;D;;;;;;;9988877666554KP;4/ Z?6.@FR'IU7 +11111111%W9:EJ7-<?U'8bCITa‡üªz<B,$Z*?l0.DAKXF?$)(+%H5B&)=2&%*J@T?H/p;3@:/6:P0PU9B3, PA;CQ3/I>A(Bf8&%@.23*?]CC5I$ %(%:D%$G!,(>/4>94#GP_D%7$7.1WN9-;=,9*W->E :@*$*;4%;. + =&mD>`•'@8U)-4-):J/44;0-=!B"K!c@:-@ %33Bù<JE949%2'.,%*þ7'^F.4\9$<=91- B8û%LGo3$F#,.C83=5EB6M8&2:<E&O()&1)e +2 G!(5"DP8=$1*1G9-(=G[5U"2g$<#/;3%-@:6=LD&4,2?S;A2K7*0!/?%+*.&BA#6Q0V= 1V0H<6MD8@5(PX/;/!(03<*>"=N*H-A5B#UM44V10!2$KíF;;->4:)!3?'42+: [)D(8.G,(F"Hmb?2@/_,0(BXHUAP\D013F?@3Q1 11I)L0[IK/6 Ef*:9PCD7, L(AV<669!A>=\5(4#.U<=3F&JMcB,4!17 ;í:#,/<+0<3+,%<, D5P/0˜ ÎXN!@*+5+D<:/2\E?(?0'=,)C-=*+<%32D2'.,1#)=++++,,,,,,,,-----.. 65%D#$AC 5. <?H,"C@32ï8/:03/'&û(, I.3BZ/\6;(B(ùHO* J&D/I[&';1,'6 J,@27"JZA33.?C8&@*G&5J;8"HJ)N0:4A%MQ@%3A%A K6E%1%EGK?)6FKXÏ ‚ÅXfQ}AGYcL7/"!.@>57\M5+%/.L.,4C8 *<,II25.I0B&3,^PM5//= E"9%2R%/@,=HúD2:F>üED#*%46Y?",=42:+/K1 +#$GFD)=-1<&/%3/=-'$;;;;;;;9998877666554E+/,D,/ #IF%=9i81D#611111111 M !&C=4HTFD(,-/IZeg™È†MB4&/E ;/ HUI!A;a3-/_ú;A5[g)O8QB*752%<J/Io:,2ALE>J377ES,"(,4H Q%K5D@Ac÷O2=( HFC8 #0/=6=PS 45F3[LM4%#8.B4,),G?Y*/=YYIJ]1A$!<+:1B;+)!7$EI1)-@H>1N,c¼QP ˜,.!1(8.:D7/2GU39'""E1/,T(*9/PI;Hú/%&=9 "ú*M8'K0< +E>/2Hy-3?0U*3-(V"+3&?ID />,A0"/LGV'Y@.Lv"R;H0K6(W#AUFV"0:1$$EWU&"$5)0þA%A+&P4.%ó('!?2=-99D8RB6<[-7->A75A!%3V35QL 0OI=DG'.6FA!ù= <B2K$0=4H#4/),LD1: K.E*39 >> B,!7<6!6UN4" D.:%;==b@J5<M!$BN%*? *,P1" @-èU28(P.!;)V`U.L =6"(2%+% $) (A2I1\/=P@MYENJ9@1,?'C&B?'I1oAO,B%l€8X1N1I:#^8M0(F8)?B"S3! ?,5BG7S"*S ,!%/S:3*[M™ˆ@U<@/$09":.1$ O6F+<0ø0U?S7S:%0K-)=::&+++++,,,,,,,-----..\9D81,?7BøBHR+û=%3C(/HF=1,?&I)K&-604D9R1+5)ö.G@?+<H)/?%7-!üA-/@5#33%!KJU)6H2'FAP4+)B %TB;H3(C8IY60GG54".')@2F&MIDGE52AXWV¶çìôÕÈW_-q!<H-327@&U<T,NGH +2S?]8, ]2 );h5 <'&L42%M 0-K%$!;@&&2]+C+>E:L !;. T1#9:-E1@/B230"8@7T?+94?HB%J3+LBE<<<<<<::9988777665554D#B^?)'4)D +$15U=H,11111111@9/A8<+Np3`$ #a]CYUF|q3e&L\;M8X5$S&67H4;[RZ2ZGO4WA*>B8+1! +G a`GX<',KW1,S+1k"7`C?4<5)0& 0:3NG+8"#E'$'NC7=^P):" F;*9:: &,( M/% 4 3!83"p36#T 3'=M%*&@$6"-/:>UH&Pc¬©©mF%8?0VSI<$$1! +4/---8 '; #=O6FDgú3-.:*0 +&!7$.95:ü;Mî ;=AL-*I,úCA:AN, .% 03D+`M7('!&>(;%6‚O+1MA8<9B9)< 8HB.@0.5g?#&/õ1:9S2K6H :<1÷+8:'O*ZI.3 6<5SD!MS<:@ &C?Q/f2:6]6B0(C#%473FI)'f&4@<-9L*-L >Ah0J/7DB ,"P D JE"6*BA'B0<4LVD+#þ5úZN3c ") +On>.&"0 98QS^K]:2&Y!1)B\2R&5/-YB8;RF N!80B*rW.6;X;)M8<@K^bONC@'D7/&C22IH1NJ67aX1-+ûE(&,%H* >(F9*&6'?#$*Gb ?[(N)(+# ;)F06+"IYe[J"5V>5FC +4GR*8CBK*SZG<-$&%B-+C@B>15+++++,,,,,,------..*-1]*5Q`;I%^ÿ3+#/HM<>&=*%4(b4)7/2I&?8B,0N/BC7+Kc52 %&-,ø$ó3) %& &KH0H;)&:3FEEEg/I#L-16G&&?"5'r:8Q!85).IA+[2B21RO;eÈSé +CóŠcA:4>1:!6Q,$V0<M35:+DZA2JW\-g9*4G3+*/0]E'"-3.4 +0F.)C1F<5B,#$5C<:$%%)c"8@S(U3HH30F\78:'"6S2,PM0)1145#J* +21'59<<<<<<::9988877666554 @=,9j88=+ /+4811111111+,3>GcO&7J5M:R#M4&?9,O>/"A2K2`S(*C)("50=i`.L4q(,-"C#95?94J5+"R:L4?K88D@U<(BBN/A<%S74 0UWNO%U,U6:<( +X$* $+$2%=E, '-w"V_MZ34#J:DC#446545!17% XL=.(;2< 8*)^**"@<CF*3!L9‡gY@O< 5??PGR>,2 K4<, +*@),;I 4>C?0.78*!/C'<.=6A"?BBR(Fÿ!>@40+'5 $b# G"> ,( >3('L9:;'=2NK :> 3%?>M@@?<%C=;/&"W95+a0MW<P@K3-3,MW7)0+PE )>M:0V*4 7L62B0:/7.3AF80F<I-!<26)HIF&5e8?C.E; #6H1.9&#VG>,6[2 6EF6E'4<'OC\.Nh9?GE-V*5G@3/=&K/-(;.([*(U%H<2835&>25dA<T=@3P:4;D3;4> (fY3,L80 W%H,EC4A@I@B,<?;&?#5,<(HA<]P\\@"L-/82(#>"(&"A)5IV6BI.'E92/E/&=õ527Xø#<2+25&? NX%@H((S:CA,7=AG5'O =2"M72]M/(6P/#2=0#ö>+++++,,,,,----..--.$!"'*1)úú>58..!ÿ)V*'&(/<" )&2mI);(&)@3.L.?8ô;;4J0E%-0)NR,1%"'AAEG+!<J 4>#*>/ ):F>0-&;%@<18eB;FK@5b*6(1C?T?^E!0+3(>+>HW!G8Q9>k°% w à +Iüéa?j"87#5EB8BDV7DG0.3K>Q0F*C6'J005'7R0.:GHB R5$.%@,2FJô5D +=6AGE>A:/))b/AE0@>I;%8: .( `,C2 ?^05+?/7*>K&N<<<<<<::9998877666554&Y.05a<þ8';6&),11111111<J5#'D>e,H"Q?352278<-4A9C*FKJ5c;S>U?,";!/ZDJAAW9&6=gX9K?N6E'S4DG,! +AWWJ3\F4+J6_*"79#GV'7F;7>F72=)0A+95  >5!'U:AGK1%5J>JH#+E,C-0#4EO=) G!O"@,7C7AD$5V4']R/>;W,NQ=0C!0R/d)@":/@ )>5D'G F$)K7O )0ð4+C .B"=F& 16.*%TN96 CC%<F:Z5F):"O%D-AE252AN0T7.%DTA$H9<(-7'9O@E/'BU2K3N6D!Y&4,> +5;?2/15CR/FOM3=N6;78K+@0 I8%F)*=(7N%=AI1B,-+3.8 " )'5>>H1\H3E"(a1((,@?5*FTM3.)4 " <"SP/"NGE&7B%$J**73$"%)<(,=J3C;*L;D.</#4EP%*-"5)5&B)1)/5Y=Qýú3E';.0=<:*B+)$36:50!D.Z*89:"]6]751F0+a/V1B+J 4(=+Z:5C$J&=;*#_718/?4B<62#FI: !("5-'k="7$N0'2I1)h-Z&$9(U)%3Z);+:;<;hr,U7@7.8F*EUEO?26/HT8,-AA8 +=(+%72-9B+++++,,,,,----..--.2]J +&)<&K$Q<N6D!E<dGI>"J(B"!BQFMB;E) ):1.=4J"./7/3'-#:O,)B:BNE,E"L+2CUQ(#7BJ5 <-X 0,6$:>%8+J3P!D>KKA&i0GQ2 + .#2(455I +MN2G ;`r|È +] +M](e=I1A!V?eXG(]=J2F+M9P+WMT6D626:)9[J/In,DP! +)<L+F1-,$B0#>5H6(@Q7)8'/5æ79>#ý>D\A'1H*+#W>8aa7g8+-)&H,3S0ü"IY(C#<<<<<;:::9988777665554'<"?R7G6fIwK5'611111111AF+NN=.,/P1C2F0<'JL ;9)#V?9G$@-(?;4$@`w%+XXIDI)D(<Ag+5Q",D#L+7>h/>F&;>T\ +3G.)+1ä=-:4.*LL,0_)9+7,8$L"73"$%4 99- 1?-3.@2P,AD7J*A904EK.. 1F*B5.&::TP4X>;4ON$;&78.2 )L?,"3/407$C5%& 0?N.=B+-O?S@M5'-6+O#I 9a7"$@ 1C'=:ö1*A6)!$Að9"1T<[23)H=@/$G$0%3F2(+',$N!E EE("5GH M<G\A!FB_6G7; %AN>¤C *=(:; ;T$&:45=@:?"E$"(##,!>!;.#EF:?#R*$k GJ-5þN#E9*3.k;$8=1(*>("7;5-6%@=#)5 `$P2L)3:3@06 aM.I/F*6>]H%\=L(:[J=&p1 I(=1&)B8"'(9:3%ÿJNHbLN*Rm1HS'^16F-24'H <H2+I8;-/Q$61!+0I0BC(DSH'7D=73"7%0-638%.O+13:?Yc?=PD6U6@@D#5eD56C(9+='@/5;E'5Xa^V7^4#S. #T K6:.oL: 8^e$;>9G023'81@*):,B,0*-#O/JXA'.1 4!;:++++++,,,----....-.Ef 2="&.04O?@9GF"+B.6&#.@# ú5D!"3/2<W:E=:*?/>7 '--Y2S  %:6;NV7.(RR?L!+)&4";S&4)6=L$@ :''O/#Q&:\PE9 BLó*L%;(*<G1^%&!S-Q-<MSW¤º#ŒxHYCD!H\3M@SPQB?2P<6YWDVH(+JG?Z?C66'9_GY98&.+ eHCK47 $=D@G1#5C=$6 Z<7 &#@:YC.,1#J(!'30((*Q #9>.=D\&,;*&)5==3C6(Y@/<<<<<;;::9988877666554NN2 (</LgP:W(<1!111111116:AFE-)H[9/4TZSC'G?(CCf7-"&%"+BB%/6UP$Lff%FD"EBAB#>3O8#X* 'H%YFFG[2!NE)<U>/AALJüH\0:"N<.5Q(4"456.@6%'*!<7#D268.5'Q,#B%+V-#%75?%>=%+:6$A-9?@$E$"5@%k;*&?Ic# .:4&M0.05H( ++0cVW?)9ê$5)6A\.L1Z>9"ÿD'0U5-%$P#!_ ?5<29Y3^3>4(IHF"S!"!08)2:(RB<;:-F/-6*6$6#FT1KmFIíA$,><:.3C0$-G/]I04L>*'6:&JGCJ0ë?]*1G+6:Q095+BC?<()#]K ^'G\C&?)H/'<0</O *[ =936BV$DEJ"3@E<)ÿS=C/F(,J%W1*$>@,\8>[-4C4;9+Q*:'<)4+3O-OE38^U=<&D>+0,+20O@bB H8:KP^VTB @J%(hK>dþ"N(=1=(^M.2_C0J?<nM6L$L6?LoKA 0BZU PQ%5?.D434T(%/0B8O=3K)G8.D.2BQ7)6 +5@9-'<Oý:F<XR^'>=.LI6J9(-!)>($:7Jü)a<P+550!+(-HM48 ])D36G3560Dga52eM%F;8R:+++++,,,----....//.GBI2D #<=5 2,40 ,)>(B,)@C? [=#0,,1D3::>'/1IUQ$<O)":,%'&TG97G9-N\&]J'5!sE>F&3,,+:5<0=HP;"1+,+VB -"JJG$G5>#- <(/)%H!49/&:MM*"1A&‹ðWå”ĪX8?SA*:%#H-6R52W;8Pc@|DYH3B1/]eM&TLL2,;(T:&CN;(D +/6179 ?ý+?&'@@6-8IB .'/20 <%/;7\4K:2!4/(+5%62B-k>$?(G.?EM7< %$V<<<<<;;::99988776665542G*A%E7;vQ_"'4511111111!A.&K?*?#6-9=2?8!4-R,70O$[.*?7/H-4U*"!715C8<]4INHAHH„.:,)B#E&.3D0 I25dC1Y/L9; 14B*HI7$80.#NW4(0V9)P'8M->QP.3:<="9]QóQ#B=S+M4*# KG*#,/T '54 @4=^'I/;L1U!*<N/60P1&!F6C)%#B+V91R(=B))07)4&@4+V"0==9PJ )3&&,;P@1-.,*LK1C%)G5H90bC=8<GhE?F4#&3=C!UZ#(*011E%=/><+-<L<^2+650]O-I,//[39J9J=J++3=(2-2F4(6$8H(B1>( &89A82"2&,?9#/%6<-*94E=5+H,Nb;d(/)#1&8@3Q5)$6#:I(/M7D(_O-%7G.%91=\\#(0(E2C*A"> 1p0D1.#78@`]M@6õF8*IHRnW)N7J_[Y 8<)R6)3'L7  :6?E8?=N%<@.(IM8*N3&. +4,I @;-)#!D5$B%+(2;?@*TZQcJ2B0B4 ND@35(@r1#3 +$0U#92/<#1_>JeOfFANKC+10N)@%#CF*P&43a/UJ,+,F)#QE'!WC*",4%:2/4@3?YZ=Ig2(P%1+++++,,----....///.f=P5E@.5#%84(  22";.7+3A=86@4K*ä(), +P$P8?;?R(*.80988 +1þ"<+.D$5C+!V+"C,;B>-00&#D *R-B'0)"D(8&%$@BD53+8;+PW-'KN098?1+402B3eLJ/:sa©µÝ²\ojB<55-I+M5TDNP5JUƒ‹^8><`891dAGA-%#-Eè?85&5O"0_L.6)&1j:.0IS(T#4k40" +9%FR71<Ci`627+<WD6B;@-;4NPI!-< 8@A Ns====<;;:::998877766555 D-7> Tf?=@k?H+( 11111111#"B#4X9 @g8F<."'2*C37!PG179J:;;-1^_@ .63VAQ,J/?'>]1).,-7D; MN1!?;4)4Bn/,J.81. ÿM8M(J2Y;/<G4)(</H$<4I0#>44Z0+4Y"X1#!DG&H."A=*DG999G3=K$366)0 5(+,7+5.cT:>&(NI?485. 5D*/ )4$=VT:9=-D/6JBB6 2=((I ;3+NM&$ +Xb$ U% +8>6%LaC0$" AFEê@FDRU=^U%CUi.!EA2D'PE4ó8* $j<*4LBB-'&G$+' ;&(,0&4//K9F$L3B?.6"J(83-55!4E=FA?<4;+2>D03Y6 Y7/6HK<A+PT&5;B@NzHDe9+8.("m==ê\35?,8"O1Ba'B@2EL9*2.67CCE>9i><26C0'1#3#>9AI_67"4a+5!15d<KH&,.' W:4=<97]B"=3699+HFCU%O(:9&-3:^^(!)E,K56+'@C7Q"> 4-5'+N53/XU51P6J\+8%H(!6/#3-+; N3 ?#+509&@.I#FF503K:$%S321;:#G>56A$ë,?B./:B=C%,.+lW@-]<1C4BBE).#9''4)þD69/+++++,----....////- 6=N/Vd>ô8-9VF(:&@&*5&4:9UO5AH2,-47A')4/Œ5B$0068(E4b;/L!M9.'(8A9H!'-G*FDQ%)3(Z(55 +@'@>P/@8&K>>6G8<K;n'8OP*41'%?#:/")+D)),*>RfMM9`Y qhJ;?#EI-X!8B^JBih¼ë3‚V'_W4X;L'C2-*S1$'QAN*57.1=B"4D=.1 -1%õ5Lï6ø<lD@=QM"J=(UW +72CM..-?13 =9:*æù ,(.C"8F<======;;:::9988877665558&-"7?QGB[L;@111111111%7?E@=3H=6,A. A2\EF0539/, +,.1=?•¨·cB822;A\./0=8'/?LR0H9f.)\<#NJA9<;>9;;0./$1:`p)M<=1-F5,W.%K60/?(÷hN=3GK!4F1<9.+$D<(6 )9A(>J:; 2.A.&T* -K2=^!þ&-2;0K--.)'1E80,` %O;6k10+16&G%(!%"537.2#6)1)36()X >K9Y/8'-@::\+5)/EaL(&LA6Hû1CB4(;A 2:#=A!3Hi^˜2]*:6)("+/55ø)0b+I!)BLM14%$-2=3BB@A0].:A(%<-F?}=8,?4"#(!(K/D9*>!+#P028%_ <#ïQ8<=:13,BH9DM.F?&T:U*O=1>MCLBQA`S178=t130BALI8*.$,3-9"1& +981?QA62Y-VZ$8Q];-IJ)@&A88 .+JB;W8-%ED1A2.B+:/6>)UC!"1(&.4EL&==O'L+24Y>DA+!A'BG)&28.-N& %0Q<</:1<,=6_AF':*1(Y /2L78Q,R'2.&29Y.DO +,7%13$ 3=^""3$&A9;$5M"16-; ñ 12'A$,&D $%2L4<N=+=G++44;!!+++++,----....////00DE“Š.K9N/U<6R62*6I->>:(K[)A64RK0",E"4Y1<4*?OTR./KE@M673+%<(!%.'%)B>"$-JMa445&D,&$'"M7<T6>^G?&=>lZ‡‹A%?10SþJ# &K2-LC52!G.@;(2G[EjQBS3("!;)G+*H9NixaÃ,¼˜èdtoOGH:_/S?;:2K&N9LE5XW /0(22=&+,"8(6PIS&DM68(87@N>0*A0RVCóZ[3!15A R;"&+ .:=SE7$1?7B?"====<;;;::9998877666554F'!M0@*X-nL>8011111111)"1H;<J?% &=%757HY1B2%<8K+@EE2Y[ž JÎgKXùg'AD%-2@9 G,@GNí543&E$>2)AH-k6$K45F2)AD:/)=<FP4,'-+4#++?Z,RB7.P.  2ID3340-k&fG96/:E%6P1ö04#7RC*9D4@ ;'69'IÚ/),@0 ;  2ACa3)8, '.> R2'6 f>LG 3'4ý;F$PUÅI1M'+((P?%,&DQ? ++77<;L2B:9)3)HBDSVgtm3 *(  ^0"N88)7I[2()=37&Q,ZL(7 O5/S;968!(",57$,W2*BN&4:"!/+00J/<O#g>û+/4+-$7-84$3?#3,H3#3!:8>9K5I>,E 5/KJ>mbV:1?Z4"7"*7E0)B)FH1:AF0P94H,>#(+:,(c&G" -($5B=".6],^ŠHxe[:1&aN2+")BOG859E%#*+"&\ ;P#%6$9&3dJ7 TXL<7'<$X,98!=1+"[CtG-J5["+%?"6LT/;:?)2ïM:LP_V6-3#- 0O/'Tû6)ò".&EVSZ465AB"ECA.40!+#%'P*%#KD;(1>û 64E0("%F7'G)?(),M)!J16##/D) 9I7$++++----....////000-FY„O+þ@T.B&P,E6H22\2.C2-F5??0=*' B$2@2/Fb)8 %/K=ï88L743K(,$@f L$")B@;0O5*6EC.F'5IDQ2#>\6;-==XX7–‚cQ6)<E0^$&8#$&:4+CBDhB7UI$YIi(M$K-GE204MY?M2>]RŠ÷ÈS¦às6 8>atMAOg-&U>D[FM1;:1)=$=0+/*,D80$JD0+ A779JF7AlH7&,0):&A`Á´\G( Q9B_>;#8J&0Y5røZ%$28!R2;7===<<;;:::998877766555GE25*õ>R]1x5A8SP11111111J+"H;<2"+30T8] = L3?>AA003)<WNÌSl€%8=QHMN75K@o<=2<G`G;8cDX(.A67;;MY-,4pOL?<3/8 -=&5C/EG%%E (>:)@@G.C>F55F3A[I'04[A+;8('?!> 0H/_%û$?7< 4;%51V',5>.E:4,4%2&û?AF5XN5K):& .e5K12F5[;,0;&8B:TH#E-0ND `:&8O<!*5U0& 2GIA67*C)153)c>B7C*YF%"Dr6-K30*.;6<3++= '?8>0!EKB!I(I1!&&@$A4%"6+)û'<>".:M"+26)#5*V3K;);F)H/D,=-F,/EQ;,EB 5XB*!Q&2G/7),>75€¨Ü¢>jS%847ù3?FG*A1 T$]3(%H =! 98K+(17HYa?BQ?==$ÿ1HF@biTaQM< @_84!"*@@C.0U9MX"$ 'G,0A5[&4.:S+0!.$R&4BK^xO(/MY55:00LQ#jG3'&E,@@G>=6U_ +E+#,1*&:OV#GK(G&9R.AJ.$0/./*3X9'E6 =26QO(9"" î#7\?b;V4$-5,)%#CB2%13) *86=8<+NI!,$/-'(/>''L*+++---....////0000(*r~X9K@L:!! !*? @@B%668*0F(%S)OFK'@9"B(78$H(;`N 7 0<$,A%;)@J5(@B+,$_K5K16RK5%L<# 9M%nQ<)DzlKN(% + J&+B:%=&6;ô*-1Ti7$J3A/0]'C1F0:Wþ$0V.$c<vVY1–ê2ð +Ó |’&³\‡?N;H@H(O?8*NQM!*;T)13= ,S*?T%(D-<XVCIL(&&AQ,(/"J93M¤2G²™1#9?; :ZG/F!&%!N)F.+%*!8)<30===<<;;:::998887766555N.J/>V?68!S03$+:011111111).8G1FIü7OfLG->3H<JB8/*#"( 9 O<ZÁgªSI +ULPV61(9)_X0>;609-3L2'&I&H+V7 0 +)L/*?6?$=Q/#T<6<L'5.(Qaa1( +?7X()=&1/ WY$/.0Q3B1P )VGE@L8%1/&N&5T R<QB(96<8AKRP7DH#'<6Q,FN03E.?<+B0J0+@+306-B6:IMB6##>UF 17#-C:%D27),#G1%D0DJ52K05b-B30?7H$5$ADHA'>(A<NA67-/+#6#/8+??B:>5#%@'.:IPDB,'+M$ +*$9 ^':%? X`$F59DC!,%4= S &C"B9IEB)W&;F*T/.M+//2O%L+R#69)W$6*/2FJ"h9SšÜ(ªWE7!ù5&,GI'#HZ"d#QTD4*6@-6F*$+7&(1G$af/<-%$RXMMpPLu<G&%,A-/CI0"]Eo`?FDLN@%5>RI4$,1,J0Z(/9D'^<K$#IO1WDD$.".37[/:&/"!Ho)/$11L*| ;g14384D e@:-0L0@Z<aYE*+%,),4B )h).I"0 A,A-"K?TA:D8S<",_ H<9!+% +H*EMJ8%"3B)T7G)A +K*$RN[,\&*$6å++---....////000011$AW&=8)S"/=ZG>3E)+=21+."IZD?8+<B8#ð%DM +!,"(+JBVD=N6.K@-R74FY+'JD.WL@9PH>N72úI6.>F?DG-V. =B;=2%:12'OSN<L0;@9!55.RS,L3@a40#KAB2TG3=HP5?Q;P,>&Sa)f4s–ÔÐÿ × HîZ™krEIKy>/I6M†z}K@8 C +5?9O))?;82383>Vg9;OA/LGGX$.%)29#1I•s¿_ûu%$"A%--=,K$#C/:(, #>$ 3ý(&:)===<<;;;::999887766655>K0:%[ùE$L)!g!h11111111WE)L28 G6(F(Dò>;/@&W?;>'0*09!Q;,UWg}¼rB+CQ>A@:I-;4,5:' þ+O2%7<6*GDCO@:@1>L8NE19..:,.;ü<TC'HG  3þW@E209 '?0G4A&250;4<K66SY-4<12*..C7C-J+2-87)1!".V8F:ÿK6;1NG2XA5I(N,KEH1 '!I>9,M2G*-ä(B+"&21;1%OR5þB0,.,*AI"+5J.)3BFF$D.<")( M4 5@1'>/1/9G=:+ú@JB*STM0,<6)<-# #)8Dl.L =#".'C"',+ +M.A%*2S/.$$FhH IbJ !0"4E7$;' 1)N"J9( +W7 ( +yƒß6vMLHO (8.2IF />M(14AW;LR7$:.+I>$R"<0@'",IE4!!CKúW)bO‡GI*&70'O!26&ý/% ^ckJ=MN/</S.-<+,AP*))A;C +80)D7'6;B%*(G )J+ [(!\N1H/M)(:F M >$"D,/Q%7L. )8@==D5H?D6/$B/&D=6+B'@SE- %80<<'G/>/@HXB83 -45#P7A#/:V253X?CI>8IHM-õ&=3H6WI+(.@-B++--....////0000111 7L >'/*L&1B)6P>J90+ +B1) L26áZ0+üDJô> 4(7J/6,D+,G?$&Z'7&H(74+*#1!F/$0;'!#<j7ùM=#3* H*|?:' << MG \@"B#) :!5G=%;M>A?;>K.=7@()6LF?8+C.Z=3 H=P@~.bXwˆ¡ +é°‚uZrzAF7;GgŒh1¿”BT0E*"@/ #Y: [0 +95,5$70MlLA35"M36aJEE1A>DH†—r—ÛUA2%R&<&OCj%>7;OE><%:@a#KT>==<<<;;:::99887776655 EE>43)#7I9..R@111111110!);?,&(4(4W* Zr+O *R4:25@+2F.;\C[G^/'<6i?*\.27e eC /D1?&?(:BA#$S2V>':!9ò;A2,(-5',S6@/)00;<:169/+ %SPOBiR!!23'øL"BA<2)&O1-',^ýB@728;U+2A@P,+78-EH,+#BA'F *)*E 5 -$"NM+6RJ 6 +%>E.;1!F@-GUJ0%[J&.@=.&?"30G2[S1> FFEG7:3DA+G7%1KK$H-<D=W,<E +N( &" 4748>3GBC)/5E!HC#-Fm;W3_"OH1]E;'95<1GM7IS2/KC"(3l75*#>0Q5ñ/:$<7A<;BQ:C*##*)]( $05J.(Ie–jZTH#/AB9G2, + 523H>YDR$V+'û$."#[2I6R"DR,&1>)8T)]@)J?:j=!N?J%G7A+A]9%%^?i>YS&/=61!IO"0'%4L=%+8S=:1"(=$T5:"0P2>P&!:8,I %!JN.+ZQ=6A9"<`Q'0/9 +, ! !ATQ$XQ 0/*(%)//(,F,`,T;U%DQ7 K;='">;#0>SDCXFS7W=3%[089:!4-ò66'42"N'$ A6J12C++-....////00001111#:8LV  A391lBB: C#*-@4"U@3A#1)!<# J3/J7G(C C@=<,B(*4C')%;2 5$1 U4 -<Dô,3,< ;=4<" 4;0óF *, +H68J2A&I3"U%>7?0#>EF7E$"DS?/O-G"C.OJ/;<.:;XL>xZ*Y_‡–O&â·wGGSP>3SW‘Íhc¾N úJN0Pö'2ìV0$(=HA>,8.øj;4<#-WHD1;)T/'+&M`‡­ƒY4%I>$TNW-69.&! .&;J +%$?+@1/B>>>=<<;;:::998887766556NF8,*C%)?/ H=O%;8111111111$5 H 0*C;N43)7B3#=*,<,ZA.F.96,B]4_L d7’VYY4 3PD ?I,3@''3>;/L2-,Gù.@V9/O<-/#*:M96>' 'C5;K201;!0 $.@TLE"!#J+MþG5.$ J7 DN)"#%!,$6 P2$)VA:)H!I+26'0*;5<]X%A@)`N+?8)þ):)&#K#2'=#-'=LW>5îU9;+9+&A +'%á7A= G6U&9B.1_(B-;,/9=_)+Ni$+2)</I,A ILO1?^7( L3''V65F!+09P#B+ +=:GN0))$0:&>6T=592/'44>?13C71%4;L4(lF'095(:''9a,*4 'G@'*IS%0*Gp)K.UAKF/#N9I9::97D(.öJW)`;QA& AH63M8@=?D ä<E!=1V6];22(-J;$BE?NB.P)/HFC V]L;=!C>;CI32'h3AB7JBF35(WH?&@GAF94MC>%12S8>,;08"R9R(X-M'JO;HL1>\N+%7J0EJ%:E<2+4!B7L?>+P-$"-HX.:A `#A02G+''#7;I03/ 1L.6+:S?"AQ6(-" 56);%^2A``g9>3:)0!/H>J5;F5I2"$9A*+....////000011112:6(<-6N'=FG(>/\"7N @-4-,['=&(B1'#. ";8>&)N<, +"O708J ,:JM(B2÷a''86U*!5E@&5<:4DN 0I!4';=AM40 0%\:$9'A6&2M.c=-?#>_6R'?8?+Q7"&*e9#-20DC2&`/E$5>9<O/C6&&3#?€•‰r¤ö¢ a}XZ¡JKdJ[¾ýîƒõ5;J*ü"$ZTB)08%BH >&M:)36Z<0@2*)C49.23!6 D*3LLku+?>1!+ +H09=U2*G=8&$$>8=3! >>=<<;;;::99988776665JT+A -8;C0?6YTY,11111111#1(3V.R1LJ:P.%) 98A,FE69DGg 4> E</*X?M'UkocWW/3U+@  G1$74&,?NRG3:4&).:9+8@/V*(4C&V6 <LM!"'<A/+./_&.9,7CN7:)5;)$ù%0C4-6.-DN+?2+-IB$+LW 0%48S1E.(PAHs®OAW56"õ\4$1 616)84(58C8FPD,H@,/A 337!)NY13: U&,&+O63F0%7*0": 4*oAL,CMN&(:9='!5R-F1DGE5E7,)ý ?&AC6E, ,089>#-/)'ë)",UB==6<%AD,EF@/>++ 5A,D9'Lþ90,H?2J7DG)7."X .&JLS"<EHm&3i?B61!,&L;/*9D BB**:49/C'-4.K#11/#N4R/2NP;(C[>V 3;:%a+#;+??N"9QGiEA +D??G + A%27-7%K<(<*,S@<EW8AU>01$0 )982B +\-8@M1D/D0=0BB06+ñ65H*879-IP4:P!CTS)-T);`908:;;ONF>%)G3(630(:8 2G;EW=,97N *ON?J&;;8 <T(O7D'=)-8+8%BA<( E%=r]G%5#919-k#8<P=;;$W*+...////0000111122("((+!:7/)1)>!  3 &8]3('( ;/.E:8 +ú V*"L!(#M2 1,/*'N/9ô6;#ý+@.A\B='[)2-356A2?=>3@'5$>;R>7 7/.02($M;  )3oHA4,28 40G:9%R4@5AE,L6!:28@;9p?r®taAXqIqLN/ELFšÜûZK*7"!øJ^ 68E>17"5FR4Fõb$7)NEý+*D>&[;\. KR8!PE3-4P&-"E/(&D5K*&#7 <*h:>>=<<<;;:::9988777665G0LO43GM(:.VG/>>EN11111111+AI'(@.c,!g'9Z"/'>ÿ1OT.@%>=0$)$.QXM!* *)d|SG2<4+8-,A+=:3:GW;?7RG"?6'(BV%TB(2Z,;\V1:+LúLK*LE,!-,d?(M(%4V(&/-3Kþ-+T 4!4D-/C(2&? 1HA F+.?B :'K+,)"/$ô +P3:Xt<W09:7B'+C*FG$.!(L,.=q?+!!5@1"]. E/=2@#C0%D>;5==% 2I()!5U/$"0L)4%M=7u{dB48cA;558#8DH72,&!:)<+' 'L&]0 +/9WU7B%)>;.BU#-/K $!# +3,.4&;CHC38 &E38CLY$'f:/ /%5O7A$J/GcB7@X-MC<>?;k)A42Y6"òLLQ0-,@-!=X#*:3@9% +ú-O'41*]Aó2F$42RM)"9>HQ35E8/:H/'*0"Q)Je%::#.;)6AB.DK>HB6;A40U*N0NAD$MQ,bBF<1= 6ÿ2W(;;TH!B5- D1.3o,@9"N0`69:2E+#JCL"A(.]49:+ (9")?$:4)KGJL! 4)IO725>>;;MA;H*>-9J 4O&1H5<.(JP/@3@6(<<5PC [<<#-YV=A7 +I#?F'q}VGS%@05F<3K3#YCC:-_D2O&7 ...////000011112222'5V[)ÿ!*v, -)34,5<3"D9 1 $363ÿ5ý +8%"/#(D þH:A%$e)NS1@"*/O>5 5'15$6-07#1N V/*"7&)F(52ï:)$(*%4*2$A$ò:. ;.,>&DC+)LCK:17$63 6T;%-6" ?6/<;!K7,20"ZaA5-:TA#95KP)343H@pekU=. 8#?1T#8#þ12.OA$'MBX<-<C.53;)2=?!&0ITEX'Q#6F3;15D*+#D,65"5!5,J&"&7>>==<<;;:::9988877665B*8 A9&J0,G=&111111115]JK+8+TC%F.K9.@4;>2,6)4/AFDMM9X6E@<'He;Z:_1@H3 3B4>J-$Y $)  D0)T2 ^OQ-(&V;*7/4,2>F+P+-.B>N9,0':IX= WK`B5<7#6sA85L2)./53 23",&4$K4"52Y)7)8%NP8$$*D&(BC@=.CK<1+:,O2,"A@!90õ$3[ >A"  +g/A2"/#%'P:KA9(3694<&/ <H;6> G4+,Sa›bA?rXoP+G2D#.0T8))%G1A&FH6MO$GP[”GRT&B=66">(F-4I+N)öm`:>;?B)õ7]2=;BJ"H%ðL RbFT>*8ú <Q^_%SV‰J[–T=9E$T6P-*';0 +28"G0&Y?`GJ>?I< ;0-D(1-!.X<!,G4!+F*A-p5@AG -=;5K%>EQC +KM1+;@4/;P,)[2%8"J<78VD3OEA 5#<3CT23++f?.0^H9;)EQ^*%5)p7^Sû[1 +5?5#L=K>OG$*C10!$EL#&LE>,T/>1 +7%*1(?>?>,.%F!.0+Y#(@3'@G60 .[F@[F?) +EC'B,%#!&C#"?" +xB<75 D@OI%,Z8; !$;# (..////0000111122223?6! ,@ 126:22.FD*$60%*/4,# 8HeC4S0" -7G4#.3;$M"*P3"EM 3þ&8&>-#8VDQ.2=V)A3*0>0M"70A'>@2K117!/ù%/281 C7Q8)<,&*':@'1.4EJ3Q11L+#G ;(8-7ü)31%_64A1>4cSK<+E:W=>CG;AHE;^B\Q,+&!$&!0M5^1-H1#,O.+APB9.Z$*2<?(*OA600W('M5`6-I([L#F@ 0=FK4*"QA7/I &;L6>==<<;;;::9998877666=D0?IUU,8\$RsJq11111111'F<#I/*(*-f)E"F-*<+V-#7E<&?7HvF/&HAZ9M'(6)zZ$5%+U/4P$ÿ2E,C5/AJ*b:253=U2:M-Hc06+FA@X9 &J)PU(FLA./T/ +.#35RS %SNWÿ<,.c"þ9!%&")5"4&N5*#"7?D2B:3 @5B!ö7:-H)()4 '4*0 KD2/B.$'J2&*!01B!@1FB37 9()3.'L '1N84=35'.IWmŒPVkE)sd-:TRjcmI:2/: ,5JT+<F$382M  3,12sfjk<g08%=^.N@.X>.R*-a'&%' 5&73.7"(>a?G,JM'?<'D3E353S3;T­Ö€Y90P(<-L7?28H$P$,IGc#G$/%F+%&;''*'#-967EW <4;( +=@ç+=B?NIS!5CG:6RU21%)+31IL'OZ6@9+P&>,6O>8-9J:>H%T('5A4J.>0JGù6,*'Jg#299&+7X9N`=}>WkB.A,C0NI"">.0<7a JD! TU/67HB'$( $EüG9C;3'<9 +>O3=9 51 *)=8.:#, QC'-N-E8@(,(7)*&,0+3' ' 7Q9;@!B%t7%*2-6*:+A9"0.////00001111222233#50-% +*- ##*D5û6/"-7) +)?5(7"%34K+&*aE/+62RG#-!8,8E$*"#2(';;F>T8'H-3$)/_Z;J%8:#6-<0,C,F&+ù 9P-A,p.;2/7-[?#WA +J>%?*2õZD,A)?*3)2E800&)46?E.,LQWfKFl[K7p8.,69HALN13IM!ó$<$1>.7eh 08127YEF02-8'"üL&9/3PuBZ""%A2< )2"H5(M0%,5C.<#>06-:+ÿMK.;3J>==<<<;;:::998877766Q7.3W]F;/?-GBE8RP11111111S@;<?8O7/*G- 9;B3)/%?F4'!44??/;FF?'8#_C9/Q:Z"C@% R^!%!) <Gl7.>.:Q$$3=.4/ÿB"C-a*;H02@(7T;-7" ]$-72U&<*!F)6H1Š|G3 379>"90%:8Eû,] gF;2*Z=D2#4J#> *67@%ù04*&5ê)*Eÿ47$!B2Bô- 'KE0<b+"+PF +!D1-%1':'B"3C5.-H#CÿCi–¼šf37=)RMO+/48Rr=@;B-2dÿ@'óOB 892:LD%/D<aC‚E?A.M,L%/3*#?K8H"aC3DK8(,K0,,!G2.1-'N1AF$>0%ò97 kG-KA<*/GhøÙjj<4=&PE"+)%?6AAGë'7;$34#)+H*0?Wç$'2Q/10?)&,-MD4>7*ê >G,3/>`)Y8/7<51?911=þ ./>;U' ^-' W@)32f?2J:+X"8N*;<P$/#H41(O4ME9/ II)LE€wZf–k6_qPXo;0M,CK"Q5+ZL4M-a5A1/<ú> +[GM,0S +8Iü,":/F4E .J#3/)E$SHV#31',43'50->51H$:*@$F%B9YdCý.'LS%.16`62&=>2G*////000011112222333aR=;4/B7%56!D4 ?'98/=O,R*S9=468I( 6D%426E7.,D8I#(2"MaC-U,7( (,)(G/=H1E( %ü86-9%.5%- eE+&KK.IC/9**"ûK:9)P&.++&>5G2:/J7S9G=9Q?*/;%14 C*93 C/DL"2PF//7>.D6[NAL6> >@B#2'%45I%)1MR94?.842A.76e3?@D))1L"GQ,-*48Y#)=?>\#/*<1.*+$=ô Xê #V'.09f ?===<<;;:::998887766 .HjG9<'!KK+,4B11111111*&$-8%4=*c*01-UA  ;&:D4(+A0_JT;81<236JF 9='†),1>2/SSD+E)9O,0,.4\0>O!F]1O/c$6;1F.4(<S((.)MB0"AEIH.*S/0 5&A0JR*7 ü%92;¢6L'R0B+/%=ö?$1II;1Qo(;;64FNJ.0;7?755H6>,*7)hDU?* +4.<-/6f#16 WC(50íM!@> JK+>!>)(3 N/5 0)O]a3 A0Uv¯¦q-.:U5;5),=@9,*G>-*"?2 TUC5)7`G=8?4= <+) ?:& +!B.7&1C+D;E)3&!" 7%(Q0(L3]2iG"•BCA4Y(J1%#hM35*$9]>pQÙBYQ0%;=CE"4?P-<(3@$@B/WK/E'$(G,'*2E0+,Y,)%$^7^CD;?%$4-( B8;9Y7/+ +1/H?.q 72&#J(,7Eÿ O;5O@/.@S3C)/$GF&8TQHC9*A2%14NFIMM7„ƒcZ_G`G94@E6F8Z?<SYqe)'6K's!4,D6#<;'[+) "?43 E?P M# ;19G:H ?d@)-Z*'A5"O 1.1*)*X0/M!!!;O?ÿ6?=E<;B?@-6@65B=Q/RK+S///0000111122223333'10?9EE) "2,   !$2*N2[F/ "1.õ-"=;$6(:7@&6 9AC81SQ ÅÎgA2!"8\,82)9"G,7"#?#)Mû;++(_BD93!$42L9?Y3:L56A!2C=4*?-D5.?-/8 7;< +! (T?+ /1\@*,;Oo4B*/Y*K+R=A9?M@3G)= !H!(="J2,(6P#% 4'NCT6:M:'(%*(I9Z8 +*`+?J2$P9EK1#%EODP1@F1E$4S@ 5&c,41@ .F.<%0&1K-)>==<<;;;::999887766>3$WD\DF*M1Q2.7 +11111111,I#05%2WA%V|D,Q$= ;GI/-CQ)4-7L=EBOCF-B1+IF9b<B.T"(Sme;O9)! @>.:"5F%; ':.I?\ø)!6"60 <AM1 -".7/:*7;&8COM#0 9;S.8./o=B’fG#&B,227+U=)Z'Uy6',K7Z/k:@'`D11bc<Cù1'=d2[8'##= 6/4'B-5;,4=')k,4HNR G>' 6>(%=(+++U !V=b;DJY)*"S:%&(8F,2B?@#@/1N*!+Q*]Ske&-C<#*9288#9(GZ(3;FFH/TUMZ>%/-] ?%6>>  !5N>?§"ú?+?@]P<9(@?,[#I;-=ŽÛ¿j/e83G5>P2E.*"+J/+KK3P/RD2!<:69)54R4!#C*8/)(&='95?0C6)WF%9-I[S0b.M(@3BD'/5M ,N\6-!]44.S41].-&2U!C0C.!"199;<4m0KXY]V@K>AJ5PB5=]/25P/E"]R 8>'4$6]Q)>G}0=J85@+)'A%%72$@8B=LG%?D#D>66G.H1AHM44*-1-%.097OMI8;<":KD)+Q,ýVD)%C +8?PH@N%>"L)5M?|I%M#//0000111122223333456:349h5/-++>'N÷"*+'%$9/'."2(=+^#0"ò ÿ+&.K9*CL41Y,MCZ,3úDXE=6 _N%2R=!6B45SI,<3<'01>8WBE3EQ6B4)-+Dú1=('V +61N'01L*V3.!,LHcY1C&:&8ö?;[-5!F&?*9.$<D0@*5`?14ø-9/,n$,@"V/ E=*- Z,>2+ ''34éO7GL!@(>1AEB4&CG6,$I15, *SHKO9FJü,?$$1S8õ: #@ +!&>>==<<<;;::99988777665,JN&Z@X@O N7A;11111111D=<1 ;Q>LaJI08@%AE-'U5&E#,"  4P:<T-'EI%K!U8ESB0, U)DW7L@..7IB=:9!?7+H- 8?E#6=&6E7(5?I+)*<KT $C)F:B0N2)GB3(59$/.&B,/:B7<C'Gk$2E<L()A'>5þ)8$G< E$RL91-W66*8@(."%8E!!9 :?'+;).K "*"[LN$/a &-#93!L"H&? 9PH/J-/B*-S -I%"AE+",Va5S$R@&-""Io)$/Y#6=&9'A7359S'<"'0AX',,*!,31QIP#)P=79-D/A ü  ';B))O:$*4KE37404Q2"KxJ]NKC'/ 1-:)!ÿ`ICg5TM)>/3[S}‡t)=VO"+?,!=(.(TK7Od]&b GE)$>&''_?%8!2?('4-O&@0#F1`A! +(6C.0+ 1246L $A++&P9=B@P9(*<-(7 2;[=(%"G5 ,0-<Š{yLR/P`WFJ8R23G1W2#\DCG1L6?E=K‹fG 86) 6-@ d:"A0+,B,B"33,8 ,7.A05H9-O6R $A.M7[,K''6$/$_'+-\O*~L7)IE2<4R8@>SQ../dttzQ@A;/000011112222333344)@S D<5<.(D7-ÿB=ø3(4O7<:/3,"!=)"?å6:3<'-2)+.)B6O4)8O'A?6 4 9A2. 5#-1G+>+I+2A4!2Dö,. #,PC 8].8ÿB4J.A9F:(&B5:"'IO*$)@)&,SA\-1%/.,`?% > J<K6-O>$:A3P*=?>]ˆ"09)-7.!(A;5.6?6K IA/$,5AS@ 'î8J'&0-^.E/HG+ ?C-V.ôGJEø4R%/J% 5**!1!B>7U1>===<<;;:::99888776IoK2i'J#'e;)</;Y11111111!)9*N -J!/%lH.!!@G.-(0.Z% XNB6*Y0=14$>9M@3Q/A$ /0:<F>F47:&K7XQ&X74+(4'&  *<$4',V"57(>d.O +=:89?BGJ)8+7S6.1.$1JC^0<:!2GH7<6-+9CR4..9Y/5C!7C2$>M0-I>B5)*<F*:0>Hî$M%!)*Sÿ+,*;0..P+; 85:\,/ó7$+P#S>H::))4õ$E3-987?H=2E9i6h/ >>CFIEJ$".6<%=S0 H;K"."&/2E2=8*8K23F-4 6$4#%)8Nù-LC"B 2?&&, +Frg +5'2%/2(.7*-<AW7I.&6&%))A7ScI)6. +J$!#F74()`'$!=Z0$@0t`¦˜’h&@1G95 KA:<1ÿ3 ##F%_.S;,%Da5a:#-%*P Wö%L.8/-üó$/N(1!#U1K'%&2,E.,L8#($!O1:HI2TME-/$2 ^986.">C3%QyNJl{zl6(;;#<.NjKF.:EE))[<@A5B5 #H9K?"&Q&2&%)21A,INA*.H&#+*+1-SY03.7A4;D@9@?!.C-06+OL+0L5J,,D "ü1..J"D 3(,A;1IA&-)/@EJ2SpkW>-Fô0000111112222333344A@ +$0@I$0<@?,'&6'`=*=c2>!%3/KB3-*GJ!'(û;>.4"C.!48#&-K73K%+ +"!1S0C- 6:(6-;8F>`UD7A.D'&<H=0("3V?*9`J*%*:;, ,6,@PM%K*)T34F/%*Ma0-:B76B;41'%@1 t&D190iM';/$74--`D07,?17./ /ûDñ-"%3ø($?71?4d1.-42_5-Q/%13$RQ(>>'5(E>JJ'D*'1ø7A>)3#</E?*5,<>>==<<;;;::99988776CA?8M!?>C2[>*c-81111111180>'Q8;N="IK&/0)MüPU9OC9V31K;R1,@$:+6@HI<0#/+J50P"ö&&2JFO,VF3"1+8"0Oj? F2=C>44%C2*N >89-)')N7;6 +L*8L?:8%1#: U@ +#:Q&9B@YKLS:O)H# +?>(/FF/(,;",(0,/!?%AY%G!=%=4116DD&3=/1<0^H3-3/, &+;5FA;I ú<(: 6<)Y@?-=uF0-6(C :B9UC+92P0'@B&9$)H4S^4j(><;^<Aÿ**<4T;6)49L8:$!KQ- H4=/4$+?M1M2<kBI-KOJ6'<I+)"0E#<"1KM@T8/=5/H.%5ƒJDV!1,"M&+ù9D"R/$*;!++οÙõ»H0<"6-=;!þ<&0-/&9K"+  >62'3.9H+@<7# 076i;D$1QEL7.Lh9, &\/9<N.OG=+?M2?W1>;(95Y>A*a@|6&NF!?&2*kG?:I?*/@>7,ýD6MF,:&R^[+R7(7@HOCL7HF&K//F.)7E/_&;? /!';0& $)<,00*=!8:(#'8-'1/75=5WUTG=MU'C:eL6+PO -JA)`(C1`;4&:+(#36'6AI#8=0000111122223333444T6&KG35)@;$:.D>-'.<@?G(&R$F? $,.*  09G8)<3- *(.153-G@$(",A=IX: +;!@(2=):*i%/@58E")4 =%!=(E7>"96".#5:ý92C<G:B+2"98X?]2*-+QFU!6-52&,&l"P1 P.19::." F\O3T2:!@(9;Z2GL4E8/-/H8]B5L55D$7*EC2#?I&BF83>,3?> 5R"+bW 2&W:(Im6FA`68Z&"5##<"e52:"L6:K;6@>>==<<<;;::99988777(&I! OE/>FT9GL!-11111111IG8 YE9)>(W%<7F*D)N&!5UBY,;6 $0JTFB9U=ö-;=/ "G/g6"+,$&37I./DR8*-=93% 8+0CH,(=5BDDK50Q%)F7!A",+J8A1D)+H2#,baB0_:$ü(<E0/.4= 5;11O$*2VEH1K0M7T10+(F+)@+9Z%Hû>961L3#5FMú÷F%<<9/( =î9%?>@O.@(%4BJ4:1-5ö,,F49'@;CA6C5=-!C(B6/%!.TaHT/!/91:,+9">99 3$/? ,j+3 ?C&52, 2E@Nõ$"#ù75BEcNG%H%[E9";M<7H(`*!T/+Q D3M9H33-QE8#K=tOB]8$ .>B@/8X.:"2k…ÈD@“UC/\,05#3 +-50&J A!CL5-.G E5DB:Q#>B2" 4F@$(!:1'+hn;:=K (%D..+F]@>8+IH=<$!*I0(*</(%1C@GT']4OZDl9OS3I3<6I2(4$F"2C5<D!I6.SP:R5E*?4>.3)L+E3LE,$'eE8ü&6/ >@R5'%FM) $%0"G6:&(:Q&-2& ',4E+@3SF;.+AG6: +@ %S7+.B28D6B;?/0>@"03> 3Q$'&<@J!Y0001111222233334444@G.(8%$F/2$.O2*=4H.A>=-%+[433/O0&.8D7/91N%W!2?LE+K7#78>@K1+,E<46Cü14B((9<)'D596!(E979!XY/ 2Q=8h>B=&Z ?"-55KMI**>BA7#*A"44F4& 6/A$+GB%'5I'"I4NDGö-4:_F9I9D3 $ Z,?% H 2C0;,34>%"n!>D&43><A)8R E=E*"3C+2:'63*"=*6R56Z--502(23*$$1( +úb1%<T>>===<<;;:::9988877$:HK#&6eT)+(@(11111111#9@E2 >7%+:4S-P6.*&;G <"=?Y9Y*5""+(LR:f!|5#7Cm2,9@)2I:h8@,D@95-^Y6(=V=GNN,8125A<7IKJ@:P>RýZ?>-K(K/ 6D:?(c+?:4;N<'%(( ^0)& + .G[=@J(@L8>#A 1+'<?-D;,3U'*70/*7)R#H//+oC2F N2>7 "P8E3;9Z:3/6; 8'%8B= +/D'T2EM=#þþI(ARDW(E(/11 ð=1(:>,L%5)<)-uc&58MB%V87Mk1A:A/+;'$#^A r +?.=X&.*B/0).4%K 8  +#EC2.'%9Q #1E<0I4F G0 I49X3B-+.0G094R`&A'C+*4JK>MK-AOQ)+4*3:)6:ŒÎðÜ—N3()(  +(<D)@*=77.@ 9VC9J )2!7H<N+2+%14?7 KTb32OPW149 +LE.65?.2A_C?@,@3&=#PLP89CPA;f8I/@:69"H3,T9BT.3K;<o(03p EGB4$4.<CM/R'D)FL'e5;IG#/'#j:<F 93[- >, W'ST,DD&+OX= 83W) >L? $ù5G+QH<GXT8V:%#01G&%3HCuWNB0VJýV 3!%! &3"')/ÿHG -*0011112222333344445B$?:*JP],M2;J,'GL938\14'-#-!/9   ++ÿ4$73 [42)2U$730$F":h@DLB+#@O:6 J !!6,!*2M!3b6A6<PK?)('/ý:HI7-%#&.9eS7E=e+)(N/*D(H?;/(ñ)$<,%?;#%"þL0+0CF5<,/*&I1<5):E+R%WRO)1?W<" C0=/1*?0<Z958''BUAA6S;G-92÷+(4I3<0698;X.A4@![3<,;J9.;0-I7?*%Y"(Q_+D8G>>>==<<;;;::9998877S'#hD7!"N2W6f-@3111111111(E@#&".W8 06+3(?)\(<KEGS%?"K"N0(C7;5FO1H2N?T(@U')?1R .7>N+9.](T2)*!77þZ;$"+~+<$:/A6/ 8N>#+L19-'FN+!#J:K $EE5>1&P(P5UEþ&B4.,*GHA#Y(>.?8;K- û[5;M_)A*O)7850-&8+.7/HS&ZR>P4$\514)?/ 886ü*AU43C8=33:W2Z9?hN;!5&AF(!Jp5G^.z.)6!#%(H)-KGJ9A?.9AC72X D[7G5((3;J1&&,/2C"*$-1+*!*<6F>:4-^,%B@" >1/-Vý AL:FFŒ15>:$C/M4YFK:1CK7?&)C&ö0;7.0;[9463,4HƒÑëðéy'E/H7$;FE )$5,27>3$P_'PDN%LD5G#>)-4Q4-,0,0KCB9E=#))6U, +(Tge&@"6,"‡>F=B$62C+9/J& K;=4C:9$>2(!m #!aAA0%J*EE9.+Z-7 GW/V$B$f;'/=^kdB2N0"4G #T(#EP@$WK þ94;-;0(3 K"(%6ýN#9?L4`›Œ‡,1#4+#+xg"q%IQ@<Bõ6"08S‰…½dMg^Oü/8N#0?+2+33,üY7#$0111122223333444455J/;1!S/1) 07R>3ö8-77 82RB&/".F2W'A,.:;@ /64@:4(?#>D.G %&@=) 841-6*'2ÿA57;9!YA2+J<-> G)E0I,d>,19+544#4%=D#I_*<:B%3 $60BE*J4 ;'!=#<4U2)'KA7T/ÿ%9;"&$RB+S@FL>S.J/ C05<*  +1)$ _&JQJjE,W:604&U$"$),->83N309J4DX@313X<$D#?PL7+A(':C3V/2>>>==<<<;;::99988771IA;7:&3&$+H3(!^:11111111)#B(I7K&.@-?U:#B0C5F %2U M;3/6,KKG(2?05ù"&C>$E46+.'#2GA,R)EM(T&-2"EQ)ö!?69X11Ia 7'D%,$"n/a<5?59G/UD 647 NR5ÿA/;+01#?9:P6 Sa;[5B +4,.;/E& %7"K>2B4S3@>Q*O&HJ8EI9)=,BF,2ï&@("*#HB6B3(+5, #'*22(0 ,);,,?/*K,2%GB7`K(,;61;Hg†NfEE5,GAP;J8116->O#57H?% +I85+'?F.#&&3,&W:%:% 74>AK! T#7?[9/*-P V;7&@7%K0]0-?*7,1)##%J=)(F":" (+ !. +,4>.A(BAUñ054N/P4%ê *S\fn§`V@/;B'[V5"&)/F;6%Et6(@:'ST'@IXJ3O)?87í*9h509<918555:)*T:;+0DJI9E6'G+,86O.X'D.;;+N/<8838#a$E+3<*Z(F25&I1A!@['+!,::<"5W7T+/24JGBPS:?UL*]%:'I!U/$(9,1 !>)[LDQ'3@)E ë21>*O#VB'I2š÷îvN$0CG,G!=9E-68FD"1`<M¤óÝÖ½K=20/4::>.%J6F&ô''51111222233334444555 +T <41=E1e7*)O2*Nj#1%H'PTB<A8:ER.:#=B+?F5"B%0;54P-8JU51)(;E.4$<8),B *9GD&C8&&KXF<?;?PAW$9;%8?&7"?:W+Z4A#7,0G6*M7'*,1?E#7?7$*@&@70>#(Q¹$ .,U =AcT&1",3]4^"I%)DCzBD694@#3!  +2U /r\=Xjiw¡†H]862UB456;"a481*+408?Z=3H4;/0/6/F2GK[`D+@ "aJON5UDX:A?>>===<<;;:::998887dQ4%3%N+P'V>O/J81111111123I214DFF1S@9;>lQ+=G.ÿ =%&Y&)MIEGISC.$I6ZR.PM*!.B7+&M+P*0% :*,H0 *)F.3A' 7SB%/$*;WJ.9$5@C( 5+&<(H:35%GT-APQH)0+!RQ$€J9*M'>+)/.2?V=L)=$8<AF!ZC-C>L:R1>,E"6K? ?"'-0H/#(2@-355;"2 8'6E862/l@-+(0U2b<`&+õU0I!.'bH];Il#?D:2!5F-:*F)E6*5 *' +:2Y\%N40=(T/OiH3)":(N 0%")L49BG%>)8h U48J%6)G3+UV:-3D<*W#'Y%L@R$05Tô?.62?[@20ë1'<'+6$A;. +9)pr)O*(@ (3K%,9:?Y2DT7FW!84H")X763B97:!/>+B3F6:8j-J<</ò8$8DJU6!54#3:7/\K +>7/=E("1ADI+@'B   H'G3Y‰Z"/$,&LHGR:eQ3B34O[3Y(=332A2+?4-?;qcA(93"517?)0]C>()5,;N0B +$,ýG654($X'XoÌÇ^4!E#:3Y;6& 012 /CN.So17³½ÃÏg 91 [7?1:89&?J #7F32111122223333444455556/==T16/G.67 ' (MH2D"'*[V"1KE!   =3)YY/42þ, V+6G0@8#FM8?+5.(R&^*5\>#N9+/)GJ0&0(6,'6'(<,<A>')M8@)GP-")"#6#'&":)0?'"6>G'=0<249$,HW1(8H-/A?:V-"364HET8?)7'7&D#')I 0K-DO22(76'@L%$1 2! !QNW <_¡UYŸ¬¨‰`GkE +D2Zn+8 G,4.:F3ZV$1;83 B'W) *&7&  G488 75<*XA(C#N+?>>>==<<;;;::999887?;*&;Xc'J0'TgG!fV11111111,A;LN-9IY9EA)>8&$6, I67+zE!+_3.E7.1>J6 -?)8"%/VAIZ;E;MK&yV2*@7ZQ$BJJ>9$/"&IP5Q<('3$6YC$&.MTROZ]2#Z`02,Axr™S,E>5ý8"Y9ONJBCB25WB%(0Qb"Cp-b([6LU7&D,Y/ !><#<S&2-`>YO..=*70-"58H,K+'(8"4'3:!. +F O8;&G2E4H18 T3-R:K<22=4_+?8"1WILAVNW9 1. L7 8/]&#548D*A,620/5%GU36F+/ +E>,G:E%>6T%$ý%38"8A'B:Dô.2 ,M#+%/F<;*").åøV&?kN]*S6,R$,[C>:'JTT6R4 --29!7()17a*(>!!0Q: %.)&-+F8J), +HF77.@$.<F;3.%0N&:*1RRR'L3>+) : .BK&õ/F%?##:I+FK60+H ,)6:N1'IEW,L@R9;UT#>(*-;L;;->2^G0Y:-8 O1+9 ; *= L+(6J9?KdPH%,CR9+2;IEM,)Q^'$ +OQIB/%>%3"4#D@8/3lom55:@8C0+ø#5MB54AHS#(1}Ç3GŽ8IÂu2*AF636+JGAA--((C?R6&1122223333444455556@ 1A>*N!.,B>>*8(1A8d/!4#4*"'D>4%mE9]<2AM39W72M/.=1[:H-<^.?3J;70+4%ú-1R)R6072 6RB#."N#!;$þ K+/F),-I/4,E!8U"NEEXC1 4!"3Z0$<U@1;CE%-bH2?C&Q5"9MA(-+f%I818'dM9N$<W<57D=3gE/,@=E,,;UÂN4;K*WG~šèÏ£ŽZSAfP>+-"-/)A;8/ö:L$"(( 8:-+CSO&/.SPLU);1-13@$R4/Z$=?>>>==<<<;;::999887B?V",M5$)AB(TI11111111n-@)*Cn7<VD.I9F3$4C?H3+J!]M$ %-$`(K?"13)1=÷i/K6G,MMN$<N<9$;05+MM4S/(,=#*B386<>H/%.I=3 )5+JSWe<37O[5 ?Q(=kz -Ûf.2/P++9+agF/5 996647JQ0, +3U7-./1@/* R>1CJAC6LE"*4%F/7<)@#<:*'1:-0>$@=I<'36.G B+E8%6#, Nô?($S@?"^7#.BH@4FA;E#D>=W7]0ZC&LACMOE"/GDV%$!  +3$CV0.0j*J!&>()%U+O:C/#KG,/+0Tý7,EC@4N,&ö0,=S.'$ÿ6>1.2 +!. 42*>$%4BA*I$ QDY,1B)71XARTL-JR97"r+?;.#<L@I'>'A1=,/:<M.=23@.C.3<>!(:/,0C30-=14>6<'@08-M*25D2/)8%1,ESW73P @K>úAU-4FA+,0K`H:A>5S'(`]W-Z=,3O#FAIF]68%?$?*F=9DDa3"U<oUb5*-N"%Y<V."/>BI=$&I1;'( "&,6)34$(#4?37!AQW& =$H.A 51H<$C1>;nsåD30c¢ štZ +8K0-61 ó5.1/+55 5%>y61222233334444555566.%*&R ?1(Eø6># +%H1 ;E'<a$)43-A!1ü (D?C6J +(79k.+.IC|?4)V9+_ ?IP91#JA)H6;K;9;F2/(()T.(A*5'&%P<C2G-%7=,5;K45-T@&T\@Q<]A :ü8>+A & , '>AC?*P)k!$?86/;:-2H-?`P;&+DD('<A!)=;E*ÂcV6;I=jBëåžkm9I;O;XP#099(;m_; 30_(5O&& +4/"m)l`B5<I7MJ';MC:B#!&6??>7===<<;;:::99888<F*4G7(01JIP +U@801111111194/C2!(J'@FS'/'!;<SHHLNK8)3%3B5=G2%_9P$Z<>L!M*+9*/?B+@,<AH<-C 59=tUV()HR\U'.&JE;#\2!7T*o1@A;Pjp8-0935è>jJ‡M„0t[P)9B:-0KfJOrL80^-L 4(D=.5</FD&+?/û#$VE< ?ö7,80,A\&S:<FG418"!+?#K!+B6://O/1b!ó(5=.AL65.*N5,G'fS:1U*/>=8NEBYguYXtWh4CdP>I.+!,D-4S/(AL"0 .þ7@a/VM-.@L.B=.G40*2RUM--''#$;1GF@9;ð3Z@#^K;K;1!63&-7ä$HG +81?E:7;`#5 7&:Z*-B<,HaBR0^‚9%R36F=0#I@A2a>O8%42-B7*ü2F-+?2=!/A!"Sn*2/0)F;2,8H<=6,A0!?5;E.@>8>5ü$5,/>)'5-46,>:@O2I0Dï3@Dk?>-+/)>5,A"5hiUIEFQE)d(GN 57-K<B42KTJF;$4 [.YL†(CX"G+889;(5IDGE45&:G_0*>+9"H!+'.+6,85<P//+)  "b (M$1/ .$@+T K­&)AÁÁ/…;N?M4-89"',/((( 8>5)$E2222333344445555666)1- fA8B(#/7K/ /L1-MQ@A&(M,)ÿ(;>7.#GH4;F/%IGMB.% K<+2XB'3[a-/2I.EL]:W-:$Q7 +%"C 6$ò;!8 =+|-3C+?+&B,#':8/]8$*M( +<VC`>K"! +==^&4!;C0.6 +'(F &!WMG $4> 63/-4G2D()<;"5-8Q!13#;N'KO(C96C[1%sbŸíõ㨄W\>+%$NS(9A"*X-,&@F; T{@h)43-'N+C8?9L2I:8 1H666666777777788;::99988,B? sC9/2BO,3`+a211111111E?C6K>LEN@?5H30!!U&A. CVQ:#.*<X)M ,/0?1;<#%<@./K$J,F71Z"(<=,.N#d)7(31+!0)80!0%#+ÿK+73J'=6$1A@%>PX4FI$M&KG:;DÍéR1R-JJ'QHJqOE*<J>I+5:D!:$'-?)1)7[%+P +:5E++2(A&0D/<O4V*" J=0/>%2)AJ88O7>*,HAR3+J4' +6l^&669 \]@7;,N204]]-Q 8[|¹¥‹ˆt}8…?'*NB.5'F)õ+)J+61OE400,.N%4:&H/ R8+V/9/<:)5?.-E!#\ 2?YMb!8R?2B5IÙA$,#I63+> $?c'ÿ)#"""2K(Y "e,c&=2 +&F[T!*R6/M:E:532;=8*::3 g`1J!;R7<3+H$m:,4Bþ9Ch1-13IZ(+'3$*GK,n(@.%ï?0 A ,@@ :2()L?LJ<9">/6W/(6D$#"/J22=EA=8hCMù5%':2C8DU1=TP1-CVTW&J2-D96-8Gi@5@t? -"3TH7T,*b+:PD@]C*W]D& "RC616G1MGDR8M394@@3Q8LC15o:= 09GYj±% €ß‡O`R-&PT+-$<B9)>$7*2223333444455556666"0D.S=+y;F9//Z >:_E3P2JL.=#K"3*86'ô9CJ-!'&15(b&A%=55/.C(!%-Q5%5=>\:.>0!64 4!%0%`?I.4#8*#3.EOQ"/-:4.6 6300):00810F#=7^[7H9*-:&0# XBK>L9*'))71.$î;D,N<F/;9L&"0C*R7Z KV$ý0F#&(EN?=!&@0Gdz‘™½ySN&J*58"V,H5:F=::?!P.. ?A?1-06ADj*,(8'(5566666667777777888888899880 =4ASQ6@?81/+!L11111111KZ$&@-j4!+CW#?!X9XDN1U.#F<3"#D=F;;(2=,*?",+ûDI18<(S1V6*04]25,C C&2(b-5 %9IQ/@JO51&H4E3{@n+K& +2BlL;1Mhû'19QaQQs:+7,'CIU .#_IzQ5g@4: (X3JL0@V< =40,g,.1&/1N#"BQ9;NH;8.0H@U>Q%.#M2)+5-T*L/,"(08ó>+B:&`3#>;-B],C@-/'2/k Lq`¦ Œíá*Þ·{Z6!4SO9^4#F"L,(Y'05B :X4'WN:& @V.B1M;( >>-F!54/2`.K-Q54D8)&&!2"fRGD*)4yF-&325#(2?AFzF"66.8/&B+L;H#E<D<, /! 3L56E'$!M#Q*6O*G'7Q6EV.UWFDB÷O<@B&?203H*Y!/,<z83!(=?3 :>$9G081@G+,g>L212;_7%6"A-5[1"k7)5'9*9H<9-2((U #\8 j>LASG(1J]C-K@Vþ,5MU&Ff;CG:Q0P1;.%1,E;OV4//-?A4BC3>?0RC(;2N$(GDF36&-.E"3Z#"?%:HöQ=-9&iC +)3'?#, +KZ$3\”äRš\ø¢bG.K9f9<Z)N9#(927D!V2RR2233334444555566667K[:R./&%B;)[H9~Tö(",+W[9!"*DF5 *9:&="+)-6;-hK%.'4O)21:DF-)!,$8@&, +5$"<21#(c0-;I9R$:1Z#J5?"9%@%FBb'74!A7SK++#M7-,?5;19AA=A48"F&# @p<<4)9/J<:1ý÷($1"A;FCS0!ü2>]&2\#P!M+A0A86+,0109:1/'$"<SFl€LnF&'W,E6.XB6:<B5B,3%=2@ 6TIR2"O*+<!"1A3"";<8SO55566666667777777888888899988L6E[J%(†8$9?6%4T11111111-'C4#6=I-A"QNLFBMH'-1==7!1"fA"R&7Dr( 5 -;5D2-8!4='6MIA%2<400&:$-> +/-4FdQB5G4L‡Ó\*2.G<w&84+P+2,S_F*:RW<ú 2C*9 F/7/?00&0@bKy“V'FG>"WCIBF):';#45jGL)=9'o8'-$O806G7?!@;D7K))Q5/-#X@*N.IG4:XVC:B&gK)3 3<$Yj•*"  å +ÖÙÈv]8=8+-*6TY:%G K/"!'(;>2,Z<*Aþ(80'/.'5<D+)]7<ký(!%=4&A'ÿ54R.W,)W#EC 51:=P3>ÿ)%&5Z&43\)(9HÿD-2);-;%+=-TU$18?.X,$#?GWTP7MAþ+/==:)/G)*,+F:-G<'0'(*BZ5.:G/&Y;*$6&$"T @+&0H0;2@&SJ+)*&!2* G1!0H$E<$2CGB ,$25,//?.Z6=<15>)*\5D6ü,"Z/&)I;8AJ<589$7OGN +D33 4G#*.0&D6I@pM9QE=(3#K7&610(6.9$82%/4)O$&;3N9,5(G>BR)=8/2'7:'L1E3^S'+(@--75?8:n‰Ì¨ •uO+ ))-Z+ (;V;'%#)5$]S2333344445555666677@9&<*6,4B8:-%9!,-;"A,-4 "aS4(1 DCK4C'/;*/))5>ÿP>';%+ H#L>&=C  5J>2:;% [@J900+7 )0\O.30Þ'8*; 7-7+] @6 -5(+H6#?K#(!?'""@1!0TRG%2O&@6ô52-R9-C S"e"_7#ÿC7)W;JR.$).<DP5/M1 &3JB_7QwS>B5FB3^+ô0+LB9,a8B1$ð; @S:6B-'3(RL##<5-73A55556666666777777788888889999994A63OA(WF<9*'5.11111111&=%_0f)E699A8U@<M+M"P:89U&P(0$)!3FQZ([I93- Z*MCQ{1:.@>091$D4$,(/,NT?5"*&$:SX7)<;)<t®ðˆ:D=B;*2! @6:?8$ü'N<WQ-C)FK>J>8,E!,"64*%.0e”Ï•(F!%1.5 35S*;"+0&H"(<b=0=b89-!9KC;213#'2C=3*U=H"/?*--0)0'(5%=-# ]4Kn1D4B+)K732/Z]/*z¦Ó …5+o&>©ýo–;e7:C,;(X  +3/AM7[(<>P'+B$Q=53=ZX2A</ A%4,D-3:,r N:F!E&:1%!b@4AD.Uk@8K/ +/O2W*2'e8DK;"50O*=-1 3,L\&2>]E01?"%7:!,5mPIB3XN2J EGp11H:.:#*P&)M->L5;!6DO;.(,1H9:50,C(.M/33+?LmT<70DDC2:='Yù+'+H'EF&F86A'= "&hR-C2Y"7:05-5?F95&.F%FNV7)E6YM& 0.<'DIP=?X  +CMY=31/O@.R* *B 5B#4Z *B.'$?4,+Z=1?EFB?=+$$V<5720R"2*&/C >@+%P2?F7:M=30*@3xxIG4)<A&@8 Z"2 &BA>/F-I6(3333444455556666777@F,$T65>-'14$<D1;%PWê,38 :# +#+@,2ûH2=151÷C1W</I1.<<2WN[' BI%CE&QA@(,=I@'$?2X$6/K!&?8A$72A<U"3(O);Eö8=83+2@MC+6<+!,'0IH">V@)%--C ( 4Q0+!*hy”|,:12NEL651ZDY81 X e</3D3CK$!<AXAS93D=&::W3F1*8438VW:b8-:<7D+H)8V8?+'!2H55/ GL:0@4P"<7#9+@2@>J555556666666777777788888889999999::455555.Aô/>?K11111111 RT5419-%:FC3@\;  )1C<.P #!,=$W:AKN6(8DB<5ID)@LW2ó(-FF@B=B2<C0K]>;2/A#79EF8NQ=\;>VoWKe+)Y!=7;11A]2h5:J(7"+.-&0,/)A87"''*NE;%N*&(4J!R¨Þº‡<UNW0<I/(??=$KE$3"^_07,8T57:23@/&C&</(?9,&2R5ú:8;4'O* 0(3+9%^3,F,4Gƒ(-5+`+&$^UHyn +0 š1hb *² ÕnI%/LE6-CKX!/PP>J@J7@P*Y JY8?&#2#7@PA+.6Q7üKK2A=JY=>84Y/OG8+&3U>N%A0".a D@-MG.03&ý7&90%B=9 5UO5G5øC5% n7%-û,b=2PN03U9+/14&#1K'vU1-26FG9("#' '>1 2<.08ÿ,OF365)6"0BL/*%;L<=I97?:C-V03B52/8Q R12.+.MiCõG +9(C.;[JS)@34Z5-C 3&5*EzCI2[S=:>F;9J;9R1&4D"I$R3=..6U.5@71?@F<L*5>4+'($8E#1AA %,,KB^06U:18%L7=5 /B3^"/A)-"5@95 ;9$L#!,K5%C[>_n<:B8B3i4+)1BA!!$. 7))BT3334444555566667777<74'/%>QD.##%H/)1D06DI3Q7/#//V4 0.0/6&K7'";41,*V<0C"?%.:E./9;0L769:þ:7,.0N>!MC7)C3D"T;B +%'0,4 "XB0-3a%)9E6mM:=<E471D7+5:X6%>398W\×àÍÒ;)S=-@?)6J/IL3D'55'><"C%Bþ2%'";+'7<D1*2;&/? %/7"O>7+84=8+5&?02"*3B69 U>K-0 ]8#1036K:055555666666677777778888888999999:::::555555555 %L\@11111111N,5;(Q8'?A%7=9W>5C=IG%8GY7(9H? +H142*03@(?.O%?/k9,.2)79:@!>+8RGF=<E)'0P&'%GIX25I6Q4@F(.?'U?B$CE$NG%;<6/5,,+;C&3)T<G0:D6.A40G$?U/38@&Y?¤ðÝ€MOG@L$0',2.ÿ,_*=5==+;%h 5<!$/ BY$3P/ D,3:(#H)00*(9[@0!@O4,*)-O&5Q86(.2"8|hÉ£“:ŠR®P5à h)ÏX<1HK/1//?78!T+B%9Y+(0H;7!.,>&W+' +. =%$)%"_Jü02B9E3;8"&5 3/+d/+Q?Q8532X3D0:3*,ú6)P 2+)025<K-P*.6 PM1 .*7+& 3LF#N-5;YA<"(4=Ah[2925]*5O$, 9N>OE:%W2@6/IB<39KBE&,& \&55&713*-N)%$&5SF:,M.11E=Y4SLC</<\AF0;5=L*/2a):Y%A>4.HEJ#]$[&6H(/?H)XFþ]Z383J$C<+-V2, E9H&b?'%%KRU)L2?-;E0<618-C34<)$LA[+;20>*- (!( 1Ze=!3%](QI@85P!8# G.^:<1I5<5A: 5,?8)'40B$@733444455556666777783WIQ256C!D*<3(]K:8.SKH3)S92:,DB?@ +2(2;;+$"$.;ÿ7=A*6F2%#? HC?)òR<#(0>3E7D0D@J,?;E64@$!9'+A%%99' ?F#2"=-AC'/2EE,A*EK ()/)%=Cd 8 M./c¯Û8?ÕuQ*+)?*=F+H3)K/3,'('?A@LF FL"(6F28\KJJMN$"I3,#9C!"`9<37:9G* )OL J;4!&&8<D-@Q:.eM((1P&;1[555555666666677777778888888999999:::::::;555555566E!Z)11111111 403I?@HG@6:`0Q;t;2:!&B #0.&?@8B9<<;!9H5&e817D9==V$N@('+#.4M"#59EK8B<5(a$I/HNJ>4?$F;/gH:#.'CE)P9O:8&B2:-^I-(1.5[D,55::DD*(!+C00a*PiagŽWI?I"$T("..MAE"8'J5).3#FC1NbU4 /5+@K>+C;S,R1 5%G:'N..:?5T*{uf /K4ù?1!#+a)8H:AEl€Ø& P#aGœC€ +9§d+[G#iJ95HI(5[$2&'F'6 >2H' +,DIM=+C;@ ?LE1?@FF"*DK/3;4UAJN-9 L!Mdi\L-(#>EF2680:1'>.%D, 3(N +O3ÿ%@>A9&6J42OH<:%19-)*J9/ 8-8NF@G4914#18(+(70$/HA4027-B6 +3] >9../L>><l@>1 +/X102B÷)`0<@(@P57=$P_9=A3+45'O6&(0B5%@A !wV28S<@**AL'I !N&PHNB03$;BLH^h/C*"<>!>;T`MG;. 6<F=I\B20#(8(+=()1d4@?=+/$@5A1(!P*>-PWú--F*AQ9:A:;*- +=82G8=; >'8N7A?9D3+W2/ 4L980*>0UE! !7@CFA3444455556666777788C-N/C!EO8?&<23&4/Ba .1?M '53I O;1 @F81 0,&G*<97);,+D/<LDP"A2"6=1L9D@34 (<*,$^$<">#D /'6)?<+.i80@]Næ#.ÿ48#H:3,F13 P?(C9I;9#I,H(&2 ð<0;Q£õbK¿œaD=B"<AJ(%2!BPO#F4 16FV 3F,\"P; 61-C33e#.7ñ,0\!;9:9V6þQi7<B 05L/2?F*3GDD')'[-,5Dh@EDI 4555555666666677777778888888999999:::::::;;;6666666666PS11111111DK7XK5N0_,VN$1)AUS,Y;z99I.U61'?N#,%2$4mIq@7,@CRYJ(N(!%FEu_Ÿ<T8M0* cKK2+9M'4+õ5"R0T%)8)92?\IO=G9CJ4/L;bE%2470&$AGK+<LJI9>C :#)15'@$B2^TgL0>9;AP:5[ 4;PO?P/o @& IG>;+ :=XJ;õ2.B&$496+9?#@(M4;3&!::0*Ph@W/Z$('$>215F:;E1]9E=YIìŒÂX™ ýKÍJm8IJ %/<M6K(5 (;->/2/K 38&BTO)7&%U; N=Eb A "@H"$0262Ln9;9,^. 4^!qO>&QBNT%8/E89&?J"G-EDL8J)0A()+) S/O<&<><;H9JI0I@=M+#5?Q!.C&*E%!!<3G <DU$2!<D91))C-P1I/A!R,"7>42?8!QY2 +=GGb MYJ/%9ä*^5P34O.:ÿD:I)F?'>?AóC-4/Q+7_82E(AL<,MF,G)"3Pc<FA3KF5K]fUIL&8.'L=2"C4'AN/8-!:(198<Z.1=(%>'I0$4L+X-&'08.06, I3'M+%5%*6B*"$7+:;&-/&,,//I If'S H+;R:BEÿ!F-OP/86!&2$1'F?I$#4444555566667777888\+6$&6( 4#<))LQB8“i3)G-0;6'$-1,]O"L$*9/I/XNùOB3çL(?"> +D;L>*@%HE0;7;-F<135L2J-=&/5@$!I&L8%,E0.<Q 6F<(,?'U7L-;)>8!L4)@H3'fX44><'A?A+DM-gfæ5ìÕ}68(4A@82(,PX,'?J"/4[,GSC(JSV /6413V1V.E"C/=;+-/6=1)-DE2)CM:51E+B8.C15KE;A(Q,47C9<9R9."j"555555666666677777778888888999999:::::::;;;;;6666666666611111111;F=*1?HBU==$7C5&U%2J+@VB,H&ML6J0567O[L28A&=3A+>6]Y!*8)1#1glS]AU2"T@9B,IE,,(68 84)%79&=)X- #8@'+C642/Z +""B?!/*7=767 4GaS?3=D=(=A@/9e,0)C;JQGL% H#1K-*1#:0J.C34(#GýA4J0uQ7#c6= =)+916'N:N%B7B,".6/3HH5C20C51,^L\W#^+ X%qZ¬Íz ¨`×s`/:J KäQ.2BJ6/C .7f/=#*BB#=D'3,(/./M(I:3KA?'.@B48H1gP(s*E&$BX=^d?3<)1>7 5øAFR>k2[!9<"#:H 5(41N5 5t/37=;.$F;0Y? /1$*RT XD+E! D7  +:=7V)T)$H1:6`G'6V6!;30c1K5&B;V:M2@CA%)R5>(IBOR>>=/:>E:F?QE<3L/:9O/10!27Q%0)"'oV+)@IDB2%U+JCU]9H$?$9,8,R*?.H7 +NQ6?/9CSN:?2A>+9ú$'E75B%+/<$2!'4(LK)#?'%D#>P6DDRü7($/3>ï*.<+H4333,$'#9%5I SB)G109G JK=:*@=P@'9,]UA44455556666777788880JC=ý=!N4:U@[¡À§p> /XB:9.;)3,T>N*3FSS?*N(0L<B,3%322ò8CÊ.,50-'0DL:%D> %ù+(:ù@+4551(4. ='=(24+JC)<? a.Z>ÿJ)PT<J*R/V?% N*H390#-!,A(z³¼Ý›K2>U8G1V+=;cJ*5V#*O+VEP(=!"4LN179^-'hM'G>1?H.Z?DU(8 \0!$ &U73)d,9)-3H10.':`*E.-6KJ:5134M555555666666677777778888888999999:::::::;;;;;;;666666677711111111F$5EU)=.:"P$:.@Fk9S(P)':$gM0P(>o„`E++3ú#'<7"*%9M-& 2I,BjpQ?Q)5CC>R>/b */7<6HI\=O&9SDQ@2&70=4.8U>@DK::3*(7'2ER3OK&4&8<G1+,B!.6= 4($+(,/+0K')5:%%C1>(HX*F 2/Q:?H$LJ(2WgR0) +'@( ."W-=+%R+@+j;>!7$':('2$3!.=)\).'++<(6@!,ii‰Žð†‚P!ø~[;j&A56#''F>+96"8A)T&+1MH/&/@'U>"T)þ4#M*-%!V93*'7#MF3O%_[u"mE, /&L[IR-MDO0-134 W-?3F+ Q928CA_!%1!" 7h/[RR7B*-9GM1 II"#-7E4H*AM;8*@5T6J.!0F(J!"D\MC0.+-/N@2) rWh0:^aI5QW=F4K;E7"TIM=þ,8BGQ&33*-;+E:6=8-2#@9"%G2R'5P.$=1:%4%6KFQH8#G>$1/+D\%YTX-5/4;MIA(O;)*)%=1/;@1KEM24?Q&D û3*3 1D--XFK=-)$I<J:355K;9??;PR( #6:F@4"!3 C+g!NLÿP8 +2'7! B':<-72$<E<,'84;L?UXi5HG/R14455556666777788889"< 32#*C((=<1=µ€SQ32/4T,ø4,II*>?@**@5T&/*I 3øE65#KB@;#@K&3 4%*6+6?m4L? )K.A!^1!!'Q6C$ù8 >[5 "a5'+&>%9#G<:W*6F0RI >&,5õ,!,;ü@:;=*GWOV…‰v`,'G+'&*34JF3#CC-/:A3(0-@F>/>L#Y3:F;>PR9iA"%jH.8&88.(p* e9!$8;867I,ñ83> X<?05AS>QP!)2555555666666677777778888889999999:::::::;;;;;;;<<77777777711111111+?2+Z:(C,+ODE3-L*37@9(C22;*_C6S1'QÐåîgG,L::=8Na@!b%9N.R)D=2?;=#<1)G.G?K/ /4G99j3cC,1 !O917VT@9((+DAt,*NV:S'I6R%;^NC&G3#9]0-23(K)< YA+7>0SC(3 %I-G\*M1% ]2 9&b/<A"'8I2+@KQ-8O>9/-  NC/?CC(3788>C,I+2,"E9!I?.;@:@F=2'.@10[+zf€•¡¥ŸpzqR^o=i.(.,@I%00QE$f l76($`E(Gì>2(/<"EMP7F;OI0:^EcQyP%D;>,)W"49&nK6T2T,.Q;OB4LFHB$+J0;F3(,5Y5($@LA'E.ø$-$4@5.4(Y)A<",@1*%7 ñ-&</QMH9H1 f&.,3#%E,-l'?%ef5#33P$*\QfR!MI %=ü7185.C>=FC-U$:'02@4$3_(0DV2;.P*;*=6->1RDRU :D ]25]Cm#E+{?"9!Bb=ÿ0O9L=C†'P?*64ES+1:H,TB/A')+C:RD=7>a60J>9 `E&; / Vô5%.5/ö7!7=@/A8L!8ÿEû/.,84#UB2A,F0F-*?0?c@I)=4LW> ,37= 7.w"'=J2R%00$^S555566667777888891H35,J.0@[</W:.#5*:IFqBYF  7F81J,  +)EJ3Uý+A.7Y< 3 ]%ELDQ`)b&=_ 7ý/"!EL HBJ<&28ù?H6<,(=#&@ø;+&!<1/H95W8?D'(</<e'HB-HGN1=-'+9K.<61"Q?-ˆ@V.;>B!-E +Y/4-:)+X%AQEDF0 8>$@TXaN+PTBD$-0A-IIHD!ð, .N"\ó 5X+3'1G(J) +!)\-"#5891.?=:(555555666666677777778888889999999:::::::;;;;;;;<<<<7777777711111111R: 7X&53.425 3Q8ú)+*0+M3$ú>=6B26XÙÔ*36J,4'@7,c0', +$&+$ +BW8k ',?("A?DE? [>CO5#7#C8*0+4D50/'0O8,E;<K82_<þ$52ÿ)+aNbH5G>3*ü*/aN +!*4F!<0:7D&)=.d981(H[14/*/'I9#!557ED÷6h4=/Z21C804.(Z;""H0:94ú]$ì)IHPA G.))(-=7.=T>#?3"'<F5)U‚ptoSS;C>P)<[4;-T$)9F88ý8P5.@%R0$c;#?CX  WM)51'C0"{TUJJ3(QS?S+*C&R@P($39=/F'Qf3"8(7?#2Q.':,9/ ,)$4:B/0Z0-#FH,1 $;c"HdM/0'A&2'-E 5G.M#K+/H8,\OhA)#<YF$X81$QR7!Z /TCz^mV0,17VM-NF64 E2D+?*4I@9%rV;>L2(K_,?0D -bO\+I .#+%="(*!&IY*W.õ3 :4ø7`H JR.EYEF:-_H0 Fl4':J:7D;1@!>SSA2 1E<DGKM'&.J>2 ?3A&T7.K'#5/QT+IP% #!787$H?<)H#4!=,RI 1;k!E7[{*!-OKEL@P4;8;%6513F!S#:=_55556666777788889@*0%B#0)7E0A0;ZQG-6%5K#1$26'EQR)3óN8!,..V%GLý>:. i32 +@!#3+?@Uµ! !-3<IP5DH +5<%%+594/3J'.4EGPA#>Hi )"Q0P,?D7@ø3(U-<!?-8&:13.3&2N9, 7,15-,e;03D,[3$9SBLD5T4(.5KE)'4,J1!(?)0JJ/(,8$>)1+DZ]U#@R3/>$QDH cK@2J*94:.0'5>7B"N 'B'555555666666677777778888889999999:::::::;;;;;;;<<<<<<777777711111111></;@"€^1IPA]',/E <:BS$8Q@B35:Cr  +œ7FDF>.1A-eB.6,5>*N -7$4_0*(I1E2B// +;%P0K78*I>0 &/2:=5*27;O$B$'7HèIQ!r+0W?5L7D*DGx-hnZ4?)A$%\9H83Z3G =7>8F *7%#8T D$-+K(G'<76Y÷C?3*L3H'K<0+ö%=I3#%4J01=9QDAGQ>! H-*H<K3=4/%wV49I3FIv+=mYm>D..DG,A+;<*E.P084>8L;50+D6+'0@IGL#61:G.8j0&/+LB[O649%<TWU{P0F+$A,?D61<G!WjalG@E7<.O#..j&I-&C%3J5K GG.@5%b%#?d4B54*'!'#7><Ud8R+Z2Y>=VEG" D\0\‚(@I9!I"35)#PNJ#)QX8<6SA3*4õ7C-&JY;2ÿ:LF8~#eA[1"L.6]MGH'm/]-*N  F<a,W)Y>16315%^ <1C1F'G6B51'8%8(2GAb/!E*9DeA[CZ%>C@7CfS>)B0R('*=   B*, ,)%%:H#15CL>+2,Y6-R'8$O27$:/*508I(,NPX>& 3T-39$ d-)#N )"3'>6e/PI,3Y+H-E<K?'D/55566667777888899<DBM +&9."@;DP2<9.8)&=3!7%6-/"?70*ÿ0%: +8-#98<6IB58(c+)/KQ(¿x5+&.N>M.=M.60-?."I9L#.H?35#1+A?@>#!9= +( 2./CC O?(.;?9ô%+7HB(#//45<>: )>UY08=,95E,'8)7:&A8F70; .NN5+I +1!3e.(D%.4S%13/ ÷ 7(JG=,7;%7>`Ra?!*_.A&0*.j;*3,U(T+TæG=I0I<(07455555666666677777778888889999999:::::::;;;;;;;<<<<<<<788888811111111*OGKKI;H@-=3%21*-;BUN1S#&(R% R/`OQh..O>UOUX=RVV(,4/)J,/% Q(7:4 ,ZRE0@02K8I6M0þ[)V2$T)83=,; :/!W?3X7`-c5C>K", '6[_…\H'H7W;ýY2N2D!I$-C?%,#6 .+(PA3@&&P>c6$\0)&H)*LþA0GK>CD8-A*&+9ì2-05:ÿDU=FUA)R%3! M&R&0#-;83&CC8.$ArJgt%QE=16a:9C0)2?0Dþ6(?^H9+_8=9>_')9)fB63==!/5i[|(($8 D=8">3-@+2)0IG,7 =>3†W\[*,0')+ '+.7:("M-YD=C57\87-O$f !/>*O/3HC51&03FI,99)$3B)*4%?BI ?('SPc=Q,4:5)6GGD--U;3*Bî1-p42(-3CH?86.GGJyC(6>?\CC3 PZCC<R>3?//.Y#&!8>665E*C9BJ0*!5BH(/2+AH"8e@=<A&_^N )%4/$M==zIF,<6a]<AE6A.J V)@K(*R@M?GB-) (O-IK<^0@9?<+@B& -L(5(7":9#c)7Sf:.5C7O -' ;61=öô";.÷$H)9%H"/$F-556666777788889996E >50881A6G ,BEH5GL4;7@(-M2ÿ;@?ý"L2 B$N÷2L"'$E$=%A÷G30!'/F% E3J8L(0(@G-,)<6JQ;-9+-7O&MA<p>5:<,/H8?E>>'I&1BF/=G8E7.6)'-D<!O26U^B"GFI+=D.5;=*$'f-+A$"4aE>5$%%5*.8?2U=,.3GT>$ýC:*48.ó1DAVDA>]0.Ab*KI@8P!*rO+&')EeMIRùNF(M955555666666677777778888889999999:::::::;;;;;;;<<<<<<<==88888811111111=BUA<B@&*!J +8$P40$%-Y1 D=2288HG'B0GOFG(F&4(<sXVV\E_L>1 /?<GAPWbHA>8.-10-=H %<9*C1'"<>"=4=B5R3&/, I551"$(*:;F?"$W56Z03,10>6Q:)Dm%N9HD'0CB;DG9)F<$d?O5)=`.T:3-"-]0B1<L=222<H4-.4S;+3D'"G9<:D>.C+K +A!";F+.<D- >*$D=-@&c3;>D;/8C„fL;@8)@>J8BD 4B-JA(<CD!N€&O+31*E K/\6QU<RP+=TC/Y8 >-N?'4V4);7;@GFMS%O:<J%_i*9R7DH91><D"7!4I*''5T>8B"@345P89[K)&5(:85"Ee-K$),H ?J>3'0#42W>LF.,AC78@< +LB7B="IB=\<8)M417 :.%+5.5&#Hi +LP?)K(X123gT>0 ;U?.- 6Mj[)B%TN?A(29MGQA=FF7-65%6O>E%26CE -K-R&PAM?.#NJ=W&++AD@5P,0)R1,3/*)<6('"C;0&2I*($DD+S($<:($ @3@"=K9#36Q?2*1!N7þò3:Q%+?;;b0A2?B45D:*C2<8,566667777888899996:P)&+.0@$@9?M.3%IEMPB"9L M 0æE@#$ùK@B.#+_493I22,72 G)O:5$EG#?"1h//++J,'%<G/;@3)JN4OI">:;:GD;-I?!Y1(6  '3&cKL4"F;@8!(3%*(#Da=? +5-"8O73! +& 6::-QO=C5>N& Jo$U++<00+1õ5RP@%3H"O9;6@  1;-;.(3+.5?-'6E-,&1N0S @I3I@G55555666666677777778888889999999:::::::;;;;;;;<<<<<<<====8888811111111Z_B"MKG-c=?.&8'$;58LH\P@AMJG,.)6$3@VPQ2@I8",5CxäH732K#3-5F B1)O8288<-&AhA,:6â8 0B+=J^1, ò(G#4ÿ"O&2< +H-+9:P9:K/5ZVV@5+.r>5*3X68\C---M::(?.>$<|D.%$%8$5779+54C/5B(1.ÿC33 3F?Q: O(ú0=27("HýG95D25FO/.J?pt5[A:M'D341E=;-E96MKX\/=";L -HN/L>4-H--7P&gKDX<F9A!PU(34GkC'5<<NE'CDe;r†PZ2KV]4K;E5N6>X>W#=<&6)(:76* ùAYKAD,PU8B)7<%HV(@:<5@E1G[%=9-13>a.('I2.5<-PI6H:*g"C-8::(E92."0>-4LF,9@.  95Y ò²\K(CZK&F8g%/9.?8d@C!5#&oS9YI0#1M6QM5;D.3>>0&1BMý(),W*Z3/_46V?NEZ +1K(91.1=/A92G*1:]F =íSK'J).*9S43O0SV/+O# ÷K,D.#J'þb+)&6A#&36:2S+A1936NL&E,055. %.+J<gC)lB59'57,% (#;P*0,j9"F1"1;";CQW>$M!666777788889999 "6)7,]L:CL+6=+ W -0D4@\4=:T$E,<<5 CAâBI2S?;R -$!!FII '='3&!CE$!HC321<XQ0'3U45"+&<'.a)&((30"U%12+ (/J/J5d,92F-9L0(=,5<ZP@27H87/A.O !&IJ ^H+;4#':+9965GF4?':%+*VR)B\%D,J> -52"+2#16"kI WR;* +Þ(33I(-&?l62@/%?*V7YL219>M^V?%L5555666666677777788888889999999:::::::;;;;;;;<<<<<<<=====88999111111119OT,8O+S;3@A;4;/#Eú6E-+Nû/I1.87 D( L;4"K'.* $E^¦F AJ=L.?  /,)N@>/28,.(L(.R?:382-NEÿC$G*a7E?09!;QID6G4,. </0#+;,S#>D$+ AE?B2[=O-25G.B34M&39@A(*L8"UB67*H +;,$:"@?BL)#.R?ý)%-0,+,(DC5-(3!E*F#é<%1*: ,(68? B^O=/54-H)Q9D8=#J2%K2CQ-/*J9/1OF41'18M%0;$$*/O#42M'.,BQOR)dS—­°‰4YL^Y,;<GKïL:.%)9?8;IAF71-';.) 7C74=9#KTJ"EE3*7''d'1C$++<B!M2;I0:-@!*@ Y'?4J:6$=#6bGB8'=EJB7I<-LF<L4&GHLäÖhi9>;3I@511@( .<G?[+S-/`64/^&OSAOSF56-J4=C\<N'=)+M^./OJ+2LUN[AVH 4EQ$#/D0<aMT8Z#CCJ:3)80Q J^=DO"\5c:4.9>* *8?54?;8AN`(K9)ô2 S$B)"/8=-&C=#N2;1:@ "E8Se& 0ä@// )" $<D,+!?,/NF,DB1G#0IB;H._.2YPTQN2MK";'11111111889999:FT82;-%!)SS47%+R`,34J`]%49!4G=44&@DI/;,I3950H>?,C!2c<;M . ù.<P[A,>X 48e&<]72 P7(+4'94!)/L/,,*,7*,!SF80H<<!4P51PF89?9OE@-)<5<-9>CKCWXE0 06.$(&,Bü7%7$&Q24¦Îq>O,4<! "/7*'G1? +.15 *;T4D\!81:,C<#8gý&8>4 0#(D:U48D&AU$5555666666677777788888889999999:::::::;;;;;;;<<<<<<<=======9999111111119Ib_4&)*\3:56Y"'=A,2.BL ;)4<D+:%02M14(@%#5LI?/"uI:3R,;=J0%C0:M&a*#-, $@;/f3;63>) D%',ñ~=6,"65"9C!H44$HA]W'8(K1; t6.'!HB'. L3`m!,D68(DN:?E%585! 352FQ50I1U07E)>ÿA.5?/0-)E62FNX783>;'"11'%921F-,G`) Q7[ -,/S5>1J(f&dGA//NÿbW4A9B5P#A[$/859=JQ2+FY:80(1%7$.4$B&,4`=*/O*00T8A6-0F6B>Q6)(5D!Um‚ç: +·uMPO5=3*%C>2 IG)0& + $ 2D(c1&^J1'/B:#N-1" '"Q"*/  +,0dV]?OFM90P$2=#P3SE8A,=2<DEMI -F)756 .NA2I?,7!Dtzæ’x^ND.63><2*g>L@A#@R2P6S-:^40>YB+;5+31;lT%CI4$")$2?0XIR+PRHUEO+<(>\S+1HXE2J4>,1IU+ 6>(Z 94!TH0(L,0/-7I,657/ ';.D >&K!L0!8<@F%E:,O-?1=*2M'8e.;W20//0Rb#RH;O(D2777,#38 üL[7WE%=%<A*1?4-AM+.P7HY0BB/CC,1111111189999::]4ô:!.-GD;+O'"#("$20*-W<*W&M;O5'$%L!M1*6A@*5!=4$&6 122=(2"(6ø8 #$00P1E1V6<$?XR70L":9+<7%#þhB- +E9þ?+ >5#@B ,X) B', @ GI!!);).F)5@!/B-*%!,735 =* '6%$9[4Ps,«Ãwœ!1@V/?:;7P>A71\;'((90"9-#DMFA8&T.5/F( LA4V%3#% @/BVR:/L FIC;9F555666666677777788888889999999:::::::;;;;;;;<<<<<<<=======>999911111111::;JEE#DP%4),=4A=E -I-J2JL2J46J2D=B7' +(67J%8*) 9$S$1KX,$)ÿDS='*f\! )@R2L!R|DE"Y=G12)!,(?!:6XR3A):%Z5.!)6=D89'3C/9P92QB'E9RECVü +99$@)##?)[A05>) UMxAE-(@/439:%?/%89<.b*$:/;\2;#HW-/,-FEAHO0(5178E,$'<@$L.O8;K[<;:1)9+9$@'4=*#/X4ü +"P:0B1=(0F5C@36+X)?-I0*1A:5Q=GP=nÑhjÖׄ4OM)5-&*?OM:&BEF7_*700"a! D(*_AA,[<' -1WM(C,C +'23 >*0#+!/  Efm]K:@@MA<F1$'//9KSHR9B"ý#K?@$3*eJJ%8$7*nH.F%<91-G9Pt‡gJ:5!*5?-$,Y23!5GE<1+G**4RS4A?#2"<N?<N.B>7<'D6TvBO3f, 16K22/8+<(0Q;$I,55C30}F+/I04:)F43U@=<[R14KJ(7<')8EO6F7$1F:>OE2Fl?<&0&C 4?;T&#%;#K,0 .C8$;Q0-(VD('RC91+,7H>Q8@(;'J44$.>#F3:7C#)&G2*+.U:<;;E>O:2P,#Z111111119999::R?4J-721610:"<6>/N>C"0P7E +G9-:&I,@6UF1,`*<I"S+%F9% _B B/LE5A!*F:1C8%>"8294_D0)1I6./'=(J*70O7|"1,:"7'8>9 &=1>)%cKBOD7FLB7F16T67:+[0H'9>1/=<13&(< 17-5K//:}…¶ŽÑÿ8E/55&3=;&$:(3/D&ÿ9-,D@4`<7(3$&H)Q )//A>@'21D1C<JA,*?: E$tKHA^F555666666677777788888889999999:::::::;;;;;;;<<<<<<<=======>>>99911111111:::\(9.+MCFG(HY9 IL@@08>96:7$;4Jü8C+F7P 7-C>J+/Fb:$AA06Ds2F8 %' %OW@H*@6)=:69,*9R0&eB9.15)1GJ7%H'*=()GF@7O.C >X0 A4E>KQAR($=,9MW*+)Q B[7?8F/$**'7;'*Y6>$ @.!'/-B?#,\,@_M=$7?ID8-5_)?C  .8"0:9"5NE():8)I@) 9KO<(*-8H%E 9V:3?K7)L6B3,<&QG(XN"- $?IX/ADT5M,M98BR*" KL%5}Ãö]“Ž&Ž+d['LA,7b&"/K$'-L67T2!A'0I7;6 "%&!<(/??A/%,>>'6O]*w5d3C4F?F1<08P06;F42L4c523<LP).O13@_{a]\8BQN73@/UA^% '*W/2`I#)(6=Me438EL-8H_<S+W?G.4N:SD":P=7E!4E;A<pW&2;`I7;[ 65,4<EB YM"V;EXNEH0>P29A7%=B-s*?I63826E:<0`)#69 $V,;.6C0:7'(õTB#M07'A*,=!'*A2FEA,7/.C:M2482# (#)ý'0,$LD@2(-"1@-  %9E>A<\"N,,411111111999:::2>H#/>,Y1?- +SM(B)!>$I;S$@He*#6+)C40Fg/*:@L97#,:-9JC1G6&F?&) +-M():.CoM1%@P6B<BYu&.,9 ?G(I'FIN:066#390,Z'0<6. &/52<;U!(,ÿ/!JQ0%MY40DN#5ACX"H!+&2.#!H25eDém«ºÿDC;3:jMúR!$%2(J53"B?1-2"(R%8B<8EA:?K^6K/mP<&53=B-M5B K$B:>!0g:251S?@55666666677777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>:::11111111:::D/7'&6%n5-C-U@9?$)G;3D:/99!/.%50'1ÿ8 Y3(F5:=:(4"%p47258,17LT97/?)1*0:]U&%K-OQ8220?G<5+%::K3@5M+M#.F< X< $L0$:8'!NA(D/?F++62B009<".#B<* 0>3>HW?E.V35/L(=.2M"/"3P2 3/#:BB*KA/9%R?+9T(=0 ?5@2' *  Y38E32*'7A%CH::P<XOD2=FGS>@8Lp0G293N% ;7.#-?'&2M1?1*X:G;"!1#'7HZF?eaûÝ2i3ç…k<B%FL6A+4 %8i 2%)0'/1$I$-=ø$M8)%>W3"2 4G//]O?")4Nú8-.,3bKAK7-L4<..2X*B:=R'0D8', `úC;@48N)\“1nnB98.P?2#1*cW=LR:-E(1G'-,DD<'DBBM,<& 44C7F0B3B.4-=6F0A''A*8;;FC336?I<L@+>, 95M-<,PQ"@C[5?$&G=5+#Z=X<'"4GJ6T H131- MA"2'; +9W7:FK/"4!=7R/< -Z+.>.4I(D_eF,CU:#.I#L(M1-o?ICe873F#), 9"!1 @.@+0>3\1111111199::::@G<f-1Q.C2?*64AH5H=;9^N8?.X8+ï;,+; ? .E9%9-@8)A959S KD0ñCKB1K 13ÿ.R-2A+ +:@);%6(ü5%BG[5M?-  ;((AG8A&<H+')";''4,92'"C%4E*-1!#7N,'0!O;+H36+"M6(e6$R,2<H)8&DL&`ÑPƒ//).IG&P>@-P#@F*7PI2Y35B4'i,D <P#.%CB2D#4A1S&)055666666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>::11111111:;;;6O2=,jG18DF@ .)I-"0")1@;=(CB.R7F%/,>B+&6#!0R.ú"%1-4?,(Q>g751(GD"K??8b[>XG1"5D' **',081.01D:k>,9-nQ6<Y-#7 :.X2,C+$7F834;+ >'!9#'%4JP%L']*/0P')-^32%61.ÿA2?PBN )V1D3?,L 8::L&ID;I: XLZ,4& M96HL$$"B=;>.T6+U::'>a'4N&DW?0##,$2)/- >2+>64Q!#)Z"96)[-66.l`--]W=(†™LðÎ=Ó[2P;B30-5ô7@p)I8)?'53&FP$"H())qO60-,-= %, þ3.-M+"1M 3;)<GD7B.=J0E486A::)06*(Q;/b&>F:@0BZ;:.CB!7,)0“šJ™H%C->+-9!2JH,c//.K+6BI811C<JI;K./9%&6,îY@K#5DCGA1Q#<RW<T841%W)::E6G2:MDP6C 8'5lJ4$_*1VPL7="d9+A*K*7TQY+:6@VV6W86 +0(GE=-* G9 +%?1*9!@)9: &?."=:8%BQX9c->= 5X +) :0W +.P2RC-ýY> 06'6?.03:3ð<EJ*`C.$= +? &,CC]<111111119::::#C ø:)JA+7@,/2 1@'A6<7)4>'$D<S(+#1ûRð&+C7&AOA.*72* !þ<1ÿ!G2)>? (E$=@L20"&*G +5B0EG#?#R!;?>/*NR ;$0G ^"\-43C(FK171YE8 3.;"O3,-AN7&,@/:$('B8+AG'BU0( )Q.'u55?,Thtm=3PI2#57Aa7$ÿ"`0XF46/+)'#?*&).u*'8S##2E-@CDP7/O)='g:2]*7"JY@5666666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>>::11111111;;;;O@84MJ=3S4W?OCK>=Y*V=b)/!4CBE16,)1,:/A-S.A?"):/47@"V'4:.V;39;)8c'5!I(BOH#W/MH*@EX;S ;2="GB;#;O;WfyA2'0<(2g"!E";ÿ;#M a!78!+<(9`A.QKü<7?FO!'3A,2P-GMFL'N+B7:%.H8J68L4')/A/H<'iF7,43/F=&=&:/9%JI.d-.4=: 7@J3%+8S#Ia<A8$:<FB2RG8"CB?F">$)(;''"N.(N4: S,)B0@í9+ZB0>k#<:(^G$SX|ªòô•š6'77O4(0$"92G@b 0HHt0<$ I&&5?6<9FD*-ý@&4-9û/2E11Q%)8U==V"^:<g+,1(.+0W:H':8717G ZP>:73V0idJJ€2M@¢fM'Ib/&F265X3-@4. -8!!I':D 5J@J03(6-75%$8D#Keÿ%>4/:55cI2<W6>L0$.)3K9<I' N D?>,1=O#wVIY;B86J1<!E6LSU,C"431;F0+7*07F40<($AAB6T8P71?/<)I7?>< .M2+,HA? $:I9.@=%3F0IN +""54 2,/2?U;E!#-;3=8  +'%88@M;,!11111111::::''I=):814M/CKB/J1D<1Y)A,-9\b_WLQ#<#(?AA28kC'*-0@128R$:1M+J2/-0Q487 +8K:62 :7B33I)5@k:7) 1:0Y+N8%kø1%S4+8;/ & 3#7K0(M0:1!>/5,õ4P;&&AB*(@*#;/8UDO) C,09.5:<K3@?"*B14;JY54$E/@)"%aD+.=AG)NC+6N61.@ +/@1`25*)S *,3 CI@9#E)üI5666666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>>??;11111111;;;;;C$3?'`3FH?23/#P91D89":#XM/")MFZW%"'>L.4BH'%L1'I7Y.B21P@783f*"9=H=LI</E<?L8'"LF,7#+.8?G:MA3+6.,Kb<O)Q=&A!C.#&HVS7B51%8Y;)25[@KD8(2I(+0&MA /6&>P0?C!LG% $9F6GC.MR1*-8%U2k)'Z<4bBY,:>U@D?)ý03)I.K<4B<8%0.&&DRVF,d7D'C36!MQMD)11vL-L4P/W0;8@())*F">:2ýII9 .!9GG %@Z7'#^=8;ol‚‹=e\ HV'I;+!<'#9O: 58";4 -F@3$L1+*G,T$2=6"4Aø&E9%23;@-S /d`j+A7A0A910U6O8J7*A"%&@1, @#9-%*H(+%:X:A€­ÿ…hT%. D/>(2'B, +9L/^,<-*D?0TIFr/vRF.A*GH?>4[&7L/W94'Z&XM,'9E4V>0=487?83OE#E(3VL.;/8'1%(:I(JB)>OH.12)3&,8?20)Q".27V;:3=.I<'9W"G GE4#AC<@'EO(L4& +<*1C*#C*OE3CD`86 @c.-3";%÷.ML*#<7 +J).4 .CL?KSZ 6C),& $.2G.11111111:::;*L7=3DU&KD-5**L22D<1lYa@N=R=ÿ@1O#IH+","):(( #,&0610X,f!C7,*1F#'K,?N'* --4#]?#DE13& +ø9|E :-(66?:O^".4/JUY-1&%!011)7-?-+70IGí791+>5'2@7<9A=D2*:*E!%BKGON?;X J7H7B8@$N>'W2ý0;4.C# L9>,k`&"T)(Q+/5I'01099/E(;&$%O-"p666666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>>???;11111111;;;;<9,+Y/(4jZ<b!##C=CE1;+4[K   ."2^[D%"ZK>J9* +'A) +A&LU\D-Cd3#$6'S:9Q>5óHCA-!*"D<9JúB9Mû;9;:</9H,Q@!3B<@14. 96þ'=+B@J#,(V40!JBD>G5598)9%;5$Z.6O!%=$/"-   4-654Z1ò:40 /:N/G&N3.,#%<6"%#0S9Y, Rk)-;$L76@4J-?&2H0:5)83$0T9%ZLX0FC8%R$(.7BZDS$6 'A8!0[K9!0J"@PQ +46+7% K;GE3U>?ANfEU=^O !X1$8Aî*/,4*$1K:#4!1FOü011IN$/K5"I&8<=>849/cF:YH5|Z`9CG2666$F4@06/G,M>)#6û5>W=T;tEJ†ªÙ¤|.+%2k2'-B+>L>23.59<-1-46"R"\123:,*Q[#$ T$(A=DR1K:$6H/01576(*FZ1_"<h%A9?BF-+K]%B\,:5HB62RE=4c2M./39/HNmTI:GC/MUXö,1ú\D-F]R5+B*K7.&D8<$, 5FL.%-ç)<$612:7C'](8#!/)5$A:B…(Q/G?1ÿ<F#ý2+[2K//(&62K6;7K0>@5;.11111111::; Z!(1F2!M9<C 9AT*WHX„¬vLXJ%2'9; '3M'#/N6/J.C1þ3:40MSX]<?>:>2E&)66CF(ü/G/0# VE):"3% G D\C(-+=96&+H:!+òBXJ/F7%A%? $+ ?*ë.2'92÷<./=+I +I387J;JEF0(7_/,,M$D-#%<'4"4V444%4-F1N *2A62;C2+5;U92+8JRO$,^# )(=#L!)/>5+V90*B/466666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>?????;11111111<<<<<<D*5%09/+N@6H'FpI-9GD-UBKKSPT[18K54%-;UKi4,F 5@N[OH +/PS$/EE497),XY0-[ÿ6P)<R5;-11>\R528<.-J4CE2A%VS:480]- C1&>)DDf12D>4<  NE4>(5 >.=G&&.-3Q"A(>.&GC</#G+"73$%'(F-&93!>'3@A9P'E,<6!?D,V>'*CE=#-#7M /1%2 C$5>6:/3&/'  K.(9#w<EFX#T>=$69+ ;A"-!#C 315+F,*.9x$]YrRDK9jG>CGE;.HCU-Q4('7D=P5"%#5V2<O$1MüA"3<V+51J17>-N6>+L6"J8R]PMeR G'"; @7%MW%QE>8"*0;,W7DJ6U{w—¨ªŠN/X"(J'h:F74<BO J<=;!N/NR>#4Q8JCI2)&'8*,!0@9L20<1+8WF1=%R +V3=G!"-5'$'BBH'QJhR$97E-ha,44%U;478=)%89@BALe<OBL(&(?f 53%6<1X5.=aW4(.Gd/%ý65Eb(*F4??F[F#CF,2L U?/-00C/Aþ,3E0"!-F1;K>GB Eô7*=;..E+,I;41&+$q+.11111111:;7(0 7@2<4809&&3=0<xýØn\:=/')  07=&<ùLMÿC%*8/)!,'ôG;>>1PO&K=C)<4'A,',T"9 + CS%7I:; -3(K6)J*;4*'8YE3#+;3"+J='>5B"+</ÿ?'ø+1BK1F<$H4(#TCTDMAP$L-ÿ+,--A 2E1:'1KO*679@CYC#K*>SMGLS!?;KV:4D +%&4+Z@DE?;PF,C06;@:'\CAL6666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>??????;11111111<<<<<<FEQ0=FL=4$A8-_A<0IF=7$$..T3PH.2/@]6 ++='V.5<2 +Q1[&7<:.139G-7#7"216P?!!E^')$=,E9ALñ8]'!)Z' 7 &EG"A &3;%!ò%YDSL '?;GL *K5!:',24P.L*é8+79O6 "F6 '(HAýI6D6;B7þX0L'7?,(I8@;#%-3..#3!5&-:3<9+DF1*G+*BIIBD,JVF5$ /=Q/[3<+E/U-_O#/-6ALH +.H'36g3:I7% 7&G.3 +60:E305)9G5LG9%0f#]Gd912dEL=1B03AT3`) 9=A4)9+2#Hd>1)$84&'5K#@_4'4ÿ$B1K768.<, !"uo6r†¹jO;L,L3.P$Z÷&(y=R8#@@:4!L%:(0'+dz¢¬Ñàð¾mL1I6.0%S69Z+9J.JRb#>I3=#8*8; .D80!B4(8&83KBBIcW->*&2$T'1ST6 8Y]#V.0B2X)D2ng9B*H+!DC>8F H5D1 0P7E##]^ZF9I:nCIb1K42*994G&(+=E8BE8 &(3,15-,:123>B.>`##h85I'7 A:QV@.Z?H/*"[$O*#&EC32")/%._KJ15831Y&%,CN) OO<P11111111<>0!÷%7M6&#/8 üo&;B9,#Z¿@W gQ,b+)"-3 2/J0##G9I4$?E4+@>`,;]>G<4!:/(EM&4@U6(#;^56)A_;D8#2?93 4I #+(13"E"PO<1QAIBÿ.I!3,"K"<&J?+D0-6D%>&)n@S9A%!Gò1,&7+A@4U>:17C'=5;9T/B "%$!3IHG3*;?:O(!%C]Fc8"A@.<6-(-6E(:9#77Q$\.6666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>???????@111111111111<<<B6"/$B6'-)12JI<d<,P*3XKK"O5!8(N$-RK4]03(2c=$@-/-%*DLJ@:*D< g')8m9LQ0/>@*;)6_?38,3,M2F;R=OAF"-7EA&3 Q9H01:N-$'-:O/L040)4OV=;+54*:&+'@ 7>,â@q5!6(5?1+)'Iñ*Lm@D/07U5D.5<418=7>:/?B1*(J6>  4>#K3SJD;OA+:4/6>&:T<3H7$;V)+..7B/(IF6)*&652FDL/-"/9>%1OúB95?D&+*4-/E&*(43.;MC640<1/T'@!+=6<;1V4OYR1-5RAP,,7S:8B+/CM&+!;û`97 +D6L=A/L!!:& +*&+C+*<K +J673W0C<;%2a9<ÖÒ¶i,PJKEF&:0E-%Hõ(% =<,.-V!N=#/-<Er½öƉ\.H?%L_R0@#U+.1/HGG@)9<Fü^#:=J#7*Y$7BJE 1h5vRDBW)<2n28M1)1@0??$5E:/Y@E11BSMRP-@X'#A<14U$X2/;H9X1$A(I/%G3j;3A:C78S/<$<0 ;3:2%dEG:(40=F@5K*"F$ <J1-3F!6CKZ=?O@6Z&.1FoMS& 6)< EDH0+'@G>5îd/7K92D5(7$Xk<117111111110=M1DF%G%!4>D/*75-)7+7D@W–[Ü/ZP0<!rü@Gÿ2@ &B.11"#N4""#0E[!??C#&/,cA'EOC$-"F0+P8*)F$I1"#+ë00-:08@2T, 4%SH\NO7?,%B <%<"0>I#7 [*KE=>3+#2ý3#.$!;4AG3GM'J3j?*D<:GA5@3LBj4-.[8$2(UN)<d>1@R J&8!62?&"#/G(;22QR(\ +K&@3ÿ19&Eb4Fk%%>666777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>???????@@111111111111===^6#j8:R8#O!.$+;8:+&&A-(=,Rf*B9:.6R@F@_S,;5&P1-(PP-><!/+<&5D1+8+49465Z5:HB1b +.92,VW+&18#"!-DMYVL6</:$$0N&üS(?8:80*I=<5"M0%4A%&'%ANG'\ï(1JG$;$%#.+XúA*< +q#;=6?*E43%(%&"6!)?J&3b ($3)7<4A%D56)%!ID9"G* +0TLgC^XG-+4&d4E:HQ81!&@S9!5  +<./=B;-T7F.5(((*2:"9( >E?+ ]0(0+&5036'"%*. )7%8V+ýA/'85'5/ I=G)C*K39 ûLc$*8" Z:UH@: PH*S>8#DˆÈµ’n-60FZ;IC-*5#>3L:,$ÿ 4G,=@6<?]Y¤¹Ýχ@*-5A(wFZE*ø93SE+)G;> YHRE? +T=B>?7E=p5J.4./3A+8&?5CF<2*\6-47Qõ,5, -9I"J#<-4IgN.):B0:6H52[%> EO(,;5H%KT*]-(] ^:(7#I:#EPTMI%a;C </#,)4ù;#"R3*IL'\0,+4(T@6N-:+,1F-F92BVF5J-*?7& 9)&E:5P6-K%7A%9*-7%-  0/>M*;þM11111111#-/bAI"6.ù0(1õG9&.$E+8:%(1“šŽeLC;"%D4Ag9)K@-/$1>5'M+-SD;(4G)8-;E>(96,0 <+-. 9L'à&@!_A? ;F-%2-5#9>@KJCCB1<#7""ý% '$F>"9JF6C'A8+*= 81 +;1:+>4( '9V3,J*#G*  M%',)1.U7. &'G=]M +A. JO*%L>6$HM;.9(DB4-1GFaHVQ,J<866777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>???????@@@111111111111===T<2F)SF0;.4EG3*6=*F%CJDý_MHSj90/ m-2#)Y(%D1D";LA44066,2\F>@'I%D,5;#<"WH@;/39558@0;CaJ?6jE+.5C;17;B/.ý/EY[QD?`<LRJB5.]$@;2"?<RL=Q* +?!137"2%.! "2 O'/5==@?H_$4CKW=I/<V 9&;1 F92#.$/Fý;5H5 D8*@O&<1AG\&'7 <"H(-l;&  3ODY;!#X…P@HQK*&-7,C+)< +[GT!>\ +@-73#  4A#GY^2E)!j95&'^E%<;33&Q'H0?K+ 9%#+803?8210FC9ZC IH @!5/==(G,E6*SX+TRIR;J=[9!! +8Hf3¼ÚŸqbK3/?6C*NI,$ID(=77F'=7/Q%7)1()H1P[€t„–„dJH42)%;#^)*C7];,D"PsQ?58;1I20+1'B1D*EK*,>B!1 IKH59,%'6))7#-"$NB=G.UYB2AP*< 8L?6%12RE5.02Ab(<1C@F(#5%13;7Q4/1?>L M5&1""=(25<7*[>&+=T+C+" [/NH8K'D8E%FL")27;L+2NGq05&4;PFD+(1XG4*#'A/)+RMD()+2/F$BBC=,(3><N411111111(.72.'C%A'+*2ï=F2;-;B!;'J:80=4J2N,êB(Pl =/@=;=B17G5N/ô#'6@8BF +M`# H<./?2>":%LAW (2'1%..).EQN+Z4Yê.þ@A>;:,24/C%@'+,3?+<$þB1:$7) G0#?'bL:J,#+55V,E_M%&1/A$9)/N*B>c-a%*06'3XE6C@9I79>^(;(GD5bP$ \[1.Wm=#@3P\L'w')Q6B)8%+PD3O]#,7U6777777788888889999999:::::::;;;;;;;<<<<<<<=======>>>>>>???????@@@@111111111111===C/F1!1+^ +V25>2N9?@E0547%%iR.LL'.JU'#B4D7CJR96b*%c-Y@EPP6A.'=29EAJ-/QL5$)M*S,,G#A-W.h1&081319V 7ATC-#<:.(!.8C;''J'50M&P8$Q/D6(4G'3(4O#=!6&<\ O(3LI?9%#K,XHR<@ƒVT@L!H8N8C+$-`":3Y DT9þL[;ö7//0?a 7O>2^SY#H@:fN!<W)&o‘ÊY;#7116)8%J E>3[9[5+ /53+*<@)>(+R&$O%I)E(=.><þHD4$(PI!@A(% A?.:K7+AA(6&+1(KB/C1)!B((:-78)\200EDO&OOD7+;,9c»’|OE>@2JI63 Q,EM(5QA-=<'/S,>04 >S!NsZ-LE4IL*889 ;2>1iN>%SpQ"5&8>H#4*SU-8H1)-L"$@ NCE[(*3+71>+3^!8=?F</;XP-C@);.6 .@I<BAIRJ<:#V!4xj1$*2G:2`7KI2%P?RH+-ö1/NZJC:><7NC5=##40L9A^=:4.8(#D$02HN6A8I f+E#3K$ -:H3K&Mû$[%).=3- +1(-3'F7B&&9./1.u6A>3[(<,L111111116,BIDA;1<!/8,4H C=KV#0Z@(D#@94[K4;;.%(-2D1F+61=<-8#,+)+F7iF2@9SH û?C<GU<6 5**8&1>CCT4Lp39=[#E&:H7>!H.3#PB !K7AH29&";I! +,&7-R:;/1TG",M" 9BA%EI_SCL7'L)$P%>&4'+ú-*A40;# @&P)21X 15; ;9EO1 @4L7;,C'+9%0%I>&'=#9E-70/)Q:BgI<:_P777777788888889999999:::::::;;;;;;;<<<<<<<======>>>>>>>???????@@@@@111111111111>>>>APQF2J@.&%%#K6$4R>I&08/8DEHTB0O?:39&2"T5J8$<!CF)N/q:7S1)R2:()N=*WYCD-)ÿR@L*3&?(=X2-' SAø@<1,36D-&>-5&E/6F-A5U +!=;+P2 BED)009!;!P;,5Sh9?70V6$ %C/=1;0F%':/3kw¨Ùƒ\nB'0+ øO&.J,;9X/6-L[#F& FK1(M2,>H=!=#) 2C6=`DT30M\b£€{N53'-H*8"&@Q-X7FJ3+L#$(2æ6M!2/3#!!G$ N8/6'<Y3-"$] JG)C<"<M5"%);A@S+E2)E<;/"<)5/CD7&>6">-?)D9L!5/:HK5B.3%&M-JRhB’QPL,93B,7 +39HaFE>-<O3W<KO@KA*>)DN-<Sde#F/(#?>?!+AD!<E@\\>A4&G)'D#!. S<D@ H6O ù9=2K,DC",FC8HAJ6,':#896MA77Pg&Hkc=A!=U,E@,6;9 I>C:&)G"1BIK&)$R!) ?[?)?!2%þ/*'-#E3.=8AKYW1<08þ>8+ò>,3BVGIV/@DGF,;/G*0< /K.CN;5ABW-Q<99O&J;: >>2=9BC4Fþ5;(3?FS<RGCK3Qõ=J)(BHvr>-1*>A0AB>0?"F=']8e%Q I; !;.&7BI2%48="K%+! >;0?/1/$O8+7%CD'"1 B * 6-63,$39"L8#C5ECL4%3DT!6&B57TI@E5*9(#.#5P) +û1"+. I3):-! @/8,%2DR.0D>.C-5:J9V7IBC>:, O$  OB"y7. E)7 +ö=,/IH/Z?T;-$3P0"HK*"=C65#" <H  +!H,,@A2 D<,:2TC5EL477777788888889999999:::::::;;;;;;;<<<<<<<======>>>>>>>???????@@@@@@111111111111>>>>O0b::=?(<:+E)A</P'T #5%d8+'+10M4SWZ810!4%#6UC34:+N2M(8F'd+&4u*A6AU)RsC"B@$<@5B.!5ED%B4 :>JMLôD.59!*6FLF,ð@+'/E!C9 52@##4 :+H#+\@K&5N1K%'),N-"0.<4>IP?-7Wlø»]o_/a2+"*,+D?- +884v9?S)',!EYOF3:<?<U+IL-0O9>PY 4E:N,->}zK^>P)þ$72L%@+9@406*5OT%(N%9M5N8=<VD*(-<$K= 6(<K-!D-'X*9$0/$4-B4,@ ;2> 988T!'0#P@K7-þ25@'&+P+H=&9A,)!a@OHT/CA-YT?)Lh7<#P24 -HFP)Q1+,<PJ! Q2B#+ D 8(C^-202<&F 83;?" ?+WE58.*?O;:k2KC5'F+5QE8'=/ DE3-5JC<$J7%8<!$+hSUA66UPN@8;";):b2EA8$.%$>R"9PC-#W$2& 0LLAB$J<EAD=C87B 19P89;&]+CjYE/FB L"[\.Q9=9;H #09HF@0M*]T4%REY4M)E'^!G<ZMD.(!&+3'0@<13%."6;&`*0EHH93:9c5\#+Uœ¤sa*$ b!C:B?1B=<L-JC/6M73( /.*5FR/E>&$-- )@:'*82J0B/7&8H2 =EA#+TVIL(L/;4(=F2 '/.87546û%<C8(>T)* 8Hô5b!1. ":3H$< B(7- +(1//?3.&/B,a.D*GRK +b20;8,52þ"/$%+AD=='ã R$38÷UZJh"\Q1,1 'p408UIL':%9/*.U<33)$~A6þ((#>@1C<x/7777788888889999999:::::::;;;;;;;<<<<<<<======>>>>>>>???????@@@@@@@111111111111>>>>AJ3X$RM5eZG(*H1)T8ND_?:3H@(P5A:93i(KQ_N>SX-QE-Ef[OV.A&C3û +=N)':63'd]e6?&AIO5;T3@G&#%E>=@U9E630 D6:e‡[8=\IW:p3878 W&2b=&+G/3K0)<$4L3'QEI9:';DIî".G(H*C37ž !Ñ`;r I &54<@'E=(T*>;+'N9]G3>1E-%"=Fi:0$(.4)'Q.?$Z"5?J5>K9516YDT&(?8)D`-.5[$;A (;(+7,XH572GE!+_S3Z>%=G%'(OX@FC<34#X4#P,(43&K$ <MD ÿ)U"O1/%(2"*-];0/G4 üFU5264IINWfj6#gTC)%8=N#'4%30.72-/)>B#:16326-$>9ì%*VGE128/22cHXI$=R+29TEC7C,)'=8^[AR@ $-+)6&=7+D:5=&"/6\$889#:;1A70%]4Y70A6[XG^;N.RR0=S.d6%@G:$A8C?A&+,)6@nz!?LB/>:.F'NR8H5I/GQ*:N4.F,G41B;N7j?#;Iý?3F 2#>:@2 ;_e):=,P @ =5 'E3'6O<,#&%P02#&ï6/,52.L!-0&5,Ff¦ÎáĘwu (!<;#32)6] =ô)B5G=PLB%/E ,+Gû$1:.7*?98?FM  +2"?'óV--=VI(&1#$ ,"*ZP+N".R-1-4B*\!;?)7L+25?I-28 :;O 2B%1+A;[B6N.3(4- +!*C)7.H3&FE?*:8#<6:2cP]/k5V:WYX>% T(3#G/>,LA43;WU.B3 ?:L9$5$`>$4K!E(1=ùRA/6%2HI&0. C0N%9*V+%D3 A*/+8)<ERPJ/L+777788888889999999:::::::;;;;;;;<<<<<<<======>>>>>>1111111111111111111111111111>>>?F4V*]>RG)RP^$2N+YC`UsBT:NME1!H8U,,FEAB#207_"A7(BG#"53*j7EW7*8><Qx4-<CHA5!> D00_ü0) 20!8-6c7)?9:Ne›Øâg4&..W467ú;0"%;1S1L/6&7/738ÿ26L30I.+SN3.GRNP>"2&/;%-;7'XžÊÍfC?7.1JZ5%P-)20!@C:$?=6,L ?* P5þ2%5J$DF2M1;' !BFkDI9Y-6?6.{,,8"H0;1g?7B.;Z!A K9B)ú(5-95T<(,$"3$5:ñ;ò)L=3H&3--1;+>7I-!I+4/*<$04<9ÿ+T8)E(!1A&"+  ,A%:D95,22CD9; I '0'#@;&;NR&18$:'(.=.540D8( %>12M[KF=1Q166üE&@);C:,55?0;GK<@E;#4./FD2G\ F"?A.?V32C'>T'+6V,23L?>,XB 78$/n-:OD 4+JX:Rù0>N-72R[/\*O/E:S%/XML"+SAJ&D'5)=`4B7 6A4:G19&)$0@V>>o>=6\U3/>?&TAL,3;?'3?%548GRPk90".[J;AS;2.- ><=W!A003>'-%6$2 5*+,B%9C) 6$?,>CP.hµ(õé¯û½-.1& +&5Y578D)8(%0?ECDD--)DF0+&WP#"S(511%29#G3+ &þ+,P$23*23+M4F=$>$9.*M"-= $/-3'_'%)B01!$(.6/:e%*>D%jQQS>l.Q2I!' þKFiC;&',?J?5)_/+G!*;#221P,døA;/O1 #0B1?KF5)"&A $@%7).2937,WQ$=TIL]1 (I6/-:= UA\[H :N)56a(0?#diEB(@Y?4B=?777788888889999999:::::::;;;;;;;<<<<<<<======>>>>>>>1111111111111111111111111111????+!F4E9K91&<A(;8(9<Se|B55CK0/P=H)@U=P&*,,*2R8;-W1? '_:;-6'/8F% $4'.i?B74BE8GD'3&.7+C7G.*2;*?=F QM.XH´¨5R-8L7GOU-;/)G#OH7$/Q0g#GY$ÿ<1. 5Q).* 83 /-S4 GB M;1- :ÿ?700!Gn]›SLI8*L)[!7'%$(K$TQMX8:I]OJI%#*38P)64)2%5T;%4F D9JACPø8!=>7%=$N(BL:"j(3%O'<+&&C=! 4A&@-:6/= 08D,!@;!/T=+17.H E5L*93;7-B5/#6". L66,?500T8/2J5K%7#F-B5123<rF-F$3;XNBIQ6$A1(B!3+,/MKH] b=3;6WPDK=71N6;-9GbK*aF38-!F)?)EA+K9d+C?:;J62),`>#$1 +L7JO%) *-?K/#<M.;=,O?D1D6ú(M;I??C9&\73.A*HKMEGC!=#>B*47'?08ET3@BU)U?.NE,!1)/3_<?<9<:Jb(fHI 4D*0(0&T!>M4-R-@6"=6>F6E25'P(4 S!9Q"0!4:;W8OKB/*'A(% "/-1CV"74*,*+BO œõ½ü`+Ö mDA0C<R#5X5,$" +(+'6,II !L6(. + A0'&,98aN9+.E#:D, +*35$9A^(IK@"N$L"0 +%+% '8EM#'>   3$=BB:F 94-.!.=,66N5(E5-+DC3E3-8 '„'%9'>aE./E$U;CL1QLg5R[ )F!< MA0.,$E@.1</O)'! "&'- ,E!46#;>/G7<NL9PN=*/@6ú( g)?650F^J6L&^%1>=/-97N3HC2f4A<'%7788888889999999:::::::;;;;;;;<<<<<<=======>>>>>>>?1111111111111111111111111111????3# &17:FûJ'/;!3n88D˜/S<;19*G5h*h@W/ET'7-G/>#0+/:`$>DG "H7'E)"R1&9D9,G O0'.AX>n=!/.A> 8>+W1111111111111111111111111111111111111111111111111111111111111111111111 )R24,5AG4A54NcV3W8S>1'GJ"Fõ1 +)43 0Y<Q7'Xc&I39;. @FNN4C9*0I$/.W;J&(*C.X),AHFM1_& \B>(=[=8(Gþ;9-,M%Y I6 DQ%)/&..-.F.D@R7'Y@1B*/7)0;C2'A"!>4C_<JCABi6+G /QN*4*'6 & 60B/F,2?'(AS"\ .6,@AGRIS3'**>?K$7.D11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111:t73:f,'F?d;.0!%2E*!7>$7,:Q %( +ú#/E4)D=+%F7G.*2O&("45Y5O@54#)sJQ)>>58$*- (&H.*7G5,\.v+d)Q1A 08@5%5%L6%<QT7^ÏÉŠaE v)I-!U6F9DS*PJ]= +<.7_G7Cc Q3F:JQ6`,87=9 +#$(32 INA5J,59þ3A6,.'70DA9&%\7);B?*ú-9G/ ü80(CPK$+!#A+ ,8226/# =:9&3+W>Q +&I,WJsE//(PI3# :%WV7N442% 33>%6$@1, L+/,(_)!&7)=$.\A$A =Y +f0"EJ$+>7)7Fæ^ÿ5'"RV;LA'';16!# ûH;E5(6^"3>;59788888889999999:::::::;;;;;;;<<<<<<=======>>>>>>>??1111111111111111111111111111????W>CFD1!'D,15]P=+28Z5@=14:9;ADC;J+ &*kR8;+BB,'"S83GL1<P>,N22E+@  J83F :'EE/2,D/!lZ%H,'5-$1111111111111111111111111111111111111111111111111111111111111111111111!4C>/50%");.-;GLP@7+RVAB"VW.?44V:.L"79AQ>,W9,+f0ERbK.7>7C@1A3SBaQ2,%WB(4,WB<-)):2YJ'#!-856M%L9=,.M71%7'E1.)[-/[[AM8)8I>5OB85H.D/+[MO1,2>AY23N[HK4;-SE'E9ýXI#&4FN>;/Yn-' 5-X>$/CI01AC)#'(="C11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111C1,GQ9:4J']6%N2T2<?@1JVJ] 4':"þY0X@"  (:;C*A9KDPT6-#$1 B@ Ck˶‡Tq8V1\BT,¢–m,D)/-)*4<+5;9;J7[/ 1 5*X<*9ÿ#,,!..(";22ô?Mb¸Ó9%¡å•7O%D:",CA;*& +<"L-3i)B!#HC3=4K T& +N/d+ET";)GAJ J09L&;Q$DCfFA5=)&k08 G/5H./KM B+/ BVð/?)í'M"125>=)>!<Q0T<297;< =÷)Q 0:% '9/*8''9AESO*.>_15;H)*&5!LU%8&</ G9Q:B746<;9">*EóQ04]TAA0Z:r]K**4,PCKH-9j3=.:<,'b'% .#@>\6:"4MF88888889999999:::::::;;;;;;;<<<<<<=======>>>>>>>???1111111111111111111111111111?@@@?.$+605:9+0=&FðF6:LAE4) T'&-),W6.9:-#$3-):*[+Z+CI87=-;G_%%MS:5 ,.3![1L,,O!(N&C1#3$ 1'1111111111111111111111111111111111111111111111111111111111111111111111#:!ç-,/8,N@AF=%&;,#3$4% CD&Ka@'.G1>2P,\1?N%02.=$K.M7ODA"Dû>0I]1%#39V3O?ú"R;/"7+/)$>,^:A8Cì-;/;,"!= V1P81C'>-&0=8=!0f/409#+1!+EXU;/@=I""63#E/??K"'WABA >"$GEB:4RB1, 8n:<'63F-8D+NÿP-%,\=C11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111?;B.EG['CF7A%?^9Q)a-% @? .)=/Gó-!% (1*K!J-;ãD8 6+(U%H=0q!ìI<H?L?_t— Ò¶_OE 9(4*PD;F1Fÿ2'<D:F@V&');F!%+HD,:+5*9A69<Bs…¿ú)Ôº~†Bj"I_=5A.D- @ ,#@6E9-<+R931æ*<Z?EG0!-412A0K273=+N(L<)LVJT7U  24(3:I0D'G'ë,K!N-*A,,&P:#:4U-&'PF P'66+!<(OA46--4'1!7+<' d67/+$/8( I8'F6#+;3A$&-;eASø%$$9<+6P )(5T/*\9+=JP@41((R+"+ ,vZR6dHS?`kQSM83 K!;<E6;0N+ +/T4<4%E-)(9#D-96m@h8888889999999:::::::;;;;;;;<<<<<<=======>>>>>>>????1111111111111111111111111111@@@@@:D,<?I -@>!1EF6Fd#o8L2"d1b[+D@îRJ6N4L;/A./+<&P^Q62#V4L(:A<-)A3F1=#TN'S5-@3Aþ*#(?>F-9/12@)11111111111111111111111111111111111111111111111111111111111111111111118?5+5T%(($7&6/K[)5&6K8I )&W+(NED7 ?N5ÿ $&(7e5F:KF@M+C0=8@WH8<cF$@"R:;,5O\2#I8&#?#;$7=%22=%#F0HH9KE4o4i. - +*$M0"=!4F%&9@U î`D$804G5í/B 5b XTGI/L0%8/ù7362&.45TB?dƒ650 d(!T87H3&%;YH 6#DjFC'-'J4<11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111!?V&$*T: ?#O/A6f0?3[BK)M2:0Q)5 9=3/6:X4%ON 1=,,5Jï9?7@+-0Vº*/©`0",3E::Ë9w.p(.P0,4#A00Aa&QI5ACL}§vC4=-û$7d8-$0F8)H4I7<Iph™vhB&*#o1"#<.0û*1õG÷%%-.?%D#5/M+$+J!4J*7"G)a)/+LE,:( =('2;-XmB4QZ)L 21@A2-=*B3öM%#C=30W<7I@1 0.P262)I- *I# +:8 Q)0èEW) <c)*@ ó"&S*<;0'8*B-*,1;j1; 9?ú?#B2J(AMU23!;>I1òK#QOJ=?i>1>8'2B4&'Q>25>"W13R9EDN.@@EY %2W6*C)- 2=888889999999:::::::;;;;;;;<<<<<<====1111111111111111111111111111111111111111111@@@@GF9S1!>&ORD ;?1::&\]GH.1Ij/IL&2E-4C->+?<S**J6 @.M_@5:O8?&N  5"<?%7 /#E +*D/2AF(*!-/ G1.?1111111111111111111111111111111111111111111111111111111111111111111111$:D62IE=A(!?)  A-GKa>9#;?5><6>3,2 6) 3@ )HG'(?DQ>1a;[f|Dah6R2#CO**H[G#>0%ACEQ]@A0L ?,.?>ú1N61"?DC/<4D[0&)(7`;@û+?8-JBM?QNSQ:$8NEKAO;(\9J;R<?N\&'%5./*(62,31KO0j)L)<D$G G<BP5øC9 C&;BQ4&3M 00&%GI11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111O%343G-1"0'N&'C<G^bHþ4* ;+D&8DüV#M9.òO5&<?B4KKLO"'A!5a@—´x$%2*2*eDƾ•2`^3"R3ˆFYT_O>2=<;yüÂ’~Bÿ@E-BA@0$A..#(C*A(-TNz”f7'G9&CV%?(2A)>d)6T';U.3+?+A$3?KB1CG"3C;>;K'ACPB3=-S?T59E&x'%:"0cP#<U%)8:8:-.56A@FJû27._G-*>$>J!9/0IJ(C0Q0  &E #-7(<6BH$O3$4QC0<6A %+N9&%,;83+J,5O!!;#-)5.$BD.1) "2B3 $H217I@E</2S<+.]H*))O3,I"5+&0R?"<1E2L"'!^*-$5g&%#AW&2e\">)/*2@h[j88889999999:::::::;;;;;;<<<<<<<=====1111111111111111111111111111111111111111111@@@@8;6)*-:Q;HBVH35=R2;;J4GW6A6:'+6D35 EQùG687A>"!%)65=N;)V/Vë4*2`@597J0V=M!1*&V(J0T0.68B-11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 N1D<S%ZJJmk[f}v=H'GC(/K-7I=VHQ_T"E€<M0HA8.3)!G>8#66;"%WU,2L$.@EE)U,?F//3@/$HB9J+87G@+1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117$:P&@,F;3T;\R$<59>%!J:3"M%":E9+-E@.".[(EA%6'=;)Fù74)[!@F/BZ='*:-$.[$[eO“}Ih&O*C>l2K‘[L.>!vÎð»•<@+5?5BA`@$I7&RN4E3#11111111X,P819>)(374/49O O%#J:?CM@DQ42Y<&A*/D<:#1B""2ïFW'$361k%71*!,9W>,630] "T+K)")Kú,ù+1û <;8,A %!7:-&A2.4H7 5 ÷%34NOP:76AIDH"%7L)A (=3!,D,-A1@5( =O):3H3&G3'cE@I-W1)FB/-a3$5 3B(%*0HC%3, E"@</L!7@:;+0K//1(<I'2Q(61"*80 @+3Z*G8889999999:::::::;;;;;;<<<<<<<======1111111111111111111111111111111111111111111AAAAAN>"9XO$>B*)E,>88H1#R9 S A.=DH*@:8O&*+6M:%PC."+Z7$.)*@)9+9>$Aò#=(ø:)"Q@:# Tþ:"$W@I )1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111!)8 '>*B8S|Xa”¡‡UdK"h);+?+(B71ï&2#WzvX1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\D B(1&95-^/Q;<D2e-19=.G0)6I@5D&9$(?B=qBEYZ>A-*G?/ôD@)C9)?<,97"I7J/&H0//98H@N(10GGK=<=5ˆ‰{6E73qrw4E%6I08; NEV6q@ >;22#S);1111111133IfTD= 5!<(8/8SDA>;8Q$5+&0 5 R,J85-'CNN5.(&,@1/K@&=ERIV +' .V=Y%' +G+!%D0B%9"$@J&7`+B@jC=.,"!0Q>(0237I#4+^EH;3!N3Ký,,?"$3:2P(:#5-/eB'=<I9;,!(%T7>!0NX""$L!=2=g-^>s586þ.>861 >:AI92D997/#-V7SG 1D"2<%ÿ[ ;W/0 3DfC(/A6825WL889999999:::::::;;;;;;<<<<<<<=======1111111111111111111111111111111111111111111AAAA)*A-:K+N4087A4+&A6H%7)2V#J L$:,/%5147<WPKW%;CL',WE/J?+<C<*E7 +3=0%.55;IS1D1:('>&37C,GK(/>K1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111;7J#98RTgºÂáÝê=0?5+!G4!C9D4  RFNnIS1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&(A,LJE2*8FD70UPJU9(aPQ(ü&A-=$0G:c3@31R34569Vÿ,Q08S#ÿ5-(+]+49 +V7+5A;IR'3,15 HB=<VJs[2%]W)FgF$K71&6(:,>6&04$_=9P/111111110<0BF!3;"4?P+(Em28B<:AD!PDJ2#F$:$ iA8(IQ&25=J5+'(Y(-#:)+(<fD$ +M&<;1>4E)/H+c2'![6 +(0Mo !/3-?51= /G+A,=dv@G /4+951)0A5-7> 7@Q"<CA?OD*+$/10;G67'X4VIII+,÷)N3/4-),BS/ýJ"1;k=!6)=>34<\V'&C &(.449457?28.A?-:+/a'A'9J$9854"8N7@B$?-9999999:::::::;;;;;;<<<<<<<=======>1111111111111111111111111111111111111111111AAAA,BR;S0H#R=W@XE0 /'>>J19?*@'8%î,*1*80?G 3K5&$(]0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 <";%ç%B4;@„ÂÙÉä¾³·b>@S YTM*-7@RJŠb811111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111115*DM08p„WXQAB5r@;N,4H2^!3%8#97hJ4(3@9A:B0"G'5/8-Z4/4E4+$50G4;85D6/B=3D/+'9&/).@E+"7EY\IcZMaVb*$8Q%;::S%/ '"OB*7=8%L,111111111$'3:= 67AMN'M6`0RHF;[7 8E?:#>g)A6 [*(:=>?CA(&222B>B8K:7/iLH_90)NG01!+53)+4=#'405B>>ûH:,*24 A.)>CN1F08+Yyv86\I40F! 86/5>059E$8G30$Cý4"52&<8NG^DG&!$-1$7)N'H7+)))>TV0 I6@6# #%%'C&&:$'*1G&*G(&>$23NQ,(M!4:;"\AN2<7N1 &9P21=KD2%S999999:::::::;;;;;;<<<<<111111111111111111111111111111111111111111111111111111A11111111111111111111111111111111111111111111111116;FA %L7T111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 &K8/)c>vrªÛÙ˴ụ\i/G 7@#CKLi&GPf@ANOM*1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111B=NP(@)e!DF^P~LBWcAlhYQfM7GQG+).+,3'R90CZD9TD3>=->Z{:;.%AD<3D?U.C(K6#C>$&?)H3PWBX=:)"(k<,/7\=;35?9D;)./'$@"P 7W/F+a%<@$FA11111111'B>\\Z!k]<2@CX[.OUF1)VEU"3eE781;L2 79<Q:D%U#*B=>5/A8F023<F)PC;@4€l8<CE2;;[#>n?3/F*'3:-'?%k@O=" :H04?82) EBA5Y*?5ZS/)b'95@"G%<0-YU2<4?+#;"C<;M#) +M>-7*J5G.6>57.74 K123<E0;#2!K34 9,G/ý9A,4>.?2H*>j#)*7Q0C4.CFD&>MK/7OYz-9.W3OKZ9456XF99999:::::::;;;;;;<<<<<<111111111111111111111111111111111111111111111111111111B1111111111111111111111111111111111111111111111111OUHUQE AE1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110@.CmL#3Oq` ¾*ñÌåûȰ¹{q`KL0+;-0SOBAGU'T?e91111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111AF516-WMCdD&DN…f]<&2[d:5;I=c9VUßHg;@,!A:WWQ4;!=7LU1-<H5@@< !1@:*5%(+L^-QB,_C @M& *7R3R;8E:.-QC$u81IZFVE6&K r BK);C5MRU@8DI11111111A6BF8D6FAN9Z5kŽB.$I3E4?<'?5F>H@0>48 CE8ý7?#ARWEI` 5+&?>gD"S/I@-7B%/7= ):F@,OU-^C-:%B *B7O268S;GN$1:B&F9Z"C';FQ=2.g(64C58?"52$!.3ETU,-(HR9"45G;-9209/"+8B3L;Z,9);#'da $dH1'>3êZA:R//SAI(',Z2@=>-.O47V;$@S89=%/]i$4BR6:5131^Z-J)c?@V260E9999::::::;;;;;;;<<<<<<<111111111111111111111111111111111111111111111111111111B1111111111111111111111111111111111111111111111111VNj(h$eH3111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111J;//@YRH?9v€Ñ8`#-<úÚÈÔˆWIE>VVcPBFSY€VSP>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111e;X_M1p@j?8<]4MCAYv1fx+@AWLP$1'9K97G:[Oi5#@JU;2/:'18Wi595O<+#]",I/7;5-=A".8@1178%&4BSVAb._W3#U ,-& "'0;69$# E@8K7C6K)111111111CCBAA]0P,;&\BZCl"C82AKL><20 &%; UD6P.=C/2YX#(F2&eKQ;EZM5K0I#6RF+?4N@(L:A-E8G686:C20Eb+;2D55D45E1$5X4*VP6,-F.H+J 9RDT973.15E.37 HF3<:1/8>JX*,.82 (A02ECC!-AS0GB<!1A&a4'*?49'/)0 'J1-,)J4MPPHX5\2bD>)D<>5BZUJ15%@<;5=zMB7G<(88fX=2XJA2M4OIHX99::::::;;;;;;;<<<<<<<=111111111111111111111111111111111111111111111111111111B11111111111111111111111111111111111111111111111114A./_geK1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111118$CXV0JbPmq¥Pj‡Àxyd ´±v,^4B8UI\<ŠP&;+F<T1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111ZC+E=ESpG62MRf<5F:QQX7#<3U%OkH^=,PH.F!EQz7P&W*A(;6JE=:A:/$;)OaG6)eG:52;%2KB.6SG7m=]X,)+AQDWoSa43)R*0EN\92#4=2"b+=F,)@ V<IN0A78-11111111CCBAA@4'Z*8A&RNh:G4H1B4<TW'5T!R9:-7U<4/29iI;5O:5C‰.YLQ)Dù) (37B.*9OKDNQ(HId*,` 97([D:%L.E),=*2J4$3P3!GYTSfbNt.YnR9I3F<8G8"'D=97M&*VL-7*=F<<;].3G=1<*=O-GUDU#%8<CJ76@?A#/ +I&7:S:M]SI8PL 1;!J.<BI"J=A+Y$ +B9L+1<=XR%V?0":PH*7HH'-.D<'3AG$qDHW1A>B"5JD9::::::;;;;;;;<<<<<<<==111111111111111111111111111111111111111111111111111111C1111111111111111111111111111111111111111111111111H9\j”teNL111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111bU/=B0LKI‚Ô<¸ç:ù§wuë²~HM8F#Z70DE75ZR/1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111k)4'&24fWE@ 4[hM,I>nEFD@;3B'#=%0:3MA2Š7/2/>:O%)(AB:GP?|2)C6U2[@$3DR)5/_ E52M2ùQ S9/C0=__#RJwr\c1(‚ +23&!6\%%QQM!!5:eM:c6g'T1<111111111CBBA@@?N=@UI`"P2HD?0BS4(Z/A?'PH?AFb'6#8,,3G90B)M\I^G0+EN:#$M(-c1Qd+ (MD(0[Y"=H2 #2%\/(?0G!;>A/>0G>M=MV6490W#L þ9,93*J!:(A9-!31S-=&D\9X dB34:=(D3NúJ+I?0FE$;&QOS2[e/A#79B?0F)JX4;K]+:>7ÿDE2px?1F+O!C6<$?^.*,&H@>8 +=*))6===08/1a%gi+e:eKD0)<D:::::;;;;;;;<<<<<<<===111111111111111111111111111111111111111111111111111111C11111111111111111111111111111111111111111111111113:=/ö‚hb111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111I-*Y<@I]1^j²NÜk•˱§LÅ` ³k•b+D]W4[YAZQWEX1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111x"ýT:RAh2',^$(e5`g833?%,&J$WBX6.f"7X*L#],,ˆ8Ed( u6%<?54EHQ69NN%@TC*aaK%(F6J*C–[@?BA'"$a4Q#0=Y "(.I,JY1G<>2B111111111CBBA@@?(,1),H39^ 7E%86TB/0.%WD#573.;CNQ*5*-((H&@0U7R=3C1'>C&)[R85"Q S:=%"C#:)7P,Y&;h<;1 F(J@X#]86)"1"CMY=9$=9,<"2(?2&8FH'(E'BD)->@:#Q+>A%=06D%>F9QB)B8,{C*5'T.IH?*%D-B .H9+/"%+=$0#:'@,a•6.2HV>29(2TJ'j!@b! (41I7.M!X7b&?IfS_A:3M72@H#L>-::::;;;;;;;<<<<<<<====111111111111111111111111111111111111111111111111111111C11111111111111111111111111111111111111111111111113W¶o[ë</7OAD9/mP0,DB92('ED4:3>B9FF-I +ZPGs F<$JAB>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111E75&A GLGaY·/ç§%•à9èRäÈ‹H[Y7cgCP/\>1FHX-1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111>ÿL807)& kS#Hg10B7-M(APQJF%:0=/@ %=;=&</TC.?\bZ_"YK,*1:-E0>6[TsBMT=.I4 6J8KOKG<:<<<,E6EAM@ fS?31< %*:F3!GC>IMN:K=9(;%.9]/.,(EC/E63h?B)3 RC]PQ:5!W!:L1.51/4>=10$?+"3KG(->0/1'S N0722@!A'22(GNSA1.B:\<)+2?+35X6?R/4=A 5 +=+TT ;#111111111CBBA@@?>A'd6<M "J9@\V=571C7<;*?9P,AJB46;4(!0Fb398BD2.=(4N,$%+3.90,M.OZ(20:BE?+-:+7/0:.L=QqyEJ&$27,D3"3!0QR<\3 +J&9.-971#54M*+]\#80NE,B2'A.H3%:92NE8< /1<0&AZH5"GO7LC/,<):ö2U8!F+<.M6b6I:;wL'K.K.:V6)Z*G7@-V%T(o@„E2"@;*QKkGd“ˆDCa04"1/.::;;;;;;;<<<<<<<=====111111111111111111111111111111111111111111111111111111CCWgC-5O#LDC /H%$C.B>@(-!87 #:'A8CI)A3Q):EP#50:-ƒçΘCWAAP$-=]68(6jD(":6`F4O%Cþ/H1  ,02_QxSDM51W7>11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&YGHC#D``¦Æ„¹× & U +E:ë—@cQA<,+`(TL]?4111111111111111111111111111111111111111111111111111111111111111111111111111111c:."$)R#-!/5`'F%+)<-11rR="I/+%87<K9=;):<DA4R1h+H7 - -YV%#"4,02M6HX 8=;K4:T(U=0%- =.@OE8=PW7'þI(*;1OJ4C''$/UQ1;@ZI/P/J)=N$!èR:[5(:#<;)-f0+!-/?2H>.Y!<-V1-?Ec1HD&8LP5LG2BEDR26LO7>08'%U::86.?I-^IK&8,2&G5)1J$-1,G2!G;H'&*+;P C5;A/ m";;+.39W(0.);W +30U4,:Y +P'H1%56 8n1#'0)68G7+F>@.111111111CBAA@??>=BGE 1#2N=!--%,93E'%229J?V/ ,9H3)3 Mý`.JD6+û.üIöü'&>3J:*H=9+H$0A,ZQP4;/1C/ /8S9>B3>R[@K/!QO5AD77H>8#]#-0+%5pJ(a#-'A??JG-,.HA:_J=654<+P)jUC-!.-'gE0C2F6"/$=40;80>1$4U,,IGROX`+YJ6I`I4N!H/00ZCJ56@83-UJ -E*<QhhB’³‘Œe A>3OKP:;;;;;;;<<<<<<<======111111111111111111111111111111111111111111111111111111DD0q8 7(@D@-(46FE3L68$I= (1D:#F/9<2Yw%c>&B(5/&LD;=jsvP*E09$2T`2"?W:û ?70<* !G(#+6kmOX=O5<1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111$ %9,BgmGB–Ü*Lä +@ õûÌ +›´œþŸ¯ájGR6J5GCh8Z.F]3RNfZNY +057? =:4I-4G+1j4-.(-Dq-3&?L"+M7'($;;":084= ?;/_.KAð+$ >@-PAO8: 21&:ý.;58-<2A%#'9#B:R)IF=CU;UO5#?>Q!U2?;.%CQJ'HNL7C$jF; 49 -166: ?*$A?>6=2K$% 9jEBCV.2aM(#ATk`oKo,J+P&Q:I20&<Y=3&=?9#/[9#5&&1H#4<++/Q# bP@&[>"WL*bAM%)I)Q$,/6 +<%*: A1N$5, DoU27Z:6CN8 +1)i,"dò06:<H=&<46%.($N9XE#708 T-.BA+;F 4*97R)L8<!#;,:@",-(1D7=WO/8Y&[T=?/0C4,W1(#:111111111CBAA@??>=CF#5NN(-N@eBY>AV'2IK42K-KN.K3D:J7- g20-8=F)H6!#U64;3AI(;40&9(-"[7 P.)6<14"C&"EA9(i@479N= H-</8"@47#JW.3!+oK//(\-F*G(/6D(-E%4 d'û5PE17445)UN(DA/<P)2[1/5M +#L.*<!5WD7v=8)-'/,jB|9+ERC&a +#T6,4 0.R!U( R.X7,==RR²XYQ*+NQô3;;;;;;<<<<<<<=======111111111111111111111111111111111111111111111111111111D=.XCA"41%#e=NG>@6 bK3*;jø"E.-1`6&@N)8RBW$A.?&H]0G*>C<O&62Y,TG5 8WF$E5.\C6N9"1M7H-3V-$27>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111$);7>9$A%$/k„7j ‰ ï­F Sîë)ûð'õ´j\K39e4\<4JV1&-%+V(T D*?G:: O00HMd$&H9H,;ýB:5('2&b29WV3,U%:>ADGýT c>W#A04*4&?,ZC$ =$!' Y"5-'9*@;D;0 HL8&!:46N/!W?>=T8:; +;,S_];?1($&4-71D.N1?R( C:&<>4S&:û41J'<TAD46+?@9'8@$@"42L  'LNr[›LG>2.$Rg+H/"M-@FF;"566%HMKE^$?/H,!6*!:DKK;E,#UQ?D, 5:C=7310ù-%B6F9<(,#G'A>@L1:>41FT./1>4;17V'2I:4)1,P72F&2'KxQ5E!+--&+$G$"úAC0+)9P=9+(<:-AD3,4#/,1.F27+-_5,QN'(;9111111111BBA@@?>>="?N,PT!Š)20<H.\YQ6@.5+!56<2I(D=.1%* %q=-%.43,+6fD\7  ?NJ:AN- +,>$)-AH5;".=KBG+A!;9&>"K:J<V.?9[H7VXP*;4(H390,,,-/:->1O438,6&:AE A9S'P6YB:^?E0>e E0<G3 0;87A> A ,541":N'8 5Q*LQ8[aCD+[I7H<3F2 uP^L';B#8? 0 G$9P@=!03tK‚OJ[KMU\4n;;;;;<<<<<<<=======>111111111111111111111111111111111111111111111111111111D2ZM1@@8FG4/-B;U*>3@AH6SI#+0-2N%14*d +D33.?)L+0@*-'(I=9Q *I$M#^.\0FK:P#8K1`5,H/@%9P!IKB55C,- "3% $&@0R,`$(=Mþ)(8>C5<+96>+-: 2-J"N869-^^11111111111111111111111111111111111111111111111111111111111111111111111$317%WD\?gœª™ÿ +0  S ©^6EÑ^e{[ULj6V7fjE-:=F,# D6382*,ÿ",aH ?21*-6&3B<O 74\C$)>k(<.:F=28:Z6$ .7#6&_,N(2+ø)<4(C8 ô)<9L>4@ S7>-8!;J$,B 3DFN@ *.Bg16U1P!-VJ@4<DMPC( , B/$CK DP0 ( 4#2.6$#)5@U6QD% Q"BC3P;G,_l^‰_A>-^&+Z[Nc%<E?SW=2RbG7'D QEM0-&4? %L::NW)%"%>D3.'s-<<B9<S"60\X18-A"G27W.58d#+!HC"K0$L2,13:MN5G-4H<2 (%&;K86+E//)VIUC$I(:%/ZM@)C'1> P%H<? 'Zc*4CY)C4R<>5>9C<*)9:!*8&B3<0<2',3&06)W25<6111111111BBA@@?>>=<÷LMG.6]!'$($MQG0†kI.4*W.: 8>9E.9"[]úF&(;ú-8L#:Eü:>@#09 A(R#,;4_0<h/E5:83"IXC15&6-AK0G4?Z25l^qA2a"*\F7-73õ, //4:8 F+ 8- 1=AI3#!5! +þ /2$! !=+$D.L6j$-89'(A&C  3G@^=5>H: /<-)1,ND1 +)3*-QD< CA-5+E!?G+0 :#W)75" $9"B9*8[V1R:1D3i6@;;;<<<<<<<=======>>1111111111111111111111111111111111111111111111111111118G38097AA0AD502-pM)O$,Jw%:'A,'3&7"$3(UPI ;+"?; +Q)3,C=@5FDLì6:E? /"* Y7-)<-@!@A8 7.A5</C>/7EE=)B4.2E4GM A8d3\/;(f.2L*;NCYA9G>\*3R=(2M859? %.n:>j6>A--3N FFJ =73;Ei/*!@;&O:_$0':ö=> 75@.4?,/<))8"%F2%FC3AW…ç-Ä‹‚!-Âjä[óÏoTü¸{’€†jGEM?:5# D#>(k7&"T- '5%;%Q$3062245,E.,*+R/G8)7MF-X; 4S7 C96)#79+,'+( *ä9CB (",*'-1.=6&;;7>'$þG3&)4"N, !5(0?5CZ@Vj{‚²d9)n.52 +DECe,M9EHR$S\?CGL'YJ36-C"-D-4>)MF#N1HB34!(ÿQ4lŽ}`Y8.)J"Lsu/C08JS().D2684E,7<G-B;E* *#5-9&%5;6QP(Y=B@*7226HQ#Z:A_*?k1D/7QB:8$4m8833'0,TK654:gK';3#'$">+0C:E8;#K2A-07**G*.+/8'^,85@.=0>$\,[D83A;61,KQ;!7<M9!' >O.$0*'-2Y!A(-3.þ4!11111111CBAA@??>==<ü1/L:#J3?&+JI\IYrK1J +56)'& 9#h/\IJ2576'@6M8@.]1,32& +29:;K.'-.67/*N<2 +'D+8V]-6)+#> #-&@JWaJ5G!/*,T;4(#=8&3 Y5B=QQ5&&7q%39!-!+>3)'%!9%#-8212'+3-3*#.G.+ÿ6PNRKR=$N8DH869BD]R' I&&6*9#SR3KJ;^D:=)RD #9Y6&0-2-;.L%<.a4mFbF%;.F59H?2;<<<<<<<=======>>>11111111111111111111111111111111111111111111111111111127-,IV(7=@\O!dAi85&<'OB#CA 45KI5%@#03?;!A1F7,4'"4NBK\)5d79498QK;7! +O7E=1+5÷Q6A-&-MQGO(FE*)KA(?+G9F9C#7)*;# ,V*5:+$FBEHP#96/3W?,2$1M;;!8,#-O9!V??#46IJ#!205 ",?ó%?88]!,<W +M0&>l6>>41C.(J2=9* W@3.#D(ôJADKnèqã>kó­m­yQ&Ç­&¿  t|*UUL@'5J.CD1"O2<2/TK.G6T HO4&%4 Y89T(4)&=9205;J%0 ;08<<õ28XF L8+-A;C+5.50,2=;)5/U.+E3þ+f2I378($RL*;Q IH.2B,(R‰à¿}%3dH#!Y&R-$6>212Ha5C*J( .%:">2Hc-'Q3-UIMP(8$3<43)J=#f=S0-2AQ5Q$ƒåòiC%9K`$  9!BI"9:8:!+EXI..9<^9a6(F5XB)@J8+:MZ/IA4<+(NH*CAFS*?1%6/LT/E:V M#L4-F5 E%"&,HA<9285852.D/N(ô +4>5=:)F K21,+ <1$#M5;4ó5 .B'\A0-6. 9F)DFN>0-*>-#L -I=@.#3:^WL411111111CBAA@??>==<.'*N)/.*5EK*CSDnLdpA851HLGU64)þ$IJ)VA))=07$K\>59 )K @&9"5)(%'.@C*E9I*$/(8*7#4!.# Da(-)!YB;J5<8G& ?L",;;LA:'+&%M=<)!5(W,D1E7.=>5(11A*- F$#:.D;@ VF9=4\0þAE55B9$%A4**41;1$@INR%*MM%F0+B"A3,*.@;:+!68,*fES1!@R5JY;04?"HGV3>`9:8l$<<<<<<<=======>>>>111111111111111111111111111111111111111111111111111111<F(Q,@; #$3G25B,G>,&!,J/7HV\Q/7C-">1G5/:%,<" "\7>$9G>Z;42-CZM871H2/' [!Un9-4>@34.NV@#)(9"8Vb>%7FE'E/JA8H.J07>S=(`BAE9:U = +/K=@!J$U4ï .6L,P$M/0CY0"*103A!'8CL#L&%N<_@#_O/)F#I#$6B)5'6S<3#50 97E$bFI<BI¨».ZÎ ÿ1ó$Q¿sý˜ <-ké…eMAA+  &%T;*;O'2&?]ZYG;&"$8D%-PG79,@;/" GL}K.1)P3*C.)?N>-8+)851IW,[3A%'!/-$7AA>:/4$KL7$76"/6O3#O-F?ð6+A>ö%: =15)0,/@#A).E|Òݽ>3:GI%4?[(,P'>6*3-H"":>7$-'++1V!WKN@B1]FW4IM**FFNJF4EU3? 1*NiòE1_+J&;I&P2P8$(?$15->01.,FjM@V8G62)WXB?AC4N).)-8<?EI:C7$!&6d;B= 9017%9(@"þ!..6!!>K!+51c2*BH7 669&8,9/' Q(/8- M%Y,/?* +B Q4@7BU6(L%_#0)6'/,5<ZA<<EW%?(:JG<MPP%/;C11111111BBA@@?>>==<;(H%E7  +&C(O=CP-c’Xt<4?."þ#(;# *!5>#G(67'G@O!13-,$ E)3?24 EP&.+2=).$2$L"19 IB5&6Z@71#D1+0LK;2>D69,%08E52"?KHH%-"24#@*0;)8{8W7YMV+&3;&=</$+!*&4*, !&.2 :<$%5 ?<T*WHY7[ý886a"A+J"@D-V=2<*UCA8;6@+/ú#IE%!8OoM-IU(1NTM$,-ZI<<<<<=======>>>>>111111111111111111111111111111111111111111111111111111,#K6M,:>( 3 ?O.>J,AB!R9G7T[IH#0L=/+1'O.6<=Q8;;=5864<.3#'(B*5SKO'*N57m+1):C'L1C4_02,4+J2*I'F-(?AAF>uJ>CE:)N(úSD &1;N)QUCC+>0BR'8AG*M3U3X)47GB,/7+=)ANJ*8=R44-%I0K+#68B<?2BVL33M'B@+'?\UC E<DBII!j31?1@068JPB9@CJV¬ÿ?lŽ…¨šê|û ü JS aëxžè¾H=MDI' ">+0/EH/05(Bù/C$ ,C R9(ZF-? G-d:"C23C +07'44 +5W 94E&'c$/7E.%H!-,5$4 )$ý  E+ %)ø$A%(/K0K4@,!3M2IR4`JE)10 Fs£©}mY%(,@(0`C6A*>34+?6.D9K 8.DQ,E2T0MU(J[8=:AC?TB%,(@A:E=3:2=Aœ•dGN"G5+ )DA<2=?,6+53>Q*390@)'"9DCb9#B hS)@F$(:6Y+-(%XV.þY=%_%,5c6::B(5;B?& BJL[7=7!RKB*92 I>8;76H-6 58:1+KD<IN'>=A,9E*7@NQ7B9"N)4._D68" 'G3$$4QAF&-72/&1RB?3!*@6(+&11111111BBA@@?>>=<<;@/+:=8O%(7Y/2/^NP5ib=85B8PM<@AIEú:Y=) 2 "*D6=9?79 +6H%@><=A-o)4,(A?#&DGA(7&3*44<"-,#DB )# 3$;2&G>?  :)7R'478%%õ#&"1?O7?;^@&)E\M+ IF1FAJ5TG$-?'JA<1*#>%B-0@<F?#(59($2%&+þ8#0C$$2>6%d1ULKBû$3!ýK,C'91B53@T42+$.E@(eKg%<.B3bQCD9+=IC-:/#SDB,\H<<<=======>>>>>>1111111111111111111111111111111111111111111111111111112HV,^R:J,3M1&+*KD4H/*:<2(7EJ@ 4-77Y(6T$G1Z$,^,@4+>@HøGH-8F%;-9MDWomf5E€34?' ('XT8/;?MZ$#JB2+%P( (U +?(.Z%1IP>H&QUH^;AfS+?;V&#B5c/5,6XLN#3Z-#4<;48:>A9/-=FRpP;7*,P*1S1E4[+4 ?1 N:.*>=63:78!9A@UIcE>!8:O8M"HV]ä FF]†ð»î©)äW"UT)cy® TRs<'3A":DLþ1!3MM69-#,(7+3 K;4,37B7&AU'T5i"ú41>#3$<45=4)@0")*QDX4&5? ý$8$J5*#"/R4!-04;+?+)<+I3$L)=YI/ +X>Q+F?>IB*$T8Tb;#%75AE#?8iO.E72:3AC440>00A898(#2R^jZ{mhUPA91CA7484M A@ @=(FTv37@…&ú'>#/.=33"$$G.= Y=F`"3<*D37.<:,@YSW/F0Oh[ $0 )T &E B2'S6)I"676/kpGC/11,4I7?(5KE?. .Qh(]+O8 +%+*:ôK&-(E730D+2E4 E*30 +NRVS/'E8%52,3;8J/($ &3FDL !'6**U7>A40A2*-?=F*J+11111111BAA@??>>=<<;82BXN>MN)X>?9=B=d:0Q=14"/4/',!P>.NEM9.#/L26,3Gg:D@#Gc3!n/Q/A ')6&7.0,H9#8896#%].q<.&7*'#D>D3302%2%#(71DQ'"D44BFG20.[ +cQJ>Z0ES$0M. 3 =\DB5U4:Eb&?E;81V*;U)+F1<9)8ý<)+B2 -!3107 3CB )/9:3 /3D.<N1+UZN:.'E"(;/u¬r?&0#@4:><G2F59<=======>>>>>>>111111111111111111111111111111111111111111111111111111)6)47(2QHn1d-H;5 CI*DBEbDH.-V"%øc:B8'*%)3B5+5+P-:*C5h,*/RO7(EQ_;&8U>U%1:K626%.OG3'%?73:7%#-5'6;B4(M.T;tŒpB105*÷h%&^938,rn ˜ŸJ0AV(*Hi-1H48#*@ 9B*4.K+50=ñ,BY$?^!7/6M )>?%1<PKM!'>+E)#0: +E-ZNKK!b>6XPk=I©ëýO`ï2 +åjqG}~¸-Ï! *)¾¨_=EJV0)X<"+8,b"@)-'J3]<??k ?,94)A;8CA>*=G$"9'6/3 V 5-#."H8=P'E?0.""9+P?(!)7*e<ô/4A%.+ü_R7J/,A*>8!?1K%)#5H/7>;:1:,FEe,>(2+.,9b)h+"-Y$)V3=, <,@.&(Eij*RF*1h@[9y;&U+<M[MSm!>CH66HP#+J5[$'),*-%I&)3)1 !GR5B)>c%)0/7F :6&"5(tL;L_&%?2R-8(0"P8 L"A@b9%B#P=/?.!-8LD=/), -DL6CE5+Q26!$ZR>?<"@8M3)N@'64<D-Z! +0S<Ta?'m2?2@&#505$I3=B :!1,d=)/5)?'O2;A22E' +;65+11111111BAA@??>==<;;XC/>"$=@1,00% U*&(u0B7I)@9A+4H'A104C.@X1,[VVJ7)?O,4P,<!# %9+J,cED<A +4A8+/#V&90:042.ô9!:*O(&30?Q &8YWK +9=#-e= %,)-Q.^ FRmGMK\JE"\ ++2-+.H/6)HnX+ %83I3 :%84<<%..2. I J"9+0I'1#1PD;+!:.DMJ B@Q8;D@+ <CÀ2Ï„Y:H)B@->.57U5EE======>>>>>>>;111111111111111111111111111111111111111111111111111111A0W4!-XP*742($;1!E3/;NRc=6 +B#UG,B<?D-ðIl/K.O2:5-<FVI8;/3&&*.(H9FT@S<?E& 8 ,@"@<57* B&9?-/ ?/_;.6IIG&A8\&0BP+.@&„§jI*K=5)5++$D5;]Aszòò ~ Q9 '9:8X+93V/32(J-R!R9$FEODW8+GC5LU)>92 +W#4B90( +;L ,>+C!!9V\;-_c<p|“ò e. ô$(7}I}>}Ú/® ¨?ÄE[=NFDCJ:4#TH(@)2%.':))"*&AG&',"JNM)B@*35?MCE'7 45>>;F4:I171"-+F58eJ85!(K)E(?:!--613!B$8F7.B#9(TQ"*Eý@H#058&/)ú3*%(*+a+<M.n1(DB7aAI58uG;q5-'1-#6C 1)2:>>^)2 KZ%JSjT)U56($<,QW/_QQEAX(7Px.P7NV:)_ANLC>6T;DR)K=G^F.4/95<0^8?@=F/O5+@N9<10,<2+*#R8:'6"D%4:3.5D/%F 6X<"09EG-'A&)*NI&1F=&0G*C\ %@#Jþ%89$E(BCP3ÞC5O2ZA1 + 0=>./-(*H79>)$LR%*1"B;%KAQ:O:?8QMV7@11111111BA@@??>==<;;,@@5CA_:+<L_/>@:2'L(7PDBþJý.'.,F"G0 E<8/4#(SA=#>$2C>&"5 07&K4.7J$!45*09J,C0'B-+9,^ U/"3S#fC9"Q(5*9 :ü%5/4%-+88, >NE6*?93-H1,J $ EP"6b,sOEr'G7(Ì%&Aæ3<63YC]C@X<6@7,8Yý;/&,58)$**1IE^-SE-2N*I-=^6A(C7-("U†×4º@E78!KI.=[;ZI/R?,7====>>>>>>>?;111111111111111111111111111111111111111111111111111111<@@$2C-(:,:.3e(b45'H>&80-FWA!.96-/3A.Z:-:%53"G&3<>$  !A<*-4?Y,7.3-D7B<L"Y39h_$C-N.0H/801DN)=k9I @4M)a/#&?¤|@14O5G%$I**`(GxÒü›|o+E!A,>$[,)7-'' 1,.4L&A<3$& ,IVK7J$DEG>@HW8@5<R5, AKT?J;3 B<$-<08;;;!<69$D=Z?:w›õúXÞ0 y$}}j)!¦ vœ4eSYX54D3b>(=6J:6%.1KAQL4% A: N+7D)4,:?<úd#QE7LD17% >3$U"+U'7_2JC?E15%9$1EA/;)$2,4 "%<9*<Hü$JA8$ XA<29EHN*19/@#2<,bF%/N/4LPI (,d*#?I(NQ-9VL5;P42Vc/F^=&[56,giGw"@XQ'*]V0$=\A8i83k=(<22 59#" 8 9@b=B0P19+?K+.49WH,3+J=9% +=%F#7(ý%P64*4G#J"=C>B567<Qh;;!? O<06@;*<JT\ $0 5ASEe+@A? X("=&$/Aý*5.=+MR199RD=_\:$)G7*<M!G!@7B*4#.'D*:+ $QI&%0xQMv9x_OJ.÷5C11111111BA@@?>>=<<;::9.23m*BVOB)3 PS(>B*X + *N!ü'ABþ>>!"+6&!Z'O>562NK9;R2_6H<308! '0-A;3J4J7N> U<01D*-:<''*4O."*=DN3,:(86`MR $#' 7#.(:"2SL-71 K+9N0*9+$@B:(4>`YraGLX(K<J8m @?!A,Q*)/9",O("'4 '<04,K7NE%NL8 P.( '7JHP(H<69+6&,5K±âÓqGO$IBMXYLN%XSN?JXb?M==>>>>>>>??;111111111111111111111111111111111111111111111111111111 +@ZK+ *!"&45(4K?G,LV S@*-DU5 -S1NA4!9"$@C"401B8#:(6+ + * CBEa>G'$<CHJ("+R6-+=G-=%4;<, =;14AO;/LL.J'@6aR2maƒv?U=<_4+\4?CA‡yOd$&A<C[6$2þKDl.#+@)5%**I2Wal<1?=?!1*3^*J"í CS5Za%9\'-)+K6+@.#HGrBB@K.$31‰yãè>­§ 3µ-cWzWª,N3 AŽo[:A<1!H;'*!<63,=8JHL7L>/)2+::+#%-<K8!F+*X=47F9@?#k@N1"CR +QK3fL!L/BkB.0-=.'&"&(1K1 GCQ%àB+'"-4C"81%(&D)$- .IB)-C,BJ2?_;4 *7- @1#$7%A;:AB5*B5F 5G1+G,B&+:/4Wa<&&5A  [*+6>cK:aE"P>GP@0MB "=^ L5>-`(9*O2IP#A(6E?P"'HHL?3R_'%@B2)[,/ 6DB +NB;.Q=E(Nb3URO<$1</@8BIJ3C5P=,)R'59<J':*#NJ:6.M,ð$I;8%!O2+ô/66F+B!1):BE:6)/'882R6$-3BK#-G47>A'$9Q97#2A)%Lb~ ûdÄ]L=1%>+EEDCCBAA@@?>>=<<;::"01T* #*.5T6U#_%o287G&\*>1L0HI+25,8)OLX!a 3L7D.^%"!!4? =Cÿ48KC;+;0Dì@L=08C2G*H$LB7=0*'!M0!B"6?4;V=û2.$' ,(;!C+*@85<$6#-@6096T!1,7!$3/ô@[Y@A2#35O%:*K*C87P#U/ )>++ N71P++R&AIB,(BBg'+I0E'1?I/%2B:+o<•m\$&:D/^JIJ)P'RGO4=\A5>>>>>>???;111111111111111111111111111111111111111FFF111111111T;0OxW7<*B %82I E#Q`@(E<7X5<A[TAF-5%a3BF:E%&&@Q42p&$O28@5B2IG:U0+Hý_\m!;@*)*&$4E=D +:!S B-M105;_HR?+1]EB;##0=L:&BQ;:NmX73N0>3@"&`"c( CElM$NC@9*224%4!O-2')8,I09#& @:)%>%.#Q,*!$",(;6/%55eD@,`.O9P9,63b:=ML261D9xltÁe4q +” ìÄJ +9ëöÕOI@KG?KW@42,;EC=|;:B-7ÿ@-"V14!A5'DN.*@RF.(;1EO@3F6.OH?-fJQM?9F !%FVN'-8''H Bÿ M#0FH&#HN(101@@(@-$-KJ3L:"0GA>AJ +50-&4F5DIa %/'3(B4<$(C[JQ)*""4,9,8K$:O72!$6T10N4G@.*6è,>IKM 9A>GAT9JZUC6:%7B8/1+@<"*.H)_bTFV*>MXjL-E3DZ2N1"1?9M<<gH"7ü9E<]&",6%F; 2!I(D@=MOb +&=)T.%)\ I?B;W":@<1C/9?(2LA57'@7RE 30#$P=UH"9G'63>EQ>-)R R5b-#MH$JP6A '1),WC>:SCI4B=}•"Èö6Y-)EHEEDCCBAA@??>==<;;:9J6-*4<N#8:5;Gf/?IN36Q437"@13*< >H-*T*E/(O,-8;974?/)=3/2Dh(3<C;ED'?ú B9/< 5#).4 ?0.A3A5#)80=!;1=87!2R=G3,@9-7\*5/NG.(B-H6Z)%W&M( (?!KBD;$69&N L+9(9 %?GAH=$(,@#(> [T.[:,&AB=E.:F5S$:&DY=FU;D5,CMO@[EL61AB-5X78>>>>????;111111111111111111111111111111111111111GGG111111111>::HS9L@&:22=>3$3BA/\B'&?>*/-91M=2Y1(\51TE5!@=J/*&@UBTD,4(:E'.d$/6OU3$-)8!/D+=<.Z6GJe ;$:#*6Y'EK$%4Q>5GGM BL?G#   %O0+HTH@L"]J)Ge #1?GE9V&1T4@NG;,805n+U>B)8<U%WE8/9?3(;-?)3WS‹•?M6B$J6($%& <$\'S5.K@ZW)[…˜ºi Ò ê è]'ù5ð¥MC\.0K5M']JB2/2:6>1 @3+*A<4='30U7/B2S)544? m;B,KEE)#%GA-=2M+>-0LN 14IC2.%BG(1ø.6)E/*G+ýK)%JOJI)PG*>7MIP!"E3/7AC1:;AJ'A7F">24?5DG +2(8==S0 %E0L!E6`7P $A</*@>P;#I.>Q,#7eEE/VHAY@D6):,h=7<\2L33 "RK!U<4ð766.27,S4. *=CZQvi[ZF03;,9-B]ôEk1P18,2%CN&6I9.+@=rCOI-Ee:-&'8A@6>/0O/V-A/8:f*,a58*# !& /ý8P\!E8*/G;U0Jì' >;6O/!;i)-2(=/&'/D3N+LO&08.7*-,HM68N¡Gø ¹ <\F.Gf EDDCBBAA@??>==<;;:9/8;/9H?2/93@+AmAa."[;&2-CM8+72' 6-$#J%9(;I ,7 Ý ,K-8C0/'CD,/&P# /ú4L%B;%MRT8GZ;4ED.%'OX1=P-OY2B(J! H2#= +6H(#D8U&L):)K217'2.%!=7(#D 1@0 %<5^-!D;# /ØL>E94&D#UN-:1`1,7;/FE6*4 8 +9KSU  $*P#_CV:,'JM5@;=5=J %#G7Y-:D!)6Fg +G:'EP4V]WWN=j>?????;111111111111111111111111111111111111111GGG111111111G'1Z0=.hJ5/34,@)BLM)1"g#CYý+AX:hBN4*G,B;R>I!>Q -,+('";*$YP<(0%$G 443 6X.>0"!.",(041#")SGr4'Y.&,98'/"0G5?+7T*H",P;)7#1KDB)3/B!_"0=2%D))7D9L5Y;E-'?B3:,"W5 '>;?( # ./)&@'8 #Q#$+@PCM7O,BB&P7gÇÆ’S[C2K(52SISW9/C66@<OP"JJYš®Ö TB“kˆU£‡e&_8zDhO0/67 GJI&!--#RB<E0+%7>J26?<8?&Vc>1V(D1+,2&õ0")#A"A(h',L/5D= /K;3:# *:'9DH3%EK<3*?K+qS5-24--*+&G,'9" ; -wA K.T+--3&5/)!+K#8lGG<F#N9() B-R@9D0[88cF9>L%D$ +%3.<G)25IH?i4R+6M3:2^4 P8BH/"31@%aF40"N0'!J9>/<+5;6U$/=6#Th]k8Q2F7:O@ñ, BKS'Pü:F6Gþ=I@U)D4'(B 2N=M(65E*/A==/M+-2fPL1=B10?8;E$70 WM,@&* ,5F)+"=$"208<AS27!8"A-D.(82&B15)/ (0>7 NV9./&==K`;–î,BkB\$O%EDDCBBA@@?>>=<<;::9KtcZ5R014I<HI/'#:!<+B.%!C,(*H(?''%34E-E%8=;*/-</8@6 2L:*D&3H1 6-.M%A*+í;4)%&S/ .*-E8+<A.C-+'2XL:<.5KM #1(.4-*þ:4L$43QA-5)BI(ù#+"$$24<G8E$XKôC Y?I4[1:[u *c44A$+ SP#;J0,8@:C:U: D-7JG<Gd5+ ?B/%6e(E'-@XC"M+(-,,0WaL7uE+pFE/`P$cc7I????<111111111111111111111111111111111111111GGG111111111(.9</25>MC3UYA50#74$.99<I7.z4At0agP?PdT÷` +I:)\B3A-9?.?+B1?'>54<-;05R>7'>F)#( \?(,35?:;:2++34$ .:44U55-9!SICq8=>%O(CB@1A06/9-,?B-7; 8B0'6!E27) `8-R*/8)9$(A8"I< +)-\$ +*3#*%@=bf7<MDzÍù÷•1ðH4KWCBU*59 !7(&( U>2*[Vs„nœÂÀ +."0ÏÅÓsD42C0Naoj5gI01=4&/3 :([//98"G8%G*+NRY)5D?/0;5<4BC2ý9)?59;! *YFJf-298)C'IB 5%.! /47`D'P*J. +?;;(*:10A&CK@V +&X(//)*A,?$Y6M&?J$/ @"m19024,,]M#!8(KDL G7%O]4&RO+(*@%:I;:A^"X!|<<,;];0710[G05;M*Lc-41/$I4J8S8)"b,5/a?9`C'*"L;F(>8+6?DW:;4127.+,#-)+5Y<$=DKZOBJUEC!6?J*@<O7?F_2Y`,C%BPC4)S<_K+;@NI2H%5#\=@(BQ4>Q5M5GPV*O&2R+! J-3Q9/<,J?&_O)&C1F/8‰mæÿ›>K3“^HREDDCBBA@@?>>=<<;::96%H, M KX!Z))S:G1)+,QÿF*. 0.#-[,0>()M.%"3.(.G8945E0T>)9JU:/ )OATGJF/'1.GFP2#-0>> .M4:*7".+8'>Y"$ü!H-Q>,  '!#HG'()6 +(0)Y0)?F78D2+ÿ%B@"C<6)4"7)1RH!68 @"3,5>($8>.*431E2<F!7 +K10??I,M:9X%8HC*))W#*\O*8RQ.T<F>0WDS"#4J?@<111111111111111111111111111111111111111GGG1111111110L#B;M=.k CZ +$<&(P--"e5 E:X#+B$"]JToQE07;.=9;;W5<9* ,61+42CGI*+="-0?!IK 2<IC:T" <A4lH"7; %QKG@=",3. 0B+&GN"7e?7!$="4.0<LJTKI@IN?4T '(TGPVJl9BL*Qj,C@LI)G +$. 8/94J $$ '2333P=sf‰F«X<J =1_& †SjBUZ @3&8H)xYUhQvzsβǟ²_Šsfm~MbEZ=K?? _,;W-P3+"G>A9HHO.8,7< GWE*A6(6)#R'E*C( N:%),'B+L<A#0:O()9&N3"0.!,"?K5Y6*,M0=9?1D+:OM,? 946+I4?CN$53<2:0>;BK70B  +!769%="5ùA &6KL1(H80M<2PE8->FT*F7E +/5P4/*%N3?<P;NX$+88F?# F!YIIcc6+"$(@/>CC! +bM<8>R60:9^5><N! W5`$Lb0")5M"775$JMG*9/M]ERZP8-';A8@>))2A:5P44<13<\3T<&K5L%"8Q[rra(6/,-3/EB 7E[/BCM$*A8>D@KE(-DTA)11Dl=-4H6/V4^2_B"2Zƒ5ZA4D^kiXEDCCBAA@??>==<;;::978"I7#V102'+:0595E;1>*' +-2O?B(,øE8ú#>[*,,- 9R@3?F5 15@8B3*K3(?û.*5F52-Y6i"<H7Y.E48V@K2> K+F7/*'*BE9*D%" 0+H<"%(17- <'Q>B J'6J< F$2=/V1+_-3">M.'*R. .2<)3R>72!B+P74V.]92#NB'*:TdFB;2.Td;$S<=W01W'.D.;I4W#/WEBb?I8>JA.69QA/I5PJK<111111111111111111111111111111111111111HHH111111111")K0,' dD6@4F<b"-V;h8;9- 8P%6!:=)`N0Q <AL1NT4<æ8>H1AC0@E' 7Q<L=47CR$&,I 7"?-G9B$33QSGLNo:I?#1t++1:0$*$9_!?KgR:8%+ýS:"F$.0O'S9*: +6H<J(8=N@*-G7QY@B!,.U0o&ý3%1fû=4>=2$O<jIù6<D#Hd,aX"‚EÏQG;A# L2;3tP+S_2CLRg4GV~Xja“o`zyYS‡sJOI5<<Q3W%1/&J>$66&:6Nù)CO"U%2D4:7FE'41N];6CE,…PIE)J/,$6J.VK8(;(G36S/U?C8G)>(A>CU8h"R8:$0$M )"0MI)/è(2Om<>@BdB?(<-_E_!7=09P0IM9F/ÿ* 60+;1>4h3XR(B/XBR@=F E6XbJHC$^$9$(#S:L09$]$/T*B"D.*D$/C":'.$I&I: 1T5nX7C>@P#X+5g;@#BJ8Q%9Q<Jc6(>XA-/LE>3kR/!.94'@FL-"+G8<WBSSAB6YFA;0_%G&90*Q-<-2Nly=$m=.>J77+Eè'6.S &:B.!';?;;ù5127?'M=>(G26='M>#-\*' mTug[B8b!=P](MPEDCCBAA@??>==<;;:993`O,+00E>2?B,O.Z:>IöA,>D)/70(/37(7"ÿ$ G7%. 0Q3-S%%&B/<6:0ö!-** 1CE(>;)K/7/-!!JH4>01H=e 3C6%!-/#1.37>01/38(F(S4C8;#B<71',BJ;^=.C4I 16 7&> B)d0(8E8T3 +6?79%:3%7*F&:s@39586E%I<\V!P%;2ESM92(&e!2+<-@;0<7@-+$E`B-[W0*+)LB6%HˆD6!7{=GGX(l;J4KZ4QD8<11111111111111111111111111111111111111111.111111111*+/H1P $=0E2.F +<./88$B3 'P +1Q1T-9R5M8K P/78b0& +LY@$2  ,)5,/*9`178/ý5A$.0(0T1 61=DÚ:"41G>V(>F96(3%HM65[&;=G#'52O1Y )BJ>-G@FN3K73 +,:,L=?%)90R036,)]":8#,) p*7G*"8+)K0*3@DH;Q1,'EJ+D*9;N9w¾ŽpcB24&?@@K#$FC)28.j+2;++@I9Pk0pmTb†PtMK\`,/X[$<G2=_9637*<4+2UD cI6-7>16A.6#C( +V+Q,QRDDKLIWL:_,)50@.(*-:`#(.ý 7:+<:$%DF37B8FV'0""1þ^$K.JBF*>:45:H+"=-YeSOY6A92LD(1qR7UD.FP:9GMV&A.6BOU6-MS<RP:,'R'5V664*D<7;d;*Fl@F[!P'E[ 3?*J#.-&E>28/&!/=cpA@/:7./JC4<> B>5A&%Q]]5P+C&"R 8"G2%G6m?>@)%U:+N,^*+3L-AX2ZX-#.156B+B5_*N"?%B26 "$%:B%9'&6A4JN/&Q693#@ !6C-)û=$973üH-?42b79 '7,'@(*7L3WA=,=DWF.)64RUHB?.V3B.3*/")#+9VBDDCBBA@@?>>=<<;;:993+ .N($TXI)9B'DF-PB66DX'?CHG;K3/M2M'L^7=0&,? ,)#/#+I* /:M595L?8-"&?(2[2&:w]"0L62I=&;":'71/8=2;<4!4-!7/0>'850$FH@-[A81<$)53- a'$6401Xk|ˆGX6"'D$@#O<C!--':\BGA!#-E#CGZ TA.< CUý-;+3171`TGQ2%Z `[(@7A?BE(/-H\%Z@V67>=53S/NEL<N!IEL2J]<11111111111111111111111111111111111111111P111111111GQ22aK(3,s:JI` ýJ I45k+AD(#*N/AE2?ZVd.U@)H  U&D4$=9$R!Y9C=(-%3$.8G6X]2/;)295*-2< Se&C%* Vý7>&6N M0(O0">,$ M:/%64"AE(0G:5@-,>.&F+@,M+X8/=I1$,8 1%'QEB !P+R3E++:7B=CV3-51))+DX.RV£åú²68#%)>/4 F+HL4D7=9:W4H<\=Q3?e<wDAKAC[2$m=;5Ob&>;-&+.#1F*)8Fç8"/%E_Y&G8M@2/86'1#)@XVK/<BV[U9()%$$M+(F7*6H&0x6\5)b9;G%0<@\+>J3c*!TB;0"053KER.,,:P26#  '+Y-$cűeOZ9`<!E=,%,T47@3:?5:N'e(/04+IS%?< 8Fw“&'1I5'+.6H'3 K+A25;7)+20$2?k$Y@1F1WB>()H8.*N1;AFZ=bOA)0WcOG=1/V80!LLv':!B*9*%2.I*@E*"N05YWE6:U>9AN;K09(FHJ>G=4. +(J?0E!;-B$FH4'7<"7Fþ%HG4BA9!4%<0'85J?^;") 1>1HQS+f;371&,(3;; +ˆ[[†qfbEBJ47C<@UDj>9DDCBBA@@?>>=<<;::98)J;7W,=H'FA58I(&=G-7L9Y*R.H$@?L\.P4*KU;q03:3K =A0B/+ &"<..Y+30< Bö20@7*F2*J=?TFN8'938ò* 10/&V+5#":)/%7+9;.+t*=59&R5GC:<+'3'"R&4!3'-6>1)AP60FŽ»ãZ&6'.:0#40>"5FHN2=^u +=.X22BB4:+ K4L(P0RFB/2(A(,#k#HF? ;510M/:XgMO4:1XW8MW@+3U;:M1AB=<11111111111111111111111111111111111111111[111111111&'W=L5CV5(65][0A;2:2 L;2/+@IH/760H(?''-8&-161#;ÿQ<4E=S9'=!5&F> &2.9þ41>509L>D<K„\!.B*9=E<?(I SO1/X9"?C.6/2>&8""69P%5*F @.3-)/$!85XA(3539(Jý3)6  ùK; 1F,D!(8M%IB'(D )LXK(?<E$J4??+.-34DE*{ÄÊouXDCEO---@;+<)H:8OK,F=4<XtOEH2OW_FC;->B#:`FA`SBc)L(D&+M09.@0! U  2&I1:(I+2$-XFP8U%-#9Z=F+;u_+041?0?-A?#E:1C?":: <$A:D=6 DFA38(7%@5:6*78&.((1"5E=2+fBD#BBD(USPn,ã->I);*[(/2+<-2;b!'&: :0+G1&&HORE83.ME8>!>E*+Q>B2##[6 *@j3<(9"LKýC\)CcCB"S\*(.9E>.HC9+D7GLY4:_j7[7)5úa2JB0CX <1/K;.=8)HCQ<oQ4792(,' )6.0Ic,EU6D7(= 654K]PkAO"+2C'",C6$F$4!)457#K)A88g7<p$ øA7pC827*K*.Px’ºXB@- &L9UE8*mALDCCBAA@??>>=<<;::987<W934@' ";46>49ITC" /(>J99C17aD6, +39x#;*G+?4\$%'A'00H199\^)[S6I4R34&_;15'0*+6O;)+ $P + Bé$,# ;gJ8Q*;"T0-$*&0^I49@*C%8PR%B#@&0HûM$.5.8#!7^"1CZ•âŠ.!)L/&dm'BX?1FFJFDv(&..;97"9#K<÷W0B#A?4A1V1óE,cE3T-D+36B(:)RE4D?(<1F@C[|7MUF%TJ^6!)-Y./M'<11111111111111111111111111111111111111111G111111111"4R,Q81/%!38A,< ?g$15?A8"ÿ>J<''"J;`?O'H3*9&/N3&/3'BRCB<M:5>A:%-0& G#_ Y4":0=>0**5<4^:7H 1*C["2>6-7D!+0G!:37ø#TJ#=AD3BE Pec @78#7N=)6   "5!@0/9+ I*)-E>0CYZ*2E'÷P H5Pj7?E9:&44IDL5G 7:(64-AL6'VtlSJ:7U-0(D5J9"1 +gQ5< +]G/;!8E@4U-Y.M2.,@þ8G46Db6-<LO#:4#9._%65#NE#?!5$0Y +&40H;8KR^CS?79G.M#O*4!E5f0IIZ2/4M6.4G86TV=+B%E=;?F.&V3*3:"HO]],E1,?E![0.+3;+=(=-2J:3)[:6@\só„G.6K5@5E:9):,1'>!R%)$2JE +*A.H6@#C7'2Z#0>+DCC(7ú=$%&M)Q5/@DJFBE#D<aO9?SFW B2)[EN&+KOD2+^7L2kJM3L75IE?)K:44)9,4H2H7(S&%56?jY,d#Z)?HR)õbJ5GmVGE#"*(; ;0%M8-(fZ@=H+(-5$4j4%L)BEN Q \A',,+/NI/*&96G@OE8F8/3N/9^ÉÀœ<OHLEQ''8X;2=DCCBAA@??>==<;;:9982;MV/M!^4MM%JJ-6S;Hk@+41E4-A>M4/+ e_"CNM>%&#)!;5EIR&T&(4GF(&47C3&H/> 0%G:#27G/ M5D++%*0'#FþF3;NJW-1&-=8!2)ùF<1*6C9FH.!95?2$X+ J,F10 C-(.2‹·£|+@;"<0:7#941#'N>95<8(G,#2"=S K`-f9H`,G'7+G/94>+<!9YOG52<FA7QPA<2Q9231E$-HQ,"8MI!6XL)F5i<=1111111111111111111111111111ZAGd‹11111111E111111111:3D=*::"2 22#"?3!_.A:<&,J''TT<W10<=4+5 C*)&! ö+K=%T)21L5N@sS3%#571E<cA"#<":13A 2.RJEQm52%*E*.;6D-J/$9ü@0Hh04gnC55dP5@/%þK&.56>82C0.c<-" ?)0'-YA-:E'JA<.fEQ`,(4ð<(B-MPZM5F@G<=,/A7%j6]B\:TH;&,),J9-=  4;0:_,!y9:V29BMLUK?f.B#EM.V0.+6^A "U6>#'/,:VA&*37*/ +;%)#,6+4)&L?7J C`=F3.:#22#?#A'9!*!!/ 8,V;Z`JOE .B42011.' .H%$.DB3<>4?/""-E91;MCS#!%<!6C"G;01H98ÿ={¡?,DG*?=<>#K#I(&)U0K78V-KLP?/b0I$ù32 NC9B6?A(?-/0FO49;3O842HQ!>R:8,S0N>="2 ME#DMJB+@$2+0O:A$G54C7; 8+#BëH#5O-JMJ:(Q&86L9891@êK5D9F%,*B52D3*0L4N+521Cd1$\16>4K<1 S3Gh&CQV-:$(#-C->")>)/5@1'/BD*4=='$3//5, &+C84<%X)1B3=t`§”‡v#&=M"5["uRID9DCBBA@@??>==<;;:998-F7(@0ZTK:1=1;-NUF6H?:@T79(;  +*=5/)A%r9$<Q1.3*0//0,7 ,<C4B317)*H+)2 ;+1"_ =w/N+"(T#43ý./" T"TB(? $$@6E-+7!\'#!EQFM2-(2,;8M>3 + 3-;C(<'P*)XLKE?80C3lfPO=D0**"KF90$ =H)="UK$)! 6Y6AMZAN"<DYA&=S1'4),C7R&4#8C0Y"E9+N>%-W1CM8F|MB?MCE)WNLh]G87==>>??@@ABBCCD11111111_8o(n'\UGMh11111111O111111111i-6WFE5>3#$A47H%F'5G*'49-,=6:M1P.!-0<+?2$.)S%*$"",)@J&&*W02IQN*,L'6^%Bý%D?9"#=0.''Q=7GA@5*74 0@8&AA3+=IC7:/.124 S^.d7>%A1@)-3*#3O.86W0<)&-6$ 0Af 2)&(K/2!B9+4-AIG,/KE?$ )<C1P24H.5T1J$HS==,1'Zl2BZL*`:/P6PHWJ!# #):*6LD2$A!.6G4>?RJ'4<5$=#5C28=,G`[0"U=4 36A&#<7E5S# .(*`-8T>a9(@%U!4J2,48"5'A=J2=O&E4$9T]”T`N11$,4:+<I&D'4 +<,$ +[%A',0RW  NJ&8/5&4-'E &0*5.#,>+ /R1%F^1$M',II*ý341NC^= 5=+-;G.J'35@('KUA.?2O9,TpP&>;C6H%'* =/..0>/.BFCPN9YI4L>% '?5B9.KPG?F-&Q?G*Q?)+6*E)&)?;=F5:P/'1R*:3(# +< 3' %:'*&].1N3- /!G 0)ERC0/=BUC2&7=@K18=÷(/GS5B<?52'(KBD9?1I4Q..70$7+*1<:ALT%e>/-X3--<6&/%of;(Rd;O3eNb>C*:E'T`#DDCBBA@@?>>=<<;::9887>8_66< @UF?%H_;=#JAH! ,5;0/,0J&*(>?DI:3H!066/*0W05+G(@7W)1.L 6>>9&.4!'F +@H;>C% d!1H Q7U<H#DG13$&<H604"[6P2'4A321 $,->$JjD)-@*)6.>j'Ek0!38 //3ö+7>.@'E&.4//&+7(71.B<$644,PI'8#@'/@'5$0*3f(2!8*!KB Y+7HD,-N2E9M/(WR<<'Q3/R-?NDHP6==>>?@@AABBCCD111111112aIT7&W=DBF11111111G111111111(BQF('7C+&JW2íFBN:B'2&5-: &I1+MKFý#L!KS.E#)"('M1=6@7:(BY$ ì@QHA>7MT;363"-;XBR/63P$+E 4MN<'J(,!!:8</":M.6$+'CU=J{uV90LE)>(U6/CCO46<,5GI0R*();&H$*78", =$-4(=35CïH ?.@4<7? P%Z *-7- [! /+$@C>@B=3V4RB9)MM#V2Q?9%9V*:7"1HN68=]*8WS26Af#3õ%!EPJ+]"G :4>2$9 $@,-G" 77.@DX2d+ .V'>B,##3%6ZI:8 &/\?@C2-!-3- Y5A&RC5+N;+DK1< +@!>M,6+& "!23S5$S2N%2.0,2F)?FD.X&<>4P4([FY645,E< --3&>A@-I"$M*PM*237SD =?:?@0,I#V+U'R /3M-E24&9WL'H'I0'ZT,%0J-V(?P!\1.0#5#+XZ"3A$=*%53LIE7.%IQ3#BK6>k'I+hJ8@8':/ TB"36 ?2I0_(MAJ2B0,Q6A$G2J;F""*C81[.* ;B"+45 '&=1é."=4UE#A3V>70&AO.5QA<42267-),D06qRP$;MCP4@l-#.QHCCBAA@@?>>=<<;::988B,C[38L=1r?KQI@UL<S/2;:- 1-(&5( 6LB6@ HKeR6-911/8,LR(BbS$.5'%=(,S94F(2W."84841*A9;"P&G(C526R2:14:3&&HqHJ3GC<E'B#>7("-= 1=H#4(4,$7'?CE@4*<1. +6>60JP'.!E"14@4+2$l(628C,?!ý75,1(++KwG08 -8W107 8"M726* 1=10?*?+,A.;)/GB&=CFJFN-H!.58M8"e&N2GB=>>??@@AABBCCD11111111\<"6F]dajZPAX2x_|`U111111111P+B!aeD3>(=>>$5'01@<àI'GH9(F%"I5+q 890)%0ZB7R>/;3&&5"3@-7"')ODL.k.3(: '04;RP00"/+,ÿ<.T[@6(:KKNóQ*5R2$2_ŽwT$:!;V0VB3;" Q+@N% C14K%5551*d!9;6EE?;):/28.09;-*)7$5S61:/&bZ;.6>:I KJL>.'\!Q4+R96þP,<Q+8.A?4MB`63K@9 j)$.5#99F+K'@& BD&2%:9K+-A2RH>E.434)+'. =:,!%B 445G9T6ñ/=:DI.FPE171N*(,=W-X42?)53A8:=K$##=:/5+> ('"$-A&)<"?.U6C=?% 9@%$;%%R ,f##DC$QCZ:8]!>UF"1:AJ7.+)@5@'GM-lýE=CF3A!NnP33NQ+1#7;7=TI8D$==(x;+/.TA/EC8)4E#,2$I4=FL$5&-:G"DB:.c<12+$#> f)>94F+,>4F$IO$#E 1&Z;NG57HV`TcMo8+CJQ<'%\CR1=-&a/0(L,@1P@-Aþ*ø7!H'B="4JKP&36&;5#679399.@34,SKHIQEJD'gK1c5::9aBU@&M\3';CCBAA@??>==<;;:99884"K<60 B6VKE87')"."K4'0*-#1/41A?(H+:!$K9ý 3 +F69%S<KA3/[DP+9+ CAA8#766ë?&'4-1A. .F]6&/L-?8.@N0"37K L7SJ 7</+(;>9(,=;,8L02J<7GD!"F.Oj=@óV2O'  ),&3 Z_00&(<?D:ý?0-3*Q:*8% *L CL6$-/1":36C=K;<20G3*?&C@-f:*%C7N$7"!1E.M=BCJ7GTTPEg/KýEEJQVFMOK1==>>??@@AABCCDD11111111<af"Dc¯»g}W/M1T3TPU{1111111114G5J81VG*A"1#&A.A,C%=G+1@ü4>87AP;C +A=T94=($.<(94+\!'%2F9 8"71. +410h+'.';F>O $5> C%,230Q!(62B'#"@<"MK*)"<7 5:*9B^Y56 681CLf/8@'$E"D9O`*v)D-"P3+E!4B%.MKU>I>9K6D -:+M(,0--2!"EGCd)/7?b($'2B*?QHdø@(KQ;HA*/3d&`JZ#G?(44;.9"9 '3+GI=;I 7;+6,$$907#,>.í3?? N2(78-91<-#*,( '0&C/0$Fc,(+H;),%,3S=V>=94,!>R*8G<W*7,BC>,"?9M,$öF7-Z@(J`!4&=*CI3(."174DA3L;)*>C=-C.(FC)ÿ5VP90?:71-C):.BR08K8=Wz#DKN<==<#(*)FHJCøDB1Z6'9=*0 G55$7(DS=0W85G+-?faG"!7,L?910#768?G$>3M(@%FE4KWB1E:QA9 $O@A'=‘7V?H>Br@7:I8/HE#4,<IDL^$!1</F09i`$-O@S0G-">I:?-,=0%1 )#:EC!=FB10Y.,E3?9?@-:.D1!!4F:T76F17C(O:(!1"K)F7147XL;UORGT\83 05?<<<<CBBAA@??>==<;;:9987';3\T^@H#B-?8%355,": ,Y=:L7(@(ý;a&=<c%!4K<9+'#S#D8?C],Z9BR13Y .KOTü D@KN-;4COG.748*432$ O*A8B$I/$2$D#0 OE0"R3256Y.G$X*H CB-."!!;J7,4!A%-*-%T-XM,&0<3!<aT=R1"3F!L;&ô^2A&!7!PM4)"1#3(4F0J8V*=#D>ZZ<, 82#%31(F7 +R$:[@>'4;*>G386WU>:>S0=>>??@AABBCC11111111113@r]áï|*F89M7X<Z`111111111$8/@_7F!/&'-û7 + :;Q5DY?:$>A=-;'1I2?,.0>3.?X&C7TG*'*? P C +E&5)G5SR=2@7: 6>$O>1ö +F4B%2O'1CU0&9'6.#2BB3ÿ28H( %!L3K"W=,"-???/I2?C**$890>0+/)/@S)24R <K#a2.=>"!<0)%%=IJC#8G'1u9N;88B7-5C8ä3)FK3BO:#?%V6(S%-$D:4U:66/P@)H )!ZSO6L,,19;,\17N<->DL1F: )-535Y=")IeB42B.2C13A<186:gOQB!V$++ -%(0:I B<8$"3 B'66,^@@7#K+<$'DM1.K((<!.75%?8>!4P2@b'N"()$V%+@'2?,0>)7+RH-?^-%/&/8k2\1E[J;127I)—1<4?=öACm2BJ1R+7**\;A $<9*=-@DH ;J$HA.Z.C4Q|KY++ó5"+I!\?RZ+M54IjEC*;-P<8<(C.0+ L0"AB71X#+O >IX"EGE06K?=g?5'T2"'5<H'E<(6>5.*<s3WH=.RZ-T:.B%%5,1;Fb/=A,)3m*;'/G('4OK7!4DA66,/?G&= 56.G7O0Deq50J#2!4<<<<<<<CBBA@@?>>=<<;::9987;O(@CPIu\%x1V%=Y1>>:.8QI j'E<I2*$>8%>D12LF<)D5E%/BQò6.19.B816*8:-F2%,*@877&)?:46"*%,5,GE>+,;.*B* 7RmCM63</>&!%I99$:;0\A:+ÿ@|'.:2L4%'2.9!1%:IO18N'D6+<1V/0/:'Q E -11V+/_?8J-÷;.31;G%9>4;U$),0,9OA,G;/N*W!< +F'?-/=y?.4H@0H=<-IQ=>??@@AABBCC1111111111C[=[ëo^÷žeG:6L%10RX[111111111;?G24*21=C=?=6S72ÿS7G5;<)2R+kT=J/.;)[:ùoB,678/*4A(.  LCE<.1J7.`‡GA;-% +=?,/N@*#G/6)7$B7(;$E-+K-.;)=:I +ME.&/*3:. !!*(3;Q#<J15(9ø<92:6HP;-88S(M-#5J*<2%@1;0E',C^#"-P`A+=9-?/J#K!4E+J4b& E(>4D7H(G95M>//*[,7Q01"),AE)"R/(2<%8#.9a#!  "0)+(]GHJI.3?'61=>H;j@P&OAL7'S=/#A".?''..*DK; IDP[yK]@44öR-60@+*-#I,$S2 C92#I "0=B98PKF'[E!!<G#)%=þ9?Y/"X =<6+6E5H6vJ&M?C9D[RZ\9!>TH=lQ'TO7B3"80ZF:$;FYD6)F31 ;0)C3.IAH9(;J!: z.R0*"=<2MS(ü78 )=1KQE9J9am)4C6C>8S: $s=4$6=>!19,;TMú:3D!B[3/*9,F&/=> /)C+. 00?S84PP%7B96O;D?fG.%KO41(PGCB?T&6 $+YH<3"//89C2S7($6<,>H8D6N39&B=16:c@W=YF +<<<<<<<<<<CBBA@@?>>=<<;::9887)&C]<A>1S,)$)1;3R+'5)QU-@ '>-$;"-50:=>W=%% 9#6D7L7#6 $$H*46"04H.9RL+B+2$:'>"+I2;!&/4?1%5m1.(`"*2%M&;'3%1) C+:L@87-=AO% 2/+)3\B$A->-d(:1/=EJ&N0D4:M:%35EK.BH'IN",-"2LAEV?SN*Y>0)<J,,;0?8M6RFNK+V3'W7F-*IEM?XBFGT?@CD %*..A;`9=$6'9>>??@@AABBCC111111111pCUoħ¬uÕr&V'6&<.)(R(a111111111D+0%=dP3")#DL.AKeA/:N5- "='jW*.2-."G-,*rk# += '$3I.0% #7??3#+"FVDIhl-(A?CE5%3=" G>@M(N1A+*!0)PX8=P?f&) +J>BJ-3,5H#8@'E?H#2)?%''/@@O9@6!TX/8$55)/W+K8/0& *<E*Y:;0N@L$60SU$pB<!&2>A0$9604E'7W4X9O.3O: 5H3(D'CN>J/ Z?]A\%6H3%IZ>GRS%T.!#5;+ /#93b2K*AC4QIG+C8;@UA"G?D72-?)JJ1HLw5S=( jB1A! N.,MQû=ItJH?G-2S7)93)(=%3 =-7#, -.71BA+BF.0&= )kINPNQ:6G?DMW)+ a<&/<"N.3<6E.<"'[D?H^HO )*-,1N</2.*#Q$.:f3\DUEJ6<6D6?;<86z&:O2B1/LU?g-%(RN8(;0'\46:7;/8/('@E1(1=/:F'J?;V.O;-%;>A"<<#VJB:7 +@<8Sx3C=3M'QF-,_B#<9J%;)>O-7G3; 9:$#*:a4..6-QO62-A9/+3 :^+72)@ R2FB0]*F31+M$.<.07`y$Q:7TE9@I1G<<<<<<<<<<<CBAA@??>==<;;::9887P6`I??LP48C$30?(%(./ +@:G&10<"58QMS/'34<J/BOïÿ.7Q=+0">(F;OD0..!F=  +!I"!"+,,2 >#G..\4b!2.9:,@1A;:5$3'P6>O-B21!;R?5E3);1 15,]#E0- !(*N>RHþ'54=%ÿD#-UDB0?;50)L>6=H,FB".$û3S22AC>3,B:ý*;,(47 >$H4'23%(&+PC'FQMIûXM-%65-0B/\O(WR(2G;,bP_>>??@@AABCCD11111111INCÂnÄ¿ùrOA6&0<;#EI4111111111 LKE75/: 1D Pd52(üX0;'<\NB-M>J;=._ 30R 0T \?=)T25 U,KU8J94;$D9C=9‡aDBB)H#7*51D8C/3:7># 2S6E5"Q!94G*-83#G#[6/>=) 2L9<5 :"+0ô)>+P2/EJJ[9FA'?6:#.5;P-86"<=SG $<J43$P49?1q N@; +G0-+*17F!/>EO(1N.b@/ 1ûý.;AC*L526R6"*BF:X0A*)-31H<:5:>Re7_,i)1J4)0@:B>=@K+2!'JCR<S/4!5-J@R@39@()Z1I0a7+I=+ <A& J#'4dr*0+.. !0$..)_ S)ý0"*(81>%  Aùø/.9B3*,(V(( 8HIU P: ,-IFOHJ:2@'A)%4W:O:5@C2m.126?L.?GR@dSIX*+0@d%/58"/+-<,/0_,DA]"]CD%@M GL?#4>5C)ZYEF%/5F?L,5Be'(#DIUF;#-4E6P'T1)-'B$)*("3#AB42AL&"8GH=KB$:C +W@GL1A*02D/*%;723AG#%<(K4*#KOC-C?;S B1M# ü-&;""Q2F%?*I@!3))B30Cb23N+<2UG<<<<<<<<<<<<<CBAA@??>==<;;:99877=J>i[EL+"7?j 27AC?(T&3 !4RK#$29,('+6)@;391 +#)O(*-,>9C/S56=CH+;252O>51[1X DK4, CEA"7@C< /ìI<,< 4 W'(%YF% U9C)9%.?: /=E<%:/%%#,+/:%$A+A0Y.,9 A>0JN0"FH9;<40TA;*P78(6!-9F2*6<>514, 51/4:<.A33I/7)< D,%>/ /?/I-ûU5E,7';9B)G0Y<:Pf9fMJ7,ûR'D#/%ELQ1.>>??@AABBCCD111111112]Pž’£!ªG8D%0+!Uî$-#3111111111,K<M11!6I5:D!)85FRf1 '?'2 )%W8,;*#:M>B2/U$*4.@?6* @1#Z6?H;4;D-+gB@F9R?-0.-'BD'(9&,'#"L,MI;8T/'/.'?6G/M,<03) )95D+4fB-\464>?:?:<N05 +& -4).*Y/QMP:2^>V,55M"-->E21NI0CyQ8F9>)A[A)QfM-)8=(;+#-4FGD&F;6@,50 1"&B<6$*VAý.3-)$#*&$;R\foH[:I&;p.3?C>;v'gI'SS;I .)<?>(`-IG@<:<3@9+0QRQ\CJ5T5ü4$*4Dk*$059AF)3îG:&/+:#'.,/21;95/9O$=3?;F_PTFA;< ,598$>#+DC?0E!GD3C#6$"F!N17&3=VH>0.#(:#4# Bü: D/44<I>uG@-Y;FEF62#*`/*)*;L4C3(OD3I#G"=C$(þB;6 BD&- A/K-4=K',&IV9ù HL2-)FA#M$E0*G@5A506.T%DC*<B':=9,>;-(&8" 19@*D=/;R'==f^>)%C0Q$5H>7022#F.A!F'O6(&0@2.;9(.Q9&&,C@EPE/$+;22'2Y/+bDE8F.<Ow<<<<<<<<<<<<<<<BBA@@?>>=<<;;:99877===^D1l?$=@Y(E!09>6&# -" Nc:@#6Z$NEA$Q@<#SD;,D9'AK9(740Q<6'-'8$3D+#1',OAJB1 .J)V)9H 0$+1:,/G&4<$H:96F5-?"G:4,-%8\71 V%)*7$DMJ1"TJF5:$+F% /0"B0ÿ"BO );81-E30P>úF+0.'5I7=#9=583H7 ú 0S#+0<TUD*)RU$# O>2-2=O:I>68&kU4I>*H1<9.=ö?-2E>??@@AABBCCD11111111FRt»ù3&“r`!7Q 1*!>096a^11111111149-1-88<3:1255(Ob":#=4KFS=>3)"!+0",+<#B G>(.1 +0",6+-R$G.;,7R1938CN,D:*+$,S*U&:]1]=M32D<"7$0I"3-gY+)3"+O< E9!62#KC(0&(]FO7I5E+2Z<;,'3955[,S= Mè." ( ,=(. <7|ŒLVZC>2UM[,)$?2(!-0ù5P,$45M! n$L/" =?T/16EWLBS1)S5N $>,; +!,,=27*:S„‹QTbcSG:/+%+5*#SK 97./&C1>?1#@V3S:55/%^9.!:29S9M6@3JTðM .7 8F2#>k9AKF$91+(D$2#<.B-`þh.:,[J-M?Q3&2U ++% -";+H#0$B3A; úJB0U*<@0**41..$>45C?&P>)',+57TA'F-Z9I}O;352\Z*K%M9+@TXA?DB(>@4K;%5*AI:/34<!;I=PF-O0gK3D2BRR[K9C>L 4?,K0Kf*3D:R1;1J4BSN:&)6EDLED531- S!9EN 'J5$1PHT$40@/>=U5jhJ\,R.&LY +%',\YLA( B9YJH,EMF%+5,@! = +?<@66=&'<27-J3P%@5%8:*qB=7><<<<<<<<<<<<<<<<BBA@@?>>=<<;::98876====W2-KAL=*AP/3K5% E021P%6!?8 <-H@ ,2$) +8'%'9&1NK$39D7/OB02_^JF+7= 1K>,*@9$%R"@(mP:<7Z^2 (G5"+#O 6<#*R<#7.)N")-83@6-GEH8=04#0E39K058"(P2'R.T,DN@K3J>A#*)B-.']]6+=A+F1.*.6#D%D=M:ý9;0/GC=*#7$ +;R/D.C&%4O&K,D)0X#5S,;46)<G>??@@AABBCDD11111111C@{¥îίXK!/$;7-,>\&>U_1111111114-Q)X4>'9.1D=U,=B_F8<[&L5,&-18B =0g:<)(Q,'13&D :"(gQ3)NHC&6EK60)*%3>B!6CFAHJ-}c)FH0:H;7,ðJ$0/&KR2$.,'%:G@8 DVDX<=A=(R'!T=#úRA)I:.8+J39@D?8VX.(83:9)5KXެ—lh;3 ;62*0*0&T9O*E.!3:,'ñ514(*Q8W+E>6úB9,96==T <[N˜±vH2U0+!J4!B46)9 32&JWbS3#O.UJ:*1+/'*4,*' -=*'( e) +P7CSC,)?&?">Z$;K,,+-8\B,ú.B2<#$5JV,/A:%()AL  +<,I+DøGN$0C2"`J4@  9;O<*-994,F.!. FCAB/?2B$;5-12CN3??U.U<0(7(<4K9>Q:UHMO->PJ2HGYL5JL9ICFT>%:;SAK<L_P-o0C"L;"GMV-A.;^Pf_U?HT8A4?A`>4Cý&F&LCeM)TUY?=? :E<"K ;4] FD/78"59&50N=5W34E.BL1UO[T.B6P:\QA(>#<E5YBE989G'; +,42#/-)1-5&,,GZH8z#B01??`*@=W7:5$C:*H736H&[<<<<<<<<<<<<<<<<<BAA@??>==<<;::98876=====XI;.BA>=KOH6A" +9ñ!$#*3#'6÷HG&K40+A1DV-:&@PE.8 6:$"<#+#*:0$%A 27BZ&!,4"QC($*'C%,1&C hQ >7-0\F;K 89'Q +ÿA>..;#1/!5:P:"6$,0$854EíE2`Y I-3#!-(?"7G<I0**?>*)+F!4*22#)H $+5H!9%)2D)=9D5D6!:2A@J& H(/1B5„MW@):!0<L<dM,.>!VQ:',<= H>??@@AABCCDD11111111VTÈ™ŽnQ\AJ;X:")5LDHGNA111111111FT7)7=7?;!$9N 8J?L "eO5.!%$=W*.:%E>2>G+9&H;ø&>2/*$'0E1^0B.= +D$ýI!;*3*V4HE#5+)7 Z!4DB0n1:07-&@ 0GDF:=-;CIC% !02,C5ODEˆig;@GR2#>9<EON^<@e?L19BPh62CK88-1qmGzGE#!)?5"F6:R+A1574*C8 .!8/-=BE;K.WW 1,+<G%')(<Zü6Å`›W7;=)MJ">4)#5 96Y;OC!0H4035"ýKdKL0/!S)%<2B1B2TA89'  :1&,'44IA3N'$5'ðS:*5%;9;*@AA%MK<1#LE"NF-+-4]!T%*#N:2:A8*/*8&@9D"J.?BLE"!"EL4H>+Z:-/O4@0a@(ì ::7@b0+QP*I61,ý2 $U759/?9="%/A%>9(ïP;ZM$=9/"^1/'<L&ÿ68:K;4)^&#(332<b‚Ö¢aM#H2f2F?6M*37`5"$3P6C7]Q*B>9#=;7.7*.>$&gAK44;5X%.<5B6076IFU'.M!?,@?.OC%DOo4_Œ^7o5iO'%BK<81]@2:9- 4,HMH)8T*d2=A$8./_C+J*CN&&U23C8<<<<<<<<<<<<<<<<<<BAA@??>==<;;:998776======3\J%@<)K;!&D +H9D07=>#_E;)9L!1!K&-8>`P\06+1J642K7=!B?167*%="C ?$**öG982)8RDE(D4?;>!A/X7?%+$"E#>!#15=F/ +>X2F+.5#28A1#C4*8#OC!$=+5$:H9'D)Ac -ÿO73.71(I3T@H%94ôÿ4;K>"*KACWE+#1G*$-D(*>O 1>DAB<:8 3%[@35>+CQ;F6>6F2, 5S183=(?b@O^AE&,8%Dý86$JR(H=>??@AABBCCDD11111111=28a]fG2+c>*0CZ$%;BM111111111Nc84(6D',;Y8G +:)@#  D1.)&,:E$6BED>+<&5?90I@/0,L= (@%SJU:E>0.!K(E,$K2DCZý-Z>1 $H89G8'7&25!*3GLB.A00%B>0JI5X+(+,83O3/ožAGAC<):'7#%6 'D-m`TU HXMA/).#=K229 +/NE@<S;)GB"#Q %#1:9!$7I;;,89*XF%?T&ED4Aj'E@UF +#2i$SuÜ * ÆûI44-U+(4!?<2 +7A:(G(WF5-;S68<CW$<8@8IB6Q<8@30CEHL??ZdL+ 51F&2 7"40, !<H28þQFU72<6*// +#N(O7`CM'- V+*'PN\Z%38G?Z5@/R8J9*I!"6 =B@.//@=-L 2,;.3]# =DM1'@8S(S3":b*;40=F8;H@*#/A>D5GGJB76)!2NVN_.4C`)O>9VD?" = 4G-EQ-i= ?BD;I??@§ +‚&‡LM;%>'KD;<5D?IQ@B27fMB>D[O&4S"VP-#_*/L1<=K$c4Qc&5! 9>FxE]?G@VB9Ll&hiŸtœº—WCPK>32D;qi2<66&Jý&10-*R57„1A'\f,<U3H5'U>R^06+ý63LA?2<<<<<<<<<<<<<<<<<<<BA@@??>==<;;:998776=======d%95*>><923:00A3' FZC(T!'!)!&7::I<<BU+L#>=2:HD'YQ//:9M ("12 +82:  ?CG*#EH!* +F>.:@$4Q+N,R8S7$"2>4C>%%&+2@)1)*CF'.@C),!BN0C3!=+*"<5<T>29 :;LE-HGQ =!é!<3@ +8  /&6 H3*K%8(?4.$-C)L3!"`K81).74VBU+M?##IB5<e7F-?fD6,<CG&/+0>4?;]8=[H?@@AABBCCDD11111111]aTTGX."F!#I_33:JB111111111i=9$.'#!HPWOF1" N,-270H$:$IA(F9;N" D;8ZNZT#A;+ BK"AB&7A0N:.F+ '1\LIEMH?)(T@9?4+1A +  89%C^(.9A=*/QM"5%567JP2 4!54C/1J2?iB„1=6",:F+1@?QŽAZF7$866>$5*14HF^AiI89=;K*Q<($2rI7O, 0B;/1C12))!B%<3K)+!&&61#2.;.%9X£Á K •ÍåK1&)?,;85%:$:A8b 3@A7F\T1G/30L <bV7 0+?3/O?=GH+`9.4h«ÓD&D=1:( t..BW! B340%.JB88D:5C@$$=#/_W/+=K*9?XB&PP-2;DA$:O7m2"M&9&:"C8B-D$J(<:EE)7,K&!(YI!,T+/40.9DT'70WD6/C7AG8F@FK÷1,#41 *F?&)8>4‘Y=VKM/]^,F?<L<,IZ*5*B1-L;;B**(*E<C-8kP7GÈ®N²ªC;#43!H 9ZDCK@.5M:M? &.8O>TVN0<3#93<J,$.,$2_/3'E-#Be# #;i3;aG:-UP/'22@<V%RKgÄ3DIü½ªŸj.[XM)Oh‹Y9(90GL/19'-LAB$',671!7HH7!O.5d:K:=D3=I$"<<<<<<<<<<<<<<<<<<<<BA@@?>>=<<;::988766========%67 .,3'3;4`2R??8/.2 1136)2 *€";=?RC&?X70X&W@=8X 1A*B1:5=DMé,%>$-I:G(572= &"P0ø5&<3CD*8L",MS 39_&3#,<35þ)7RCH*6 +RC%.:CA;5"@V23<1-)5W&\JC0'.<-B3!!)-H%F((2$E$7e4 9&H+=F#:Y9\`A%.P7E6F=[207_&,MQ3;(4Dü =>H70?@@AABBCDDE11111111Q0;-8EIKH=@.@\0:ûH7111111111B'K*:@;,&B;B#M.I"A0/,@$A&'9*[5** (2NOIc4R["?K:.71Oó0! H0/6 5,=173.E(GH;16/S÷'B14ÿ15<#0N992OI3SI!C:+ù^DC91/CO@K33F;,Z94LP=4 _5;8bV33>)7K.E$K%3Ggau8CH4J5+%(>5@1@5NH &@)9%+84N18##O,aNCPRI9<733KVDS4‚½†±CJ=>' <AB8OIF51@5/ +?@B. ;-&C=F>O?/G):L": 3TLISUˆ›ºg8*N'. Q"4+7?1*"#(*"B"Y<WQ+4<91=?/)E4']Q<%;" 50 2C7/#"UP '.&A7Q:@?,.8>(3@:  *WF3%1!SI4B-A?<S3IC+3T/J!0K,<91'IC># 5*þ3ÿ-(;&F4,KDi4.T!T197&2<25!4!<%$43[5?.)M?VO?G6‘à¹'—Œh\-(*2) ;EA9NH5HD5497*sEkEA%D4K<R1:<G@<I@f6>3620I^7>98M=90;>1LICH]wjµ5i7ð"ñKCGj2B9)]‚N\)G4!0*!!=48#5@RBC+ˆ2B8%R?=pA=)#2jJ4*G$G3<<<<<<<<<<<<<<<<<<<<<<A@@?>>=<<;::98876==========.6<,<.'0K ,<AOV)>+Df#>5P8+;%+"#[6B& ÿ8(*/KS330FQ%P'@?>GFOS(%,:3S5*,6-!;H  +G':ì/"/DO&3;:=CUö3D %:`'4.:2*-,9@*%,=&$*ùA+K -J4'>#=Q`p0/&@*C1A#+( #3%N(#6E*)> '\-Dÿ5,:6@ 3J61$'b[60/5.6-I-*E(FES2877PG"NC:=K6/:</!93B3-M@,!74&T@2?@@ABBCCDD1111111119JO7O/1$(8N9*@111111111=KJ\!&;!8HDGS3(;H*D23^8? 'R,BKZA- )X!+"/ICZX4C<+úùB]0M%@<5ä"1A" /J"+?6'AEGC#)B/=6'&)5-!.0(?>þ63B&2;+9/;09` *2(0\X7H+& 2$.,‚o…[XD4:1!S F:C,E,<D4.'@;".1;QNG7?_a|FYH'%F=D3K2"(F:O._GA#>53%HA2Y7H;"BS):3/=6G>UÒð›OOÿ@!GF.E:d &>FDE1'D<F,T3'*;7N-R1$0EA2C +$H#@&2:&GC=:#'<VoM9E>I<,7N-7&3=4OP09 +9B@JA<'H$8!3(!/@5&)%22*7C>037*'.46D0/ ,^8=0M`X3=%J<5<8R:*8H,O97 +4T#2X997+ + `1F@,#FVEhMW4/G7EF4O5H!5<6 <3ù*,U^8G ?HA."1>/,-9D2)B#0ø)CWH'V¹GÝkZ"323*v*OI0<@-&]P4,[<S9J_:8N.LGY;AXG2?3$ZO?3GCO,:$aRYF;LX!=-93HLe>bm|ËNŠÞ±FßµdTT]4 PI>P?@,R=-15 9D/0P6)=1+AF3Q.^@S 4>4HcT+WW:@:0<<<<<<<<<<<<<<<<<<<<<<A@??>==<;;:998776==========>6*3-8S0JF36"*#,8=bA-)2 ++83+6;CJL):VB3=I33318EC>/.(="< +:8<%9 +7:9/94D@;>:?;7#(c /÷1/])+CO,*@,"N0U<*-l8BB*60J(5HF.H'86'<G9;/ *O2T0 ME3; ++:)">:")*(P@&3{}$70" f2E@?$RûI"91.%<>ALD*G 2?i8=)*.&_C1, C+96 F))(7=L6!,8? b-WKD*$3? 3A4< @@AABBCCDD111111111%?T,#!$*C[#+G@= 1 -/111111111>53:YY68V0U,.<6%45<,YAD"I.).0>C "/2=7$F]&\%$=+?3O4:<9'F%/8.ñH@/C2BH/%ñ%0*ýT88*   ]5+--3=J$:63(4<.@=07öK 7LJ:HWD"(4G>( #Y),=mz‹‚ET0;# #B;*='&&QR F/?N][D<7e_7k&<63(&'7,$+53>$5-84&"4!5÷=#+:2/<<I%610!3ý,3->~E@/9.!=C>)\>C#B'=h;6MF46<@"0;-B99A?0.#'#lF5>">U"E$17jEC 0@J*g!['òK9<E:21+ /1 WJ>#8:')8+,E9P/9=6(U)3:60>8(E&b-%65I1)%YKD0>O-V/003'1J'+*.0-<3($> A151õg9?DW7D3)?49?8$;b,;6J+D@45+%""Y>?ð,.4J&,1 ??.F1;$+G0nO QE?UE2$\t —qN4#ú>8SW9%&ÿE9 oI>MøB:*24 ?J6( ,NB<1]2FIKIQ-"?.9>ÿ""Q+;H @J8:!(!'`LT„  +ˆ ž +ÉÉ“!½U.W#.PD=(CL\/+6=(@!N +!2J),&L+)#=(_!5O*N<9514*:<<<<<<<<<<<<<<<<<<<<<<<A@??>==<;;:998776===========29/9.-'>E6^)%G<!>N7F.>;<1 <HF[`8F0 *3-A2()I@)TM9A!8*&54H: .,M24:./8413H4()S0**!&)/!5DP? "02H- AýZ5-,A$@1( -G3$M21?D2'898Li)G<,ü2%! +J/1KO>R=;=.,D,$(, =/3+92!!:þ1- ,6B/!(6=DA6 :"2</7?2C1:!3@+1W&üU2 =,OI5IE6H)B0O/%.:89@@AABBCCDD111111111yLWT$+?9@)0:40/:C4"/#1111111112eH+>ñN285úU(=O&4J!?J:F:>"S!+.4:/5  @B.þ6-?8?-&#'E4HQA<,.*H:2(($F-"5>,ïL/:22#(&?0!>/d*#7'1 (#2GY*%NL7]?$&G)5.-+DFC4V'#a7+='+7rewk(6D<_ü(3+%/L)'&66 +&@2>9ZB?+7?58 ++Q/*? <"%;V6U(.'474_-e5;2%"-#?%L 7:<#=6?.9&-þV1P&G/!,b."23'%,-/)@3;>CN,CG3N'\:5IQ?Hû]44.=33;DO7+.>>'[(*98*0ø=71K*7%E31(R- -+@& 5+þO<0+" ä'1,0 E ;.ø:Z 2K=ED7K):)8,,/)DB22a@>ð/L:'7:94T<>8#B*BF%=5R-O31=:<B!J)<%FP"!H ^c =ME1$%W(;g01=A:%A,IGI9)16E(! 7>-19c#'6-+>WW38.c`IŠ>0=,% C;0.6B?:1`8K?I.:(*2C&!:R=62/2KþJ=_!8D1I7HE#<C>HaP+H8A†AJ+L_ZlZ…•4Ö ˜ )° Ñ À w³j^1@5F:3>/%0;4f83: *M.A3G#M,455%!:J<D0*FA4<<<<<<<<<<<<<<<<<<<<<<<@@?>>=<<;::998776===========L/!2-J '76EB4A.SB(M*$0": ,*V%T832R.W@5>1CIc(8<K4#(3%:4/K932 3#M7C,7"N$JG0?'"=3!71,D GÿP#G=D=<HT.P #8M%B%-b+)&Z=<2 3?*M:-<1UH9&?$TI.S&)2,<$4EG(D9/!@6<Y8&A0&2".B!"75)/#'."+'@66'-7G?\82k,L; V9)@5#3L523 >;=?A=:.9;(*þ@!NR3';@AABBCDDE111111111&3B[9k1@FE<E,:'e/!@111111111SNPNGB4(3=wBA29* (P-T43 +- +*+S++.,D-ý<,:5G,>%),ó>7/3@+AK"R%fV$3>41,K6')##AM "MA' +'%7A\'((%*#2B"K! # 7 =)B1E/ C>9<V$@=PcEG$T:A8'K4T:$)>>L&4J'"7!*Be87JE,9(?Hõ9<CJ,.=8D$1#9+(-/?);P6&0M$ D<;)/ü9=-<)@R1*DC;+$'0>+/55:7$/=0G97#?D&<<HI>DX<<594>&S,=84Q-!].4k(@$.&6CQ,!,<(+[(7H86MD1e+C:#$'"47 9>&$5& I0'!,0>=Nþ=> O/ 56@M1VM)5J/!1`ZC,&J10@-0!-:;'R4c%? +>H5BJ2,*ô&J"6U(R=]J'XûI6Jp,RCIG3J !&R$,3!=9=:4'&#ù>ONCDK/B.U-0_;NQ3."WM4ƒ%5X/_gKNSm-@;5# S1T6[.37L&+%A.M8Kô-d )DDU10&'>#d"BID@?d <&P8/B9$G8cT=CÊ’S XUÚ` ßüU³…K.0ERU9IZ?3)M/;,H.0+B!F.&$!7(C(;U!/<71C$$8TSSQ=*I<<<<<<<<<<<<<<<<<<<<<<<<@@?>>=<<;::988766============:A::#1A"5HBH2%-\BBýóS2(&2/>74FC-8U/G*4%J4C]570F )28<þ<<28/D!$9Im>39aj+;M?(9?'óB'?#)23$:Q+&ñ2C$)`$.9+F8;A4>KlEVU5" ;4>"5>ÿ%7DL&3B?5 :(=/!.'nJC!D-=95 )]=, ;$$$5G3=<1B4/&A= 0(I69UN7QM="A4"3&6*9ú;<:6A!SF80;2J77D?XHE><>(Z_1F*#TTA@ABBCCDDE111111111S--M^KC#^R.94=<.A.$;B1111111119>#/Eg-.2.7.EH+4*? 5*<ô7H3(C7;.!,& 5*3)RRV<B-+û%A.GB13HG!&cB#?8.03 1E 0213Fæ728:?:H-"+<H0j= ,,Q L%>%V"'/?9,;FID@/:5IVE-/8!ý !4Q * #?,!(9G P8B9B!9GG9K168M >_38<5ND;"T@=%')315HN!C;L;&3'11/"D::5$A ,".!ÿ@DEP1 9:9Z +(%21Y]/;?F+!Eð/F';8JM4P[?6AA>.;ZXoEZ#*DQ>0+>)L(3$<<;,1(9B +@7-.+7::51-0 74D6I-71:" +ð5IL .F%AU'@'/,7HL\#?2.F /="9@+7"57;!;* -60-@Sý>+[@C1EHT5<Z/L-=->EL'1&1M(2 +RC!L-H*J!\8'5%48F?>S113 +4+2NF$N4=I<H- M3V?GPB5N:S;/+7 #(Q;&.?'O37<QüL>+84 0"M.2EI.!8[O'&Q&5>BiH*OIP;(3 TJh[$C=<-3GUL032czÕê© T?° þ •Ž5†I>+KAI"9+>&&F=öT?4$+-073%X'+>L%=#:;CNV 3DO/PV %<<<<<<<<<<<<<<<<<<<<<<<<<<??>==<;;::98876==============9/=D.JE2"W/S .>7,A&@. B&>K *38I!QR3>R)($9 @:3./ó6$HD6(-DD +!)UA1=&.3:N1380A;88H.5;=-";-#;*?8F48#):1-TN(/N-6G8P9$*I2"H'7%S 7*8?71D6-8)69P:2ÿBF?k<R.K:8-S+>/0OSY48&<)>9+00_JP;@!>,ePP@CJ6/+826828/`GI>V:.4;=>1B8ñ)5M))EAEAAABBCCDDE111111111MI%8)~N^{–K.`8OJE"2CM111111111I3*>93,H$2H9%8A:A-$M76548,5"!D/OO60JM*#ZZ,<Q%T'/*/;K2P"G,-G+65?G$X=FX;*3k<&/(F8@6ùE"&<*NB(^''1;Y(/$D+V#üD.01%*9XF]D.&PB<6F@?BJ7B@B' <3.õ 4()_)6+.+ =4L: K?8.<B3#9?%?7B4&7L&.? D=?MJØ) *'O)5+DG(-4SA:\. .409TEL!=$D)6EO;>2J89"/ #1DU5.7NLX-CG@'"5 0/0A+@$")+'u†M),1:)#;JH<G<S3R85*11-!J?*6'4&VB 0-34J=82,6;31)3L8Q7BOO6M< %1'-,9'?=3./4/#%l63@A3)=A.*PO(H=.(;:3$P8/$*>V'It7&^1&?û>C3OQ@.C0J@5PIE0Dl)F$.ZW95FRLC/=&÷"Q)IED]3!T>Z2^?8I7;+U+:2EcPC-:FItYb#JG'>K.Y-E@./-JCY?5%9D6$96f6<TjnJ'AG3G>E(>)=]"/[ g-%*BvFÚñâ +Ç 9 } ›.ê|IqZ>*#(++XF,+@ US1?9&2?G#76@<!(7BA) :Rù"?N^A 6;R<<<<<<<<<<<<<<<<<<<<<<<<<<??>==<;;:998776==============3;DC5RD:1M=0EO='<9 +@* SC<.WE'=7î%:$('O6: '64D2G"-84s;9-B., ><K&>D*,G N5"3&R00%G*#...&ù%1:/&B-L"H6$Q/ID?R47!P-B&/-*$@P4?pSE$!=&"OO3$NO1N8- E> >FC%9D+9$'`8;<6'#'$*;,3AIG%/..3<TJ-0"9#91<.|™[`V#0/!;/G+P$ U#YGEI,@@Q7KF!X>H!K35=%47Q,=ABBCCDEE1111111115+)/G=WkÑU,FOP33)5D>1111111118Ma,S24EQ+5"Ej(c(E:K7CAEM#Nf$J->C 'YT0<AEa'I$B%,VB83("GP1-*0;*75()6D540H!) +#>8 ?I15;B)4.MI=A>8 +4$.@JE. 37SPBJ2M-9,-W%>=#-';<*QP';B1 T.p6WWK9sA447>R!RP+ ? '5$K*;9C"81S-:3./FI*3925.PGAh_.29;\b;+.W1@+)GV4Jþ->5>%5L2"/K)*  E:O]OM<G-ü4'!B;&1FD"%;SSZ]<*$GX%FQ!<*/0@ 6*3Qÿ1F*:1NPK !:/Nÿ86/<"7'$\'?"@&-F?+1E@..#ý/3E#/0$)2i.59),3)B.<C<=b$ÿP8;1ùY68'>c3CbCKU)8M-P08H0CMD)?.0VO?)%Cò1#7B%'<C1Vl- \=R1=.<FN6(;E+L604G7$B+! *5?W"=' +>737A%&K?=<:R81##JIDBX0O5P*@,'11?!cG',8!/-U9%HDC+&L<5@LD-88JR5F7'U(BL.6D=#QCj8;wÞša  +Å +•¬o¸bW@;GX?J4+F0b.3D?/"P 5<KL2R>1-0=JL2LSB^>NBO'/!0J:,;P<<<<<<<<<<<<<<<<<<<<<<<<<<?>>=<<;;:998776==============--6:*D?7*9y1B,A[1=/8mE.8> 3G)S/%gF8--B5NYW2'#6)"%A@3(B#;6PFI);6F0+)#4AS(%LM::0"H"+LE29;;8@'>B&/ +<3AH7.E D3)+;5 &<2%;" &HvI6T;M'%2H?&6$65./D/v?+0!/D47E]<?L4 0/5. bP9W"6SC. +7H<>D8%N";k?+*fŠ|¡jc1+S5&A;'M!:' A<ú.-M9!)BDN<2I./ES&,>:ABCCDDEEF111111119 +SD3Dlž§u”m?S80#B111111111+:e0@<KAO!3K +!3/%SK9*C"7>T0B:*-3) S2V<QL,Y0GB7%&*F(<7?2&û05E-3÷X.A)!6.&)7I ;1+6)**$8H6%I32cJ%FEL:<:5>:<';G!8Pd@QQbnd99FL>$,C ?&O#1#1(Ec%5.%6/4&,&A46*6&^K1/0{7 ,;)+ 0H" -;&7/F1#HaH5$B)9>k÷G.CoBES=<46*(Y)#;-+6V1.^"NJd*I74P:9:,+6-a_%+" B>-MlCaTEh/49RE<|;\(..M@8A- 0YA@2'92"<= f>..UB ;"6 9, '=!'22>ø=&$8!#+ +@/A205./1 !E5,* +77I1 '()7'\&N8@ .(<@-?Y'L& #%  O@"B&1&;W!><%.3B3)B*?W["7!:<357+:=>!:UY49"&2*&8$ H+#+W#G* +<C'(R1F1%-=2I^TOfJQ88 wKD.:,;8N1&/0A C5.F# P@/H75 N@E>:592YAgI7&LE.?OG!7"57;0TDhHK4%<@G4T>K`k‚£'7ìÄhä‰la[ CH?\5\D^0OW-e=M526g6,0ô08<R30 f#M+;B3&OF3A<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>=<<;::98876================.P R4*,Q$+ )>nM8=B<#$SMCD;%E24D=R718 KHU<5L@D5G!$P9;W(2F/6I\,I4 8> .IP'E/0A*2O)FL/\S@(ûJ#:2$L<%*&"95?4G2[QAF!G=6.DAD=,K$44O+7aF0N0?M;21 (&./!)!<->  $û\@2D"-#G4I725+&GúNGiƒ×³¿‹˜BM*?A+>O?->! AZ))J%R3#.GD&2)&7*j\J?<#BBCCDDEEF11111111/Rp9:5d ¨Jn388*O7_"AN111111111\-&3WJ:Z:95d'C^>8;.:S.D *:B&%4P!,;N#8%<X…1<C07]Z1 +3D:<;Ds81?/;.:")E*T4%$7#W +E646"1-D_J-0D-: +(?OD;"> *11$E4&8-[G~—¯AM"<;4!*+Y)H93g0)'CB-@&8*/.'/"DM78K31.5':%(1)Bf4#E6gû%66R .Ch5P45$I95 <+@$.-:/[VJ&;92;4[(9ZARc0-599O86@04I #R32@7:*G&D42#,0U01(3>(A4?Cee= `@WZ# +'gD/)D\'3/8>!232)CN4447+A24?H0SA<0R'A4V*(67,(;4$W8575'qK6$&,YM=@9)D<+$-`8aD(+BH7?@I'E=#F.:'-!);EG1,,C&>?6:J)>M]B(/=M 4@Nb*D=+=80#>5AA>:2.Q;L*(:g+"!$<+$>79:9Tq‰m<B6%D/( 8880A3D9S<@>))GK ,`B+^[J6JP"`0A@DG>9G+[ +99''C904(BHE2@9NK3BJT5\NI4R\ŽéeÏ ×8á‰UYH19.$=(+@45R-&;.50 K8XL1 ;4)8S+L:F36)^(5M+5@?&XF[<<<<<<<<<<<<<<<<<<<<<<<<<<<<>==<<;::98876================07XAW90D;3[*@"-E$0!J?BS8B3Ud+$#%)=6I5J9&8I8('4($ :GVA F +%/?/M#<Q09H?,<@-:B0/K,ñI> /79%E+Tj9-#9$E3<P-Z%JL;R47A&613'YIU52-3B<-F* +.ú$?5E1"-E:"@G[L5.BP( -DG09&1ZLô!->D.ß)"Zw^6-$û12T@?NRYàN$ç–_A? I.GD@;RV' 32@D/A@)"DK#S@$a" IL<'6-%EA36DBCCDDEEF11111111;1.8A7p ¨´DY[Q'4-=GX111111111OCGN B[]RO4 7Ab91#6!#>DO;?VB)F$4)++8ý=Zhdn9d;.6,<)*K95MT)-=1:>"9CQ6'9'7%@;:<4A&<@%!E 131R!L*/7úM+!:5%><@2/4(!=i0–БiX-#.S'3"]02b,3? DQ4H7*8)+5PY (G.< F,X5[_/1\H%" !967='ú,c@(@#%CA&-Bó^325/"1@,A 2)(FM%(*1.0%‚'%$D7A23M8J$%?!41 #2;56&DIG< =1:LY;S0-/.G#MC2-&0G(<)6 \,+=%PB-]%5(R//8A= 1.7TD)3õ;=*F>49:#0.-?-# R 4b+%9',p<JK:E 3,Y:6QC!( ;A--+FS+K*%a0,M;/I#PW361:V2,ó8N8G<Y'^ ++NA Y¬–d/RGM;9#:(;F,.:;.0M9/8#$:UHAN9E 4^9Ob7bD;BZ2E,1oS@5Gla­6bN1J>;-,=,:47>=3E%D K''6;CS07C/#;6N]H-(:)7=,P)b@25SI(@JUL^#D4B*F5^=;&X9?,OaY\Úêž¡L[VV0]7OVL=Q<06\Iô21;.Z'22437S+3>jEM"*N'0(5;^OH8<<<<<<<<<<<<<<<<<<<<<<<<<<<<>==<;;:998776================E=(F1SN2L6B66S1DB*A(4(K5úM]5&CN(/L,$K;";;.%K$y[G<X5.$+)ea06#: +.!A48A&_41Tg!B5GU4</6Z1C(G2'T(:<C2SC?E7M&)6-$@#6..6+QG62ES:,%\.X,/OT:GH ).#Yc/?0 +.7=n0:54ZvA$D#\<-<JFI(671(=@T4G(>(K 4+*!PG8J6zðxʆ€bA1(3<GEG@Q&%+'SE*4(H8Ar]'&\Q9-P2O<J_3Z@Sþ@CCDEEFF11111111#7.1UK7+DLHD,;.=EEM).<71111111114ET,<X7AU<IFNjD(7)*9$  ./:I0FM@(_ 72=)7(D$~ƒA6J,1g( '04U:)@(EAOM /E<\YI5&FTA#OQ1'CPF"WC2X< &"H(7UMBJG,G3:6UQ/(-BQ4>A\SK”²yhkI;':!5DD=2O@$1@1 C5B\IB3ML+YB33J"-:2*#-AW57C@E20<!72H>:0*8E"?486Y%DRE/?<3@25]I48a>R)z.%+(</ :[][%<A1õ9CO%[:@5H4;*5eW@?QQ:4)'F<6K3,*OG A43<+6M=6&6//!)+1?:[V'TXCA1+:2Y)1Q?<;;8F5DN=/' +A53%,%<*D,>13%=1LPG('4&>*$G,;D-2K@+'@63H '@-<DR.þ? N:1+:'G=W-5,G5X/"%H7DA*7YA!59|hi­¾pNF;E1(74**-" A311^SU.795J3& g*F+ F$UMJ:G=J)48&6>5Ut?r8b??_4eO5.=<TZB2%E€5=3L=hPi/&HR*QF1/0//><FnEK-N(.="?B0,FJcLAaW5.J6*NI#8 =:-!RX>Q9GZtajz˜ˆdxE!a5=] LA=="-Fÿ=:42Dd@8HJ <(ydC63J>Iõ.t[ý6.P3&]:E0X><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<==<;;:99877==================~W+?cAú@EH426W,I5[?=BD-5d*Q6W=Q$P-"L@9-!%6<-@>:P=;-DT"$62M;W_!:rI(DG-5@B*.@/NL@33B"78-&=;PF)#h/s9K9@P4PD\>C5==$R?J3":H%9/8I$4,9>6:&4+E7+SF8@<%..Q<0þ/4\M6Wb*VGN5=!-B--b,ECMS>2S7%(577^#9..9ABWlPWÞòyoÓùnd ?[E 4P$6$[8/IC*15,#;4LA8 8qK-4)S:T:*3*1SKCDDEEFF111111118+V%GWM1;>26*2C93$#V111111111J>>;Kh_OYJ2/?I*)[9I;^D4")%q*4+37eXD=>WD^GB2<;FC=TF1ü1,L8U,9,@',*B.0CN:OJ76CP-K-5='*6"ME7 /O/@I(+d:X;6$J7D=,?\!V8Ka\x–y*F+(+C.5OVg^3 O;C$##938J0?!6=*(3^[3=-% Q5:+J nOP49c[(P)'":4=J:24.&@b21=EJ1;5/?QED +K@EJ.==5T;2?G—sTLJ'), +0K)2X$E"$1!(#5HN):;B!;K92 +N6D5.:DDSJb]6G3% >c + ;>$F4N&:I6Q:)J!C'"<B%7=@9%P6!R+:+c*2`>'65"'+,ZE=$@KW2Zb3@FG7!=)),"9Q +%19:D!DG[.D$L@<1&,':W)1:5%3P8W0E)$'#?_EYN5:F&LD:M2e]ª³[1N :-6+6.t#Y:5I#/8F"LH.3H$CU3G0<H"JH-F?!2KýRM@@*0=4R?PgN. ,=?/7/='ùB340-(.5RJ<3-?@Y/O@VB,,?(@6H9(=)9Q$HDH7ZkPNMC +I$7BO8&7=1?/\]aBlsa‘<D*BR:937/>N!\G*7]$a?@8E-98@44F3!G5B@S=5@)=RWPA(+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=<<;::9887===================,Dd?49)73V0/.YF )M+3LMF:2g62+Q&"@',)!=?3)/66GR"5&+OX@*F/U1G5,7K;L7?%@1>;H>)</'T9U7^H".J;<YM8EM"'/I6'G(O$)F*8>"a?RN290hC/L!8R(M@+K(4ÿ.\-84=O+m;<H@*FDG8B_!/1P)5',F3A8>KI$0!H?=%P;,5 FHlaÙçøsè£ÊYN>I?J6@ @4&T>#0-]>COSI';ü7G+@O*/dú/9JbP=LDDEEFF11111111TO€a-@L;1/B94 VPp@0111111111+&$3B< 3?,JR`SIH-RE>Ym;I<I7%+1B;?-/.8Z4L7#J0l 470M@\&0P34:-h!'3ô,8'*1NO)0.?I5H -<IU$A8E2A93";'A8X.B> /.7  8.4..72BJ5‡m6MS_<<;WÚ«[5R?%þ.>4/&=:A.6;30H(;@9!+%O##/2|VD?C?$*IEO SKB+U2A (R#MH?#J&:+BN +"AXF3"=UÿY[M"69“‹šB C><@N_E/4==NC#B0,N(/-#77_0> 3H$!=6*NgLT@ ($<CG$;c3+%,?76F1/&.02'Q?-@%P/#?1A/ 02<]4H2C;=C36"D+* &F>C1Hx·‚f/';cI)6!O_@7D.&#3&ST5'0"H*JUO4:1/%>;d\\7!2N"/F--HGAM<<,1PB(0<HL(KT€P^?12 (JHDC*C8%.O47*@E39?14 +R3(+ !-217b97/O.e5-24H=>UO.M"+*N.K<5>IE-';8)\.d'b1?6O"S*K=M&V37.Q2U/B*^FBa2HM0;5Y7YQ%D/0L G<0+*@?J<DK\A7{aQII:<SvLVL;M655;9.-O:,284!\A@5I;E/<:49 A-3ýD%$5&@-607L7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<==<<;::9887===================P-1.0,)/AGERMH%PG/*' +/$X.TM&2!(E 9S&"!Q28.@]7-:1+ 0Q6/D)&,37]7ZáA]4+' &K;.:6)', =42<'1;7d:9>@])5%(.23û@C'*!DH9DI!P:&&_('4E7 .AD4T/_L96!;!M6[KLT4 )+F;'49('(?$./$>F:!-."<&>)08-.q©L¯µf$ŽG?""BW.=L= +GV:2/5'*3E8Bv,2Y3&GM'401<_RüDDKQDEEFG;<<<=5LDaiC!F 9T195TE.VIc%t111111111&"GO4e(Få&_6F<F]"!N#:(?h9=@I5\ C;V"I9C1&C#B]9:>@B'$OF#:9670:K+AI=P6I=K>,36O#5I(E3-)F?3SR-.@.!5R*5$J=8O*C9%5%JILRO^S:X_6.B)#4¬H^D p ?>@2"'X;G65-EU640=+F5%LO:.6c0B +*",#F')1"% 2#&GA#(J5<,$E;2?(Z8]6] E`fŠB)*a)11-".>'nCJ4'3ø,.ANHJ!;DH3,'/&>*<2)LA9E#%?EM+IJ3$D7g-)[4û9DT@0A8[,GB',Qd"LMQ0/'<r>**Z +G3$(hºê5J%,Rë-A952 @ 66Aÿ-'<6&\J,'.";%/3jA+,\ I8U:MöA2DZ‚GY4()!83M8G:1LRRD;-*A_?3 2>/+M#" 0%2*<:<?EA3JQ/IOIJ2C$Ra>Mi3D/TgE<1." =A$L. $SC.%F9I*-*:*3)D4:KH]S+8#;*&?M82=L<BF/=TC.0482IKFKN#H"@M 9lLP82O#3J>N!3g}Q5RA60-OG>ù3./a4A'E@B2Q2KD$K M0`;?N;??&XIK-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===;;:9987====================',X*N7;%-=Fd[(%H):?472A3&!>72UC;cGAG,<b5Só&;1#H(:H7(K +)+H'N+7\(,MA,M3+ñd)62J^+.0i5BX'@!D:7!LI]MF 9"/)(8GAJ(?!-"a.J?)1ü=&"/c15K>U15!@=3:T(1Z +8>85;6/H)7S +J +;HK3hG5A 66--&"IA0aÐÙ&Õ«ànA5a.<+-?E*!/)2TF5.I9#>4 _pC7V\-\7_(#@XcDB%d:=>79::F;;;<<<<iQK8@CI9)&D,\&*i=7FSDNG111111111?@F/+$*4;l9%P)8*42D\I2RXA*$5=%þ*Q.+ ý%:/ë" U6H2;D6!*.;5`8A,"@<1$OD) .#U`255<+;; 60>- '#'H#1-6SR.Xa8:0K-@+ú7BUEJ:5!G+CXsçÔÊ^)5G8HV7CUH+SP;JM/!1-+D)C5+#G("+<ü6!8& 7:B6,:$> K5<!F2'U2&/?C!]J"B$'785‚…d\ 6,B÷'7;O@;1L88(8I+5&`2!;0bTB.5A M#Q9N9NFDC*-@>X4"MH'N81'2.?G*9IOQ6.-;P 0)'&C!11\5h@;(5:0(0Zÿ%6E0KPNW9;‚t´8p50õ6+d<A, +"3,?@N:(,&"4\<DKC:.+E6%=J=;@nE,C9X^tM>YOZ4EamLS=!C)7<7BJc+OQ;f;>& B8>K5'LE(BP?aJA $9cE&#-6#E?D>=/*DP^V0$5?1"A37IS&69@j0?>DJ.*b4-5ýI3? 42M~VMN&/BJ'O:55I)8H4@QY90-;<[9Q7.72ZCS>B1(32PTx6>=NC"Ce$  SB1!9I/ba;Wg:$3LJI[b;A&DH()2;GOMWGNN6j<<<<<<<<<<<<<<<<<<<<<<<<<<<<=====;:998=====================.7!(01-;Y#5)C6)D?=.=*S+3,)()C0'LGP6H78 -6')*,5I(3%D.CR1."ú!F#7(&/$371P4(G>LC.5*9[M?!7:4Hú>U'*I/?4 Y/1)22T188L.7!(14"*0B@J0<2/99S0'=LD87$GU;.+/4B5,)#Bü!G28$_SM,=D +3 +J<EIjûéÓ È’c<,üQ8&52<'HVU8ID"1Y/3D4<2?KliC(0\KE+"JFH('g9::::;;;<<<>qf>CM+J!7&I?%? 5 8P$5111111111A)&&3-=Z3bP3#>14<6;:CW(J1^');/*5 0$S7?;='&*Q1Q?&5( >6<6I9=<6 KH ÷RP-(9.":> 2M/2/9&.3GT";1RTFB<'L/ITN9#72II@1-='$3\6@RX'N€b_dL.F3=BT=^4= W#X*H2B?*=?#%2TM5>=8/0=. +#,H2"7V&28A@2C:$ÿFK*2W?$V/";QO) BlļÊl=:R] E"+6"55RB#A:@:;>>:*@E/ SX(EE?!D65IXS!5B0@3$22PFlKS';16/(*)?@7Ba<O>#1>)=1)97Pf3;#(+6^2>B9<kRRE=EWy-ñ,†jba@:1! .:@8(=<67*96;.*B+D0!_.'$6@UrA<PH1N(76,`K,lntM RK|fCG";O22=9I036B8([&97&.A<XK?%%;_>4&GGT%" +)#)%3VF[LPLR,#1F'YY@(,S1>K_)2)!BB<*1$*#K)-/>//G"L 3,jLBCi?)O.-B P%E FQ7?.LBI-N*=5\+TB U@FJ]K65O1(*SLD`I<= M3K@H:M0;DP73"C89BR80YD6:A 6H6K(;RN%Y#W6>Y<<<<<<<<<<<<<<<<<<<<<<<<<<<========9=======================C&-CP4"+(,7@$"'KU6G:39=K$@ 9"BR^j@:$/MNIR14#68M4*/0;7>W-=9N<A@L9(I:2A#5-@F(<@ /B1 ,,%Q/S,Jý<K,*%.ú>$þC'2F64,B\P2)`:b-./DK:&*:27@5KA@(QB=B<AI=;+C6;ÿ3*Eî$ M*"Z+61=.=-!9@Æ1'Sß!~`V8B@*8M7'=#%.3=&T#>[B8Aè7:9 (;+97 :F=99:::;;;<<<JH?"I^C1-;Q)-F "gKW$g,*B111111111R#H% #U(NMdD*<)5*77,KCYc)(<8-":S &E3ñ4+ >D&E6G6M0C!,2M6P%AEO FF GLAH;/=2A$8:N)Q?E/V+".4:15;F@*7+G("%2),Q<(0EV;! a#.UJVHR`&4:1'WGgA2%<6),L5>@-=V7V7(H"YW.B4N/@.%F-?3-22'6=+>/0Dó`V++/&7> ( .>(/2-^ +'>]À6WçS?:3)0:  7=C^+^ý&1 #<V*253:'".:5(V +Cv{XD;!=>/L@6A9'1[ 67H$7>R;S1QCS0%:%MRI54E$0"1483@Y)W;!g\D +.#5«€]%8;ôNLe>*!<J8+26&*!SLî2".>1A:+.+:dKa0VA0>:K9&TA:\^æ¢q729v[TJINJBG/ 8E ",=>9*%I;4.H47I/26$;CV*+ 4b@+E[3![+=4:/!Y%\.V>S30U5=5=emI'%+(E61<]4mBJW" $=G5C$G!'%6Q6(+M'-'ú5A)4Q"Q/BX7Y58N#'22EM#A"KG=$&5:=AO8 )+;"5": +:_E]?0<?)80&!/+;(:26#4CC7;0;"EK-75b*"N#B5<<<<<<<<<<<<<<<<<<<<<<<<<<<================================N,A16,47.D%=*1$ +A-+FE1 +NUU@?NW_8S;7Y<1L+083+f91->4:((G(?S(8\<:/:8P9!>:&P);!?:Z(#/=@@O!6G%02?QX.1?@-8O-X=<;-5!3Q$.ÿF94I:4#-L+*:4M0EKMý-,( ,  @*>79B;-<%-R*=)[" K>(47'+2<D>7A,7Xtß)¤]ø—c<M<!4"?;UJ)O.qIBM8."8D!T&M<,1I@!8H)[5?Z2OUG4-'.U99:::;;;;<<"8;G2QS5<$*)HeL6:TL<E;111111111)*#Y FTcN!,H<;'ú;28;_::H%.79U;!#/040/%F,1%/E#>B0<,@#-6)>!L9U #;50/1"(1C#XD%þ/?'Vò)="HH003!,& GJR%QIA'&,*2?=$(43.U=-S(* 3AH<<4?)8*:K96S.%1=1%'WS>*/37*$ 9w1$.&=CEH.4T><G5;< úOR<<Aý@(^F%K'P"M*41wÛšU:1BP7./.']-2-2ö&:&<HGV.(:R2""515]$(F6Gg‰iR2++N82*C, L+NA 1K0'4,<8EBZK6-QG9&!!þ  2@:0M?9"n1?R\F]$6/&#6(5_$ !@1:(3:2_,.6$7Y"2, KF7KW.R*ü&E*)JF>E.Vž¡«€[9FDDO7-7.41BsN69#M9H6LC&e+Q0J^1f9>/8 %,I$1 Q:9X:.E)RHE.I/-4A41.N4]=)78OMC-8G7RU?:M9LM(B33-# (Pb)#"<8Q(7=.L95MCDD9AKCFC;8 4948?0[9I=P?IG- H4J*%K@D4R/0/D&2B),8J!>>4%T$&c!G/C+ SA$E8' q3328:%AHM+G)4'd)9<<<<<<<<<<<<<<<<<<<<<<<<<<<==================================0%-@!28!0B> *@%@'"+IF93=r0B &(K:?)4*!& I- a&$?TB/<;&DF/'"d2Y6;CS *-"*+>ôUG,E8N)80I28([5!D@:F#R D)1U@7.@(D*0F'&*K4-0/:MC8,'#933W'BN9>9# R(;E8=P2U4&QA].C7<!BI3;9/a?.:(&G?ŸÓ +ɨx@M6((+2!$-"%EC+/<=<,3".LDD0+,&V'RA:M*<9*--Y7H999:::;;;<<B' CEFAI?A%F:KQK +"R:DGE?;51111111115ý/7#9&i]BD8M =M`BRS&8:`-F04)3('< +,$>E")6#<S< LR1&O1è(.Ql’WcA'-56,5?52;PQ"H&X0TJ #v3R<A/@D%)+;4*;6:?-H:<G.J+$?%,?F&CJ3@07,1 4LI0%>8DB)5A3E0:+7G1+GC1'H/X,]B;<6R-"^ 8OI1%!-+5#"=1-%V>#1?5D(SH6O/B&=9öD3PK%9;.[º“76Z*+&"+H"2F:,4-%M@;S?9?=)I Q(0M,C*('"=A6L<UFF-'AI1@*&A-9<&+5.'!,ø1 -+8(;'H2kG0DN6H0789#û>>S98<*7('A=.+E#T>*-/<T$'@2-4!L0jM@H2 09%'=C4&82JBDL3=IK0FÎÂÔ°maHBD4)<?EVl;34@IGL-NX&þ:I/ @#8+ñ?O043Kì4,8297&/FC$,D !HA4;=&&0U(93?D=Ei>P$'!VK0LG6LY<*F7CKg33 8LP6<277S<OIO:6@8S*9L8^&I+BE6I@4P"T*AR*b[H1:66*1'a8&!.0O*e,0 SL->+,BW?3L=(")/ 83&@QD%B3#@B/J79P*D=E<<<<<<<<<<<<<<<<<<<<<<<<<==================================8,,Lþ>)0K /&L<1)4?$ G1!7.B(D,!4M;(?4(3/7P7'6C7376/D'?K4 Tc"BC9!#LG271+<A->&UB PMD#71=6E&=`4G=-4)A7/8-&.+$/?RÿGK981H_?)=(0!@4)4 7&G:F-Y0ER(Y89&/2-ÿJ$>M'>9G,%þ<<.44)6).cC87b%5?159'1zÇž¦x[Hd+T9>@8=A%)FPO07I>A/ $"J1G5?*VEI"0F-/")+?KM7)<8999:::;;;;<< 9' +RSdK.TN@O';55\A-111111111/% +4UIC`%2<?LF+#1%U./C8A,.D<B7 <#G2B<)#37PE 7:!4/!*Kgª¥ZI(!)@=R6I>eq;E%OY>'?,%>%:0D+Ya/X60= #5FDQ)'&%:C3 "6G8-Z80=68/Q;9N+1E).;F0 0]JC'V &,L +22)5`3K<)+.H;Y$V .Y#) 0 'L=2=`1ó$2P"'(#2*(ýN/B<Q9L3b&%~_u2+= 5A-L0+34%3;")9B1$7F;<3JDL-I5Z+("!=00?9Kÿ"H$,7B/!LR8(((3@')5I3TL<<3Zt6@K:!3<  D$!;:>S6ü4-6?h(õ?B*.L5J'=3.J'2S134C+?E<9)? P;0<;>BA,*[aCN5=8G€É$ËTf6U;ÿT7(S@"0++0#3 8*37''ERFF!,IHIþHl?-=?$"!aH7D4A>8 +63)*U6(3M&<PM4KLG/52 $9.D*L+"`_<!XRRJ S,::!X(-K**9G1Bf(O:P13L+9$;4CDI4B<TVTC*6O)>K5Cc5j@"=!D4)4, 7W' 7B(3<!7+F%)* ñ436,3Z":*$I/$BAD)=<<<<<<<<<<<<<<<<<<<<<<<<<==================================D#(,5B'%3$1DZ%,I)î<*<6!'2#MS"V6737>B8!0+P13_;/=/&  E  7 Y?&(I.Qþ9BO)ý51FHAd9B5–a36.0D5:A!5! %%=@IH<!/ #AM I Z"- +":5(@#2*&#,<ó*83/6NE1"'F6& (A* ?N&<*$H$8,B6/3/'9&SIHAF2t}}eX<1<(>&ACL3(8>$B$&"A9:K:Q*9+,A>45Bu/7@(&CF$8999::::;;;<<^/`)>H>:6(<f2><P-D4B1111111115:8-LNW.7[*5A(r>V&29<0:/5*/m?S'?0+/O+2 67h8:>S(7L267O'D]V¸‹u\5eN$+"-"HNZešG5$77U/+?>&,LC'NR7O1Q9GK]F('e>;"E4[B_*+@!(7<=^)[!3"G%%Q*/";E!@:PC2J/L1E954#;& 7í'.698J7r+;-*;-9W+?&+DC#11B$I.@0!9%B&5'?" "2-:& CJG8I YHC8*9?\<-(9C*8UYAA%R1E84Z@f'84:AQ;!?X()( =6??M &'%KWH/%X4=`;1!`%=UJ!->8P IE*" P77J%;%@F7ü"$(A('I%&>GÿL5,6.I9S4%Z.=M+20=(241*#U")HN$K!<8354I(?/8!6>5W'3QGCEW dSï€]dU15?W5>>)1G&3513(ü17K2DQ?7T*. R9&"(>ú.1-%!48=AX:OA6. +G%)< Z&,%]27:=9L5$E*?;=S8\).)GL46&8FxCA('8Bq[^.B2F8 ÜSC(P27Q27,%E5[J36;?T-M14H%A;?C=+.‚8;"<F]/H3444!?HPU%0@N1+.ú2''C2;M +Z,1Z#2,JHDH,AP<<<<<<<<<<<<<<<<<<<<<<<<===================================,1=7-û'TB@56")60(9N/='ÿ*2:; +/1!FkB/8335R=#8L,= 97-3E4$d(912&%!/@3^5/B2C8%0ý?1:FwSÖuW 6)0.))C75@?/A&<:=.1?;DC4C@A.6:F(M"a3;1133'($ 34D>-1=J1H42M8 <7(9T(:VJ$LL5900"()975H)'%VqXE4DBC4:@F;K> *([UI%  4*$JE91#;*("HCFb5<N(J(LH9<*5S%88999:::;;;<<\-1B : 9;11.<28:C<:67T1111111110&C@64Q3; E]8N=@k80F6::V&H4/3;å0-:*!-[m;U($(-.,d27#=82NP,^<'iB'67G#+^00.`IˆsZW08B#B2Z61O‰;K1787/ /"? 46BF'=,Q,6;$  45+9&39-7G-"H27%Hù,>E%=1G "4 8C3703+(D!:8 (1.-."2H0!%" d7P$0;)7>P$3$;0"0N&*=/#0CTB6]9.`e-0D753 <'CP)fACG$(K=û%#=9:1=L8[5>65B1!2"18 +8/!(9TF0eFÿ?;0:9,/4MG-3C2/"B% +& #+HCL^1AM-8#8?<,<'<-C:$@;-:`E7< +! 7=-0@E)+M;72'+ >#:28DF+ !7E7&1c5/2UKC?,90U2&#W2@Kxã³r,¡V,=K<K.+%!!:%6T1=>WbG<D3÷%7^!AQFLD $6L64I=:(1?+J==V/$>( N'6H8!!Z_G,<0.-OFbK4Ij4d4T#`*B+B/;l9"g@60Jo;BD+OZ837Z@F<JJVCNFPNDF=P5 D'0VH3@gI(&)?4Zx:8R?<N:0%+7?66X#=&@(ò973%J7-9$6J:&8'E.5,<-.8<<<<<<<<<<<<<<<<<<<<<<<===================================>">,#I*/1D/!6O5X1<<H<FFCN"# 1=aA1/"2=2'=1-GD>@?"@I!"D_/6SG J<**-!9!&ü(2K891f095*T<,"e.uédgÝi')J79)&<*ÿ?0+-+!F=C BA%1-R:8*<-$ë;$))!*A24"S9F<+,0? -LJ7*b.+MOX?:("9DX@0]96>GO +*IK'7N@-Kr>1DO7&?I8&3%-I&,b'-A?CCKCG&)bu†uK+55'>7f9:A.!+%d88999::::;;;<ý6NK0/G0G2HEB:- %3,[[.11111111119ü%>5,KBV$GP:E[/-R0&6O& 3-QDX+K-09 33<ü4 +7945A+'0I<&#X)!CI9? I  A‚†<=;=5/)A,8U5=Œ³ŸDK&CC"1*1kA/;@#,8 UE>?;F#1L%0,/ù*+K6B3<$"JBTcb0><?U7A5r DN/[9%7)< 5)E2*,23J/"16>^0:2J L+&="+,!K-4YT(GAK-<35B=+0/#'6g>KM/&@/#?O+5>5>=J!>-U>22&8:.HDCC%C9#C/+4W%>)#14'<3K8 H!O?"A=*3'&B0ÀCM$KA" 0G1?6R(m!1*j=/=C%+$O<44A!=</)?=10\\ $>6CG9CC,<A:%5)1=5"$F>.,I]&.#&<3K:AG-!iH,.$dDK{º†— +°J4%Q9:8,C65!@F[R;.5(:P%-B,S-_+;Q'gS*R"+aL$A./ +7'4?12T'#4*51UA;(!N$*@:.C%KTFF@%D'/%\'QEX8I/3?7I=8.BLd4!.5lCI(@:JjU5é>.Y/;>0;4HD;+&,EV'!01<.;/2%-+;>FgK0Y25P*"NXZS]:UJN.76;O74?;,=6N\D]7E ;A,$/-+?)#"*E#<<<<<<<<<<<<<<<<<<<<<<<==================================>>D\BJG'$E+8cH37&,9E; 724VD  />U@TK'J9>@;/L+!&9&A,)D>LL.E3S>!SA0%=NISçUK9EpiU©Ž;:%;=23#_4(='?9D0 +/g3%ZI0B>;;c+!;.AE2I+-TRI#<HB7D5##0;6/C(H,' BNC0(E!+=46,8[4 H;,)/'1:A697"*76W&30H)'0'.><g÷3>û/2.$=K9K{,±q_S6L%I*<$!(6<889999:::;;;<($/"82H=(L#)3!#?E29&,111111111B#21CG283(CYPE819EKBC;52B)G<NU9;<&@11?#AH73N';+`: #42*0C8H$+H61R7 +Gc{ID.# ê7 0/1%%qt[-+Q#/4TW_HE=2PF/06>kRI:9A'H '%=<I:9(ö E0 ^''L*þ-<&5%)Q9<,$48,[79$/: +-121*7a86Q22"-3DB=4@HI3Zb2D2%(`K374ùk!l/&6(N:) 8,>@7[12Y%U G1J%#<;0:$/ F2$',F/.$.D(/K7N$@1N%1[A-0$C&FM0&ŠA&&$ D7JS0E<1$L?"+?;C78F+7+ G"8=/Lp'8%"D &22/KF8?:6 <>7 ?&'?#F=91A.X65E>5S:I"/5%C)RK"6n¿!$ø‰d/3"]$_?!:-8F;3A3-2>+IFh:( ++:0O 5QH%B</.UN)4XE=211B8*Y=/:+=ZG2)K52?#<b)38>W;LJ;HiL*.4&6<ü0$-& I.@A9BS;A4 "9VECaBF-C< ,0GPC6"8*;5J/N'?%RC#;<$8?43G&$*R-QUD.M3KD75;8#2X70A>83':%TRJSF.s9:'^e<<<<<<<<<<<<<<<<<<<<<<===================================>>?$.ë*NMKD<, 209#,$(T 5( +<A$L'%#$+.2;CAI9#D@B>F(D2.K<+!$H!1P:/C/4Q*C%F=I Zzì ÑÌ_$:?.2)&' B_ A:% 'E0&,$ 3+(,Q8!*"d()!#F5:$+H .BDU*R"5(%*e-a#=?)&!!C)%,-S0(A- +*" 24#F08NO%12$,%$<?$%+DD!H9#;B$K>_I10IeÊ$ +§ªšwj5O>R(#T.-5>1888999:::;;;;.06=iBH)6P<F67F/@<55111111111î4ð4=J?*"BQ0A7=g'-<2O_'I5;;I0XeP0(7P7'3^9FC45W++@+83@8"2 5?9+8:2',E/D'>14XB 2õ4??-("7?5'1L25+315D#3LF00>#/HBDW5-+!5/BF@@BKD#7=8>%)/$,5,"M CX5?kE?.,(8 +<= <8/$"@>÷/$"7QC!4gFL BDD10AF).0CòHV-?@@0?$,>%,>8#=#+_B!Y\69G+A:7 "!K_F@<:3 =29E4)/$6&J?"R, E* uL8*-2 451O8 /<@ k>%P&(FA#?:2ãN(1&&2400>V 3C5&1E6,(6#>2:)]0+Q&3-=24?VO).<%+07c62*OE.;62-9 O7#P]C#B;ú67N:/8\4G2:85+4DŒê Ç•U5!cH<5%=53DZDE\h`GMZF(D00MG>4?;f_;E,6+9*%<8="3D87)2AJFU#"M3*8DH:&%H7Nn38B022fFö0FƒO/X68B"7$C2)-FG$,PTUE7(96/4;s1?82H4-H^!FBG8/Z62+&B2;:M2$P4%AJ%/BYP0;B`(&;J5%".B&R#,"1 -OO!I?GJ4+&A:(A;6R0.P<5)=90<<<<<<<<<<<<<<<<<<<<<===================================>>>B"!7,':#WLT'18 74-6=->)"?6@73:.*M%!*6 P)Q&=C +T-1*4+  %4%)7-"-5' D,P+<J1".J>@A~cX152+Aÿ9$00_*9?F'K9('.4$82C6þ@, !!!:&%6WA-EC-7$=<'?/O+8&-8)0?Y5@8I(E<P*/6Al5E*A2- ý&9^0#$ó.'R,6.<XAA(;:]+R,*>'#h(/öH?4<2A8÷d6 NNÁ94w.%7#4 +7PN8889999:::;;;</X2U79G M+2?C2S3&011111111103?".83*PK3(*>DL!('2A,7"=5&K&SdW741#% .162f*R)I-0!$GF?B$4'.433Gg(>I,EE(&;=I P%SY@Kÿ@;'MT>1-$N474F.;R,N%:;D^V,<55++<ÿ:+!=R;)%>?G@YJU[oMX8?Q ,?SGHK, I_ +-U-; +8G'$>"&9 +  $381406(/0&I&B750X+%)Q!%<$7> A(&-D .e% /F21P$%.1"B 8>Vƒ\-8CM(/ ++.C)#g +/PB=K1_<+<;`4#D?C"F&8F->>B%%4\74,.8 - M=H4F-)2M*ID<D;/#+-C3HTHG\3"SH('./1UCI)6C*1(8K5":)69I&84.-03 :a*(7WB=/$2+C->G0_GN5fA4=J€¤®‚`X.B?B'\6FTX"(8.JTL9E*^a #E ;4 >bazVN7.)'7 ,`303$A. KEfA^Z)9B/A^BF&A&49OV0OD5/*+%1%,=;BQ7=&579?#@/8I(/1ASD9*`*uQ5?0%9"L.+)4J'%üþM4BJV8R@*Q9(=(<'M/@'> b\4Bf:(:{20û=36*@RD%&'2I,Z1:C%ò,$L$.&,@OPM<:R2<<<<<<<<<<<<<<<<<<<<==================================>>>.IC<>4C"32HTH=+:  2é.'5"&3N#,%90:.8#&.4:  /9Dh&'N(OK-:<!-7@3$ Jù"I6)B /89-@E^3Y.".T/1N:) 97$@`8H#)9#&B9)=+2%-5W& D1B0N:T#$J%;P3(B'#F>91?+A&,7!::.Y28D*M)3& +J(]W][9/ED()E3E:B/-E63"úJ%5!@76(N5)*B7<Š::N-RIB.Z8Ïq Ö +4©¼bCR=;,2J6:NFJ77888999:::;;;;%3B&3*8Z4ð#>;GQ.O*&:"K5111111111 ?I,;M@ñ$$BI/%pM &'5/,?486-%'F'6G&aH!<M@=90"&$K+)ó/k8BGJ;.8+<F'&1d#Q=.D$7-H[>IH9hn6O6&SF+ ('*K58*.,2ES<37I4/% +!=&4'";. VEHQ.)+LNSXˆ…©ƒX}37;(J"74J3I.1,.)<)6/!U5/$-)+dBWZ'H!%/:&_TV3G>I63*$!?@"< B%.,>)<BT/C83&>44;=O7 66E(!=\A/$%=F%'"R1!!7<',1,AA"4P5E%EIM@c#d,5/+=949;7D!$'B<5W)(CNA)T%%+3;8"J6;>L#3F27D),23D6>99T7-#VOVA!;>56YIéH3)..A=B"P X0'q ƒ9K¦jbX<&\5,HYnŒ’a².DK@>I,1'=-C(d2R;N6)M59E1‚(*3\']0E*Ek&<K13A&>6+HBFc54%8!5&('8!AH%,MD,+F%:O75O@M\10#8#&#)DJ/-4&<\Z(92C+&:1@4;=8@UQæ@JLR3>&m#(G-X+B?TA0,4XV7`E?UV1#WF.l&1)4MA9D>]M9J$A*%8.4"$E1-'<Tô1S:7A' *A :7J]C1%78=<<<<<<<<<<<<<<<<<<<===================================>>>NDK:C"<M?$E:è2KNH/)(2Z-0@(7E ,.1;=8=\.5+F?>%?*/0:91D6 +!8&;<5N5G!Z2;>$A&4CJ=5XETKü ?%0D9;J0*<þG ';J,4,÷7.YJ.I9-;$L!1% 6B+T:(*2.KZ'b1:+A8O5H8#:O?IO6C<:?I9/J:/++'[*(=+1:@J#6@AU"F,=?!\$=/=7<$?HN$4L8+’ÛµÎÞ|F'97B3]$77888999::::;;;%'0F&R A)T;;C$:'@2C@*>-111111111!EA-x$1%EP0WS,+(H]*4TM06Wi7%86,W85B4B25S5E#A"<"9OTQ0  ;265)9Dd&ñA!]=2A/,C>k,3!%>JL?IVx€MB?HI!cH+IH/@&A+úNþ1AL'P3?T5Z74?,7.D.8!aGü%6K:5!?.L¦ÓXP¹BTS;?N? +MHø ?#".&A.<FOý+.F+8ú8;=.NC#0}>:NFG'Œ‹t'3:&<<K\<;R.3,+ûJD#N:,"90&:#0+;G),.F;A!=Bú:(-8AB< +?*K8EP.65@]T(S2(9BH=.24H +,@%> =CF<SR#II*, 13/8)! ++-3#.LG2-7`*,>N/-Y%7133 @aK4!\##B+$9FE16AG-b/M@%<B$#=9GbTïÏ_„[kZKPR]dŒ„i`I38#M.6ùD>P8>!gA@?<D$I4*)4(X=R0"'C?=9>HCE:÷4KBA;d2]'%Y1 (  $3%&T%$^I24Y=/U8#8);<I?1-:E[dP8Rc!1[?'[!W1>MOr=3E8:%9L11S=.OB03H?$8SG$G0F:@@7($L:*!7HV 4LD`LA>+G5K5!/L1DL:@' CMl<JO=C%Q4V).A8%X&2'-J '53JTT<<<<<<<<<<<<<<<<<<===================================>>>>XM^h8{?}C47=4%9'.H$S43GR3*û&-=& '2]#&$J2 e%AB'5 . +-HB&(-*.18E@7DD1?A1>R*v9<B#?.FD3,-3.NE$/&<-G>2;1589RI*%c6H3*@C3? U?K!'P/K<1P 1491O435;7=H#_1F!<:3'3'5;-/$>2%XH<83@QFLÿM3/)D>:RGC[E/2P1; B3 H9930L&!/ü2.TL)6`33*<7o«pFE.'@hQ !(#.9'778888999:::;;;F<#+P-V3DX*:/1%IA@ZM'k111111111;,)?1%F'$,*85|÷ %(AAE7ò'%*H IO_X>,&Q<L)=T545%C1.(J 3'D1>SC-0!;N(j&#7EF  (:3-FF=_? >8AL3S\^IBA"52,F1C= ;8KP)F1G-'=4<7[&IC@o1iÙuQ«ÆgE/GJIG( 1OCûBC.@3B'"R.13)1MV->D77>GE,>9*9=WrytE?8<Dë, P >#40<#1AF=C.<@D +*NO;<<#I-*6#P 2DB6/K!.-/45 3Z (/6 "'(H 3"8.-_:!80FRCD(,6?[!D240/&U91GL%4G9/#R2*9C7 JE7MI )úA(MI6"+H=þ3 ?,;=3A-:.$<#.A%;QA&@D6OOUJc¦8þlYh?)>#>;efJFFA.!i>`50(6;AE8&1J@=p7 +1/GB0/#%Y/QI=-*(,:>O?4IC'9&L7?M86DE;,$,+))Q.8 D)M_$ 03)#*@P öO<.&Ja84$/JJF99!C8HMZ:DKF$61G<8Z ,-6'9T/I_U642 KEMEL1%:*+720A 7R 0_þE;‰)X!\;7bY&JL-:6*N=F >E#DK6U#/)\(EM8#:sH.Y,D<<<<<<<<<<<<<<<<===================================>>>>/4[tV€cT&39<,MNM*;U5ÙON`2&47>îÜA4T%$PB), N<0*c6)a 4?Y ?&o4%^+*&*; 0W/1>HEšxZH9H2+@1 #)K+#AH.&;F8"@D:!)O6,X8!&,ú5*"$.*/(,";((A%1%:0O@<W25#3;(&0//Q =3!S57MEFZ#I1(1111112G<&QT!0)28?FE)öOI8@N%"&=GC,M,"(99>,S<1H=PR5f-CVR"-+H1/(4$VSH-I777888999::::;;> +b?9.>C(L6E($78"\f111111111)123L+)!;0D=#/?5&G526[FGe4@Zo8E3?FI-@51 @B&'90+G;&*Z9==3 H'!D95('8'4îLG@P#&A+" 79"E0(KD@1"=4%0SQ)H/-- $ +>3"&/4&? +3+ZWS+&4&E74C)QA0J@0;vŸ( +z +‰M&{=+9;b(5P0'1F:0""0<6:%*/;>6<f^4*+68+6D$MLmj44M(U<73)-L8*=#CZ" 7XE1?%3:% ú :?*G0,*)/2$%D8(:*O3L?/?K)9 +?!=@+ T#$APS4.((AB/ 5,<0@b-U&&*5>((9JC $52F7"ÿB÷.u:=>(I((6%G(! 'LJ1(@E.> Q)4K'Q='ý.<./V.0159:#>%NF*Z+$,VAS5Ÿ«­S<MJ9OHQ]CRF ,#E=C$.:NM?[.* 9\U&-Lp/^%+$)1A0SO0"$+>L) U4BPC8"6#*,-/)2FE.A=I'J>VVR4`G*%'W'%,R 02I9=Q:EM*0</KFD<#2<*[ZGKLD?@>; K'CI@@J.>S.DV="#9D.)1;JP61)8/?*D<.=VDV*:@48,D#33.,#I='>F2<)@IG7,.[.'X'T.<et^xGU7<<<<<<<<<<<<<<<<===================================>>>>[Jx}rš€~<M,Y#Q'"3KA);SG8- !IE\6B>2P0^V&-/!>M.(#5,3.#[C.B*6T-BDEN{¡W|/ '7!C!59T?&>N2$7>4(%"K))&/@75+;<51'E.H=*@!'4&12&a$E&C%?<D8&\OAE/<3G2*< 8>26:1K7'6A"0%#!'/1111111/4ö8<TC%5' BD":ü!)L6.5'4& =-4"D><2NjmCWcO$2D?H//6<,>OQe7778888999:::;;#+/7FA,/û:35100D(83"88111111111!F53T'?!Q!:.8L$w(02'KP*;<%1UF). <.]?AR%ZE2#DB8÷La;-%->=90.RgN?NA^Cd4 14<4*0*FVBM8v35<dQ"/R2<E7%+=>XJ0?V8JH0#sOeOPA2?5;@5*.!OAX'3A{€Ì ë +1;…X:FP71A10.7'.- T@k5T  2c'91TiWD;a5;)*;$7AW H7HF,L#`.D**EG%U(2=&# d,6<?Cf(3);÷8'..ò@63QP)BBX,D4$L@ ++.*77N$%J(*:J)044P! /(16FD,$O.DKG/.>2>X'-2"P5An>6=$n+M6 Q/231Hó3",; R,,G6D7h,"'1,7$íA._Y??,(A%E4!.*6<L ,F-AY?>bv(öY +°r5LVI%FJWPOS8+!T&3,?4Hq% 6P)G#??#*;(8!8I';O! +@)"2&ñ7/QY:'"P/\*"1[6öV8/M30 CVE:FYC*+VL??+5MC38["T+,M +8G/ C4>CO==;B;3@%O7(3;]GF<"9.(?$J*-b6@9)J:CD1<F9,T&DA9-R?.ýL+GJ.JJ"?1?5&KEH`\_%OBKjtR-G?%T*b.<.g5,Ef}^=<<<<<<<<<<<<<<<===================================>>>>>MSZ/{vs-D)Y8Y&#29?ê16 3;,)A4+@>N--&,:fS)&&@8Ao".&?QB(2E;(D1F6 GZhL;,0,=Q[R%-Y,6*T 5-8I07DJ9(&EK69&=,MUC+A;*G 7MK] +%?@)4G:)$ O?L9/.I+OY,3O+&-2*/)B111111E#üNGN+!B 60u.+@3N";($P.(?&ñ5,"j&!T?E?PK$•&JF<]+)G-?dHˆ7777888999:::;;D(9A98BN/S4.M1>G49F111111111A;$G &'ü0:1NO J*^4/%C=(BW6);2- ++84Aa8<bB.(=!%9>^\&:4I A.Hf;C#U&X 70J+CG>;',7+?9 1.G//-(D 0 %1[)g.X$/LK5*YR2:*>=:*U;[,/#-3eð™–´ÓÓ”g&2 8DD'2D-6@/!F4:+.(=cP #7B65ú3 .7.8B'#@<! +4@**4!b$N":)#3 099Y4;)Y0:7".D.T$ >#)Sa(3@;`+96Q;.ïO/.FQ;DX 3!D \C/VDC@82E<6539<K5"49&:QB<1F//(0J$SO@(<,E<@%b1%3A8Hn;-AB3$ 8.!$,;9E9%0FE?1J34V62R6.]D@2=8L~<#”;$3"3 5W)TôE54B1@'<Vk.A3i:C8*E06/$_!I47&CG#%0$0*Z4NK+FE$Dk.$A2EN4 6CE+D+0937103>[89<G'93I2FgGKT-,RB*1DI#/6/@EKQCE.%(ZBT9364N2*0?6- 1P8,J8R4%""5%2%42+4A.1*677>,;"-77"RF!I)ZYNHikPke>6_-)L:LT@A72@j=di?N<<<<<<<<<<<<<===================================>>>>>R'L>`WfgJI-<(8'UF=865û"$7þ,>9\F;4%þ:=>OT 9E\28"A=CBNHI E[/J,SIB/<1.B6*1 BM7.gCþ%8<?+$'E69#K$XIK:%A@&Z02$ íSI!>YXô-*4M<4F'U*$J271!;=?A3-.*I<E)#>.#@:.*')N.8/.(7+A;;49'33Y8F'J1111116_&\9-Lm&M.R&!I-DA" 47D-/@G*/:43.+XR1|)0Dgk)M.(>HE*-:#0 +$#4Vz367778889999:::;B,<F,3K $E2)!55`=@.!111111111FKO-,;9M4'C)E":>c77&$?Z877 #E^'=.G+]4<#74<&D @B0$4P2A@ WAW&[2B:K4=7:ôH LC'M* /.,F?-<1(?L!/-83?C ,,,C4(*9C7- +@4-5I9 \  C5/=28^*EfÙ­Ÿ*=%7G?72AJþV:)321 +G/=!.BF:%bRA8(#0,PL$H&/5$#1O,F=!$C1_HKB ;% @Q.0.;3-@-7._CX3%`'.!.'073G@.4/)%.*JBX*&($@H3 C%)=!e,GJ-m43%C24 >47++--3& 2KR7/b&3I822U-5L@7/9&/=:KG-++K15*:*@$@C**G+1!E*A8(82#4#'a8.#8m±5ïŸc<MT3J?,@>[/>5JAA4'\Z/e'1%A+39)P"C/P9]A4+@S<4%/<0CNM:",Q2)2SY'C!-1/E/D3@,8%d''M4R3K#+0?9B@E."'2:3=]ã?8B99.m.C$! K;,O1OG 1)49@4MF5'*-#K)O61C!(#2#B1:5+/P?[2D<YN.9(I?@2^*5;&6\H*`+4YQ™’l‰‹[\MY:?N3Q6M)10M^-5A6<<<<<<<<<<<<===================================>>>>:>9=aM3O5U*=CP?_:m, #OU#Q!24-:J6.A#5U+# #-??GAK^?1."þ-O+X#,7GYÿ9I F2RP<E<#5K4GO?E4q#3N:* 1&:-05FE;!?1 3-P%,U!4"B>2!)#F4-Bc^ *+#$RE4)K)+0X%MUM)T(@$:T9)4->0? %ü111111; +DD%.5=; ]K22GI=%*(40+$G#Zô(! 1-3.N::TK2EIA&$.=)6!"cD+=1I>‡67777888999:::;AII0*5S./0-.=&I:+9@8z111111111Z +=ôC(F +1"%RMM6+2N<=Z6T$ S#:C7H5!Dû/*--=8L2'C(R!20)4&B@39*. 5"9&4-/$@ EO-?/ +)/<F(4)@=%=@!-51)<$-5$+YB3&HS 06:\4?U4VJ;7+t@R5/"'7J(?FKa„©]h?ZPFH@C5F)H &t0#'AS&+<!49CGE\2GB +&**044!]B*% +!==V92 òL99$259#1% K*7$+D$<Kø. 5G;J%5b*3;O7H%5;7#%72&0 A0(>0-#)FB"F"F(VH(_$oX)?<A'/*D!K"8A31H>Te5*?.'H1+#53$H"M3?P7E,5 XLJ&W1X?0;J5,M(M:1=S8!VK +.g>!SlwK7NS$V/ @6''X›Î_P?EDH8;J!K)B/C1(Snr\8HL.õ+]47BGTK&XDA.?/W,.?-GY3J:771.[<<3B;+,A7.*/=+7;-"$:':=>'R[E&7 E2#C2&*)#,85$>J9I_]k:R8 +\AVDH]+N@K1C3@1?+8=.4!< aVJNFqF5'K=D&%9=kT:YI-+(/SL;;PA?:,K1FIdVù˞šZd6?1$9'*0XPHZ??1hG<<<<<<<<<<<===================================>>>>>=KF+I.=J2%)-35T'C+=3GD:6-EAG!@)=L$;<GL 2=A A[1959  ; #)<.1D08F'&<,5088@B+'=5)&T-L)JG[+Bú@> =*++3.8+&&$G05004Yê<.H3VV:/ 34Qo-+=M$ H1@&)(O- PEH-,U6"+=::2?/:>H(:=+H('05*PA#31L>M/0QAU).9+-#50%0 >%\":<)-717BNbO;.(D<@1-=U "!;10?-Bl6667778889999:::;?s$B! QZ(03FMPE6R1111111111GFJK02II>N^):N,V56)M>=/R%/3%5Ii?AH+G"#N/1)-7):' +%.:5@ B"C#*5/<?1&4F<J 3<HKD3J3? +6YDH@4G>7'5.-+D(4W6-CöU/*"/.-=/ +FUfHJ%:ý09N03+C+VqKkL#hJFS5G*LB>/1-+ûCYA0E$5<EA=H4@9V0`X$)09PG!G2-8&.0=þ)'!S< H*/KIIh6[9=8>*1 5*P#C@N/:%%?;Z/'#-C<O!#/(500>7,$;3ML<NS):>]}jAVB9<+K09[%?13E4+%H G'D=.L*-!#Z>ÿ K.Fg>.Y+<U$j89(?72%O;:%;0%Z47Y3$-J=D:#A);d)HF4%¬«_</14>P0-1HD>.w?‚hX;. =#.=K*NR[@&1cy«;”Zb"7:_#!ü>AG;#*ì+SM7?DC-:%G\"BB=?356F:C7$@?QQ-.f5*W-3Nd.-|OC0!"46FB4]%*9*HE63UJ*/8-Y/.A62k;7G=l36(19;+Q=O9S:#I5, $06 w2:N+),//9?+HBF7#c9;+=?1&BE28&9D(48CF'/X9%Q¶¢ñЈFh;'$-%SJB!ZJd/?=V%3<<<<<<<<<===================================>>>>>"@/6A5Ha:,LM.!-"1<N="&+T$2&!$;O.+1J'@'T:9#&o9$AN&@D4AW3999L D4F :.5956*)!A) "&9DG)+08?,105RD".: 7]'J7Z-?<E+c57*J!&E?PO@VB:< 2;R=2J;00A9<.L59,HI)\.U(*a5'N7ZA&$#'?E6F,L(7*0V,9"9R;%IGH03ý.U"GB\G>C7 )/X 6R?-64,)62%*:'# 5I@A96667778888999:::;B8?::*S<YB(!'+'Q!I11111111100)66A=&G6/BC)&3 +H]3=P-AC=C<".DG"'\5?@/6N$1F'7E@<B%E*0#N2B@4'\8.=E>/+-'SI*:"2+C88!%(üB&6-YJ"XW233$)6MN%U60)M3N7g0P7,= T%("3 +E1 +.(-V7OQ^JQ2`4B88) R+!;5*/H45!E/A+I;aE+%B'3TH/0!/ûAQ@=;2HD.-119B3;+8<E8,O*d26@W$@9I.;+E FGf-1;G;HD9E/GSK<OJFG9D46*JAK-/%C)68 [KD0*1/+024W>0::(0V/,)>I=)8D.9(B''</XNCJ3$Ib;3FL* *C! $4+1W±‘z F((ZY'6$2K99QC1+C#>;G9@=T)R1\Lb@i<Âà $ƒ_#ø@>:&"IEW!VB&@(16>9><<*@9L.Q7()A ;B/\IC0OB#0(I=I(2>AQ0/I9K?-LUV)5&&,.%6L'_3##?<=Hg4(-;8:v2pP:D( 4+1JT<<T$6>nZX 13@@L)^5-:F"+C0N*<"!:L0M^/1I~a0:2+& 61]+=D(0lš çÖé¥pI(6 9,(95L8"D3"&<DJ;@-<<<<<<<<<===================================>>>>>(<050C!+#<,4J#5+ &11 :'D&G>=<1#* +08="1P&7*.#*,.+)/^K"*A4M6*?M&76A5N7k'6* +/Y0W/F4YI[A'<(/$8'*45"B/(:DUÿ-(/&$ gC:!6)ü1%"/,:"6Id'FDP.ðQ+ :JrW3#]U/HU$:$XC%G26:hJH}N=/> ?B///#H'&DòXm'l0 F&1+iI,%OL*J'(5[/**0?$'1*60.-#<.#9!"6666777888999::::ICV8:%G< " ,E79<P]"2D1111111118 @S@M0&FDQZw;51^S88J2<u`Q&=MUH4a)T#58F_AD!/I/-I,.:#'-E0 6*0.7"@*O#M@HLoJ.Q75CF-1V9&7"===26"GJ(!1-îG96FcD\v»eOL:4GiV LH:f#17Q139P?]7-:MYŠAS1AEOI44þKK9@`0(*F4=9=9bZMCC=<.= <.YR)*[A0MH&XE5Y8.-2"(J/' /.-aA7 (.ý`J,09"d'G^ " 61744J8>;2)3)I B&="*>)P,5/H0/'USVO3@DI;*!K ;J368D%g78*AD8"0c1V?./G$TI/@Q+!CH09@?PH7Y48@NKKGEA14+"M-"'P^A1;1UOdf<OS)l#%0#D-N>kM3&G148@>%ûQO$),}96B?QÍÕ +¿ [£„H<?;I6(RO<3P2=9:007*IVE+ +/7?J7>#/%611"8ID&Q347F301?GLB64K8\[OICMB31_3-&(C<RL F.-F<WNI+%RI?0K3:>]/=D%;3"O<T:I +<.e°+9&&-Y4/'IRK0N2BA?KBJDC?&_!YR06noTiJ&"(B';-%;#M+.M[t€Š·Î• yF?R94E\,+:%+U02+8=(!<<<<<<<===================================>>>>>;G+=+G70F)6&D<TS8 +nI.9*K8HP5#:M)LIJ76L)5 F7+A)= û/"$**7#328+A%$H(OJG&+$BR'K4A,?G//>/-"4<+B'&?$@5-Aa'635: *Du>455!AEK>''2!#G25#4!12 ?@-(#*2 [ X#&1($I1(!&.M(AS%L95(6R!.,55þ5/'û+#(64/5'M`W%%AH94C"2.JB6€,%E G7((-56667778888999:::XAF4:%YI,V@('04/-*M?111111111?'H00.X) >WAhGu5+?2n>N+6%$@>SM U)'U"Fd#M'ñ-DBJ?NBþ2+PH\J@c0N4HOA$8A#6;$%.F;H%1G:BF$II/931#7(E%^.@3:FG95A‚ŸÏ•EV*1KZ*0@`C0ÿ#&7:'(W 92=@1Z^8K+(?1QcocHS:2\`$#?H-r'4/PL)$&H: +6E 4#&BA0.250*AR[PX,.*,EID.V1B?J6=6S=L!!O*I+%1?dM;$I:5+#2M&'(,# )Y2AùJ7'.+>85/'*7 Y/4\ybS&=(.,H95ÿCVP,&4]&&:&#1E <,-1*=#>2$cRM"!.MF/@124/\=M,&"H, <*F(OF$<2(ü+.M) +,-"WJGGKEU9J+K860?< +8F3EM69&$<>7Y>:WB#(FsB²Ú.ŒÐx-a95> +#@?I@E 4'#>LBS&_d,:$!a.#@3#0?5++>:<9R.;) J3C +51HX&5DhGKNW6K>=$99HM,]/*.J3%4@C_S N9$S850?49\@+= !6|%E9$V…*  M3CB-k7BIX3TG9jDL-(8>FK8)/T¥²‘‘@-A08ÿ.?A7.948B.A[TJat{ul\f?YFJ%/3?/DB;+.%B[Y:T,T<<<<<===================================>>>>>"G0<:]?KHO;8$7?S.N<õ&HQ@/@C="61AB2AC& %))$D' A+D&-460"ç7G: +(?3>1&3;K,#L39:-!,.CI@9&*8%>05EB1$*)ES#þ@>DZ#& 9#"/'.!F1ö20C>Y3O?a."2gA/25;.,'X'+E&5SG9/7+5&D=&1>7G5NB!"UD`X58o6(6*2";8;CL,($MY2*4/1F<'VP30Y(M(O(6"*=8-10<?+,H.&-*a456667777888999:::3!8@20-"<CJ9L&0 T,?911111111_5C&#>4 I)G6G=.% +'QRB!@+F21C'G">G;%G"U(AC*AKO7C1>C]8%9%? +7UL P;'0&(Br@o,DOJ0@3#3)61>9AP$A6Fn*<E8FOCN(;01/53%ŠTˆj1(R)("P0_^6P"0L)_+1K,;L571E'5<d»%¶‰eaF74+'N2%,4X7C$HZ**,@,J'KSQB#v7/)-?G;<BBG32-876:6526%hÿ0N)91.EB8SI.rAQUdC+75 .,)K?_A<H)2"$!õT5@(;/ $ +& Ld8?7v|‘aQ2- &FBG(C)!3[517#UO0,"4E2/.E ø$=;8<+@7C6Bm>hü+;AWAJH4; DcY+!P*%*<D +Ca0*H'AfG+PJG*)30+;97YVD(GE@A%8Z9J  +5%DK/&)Bj¢ªÖ‚GS;7 +?!M<>P=CH.B?*$F1":7]>$5[%##JDE<"!7/KKSQ?e%*68@%L9=8[.Lh;%88 .A2#):0M=H=1" M3@=G$HU@v3+5k ! ? 1ûNJ!4[..7:<Fy/45'N(4j(DCýL7.F+')L(M@@6;&[&P'Z¤vkE.>3$c. N<3N]#25Q,XZ„V/wPAQD1%&K1/@33E?6G@:'C#5O<<<<==================================>>>>>O5%S?<9,#;3=1[9:7#+5 2!@%+W?4/[6\<2:DTO//4+!U3J8W2@ &'/:9QA+2#1C,W *-  H>%]B6Y"7E:Y+^ABF$#4#@6;BY60:;#HFEE#F?K\!6<9<*DQ)O <%JmA*5/=PRLC9C-6)X'=)4:.û 5-<GW:ÿ97<I=%$/4*((G!k9A)@"@(?0!F?):21/%?33;16??GI1)) I:`,A%7B$;058X(245556667778889999::"`(-X*)FGC ?(#(!.4óE11111111=@E !7.3LB,%%2<@"^O/%''IL8)7V>T-@(+D< O36+F#E%%'2.5+]/ PN+-4%17#a:7PªNHANQ[8HF:E=C9#\<$B>)@?9 )M\9'T:@= %;#KXB /485=G$OMV'E)3B?D-24]CQI& @D]p1ß—–>b@X3Y&=0l.&T>,R-B/<H;5J+ .&b5 C-OA4'):JH,4WSPCGI92J )*,'\&"1)8EP; I![=Q\<BII +8,6;RY](431A:C<(,P7:?2..*5TGV;2/RR@m>-,2>949-.:>.2E$!G1)5:Q)]2U1S(@1</=C!!)I1>IH; ER'%'4>$KU4 +3hW +OîY*M'#%A;:!Iõ>3G-W,,M$D!(7A('+C9o4H<K2OE=K;iI*HB.BBS0:gO?0>25J<>+S0,)+BD=Z@9#@ECwc>;.'168$'P!'e/M0J=7KAdC%\s/K.EGI41+766.A2@2E$Y@CFB>)>W"G0JGV#&‰f,(M/VfÖ&1,*7A@A!+!5"M4:'8.G1GB17J_]3JLHH F08G,0D1)a)':#I#B672=LB,EL + UH.),o.$+`20E,=<<===================================>>>>>7%,S;N&<GNUIQF2 43P$)T$ 0?5F1"T !G+-31>'7<64N6NK(>)%;1!,T0A 82"EBN 5:#E=3:!(!6ÿF!d#A41wy˜zy$18<EF#0O5!&HUI<=9"-%716;^567)J;D 9 ?.52<I;F(97$8''<-1)?"B C>-S:8/:%#/Q7 4.-%-2A/0Z9M  +9/J=.!2*n))^)#Y<3S:MH&CJ13=? ZD6=@F7-0.<,=556667777888999::FH?<*J(QQO',Fa`3%5OC111111113, (6;%//>37@7-5C4'FL%M!;?A33I;VG'8%=e4KöK2/û32D70#"(1,!/:B!<&7RKIJúˆ.0O36+,S></O)J:/+%$O3J';*'&ó)28#?+-;^M6IL+>5' O4 8 ;E0) 1FA>&"))g\LŠô§ÀfP-0%.2&@)ø%(5FC;F)=,8(GBD+ .=P1FC)(=">2_60H{wL& 46E:,)JU%#9.  (9L2:g=\MSE7RL;50?)N@$298>?U-B)I38f ::"- P6$A9:GO6M><#P 0=69)7*:3HDD*K$)@B4>%7?$66.<+5N-Q:+O0K3*7#@1..95%.1D13*2@<I>78540-.^807*;?SG;344 #9=G:`J:>(XN?0r>:2K25B961@M(-<8'[<Q-3'1F4A9÷2G,<%+%")E#?GQ/?C;#Ž4E9FX(!Q825$(+K'.B-$L*<3P#I(e=&/E4Z>F/F^-{EQ`;8KEF'I*9O:AX{Øï‰y'G1ZlZ#&%2B4B)>.#4I!A<X.19*+(#Q>k3*%V&&=^)D1"+A>L?CO+J1S6F=-E;#T1R.*.6Få8 $JA<K2)6 +%===================================>>>>)0JRJH0U1( *;;%M1%P:=7.6W)< :!1U@.M =:@ %5)(.9+*09H[$$?G <*H4$I.E3;84&'<@C5RC##*)\P]Y5$.7J+@&<U‡ŠƒÅײ–#04?#M6$2û2>,7<%C8%%K9'8& -)8K>8M97/$,*1W+3H5HH*&Q-F048 $"@0; =)Y;?)+0` %CùKdA-:0.,$3Y"IB;10>53&J+.$1-Ve$A xc>-5>$P97+G$aE^N]<()5566667778889999:%XI<KD5LEG/&#(4HB/$9!I111111117A+$#F')2?"?-4!(;H*`(4(?(gI)3J3!DZN/U 3AF"^41;<(5@88@;V$ +/0'=Abë,¦WE4B,. ,MXE'>6N.&93+;9N%,9)?2!N-$' 3/"M#J#I2M,Fú9>H3L>.,A+#919?2Nš×‡\gF1!@2=E3#??6Q:+ 1#)-'*9W?ï&23>A/>S/%90Sqp8+:O+B@2-!=K LC3M32m[UENF+S\O?I2(B .?$$ F1 '9'`('*.2$80;<7( $2;A@CH3GKOB()1"! '-:3?t._93D. 3$>2}ÿÿ1*'A1C)ÿ%:'$Y9@4>24%m+/O@=úI$)5+Y;%; 1%G<T52-[&5=L5"5'$I0P0(7-CC)1<7O9,*/?+!4R*'\O4Y7O-$CWgRD=K80ïZ;E-D;ÿ8!*D'M<F<9O/@<%,g$ +a/7D&);>G2+k,KG?DRJa!\80)Lc**-(B>(Cu_#BJk2DhS@@P5D,?"L#F1*XŠ Ù£G6.E0/5fP*8'*@80,J<c-Ff+oT';,Ok6<$[3E#5100%=8?H.;2/,T%:mV-Q/TI*V&8'ZM::?+0U ?).`BJ?I*T+O=================================>>>>G96bU$`F&&:336@&R1:)Pü,?,3LoM%!0HGc%';@:4'%C4-&D @VD':Q8@- .PKD -*S.) +E#\!,.ÿ;15 ,A.%7%K 2J,QkNZ“‚ ÄÕ¸p22!.C3ô+D(0IIC"<ICFRRC33:=J';H?D#"?)!4_8)-TH11?*&2BN5"G."-F=7C)UIG1:&<BE;*%%!7EB2+ #0!13 @306$)$; +36FH&T"5CK.<,079@>329,- ?LC/5556667778888999:)"\%E+F,J@9;AAR!8ÿI=03111111115/VD=3v?.EI<<R97@K;.)HP/=B-1* :!(KBT)*/;K7% .%$:/74 /H0)e22-=2/"=8G\A…Š·>(,AC-(V;:,,>5 4]:&K:/<4,IWH):J E%%87\+*R%@5S)6G*L. &/$B%1>> 9PAgjwm[AW^.6DL+O'<"<F'AD.S8#.)*)<&:%3*#9 C 08)0-#FX<–Z(H/.JA7=.9!**@2*GB4+4KL4#<R"R6D9.+#@$V)G/&<7)&\>A(9P($g8;7-0$= ?+P^$H;<'-36<=E 20?-^:(!"bI:62,'3/1/D>,18O:CQ +*:(ÿE!&(2/482?hJ8*8B.KN8X5Eó14@bC!.(3&G*5I(KM\*JC..&R2a.6=J6G4!E?WDELC$VW0ILP_B*„_< BF/@E/(*5õNaR7JE'8-FL0[L\,<1-MG:(B'D:$NDD"R++$8b/*HwZF,i-$H->QR-3Z"6k5 Do\3a!$:R*IcXG,P‹ˆšj$G"=J=G5L:+(%/5>WMQ"@9,.H;`U3J-JQ4L-(0Ca6OT%[-:5TU'`N0QC*.Y/EK)E'&7B:N:/US$UI#-31*O??g2C===============================>>47&>3-%9TZaEP#?KVH Q&82<Uc2[&'*&4L@)(H8<4';8&6-+V!d5A=35&/k83G,38Ht;ILfA0C,04%>+34!@ñ" +>4/$G(EKZ]›Ja;2:TG??3F6@:68<,*D%CAR' >(K'/@:F=T=6 8/G;.,/#\)3,-LŒA 0"'!7CEK".#'&J3>0L/1A22+I/:%",8.=b-E>"2+ @#(*&%7B8:_#*>E0@V)::5:$HH2*/B"5556666777888999:)9n8C:F4+>B42_O4,SåHNQ11111111'77I5OI-PC;>(S4?9PP`%%H eK37"++==;=C&,>JB0B(OO#^9 K10]d*63#M9?1682*OAE`L^;@7G [;#+:45>*/CA4'$@,EK)00A 39--?D?)@,/>.F4$F?ù32,>2<0J*$%Q_>>!+* :V1>0+L1<(:<NK`//'X³NK[4S)P>DoT1[?-1 #*C::NJ=H.53X,%,3iEG,70,."3=<.M9W0C" >9>4:JJSû&>O5[0X0.@.JG5L=+ L5E'$4(B.-K0B#&76!E64p'02)-N88B$*)7 , I#6<5OF821)4T*,,//P1 H]"3+.-'5%8÷3MG6;.3%C ,*/5&"<6ô'CLR4#.2'ùK%"65YXA9$!,\,;;CQ1?);8=:kF+9!j 55']JH@;9e"8: "FjTD@#<['5BKGJ>=D=F1L&--:K3C#K+*Z9LFK)&!$<4:1&.T6?X459B!?'55^Oj3J=K\4-@#=UeY+U!B>4lF()l[- %9.wN+#?;P6Qe6)<*N,AI376,B>H<\XD)`8=%:1m79X2:LNYD$Z*;Z-@X=_'H'U,88Z5A.',XQ9<1CxG<+E!$J/ E.>GF9=@>*_============================>P4*&'3GD\>>S(;47/FF3R0J95%3,X;AJ@36* Q";?B(:þ= ,V C3eLC!V: +(:*?<2.79O!1D5S3-L**-%:NL82a?,51-%&# >O+%4A9;DPA&%@3"11 K660=+%&D9&HL7+GO:FE(1#6d=9'O"6+$&.$G'RD*G.FZO:"?3O6PNhJ. I0 1R:J3=A@40/!+%'N'[0=VF8(:C)))&"2AF'G8ü:&A-/BB3>&53U1D@V1@#X9B9S*^45556667778888999#5V37$_€A:Cb799.9?0B0)11111111ÿ&R=,1VM#;.f8 =D3RA.?B.>A5EH1M8 CI@O//-E7/õD+'M_+H?p=:=@EC,=H8VD:.J>%CNGO'Yô_61&=Y(F/),1%h#Eq6R.75,j476XbG$P,>#U.)&16'58K3&3*%B%[/þFFO)9:K4V57^7#=-80Su+.^od;'CF3TX<;J8,OM/P,j=$%$-+9K$3*9X& FC85- U8%Q;J9. O) < T9*>M%/%MH503)H@B:#0?Që4Jý/Q6G.)Mc%CZ-C0.5'8;WY"7D7B,0@)"$P6=='I9-4*VN;FEI+T*]E94(<BB>F#JO61Q3(*[!)7 ES/4Ub(N&3(92)KI]2O]D9 PYæ,AU*?\1(H F8"4UM!+HG.H5N8G51$L($f587H.W3.'29 bb‡;ej3^B66ý*6P'\B1)+7i77%;,'?-%a-3>@1<XK%$ N+D7R4%a&0@:d?:7,jQEA+J*PCI , !7Q,K6-"H/ &7JE,,1'K_70&>%3+9,$22:CIQ'U?D50.0O&$%KA< Q1&,>6û@"M";K-?%AE$T.&F 0WB<=3I$æDG )[&61-Z@ALUB1"9K0F09==========================>'@$*MA8_?MK:P @)0Z,HNC%Z##%390,.Q1?>#N-4!#%)3/6+1+_>/*6.*^P1*P /2&1H"-'!I'H"!6?V$.*K!F#c+%F)+'DO@K'19qGW"6-U2/+?^*JS%7-!‡6AN1A?C2 0S ?,3>8:K"-"/ûH'EJ+2,QL45&08$:"-I8??(5?F(G-U@U!E;=<2&7EI222?4ï=2=%!4PA%*)*3a%.0(R O4$4+ ,?<<=1"'(=ÿú176445556667777888999:*1(#Ph&9#M++!8 '0'-G11111111 E7BZ(-@0L15;I_&ù&9;=.J".I@/)-GRù<=6HH 3e]bK6D<>+=H-5/;?4F/G(N#:;"4>E) 0/',FS%_8&89$þYî&5B<E=$---(XocPlPR)QH<:8.9U528;99L1WGO&D5H%*P,-,,3L92)&R#+1,(cc(/?/n-3/[7K$@0H67/"+6!@#F41#-': *Fõ,#?V)2.[$C>*%C'!4.9`)'8.:'%9*A:5<1H%5"QDB +M8:#0l?0B ,-*Sõ2G-þ36004F'56=/ 3+D"18)-(/0<SE+V1K&AF4*+#(E6$ '.C$ J$+C.d>5r%*?23b1%&9W/.'/"83))#!.%R#414} C!Z-1%-JBfK,* 3.@6<ST, B4-8NGZ\EyA"?J)K,?@ (^:*+974'$K÷<:&.96P!:)?71BSD;9þ.P+7<F;7N!&F% N;,5#CWR`2&f!G#C>UYhFAK/V?I-/2#"?50IFÿGO@PT+$324&@9 9@:*';6RH4 cBD3C" ?::'!)EI@A+(AS'&<1&SFh$"DNQ% +P+(;RC;>2ú$*K)AB5()6 GC4K"'*===================== B`L:,H:?$K1@T?6-6V/ F:!J;A5:R )/ U"5+=574-<<=.6/?3N;E7 8/**+=71!-20A%:I)2)+X DA90M40?G7,2)4U:E2(" $ +>A%üY9+T<I&&%''02N@F&"83!=!:4%^O#9C(>\>< &@N0;q47E0;V43 7GAXR(9:4C1;B-!2#=!?K**,1$ J#D(6/27&FE=:B37+jO--55`E@B3RON .":*!D0+"8.#2^.4455556667778889999+;-C#B<2604/!5$"5>5'11111111<D5V+@PX&L3!?.NE837K$%EAB  C%*8;I (>*5FAS"M$ NjdS@H>K:9&J*(3@0"83O ";E4920 6LB.![@8J,FU6(ZA/(`.(">_#;5F@*>=&"109,$AK9>;1?DB-$]<W+G,:?H@9@>B<M.4,=50/9A'?-2HL2C=:AJ0/?$[@)31c)A6@X56>\# J>$AB\W@%(&1d0 8';X<;;)=#43t/E17<.7BH+3!V;])[9BA;I9V)@>%2u$@A5PD9&4JL7X+;!37+5BP6>/1F)4 :+@014@@0>/]Wg3C/&$M.C*;C'!F1?.4 -R8*+,>0ö43:B9 &$@C! +);;&7GA82-ÿJ.E=58N1F4A)H>I7FJ:P3R0 995&7@(^4E>3"=.&++DNmC( 'BJ" b=11+BZB*'$V-?%.?J9$ 'RKR8.-%D/C5C +)"F*-<U*];81-c' +X'EB;LS</( K.P\=HV3H3J2>4F13$89FEPIO<<N./ 90#L9;9<.+#7d$8d ./NE6&3/>H95"'E0@1Q*-<6P@.8=]";. >) +?2.0Ecn`(4;?=Ae.@0C76F%CB/;3SG===============î¡AT&i+J(;M33/.2A@ÿ\@7/#@<%&5NO#XTõ0U&!)05L:4'?o0=H= ?:- A*(`E3$-:%+;*Fò + ,.54A9:4#AE%)!9@#8B92+'ý,[2M@ê3? %8PD;?(8@H($0=''@+?5A!7)/GO/E?D6 +Y5*'(-M:6(G:#21-b44I°ƒ<O23T1^G,J7)8 @"C/%`.MO0?1RB;8LLI-7ýM?=F/Q1*?#BU0(Nq#?*?0'F/;,c6??(2PPZ.6ý!'II4445556667777888999MKQ;.D3M>;6 *d.*DD11111111J(L$AC/B 6'>83JBH&J\@K8ú[EJ ]6QI1E?7>04;-ûS/,9::uqO?ED59-F$K"C8-;EL>#'!?"QN!>0!7I<9<D61>+'#3.(KLN,/GH:8GH89D:B0N,(:TGðE0! 8\8FIF(79<B >& 3'=*+) +'ÿ9Q["L8#+2ø;$AW NB'$R’uA?/:QI &#5/>3 D2(&/)9"32q) Z2&#23(5;?%?7E8@`=;5E7 @,+/ 1.?.+"$O^:I\$4CE</%4J<K-D[;F?4=/J42+/>,HO-%,*Y* H*!(^DB:,8+/=D VB*B6=>%D.0S *F68)2WJJLCT571332(H7?48)*()7'.D.3!.67 Z9#^V=9Y;P>37>>a `DL5?K+F2<305 O Cp6?ZQ>F0G[387%DLCE5&6&QCDG+3/<&,$?,J +)&4-G6FM#1,1@R; ]a5%B9.<CL$FF@g?#\H`P %53,4$Qe"2UA-7A1SF7@B2OB;/:H.281,H%$@) +8+Põ 'W69.F</=)/5?% E(57<9C7<I4-L 8/=C#:M*194#p2GI/317de)J G&0K.)(@98Y5H5S5CCCBBB=BA8D0A2U9L>>`CN6(,9I +?1D 9#AD3:+(D2NE)?10Q7ÿ"1%>]$:/!L.%þ6?&/Y)6"JPK+?#O&ï1NO<C!+: +H7;)3-7+LøU$<LJ4&*,>7::/4$  M,C).FFo.91F'0GA 27).*/(S4ÿ++=4`293J/Hø,(]O8‰m—7äa3GQ+ - V@4LG"?:pG=2 -5b&7:e>N9a0;%C)?"<,0&B,+F#EBþ."^1'2'&H!H/1-5K5#3 $P3)8VJeB<,#D".M4445555666777888999Q&8*;R-B@..)E 3O=11111111E ;8NC.6Sø--. AG4:J5N17*N<5*@#E60G7F&93U$F0CS[@L +@N€Cp%G6E*/;4,NEM(:B !3?<.D)%&,-J&8öI=k&BIRUW+ YSB$/3=+CMC2F"R77/<D39*íF"Q9!"4+46,).r,#e%P.K?FH6-T!$)D;3J1'5M=+?`[@2Q-.'0$)>3K1.3<432\+//) ;ú.2H#% 4A#$.'g-(:@;?,%(')#+ #7F?4134J8 ?A>E)/.(1!9!M.,4$G90. ý4R_>@O.1Z5k4 *C2?C,#9 &"%62"5.6H!'E&: 4C[;*û+3=;&Bc,= +2  Fj +W;B/FO/O4><7K&H-A8(<7(=7\36K'D/2" =!8]OM;c:CEP7D1A06,9>@DCZBL-EA!A5)/4 0`=>I.+#L;$=7'"<C'D6AþS3+L$=/HC?E( 5PH4I9tT>2Q;N*J$7@V6 9G,cO4./WA88%LI`2<06I@$C=3IýT%4G(8/9\+)M"/LHB&=5A3V3'C.?4)+;<6:ƒM8;OLÿ*"&>,$8*HE=:-O37#;+/125.M&&!M>N:7&2O'.(SB!#8*1"BF2F&,S4A,3/$*:<5?&=A-\UVK,OA//CTCCBBBBBAAAA3-.>L4%+L2  ^,W:[?GIV17:g;0365 Dô.X@1IE* P$07#:BI<@C>G +171&@.W*V*#*BE<*#,$.5SG+3"6E1%-A3"I(!89&&9ò=)'MQAEJ")<E;O/A)7"6DEH;J.EY10<A$-"<E)4K /-8+;68AJ<D7 +9L¡“ +Î +cë[,9,:0#<019A/$ -D0.:<H%d*:"B@3 '6215:&>:94!51!&WE%T>0>!1;&969D"#6)'"%. ),A*4444555666777888899!G 19(-`!2+T!<.[)@811111111KR#);YBA>.Gl?&70C?B<$""I4 2"B&+H5&T !G\(U3"0P/B:GvŠÛŽ4K7;W (8 I'B10BFú=T8L-$LH:",LL<VAJHS;*: $<0 .+*+*-8N,OFY)ENV59"þ%&1 ?/ ,R&?/3#UBs*ZLH%1O 6R85I /3-.EP3R!2-)/O@23)9)  6IÿD&/*$D:"@!D!,(K?ü,ü1675QH0BG+70"K"2Q/!A8B3%+! Usb ) ;&!!A@?4\,8IC.8)8+$+T!I;50E*@9!E)0](! 4i.5?@-29* *IN4=Q)6@C)7 4=c;>(%4'20hB,,H&@H>D*)# 9$7)g4$:0!: +UME_R0633-7/L4="T;)(=9"G,$->5M4YQM658!:9,IP)"? ++ 85-.:5K.4Q'8 NBUDHGW<>027:=  4.TE,ELEI-(P%L1RG@C(5P.#:d$0"e3K8P?CJ(##Q0&DYB0Y<U*&'# f>0ZGA.20)1+=.I)6ZXK =EF",4495 >'N->DJú*"4,;36WQ*'&?Av.D$U44G>:BN%<,DSP;(-TB7DIIM29%(.C"8LZNWCCBBBBBAAAA@@-0#L)8<I2V5<$?0'3Q-"!0IO+&9Q,\7(.J7YF#( %4!#M+P'D!T' 6 +W*'$8'@#;>=6&5,G1D2Q,D.I&:.-W>C+&:=4P-#%%86G&)68GEb:1)--W(-!( b.0<YAOA1@BK?=+29=6(.%@0BC6ó,F.>P†f +Å ÔÀ4:1-//X$ -EKWW+2_9G>885$<$2Q n%!*!'4C%P +A)/O4-9<aH(;E/NU(9B@C?d -)!!7;55[O13444555666677788899+#%#5M;Q%EB'!E<<Q0111111111^,Y.;@<'*2>:8"ARNø0@-06H=,,*hE-/XO@$(^62.,M!)U#(BMA!:@³¤²p@T$=7*?/AA)7!A:H<1I#,@#G1"F8 2,KHbF[4---!!"-)&/O @Q-#1#D3JVH+ UL2W:@$2;+!"!!X+&#<8TE89",M+( 2D:ý5*@L[.>!*-;$U3@DF%-#A2H=*G BE>$! .,  RW+'<-%6<@<- +@6' 72.= _(<=IKCB"2"úG3FCF.;/T\2+(  I)#/:A:A +;]+@?*&":H7X<?/FFrA (.H??89M/(A* 6;'<B)//(:5 %6#D?%..9-N*W3"D(: &3)('&830EM).>03,^!,$$G5DKTA ;H!',40*HS4">,HúL- ?*+ZJ3D4*.$D0!14<<aEd$9"7>9C8^K?32<HAK@S>E0&XB@60&-B>47;.(AW^??7!@:%35)41U>*bLA:=*/%A:ADQ648XaEZA-38@83E- d8J VGCOGGY(rCJ @5#+QJD5.`R?3"389M3?q1*)'*aB8.$<'B(2":G+CC `2YQ76X!G$)M?,0-4J.IbE3C]&6G2F3&G0:K.:<TBBBBBAAAAA@@@0 <=.F/.;W\ @; 4>R@=01?7*RI:21$0,=?4ø)(3&"189@,#7'6#,.=)G4Y,-þ0'!##? \K-m Hû." ::!5#T@Q+MSR,89*þþK>'5M#7J*:*Z0 ;)@=(:-'I'H@4;CA(*V,Q%+7ˆE99) +6> KTiE®ø‹äT5!(FJ0 B@>KF=" (;.*;"QF?&I*@F.<5-$(7.< -N?C)2K.D//SA,O?9I.$3*8HKA%=<A +#?F@0:3444455566677788889=-*DA8" @N$=G.8I-+9(-111111113"íF3IEVecQ&0. 8K*<1'#(*,),UC2BF\:,K@>E.21H%?\ü$",<%  }[¢'Lo5/8$>)$*@4-$&! 9 2Z715\N+Q(,H+'68-J@$,@41"$$A*ME7TL/J%-J-#.(M5DI[T *..G3&V<JOD:-=/<+52E2;:3,JNNS 2,(XhAM#[7E$I=@0%N >042W+A`V!4ÿ6@*2(-$3%LêG*!j7 +; ü+&CU2B>.# +@2#@I9J&AM`<M)%01:/F;0>8.4VB0oK-U@1&Q0*B1,4GJ Y-)&7E'Q:@ :AEcB71$2#V8 FC4$*$F.+ 82@"2+.#'66E<=-O/I>B/!+4-AZ:OTQD7*@5X A9-÷&+8;27,:=HEX)6/hÿhH#CK>K*NHY9``.LC=P +)&1 M2EA#:$:Q +O5.*.2rEH:4@C,CSH.!)+U"T;7J6(î-4LGx[X>H7/AEY*l<GK$9/Mc68CD1718K8W+FTb);1[L1M./,#/* (/" L&-L3D9C'>+<-V($#DS75<4&J3")%EGIWP-2/@#>$$7542SU'N7+F!fA(*+c;)'@A_?N$Z.?381+,lBBBAAAAA@@@@@<9;5MMZx/>+?;.+1D`)9 +;01;)I5G53!&7+- D)ùö$ 5ýW) =a=D%')Y*9,"E5 =.*;E #D'?Q)3!MK +1)S@36B#K''@@0X94..L*/( &6 8066S03,6Q3@)0..7%T*3+a(*+NJ!1& %4<>(*.)39&.>BZ3Aßéœ2d2/@/6%44%*H/+"<5-F;6ò4!>OÿE;DA(>(2.0()>TcC!2F5I640A;E5A;CO " ICM#A'0/9CSK."33444555666677788896!OT*.KQ–‡sl%R2- .4=11111111N3[G"'@>þ$7e:8MA-.*^M7M'/0J$R?>AOT<=#.L6.UD .:0,(=UCT8%R`Y8?OP =7S#0Abÿ&#6?!*,=093G "=))2BE;4@"-7C0' #"b+0<.#@K57;J)13j)2a%&_#1;,;KU60:c;NZ{5&7aQ64>@3+*[)+7;6''@0*G"4(F6=B"7A K;E9 +8ûA#4<2 U2<&*"3,;F41"8DO2@$7&8$+%(1BM7(R#AH08202d8'1:`3!)+093"51V30++'1  &IV?@B9+?0Y<D>+=,!G+9G?:B$RE)#7/AH&9GK52Y"fó"/:18O<0A"+GC ,!Fþ'-(D;E" QPH?27G5R"D3;#6&;>N<A]=AC!%.*AA)3.Y=7NH DE!SLaHII0# =;-/E)PF1f YIOHG'.-'*G @--K)<+VBRD 9K0(>?J:6p<)-%C+3(&99?N,5;FN+3-[@JöH794N/G$SC6-B7C9BM(8CVFCCnH&$<1'7!8)N0N@ ,0B*>1 :CS.A-*9>>%-%3(:Z/N"N;))+P,q54./LH2;DH,%>I+; I.*0>42;'@BBAAAAA@@@@@???D53"1)FA +N8/C:J0C&'/6$)k*'-D*E&62+BQ1C(2H(T: !BD00]'=.>%-ú$&E=GSOE&6(' <!&187[(,59-ATO&,3Cý-F76PF3&73+D[H (&B÷<F+2.G;&!*' UT'1+HFG=/:_1 *=L1..0*9&6/VI"0e&13ŒUQ8(+042:GA6ëM!)ï:#+>0!6;$D@9^D*8I4527;( ?C6'70L31A$$F3;-:*<-*K)"@:'FF8,O?`22&#0/S"@[:'53344455556667778889JD3lx[xy·n<L#5DF)80!11111111Iò&=65BH0_&G6#3C33EDHD"8V*1..PJ"50d,16C&7ö:-M;105<Ie5"5.?DK@;*&#^2)g9#6W# &<'>O1 +B8!!=:"I4T0;$<&;:5FIV(^dI +ôü0 FA@(=-ü1F8),;@Y?F*@,JøC6(Z+B:^=5<=(-2!8.-81I71)F%]-$$W'+,+`ÿ@",N7..ø;9+2ì)6QUB2F D1E+CGþ+$+/9&AG4)50.%@/,R71#6;û.LS0aAT1@'g(8ÿõ)@"'-ø5/O-BK4,97NFñ;%@A#?$K$@CR+#34,9,(.U%E5><)8*8 +27D!P! I4#U4A71B5÷K84 235['G'2!2401DEAI97&B;KL0E û2(.B2/;)(50@3:,2E]4:+6GT#/,8A0K/B]C7LR4-,U4G%4BA*T<)Co43?;6F$3hh,</?3KX'A8H0)DQ=D%`@1("B*%'0;GB?'G>++9_=O5?+D4?4F:]AG5/>JC:8B9-(C94O%#7<))BD+MO4/M=C8U[  '*+A-:.5'53,9Y.HKO7)<20B).GJ&"9/)2=A1QC,E+J'2AA1K.(;DEaN!SQ^9]63BAAAAA@@@@????? 7;SQ&D;&3D.%')7(A\A-G%A>=@('Ln+914*68'F9"%%)0)3;;J" .!PGH#70/7;'!F,)-<)8)5J.)<,!C8A0:+(-+G+$7 43E.G4.OA$6F <(6&$D$InoHjJ9E56O-46P.U*1;9C%'O0P;VG]@", >8* 8(2$I.RV(88D4*6'3M3F6   +:1.@P954<5']B6;D*@Bj;/ "@'%L 93I.$þ/+9A6ôNM56U<7S7>&,D%>A,(43334445556667777888'1\CspÒÍø³“wb\H).(9A111111114B 3Oc2N1öJ2BF$:H+)01E0@X<CG4+2)!PQ+M)]#()HM,/.?$1HEB1*:Q!1;F345A6:9E*HA0V?R7,,2:(%O;#4)A/=O,3F'==9A>1ä :@<B[e`MEG\<@(CLL::7. F;4(9,>S,9*4D('%G"6L ".HB1D-+8!ûB+8(C2N7<6;M4jU^'"<6831(L)"R"/!.ìCM?<1H 6*+%:.1T0K=9b1(0E @%: 9/A #%Q=$:3DT27.D;/#F9-7iGýH"AL= $X*!0G=?'2/!$?-A"8>I%78+=2üHL J4$K9/9%,BF0;[;)4J2;A0(S!$7./E1'IF3S6)BA$6+39! N7(+N$=986Ca(ï9=ù?DC- DP`6N)GD)AKJ.<7= *]',EDI,1<I%1H7 ,7S,U*H2'EO5ã,"YQ;,"$.(A,=A:)"5 K,SP (8(A;,K;I?a>Hb :$K;.>3=-G(D^g(1+6^@J'.7J76-3:IGX*-P345*9=8M@('9W.:2?*+-+SF8J H5H3Q;2S+?(+ACA<1;2*`=H#%'"F4D:1OK4ZAAAA@@@@@????>>W*Q7C$14K:P?E>+MJ7"+T7EMG)MC2&6C.'84@=0N-"AJ,<@5+$,^\!A%C\:*)o.8IG'-+ NF.1@2A6B /G 8;;=#.;80OE4#EX@L=42%Qg’®N4(I:<:9*b,;F4+0;<8h=M?)DC J*/&283B=N-$8=,27U+J"-613_77( ;D3O)B%;+;374:E E'320:24<<?=>ME0 R(SQ58/;>(J92H<*<K2!7.*&& &00<.B)0C7!&53334445555666777888\)/f|˜ìbôý§`GC+*0c:/111111113F,#44FV?CBM16@e8)E>5;e!,K*P +/9<'!I+5C4BH1/=ü@+8:R+%,>,5G' +!;0 7A;(4+:92E$O+*&>#,"@ X"Kì5'B1@[* &-3&b!&W@6?ED<=>E6M9E$%K&68J38DF"(,(W 4 4;&RO?MI#5RcB8%?.,"$26ç#Aï15)7/1CE98>M#,=-#8E )F!*D8<68?0#2÷ó.@M,).# C <7+$3ý'8ç+><+FCP%H$E>/ü)7@N3">ö884?4(1D6P$)V<NC>G+X090*%_ + H!!.\'Q""27;BL-6.'7/"%.M4E,,1+BPN@JB,K=Y*M?':>#;3+*EBBF.:R&$7G/%,'//E1A:C<E%OLN8'Q[!D7O1M"?$H98&W451Z2OJ7"<S3/B/%Q-$=];AHB 6'AAaþ[Hy IL<M "AUHC&6vINI F="[&%/AH^;3OUT)0H'T(MWF\6a[K+eE/"h2$6/&;D</C<Y3=<<B-KA*!&4"= +>:"Od1,-=?6@E7&3#.N[5.S,(,4" .<-5?F.W2,$_%=*"!;QB5=A.1$DX.,85.! <>?4B3>!*;-AAA@@@@@?????>>>>D*G+I9>$E3>KC:)797B8e'8:?%^+A>d!"*" .)8654>LG03Q6!]ñ.F$7á%F5$,Z900J&Y(/57?5*+C:=c682=K ':f4+*!%O9'<31K6-8>u‘ujB 1FG;aZ2ü&P+([0=>:'D%OIR7;!&D7S'-/ICV1DDD6)8O`_,,/=99@!FF:? %$B93T($:-%1"/!6FB&O>(%E"S.W'A@a<L $2*P46/JJ6;?.ER9A8-4)127U*G/O%$A-"3334444555666777788$ED‹ÊÕjÑŽ$­_f1@X7?60+11111111);K<2#/4+!,Y)4ï5BS#$A7"76/7;2+!(###&@AL ].c:H<]?P5A2?M-&jS)/& $C&2> >7(1#F?2K0"? @2*=> A#!+0%6>:E8E*8#Q +JJ8*0AR</'/K84N+*E)N!"/( :.'2cW./(7M(PT:cX08*S)F'HGUý 7*(.LK(#\:@-6D&B$$D;)T;4:F-IG*!).-h&$)]47 8K8>H;;8D<6)6#I85G_^1ï+610G0$> +(+ &X"WQ->6 ,%7ý7$.,47$76bIL<%Fd:4, '9f >F|8$.9:&7Y,D/;<>(2!UB>M?#ë1 ABQL\1A$%U0.8700>6>&)< @ZN  9"ý:.1$- %+1+-0.> +2N/'3@916\WX %BQh1-2'BLF\:'E>J>28R2 )/P5DA120230)‚:>J2i:65@F8D2!9@@D0e8K+  ;1'<C9?)Z66H9.4.U.*O8/S'11;9R9+1K<?vKUTM+$kR%@?FJ1B'?%D+>3:$7$L#*3#I#;5%)+M1>/6C;/=.+ +5%<E]Q/6--2pJN&(E)G.# MH7NZP$)@a9OM?,G0 +=GA@@@@@?????>>>>>=M5CkX&E0N.1 #&MI3A(9C,'HJMi)6N,C,,D61.!14+ -F@N(1K2>:#4F."DGH,*09!@%$R3(H?W24&.LCSRI +1,)!+3NJI+76$G(e4`;%gf;=6.)5Q%/G8D++<5 -46%a>VkE1D">6G 'r1$71":8H'; 0 O:"T#3)2)&'7$.BHO7!#5?, =631##+ A0)=YaG?H+$;74&.JA?5%7  (2H:B1OW?E&9"F$(3;,=!TJ?<2333444555666677788EI?mÇÌÎÇëù¥v^Q2.(=*391111111158);&\O95=( J2>L4:8U)-#.'Süë&#NCJAFA$O$+)173H37%/=:#-*#68.v6BX.O:7*^:I:ZM@)ME.dQ,3%,<H36,%3@ê>$/(&D2M;"A?&?;G+1 &)=)-L) /*++8E*+J8(2&%/9#5'3,5 <4&E B+]?@O+D"-':CD%O\5U+79;":=S0DùB3-Y03\L&M=!?:;Oe1M1?'6J25.2AH" )DN76<3/+--#7""9D3+.JA 8 :7CúG/5,d64cCb)NA0#,9@6C-NIþI9 q&Q< )>)FKT=SF0@BN.KP/^)/JH@^:7.(71!: H?DB,D,*I@V=6-572@J /0!(F 3D%I4S:g?<!=-N( ?C5(2ýWN$;'/('@33//2%==NF7@8D'@"48$R<92.LB87'H/9MLM 6%NG4+=7><:7ON>cW."_&=ù1H+&3 E*]6]9% :K6R#FUL(uQâF6(.183fN6e\1k]6J2?>E:,!+%N$65l7!$3(;% /†^E-8RgPHX8B'*9;D@(5<I9<HD1.E5GCQP"1W%3I+)&1,7!L?7E;;->#'%+^C%>3MAp6@%LO(R+:(.3Q:/'@@@@?????>>>>>===))_.-7?3 ,$C9 7Eþ ".O6$. !'7g4aTA:+4T,1fC 8'2(+Z('G3%0*"9B!ýû:D<R-(!.&&6K@PB;R/.H.;,0qD/E1/*4@4;B*D 'J2):1,+(NA !9 W4JW:"Q0c3Y,I)F;6K.Y@.#1P"ACC/:*G07=B'HF=>Gr'BF5< #]7</?D+!5$7/,8E3V5=&+Q\3(McA<qk;MO0:6\&;%7 -Kû=$?>9M=<J$EA:>--"C4D>)!9$+6;NW02333444455566677788/'3rˆ±u¡‚t€TC.A0=$ù11111111: +9U<2)61$'B=YA4=D4&e%>K-&E&$F_a"(?@L%CZ0%5(/O&!l7+%GiRhNpG?87/2lD9$1/.E:4<CD@6$5#1\v@&2 B1))6L= D'ODIr06*-76)CJ8=H!S#>@E9C* , +I'!9A0CG c<2ANO^5þZ/#1>)W*&RC1EN464A#)O@&'C;!"Q=7DYcB,*0IAk¨W#çE,  +F/5U<$"$,4EC?A(.9C6&*&;Q13"4;$K9#E$38'<79=I)=3@AY.E8@PRL$+C4V-I7) F:P.$Gg0 5E 6@U E%@8 >-* @&95T*[A"%=&%)E?/!M @'"I15B#/A+ &8eOf+? :28(!"CQ$tS(-D$BIH.DDD%=÷G>5^GK;-;EM>:#H'@$HZ%B)5!-Ha9)!V;@5;-8=3G&)7>7'9:òGq/';Z4/+60a‚V 1CYhc=F)ýGCh0[5@ 7K`%) 33(AV9J'A.D?4 3fGEIA[F&N4]û<]]C"'T10XZDB) -E%.#?&I&=Bý&*5L?/9+V67K6Nd5P(CE7G#?O%üMGK1!5PAHS)"9X0*6Z8G$B.<l`1B(8@ÿ>3CL:5(!EJI2=.AB'43@@@?????>>>>=====A&2,5,,&Vh:78öa+! K8ERN7)!2)AM#.9VBA$JBKE24D'<!"$!'+),,Y,F4K7HHZ03TUTABC#O(ø.>/0+J(D<;Wþ*,/+.$I8-'JZ5!?,2')+;2?.EC3H`C8;7D+D@7("CB8G6U8JI4=3(9aT!=+=,4$<:]E7&H.I.@ T]7þO'<2/@$FADH@&$5&)N4"45.+0C<+'H1B8J/0 !)?D;W$5K(-5;R4&F9D;G,*M+ÞCD (J2333344455566667778&?M_MtŠo'c.EH-01-8!T11111111ZA.1O2&+7X%#+-7'Q7O)>%A*7(14@/N?</++,;BBMG/,/$" +O.)a-§od|W%7359m:->1*J?.)G(1K+)I>(W7h–b="E2O*&O:1FA-KY$, 4=!![@L- -,!981C3#:!h]:S#)1=I'`2;+0F +6+q70A?(ZM[?,^D/O!%>*&1,.(ú./5a(k>;!9o„[V>5F.53GH=@1+D:#/B!B?I>K&[&&L"DM4 +^B#$0--/O$e;.0:o65%1=ó%?($û*G'+$7);(P3/]MXZ+Z!17=\81A9!%-&G*K1 B?,?<C'3$(;)4+U-@BA;&08/85Z]GH.2$2 '*'3=?+CF(%;N+E78 4*7Oc2X6P%;'I$UIE556SRS5K<eSB.3 +5,86")&-GI2L2/5l+EBQ E6 .*!*=D7@-O2D8c4M6K515++=<2/A&,&;M"-6D# 1WH];=0QY5+71 S?<C2YAI&E?:(UBO4/C*KF7,9/C<E<5 097ES<.575[CKPBAE/.MWWL/ 22dH**FH"A/,@+WW.&@,P#4XC%[RI/&1j9.)QC;+'U95 /7S%O@-0'E-!5E@?????>>>>>=====<./)H!G:/B/2:2Ga/.<(!N(,#>$ú)IQ5U0Gü30GC< 552T1594e<>:/.;$/5I"P=,+)H)2A??!E*9OC3 *K">I0DC XA=XI1->4R.9<þ;F2J,X8@=gmO`(L/6F>1N80%)%13N2!O)9+8">A16:0+6I=t=9/*6B;/OH701 !/1'$.2eR<V +E.YH7K-0:2U9) :/L/ZS..79/*"4!.0GE@)&K&<?B$W&7Y/=&=?(H?=22333444555566677781B+FQ(9%\t(4-$F"/eO54A11111111F"H!(C9+W'2OSX,L(6G#$LA=þ +8C\C:F1ü4,D+$1"Q-Qû4DF,@`¹ÊùÎjI9 7)@''SH2,-@8:5F20=./7AÆ °HI*8.H4+:#_#!->$86(=CS#Bgÿ+CEE/\(P+*:!#-<6/.&03&."CK^&+HC$Z<?[06@rJ(?%-09!0 0W6!;##J8j{dNI!F(+@3#,:ï!9(; +P4&!N@%"T!,-F/4 "*A.C+;I%4G67*6:*##><3þ<-,U:D(@9I+&)O)P7=!5H-/HE +/VF:CPD2;7D2#2J.+4%15=)B';M&/9I<3<`.H-?Bf,?*5E147L;ÿ1,7(?/C[+YH2$0F?V#X ^;XB2-@gK0",-J*%2F6*346AD! )?$\C-3>/, 81(>5*K7)L'<.(!2#CDAHJ8*2>+ý!?4O!lM=%8**7<B FE C+++?<!*;-'-4DP862>?4$4DX;%6-;20-E2N+j?1m?9L!>4;3Tiu5595Cb4HF$!6a%R:=D@T,/`-Q8._ZoWC85!Z(@W521G*$a%=6>W5VM.MGcN%.?AY&U2N57OJ95X%VHC1<05'UP0Ma1ýq?????>>>>>=====<<<<!& /XB=/ B5$9DX&APE5\6HY9:I/B1(3D",684)B23:5YLB "A#*!/$7)/-JK>&#6 X%!h;,G>I7C8%NHeI.8?/E3QJV<NB2>e51C1O'>5'I!+!ü(R8 ]P¤‰~B9E;( @A*D/%Ie 3N8U)F9B>?$#@&ù@A2J.8-,90E2cxX&XJO"!Y+ûJ=3e90UX[2.(U9@7?08A\?+Y#2ûDú5(5/@+' 11$Sc UO9%;1!5$' )''=9  +2233334445556667777&4;F7c,=09#<+G;85,! 11111111A- Þ+-/@<K1285,/Q&"^N?*@)L808*=.E>ù8+O#0*<0Y0ME/+5!<KmãþÜÂFW"8(()þ-3 *')%U +VI>6b?SoVH8-9$/-6.7UE('124&1%-1J-C  'H3;DP> 51Y2$3$%þ53b9J5$EI2þ"3.)5C/ ,6"M29>*+T66'Eo'@ ?@M49%f.9O.WK-<(**#!#+<05E$7CA0(-H9/" 47*lZ~31"B58$ + 7+4>/&DNW4\H9$/>F2O+J1*H'T& NVeA0IR*E*Q9M<%B/"#"$IM-&:5"Q"//6>D*ý!:6!]/ 02@Z?E40=,#13ï?`+=G)2E#)>(#9#3+5;UD%AHc6<K;& 4"$N+V>="(FE(]81%3+G'&*,BH'Y5W758/FéW)N.F&8;5JA&#T)87.*P*8">@M%CS9V57HNP2;.#GN(ý0;39YME=G5O4QV,:CF9;a$%[S:Ma5&-AMF142* ; 3Q37(E8(=#WEaHME;.?0V06M4N?jL>x=> 0C#,X9?-4eB4KE##^6>FD&;B3);LTgPPj>32&*&=IDK:3,5/???>>>>>=====<<<<<;7;, 8.T%*52ý4H+3*J‚/%;-7*Ba 9û1]2VHE%5-8@:1C+4K1?139,Q7DM"P'!#.77GL(CF,+'C+F Vô(20A2d2oE>$3BCS:0(A1D=D0'&,GG/_¤neIN7F=B^628üGIS>G +'C\W$/>V8#A 4/O;C<B&6'/-Ta=E0 -9>5C;A- +S)8<$; +<BP,1<@+-(E&%7), AFDC28KR; )/1$#+H!1N?08.,3>,(+ ý-5N%2223334445555666777%L759C9'96>-^T+?/(11111111-1 -2G+&0! :9@1(P5* 8L8'5Q/ FG95FG6).. '%5_'(;04"3*_C+[NvzÙä£h<Rè3'D@7,JA(:).Y\*($JS4!5BW4+&26&,*50 4"S)=;-(,1&&=<-;#þA(;A@677A5#(dj,=4*I9??;8ä6";R+@>5:FE&,5D&A869$G2#$1(>; 0.DB1ýL. 2" O8 %û /+="99HAO42$ %@Yƒ³¦a1"&!)W71\>(_<JF*BE+3$BWg'26$H%##R8OB>=EE,*PV=4:A"<D÷7>)7EG+8@,)13;f%/-)@9+)23#-45C%I",@C1,%)H8C-- R81I "5S>;N6(9%=(6=8&>D,=4VHM/X>[1,-`911,PT+>\ 0&NG $%2;'-1)J/X//Gc.aA=;%63FBD$#6" '1EQ74SA2-+)BQ>31>8>!mM32G>",&@4+&B72?%&E2+V;<F(KE/i)37'eV<N+1<4>;MG}_].4I!0&; Q>E25/- .&30) /U=S&>L#H5P€4I*/?9&QJJJ5GK,9!#%D%C)+&D&[&'G2/j?-BC$=3)/HQJ<BS[E86J5s¼)40Q8K:??>>>>=====<<<<<;;;D?LxH@251*T(Ba(9%#3$6^G'#D (3%819(#I+0J& + 4j<+S:A@')L*S>6+D*O;3KQ//`%@AU1N3J/V!/9HQV<("#85"'+'_+H:$!&C P,** _*MVanV+&>)?MG+!*4D0*)!?7?%B-2=C/''(1ù?:C*+)JD@7Q5-5/3#AD %(18 +=2[-^AE5b,G4(J4-5#EE@1""+C1*='0?**8:YA,V%.-J>)÷!W4þ'%3\0=UF2223334444555666777?646-/?6 $3>7/_1D];111111111A O0+#I%_&-+>?4,>8-.B\+AJ.(Q"(&; ?D-IA#GN5ý4:R3&/ /9A!]&*ZCvEEsXN*()B%pO967>þ9D"ES+û9&)6N2F+D.-%=995'G@:CM/8=.N&&>!t"'&9 F !:K@A 3'5_0F(e <%93(ö>2H]C&"1N> Q%"-7--%9=>O$/,P/=#H7N ":22G)GG\77b?-_:=O199L2 "-ü -=89 :84,=\6"<Lkä½\-2=A6 )D(N& +X<6nLX@1N:70"A2'0M7F)Q"*14-380Ulq]IgT"ù4 P,Y&5$8l-4QF( 96(OJ()6E#K!9'39(2 ;"3Eò792W$&E0CB8 4O5?TDaD>>PD.3þ8<!K%TW/HAT/sBDJY..-%=%2>M *,CZ7@L57  :7`**T=$8Qr4_;<=9BKD4<+H #'GUG[9"%*FJF%>9/*0BF#9A+IGB<X&X[ \6S2EE$f-:4J0A>(1KV:T(=2/$KHÿ.?NT~uml@$7 C)b"&(DM@*@:-PM41>)`]/U:E:+)PHP/380%`jBV$3=7*t@GB0G&I>'÷a<+9I2,<-"NED9 cc…sp2EE;1N%hA9$ 5>>>>>=====<<<<;;;;;LF 8!E+!39@% %*ù7>B(4/787N"4B+1JFJ + L`5#6G/)' -Kú6,4[/3+9"@'D%$,%5HNb„r`MG%>c<>>?2)MB#4?Bû>?1FGFE=E-7^$.!@:W#SRI:!DFR1E@&1=c> '>#S@@é! %&O'9S>M.6EK8CQ+&E 5K-G%:=2=1'49F1=3N;5>H>`352.b!ADJ<F<21#?)9.,>8<B5, @ "*2E;$#/6<?Q@MU<!5JS@#*341$#%:AH0!2222333444555666677Yé>?-1DDC3''@D#7>d1111111169/ K9 %<Rj&8HBTHX-0I-0=P2F# ]%N5;2KH2#3L$AA&O"1"$9/9%fXg/;,;G#E&/<160/7?.93,U*)(eW[*IH,=H(#3-3"6&3I4)["0T-2!,04EC>ú$$>0('0+"AF/)(2O50-:./L(UG_L=8(LE$,7YH5<0"< E6)U5nT?">.) ðW5>)F0L.>&V&/,,(3-,5$U4 2&*f =<a!l]xxx@04C3970A0B=6).MoW)+8766 4R%%@ +SKX7'7N=,8_@3S6&>-;O5VCT92 ó?-59-1 < 'F37OcA894I34)0:0A(0I%a!'92/(Y!4+! 542'*:6TA0$M".558!=$P+ü3D&H;/5.7\bWW=G4K/RQ$@*6=16I Y15 F#%7/>>FM+&<@DfS?:+?9#57H:-%:+8,6F,J XEtLX;;.+L43cS9,)/:8J,,P/:%! +_@OL^,H6/bT1*`HO<-a;B:@8DsA=23&6`YN</( ,A+3GN?JR7[%9(8D3T!;80B(5A$K:0G5;$Y8O3D(.0!.94:-CVöLC>a,+>D-(7,A<=4':^m‰k:<K942,$&`G+/7&>>>=====<<<<<;;;;;:K<;#2EO&h62N)+0D 0*,O3N3.K;O'.7D.@8 C1<.8ZMG8L% 4ø.5MDL^I#I0K%'9=m’౓G.A3$U33=%? 4A#`2&7?"&)W3">/78B:l=.%(QFIC:%,/A:I,>a<7X8õOM5+#!YT +>[/JGCVc"þIK%.5!r6W//$7E>+*BC9$(%'/8K8A9a]>I !6#/Kh++0>0&"M739N(:1+W1:ZO("<C*) 71C/?#?(CYN9)5 :.+35ÿ@+/D/1222333444455566677D</4#8F*CSJ G0;<4G/C<11111111==>;G=?T) 1M:>-<(U-,8X"Nm,A8i/%=;:2Q_l6>'7784E(N.3`B!%06*N47@ G8'S *P/ó J(%_%YQC 019J.0H[9a*7"%"*2/ý45L!<"!%E,<.1SC,>U&$5D2=:+,E9,G4N9 =4G@_%"/ú8)\(h91/=@%*GD=NTBô(ü$LE<.$>4&1-#$C" 2+@#7J;L).>3V.0 @6í##=6:--.H<9"-J>,;24`H<@K'T/.2-#,G$@EIK:6#8a <>?0:9.7&?.%AQ4EAVVB;=\\`TC8,?AIL3420A'ð1#DP):;>5+.N*R1F4;<,#AD9L XB=?.+&7#9%(>L&++- 4C=&6O/;K"E$ULJz:B+:/FW$^O94QD3.T6D$((7/+7YEY"eH/( '>R?.+!:;E,4B9e7A,E7R "1þ]7<-T<)"0E8$3+K+8H+%'87>!I3*+6;!LK1/S:&C*[+.&@"^UG(XJ:5lD4?JC4T@CRZ]E38R)O9(;0B66*)0R?g0FM>HG>OB4N$U@ ,YDR1E$&#/c7eL4?'%..p9<1@(/(PC@P45U4(YF$3*J/,J97#^;­›sC?4B=! 38<2M1P=>=====<<<<<;;;;;:::J=)A/O@I;;#)5&"-045 42-(J<H(GFBP4,O7#E27*0N3@N /4O!&42;48QP!@ ";CR‡û+ùé„‚F:R9M9J$((H(4LO3'52$4;H8I5Q I;O/01 ==KR7A SC!B8CS'A<C$(CCQ &/),K.#@;L.+9H](D1 /\<E>-L&(Q026JA;,H+)'.@!!H5+'84i##),-M4k2<,h>H3=+6!EBXCCAa32G7'Z303.nc]O'//3 4þ8:A(l10M5)1222233344455566667,&A&R ý(@H@5FC,6EH<1111111124>G#5ÿ--*UfL>YKG4 /CD;_DA-/20=Eõ?…G+P!J<7*3 5+0 #+H*/9$.1ö ;82.-'LS7?12$IXE:8VC' +431=)8Z, =A72ÿD=./?,>CD3&+47&+)Si>8,/*H94:#U96!!(*O8&.M9 )L&J0(<E;1 3I8!&+@(M R)QB5PDH>47K:e:2 C1+5)S-D/#)A/>01) +IJ-)RK;>G)+A:ú0U.D&7L!3)T;C;b72G?3(C)>947!->O+)4-MH-=D0K7/4(#@6:Q=&.7;XGCGC 9 >,4#368^0E,(S5A;0A3P [ =òP`X'[;ù 13%"OE7.21=57.5.W="8:4DPW*D=!0"$1?=U>:00#2+4W!H0E$]qOF?+03(1 +:A.=:08X3@L9>:!mD?3=)9M6"-7=Q2@IO%5: <B6?aE.&+D2= #>E!31", V#JC38-B86$J=,8@HMO5%'*6K<9>4$WJ0 F9N=K`,:<d<;7$?=>GC<8/)?ERC:L,J$8+IïB7QQF5B"ECO1B8'9AU(0:9,46 V<9(1þ9?l0ZN‰m|VQ#S72;2:>8-'$<1====<<<<<;;;;;:::::49GW5&+G$M) _49DL3!;77 15@<ýB7;S"(ü*7JLdR!4,&\*K6)A<(.);PJ2H526'$+MœñåÔ—\6Vÿ/@955->"D6")J=6"H8MA4*<ñ"1L*8<M#7X 0&;CSBK-%Y-*(624 @/!:9;EN.!E&$73(%C= +$CJ5%H>B<I76R/8E./85A)0k-1"4X-B=346;=5>F"+5nLT-<OG+1L..=,5I.6*-:K/ 0NH8%Z#0N4I_0+?o7G1122233344455556667(@*45+F\[,O/@A7:;E;11111111K&&/$+'.3MF:>J2%%.>.P2A#"þ#E X%HN(?e*&16 4A=R-./H.Q#+0("7"(<=C'1-3* F+:Ea<)0 (+F2 09&G/ "0(6.9F(#  ;FPH[G!)A2+<)&P?E\2$,1=2IGBNX(PA)5&Q4<7#=.1A3T-*8*.85F:;A)A$:%'+ ,>3RC0 EG*[EJT<)g6J-43(%H0G @<?5H#J2(.ÿ9(032Q Y!F52D'J:KAH91"-/+$N>=#N3'>^97,92D;,Oö", @ûG/C<=<5 <HGC/76%58<>51[1"E$!E@OQ#6G+HA<3f#&)D4#R6A!><4$> Y,3+?8 bd)''SMG2F/7K^1',.L;)"BF'2!!OP<,0-5T?LNXG/;C?$3&8>5jY(>A*/*Q-r8A:-6S3)IK@xu3[&95'. I,,S:!*&D=08,*9 @!$+0 -#%4B52i"F;&;'"3!5%<OBBWSBR,>+5A E8J>97XEQH_OTþ8@*ER$S2[o<7*5P01/G$06>G>*MD@5<>I`B-SfXJE):5(/I)@58LN<-Ig1T'R%4B1Q*!6`7$M/k9?P9F$:A<ihtcF 00($.$W8TV3===<<<<<;;;;:::::998@ADO#7F58'D; *;89Z:'9 *'L2Z$*9=0",(%%46*JO+:6?U(>957G*/ë*'*]E6:D&(  +A&7Kb{µ¨\>3$.S'7F! "F<G:R(G($)6C' <:.NHE",?A!$<1% #;<FGHöI/+U(+4&%RR98-L,5  :#93=3A*'7251P6:%*92L_0Q3E%K0÷=A64G>)ñMF>ûFGUGK13QC9.61 :I6781?h=L,!H!<(%:Y/"1\40@< 94="%: +@5A*=1122233334445556667;?IU?@4>K\™½(N#>#4PL(?111111114"NC%.,*+NO@^-9Z3=N3,=M=B#:<1"7-Gx>KF/\,G8GX## $'1JQ=1S:;#! /T/Ob$@7$K0/OJ2 C- +/70&+1]ó-'>1=)ZV,F93N=4.BP9 <9:,E&5U3!H>!;eKEO[PE.EH??D= -)WP'X)2KU"#A:F&'g86>;@.&H%"N-/7-$E#C9Z(8283-8&83>@.93Q;*/4T"+ 0(8'E% \8GMV60.1;.#(/H9?L`A1"U,:CJS5KY.:+96 FT6U65)<aZ;89-4G0HFC'ONE1-7'.!#0&H.39J&1-5D$8=,F9jC2*"9>>3ó?F )4.B00 +,!'4A61%D;EZ=%RF7D;$'C +%, :#4+,@R]?3$&K; +(4'539f$8T=nUDD?O#IP._DHK(>+#291BHY UB:;$",.$460-*RC&0$"3N9_$8@NId$ JS,G6R)/H=;$1RB7--;!2L" 7)C*EC;G17.T/09pEF6C7'XA-$ 'C!/i098E<>F0<)U;`#,>J[=3&1%#T,>TNE1'c.*6(<2D.L=G<3,O20,?F(W_æ<APa2E7+/%27@QGfb)F4(;`m“MhD'0! B.>5&&E&/>=<<<<<;;;;;::::9999WP +27@;,.-'C=S(ED6#: ,UHIK2!#(+=7(R23<*"-^')"=P6$A/?+-$*-WM3yZl‚kX0@TA>"*:(V';KKZNE$% 8=9>8YSOBM3<( W)(J:AH%-'4h6:!1TB_(+"ñ,!C6G4'4 KO8I<Z,#6L" -1 a#%0>LMP8"V.+0KA*@õ!K.W/.'"0$4&7< 4 <:+KE7'$/'6HB?LJ1!C,@7A*A-NV+9+O7+43/>-V>)/O-1112223334445555666 ?3J/()XmW+<(827/4#]?11111111CRe408íL*7M .9G*.E<0713;=41~IA0O_o@P%L*.\/$+*0,!2E*()A*)K?,(@?MT6$29'5A=p:* =*3<C+8"KJ?6 *>Dc7&I2*=8A30D)*\(</%0&H2#T>76;8$Y3-" ?*9?$K-&9,)+C6;5)L?.ÿ/?/.2+Q+<9-&'%Cd1UC *,6F2E-:,.)A$D2, ./#9*63/;AF.K3<88(,AIb - A:SVA"7Q4-!D 65,BYZ?[:3M=!"D0.7'[-69'3!--*C&7<+NV;+>M6B*Z9MA);3L+; H +2::9T3BD%@\5B A@*A'$ECô(W+9%HTN'H(5/NFXAIL457!':J7/6Aa;0W,4A 27i4M564"::QQB`.H0SM:(>>+:7/()7 %56JD/8E>(:Ax&VH $1;,(.pK.0"-Q) )4U#B:*X` /4\EZ*=ü=V@!1>=A+#B*(L1BJPNJþ(O:[I15 IH4aI;/@D!?;DQ%;3C=% *<#<@%K@)9KE"A<@]R9VC2)CR$F42:/:B6E(;5Z5>-%7ZLE-2O1=Iú@'E:<E?DGX"Ga?7ƒ=J]I@&K*E=XVE6%%7"<<<<;;;;;:::::99999%B+*>A$1:0Q  &?"$N09(6!GL31GD&.c9%+"> 830965C3; û)6'6O'73L'+47.94@131]*J&<"+7/73%PRZ('5K+8C?C<++::9K6.`4J@),4A/K$M@L <+IT,9+0L;*"8=-=-4U@ 3;)#K-!.'"4K@@/'_E;+Z*0H=R4_?9@7F 8</4 4<ó7RJ2"MC$).4ÿ!+.63*/%jL<'FC*52O (' HJB +)';M1112223333444555666)"+$9;9JR88 6B$&6)'=311111111/I5fdU:%[-2-8+Se>*: &@T,+EOOS>4VFN(Gñ <+MX/6&<>å(KEsM%8B&R+:#'C#5  5$þ=1U<A?,8*).!,':+^;;+1Q!F)$A,-5U$&1'&4@@!&*IF-$(24^"2/H7"O b"ú6D,K.+; +84#+*0=^3< /8# -5$@U/:0>>812>?;ô%D?84!5X"(<4?`53HK"L:;&'/08/O5*&'5@; 9@E6$DI2@:bC=BH=*A[BN>/=,9BYFPM78:11224+&#<8cMDO*13W#pM*,)<EFX((%582J^(6(&,5E$F>I;*"Z'/"':->N6>>!T`IB#'!#'-A/LE/?@<$?$B@=K14=04Y>#'_90#-J4[^".CI?'+)#T-U+aq•ŽwCAASD<?581*,-,I>$@.BD'/"?&#E:N<%T/NT::;>%Ac,FN3+**"b3<@#/,@+O5O*DH3L29BK,Q-$6O&J.3 #PO08$>h&,*<NV,J=\P#A'>MJVAj<D=-û/(V&&@3A/P#!%:Z:KB(,Q--15XS-16:@-\Z$^8<G4$@Cù0*>:-/.==‡S4-<(8RW)48D\B& V0#5*><<;;;;;:::::9999988K*32*.J-6d74S>@=71%=4A8*JOJ/CX@0<=øÿGýZ1 +L&*?=9$B/47;&)E9(E1589G %6V;OD@#=<OS5+ (9\1\$&B3D1L*? ;M=C(/"-(^/=;(F=BE)5P:RU.8;(+O7c-48:V%42Fù@AL-e4,',85 !>7=A#4% X LQD'$$6I<(EE5M:L#5:Q>D11 +!;âG:>85-"4HH'NQs2$3%04A+2 @)44PAB14$M1112222333444555666 B0G942N)9ukI="B?>11111111DcGDB3)1HEFG:5-E#8DC67+''5;% +H%2@*M/=A1;>ùF7**0J%45mU  Q6,6'YZ.#9"+/QD8MR.M[1 G85?V$D'!=L66<'%=m.; (5/3RA)5F1C8;-GD2G/A"%)8!N#70)/'+=F&!/QN!(TN.F#.8 6I5)#19FH?E!'54T7(K:&3-?%Q+F4 :+FP/#'Q7N31 X #%(Q99F !/@2-?$eE4A†N06FVYE@3C;8-&$*6K>.8-%#$1R*=V5=7Lj?%57q:P0"6YN*7=4CZ/L:9 T?E<JJA3+K1=).,R<65'8B70>4/.%/2U>&HL+9"N/ I&K%7H+.L7;8L +;D/*  *HIOR,  G.2ö8L@V5B{tëóÃk|d5JI6*=%70d8G,6I@?kA$?,+)-3F(< +P2(0D@ "4*'?;V9/TD2^GJXKFD+EIE "8ù$)0\<84'(,/ND!AlCCD",95jD 7OF EB=<3?,G1;6XZIHZ^%>7$Y3a24\"F> Z!=H0NL0^4@3=?(>R+3(6(.42FE1%T:0@@P:5RA1P0*j=Z?6+V*K.U./[#052$*+.SICA$<;;;;:::::999998888Z5?$&%X<?)!,iI*EC 2<H M+< ,1D/2%5&R(`J4 .1; 04 '/#)I$*5B#(A0:7$=B9M''&7ù`^)G$.8%'-!:,"C,07/#@G*. 8$?,3*?<7D)8 8T*.;A L>E+?>EK25:%?7)31W4,D26 9X:C *>O&>K?B!&9R9;GDY8:RA.C#-$V<. 7L$I?<=<E-@1(*W%L=7+,:382÷!:12$D,.G@_E((&''E;0ï+*3E3RL<B4J0111222333444455566-$"@@0)>V "+ 9B#,+:O'11111111IQ?UG+#F3Z1606%%! E8 +K 5B8B:)/7->K 8#4C'8'+$Y!- /< *Q9XL-1L#M++ +)1/+RYJ;:!)O9U=NX/<><6\ +3 öPK 9:TE70&K#@3L>.)&;M!<QIF94+*7UO.lQ4GLUG+X?>/,'6.(C( J?<ÿJ8Q-D8V(B$N)G+@*C**!6:)TC%?<þ$T(,J /0"?4RJ335V$2*(F2*.N@"#GnHSCú/4GIE/)0!; 24T4D+fPDD(6Y;+? +1<1M7'9#=? 1?2V B--5. 3X&@.@(XJüi737;+LC$5(7<$2%0<"6(KY)b.2J$!K*4C,C?/37&DB*LI38B 1F5%^D1BbLDI,$4J hYF'-1ûE*/+E"'+W[s»eË ,“oN'Q\A>N $ %?<$,OUc)'/d a#8==(O2" HX.<WB/$Q! ?<C3MWU3;0C=-<89w4%<2;.VQ"fjl1JCa:Q==/:?-?6GAL#(Q6D=&VA)79!)E3KZI'.V'<)7-24!=8EE@CH1*$+,L=12?G(XE3E8HC:Re*1%<C.#V6181SYehpY8655$,/=saQJ)8JCNW7@:YN4<5:=81A$E:(J;;;;:::::9999888887(#"6d&ÿ3'"#4&229;*.:.(3 +5C$"9?&*%<50Yh;V@ -ÿ15%@ )#(#?PE*<C+5'92%K$4=>!B,+$='$%? <2óC9: ;08iL÷49//JHY&03>3O'<?'($4">.%`<e =,.E*9-)H!W-Od# =1;(9A&9Lö6.?\'F/(7I(<X3"5'<$4H+Fl65D;L.1'1H0PM'83I#E-9) 6=0!3/&,#8G'-G*>+#NJR+;-9H5&9T080<F01112222333444555661K,>E)ImC)'3-3.6-(11111111*QA"_7!*A_3/*(2843,×R9@T/@LXQ^05:0E+&R)<L53D1@ $÷D +5(CD1 F<3H7ø9 +2 Z$1g^<TQ72-U-O,;89*N*,2D/ WD4<G ù)02"$2!&$IU)8=3 795D)3' @6U:W6*0&6MFS#"'RP=<7-,946D5.-3A-P"fXAD'>-;'E=VF9-$3;ô$(Y'-%:6:GAI B&/'G*3e=/%%#A(>/3SEjcjYF9.L<+NT0+9RT<C@$&7%#%@), 6=!0:-WPF%J67+DP)/C).F0g%:*2 +<G((N'D5M1 +E+H6S!;</K(Q.U".88=-l4R32#"T*B6JG-2=.:'NW&?  T6@AýE^60.:N8./D<89A.&g!&*@M? ..SbîɰŒ c]ZD0+-DLFF56.3JC%Q=ET5 AT7=3F#7P)<():8E_R."%@*<<$'K6d)5*A6[$Q>= +%B;20LibMA.$;…<EW@@8`/@C4GOM7W9H:@)2E=3,XF_AI Q)C><-0D)C2NZ ^A<98L2  9EA(Y$!H"5GB! VZ"GFP`ªÞD/Ÿ†+#xBShKf‡¡¢k:Z4 7?L(],IP6ù@*$)'>5";;;:::::9999988888777</8./$"J3N([U4#ÿ*=&2(W$(.!J+N$-1HKLulL:+*+)PB,O8*&30ù/38721.?#vA(*+'+Y3BL'\ <#,?91?KLK33Ec0 +8ü6(C97EN2/L;H6>:jN-B@@)&,b!:6&$*C%:--/''/7:A.G<5+6<,?->F=+79BD/> ?(8ìO;3B<W*+I?)/*G(.D-E@%0a';_/N5R(1m;;I(-<J <7 ?43ï%AúH4D+/8 "D>$:!.0111122233344445556;00B *.2mS2$LM"?:B?11111111984C'40C=65'"VM2'ûº.M( - 78-=K+( +-7DX4 <=*$4F55"E0..B(ZOX032FB)F$SDLNY/NCT 64-7--:9=<0;G-:  +21;*VB5..H',4k;5N(V;(2+!/1<I(ADE,D:85Eð5  D1)9,>;5*V4$'>D4)'J27* = %B0M@W9\"!A>SG@/+>= N9+L/80û@*> 6421*Q B)(12\'%A‚Welu|³–xPYi'=E(*N(3>?8C)GN3/ !52.î.H/E56;(7:A 9cG-VN.2!ZC=1T4<8 KD9A; ?4A/2%*W*=G#"ùd77;.96$,+.2ÿ0EVXO(BF:)öM/9D 2'1B@I5>5J-%76"1@GLI"<S7/6ü43 ?Q9-i Z2å,äiC¤JWM3X+KY'bB9+5C+ ,?7ø+P,\eD).PELD=c /UC7#%5>H#ùABU;#,^/=P-A"1]C@2:1$73$Vdƒ+) 0$>A, #UA68MN4V79O >68 -PB:E*8bG>-02C7@-T)&:/FEJM2.*J <F<;7B;@.%(J*r8#+ @ M+!1>0#,d­ãÎtaÑ`W*/p) ?ŽÚãÕ˜tF8Li%/28F0& >L?8>2)+,:::::99999888887777D9$EE4,Q76#N;20 /H3]&1U;c"-X9/K)D,Re}™›s/;QFXA *+= &C "&AA AO74(G"%8H<49C8>HCI4@1,376026+18+ 1 8 ; C(C'9=R9,$;1G7/3(b;5)7- ,r!7R2 )&:L@9H2!B* 7!$B: +(0*WLJ3DI'D +"5?U>!. +6.B02-,M)I# M:=+5 +)Yò'(';I?$W-$<<ò1,-/%J+91-l>B)"3,c92#C:4'?/%-00111222333344455565 A>(:)=V23%OiKU;9%11111111(JB)n5;D8R2J- ;G&13(8$6R4C569'6E7 /HI$99<+>/'8L@%5:/?#Op(N59H;NGEA*5A0!B8#6$3S,@3= *B97%:$.',FR3%+;.X= AE:!P*?WI B 0=L4!4Z9 +8!%K%(949.+]õ50BM<0-:0@'" KQ%52=/0OB4_33 =N/19 /9F >0@FOO$#4R@4*& . 9_, +S'"61@=xelÞ¾nsa.2D%-D%=9$.3I0Fú5  -"*F@5?D"W|,0.*I+):þ'I&5R"APK419(;U-$ QC3;:=&6AI,ÿB.:%#!NG$J6D&Q (,/(!2?>/+:6J$ERBDI56U77/41:'-$=+4* @19+93^16;ö=5(8-)X+BZ@mÖÖ© Ž y¶ôøƒKCSC1@!>MD>0l>P1@(R/0,%!J:h¿Ó‘V6>8#8,25FCù<I0TWB-09BwA9K<E.\"PL<>E*K4O1(Y=OHK5**U/F4%:858;$3$5R+M%Em(#@4SK)C,.O)573ZC‰WR5K$25K?: :?"c54.I4?+E772B+&)5+.PM€é+<‘÷S"B,*29[n™ X>ý•h(2#MBG1592c*]C+*9:::9999988888777776-*0F4.[U%=/ü19E"*,g.G0A)+U2B%`FJP:-4r¬ÉÒ}cRC%'<W)I,,E()>$9CE*%21>ER:#B)4D7\)-:(!  $þ,,G188ú5L?"@;*.&^(!þACC+B6"G8:;79*0.59,h "S:0X00%LD/$S#/1)?"/O<5H>%$!C )"/O0O* $-%.(=4GDT5F6>33PC3/55B05+9 6&F@E0M.D2*.%\%"C37/(8?4E9;WR13004  +8$"$ (8AL9O%Tq2 B0011112223334445555`&)<4 <H0+.&=E11111111&'FH3#B()37ý<w=5,X@(k?(8%[+f=!&8694["5!"M6!')!a)+$8!'(T&c)=÷++5<5B$##N3$ <3]*0EB3P$HPFDS*dR ]ý38 Nø?)'#>D,!?4!2A. *P17223+F2 ,GA=.RB(,7H59'3)880 -"5*I.`0cJ%O.&&L64>SA.-78+ZF?U 048+,#ç&W5C0=E7+:/;6!|ǤìSa¿xZ<*VL|T*-ak?d.9,.MA* J ù6>,34>'>,Q(b*, 9 L!-9.602N7%#($8BB`0,þ.-;52Y99K:H&?4^AE7IG"YBCA?]@#%5I&+70N>(A6X*<F6'-*,5/.:(?3+,&.JY:%D;:;J2*>R4'E +/=B.,5G8hgŒ~ +[ ’ ð‹œÃ™A8@F+RFR<A>8->6,@ %J<F <)flu»g_/_#!RWIF7:<;4+?7%)N7@AF"F'1*&I.,"LM/'ZM.0 Z1L5B*#5AO ö6BWLO<]S=]H"$0)%KmD#@6]D0$?+ ?1*1;HC:DH;‹ÉÅZ:JK"@G"NGH3?2CJ%8BE'S<@5@+LFP@6?H€ÁQDxûÐ_]A);6G0#hÆ”–„ð‰D$G6T?a&!5qH9,3?$(::99998888877777666/(B3.8"2TO<<-@BLQC4N3?AIX&A"?`&JqsÙ/:Úin!G70&0&COI '8A887ø%-9:; >b3D8Bb@/Gþ165ÿ=.<49F1-!02!L:6/= ?39òCEIC8;;R#5.3Ne;>0RNP9>D)MBGA76:5#5%.'(#*>0,M+->`**0\' + 82"ÿ/R'LCT>45GD@' CF!04%5#7(#PR2;'M3J+ ,>&D/0%P2A,F1>H- ;.6;9-;0001112223333444555A7TU'4:2.@K:-M+- 0þU,111111116):W;^L)C5$9)8P*(S'82@LIT*6J:<:Z*, +_-X2P=b01%7G7=5M#DMC(  ,J!4&"*F/ ZJ( %ð)<'G2'9G '?7IE8'5J2'28? Q#0)ÿ*F>1L9:38 + ($ 6J!,6#=''"(:I!'-4'%@@= D""=75 NB%( +:D%115j;Q&NU $:& 88ES!IMID0@9;M"Z02#J,SB0J.eî㙲© ætÌûžP@Q72!.. a0&,386$'#19F(C NB(-' (LA4+Mõ<þ;:08#'+2<)$%/);;W+WHGE,,.+@;(,!0-@'÷"!>%`&.<J" '].I..03'',3!\,9?*=_D3#.* %[L$$E*%93S)/2#:,3-cz#Þ ¸ Ø 9¡q,ŠeJ D/q@AA%,0%,$*G#%6#[6ˆ7DBLQV. 5?%;-;=D4&/RB,9(BS!J&kM0O89)2LT?@#/)70! +#@,'-Z??2H:R-1K3]:69J)G0F744A;OM3*_E5Q<;L€·¹beZ.;10?þ68$2$$/^22/ ""*1H,E5 X:f|ÍøüÇjG)5B8MD9T«Hê&£w('O5J 5 $>D 53:999998888877776666678B/6>3,A,5_H 4?("%O!*I'4-(+/VE.3Z¬ûa—`ïŸCN9 U9LPAO8 61%@4,?+:$B=.O%8E H%+/6B:0;(B!/7`0%F/FE'cFA*PD=2?#0#9*X&;E:"I883?"FNA<K)2(M4C@G"0"67W2G1_<*6?.B 6$8R)$C;-W+?5G;&"1T(5(,0+DjBI]/( 0D#N;/B72)J +,6JAC8 +*)LD4 5(5B("*.8<"1E9$A28^*\5,5&:1(FH#4/000111222233344455560<2D+OS4")M16;W;11111111K&B@V 78J6;/C.Hþ9 +L)15R-?-(2A"#A*+A.YA13;F=$1";R6eVBW-:L):/AT&$9@$/#!4F4L/%<DCP)T, I+!4+E*:09.1K )BE?@H Y=C*+"T H+[69;ûA<M47# 05L=%3D#) M_/R"-)N+NÿH0L9)Q%#=H;*[)#;3m/IA(!=02>7 +,= ="?G$< ([1I7B,25F %N$,-87#@&C8TDv¹2?Š0ìPš2´Q§j…"#? VC<OCVV6*O'HE&18o?:IA~<3% +0$6?F*MG@D+K40%K&(=<D* -29:S6@&Q=1&2%$-^DAKUB;8GN29AK0/-9"O9J@,:R!/619. +2KI6-J+O>!9 LC3B#^@E:OT$:!G*50+`h‘Æ½Ê ß +g Gs½¼V=i=[+R8B_("/,$:l< 6K"I;$ +fAC/37>99>#CS;A)?<PS@1A|CY67!B,3<0{)4;cTN"&6)GCIE)2>/I954 (]597NEO:)/+=L 9!$*aKI4;"CH81'RN1?[6>YD*W]?RP)180,/O0!W(0:7B<.8.+CCSC&3\5+*O#<|p<ô(H3571 LR:›Õ‚~”Óâ±R!?7v;N#04.-(OR6S9998888877777666665>%5NT88/)&,M!.DCC1@J.J'`c$! ND<+Sk£ qÉ|U]51GL"FZ^@$G")/ 0'8..&K)&*7ý8D-'&(L!XR0C6!&-è:(%8j,SK13N@*R+:8;O02&)GNG!C25422(è/1]XD)$6;6 [H=aAr&'R= +(F4;W5A/-!-J,/:";98-J-"ýC;2&:P6RCD!G.M9 R0,=^J&"QI%G*DCGz+ +O 6><jO6*)F6LLEô,;\F\'!D',G0I*3H@0000111222333444455AJ=/CQR4JI+H"4"j.X111111112HòM_( /(z^C:9D<1i6!/KK%>B.U=<*gXL/-E87028I5G#bb73D8FAJ;I $G?- *ûEC ./LGCLJ90'H(%". _RA"@3G';X?(S9$,3a%5.+#7,6?S0+T +2W-34N+")L@Q,JE 5 0.&$18!$:1,\6%'L;[M&N&.#??3T)2)D@N4,C,*F<()U>*,D("(E=; @:"7*  :")7nÉ‘´¡kÞ?ŠzŽpèx¦L/V%5H(5rP4.)*,13'=;V/Xe)?&0/ +%' +(23E_@;(B*69N,&>/F9%/0B2:'a7*!01--(9!-9!$cBHG#11:+==\.`<"3.+k#LB-9;%@G*39&$:T/T;E=.Y/+#>FRB;1<@0.K? :*TKe{C’™Ö¤çýz<30A!@),SK-\UA0#30K7=… .fK-L,c;aLE:<  t5!<$%:,;81hVh4M>Gw.&52C5<?_V1LD5B!]9@b-*K0A4VI+Jq&K5]JJB75 S/+8 %(SD0;L.8?347y,H/;`;2Y1G1-%+9#$>2BG6"16%%A!`:3)&'AA8,<-cF6Rk6S:bXIï!Úªÿ”M%.08EF<%,5=/59888887777766666555B,K!!. +(3 +I(=;:.GD&&*<H;0( W"P&)* *,=CiiðLz[ÐX*H@-C?4C>JG0o.%B=4G*;0@5MET6"(.N8GD+ a$Zó#+Q /G +OI3*MMQKU4C6#),@LQ$1*+2D!*09%2?_--E'D>/94)2KR;F=BMP;5B<7"G)6M%;E65=86/9Q<d%2<'<F +:#=2=1%84!?:.4,$7$G<;,1B*,;E;21#'87cI3ü8)9(62dC3():>,0((N7S6H*/000111222233344455;6E71?&)9)<12Z':<>011111111?C(?' $IDƒusk?NX6<8+!GA:BAG.†9?O0)-3C-,9D +=; .<Q:8<'=/=Q3 44*+J/bg'%þ%*'8W3^*O-;O ++&v&9E(6,-ö83 E&53.7%)+,II4ÿ"K$-)?/0@E7%H:84-7>^S)0(C%a-0*(-5=)H&/<. $'"7E:-(37(I(U4+&P/)8R%2#0%56,2 -*;IJ&N0N,,$#/)0'1_DY=7k¤Ç…›­ZúÜb2ä¬y™x7(S.ïLAD_FD^Z,+951JBC382K‰ ø‹XcbGI:'K140.Db1:-/M8\C7E-F$D>"KTBR9"4?*EBñ/L6M)#BU9&0 &PN (<!  C7$'B.-;0'A"D':>L +/,.4'-1FQK<&'0EOGF'83!5$@+!1>5*6#]1MR§G5<ßBp0|YGC09@98H<C)@>><K;4>D8B2Iõ3<-;)5"?@)=];2*6).=C -2g^V$\ ?8&$I[=5ZqUQ3+2+.21.U;CY2*%D$A-V#MtQCJ%D4Lh9C1E?M,758!>5@A46,:Q3acb0UL:$93j%"1!>?F<H=&E3/F÷$8J2LK.:1,5R)4--'3:3bCc%Ek¥!´gnÞLL`L2#A QXV;/#U8888777776666655555IFA'2;#\.r8%97I:@K3,(/D!KAJ(!JMÇá¬x|.9E<??Ba%#MaD,<'.8,9+6D &^ +=->>,,<5'<&'5 .4+2;&.8'' +"((8?Q.MF3N00;'N8/N0K!2'6C/DE,:-S@'-:=>K0EL@YPDF72/+D+5%/`8- 9%DE( 2;= O)&'N5#":@335<W04#)48<0G9:B J-%Oú+V<7S145#=.P!8C1S?W&S&[,&'J/%ÿK!8J<P'/000111122233344445U'ö;.g0/"1%G@*":F+$47&11111111=3:Q@APBU68!720!C=1#)$-. *G'8<%B0JK!,F(I3/@Q2]U _~MC7@?H:8!@JFH !@JH#E(F6->?84Ba@@8K36'/H*:9)*!R%ù9/!!4+>59$E:)[9.4.-8B:**-2T6BG?-=6O8O=7.726RG%&>T3K-!$ 2#L4+>(3Y +363/9V'A)E3(P#E) Eû +4H&#?@875>@LH1*2<5Gû]—ÀíYJ -‹ µ-…Ÿ8q+þ?=45l\* !"7020O?*P-8+H²%+Š?2?.8$:J8B#/'!%/&%'H*:*$/V6:Ž8&6ýd7\ +P2,0,'/98S0A+H j:.H3  0 4ø6%0;IJ:,Q<#W1!)@KH;HC-/C 8<8@K1F'93&9P&H(8 ;<DVvÌKôÖÛR0€VEN"Z.A< ,"+* 02,E80*583NM?UE.-26$B'K9314.G4-ZA4 +(C4"L6BU;GN09$1-g/9Z.E;@TKpk<g;D+;<!>,<'7?N<HNJ]DK40~5$,K&eQGBj#&8OG5,$A$e.4$*0'+>=-7H44T$=h#FX%>- a L-%H[4TZ=q¯;á’üY¦ˆ[%>$9M1;2,!A8887777766665555544+[ $.G0IM;, B9 JA0@*A_,ER1,47=I D<DD*+7S`•Å_VK1&Q<@WFI0%0bG/2M51! G5/8>6AJ"2H4 a_'=*W('/34 W4*6,@A@-R>6;O;+%:#.:BBm8#3ST"C1þ6#6_ [Y/K(7:0RA4^!!-M5F/!2?7K0 SDEX*E$$J*þAI(4û/!$DA?+>,<3/$9$>5P%17$=><I>?'3<GI]HL0J.;9,1@W%%,L:7'0I%4+)!TW0C3//00011122233334445Z)D6HBW-1*,<14TO.111111111_>J'OB,&<;J?@JFU=BK,,0+0<7@3L%J6@1I$GB 28$3ÿ../0NMHH'462&,(GO;0./1ø!,CF 7AY@=EI,BT +C//]A/@.29$ 4ý#A81118 b2GQ:&+#L1-IJ)(1%A760@+6$N16û7C9-L6N)' L7%15GV 6ûIH9G<.DME$"HT.ü:)8--38,AHL#)23)&9,HF+ö:)%)(@19R.>)EbcÒ YëÎ +´ i +l¸àã€kR<:NK5].;BAS+ML"4=+,R$K66?@0;jit:1'2$-7K(A* 0A;EW 6/,J*=C;7M2^SF6Y-&6.yi C2L.9;261?2=8+ 1H4L;'.;>.17%35<<="2"(* AD>##B7NK4!R>A&8=5"9%%D8ñ*6%);8&buÊYç.¸3sOB(J:Q.=7+BDÿ3J&? ÕC`WI"D )KDSX>F%%'$)W-'J1J4)D?DAgH".+;1%+AI+:P<]2;431DHAB5MU:#% '1;0'RjL=7K@>L"II78VB5=&5'09a@a '[Jqc%B*I*6/0a(6D8'' 1,T,Q:)79O2902'6;73;S*&=$85"'l[8,*=5S)9(2"!Ez5èˆì“mP77, C$=33G !98777776666655555444'/%C!)>FEO.== !&ñ'E6.1!41>fHdI %4>)$$tal\g@N!2V4bU>6,(j:^L#&" '(15)@,(7/""'"?%2F+%@9B)EX&M>"Y8)[í(!F806|#.A*),ö*H;/G4115CZ;MJ4/./;c&A7:%P?$&9.)9?+D$E#AK5."*:>#()=ÿ^-)B.Q),!&>C=Z!?ý8)L@-8I>9_3NE<(&#= /I(U5;:)ESH@2Q6=!P$A7 /PC!%=AG@-//00011112223334445e(2;)?0)36(  +8;3<6 A111111111?B64ù+K%(.=4d-=?069?M14( O '6\02%I979+3.43+?L/@-:L&X6 FI5H#6>,+ 246=/+.'0$@ J3+A3!:& 0(F7IQ"6Eú=K12'<B  ,:))9<?>Y#&Lþ4=B.?7@S#@3&8Q3B(ü0$*193;$:4%;"&$DcNI%]-4# (Z,((2CA,,2?0/%[#()%.%290:5#,EJ421 3*9DC30FQªþagShÔ† œ ®›^8;E8E=O ",QBB6GL215;QF(F*6aJ.C7%BGH8<.<,L/5K9D4ÿ%/N3*8._(;=+'!(CBN-:4h-!ü*"O-/\.R* G%;@8TRHD0>G]=L!0//$%#.K6@(7 % +A,)=Y40-EZ6EP)5P8=U56ITL>6LL)3f1T?¬^¡L8R^4&G+!9$C+-."=/ +7=R$>* ;2(KA ÿ@R,'Am-O,7^hNB++?H;M1". (2N`E +B4;1fL4F7!e>/%K,*CR(?hL0H(9<(E(4ECüJEDrk‰C/n8# 0A!8L:>0/B*46!(5A3C& 030F7 N211$)+#.7*@O&L%@)/"K'2)%FA'B4CB‹ÆjH§h.'C..89+7)/(87777666665555544444?,]UQ)13? 4CB6<N5%+9C':CC)'P!)0E68[@$uW00:W+t/H÷5%17&)K '<:-Q+J1,:*2*#643" +(;0=õ8J":X//):+9#,'FFA+G4M[9N%P/j&EM[<B.&QN?<452D@@%hþ%-B>GSG&/0C2 I9/^N#2C?>6-:$1% !)f"D/).Q2B3/%73.7L%$ w;'%F999*;&;93:T8ý3+!"4B .6  4@65/!:.1OBEQV5.B WD'1,49;///0001112223333444=3].A)!-Y5#'L?2ýG*4111111111@l2.<46*`Q.3&;0%Q<*#(=9Q<'<FG19!758Eò6V9N2/.N 4!F7DZ(G/.13KLõN%&TP#@!0F+8 +11&KA+ï3F,C*".6)$H5"'%D&:6LC*Y&ú>]3N8(#9%\6GD:2;2'03S7/2V :0)6%3ZFk%<T/3! 9JD/"*6L%05&#?@P1,&úKB#DU "9L087:11-6(><;L?0G"g±âio[Ûô +êÅ£lˆWQ9M,(T;%\F@,FBS9 +>"'R +;5.;2>N#J÷%;J<HX>F3b!&<>0T'D3**ü=%-'(1W.UO*394;1I) .=_; 15OD, XB/JB>5Q1-(16B#/26@+9@2 S* *&*#&6HHF0è79H,J6OM‹›‡†fJ<A"/8L#5?<&^FC=4 HK*:&7,#LY9P1û8""d";52A/,6T[5@'H)E[.-:++!\K4QLTC!>DD6::38X4@JAWP$".LRT^*G-I-6LO5,=#j&6,P…L{[C,83W6Ga*5h?7%O//%HR'HK!#D%#$,[=G9*0/5F2?$% ;:+(+A,C:TJR`<GoéÏ´¦€B.- ?"5"6S,ID77766666555554444433388&>WM&F@'7þ>YP"&@1*O'7)D86:!8÷DPWB]0BA& 5,!,-+>6N!(#(//,ö'èP4(A +$1=((FC)9î0%HX +,/>:F1:3&&D?1+06[3+ö>K9*,S."58;>0\04G1=RP(%:GA88(0d9F#("$T$A&'K$ý:.(BC9'Q6&)- 24:_19+;6R)(M$D4,#P>7.(!/4&%48+$()':G) 35 H,.0)&# [4! +# 89///0001112222333444D]>K'Y"8+ . H;D./111111111'L*GDi<'-DO> +4:T?698;\]J 6Y%+NHG?359(!07V<<'K<]B& 48 6<*%N;4-%*(%-@ú&QNE+OO1*+,b>ü6?L>8H*A0k:#÷-037&3C\0%/<= +,þDD*'9B5K2@'%+<6^/)('1 #&)"Z.%.05E.G 8 F"N9*=#,LF*C"-'05C&+-890L&3B':h<^?#H.R4,*P-& #WQ^‚Î-> ¤Ìx¥^”†jS=G$2+#5$Eb2:=M!/'V/IVX",F!>-@5_6F0/5*1&"'H +**>9M&5!5,÷)1*K:]I!+Q+.%4/K24S!+)389;&@#/8#67D-SJ) 9W0N9CDmLAU 0Y"!RRRBWZH<R7CKb'D%EA>#%?+C.ÿ&1) 2ó(!,/C58VAQc3q€XQA6D%I@KC(5I035H6 @*9:'\ D1V73?(!3F,/(51+<A8&64=%B1E`*,?.3  .-).Jh>,G*iL<.?GD&,R?.-0A@La59%9UK$_40F06<2H8AV‚„@5FL>-P,(NCH+DLW/.:#K'3i;5+;D=&, (9-5:@.K'&!'2= *17=K#(2ôÿ?D8$C`7Uwu{@I=.5 +)S:K7!/F7666655555444443333K;Y<n\L$J>@BI(#?+4:-S@ $6(;,$;>82QKg<E:303@!<9.4L$/ùS6;1D",9N5$9&1#(î"%4E3 @>0> C&N4#-#&=" T'!=#3FM=/'$65LDYf20.(60*.=L[1G54<'+8<2W!1W22>`70>KE(CQU626-,/$H,D%)4,+0.! 2+M;68/7u($8é0 IHQ.01M7I8G33(@?D<S9 AEQ( 7 <.&9@,(;Vo546;**@6L=S@N7D.G'=MJ=:///0000111222333444!C2&'DJQ>A)146CC=<'111111111\+VD3' + FM/%TJA MVQ4C`:1a)4b8]7<P#&.@2TK'7B>0F%ù$BNF@R.XJ+".=B$)S9)'*)66>T2F3NcoK8F+?-<J.D +G  6JC)' X'!  (6*7>t$ B B8Q'5.'C, 3*8(':,V0<*þI623+,=I/H)<?!1 ,+JC= D"7X)o,54*4J8!RB>%&,N0DH/ú -"+'-!/242 `#::2Z¬¸ËË‚[WQbATGSiS6%45>45BWC;>\=?$C)<#;iX:Zû1KC?03Ph##O21H=]"*>28/+?AV1%N56$(G8:6+k$:%/=!/BPa8*:03@'q8%/L?VH,JL=6$&ûl/=F‰ˆ €]a;3?$7AS/2ú$+3($2$E>Q3>7N6ME<=E7FQS@M720),+9=8!>BYNN. û6$,H>KFH1L.<# Te, +;4/,:>p38-=R+1,NX,& 85,DB85;Q=/A1D%& +$CSMC;)D*E*M>H!J/(%4PE;.b<(L3' 7,R(?- 6R5`OO:/LC,+A E,* J&H1'-7*2/B3$0%47&;\4CN)32=C8+'4Y'0&@jQ062O04,TX]SgF:D:+LB-;J)"Q@=6666555554444333332(8 +F9ZEW0=+>+89H0F$!45&*þ>3WA+KA.P'ÿ3+/ O%,1(^*,F>K/$&'#2%?1$/4*=9?+<#F%-("(*57&[7^!9 /:2:"0P&NN5 R.!433$F)A@58W%W%7Y68 +V%%696Cf91>RDF'K*KE8  +(M;#AX1/$6(7<"  ?)0"!%8W9$3@S50,1P ?*-)"L/>'LJ-03,3#97>/GQI(45/)& 7)/3:K4#A+J[P6.0@1;>5K1!.///0001112222333444)6ð56H:&H<G609D6:<A111111111B4nlK3.)16-5'>@70<<?$)G%'I%'[8Vf5ODE$1);1=<H7.(K?@ C ,>[<76K>C E@=  &BD:N47CWRC?E36^=!D9>X8E-:,'&7:OJ2K(2!?_2<,7#CA-O/- 1N4J'75O1 Z8D> +6/I97-(% Ga%E$6+@ù53Y24'"1AUCG#"736(2+(E-âH!26C1A2)NB R D'H5&2UkUcMy\TQ6Q,=E<gEG dH +9_/W, e'4##E<C7!8*B>F,"'9.3>9 l><D< O'+A'(-W$8;RPE2&)*!H4+ARuKP#L'";+9h +S/+<8.&%;K?'?A % [6=H`Ì— ˜æ]E:( +<:7 :7C:.?1.&34/"9:@K5>$..'7&`*CBB=B7J",?M,^0$LW:-K G4Q(9V_,LC:8E)N;7>5H>@TB #+@?9@.AZ"1:X,13+7(;C-Q$=l( 7#BC:=6N-R#@?7&!9N'9[6>@HLD%>0p`0k+9UL3?7:O+<I%C `""22#>,(I)?A <,;MN(9N#2(7A-62!0-@>5;?D5:Eì#Q4+h6=%5,S@@8G<MW.)>6=V'941165555544444333332#52G3O=P#'E;+P)ûF"2%>B( Xà 9>O!$F=)&71'G57-/7 %'(B-Z)s$)=-$,8'"K75J659)$4(SM\2*AR8:(/B)ME>GV2F(,*F'EU=4N'J4"@,/V B989?X2V3G)(7KE+2>3M*B(05"/$'d%*&SH4 FKD0,?B,=8.22O  B28=223R,NI/*J=]6<;0,WB#RF+%A24J(C;H+V*C14M984`:X:014G. U.KL#8<616.W.///000011122233344':I16X;09,I9 41O#KA0111111111KS?1-%<-"PE?E%-@!:&8.$"+a|jL@?</Y/1 +$H9;ÿ4U=& )<'D2=0,+.2T?&5NF #D6FhM%X5B5H >-5;10#'7XR6+93%<(66,@/33=!:P8"8 .+$/&5F)9! "GH'+6;201&C,47-)2þ +0A" @ G.IJTCK461.<+m&GD-*:A+ +C7-.k832/6:4L(:)/2 +'=*Ma-G]bgA:V&FD]G!$(;;]é-2* 96G&':;$ +:=6A@)J!U.Ii!-3&V-1BG+$-5,-:>$,î9=<44IA;@D3+2?##(>/Dq )-)9T-6G-IB89(ú"1G+=%,?.2;%$LLbÀY +öW +‡qÄL0Q,D\9W=J!G9)2B;05Iõ>/I5+;!9/GB_ LL%..E%3!a 5F5+479@(B9!5m7(A$:B7:þ$÷"++ULT <M-BG&fHA!?f=J\?8 B=M@8<0MF@*6M@!;#4:H65(!2U8gW+`ITWI?A[KCT9I73>=X383BMXFC@G ]D"(0 ð>7\66S<99,1&L!26G")I+F(P?U5"6^46F!3/617A5=,$=8G'(?B=^@;.J7855554444433333222:8O=B8YN) = 2W75+NV%:5(4 +5'67* 1ES<5Y<"B&1266E<-1A"S1>.#XZ @S9D.1; -@GTGP+M,<O-&3;MT#-:(<-K3E!G,:,=F,E%-=U<=U"J6=,' +a//'8@29&E>( +..(8Q(5+@8U6;NL/P+$/) +8Jb#%( /[74K*B;10#M5A=+@5>rEDK*4=? /R(5 0EB^"2FWD0%?6.29E3ø!52+))TS/3 +D3;<-.////00011122233334$ ER8.>@-&MC"1B(h'c]8111111111Q^.@15+(;'"GMy!%4\6}Y]<E-1E1&Q4.47U9O6S6W>?G2??399,;7%-I=H5.:þU 0;CB&N;C//G-4&! FT;$g1F':&G3,%B2O,BJ70GV>G0;A,J>23#+IJ@,&1" 7"&5(/T&6FPC@+-(bCQA;J";4L 67,4.A9H,8@2#,@"G60>2!50BþN4$"ABò75K58F:Q.D$K3'F:7%"/G,2!%Q=AK <1MaT0A-78;<n:+1><6+!#4/./1B`k0 +/1.SO>Ac8.="K .9D5 6> ++3c6QR- *5*",2?/9."= *;M3 ;(- 7IV3>T9F0D3$$>T'û(" #_8K62A L*0On? <Ö%q— ×.u8IB ,30WB:2:950>AK>4>!)?A?.S]83Ue8<S6#@KD7H/?7>4A=<M;h1ûC0.6N<%.&?-!0G2›_$G$8?>L(0I&5E,1 EE&X=F_1<L[)8I L:C4#>I)L<>'ICe'd/!0C@]O0,Z9B>>I*;-0QGI%þ$;&#-WfE-Q2A/J716,GUI:$)T(/LCO?/$%.?3B8 ,Q/ #%D'16/9'60.O'"2-1.GV<(95O10?9RG2e'(=P;0/b55444443333322522; G)=!EGB%2!L#8  /.RAL&%IDdb8@6/>,Z*9L#'BBC6B,3&'<+$F1 +;0=61):G$(B9*C;% (%C1'BH!A2O;3,^I)*5 3I8;"3&.!.;C0F9QA3;0-+//7"8NHN.24M-8TK&%%><KNPò;-A74;@8E K*B1:.V%"/>(=(+0@72,KB"O&9% TBû:P5Q)5FTJ0îABH<*@D0.(FZ 4@ý+O@/9D6-%@6H( s;/8<7/..///00011112223334@1<69:%P/ 5J+02%:6111111111K;9 =3,B@17F4S7T^â7ŸWX5Q54-0,@C8F+$:IPL'3;d75%@O;K!$9?! *PU/#,)$-8D!"C07N!+18NZ;/[Z4*.4 +6F1N8/.69* +3eGN,J!%#?O?.$1=(ô K/.3E90?3:RE7;.F;("$?:G"E!&3BLE;C9%2!9-V?Z*I\--,Q)+,÷+ +<G%$<6ô3;4A%>î6ME17?E+!0B &913Lv€O"KO>/8CRC2üA)=é8)+ ?EXŠo8*ZX9;7>G4TA2H6*G?:: 7b0)3+@QF+'"P;aIC8I5(91D2-,67J!B62k08;?I=(@4@6&ý@*B4ý<%3N*+B+-: U(Or +j *$? +4@oKH<;3&,2!9*7E(2>. )M*W8;MK/4*H>(:;"]Z!X33T;0@3J3+B>19E3,M?t06'AMQJ8$D"<Xh+(kI<+.PJ'78R &3NG>oFE>)/CE56?@35&4=?3*&G6GG=.(VB3J39]2Y%; SG74dNoX43F&:1-1+J/3&.NBF'>=%-T[A:Y05M-"%9J0-(G1@>'6.5j>._</T=K17('$ü5<QE3P%L :6W.S)/A4@ED.F'54444333332255544F 4@:3;3q2,)(?+>.6éD&09-,8<8"_2M8UE4$(2)#H?2)bþMø)&(/1' %L#F15:+/261@,!.!3)7A86 $A74"\OR9 @?9-<7Y,-&? !.0 -?/&<++/B-D$GK/5qNN +21D56302F&736<%/3F:GIH:38@D15\:*(2S5"q"(OC* >DS58=)?9 B+0=O)Q6T E<4!7BF%1B#4.:D$$+46A!#.'=%g0!R=0.UD/2?0..////0001112223333.72)A,$&K+1,4U69-'-:111111111%7<? %<")J6MLODkƒ‚}>Z4.3?(K\GC>2;(N2"1m5'K!5%@4:,1;4IN>M0%LH#=;4OY8)$*3-3* (O/XB.&.5DA>HC6U>B '[S^%#F4,"!&:**7a +<_)TK0 'F5.6 W#J*()-S,3=Y*\+2ML0,LP)%D334531,7` +V,>%8831%#*-"/ .+.J<T5A%TR'EU?=&D:? '9!H&#24F"8- AP@OD>T³/C&Q.T61>B45L/07-6 <=™óȆ-&67-Oj&</. 4N3)A5R+^HN, F="'v2;M(C/+5@8D)Z'9/:S)7UW=U&)9>B8<3^=N"1@3/'30+C*24BA]LC"cW>t:/F_’¥ ØáøpS:WA5;-R/[H")<4*B7>ì. M=M"3*=5S:(3&5"G>I8LBB97!@%<HNV:#35%O(O &0@; ,6D6&= B***0S]LB&+]-HD&67-7_8?A!;+5/&;W<gJMG=%5(:5EMcTL<!.H26E-<,YK4UVN0F'<.D)PR,2P>Wf;,1./PE56L&,+,G$3-E1(DDtDU!&!?a".,DNB\?BX <M72M(>4V X%39K =>95=&DA3;+98/W:5/V-3UK5P#)F+34444333332255554446@A 4?V- 34TR@0=I$O.+1ÿP-(%=TV. ;RÝC6($*"4I&0OHC'91"kzM:# /"C7DR9/MPO*5N($1,Dÿ/'43;;=LJ2/09X#:6%1.=M#;9E !!2%',L*@5B/:OX6÷>C#A/,8*R3 F"H#:>-A03<L!#J4#V!*d@$5A+I* @&;G7-'7HA'0)?/9?@fOB63ü%)7P*8õ,!$3%A";>S: +GK!$ B,"8,W/0;(J...///0001111222333Xý+Fe%N*"!U9i5r"'C1111111118"L[?XN.0)-C>7@NYû•ÞgRF+7$J+-3X";9I<L>-(),/"9T 3KX36G H6!EG,BD  +^1%><,D7*+%/10-.)'67;8^63M‹´S7Z +1:3%'(2%>aCA+;VSC'4 @S=<P14?kD<<&L7,0I,E&4 D=+$6r!úC/*<N*$@)4A B$7(=93<EFAX!:#44;(R%/H5L?6H)?EF98(2/6.:$++   @+40[1;*/66D./<B%L-:jPA5&T:5 NJ?— ¸BP- 6E*!3C<179)=W3;%¼ ¥24;O)8CI%<3CO3#.,F,F9D#)`+?:#J1N+-,#&Z(,DP%A(2E.(65K<DH8!p<2D@++=IAJF§e5N+ƒU]:]/6-JEN4E@)6N@/U5-5.73D>1;Dk=I/$(-;+A4/7-E<>#%I5<"E<+,B:M#1&*ALL3,O?*G1 MF*,8G(#@$b=;>a3W24Y:NnY?LM1D&2KC91JN96;G;2E+?D/(* %ML!/I)\'g6%N%..?N+k`K:?8=0-9>K $%#62P@8 8O8Vnf7<)CN*;$C;2A?B29FU*,*L''/KK*(B-18J;D4:JAB+-QJ4?6 1G:1R3@=C 4333332225555544441a6g&X7%0÷."5.=-÷+Hõ5:ÿ= &= ÿ09.)H86W=MS)8)7%1> ðaK'70!4D ý<+=51gBQZA0+5+C'M0B<+4-!H2 375,0#G6=-J<B &@!)Bÿ56 #,23a/-<(T,7?<@=?0:)#& +156%>Q3*>#(B2XD,+IOBR1NC209NB#bT@A?MG'E+.!G2W<&*g68).G+1&*V-=]'0; 7D_ /9#=4 ',-&1H37L7P(S%<N...///0000111222333(20<7(*DJ11*2(F"7111111111=?(\;;2Q$%H]œh7JB6M?Q0%1,W-"G@;+Jf%K:1!74"["f4!7H%S937C< +@;BFMKNBN2'6SV('# B18. X(E†—dB2<6L :BA@3H%4F`H!úE_2*Q3$1B*605;36-6?*1,3#%029W""5:!7#^1 B!;2TLN$3hy =0.5H*IS)!775#2KZ=+D=,6(9H6S5"9753E2#,OB5154.[5D:3""Q A +E..D#$X(8$ +;B9 $&NB@6 0!kÑí·B_1)N*2eDþO:&->(4$*G4]«›`ˆD -.A4+,HH(SL<3A/(9ÿ,N?C+.$35HE197F2098(?3û5.B>:7I=$M42/CGM"F%0b::5rÿö¦”ˆL +05S*K .O)DZ2+I)DJc.(öM7PI> Y"(!M<9õ'>C3kX$57:/*(67$3G@+BFY0+.EDO:;:U:UGHA/76@CN.)?J1ZS.6*R[<()8%FK".3WU;<ND6HW34D ^*PB^SR @^G>FY*C/#IDZ2K%I9E10?&D"0(M2DlgLu*&GA"3I/;92UD[&8;3 #G]+QG&Q'9#?WC6!6P+6-N1;8:4$^0_P>WP $V8815(333322222555554444?I$<+/: 4'yH@1036;<0>ANHL(R'-<";$1%>AVNC%;AE%LTA2&4*9^#1B#F<@!8$O03C'"&RIð6-R*#4)= ,,'+6F+- B$#JM%!&2.@% @>81K2'6O,36 + *ûB4/9'1IP=8I#6*6G#*G@&-1  8*3>1k  :>1 M81o>:=9 +5/89GDHUL0:%:.I7DL"%:DS-12øA<,L$+4F96).9<K)J:$!(#6;6 +QQ ,6....///000111222233,631(=8%/(.UX<+/111111111F1;-!:RE<2Q34 -2AYZK#6%(8;+=$gUA.;5,Z0:6?=þ(B;3J'%2+;#  *9M#2A)>:/,ûþB(<N$8@,>H9'p&;:)?-TKRZ+0J?K8323-*>Y8-!$%C+,?&4R^HU0DÿP<:.`G?.5÷AA*=2>$$ )8Mö D '<;D$I>3'.4!4=?*g6EC4(1B=>+</ 2Z!32:@:-$.-÷@$@D8(4"6#*ø0;Y<(UNU&bf-.A3:+&9,.ê6?3/)F!;;4J605d«‡%8e9$;)C7âCBD)B3*V(c@¬;%˜Š';D6?42;QQ <'703)C(/#%O+<&',:"F3"3G=JL  '0#-r9&J('E8-=682[3P097+#R-.%cV^uxQc9RT`/36-ù'(J.37G /B<a.9;0$õ-308#&>,%J<,,1&W :I<=-4$+C7:nkN9H956)GDe*7.0;8,*K/$V0>$@((.G&7M4H+B"KMK/CAX:@8("-'7)9/3? J)4EF8S>FZED?%,`F4 -M<9XT!JOKC[*##9.N27MF÷.+ +@D'8&532@#8Xg†L*3?>\+5@P82P=)[@DO6<'G#,%=&N'59&O #+24K#B7ù7</)MF,2;0M8">63322222155555544444®”K /$/,.O4/>/ýI<'';4[7\H;AE)Y6>+28)%52=+=:08=";$1+<  1=*=0&44=#94:PEQ9F)F%%*@%!&"J 3),-G)`÷C$"H0'A$$($G'#A-0Zæ4< A@E9, $5$!?J-3!9/.E: 4 +*+(C,< +O#*V'75 )06MV 0AC<%7J0+7B2-->B'10 7)37+7/E,?OH#L:*ü/A.2,?)4S2 A:7 )F*&@L<H7>> 3?&CC8-...///000011122233&M*''93 #,HX$6+,1)-111111111<%?÷%AA3+@óTNS1./!* -I1K7$(?AP1:G=*84I,:.MJ <./1)J1=B?.*:Y*#E6<C-B&'>90//&485$A:b2bA']OY7;ES''*C9B.]/\+!HG%^?;>\F ['&)>.U&[6 1K)DG!+  30K3#!5<O9)*;"G  07$(0 ,, .!6 ""--K:<.1?)*,<069C:UTL&6AP:;'-Y[BIQC&$F*=:002..N3$[(I.0J9>:ME8&-A]@.Q67IN(5$$-4@/HxŠü4ÉK,GC:B,J296 8(*B< MDd-28W#1%'HQK$/1%1Q ;AS),Q66J7-S?,3+4#@\/(:*S(AE.<=JT'SO,)A</> 8D5[<?E@>69J;*"CK <(%)4.+E2.-R &B<=:-=>Z\+Q47@MRø9)[C73)N7D/L#8.E"V$(II_&C:#C"&*3KNS5w8 FAU?!0<#2M\%;9B;>\c8 2+H8$@7C'D 4.XG5>6 1_</QMR\X?<E)0? +++X.BG+UU0)77 5<!QA.&,=6(44^ 3 8$7O-16c7$2;D #MýF1J&(E69.=ô@%E(X"C=E8)!2222215555555444444“^T21?*A7,T5/($HCM. =`)6 !\K $(>I4</&$7&(;@K(AH!831, +6B80-//SY9H4M) '88#42"B1#:.&2NI#,K;)O71*-C8 ! 8BM1>H%&/+6÷VA- +.@!7#!2%cDB*10M7O&8'e8E)1E8-HEX(E#QG=;A&9!G+5%A   =#%48:)OF+Sz22:,4+J*GA@(B)&-"'6K0'4F<A@28 D&7P&#:a;0!$=;E&173C);.G%-...////00011122233L3DM2E#,+#$#6O.4,82111111111F).W!&c7(>J\éI =$&6?3 :9?5O. H6X]"I=b*M;U <0F$:);CLQ@96#J2N#)Kõ7Q;! 6(' +-H4<V0?)2A)!BM&!3+6!+ˆ|yZ<2'%*B #7#/L('"@3c<?'!;2#+#%;H-!>J(7%GJ>;$*7UBK+2K6#IG#.:/&A0%+ 7$\DW5*O7"ú%D(%ÿ2?5<6F7831/C\#W!-N +7F5..6K9,+tGC,]:.L).í(=7$V=%?(5,:D*+?%0*1LF"U6.E65< ^)2`ZmlZ 6 +%6.E0@117B.? +C(E@*Y8.C='>DI1C &3X;û<Z1B#"@S D)86-?5-T4I]\.0-M)@?#KL&A;+F!<&VB-‰qIYÿ/6]#A4#K"?M(2$05Ef2)D.1[7: 6/3<P(R8=#K?(N$O)/3N>=2PE.!FH%>M)91/=E-HQr9QQB;:W‚c:+S49S>IJC22JO7F@77E-03OYdf.NbJ/+dE;e/4>1-+K<B:GLkAX*QB+5/A3/GFqA'A:.-Dt294P?3"H<<40T93'!`eB/CB3/'?@P6R;12 +,=Q:+%!:$CKJHò0-Z.-VWFALEH>P#A-A94?2#&2221115555555544444‘˜ ED +$:GB&:IY:Q&.6C0D*Q6";#3e--H,4%/+7I2.XT4@jD D;/4T5ó@<#&@/þ",A?H3@* *#5;1460&'3=G&@4(6O '10>8þ/%@!*'%1(BY<5=!I"88;-@N&#,8T6.,' JOQ5,;2$E+9%+FDE, (AB+&,6,*P:>>.0* '%);7 /S*?,,$*46D2T #O0%203D:#.)5A/88>)0 +828=(,?2%=6<:%%>97H)/W;">750--...///00011112223A/#N'a2+;ZBG-:]111111111N*(80C),?D6I3*?M6E#D>7"+25û 9ê>B9#/L6SI7AH" %Q >'A(U"O'1W>#;DD(,J:7g''?\(&@56,69/7K-3Yj`6Q’×–UDA#B;/,ù87+N3N,2207?7 )F.*+`V(D)53'H,%/44GA?9#&9"/X2+,9(68GS(1H7>;3EB2+"%I=0+.X;(1A7.#+8-2]H#?=-02D GP*HV,ûð1 +!5Q-!0R:1>,$ 4/19(G:%;!\*ï82K"+A319/DBI+N9&T [0,8$HH.IY)D7K7.=-FF$8T<(':3&,2 5%9V%BZ3 .NF -*)=/T?3=I0LY='30'C.GO)/5+0M&7{+cQI'5  `=M"(:'@F)MX/=V9g61F$!F?6JE:4W?$=>-,'59 04>/N2&Dg+l1>6K;8<'D<1,XVg)7/5/& 48/6E`%;?P<EQj':8IvL>R3H("Q\=Q448ISTH7J_W\B#6E #(M8'P7#3K!-'+33\R8Y'6;2N=<(EF-LIO\Q79JY49#G?+<F&GToB3Y)9b* +B.6@L-=V&/$U";M9B8:O&<>-![73)yL?;A56?(46)I0(# 72111115555555544444,:SL&?T3N&/(S+5#4=/Q0+.öO=:++5%CEJ&,LE@T4 ô,%353P(D:I> )3 #4D+.,'AÿG-5))='" E709>,$>;B&9A7.N  + W,B2(;-!*'C`B24(=9D5#=$'9. D5$3YK-.:G3$K7+#GN%!2 )7K9-$666CA:60ICI-9L9-I6:D?[cA7*-2!26PE1->8)-95+9ABK6:/*?$76S7=,62..*7(= I(?'5@-(5K8--...////0001112223C](4G986?3s#4..%P1111111118$%5WL"*?3=0R7F9-J>T)U,0U%#@5A!58'A37F7<#&CKB6A#6X'&*(&>>2#E<"-*M!+?:$:";./I0&erL/->02w¢ ås5i=K9& +*"<APLYN-&; E$.;: #,EEJ7;"8/O>/&B0((#0i0B@+K*A'8B/CB #M-2SW<#$9^ .( ?CV28©C35B#-2.'AZ3F\O-9 >C6=Y6$M>%$2E-b )&I3J@I?$$+5M&;I5AI, 03;- ?02*2-/*V*Z64$4P# 6$I8+&-" DAFDRE9!B;!7$ +=:9"7?,I'D(>&El)A%531/W-CI2 4" I 9;A;PE?"^L:2>F7Q)+/AR0S4hNE*=6A=CKe&<821`KüA!T>"*D! (5A;4#T$:,+\4a,8FIGNOW%.M B'2C` qC)B4R@1/-)H+^1Az= ,Tc0%2IU<`UD<ùTKx]M)F` b3+B@ *6870S4;8=E14$AE,(C+I;2U^$?9@*?@2@1L7N1d06D7f.F2! #[U;'CB63>GMJQ=7AO$#176QITH;L(17%00>(*11e"J M46A(I:5C7Y%)(F)2?A@.G8%#8A$266%.>1110655555555444444:I"=" aA/ 0+0J>/ >- +)+ñ.@4C4.D'008B%Gý=m+:%0/X=# 846(%")G7-7<,)6Q1($3<7ü44%0($!I409A;?*0û:?J1[ A $+J>%1FJ/Z2B-=*"J.0B7D:+ô=-%U-''HKC#,F'G?#E;)!?;Z4?0U8PE@?7(M¨4<`U0:7'-.@5& -?#)4#2%@"-V@@/LFFYL5 0@(I.,'C8+"FGN:0--....///0001111222)#,8&Q!2@N0ò)P1111111113%3R5+<O:Q7&26*J9(0 ,452A2<-K(00)& D9^GB( /+Ft#.HA;X?*5<'+.JJ$;C2$3+'L= @*>2#- Y12W8D>@\ntl7/O"%f7,S$5'1;! */'F".')(A4. IO<:D6)ý8'=-%#C<*"k,%.'#4.35M.gE GZ';$0978% A:+9- 7+2Z? 2_OH@>0#:06`BB=I4 +9D//.=,< W%AA-,!;%1@"R+ý.+'DU8Pû8."#3-J#TD:÷  S1(9$<MQ@*&;66$0E/+oV>!/GUM-OCA/T:[R4)5",<;S,D-;3)5+e,) DI+5T4Jû8,/2.1!G4[ 5&!18%O81K'L%Y3Yc;U"8$18%@9:ú;J<HþD^>@59 +?07F&Q1'*&F2%67.LFW6J4C'=(BþK+1û$E*A8?W%P&$-!2/;9W=bHH8Q*:5LI):%9`/E)K=,'0AD17JB:bjI[QT8,1>zH 2>E#R)7=8"%/<$<LFR95D94)&M&D3E7H7GF&_/N%Y&+HKI119E/,&F!@5/n=@(1>Z.!ë '8W_(B:-Q+37U0"0<4,22.@&:9EB"L.(!&XA)&pj3#K#=OGi./- ;^O55000655555555444444*%09)&ë+!#B,,04‚D4I("FM0ö -35)$'(958@!3--=C03J)Z/W$#$5)&: +((":)'JJX.)#$"D# @L!+&+ ^);%KFM49 >"L4ó($.>:1 M*E.  +2AE1++@3-1'þ=E*D>$F6)&5!E=7/"l)J87A#þ7H69%F4.8E+sIgI'*>;!9*ú83:2N,J4'3 -!F():F F$1<P%%C"87"(L8EZ&Z402*Gh----...///0000111222#RA)'0>-"/$ %8$(@ArC1111111115<B;6S;1/,=<-+3%/ OBE &T $2_)97X1?=î_ ;0,590$+42DBANSP=G9@ MC1=,M,% 62. @@.ñ8O5B&8EDCeM=B=C8323;"EP3$1HV#*EY='&!# :$5, ;Q8L' ..*+F!<,M5I2iNA+-(+4LI B#8!,:=C65(#S1+:$D=S:<35#&A"(=</N-6+@#8K$'4ÿ1?54+*)9O!*6è0A<2%.,$6%)>3+=34_QM><E#p*WR.($0B<;c7%%3L/+**)(9<3M1F0#%S3\:SX%:C3M8167B76%>[$04+0LE: G5U308.4!C6=6=CS_5O7U7;`? >+-6HHCE??,>)3<Q%4&/G H-K%PE%%9 .9M:+0($O$"0H/@;*)G?-2)'&O>2D<.@!=J)D<&COUa3.I.aN(2HM*cTR,:<6P+OE;,$'I> :&5m;I0,M2)6+M;*/Y26KP'1:G(F$,N4->J9PAL)M"2C6NIC>AS;0(08DE3.:5=;C,6>5"r=75:35?I6F'Y".=9@C4*G2!D6446&(RAZJJ)u:)Yi)Q0(1/C' D=5"/!B000665555555444444h=3)8FBSJ2J 41403KC/@5H)+0-8OóC)+$@9[A&!R9 .þ#S" !0*C/2ñ,Z@,N$7,B."(&01%'1';M&4#7*@.5E5!MCH<$:O+>D8;55*/3;<9d*%DJA6%6Cû3?b,!; +,.?0&]=6,4#<2MYL6B/79K(h*"ù+#, ?-)-")O6o$3`4>;J  ?51,$; a=2B4F;9#!*( 90#F%& V3ù??,D);#.('TA&/ <=C/2A7> ,:%4_M---....///00011122295) -"E5'+üN.+/8=#111111111F$A<I06P8^:9I;GHMF$<E9":Q*(2 )+(A<($@//706;#)7'@N+=-O/VWdqCT<\,728MSM"K$4'-IB8ú&B2J1)-F/@.6C@O*-F;N$K0'.2:-S  #-++](j09 +!51Q&L##"F6;-6D/A$"+1>,X2QF!9*9=2C(L!3A*=@!1>EE -91K.#4Q@="NP&F*I#!< ëe3 8B5"=a24C!6K-:F* &:>U"K&3F+0>9&s_F+I!:(J&F83Y+9A#Z"!?<EB3Q$'**Kd&)(.8>-<O1129=G]2. !Y0 a,686õC@9,' +*.K3>$'"DôH'c*259.*J+1A$R.B "p9F&?")!(9;,>9F4=D?5B="!%F107':G-,*9J#1B-J)A31C4õ-2`S5#?&þS,=c40K"F7"FA5+[R* +@%C+C *D>f/5SIQARA0FOGA@OIEK* %GA*a"2B@3E@HO:@P@)28QME2"a"=Q=4EZN-+-O2"<3PA_:E+M)C;F4?Y1K?WX_A;;.?3)5L3)6Bm$87,H @" :D1/W*S#a*A;:7<]dQQhOJ7!=H1D @6EE%48@3:N9I2066655555554444444þM*";0, '11U!J>H(' :( 'RC$7+ )+'6./6G. !<6A<2/%A;-!&:! -B*Z!; JE*>L(._** <3(%.?/=5@8OP,V0I1@!60>ø6,.=E[ <KI<5(&)Q6B3,-!(T7'#K1E$66((d7 F'F;+"N%L9P) +- +%% ;V;&T0/H,;$@FD=L%?1(NG2?.1J/7 CLþ'FT5)4""2;50I$"+8) +0/ ?"89.*07BB--F+ GT L B,---...///000011122>6ACE(!0.+*L6_U`D%e111111111J*Sÿ5"CQ6E9%*?7D.534AN-8AN9:<.-4A9O82<<8<BHA#1N3O½™DJ$ñ<.'=DD;R/*:;)2,(S@DA,b6Xû6I6!-B23;ó"RXJ3"8?H%:E ,. +2$<16*70,C'BþCAe-9>*eH=(c#>CjE[W-I6>A2/D'5;P #42=2H*1 ]29)1%+7;ì$:E1(E535C6:A6 .4FC%>7A;-@0==87$'3(1M-#.*/M2#)=SOP;#C+-I3B/86F16I3("8;N6=K%#4R!D#6I3@?.4/)=">5DV&;%;GI&4%?;2H"a701&>0D1+E@ A,62#9$&) 5B74' + EE>M*&03 ?L7N S6)@(/F* ,H)7"5*'H0(,=(G=A0IG2_>/@X!7:5OK"* .W?+;4)4D%9$:CV$ù0$))H1_gYEE@NKERK=9D+E)/;".-V+2-DUg.7?3+? J=Yÿ_LN3KI14D!I4BYCa1DKQ65%G?9EeTMJ:7<72-V0O2,T22C#= 72#E)4,3.TPc< 6/G?+0þKK)P"D,'ON/C-1(c3¢ç­pK59@-*D>R-=,061#,H" 6"gH>a66655555554444444I1K' *,646;E"='/ (+@!;*.?M'0 1N79%C(eJ.%P ?' /;Dþ 7B(CO!!Z09484IZ,&$ >P(?2.):D1@]:<?270##/:+U0,4D0I >Y-0B2[/+, 764IF$H6E=RB)&,-,&>-5D(0:<-8:&C$þ6*. +;4*T43$?)@J*,<?4M/M.'5F-X(=@C&'zKFN2043 F2A(!KD.K''0P:3=-3)7.$%=7ë5=8+?'A "<9"ADX2%9O5@:,---...////000111224S*<.7#599S*:M>A7;% U111111111D; +>#6#E:WJ)1=3!?0$D98+'A$')5,>+H$28A:0U +5>(+$.+A3%PEY:Sb@ +;TT8>\7/#)/)LP-8'?/+4/B;>R9P?4Q./@(5#9H=UEA:K!4+6N4(A3#V30L E+a<IO-=B2/J2(?T PBƒS,4.DK?#;>U+3B@e<,8P,K2L0XC>!T34E0>J5=Q2ZA/Cg1#9*6"I'E3<W$2=úE#'=,ME\4A4<. 'BBM-PJ!!706]5/8@69()))2O@.û <-TAF*+CL4!S >/"!(/*QC9#L,;@&Q+G'>=85/ %/9FX94+!!!U'=L# M;\;'CFK&61)GRE= 3.4"5.@+0O;8F +Y$/;6I 5FFF:S)+F:S/)%QO!!a>4<+5?g+" @[9M0$<W:"48,+H0L +49VO/2;>GNHR,>;RtAPGLOTC0eUS:j=92cEE9/V[=3Eu)L8=;@B=MD0>g88>!2A+<3/U6IL6)Eq;M13?S=~;o-8yHJN9#J6E)8$#K% ? +<8>K",'^&@-C300+$4522$2N.2<1589 +B8c.”<'¯<yÇ`-]2Gb&P7!IS,)7?1-'<Zx566655555555444444P/3(!*)F+ [D< 5 +7**,91-*1**+('&+1c"2#1KS17I87;18.-û6#O1)!):-3/249,(*1 +/9DI0.)$F>H+1*C0,=4(^IH(V65*[)! 3/0'B$8$<<<5H08C33C/FA)./ )BDA#=&CQ3B:=%>_P&)V+?2bö)#097"0,<2C-2j3$4F<'B9:;)%-*C4 A,S(J*G,D$< +64A+1i3)L!#''C +G(F!$DFIO +@û.2$,----...///000111120M*3 )=3:'<$B>÷3I 0 *-1111111111L+B*& +)/-1*.'W/AsSAe*N!0:2öL!81P?O(%;)%74@H+JKM8EC#D[&$,4,uGNW?66FJ3#*)E/$ý&_@Y,<#6%J:F.8%U=GF@';/!.5&54;"C<BH3+@?B14()6UI=PL YDH"^1?7')0YA-:*, .7:C&17 <*0@@'11<C/L09*I.A<^( .P&524m#/ü WD.%7Fù19;!C9  #A,5FD)W 2-/&72\#B;<(þ.5G\3(#=õH$=12NYKD,2;H5M0:@>!W&'<=1L'/:1);<E7RX@Z8H+ ?A8@2+%>)1%-!9C@H< <73.#0I+[*FE&$LC( *81050."P*0#Gÿ&:S&4<1+&I.3M4P.7UO^K\,.H/,;'ÿ!H*6)0?()1B<(1:1?/(61DJD)E 20\]R+[55/035G8hO- +7.I?Y;?+53 WG~>:R–f]ŽƒlPiGn&;<>))_43?Rk)G4J7$2X D0+(5EZ5*_D]49'-&UD"W5Y3]??S#S$"2JEHm ‚ÜûÝ ‹</">6-B4L>(+D=D.* <J&:-F)/J)2@. !;2A3EYP1"K3VGJD@>DXQka !ÎÎX§@e>!?67*( Y>L8,=7H## 66655555555444444$.4O36S4F"9/)!9$4@+:D%5.B)96C#5)< E48%!+?6ES[->+%">7#,3C=TD2/#?MP.)2 (S)1$%9$ /IXN;,W)$%*,>)*=N 7D8.=$'457.3>I5L(-;=,)Xpû*6)!A<(86B<@)EDL %1B4,4/$6& ;-ù*F8$)$:-92.%H;3:+8-+Z#$^'BHY_ý4FT+J4%)#!PDBP2+&<*5)62@:5&& +GLH^L2,,---...////0001112U#<F-1/0?K8'D(eYN:"1111111114;I8 \'><P> *F!1FWB<79$GA*='/*6þ<(Y($7#F4*CE<!EB'97A.<E#E<!;BPT<:-79,/Q --*FN<% -A?0!LG<4@SAH7"CI4:14.'5$6TK2S='DF,4D723=%=+%54#%1X5#,2N9.;/D 5-91;:ú +)29C$32f)W d-/02/J;Ag.$:1=/23-/03 +@2,+C3*C,39f=The2-(830<.#L!?$ù;P'+@8*;A415[:E6EB/g,&WD:D07N8.*+ TGþ+ F9>i/B8A R"NKU-#=8&5$3C"6V;JGI?O1J?F*D9A7>#B%0(,J@[+QL/)9)AC<91cD?%2'"1ÿ5;Q++I,":(Q&F9:>%>7R7154*=>-#=,W-TK1<I@þ*1#K@D65+'S9DB)=D7EM"LA<OL#?6?@a@XB.*;%2#AE9cL033VyŸŒ‰—bf^9gS6Z7O@0:1g5L P65]@S*@-5@=;Z+eDO'.%",8;.5SR>>36F8\5U "7úE3nÚ&:KÊkNKRFB5-UL-&J<TBV4‚ACG29D*L#+14AN.0KU1A0&<;= $K(L(&=\b;¢xëØîgµ¹_>.*G:(&C />/+,7C U2/C+666555555554444446%N%2%ü8,C9  /õB<,9(<F!7%KC4).</,518 D5-!*T=+47"9N )'5/"F@*/P<G;^376)135(+ï!";N?!+,;.6=).>E-N)C$: ,*AJ5)>6m:OA$(DI"E%)RIh%S+@6%+%?eA d<8JM'j.0->" !GM;þ"Y6`EB1B+3IK2%#ML"%%-ML#RG'B),:8ÿ$-8>78'/>; <)2C%@L59/o&'][ /2K:&HH99-S$5@&6<(,,----...///0001111N7"8=H.+:::,9111111111G0G0DNW-7RGf6&/0$(F7U;H5>WD#('/LJVUJ!@@74<!(L& <V!C8R7Pò%(;D&$(4?\@bP63BJ>#$+)V61/28:/I%5V/53#)1;E9R.W@A:CB&Q]<"*D% Q&;+MMK>I% ?N,\))7 D 4(*)!;2I VH74-'ZF$-5!?)4/80AI( !QaS>  ,2SB:6 "#( (#J*#!A0'#\6<;16#M9:8,3I,70d5&//C;L3G3/:2J8E4'/ 5UJ>M<(!C+C0b0?]H+&(!HaG G( )D"+VK#%.7<%GY*>M/:J*:H=, ?K,5>2:DG)$#'*4 Kb((7!4+:G'  >K7&,<#11K(RD0F 5G#!<G(b;,Z)47YX+K>:OQ?Y2R, 0-(-X3a59%>-[S:1ûW0]Q=(V= 44B;KBJZi^W’À紦ؖP;JFZcZYN3J0,>M7&36+-:>,Ja8.0R(&7E$>9;T-e#<7-%]CCi8CN#Id§Á ¾ ¶ +HjËS9UN(?FP/1E:H$I):WW<&&9Y?)"G_-@<76C' 6&"D(C54*>4.6db¶Ÿ}.\V¹7OGFB/4 #B (,5ú/IP9!=T6666555555554444444' )+3";*W!" 21 5&9A80)+AXL.% 9:! ,5L4-H' +$7@!-N%O1$;6C;3G8.: G'#!10$I5>)+#J2+ @FÖ("1$8B3'4-4;/ +f):12"/0]\/JP/EKC'  61QK3 9"GcE.)1/7?2-9S?R2%ñ'.9B@]57`>&*86d)J!>JA"90+C*085;@SN1&ý +.<"3>"$<N45 A<)Jat-C 0:6I14%HA$+E RJ.F-7MQ'%/?I9?+.>|%ND,,,---...///0000111N>))"8Gô*I)<C%[3)I111111111F\BK*$bO3L$%6M=&/K9P52Q/Gae#,8-3*@„lb8@B0:. +CJ3LK-H,+84&<:H562'0<@ +5I;/E8$8@I)R7N?T58!4 1"o,)B^0*A%(B8#&5H!T0$V("'44F>:F2H17#76ù3,!H1  E83I8DK?"&,08/+J'4.>:LQ5(7 K1+$L/72ÿH$3J$:18/.)&0%$E3%3*6(ÿ,2:1,*.S$C"=+$8 '@%#õ"&6?9$0 7C)SMga7PGD*)=#D/?'L.P.8SG!3=I `n,!IB7H<2'0J#EB43&1*(K"7D64? +$0Mü*:):989@20, #5G89E2=!@YZ+!$J;)N48  )I%W*þ <@DD>LRIa<!,%A2&),<+%H246T:1=>)"8V'>3FYO;;)YL0('1*3K'(]'3'"LI;#DXD+-8)BAYFCRPP˜ÜìI"á¦yQc`GNQ!7-A=F@!,QA0;W#.Z(@,>H6:G37_9v--0=?L1NJUNxQ%@KD;D*(&4K— u L iöØXJtR,<#03/#&B+- ?AN(2P8J0&BCD'4Q?Y-165:1GIG[ 7`* ],>l˜·(CÙW;UME<X>*??MFE*2?5@,=*[$.6666655555554444444>+& \8ñ;%PL @'Y+.9H 4H6926>&64. * ý?H#*6/57E/<>+-'&86;H+E.D/[ -8Q;>IBT05;"!6=$N4@*-8 +>TEQ!E)Q0?!JBFE*5)KF2%:->+1\0&"<?IP4 Z::9EFD1F%4DN&-F+a':;LNBG,ü$+R7"O$"M? /AK6r1M' +6#1<[(iGF'6)()@ + )>$5Y-TW<-+''AV+4V9A&40FB0+B#'0(36V;785/63;MG=5,,,---....///000111M&\@9$#81/.'ý",111111111ÿ.EFVRA!^271&56.%F C!,$SB4=<6=O'E'98}[C583@#&'".;#>3DA1I*aù/E/;2b3IO8b?f<-!!2 3?%@>/#3H4L53;:7[1+)FB&8J(*HK!:X3!HC>A<,#?M2:!5F2%F'g&/9:9EA6T46V0?D<;9`G/0"IT&O/"- +/*97/L6A17;S.2R!D9O76 7GE!8.72E%3',58W!?56![/02J. -9,F&.T>5,Nú7X=A@4B7Y <F0*34&*912!<)" -E0"IQ%>G8/%;fo&(@G +X-:j46!$51477:/*98[UH#14"/S3H.SH 6)#?6I50&ÿX4)d(X6+l-I[<K59>.5t *0%%(-)#7>58'%'3(!BIIX+B;[&;KDV84K6%WT>C1(@,m! *)TM/5!01.ð%I-.+>8@Nsfs‘ß{Ò•‘ÃAõ¬flR_:$=;"J6  +CIIEOZ7"I/6;9*<=&%8F=+?2:ALV/6R6I8=G:H.2DDY[~·á(ëŒG7E3AY6/04IC:T!*G+&<G7< &)*,C8,PkxKG5Y+.48B7U*+#.+G4$2/0kVZi›™r]Y;0EL3$6J.&6G9.!\A4(Fÿ6666655555554444444 %IPO31:"%Bj B5R+HA[08KFJ$?=6;G.7R&8;$ Z&D/'@%F-IL8.?U&E2%ÿ< 46_5)Bþ/U80G!IV5#P1);J9LL 8" !</2ME(5û3),2$FV";iN61>22(-(.9430)%<>%PR66þH?3á:"O%0N +2.M7##=4B7+:[E63)18=96-5?&7R4J&=.2041+BIG`Ic83,(91.?G6RF.2`IS$.433=IA89T066@/';4,,,,---...///000011B&'!ý&1[R!cL.15=-AB41111111111:+&#PTC?>KM"\I<?;//5=/4M@&CX*1J=-*14*@=,K56+ 1!2">)EXGIS`$SP4I)-Y-^M=HB;'D3%H%7$!324?H#/+.= 7R<%AN,!AC);71';E6$ +(81òFJ=I/)<A5;=1CJjN$F2, $002E+8Q+=S5$6#4ODFX8#%]'-*-N'$C 6&5+@+<(V@+2N$>(3.3FS=9(0$!/14;Gû42 /(@B%5 1;"=>@38.IV?/ ?7,PM".9E:#]J47/64.',/"GO&'S>I!O1!*: (/*1UFLX1/ 5Q@;00(B,.P&FZPA"  +%9>=(C'=HF*'"@ù!0;H%F24AD=0N?Q66LZ::6-CH,0(!7=2/:U!TP?,8)."$3..>F/7B+)22*8*I(7>!=F- E]*R.79-UIFCE?0b>9pkG<su—¹9ùñ +) +ŽÆ1°`^“F?B/8_3;K>>79BH:TA89$IFJ +DI>OMB6@=]1F?6AMAg:J:9+1@hƒ„½ÈTPWk"kE33&=1>iO,.U$T;"4, :2KIY'XA{ƒJE5) 5'D.QB)M =)H@6WJ<<\<&.8/=6/O2,R+4RE^=:#:&A6666655555554444444I)-I[C?*-.5/:(KL;W +39>!c,"!71 ;$.RF.I5C1<>1.:$) 41f=8)$E?*þ(N:-G)+ ?78+B'97B6F!/LG&2/F ET<>U1U67:"<456kA&P2/8>& C(6%3*b90)&f.W'G5.î%%%#BI5'<(+;E=?7'.C4 5B7:'<:JNLB).L*<-5);G,G+$>:>4,m25!P7#J)95H!+G#16<2 $:4+%438'?8\38yJ6=+,,,---....///00011G/ C@*0J3+&3>F?7D111111111?,K*Jô@<$;99M$&64 <,.-(M3HN1(V1DAM+(4D%$3S((+1%B>6.6@65E3#óI(B4hMP¼Ík9'()OA;FU& :%@@Sü)/;A14F4/D&DU-11&F59  +'÷c-21+I<&"6",>N6-"T;+F- ,D6';,Fg£9D#18T5|›-IGFE(!% 15)#541K70=Y.)F2.4:E2+(I (.R, + *<N2#3@,!"% 909! !J3'3J( SR+, 7!7C+.?, B 1.&,B9UHL%&5A2A1'Gg,A<A40JHVCN-9-#."'W?(3#"$Z5<?+ <5:þT4þõ&?7PXH+@Je;+T9#!õ#=a)66Q>0,/4A8-7/c/$#2B, #&Cc--062:+(3.&2>ü#D6D&Nû0@6<0!J2*R$ >//ND4+$@C<$7S%R1H$O.44B33D;.92\4<9&IGUO:KeN£ô[Ý +ä<Ä +&x!¨ži)>=FE: .H'9*/>9/?.3(87YC4'B<V%558[ENc80LU4B@Al<H*YKU =*=;Gii\TMKAD2@# +6S036!<O- <:Y.4@4).&934Azœy’;E`+Kk&S,*!,B6OYk )%^<G1S1i4*X_5?8(B08 X@86666655555555444444"ù. C/>,=1;7@,7#!-= +K0=,8)-8)=-7;"-K2 + V,8)M641@ a18ÿ2 <58/-0,@N"(<+%m'J1T$+.=@@-28L*.#;.&B#-8(?7+=(.Dò862 "0 A=+*"0=)8A;:õ5)9=5<$R4J=-J E(9)?W"<057X-&/-&C# \40H#/&03=',N2OF,-CD5NK 63"ZúJ+:ø3(B,>*A %-,!5.@=+@H>4D4&=42,,,----...///00011.:<FEdõP&E:/+< OD&1111111111=S 7@2,\44&*-iS"%C)1OBF\ Q9'$IHQX3J&2<"\?8I[6-3.Z];+Tö<,#*240 4 ZWS2ÇhV&4>N3) "9K)32?.2<:/J,I3DZZ==H3'4:%/"M$MFA O44K( %1.L'J:7AH1U.=<63$;Ov +í Z:8#*w[JGO%+V>'?0$830()/(2*'G1-626ÿ1"V*.%(; )  [j4Jx<#0CE 1E-) 9).0!"22H8)9%/#?+&!A56:12+@.9, :1K2B"(bFH'J =!V SD-4-20M4 R,-I86@1c FL "56>#M?F>9;QQ'B)(7!/"<#[1=;<T*=/$0L<RH)R"(%W!,8 Q0W=S6$KU< 89CRD@.V8? $H'?95ü"!#I.,<#E0RG1//6R3/a5!KR3 +UCR^A8$*8?)B$L>I!D>#HDUQ”¦ÑMÚ <Ö ìNCÊ~QRT0x05CI9@N7 \CQ;/`6<??E?5Q:6:<A@BY3.RN.-"4KL.Xl)ü7P`A5SU=%CC*':1"D&;E8BC66&WS +8&&;k1#.4-P/;YJf˜•rE$()E8.IE%,$%P-J8R4DIî= I9$îM%1<H12=(-(+PcLI6666655555555444444/@23÷H27#@_ 7P*"3.52< *"DD$G6T( )3"9V"[@$ê(($=*3-V.($%*@(.$!D"81j1>C+@ 11-7CB0AD:\H.8, #5?/94@-8,#õ,E7#:9<õV.ÿ0;,Q]P@F:=!?FJ/5N3F#1,Q<F[O+EE9EW<B:7>D#î M=mG 0?M>;<7c&úPK2%<.68h=3>T9.1!,)-IS<, @!%%4-?(*H42;A=&#$þP;Z@BTnDFFýK>Y8+,,,---...////000T!/A23CJ-5215!EB*7111111111BFA5;.4YE""K'?|0NX-;22&; +=-,*703RHt,!'*/P"O =B:CE/(J/095$*9D"+K B"*K8'j¥ÃY:13I;;$4)&B5)9(.0C6FX2&,RE$@1-2Q )<KI&/L KWKX0T< 6(D /=þ]$S<):OSHAC¤Ú?UR5L;=SG1Y)>"A"WD-7^1C9EI98K)57$0D3;-, $=AZ(  C?<&R8!9$!+3X:56"<AO5=H='*F.<,@4.F%3N"#5S5CK)BN*H8=4%#E.1F38;G%VL1O3&E,B +J!$:= AG9/&/+C=1.I*G+(,*NC:'!,9%&']rL.F>GZ; +,"@+>:ý&C/A&X1/T1)<8%4*88>1 +4**0:æ@?/OT:<D"GE2)'E"<,+"cDB55+*)FBC=T5)()#:>F0F9>DW:C_<L6o?hF_†­à1%. + dV Q[!<d4IY21@D0ZSRBBV387O40OT/53'IT97=/QHQ@=PY8\=?I92$>HB+0%22Q.aTRPeX5@:YGD$(k/0H'4@#)E,Y07\D\-sAQ#-_Y, E H)M6&<X $ 0"FI)0? 0AS;,$T. +=.8*V?;_f^I66666555555554444449Y$8 R<I<E8Y'M35-79)V-(U18C#IJ .G7-/653"[E3]-5BM!;"+?K+ø2 +;:;û!+1-:7]iC40 C':5=-1"<4<Z)4$% 7-AD0VG"E3#&vGK)&:()<7 3_@ ;+;1'!"OH%?3(;J!695R34d27692F12?)56?#:G8!056HM=iL6J)38QA*>0?I8=LL3=0:%=570 2B4) e9>/6@ +'/?I' ++$='/#7:+,,,----...///000 "M"@;@,!K C$;99Q=111111111<þJI#><:TJ+06599B@GM3úB82:"Q:^<HK^0179)ð!g"",,K$@QUT?80+0@=%E'?@N]N@-7N K.HL8#+7%sK ;>2C>"=D*F8f(F@94.3J2?"#21D>4M>>%6R(>  %@.1@C$''M 0()(&@&I&K09aD#AI/$217.!D)4.$C8';.L'(C6(!*5,)=L-J<:>>#;T!;à75#+18E)*1M57Cæ.O;T+ '>28>$1%;h[#?C-;25(D44)4B'8/$;3-(5K0,# :37$ +Jp(&6A)-( ;0>)/%'I8þ$,ÿV=A+7I-O48/`JI5( ,>K"RJ6 8$bDQ4<%IB>K2&#8(->90>?66H4F<*J%!I1R8 .#;pPCðOD0*<ûS B&L=*;%$ .(!H<4 1>CPGG E.D2 F P]9,N$WT)>$\4T*=:u1W?YXD:[ih ÷÷Y!{aÌWÝzjp1S K@&5FJ>"(*=@D+2XI6 +[0%#+F*94`bd/:;?,4<,CalqS*Uh<S9F+^>H:71=@>d)4ŽG1N%1M$(OIRK9ƒ7'9E$/'<b.5"GS=C;L:PPGU@>,7F)D:3>(6,+=+.124'=.QD'>_LkJ-L.* >]V=6666665555555444444)8.C7E5I"5/3<+7+$+=91 (O g:/G<D(62K,7>+;-,O5BM!3YÿCC=.7Q)45'5*/+33F(-:CiU 7"! 12$:3'3P#=/4 Q,'?;1?C0,c0+< BKD0Ja-%/G6- ,<9<';/,#*,;"#8c&_"4,+D"k22Q&;N#60]B@=31@)*WyXdC)7ý9(07:7EK#UGa.6>#*NKE.M*09,5$+@R.-#?,.,TLD81%)ú> .+,,,,---...////0008:68INE[ @3<T0: %()51111111112B%,/Sb>68E*6M"QD6< + )$1'ü@2XG&3L#A7@0)6<M=MIJG&#:H34N1</> 8$);N +$$6&=#:>>5++De.)B4"9@ +";8"V#0P  N6o<$9:A,G2"4ð:I.]H@(26/F)Kf/;A+34@ +>YQ3E*$^FI Y0'' "ò7=,((0öþ{D$LYU0@R"ð8 =0e9>.0GEJ">8/*A09I+.R:I/*>S&,8K=T(5Fù4$DW'>11$31?-6W1,_ø E;$1@8&@ D%$"GE'C@?.$2û=B?A#,,=<G>=(*;õö5/Q"6+'^<K +F6Q +%-5:A3B$9:/PG:<]>ê:1 '5/-<5è 7<V7\SS/J5/36C/<#c;?+57!XB8Q38.BMT1DC5& GT35n/;26&/ü6>(+;%$OG4OW<:9-W@48VC8H0(J?702?U4#,9MFA”‰Š¯ì8V9ðÇ¢pŒQD66Q?C%;`#@HD k(ODEF3'$.ñ#MP3S??E'4I2K;)E:Xe<=P'(%*+%"<=*0*1;#P-0R2'!&"G&gE[=EPC"!88+E)89=Q?O0H#UE6X&WTûT);5BK/ûI-A,&L69  ;4Z"RAG/kÉd7þBR 1CPM6666665555555444444;$'8-qjXX!!-B +=+,'W32 9&#"2(-S80@<+BDC5N#\#8G--ù'8B>/.20#G!=[÷"%#1;6@)I++" 1350I:>S`32A 4676:F-:$A'L4(%X*%;@()#P\KK9-5Es(6;R1/+65G<3n,4$-.1,29aNø1>3A-=#73\+;J$H<+,.EYib?)#%D1J^,(D,A( 746dF%6?,NC.49I'O/ 5l2,+Jj<=@]'ýIG+"æ"9<#F7DBB"++,,,---....///00WCRH3('V2%!F7ú832//'111111111=99- 072ý!B%?286&IO!$EB7$24$#4,?-625</MLLN–¾3BV[K49KK(:'5'4ÿ3FK%=2$8@:Sg::*/*&B3I,'=1 47S{UG 0+6€.I)CZ82&(6T1<:0I=B01A77V<L6Cúÿ4(  V/H4<R/1G;4-8<$(,E@PB L.Q9':23:,;*B 6(=.A'""2@?hM?& E(>A"+b*$!PDD+gMM%:$?09&+E&%*%X/ )42I#/3/*K&2F@M#4.P&HBA1+F9#'øI:.1+!GI,+QB3)+3&$)>@$N-!/B&`9F>J&M//()>%")D0@+;$NB0K;DJPI#);W/:.4B +E 4X/VTA&70->$8#!5K:R?[/!*')é(QYD](0?(TT@3,6"17&.F)1  +D. [B8 E5'M-/3U,C711D4Rö2!+#'- 0_<J,.S4r‰‹ªÚÓ¶¼¶©ƒEt-KW\C'7FUL*=>/Ie1'%e0P b#9;I ?_4*8*@C9D[>X:2WAQ!En?U=2B5,A,F3+>*E5=A`S'87GC&+DU3@5%!( ,&='!R=A<2#V3I?T*dK+21C+J-&!L,-#/#6,7C '0KJÒR?!.(@ O;RCR6666665555555444444J;(.%BQB@!LUG=#E<#LH;<LI-<5%35!I,C 6& *& (<$=#@L78WA16-BN9þ&DV*C7P+)03;_ &&$F2-96.:7c<<=3B3 <: 'D;"+J@2@A3D/0,0*\4 \M% + %27:U/++8;EC./VA.%[N'D%44;ý/:I-;44&Dd.GC,9|HHI 0/*F:#0]+1:;P,0CWUuN#.þ'2F+AVOUV.(-9?þ.F9'M(LD*"<+*?;":@G++,,,,---...///00&C3N173QN;.:0B:H* 111111111"5AL?+(QR4,/.C/=1#5#";.8*GAM?/-'&;HðU%lj ®nJ+HCN$+B:.'G/+C P1OP.("H>0B.91úA*5,(54 B],Pž|._D-1/(/G%A-EBþ!71(!F.NOPO7:&*:<$0)$+*@2 AKP)/-!E>-E+0"V0%ú. 4?254,4++0:CF>^ +>5+B0F6 -K.0K+LH+‡!<F@0+&*?%VS6+#*48`'D,<'98?D/=43+7??6ZJNKM-"*1#8+\[C?,2<!8&)Q9(#RE':-Q1T.>;6 "F2@2]F@3L7**3=-+:@.G&'2=$SD/8 Y&&9.%dR!.G< (!3:h,2CTR<T=DC;;#50-2ú7 FA(6$4%:;Q8EEPLT50E?#9A*78,<-;&G[A]‡hzL [$ 6)%>-8?(+A2L\7&G:6O-H^14DB>€N·´¥~u€A[?` +A:<-b;,:0~-Q)Z*F:?&+1*Y7O:XLD-1Ny'%I3T'I,/-$YEU'H2583)-A&1.6XL4:0.2"32;6Je!13R22-36p5;(+'L;#DB;?X"K9.H&/%'5;B?<  ;í2-K9F`#&)M- +)G5 Q$Pa04(#õADR1K-b66666655555554444440@_%?.'-V @%5K?#45G(7+LP1?(*64  ,9H "2/2EPU4[/G;806G;(0AM!';<&  +$&<6!)D.(5/5GE$,;,/2@ABK7FF4 ÿ1=I+U/D-@riC2AJ@EJ5PG2227%=1-R3JC97*17GJE5/ (?:MW70ï?%Uý+8;;7!(*F/01122F?E?m1%)53=")P<3@R.<'>1#1>:&8F*;.43<4H?:";6' +++,,,---....///0EDX8Z4:0XA=&=!$þNN)Q<B(>111111111<I(0M$%58*'<úP5 8AMW</4TF<'.:CDQET4,q_P¤ƒZV6<=7;59/K23?%JF?+B6$:4$#5,'.58,>TB32 $&=?%$!E)\‹nK+ 2J ÿ 'úD229C#/2(5=K8ZXA'=;5.L8é  M%`-(J#<1D/,8AJ#43  9(46'EQ'7@"^  6+,b7)C9'I-Q!6X9'49'=973M;9;,/4),-0*W#F;.6 (7(',;&6E;%$@6 078VH,6F)"D*18bXA7($  /$ýV%'m7.F-(9+"ÿEZ2'<>32)60>;<P5G.ô4-CGüJ*-R6-ûJ6?6#>)39V<P!7+]MC!P+,$m&qg9NI^%D^5@(6+2 (;$32<57í4-10:EI<\Q4P> 4!TK6ïM:\F"i,<H!^@&)B¢°˜SO4Q1P._0.b425 7&&4)9;Ar4L3>STA(<KsQmDqd@JaI-D^O#A1E"(>;/2BV9"@067+SHV;2JEW(;;#I2Bg^MF,9@=€<"D5J]DI"9H<, NHV:F3U"9Q 8FXL-@6#!"'5ÿ( N/ U#B$3HD6#2?@"9717)H5W1#;:3IQ>1.U,0A;>O=A:Y9d3642BL[DYNH6666665555555544444=2476)(7// $*C&8 8+ )+9,#37H&+/#227ýUB4)-<;8U'DC B+O<S/"*.1*.,$6ò/A 6>8.OPAH 8C+%-÷#54 +$6L&$!B0S7A>>)4ú&"!-2H79Js4$P" ,$188?*. ;JJYü'82ûA>X996N[<%/42^ER+ ,,MD=\3"0/-.3(!4-3'C!%$M Q&I0F7/*7$4?>DM6+'8&"4-%<+ ]JC9  19 D5E!JD4+++,,,----...///0K/lA#)0NNA13 9?C( N,3911111111@4Q>0>5E" <I/:1 )M0>X8.>>59TDD,JF™[’W§„H.;-@4%!N;;SK& GK3E;A=.L$+G7+1-5.D0&:!?J[>JS043/O;@"4&+" OS,N43 +A#28@/5"!G'%7G.6=ú%5K9$%5.!8!;;??!L*?'4 U%.(*/2,P$Q <1!9+B;*)$IMC*B80? A"%S#/ =$R")NS?>?3+#4W''e4)8)T+`*/@J"2VE5) (&"8$0)?P:3B +@ ?e4D6*(G<ML!$1=D><3V}f_<#9[0E3;G@D(P2^@!/$63þ÷>øD( #8$78,2@C!U5!+=1B:4I; H*'1E1P70.E+(*;%7)??K&.I SF"J$9BCF#7;Jb1M<?/S-=&OB!>ECý%^mK_CU7e>?6B1.YL77I4=ö$!(6$0\/0*?Q8f{?LV[XC&WovPG.R15xE,(8!,3<S%=EV['R<=P:f!D4VR(N>9[YM.[=<SJ19%mM1NQ:-(.4C:1VB2&='>9:?<27<0+,&BE-E'L$7.&F*=<Y+'EOO+b;U*:A04<B,RV3I,5*$3@>:,B*(d0NKB'=TS<8&.FO 6666665555555544444UCMOK&K(‡HKJK**$0?>%54E.+1S+:5+U#..!9F0F7 ;?$2(1#$",+4" 2%O6@!)+389*;5 ä% /M6@8: "'+ "72 +6h../'0V/8#F .9m6):"F/<18<!0E73-.-:3Q,)1l$/7ý,G%><5/8\P/J3G)74Z!5æ)$@:%:.#),9%62 9#2%;&*05+0I:++PJ=+:H=3`nd Kh! X'GF6'& 53ó3K4$ù<$$*:U[,D:$)6D&P5'++++,,,---...////xesQ;G&&V@<C#17B1E<@111111116P0sK%-;=I(; H* .(,"/40A@ <*>F0.@/;fOg=d#B?:04'(:;D E+%ý_0*c-$8<-?DL%c)!X:61$&G.-ANT8---E: >?D#0R<U6_D>D%FY+&)H2;0-$2$5C=B:2&&!52;!8$/543,GII3?T9<IJ=*"L0P%% SF!QnK9A;)V9A '1C5D'LJ(.S#1)m";<)D?52kGT=-/=B8<JC;3:&JbH)5)552;Y61N94;&8#4IL"&MO-=F"S&7ÿ&19O:C/$^8Ч“£218!5@'E#O$IH9Z/10XJ422$ &DF@Z32 +  CrQX'=H1>2Q-4%RA&HLA<C1%Aa*BJb,MLEQ9)C%9.:Y&V5S/8.J"6?A0.8F0)4/S6'OU7*cP?;+O3WA5añ`B83009 LN'8(3D6,?CS(.QVAt6NZxh7J;uWF[19<>D,3a5(3$B.#@F<H]- WSCR. G!@4`F;/58>-'ÿ;U=n8T+=%B<7 -;79M/*F34/8$4,'>/37,&P4Q5&D!%F$D A=R6(;Ka)2;0*KV^#.>'"0CE?>/)Ki)1UW,)-fLT.K4?C<:=B)/666666655555555444444060G* >5A>m<Q# B"4/;Q(418*(K/#)(8<(-41>b7:(4M6 D!+Fý'HB+-::r77 &I>5_&g 4÷I:8-4$V8%o!?=^kCUSjK=-I</#/12#7=1#!I3\Y"N82,.M)9B ?#W",*OTYS,IGC%%/57*Y<-09.6Oa6(;M9 "-7C"3C732L4G@>!!;9>iA+;*6A\$+Q22888+(>6<*U5.3, (;6*6#A +6/%5$=/&0*+++,,,----...///Ž|‚T^)>@i:.54.-4A%"B#/=11111111ó0>=(?.$$ò1#DF`%7=7 .DZ$65:$8!.B=s5T,>Q'<2HëB1.#$>3))-S +,"-H1@1J>P#7>4$!BSL4@<1KN%I6 =*807V.AA>#M#!JDV7+9;2% -,8"=2/./.#þ)2 -('P&$ F/UV,A)5+;5/#0De2+96!/D6>;/237 +3W=6H-*"2FVõ +%*7.,Fa@,J>DH92>?GPH' %0.*0&  (5':12JY9J00GI6RRLFO21V b/+þ:G5(4 "t?>>@/8H 7'9UB98G7QIE…±aV>ZMW5H-3AP@!42;6BA5 34$BS$AE61&,FEx %//K=Z^ V3@:D#&>-ùMh3DN@.*CF RR.3 !.?7B"0U(7M*G,<9IMnL)7<"-N/AEAT?7j3#%J4$F2E^7/;iW,4+@8H*IH-%/)*h'E  9M\HIJh]/A,6=d"bA]-OMP2G +(\)554=&WQU(S9E##(;N4C%&S-MME@'T+;5+ACS6>L0Y@0?Be<X2DD.2K.+!3R :H8$#ZMS7,5.18E8088$6(,>;E&:Q4B4 F'HJbU.Z/9&)08@2:>,F$)%?23 >1*?JKX06e,`nNV!c+6666666555555544444þ:7F212*1(#XD*!AHG1"="F8=0N/;@,C#;?<56NÃ80=]vH6+546 52/:3#1C=->KBB*-)21@<,A +,463*<&$("L"2=+!)*+L?QLQRA=C.'H#1.0-N2I4€75),FK/'(=G .BA+R$&l@B>= ,69H<9>0&</DHC->7#2ø*K$GV =0)BI^?92?:#9M6$M+* 2#>%\6>RBXV3Jd4:!:NF--:&<.9"U'Q<d48) *+++,,,,---...///cYb0‚C;$AAI)8:I2+$,$911111111F>')  9"2G<]E%D + G35B85CNI6!0<D" !(*>==A8,7A53(#G84IBL,X( ,HJE@E5'@ 4=$*-S=1036:H. %C%-'':"1.81$=91B>:#&,8D=;UVG&C;/31#F+3S,!E0>&'ÿ&6+2(!,9H$ %;09Q)&.6K"&@.7!;øý7=(53/0P(÷6K/&Fg:4!6(!2;3þO&B9EC-/)(>9.>9"-B6+B(2(/@6E AW +:!#L9 I1R ++5:4+/)T%IA1K>8K4,AB)KL(;4II9 +#]?NR "N::\aR0*?\\/!?B?P9D'52)&/J FRAM3,.?!!SVSM>=M:: %2-  :&50"(*N25:SLL:KIHQ)23Z<JTGA6'+.& 4++ !</+D"8ÿ*qC0)- 8I1+ON:%?.0!=7í@Ab +[)<VB!/@#1 77S(?(6N`?W0-0W!6GES4'*3M=*X\8CB0!4<L&5.(O=GIP=)5MHYo-@>&|LC6DU+_<:HJfF;4O:&#C860W$BOCe,;4ÿ/1=9N;X6<,A,&OER!I )BH11,I9Gi5(=L9G1338T3B)0)O0E51LH"BQ.60+<c§õÔÛ«_sX.6666666555555544444#1S*-,9Q?S98ù"--4.K!-91""32J09E0%þ3,<4"P$;BE2O'*+O] N6O >LA%>'GFAÿ=B+17=<?>PI%!079?0<"7740-)6#.>2Q6&"+&.%HXL?DO/8E9@8DEX".Q4R6+?Pa9'8@1"8 +'MwA:X;634GU<;3&*,EDHG3[!:,3-/*$I++D&ý-;1?/(1!+:#-+=%:  *-;@-%.0N#'2K2B75ù9AZBQ)9/"$þA*'EöD?6T7'H8G:'+%55**+++,,,---....//HDQATG=J,.<!1G'9-H)311111111A)6(9)33H7?\.N99\W$++(/20 )B%&6?aN 0,2(7?&+<0\OIH:<5?hF9Gù>"Wõ'I.+4"P7GA#C$.-AG&=( ûS)'C&G0' 0:9O(#5.>/!)-X3/95B 1%1%'$A%)I32A E..<3=4UB81*+X5)*'K4("#!A*"S)+- 52'+;BGT#Q+58c7>BD)5=.]6aFT.+#NS6TR= 2$203+\SM-N>;&3ùFK;ES#$FQ+Z rd;D"?5+'95&!@þ;D+1=A+;).'$?-);/)4724C(2L$'B6F:>O0> 4II.9d<Z<C7>3>#9HP/9SM$K:10-K7PND1g!/DT;."49G>Cü#8 $))76 C(QKC%26L@L-4"39JBCQ>e?9@(4$)='#>9=50J(-7p-K-*?o!ð?&)=b'26C>^,B6#'(1((4-D$;F'La,;=-IU.,ZR7AN=R B,Q0J8?4/RX,:7"2&4"D8"N8(Q<<K?PGC0PK3G-LUFU456W.@CV.PC8MQ3BFE4+ $-0TD+F:!8(+BSÿ0+:5!)$6SI,3(<$M!ZQ84kJH*(üG=+1H/*UGT)4F%+88./W:mMh?P:Y>:hDRUXÄ’Ü`>“J5<6666666555555544444 5W^2$L98827#5%/3,/0 +/%! +0)K!K1Y#+&++B6'I+ #*,<;$"4)N ""Û+1 óë+ &0 2H<b8;F„N`2 %#,&T.85L/(1@..!D#$~--ûD/6[;09Q: +F%1.K' ïH02,$&>%[JDV>($3û1!A#21/m?NO3+6)7([5+.$2%@6OG7U47M.-G97J#ö.7T;L+1?4>C%l2*G++J V-.=IBø.> a(*;D)=9.A4%G5@û.?>*+++,,,,---.../146$@M9(%7,L&(gN=#311111111*~0a%Q"*#I>%41'dGp72: +2H1-2>+ >,;K//$*18,pR)"K8#*23?-1ÿ:B46:>DG3-ÿH7^%3þ69?BJ-Q0F"H/6G.:N/Y7D,A: =MB909&-M2Jd= 7A;9K,J!;%?ò1I.F5O12J3 U)1,;ð&D".3>/).:&(:-#0-N#M9)B"*"%;"Q1+E +/2)TR2.% 26>'@J,5C9$FMHö2'3(:7&= /?-5/A4,K6; ? +@+ANbhpK &HRR1 UI+23 !!.)A_9F?84 PC-2':PPS;23*( ý@/ö^9UK4>?*<;.<=)K= J5"&91'K(>-<GR4$4%9?$/&)J5$MB1R"+-=#/S+')8]h4!9=HE:jþ09E@4#9H8þ+C21;$L:B$G4Gh;*W3I>R W/ A +4!KL/3X)U5M)HOÿB:-:51DA%>/9M&682B3RG-XIOO8575-M03@/+>(T$*8H=fNLG7e.3v<H*30z4B$>76(3R310'K/4*OK8X@BFDA6{<E3<@)/9-Y3A'*$-.L:9L&ù5D:%9!K:DK%O[4[ZB/4[@BaVc;:H0 Q?6$0L4C8>Il_x;ŒN[g\RvGYYe‘HrU‰¼}XH6666666555555544444LO=?,,,I7='jX +7((FC.K&1>4 HP-N4(.7/.*:(!%@B*M/9*B*J +5Z45 !6E)+ <?"ÿ>)'P?`LH?%0H'-6H)!AI!)O#4"9-(0<!/6?(*'=%(">1)O- ".7;"í9*!75K"+?;3ÿ&/)tL3 MP/-,>69Q+?Ev)O1:?>,--1/3 5C`HY+E$E'=,1/,B-$005C%/KXV-=B):JLEH23-8-5H"]4L6"2H*&uEG,>77?M8+6:9**+++,,,---....119#N/>e(3+%/*<)G4C1ûe111111113&8TbUYb:p)[I!J@/:8702ñ&%'\$080(,H:2.tð™};0 $\" A6,92U8$D;*(J/a6I9@[4(>/w%A_$T#55.<K7(113)9)C%];/;To M/8#36$(7.(-F$$ 1%);A"4G,< òF,$B\)=7=F7A-V4&'SB*,A O#25`L'@D.Y-#=_'I"R0\9BCiD-$ 8< ;;:%8iI'>B);Cú -;^"v`o@Sø87@E&EFCR7,W(11%*#;%R6-5i'#!21DR/FN -:ICM]JBK7C=G %@(+v#*B>0 /,!;+->^ý7$!e%''Z%4B<*6=,%M5#>H;.B%/&@)6:W! 'G$h.B<(?/L,<"C"S4I+;VJZH9/HT4-&7D )J9*0@.0@.IL $=;HH2>%7B03)9>6ùB;)YR<O762:[S@"X%01#-DK"61/3U1RD4$AA7A<Y,:*Z;?cl),)!3K;PDK"H??;F-3=.EJ-NUkSFA#D vX2GD9!5!PA2B;2&>)>A!-"$-B) %GHVEI,‡RYg-Tq/A'b<M6X#,:)=70O*,zL„cœØìÅœª«±}wŽKk}žmä +6 ­ ¥eSGF?6666666555555554444*-(Q5%427--2E>,:L:Pg6C,J_Q B2#!..^!6 .&"f!7*/G2"-6"$)/94H*N)#"L5-'VBV9Z'()A1U;--?A3ÿ 0P:6F&@:(+$/>õ09"9 II/G:YA!)L 9F-J?95%= :W!D9+G;ö4$'N#4'R=-C*31/-!9!I!.-?'"-7*F.1FC$=W%,,h()B?*-#7^>W90LGTT(K.$*4E0M',NH!$*;-2O>08"4(BFMC C9>**+++,,,----...118(7*$@IX*?%.!%Q"+/91111111187$.PV-?,?+CW,7!1M6,-2Aú9&E13OP;W"-HK+6Q#a>™ÆÙV*.(D(+2K6G%&'!) :0_4.1,Vö8+G3120.3BG<$?F38'> =F69"$$BH5I:Y3/J>,$,H242$9C= .*/)@<,04d&I>\s;<G;UD<1<9tG7B12D0)>&,AL&;"G>*.J#?:2B9&10B3IH*F0P#5%3.<)!%C2.%->e/;>* $A>F5\Tk[7?1DGT6ER:x"&K0K25(";N);- B<C\A=23A88&84$÷5"N*'5I&7@)9WI8NA1&KJE2<9)$A'ZM?4 *;@OM285X$$0/[i(ý+Aÿ8i/-?Eõ.0Q.AD',#<D.3@P D0#3%L?I<E-G0*,5<'3? F4.,!D:,,E39NGE6+EC8T=2`;$7XGZ$>>78.O .*?0D,'S'8D-'9 +'K5OO@:94:+83<(ø87: +YJ!9F:%X6/_71A$*i{P0A5S@*R3<b986?^MX.+S;AUKrF,8WY9O)d9@J-9&-<GF&J+B!4\B+6=9)51Z0.2U1/Y;C&3.T<V,nstE0>!0H'Uj,U540Z'&S_˜²×;Z¥ƒ…·¨q\`œ¾¬»jS M4' >WÊc16666666555555554444S8#!>76/052X".>I77I:Tp4%&?*7>#;%A.($!=71S.+GIQ +#$&ú& +.Q+4I?%3(:Mþ9=R5'L <1'' #I&<,G/-$56$:9L^%-@%9<(D5"?CJ(#7392Z$=(-*<C32=3?F /;9$'&;&2(6CE?#'B%%)C$7a79J!`? .6L.(8B'3=A:.\+E,I#=(>+(@Ur£|y@GO6;*;W!=-,1#+%265*,'U.M->5V[ý29 0R**++++,,,---...112U>J:3Q'n!ÿNN0)i8#H11111111/6 4GDVB<A C=294(8"0'3C>kB / 0Bc .;F8%0(b6>IEM“oZD8'%HK:!LG%CW!)(ù*',H&K.!G9$ÿ1D"! D6C>3DDOP'ñZG>MF6:6D9#*PD3>3UaO-7D)-+;O/3,L/6!)K+E1 M/ YI/1-1TX6'= N&CH7]6I3?$ - #@@M+*B!J9÷6?Q1K7 MmF ,?2E!>='&336 !8d5H7:%4;ì=6 +& %K=a(FrQ4/.I;5/671&9(*"?**Lc=WD7.$,.T:7<H4' !5:61",7)C,T)!H= ;*0E]6b0;E(Y4^l•Y1He`! I/:860D<=o:)?=5$$>W="-E.+4&,59(EFBC5&=#-(IG,0n-640]#'E<H4d*>9g+3#L13ý5O8;ÿ5d6H= ,727UDJ14;ZM2,CD0>-þ4,J12$7169HQL(Q3$q8*.D?6AB* +3F4L3D+6%25@$^E aYxNIA7@3D]%7R025Ed=4P/>B3.5&*#) C'J:9$5#\KA7%#82P5@9 8)1C->':  !?F?.0I ;)j>7QS7*H6NK=_EW9,<<%!4SU9K>yÄ Ô+éø#;iù”p1õ¨ób‰  £ % âÑqÌ…l66666665555555544441$;C7&2'O5*9<'N'R%÷ 2-O0: %<4IHNFE,@76!&FP&#4$ø /A78LF-  +%.*2%++L*+-@#,]6ZBQC)+#*R)>-'3*,õF)5-2)9K:%$L>$*#-7'X@7;8'E'GY>/K#:(.'3E[W=@"35ûøA=()?1F(!D62.<*12>I1N0@%,&% ÿ#@;)54B%BK47QC0!*+2 (/#E&5Nt•“µŸœ£D+S->/1&4>L#>&9A.D4:K:UA9>+N*.HD;/***+++,,,----..11&'&N-="( Q)7'Q,)='411111111$$5E#)E00b#`:C*>0B;5,G/(NNC;F458@,7$FR7N\?%1N%*%Q+..#)9K,Q+33K9<E4C?5'ö%$)5)3)E?$B2B79?/ 03G=#&Bþ+A3JD..&2!@9<';?->F$,8 @<)=,- R)8XQM]7>Y4",,ô/&%%!.3&9>7+7 ùB:$.KI0ÿ)"='%E7.e#:I5ý3,4ó"3gL'#;@ü#-,.1j3CNaJ+D,28(B(6ùC&;P3?,%)XB3&?&>)#"6E-8.6?15Tc1)3A*C&;9)CE34+:8'(KFY_C*T\W+3û+=ÿN%<s^qm.úL]/]64C$6G#I%$.Lú>O\"G4H4L17i1.>0@%+&8LB;'8S.?8G%V2J>MG$=!(@WU;#/+.:1 +QJ@*S54VA:V)AR3D5-#?6'6N<E!)-A 2]^90??D+,8d1WHT163:AIHRNK40"@".N#.Hj&@0/de=.qCcZ,C.\(*,1O+:5B 7"?5.='2?LB !!.5<E>DbþT>2.A?@CCe=3T';)M?M0BQ#,%;RFP1#@5II:17'51V7D G-40P3.62#$&,LZ<`ž÷™Ó†eú”Â?ãc¸*®KëG¿³ôÒQ16666666655555554444=þ-?!#I0/3H-.-$C2 53i$+-6;ƒ4&B/ G!ðC/,9N,6N W9@12@#-5R(8$(1,Hld{1./,ÿ0PýK4>-H=(?N 2l)-G4!#?*ML&?598G>&j0L)CM3<74J1*2IJ?@D(DN#:599AA3SCW62=)E$>4NOF+A.<=WF47Y+1:zM(0N=e0>+2S</7>1$1\L@F7TR¢ÅرΌXa 'K+-.78L&>(@< &>7<"5?WD%V!#<Q0H***++++,,,---..11Oc143<'+6D6+U9@8$<%811111111.@%T=g':CD6BD:D-!E@!12I3$L("5>1161*;J77!;)R AZ)++.5/!   0@8><0(5%4+ý\*:!'=4A*@A';JL@6FH†&:C' (HVA8/(;2,ð))V!+J;Q >/$L/C&&50W*;(0 -E8F</%8.888,"65+F1<3Z)÷I?9%C9KB=*4&6-U-C,L'M;?EH'J;!FX9 8##,(/14%(NH0,#:)43R! ,>&8M]2d6+"':V8B#G0!2þ=57791O"@'1L#/A5 =)1+'# )4#MR-1%U2D3))P:!)UK<B2>9&CVf4->9+37>7Núh.8@*-6#N%%*1-9@JN3,@.L6D1c=/8+-=# 5/Y*K&la-09A9U-U-6#A "E%L@F&/ +4Lõ.-,8)%F,r&3=+82YdF}C WE@:C( 6) .**>1CGUL8I1>Vd:ZR/D5l4;9%'NZw9;:4,5.G_5!I;<E]A<B:A8LMN0>FB/ cB!(&E[!/Q<)QVXJ1&=4:2b#]I/V91,;)F81#470T,BA/> &?3*SGC;Q!Y?--J4&2+Z6)I2BA0M<@5K9lwj”ÌM¼¨3`b2Ø‹/ÿ“AyÂ!Ù@ùUT6666666655555554444~Q4@I1DS5K/8I.8"&?E8 66gZ'K'*5-+2*<@)@Yf8 M!ô0O6+^C$7@)0$/0e?"zÅ ©y%;IN& "4ZLE=5(<J#?8Që$5H;r3J'O 4=@$9C55<e=6(D1=3(;*>$KRH'Q'($5<2"R&'-U3N=-*?CIR5* +;&8K?<4:#3=8@3GE%!D-#6P.GGAG4*2U:YžÛ÷ I8øîæc@#O6)#AY +$+<0<OCZ$B$(:'/?L,C &.****+++,,,---..114$'÷'31-%A5>38(!11111111Gb 1M&-FXACDGJ0BF[J!?1P4@.:0&O!S 3MC!M>M5RHNA!1W+R7<ð1 ,305C=;Z!"(SI 9=.(/N*X*3(úQFd2O::#t-A69<5$#D&<6(*=%78%/N+ R--A;2>CI%%'PCA:!;b2=2D%%%/0û823F?8$4.5+@'/þFN0%-*'>01!1Q_/"><>(C#ZA*A895Zh+2H5E@,6\Z +1,A32F 7+7B+")]I5MMH*VT4.6770)";@ %#$2I4?FH?#J:+Pa*'P),%1JE .+&TL-d7B<8BŠ9/4?*+CòT'L2C%VW%N26 $ YG$X"Q":1.9o3&j]P5Ph544KD4U>&-G9&0'-#)IPBN5+HJF,,47OL).0-<G0:BP`L8Y-O!EB9; SE';A<3@B<,LED'.9'I661Ag*9DA9atQ$PWCQ˼¼~0?MA B<">;þ2*"*,$GS4M +N2ECE^ ]JlZ*AAOML@Q0:Ax(IJ*706](<*H6F$cX>4e2'KDK?2=@WL<86UD3;%EB=C 8<F6@7ÿ) $&'3. 9;;=J_X2F*& Pd5 2*)DWHLj[°ÛÞ'›š’–rhYUüö +  ëÐp9?6666666655555554444KG4);Q1(6V<@6=$=*0B.JC<!$);;D9PCM60!B<D9"=37G: &4.-0R;K<!E-0(0^( ó7Q=_]M´ô–LL>0. +-4.B0g:'320G4($_E-1,/FE=/.%7'+C6@&+& >IWQ(EN#H>#`[>AL<& +?57'.<*H.4>F#C6w %RFCF,K /,*/&8<@*17%AT1D6 `.+8-7184A6§õ’uæÒi;ú’SS!;\1H8%.J+>#)+?0NO$)Q.6E8D.)***+++,,,,---.11KK"?;:10WE **(2-'IUM;11111111î BE8*&<'4Vg#"M)'4C[6:)W881<ý.;,.Q/.UdG 99900! &O--0T41WB3I*@IX/(%@ÿ'4>é=(R60M  *:8$?N+?' -)!V& <11 '6+&/o %J[/-&>2Pa9F5Rþ#=L.:2@7@!<!#;. <%WJ@B0G9T?##0)&, +K+7 A87Q))-%=/?KEJ"#5>7NG.&MEKù"K2#[).1C*Vb\"'"$')+/93,CR >ffH(&.".BKp%y 2P0'*IA#2?:9*O0/J@.3.<1. SAN_/<+=.>W8.2K1WH14-M7Aa<JR#>zpV%1(.\6H2<< 6G4fF O%X!B%  J)$5H6%BB1`C(X)4>/H%ú%ApV0<!'B$.,"bH%Dÿ4V;&'401U>=04[$./.#4k&(N4FQJM?.!C ,c)1+ FDKB9$,RO LL64x$”‰]Q0==6$?&"I0U2(_(476@gMGT H/J)7>$:A'l#!+%W$j/,1G6#=I.[,?F:>?15.<<-M$;!A( L+0K/FCG _4[#B1G*F "0 +W/DI ED%>!:4 +> $!DL+0J8.*f';KDMEoML1]~p½Æ†Â¸¢Ê­–¡Ì~ƒ•€{~…HJ276666666555555544442S@2(@H)C[KE;ô`)9#(&/%5A\C=WBM@8"%û<J3)$F,L3 83&A`5< !#%H.94C  4F&4c¨×f>'ä12.O-!G/ïHFFD%%:%-!<-/Aù$'6I F"^YI?9:K8J2:0*T/MP>;6( ,@1-F()+&)/?4): 9?7CN&;ÿC@:(;!D'6' 4Z*($R4$O 3 02EE!:)!^@/&*.;^C^9~–Òê°`…XU2-&( *@BB/ E<;# (EB Z +1%5IK632,****+++,,,---011+O<O+5M%0/P+,( +(C11111111%T0G&TKB1B(*2';G;2-M3G@'.#5"Q>>&DLG)C/=D; !+0$"HRO*+V9"4 0(  :D ^ 0C$:%(d2&Bý7$Eü@,<-%%>%59%B8(8!;%.@#  /õ 8<8Q2E49,T,1#*>EA)(01 M2S@J1.3OIC#4D@L3327+E&% @,)CB;)5<*L-7Bd3?;5:3&*3-8,0"-VO(K7)8#U*=$A>/1#+7?!%$_1/!L8TI3B=_rXH\MC,<D(E+ý7%[=>AE(-*n=*40 F:;99X@?B+/A$/*X*Bx™J)$";V1*,O87DN?%N6-0-*;5JsTHL>N:/`9E"E4F)2L"U J5=EV !2B&99*BB\'%$D +>LCG.G3M?C$3#@8X4.;UB+&1>3Sm-)Kki,KG71? (!1$DN@2-! ;F3CU08F37(5J0ƒ9>="6Kjìñ¢cBU>,1<F-FWB!)!:[SL*1F6`<'&^#>O/'f;J!#;*I&B?N/N(+?.'. ])K8Q)8(9>+PëE4*EK!!*;!'GQ$3 )!@?,M A79)0I?8*99//B ,%=ZN1<&<N%TB45AD6(@:15PJI,=XFwpƒ>pšub0K—^cgUXJF;)7666666655555555444-= S-f<E0&ö7*_/G+3N9K i,6@4B12*@_{[G04Rö*L/3+))G S;;Bd?.6BY&F?$8>262SjC&#4=8D < B#-795RG1'/08!'=HHúø(8/HB96;>I?F);<GC2EE.J K,%@*B1"':;O 2<PW +"+<A2(*;*-7!6*:QB6::&.L."(`"!$-HJS)(;5=9": 7D+6@%`ArÎ/&[†YòtC893G';BC(3K298)Q,&."%2:$2/8/!A,C%4ø)***+++,,,,--00116B//H42%8P9,E322ý7!1!11111111)@*Ue1)?3A+3B> '?'@J(3!1(a-2B*6IES^$>7?&D=I""!]>)[7),AERK3Y #0LFUSC5ûMJCõ6:@9)AK3++9X:;k_,C'J>74#(4 GD5;#2'M#,?&9'"<F8H(B8/?(P-I û71;9" #*5U72B?60?"-[I&<-@).O$*/ " (- B VN]-;Q<:@85âS5B=Tf$=)"GTW<7,*$$,Y,9R<::4C$h@C7"@) ? /-;A:0$P<7/!FFSC%8,2I +)E#FI34)0*A9];>:!e.4]/><"C=UL<9 H$,ùX#%F;I1@(I;$,22^ /ø<;/ TT5)X95:E;<2)UBL99$L%06<;5)(Wp B)A!X4)-.EP>f[Q%2HL'U2B1,17 \CI/O#X7E-p9G<<;*=,O60@'* &-/4H1H0;B[uu>4=KTK:RaPToXSK,:$F% =]H*#I7KB+3C'%KC1"&*D!Z]$iG<L*/X*+(F:mRH$:V U-A>!8*E:^94CD*4.H%('B;$02*V6#Y98% < .2. %2:&(( .-%ERGTU8,M:=1FNU6  C?5 2G>/1>2AR=AH8;t\_DD%^CmCEfAD` 53N7666666655555555444OID1-%#B-LH"ì1*(6E(Y)ð5* +H '0?,6@Mål<# +*5'9I<6"%7A.#"< +)@k<P= 9A,*+@K9< 4-.65?3, 4D<7Q86 bEG>.;%!0DR,4 /18*6<#;2.-] ]>DH86J6G8!$&3?/!5-KQ2&&%A& N1<II008C)#V>P!G5?93*&)$F?(c 8I2&130D/".A`KoŸ¬â"§ŒQB74UIIGLr\G&2<$^"1/-OW(I$JF6'S3<X")***++++,,,--00113237/,B,0%6B2(D8'D11111111,Ha&* fR:? $"D*42H&8e1d+0(),D+8M0ø#6!;ù9ó$F67%7I 0=>@9`A/1+3 $*51C*B2K892?0VFB4F>>HJ9U>WG37H'!91*+)BK/%2",ò&/9<Q $4k4>6'2WM@(* ??H)H@'%=% E,4)9)8^1J+IKM#-=X6CM@ .!,->&).V](,#5A.!'Dd8!,"4T6`18'&,€dN:*2-*W9Oö0(DB,XH3M7*B7*=[>2'C%\:7B^B8 -?=+.>"H=57pXw!<[D3 (<"H6BM 12HT<G2-/1'(=E_+*8EOQI:.H-5%7>D2*=$J,".pd,!92 +H7=P< 4A 1$ 97FQ4(+B&:'%!eBŠ_[>:,1774Sfs P)C%6 &(3B2D<, *1BI8[H0KZ0_H T2]0+%-H($99:5<%#EGy‚4#M722+:7[CM>-OX8;] &4L4,V;u>-H(4A]D42%>5W3;GA-9N6[@29A74cZ8;C.,s@ UQUGJCg9*D?Y9*,/[<E<+''D9#Eù'G71V +9M-=:7V071"8K5=& J&5N"G(G,%<EG+IL53B#;:"0LG:M<WMD5.3;<!D-ET(%KEI/66666665555555544Tý"ZT6?/B ->J+B7=J/-=D(-8-i!C95?))¼b{/ 10%M-/C?C0!MQ10gSP%A"+/'!605 >(# 5'863@8 3,D8ü+7CA13A;0&)a+>$/+ @b8 ***#K$ &@j7l- +E#P=&H##!$*;*C7ö , :0*/*, +=>%K6V6!B/&B,76I-:;%"8,0 #ê>I/?B% + 3!(:X?%!)G@Y>+Evm¬¥¦º«]]^G.K9Lrf|/C<5KJP@%HW> F2"Ge. @(4:))***+++,,,--00115'/9)%92DT$-606G7?*6H11111111&[%;?>+*6 -@>.U(*ZLMA) !A;#4V $.T_?:8*8E_%8/#>G6;6<:/:Ma.YO@,(I&F Y3"&@5v<5 AK€$d/4+5Bj‡Š‘Af4.J9J-A/HK%1H3L*90''*51 +: >;!H1DI4!019#$ù 987C7<XûK,00. / +F8&1#$B8587&å":/1+@86)6Z#8UK'$ ;"--CE8"KL(ZC'KW"I>KKABX /;"#>## 8J%1 7!4300[)<:0A@ %;09,d5A& .C)*JM;1FJ=I#H1)4h.53#: /B/VRN-+:IF@0<RQ3G27$/#@<$'B3 **V(K)0G"U?% B4R 30>/D0>8?]4&%.>(@ 4+ES!)T?=57:?YwzŠi%<3B>B*@@4|55/3/'27$&50* FKRLnW<NguWS*/.KZAA$C9H$>#9kM-J>2B1(0B84kSE g6 @"T0Z>4FS/H%;1))&",;Z$<9EBVZK9551G1&I9C;P]LN?a5/ÿD?a5NC3)AEQ&8K^K0K1)JO#@d+G6/=,7='5DV78H@1,0)01I /4&7BK407//VD3 &"I37"]#"2"F0P]9O?9,<DN-Q6AJ8:"G;9*@=66666666555555544ö$ü;%5GJ34wPA=.<39 1@B&)I",K#"+JBN#~®lVG'PD\2L9%48M#'"-+;a50:B$ +,/-1ú4*79N"-78001-G=4J(b6/3O! )(&"J?B(5 O<* 5s\,&I-;(N P 777:4&% /)3.7/KF+3$9?#4-V*K .L<$-&B <9E":X82PH32,F=)<2  "-#-(/B<*LRBfWw”o‡=H\+,/7qil8I>=*%2%J<0( G>&8#b5?)-))***++++,,,-00113$ +:I*IL9.)G+-qó6#.11111111(A "#&J@'AS!2H,"'I0+*F+I-Y!;G,>/K +E&80_-? *8*4H@K$.:3,08><!6'ERZF!.DE( +!I?3B%&þ4B3H[bv“)M<+&Q,@K0*0 -Y<'5\+$/H/9/+/H]) 2E0 (#];))=#%* K,C);A&S6.FüM2 &$)E@A<@4BSX<I6VY~4$69I,AC.B# YI]GC:NR86-O@S?+[V84TN?.EEGH#J!665@*A>.'!,,=  +!@K;,?+J7 4/->BI&<;6CK)3W-8":;2K88F"Hû07L85H'$'/G*ð+"'&41þ.7"*T;#.\'l?XG\=9M2'I'.DeA;-5&%8SY8.,4H%$7CKR:0<D—t‡a>8>8CCs:J!=8/9#3($>*4;9+:0-12=A_kmv@3H!#O+4T]#/+K.C4(GQ50,5-TA.S-ZWAJ&J*dNJ/%*(5MW@&A(8KU#,;U6'mo=PASB:<;K@jPcüM/O'C5+%D;D<3+)MY*E:=#"@EF-9?4< IX#%@k6%,X,PII TA>23%Dn/:7935)'W$3,2/ >5.!A8W;M %"7;/A8 úJ]8B5LN%ABX=e>=C(Z5[66666666555555544>+L/Q'J1U;C)4*2"1yK,*=%+I%&.$K&GK%22+)5& =96*& I- ;k& .# 6$<F%(?,). i**2J,O0+<)71B0# E\/ 6= 5% ""5 14* 6%8.QG9+)GN>!OB<P.?$"<J*2"7 I 1!5AO"959?*&Oÿ<)+C'L(!?J>#@ >,53@,P! ']RI/2S.58 X*H*#&A**::.850FS\vWB`jM,@71KSL%9:-,:M&G(,?3Q$>1>R.!+"-.SNS))****+++,,,-0011#+HU'-Q3*WI(81,SN111111110">=A+>)/ ^I6 0 u-JnTdY; !;6I&'#DNVA7J>,/H5(1S5,(2N ++C)J8!:+ "-C'=49$6FC1;.,0&+dEicEB ,û%701Y2;C(I+O>&,223 +H$%?.N=B@)91FK*2JE;5%MGF1<.,7D*6%0C*$@<$[J5B/(*,,1&ù507ö%XE\1X8<Yd`3 A!1%@7W"*$'"G+=,04F)==0X&D202<@0'/[=8;=&? 45Y<2 )a!,D?D#3&]K*O7,34F'>@;/8B> +Hma>G Of_C.5;*C 6KEK)6#@.K +IR3+ J]77N/'L(9 L0!8+H2‹íXD$CU1Q&"96# +7=]%;:$-7B$$24Q>:2OC<Z%CW8m.\  +R=9O3UR%) "<5$$',n"ê"/#5v,:2:J>;K,$=504,A+'/,I5S2.;LQ64%I7B7û5E)!C" -=DOH5<$:H+J*6PK2DJ5A)LJ—šzL(7G^?/YB79)[K=E)RS=-#JhO4?)0<+<jB t<@T)REECJI<SIA1Y52)W'&G,6. 2H&R*<0</.KN..V EB!**+0(4>,BI6+a+%@8+7.(!ab@~6?>998-GQH1 B0  9A4;+66666666555555544F6*0%$KI#$@7$3:-E;9?*;8'N>$!&"9=GL:-4%<C(.)$C +&)>1!E4>U/ !=A!P +7K-.4G>7YH(='J$Q@ó3B;!N7 &;:><DJ#/45C2EN(J#!:B*S4!` JKH*0K10+%@1!/#$L)*()*="943.2Z$MBA/2.AC SH%M4?=#B5V 'M:@H,8B)H/'J79F3ô($A"NU'7F]8WADR!-*;3:(!<C0Q=BR))4è7F? -?%22+T?'5<)))***+++,,,,0011(6#C*HDA3" +1D;607'11111111$E9Z +I$A<-6,%@9M]0N,DxŠ[m>c3.I-/U@-%I. GA'A8 9610U?.-[,8Tl7^)L6F!h7o&08H>F00)+S,8k|tƒ*%H-0!QRD/5=1=*64:8A8'?2*0;<<J ?+)<%/: *F*8AN3B)87#8:2: "0) 2 )SOg([E-ù34*)3 GM9&Y’xZ0LH]S48 HH06"Z18R-*#?!>*3)f $8J+464APC(6#5-1",2+((;"N07C/(<6]S;'0 5%Q51H*M9SH.@*7OOC;?'LM2)728MIü:%$ùQB/?T0ü48=HS%8'05IG(#GP"M&13>?U_ðìíÔ]= XDKGL'6E26A8=Q5,I%(I >/<$E-9(V])*Q`B(\6:) -ZOO(&H'U"$HK4 D59,!;4#JKF0#(7GB)$#,(A75<+He12J$k:.,(:,A?d,6,G1,+FI/9 +/#FC6%9%E*KL={i-t%6B(FCJBNPú36B5HBKN0J:O@73L`$>Fk@?]*AA.@LLVY7?@@Z#>=K8N3-!14:*6D,%! -T)',)&7Q.%J/I7]=/&4325J K8=0879A=%<?DC4+=_3SG&/8$! H76666666555555554 68 Qù9&('K!F%.S5%A-V95#8*0*?)=Y5'2L=8>AZ0($:JPESa<> P 8 .,#7!*,C+PH E?2*%33G43H:##> WI '<;5=H027-F4(%7+(4-HG)/ +W3Q=$2 EOL=9L DI@|V*73 -#",=&>&2b> 47-1#@%+C08.-*F>@6+65K:)1 +<3;E( ]8Te :1:B:#[G'>)4@.%=77M:+ûM2"4H#QU'&KD*A6(-'H)e@//(r+&í!+))****+++,,/00111?&$@&I<5 71 !'U&111111111/(7T %*=2ñK<,)37(ÿGG5o_]SY(!%"<9$ÿ*44=?!J 5/,6DT37'%Hø5(6EF:\6K+P;A%*PR,&51(.U1#'9!;>s?R?%P'%!6-/%3E&D! ( W Y$7&''-Z$D5*<10P#-cN7.;J: H5#c0D)*"OE>;6(-!&75(:&"299=bJ 7PW:4 ò <AMD3H0;D;-,S2d/,5WCSU 4)H+#+B14I&0,-.<õ' F<Q%:T6F;@w=I575@D6jU?224:3Y[dk9L.hG:?<O#LR60*JB'>M#!*?.3O#?GR,A)!Mq%:C.F9(E-L==34L H±ƒM”@%H *3?92D>5!:,J-3&$SC)MI;a=3+=.9I9dAp*'N40+M7$ K>Mh?/3;, *WH#GH ;%KB;@6#,A1:WD1'(:B(1>:P[6L,%.5q>55P:$?),.3;;;$;:;, R-QmW =:U/H*>VMG.:J1).0&6SY;pg`92I=JX@=\^?>I*8#@8Y;n7ZXTPMXYA[B'3Sb-J>;@($1I%%)'E+JF0&9FB2/,<'72!*:`@?L4D$6Y94&"+3S?FS7E,a#,'1(6 1/O:D4<5WE.To,FPú=/)2A1666666655555555,)S!/65<N#,1Eþ8H4þ H8^' >66)+E73%3R,þ%$>>5 F%%"K,4?%,,!:()()0=<. (( OG6G=;B1#0845/)U%)ð.Q5($$60l#6974cB,;72Nn *–@,3E2" +C \/"68/P0 !eH/]!?? ;&R$ =D(T,WDK&.CF4;$D33#)%/'--3)@PO3!D5 N.7-# +>( (58*!QUJ5BQaV!'12,4;$$  1A1BH+)))***+++,,/0001&ü6/&BG=<D')O62+)6611111111BH/G=4U;03&4"> C@J>/7)/CJ`K _/C ñ3^?1;"AB6U4.;4$6&9+@*',3"0%CS27$ +)(R*06(:5?5I%ÿ=315);"U>.2?'2/(CD"065.Y?'-DFþ7-GAP8,C;+E57'*71?L@*5869.=<;++,JA$1"$%MA&7:A(D-7%*-]  + 3$=,+45F03(>:/ 7+&C<*IF-&=5' CF#'<B 0]:5(*F;-7$#Z&3%G7=4/&@fCD.?.9Pl,!!'//1*M.-AM7o2_{jgeTFj2=K D;(1N 95?,I"5G,3#85G#9E!E :8E)*,";YF#÷(*<$SDm]‡$8÷J)+GSD:77"/ !3?`?)ù9A+PA:B?A8L6FC>%bJPA48.&JD!",FABZö&C\,@3L#4#>$FSD8 3JK5;'(j.?B-(64A!E4I+=.288$4(>O+MB>,I[n+'" +O,;08/CS;G0BQOVFd?!;(@B@PRaXÊež.¡_d0)'A@"Y%$CAPG+5)&;5*+=J/)X!G9[ybXPoAZ8E(Y'0&b'B(F4H,3Q(_%L1pCRMS8+!4>B[/, *09 +CM+8H?+)$4FL%2E>D+ =/#")IEMJIU''&/X+3L666666655555555:0'*1=D4C(>&/hUHJ2+#)P7!//H'"#EF4*+)QA+1,N$/d297;0&4û%?)45û'?,<0(84+I?-24#@C#)(H?A-7f)41:P$OD<G[6&;!C $D&&,"G 'GN14$SEJ-6@M ºX‘o3-H1+E5'X4#/B"&!,I(9%/673/'!-JT +L;4 "'$X,_1<PH'C,"3O%9:&5I+->A:J;J4Y#.3ø7?.P$%,@/U7Q/")S'<+#I$!H3ü+0" 7G<P+)))***++++,/0001=J*(#)L<7I6+),5:'H@.C111111119);%+:0;4C.1("BQ9?1o593*@,$66DA+Hqõ121A0/E[k(>4RPG =+674 %%A@$0+B*:/&A.130D2J.]!22Q +2V8GC(5,53"++;&%&)4@6L #@//.06M?2CD-2ÿ7U5@5!%G<-21x:&#PJ&>0ZBs3(ï(<A@7 a75@,2;!&8-X9C[24$(6=(QY8?=MA'9F/XI3"8>:$B1Y0"I4)2!QR42@÷=+a@I-2&4BM+'B;F*#![(E.\B5/J/OEË6±SG6L58%4R650$;3"0uG/I5$S8?,]b6G*6-ú2')-c;$H95O=?7/I?- >K9?G=6O?A%*M##<6Eìý:(B*2d* 6A:2b.B+ 31H1?=)(>I63?@J>>-DM">55!K6+&D)@?%+1!(L* =/74#EH5R(B=*=^LH,;=3$N(LSH+U7?>0PfC8^B/M,/4^6cg:FS$G>>E6GQZËõ +J‹òLEFD!'<#(fF,E7B(E12].2$2"-L(hFRagUX}UpSoT\PTIPY'(25*;4(*:A?8"!"7L7>9%)c"G2=Ej0,EG.'*-+=+6J&X1< +YN!C$!8.1,N,+,4J0VD </H8>@,0666666655555555i02C(5$! B*@!-,j=,E%5+5R-4: .,#<"53,5QJ':EEA1247>+/=5&+(=$&1031E=$-69*#%3I%/%%o::./;1?N>K(3T!C""&!.;$D009G#=PE2=$*4@&@1MšÆPU1A#% 8N&N4+)* 5/'82+! %#/C7+&&K!@!6%TQ< 4F$3!3PE$ùO:ú,-K'G Y; GA@8*#$,I'A,)=@EF6?2I<Q5.+@S)E]=22"<1#'B29>,-.4*.+))))***+++,/0001W?4;%1)X* +#9 40]"9:11111111%B+K20]QR<(CD$/6C7+4R&=:1 9' CY6 ,! PU#;)8F ? +D!8'I)\T@4W2(*`,<h7,.6;G',?'8.E7A<J60;3úJ *O;6.&74P2g*'"C<& -.8L"B =,ET6O$@1IKD!, +óE<IFE,=L09".>C +&82"7315!&5N!3/;05ÿ%*%0),/F +,)+8Y+4%E/50 8ý3-L CRABN /+$#7&00A<->2@S:LB+ 2;6H K&)TE=1C) +%M9(1-S y”ÕÓ“69A+J/C"FDC/Y0446H BGW2+nUEE2%5(-5+V(7 +=H+B*55J<7+HCPJ#,QH56AYõ'd?($%HQ+ &%B=HF&L1AJ3=,?C%J'KV2(3EJ"E!#*6'8TuwRI5"9#YE)DN ,54 #:H+,;0%V0)M2A$-?I:=<Kø/SUDVeP(C7?=4gKC -=<R<B)8)P™yy:51$X+G08Ig%w } ï ‹|u+J4A;:6B$%5OGL73D@(@"B5/1I&5,M|Áнš½ ge7XIMA.E&(L3h*(!0BN'(F;8C 1D 'H5@4U5+F,<<9<EIE. 35K5-,HL7$DO+M>I=5SX8:<[(:.>6v6666666555555J#(/4H*F +FA'"<4+-D6DV900!B*F56þ3>$%< '0 +,+10+8+!F/8++_%H[ RDJ@ù + 77$4!B$ 5äA**G*=O.90ùKøòA7 )-%(0 Œ+ECLeF5 2H(A@E-GBU#>3-8FM/$R›«P3t?<G2L$6+I<-+$61>+<E:07! +Z)G)4G5M#89/+U +E78'1(A7UE2+>'4$?.6&4N[1%/<Bd H4g:.<>429A?-"1Y"m2/6',úB*()))***++++//0013*Q+01KM58K#KC.1*&=11111111.!D$[7F .<?$*\,8D7J-775*U5=+G(U7&*%113ù2\>Qô)86$C.4>-5_QBDR& (8)J6E:A2>9<0 +7H  H8R5 1L8'>;( ]@:1B*"ü:-,@P;RT7>%0&,1':2:1-3>=A%443/K%4L#:&! +($>&;*86'78>I8MI)%)9$ 9B! E44/M-@0+f00]8./: >*0J$RR*63KS.+<4$;/]#>K$18 0@B6//I%LY 0>(" (7"35;#L-U@R*('+'!uI5H$(S9*/I1+3X+|±˜ª9FY&`/ 42L2.%?)?.*(,C/\59e,JH7NH+  -WM,#&&5IBO?-'D6@1ñ4TE@U8G$#K47()&B0C31R'23C&;v)&.3<2633783GI&.*3N3G*:fA`3)'R;0J2) IU*+K@& S8)&FC^6^%#M(' +X3;""K!;jvFMX=A6" 2=IKY*=Q'FG>jÓÕyA/L4\?<2:Y=Ìnà ,èà{0-"WIC4IF(891((=04B0M9 Ce(EXiÊDy„F3Û°»kL&>AQ?JSM(34T,T<()#83HM>2+V.A'Y5)L92 M.Q6,@T)-J,.X+47DH0% C@%-R>#$9.;4<Q9=6666666555555M44%+*@1/+?'81O+JP8%.359AB :M%3))%éO# "2B8'I=!@!J'),,4V$L9#%".4÷*ó9 0.44$,)71<5A0#*4 .8 @!"B?/=;XG< +'L0*%0$B=1)*/3JOTc6Kq>) !D641D8'.*G%69#,`67&+!,ì9MU6, 8DAc.-7>A")Z4Nb2R4_('7$=$B#[-RGJL9F2<*XHDBAA+?ú=+C9(;$ += L&C3D Q'27þ0*+)))****++///0010/4<4,IE]p5 <-RbI111111114!<#"E` !  "59;9')r3103LW25%.=00W_(<7A&'=K9&N14'SPX8]=6<J?!(F//;25>5=KDE(.<:$5;6\183;?0CJE*B,0^0IV!6)+'0&+(-6@ D!/5(5-6 +E6$*,"Q(<-/,?\;I544N02%,\.C%)üc&NVc0$4@M:I  +,7 (O4'2"K8XA9ibK:I-<B(=--ú?&6+[> +0;)GE)O1+% HFGD+<2F7L;/27"Z@37A#J'4=,;m=.-\\ +:5L!/'7D5=M-3C„­ûÎ?!lJ@+LXý' "-A.F3"1+;:J?*?9(%EP<+3(#$8*5EY>OBI'+*:16$7E4/ $%@7C; /+-0-A=V194(A2G&>ZEPWN$1RJ&<C?B9SS[-4QG92*?E/l2@:<'=S?1l*QFk0)C /%'#HGA8Q3>F"?>O@0%1\,BRTHBTBV14!++-Lk%5VN+<3:4}…MJP&3]^93?9f9yÅUoÒ[]:K83TSBJ"þW'!:@3E +7G1::LSk·¬[.„K Qç§™[]@C>6Aa))-, 18=,*B3HB05P;p-&ù=J*,IZ@%#@!SH,4"FB05'!&C(?dEwL.!;F8MCW.H2b9"B%/).f6666666555555,;,#9,$,"9(164.+.4 %)-[N4],/P29>/6N0.'..76!!4E+QF/:J:*=V&*6E2!-:10&+;$ú;? :9&5&&U Y- MJ</,/6-&4#. ++T2EQ7<6"?,4*H;!&S79*êF0"/,;*W26A$6P6'ùF>19 2D-=A644ücFF+B8-7 QI7?6B"-&)&714+ +:)C@4-(; +=0+B\2%62K6Q)$ô@ü+7MNC).ù7M:<V<'4%H(bD5\[L64:+,$**+()))***++///0011#83=2 \wF&Q-)&54:# !11111111?<83/+5(294M(->(I=+1=&@4)<' ';'V%H2$B)"D2X((4-?JPB8VI9@,MG2#">A 9Ci)@O_UJP?ìB%*:1XH N^H.@'$C1!9),T(92!M,0PCBD37:;Pô*)'R+62747,>4>4>"'d-4]320,$EMU+9?$JV D=)K/Z06+(C1:6/5H+=**&:EI:6_%N9-91(V#N9"=OC8,-%.>þ( G(3)4:!>9#WI/'9.;0/4*?7M'N'>,4#7D A!MS<8L!#;Ff?Úüj`($2,7?>1? J"+1<#D,"297)?<D7,OF#27L(<+M!:'#=2^97''%C'DP74:BLA"2)M>@(47#'U,KfLc8)c$66K0-$43G ?&8g 88:814CJ@!*3V0=?B" +P9@."€]2-%-F;H(2V8@MJ/ +MN+/781=N(?;0O7fD;=,l<K@> V6JDQ!\LNYS*#9K( K[1TZ‚†> K46;<ABUE:J^+2eeGA2B!M!(@>coˆ~|ô>gÛš €xóÎU268Z<'ECH"='!L=;2 ,B K 3>W@,O7%-*1)$LA(N3.2*"L%!*)>BJ:=00)13M, BV"QODA1Ae=<9¢66666655555P;S&7C- R! +?;.DE <DBG3+.5$%46*A5X"MB-'O>' ".DEI2<1 4%PC<5ÿ$$-)óV09>.U(/889h;)+ ' 0(-ÿ. $/F A+K0$61-&1/J0C)3)V8#V4; % B( 77+,ñ)".%06094L512+T%9;%FKS(ýPþ%!['H2%*"[g9#?3RN.#AC CO;/G 8#'+!;Aã4% +>AB(%.%x F6>,<CCA9&1&K,@C88'2$*/7B#??**+()))****+///0001A*!,YVV7E\U` GP4+ 111111119$)Y6+F?VD 63L:.'$>4?CH3#24;66&2590$K:%(:=<>*5/G:BFCC) H%2%ÿ#8>'!P. MQH›˜W<04:B&J#6&80 ;q1"WEG5 "@>2( 93I0&=@5A8Ca.B.39+BF.6.=#A<654E+D$IDMH $6.aO17/,.H 5L="I:!4&B*ø"57;;:3:<('-<%+,/';"<*5 +8-$1`.O:),AMQ1]4% ':&%ÿ:[$ SWT&30N0C() ,>A(/,"(3 6>E-()<4H/);^µëÂqhC,3A9)>#6D>+$J0OSL7=& 4(1P3<F.71'1N0%<=4':UI;<:)56A>I"2:S,9O2D-DFM'E'K+ZBF6E2/AXO8&,A/WfA,M7%.C6Q?C5B3H8F!=1::A$F;497N?7$O?M78.1I:6:)X6G 3,$$-Z.I+1N4@45'WA.I;Q!;C%&/$1;)0"B4/R?6>1@&3dDIùh=1[@%S+\2BUR7A1<9$1j3#H2*T-)(4pE‰F 0( _Kb=6.ø +4D6°cZK/$R:G0&#.*'Y5cS8B'00%80 (:*!U"!U)=+ +<`/H:?- -"(2*(-b>72 E&.5@H$20]?EBFe $CJ†663665555J.)&8H#&NC.5)@3F!L-D6(J3#2/3þ9/'G('<GD1%9At:*<+)A!9eH76)I(>%>Qÿ R 13ý$Aÿ&+0(.+Mû4 !ñ9%?,)6÷ý$J +%(")563;4_;c"3M/?+)5Z'0,;$',?+4A85ZL(ü109KO9#69#C/+063= R@J$@=+);2o8l!0;8/b2 +8eE:BG4C*,8JQ?/7/'R+ 5 /K--77F%M=5Z+5/Eh#NOV@M83C-**++()))***..//0001+W$W838#fL;3?/6#/*L +11111111 ?)6/G";X=3 5(#$>'L@#M39()!';7YRK')8'M3&9D"6@<3$=<E6*$- 5-FF$,6DH]G[Š@E/ +?1P(FO'AX0*&XH !<0N8ý0H7;(;1>+Y:#:Q78:>&??3#;II2&>D.,K,:bKMT4/'N4 +C>"A&0?7!88M&F>,'!EO#/><?L<"0;2 )/78J).>@*32"L,%'7VP-=,4B=, #<9: /''(4û  1;4T" +P&'VD/&66*4.0B0/2BOEE$;TI:O!GA6C]x¢¨uH ILI4XET*E9P&O/:!ðXL^IO-5@(-*\-,> +MDw2f8P/+8?KNE%: 4^N,3H_-/&>>916L11=.FM3NUJ8:13?!)VP<\)5YFV.@w5H'8'0a0!/n9V+!3AQ_?;Q":8BN,QJE2' )15(5%54",ObS;=R÷m9=% 8+Z=CK4PH=I$5^.S'vL" 4./69P(W.1C>!H*@D7EI@0>Z 8N=>64/AK+CO%ÿ?&8&3.KH-7° °ö?ë3°PÉ„:±KG™sY1J?M#'6*C7OL,#9"Y%I,>Z%2$"6'$:8$ +*B?-X /â@ÿ#DC?(6; +$,i1FIC&A#:e>9R.+ + 9V?CEp±·233335555KHi3.+$O:$ )<S)NA&'&@FI.4G)J<1KHEJRSd<:J%%5A%7#)/#&>=! ò"@G$:%#"NKTD376ð<C+O;!,1J0).K('3+5+3**#',9(KB*2><&A/#,&E5'428+8 =$;&32$@FAF[.X.T)I>64%"F0C,:A;O6%5,.<C)13'9>4.1VF0 9B))+-<9!O7$S@+E=F8Q#'[0HA4!6D/0R0T/+0+26%(6)*2**++()))***..//0001O1@t$3-D/5]0û7>%F:;11111111CD724>D:<RA$?M@##*:.Sø4*G@ `":"#3 ;E*&H*O`>8;#N# %F06 C-#?1%c)8;F1'=EDX(=6;H4Z ;V +.1,ZG)3 0A92 &@!FQB+1ö@ R1)/E*82:=7V(  CI$' +(9%/+GNW<1'9.)ü#3--A(R9");R09L#%8+ l)2#-=&1)#"80! 4EM/0?!46%N;X&3O#AN%B2? -@=/-07c4'#",/LA/1Ya?GF0p,#$/C%  4`-'9%</3`WB@D…qP&G6=gb_U7<(<KC£:7JK172>56!50':&^2GŸ+64=E$BLAG%2C6;.  9I@C!U@-V+B5232+0; jA ($"j5S!2:B6$[;NF1C/52"=ü +/<L4Q46?,8<@'G.*KN$÷7=#(:$N +ÿ+ */6FG +IC@2P(O'6SX4A?`SLM@:E2>MB 97EE9n95B4&)7)-. BeXEB9;!<5V:$35?Q2gGQ-@!-^5#94)D0BKBB8FPPL4V†;› î,£=-³F°’&L±†`5:BFJ0Ar!??hG 2)>4B#I)!/4'1!:">WB=-11O#@ ;96%(+1,K%J4-.'+#7?<ETM:1*%gœ2233333551#w</<<@%+K(Q0 '00">/ÿ=<<DO44>ER0,2ú'.S 35+C@Y) ;19C=&4   Rò<R=;:938QA+.&+'9$]";2!%06%.'&C$TE%ú/P!'."Xý)2PK8%(-.@)3W'] -&.#O "&))BUO%A%3%><!84TV44 5H:675 0.2;ETe1J)"4 +=j)k'6?2AW*_1-?%D8 !%$91392MPKS!,5‹–H*F#1R56X>=WF-?;.B.()+?+$.I>"92#15+]j***+())))**..//00016-<KW8@,W64  :TO111111114PPB=.EQ-b(.&W#2D)/E-+G9B(W3nL6&E6+ó3#*7#.9?;/0! +A!ù]37#,ý&?FJ>268E-5M+,1/3BC">*3,E)E/131%08&K8,-)I<$"!136,*5-;F(ÿ.-:6 +z@Q?2YB4$B#% +.376]/X>A4*F8":&14I.G-Q'1s2þ82;,Y0SZC2 +<WI0;)'L+=ë)+A&Y=F$5M1*2=!æ(%0<$FQ$>?:F;+94?+F7$\<);I!$*,!q>+8*XkJ/#(4!+B.=;9PMO<@157h6IL` I1#<?G?1=S22"5O3'bH42H5 A8$%:# =MU*:"S07#'05;Y)N"0PBO15 %34"0%0+%#B<11FTI+B%$L<3@TO+pg+:47!M?A!)x?F'GC<5T5)E(>>Y<T@1-(KACe/3 ;HEn 9P4FB21;!;S&2IC†%&;>R8OL".?.9)>#a#ûMU6%H4$A-U!!+,KO8%.BDRVHN3<ú56Q5=@@.6?3F-C0*A/*5Q>\,böù+ŠE.A{! Bˆï«NBH>,64AO*.+(3@  >,B.(+3C'20þ"C%d *&@$4:-Y$G <80"=&;d#J-)47 ACA<"KT0EZX222333333-L:)NC6% +#&6'GN8" *OS7%-9O/;[%06 *@'*)#&29P8Z*_,, 0ECQ3+k +,>%/Im7;1ÿ-O;(5-&ŠDCd=0?32 %FH*C,(ýSS55A@2)2)6+"$Eg_9S.0#09BS!UL"(ô#ÿ6<Q-/&B!  LV;P)C6#&&6=%?9/>.3!4JK%DY790@$@,HVK6 +$LB@,ó6%-EF74&(+$L5 X*ME4(#GQêíX4CI>c7 + !N1&,/8$)05*P0SK +OA3U pb***++()))*...///001B+= 0 +E)45!JNT&A% 1%11111111!J2 û.'!<;."]/53=++&86OQ;G+Y+ 13U=]cG39X]/H)B?L)5&V-F@3<1?;027G@;-;JES:#?0%&EFD!B&G/-8%<A )h<%<,58@FQ&D(0V2(#,M'QR<1F=*(C(ó2IYþ:B(6,6 !B22A%JI>=!E%$F:DH#G(I7E8"=->@8{RG@7P  -C3F +)N3E@+(<)J1E1+!=2-/0!5>:-3=!)<5\0(&.U=&  &DEK8;B#í&W:%0QQ0[?0&&9/$NBBHOc1@\3B>%+%/-9-:07/: 1;57N-KB40<DU-.(6,58$,8'+$DD0BQ9Pb<*'(8,D@0*3(3*FJOA?*"$=>&0$8T&S>,%5N(/29LbY7.w>A<,'.2R7I3" $>P'JT=P@+*8/K3A5 LF27+3SA8,WTñ><+<17%-9S^7Y],P31,%o,)3M%H$%46;HLCNJAC3W +i^n@ÿ(_-;"$<6X-.R^7WD*@&A&PB0#dEA.KH=8C1/8RT•âc” uK Úáã‰ufL#ZC8,/q9 =8<D--CMC3+-(F/'S&:8G?D(D+@KY=J) 5&+1D6".5ù;#')%;87+,7=R.6-%'R(9/üc222233333RJ)/U&8I;/=*&716?'I98D#_A160(B=9 :;U4,?"I)B;59/*+H@)->0,.-ñ ')+2;-vC4LD/75K+*$8<`I<Qf3L7W~S+:(&OOI?&Aü6)$D24"B&L>+øO!\\*C153B8)?)I- N @EdGE@D6 *25@i872JA[(Y 05%.**"/9D3.' )1L6C:=;$= +9ü5/ 1"*$:22vpŠbgO7f72#8)H9 +)64 .3-* 6 -DD9!$@@5  8?T***++())))-..///001D<'  56@ ;1/(*11111111(9@%/O*U5G<>M.>;/L5>K(,H'$7E"FTƒ|gM3<4 ,ùVH'(-"/ F.+1@>G0BN*Z:)6D)'-)+1( :;);2NdL)"(*Yu%Mÿ3,"+ -8ø@(JG/%#+1D4P-7%04!.K!8?.DQ7.=+J71M>";9<&[ 9#ûM6PPK!@(>"+L% ù547LO,/<=@2)$J<þ/<ý0:6$LL B]6H).H5>,-)&ó< G$("#F:XG@%%!C@&I*#FA^>Xx,3A+P6D&WI6*,>"3A:92-*6D .6+W@7 J<#?>þ0"L1933}FEC/,8:@8-/<"DBD( D9JG&#V,8MP2=EJ*EAJH,+JF0CW/AòN/"&B;2/5 J# !5E_%'#-%'*1-.73G=C0i<A:/(K4#93F26-?;:P?9A%:,< )0.0/"G,4I>;RZ@W,P2&",,?.G:(,3(# VKB7+9C8I`82/8G+X,!\/@[@-SXD -/J.95\>V2#73SDJ&@W0ML6B9-*4 _6D)?)3tXiA`%lY-¢ÇÊÎ/¯ŒoN@398<4L$.9Hñ7*1R&5?T5K,%k9, (.H>%=>&@$_0+(/8'%J+9&/(+!11*.h5(B)J0/$@6QJ69722222333333&#J0Af#'3*47A+)**+*I(1<%0&;? A+!(- EH3&75 C3K3?;/ý5M/<"10:>FSF)1!11e‚r;C>-ä Vt74.IA>()3#*2 -$6:% %:M#a-2`#:()KE#3)G#,8&I8`).)W$7:="'A9&+F %H@&ç,=<A=+&5%(0-%j@90c ) 84+)@5Z+60P @1$!>.,. "59>HO[GH:7EP<C+(#K<..=S> +N%-6-D-OEW=! B )"<***+++())--..///0014*4?M==N9.0)%"S,O11111111 .59/$\#V810X[2uDO]]KII/#$+=>2,KwsSj4HOI1 NC?P?(1#&@0*.-)'@62/E5"=9E; +ZA>2=OX7?#%) 4P0T+J&JN,266B;,.F=J"2>)F-/.&U'â%U4?; +%R.< A`*>c,>F1,+û8-(#7HF-^A7 VJ/*8K6ÿ4F46.M8'P'BH<M"D<517(>3!!þ'M[@(34)9@-b;R&$"BB)8F@ <0G-":#;,$SY/(L +692G(C€J?QM919$2QR>+'7#Q-V00cQR>;_/JD-4:ABM P qB/I>%#)A%üS):.0,+-/:)C->þW2úý+"G=@3fMN>H,^#JC*.9,:H6.*?'V4 !)'96D$ C,50'$F.5*5(#FD&'3.a.-M&  +04<3NE<>$@$?T$95><6ýV(-'@U03;?? BbQSNGAY==\)I)$D(a)1;(*[%6I1-2 O:B3>I2T3. -)&:Ab8QS*OA6>K0Z7+L-$C9]G.*<1F%LK)=1CGYE,=+$.(@~:CSPD”‚ËÝa‰}CÿºŸYdI(7K0\:%1=:M852K (I8I6@08W6B9.Ld-F2/,37+F" /@A>*;S<L9'W;_>748* #ME)DN=E L?G"?+2222223333334,1F9 +071;':@". ó;1;@7N(5%5/2$ G9K- ) ?1(U8G < '%>A!6KbCMD$*# =:-Kd‰K?ô>49d*7/W:&:C8&W4?@û$#@"5BH7&+)-!$*)B,F 9450$0/,7+1"Q"4DQ5!&5!A93H@+0D<a!\/68$;9 >;1#J4G326+30?<7Mg@00M- 6;).$+02TI1\ A1D:48#AC.& U+?OIIE5& >+18N6?17.$0 &65(+)**+++,)---..///000FBA%7`}_0.4!a#KA>-11111111 G2E16'Dg<N'#=2y”©TK.8EP3<?+(fcgTgB,*@$0S'/8$K;:.ï HQ-%!0*'@/LW="A;9LK*;'S E5'4 $%!K;6>E&" , +AW74%=-A318'K21. 17F&,>QC-<9",:4">/6"K7<2f5"5,D-;$3$3$?-B$ [D?Mû$4M5 $;=0*N",a)+$_* !-</CA492D3#6JG9+ !-'I95þ9   *1%-+&"#$B/R#V"!@n%7)&&)8/3% 9 A7,%R1'7#!9ý?!B6A.$-B&O :!#*,'?:#>H9%J39O6*GFE]'@48M,wJ0;#6.:C9L'%3I55 $,-+%1)6 -EV%.* =*A=$<)Gd*l9Z4N2/*O 1J<+I]&3!(<:<K+G&*8P(?8-:.*#& +üE)74-FB/l)\'$/$&8b38@K.%=H2>10DH(E"71+6Q,5;þ!DN0$7&/?TBPBl6?*2I1c>aH83M8DR$pW?G*/>CWM=>3O:-;$0C/V5'm~|ÀѾ°«¼»•sƒC=, 64:5";9"3<V0%,!Su ,P)\@<&f8QE(CZ 5.-B*X.+:?02-G1U@E)#"/8/,#;8.!0X8U)2222223333333JK5!<%  +:C;, */:#:GF;7>C*C"9L.7+;<0U&D\B29 B#6(48&53j]]->"-*@8!29K(K363!/4 29B09B%G! /5L!8.<3*HD.+]BC.".7>= ;B>,+<=.V-8G.L%@;)>&960/*E(> *,>/>1ZI$7;'!F)BBB:.D+*$('74VL;MSC-5!$/2L'5 &=.G !F(#ø.0 $/!W1`.0?&=J>1PF),BL7;&$#)*(R)!3(/./LGV)**+++,,---...//000\+JI*F¸¶?@A.6 */9.111111115$2'ö'OA(;Y3!X0)3GŸö¾384'D+7D&07>L;NbN<=3=$1B&1+/<$4N7L,"?=6& +077Pö0)0(6:ûX?A'@63/!H 4,.+70OHG=þ*R$WH$VHú4)=\&3)= ";,5F:;A;ü>"E&-$J8J&0/==&"&1 #6-Z= GK 0*&'5-T6 Q&40H8.8":5S, 5'9HQH-^<3-h(,& í4+":B*%0f*N-JFS:=6<;7c"L05KM?@úN&E4) 1>N\ 5AHK06D54B7 +7><.K^8!ý68!9+@$RT3!H%,-*E!*$#*>+-9&./ LBPý07\C=97Sv~u4>3> :DIÿH ,)48;O<0NA"fIA)*M13A K40;%&,*0=+"Q,4;:B6415O,d-5%ýJD1U,4@5ñ:875Y"1?206J.Z7>E=2<gf@$D8E=+N;6(K<,s;%,NVNE9<%D/)F3\":14TQ& H#5)ESP'9^UV_OCo139G>(6*6iA!d(A0?!KC,D0 96;D2\NXs‡d}…kÄ ½™dgJ+?>#,B"9&'(-0&0%I03B13LBXQ¢]V-A47%>0423*-*0ZI:2ü>HþEJ7(1<SWöWC<T=ù=G622222223333330'--CA+E -K +&*#/K..:1`:$>WQr"B9!444'<ZHCI3+@üJM")14J+&+0<C@3&R>!-$5GF633D)<!!;\3+!C=#G"3SMHB(P^ 9> C19D6#C%@1TS)+&c%*2!>4!H!0B9)-;÷¹<CAG~&$/8-U+(7*6R;Y&%':$J&I1?=08@L$-9&;HFQM<.#AN' ,4K#B2@&&#(!.>H21/%37&EF%0@1<XA!0+0;.(*79:"65)**+++,,,--...//000#ûJ!6NA}ËfJ J$B* 83111111115)'!</&'<5R<C=ŽæuM-2%;(K70'42(O./J7IF\WA!+H-,,-H^*6=N 1R95,2=<*&,A>+%D2@-61-CE0.%&>I9"L "34SA)C8??5R#"2;b+/8ü9hQ5%@`5$'>,.3R :L?LI5!',.$D+iü'/)>'1'RF=57+.8+</O<,*G# '259ÿAT1;7OI=D.%4)QF)C'+YA:Q"2CG"$LU&-3H,)04#>-LGB!?:,EER31;%%@RE481E47&$:4#_*$  '+7eSH J@#;1(-EAG-D<0@ 4#<G 4OC@LX&953$70/0E?< @2 +!3/2*&3593B/59F##OB$* 99;).;û<0645/%A) W)I-2+C*-C76?@0;KE*&'*2B5<CB"/(6G@- )&@@3jLM<59@2!402L8O@(L-3H6>7)#H#p3C.!P*EÿG/B_JK,/O5&5_FI)FUN/CA5B%4H+<(ME-&4JH=RTóGL?kþ: 1'-M9hJ1kc`NFn‡’}h]„€?D0X^LR5?0J*35:-*\@?42K:9C05bÇÇoYOCR#97;N %#Z+45H3A1YF3G+>B34O1UJf0%D112222223333334,291-44?16ý8.QC7IC!ô";41\T1V5E&$>03E/22IO(ó7î(0%[b:;\GK6D=0+5,!ý+8#>&4"%J<4=F); <CM&/,@CC-9+#6,!-F=$<5NIF$(6S$,%1"OA=QMP- +IML 6-/<:,p(C)U"9%=,?KHIF. +A5?00?F,G,).6)"&-=*5)" D8*)%!&0&'230ø3J=H&321. )#1E)PN,>HK*:CNUI)&>6?);77!4)***++,,,--...///00"K*Wm0B)4-K>8R11111111!901D(C*=8(83=2Eai6? X2,34<BD62&J<FL]‘qfn0 +3!9;M),@_Q.J/% 7J0C+4?54N9R: ,L"(2.DF)1>L[3!9)$J$Z1(^'@þ'T 6)*+Y$ M!5?'H:I7R6 QC2L>./)%TB(*2# *6;ÿ@7- #o6,U10L8>L23N,18-,\P$C-&175;X2F8@[5D^3?þ:4[76":*Cò>,I%+EM:5933*7B+'?':/J<÷J-! +!):::&N3')&7.óF+E,6$N <D (Dç(:U@2I.H=(S9K<T DI"<%3'JH~-2'9:EQL/;=(+C5?C2#*Kr M4T9CZ%?-:C34E"?+)a,IH=-T@^V! +6 O>,#(<1BA(Sd M?:I1P&)(D 00Q41 ,&%ÿR-74\G1*1R7G5,*"!QA^MTT:(A7:FK$4'E4FH -/EA7A&A+$OU=?'+BI*>+;E?F(Y8B700T(*I55 Q>%> 76 :AC :,HA5 +TPF2:F0PE%6F7/(KAPq/QPVmNl}\`meLL*C@!;ý,3 X;78#Tއ1M(I/6elf†„DQGE5@2%?<!D:òIA /.4)112-9I.%K8Q%7B)6# %% 112222223333334V;C8:18=IP7'+@U+8 4V'7+9:Z$#2T/Y4f:8=S3' ;1#=&?T "06JC@&F*ø>?2&08/C,+N9'& 2C* ,#E.M)5+2#(D8-,);32BE73D8@@J?7 /1 )N,$B(8%99#ûR83O[ÿê%L+!NA7<UZK**6#;;18&;'A0HmF,$.%(##P0*,61)/,6X>%4.=?"!($)$4$% K%% +(  9AO(-G'1C ^&!,Iù77Y777F!)***++,,,---..///00$ !Iû4,&-J97 :"B&3%*,11111111#(1>[I&3,*Z&-J=$@9 &@EQ=06; C)A@Z,0M Ï¸Z1LR:+0, ;B:#.fQF):F&.X9DJ+SDDB?Bý882-:B/:C&;?2 I:8>FT= +5B9>" -H3d-"'! .:-##>4NAB3ø84'K3* )9E;K-K!;:01=C.86;*.?4@!Q3)&7L:.[P%I+lˆJeM€>C26.1D8Q/HA"F50/;>B9##4'HQ10'BD:F4JP=ý-./( (&*G-$D,2+8,"9")&LC89 0PT*C3?9H6S9+='3DD/$;032L$/%@ TU2cI-'_,26,% '.K!4B5 CQùB..#M')F*N&:L(O#*(KL0+=X0/(.(D*!.=C8B$U]&*+,/?(/S&EM36TMN+ ?%S@2&* -C ^Y@0:0D:ORH:1IP.!Z-27/XO]F*766LT?B6Y Q-G=I.B49@E(-4%'(=QB)A>(*':@SF$A@5"1M37_M` =)G4>"M;D*B!Z7Z#F9AP'QEA(<KLVZMDJ6÷%HN?S17H<6S/PWG.1l:=M9_‚Y,/J]E:.&8c>,%i•¸ƒr()U'T-7DC,J&7=1O;)2@8@><B;(2=1#+'A;8%#8:8$1122222233333330!^#$[ HdC0;-+3!CLNZ ,![J)20,J.8@55C$7'7<D@=)37= Q(3/@I&+86%&%+3-/60*8'3: !%2'E"6#&?8&,+7B/=2J6=8-I$3-CE4S6:E69)])N5AU&)$- <##.H? ! +UE +11#9! 2'>ù6,0.%I0=0B!"-;1$<!4'C$%8<41G3Wö(D3</07ùG;+@[<C6YQ;F%B-<"".M3"5:)91"V=R)***++,,,---..///00/ 7C0%?L 0J;<,8$4611111111D:%..: JJ"> *H)J-'0&>"(=1!2T=)5¶¤F(3EO>*X7"7($55Eh4-E G5J`*%ú565@/6 !;06:û$'1.O#CC#U5&0%(L9?'<D:@6IHC1D,0"  WH;Z)-FA99>@%S?6.2)E,?  98+-/5#;5 I60&7 C>UI//70+)55 %@/$***D *:K* +*:)b/;=,$*276V93*1\->#L=OGB@B039!5<0NG10 '-ü='(J%)&:-&9I::O):J ]<I]RR8+8G&<74X#8$=3vNc>$ N9)S-9OCMPT?^)%LF^480 HE082&?785?9I95G)J1:8÷$;/&$_07 *:M,5S$DMXA;>'(,6)=U'P F6?8J2(G3@.-> 0/&*DE?<")$%32(-&11i*%J@K:J%C<.;Cn *M@G1# (X-O)CB;ZRA./#R;N ,/H=M4@'=6D-:4ý=I@NPYX9)'PW5@C5>AR;,7?-=<H? \*fmQ79 d[+G1$WG:"/_S3*I/DJMd@U-"\<?B*Z6 7!CM|‰°‹SED'%ESA5"+"HU(D :C\ +Z18GGQH5$ 7KI7;J @:0,'7õ%Kú711122222223333334# +=;63G1611'G#5F=+cWTW?Z:(%#42 &3H/J.ZV/5NG%&*<-N &3$/6>&, KD> 3M+>(6(N/3P*/=%R0 " +,24î.@*3.4-17Q-!7'ð9Q372<ú B#+B+2;GJ3'W34/2a 0 9K4L, 6)úO-7Gã!$?/6E01D3 )&)-9<&=&8)C,'%"5%+t388%(!7ù2/&,.-37:,/.M =/û"9(3%()Z ,-08S?)***+++,,---..///00"-0Q=D!#<1C>1!$:/11111111 ,2RD5:%Y:/=,@%"-V22a)9*Rk}h6)YE81G:Q^; /"S-Q)K$Z(<P=rA17F;DS)?0:^(8,P8*%;,7NOD <"5;4$%C4H7?,>A&Gk5AbH-4.=.Y4'&6;J 05D96V$+9D;! +!-;58550=>>E4.J2I,0;)-8#6#,OS8.x1.fEM@.%>% / 3+>?O[,&7<9(08++,P,oHA"CB>G 1OG"!G&!(.)&7))8QK&<M?(GC*%;:2(:H#JAPF%~-;E"<I). 0G.# O<4L;N>#8&4*:I<R%2J6=-"H0F<'P#M#I/U'">>eD=3@:-X#:)B.-E)+B)D3I&6U6JA:IR%VsL@2I+'98M?7)=N;1,,Q7V=72.#-0Xþ1&=]'=$M;( 7A-*0KDA#6!47F*THS'<P2FD>2&F)# 28I=G3,+D84<=27'?J41*<a,90EP7#T*8:T0/3C>U4fbU?@Q/8?'-99BH0<-@!>4)F/-5W +3.wB0Eþ@Ig@>%/N.D&+/$,a,F4@2<\…†WBKK6;ú$> / +1%946PE,38)9P)+9Gc5:4,S"=.b*%.%"D+19*;ÿ/û!/&11112222223333334[4?D=9`:S`ê3%/'1U‰‚‹TRDjD<3&$92*+:7" E?GK'+-KI/ 7.2 U +/(66;+).#2I@D'F4ø`8'7-*(M-44(÷ *F?<.S>=L#+,%3:, 26V1 =>,>;!?F>û.5>#+#G"=>Q? +)7 QLO9//_1A5:=0,'6&??]8+#L>3$)=Y 4IEžqHM-@0 W)#+2*N8?03#1.' +57/1<&>.=5!$D8þA61C+LCE0?,))**+++,,---...//009PQ).N/&!EQ$S916 8111111111J6 *,435S3H#&22O :+;ø.}•‡u:/^I/0)J*Y?:J2:HCCA1WOS"CG#*6! :!*&K#.+$&KA638)@5A,(j%6;Y<A3#9&'P]+><A0:@ë&-=*7+E*&0B@ =5,2B4..)Y?</4*9>.!=#B4)%B92.*!<FO @\F~A;7#;!!81V B@4$ 5%5&!)$L& K;'\Z9J$.)2<#; +(D?!).$&D,>!#T@? +2. 5d/0OA&*D6.I;RH;3$8@^0%906EP7/*Y.BR@+4='2:2;1S!7B0$.(#;7']3"(_9MJT M<61+7G#2'a9;8+:J;<7),V83:=-&Y]L:Hù..( DL(T?+%`93&" 4"V!, #  3<'2*JD 1 #?35610')29'2X6,3;2E)FD2:421#DA, 8D_>F)7@4;77;@F717:B3DO @3981>**<Q/u_[=%N4GX9337M'!#!3A,(A[7N(\@RB==J:+-j/%$+(1*.<>ICCIFA!å3+Q I*E2-30%+4I&?L;Py)AM#/:75V2%'H$=(25@9Q:(8"JTA7<L ),')L;8<*="K:; @: "L6.11112222223333334"/=I/"GP,=:33V'r¡’‚DiID\ 0>8D[]F</&1$2@$J.D<3K45> 33-2 9>=j$L>1!#=-C@*"ùA,2G8O!G#6%E6.,)-+.@6='d]*(/</I##ûO#C$=;!-F/_*'7"g&> /B5.!)34QO068 9!(L.QCO1O9 =T=%%& ,c9(?32KG_9&. 3*-$B8!=Q#2“_!3J8DP9 + >4H>0iFH8%Y$:Eöý=20'0 +VHSJ#P62_E))**+++,,,--...//00B1\]AR,41  01A÷/111111111B<9;J<$S#3;=!KXM8;.%@ L< $!5P`E9Q,"S6î( 1!E ":>166/C?II÷1.>7!B02),C'L? 2F$5"B2J9t"89 Jÿ2K)2P,7,3C\?;:$Kkn"7=!3;%L:#2?8 +C,,!3.*'!&7-U ?#)F6)895Q[E856==-#49IB,@/^ƒE21<71@%;-9>]=(1# )<Vx$&/+-5 OK5&U;Q/ '`?$D6}@F1(B0:(5.R*0O5*(Q:9Oq0(44 +ø2[)46QM?eK@>$V57#.%+: M#?1&A9þJ7V8&S(=&D?4+EE:2Q øH.-F<)MêôE35Sÿ&HW5 64,,'52L3;3]NHZ6&&I]$$*=463C27C>$4+."#.E#!N>D!J"9X.2,$17$D#_þ8(;%%;S9G]P%26&&>7-E,&$.=C0&;+<-V?$Z*+J1M *)8;=,E-FC4D1(R9:;; +-0NJ=I*&^ Q>LA-J;>@LC[K.M49h39:95X?O2!#5W#>3c7C41++HEJ0EK( CS0L6<@KWB@ Y(-MU"(.'A Z8B.::53B@OF?30,2467003@.03D3,2'$11112222223333333)(.',+B56%>*6**,Ga|‘›aT;F7,#P!' :$2C:H!;(1?A<f".&0(4:H*?!5:*V@+Y'$+0A09A9<@9+D; +/ÿ>:(C.FA'=<) +,65Q3 .B!A @'(2O<!07,HED='#â JA41G6B:s: :S-4 &û3J01+$#4$5+K)2ý&F28(;J( !+0,,'1.# C"#+:! RiY+N< 'I<&.'9<B7H#M%IE=6@"MO.,,2L*S6"!,))***++,,,--...//00:49;:&21DE1/;3F$111111111BE5N: 'OH#.P&1(YY/'/6,D8<.*,C(21,+%F(3&45E?1<;%$7='J$#$?#%P.-c8#4-/,3"2::5B,ND(;%þ8&D@bP-B).50YH?1:3'L:=2)%5K)P.?$#6<?&>A4!9 +<K6K %;ÿM$!4((61ÿ3,M*HG'8Q0+cGx&/W11?&!-=@@C#/,> 2H?9,*@X0B?$ +6N8A +73.$7-D*,&KV@.9+G8%$C/'9IQø3AI)$W$$1Y;õE5CS1(7A :÷@=MJX)A (717'6)N*ú70HL,E8"F44-?BC3.7;`)"&'2'@-*6,bY,?'7$'#1,<G)(*!'!B1(.!Z^HM8I?AI+0&-38C0Y=5KIF--D48O:+1.;U/1;YPô*G3$95B&= ?ƒ5UBG1F<@.$OHFW($!)Q5a,K_ÿ,\)*%1#D'@I0+8B5)DIL/?C4;VAFO>B05,b )/Q57B@6C)WU.M!3#@#B-3=*M 1J`3O >LE6$+%( +BJV@2?Y*I$T+@*5 +Z<\+Y,G6")49*)7!M%1";4&,3B.9;%9.XFN8F0A-jM$B4M<F6.5>D:C!+9$0;<'/.K2[2711112222223333333 N )(79,M: B  7REFWt©q_**4@/!)ON#)%7N!(')"(Q7%0Q04&85:%=@!üaûa%8%-9'$I-=( ':6CEI3"c00HI?R%B 8ö)@6;? ) #,O ,8$2%/ I/H(+5K7'%òRI@EA :&;A>$# S(A2<,%õ-98O1*)!G$"'<Z: K^7&?)A)(??S7#06:9*3mL @<FG- õ0" 9ö(J)9*6/,&3 3%7 +=4$+B>T&<r= @N:"))***++,,,--...///00 K-!6 /(#K>:C %P"111111111E742+&7BL @:;.&2,dL.*,%N5=!553+:Rf*H;(5 ;78:R*1?+.59L.7/5J :;HB6(b= J&'*<M8M%#*,+L&8'/3(5P).+A6A*3'S,öNSD-9R6?SCR)D +A,8>3=L$-&PC7&(@T@OQ+S#4B(*8X) /'Z!8D4>ÿ_B9:<,WF'=64+7P0,505W1)#<ú#F%_3!86@cV$2#5/4-:ÿ$G$D$?\1@?(e3V( +'P$AS. =>?.Q#=04AQ1U1N\94I(,;92L/) +<>KAS00V@;+"H8*"#3`#$D?(H?K4 R6LU3E5-3 :*7G;6M&7<H8;59O$>9(&L3-.9< "4Q-_<g+O( +5Q"#&51^9C>JK1A #5Q9*8Lj&&>0L)G5-B1,86R1<>F7<G<#@!75-÷D&5Q- 7>8SE4" 14D-$=(P+433 0L!WBM5& 2<0),"'K#VN+<3. @&4S%HF8,64C 6,-.CA)5"KF@VFR873JCG$?,Z2A>K4eK,( (X-YY;;-*b a051]K@F3+KTFþ?$,4)*/)7+@E; BB(&@3#87:T60%5(QHL398B)E8<#VM26<&#@/<J-CG;Bÿ#(1111122222223333334 B(B7@17/#E1") :{bj!GþF/;<2)@(F%G+I)77>-D7< 0B!  !/5$5 // 2(>"?<0I$<:;!!!L:G 85>)+& (C04*OM?K,<IIDI55>/Z' O9942!K01' :<0JW> #E0O/-0.AC+9.#/hH2.4% !8&"!ùT`P!/K;4F02 2@< B3"FQ-]-(8Y,/BN(* >%>,COVW!-!@n [D'P"0%( +;WF* +4H))***++,,,---..///0EZ93ù8<#9I8 #+111111111$$8506 3P8/6Y+<,"56! 86'ùT2#'93h0I/B81Z[lMZ(/$2.@974I3/983LC!2)'0<$I<,37=#9k9 OTNQY&YS?H')H5B7JE + &#W[XR.I>HS62#ZQ6@X1O!E[7Q?1)/'I(="9/ý!@:.0 7>=9*Nþ:A#V4s^AV%DQ->Q2S'`\9*@:O<DcVK1  ++H#3 2!5I9ý%/4(2,IOGB`A_3@E1B2*[#%$R=)(!7t&=,I).E2PJL=<+(#g!K9<837(I)=7(,ü:@T4 2-O<6:8_;1.A$'s!`8G#G G*,3JïR"32D-$>+I!70/*&IVuW-;;;+,_X /FGHZ/d<(I=7*`<Ob<0$C$G@? .@GA;*þ?E+F3=L5T)+X8>?2"'$ 4F*$E3? ! ß)Fd7;5.L<L'83B]P44Ni?TIJDC/U,4H -*"6?F2`D+u\JW2+SH/1GXH,% +51C4,IR)E+20'<`%$ùCg* `GcP+;,C.?=`-;H7A(%@0%,1<5-7-';+/HAB>50=[,A97I34-(<8ü:<3 /@^ )Z8I<E'A8]R5 +3--$1&E/K./H,4ù030K?7.1111112222223333334B#7( '0I-1;KW%B< F7<G(:*9ýk$I-#,)CBUG>7Q%O.:D0EO> +8N*% C-"ü45Cû$A (A0!6/5@,0*)) H/U2*%%,-< 8.ÿ=÷ <( =LI1&4"9G4-G_$!?*!1+<'9+(L$?@"9 :*E?$B +I6(00/ 9B<"èï%B*F%R>FN.9,6&('9,DQ(2:E%6,D&\6G 3I1<(.#%J4#J ) "=,.LR63E-7,QC$04J=û0-5÷*U.0 3)))***+++,,---..///0\**= 048`3M"D4#,111111111Q2:#(9La/A]ÿ9H<6C B(ÿC45/27!2?þ$*!4<>OI-H3;)%:@E;/$(4,R-1GR89*+.;L//</"J2DF?..8J/,÷X/W²P9BH4 3B>E/%$%< -T6+D15k\#03N &3**)!!4+ f@G-G*21G@-%(38./3-:.2; 484 _ 11,0PMF7"-%LG563VMg-r$!"2XiAKL19(&;,2A,'-$*>"5-,127Q7%*UcBE8(4J62-:'F2F"$+0c1-.L4>*)(+<044%O) %NCC<THZX<P/"6<+0R] 19'<$8D=2#3:ja $0U3,7@(F 3=c1/FD3m&A05AFE2õ0OR4ET*.6B:U3;3J%c%-@4J-3.p%V23.QA<-FQ%?O 0B822&*"01?LL-"TO6506*%aU>K /EIQ).T^<.X*++1%H56+.| M53/9, %%AF>''A- (L>.oPCA:@B5C@ <a##/)(.0BRF7J.N-80?5(%58<9*;J;3w>LM?R.&)BKK3^B.HŠ.$+08B;5:08**;/UG95=O=K 9505B3+I1C@T1H@<<59I4lI!09+EP-5J+(UZ.;(LNQL:?7?4)BQ95+) /K`*>':1111112222223333334&GBH> 3zC3C/(*:66:HB(M"#.  8  @*Q:1RI(!NQ23'7O$  9##,1.49&6!9GB>"I%;/99 T+þ.;Z92(XR->(5K$#)00C(%Na3G'CZ&77A)*b4t:D)1=@'%#4BP43$!>4"BA(, B*'#%%!/!L$0%@)QL,<-.Dx:$CE,L\d-26 $1=6, 8 .+;:ýOGK3O ó/>9P\9F 5,M:+/N):.05'U",6ù ?)))**+++,,---..///0?/$Z%0,!]9%9;111111111)CL(L&U"H4/9((mNX-B0 ,Z]E÷=ý*M +)58>7@@;!A2@83\$=":l;$>* 8)$>/*75"6 ><KR)K"i+'6 'D:Ucrz8%)$FC9(.%+AH'"()-8G,8P-;*'/2%6F *O,0BUJ.%EG5<XNI&;@A"%,>"8-D*3Q$ 2?0H1G=0 *%.J%8ý$/- ø +/T(&&7MY<7N,C%;"KHDF 9%bIJK#-ûAGGG*:)#7IG1E@/?') L2%#.PL>06&,&[2D$$( E-+3Z=) 6;35a™}R133P0&@!=1%Fg@,1)G?)VC09>*U4R42EWZ*8@f0,&86K$<081\?/öI7G4()L:CV8L0ý-"=)>I:Q56-[ (PJ*$MD>;,[7F4S/:)87O'!,5-4"4)L?7!a%P$/Y1II&Hb: I+0/0/6M;7!6]!N@DT+UOO;00G1<?@J))+/L'33L;?N3=%"S?T+!,;9 +";~;#PC4#P\#N)ýN,/LOH>T>V+U<'H0H1F/A#/>'>":%-E;<(9R:;,E/=-6B272+B Z$:/'q75@Q=**:=9BFB8="G*M%0 '9I:YC;@S<4N;.M4UC"3S=+/1111112222223333333ý+\30+ ;03Cü# 943?935<%5R"/(*+*4A\ 746N4.<J4<-Sþ< rO6D;,/ "5'6*2 !A";8*Q&CT%31.=9)(,"2 :2A,);?`3(:89B1/)+6<, SMý73?%k 3 'V #;)5G:7X0L$>/R$ N#?12Hý'((þ7"CFW(+?7H÷$C:"X(D4 A>L(#/A:75!5E0K%L'1WL>%87?(8),U=X,Mf/;XG(!(  +$)))**+++,,---...//0#)'L03*96 #I$111111111)G;/> # "5Q64.,A4.,-U4F$E;#;%<&%:V2?"5!(23õ=5-A3+2HD'@ d:%T(O3+ .M1:27S,|:.IZ,,,2L#,G$MT15+IC&@ 3&b PM,2=:K?;#% &.HO+8X+-+ 77L'4M%H*þZ 1;A@N8K-4#-,J/ 9B)<))@l9F/(#1 /"$Q<H,"A%O1<F65wP„N=10", 971+#3Z#059M'7dJ1J:DB.+J4?50"&*+"T2 RI+-:4G1C;;4,2M"FIUV $F0=b)Ò±é3M-"v4>ILA2 +V‚@L&M -PE'A3A*2 _&6,485"00:1Q6&E'N0T(E1)75HKHIZR%$D]DKA$4M:P2 !A7#DF:D+,H60:`>J>4B.8 +EE(1/.([C21e^*/BMS1 O@53;^9CI?N//P2-@  ;/=Q=;U3FA--'X"A,V:)3<+_B:48['!!;B7#L /O3VW(8J+)"(OEOAù,9N)(0#HD7B=3XI-51&O=!@9;,#h:.J?].%&*FAU:,@6mKI,+(7/;&?@.9)*()FCLeRH)<-9E0< ?2K<(F;11EI 5.F8"7%A5*>6P:G006FL8* 5+11111122222223333336=+H3"J4!94"-P^9$ $6N+GX?:02## 5G!"?*L-D!ÿFù!s/=R 9`;"6-+&) +#&'5;@G!II&-'.3$U>98<þ.B <(6!32)#(ú  :=-2<ÿ>(4!!!J1%@;Q!5G-:519:9?1Z$"@:  1N*=E8?06/I- +S!.2:T%d=/)-?FB?D057#*D  @>S@'G+;,!.G%+648 G8M&5)%8I?G&04) -954,!2/H2 8G:2"% +1-&!,\)))**+++,,,--...//06;@A;K!"?C 5 07 #411111111134:C.;Dr3P,N U*9 ')/*2-%A"  =   +* DO' -)?*);(9(BN44N0;3 GEP*/&>D@F5J 6?HB>3)@':+SW7FKW,.3DW>R("1/=V4 %=7\\Wn=[1P0 6@+;62)*5&^IP($Ra>B(&2$þE )@@ 18=<@&; +,-;EW=?DUS?%þ"N1<?9,#)U2a)7I)5:@57>0&?1$!F(1+0<6Br'i8V&L56$-G=$%þ,J;$CGC-(:K=.C+G7"6=9%'O)K.mÄW ‰ +'Â’D#0H-*>KBJ, +.*508/-b&02;C=>?ÿ4$5945#'%(918 F 2--$QS•wN;B&8Z34&]Z?H=4#"LE8</7O.P?UB24RK)<M.@XL*>^J32#-9"DF*")@*D&&'85!7=Bù&9?(0@;J.CL<(1OQ8#)EI?A80X9<;/HNA;C8O$WG-4>+H-F,RV@\".7OE'" +#+1>*+F*H6@k&](8?DB&HS.0?M9@/B<Es;36 +F'C,6'"+FJ+4';,TI,54;QAJ4*WR1%7MS9$4/0)K90G(G%B!%!3>*.6>&I99GD&.&A= #s> 7=7?5')K!22P1G01111111222222333333A(4%4LBHh0SOP,)) 5\ !034@90B&"E?22;G055=:/N&-)8'ÿ-A=$%'&$Z) $$< ;GI6%;#7=%6.>B!8:946B?D$'DL<9>.?440'BV*):3 5C73'DIO0+8F4:Cv,5N #& /%!,>#-ED7KŠH>3 øD+< &-)'("ï#L,'[$E +K<2-$YLWO)->/+#<A;A)EI?+/6'PD/.&O.Ab?=%2?4 + -7,.!) )))***++,,,--...///*W(@, +"B'3_,X;1111111118A29`(R1 ,B8+( 8N(-,>H&?@,;8($%+/M3R873(*4/P&+" =. -74-<5?L9B\ 4),:"P"G)M_"2%UCaM<F#+4.8Bí.>GB1DJLQ))8W5$*82#1OJa>.W-P(`]>;C5+K .h\)+G7/K9Y:Y3=4+_*/'2k`4 %T9W$PM"4E''-B )39ÿ"&7S=&#3S7" EAG. 8 7%I&>C'-)63(X&(o?h`R250%28 +.5ÿB%#>'1HXP',';/OO0H[.-3,<O "TG7'3+K0Mz9¦õ €‰$?3.813A*úJ+,7 =3%.= '3N'GE)%<756ZP .,D)EG6K"BaF10(,*#83r41MBN"1J-"ýM=!0,?.13("&!<K:(e2$0+=P:yþ$.21K&0I#j99&:CIV.:;B-GA(%!OC!%,%M5D;DE<,3/=;">c3B++\,A'<&ED#R19<@B>_-%7LF'>34DIKS6L:v7ZK+V^d -#5/IAPK*,1A9VC\[*00>+Q[@;2:X50*%]P8LBcK1&HF"%G53,<B,:O?'9`&%D>%)<:+0?2JPG;MT,*eC48G[\@5Ba/,*,!c..3>/ +9TC4@/; +:B9(?W%NYW@FHL'ÿRAG0111111222222333333N!(A!+59$/+3X0':AD'G4D+6AJ=Q.+-/0-1A5,E( .'N=J 1!ITK><*-þ,8 ,#>".EI!(: ôOO!%>8-@4-J(:.0Q$om?5/JUC(I2-/>U+7 603U3H0Q]"RI)94ý?L2-!*D<7%#C/&&2+*4@4:d<m,8<69J6)5)LKV*JH .9+) # R-<@M3 :1K0ABG65 ',,#1-L'9:7(9(9:1+2=@''4FGE&&@ &T&" +>;())***++,,,--...///&(2=827JI?<1B)11<111111111-:%HB P:$ù=> >2 2668A[a01JP,%U.Q2?.4/46L3B9&DH7*;-?6S20H5.?8Kn"$=.  ==8 6#(R5::7+5#5G@ +I<H5 =;T76'*N8!@2!;R P7"!7>FR;B+5 ;û ) >)M1+I(?:ZA%>.C+(2,/,P_0O:<KC)$ %2@>.!!U I+*2I)Q!H)@ *CLHF^3FA0D #Q'7Z"?"94SX> KJ@.5&(7%*2365.I=G 2.PC D?PgÀU{®R‡X-=$G4#1#@.60*A2'#%'$ +L:;.#N?(>-V5 ;/ 17A(658Y;,O2òE2LAB(LQ#'19C>3)057'/D;@.%"@%9!> 11C<yJ9 Ki9ONO67S:2 +<T-.$?88A;9E.E:G'Bc!*(P)IE91=R;1"B65-.?$F;".#&%_K02\9$H/R]GE-H7&5B@KK1J03]W?Hb[(J^aSVAfVNB>=)h8/C#H/DTG7VBY;S3/--DA'N;H)-1/*(\C+ð U1-64%!T(94J9r)<(J$+F'+*@*7"GúD'+163,8F?E(;R<F+66,/;1;(.2!0 Ve+A)+8'D)%C; :,0111111222222333333F"FF=/)%B=/[7M(:a;m'L"÷7 '÷6$>(þ=&:'H5I+<CZC#P84+70JW(:(%;2)ý0%Wa 4#0N&DB9WG!2'B.:1*=ÿ4;.7(-/J*/,39(9=X4/0[)5(W6)T*-IH&E<KW!8:)<%G"JXBI62K);[J>:1cR4?1:=&I AD[8B=?3)+B6)>1 L-@><=3BJ, .$Eü$.><,3<)d%P"6*C6* 1NX+%2$@ =-%\())***++,,,---..///64)#/12!=3K49X6;..8111111111 6A?V94!,*+@ 5(/?21G*=J3+#('H_%*'861-$M3ò5%6 '354.?a:(7/(E+4;+øT0$1)nK3QB&-hô ?/&M>/6&0,4NB+K='N-)603#NU)*GKDQ:*%'E>Z-G:E$@-A?4@?')B9+E2)*%2761pL*;/48M,%/9 :AGeiH1+ 1?1*6b );:=X"33(6K/:;O !G/B0 .$@+) S(&.,P/,)gMSFB5>-++< 65R* /-@56-(9?A?/:99V*%> D1%9D2cW»úä‡5@ 2d`-!)5B%1%Q729B442>4Xo'F74@-8 ,8.*21"!ýWQ0$I)KC;P1+#':W>74"/8260KK5'ñ-!G))72;'%+/IC Lw‚dT1 0A1-ôF-?4\2VI;=6%D2'1<%Y<\A2*-%<I9=0&&_EGi"/+TB95<$'û,##?:H.04=79kc<G-9GFHM9%9# >4>+?$8@Y.$15DUI ?DIJ=4) #1K_((^8J35T#!M#<D5*9W(.-:+960ME<A80J%=LEJ4`3'.+(&).E8kL6&4b )'E!AS'B;J8O2)4C#>5$>5I3) F9+!9X@t?= cÿH#/%g"%(A/ =2+Q/9LF.3D4@0111111222222233333B2)99<%GCRN=0?:9AE6>;@'&@.C5)!CV /" :ß<$?$$3$A0/'LRN9D +9)2;B ++1?A7>%C%RA-7; 1'.2!M<+D +3%$3.,)BQ/'E0)J?;23c+3G3%=*!4<?US2FRG*!G--<9 !( =655?C6G%*'C!G:d>2/ü\BG;3;H/); 4*$nG'Q5P]hD+CV^V @,Q(6/J@!)O! +'$?*$H6%Vþ@($A@:%<6 8ó<@<'FE5)K6èT7NT>#())***+++,,---..///OH(G'-" MY)P(I4A1%2%1111111111<;"QJcO7C)- .$,%0DLC?@WI /AC7TEJ3 $':+ý21)2F4*@U+.%<9,8*",I-9*A_6; 6J&4R64((#2/50> /)>-#eC06;-.C9#6Q:2^"%.=1E"30D0ü 2*0) -24$0G1X P> C7/6'F%$ÿ?36+7:F <8,;:9 /#M&P@(7@ & ,JU E7\:3@LC#+=<)&04^.;XPO- 6HD)237]5-;.T,S6e2(S/A>@6L:EHH+NX(46+ =3 !E?9Y9&2JKU(=^^`iLD=g(@"*35B>[P):15,)Kt)`35 ]S0D $N"\B9(1=I&0#7KB.'@%"7G7*\DB,?(6I6 ,)$".BZ9G@.="ü(,b#Tªv$EE'ü('=-266%B:K3GöLD5!6HE<::,)4@9H4L%7>5@JTD64E^0Q(# )+5?6LE (!))l101N$>1)B"((],c&G0ú$3;6!F(H1r[Y;J ;CN7&=E9U@=RS?1IP^e>CJI6:Ld,D2@MLIR'3O& &@>(`IFI(PU :'S Y4+681A:&LF)?#5=0RBC&ED[:,!"OD6U4JGx=DA:_-\(UR8971GD14 0(9>GD#%L$?D%#JR0111111122222233333HS4#-;6+28f.CN1WH6-'556IB.5E<$,3<0G0B4D'#N5(;>U(,.!$28  ,E,&?/". /ô2LM,7,/I<+"977/,F,:F /F74?&#$)-; "*.2#;3?+Q7<&÷ F&*&M&*+3Q1>,$!2!;3K& +EZ/&6 %7<4B32'bè*44OPHa5I2>1Uý7-B1C-D:#)#M20D/*8?80ÿ&@9 <*ALþ9Gb ýG/:8=,5Lú@7()))**+++,,---...//'-,&!.A=#<+R0:[<=1111111111C/$V.Aú/÷D&$D.Z>N:2*: ++:*Q4>íQ2,:I0+9G*V!,/111P1 +$KVB:8[ 5>"0B7N$ SUJ-( 4G=3*28I6)!ø!J.HJ2S0*ï5M)e66+9#Q%0$_1Y );[P/.(8ú?#%<A,%"M;H+N8.D!=7FG=@$0 4%V -@QL1;3u)FD=M&! + &,)C]&0û7*4,2/ KH(D 3A0C&";@.A7.913M' 9M(:?,S;@//('(B82<÷3:'+W3)'6 ,l+C 378DQ?"S5.,$XH[ -#%Q&H/1T&95D$2"C7%/5 @+J).4- #NZ,'#L9{K8#V?''A*B<%='H7& +44A÷ +3**5fB2a79?zÙº_C+=;36"'3H472 =5Mg]$^!127O/O=@G2'I;$+<u—I.:F1MCEJ1E#$."*79Sv3((47@+-(K%((-65N/N?HD3H1?CT-M[<&N49=7Fj23.d_ +JL0>>8]QYB6T4;&XOD3&=B5Q;RL;;L94A=+3G%A"+FH*Q1*>R]ç $6)):6&%@> +a]9!"<.?&$2%U.*&L@ -"5* 3KFGh$;)YA&J?6%VV'/J.(S1Z5)1A8)ï:46,T/0111111122222233333J&C)=<9M\( U!'A:'1 )-$"B67.+6@$!) 7H #7>K6-)*6+* + )GQ:2K',B8EWI&A/<7?#&&J91.6!32)=FG$5!)< $#3$,^;+0.777EF, &ÿ); 5.'(ND/1,C-.B=/ö!'A&D3@(V<4m,,÷ (C'05>J%9N3%&1+,Q4Sk>,Zr "*U#70b B'%370"  '/>(E+P'0%1?-@157!WI,E#J)E#F8DI ?3<22&,,()))**+++,,,--...//:$/2ACE#F=RM1-W111111111C4&<.9)T>44'8A/<-*"8DTHS-(<:%AK/&/Bf<RC&4(3 :9/J87:&283&)A2K>?":$[`C\6$8?;`5%. / 2(26:<!L@68E  SD>91)($$?0#K#13%E$(% $-P#7&+N@":#/9I3&`,IHES\$>J:.<;Š.*9*O-7>>($35,/ C !"9Q$)A8L>7(BO<d%W^e;%8+R@8!"PW5U.=NC >P..42-I4,=-()0%*#"NPC>;7ô-!-$C)8Y!:)Ud7 =P1S^FD8&6A,KC6S-!X</>; %/%G/&OF[ 50<)# <&9%D+R_)XG$1j365/-%7&D&,!7/+*C*71$?6P:7B4:" MH.ÁɯN/kB1_+>:* ^ 13$7''0?NL7'F96RW:G$JZ@aX‘IF"OAulS;T75C)1HChCE*NT!?J8?+P , E0B +4ML/"C#O)$ ZPNø6D5Z;e7,@ö,P8908SN4%-.LM!AvJA86Z-K>-N5)^C # ?'#D2OH:-SS/2"7@8L<D?$:<B<\0EJ -,FúHD45@G43N?0,$S8+)! BEN?'1+/L2ð8""-3V;0#`/S6?H5@$9001111112/22223333362:'$/ *2:, '$61+18=%]:&Eq5@TM5C;7%5<#0F:0"õ/NIG/<6A<*:>/=H*-F1)7=)L2E@e1)J<+ %+!KF*&.2*9/39G(#CAJ@66I$&E<Q#T1 2O:8#W'ö( C7,$%58/2)8FP3),#7!`*9Cý!;!Y P'"aJ#I(5* =?Q>.4aýFB,1:!, 6"&A+>9;6'<;)7=(1??+Z420/)@= =?2'/*780)>;6ð()))***++,,,--...// P!')(60*a(F?%>O11111111149+:+GD4FL[8;8824&04=.&1D/(4õ>&#*7D727'+-7@E6 @8[ 8?Ec2@7>5)??01A;67PJ)9-74R!L3?JC,"*?j@28-XL#'ALü!,B*560P@R0RFKViK1<''$,,AB<E+($8#U6B0B$B.9K;3CJ/6(>;34#E>'2Y)#6..?.QWCH 0:62:!),B%A<$-)-!;V]@8-G=3B@H=v³J.,J4+0 ABU&)R/09O7>> +7H@,!W9L@-%"G 3*%)>C/F<12<,) .8@*@FC$,4)[L/2F[978' W,3GU-<,*[.M:(:>"#:CK">E'G<"(E+'QF+<-9H)0õ2<7$4:>(D#O-62B3Z`/Q/5Bv{{‰dB[N4 h#-2.',7#\#0699rAvU=C?z!@80Q2B"P<R@-4Y$4Q’«Æ}F+0,(=0;A<AAk1$#D#/",8:77-K +50=PP>D(3,J>6"&G_.3]#3*PK.7õ[MBK8'QB27LB2FE0_*)= 5H3H  cQ&$S268B786-8P7úU0P)G-FE/P:'9 *).T4)5.7&' >#8. +-+6(/";"-"%J8C+ÿ1C@LGB]m)B/A*"=L8@#"(4<678?B, +F.0011111/////2223333<)-35L"BE&7LW7!M<O,;G=,ZO7!<DJ6Q:>G=b=:1 & 2 $*&?AF-9J/'??9K?2<#:?/5T3Jûh'2)@ '%2;&%?@3. (!- S/' M.0;"$i",;=TD.0*N0<&A:U3FB'.J+BJ*7D# 0)\NF/8J566V-F0?*C7C<B,3N'Bø8%6B79ü2û>R,?X6+ 5!$ 66Z<S7?)x1@=I%@393A LAD4+',IV%>8+&()))***++,,,--...//9=7\*843>327IIXA111111111"0S3-7I;K05:4@U N!.58 +%^^  2$U420P<,=.<K+\15/QY,E 13R A.%:c2&(5D+41<E4 +<('$A=*0#9C5.#6E'\4"0Gi %.U5C61  '9&P#&E>1*4*ü8mM$DƒdvNJ@2:A?(H ),+BZ"F> $ù7:A$-).6 0MV.P, ÷Ba<99KG7/1=%÷>UtOR283:I&'/Q);) 8839BC]=3BV2#HF#AB#Añ-(>I)A'238,H1"3Y&.ú#."d3DI !B=4ILG\2/ +Km894%d Y40 4L9=1&9%+2/UJ@R'D;%)!D/)D.]+,$/-05@MYC%JC&OP*7)PW)(<WtCEJ3:AI :&B&99O1  6)4L.AElp:MGM'0$3#*`UI%H2<N%D K<1CŒ…D %D(0EFH&]21K+;J* )((P`d)/ ,O%E'D+]J:4D(0 .@H>LZ-RDP0:VM(<G`RID +)18?:dHL6H+K=BM&-@$#H,(>.<"!5 /1&d%1<C+N*"4<<'%@K75C6G*1)L7>N/;2JV/*:&ESD9+!0O?OA'6D&@)0(4"%6S>NDC VJV;<0001111///////2233333;K)J1\3O0U#2i,7."15(A15++0<#48 :D95rJVL)++6) >þ&=FF(C=5.398,4 +(0>.E7",@BC1@/3 1>:=5!8¿(<"0*-*GI%F-9=L!3I+@-N#"$>-".ê,4&XG6<1OJ6? 4F< AI-!8:A5J)$*5A@/P%@U0&)GB<I>,G85:!8:25%KA#&=#@*#5A8$:*&+WG$0.C>J+B :%6+HK#*=-.@ ò>=C->>9((())***++,,,---..///&'IA0J+46J9.6+1111111111 M+@G+V=-T05(42JAM*?-ECB 4+ D'>@1!<ùBB1T*3EQ;E:?pUA<`LJ[/I9&F&GI<=18(6B2ü_^L-;l?>76.\4I?;.::"6FP"=SB3G=%5W.FC"#x%5)xT] RC[lXS1;954+d81U<HDIR-R4_*$#H902_2Hc )N&)_(5<J7R"4->!$C)(OB/ E?%X!0@@(%[UA0F@@B@A!'>69*L1/8#"71IAH'DH(!#D!#2EWIO T6'N3=$H/))"C/I5"=! 181#&<%]C7KD #)O=),-D5)CO%BP^4B/2)YG#;;$002";d,;G%8. 8"Q+@3AYE"\(S4?>ö&-56.5T =&HHL%C$N'C"G/AE93247?AMCR&÷w&GZ…Ä¥1R3"d9Mò$+"??+:3@!N38B1$5!VS?TM=!F8$)/AF K0>4.=8)8**#+&RMM<VJ; 8/H1=B;B#D.FA>R5Y?B.85>NP?JU!< P-!"$"@7'2.ô8;/+N6<+4?-1JHV$+/,!?+WP@2J9$EC2$#LB5+1K÷8#4, H1EIB&/û;'ú] +G84;3(00111/////////233333R.J)9L!G#2hE0 +*0*ö(U;.Z7325S+-Iè#(#)4C3E89503=L"O.22:&,8þ*?>Q4,(;;"N"%A>,2&C@ ++7C 5+?A8?1 N; A6&O2A<*++A9=X&O;7(#J/ +'7*û&C\/=4852UE99I2>'P5742<6'FT/P3O84P,L1:?<(/&5! :Q$+ú )4I08N8C48%##&(0*a7/.9/.0!/ (15L9,$/=-AN1MO-^8(())***+++,,---..//8 "3'?,2_#H0) 51111111111#8 wE*._'â"#?O#>J$%'3K4D)F$3@9=X5G/3ü?E+'+D,&B%];5-':59÷FG(#ZE6"E?4#5%)4H ,/O+37M[dNK/02*@H4S4M;W#)#4D<9=õN79 907902_)<&3'Ve\P'%)1.7J&,08*!34!RN 0 ,33*17.CWA)D(:(%*=D,7H?2*P']!LC<P;=,&=96* !9,'Q/:G79$6D^%R-3NQ<4&:H(QD .]5Q?>`FCFT1'3bW?%2"D A21D0+'?4DBM#D@O6O?E#+P_=> 09.&1M!1R!/A( Aà7$=X5>D;7&01O$/;=;^-)'÷$.BB-#;9^?:"4V0'B?.(:("9 *ýBC9!K(B=25,R5^D0N/9\C!@;E).7*"? 1LHKL4#A$:K?//S&7%D^EA5&!+9-)FeS(9B'(', %"6BU$<*0!AA$.6Z1)H:QZì8u(&f#hS?H/*+9::1*6).$.::$@#-ú .)Ep]691NN@N4OM8F($4-17.L>244Jo)öM[1EQ9?7'!69-/@I$G!)'#'%<C*($ + 290D(%6,+E00011/////////23333G$":5/2J/)<*&:'+:NúCHõ&<1/J5$#-'2+4N0Z!  D66E% 8*H(410=,MQN#,[8=+0'68B) F&NH4,?0/$,!3")#/9$X9C$>M,(NA3LP). "!-j$3'?22?I:xAù4(:@?I?MP=H,0+,E))DA]I;+8:65O +.*2/6E7/8.(#*2=85- ">=$ ;.  57( B27=0/1AE'H1!!F62<L9 FN)X1-2(()))**+++,,---..///@":7)@;0k5!6G(Aÿ$111111111L4:)"7@&-' +2L '+ÿ'aL(6 A,G  7?$,?$&$F%5):+E</- 'Q+>81P"98/<4 !D26;ýQ'/#[#>&C5R&5:5-Rlv>G!IKA57=38EP!02X:(C1:(+M%FB291:8A=)F^:F;D/.%?0-R>CPõ0 9i360Q*9@6F-9<'I!*8+-$F>=2EG B"I:49'`MDO!2*0808+ˆ©&>'5'4%%#Be5=BJ $T0+@31R28 %-.06/[T9'LO=A"$P.4-I3&dHD)F!(R- M=#B2:-M*.$Y?(?&?<&ý,+@0/:"94+ö9 !8 G+KJ*X+SASnL"R;2J)$D@B6>ZI.0-dh)g<EY%H7>.&*O6%F 82(A%:%"C**A !XP5/7*MARH*/)9)6SL3'eJ?@8(-=-=M503\ Q,4"A).#609,; ûV$JCHG4 $>ri* #M7@5:GC1":>#26E/V08"-$;A?5O5$.28IJ67^1C8D2+&+%EA6;8D3CM38=.#*3MIJ;"#'6;(7H!+0=R[;'=2,+Q5@1E1$++1<2’La3ô$`SEEE/O?F%#)@39L': 41/<2**>7 .!.\8*27TE18V000100////////.3333S3 #NH.:+"72F?''# 9B. ">G;"8D'C/BS6ò5;/48@M3E@L<V $.I#'BFPC,0<"55=!1#07:*.8"ãQ" +08-,>=`  ./1&5#%ñ-,X$! <!+J9L% 5*M82-/,95*.DFA7=6&"'6R)3*R9E%LUL3D>97';:]M#oNX8ND,-Q+>1  $M7" 9%BB=+<**E&I.:1)<B,#-/]DR .;;M/$5"HTd =T8+%,(()))**+++,,---.../*:+-':K*<T-":.5 "111111111,(.*7'$!4<6++;>&üM2)30+AM1F;R3 *6-7R1+69*g<%4>&02EU,<$0H)LP?7!8T)R?' 0/Q/"(,6HJ51X{“SW+NgJD=/CC-<$:31:þ$C+70-+3BJ93O#[ ;?,-54728A"F776ER967þ' 3L1I>;24BH7I06&,:\*UL1&O!5(#N;K64VD03?D("B ??C4y1N16O6f,=ZAT. 0NL>'B! I><?7>F7XF@22FA#2(L 0/ 8A!@1*93nbK7ýSD9L@E@7 %{5 F_YH9631/OI&%>6:;?>B '2L4'2D8/,8=T{X+( ;M4JFIJ15* +4"L;'X,D,<.XAF# >/*ý34!CK-1=2@:B@=`6L:(.Z'9+8L>3U%3F@41+G?'B#1@  <Dj.2!8<;:C 3!J%0 /&<A;MT;l*;. TOQkH+0;0R$@!.@39+Q80>INQ!9@g6V2Q2D%J&2B*Gc+,gIO<<D*29*@ *1=!:<4<;48#4F">õA./NI/ ö=?C6-&%&//c<"Z6HL:1T!.CFL*FP/HBA$2[LY+O<-8"&) 0?DD-L%E2^4ñ?FQG9A%üC9;000000////////..333=&6%9!Q0M6?#.'7./1$6/OP;LV-/>7GFB/=>$/&5.Q*7@.3-ô846@73. K.E'*+&)',OA>M.J:O&:"5þ=-'8%])I3<1ù!!4GO#;5 / ++9%7,8QM,/T+%(þ;+KP@C9Y>8*38/DR64:D&ÿ0E?-D3GKM?>]<g1W)<-Ur<2HCû+>6'F+>-XV/5/P + 6*6-N4C27#& 9LP#1:;û:))< @ý@1T#?G&&**)(D*(()))**+++,,,--...///)808=A@3<C ;;F 111111111+ +*"+=$7*&6#&;HP/C$@ +5 `'6.*C%3"? +)nDS"%H0"&%4+" -6;4Z9E<29+r''=A#=DS"* >XƒVUj5V5-F1*7@#;ÿ;'0"300V95G.OE-85,.- &Y<O;&#H2)L+M;'U37O(!KïD/!E.8*ó*(ü1(R6!EE0I> ;-307%VH 4NC]XV`!a6:Z".-%BZcR)/+EtJ58@*55^."17#&"6]7/76O1 /_15E"8"@Z'M $0*ìA"')-H'1.N?'"=H*H%0>>Q" 58;1I*(GTF7\0D I6<<*J;>8E20 -@J%"4?),è=T6FY#:B".)#D0@4*A.'60+,-#4 Z >0< :B>,%!&B4B&*,5@>5N-:5_.Z+ 5J)'8#L%F8=:)7K$GW"&$DB.7/>L6 +:50.0/-6*3%91I-;8O#5=.>%/*5d7-KM&1>+GM%%G "&>E3S15c>'I$óD:.J6:ÿLG; 54FEF L!)2Z!DO*#;;96@#%4%=4/?!/aG;W"*2N>",C"9MM_c_N=<=24&4/R=BBP+!%\Q/.)BL :+C Bî#&6L#MF+&?&6&:/ÿ4&,;Z-ML000000////////..333&2,I9/.=1745$><KC>>,TE4+-!AE2'>]?*V5C#I,-9óF<HDü>K-1&/7&;'03<6,93J('3#5E[h-#$=)$4$'':@$2>#IE-&<ý>2M;>,0? +%1RR?DF)4"4Q&*Jk(E>#-ù( 06P9*68%/^#K06=2Pr16H5 6<L2(@k,7A:&]j©€ukyM4C#M:M85A@D%6GK"(3**8%5=C97FS44'>F+*.($DE4L: 3'T;33': 5J"/G2;/ +U0@V20;K(()))***++,,,--.../&/14+"$&720&5C$111111111K/2$;OI$$>#OA$"$T)5",(; "1?=8$"411-:L5!H97X>*w@hN3(b4@E<\! 0Iþ?$=FH$(8EJ/:6:UE!LY9m<7;1-:-%9,$YDD:+  +2!".-ZU'CC1E-,65$PC?3(9F?'*UNBCKb#< H'  @ %N.35#!%A-ö>48 8 A (:+?(æ#3CG9\X^Jz…»££›‘MMZ+">3CTD-8#@B#,M(&;/ >E?#$/81E&7(&!>8 1[f($)7'J),1,ýA1H4R>Q ]19870D[:UD;FJ$Q/#E#C%D G34JV WJ›:;=1!'3- H%<%5.><:*8,:?8Bú +&+07lS 5ô6ù-!CG#1=<=98*]nM/f(0HB''?H:=a  'F4<I#E,4C?58!K A;,,,3@8 +D7HF$I1%?S3P[a^Y=MGA-=+,8:*EJ&M ."M02&9$2S0:9$H$ ++;/49$Kpo776í>/$#æ>&KG1 HRD3B+M%Z*EIQ"i-/.44:.9c1(6/PEG/0x)A+?8+2+;VC)^3Mb5++<6> +,:o7C 1:,9-7G=T<JY;2=2!F*7&63H!;B 27O(!G/+0O5=9A<823+;,/.*[AE37=+Y&0:P5.000000////////..333/F*;A *7*;<',D&PAfO“`SB<#!P407 :A=ýHB &&!14/N#49B,<ý?'-(+K7:6 T$I4$A#!B5M<E_J``&E##&I!"; E>*+/!þ\-% +!<;#%:LN$55"!$;'D5.!,*P "-62&-ó?*ú0JH#4(<TWB6YSKæ43yš»¯ÖǶ’~YkQ;+5!!?>1,:L-'0, &V9o9 K(+J % (JR7*:F0#*F:G*C-(+3*0!35H!'2" *#I9IJ ((())***++,,,--.../?I"->.[+9$ý#;f3B1111111110< D43HO.)##D41*DY<K ,#7?<@@D=B8?97AL4$)6?IE) +29H=;AW2L?C)!.=1F 3+#=3>/5.5]9‡ B2I#$UK"5>,AM$H7U9*.='F",5@2=$TA*D6)'H=>&J,%è=<õ56<)?(O[/8=6C".-9A")E+"3<=.;H-s.4"'%:L+7lk½Ò4º©¯¤Œ`K=0D#W,6' +<B$&AX+/GNGM(^<+J715I"3")19W01FZ5M9H\21%#C1%#.#+8"IA-H('(97Z#5)Bþ7KB +*;$3.D68I8 †‹»hD3r@L0*5@/(kFB/52,H(<ÿN( +8ü>89&4:/3)"6H&BH'?56l !(C/1926E*.('?1F f<=ö\3@Q'H,C+h,4&T$b:0%>,'48G 5B0ö+PZ?[EQ9P,G6#(N<\TA+R%%OTù?!>?;>:A0=.2G%#9OB2GCJR!%=2QB$=9Jjn7YFE0-3>2'-M-'!/,(1+GP*8$M+:2";UF# D::5/.K;!23#?m:Ž¥Ì›H].L4%D)ZS:õ0-8G(C#&%I89>1t^F=E]KHB-&K#;I!%L75W:G%1C*e=A)4-"?C0211000000////////...33SEK_U;.ORú16?./$33)VU]Z]TS*)K?!> $('E7þF5,Q':1FGB>R06: MM5*/%Q7/;- !-HYP;ý/G0R>)C)$E5>3+@85:%3ý"$8 (0'&U4;1/.73!T2& @7?/i&*VJA*-7E #'SE6C.%MfgUG„¡ ú{SYMàR…C.?M@7*4 ð>*^#<EKS ' ;%!%9(Z,C0/?&!J86û 1*3>GE÷ó%W-2C,344(6((())***++,,,---../3>CþeâD307\Q+,cOtU<11111111M)7M-8ûE027=9Z7 A# :ú GDDUH7>"&$6L(J%c5ùQFK  $9O@:,3 +&=&&-+*; 00"5!0/^, 0OJD(C+7 S!?;*0-AM?3u+JGeH-.2BFZ2C6?%.g1'Z:2;@G46-$=99->7J?95)%.'CEM&8k08E"I@(E+)FZ,V$<8:08CB:Ró,8'LHj©îV·&DZ©oHkaW3@H&.z&O.%X,<+872A>.l9$ 2,L96B3164VAI77CTE4)3E*%25%%0CA":=B" +G+.3&!.?9+@!421@*=8>M Ba~XI(PC!+9"@'s.-;29$:3S&,I?F/H000G Q(H=^< KL9J42!'0%C10()&!ÿR:92RP."?M- B@V;/,%-mDJ!<9:800$>+812W3=*7>-=BWK,6*.,'0;+&&'ü:M  j)K7A<1 2YF.0PC*8-D%+'(M(393$-S )= 8<J +Z.E:/51"0bB7U\,\r5/4227+0)L;]'>B\74'<A*HP;5.F/5_  3MH+&Q4=0N.7 +/„¹õ«¬g:/7/pLQQ+ H'>"(!.).*4 +58,+9$=#6K=?@9=88=2SA61YUIN>+<E(Z& 4K ,000000////////...33 ,.B5G'(,31L=:22"+-TGl7*8 +5S"x"P%++=-?Yf9&EMN>#A29F42 W!C?h:48/#D.$/Pÿ7+!X<42"?3,''0' 5')& ;6#*30*- <'0%EL1B267E%12*^B)=5/<))=c>>..-5(C $""<ØS+ E7DEEkXImEN°Ø¿ 6¹ /·™oeZ/39>ÿ 1 311@"#,,=*458 >2&%3!5?M= +57!96I&I,'Z$  .,,4#4b6((())***+++,,---../8C#CG1=1D3;ER%=CZ, ]11111111V1&%LJaO</T4(.:(;QA +4.!I"/F1=#*!-A8!65<0>m(94R;-,LB'.0)S21P)6$;DR&>IV$I H*TB@C*9V$9;$6N\¼™¢;, / 5<<#601G4' T?,?/ 8-L7C*HY:<%B 0(],%7L(>,1.@A3AB+L>>8/A/<0;+X,:^[N(FK *6,6J 1>gÓ+ا +N ê({¢LGMK‹UP*#j`'e3P"9_IJW_a7F*22 K6@%"\,$C^*! ,1*!#JD#5E4ÿ82$5E/GI"\6=+#F8$9[FAF:,U79;-HF1'-^+C70:$A,3-4/>0mE7) O> + =.'-):JC;7P01A9<<%CO&0D%#CA@""..0?N%612þCQ 1?-578,!:,36C34/!I(:836>*':@5>&U\7@B@"@Q2Z9@//2$>'-N'AH- 2$y+!6C"749*()#7@>-<'2(JL9# 4@@9-@8-<=HOH""WTAZ:=*H/%-Dj{7C "=F<FJ'*?SCE74#*6?+?+)Wô8/8K6'-8 RY*D/8@5:0?(CnåÖxnU>WD&'\ST%,Qb90 B=2,0.:8A%5KSK5I6^%,#0:IK<'C$3? E3;670 %$_159W<9A8?000000////////...336?i1A$$Q(EnTA7EC/8#F-G'1DA8ü06 3">/ò"/õA:CcP1I705ESUV1)0<AV63I%2?#C;7-*' NK;%!4 * !=A.<D!(F: .2($:ù/Z?1!8" >5:'4H.þ)$/'>*<$#5O329!XG +M&8 3H("D‰‚zh-W\h»$0)û/hSY?6<>4-B*-EV!=EO"JC=ZK/>%'R +=D.2005$<41>2;M#CW2C?@854&3+>4F<;"4B/'<&((()))**+++,,---...@>&1A1C@,<%4+$'~w’D11111111.R+$2.ý6-6.+0#2O84P"?,!(T:;B,&úD@L"9;-1.62 * +Ah;8' 69,a1,R-+$+7+BP%9< ?D0Z=!91.I*O%3 ^#4A7 L8±gò¦h+K)-CqIH@;5<(dYI(+&<M69E 'L150.8=LP14=D+73(6c"O%8D2$ÿ*"=/F3/617"J9C/MCB'Y&/ 74]k¯³þžÏó•<Ør‚UT‹FTR%L.!.(?)'";$\MK2S;@E@û3 *(.@;':,8)58(G!$;,DO/-/" 9XQP7"MRM*J-JM#4;.<T0AD&=8:H-@@,!($ EBL%OA*!46)>&D.N=;9 R!8IR;.3CW+04O94;d9IG +%+0US3g&[=û 0N4Z(3 6*Q22>(6EùU.1LKN3(S2M"N=77<"0P7085RDKB8>5@3Z(1EB5%56#AR4.1=8J,1?8.9*J!7?W"==<[B93%$6Q+3',@7$@<,Cg!<0D[#*Rû=Y)DcU@Vÿ K#=<e\'GJEF=K0*C/j +#-QAL@(DHes£€T*JW+_W0a):XL6#O3 *).76/> +/7#<B#5:#_3/5,A6gX0' $/!33*E)%#@,-8#*M000000/////////...3+WeJ<"&@[0`292C869F)A938R(8.2+þ.G2:36)2E*<ANUM8J$++M&$=7$WX^&$E-((5.\A!L5a?T11&#I >:;48$04&-D2#*L2 9$ ,.9*5LHEþ.Q98.4E6)$I/>6,8?@7@%8S--&32D3=*:+Z"$!J%8.-€¤c+.?6{Öx(±8A šFŽE3B!1-4'.F''&G=FP)''4'(G15/72"G-?.E-,J-;>)SDF(*. 461;7:19$c/%.% 6%('(()))**+++,,,--...%70&.K=*,47;6J?SL11111111E41ED.;U/?-1,.P.8<2?0)4NF=õH8O;7-3 O>/ÿ>VF,C@?4*)KHK3?E#Z'^C8"P()>8ö. 'CH':T;62% 1\+FÜ,\&àS;5(%)Y3V7+1#&'3* *9VV+þ"A('4=E8.M%Q%(B2';4191*?8ES&N8VF9=#.' c;S"3!UGIL"PUC2XH>Taiæ™üÿw2ÆON’:&JaL?G1A<(+/B3\ cSSFþ:@294/:91+Ko7.I5k>0.;8B]1@AKPû$:3T: !,"A.$OI3f)R*;M)N,6ZeN&(C-EB&F$M'<E3..$(=_G:K /'E() F:4G=CïGW71N".@,2@1;>6>÷?:!D46)$K1.X,AOF<!=& C@Ó;4/IB[N70$WöKúQN)'62A7568#?!I(3)3AI=U0"1^47I +N U1L21#4=F8(A *P=%J,",;Aa<T(<>!:2-@O8,7'UK;5*8B14#3l6-"T6=k'"3,K +%MA-&"K1 %*2.5L .]=6Q&K7&YEEd{T]2EAOES6u&(1Y$hF(82(@8@2:=We0.&U_??7,E$+298<7@G*R.@9.+*14(/=000000/////////...3$9/<0<V5WXK,0/3C>:://:F/#% 6R .<H$÷61SDE)5)* /9!E*>ø3X2--<;09+$87-8=<1/;-K"I1492IR# ,'JD@H*B3#05 û")8<,$!ZM:N.D* D4#6`.QO687@B1*%K"("/;de¯P#M7<U³t)‰Ñ;S5AN+NS2622:2 .FK\2N1%34**,7;M&%198,:,;("CLu48+>6.+*6(6.A3:#('(()))***++,,,--...;Z)þC,Eÿ3B0911111111@.#4:*BL>:?`7=:>.÷(1'4AJ4Y5M)7O**./$?4QMJ81704-3`1=Y4)Z/F"E"'*,K6+5&D@ "/,@=$54<OkV!KGLJ*;,<PéúÞüÁJ60Em0,-B2X5=+?!8&,% +ö8C%<5LVS,(*0ôZ+349;$Q82<CX9KJ("=*($:8?>5+.!3.6;,FÿA5NH;H`â´ªðÜœfUN"oQC7020>X5@L†/H[68*/,+8+2'=' 7#/$E2G)J4'14.'_@"/L!<476/K,,2 6"3+<F.67-$1+,"@B7/+>AK&L)),\. >M4*`DH Gö4*R4%6=.^6B'*A11hü26-680AMQ6%."  (ù- 050L3/^4K.E<'75JI=U +=46:61; BQ?P/#c KH5&0%!,*$;Y8A:d='h  %27!6/3#MC/272R3>=AH&*-0?C?AN00+'P#0 ö&-"@)1.3"@5ü 2F'3A&;5^X58#IL08jT67@2`r?S:5/?Ic;.Q$+&;##M/;P?17#&?TüA 6* H]89GX;KB)-!0?9GRK(V_F:"*BG>;OG<81+ó"A//;%,(>6U,H;M*7/=8-.6)Jf000000/////////...3%2<W$<*>;F%Q7Q.7%-A/üOF'66Z,5/-)6$)*#N D;í/@L,.5GFc-)C>@D4W%K>  CP0C=I\3(<'QCC\8','#>.?M526#("3(93b3C22,/"3;=%(570@*>43-";B1<%<',!+ * +14!L\l];%2J`uº}ŽNjA±c2 )).=?,8 :&*2<$?(. +=ZJ ;N >M5&='!7$@322#)!3LA;Z:=D1&8F 4(H!J&'(()))***++,,,--...]+02E<2H>F?!/:)-11111111(S&,;K&!"-$b]=(ü>3(06;1()"7?4÷'`%/6G4Ha($&OD7D4<,*Q +I186>-K=-I/-/8\O?4<<$;KK@.;<$P/LC"1NCæÝ\^F@ED?6<<,7I87<%"3'_!:0A)'[/!2"6*-O9'%7.0,)*:;-3D?*T[&J"$1#'D>"(05ï ?0..).DH*KR.eSàJ“mlF9f÷3©W.7=ý#/%`R)D&$VWHIT9? $I525/+Bû +'$$-++1+A-4JR# )>$A63)$J<$/@+Y=C&NM1=%M3?C"1_P<6p#_O+)'"MT+7C>@*N'9>LL80D8#&-H_6h:& `>75)&IJ%BLI:Y)5^"%5'*0*+-,E 8'*-$? 3/ 51F2*LN *7.'YDJAD!&+@0,5CBTC4>9D76$F'.L@#3HS2HW4)2&K#.5/.+S:I=*)ZB=""/:6;2:7÷7<':9D72JI2#%P6 *=7I :%$>:*3BC+-TH_=>`]M2E'?E.Qe%s:,PmC&IrFb@/-F,"W +E"&F'%-H4N)1ö)5F$1.%j1\1!?'FI2869I 3:8GH0%:\Y15D,a414)IJD-C(>þ/3)5'?HN7-" :< 24*=,70000000////////...3(:4R0*4R8-X3W'CG7)5%+B^'''R1I38B6M",J6ÿB31D6'R+&F-2JH`506?T"K 4*>, >6@34>@+ :;$p1Em0-<ñ"BBP:97UP632 )3Fb +%$04 T +$94!:7C;=7/-143BGJ-<L68eQ%Iùø=*!P'TVK-#6$;-:§ïþ÷™zV=,;92g'/',AI(#M)4Y=<B+>'2F(*66*L 7-  +=&B= B +,0&'…?ñ@65HE$7"X'((())***++,,,---..?6 +-F<A,4ó#'<,9111111116+*H?RB?D<.;$<@U6 -/5&I9%6* +L,(!7982&*l4([5&.E+ R ?6*@9837-$#06:J4;X7dO8"@ET(!G)80%AT""702!'/PgQ…nO2'.2616u8MN1 +49E"H&C$:@T0*A4(%*'8D(E,5<N<%S+R,4W$ +-%2J-D=-D3(19 %M98(:4D#L<%ƒqr¢•e</T¹¨ G%M-23##6PmTe@n‚~]BE3>G7D=L59ùACB(L6R'( 7ÿþ;2A4@G.& +59(<8KA)5H+B2499:&C>8 T#:S#*>C;&6PT;Fc !9X3*'!>5?0W/A„Q*9;5)KE,hC=1""1()@C<A2:9*m"9;D*0\%6/7$',)>;*b*CA"E+=>IZ7Jb7RO=H;>CP17&5<J/!N%1)72#8TCU/H +'8AcU5VA;888208*G:21C=BV9eF/dJE:+' S)7*94 DNDK<>c39bU@#O+2':?M(IEqbšœ¼–i|5EA0G0X3O*;I"Q&@)= \'8VG%?AN)H<0+WM5:*G/6"884B3 $=,0*l?308""UDE&WdQJ %A6O*$08.B:2ó  >A000000////////...U8"LT>`.4Ob]^t<6HHD5;_);6P; 6D7:f611776A75:5/-C(=+*:',R5B.C KGyZM700\* (B6N67I%51-* +3!S-I(7-4(.1>J'-(4$&BO +;< NG  8<&3  "/ 0BH /+-5>(_7 ö*1="1_'AF(ò49W54Z;J ':97;*/82K,--1i˜†b˜3P<#]5<+&[(5 />=D;hi<-?H8I-?;õ?AF%*;<'DGC5EY"9!/22%A'LC{2A)GP1.0$1'((())***+++,,---..'- Q&6*71);VS8<"'011111111''/MC+U7L&4>%(L/?AN'Z*;G4/H?#; /EM*=0! )#<KA)BA0/(-KP7)&KZ51D/ H&CE 0+'00./87KE$.9*K%=3X:AO?%$"Y-ï:3G=S]2,&;3?$w<.HF>D56/UO&/C D$TULk*5;">0<*-7&O*(B/B1C)-7->2(ü7]388)7E@:'7-0U/)$(cVaPU^,E¥]™êR' A- 4?$<5GXG}€Ý~w9=*J@.8O1983\. 71  PZ;FU?':L-#*0ø 83@Kç.7?6'-3%*9./+ :G9EHV081956-?(AM&<C$(@3<AH);9,,(0=&Y;;+,EfÛIGH:4'70(<'R X*qF+)9 L184385%EIDG#6PA0!A(+Q+>-' #8A_;-< (m:N?T3-YG*,/A#,Y 1H;85 ;(ZG 0;''70Q6$ 2(),Y60C!_.:+G+@Y!Eú2":^KQD833./T%:"C3,.((>:$"Rw>J5(??@Zh»)1%ÄA‡MY6/63!7U&þ06./W10M*,8$!+5þ:Q/KMP&k/R5@LC!D$Q3)*=)AIJ. 8"*.<'E>1DG47UA&"1?Q1P9/-H).):9.7%'5  0000000////////....,'";Ir=eJO+: +@+(3G=9%@%G.189!.;59 &)H*="! +9?0f9+9+6PrS817<B !F-4J0,)+:>G7 '3T$:(<-KT  LCU>21P9!)-+E$C *+3A^'&9/'>*63&Eö#L.?@6&%/1'63-5BCE('WE%! ,/$0*!/!$]&#J?:K4gG>,g:'G>'o40"3$/O3 165#971F-8'&&?39FN!0"-JG3ýN5(7;@H&+==AS1.4;&;?8n70('((()))**+++,,---..EB/1"1#2øPG&(;811111111-T8AA:%6D)*I1I>)+:&(&"5C2(FA5eøV?8.?;9-OQ1D >,FH<)-:[+E7W`)Dá66 3V-9SE@c)=#)7A(=00,D56 2098'(-*)IO0'9/5MB>0"@ V34I<6D45 A49?=-['0*#2Z8C#R5fK=R3M-V/4M1\DGR1.8D>%,6F''*18B2R3BHCI-6vrŒ[D27O)_;&2FIRKF5x|£ Œ˜;"L1=9.!":+6 >*.(1'D*8,:#G%H+#7$ I†D%<TC)):4BB_FKD1(C2W3;=H,:/B$94)7D*@%M $K*9S9E'.."';*&-I00Y069D - ž:E!)G58])>0'7C1._-'4)1*ü1,,,( +27$7AA$827?%25&58XM;3#%38[82 JLM?Q4 ;A,:'=)K _F28:$=Fv(Z$ K(<3ê:Ed3;,)!ô6*!'Y@.:> 51/6$3<>E$97N/S6))$0W!,eEe;<!EGë18:@0qL47QI9A“E … !‹x/Y/7PD9Z,DHLIj>>!1HþB"&7i"5C5%/" =+Mk„2J6-..<Vp787"OE,J;:;A%9<C  Nø>U545-) +I4%32;&4ý)I"(0000000////////..../MC<2/F>?@OJ:@)444.5&2=!0ù?<:>+û2%!9/DKC$74D5>\&( /@,Oe>+A%+0;9(+%6I0FZQ<.;+!&"C#B8YK"=5C*QL3" #j+(T +"AB !?[$!>üY!6,8<0M%J.OQ-*S 88!+%3-"øG26-$J'1Pjÿ%.(;U0![=+)P; +30- !BS)$67$HA>9;',/V61?ÿ509BB/+R2*9 =$(N$2-1'/T0OB0V$1 M!GH46F6,&9''(()))**+++,,---.. ?J>#'#b5F9-0+PA11111111tF?.0( /58*.12.&F*95*0I09!0.YöE-6&îJ3P47Rú&9. ù/7:,-!BS LW:6T'UB,8V 1D#/$-@/&;9:)EQW.÷Rq5?"C'*$K[?FH:5/+A>79:@4<B?>=3:)9<4?4#%)A<"9C)!6c'(--B/ .9[' :;EN75 L9>MJ-=!( $.-AA95  +&;)*4>!GRK;09E+/O;Q)1D;FK`“¨œSkJ0J4<G6/H<K$U+3IM51=;5øSG/A4ÿMLa'U>3L.5I,=;LHY?N:5]-*E"&I;1`3$9%3D@N.++G<7J33<%`578# #H*;>3[2MER*Y=%'26$09:?%$&*=.R69"-Q/,2.21>V6:-6-8=;d1AV1-L%7`+C F#%S2-0@8HWc5E:/%-7:=7T-2* +-(B]F@$</#,?H%&HM%-T ;>/:1#CMDaQO/.3=9KG6[)CX-6U;#!)(WPT)2L1#-6WC.H<*":,7B N9=1B&=0%2­9 à^ vÝÁY)4<j@E[=E)FE,?A C&D42) +>+LG93+5&;=<@D@D`QED..JR 6F"+úP*6=R)A#.+D$1$8<1 +79M@90'[!$!O*$*MW-JO0-0000000////////...."J:&4<9:<68(D()<)9Fü8R)$)VC7SJ=+5>BI3/W(-öL"'4&e&G$76A?6'!20< (*ð$>q*X)O8"1L*A NO 4?&$?F#<6H!8EF@4"&8MG&@(91.-:41#N- W-3?; +1+*>4""3W,< ( C,IL%)1=J,5,4%25:8K*(I,+K,WWB6R&:&'8L9C>`jf‘WHH=NA<F 2).D+E&0:(5?ML(ZK0E7,&+$&121\."$+$K''(()))**+++,,,--..(E66G-AQ-':+C)2%W911111111kbC4HH,I2b4sNL6Y7$2%16669*':*@9%U"$@+3F0k9$*@%171,1AI&T1# ,#<4A:.'>:G30**&<3x9F2_4>%+\@ M40 #9=a267 ,92 8`<74AGG9-Q01J=VLJþ3M<*iW5:-/..:E*?"27<+4!!4+/,7/)_5Y3;/<J;VG2Ta)2ALAJ(.82*85&$ T>v<,51?)<04D->PY‡ŽDa0[)@0? +Id:C&1:BC&11/A4J9QM"0/0&.:ý1F2F$'-E77%(/#/F&,3=:D$@(.'CG"GA>)E#"@EF_+Q0A.*;5PkXFUgBIF6N8= :*N/>0=,8GI*O1;5? @+12N##/&A%4U*@P@2"CCø'6;3=G:4C5P#50&2&,5*A?.[6(4'@D:#P>7-%? +-'&2*L=H0>)(G 7I9O&GR3.Rf#VV+&Q %DZó7$6JP8!.%TO+01,[19D91%B:M#9%4%H+\jR~S Û'Ñ\f¢Ia>þ >DK<I2O.B=_G5459õ#KH6)NF048:L`C-1qJA,2&)b)83$;&&4,4@IE-ü(721#=IM./Q6=[1>-12- D9SGM!&4<\b=W?0000000////////....1"?7.9":!$$=^/8";%'09*"1.=':7I'v†4[Bjk +75?. !-' 6"*6)0C%?*)2,(4&82?41523"ñ3LIý!úRWE$-$ 00C05)L>')Q )*<C2" :#/L)I%10,.##-J5;<./9m_8@+2V70&" +$H (B7H&(=75"QV@*'9þa'P=>20/.$( +4,'2,qL”ᾆl9-#@+*A/>4IJ*..<# P(a=N gOJDLMP&7'Q''(()))***++,,,--..OWVBO %$9>'0, +<,/C!A11111111=H7*(2>G<"C9^Y:W<7?!&F )#39G#HE&=(15L8 47I(.7: I"%^5 F#H-F7*35GZY)\@LD8 LS?.:YMC&N:&=?-),4,CI$.8L,)U("E$=4G? HDF16T(?6.1IC-.Q1)dLE=(K=3 85 1 &H+5#>:3+W<%9 EX7F /+X0;øFRT105+4/B7DI?4@+64!Z.3C =4S=M],>FLI(5.3Q^ø?:N)%C:O/*'](ÿJ3C%&6();/7%O5 7]P)7$T/$S%C2"6BAB'P1P,&7) +%03@ÿq5)M/6'<,AX/4 )%2% Q\¡X54LCK=-# =<$2;^<P)^&:6/?i?EH=$D7YC7X +9*;7=Kò'97< J!:MWAH,M)5%1P@)3ú3FXP*@,(C6t@+CY5)7&E%78:B&B02'.BDWMH;0CM*S8<&/VH&I).4@/8T%H"$NOD-<C/HPF/2Z2@þK6$BB?K%b;5+9+X8^$M#*¤E¨ ¬ 'ÍU><@4WM;/5K;'øU3%-M9K,3XR(#;? 8(/T;=/QB*YT:;)YH5B-&R{(=ÿ#J29+(6'ÿ*'L#?< 31A"-) [$,J?P +2+ #'$-1C 0000000/////////...H0g8HV5 a7@#5'7.I854,*A;*'A(1B¡ÿÿ„ŠJ):H<.$D2AE:AS1è9[+9,.%9> 9: A-.)-6<5(HB ! 9'g2DF '$+:I(&b EQG$7I./>-#)603;> $4",T+WC6A+'1204754:(=&!.#$WAO&#_.E;-P$õ,)!O1)H=;`''@ê#? +-&0],HJ'2 2D#,T9S“îUCÇ”T":9;"2:$<,G!7d;=3B[y8&<8?;D;&1 7÷-C%-@L''((())***++,,,--..;'>0.@H7CHGD(:DD11111111R 0&@7K%>N5?3UP4;6%+( CC$;=HB"$#" +1:I[2 3ET1×$<&I3E1Y+)1O+B/"8H,]<,3k;P(1N=& X.F,/2,LN3=4I.D7 -V6A<h N#@*;9)Fú?>S$CAI,=!7CN4)>N"B63P:>'<l-<+(-+&@W3M7->=_41>D39;F?+$8K;I1B1<%>4JZ5(2V^~"<<2^bB. )R(&&;.3E6B&]E+E/G?9" 5V72' + 29CWG7;;<AôCG4RB-7Q-.1J6ME@ "M)**D&5-1(E &1D2D0Gþ"7++8=0! 3n4 3R1'@=ýð-@"- eIB'?@P3,7. N!?÷?:+IM ,,N#6/!?`.9)cb0&0!4*%+IBD];%$B3-9:B,@:OOJ#?EM91CC4 9=\y+]i€C:@?7:B<.!@.HL:/<HY>1[E8['G'%1*E/X228*/)!Y:Q])=OX.?B=7-0Z? 4/+)'89GBD7756'`' -&<€.‹t,Óç”W850@@"RE3$K* -%Z,i+J >.7-?H;Q,,8%!=D;U')?:=W&6%EYB[8.)N#R;!COJ=3.& B5-(:<D@>"KI8A2ÿ:;O"T 2@A)"%3%80000000/////////...a#@:F*þ=@:+04E93&<+:<@3 70eôŸ Lñp8B1/=,%,$ '.@43m9 968#06MB*;H7 I+J+(6 &/-&JM+&67@CF,Lü/-J?@6.C05KP +63K#$;%W7-$_G8SùF<A(A0F _1&K.AZCþ-G 2D0=.0?1:79"ì84@/V 4O;(*<<!?.?%*.!15'LøG>.)PAf+B!/O[†Ó:úÖDÑx52:0.'-:*$E8!%1 /M E)'+25NB)ç4,(I:A-''((())***++,,,---.I/Cc/2$N-D'*.D111111113a%?53"%\;DIqV!i *;!7_B6!ICH'&' *!_&:J</7;F)"N#P,6 +9-7,CK^-!& +)#!L„nBE/5R%+?&B61-KGG:#5!1?<V3SK/)0B"';2AD 22]1- .*2_TA4ÿ0#4BF(,6FJ;$%;M0VTOR;_!(E1 A +5"R8<95(93%#e*O;" 0<45-/J78<_V/Vf‹ I;&)@F?=<24'!:$*@R6C-)*C01^DGH@?.$Y6K$6 '('E():9POC/M*9+73./%1H$<4:ABP?-/50I 6A^-> 8F0OA +# +;#X6 4<\-K@4")&(K-7+5;4@"<,5N$I500(u^+QI 3:,3,F EH(YL. )5").LW63UVÿB68S/>A86P17*G6!!#4E@9 :OH3KŒVr`/3YYE#()$þ(f&0)#!%@D/6VS'>6R<F''/H]%:R.%@ND@7CH0GU::=7L1'&QP+R./6960H@38ÿ5@&Lg/\FP=G“–«‚]M,bB D--,)$"-C=,OFD@@2:Hc0#IAC30A_$?(ÿ3J'B([o'PH[S,2==.@P209(JO/P1-0I J8P)O-<ÿ)1C"=3EP .&$ +=! 0000000/////////...h/3';7#J)-7)W4A)?BB<$/+61-38AH] +¨®j,;85+3 <>1?1(8KAED?%(;:5J[=']ø2%ù +J%.)AM3(&"J;BF .I8- "Q'%<#6"7)'& '4$%34A EC(N7B,$.5,41=1A'%Q(!&>5&. =!0M!)321@!',b.):""#-D/+F7 /9F?Q2(dÏ×-ò +–eMY*T0WX8 3:&3 3JB$&YP1<BT=;>ýE+; +(5$-91*2''((())***+++,,---.2(6 3Q O/=kR< . )4;a11111111.1P;:S%4A;.>0B2Aï6+'U:%<%>4@8/179836+:'9:>5.8 (UMFN+12<E8'G16LJ!4%z=:3A&J2[\ý9IA .:#)r "8(;V[;#)_%CO'A.6 ,)=8'4-YX'-C(CF*2'ð8DA8H0@4=E#*t,DHPuUS>" A-/3:<5)3"E3C>37\ 3;5)%!Wù +F;I)""V"cšËu_D63.D'$+&A5*'A()H4(^(N#" (+ 6 5;6'S$";C.#E:&C;V^$A8<)+G*@.'8W40@"&U6+ò0 8F!%D?E8X)V0:GN0P%/P#HEKC8 EJ~#>-6.,D)@AQ3;?q8U[,*I58G(?7;,BN3'</,P  )J= 0MAK6U;PSOM##5:95$"(/J>%h0:Hdgo975;Ue9($1C#0G!45G#C.X!E<<8> "4;8Y.K99ÿ9TFPBdm‚P&6?U^A2RKU>0'^@L8C?-:7&$I;5ZO.8*?=OR+FO";OeLwJ:P]#UFEaCH<(<D?AF?H`: )..$M5LF=%(!+(<  j +#]T7@++6KP:2S?1h=&0C*8' 4%?F%S"0+/EjG6D*E8,*38"67-X_U) = =$30000000/////////...?&(0$+*S3DG$ê,%7*6B*,/3) jÉÊ8v_ïf:#D # 2D7 .:F)AE#:-'B,$GU"381\16H!A8(1*48'3P H:&  5O1'./(@1+W%/%[+"!> 0>ODùL%BD0 (+#G?DE#04&Y<"#!/.06S-@D@=:8#@!562NR#9M"(57(L /x3+:'!,$&&*$59&#?iuØóž™Zì‰5i>% [+3>?3T,%0:Deb9û,I,!.%*'/5D14''((()))**+++,,---.-T*,"/DLW‚E/y8>D(H&111111116,EC 6kP$&K<8E0G%$"E;[/E(1K+9þB)U8P+!3q>;)E %=# 1,>ÿ P5356FP%S )=Y‰[8CUiR9<-B=7+#+ k< +-B8O?*W$7/:<%R6E K*D&>HA74 s<03V,6'!91@8*;scSaX<B9eG;@@ü/EMO%'P%76 >%'175GG4.,2:28(%C9UP{3).ð!(C/l3,C,'&>5HCCJBC57BL9#+eSH4#2-/Z:C;G5HZB6W*fP1D,*÷%5?$:J(-B9;J9*06!.!I1G91(!.0(  )8<F;3D(8.,1)2<;I6",!2 I"#G<;EE!,))E<<*aF.%^"$93E#"1%6:T,#)+3ZBF&+é@8!?B.?6;(%LW4*c%A4,0:ö .:Tj'?H@H+ ù(O)U834-'5.J(6..S"<$r"P7-$-?<4F4J ,S C*ut157!/:/8BC?..%Qî<@?O+>@42>$D6U/.t>GHT;m`_/.I[O,d,.190+B2*6!D3#D1=J;91:E3<A5L29C,O0*2`:I'E76DB#R 80(9)-/N P*X= =)E3~IkD)1'#@$(!,9$1B=' ?$+00000000////////...+-3DðA!56ñ&)9:.)G0 6<Z0-*HZzuØÀâ|EO4*,/!,4Q"9Q&7*5$$455L4'F=MF=5),B)ù' +N3 -&K'+)!+"#5:<" #'6C9.C.N<I6A$:43+9,>"ø>!=!*87G:<I9F4 /70":F@80"?2Q?G^ 851)@.F(1#L2E1)#'"H7&:2*?28=71+&(%L1%O+3PŽ¢ø,ÍlK\C=zA!<(1f&3).7)A6eB; A<,<8&, +.U'*6/J:'''(()))**+++,,,--.%=881M/IRz²R,^1 (f>$11111111-?ò./>0&JR$7/:@  0* E%*-m4";cG4ûW.##B 9%&!B?5P%Q#V'0&A!2s>VGJ^&l"+;F#4 3E=3WLLj3/-;9 +?&'$7,R.'8P3#PQI;=)-0 4i1U1?8g--N5% JAQ%):3K&7) -12 )-X$%4G(24%#)9=<HW1YDÿ`6>:/5b@OFK+A'>2'P'AB6E&FZB,#9<ý2"M>4R8B<%HEG+047<(Bfü9D.V*PCI,* G>4(J!/X9%B$48 X=X,7I&%&/!0%$09 +,0 O"JQA3*L8B/+;-d0F>?þ15CN3%&827.%B3 7<:=1õ,$"6,94224!1Cl" +. ..K$F7 3%8$#>EE;WK95/9=/$SB5.[@O7K9K.= +/F4b=(C *=A$F#;E&2203:2#62D*79-(QB56<9_CS1C??D&J637/%23#!LK +;2HbKIKF#$V -4m!+4ä%89-I'>5' @?P&6Y@*&H;>G:P6FZJV17QSUSEcQ.!I3"(EKA5+9e4%=/<ZUM27:"YG*L%H-<*$P6:=?A'"U.&G8;-&0   +9YCD*O5BA15.<@A(@.+(B)*(E=W&P)"00000000////////...I.$50:%$6$=69 9"+,BüB5J"õ\mlw½ú¼gOIõ2P/FH.:$+ A**0/D6'J1"&E$^7.ûF$*',LP)NI3-:R0'9W0ýõ=1>1 MÿJ:2I'2(R9,0=(ZLU'% 3*/X,$A-7(SHF:/E6- 78> +9"'R@CG/>F9:Q0D+& 068)BP!'5C!*5#HM=6/+CCahƒÊYd€p¯œH ;3), &6'XI 56,9,H0FZ?E@C-:*70:-(!H&<#1'''(()))**+++,,,--.$F$0$>SH?;G:/11111111&:EJX?D' 0:LKK>,*5L*,;=Q$F7iñ02N 35BE30TJ>74502*L&?&-.+I=C!=6DY)MZ-DBBRR&:-K'4RG%1!*!76.67BGaûk1),L)%B03#A( CD.=/;HC4N@0@M : 4]=C*JZO0b:B9!O:39LV<>3-C5+LFM./9(=A5.X5Eg¹æžkI-)2]/$#&68?N(.12412.@?4P.6+#4,'43M]?Ab$6#;'D30T!4A@,=7$.C+ýKH)761.+%H>.5+A*&'>$(?4?UJ9]?(,@:I- OKW:CQ36O(5)"E!D&8? /(,F%3)009:$&;70=4EB:">";3=I*D?E"#6CF!F&L%%$WE,1FM766 ;M:3#LOL D1 +1@;"f)E1>(;5$7SMR3>R,0+2$2VUDu$L 'C@.:`(QW8NG<@G%6)?E4ZI4$B.Y(SME%FD0 /gQ: +MD1A +/8.E9"S]0%?,&![955- )>0$ME:ð#k`@a4@]!=4L:73/;;KT!6*JC>;>9A.FJVDÿ17J0)C& OG&HEI0S)N!5M KI@31F+ø64A4);A3)#C8I(.)8"!/+ýN06((?I@9)00000000////////...?M1$0+0N;;A(3-I"*)#-+5>F.S:2.QzfgW’xfM6 !H506D8'7/#OCT #0<8=J58X<?@ùJ J8* I4>(>"6;J!÷//01(T07!!Y<= *;+#2?g2:)4"=->:)7=)2UF6"/+?O#KF"39.S5'*1D -8+/&#(, E*0=A:00Q!,7%+6-fW0 +]?C/$2"9=<4?@:P83ww3<J)&1=\/';-8"'#2)=#!-=1,&C*/'C*7'''(()))***++,,,--.8,7(8Þ>;DX=:&~ÝA011111111A4>:9,$ *%H*QJ7D`M98Bý=,6@0YG8* =E3?8 "<-9 0+ %1/( ;/)þ&-WA/+g#2F59-"/2NR#.+ 4)%EV:+?KþG?*?4,K(5W:d4F(-K7(-%';8*$-S@@9)+':52+aC+J9?'#?\>1#,T1"M@RF;;,E19B :\9Jпo²s5-ú5 8T&=.+;!F!AAM72þ>>0I`Q#'*;;1LE%(4Iy/EO3A(8/)=D?; :BFF3HõX=<9KUA)J(=2A8R#L=H'74-ZQ2C<LN3S<#BH.-50&.1!'#6N" L22/)UG$6)25.I9& /-? G7F,W23:5.<dA'IUö#9U1))<+BF,17O9(62S"D<;\c:RûK)'KA@=ï* cXL92P f>(/3MM:C25"fKI4:UfBd?Q<MQ7'+6O14h0/*>E'Ga;F" ?N,+G%9,=-)F` 4<N-ÿAH.'-7,3%3'1!5OSOADFKDM&]<:b=:bMT7.8UUwX3D:1#56%@,/$UY,O2@6 -)Q0@7GH!/58'K?RI2=/*8NK"K.k?,ûB$`<!863;=,$%0G;0cE?*A +6+*"J!5I%GL/00000000////////...3"0:GK  (8*kK%< !Q,8LLH>7E,AGe3JZ8;>uVF0E<7$Q'A'+>@4../\1I-A,*:8'/)`0=9&D4%2!0$%2ïV"(>XM7(3*N*"*÷SKNH+7PD(>-)%(60 $`3E.%5N<!þ/T>V8K30B7)N;$)<>+3?K6#4I6VC8)4%:K+E5>+">a'/( TQF-(((4BP*#4=-S4DGH,:6AbYCVE4#7@%/=,/;.$%Z;B'K9*40? +!*XCB;,CM7'''((())***++,,,---67/$'*<97.;@9(1111111160-=(#41KB@2S(,0R/%ê-M?!G/A.!C(B:1<<1*3#??!=E9#,,$/`2(7Bþ9<KJ=^\8=?C?]82^%D-Y '5 )03)%28M7%D%I%05 +4O>4/)+4(5!8c9,b0A:9n0"@CXD1$EM@@!"71.477>9R EK&"7SD? .A@(kñGŽa¿Œ5$(H@(kS):$!#@:=_0€>.*R"#jHX'K9" (9/3,5D=%+ 3e !"B,p?Cp[>ÿ.> !E5>8(&-Z$'-N÷N ?1/0A=0&!G)019/6T N +/1D$%,D0:O/=8%8!<$+CKT0, ;`0;< &32GI1:P44-:H#YJ1O=Z "XT2V,/7#.7#/9.28!6V>L2; ;OD3ô*25?"U;1K8V*-5$:1;P;94B*K Y0*.)BHnDA$9f7<)L:07)(ZI084&4 ?GX-:A _"?.* #6V7,-1tVþ +AHJ$(>@#H,^5Z4<>H`„Y<=#'P0O%U::‚HG5B@"'3,"DW.A3X=49+54<]`S02B<=JAQS- NDMD**<C&7$3KI4471@:@(?G/3A6 +*:H!ú>"7 !-h,BE$0(09@ZJ)6ýV00000000////////...?):/(: 4-pTTKGC2D6-+Z>;:/9 ,:H=1/1C;5W?:8.%*?+=6N0P>+:F),T-QV ): ;N!&2/,þ2/D:K &C8461Z/>$`6%,/:@W(8." N+36F%-9; . 5E&+;B4!.-]dX<D'9(b''6K459-=ï&32ö(H +6S75<758305399J# /.I)%3><E+ 9û1JD1)dA+ L%4R$0*L42#3R3:A1#-00=F0)92:M &47h%7:S<&''((())***+++,,---?-&%>OL1I:#4L=M311111111úF''FG & )?(/EGDB>: +'J3H!/8\-/KAJ6*,.>-K 08%*",.-HD6B(07SI+,9#%863 <D<)2 0P(X/*AJ:9I#8@)"+IR!>(/b<KHP3CC4H6Q^D,;$MPD)i(*2E3Z6;3,B%*%.RU-I+8D=Q(e#,G)HOTÇWx7))C8)RE:'BB&(J)K:0LB'%"%#L,IZ,:0%<%<90H1% OH* þ65!"D:<>!!):4 [`EZJ:P^@W,C(1$7-&=2#FO,C )-JPGM+?$$L=*&H4P;1/X.6 -úGQ1F6E>52%<$:5,0-./8F%/D41/E/@>:I<91G? %NNnR +14P+<&*(":K1 +F")(Oj2*CB7.A3Ue/!bFJ*@H,',=-:< Aû0?;)?LX@M?%*BIH4:M!>ICV2U,7G**9$ì=?2P?#ÿ7@".8>#V#47')WN=!$$,"#!;/<0,+"HXM;,Kš¦:%TH'(- :*;QUI` >&)J2*=B"ü'3*5((.>A#C$C-7=+(4OQ)DA5+(*-%S?.&+32LS7. 0C!,L,K+ $C=B1!(%P8L)+MBE)19)85D100000000////////....VE5,9ô-O'A/L)%' /'>3:C0.82J"()3J6)&=l<41/5ý5F1&MK#'=(U$82)@,HY+   *,*A$V68.E+8@G8'0T!E÷U399<6>-00>XJ^?=$$$%2)9B2/J%SD=~) 9 2?1BP<B]?T1L&043;)735#9Fí*GT7X(KA-,2HH#J '=*'0dSA=:9-l500E )920."803 %I? +J4@R5MC.'!U+#L,$ZM2C54.??==>/1SS!9&''((()))**+++,,---C(1ùK *Z+/$)6&"E0R11111111T2>2<B 9-''%4@`*.4þ-?%@'>&1ñDQJ8 :"%C!,=9//I4=.C19*?E 2C,=B3 5<+CR B^--=L&N"06&QA.>(77"-H!4,4=9FW&)A'%C8*A,"676E?9(WD%0(A3;D?/:0,4÷*N;P56(,2X@9\"2;?7'?82:GC;FEKJ&8%36='A#*I=0E)-$2:&-U6/FKF $-<K%"3'J,B7OsA>*%61.">!2 )5B)#2'D1GF]:#?*m5/4 +<B-1M7þ103 !*ME%:U2 +f=M35 ,["%B/A9$A5FI3-B081?7<E/0P(C CZ=!3,;*Y25 V ,'*??ŸÃs<5f8)!2 OD8O*$'.WA2,;a,*C)W$31T6.T%,D!60F$<*0*I+:FF  +75O9+83,$C5H=QWG7,=C*W>!' .@ D= .I2:E>6&eôLI*#,H37%<7.@8 Y,E":UHJTDQ9^*IQ.&u (þ(3?;M3B7*#(*&@Z6!J-+;&'B%CL*HKD7 -c& J-GN,@HC79J]:0LB.(#D;FJF‚_;>O**/=*'+O/,*'G"d!4[56Bí9F<00000000/////////..;O65>,5 DE BQ5%5 *WQ:$*D.+50//H?,G58$ÿ\9SY3),D)9T60$=7^<5;ý3)( &LNý$O =-$*?NR3!'76Bë!?=$!"<!5Aü6*D@C%$/ :ø(+ 02MBK FEJ%6:4+>*CY: +>>/j4DB;:+& 40d% 5DF:#&6&?.$#4AAQNW0/DNB5.J1^3,G?2B!1FL6,D&="-%2VB=1,09K;E=4G#35=/.8CK*Z;&'''(()))**+++,,---#&G)\>9c J#A*4111111110b7)6/A79!39' H$(+$-0"BN+UW2!> B3,@9AB +-.8 3B3A&>2E*YG.;D#.'9#!C :ú,1.DOLM"(@PP <KF0(&$;!1@1%.>;#!6%5+9:;L4U-0<=(@:D:'XNW:12E"0@FF,6/+*&=F77$?D!H@U@K4.#A"=<.7&/'/DMK' +/P A6J(B &A<==?90,9FB2TJ31=;c#"71>F)rf>}zbuHE#=PJ6(0;-T(H//9%)E7S7+1H7O5ç,K9*I319=(GAQ-ü4)2->%'!+"/5(Q:"<X)$5<D^)) )@#)6:02E5>M&eÿ#0QIC,\5$@1 A"09%4H/?(Ba_|d:F,ES'Z"a6:5?7]:[_&84^65X@<*;B3%8þ=K03D3B*:#1!K-&8D$0:.&0-D1@*Rd(ð8+F239G#7`6,õU7J8 R%3$O'VP2")/4 Y+I-Q>QHG=6)874!878'#n%Q=a-,J/Y >510SUMNRG)CB0+.(/ J55,7#TD31G5P>AF:7.3<'a-L1  10Bu89)N<PYE:)hFŒ|_@6,"*?&,5\66M,M2:Q0&)â=]C;Q2 00000000/////////..%H:"07 71;K@16 ."!)); $ +C/ 6:Y@û32718p*M>B,>U D<$2)JK+58 &.PF 9>*$2"+?<BIG@1=7.C/ JF%62MF43-*71@.:*+U8<?k,5*07=@YH+8650+/+0.6''<$ +M=0??G+ F@:/61*C(5)5>9BS@35"$5<;POA $%D[3D0:< 1 2ù1'&/D16G+4<M1LD.,""3"021U+#5. KM=%&<&'''(()))**+++,,,--'=>')77F,*/[J.J*&11111111.?-C6*.S&?`,D$33_)6JV,P?00ô(3&( 2O-*4 :O==M.BT3IM-UBJ9)D÷<!Z;|[<6:CH8*6&2+&A+$,JC E35 9#M4=%PHOM2;2Y<H-+:%QI4*YB* :aGabZ6DK*+9:+2F² gJ'!O,8@N!,5I3,X0? GI+0$X-;**&>?@0:6E!-:+<%þ2IFdAS>#, H:SUB."B4!6'>YpdSc[" --]9)1;94.&U0@79bG9B$ 4@$"702;A98>E.$D-?!8"%3<AI6Te2*WiC79?0/5m0B>.B:=@:# öbA07 +:F"L&';@>8OR 3&,. 8.PSGS@ 2:HmG9%;Q7ü!T)O*4X3)3K`:*1F, :;B/)34A8>I(n@4T7."YG*#2%9 'T +,X&7A;1@!2(&C6"4E3)C1@'B9-:)>d<) `%1+~CY(U= )05" @HR.1('O)K,CFMV,38K!F#8G@CFDHD=B2g9@g&'''WINCMUO%%IBD9'D"F)5#PD &35+1:A;4* +6X2O5&<6<)&5#G7O@,5Z*5;f—¤‘dJ <P0F@(MF 4(4B62\)/66/&Eò=í4\*A00000000/////////..=?+:J0=&?I)2=%'?0,/)$(!<*MA*b1M>886:ê8OH; & +<:\6=(.AZ.2G6)33N=.397& 9<<!M#\'<3P,ùQ:/!)S 3=".=$3"ANIHI3Z9<*$2 $ )I"#G)-=Q)1$-ö/ Y1ZEA9'.)'!$9Pÿ0A*%,:1+=f 1T$#*(f#=F*B=2;).;1 2VJ1.õ 4:.$U7)(_4Q*9+;4/G/ 15 B6OL)90S>6(1. 1/5eK%$7&'''(()))***++,,,--@)CþP;ã/8K5EB!V;CA#*11111111.N72"9"&$&42[(-;A/#4/-C2=+*/#/7-AR>,&,66FBD #11.úV77 ;"(1&Fë 5)X +J$;)E09-*.A@2+H/b044 8,59=3+-I%G$J+,/%@7U:#5;9EM:4%_*2DyMcQ7()1&;4A8$'&/=MD)=66'@'C!úB6T9*C.BNM>*21nB21, W72 +(=VW@)"<4 ,w.,-H?B$))C3_ ,ü(>_\_/N.9L1+8.4?ë89+l47E&*=Y74)-*Q%BK0"B+7/6A)!#,("*HùG/I'<3/!F7g;D/#:(3'?,O.5 #, %C>($+2N6JB@>= =I*4I)UYH-<3',.9 N'/<4I1!a^B= !9üH%,*;E*?'-1T?eIh'<;(6:</-5A"5"WYIB9>>6.1==-1T3$=.@ûOb$%NO+$2.6KC$N!33AC*7@a*Hl]P,::LKNXAKKq %<CH4R8C-6%(CGF/<S1-?,QC:$"N(A,K.+5+BBMA>5Q8D7,#E'y+=Z95h@KP57J$û<"";0*B?>-9TW+WT(Hÿ'3(*%X\:%/ .XXjzZVø1318 #4'4?#9,014N8&M"S00000000/////////..0$61ITU4:-@*)c+4\;$C@%=F^::O)NV+SL2>5/<4A  !..:))D&J'C$R*"ï$K9øU'C,&<&1 +20 #B1Kï5/ K+5*67%)@I3+ñ= "^!BT$<QO17@5FO5T9)Q8\-,/9?R;K4)N)C0öZ2++IM$Dë857: !c?\T". +G5$30&#$!!G$ð,P<!KSû*.ýD9ø*9?JNH(H";,1%@3=*'$>î?6d1:7&&24' +)-/H66&'''((())***++,,,--,J.I5E1O*"1W%RL/"11111111>5(3772> /7:/8(W+BOs%DL5:';=A.1,S8;8:` $>ò"&N&D/@8/!546k=<!)A40;:E+20:&&%þ 1'W?5?+)>^I*-CAV4;5O5E<$7GI&L1>-,NC4M?FjW?,EI8C5;3OO>"(40N =I(3/þ\3834%:*"1%!P1I&;B Y/C;'.;8<1,P46D29-$I^Y83<!* *[0>F$)@)+^FTW +?D,(*7M?(672&&E +9.#C&0".Q& 7(B^953RdG1;N0="@DB2K? 95T9W`=(7$$#Q +:M(! / <4WV8J&1 >6")B0/ 9#6/'(? J-]<7IF<$23J>'-756'!710'6X";7 #%F!<:&5-FS17Y&@1.KI$0&2$+2) $%=.*$H)]H,(EB;A3 !C)A8I,&Y6;)[712+R($T%5,3B94%A%6w"J K(-+PbC7"W&1493?n9V"C!4K)'O)S!63?;GuZ.@HEu)<'7[87=/:DC7)QabFXA46SK465&CCCW) /!.%:VQ.('2?@G: (;*$/.>+94GKJ&$3E>03 6" - +ä ):-#JQ.7K3DA'6T$(!000000000////////...6N,5J="-C,F&41J+ :.?*-;;(3!:-;%S>BCK5*&0)$9E$B?+: 9 %#`\5/-6#)B:8.#482'/:$44F#<';R<"<60H8(9S-++/ú1;=#(C9C8?$7J126Q)-*$B(F04;$7I #.$DD^;T F<<JE+5<<?J=BJ2-AJ'9>4c621.'@=<F=3>7(/49.!#85' 5%*+B2D3>:B"( +A 9 "(&D3  &/6", W048=I5D= ú6-5MRVL&''((())***++,,,-$b1 $,F\55:I7DW‘_111111117JE+8+34K;566I=F/PAF4W*OAD! -,64:(A2#(-@ J5ù/4@%1@/'?'> WO215OFCL+%+80*:4..1.E/4 0%&2*$IAQ„:+H "&14!4.r0&7(<B471$KI'HM'$"H,->0/)&+þ">5!ZU"<"D&K)756H@3A4HC3!ú8$P2.<=*74O7?82(AZ7+.:444#<52</##3,2NKh%C2LMFAJGB(76K)B'".&=÷7'49 O.'4.)+,!þ2&3!KC3K],9#5! -5<+H, &('?][>#,BG%794(-91ý--,4I&& !$B$2@+@53')%d %>EG#/?-3+05:68, F79E*IJ<;:G+E$;/ #)A-, E#=-=9O(*;J+/ +'.?!>83*o:4@3!&2' GH*2(%&ED/+6%!L2LF%;*=L4(F*ýV*;2'?C#'Q1@$#@ L)#3.3/÷(h-E)6EC;bL>49.%&?AM@ +/+=;2?+#iF4VAL%&1/,F% +0D4$)2B:Fù5%65$Jÿ 2L2+>"01B!@#)?^P=<M-98@K%)?.4?A0'2P?2? 6ë9BI->1A#J):?.Q#:2 _== 000000000////////..W+011/W@*$Q L77.#-Z;-=:$GT8$O57)*1$' + +PF6&7A9 ;,3"+H8U@L BB'):)ýEC,2A*:L>3<P6-#8, 8/5+@%6)2-*.+)"5%6(K(3# B!"J'%3020-V=1KS.*ðF$óD#Y):;5&NDJ2:&C9&"&3#"7(E='0;K*9Sa,-VS'/ 5<?í"0ï+6R33-8:1.."8 O@ZBN4#%+ÿ +&(19!"-8 8Y2+91)þ'C(U&B+V<R$7O&''((())***+++,,-M"M;.9EI#7L24:PQTSL811111111#þ7+7('93?@JP4%,3@9R*ù%# #/EE#<ø $X^I@21^I.A582AK2b.T7TJ;;A9/*D:-@" BO),';SQ 9"#>D>^.g$0>H3?)>3,<,X8@YO9,*-a('L#!D+3;S1" +,0X]&' 4K&@ï,.?-P>.65,<"%=*-8>+'/*B(>:A@= 1>',B;%E*5.O%9õe-%PCL $80=_89-B119=.3<K"\=8DA(aQ/4- .%< \1 6 Q''74J0$0IGJ;98<;bL98Qò8A"*XXL(J2H2'17/D:+ S,A5,Y<UBV$7D&DG,B%ö.%+E$,Y-" 2H j-1)#483=5OK*.J3=/<.1@M,?8!/ @*!`G&:83/)"*9TMLN()$01KE-7-.%5-8(d/MA,#0PC<1E6! &V-VC66ù7s+'% "U\:-V,86%?8=FE= 4GX 2FFõ,/(CB+gH:+Ce42%:N-..JUB?>#+74G.R2">0!I3OK9=.=X")  D 7T13'? 3FYW'?5E?=L!KCZHD9\80 4 O6">,$)*O/=-D5C4/,#1=]@5/%$@ 0;<0$ )Z;C>d71?2:J(b$$=F000000000////////..Eû$:X<60A'(05':7%7,F6L"NH!>5BK;+=/.%%Q4=2?!B5;55*25A4 +!;EJ4""BN;*#$"06)7";,';BM)B ,E89%#=DB9= G-5?H,93)03K4K6 T$"B>16*E1&,44%1G-OH );C+> /0/&#-Q*.*#&: '>;,""- 1C1<:ö"c -EúqG/><%eN-B6I55÷$B4A $2*H ! aVD,O F&6UJ.'JI*4!D "L8.;2)S&''((()))**+++,,-aAáP]'$/@4 CJ2JI11111111.:H3[?<Y +'QSû(NB>*LF62I(%2: : $S',a,);4,<./-2?3%DD +YO,?7G-/ F6;EEES$SA:+.#7N``Y+ !cü1HO2*6$@&ý,/.G%*4-, 7*#45-Q47/-$U9L:B '><JC"$<*UDDUEP\Y! 6<*])A+'M,,BC3/$A9?"B%5%.B?C=69*ñ4+$%#LVQG18)A0.Q/5c=)5EO"==1!4805 3351-F,'P45K&W5$=%9(IC*118-9/7E#&M6:)%K*a"OGLi-6G$<108M`3+)-0"Z.*322+@/6U‚cRE"4!)6WA7;**>&=:GG.,R?3'9=;J:F;-70C):'?E(R< Z<&?%;+0=A( +'2>)F;874 U8>#(F/!35=AA87.=f.:ÿ440/>://M)7'L!+;D"4#M8=- J 4:<%g2&F/)PF+9M(79*,?F;,!,"#3D`8!I? .8%+:G* B_#)GA!+CH7E$78U"8B0<>U7_6*-/"IU2)&F1 $<&,3*$3%8:+=J"'F8;DT@C813@ [;N(/S9,($!x(7#=4FW*I3? T#<N :*TB6+)%%289"CE'P#000000000////////..9S.3:=31>=MGF;HCA¡>5G*$4##7 483LU,81465#4=ZA;1_B;H=@+..3J(8(!-4H>6'1,!]@9<I38+ÿ 6 10*()8RE T6?%E.6.K%"U# C4EP8"6=KNGN=;$/X>F<>,*<,34`/!N;@N&8"%\:XT3Z1-@=-,D4-* ;38! =%93!$1  +=)-/+G$91 >1M6)&2Q +ïE +=>%I(þ0-#'39829 '.R*HS"j-53'M` 8D)C;&'''(()))**+++,,,L?ž_^7*.;/<;:M-*-2111111110"!A <;(-@6A#JQ*7@A@I!-=K++?:H7'.;A<OE$qM?2ê(W 0+0?%!-10B4AR&C"#:E=DHJI36*. !;:-Y);I22FE;^FJ^=;E&-F29)/9-1<6 5+-G D.;4,<M:+4%1"0IG2hL05(SûBC%;9[:&BA0A/5+O8:+22/1[DF&G-<49%]*)*.%=;?%3:06`;?$*9".#917=b'*S2N*.8F?/G*8W/15$O9%!NC2#-@H7e2;%<T%-9<7.*'L-7]!)2|0*H6^#2,88&&:5+ '@2+l#7.5Df|P`5.5#!0;* ]3@;M"NO0%*(d.-/+#=81E,J<)+T<H//5)_ZI$=:+!56.FG5<BT#/H6>,D3F>%B(4Z&0>#.?"9</#3P8<.+6SS%!"2.;U+I()@:EA=G9<W $49B@'(1TFUYR3P@4&= =.?0'K0DH.5!?(?&,:"311D4C& 3iE AEJC/eW*>%%F261Y>9 +þ(:E$#*J%$)07'<(. + :+5':2G!$? )>5'4-$!1çK=$."139G3 (?47A3.%&8?$H=43%140.=9"'6P>2J"&!/7.6 ;&4100000000////////..N>Rd&^.$W!$*0;.&459*")OFJ> A*&><9T?#;D!22LE=DQ<9;H71h1$==V5( =/0(D:%P1/(9#2 ('23Z181+'0-=64"(707 +"QN39874.@6,1&!E1 ECL<OTA7EDBD%,<)>O.>0!69LJFD/ /C =6h% +7L.8;:+1A*= M5C2E!4/7gN>6:ú?+ 5T",'& G600'!-fF;. >E"B'#((3S7/5(>115;1í#FD:0-(&'''(()))**+++,,,CD)T\U.%'+=ðô'011111111' <""K,!AJ(V4$8 85V;1?"$C/)2&2y/AM6?)M6Q+=5<'R,ô.-Vÿ<;8"'3:d&3(";83 D0DV5,4 33B2()<K$*!-¥r]J+'W+þ&GE9%^7& >1"<"@"G9#%-5'U:ú&#^ 7U+E8a#C(:";-þB6 ;2D7AC$.I463e>CBK+7%@P*2Dy3i6"*(BQ+S"5<3=16RR#7B3:' A 5D*A9D/$'K'+)B-MI'"*K9C$ON&3,V!GNB+A*/+),D'JM?@0O CEDCQ/>!G,)241&@HIJCK#:;D/1K/8:&B23'.<6+P.<2T*27Q)Sl'V0)(%NBAS6EI?<T=!5S>.!04&I<L"(- !E&3:O.S AK*NR#$CT=;<0:D))8:84)4/%X9AH$2B`8; û(!9(15&1,D.!8:J`_"YN=;>/,A+PD$!YV8 +%N07&I #8@O,GE4@'B3,2+CK;2*> W'?52D@%94J,,2E==9.>Q<2M?6*8-*8)9" dE6H66D(,(4æ'<**9#L=+RKD*+Y9<;;</6!:GCõ/D. !EZ&IQ)-/3,W72)(é33$, .E17+100000000////////..(8UcOU'1,.5; :?3<#/+:?&.9BJDH<"'L1-76!T%R80  3!(R75L9'?,:':D# B P!>8BBB#E5F 'J%76 +%>B.ZDD/4@%*;K4[(,D<@b#E;,.$969A $4G)#Q?$ S-VJ'3=J !91 Rd24#50LHL"> 4= )'NH<:0&=, G@.3Q>'FB)0 -< X 8F=1%?+JU$S1848>þ9B *S$5MCPL9ñ&(0.V12U26( 6&'''(()))***++,,,@=OC5=U:"L%+@*JG(CD9A611111111#1*(: 0-*0!);BJX9GM !K+#7 1WB(;4$4"-7)1.'T"\!50? +&BI(UW95,\!,/0?<7A@,;?[ )*9'?P=.[7;E>]B3F<0Cl,@8>2 #/6-(R@E> A@)8$.;9U3(<0>2WQX8M# *;-b!V'?ü)-(G!--AD">Mô3_+F%874eO< .?!#&A.G$R,' >*?24J%?83!=9;X>W,*5÷wCD/? JD=#F)&A> +Q5%+9_"5R,9B2þ).P=0- @A@]/1@2=U6"59+2C8L9!5(/B\5'-ü>/%5 2+7+:5&>-2'MG46;.CdDJHCNRNV04 E>>6S*EG7'LBCA2IAD9K!55E6#I.?$4 =>4H1:$2)u$4V 'L-:AMA(G'4'C4);A$h1 ??W>J73%6W625:O9ý5(4J:)D.*14:4Q +0-8IAý61@Y@26-MBP,--):$CG)MF3O$'Q$?k6=&ò@F%>7L4*4G -56Qt"@;56'?Dü35E(0./A#$=87ö)A#>33J^',) -FGd7,@(84!<*1-3E0!(&0R )=+MFE! -. +2C7P#1K-(5?/<C&EG JL@SC1100000000/////////.)!CU3…H+"++0C&84=FFB>5H 'L45\ K8B7>UQ"-71AbP@.; (>H*$4<8= D=*EG6 SC'<IK"þ4#"'+ÿ 9 +%)?D'V9/:B@8EZ=6Y2?E4=;4*@/7*77 !CNDDF 4T',=<#E8OHE@F2BAF*@!<@'91J7<Y.<N*!ý1&QL%%/B5H-J9FR:%-0/+O*-F*1$4/+#L*KC"",!FMD (@?5ÿ :534773 5"G>%(I5**&'''((())***++,,,@7AQY'"J=6ö,7-711111111/Q%48#D,,%>;"6.(D1z91)HM2KBþ6-+& ",?)1I-2!2)9*@545DNb.4"H( 18?)L-#/?9)&B=2-4(?!<U6+5"%#=L<Z`"2%5<A@(E-:</,@d@'R2E0@-,G[I,/oDTK+P?"A)@I%1%4*:&3C-CLþ S%)N>U+<Q0,;t4"*\O<F)A>BIF_ ;3a,B<-?"0H<J!2=Q@d@13;M6 .!  +8-D+GE+.1A:J51L/I8!CK0+@/#L0û8#/=3:*3cI>0HE"GN&Löîb1=<9 +=7'2J DF-Q5d35):Dj&B!0&.Z$*-6#&)' IF#E\1L$<0, B_W*>('Z038/"!I@?8"&B +7)&3/79$(4)<dB((9)9é7/R+2O:'3PE-D089:HK LW%&C''$?*_!;(D91912%/"0ñ:&9%JE'.04QMI +!5*U)28#KK2890,N4 +2;!J#%jP÷C<J-Y>0=< <I;,ZX8$Q DG0B([ .0" +*BA2C3:A;]::H#+=06F '8L5 3B]8(^(q#(%"O,&2J'5-7>>F=:A!- On%.$$6@ NK(FB%=10**:-8.31100000000/////////.EA =eG38 !A;\ ý>lBI,09+,6!&3+?E#.K9=lR;1'#@T(H+/8)6NAb*--7Y> #6.>G) 4%þ !':,à#,&A(F3û<S9A/>?'<h*:, +>-#7C1%P9KE6>;4H*$6-Z3+!02@3]..&30K L:3(,6E)/64'93QA'2û>,öCP55'""#$<7+61&3%*,:P: 2*Y[A.)Gù;'&CE*&308Q=2%& %EG=*C)5"&&''((())***+++,,EGI8A ## 6$*37 +>8)'11111111*ü50/,4/9(7#B*Q&=")#<I "F< )#(@D;$8F';G#<3B5J :8$6>J5G+"): ÷(1`[06).6&>=B@F:Jû+5.-9$/J2I0)C)/<#=%)_AE%J9TD2)AA5&<! ( a(KA!`/P5'*+‰&&5*EQW<#KO82<<D0"<+RJD@0"5QU#J1I>E9+_L9M5:&M,;U2/&,YC-,L 2 - I$/G9A-='=NA2\8K#O=$.#$MUB>)û;1\5;,+P#1 +&$"#P@(8+@9G.<3;*0.T5;2 ?KB*$B=ø[õ Q< E5ë X*:/)#O ><EA;?92DK56=("aB=9#0R)F=I3;>(<*3+CQL>(74B-L.0<6J% +J2+aFH()A?5;+H.X6F2#!'4ZH)F80C5-G(X=!'(+<'*? ;EM7R(>=>P?F'I$6> 9<%'W[&:S7B KS%7PJ5RA-1)*?,EN<);40Z0&@14C8A+8 +`A.L5:F39&@?E$7n$4-5>,@'2/Q/'*28k5X<19-!CTf26 1&:IP$Y<.:M%!00(G9N!0T<M85E"CP0:*KE$-0?3>V>9!  7X'`9CC( F(`?"NC100000000/////////.#&H/<,TZ :(5;=&A$#,_)G H'<*%7'G".[(34PÅŠ+d-/+H-+#$%')@'HV)I+3R<#.M';7:92 (3$&*=$-:2>K-'(#&H <41[)B9("<9+37;G–Y[?3&-#%&85#'#3-43N@>R)(5-HJ9Y"!9I0E0GPM/&"(1&$;$108$7%2'90G;7)#>R).%9%9.<KH Z.U;?)(8834/174* ?%.E!DH7EJ8+/$2'H-=M- 23 "&&''((()))**+++,,[.:)49! #G%-2'(3)$11111111:%4Q.&4 +%UT -(Q $R4@@9S+Cp(0.A`dRX2_G0=@D>9 JýB)"61'%B #X)NR01-?/#W9>-D*A,L-L&<:A'DY7.7/H1V*&C(1A+=8-IY(,Q# .4_C$"Y7>&M9Q&=5öE)5 B-DPCZ#F9Z80E !.;;C23K.13(F7A,$!GE-&0;9J "):*( =;Yo5&Z-?\16ZH/5&R#5A)L 9)HVG.3=570-9NB&ü4 1F+?0X"(+: +N 4@)-!9N/7Er('ø`*(4L >EFP0b$^J+W.2O;5 5=8L @I?2>:4-7&/.UKAw<Q8XAE,<+!D4I2&\,A+Q4;A6$Bg?<%J''FMNM!MXþ?:/:UH,648H"% /W>X=("0I #)XR6@ ?=9d <;I1D5=JQ+@%+7U42(=.9OS6$+YN`#DA8C L.334LK}2P5TBC7J/4C2,K,A&G,I0"@ 3+a,$/#9,977H%L&3I&7%=*=)@&,/C>$7K&6KGT[1#+=-&?*&<&%>4E"96$Z+3<B$1(;O)$G!J".%:=49"*</ @.<MB6&8839;MýSM=QG&6D200000000//////////?(!+[N8*/D  B!I 709.G,-AP?J#/á41F+B*@ÃïÚ†u6NFG6bX$ 0<;3QN8-F5I./':."42e&3!*B-0#-&2I"%6E? )OSR4W9,14_‘ÒˆJ%F+QM''F3'=./J!LL$D9."'E3)QE48>50^.%>!VZ+-K1J4:>0:HA2#A9%&%),-9*:&68=õ";.S&\R)*;598L-S/8@üö/ +&-7?+4 I? FMP91,=**L5"-**E1&&'''(()))**+++,,?.<:N%4I>CN?H-)ÿ1Y11111111-=J::&'Eï8@LDA33P EHk^. )5>* 08 #$$H8@=HM,S(0<V /`D4P2J1B"=O,TB[\S-ÿ( .$Z-)4F\/K4OyI5F4\-#J5<1<'%.BIS9Sï>(C7,,:=0W2QYC0568VJ: M2*A[GA:@+U#= -ù4:2m>/642 A#")01&&3%E!"C?>;,#A252P-(+N6?3<!/01$90gF@8;[;T]@#?D(6 +I>")T-#2 +5+Z5 )n*0H2 I_7'JFcA "?P4i.IF.%@2'17_.@.%'>9C)DC^ +&;1/(?7( 4D E@%6-2U >;H,+'<D  $$U=1IQ"N;l1C%#J%cMFN;;5M.-@?5!;790C1'0Dg[V$8-=8H+%7r3]jVI.!+198#=2UB 5<;,C * $V3'E05F4-4?&@4;"ON?4):5GF;,H2HA>;3O9&-P?44!K.>%F0;h,0^+#R$3?D$!$`1 Q,0I6#'5D>HFsJ,"6<E7/5K<#-0.P%?%þ"0C=JD1? F7L"5\?8iE6LG7.*CV'"AH-#&L&,.'IQ7BFF7FWG1( 2M!.*;*8=5#=66A6000000000////////%5#%LG1<:<,<B2T6!4??O$4(`58(; +1XA: 7EB%R0‡Œ¢kQODO:P-NB6?!+@RR 8B0-%#O5 /@ý# + %*þ:!.8,!41I9)1OC@"&.$%AAN*7/G&(+^".:$:‹ãÉP;?8:5I<K0EES %*AD@!0LM(-(NN8%(6>øV5IFH1F9ø"G(1$;LABK77:P>:+%<(/:%QR!HJ<û/*3Z+/,,"123-3'+Uû?KW-SA:JM.6(!(5 &&'''(()))**+++,,NF;$%92%M ?Y/C!$>81111111111,Z:*ò</dJ92)>U"!6`TUG%S4*476(8:?70)B04R 0 J7W2AB2C-B=÷1/%B #Pù**(>QN;*81K^'$7&N#15)1%-3F404@!@C,%,#'.[   9(C.'&3/**B6F@ G#3@;H(*7P3I/1T8Q003.b<.6 +/4!6R+a&)  /';j" c<VH7MGKc)G639+"))5)1j+*!/(<3+,D-'IDZiw0;5è44F7:##D%= c.)*8 0*,#72!.D,d+)=O-$K= 990h+"<#69UB2M)-(EB5ú0*(AO'*H":FE7  +4G@762.2aC!F;'<P)5#?""<QD/J/k(8%M"C6P'X.ôI4=$eLD'?.?<MKY99E;C#675;D=O6>S.8N5 .;`?4*&LSF9&J:1Eø:%;M$/=&+E@.J*'H?G8 3"'G?*0;J/'=46QB76*8P`\f(YñBMúA?G3C +=!;SZeXEHA>,# +W"I+EFD?SP4A'h1*7(V:T7:0>4+&DiDl-^*8QBA/.#5123%18*4F:88b %>>Y& /$&4N[+81>D% +):,'C('7-ú)0/Q;b)6-,H(D4 Zp @G"4LWE000000000////////(03/1AJ>=P-#1(-65û&47!0<1KC55"D+1I010C7/HR=0(=&c29ÿ6##? 4*#e*1H CCü,%\))2 *EG>>./6#44)/8,7\;T&440M0@6 +)/>(+F8Pa›‰W3)/(+&GZ=N+Q*)07A0!1T'Y@"-0 +P0?5JK@ "994* /= H#BFM=*.3_L--C'3%G(0" L&<!B;<U *>^$2%%a(9E&>,M%,*2%90=*<8 +7<'_7&&'''(()))***++,,; 61V72//>@GE:W1G91111111114"5M?6-8U18/&`=R+A9L8-T$h3.7QE;4@HWL@B%--D7ADD9$2%L;C, 01?$20 ADY=û^[K ;8EH0.;FVP;32J#,QDU'C85!*5?-E );=?)+9?C?6b'H5+!V% +-i;$-W9(+-f AT +Y$2!Y3;52$(A9÷3F=gH,C$*8+4- 2 * K74-%=/q'h%B10>B,GK<+gœ½}uB3;/yM"R2$K(,A3 /7D! BNX?õ)7@<"DJ#W5B(>>C+/-A7" 5= $€*'"\%'\->42QaA20*-ú,&>G3*2Q=!##,@;7(>' $ *6+:! +& )%SþAF9'A\ *:7CN;SøB+"G^ *!2<|0,1AG"9C PF?7D6M 9B\_?-3K,=*þ4ýG(33Vð>E3%(,[C<@8>75-]G,T[7)Q9 1-AJ9S/.C3+0'T2‰97,<BI!*5.N3S,"*-+ %'H7,'OE"MRR_XJ9^3J2 Y2152$,#E23<* A,> UJ2Q<R1dÿ,/@*U0<(3H'I;KW8('C=)?0'=1<*.V(4A/FB*<7)3%.;EIJsF26 B%,2*+96:K!8"?/G8ZAS37ADU. €&758;2*O#B000000000////////+4\l:5!7/5`3%)@A20!L)&l%BB$;7)39 1N#HD30U?ù11Q>=H4> +/ =>H1=;3 :1SM 62'!78). !/>'*ø:(%U':<(2&0G;+B2G,5?((;0='/.>&+05")'="#+C:H':CeF3PS=D6D+@C:+33*,S" ' ;C8". FG-,--LCIZSLþ+)1J09+@'Q7?3+E-</A8'&&g=<7601=FB96ð1F>_;*30MG4,2:a)'72=C:=/1K1C'9/I$/&'''((())***++,8UD4D$"U@K1JQ.0/0E\111111111A2'4UL]SI604.*!S;+20Z9#óA#(>!1d7:.+G$-3&31),<)%,1K0+/2J$'2L &"NF8J6I:K0SA6"86Cü)2&6.%-<2-1eC5:00./-)"5(DG8-._:%$('/0&84<?9P'3<"*üc6$@*$*TH.-6 A5+?37M"4$)) A+/2@8276= ö@B+@FAø1660,>\M)MQ*\hPCX*^jl@8416>I$1DE-<@10C% I# 623#D!#$/("%75*(O?+$;%2MN$-0H 7B?967GLý%+3(7;=)HQ$;m)._-2:;5,2+Ðn"\1(3!7ð]/5Se%8<5A.%#L':wq G7'îB"4F%% J 2C*C-:4-:>==@*7+2>A(DI959LCM0?2D#) O@"74Añ*HCP9C&W16RnN9F:465"14@"0C(@C (!'C8/F>%6"G;LX<*+P2Q=4'&/XE:7G<&+$+@A480G>604;:/ /.5ÿ6-1K(?JB)7Eý: HEO-4<#8?57 %8%4:?(' P?&@; ZM5`=:/K:b:Bö)%N=.;#!YJ>3HAT5$2(?5:(.@(&B!+.I6C6MaŠ=3)@B~1?4EŒW62)7F!-000000000////////`[-Y?R$;8-I#%-Xm8838")I*)! -îúJ3;V1+-1)57ñ%861i "55(<>-'$1=(2#1! "%0 S%0(/8*! <48adD2õ;MO<-F7C-)N-=3.O0S'%C3N?>C8+$4:>F>+<C#C2Q<%Hh4020.*E3/3(+LC/P6:M0-7C3ù+R4-.(;ED-%M##@G4+,! -0\(9' 1J@R&3 J521.:0Na87OME4 DR +!&>,7#&.;&3$#ÿ-,&&''((())***++,=ED/ N(7O!,=@-D'S*8.111111111C<-97/(,"&1)[S!8@D2:=?CF< ]A+=" 233AB4<K@D7A0% 05 IS0'!+%74Y'1üN ;!>2<8 g½nV)c ET*ÿ4.4K)$K9'TEA41LH32F/=&6EGF",40D9" @hE$&C:3.KJI/7'-!)]75G6WCR!Z'(? / B2I&9>E467[4H5 *43CH E/Bÿ+II:D?=?I>_=>6-)3;b0Rpê12=%0-,I@1H4ö-=/!2$@,5!M0. 8:=(B7=>>)1KA+A:"<G0$)P7=/$2-JU!,B()V6&<2:9b*4"7:#44b3&E*#.$1T3% B%+,i?+1-:-/<-9HW!8H#!K-400U?5÷G4S8<$3!3Q7;)?'AL(E:#H/L,B$'?A&.=<7*EN/I  ((OJ>+=3**<#P"F0SC"A* +HE+0E$([+#B11K2$H*Q+pMlG,8-$%=1$  I565@FT#,29&Z>53,Q8%/%DQ!0&2 ú!]+A')B5*7DAd2R/L62*26B-$ô,+;V5('5(>GQ88Hri–œWR4;S**`ýD8X$W JAH\\D3.U1"I.7:4PN_·ÁI$6 =4; =<poDA @8"ú00000000///////?€+<-,5AC<6'$>C@(4C2'$)5,C>F?H*&'A,08+1!, ",* 34 ! NMGE-D0/,!C&1)FM8<.2(-16<:;<50O…ŽN*7B+-HMIV=(/<%>*82=6Q&9+N5+E4`E+6e%9BV/ P'6Z'+'.(5#*'#-#GR6 D<?,4'2Q0:E:;+4:=!G2/.(3FÿH&6Q;)=(H÷"#"@ 04E+"þ-<GY90jFZI+2K(%K+)I-9-'.?'37-JF,&&''((())***+++('! P80!:I ;:+,X$Bû'7S1111111111):B=@-@+6 AG??400>G85)FC2*)@'K;a$4D GN: 4(*0F9."5))-B$+#H;1.)#(* 3Oc&7*“jo(8K CY-q*1%'+ Q?6I-<$2E 66&?ç3F$*3$g?N&.(+8:%. >5?"E,W*0ýHZ]tYM:OG#P55D;C*Z3K53,PF6"P#55#9"-'&5'XA\*"5D >*-3=$+@hXL\.Fa[/@ #; +>HH/CS 6§-S*XMù>60L4A+A196;#22;< 175J-&`?1"1) +=&@+=@95.,B:,L&+ýTX> C'7#2"#0\$<%"KM, 0&B#&(=66%<37&a+B69U1;9B86B9>@;%&-ô3*6(2);&+K8M%$>=((=:B88":& ûQ":<I'U'VL"*A ",$#.<<* ?-<!1$D3q0D D9>[C&!*)5O>7,#&AD6[0)#;0)A3:$\,+ò:(ED/;!.275(47.1DP)K"*,F4;35":-2S[%<THA B67"OQ?$!@.>3+!0C!'+#<:VBC7&Q1J-0Z+;ï_h:IX?7;FaG76  £EU1Q(.<$I0I +7@&+;04/5Fà59¢ÙІd9:L%=2A+@)@5b52c4H,00000000///////NF_;GQ9/?+)9;?+E.<6A8(4J`$5E=<''%1>2A/6%K3:JU$/7A!4A' +*8"8+-.% 3$V$'!ù)9õ.S)6Jg7T/&JlÈÿàÁE- @3)'& ?.9? 037D%/&F;(>. þ;t2<EF6N &='5O66D2%F":.*AGD5(6KH$& F$My,TI<K6/.2D*="C4)8#@-&">5'4 F66%72A; >,/ó93)>--M"úT)78J /:K]wyK6*,<%''&81$F3EX?K(O0W÷7?&&&''((()))**+++)$F,1/='&*#)Jï!C111111111!.%1*+#i>H+%L,!.95 H=+>,7.G>32./='@-92ò7*FKc0A.:U8CD.,û5&E/7F Db$*8L&:?X$<)&0$FUrkGE +æ L9%.S"J (+@+3Q8<4KüK÷5/3+8C16"26R8 2Ih*Q=.=CM04C<3þ?#09@H4R*A.8++!J@$D +&^.&#*0d/4-//A7;':"3*7 )fPHKrC/?04>17,(C2 #,$OY3š4!) + 5K>%-!0<?=D&$RD*64yK==4)J&_M76<'*H.<&/E)=51'Y564,A2009O )] 9/ 9-$/.6;%61),%2!;PA;XE,%QD,2K;.-;CF<gSQ;$&4c$HX$,*<#X4e*$A,A)!$)@96@0"3&L,*"OE/C. %";2" M",<6Z=1464(45&14B#3Q25?:,!L)-üJ%FD3I=?$. b.P;0X!;R-S>)X#!'#3. &){F>/- R7C84G3+:4X%$AVMJ^;!>21<$JB5%s4QD/:.M.79=Q438:21#(O&J5 +0@7M^C ;*E%@3)>6'" +,!f%*< +94!1 !+,M&5!I10B697=]­VQ/:<S6*G+.%0,GJS0!8&3</00000000///////m7ý%WQ.<+5"36*B<+VVF-62Y@jCpZ C 7E /CV7>N-j!RNE-*"&G';,C2.:ý)/.1( #/13.%2FVDqÉR ~7@?lü !$&J63-B.:A44/5"):L92;*Bl:A".:Q02NWpBcL<T@<>*]:!Dô(+ == E+N$46 (>*-8"&J4+õ-Z%%@;=180*276O?3=&< ,-*3++#-9*O', O A-!FŠƒ‘XE4 .*B3$-J-,&?2572&/ 3 +%!!&&'''(()))**++++@+4UFU1 1(9 1A%.IL1111111115'F4?B6:"Z+ +> 14==L( *9RCJ5F3-)%Ie<E2j[)=8a(M:*9'0C.="C:f$,UC18:2/8?K#8JB!!A-( / ^8&X"1:$L2 ?$'Q;B9/=S4H1:?:K-(#(-,î9?0!./4J1,7O )%'8@88N2;=-F$I<B0B7"4BA*HHF9> !2707L9A?='OBNR4 4'*51A@>*(..95&#5 1U2 %F5M6%<KB36+9 AL,H?-)?:Q.1$`4?.)?4 ï#J4;L<j$47E6(.[/3XL#$;F.;>$A !2A58<)$0145+Q,7V6(I +*@?]ðN2&þ905,\619Oþ ö[F9 8K?-?AXW*r'75K,O>D7E]S;T$G+'ÿû);&8-'@37e /.ðB-;=$8F9$67L/>#$0B +%;F6,U8(GEK&8ýFJ+8, .;[*V?6,92,A'87-(30DK !4)a,0F'*4=@*F04? FWK%&9L6$5N#!8B/N")5!W&(mB2# N/-1aAZ1F<Q)w%P9(?*î#V@'=6(12CH0J<6(aS<811 3+U?Ic=37,A3KA<1Lo)<4O@C&#0000000//////D;1N+4DL$I-!d#15$$?19R^&bC'"?A-TNAA#;'285842@*D..'N#2 </61/G%<#)(9% +% &%<(0R(1981;UŒÌQj"O7 (-&+7G6W+ E88<? +4$298e4J:I0+t=e9Q@L* Xt‚x\:25'<% A $#+3UX0<W62PU%(L;)+TM6*G1H! J8&5*FM,;-/0=!!<53) /+;:[@C81,C06,8)<.ac"GJU|T:W4%43A^'68X@#6/50M%<$<)$?$&&'''(()))**+++<BF;<3."FC,*B+/J111111111:%B';!;+(U'0û+0L0_-&'*!<9U<--7AM1=+-5*24@=?^w*1:EA,5'BúC*>S00=8R=9 ,-ý;&"0=9.C=OC9<3+H=EA07>LV&8.%+O+H7J#(#8@ G0GD-B>9(+*8"/%9/(J\##D5!@*@0J%3.N:5>.#5FhC9&þ(^('1 +<'+A$V>) .U%'4F+üB<BZ M700<3921A BBI?302");U498H.FE.'.<3SU48$%]4!)!DD1F8'*CE! +&"@C=4+*L:.345';@5;G1](.,:4GO*8-%K&B;"0'2%%\>=/a)<9L)A_;#>)5.8&'/)NS8&IABB+ '2@;$,G' /[M8)F(5BA9>k/Y-.ö70*365=80)@@31$6@:N"I5#J=S+ 50LU$* ?E3)98@I=DAA&(kQ#75#,*?*#" +(H5O)"I,"=5,@D95G68i064Y6]=(1<#P)FC!Y=2,O(C8;#?>2[=+@#TG@-MT,47-E*</(0)96IG><Hÿ.G !d2E/.M@KV*H?/d;(W +K%; ..8(&8C>#jþ% +Q\+5)'D028#=#*2A'&)f4A +OA >3 ;94!:1,60000000//////3E9:-"-=,=J8,:99/O*Am0r"^.$C-0*, E1^D@O7H660"?AH3- +3E! #$@7&+-#(0+M607,K~cH$#;(9D39G**;>aG8_0=3F*BlJVP^S+f2?P3%77;=OBE%3),'8/S(><M/?9H6\!=0*"\JP9GWJA/*678')* .C!I=4F,=P'*&%&=þ&ÿ1Ra) A25;D2j® yQ:*%?@ü0 <S ,6I+@((0`*7L0 )&&'''(()))***++#:*,+L!N&22.7A%N<111111111FG.(Q%,(4F$&"?4:4'.-QF1## ÿ BC ;V7, +7D T*6(&9</NU^D4J0V1<j]G7OO](h8iA5?"4<;QW5 /EN]5?2@F):.6KC@(#A*/H9B/<,i#,11G85B)>@< 'EBT8.,&*95Km:#G8[L6EO.A8$ML-$;C5!0K9#)"?1>=>G($! -Q%G=32O?* 03.E <X6S+/%% hS!,B4=ý @IVAJ 0GCCE:G$!D2 (!D5>#(H>/%! $7G11/17--.HIW@;8MnA/70H3A/R?>,Z4'11(>!0R'3êT<? @O+1DH2,BHH>44=X6.]@36J8IB %*=O073 332$) #H,7222+aK;<!3þE-%KW(10?06683=/:5C$ P5QA:F&.'=7YS'K/E#Q\ +;*H!C1!MKRX)8K}26T6JRA5N09G'# +-H/+6/DRG4.ø[/<,59S*7-)Q]-÷^/<#S C 0A*n)? S 9.<#6" 6KgjEE/-%GüCNI75R<0V:JX,3! +>/))1M++5B*B5=..R<').:2$L&+A<91&DG! E:@,E687SB)9A<F111111110//////-:<W 27FZQ.= *'82.,J6+,Kú3,#)2!2.)*20*48,B-4-P":"þ,HAE$2N85&MO.AC!#3'F"38B4<!O@P*p=)#M-Cß,. 7-,2/*!>8<K.)71$6@?#+4Z6?E:ƒ65>$O)B%7 1 =_7Q+8'B$+O0t:"=;(3%<^(?5ö#.228K)&+*'$-602 E4@*:.;22$7 ( +M!N?0/AX×è–J+.8";$+.G65V6)@,3H;<:Q*&&'''((())***++5&S#;;&#/(20$81#9111111111/*:A82A><#MüH )ù6,BN;6.;1^?7-!;$#7\HEÿi3JGGl]47\@(#- J,>F<9%fg_?7A+;8.<-G\*!+$J9 D0(*:R952A-1411YO#(?*?=2C#"(90;V57 +WG 3E5ÿ:9 M._V27;#7:ô"%<`/+ O2#1)03R68%  : (U3E9iQ8+<X&1^I)Eö ($<þ>&;?4.5)B##4=K';UG>&59@8C;6!û!0?8Y,*( ==DF<(EC=:-7DE=MCî5>î&%>7=B"-)E8.  ,-ø$F11-")C0/8E34CB*-8D53=_O@04.+"Mt&#-:FEH%9!J#S"Q9U3%C4S$=.5+_?99-/3))52!,8$LQ)3!3>*'1%PKIN0"5:OPX'2P%O#]# G R. /17&3P428#/ )@P8E&:<02J:}•‰®h^-8I@LW8=9 +S,7N-"GD&1C5@!K'!%,!*DPA"@8:HL)"CDL~'"MI'ú>R!G^30C+3O/D2513H ");]!-5KWZ'$T!="@ J!220'NNDH,&'9NF25:FB%.E?-)Q7,#@C-[2(T,@8M"C/%;9)*.-/1111111100////2A5O=<CF*"!'7I.D:-E+=+#Kz-.L; -*5I2 +#!\%&YT*/4!E*&#5EF*AS62F.FüF$KD,'2I(/ -+#9$D .%?8D\:>H.#/Aþ0! *I:-"XSD>9?4GC*99IL PHKKO;#T,96L@  27A I:T1,0* X7 ?#a:$!*,3)KF' +_17*1&A 8 />8;%%*9*3L(ü*>UMYR!&P44>2:I8 .ŠauS::C ,J4#E2I%)5@(W6)9' +?8S&&''((())***+/ %&BV2ñ@ +(8N2CD3GG(A111111111.!1D+%"%9B7$%90#0K&9#M5L<W+#P61ø*299 'ùQCXWQ+ATB3D3 +>.B>)$A>6'<+>6.65-'N+",JK&O .?O,R3e;= *&V'1+'O.0w/,ZF:CC9$35%@*.@,8IJB/5T>E&3$#)8,1]&'#6O34, 05+U 2"3-$@&Q~G1Q3AfIO^JDt!VU9R 3S2(#G ;()ô3&=O7 D26-;1  .5*)>5&;'.!G)8C?:?F/BW%58.M'A7F C0GB58/-0M/CGJ')2L +22C T?>1@*&32*"E 46.?,;V90* 1M"'7O+,0?EH/N8HcJ-10%ø>$<5G%N[/AFX;O,"+;*C&A#HZA%Qe<,36M*>L/VH(),9' c]0L&5-> +VBd  +"%*.@ -2>BD/(-4/-&LUS5>,EKK=T( &$KOC +0(:L9KQÏ)š#LQ8'@0,M +FR#5/*%,Nþ"WC8%0/LQGOMNJ9B0;$ F,9E1E97YV1:G*S47/<2H$m/&(1P)10 /:327A:8!,:ES% P <873`=3D38ø+7/ ò2A +]e@.?2'9>/=8 62AM# <B_?'dS;Q K1111111100///+!*%,+7' +85%!%"5R9'!H@;4(;+9ö#I3*-ÿ8;H;<:E%>` A=QH$) @<ð,:JN. E9"\L`)339<.-)!(<L# (@U",7!Q* "=6?3-9M!  *+C] +.0:",;)ý/K(<F=)4$.>=)Q,9=0BH N')%67U\1(1/<O#;94/@ >N@'#6?,5$3#0A:1A+14>J/#5?N.+&7**E@0"<-V=0,.4R(,?/#/@R3FC2 G$!$&&''((()))**+5#)C0@;ý+1+@>:M5?111111111Nÿ:((1*993+ +1 0J#1'IAúG.)>"<V8*+D():X <D20p<Dg<7&-L!/C.."Q>B<"<>@!C5DG Q6%'(L2?G9+8-(r#5/,=+2%/T/>Ljd>.9/780'b#LN&6,4:;V$,#+5ciP: !:??@*>5D,*&Z,, 43.,::D7'A1A<<)# +*:S/C.,!0$BJ?82N*+;5(N>%[0*G6d>%C5H\ ö;=3?Z][NK%%C'XJ)BC-!&R4'# R7.@D/=81A5@;:"=Z34$$& $KS#8/N,[015$H:E^+øxD",EL[2>/'>&$þ.>/:"-$7) * K=+S`I6B,CY6 ")2NPQ-F^)1.)"=*#Ea:ò"R9:2>(:;c)#18<$"6,[OD,QBq^=9++KS1;>"ZNXE=)IH'D?T=!:=Z_E,/?>5;,%I/H206õB;5.=1<Fo¾î½:NNB$,0:FD^"BRgI64x.-A![ ,H- +-P+215IN?99#L%IRD"MR5=I6$GE$X%542@,,4D&'65Q&ÿ.BHc?B2)5 (5$*531)+B1--19%1N/,,$ +$0*4&)>:.5": ?@,#G>P÷$6+@N@.\";G,;CU/JJ1111111100///;I.)-7ü%+5K*#8"MB#!32I>1/?4ü6(/l8-+=/,VR93*4$5%1D):+*, ,R'A%M1I!*N4%,&û<*.2&.1-6,K 00!8?1/<ûB1ôJ2&.-kWP641 +/264E 60"/)$F 7+9-%?;8+"C3$<6.#,,M)85,?F*OC"L$)O *>?F$%(=)-+V1D"7*"!3;D8E)K+0PN%GG4 1+32A 3"%/(('13;5(3,;H$u/C/KN8)QT-:B>qaòC0@@&+&&'''(()))**+==*>#$,:+=>U"&1/%111111111BA%;LH67"8þ+2!9P8.8.A>.YJG(<K+>31AK13F!$:n:J*.!"1.7@H0B92,7ÿ./1&8/GEP>L"!KF@W+14=++QI)kE2>V>.=J-D+NH F99VC!7B6T=C>&84<HHZ=/&HJC%8@8B4>.6>@58=/*R:"5$48-D%l:%&B54=3<"8J6_#2T%1Je/#,8  /ùC3)+'<C#Q7:4.(D.?$*;,LTU5%I1:C%2P-!3=+14$2*5 B5'+)/ACQ3,G-!% 9NN<.):7)8A9!+!--6 F3"+;*T8 :<Q-@k+;;EB;6D"-7"I-78#A>P33C!(H4(4,:* 820ZA#'QS2]X.CZ*# %R5<"*4!1;(-2 ;E0).@\R>;%-q’04R@^N;9G789._:U"<84@1>!0F@)A2H.H'+B6W,-/%O86F#N&IpE.NB";-3., ._:*L//4!M#1 &$: @/>M*@0D@+)@-5:'PJ)MIG8: C)(+-#/:39 ]!?#*HO@B(>8'?&> +95:(I2$&,F.(5"ü&-F,BL(<**"0 )#<371  O1B<9 +C6R=0@M(0/=@4#>;C;DQV\C1111111100//9&3% '5, &@4fö0FM-?+8P..G5'>D>:X&U- 0(/$(W/?302;SL*#â9M+H$@"AA&)9@':>3Aø1!S N(.6L(=5..N&4/:J>4!(#?1>P1_5#0#l%81!IQ6AW!?4 f=V<;>5?3K";J=+L3-)3'#25I>,?1*&6^þC-121 =!<+! UQ=4&*<C?#("%?+@-2/A52<<!/&)7,D%:í$$ .7S+?(;!82K3B[1GR\E-()#óI VZR/@&F&&'''(()))**+2:-1ö9&,@%88$(+IM;111111111B2,;*SL9#'M7& $)6êúS?>;986õ2$42òP:Pø)[E23,NR.0+!0E($1MF ;21/LY<=I+1*+C,JOM">I!8N()-J ;SL,B "5)P!ý[!&-(.'2IRL +6&(9 '9(3ú3&!W(;1)6A/:H2Eþ.-U3 Y=<H1AM<KM#%=9ú!GEH*D74"!YC3G;&$330D:<b!!PL-8)C)-SW!5-<8X0'+=d8)RV!5"%#JZ>9B ?Q;6D.82?%40,V3?8 ! f9/#>/12Mü0[+CA!&>/s-> 6777F;6!:%:C*'#N:0&--,E-1EU#.L?>#*HSCA)1)N16#5-&">J';7680.KC*'?"1(6,FiP9M!56-6:9-.6%B>4^5(+d2.(23!'%I)CXUj(Q 87)Y#A$%TN&-M -5PU4G J=8QGV?15;=#Q -(JR("OAIo;„M92R:D;lRA3$A7(%AIC28 0:47;]->:"Œ/(FZ94-RR< 65F14?9W>12=&'9:,B;8.4;%5X@g<1<W#*;732qG,(0? 9E9IXEP/:<'6 /9A07#KJK695+'"2+:HR?)ÿ)Q7:/7/&?KB@$)+0'19<1111111100/G7B$BF;6GF7);G(ELC1<0148FD0=1G>0 (4 +#/-4%3# %8H015<@,O=#-30$@,&2//)2Mü="98G5é8&.C;D@+9),<($H); @,9<3KE":(0,9.6E3.HF"A%<?$7 0>!*:&4?H0=G *B"09-;9-A!'+&?/QC@1, A;1&HI(D1'gG9W<N+>7- .i,7)S->6;B3>*)S,3"J61# K C ;,&9 11A0F9F%2X[9\Q&#@4(0&&'''(()))***/3=$. /'730W%3GN5(K@111111111Mi1+,J-/ ++15:@BF%'/ý%8/*04B,1NüBK(6O3$*:+%-þ;)2'I5L#-=(÷$&*//B) 0<LCP3'BP)<$%;10?Q4(>H0DF%\I?54&)H!3)'.Nc S]C$F[h6<t6S=!9&"\FK5EP;-*34=/;. +X4Q@E!/<<&ZP/=F  J,q4&1&72G/I)+<`G)E4,A> 8 6Bö"3:JM-1DS'>(=;5(:.+%$"\ '173.66J&( B,%B0Ux$<#.,H"$L.þ)Q> I."(*+!$"C1N"-.K@G6/248)AA0: ñDH0&A6025C0€6.64EF$F0&I80678U@!@&aF1AJKIH(U&+-*(B/"c8+I_9:8#FK7=M79COO#I%<(@.<7?8;D(]A;?[FnLH1E1$=ONiQM0X9p7A-7H,%=?74Px?8);'J"E> +U#BB# ACPK`›Q)6A5M*1'85>6'==2:E794INi,*K*5.J!0"ßJ-,*7>.":[-K47`A54KD%N6.9C*i289BM:-#*0+ HG-")B93L%7539,.8ÿL=2>9&0AM;ü91O8N4.F]?AD,!6#?'"]/*PC: <D7B06-H111111110P0)ò-#ø/3\Q,J;]!UR#+;' P.=.0 !+G'9"-/9:L&"1?3A66Y72E2A60#g#4&39.O*!'*&=QK*>13MJ2#3J 7,D#<&5>&B ,!}5*/<4?FSE&7LS10#D9G4÷%/*9?P>C'%6+*&1>46-÷:H2/-2;;E@& 728--"-2*3B)(39=5D86.= *,HCú.#,G%".32*Y[")-B,9 +ü'úC&(E72K!" MCN?/<:AD,V#-#"<65; &&'''((())***'); 7,*NI=A(+B<BJI$'F111111111`!NL>A&B((6"57M%&0-/L)'?7!.$XC,==2<>(CG4@D 4=;205QL4580 A(=-2 <R==, û=,1(%PTD%5H1G*8H=!N* F +6K)25%83*67H+E*V&%7H6J"Ba“.ZZ5?&<j;?%h''&!XS*5)ù-\<8 8K@0<rAZ2&"-(5%K;<5<,#;268P#fPP#BRN+5+4=üI941? 6Y7],8>:)+7=;k"d[9)B39M7J4$$"L"ã:,aE>7/'02b)79*/9MB!!(=8('J)/&=2D8P9>9+S9<#8 1A427425S2'6_95-5*2KC1@;?ZRAH>=&!I;0PCT2$-+KKCD7HM9C+&KIó7ýN!3G85L>1@K…ÂíšMF2 +>5F<'/0KI%0MT>(S-G6N1>(94?WI$/5&=8I-d¯ð§x8#(L..A..W'ED.405<&2"CKO!%.@INP()7O%7,(73.4CA6Q2,9 7?D&&+.*?/71T2ò'2+(K' )[?ÿ$8>"*O,A9'.RI50&7@B3C0ÿMM;2-6R (9Sú ,&>P",O3H+M$3+; -PGI6OC5C#94FV511111111?+>!"#F$0&!C/,-=úAY)J<8#BLGEû9j8'">L?0".(K%@N2/ý4 O?]I2(E0"N"!#/VTI7(R)73B^880!= ,)8 0#&,Dó_, !-%+C.,:2= "M<=;#&O@ $_/002L'1K9!794:D4IH. ":1'7K'R+1-/%&:/=-H$,FG ";B @*4Y:>@3$1B-6 8F):1J=>01  )G<Z6J=3 +.j!Fÿ%7/(?'. %úQ;J.F8g!0"Y4 .9."02+8.8GVJ;&&&''((())***832C5"_  .6/mYSj6D2,sE111111111(&F2K&/:2 , 75öF9,F<?,)r8624_00AcHHM*N=+Q<@. %a(W@7>>,M2#þC'%V%+/P6E9"0CGKT8[HA5D '+KH,8&.XO-0-2# E@6)9"1G-I2;'-øFI4?N])Y7baJ97&0K/K=/5J(#5þ*(V;D""(RJ_QD2HILE^z6Q$$9,d<-==0"A*L>,F"C95RH/X3>>9B\6'<Z3C7=KP?'/39;%2D/N29?/666 +VB>XJ0,-?)+9/Ly*01(6252R*0?$8!#7%M63;2 )3#,"<Y +OW'I(9H #.7]D5,=B1?/&>"I'K66 ?F!41T#.//4=W-Q=2738H+CM(A,d< #%UOI# +XÿQ/O"1?,;BQX',4N:'4B"'>8*8 +'#U&]fK“eßJN&$+;KYB6KR+H <,O&6$%e(ÿ>*7+i$E<))JjJM+3,v;JG1<s+*36k6*.+2P,'GU.?7+)3\&HP04)>ùBNY34:&_ M$%N%0& !,%:V02=4Kþ-,#L0;+.(ZA2%@76H".#F!S-I0'øJ-H++-9QFK:$!Y":3#.,B>H/<IE0>+/1>/3#P"&+#+@=3)7B5=* +&86111111115.F0W #52'4d$(E--A8!N.5$J%!.*.BI/>B>49FA/N8=#"Q[ÿ4X2Z-*KS2$<E +-(..%.0M0+*Q);</3Tý'&;%*9,`(*O#IK< ùG#-(/%0A;J7'HX+43,,+=-4 1%4.=.M'W0)">46E<(5?8/5K6#4.%., >&&.3U0 $;<4D(#D1;.!7%49D=Ið05)8=1i@?M}}BD8>>8 "k><R<84,! '/-5"0G-<:)6@FV5:7B &=/5L.:B N\B2MJL?=&&''((())**6#<<G9=LFH*@#S+G^X7<H111111111$HA5=  .@!>M:4+ô8E*/<).)'%;/90KXKuPùR(=1#$+A&FG()M2J,BM759GO!K+K &I&CHI!K+$'23F5&GIU!D."8>IS+%" 560$HI1D$V-'&*?I51;Me.=B2*+N39:75ùB8<`+O%5\123/)"+#J:2T;3L)#P25-L-XE_"3"'I ,k9B+e:.K&;RFUN`?'H) Q*9W+[:)92#8 $U3$&6?5ü!ü$0)775#6N>1YD/La(>) &7<,?;/i'O4'Þ8E*H',/NR*-(8;:;>6'&#:+,d,!F#+<b$8:M-BF42G>S75+03+!6D5Y=J=* @6Q >&:þE_,K9HB@ @>'<!@ ((799$+6#2AV12*2=+#=2?.  &*N8#:vE)NAú ä· ¥. FR6D0:M7 :H 7.=2''BY%5@=9M(@ ø*0G+d?;3\X)L "Nd?$47D'I.2bO1!=2B8UNG75@.5.!02</>N,*?E4A=4!3X&9.%0.eVF&(5!04M87H)$#+5vúnRgGF^/43+1/(@SY\9(<55 JZ(B0(I>J?5#'T3BC?6"%&*h>VK%;T/-5*D<H4;FE: :1?11111111)!-T <3(DP \/H:=291+I/6a#;1VQJ>"^-T'I7/ 9@#D:'0=3;9- +11+ +-5665&'L5#3+%79;88))+*T+;)J/+4W6!-/A,*:6@ +/)RM<1 '1(#(,P ;Y--48m*-3:?-1^%&$/B0[(5:;:*,E&6 *"0G(%=4<G50':-)2.,BF 6?"D?/H$DAWk5"</9)E+ M"$3I>$a'+49@%9<O?=6K64+-"'<;2:#3'735;+:h_CU:9Oþ/!&&''((()))**0!?05#.3P.C)/235.-E&1111111112@.0WRoC1"Q4818/"3/.S/%202$B>49M!p 6+@&-7 =C,BAg"<GC;J@/B268&4"26=8-/C1e4(,;%Gk23+ +F:ý D%G9AM86=$70ê/N;7)O(*=0#(<a*(L;IW37"8+;8<4 8=OF<FJ9"@#KW8 +G8F"$$(".B=@93=/AA68þ<%$=/-+_HO84344(T6M6-#&'()1V8\"6aTY< 64@h&+6OJ7:ME>D$:Y( KC,+X0.J> +E8P'L:$I/(/,GO 3<%U;@/ =9 @>:9bý4*FJ'02!39LW9!'MG (!,1?T:9=K# ;514>)4!7!97)$7%PN +9OC<#K+3%)??(2J\2Q31T2(MB$.7>Y=#î,QO42V2.Q?9)Vp<4vJ><{}— ïF”ˆ„SK433./.?4,;C(0O$(OL8'GB;%-257I&<#L4'?E;>@7.G:./H5.R,k*R11B6$%2L-cCðGT<^G\63";.9/C-AHUI=9)C,ó:û77110 3=2=*77$[)@,,1 4I+$F8<$=T$0P6#9A6(GSœT,0QAí((.3#E$Q5.-SV.#<.2"&C$M4%A).2CQAI/@÷54+A-nK?(1111111111$%ø&)ûN7-@N'*)9õ$,..M%?925N7&<41(<K!2/0H:44(-M" U):04%H+D:G^7#$ !-6.5,@.:2,A;;/1:&%'?:$IG427H>+(/7-Q/]/l,8<B,),'ME`,6#- )C;#II/-,@&K/$T??!&&Y7 59V;+"!9.2.!CF78, +R=38F,3([N-K2E5-?1?2'Z4O;=!/6$U;&#C":1÷G') .!R<@3,>)G02'J]A7:1C+ +:\#0D''Ii2+0&&'''(()))*3.0CA@7>)"=F9ö*!öB111111111S)/*1#0 +$7A9 E/<M3'%7<F?C(9)% K)316ÿ>)6J<bIC4MEX>[9 N_I8=$/3/ë.34,&<O[*-*@'=(%4 h/<$A@5*B:?GJ/#\$%5"D,6C>'K"4XI '1&A&)#3M Z97%*67)E]8:9-;+6I0"@'[4F1úI0@MKkE)H3DDK#6K?H*2 =M6.-I(-).R-.;K;"0,J6"..0HX=EF%&6!7A$(TWQF&"Q@"'F5WB87@'-%)L H.C/;))O/30c(#;>4 $9*046Fl,GAQ=A0#@(IZ8!69?2/%D3B/ 5=8"H=9%>.: 0F1S4""!J#=wUPù,::4(7E+[;3D@1IV@D,5(.$.TR56 =I#D93#+'FD.6J9+@.!HE>\P1/%%@JF18A[-1jqà }Õ-tWGJEWO8.OQP9A$M?H&=$3%(5#5/,R7(7H>3-(3I,P[ó3S;< (D3E11(.`:&Cb(*F,"Rx>49b<16S-986C=C FB@8H4N+<H''3e\Z593'>"(!;23-*7.9<(%678L:,@! -I5)]€a=H7:Jd69!0T+P"6")Uï4&84>5FK5/9$8D!^[,UK)!J)@0%WG+,7C/C1111111111O:>@A>B<5?9/0?I%LP0üU1I60,F/F"+)DA%;C6-FJL2;3!+@L&8D00.%-1!%XA7 /FA'E&Q"A2W:=AC3a.;&6()@.,>5!42O6+/9. 9<;R$(%6.,!I*<.1-?*C2#4E, $*9-@"@14!8R[(M8 ,$=$"E$=93>451?.##=N#P%A(O;6%:V,8=I$.2-M'&;$0A')ûF!'- ,^38+ =\B7<0',9<G!$(A.K.). 42,A&4UB/"A!&&'''(()))*T!2@9%JQ<,B 6M:<(111111111;cE&(3M.+8Iú!)(:("U%Oy@'25N0&IDA(EDP@9<QW2"5&. 53C4'*>&,%3F9.#,4G.$534/) W@<9^&);,7<g%>#S% K>5H$$;7@*04%) /d$5V+353X@4@1.3O? -"?GO-.&'-> '(6<&.(üB(+O(6#5E:OJ;"> 6V89dFJú(V=C*-P""+>6@ü05AR +gc+SPUH'$÷5<$)c+'CI5O1IC5LF%\J DB/&6A,8%D%-#9B&?%%* +/6*43 6;2D%.hI'L:.6AC=NN5+3*^+;EF/E6  34@(7F4FMg+'@"2>X>#E> wJC<:?'1V3%AK)A0J(=</(K:0!]F2bSM0(.Z&G1 A5B5Q#-.C4+-/1((C>yL+@C-+ü>Kd@}ê,Ç[RF7"J  5:+B1&=:i!>11d8YD52-79"'"EKAG'&J$"`7b (U$,(M8K÷.O:8#;JJ(03*F:Yi9K"C3/@B–|3FGG6%X=V-A+?Q+&%7 +&$*'=K%(G5/H7,6@#C-A<1,<95-B16GGy—x+C%M>0396ú+F#D@G;@T#7ñ)"'.&M -=GJ 9AD0!NQBPJ1*,("3K7O FG!1111111111!G"&#C99#'42IQ@k^#E5+96dA7-@1(LD;+<JK#24I=02.#P$2->C#, !MG%:=C)<#*DWI#4)L &=P4#8:D;31"&M8*JFF-Q+A9û?*6+828*;F, <1?15SK=AQA'&/,@)'B9%=1B+H'P"&.,8:H?;-?i;5<*ÿ 3A24/$û/A-.B 6."21K:1'P 'T:(/G*ð)?>)*:',E +;H"@+(E+6RA^> 6$N&)ô!  671HN! '3"&&'''(()))*;U;0 &?5+ôF*'K2**8111111111/g01%,;->5>@! :õ8 5LD@=J B4N;9/,?2NhI&13<C-)$<8ç<A1!U:,.?H-&$Cý71!#JR!.0 F&QG79;"I-NEPK -RG'#ND;20>D(F=\=3<(<<.&a7=7UPû1; I$QTO>*(O4'E,î2;4 %-,ID>)l1/.(>*X %2)!Q$ K-,7!Q_#Ý>4,6*I#J6ü' 3OD6*E5:03(&G-'36$YNc%;>4E(ÿ +EQ 4=b%2I(5*%þ!= ML$)*+,# >K7P#!)A5b'. 7'PIDE7:T ;.H9T<#W/I%.&(I14@$  +-IN35C!H:/!f!;=AF-E&%'+)$5:"C.#L&,C0:;2f/S , *5@06K4õ0-3'XI3K.C//+!2/29:÷U0&##y[33&!LH l+#L3:@^bao6Q//(BX(c0S06/%<3þ]O6*)C'Nú 'M.:F&V)0@,5% OAB/.Y"5!éR:,I%)3%81-:@1:/ZT\O<>5::<p²„E3A85 ::' /GRI@8I-21S )5_9D>8M5:?W,RMú!:E/A#:Q@D@46J‡=8:06.]-OH!><%071$66,3L9'1 13C0@<1Q/$Y:9$ 14J>?)?6111111111111ã50N >'ö$48*)gCU5F,%'D<'!R/,9&9./O689,'" #:C2@C-GA/SH$5!U">73#5OVA/%U9;F-7$3-!/8 ;=I;(7I2JF)XR7!7IF ûD.(.#J& &;(?(5F2P5N?+#U<,vDF*HP/.49-:XK'(21*,&0F'&U +<J! 6CD!û778E?H#2A2?/A04?.ýôCF:(W&6.' >;@,)59)-yD"B0(8B=FC+*J@05!<RC;  .P>2+4ýD:I,= A 18&'''((())@8E9 <.%-6,;86M&('111111111--þ-"&8-+@($)68Q+):6`KøH#E7-b2.9J6;0w`C 4L(7'n\J+AQ;822&> D(4&.'7+;2E+=+P$3%,08J877 9)(A(@#*DC,i?:6,1F8%3,9>!U5+%@/R;;1&9'&&&>'ME%%:,@&0B'+#1M::*V'T9'&85Y&4 S>?.5K TDR?:>,*=H?F& -0LDG7D1a>!,!0HJ:a,=80FL.!010=;' I +. 7DHHB T')Cù(:"O&(,<$P(-W=J2J+,D@')=1$;$P8ùAG)C>1M_+->W,78K#?*<D'G+Jø#<(>l%4>\3:5$L]O:6:7A<,'.+.65HPf,)=&D(6%/4/5%"?31 Z.?UrB>S:A6XG-D@C>NP94.h?? /1b/H4Y2:?OK84H6-21C#H/G6&++8(4=V4%9!%E"CJ'$0!K\4÷U]8E'7;3`^jF:-3Be(9B+>C4zT;%<=e3?>"?(ù "(LS%)5<$5=,$7"L:ENy`V>AX*[89I1&F2!))5B3( E$35AN&(@2O(@7289T]617 -G#8,IF<5þ$ð1; +%1111111111!Y(61 4-AJS.+/'‘K=?-O6<A%5'<O(!.3<JH/E,(CP-9<?E$5W3 Q@1(L*W/ C@/7-;"*-A8G"3 ;U"$*ù6;>#?'"!6LK1(6 E1%2\8) `5G5*ú/>= "!A:?=F60B<(U278>14&O-,-/,\*9> )!,&a6"  :öl')>I&Bú2<6=A0(&'I>8=F34E$3; #F*Gj02M<H:E(#-"ø8+5IT,"<&-F58&mU, "9,6@D-@4%#'$ PP O&&''((())0/[.@N ?!?!ÿB4*>&,)7*F111111111 +:<<  ).)N -7JS/"Y#.M.!;>=/;$061A8B?5=!&IH?D&%:E$+DB&5L%?GS[\"T9G#87gOB2H#*D=8=,/-"C+2)!$ +&5!8:B$) ":C=G6c>4'1(!<;4C(>,>8< $u6.Q>=7 'E9 P%A"2.09+0%.)0+7C>A2[H@(SR,.0*)+2X-"8K&7-,+G'*9*W$25'7)ONm5Œ8'SF: ,=4+>EF!/!=.Da60/C)."'F*JW"%6@ %G5*',65.5E-C8B.>'.86=5'A.[/X+;).9;W;$X .$<?7 N7,0*$04DQ9>/$8$ÿ1>BK,;$$)@$E>.288Z9  8^(Qf)8-'=44Q71 #'(QQ-I $AG;EM$'2ü$ýVCEN5H? 5J(-1D61E%=;69Q3 -XI>B0)4(xM9s=F@M7-.7, 55RC@:@DC'I4C9MPS,ù)42j~`B0@*T0û94:4/,"<A)-6I>0LC&3C%3,O<;)J +G.J2>(54L/þ=%@)L60A*2$K2C4Y"<0$I3Rb‹Àr@-aI;T3R"!,4J?3>4!4A%[,77>E#;38V%2>1?0>>&';4(;  '(/03H411111111111114/M6/&M>(-B7,A .- $91K6)H==6J*-.(6BBC 2!/@%'Q7 7/C&!("1'(+pIM1C->=#%,%&%Q(M‚PI9ü?W405;128E0E:B; S8f>A5='7A12g$ÿ";06@5=?;D@E%8*Ld`4úLS"%1/AD-&&74#]`S<0%$1)92<>?N--(&2&/><3-,.003!-. Z634G?EHc453BX3:4?45#P7%6=5F@>F>ÿ&,9')=S7K6H- %K ù!;2"$()<HIO6>;&&''((())%;F#bCD5!,'6@ !);5ç111111111:=A2U+C5,05/!K6-5W<658Z5T"B*%:!,DX-?*,&!?@G:$!2* B(AJC2*=3':6Yd"  A<*#2-Q"(026*% K%V:925_6*G%.=*E'.%)/B "3AE-# Y(E5c'L*?+4@A-'>='FVJ/:/A6(p)7M P?83.n!->-:'Z8F%4,G3,4BYE&)B+O1D/1&G>'65-)þ+2#$2.A3!3=CE?E&9:4$1!XC +F0 "LA=D%/:7>)_25E@1?)O)#/M^=KFD@.HEHE7Y12G7 8CýS .."%5::N#;9:"'I ,3#N8=&/@H*:"?7I2)"*4'@MN) +2 L<7AA<(HUDV@9C&*P1@G)A%7aNlS?-7I-68<)%7 ,lA%#&GV68$=#V5CD/$3Rr28U$:.+=E5B<1<*H(B^9',35.iF#ð7=:W3ïL9.04JDMd( ,2@(_J,#''E%VL0+`"&;I5PJ3JI3#\ZB#68A&U!G&P&>N?!V5 ?1'0=73&L+%4B36.$Cc†}·I2;D%.6O8U3DA82:((LD7;#B3KC8K:c#/Y)S1NT4HF3?OH=)(8'"<41,( +51111111111111k-,)/+$.^7723^<H>/øƒX`[;?? ,4A"%/: I_J101&)Z=06 AR?3A*K*45Q3'P/2#Cû11 HOK+B66@-(%*uK6;E1+ 2D,,!$-0r0:89C&-3I(?<6.;@fTsf_L'$ 0<591,4!$+?*1O1?>O2-*1#%:* ASWB[.:!/4-M/J=& +''4)2a,<+ P+ 78?0JVŽI0*G7d:3A1QC L=!(0`"cD:`N#-A-C903#18;ò'&/+&!6L/-.2(C&''((()F(55S'*!+Ji1H3<'()%+% 111111111">$)"13;-=O$'(- : -3P#J(,S#ZüJ947;>I5&<8:C+)!O@(.@*_>Q7WlV./.ZABE8L%?:%4"BFR5€<+O(&0'15!8:)5DDø(?&>-Q'.:)J;!@SK?SNH-Q*J1/5-4S;DJD[9)H.??V8:1"0NaB@#D,3 ;C4DJ 0:%;6  0,(<>&.()2*42,&L3?:KN)2#5F(1-ý7Hò3)6%-?DN!#1"A_4H485CP"?&A ")I$!#2 67#&)396<'h;3+1U'>^=N>73M0û9/985R\(0Q=9 ?4N0(5)\@,$PR3>'>C.-!>*D* @83.)3A',&P9*N(4E."0&+($A"%<K.#1)F <E(TgWP!7*OE#%5$[RQ^,(5"9[\:Hj)7SO,Ti<J*0A!3)8+ZA9&]>7H:6;G",1(NN9*i;0.-E /3L K $DB";@'/'/ 3W@40:L9Mh5T5;2E;5 `0"9 #S2'AtŒPA?=M#3&\;EöH9.8N8Y''08F2']31:,[9A?7 $;dC]DK7;+6I'+6R+?=$ >N5eI;2(D&HA$ I7G,(; "(64K4D-L)<"!HJV%S2+,?:1)I1111111111111B6,015:3;I --ö1@9šLl6T"O4 B8K4:L=PF +$/"A*.46:XGD^73?6([29<H(P>4Aqn0+/%DD,/8 !N¬-=="."C($5))4@'&==<5I+70#12$+6<:A`‘Ãå¢g6C;& +13"6AK8&. K R&/">@Bj<&/DC6 9bH*:E9->;8!C5:,8D#0$;0&8,=/!& G<6?…w.A0KO7.AD#"10KB2 )1)%B:01:#7@' +7+ 6ú4ñ7-/4@ [7.>>&'''(()2'R4,= :,?i/$;15`38^(5111111111$)9< 2&CE DR?D?<25C9P7N +D$66A&D*-:F>.;_$?F=a<L $5BN<6CDE=O2%1 0KY,8rTSA)T];3<FBD +*G:^.7F+=))9Q3E"&A7û3-F.2F=40;D0/3N2"NM"ñT&O*3-3 %-=./ /?V/$/J.$3)@ %51/8-O<1,?6÷3,T% (?'GVR*-%M2Ws3/3;:4P2/*=&S?&(KV#&%(? \-:/?N3A(G')--,F/5>øKQ-@;,!'0!7/i5I)MB1d?"8E@EC,F503E @]>)6:-KM+>(=)22=. ;?%# 4&6J @1+<IOD610*4#8"64<)A.!97BA;B?)I''"L#+,.7#>9Q)<N:76u5/5-88*Y)B"3×^zD(UKYVŒs[AE9J1.-1595e94N+3KFQ )B):3=S0@+;&>)61B;;!&9--)"M3.>%K(H%A#+D3`û8>A$ DG1.5-$EQ#;<:8(A9WdJMTMB 1G)Ao(-,1P#FH)#0'@&&>+86@05.%9#CBSLA (6>''M>@&(9 @1-kO84?>4C-1"^<RA;@D`-(16Anâ0R-D6)6S4&0/.1111111111111$@$-EH%*D#"V!<(C5+E7lT~J3/V#(*786"J''HJ;`/T&"4?2<>?*)ZU1$=:N;:+-&@/(VHE#GS?GB*&Q; ((2)8;]#ó=HL8K:C12P& +%%0+ J3D67$<3C>>g„«ŒR;70/:@;963; >F@MI(<N7=+=,@ 21BALB8b7vH(:*H&E/;Q)FE+/9%0ý.@9 +%5 üC2O0W)OGCf(6þ)Cù@õd E182*?.7M. + +8J$8(08/3B@%:;7'95J5F6K;2&'''(()ZA 4252í-:6eBV6*=H K(B11111111110* UQ4*+(c49\N,  2Y @AD2.WK"8\ù22þUK\. F  R3d1&H(G@G8J-2,E1N('  SJQHTQNOV8(cM5Q-C:"O(~EC4 0Kü8 ?47&G!$Q.M((D&=? 2%$.F@"321A54H8WK1 -(= +õ .>F#=19+=<I:m.)5I8*%N_#4=).8=)%%0-3I!*Akƒ#d 96F(FþS*\$‚8*-&3Y2?>.;4(2L7!4:2I55 239938GA&6=B <$2.?9 5 +(>!D&;H\6%.=Q?FBD-:/3!= + A; $051$l )F)F"@.A++K.CD -96H!++.HK?F9%" 50#;,$-941*FP)'C)D;@*?K00J!+3?163W,>+=0,5 BU/'=?V6$J-o˜«¹prY:,,HI5PU -$C!BU(5B7*5K(D4LC:&$(BRc*.?179Z1Z"a)CFF>W3Uî0"R<#K( +B\)s '+CFHK=#W4/3G9-( :2.96]DA9K D:I") ;VD]&)=+<92& 77>25-;" *8+4A +"):ED ,]6$:3.)*= ?(#JY/+95 7<)A6<'+-/?JB:8,4$'\J,3@BNHSXP2A.1Id)1111111111111=+B+? 2VB4H5I9 ,H(LGƒ R3@/C%)B;b÷[1DIZO3P519<D2ïO%B178886-<MB #3C.3F0!Tf!/ 8!c>':3WA8&E9 +<1 \",%H5<&5:,33AO9"-,W(8 G.K:V<#:<2RE÷F"Q  :++T6/>GB,RN,-<Z463,PH;I ý9Tù+1-79<0!6G-4(2*W4@8) ST"û:47?A/R>Ib!#( &0<#"%@GL4 +`C;%../2;W;U=b2'''((2X+)''9(R<@2!0m5E*'$B$(71111111119OYX@N!ý3hA0-59 #9#$4P)0N!T'7&3F(=& x@'D'!50=<29=EE6*2:6F4/WlqS\;V@*4CW6!P90++'/2!>4 T //1 JCE8UYKj5'4CW,-!K62I,AM['0'7A2@>U5GE>QB"U7(**(6B?2:3DAC2FG2'<DIW.kF4C7740?9-BL -4#2f7<.U4+4.ÿ0@E81<F6"i520 T4#-J(5$E"I9B&1%1-A( !(.;C*"Y;3)J-E):N +P9 ;V_*FG;4U*(8.u ,O66FJOQB3jù $92/&HA,OV&>,K8?7N%%7HF1,Q F>@'O)Mü.-'-3PZ@ @9V*3A7A&E8REI$ 0CKBC{¤IKH>B=(3@&H4F,B2Q(#'.ú?5I451.97V87/<3+H(>*$/?9. .$MVH8C)Q)KZM': F',+L<>%+:)I%1H& 1 DN3/=:`\9DG6g!Cd6@\3rJB?þ654\"G01))38'.FEM)# &>#5C<A!4/1A&,2DC&,9I:0>-UN051A)(Y`9&(8 K2/'P8AC9|Cg64EfW1*(#!ZB+I\!*1111111111111$;*3M*,C?F.85/2ùU\:/H',,8$&L),!=&99$j1+ <=3 -@* *'%U2 -S%44U?96-%úMKU+#K/8?.H37M"(M&@ E85/J&M 3D>);M+7=*@O*T,1OGSHD;6@;?=J:GO2F)1O70IT]^;>1MA(+/9 T;ÿH3:GB)%G# D? <=/&/1$B*G:68BL9@5E(<<.#4:K0T6YR7?)*"*õ (C&!;3K.#.-/í.+$1N& )8U M +80:,2&''((2#WMX/ ?)0:40N$.79F0 .111111111B/ +;' R,*33=N7-.>>0C+#<@/":U%+S<0I32g(6?$"  >#*F815>5oM9)<4.0<Em:30EF2H@40D,5(^W!;D +,_ CP2<,P7#6H0 0ý@$# O-&9%'C-7; (R%56?C_C+R$ $GU)=62^6-9]":I0(@GI% I'I16(5M((>K*./GF88+U(+N '$- +2CF= 1S+"D !7,+8lYEX5=48;P[.P +;C/yü#+>2,!&M.9(D AG!E4NP ,. *ƒ'7* ,-?IZM9 M22r!4U)?5+="64&54G !6Uc<aS&'7:G:D,%<Z1<d2!P/BL118-9E@h%1:>SX(!CD;S><1 VLK-_0]j:j:fK+A!,6@H«!"ÐdB@ %5BAJP".B(L:K1U8B?/:-ý7A49BO!<D>Gû.912# PD47<7,/2 -1Ið@I3,3*Q:8 M3<n1C*9j&32.U8""=4C/-W 4U36936O+'`;)1*F%90YC%2B3+/BA#+$<;)!<+C5,2 +c&KC5-3 +*&ö^!H-:1ã0*C\"8C+(D<,F6#>?"DA,2.B8 ;8e+©ƒ˜d[T:D2J3#1@1111111111111.3Z]†[:5KTG98,/8 ;IA>F'"A 1100$/A6/84D4[)+;(?F9U/-'%-)3J*/?BE6RF*+"A:F1D,K;&!?7"P9'9 ,*)9+DO7>*$3,7.*8+4,.JpùP@993GB/5--F#0!:G40*+72v“eZW,:B..8)ZK97+E=0#80K12iSF'5-+6Ke0N MJ65*M.F5/+G0.1/%+k+=(;5:^8'.D)-5%!;FO6:JW<@0/'$0*=J@?8<@=A;-'6'122''(222:./:+3C(9 . U?2,NC1"GL1 1111111111&$/?>!"$:<CK9L&X0,;(*_KQ**"!<; 7i<47=;/#$A@ +*(/'a"H>GL41BB.: PY56)?!?7I"J9X-<7 /&FB;MP7OE+ +8'""E1G ).OL*F+Y7;-6H@8'P+'IA:F3H-,)D1`%*[@Q3P+0(T<>E?GW4( 6P0H>tZB&D'-D??X>',4P4*07GO6H+%A!7$K48,/, ";/ '/93:ho"6,\739()@=0 2_'2")@+E68&- ))5Q&A .*5!2<COl#+@E'>GE!*"R-G'+3 ..i#i09P$7,G6.,,IHC3!1:]4& +'"3I4*]3++<.c3U."-DE"0 '-Of20L@D1@\!J+--BI#%L<19`^bˆ Á¥[1% +H ::t>-,/3 2.:+FL:6-JF%X2 ,0Iÿ@K.%,&B@8,4fH8E8/FH:ODDg[-8H!4C;3F><).Q-`m”‘\/h+/D+<ER<EIG1>N$B;/H"2&-0/H45Z%3X"4%88F7F#F.)3 +*,-'F0#01$'8@ý-ùCú)+=gO]<U(û6E'E1;:.?Y@9&B)A.64N7)-E'V˜¢Ð +¹¯{HL1,/ #08+8+K1111111111111:V·8rá^NC59G0!k5:#:\1'1B81F7DU#)2//$ .Z?<CG# ,(ÿ;5(.0:1)).64RR-%10Z;;<I9,*F2)>?"(@A3C ,%,,ÿB&<"4:??.+5KI%,rk97 &95+=.9$F04@'29*,w³•}.*/>;R-MW02,?4õ%3 =-< F3$.9H7<'E3 5C@) -)lmG715$!-6ô#3%<5G-O:9 % )%6:64;*]B,m7(Jc*:(G+W358P' (!FJ*1122'2222(7. =0"6$-1>+6X$2ZJI%"=K111111111550L!*@)V =Ec9R:LS)'37WBH,Z2L#8AP. 6 (NEFB2;H  8K>%ú1IS/*IA"-9,'NH/74(&75!E"A&@+'ù<-C'3'-,.=1G"E +>29<[$=4P"(%UY`%166-88_?/>!Y<ú /5IQ9/p%2031%AU7-?!=75@4..1P0<9. ,44ñ@ISŽ’yC0TL+,%K)D9):: @*D ,/BW)J8Y65R( A /þ/A?2-F#!g8C@74'^aBC:-==_>'I<ñ='G?-(4:<@ f53 ,71):(@778?EA!6,=>+DE> KOX)*$.$4d4)`2)6#B +0IC.3ED363-== /81WLC48.M4!)$5=(;2AAH?%*04V+=@3g5f5 '+:"<B57 0YN%kA!8C:.901+%-"aq[R*8V3+(L<@"!*<N4E9%#:@.)8+)1KT'OHF98>G@65#1Q?PI3 0C;I;O9C.A4,LU((TÖUˆçhme7F%1 38'4:"9L/342QF7E;.@$ .<@O2>(8c)&/21,  F"6% +;*0 F,)8%1: D/<K3[d/.#&%!)S-ABE' ,?D+ >ï2&O<. ?AB€Ü'`dSÎSKA)@0(J*R-8(41111111111111>HšÜ6PzK12)<,H**.CD'=6CW9:(QQ620;+,-3( 5(@)$;R5B2)öS,&+H8^T/(0D-;*4')F"1BA-G4((2!*B$'"!,8<e,=$  5&*& 2;-86"K$':@U?3?+'<^5AQAM7 +7þýG(/C(D<>SS)% +".k+95N4*(122??$9=HYD0A#B:"(b$M û#:*%%*q?ÿ/X)$(#Z, Y?K<F18["^50ø<(.;C)K#A5.ZìK! ,6 >,4&C),Q601#S4111222222?#-@(<7.,'2>H":''(1þ%C111111111MQ.58'$BB7G%?'-3S%<<@<%8;6Z/S)*07J5G-4#-$û#>!!&-.,- -(!1,8mF Kc(,.#F, &1-a: GA<>2$6 +74<--;*4(C,,!1K0?(4A -,0 R-"A'CL?$@H+(3$D?Zt> ;I $MF9$.(I7øCJ3-7)-*,0J;<)7% +6AU3\&j¬˜x$<?<ýH8aMM$@;&, ..'I)CK,"&x6(,?(?6/88 W./1&L_ )81,H,:0SD ÿK4U<G$00+4/6$@9M < +*7"%Q!0 CIJ=%/ +72 9ZF.4 7 AFF+]R?)@1M3G-JAGX;DC@0>3 %,1)4(30"O50?%> ;S*8(5D8+>65a/J?4:E=T0K;X>&,+R];*(/$0-D>^?,U1;(+<=b2RCøýJ2,$13,.9;9A5%4J;=ZaEGIh,Q<,Y!176..7,%*4)!+!1+ì;iO°Ò‡„;D/F@%)=CL/V4KK  E[+75GG,5&JL%?+0C)- /5(3&DT3Y.!?1*-+%0$," -/S+tWC,I-Cí>*[; +% G20O(fHKT/I@('S?|õöÅPOIG%1(;>";%D%11111111111110)†É=ò˜)1ALGC8*1?#:/"E?(HJ2</1û)8M!,*:;(*K('2<&;$#,:O,014ON*5;$1&FJÿ\.&#4/)A!!7,6:.F'!1:$ ,,; ?:"+"L=J4/#&:).0'IÿB1@6V(8QA41O)-\MSZ7,):9*@' T;9d;146-J:# MV>-5&d19)8)#NN<>!!M1#B +G+5-XBð6MK2,P7P(;(1K<H.@'+882L:_C<E/:+>ID; * F*=20/,)0S(F2#8%111112222228L5 +8$'9 -9.*")'1:8þ&P111111111*1(9 %E7$.=*'$;+' 806A5<5& 5T,!G9 :0?I ',14,;&CJG$92>72#!405F 7CDP"L->D1,<\34=:0*H(/)9IHf7P*<7#C,0=)="%`3Dq@'Vb <,MNTT>*/ +'>7H%F06=*;M65!  <.#7&#-M&248!D9'Nw€,=:F&?69AOFu:!)EH+K'GP 8H<%& G)G 5I2,60>;.3ÿCG E22M9Z9W +E="-8F6+I4B&[0+'^)4%A>O74 %9(,3RJ+0&D;0 BC)'T'"W/5"G+Q4B:3TC*K~HKYM K8/>1>EBfA*(1#7,1+F^7.41>8B+=B6B-J,(3AH.@(A=5(‰rD3KG0F9ÿ='209Wh-3<5)$-g9$-[6-1#?#"<"î2.K).5ES) .61?$6!a&X=6AQ)6=*$`*$FVS4<\_qµ`‚oXF0FZCz(;2L94%1+ ù1\0¬PªÍ…aI,6) ;W-=N2*-3Y0K>SK.m=T) 24>77:)OJ,.Xl`^8#K--2-/;,P1 8H$(6C4)N +(4/'N1'÷96<fL'&C'.(#/=9è!1&*)2##!#>=4>"Z'UBYUƒŽhVC?L-U@++D(/O%:P,11111111I.M5bzW #/ N#=.M %9<+'/ -)V00 +1#C9"B%0_32/$+53'8,'<:H"KJ#>%*D8-+;"F+&C&#")^3&I> j?G1H)R#/93S/D0ÿ*ü#)1 GAHKMJ)'JD~jBY@,1hO=1'3*>61K6$=0)9&G]];RM*+%<M4,6&9K@'S@?%",8"@úú3!X:+ü C!2û7EI01?%S(F3*.2A$$!7>HL5/&.'GD@27*C<E(%1W,-.Q.11111122222 +'0&a"F(5,^&3!:#,E 9-11111111139"a -,HG9>:>D-- !$#F'%,)KA91-:3:b E(E>d9!-M4Y#!;30:=B'3 ? +ND;ÿ<6=5*E@85ZL%<352L$359RPdB:þ@ 'ü$$'?4ýC.6=7LO60O*81V‰~@bKA IY&E6$6B+M%1V+P=0/Y&(H(/)A($H/C"0;,E(PGKH ($1FC=N.29>8>7üY64ü05$[ % X42,@?Z%2MV&*FROWj;32  !?@'8Sü116:#C)%  ,%?A\ %,ôC?!07 ]%C@7IH)'54XB-L?.22 )>1@=O+%JE1><:0q2; 8$*O<83@+1. $8.+0/ë*'9-$KC\IN:-+51'"6L8:þ +;*2&O0Z4c1CE‰m=E&G4-?IZF@'/NI +*?((D.:/2%R,XC-B-*AA0;&+0//.9"<51&25AYE,%;HL4$ B9$[X|›ÃÈši84)Q157;5(DI 6 BBPNS0/CK©½oPH&K=<3=!9%NF6 >/F;9K.4û*B&,02=&-C6I3?6LFR/@<4ø%;?77: 2;O,//476:-%1 C +KV#)<@@?:4D;H"4"9# % %+ 42UW3+7?RA$4<E19=EG@V^AJEQM. +1.K>*E%B0 J11111111O)0OK(D:$C'#T)+M:2jMG.-4<(> -%>1U(5c ++=9+2"=-8)Z#bø@38604+9 !)$*'$)#'6M#JJ2J),-:0#R7+9[:,& #=7h6 2B ( !B7+>[$40>'JB+mEƒWKD91*K=,L* 3P+7(6.%/U9!%!3;+'B38C+$=%'$#<OEQ +,b<# I:5D /0,&0#C'&N,-D!)2A6DS] #H+'A;!/1>?<"0:13 $]#1#"</R.%/=J0A-'+5DI11111112222"PE)&$ÿ2.7%)*E÷'XB.O11111111106=.GH$(1@E:d-438&97;,'D!4tI"=V D%L$/2L$HL+X= K4;;P'OG576"C_O!aK$)4Q$A)/ M\†*.#)))CC1>#Z20*6&,h<@L0/F@"#,PSEE:YNGSXDkG»îƒ„D,750,343I.-6.n7C9J&BL".A8.;,,9òTJ=5'4<**ûA$F7&08>3H:AH. ; L) 9:.;3T*N!3/-C4U7-81'9&<+)<Li17FG5I/-E97ÿ*C'I484:7I:+++GúG09&%a3,28&)L"E;&2 ,U:.,G*"K8+"ü#L48;C +B-/5M2Y#=7;33D! +J7ABZN&*$#ûN,,9(70A"DB= 7+CC+V[TˆaHD.Z73</);O'-6A(%<M<;K+FKKq7&<,727 83:F J56+8#5/#=<%N92LC7*%^<; ./7VHR\A¹HÍ[U%PE[5& W++#4+,*; BDlC|ž\T6IKV6C5)!K"W80J/e&%H[6S9[!%< +*R)6H $@%;>B }[C-@C=/2/,&@;I^<A8P-=M.)L< *>CL%) 4b!+:J2+,)o*.KFV%0*<7Pô)E4<N#!M#L=F4-E9,1K62#>>34A<0 +11111111L@"6ZfBBôR0+C2.1WD79Q8"=>0&'8)84)*=8"D#H79&<0 J'5F46 ?8|@$C+D%C2O)@<9#WJA%E"!>))+7I?@904=4,7#+,@b1/ gN#C9 .&DD"1&90 +/ 1FD)K9MY0T9ZG%#2BE*/%$TZ8#-47@J+B)83 +=66&AB&!701#&329i2<8G,,FKC!! '<$>H*M3'Eü6$*.@ ?&:E-3.% B/2D&41/%8(K. +&73..:$4%%IkD%'*ø6<8O111111122228(.)*>(+:>D!#9G4O$>=0111111111- :/8-!K",C"%I9:FGT)"#WBT > KH)-=K!B12=%A4& 7B%P.Y7 J1*<1J/K0DD[%K:7Ý84X9F<"JG-?(+99,K2GAE0AO;9.98!EAEX K‚¤§ J$K*( >79)0@O$1<*.D,Q@6)/B*6,&.=((/  -W.49 =,@3e0U4 MN/95.3C"CB76,&!/>Ba?F"9"9>"!&F$;)?4%#'?=%<#51"7-[(J +N (R36&1;H0%-DV?59$G$2 * DF%(k30Hb)9O=A?3.0,_63HSþK?,K0)86KP a:G040&=P:+1 KF-!>V?:"7UaN9S-+J=@G(pI+*:H:X#).J)B9F !÷ÿNMP703#D%!%5?2!*I% $BHY"0 /}PMf:(`.M0/"'23;O$N 8 D%%GC5ED7E=OVžÒLQÓ 7;/< 6\88I=8%&Q+I-=T(GKP =YA[/5DOAF-,2"=æ. *2>0<{3.6J)%%&(1&K0=04;¬W9(N8Z@$1;P$"/DQH%5)U5H 9F'5.8P5%0$M3> +,:5-J;;095S@@0AG%8K>UNRE41O4D>?PQG33BY,,K? ]696BGT/>Y3+>1111111153"A>%/'(9*1Gÿ<P.E 61*)MA#;=)(+B<BE./*=&-J  *6,V9\,-?'.C&@J=*)#6B2&+H./)"25@/,#.0&1KEO$!V7E,4&73 8#H)95&))H#/J:&834'B,,5#8&$5F*27<%+$AG2#!.:I-E7LOP1!+5#>+R!47, ++5K2?>>*8).>1C@011160(Q9+*ö &L;),!3=ÿ CDQ<Y(/?+0/J1B)I6;X.27)*8;?=AF1111111122213BW#8LE&4;øü4:D=N\f111111111%($/=#B:20(" U 4+Uÿ\W.C3 ^/T I//S>/(0:-+875-6T?: 22"-9172?6,e3761? +e3SL53@24:JF,6/8)23&;.4,4[R@14i=3BJ.8A`,=-/Hw?RH?/38Z ! +6C%(4.&G91P@[6h$*3&-^V (9 L#2.A;03I>d?3,P!=+$;rE5<,0."938I.5B-2<IJ-$= 1j2!@PJ&*!Ij*$# 8%M"-:?63IBI!$I%0@+ J1 #eFI*=/0õS;FB6!1I8 +<BE8?$. +$FE3P@0M';44R+.^ =V&=1/6G]0$462D1,ï6C.FWRD-&-F;i+S"BL8#/.Dÿ*+;, .!Y:;&=2%JAG+qZ29+2V5"ô9M!7,*)m:/F>+EB0D4F%L-)!&/6 % DK(:; A5 .&&0390*%&3R:`\ ½º….9-5QEò./,H/X"=O4VD 64@?jr2ã/4,f%&k"-9!<GL9W2A"!="D6[S?;59@,C4 UV!$6U1*>7,IMWOe>T)1@-OGMC36>F5Y6,["5?F0;0 !8Y06F=.+3ú1*-Q58-LR/ 3&F=#CA-B* :t+#* I*25 P$%K3<K<I2F11111111(4ADF!Fs;8;,<('V *=h4+&)02)+!>-Y& -PZ+(*I6=K:S?B1E,çYL "-H 07726ENG"1,N$9N4,9NN*CC&%$M6 1BA*"$262DQ1 +ZBb$>P85>:KM E/&5= * +"6T46HL93!'G+c,##>"T"S) !14"%D(F101þ(54CG)270.?!e'6`. 2%E5$JO.549)' C:+3CB? 3N;3.H'+b!&7 LJN><C@K.2B3.'6Sb9dF7T111111111122278+4LX4ù6:.F1511111111151C4)IZ)%-&SRZC' &HD*; +7%01&($(%%?W"6K<E%01#OB26 RO.2$I*JAC=*0B;*Bg2>`%.2T=34;1"/42C'.(ùA8= +,09DPWDk32Uö4977WJD$Q<#8#65)LI*-? ?C'01""D/3)/888;:&HIA1 ++&k52AF+,-02NCIG)681CH'9A=-GQ.%I*J;!E5 í2<B(9@=",@OW$61< B.&0I 17h0;TCB/%##6H N41+R +4-$3?/"\% 6UY^KXom*90GT&"9,073367#"I%'2F&""*1,0&.j .D)5CO#I7H"!R$+6BKB76L7,8@)$<(1XU7)H*o! 0<8@8.&9S;-K<3**-ED4-69,=:0D<QE=5=RG%12<9<6C<=4)=I-B'#XL?,+9 .-," H#+913<,@7I?CktLO;4!05,%! &-=W73$OG*=U35&25"2-RW@PgET 29V&>=NKT) !#KL?.Et6 5#A/)+Z"EA3*9;Ø/6D5CN62[cHMV7]56+MD710.@81(59(;**I-ÿ127F&$F3 3<'+0(5U4EN/"*<-IE:GY37$I+HJ;&:)02,0->K§Š{k‡kYA; *D)1J#1]`$FZ!)&* HW&(IL-"ú+",D,)D7,)P8(Q":>H=f LB7B.4<L(D5D22K SA:!$E'1)OI'(E*I):/`$">)!B2J()H.`*H%M313<#9*5ó/õ (<07(}<B=A/L#5%46@3+3L#2:[73TE>&9aM) 1KD?#"B(XI%æ0/!/ "0F $&?Y0<CV 7?M7B.M-;C?"1=3?Y &, +7'$*BT79/U! %:?>$TR$F&T!-0O)Y/@K6@$11111111111221BDE+BNJY@5I?8$18H=@K111111111MQ:&K'4 /;Hô1N4,!(D=^;)O886ö*5hú"-NA8#!"?8Q0JS:/CM=0$&. ,( 4Q>? *% :#".5E13R3\4(W1+" $6$D\(=-'(ë3$'51&2>U$ª>;i .1;!RR'F7.1N7>M;B+/@)06C#40 03 A,J3A0?A.=)&#:=7@bN>&N*J8.MB +?:.8j.>$8L.1KZ39U[64=5R;8A9</'ÿ.7@F4O3@'E!0TB>39þ6Y5G$.0p1V.,B/& +1(:2DI &?C*./2"a´¬@83D N=?)2B2'A &$+*%/M/5#c;H%F)0?E%3DIW<K+2JYQ /l=3?752=4<,-X6HT$8K>(?I*NMABP1: ZüS:X9U.".q# 0DM</*1B*F66=T L6)D"46>N-+-AL8{GQL:&;M4QR&'m,(2;:54D:" @DK#&"(8-=%Q(F"2$$'96=+9OP+*<C 87K@QU)1\"-R,2FL%<dJp)_C-1.o1QR#++ 3A;&M<8*@!>G) ,#*3E]5adsAYl`KT<X…HL>*\'/5"7OI>(DF/ 8O2=M25"/<55%89\'*!6:C0%0PAQHP72(1. +!>53%%00HR9Dw˜[q^LIT8+&^,P-'Q+R*1& 'I0#%7>(%?FD7@>*9P;,0"G>)7 )H(7)2>(#M5<1&3(E:5 "3.&S .MH<*?.?PD>*):!ÿiAC#(&&!HF3>1'KXF'#? (%WD/9Wû3 ;A.;$A1C) +*mM)9K>4ý 4FC?*8.D38"<;5="'*@?BA%'I.?pG%*3&(&G,38l-a@2V2!DK*))5-)+=F;KG*999<.m5"0 ;>54U=*9F@9 LMùA3:),*4<+06 ( ? +1111111111112B+0D>),JC(W+&',WU111111111;G:5A/H&;MEL5(,MJ"&:.P)+#26,D*#-ô(NGýT)@;AFF,86E<8/_/"A-%DB+M 4+OA8-3)<@68'1;4#.;,&F)!2,897,;B8E F.@"4@9A6NFS'.7!*-42$:a00((G.!2M(+$<)D)Q%+<5NG0#>4)+L*D(ML16>NI+\<R@-IM)0 :  #01B4$I*JH+5=*B#5P9"?,'d$O;D@%.LH- )1þJ1"I.19)K$HNL<- +&%I!,8"@=F>: 0>C7:VYT•½~:S4M8"W $=]%6!'G(/9"N$<><M9J>-.<"(,=T>$%H78@@NoJ\(MJDJH!/,1/*O??Jý:H<-?"'490OT3,8@@'G9-:BE!QA;:MOBA<=49!O/D.! 1 5(9?]H#P")<@''+/'L<")*>GF1(,=ý#-Z KAX ?* 1'0 #7:K'=JB7%4G#G:.6@F>R,%:</W>:KC! &JY223>5;,&DgD"E 4C"5O![<?ýUM4#0?M8KBVZc;be\DAb¨³Ç:PN@.65G-C "+6A#-If-#&4!4)[>J* )(Q5G.(1(5Nm2DA//(.Q30)8J8Z>04,G8&KG2ŠS-$B$"L1A?@$ +$#29792=.!25*03ì13=,=:T/0&)3(0-/7:>0.@ '$3"F--N4 +7VÿD28P'+)) +G-÷MVB=+%WM:,&:(/0K>%1//3>4;<(&7;/4-5:) /' 4=P +`5Q<1A&<L"G/;V%)"H=0%-2L!4"5/2H !1ç5/G>)!5`ù!>G@:I:7*?0b<TVoB-CYW52>J?-B*< [,SEþ)Y4+*A3/LF6 9L!'"=6:)$<#95I<",%/1&3?'1111111111111%"^#3,2("+C:=t3978GL111111111B( +6)).?.8Gëc="G1#1%:gC`/]<'=5`(-6"a#.*!0M13B'J89)8%((.#H>'$B49/D-<?4@BE953LM =!6F+.4<$F- +)/#"($CFDV>90 :'4' 6"-Y$;( NA!"4%KI]3B;837R!?2iSG55C$1AýEE9)+D:-5";+K3%(D6+>7%ûZ^E*U7 :C.SM2JN',G<;(!=H@a0;>?G<q##8#2+6 #)6:M9=)>.=_F:V<*1?K*11'CXb=#LL4c®[d2a$ 7-8#2EL*@T43?A$)(<0,97J&6%<&52#+.5:—…qUN*'>1,$,=J>;e)5)'N3%7;M=33G55k"$ &:2ZL58 32/-Y 7"K7;=4D46!E099=M##O+K[*2rmyl.M352!-*)/QIH, #N2591P(* C:R=D6 T?A4F#YB758ITZ6Z1/'O V6''G7B2ORIN1//KE2D"),C,TM!=@ C@bRG.&5E.07,AC+4å7 $Dl)0-UN]°Æ£—Þ‰~yŒ`i9`;2]+!=#;4":4N7!$,03(L?(E?.YB&,.922CJ+%Fê+'842>O_J@QA!N#L0<(>BjC:H^BFfŒ‹Š:U!>*p((>tFVK,+. !BHG'DM2F3$þ.J%**g19'8604-D>BO 0,;@,JJ9<%2,&)P88+4C/16O,) "#'(. %IQ? ) þ/0J1#)#LM%:1FP,$<3%A%!9' 12C0g+=F)U9*0$5&57E#759+I"%JQ/b9_A-5O$1JE*@9*,3I)!1 R2 F>BD:@I>^NN)YTLZCbA>AEM !>5842033'J.)=B,G J*S,"45&CK:6:'>-*'U@D>7^ +"((*:-C%<LH)1111111111111S=(-Q;1j&%.03(+=11111111?HEN(*!-.>1-362 * P[>G9G=Z"0X*0+!7g)4 E>_9 .P#AMJ9#+ ,3%",*#>F#8>F&F4<,=+H$(+4(09(-T41C%C:JCQ8&.?;@, J8 <'#'?-<W0>FP9''%+G.8J<$*L,7:+L(/%Cû*SZK,%+><M/L0.8ù2"08=3D,,?7W3I/3=)5üP1D_jE:@$"1,9K*1'(=("?G'A4-)&5" 8 +=[J77E&D01><4J+H-?%,+*&=F03B$BH Cq+j# :.:/ =1%/÷)8R"!U+>N V?%0B4H[7NCDpˤcc?):)I+/ Q"3:"M)H0)&':^3K/-NA9C5 '43#<AWIG!A09æGB0+Z;*-I.)EJ559=4+.?g,F"&-9$AFF5,?CK23T #` 4+R/.e9$;0$"*AQ? OG81?X*/O!33+" *])M0A(S$?;K<,=86I38#;,G%2A+/>'K#&."7DI>%8:6?Yh)/6/D1bOD]?=?51«É Wpv͸£4r­ÄŸ0+!8,@%@+57.5Q@?F53<L(23@L /+ 4/@H-J +:EB8c7$>>PZ05<!Mf=FRVIVIk}M\}‰F0"#2I +R&JOJr(-13&')=F*.B*2+(;;9*&[!K'7+H;M% );:;7-)T$4#8(E:0f,#5+c/7+L.S$9,26<,+8/:CE(á2.D04;B$16C;^PhW$16ò# SH5 .ù2;F 0,#1)(9=:R@#F935[+'7<.'(1)7*$-0#289%  #%N.A *\gE5*@HR‘I{xrx€bBmXQk*$:4392/@+!*-D( úA;4JIAe-4@64:0S6 ý13$K%*+A2%,# )P*X0111111111111#A)D9E.'#>; :'., B*4#1,11111111C+K;+4T'<'+(N<953-!T%4aC?7R" 9 )45#9#J4"+'TS_I"D44/76;)& ,MD7R+C+4'=2%%5:?1 G5 +:G  +-1 eD/FB!8&!)PY34L#QB KCI),-!?lV<7'L2E<>8),;%)7)9&b0* ++65*&:5VJ5GH#-*C%7þH>9 <UGE1A+.b*F*M*bFqa) . B006%MXï1=!/S3 45:!=N2>*R&P3?k*6?2+7,9 +=5?KDF$+&5'57-/(? 6>4H.@+(%A2-.,D+<:T+'GFBG"L4*(6*0j4aF.0F*FCQjvPOTL9T,07øC!"D/:B# T>1N>=39*î>21)B?T:NP '=K=#0K-SU(M0&5=71?d%+0A Jn2??_@3-#b/?E2A9BI:MQJ(CV!99#1=?Y <%8"A%%-44*C"AR->5!K:@%<.4NmAB:&1> 8C*?"T-I!<;#X 6G>O52c5K#J MBTTJ^I<6 ..36BL#D@bž¤:¸&¶€ç0ÆFÎMJ%30*FFM70A'BS77þC8%1XG4# !$#3  !,:-/4.U +,-@HKI &4V +h237/(AQj€®Æ ƒcvrsH=+P4.N,*.> D@(6=.B/9<*8R50!: -=HA46Bú$ 2W(.C4&5E +2CKLC*929NF@G0\1RA89"%A,%Q82/3-@P:"_ #2?/S@4<3\8V/<#?4þABQ6'8:N>DU,:02829)EVO@%<2<>(-006JF\B(4G1(-=?&%$X-;FC 10!R<9Gh—ÙÎâ¹®“fAVW4"P&O?1('5#A*4K%&(,<EC,<*.>1%=I@#F<#=,/ 69- 2'4&$&/#=0011111111111.,+?N***8$9*2+ 6\+(K8<M/11111111($4?1<?Y99*9HN96'>-4)6L6.D.,?Zÿ=>O'RA=]291$1G4 <E6G,cFI8=5L2,H8A'UAZ?&>d-/AL-=: u)+-"1?/@I*/D7 û&.5Aü)H&4.-m9GA9>GEB,.4D?0;N8");;/10EV8)<*!5+/Lp]DRKH&=:>.,.-7@< %7&D%6(IV"8?16E-,V;*)O=>87[6;**=; ( LT<*#FE<öF3=.@2IB76EW'î;/-F4\:D$"'E8B>,D3oD30&&[9U4 +TC;::6:5(%B(&]A2=!-.=g(&@8F5$1I9/\AW'/1x;>]*&6=+G$-1U$3z;G0(0@-H19^&07).W3;I(*:3(!)&þFA0):M7/L$) <&+')I*9O÷U÷ ÿJ-\&6>0.>B ++J )D,"9;;.$'8:U8$SG06M/5 8XhHPEI?6ïC8e# #0B%bR<;/?AFA55'Z/@Y HB-A=nM,:?1&+2%#9< ?=*|K5%VX>9\7'ó3"ÿL! - +H%21Mfj+9$H\%4N7x¡áÚ —Pº£ ªîÞŸbo\M!OL8b+C5$,F7 6"D#'1;!C<<;D)4 !(,6$C@U0 E.9 ,3;60&=*HW J@@5X4m¾*flZÙ™v}Ž176A-;)"S2/D)A"" M.6)9ó1;!S/$54-*/&E#B/2.&#K/;"7G<3 øA4G"((>$+7A2q3aG")L%7;(6#+ -**0=3)*,+\5/Hb@V ?DQ40/=(.:SZ;=">2X_LYq]P=3K^:*$?$)C&%,5  W :%eU2+$!/1&DF*3""6*+&7/0"8@B2MGQLW~ð…£È`¦¶’N<4W^b)-"8N8-K4/5+&C6'Z&26T=11.+M:,3F93 0;/<@[$:"3000011111111111*>L.$$c# -. 3D'&.7711111111;<-R<Q:1@ *1(,#4JB*.BH0ó/"%30(9A0>8#!)<<>"I8'W5EK.T-<L;1 Cn?*#<7SAHÿB5 % BHM0$/ \&83;F;>=kN??C-RW.L7<@O9þC 7589( 67@+S;O=@/<dYZBgD?@54Q8ZPK*%,47?#GJ@ +[._0HO)-)J72CP909>/+ KH;.7.\ 82D0$/,I,EE1114B57:0( &:5LMJ)J- LH.!,KN9? + 84=BJ&(#:;>9/!A$?$J"4$<89 /3 E>6L26>*G12!C7@8:1.,'5.:DJO4*XI<T'6W(2,%0R>a-J÷=5 )*) K@-?-/.?&109:"*,2C<*216$íNGD(P,D+C4.-V7*3/^LB'2#S+.F2*,K*3D=S0:,74+JhN"4òQ%OJJ%DdD#3S@*@8BNT!4,T9#26BY-298$2H'*%&-)I/&!R'H34FQ-ý!68F!#<'2"K1A C3TB:@&]$I(HHH;hÛE282:4?=+>8B5Iu—ø¨:°hRR8(-šr3 “CP]>?5B1.01'#7$@*>îLD1!%.5.7%+P;!23 !079N4/U);=/<YVg:9HuÁ§MäÁBÙ†„W  /7 S"C*5/;'2Z59K/øA,BGHHB'C1$'!0J8" <"õ"9 4C,"A7Dû>5  =RP%"*+* ?*-3.P#C8YE> 2%,2*C@]'4!: 4IeKxt]5$'A['5)[:4+76+5-'U4*ˆº¦sDG$8dD X> D*37+Y9(I!.GK=U/#2&* 62  \TC`7û5';-^6'4Hb@HLMpBFÇ Wãœ20ßžh<.+\=W:/)424.;A)HPB!:48Lú8?4&E=(1(<!28. "@(*Z^1;?3";& úÿ000001111111111)8-QDF4EBK2<>0L;2 OQ11111111õ)-&W(%F!MN&,M?=A/A<9] &1!5O"A;7-'W+4?FKX1!JT*1$<H)<G7)@7I8D/D:'EL!_737-%/*?6"31,H@;F 1+)*5)XAþ?4*QN:3&,M!+A62L$7)8#>0&54 -R<':-"'>-š`O2D=7_$46B.8@3C( 8DOAB.G.=ö +:0:,%);*&Y-89==9,ù/9'0+#68*C2.?2,@h3G?/1-#+1X75-ü,7,KB fB^H"Q R' <3O:4? 1V%*("#V,á(+ÿC+H%)?C#":JD(oD6$@=FSJ5E? p7,+G0+ @g=5F-J /N)S6ï?. J)E ^5@(L(.RK'-+L/0ò$"SF0%):25&4ý%+G5'#8,C.6G!447C_"G.3THE DL6?1óC:+3J@-9D@8,B_"G$%iH<I!:AK9*%U$MjC-g(F :M'0 /.>=4>83@=.=-,'%00@6^0#@!9P@K?+ +C%ûOSA,8'=P48CB5C(GA696F1n÷,% L$#' /HB=Mb„õ_U9/¡f:àsÅXxF70%4$663A071U, +5&38)>"L84#(O7ï1 #+D36&g\*'?%4@J<½ ñ +Ó +¼€ÂLDE9('W+4.1 =By2-+%IGF4F()9J:*FE)Xd,;(5&+'A).O%H  +(%7 L'*@`SB$K(VTZ138N.7;%9;+Z5.72?&5Y<"2 +* IWU/1 +B@*3.?;i 3&,ENsŒÈrL1N!%*<++8<"$D,4,%M"7C'=<*:8;'2(Q7 +_>5<2F=#<?7/?'95Hh‚⽞ÏÄÎò '÷Ÿq=:?)*) +5$HBA)KO& OE%:2F%F7?+35H6 +? -L385L&'?2; 0000001111111110>?646.J;).4%9=7%@03%11111111 =:()?HJ+&WG02 :(&9Y(9CpQBC,B  5?W89;L3cIH/#?69"1)ù8-> -49O+@6?*4W9*jFO'973H +/D0P-=K# 1*7><.5(,$W1K,/*??DG"#BP0 $BI<=qE"!'@*)R%(II I+F3;L47N92K5}@HN/-"-4)*,% F&Ii,@O<":m/1-)-S?<2. #.lC85-A<6H<;% <Cb~.=(C84U;J7"-.*"fN8&J;=/o:-B)'400'1VíA<d302=,)#@C<A-KG,!@K:)*?%/C?'%3+$2M'750&@/+9.95/HO,5:< ""M(%@1#W16_E62%?XF_<Q&5: ,>.9å=7M$&5#/4,"?09;?I)'('/CU4C)%'@*&P>vNV< =Sÿ2Bí.QB!?9NN3E1/0+-7+4*6#*5!1.#,C/@3&\L$5*-?g'X%J.-ORI_B)O)+-!)5$I2K\5H?V„IKK9?+b3G +G2><9/?@a<=H$M+3< 5=/DZ/@>-.1,!.3IA58@w© 9<*:[7!:A:;aƒ©!Jt69sÿUmq£n—]W3@&>/0?>.X! - 08( "/',(7*(+:&(2'D3+H'7/T1=&3)&eB<H7aŸ ’ Ú– °AVž‰^wD0&;CFQ&+6H%8 34 K& 4DM?%++-J6IL085KA=:6.  @/è9.9 B?6)/ =B2!63.G?EE;2V1O).8E N%3)?þ)397%:FGEG:LC5$ W1#C18"&2 "'G±x<C/?Q4S_VC<P%I@K>"B3&H>@+'*5@3 :<H-1;!YX(4C+46S*LW'.4I2GMR=78Ct{"j Â.F¸ x9z·oH¹j`h7@Q$5MB'>OB6"785&!#4!(<8)%, 9&*:.=ø#4O9Cc'0000001111111111(7!4/6N*SJ1RPBX6011111111-ôF>$K%98.0E^>&<2R3(*E +-E;;L",(4L›ˆhQ #F8o,&*/@Q -UI()O4"(C*%C2*64NIRHø#C7>^P=C71F)23 SB7ED/ %3,%B127A<)E6.ž\V-!%'5\D/<)N6g44:#J1LC4.4P 5I5! 1@/H<5%*T1]/4L0]"06R(Q-4+#-$$-"=,)8E5-@&3'+",2ZJ +(=A))";,9>&^=&56þ)*C-9;TJGKP),-;3)B3)4`e36;Sqty5-7$ 53))OOAY7[N +('(aWLc6Kû$6()(:*'*2BE'*!/6G@=*O0%Z7@28;z_Ri H=.%H8/U63)-#-8,#!+4H(B7(<32!B-&"2*?/J'2A04:M#CG"B0%A%&S4GGO?R0)ML$(@$A2#GN*;A'+&4"?F*9:*9D4%S!B8@C9<1?E%/."R=ET<34Nü6K7NfsPj>(,8N/F"' 4"' "$'‹«Y,X3e0%:B4F2/#:,>%278DB?9;&M‹%B<8d+D%;,9…p: lƒ ï' %æ0€`W-;C,!&7MJPP@(:;U%'626X+&078#I$CL*%713:.BEA([&M9 ?=$!27(F-1>SH˜CD +®–Ç Òy|v‡/1>'@)=21 ,.3+(;!2)1*B,?O12+#<".5SCY 3%Vc1:RHJ3]A (:ZH*S>A3J<0H;(?*%2@3b8k- ?02(I)B3#, #AnAL0J%1>U) +!;7&AV>4<‰ˆBGIc:6L#.ÿ- >-.=K7, M-0A"8Y@9-> ?89=/37 4,!ô6+0A7=.)L,9Y"I<YS$+z*›jBög±|ew {`X@1 +(1)8.6@@)IS?.3@;+27&-U167Q3D /4:M $5BDþ9<0V:"^CL693000000011111111 O'+(.<8?1/G?#%*0A$U11111111+/-C>-77&'$?(QF7A-<>)96Oq;WJ +A8?*'.:]U›ˆFF( G%/?%7++/#AKE#D>2(E(XI<DJ@)(0=8;31(L9?EOaI-8,Z(< 8T5248T5<NN->)]K.,=_PKO<70I:7pKa%B &(:7:% >=F$'&=C]==56#bD@>>&@ )>>J4,53 *S,%J?'-:%N(-O#1,>-52+/GVB(" )!-D#1)4&'C35$U?X9*4C@?P%7)'I9D2':78A-M0-W2Tœ’HQ98D%AO5?0*148:0%; ë11S9Q$ EC0%6)\,?J;<  &-08'8#?66E#>4@-%4ETB9*IY*3 CR-0G ;0(/  (b=688D41&2&!W6[3K3/5:J&\û$,5*"=,8]%1F8?#'!!R;B C"B ,,s9Y 3;<)26^ Z4<"G6CB^&**6%6F=L'F.54V-")B&7,%Y%2:öF{TWFF=A/c$H@C-A03?0=O8%R=4b9+K&F/4.="`tmJG/68,<F)5Bg8Y]•\s7 +h | ˆ>žØU.R>85 ,*./&-$>,C%:G*7B% :% K MYD>10"Y6;CI>JDA=V=F^7&-+TYiÊn¼ +- Î’~¯CFd*! /5I/7-,+7W*@"V5(& -+@/9:<<!-(7!LQA!74V4F7+T<!$D 0#H?**($& -%$GS6M4J#A!A>$5÷(:0'?8-FF*'>N;I!"@"&_V -!.1\5OO;Uk15V09\>2</1'.!49;Q9;]F4=þ8<3'H9W$[:l+40."??+*;3&(!1 K.BHG93MNU„çU $g ¢CòÔ”RÂ:[06"?-A7",1R-\4065,.;ÿ*0?-Rx_+"(((Y:(L4'N?LQ.## +F-M, 2K/!000000001111111D$4Mj.438_E,:F;@ /11111111>&3/-U7+,@B9/`("$X4Z:2%)?/$/H"@;"\C1:342'? CHwù 49.)6M8bBk1I32*<-V6;&3R3B2@J71K.;CS<k2$A4>F46;E+I&2*(*1R6</:#N,>=0/#>:!K7E55-F?8[93,=P.5!*/20 B$nZ#^(2!(R6B3*D=*HG1ñ4C;2)$H3:32A& 6>D//7219B 8=C'#c0XF)1+-0(R<'8G2A:Sü>&4[0-ï3(2IHD% I ME% D%WØç~@2O#*6$'<E .%:-QPc*#$?-">4/5! =3AJ)E :#&?633&)"9:'/%2P%G2FC2+I)>7G=#P1-+E&GòT$0U;%9#&>0&9/N%FM@:)N' 2 +BW4&+.\2:M"*$P9.úZ]T@%F)*}-*$, & 5E%M)N>Q<71!N#.;D#,T6&='*\@V'/5%=4RU #2P'%/85%:RbM2/;'J?D0;&"6N1,,B46;,HA /Ou9 <* HL<S +?'ðTH0D4E+* +G1N&K4G80J`e©ÔH«þ/ê{ú—x]%N6ERU;ID4$H6G"=B@DO1V-$%H81#5Wa;=:ü?.d+85;9'7 &=?BC4H00A)=Fi±dbÄJ\Å„4-uqVD%>h7Q7Y@ +9<3>O=!H41>=4Mö7@N3@*-G6+7.&/ 6% +ù@M;aBN'/R/?H.FGJ/8*0%5(_%*  6+N@>!"$0'_)13G"+E3>.3I!'3%3)@!+''7171W7=2B/*c+"-0W]û$ûP4!-5%-'3- +-4;?&A\L-ýN8&1K>D8)26)>)EFB$0B‡Þë ö©– +±jþŠRKB)8H.6=/.4ŠN'-UD%!]2G]<OOdU/A@8C%E#_.65&4!IW-3#;7:;*000000000111111 >4G5M%6;3R+W_HQ711111111@.EVV<@'1=OU0D@!32!-^WTPAO3%9-)GA!\6&0+I7"[G'#DL=-5:NJ1D2&=!574,#/Mþ-CC(XH7PP +)E/E522ÿN"6$E?<QJ6%1O"7Q&-L@L%G8  ,30P?)@^3L%,+'/$13WTC(,EÄ9,B700#:X9'I#-13Ø'HF.3495HK9.G49EMD-7827U/JH+D%!>,53ó$*.8*09J]-F(2=ø+R+$4f**(LJ7=K8"8ADM;]T*%M¨oF:9-(,9E+>6Cñ%>E6EL:G9c&33!(CV6.5"G:9I#0C9K00 *4)>W706F7, R0H70 NJe'S%?)V7'n/"%,08 +7%7%=DcD1A!8.9.6FF+2U:DS ýSP($@?61%+J/.3#S[1!5 3.)B(FM*.(3E5+O./-?V=.,9*#M/I?IQ:&23$:8<6B8&*2:;7C=Z53oE23+'d*8H6ö8,/+!KB9!MGSMZ?7[.$#C26<!9918* ú*D:V:B:+ATl<C4#X2'7NK[·· ÞìŃZ?LF+A96GI*A&<3J???/,S(D/)FOR,F+*!H5 +%+L$F7$BE5$ "51D2??6,&LT¸T»p5š‚ftawxV'$CGNB=CJ1B;2<2AD?'$N7/7Y<B3:8&)1=VB384D(,!*6d;\3&1:IG;=-/3%!-3:A '2>18D2<i8+'B%'*$3$'(*1OW><CII:RD">\'5-7GüIbHY8G2)'.>E*>@'@C9d<D0C>f2==F/341209K#<0F,6)L>D(C+E>ý)LF.JW\© ´Mð ”Q¤ƒËqTC #'/=*='1JW*@4,.-BL64Z3)PL^:L-D8>/DNF )0'";5@69I3-'%P 000000000011111/.3=  #/*=9@U0;CB7; A111111110&VN3;7)2+A6,H%BO>=(&<$8k5 0-<;?<S:.+/&D,.H0)#, ,>=:- EZS:58B3$,bO,6*-:8 +#?\D0$@Q3*=;%  H+,0%*ùLL+(F>(_:2>@`BL E.Me!%L]j9Gÿ/12FeK0>62[847¢¤R9)7FE%&S_*6%>0E 2H<#8"1S ; '8B'8$$.59ø837@CP.I`8&R;!'#?+'9 )4;>V,@56=(3!A*E!AB!'B')8%&6S9=[KC.M,:RB 1/JHN(1 /lDJ%=D09.82",//46*@+L()M9?J(8B--=r.=D0;8,@14"5F@A>C;$ D5L$E0&E  ?$?=18#;K5J.,<3.3Q!F4/188@EB9,Z57#f%L1CN"^8E':5@-Cö +AH"+#9-X.$@'?/1JB>QM,;@)R?G?ô@*)J >" ;'=ù5 #:'#':&$=:@pÿ?KB;"EY(,*5Q6J<9-GB=P5LO')a/>;1"89?X?;#,1<L,....H%:'@8@>†:ž}žParZ^_M8/I/L)J)7)0:,>99W%7,4$'6 @N0@I'. IS$;0) )L.0#*31/ 6!/<*('Y‚–ÁήuKA:8Z[W7#J>d?J3FKe.N(7aWC +/7ò ]J0XA<M!H0W3".%5;9>M9 E.A3'K320 B(#\4!51+<4$(4=/@DRh&?D/+139I#S@99,+"<6/B)7#$@ +7&2.D@%PB8<÷"<B"4(,".3.'(<(ê-4"G <0.6"#>"þ/! BE4R56ELC:I<VH*!&C5h;bUL%\hëùKظš/öŠm!\-< B$#2)GZô)$I>E!&973*0#QD'JHMX(K;=-8 %9@)P> <8:7]>000000000000111113R3*$97&Z)!2.-,$".>011111111(-81(4.CnCCM!@"1JH5J(8N^F.);#6Ci1 +-;"B0#>>1#B3+7C+Z/W,&J9C<[\!7ÿí*D)(7S&"c6>":")I*+"X'(ü50WPK4U$=/.þ`;õD0k:rC! ;K2L/)=L Q*MRdSEG/OG(;8`D7&  GG-) @ETM,V'6!45,B92!0"9)>D*;8/.:! +$!?Bj +DG)/5I- )BL' '&44E>=,LBù3@ &E)-(A,7û.!:R8$F# +B[++:=pPüD-*a=#1A!</OE4;@4M‡?5K-C94/+W#1<;3,E7C7HH^+4(<S:G(- ?G-=<+&'38+/(56? 3H*</E'Z[:$ö%J:LRR'HP@"5.1,*h.5#C"1J/-Z1531(B$'976KkA;9PMOG_fIM9N67'%D".B*]%9AN+'Cy/ 8@0 +(H> $HJ<7]J:-E;C0ü5NR',Z23;.)D<)2C-D\+@38FAN8- "(";2K /U?).B6-@;I+@3, Y3/81*@N_8Qj_Wd:_:,$P@7$2$I B;>X$AA:/?@4+"7&I/4"3C-,> !5X@C*$ +,B5/J *(2:WMf_„xPZa11111111QEH/23'&;R)6?1]3 NX1::@X+++(T.'Ma>B*`K8+$*7j÷#B& ,#-8)0<&07)I '>!.,BA)X?==9%3]=G6"L2+5A/f &U'&*?#7S9.*%#0)1218;8=("",(<)0NC/:91 0,@=#"L'%:/0C+[++&X(2K%^@6*+93Ú?1*#*N™mMF<K9ZA'FE(,CJ+…Rx̺ÌÔÁŽvb†66=Q J)'M!.@2*  /7II &&21,,,R@$61<*'@!#:5EA2?:Fþ3$ ;Nþ00000000000001111)=,78H6'H225$K3K) F<11111111G'-QB4ý32"()BA.4/0!'</112-(W9,$>KX"#E)7; 2:#>#'X8FC9*$?C54P"=I1)<= 6.T8F+C8(F78F>A$=J[:<?P!1;YGN7A35M8N2 7'#+V?$OgdNc <1:=!:%@;`L$GY,5%C7q\](?Q!> 95<96H+Hÿ)H2>1>#F,?/3*>AE.#40/I<4())&%PCK277-9()5; @B!#+ì3I@PE-%>26ñ#F?#1'<^B1A>#!48'/%K"+[-/50 h:`>MU94AEC%)9# &!=052,4YD3&:6Q*A#9!G MOk-6B6A,N:D2,@TXR%)*-,+8$8F P&0B3W#*47 '-5&C9ML7CB6P?C/( (  E?WU[H8ZS.fV³¦‚KF#QK3C,;B+V0/e";8'A98R"BB5."A=7I ,F 3.$2@@&3ýV8M%>A-'@K4 /DW=;KH7-?'u.(54H/8OA27U<(H%&+B2HT'&#MA.-C+D)6VF[kqd`L7I@@6PA$FIHAZ*)=%. $<.' ('/>/\8& CR-C))*G;&<K)R% #949*(LJ5 *@H[mWz/cB111111111>@)"%R*4/T/%=/8<$K/$ 1+J0# D8$99#/7(0-@!'G?@Efi((.%&= A30B*8#.A;:L"([$8Fi0&BA"E$),!IE:'!$A2SN@-?'(^,, CEû18@GT*,,5%*1MêCP,?=H*H]*,$' 0(G?A #7÷3,$90#=O":2>;Z‚‰vMVX]’iCHK(T COB6OhntÆyŽ^Qd?%G0,Q5 %6S"E1*=,+ P TPBEb7//3<++A_ ;&7!00)G5'%)/C1]-<000000000000001114.E 3M0F# I66?/7-%111111111N$[4%&,57e?0 +#/#6/C**5DD1-B+7?C+$ˆ/"/B,-'-*4?<M8KX1+5;U*I7447QD5;/AW0$#G12 +.@  DûJ6.D5B;04:T* 7L;oL05 IjA +5.:.9 3=ˆrX)LI<0BT? "B|5?'&$MU7|Ž¿v³[L*VU@J.h\L #=F-.Z ;D'!)? =!4 37G.#'/JN=GN +:4:0)M0* O+)44ö-ø?Mú!MMJ%T)!BE=EHHECB>-T,<7"R)84&,\7.6G2D2!Q:7,<)>73Rd)-,1,5B921L7!þG- 906;7^';TG%29)+:n( 0Cg#%'+H)@)/GR=E8$/>a2I)F1/I(3>4,8%…E*>1=<[2H5;'7=D "Y>(<(#>< S&%I.TO.F4BBT’Ìü™dB1#:4,HO115:+yM>@F&96#5%#N4& +210F-%/='%,*K-<(90'YqX&051 +H@T,8@7A&ZQ$1I6837A09O3%5>4PA@"D! 7DH;F<86#80HChX/!4AY4;@øc5<49s5N=R;$:151?AE9Q6)4:E7N5+:08D27%K&9"!%,0+t:<\N 9JR9%<;+"D/ +-@XXpfsaB2011111111H:4F(4'QP9.5&8"*97H* 6K673'!#U8<2*)9FGF(0 ;?CD2;F"-3,:,2%32Aþ/FS$G:#& E77M + +-%;I[0>=;7Q2-2+Q)<M<BY?5*,=;:.B%*>e7(+2'F B)SJ +"1>=E%.R/09V6H3+P7,G&Q 22<PED+' > =30 -'H3Y„y~@<[E’Z?:/.FId;#$W=\Bkc"Y\M;4#P(==<:0$%*;'R88H16%@(;M7;Q5H8 2K-$"35Z!YK F7 >30F+:/00000000000001119D$ÿ ÿ;4&)I7+%f*JX*11111111>+35;B-:+=4.@;>3/C81C*.8DB* +>,71J@,c7V*A :<4+1% +0QC!>[;IX.#-I2\4I,4V'0,Yb'--D=B4=7`DB)989M&XCC=B':1C#KAUb1,A-9/5F>74i=7B&E ý(&@3(@6 V5NCS4$-Mg|‚­É[&E@*E.R$6.;,=&V7X^4D,9'%;PL!-3DC$%M570$;/10#J#e42 /F#=/(?"%"8,B>$$>/&"3,:A(%*<".?W"(%7M'0:3%0/2JI>)G5E7.10IK$JX3*8*LMVJ-G4!R"56?27C#,)8P+SA(6!P*9(þ+63"F6Bz7F(U,C4!.45'1B^Kk0! :*"';(_Y!1[>ö0:4D4:"SQ:63,$N-0=HG5U* -6L++!AG=-,P>e…éƒL* a%( *2*-B2 BZ5"(0.=E3],!'5"K;)KD@771>2EI<2QI*8108 CWdE>>@E;3A*m8Y<I(/+8MMi! ,T&/,;?11?"? X"5)5A5S'YFY D7DTE[!>,-.E5)1![I\&'8S6A]C81@,1((%0R5?43ü<w#!1,.[,BF1#!;U1Uš¤‘r5H%1O"þJN+N1:-9>:JLC^F11111111M<W64N0'#5!A&#+ ZB-<,(6 +=&5)H19.ZAC<QS8C2 57&?4Y1D?$-AJ58"+b<%\P0Y=ü=#7)1? +. 2,HG +%J'F#HC>Q\I+(9H`X="!!#ñ3&)720F-37GQ=fM@<!3* % A%Q:*'/)!  ûFD4B 50R744:+#2.E* 1L>S2uQQHL9m]@Q1#)B#:=1X5)BAE?I7%MW:/'>40$'()>3:0E&T]/IEZ-E3PA,=9$+52Y ;6R  5CI!*6A///000000000000011'B" BS-M@=%+8 (+)T-111111112&- .5/#>->@--7@*) +5A5(#PA&+#0'-6*@AC2.-<þ!.<;2*=V5"5iC4-A0(.@B3*<E)E4<0>!I6"&kH@F4=O;:=I7$/&E/C/J@*66%G2V3;B>C?C+A+//'=8Pn/+S/H^. #;+/@4PER:?AZebbšð´²žN9>>#f=#3*@352D.ö)5@6,=QA'5TP/> þ%7O2!#9D=4L7 !<,$29)5%11'é1.:!9I&%,1;)@4R1gCC@$K!2K,C!(P1>D9,!1A2L:CbA,"(CM"LV?>%05)!J/B84%-ó +8''S3*#>H,H%EaB!$: +761&[7T6B9%7CN[3%#A'$7N0<PE ,2/3,p9&J:A(M/EH$:C16O$*,,@@;'$KI52?"%7™†·R?U4!> ":B4.K*/=+[BH&).:H%@:4>K(î#*19#EL,=U;I2$=4-D78JPS_,4"'KD0R-&US74$Y2A6O5JV8WH9:4*D*2ZJ,ú+ -+&LJ)9?44E.;357$+$6G*#ï-BFX:CP/P$%G40F0D+=8)%$õD?M.)$R2-F',J6Ct¸éÀa-RE;r!3"&)0&[$C!5/.5\1111111192HKA < EýP(9C>!D+? .C9 õ DL-R=\D-:C< 8F:*^e&5-\;1"-/7b0<%R++LCA. 94LMG*2-H7OB>ù@"/<HD]2;1b,8+F7R3*L)DE/1ûG1=4>*82^!D B&+J;1B"1ó<(k;/^ (#.U83+Q1Bù$/6,M&1G>1''>;*pg:IA7 /0<=>\0d=-N%7T7D$.o%8'C'3VMûMK/,@>$&0*F&N9(  .>)46ED(I/E%@81 RB2þ:!--///00000000000001%"DI1,FF<c*?S8<",*-11111111 4E6)1*1=7M<L 31#1B@3'y=H0öQC-F624*(,0D1, é?# +<1<STs09O^AY?t6JDK23BF9I2%&PK/-0/:40T7ú 412?; þ4]LA`5Y-9,D"#:7=;$5#!#,/N'(TF0@,(Y1(A+5,÷g+;%79F+ C\å¡r7­£Sc4&%#JD-. ==K(6B$2-\=ý/40./-W2F<;2UCF&G.DBN<+JN--"P-ñNR7&K4(/-:`6$=Fÿý22.ú$T:2"#PGC"<I12]bU ùL8K:'/J+TJDCj$!J  ,$>;R7,JC48;#R#+L8A Q4H,GE@7,C%A7J3)_3C)[6$%%OUEK1*f%. !37=#'@6761-A8><6I>)-=43<B$@8 ";'9:5-(5ì&A:J= K,  1G-R'7'5QBOˆYR:h"A 2/<1Q-28g;ýø-5D@W#.6D67DY78Cd%bO!'P^*-M8OF#/O'E<55;=&9*)KJV.5Y,8/.J(.Q9$!]6H$=$)QLV>2cE@<#1 G 7DK99dFF,)KD+.<P0<I B; -*DE;U(2=B,<D&)M>+81-Q-F=G:H-03O04U%<+ 4Y¯ é”S:HE T3F"J*,U^<=.311111111|?02.'- I.Y%76M"7=.D(*K)R453*1F%(@X›]C3X+=95A#OAk"P(0F.:xd?B5 B",@?*.=>= 2#"9'A$"8/.L62+ @.1C*9 -,'O$9CUP871!DS%;2).8R,";(/8 =TG1;7(90(,(%6/C5+$? Uö9(/T907:,$+!'*1K.8'69-Gl361VU,9L?RF2M>e$'27?'C)40)=6846I'@>%ó!(*!&8 E.<14'/>:E$;#%! >81(YqE////0000000000000LJ,7-F#:,i!RýL*-!S/<%11111111&)7$&9B4F÷6114Q8/=8$8-=#9=A)"68B,.#ñ  9GK9,}.mƒn{iBhc{K :5=C"@<H 2#P&DJ89,8C=Yò(=#: O) + '%6&(9GJ8>AFDNPiR>=P<c6 B3G./6,)eZ 48+H/(üW1g…Š€õ‡_0iL0^@IH82&YP6/5 Gg0+46,<:5=$' HF#6QWQ=AFIB*+&K!21C@7975;û/!IM*$#>A2?.*%7L5*7%:2$T:_-%E)82(HH2'F'O" %MI:K/(:F71(V +;/4@ ?'1.N.AP + ),>.u(:"ñ%G/(:2, <c+AAN= =9;M)+!$>@*&&*: K6$ü/V(1+B2,.3;?EB&÷==2U=SE0A7=+L7F6>%HJRCE!LJkŒ6?c557U"1P+(U5(F"XR1-=-6:Y9W:;/@A , ,UI076"E1/83+#;H##/6M:3;90(60d>7;) "S)K)6<(0AJ#A?-2T > <$?SH%K.4;ò7@4*#%=>üE(9JBF-L48!I5'9?<<>L?9(==<+"=:W$+ %Hþ-?1C3*-1LJ)F\„–†\HO#<48P,Fi3C& +.%H8 @IM11111111:D= 34B 8.?C,FA/KTDH:=<7;('"--÷BT F4Bj¨½qQ>F)8A /1F=&-?#D.H)s!49/;30#?)3'-$S?=J1$A&'./#(!!<27Kú@E9 !%RRT:MDN)!=, 0 %4HZ"M5 +08+>1CL!0S0C.977*I%#%)!#&:$fBS$B*,J$-.31BG/?:S(50!7240#C;/ %*.+'6'A/.üB:72I99'#%C# %%þ@ &ú.47 &(!ER*')H=0/+*F%////0000000000000Q'H 6C/KI7'L.@7 O/B11111111\#/5 L;0;3PC+. 3*+T.(>:B6'%?$L8/'!6;1E163J1,27f„t`Ь ~_v\TWdB//3$#2673@;J^1 ,4 <6EB&6G>5854==Y;+%/ 9S([w)=#5+@e7V=+.G0<?R=$8*TAE;)cU4: I]ů³–R0YE!A70>Kja^BW/R.?E)+:HV@W4-955/)$=9"?\Q&#"þ-LOü!L 31/.KM,)bM8J%$-;5(.J?5@S,5-.C9iN8>3<]975?><:6<8'"434O8$*"0,7(RA "'>(,'I!%:HS_\0C;OEAN(ÿT,<!,a2?$"8GY=:6@N,@D(-#>0,%D&N;hO[Dd>6/$556GX5@010:7E"4"9-BCS1&!%A4F!G2.!6>$7^{Qu?Z0/U+D/E;L2/'6M#3MQ5B,C(NX$=<1,I".*%L43(g&<8=C3 +$R+",V'"B7;!*877%$(H3U0,1<A/)$)p#:<* 4=I8",OE&G+-+GCG7,(#\<$H:00 9<5Q2%B$/=F>3BC)1(.Y3\3.B<8EH.%#!#O(1W'>>+d$9.#B8&3@-D=W4>>= 5);33G"B'@-7G#2#11111111Z<7Rè7eEE 8X4(V<#)<BO#=>:#3>f^~WTA/4@*S/8CL1v,I>r24GV+3 %.!>1 :-N$@42,@>yp?M1G B<5, =2<L"6@)X4$.)?D7*EDJ$-3'3*%% +'-'D)#:0)V'-$1&6"­-*&8..0G4W0H7N(E&IA L9(2G6""-2EC4//'"Iî87*-C<41>*2;$(0( 4G%9,VKAHD5,+'-94'*7Kö'03X.SI>++-4#6&D87# 7I0=A 8/////000000000000> >O*0..V58@62 -L11111111*7,6121W7V+&#:* #*)G.K2I#:1Lo$;;I")$#4/0BO>p£½wp’¨Ù˜”J~E<D=D9;!,H0/LB?E'5-EH39"F:*A8L=<E+m7",BC(T<7?(uW/?,+L,3U*)S: (>J1-FB9143L>,*=4"C]Jl7aExQbJ3'1/Ym×£H_NC.)2'0CB,B+).?BC 9 :8TVò?>.?0/P*QGK.0Z%?1:;07A>WsL!A5$B04:&5K(+N>*?>N)3.%5ó-+<G+$&J,-!)%(&=|=<&'A J$>&"(XI'[IB:0'1Q9+(5>!73H@é1.5) %84<S,42& &$W++ +-=ùP/!3M4!4<0,*3#1(H'0< )E:Lj->*974"NG7;?f(74E;" -""7(@Fhþ, B7B,EY_L49XL*N>B"&.P*?X((6)01+<KH:.5&*I*"3R"4,þ7W4=RR: '&&@5+1%3&/>(T>0;0TJFOR'?_8<.(@;Z%Ch;>BE/C@"#)@*@^+ý,B6,?40( U;;B>G7.4#$8[6*8F<*<S";6$E,(+5D2#1ø7:+;%>0*-8*&. EJ+:QéK+.F*5 hM*14(T-C)[6K<=?-11111111<F7:JP<K6E3D'06(E"õ2n$$G4<07I(8O, RH7%1'/kR23KC+$1 2)>92$`; 2å+8.0#6I<?§LWHJR-& [D+3N0KTO9)7) GOF))E7=&8C4Qû,6;D<+ O,5@6CA&36(>A8-&/=6,MBO,ÿ*6484H)IX:@0g4-";8A.`9UV>85HD;6;C<=Q$!6ö%=?@,. :E*;3<# ýC-C/å24,!%- +,9,)/0B$../='!QJ//////00000000000% F%.4&"EIK1,S03=!"+11111111!K$5HC4(HH1K-.D/05%C3 4M90Q>8?K- @40B+;$KE>'.7Ru—µ×ÐÌæß÷ûà³nQPS:8FA-X04:7?OR.'34,@FN&K+ ?FI;4/4/'9$($"(*' $9(%5-LC'OA+68,</,<<! 9:ûM/#%27>A*3J<:M>i*.(V.F==w¬'ÓXD%6%L7 ''T? 7P1>)46C=91= ??I/,+O8V:-E=`Ek8>&(ÿ6 UB1$R/77(5-].!A1//-HJ%<31*F7XE2>B2(%.& 4iU8O*+(>' @*8g?R)-OCSJ-H$&0.K6J>1/'=. <?Eb+4FS24NN2b?>92P;T/?]0.;39+Q=+@)36(c 4&,'#'H7>P%)&@(0G)'CBOGH:ý35 G&C+;<#D6T4$M D$+>/t;);C&74f$^I/;R7CO&FG5G4$J8,'C0?5Y91-=51$>+9F5+$!Q'93$: 0;2&3H141LFFú5N"/"*+?Ji3P5'O3V@d!>B>J,N3&"9WJ?G11P# \+""153z/;88-<'P/")$=C*4* /&1`1H8;)"2=B"3A(<Hp"5!->D--6:XA/)9(M'!=*11111111=743U%;e3-(E 0?9$E'>",2+7?GER$(-E-X7E)65:,3!K@'6.9@$ô&:\2W):4411&H&4O=10></=-5.?>`=#ýSM*$.7,19." ,14>Nc3!*A=F(aS& 98#79/ &MVK 1&!$%=).0.<!>+!#/LJ,GR1 >>>/w; ??3#Y-)EUFM( +@+4)E4# ':; %'#84+AVH"-6> .%1-.1625' +/3A048'+!9A0!R.%? <KC(///////000000000025-0Ef 3*D7$ /(T<F11111111*L%%!EDP+960"#BO.*?4FK6;9/3+*Gñ>Ld?:27;Q;6XMKt„”âgPL&©Å‡“;3.6+!04!HTQ&+H5O5T/@O$6 EV*I!F#D`\&'4(#>3=-V.IG3>ïD1.[U"t0Kf=g9$HPI0.$&4 1# +]:-+,)D "b, -(!†¦ëÐ\5%õ83 ) E?;,,53F;1+;02:0#.6c21/#,[ 9@&_/3L:8$%iB.!6/6,*A5" ,P61"-1%<I6-9,-22J1**5CJ37)B=a[: +7/<30GP"X8HKO4/.-F+'3$.LH:-÷FA&20EH3-O'%AR&mSl=VF&W @D=5þ)18:WT&8247#G+6 EBU1E,>[7 *9 +%K'-T96;#327*L/D<,G*,C*)#<;>H'CW=B?9(QA:;q?µ²ÒU5?-'Y6IFF0+0- +Q2W.,ò: 2CHHD//P TL!j<9/'ùJ*BT*AC3="-x: ,D.$#g+=KA1L!+;6:/e0D'D//2:9b$OCTROKAY +%,:$94 $>7#:C+A>*. 3$4$0.1(,C@J ,L*H H&#1AECM<;/ # *A*'OB<;B2-4-96Ar/"3 2C>!11111111G; 8_8='9'>*;&6=I,B-*&!XJC5K0@ME I,3V>=S&21$=$8(;28=1"4?;BB ENL9*!2+$4ÿC{G'33ö;'G".J/ù÷ü5SG>(D$CEQB$9,--5!F,7''6:)*cB:ðý$95G#$ --63)9@YEI%O/ Ik8<A-6'(I'02)^1=9+#)6+"MIHGDd49%5@?8*$ 7'="8.19'ñF/<2G:J;:*;H$#Q1" <T2)'1#8;-%n7 !$18B2#4KP////////000000000;'(7Lj<2<@F76?.3KH>111111111%&j :EZ]C/&33/5(U0/<<T#B4%D9=;=ML5B00C70ò<2)AY@|”Ë*G’¢…zÓ™l>Qü;6052R4)7A6):?%÷/TO4IL%8O(>G#95'6A?B[e<;##3E&13G-PD-EW:Dú,3,X4]N^b+!*+NC>1*K..I=<?10-;1DG&5C}©´µg7&7:$ ##(?*AE7!;G?>G'1# )%G,L#\@MFJ]D3$/A3: 5%N!>`2 $3P=303C2Bú+/BQDQ.úT#>õ+4 +$CTr +qAZ)P'-9 ùR+>-X;N6&9V59#2iB*';1d/.361EFD66*M>Yó'M"58N@?>:Re@DKü8}H: +.)/&.1/N*"<4FR(:@iE4@'J$QK0+01=>% M)4'%=)"ú$-*@;-;((:1&'3ODO3H(;H9oò“1´]C2C4A,e*0&1I/_C.3]%R[]4!9;L%'&"=9; 2EO,"2;980`p:%M%$B-) 9&CD4'+`<%/3+E;0,?70;?% )A(8C3,9,$&!>&+R/íAC72C2GJ.,M Q<8"#!'HE8L&DU@5[>9B;F";9B?H? +õ"*F8,@+P#O A ! +=,0 +X.- *J?  f111111119G$pW58214. +?%/1-0??'688U)>6!û1('G:P@2  2@ 9+)<0<.15J8IF:%PEN-=9 N54@ *23&+@A-(0L!Q?0>&/%#c+D4$!2=N(ú(&F&OJ-N.^)737)1O'C"%70,.63$%5@AA+8AC"))1hX2+1S;=3<.9*-6)%5K7IJ0Q5,---F .94F÷#*VK6.17GB?G#32-9I;3 (D$A1'=6'3*0!4:6EE,,H)5:KL3%.< "G7'15JBG//////////000000000&0<>50y]V-#W"1M-7);11111111-/3A 8OBX4>E]4&%'*=@ü/ ^f ;<,K 1)H6"0 !G ++C +C28>XTS‰ªÜè*6yýXÓ¬lzZ"AX6B.A3,C' +2#2[[0GScEM$7<!C0=478<7P8!.'68')1Y53ø"G"J'5,MKN>^D;ý?RD)+û'#:-37$=07#!.DGX@thc@@88./0T4:7F+;:M&>/P%GVg/3A/JQ6-(8#4 ->*"Q*'*2X1@3#1F4#-"HC:/.,,*?$K4"=")&:E3&"Kg)A-6M~ Ù,¾,Œ>*8.aJ8?<+B):#>?s"d3W[oC-0'DCH-UF968EQ%3=N+24DA#5 7K KI+(?;57WJ//47)?;"%*F6/BA1CJF(%1%?H.&I3,,;VK&!87KA7//3QEA)3"þFN =!&#@A<þ!9FO*M 5 û%9IP+S8gäY¸fÞW";@6:5cM$Bg-:?8&>1 BõC>üP,8E37N/>2AjF/X"L=<M6($Y/[(2;6HR >1D01/ZC2J=0W+9'B>H0\\5E-4?"R\40 H$*4@-25##9;)ø479þ;<*73732.5/(1:5,*] &-CM"(1$O.$23 !55<S(JK#-5)&%25C)72@C>1'6)SV#+:!11111111.<47(.8X0/!05<)8L8QF2)6E ':E>9Q.-.@L675;0*:%VépT0ö35@(.< 57]A.;,45"=#E*I(=,893@9 .97;+M(;:@/-JQYZ8((;J3 I'(0C>;';!0S JG-!,/42!*(<G>2S(36<7#3/YU|E71">77Q,56D4;A)D61G2086@MOAD/Kí'88 @pGQL++:.":&<.'26J12L3#DT35 X7+  4#D+68C-] +!&0H'(IH'<8 ///////////00000000#:758ŒÀ€R52-( "F''@,11111111-I>OAAA"IT>0,+Pe9d?B?PF((-'3N`:4?a0B#( ;\d–w}½ß3{3æiáØˆ|T¤$S==9&%$F3AUM84!7'QSJ%-+C[F:>JNe97"L+81-;%@81'k&;702P#,9+=+ *;6(PPISL&W9,8. øX64'2+04 I$77FF5K3+-FC ?$H:H@VU+.31F{,AKE M  -3?>*&-)=KB"[-H3*6'D G-4'F&8# +%9"73@E>-'E'<8?1PB. L, + Ï*H 2L@4(N,:@*40%:5T<Q#<D "CF32@K66i Jõ>#+3A1P/0Z"6ù>5E1bh96(B(AAGL4A2=:*`==,"?;9O)& R'9>6*6'?CM7C,QIP+2.L9 ð>#&4"DI14 M:/-!6+/1G41YM<M8M®¸¸»Šw3/+97V@;1K-UEQ)%>B*&F9ý)5%7#öN<B"=<%9S,<- 8A+1(  ',N7 4V+ +C;"h*HB)P*<4L>84&%EF-3)LH;A8!;[=Z>?32)%6J!7?%6.)ú.7;'!+2 1@$: ;?'/=$/<#'&/;'%,,.2((C%H-#/G7;05,1 +ÿ@BJ(0+*-'LgüM11111111M&)?*1O>7;ZB?$ûQA*0\+Q7*)4! 8:1,!$#1EFF% 5?- C)20$443(#/.ûG>D#  +I,;0+(#( :9W13&3B&G<C@-&'l%E!. !( ] *0 J4$$13 +18-B08U2K\B%(`:*;5&<5;;@23A&@B4G --7%P<EE+B3LB89ûJ0!25ý,&)*&3B9C 8ú>75"L+=36ï"%8"9,=7&"<)+;>>m$3HFCv[?^G*F2Hø88C"85@F63!///////////00000000+*5 OBšn,9«X;?(5!gF11111111% S!1 +(A0bG4=$8+0,92@=D"4-<6#<;9;&S:5!W8P?hy”xYÌ»75ì"µG_÷¢†zIC4gE5(5#3D,01:6T#0k&.R:G14MJ&75;HP^fo}B3s# -92B4S+&(4([ *.,9>#>)-FDD.=09K)+0G1#94A81öF0K.X1=`H=:H,J;+K%9D$.KK,)!Q3'C63D2/4öQ 12@3H8;*8'35%1(;<D;C49-&5b1% ,*>0)=  (%:#.ýH~WT%/?0$`'.3|8çf-((5=87&7N1@iDGWL7-)9;;1@=.0$D>7G>`V@,T+PBK@HF"KF01^<#AD4$D&; +&;D_-516Q=;C3'I08CJZ4E,Q'^-- %17@-$B'Y5HA,P+:&)%QC"EZQ$.IOPS$ O# A>2&%9<LG6SFpH:3#.[,%AO6) 86#;V5:+'C!)%8>:X89=;.H=-7-3?*2S)Bþ9 NR4QD8/R21G"A(û@4HIH>/0(;890;K08 !A2/*,9-2h-G)1A3H$ J8 *<=1)7!<!þ-!?',E).&SI#,8.þB)@ %$/2K"&B&:D23=F*@,"/<h6D\:A8\DB?J3 M:(D%BIL5A6111111110nK+C%:#S@7Q8]YJ5* )6!8!#27)@7'#,$FL45IËßR1C+;%('1(=2= X?O42?5".:4=I82:2.*1&+ 180CF3:AW??;#(/ =44)ï#Eô6F,/RM(,: &1',7):R+P"A#K&f #'92R'3?ZXJ?=%092<C%"(3@>,4/<6#> . @ýLAMP$- >*7 +?|eL!^9/;G,@</95>,$*E0-9 &7 #*#F-ü1>SR2A?.6$4g  F7> 18R+F%-0>#+////////////0000000 6)(G-NCA"Vn!D#:4\M11111111>**&130 B0;-26:CG7 26!3QHK$1-[+;S1=8ý;U\t’Åð+‘¨p-"þø¾~cJPL6 +";÷$7>5#:bY:B9,=L .34;W-<T"B398<ZSP'#a; 9#1\ 29û7.%JKR_!3/ ."5.O@O[4`K"E+A=K,a#D.VBAB6O(a4e8<.B=O&B>3S@+8S!I">0P98(<9LY>l!,-0/&2 F(&5W45L06A88e%D'B*G0"0='- @(O, M*2.*(7F2,,+);n .!6AK<.SR÷!NK):>.C>=Af4E-H+=X.b.SS3<>/5((N>;OOU?51/O&!3/SYDAïA(W'6O1XSF $Q4ê1#"<;&39-K'CM,EP.32Z K+D?r0)9$/Bƒ¡<7GoE )+$9û1XM`A3H9LOZN#*7+H!!6N@M@H'F2RP8 =5@>8K?OOQ5?.A8-42.4%PdiA)6(++/P=M651).-/)[GôG!K4ý6K('.=3D-ýf3/ 2>(Q!:>Q$&6:;E%A9S÷IIJH5#G;("!:0*E8)5(þ25!#31.4,%;4!58$"%7(>K@-- 64B /?0,- +;3$!-LBC?BX7#FE($M74Y1M23++?6C2211100.C(&894A=  *4"321=&.BD9I&EL22 ,2'?94l"+'#*G2E <@!?O4(>;"?Y*8(D1.3Z+7/7)G=/%39;/T=/:/43H+#A%0<I!/%*K; !5:;A2U67I=>KBý!@=0V"8.)þVED2I+W3WP@:&0"&: 31N7)7A72/D04#@ =1 +O<L/1d,:fN^C1.8 J!$/M3$929U/6;!I>+'(!%>F&36?' 7TL2V>+L.6/////////////0000003/0+I<6$) E:8#JGTLGC11111111)&+-.6J÷7 8 7G!"$a7  ]' Y(->3J-,9N(V1T&E,Vg‘•«Ù!9lZ^äÚ‹œIEXBLA&<P=/O-Cø7<;  G83&0L[=6M ,"4õLGW6B2A3F?*1mfCyX!B* /#:86GH.ZXb<O1VFP#(@D)78!V>74'465TH?!JF88P;* S<I+&4E)–y-b-01F0;@9A::$-5A@%Y1X%+7'/.õ=52#/J=,>)UM7)I(#!YRM?7 :NQ22,4+###"44'+8*1'^%6*K/LF:_&@UD +=68lG2;P;9<O*4VB#A?Gd!H9A85,5::>-$MM.:6+&8NA9(h;<1(4ý3Z=RMJ N/øYE>9P<4O#;5J4b0=MUPN3J8&<OIͯuS6:Rÿ6HE$3_7D'?!D21T50;"26.E<B!1<#0T5:S/0GM-3])!=:X>$5& 48Gˆi>&D,<7IE)!/4K.% 7?H3=[- 'zK=-X&3)14V@=kY(92,!7=L>#*%8?9=-J#-0D.0!!!532GCþY2@! 7>XV,J. 9/B/ý,%0-TF.H92%rA0?%M+Cf- +R=<=)?74,1B 3JeC8 >:/0B"&>%GJ,222111100& =jH6??^7R"(>%#%W>3`5=6=@W)+\FY:RM8/ 4k1&'<(%*7Z5$ 2W!^<+E7*1R<&2 D /_).A-&.@41 !#ï'0ü/*+4[a.)D5"<è?:(9[;%0:E50&?G;' SbY >2%WJ=G+&;ñ(J$O#2?"e?(PC$8,773!B"7  %" *&b2(A)106&)gEH6 ,2%E*.;/C$ 4'++., 2G/M01>&:+4  (%0^,<& +G," 0' L=M@!5G1/./////////////000009&&C29( "3/46((1+";11111111=SG*L2-!B;'C'$F&GH<$A%49*Y* 2*(B4)RY=&52:c$5uy‚ǹòÄÓÅý£¤ksH0. 0;=÷G-?T+)C"O O;)(ò,U#C%FM9/;N86!A@6'21= ++,.':7XI!%U<IA-=IFADXgS{+i83)?*3/ XB2õ #P +7Ec-E?"Hj2<FHXF3-<BS =9+6jn_I .1 5/4?3%,O)<35`VgKA&PL[713=<1>:918"F3&;1/9:5F&; 643,GQ7(F;:< .;$-:ÿ9:%310< W6/MN-&&1/$W .-@ //AH=\>$#3=9"078-?T/;CHN"FE S=P6IZ7*.aDl/A('4Z5GC?6*/#)ME+<$5/a;.^gQF@Fw (101>`UC%@?(;+.H@\ÿPK;(6.þ#E7,"ý'V@4B@.6$+102$=bBa+$CBT6 < +$M,gBG s@`c 9->A0<,*6!5F[4#AN5R>A8Mj:þ>J4mPE +G)T=/0!?92W%/`DY0/.R7 ):0:+K[F%A)L%%ýQC)ö,+'39.440"1. 6E*D_$T-&#'6;l(9$1?2052"m2$DL;0$/H3.=&-'$.*03222111100"1VZ3-LER5)$)N 5J\1$.;<'8E99*í#(CB@&G  .#@Lö&0]9b$<873+9 *@4W!950<A$0;5:A1%7/!"ó.C%H<R7)1B('44%8B"?B7))D<:2!@>A!1$",.0F'î?< 3B?/ùñ#? Kqub),Y#$@L66$$78I*'9.=#>@FD,'!@#/0&'U]:950  K93( 9ñB"'@!6'(+"?=(+ '/B>ö-7(8"%G3,;+N=46IO4=3(@ '6.//////////////0000O12/9ALMN;Ct/ $ %W3'D11111111E"D/(3,7E76B>A>J2:?Fÿ6e),I$41.:,&0]$+@A$2%6?((1&8LoN¡m¼œl¶½ˆ›WfAG.L=-T)&.%,R/;G71NB"Ia @)7)CEa +5@B$:C7A$""XB&B558B$)7L4-FP3t‡Ò°WDME$4![3R;5@07-W,þ>"@#$=35/<2 :P+84-(L-$$\ŠMOf!i0%]^9'7 9D545bP†"£[B)F462=N!;UBˆWvE97"?%*,25+$%W5/)C +M#+D)*F#-/$.#f)>:#??+H76M9+6K3@^4XVI#19E>TI "TW.,*K":%lP 9O4,B0U%1a03G6;'/<:G,B-&Kg:%0; P'@%&G&+4%AC/L'DYR)=3(0./)3;G!5B6O=,S0#.MC%W%<,4,%7!&Pï,661F>:A<4K2F@0@9?&+:3S)48/A4*'>)";=?IJ(>77+ &/"#G2-%?X ?5?N=;;Z1=IX?@T &Q)þ +PMJ*G'BN)A1FQX.D-)R47,/&)5<>3;>$ +(2 #'?@)U0.4>FN11 >&G0/9î*27%ÿ(1ü>%0)0R#,94/C9"-`C? .ù..=>'5 ?0>Q@4AFF!:03N<:222211110008W8C5@SL2$@!;,)A>[<MH-;,@#":*@.;D0,;'6@&<5O$2`6X<A>. I)bG.I=0&A)5@ 4+<0B0BO)#/?%K;6!-=L!MB0 ('8<%=>@3.@012ÿ?/9\#B7>=!C4S,'/>(c060'%?CH"/#/cE-05+8< -358H :&C!>3C : <6ý!6;8H3BG(?7ùB2:$%J4#%:T=5;RC UûR5 +6 PC@<1=8(-8 E%2$ -7A68C:9#~ >#*+..//////////////000/$7-',/<-6 ;F//G11111111%<-A;3,05qV@!60E+.3(([I#A?J#+4#'&G,"E - 0QrIK`„™ls´uVrMUP*QJ/7C67$54;)44þ!N8"l2K^)U&CJ$0/)+YLVK;XB:5;$!@AL)0& 2 †(7C7$?<S6+MDk{vQ?\5AJ%"-I^:%#)T;3# > +c!4-!(<'8B_=?%CG[*;.: A@AQX‰c_H;:[S'M2*"0d3B1T=,eVŒz +sE 5;&;#."G+7]Z9649[^B>6,L9?,&>><557$"-"2?441'(3:$8M%9JJAEP0(BR<:$M51; 2A6**A>/8!0. RJ%4/G2(55-S/4C20!A0 (2;$:>HBFD>XB/A,?)0!=8AJJ(G?vK55D&+[,j:Z&;6409_ Dè265#$)1.=S1+?(KK#P7H;-:=%; 3C=C"@PC.+'I%8XG0<6-:79='H#Dì +3I%M&A8823û4H*3 %H!,"1C655:7=B*81=0,6C5qx ,5#LN#?+'@J\&AQ1G#?==H&2PaN-ü")F;3$H7% %1<67+,! H))9%XM H?!W%-@&CN@?M 5/X8R9:<@3=+f–^~I:'>:'322221111000/;)1(-@+T''SNV)V0:84 *3=)SH7e'+D8& %32?>%8)9%'JT-=#9,>3S$531B8%H0/K9ô=)#A88> +WTQV29 &<*R>3&C56 õ8C5,543-ò,J>$7 -NQP4#%?J2'+û(55-=(>EC-20C%/6=-M!!MEAKK) S9+þ-.)2 #):8XS#J=+73. M"$?/)';/1 8J:L$0A,)þ>)7(+';%+-ñ 3 ü!";6<84:...//////////////00)K$, SM+A'"8J;Q1*E11111111C;! +OB2 6";EAD>.A>",D1-4)H7B$2 QV#);:EC;8<.AB0=u[›4lUl‚nk76=#)9( F&4T/E7C?-!O@?&K f0-!@8Y.;C5^>"6 H7/M':V_5<3+;JY<:L/4(1:B B&-93N3PNK4CP:4 $7FH#M9)4*/S N>+0V,A#%D:D%8'&V:+1 0#$cYv\ŸQ#3Nnaa)158) (1PnDcU,ò8d"/V.*"'L3 üO1U+3-$9==ƒ9bC-4)!!U?>935#"3<3/FFI%6+@+X)9IJ3&? 825G7p*J->EJi2,BR'#@:0ÿ8G;+7V*J^BH=G& L0W(B%RF!">N5.G5D9"9ùEB*;F2>-+,61 +.LVS+` 2C].[&ID-'16+-2+4!SIô%"!/,$/%<:M68R1B0\66'"!UPg2;2..<!:3Caa_/439*%.K%$LGU):AXJ2ID;1EO5 B#N.&+4'59C'6jI,?B1R`gjA./*R"2B>>GG((QH2?$-O->'4< +?\#V089N'2+-.'$#(#0#(B682:(0 +%E#$,I,MBú>&B7O!*;"cX/:N0$ UïF35=DIƒZ74A;î);!H3222211110000;+%/R(=I(#?8JZ#93!AM6.)'<-i62$*&h '&) +7))F(?DQL>7#/0842 .*LB /A4'9 /$JY+.2BZ*H; :%#%[Q (,25&7=I3R J 8!F,S(38 C0 HF6;7*Té-.=*T3G<R[6*F!;úB)ÿ?&1"MD&(7*-#-"(5)B/'T-,7L B1<<'/%)4-!Z39N&9)4B?2#0L<3(70+;L#ü<3L2%:%%!A!Q+ +B&1v6H2B0$# )+G0 07$.-Q4....//////////////0,>.AÿN<G@,2++711111111#þ99"'!,A!/*!&5- 6C9e149!>G=/871E0%D@%?FA2>N'&HI<#%N)Lz<z\‰g’]IdO#=.K/'/@<CG@TB=.*= 6'=D00:!9R#;1:D:P+DXwjT=-A25+@U139, 6L3LCLVQ*6EHB203#</:C$?"#4@8÷^7]2P==7=ID&>0-M-J=ò@C*C4=B<{t¾öm<5BMp@O;<3-+2Q?=;<Q_÷Ø‹0Ea?9S)CN C$,/K=N\€`\ED9 2:7%û6A$03F9<Y.,R=Z9\1#ZW8O-$9/27@N()=\SB(K.1+N#=9A(.$A%3:!<-=*/*/.#')8û1IP/`A1S1D&TF9(4=0.`"F$J731.&6CBX?238'+*!/ú$DA( ,66SYN#P&PF-- :H#; /&@:1'2XQ]5`:)#m)2-6T4L(68<9+,Ug1=H 36&-$ +E+@N + +GM(GDK+-7.*" O9B)&1A@)=>B )X:c½ªªt]ø>9/</2@L?@%\$B.E%-P!,I<D.;$V3(*03/î&3.*D-2>/>F%1)]##.6<7)&:6/"*-,/)/4$8"*M-S/8"F,I3L!P0D./)NBS*H{p;'5.8'YOI3322211110000>82GD?9=61EEU"-"G77 4V=<,)E7-,*"-."- Q ?N0"153];.^J !@,+0&1.<=ö>"=94*U#A-B)-)D+ 1 +#1/0<;>5>@J$)N92'õ+9=%"I E40:!"5-'56 +9ù<I)-'A+& ÷?DM8 120(B@,5#0%/Lç +16,'9/"A7%@!HRH)7G8@O*%+.X &=@ûF.ôôBé+)=535.0 9 ),8:9"!%.B!#=( ;<"U 1-j0$->...../////////////0-/)/&+1(2)4L'A611111111W.2,'R<+7'+.>Y)AP)23$B.3?/4,5@+<A1>XP=E1,P(G}O6H+><OL^(YZ2lBmRNA/26!5a. 1A02,)(06/<+586RN8=:N@(;H7-*-<m LMK,5G8355,:7WX=AP6/2DD0F/6<9.2')48#89(-OJ 4(S,51?!Q`!9*I4-NHc!:=0@[9U+E;M=L­*{®KHI-*SeL1!71.?'#">[Q7-T7;=C';V&-74@ -.>mgJG/-ÿ "+M:(5+T0 !5/8BA;K&:: -LJ=(<< DS44+3>B!6O<"B330P3!FC!3KB'(,&þ93?3=7O1B.T3+66Q2Q(+5%7S4<R7RO8#+Q 5;<8E\a7$G%7=V)*7+)!-C7,&4 C.52F2 ?U8&)L$&-LK6+M:)=_300 .E7K'C&'7M/+3J-ú>d"5,QF\M]H!a@7?0<?2+ D+WS%CS():M2!EA<FV†Ñ¼U]Q$> 7K?R-;E@*2N6!+&*-[G7YBK?%98-:7@ö:077/'R ö5Q^) ,#'C78 =!67#' 31'%CE&4.$4&0F1G-) 3<2,!WSKG+6>ö* 533322211110000/0$:.(5Y69:7Z$4I"S'<A'*' IFJA&0VA &:115 QIT;G'.!?R&Q1NB-÷(;*C"-/80-? -B?1$ V1H=*9 IT /2R%12L01D3HS&5Q,3(5>%<56%9?1"?, B*%\úF &0%(#0'DI=W,)H666M0//)Pç!W5M-<%2"h&'3üE!0=Bû$+G%")%+7%5Ý @41K--;>H303OF553 ?F77H6^=#ú-,6+'6A$!G.":E(C0:?##R,*....../////////////*?3e"!$  2.#(@ 2111111111->)B 41 ,(8/R7><W=GL&QB&.g)18&82?9F>247?k$P%(G4F,<L1rVHmM3b14êO<8"=:203QC<F0):*:33:0/@%*,;=0 KTD*+yj_lX%*D*Z5;s3_,M).)G.A?1'OW22C^ 2ø,3WG" O H9'; ? 6< 4;U&+4 )>WNF8:#0#=#K!,8<8vØè…LO>ABuA90'S!0(;Dt(I_-/6C$$:,U,%4BV4&NI(AD'#3 (0ôB E"G-B3%'=bN:3 35_A)0?!=  #M-)N@;(I-1ÿ/=7!E#B8Y9!9#>E9B/"J5AB+,T57R$eaKJEP+*7*=>T09"&DD'2+O;mJ*'2$%=-!++%%I>D,m)-*B;Oò20,^..@$DA.6",W-8Cý6G.):=>R27E "92*C=+:9;K'G,#I2P2%#7''6*?PL3K!ô%-";ZO+\#@>/ L&8RDG-/,6=&A +@;&m™s^O,73G$.S@.J>{7=K(1"09I3L%;C*FO)8/;(DB(259'(ÿ):U0)"3ÿ6*AF2.&#?PF0EV"&*'L!)'?=(*.6D2*23FN<4:=G693?V@*E,,*B->&133322211110000/21;&+6-%"FJRI4AGQ1A4<&.3@ù5H#bO:? 1M@Iø7F&*  *JTJ3H <>DM)(.>2+3@. (55!K/120$  #"=,7?9"MT(9@)2M6-:-=\81/=04>  + #! ,6'.A>0>&&>J3 ,4N&$7?=#&1;/@D9" 12=ADhJ +;.%.B'/KF^J16E GF)=./-I+J.J2 2@ 6R.2J9>" 1< H=6&G2:JE+( +Y0Cs53+'O,%.......////////////0= 9&/7T "6!7 0111111113%47%0;))I/7dúG><7F"\+,L "<22(7L/ó =ER604,%78JSýS%+3(>AP:S7AU,x5,?^9;520J:=/02*qüU41')04./6.Z S:TJ=4K ,YSj@W)V@(VgODEDUQR(#&!43"'M&'J';01<6-1@@+"F1!L)J=A&=Q06A: J<3 +$3U 4AZ ý+/!'Ed8Q3@eG,B0U/]2A*B%<923;J=;$, -02-8H4V9K!5Z<(K-<1&+48Y.þ@ ,û/20;51<820;JE:. j<+8!N#&=N?  !6 *3?-P92'%..PH@-10WN,   "/!S/$a.^4A%FI#12<%/7S?)=9-4VMO3HF/]I>0*,7WC/"%7I31%3%#3Ux,03ù=,E4,F66N.(99'2&6OT& *LD:4(V$%&9!0?=5f!26=6BA,A-*#D$I/=F L:/@6C4QD;(-DOHA/'92?3<!Hl-2 "6VJ+(,3(ÿ%ûFE7?€{ffA,F80:@D;2C,,B1I$3M7[8%44?*555=RO<,<@9 DA0/9'=<i?J,-1;*D2/." +FX"H. +I,>+"RA*/F*[:S94,(*,->0B33322221110000/1+36;5H6H7<'C0*;N1L+>41$fT);64p]"ý:I6$!.-973&5"G*HG* 1>+A,9*#>2%/OB:937-;6)<)9]:AB2(J<*BB! F=/;0#5G9JB7F=8,;910:-(%-C2!2+%%!0%5H#@1?AVC" $"0#4:TMO-8U:I.C+6?#X6:,/N;{;;#1=#40DWD35 7*E10B P@/&2>V=8)'<?)AJ22*%4*2=>"!**!& &%........///////////:3&+.1CABFH:! 9S)111111115?/3ò?@H$ I1 _$+03<FYFsE)!!'96=":0B*+FF4d,=P/S9<"NtWEGu*C]YNHI.$'/%"D fSVG41ý#7*9+ =>""-B,NK*&46+,B2,!K;**4J3.(b]bbBL7E3234%.N62!nD?,,*.'5U?#@5 þ+B*X G"0#0: ..B36E/?R5_$C/;#KI<:BG*6?B($45&1,M;UaTYw8'0!/4÷!@<<.:JQKFR=/&C16ÿ7<%<4K!)D0VC21"+51CA%A-K8%)/P&YN7@=8<!HB*/5*%^'.>H0]FAB&B:'G*%3,4+h#7./<^Gö76(FCV3[,L@D"B(?ADu+=O/:8( 1 /+ D .B!=55:.(7>RF;O>C+0 'C:1'!03/CH5 59%1/50 R"-<#"d9&&).OLAX23+'X=&*N@>H&!!2/?S2<3<JTE/7MP?  +@30//,0=uI8)4>05R!9DGzU8A-P?>9=4=6.)7>I?$T+'!2%2'#)EH1&(1*0dO3P$( +L"]S>,?;2.GCG6& O030U(N<4'F"M8-/@ïB>Q( +;7FI*M1;8*6 0 >=3)<%+333322221110000//3%B-O 6 &A?/94!'=R,3+%P;1 E+U,LC3E&C, 7D.53"4c"QI$#'N/G+,B-AY5"M=5@F9GC4!ý672/>3 + JE%05:-$B%K?)O",EJ8/4/>3=#"I0D16'-, F9X]6(3 ,"$V5>1:%<+J+@5D +I5(a/!'A/N$E,+Z00U<3K=./9L*E/3?.@-)%()%+3'/!>64'4T<T=>: :44$.+ä5&*N462;........///////////82*B8@%".P'>@;2 -511111111+`=H&0-7D%4&&G-0:,!07\-6(2.89F",./=GK?&R836Z";-K\\?2>M>L);.&($;O'8.!FH656>6, P<DD#9.!:6K**2+@5(..-&B1(fJLKM)I7<9ibb?!3:"D9 L88.G:QJ,#''@3GB.5))0. [H5YL0ÿ5$&4+>1&3%Q1 -A')MZ==46&A +0&.UK@;.NC8A<1J(> +YCE!ù:4.0D2 >"'7MD7,6+@$@6F917F&>.Y4C99/*4/=E=+>)0( 5F@2+:DI-:5I(D$'3(8E?46,9%C(R<?*J+0>,@8@6[.*A0$AP0C&X)S-'FS/WDn€I Q,B\"L%&+7#2/@,.2.B)=;;TG?!9E053WC2)%"?'D:(  ï=%51;#9!:$B6,&)s_91O!$75?j->;0@= +@Ae,4P39MS4+T684W1(@,b`)1(,@[+<=8B& <$>5 UK@6WBJûAO:EC5H(þ2I&>62TH,-þ6485# 70,O6E9#W'@%2J:'#+1G +&%&Añ+)7+-#1',CF$3ü."-L>T7* 2<!75< :B$b#/"%+6,- +(äR5",57D +&333322221110000///$%ü?@-K6-/2->>6E)J"/ABM)2C2Tü"92/*G+-* 7A&&.H*)D)Q9Z3/7&G,$-Pa +Q+H@2A)% A08$0,DT-7=5ÿ-@/)Y?2 +9G(2BC%6;"DC&,K "-U3?0,$L=@ÿ>(?:5#<!H/3C?<(#K&&%J-:,,0î<çOI!5C# +8&/M%(1(4;/(75 1C0@5,/+'-+;^2$/=:95)(L7DBG 91 )4AX6?J (4*7.........//////////D,S>)'A* ÿ@15@F.C!:11111111(M6K>9%.,%J* 5043QT4?m62?$@+(@D/;LO?<M4>+:K$&>_<B=WF6#1/:_,!0JVeQF5*]/3O02FGKcRGCF2D7',E@/þ# ;7 +%7A ?'27 ,Yi 1JA:Gs.D3 .6/$BM)A8@[ +B) :=3GIFFY$F%=J(f1$#ùNB-i\5!); +; 3:BeH2(>@#  %1S;1938O41M+@4'1K<",02A>J(M2?ü$6'1GW55;/)> ;ÿBh'.,*(T 3=)A +OT1"?O:F"Q91A8D0S/-T;P.->:P(L46<:7?4.e+38]$m*+K,=2#3C +4)0!='I\Km65(TIK:H &*kkiF{!-4FT30$cT^&M7E10E*8?)PV/(R D27]%-1c$.Er<6#/$A;*>'Ac>577J/M2X+K5I_,4?7)91 #14q2?1'=R#2 XJ*-%,'0"M7 #B"8,IN@!5*$;E/* T-3D4A.D#6a?9D</,#A/8-/!+.)7,3,# <44 &0RL("D3359+PM3A7=,(*4BH4"3A0$L8(W#;"77NG7:(1<þ-0K';$!=' 3!(2CE4,&@181KA-(2D&@M/<;333322221110000//F.1 C@,8&(71( &HC,3822-Q%&"*Mø$,("B" FA(5F(:('*GE*L/$";;60U3C3 Q,$;INK5n$G1I $$*-+KZD1R2:EH>F#!(2,+:@:4%1IBH* +I*SG@)T>85oÿB=GM72T  )/27NE(,/&* 6CCUT/083)ý<1F1U?$'9=&H((RG3û'$&##/;2-#!!. 9B/A4($D-C d;+9 !4E.;2+qô %+-2>I.,#U50& 6+2(3<"1:........../////////3"#64'1*<'u#1J41AR>11111111;C%+/=%=B@-8D9A7S@9Hth@&(H?EHA 2/d3'(F-'&.IX**:LdH<7<2?O/ )C$44+=[1( +7B0<L=@42:\#3+?+B73%K2-8C=Q29-c@W;O>C2[)E !U8P5 5-ZFTJFH35#I+A67/.4?1GnP"<76û-JO63"9Pþ$@NXT + 2+-C HG]N4/+S)3*f3F3C#. 5 CD)HE'ú,8=\*2<T+19#)./6(ü:K D08*!F683('! >OT.198)28%+7:M]47$1?4=I=ILC&M>$)E×8>- 329";*/ 1Y+1?ü-G6_^.O =6#9<+#,8&475`!Q!r7``V"?$9*.'B32/N.O*GY31@?6 Z.#(=NUJ2R84C4F&#6?C)B1^F-8!dO!)>;74&*X569$4G>#(29 ;?1I94,0W6)6A&).\' +L%/$;*:ý=?O#"K/-9,%Q59!UjOB8B&8<M;J"X2.437+B'(/";6,C/9*33\=)D-#*9688ÿ' ?7.#'<)D&"8?*E7)0:P!1-:I#>CA'&20:)LD$6W-@.1=9>60.1!1#(95:%' :0@,:O38WP@%333322221111000//003 ==FkM*;2>2'.+9/1!17"1-ý>+>L8G"-43L:5<:C!'" \3&Q='2+9>>ô9=(,S9:M?#(F>' 8((0$ (- +2ME,S!6A-(1*;G3V$"A6*JI<ÿ(,0<-@I4!F4F?# I5,ô3&$B!&C) !DDY,5."5/-C3÷.>3G+"=75 1+/$!E50PN0 *)2ôA8F=@.<+UAO81:) +A6AB-B-M; P#6F% +2>)%!43&0[E%8@(!-U&...........////////GC <(/OH"g,8E7B!.311111111T!#IG>*?0"G>6# !9<Bj[gC]I*& )%1L?9H=# +F7G!A7V3 :I>F=5&;/&#" -360'-3'*1P?A"A4%&H5M8ù7N+,&V.-78F)56;'R4P4A2@6./5O;%^99-9u7$%*ICT?+!5 @#!$L#&I=- > .-5"6/XJM 4"$:J';;'." -XH5HB</PD>P>' 8* =OK2B7&,-^dNGH42@7P;$7 +8:5'G-==6A+ IE"B428:9CB*N.&:6CI!)T)0@06<2@01D,T>.N-T=#*>5LU2"#)(!IR?:7-&÷7$<6 +")>#,@V-%M0D2 89K<1?F%'P$%:8D),D;4$DS+?65M% +0C+uQ}€H/w2%=C U$/84 +8N1U8]?GI78 B76E* #1J>c4EK;C=E"TJM"52%^?<=@77K>C9O!I'395 {49tH2&[!7$"2IB.2# $A:7Cû*5PWO9;4S:5,2$&?*+U9,?9C'BU\4< + 0?6+LM*7*E(-(V;*@,118B0?6"/#R#;òD08@#P@H#?MA5B>6C3;EI1J%NE=-HDL RKMQ%&M=65&;!4N<2.>5;ü>gm93/(-8433322221111000//*#b 8V:*4/N=4AR68 &+L;\9 ,HS'25ù8*E4;*K-+O+K0A:>8 =HI#CH(*(O; /?O)<,0 ,5 ?)*='5*0!0X 6';H; G7K42&B,1,*)/%F=(êEL-0; *N6>E-K((L'$U45* $&)5/ô+%LXú$J&UD >(!G"H75.H(?(J:'A(NS;40++?B35^72$;/1:>475:4&+#=<.2 +C6:k5D9:S4!D$/B-. 4-0& =,9J............///////P,KkW?47.ÿEnE1+#%]11111111B"5A=0*H+0C'HF9/"5;=j.2."9A1<Z'*:b@)+-(G*f5F(GJ350; AH"+T0!L<2*e> 86+Oc7W05.&T=daˆ^<UdúE):RJ6.TRC)9 7*F,+G+BhK .40%ÿ.=%7.B5m%76/=BEE2Z8)<(1 D;Q3%C8 Tf C5''K#-:*"#&: +KC,3!;3/D@6;&/23M@U357%>6C<<,+I]C/"#7_B(.O.5@>1(3!0 %0A4.@J021K$D6+ U(6/&&-/;0)";(6-5DK;B>4$/D4;#R L86F#((A:.L$2!B_N5U,Fb\JW-E@ ,L-"$9S?TL$+4&M+e&H>V4@#DO;+3!'%9L?##)%n;/:S+T_@?ø')h¨¯¦„KJ"60<8<L.)5/$.'=53E?+=D4V! üR3S*.“>B>T(5<[;'%S@*1O10&4(3:>,4517;"@)'KG) '>_GB*GF,9%M/5T$+6=*R(-ECLnI;C' 4;'6R1()1,&-1-%3WqAB'%5Gg#÷KDC5,76>3Y$71B1NCH0B< +01<].%.C%X4?I  ACTR,7?9L!* hAN(87P2#"V;40eF%R=-:&##=/wA98K-4433322221111000///+?61?G)BG?AR@ ,=)4=P4%1ñB0,1(;00),1)M <9,452;2Y&<@EnJ=9.E'hU$?_5)D%XL*7 <ND4:3D**3, +'! ;,5)>19 +'I>H AR&!A*0B@@&TDC,2;='8U3883+B1'/$, 4-?+*&!&> N+6+/-þB:M('@@(;24 5 ; )ED9/"-  >=S [ý*N<142CF%+ AL5.9*@NB(û(ZWSI</"+&#*1*-/90*2'=*%G2,5(BO.............//////=J`‡‘¡WI,N88Shz0'+*(UP11111111!97.%/$&7 -G?8!I&(+4+]8/!.AýP "&'?*#D5?;Aý% !DN+720:A3B-K:$-J$):94'IT2Oxan4)ü O7>?ED0J>b768%@?K +<>Hi_51JV Tô5041G,AV+S/1"P/B0*H$0$! /Y#4I/HZ#M[2)K>%A;38R7,,;#P#<["*W+9%2;'3,M2ú&W42"70/<?1[/<#!5$1F4<I#Y685; =`4)ùI<#7-M;E;I+-ýE#+:(FH%<@&< :ý*8&G7<*&' ?H  2NWDn)A+8G@>#-A'A1:KW")@((8CIFL3JT.FF9^GNTFY)?-$#-)Q5L5,h79X,U;14!,$(þD/Lü($!K3-.HR·Ù»}T4SC.0*);%1B=/-S8)T2"23B4+1"<++A;=Inȸl/. +=8-2Ú.Z<"L)"<&d0=3:c?)$Yõ*>27:>M6HnJN.!S*AR75(*!.4%97/2I,C$>hRCV;N 3$9=!*:)"?"C?ZF+CG4+-;c4L38#,"*.+4 47867%0"C!F#TG-0.W 7/ 7')+%#8(1.,$H1A'N":EB00D! '8',Q5LU/;#T%">3]7I2'#,44333222211110000//(b<'B9W%=("B'65I/J81A;)?97-+JG,N7,#?D7G8ï7"T;49((E* =4*!"6Q  &+E@EaZ@F$%#'0)*3F'f16<,I2.&@8-:#.-?X.P!@ÿ+(TA.)C.0 ,ò;7+%R>V*+8<DAø9-3JF"G?T62A( &F+>-0I61L(':1D?'!8!!C53/-n&þT'/#^/3 %?"?$ê- +-O*E(!)(,8.C -$*>86-3S 3FC3:%5H5%ú*+1\0,5& +L)R!1!G#G,I6............../////HNHkrI-i' T50c6û4@&111111119#.";*;#<A8ýB4'+*% >G/B)@-$)RT = +*$G#=%$2<'J3<2<^(V5!LD)F>4CW\7(:;_-HbC68R&6&)TFHJKC)K=?)9G,IV*Q,=H02AJ$C>6R\&L) "E@ 7K', 8#)M, +FOI-' &7# B8,^3WRIB#. :$//I"ESV-9.M//+R+QN*2$;+V@M7BF2CJ!!D4*'K3(:>&%@$3E<PH8; +0/-)[C`7U8*U4.,C(>+D/P% +=-6GL*,!6B#8"+)B:?/* 6RY93;44p5ÿ=''%XJB"PAE#8AT4+ <!3 -: +!#K+eA6Y"?@/1?)c.(O(8H‰ohD;-2+E(i$4.#1""K- 9F> J*ƒ®ÀžO0J577H4FU @:+6)7d$C,>û:ED<<<'V (~vSZt3VF7-''#3 &5M696E<MB#-P.D%3).7**0$4"=9 30þ0:):YKOA/9aBþ$!+))CZ)&5#(#2$* >&)?:*J7%/8L[Q' 7?-5=['(F5,:#0E$W +*ø%SCL@D68N+#;84'1$P,'#%_4D5'F/63?#:$'B,#,ACH'7*#1:;B/9?/'%3=*@ S%44333322211110000//)<(I + +$J&9>G0_M"/E?+ 5*>&::F?85)ø%*037g+-"+[QP+GD Q5*='%AFL(7"4I)/2.-+"?78 305+bMI!0774Q,7-ò%/D?%-7$?G,/<+7>>5 + F3'TN45BM"I!->-? A; 2?L/;:['+( @=#22)<<,ÿþ2E?Z(.1B%/5Y +@&.-:1/L5#3J +9M0/ 8KF0CI2 MRú8Y3('"*K-Q&'2'+!I'#CS) !5INBJD,-..............////@ 47`U`+=W4?K=.*HSM$111111115B)9>c#:K33+"(E5 N>I %'-HS+CI'/8\4*A&.4U4@/:$3B;S?8 .-0*&Ki:G0&78"9+##<.5#:G0.26B]0"1D :;.?h>&UE))J.::RI55'IF)3.81,%HJ>1%;A(!V[B*)L4'RI@Q>N7/-*aI\G7N1/8V4N?j-G][?:bR=>JXG=<'/4KF>7"è*S>=3#&7úAD)6$!/J?=I:8BR@ :DI)= LI[9]0T-57:9&]1;&/ú ;Tÿ)HEND1(:"M(ôB,"O23 +_C%D7*".L:4>kCt(483bH+U<A?1J)>")<1B711BHX}Q2V$PC-SE)2O4 iz†NGJ$2D&@8").2N+MM8$L#N1&-NdX^unW*-UW +!JI>%"/''0P .G8(')0DC>"O"QþAb0U8D),OQ#63/*I)Y+15m* )=K4(:407-EA5$=>)2E+.DE+'<L,.4=9;37<;J;7&5R;9$Sû4;Z'*7V-)P'füF(@ôBP*) #*DYMG4(E/(B*G )D/?(-&)3þI,NjXL^\X3D8N/C;UB*7?\'ø/092Q\4$.'0538.9! xL/!;!%@>$.0]R13:)Z(þ=;44333322211110000//'.*)3*$L*\a/bXF,Q<#C=10TB3&?;61*Q!ÿ2..iB1"#:G+÷%%A? >%4I=O2<5T&'';( ;0%)A3$; H4'?\98 9&C6#$K"9<0+AGw2 93L50®xrC*3C:_DSA+L2ý!#59)) 8%?&B"N.C1;@3`*&I<773 (0(58d)*5=%94(3F8C9HK.2I2+3(4LS13(>#)ACCø1I!L3:F&=:=52;=,&DB#>O--.............////)$9=$(F>NH:BRg1 E#&[11111111F5/9U;>4H#ýH()H'=#.*&:1'<6=J6!)7GBé-"83<<CK,EFE;P28M+ &ú&.;B($I(25m$% 40B<=4!89#ggN74?. /HE6A5$<1:>+3):JD.S;#'X25./+1*R0G>$4FP5(=1<ÿ-BW9F60;_Kg+6S1f:!5>4L0BY>$S_F6I + %2&3C6 *ME:&,@V D;*#)J!?#C-@D36<+>!&#4D,>L, 'A,QS:E>9;(*`.BA<8#@:62,*E/!-66/;86  $//:[69->J&:; KF6>FFP8<,g,?65/-;;VIF1'>076.:''-C40<)K81=DW-.TV?nUGU 7XB%'/4uO%>VBy)@<#0+"þr!7KRNQ%g;(0D%Z,E*>2$2)+&6)*A/X.KA$"5$%(B<OT9 -'8&Y:';/å3@,/4*@;.531D9"B@R*0**QZT@>P59,)G<ÿCS0ZHJ6- 6>:#3H )2/T"56+þ 4[ü/%T )2: 674'98)=?aP'<E 4?I,<;mÊÔö ¹¿»f_=#+% I`%,OH÷6D4451(:'&$W#:7(H(GQ(*8+()UV;&2!*44333322211110000//!''#<&*>3%H/Kgkc&DK+=16,= [!%CA@"2312 0;#3C-E;4Y+A!O#,1B7-E9).#6ÿ5,û'G#38'G >D ý6U47$";F-/IA4OKC08/,$"2E%IN( 6 H93E8%*AlZ91N<ÿ1;!%S(+>8*/2,0@=<'@9(7.O0IBF?7#&. -L[LT +-:ÿA#5D(LX!ý+/$@=B)$11M<]0 "<"=ò)I1*')C*B!17@!9 7,<<34$I9.=G!þ+9---.............///Cþ20( +G.?7(KUý>;'>/U7111111113 ;FE 1&QF*<F.J.-3+22$/2-#8%KBR,?ö3=-::,/2(/*H;Bò)2Y&D,=)):+L1>(Q*ÿ)/ $5I>6I iqAM&'>26?3!39&%6!A,;1[B$#u*,-+?, +U#"A)2/:'r0./-<7+KU3KUD\NA'a-&K+O8;5;-<D.J<bJú-7(;- 6!<Q.M?/7O!?'!7C:5$4++2?31.[HN$HBL9S:&%V:6:MmRIMC?CKR?,A%P--AA8 ;H)F Q+ $;&09.45@&Q&/!C09815;-023QZ2?$T47)28.2õ--6@F2,(g<&1<:R^F34"G6dL*:?M<K! +,1<O'63\*Vcu?*QV5.B.ÿ09)l!7S?31--%ü)<e4 [J 0 &*"Q:6..)MDMt53//Od2 JaKB2=G'(64&>+@(&'(5:)0I;64@*'P6%BN>I2Y*VQRBLIG5H;I4* P -B"=0:5>! -(?;7."AA,3E]"TG.*3?":0:.<#)#:'=/A +4ô!,2:"@k{'¥?f]5ÁrUeT;'-8<$2/17;;DB/?6@<?@ +F) 5-ARE0S<0N,ì1$44333322221110000//@D#-H/:H-)6a_btiL1.CX/DBV7  7,&aN/&#25,:6E7' >'.:7=1-! 2,>&5;>7"-"::-8//=;+6ÿ-ôD!=8!9147& Q<?!-(D154!/(<>GS 8 584=> G8! 4D; 0=- "NC, .:6;#-N8(;7"$G1.,L45F>6/1 B D+fY913DG.+JO.(,)'/(-'$.97ü8%.%P!GP)-B9/,/*.?% *ñ/63,/*>@@IQ>"!'LE4$1----.............//E/D' & LI2&111111111>48<\1(S0'.( "7-+0+'@${H3;:!(40"L22=.?#>9-NR/$- 08d*@140.<@D EA.R@.IJ%øU!ë‡O4OY#&_9>= * 8;<2*R'((<?,'(7,J1H9;)30,#L6I)683%G)6<10"'B49**$G"<%AJB;CWJDL2H>(6"D6/"OZ:.u=GJ, 7:*7:' .8.%#13 N78PI]!5#?>>3V117E 8/-Q%W))'1@6 7.(MDZ+7E!ø[0N±"T4)&+'n'"QY ;ø=-KJ345=:IdHM-'K5>!"J:-92-#.#%Pù ++1:a98OEH58/Q%F98"+3l/;/-5.,Q8#;5~Œ ?R2=9$4(.^H93K1?,4/V24d27.?+)!%.<'D+&FWH,9"187+5*A"2JOR'ý7W&:B%*A((>"%:'5ÿ33>4"' 7K82*,doM:*Q5118-7A5,/3@71DB4F%N7/6@N[L&LI'F7D=C*+=$,3/3I&YD $$2!*'70-<'U"&!+O<B k,ò:3)8&O\‘Z’˶“¯¬Ž£?Y.@+!( Y=%# D3á 9**K//::819ú?#,?-<&".F@!A;;*3F8F2544333322221110000//:_$3+F&8GCa0JFu-!"'$@E7'+pS: 5?P$ ?:46AL115-AHFOY%&% +=.,C<I@4+;:&(& I$Q;9Gc7KA)!Y**@'&39$TB]( D>""(,%:C#&~275B:?@+=W$.3"MW6l24/02& R"@3*9R@2'$2,=!5'-B2=I-)!::9/-%H*Y$?KI'27<$F"%A<-5+ R,=F)&!'!</F@+/#"EJQ5@ü#F/8b;)" &&0L.,>C3+5#L5-----............./0 $ +C:&B$T3",J//)A11111111(5:$è;?)ü$P3P378D$O;W0.?L_L)D+)C/2(Pd,R"=5""-H,71562L<)A:;I$673F]@*L/E  M +-'GC-Jû@1R 6F'L.JB9<"#1JO=P6? c.6H84:?%(#4-;977#;'DD8(//=4kB[O1!/0A:%0cƒGN?2!Z;2CE0Z,}+T8%>>F.ð/'-G:;[ø"55M)^'#!;F/\D&P.#9Q@18Q'" %7H!XD,3, 9N+.!%@*&38d=J"H-J72Ú8)=)E EYD<H,!4%$K-,<(-ý6%$A-?@=. 7$0/ L63!35=&>2#$''=K +/BJE:-Ka>3.$".'7%(L74)+d<ZN,#‘jkeG(??5VW0 (2G5! /(M +$"6B*H:>B?E522-@9G+R/E5%3 1W;42GEI2H72 /,8@6865;G8M"( ,Z&4`G["g;O/2!\[:K93< 2BANFC*%,?3 $ 60">47$C1&?"@ :&<6(=7";64Q>83&">$/FA>:&!(&  NOwönî VÞ| mG;>+-#AKb8BL$/6/= +A(497O(18Q$"U%5#K-'4P=/5>Dx21044333322221110000//QVDM9 793&Fûq<$1>0?9N#),#A/8.@398V%-5&A*>=8N*>c[jX9@+,D KB-5G.+96A8=9"* 5*nE&7Aù75ö)*H!-/:.,<@. $Jú-33#B-5#83$B))1D +.4)&'605 #,<&&11 GEYU1 &4B ):E";!>#5@a!&V>d +$32:+:3-!'/U5<A0?6*I!(6>+0.D!19, 83!=A!M0F8-&%$KI#0D$(:>&J.HSE.4-----..............N @(E><.& $ 35, B11111111lùJ(F; @-75AD%3<B(R:-!3%'G,K$<OKH/QF?</' /<.3@-;#58"1I-;+A^1KMP4!G&8;D=5,8G>5!2Q/, 4 +&UH60$/5Y2!&7#<)"/ *-&LB0lc+7c%204#8=+,1,'!#N B )ÿ#.$6N/E>a#*9$S=85)SUvbo=PZ)P*48170>(5$j2[ø?6 "<>/G70*9/8÷^>@E1I, >[J[F;"1QD A >, -;?Q,/#?91@2;ù'U,!J17<'>:)20</%"9+;08 /4+!N=+!S-+7b1T*.:/ACB5(1?)1<D (!!&%<< <6+148`9"/&V+4D&>)O$,1n¶©e90#-340,"C) 6< <I? +UF%:5MQ-: 9$"K+D(5- C(,7K:G8A>I52(>.>2ç% %<$<;Bc%?4/-N2W'B)D`2A2$æ/+"@$+[6-:E :7$A)ø4B2D5!"<GB-$" $^$@].)TO96DG5>9+</5=$I9%(==La$(:%[ +*3"2 .3'1\Ÿ$½éŸu­®Êj24XC0I$$+F2I1 B='!, /'5KVG0"690BMKc@(>.#F:)+526(,44333322221110000//0+) .CB# >'R-9%N-5--eD->C.6@^:+;IA( *<.,G%+gB1)SMˆqM3A2.F$(6 +1;!!B ,5>AD/(P2FC1H%=+2-EJ:)D(9A*)%/' I*&8Y"+Q[5>531I7÷D/(O<!(18&7ù QNOoD()81C=#A/K+5RB%-;44?F6B:ø +^/6X62B4!AC2<2.RD%-(C1AH8]5"W12>!78N=@=12(%0IG>6O* +ÿ<H!A<L÷------.............&;EcG:"8/H5$2,+11111111.g:28LJ3==?A!-*;6=ZGJA55c61-V=#,"&+1"B2/,%5G)3;2+^+5),(3:**- '6 %4 /?M3%;üV@,F#)9&#@OV=%352HL7M2;C$.3H3+/z?!'8&HHAB4*-]1AEE)N:3+ 9'HG7#  +IC69EE@41 "?] '4+6k$Qu¼ÿþ¥L3#4+%&IQ(Q/0d#X8E./5 =6>A@"EN\=+./1#-! : 9O'!3$b(G>K507D:45";W*J/C-:"F7M 118.LI%"G.=#"H8';4I#; 4/="5>XV, 2FJB0Z!4?25--MNR";=9$Y*L*72 j,B1= +=7+%Q4>) +: ;@46-:NS 8B/8* .ÿ#)40$-"!a`H5H97;521=E;A=P +!2 M&H C.&=.); /AA&275"Oc;0N0`J2-2H(0=?B65.,1ó=5H(9%1:7X92RM?CC#9$?N>/QBBS2B>J,O-L8/=  6/.?)-8#,.%ý08@?*H F'0&-! . 5$R$BV43"m3CX4_<D*C*RØ/ +k,ÃzKC06+?-A." Dõ>'E1JGU%HE&(Y4IS=.82A/&3()& 3H44333322221111000//&D?+H!>T/&b1 5&$L2.-7H6:6/1.C+;>0<7#E;4M%'{5B<u——q8aHEL"S#;D.G$$1%A*I)?(#!227A<,)CH8)BGj1<+2m.7.&E5#2 5F',2,8Q6B8'+1*87=*)+J*4B7iC75 7 03(5-51Q1'?%)T%&0O7Z/$&>O+ Q# '6??+")7?(þV:4+:# G "&@!&,3.DCJQ ùøB.!7 f  ":Z&!-+;=2 0LK-------............0;KI#;)#$A73' +'.?11111111Ha.7*O%4S8DBKG4:?A03.5&79,>?&K@55' +(A0?e6 5)%8HUN5BH2\3&;6?.B$5=458 $$;5>'J-+XK/;R$,$>'B31 2K&J* +\E[4Q"(:4(R@3X$ éJEk(G'00Pi5]91WOO)>24R<ZQ6J)(/6 *4,?3 9:=+=<.#B6A*¦‰-p¿vN#Q&?T#N-Y.D&34C07L78&F'F&TVU"/813C,)6"5'1" P3^*$$3%3$AV)1+O4'()3]'!W)<%20J!cM>7.CW& .<0M%!4)8*!4@ZAN#4EGY@8=6<M8yRag74";G<"8/`&0B5).D<F ?<P3'A'$<5OPNB+:  *&:3=$ &K;G<"8:;$O_:oLM?C+#&2MZ6%8åJA2;ÿ-@/,00T+&596 6;5A4H ?'&72,)M(8 !1)F-AUJ^(',C-0\4BA<"?)* #::'!?HU. O,;,*&G(& )\159BO6!!ë81U((2A@?3>Z@Y8B"D,9:%%1:J?-ý;IN-$8>85G"=\‡fwU[1S?P +I $% =T1)+, #8 &*8G=(T,"XB+)12%<,!@5:C*(F35r41m'844433322221111000//!)K 41@S5U!1L)!'9"4&!I6B'5N9,9/1 +A/1C3 ./QauPa406;50<(I/3*6ÿA56 1+L 1-2 1&A+>4@Fù(@*7<H')"!I, >=&"d$ Bû-57=*A5(@8@',3(#û!<)!!4)\*9I!*"E0G=:4+"3'Q3<F694E +)%6-#E-Q'.+>-QRG1!#E.MTJ-47-0D71.?4O1B)N=WP. FN2DL3Cü)>>8-0:A&?1B$'"19,6H--------...........+//'eC8FÚAY=4:11111111P+@W05C>I86/07 +RCC%8HOT;7/K,0"7=<@VO92/D@T$I:3K1>70&IM;'445 ?2!P7#D09&91-(359+*8I+?þ :60*D$!>1,'.N8/S_H&' -<4%<5."C?/*2dASY26PNF#/08GC?4;F)<&=,/3M;7ø==/'=H +LH9G -V@-K`±Ø¶²KW9186<,&$;.EE$C64)!8K3N/o+:<H9)3$+M$+AA;['/338<*>/3T+/)FûWF?/HI#8[]5))1B"c'f&KLO,/D$8F]D_%G>3!1++:OR$AGNH)/ *3!3.2S9I#$A.,*,@C'A]::A;." " 5-*9S- (20&<4*L*o2$ <&;(Z ! +FBR5<7)0LF3:1RSO%5"(*DENXh@(/,4##'U&>AZFJ':/"MM1J!8&+@D '?3 L/c4/XH(<17M1%#T-9&T-(E7`*6H))3!;HJ''PIND$_X"P%Fq2@5#).,H*\$ChBü#9 +3"N!40.D#3D:#6f> =]!76,E,J;7D09L94,=6(-<"-=QQdH2)/@ =L:=BO)JWFc'T=(+0-"2(é*?K31M0í!>RM44433322221111000//-%<.&35=H;<FA<W!"G). *&(=.*E,;<<28PA45[M).?"jz„U)A0%&L+? @E$&SW..@#/BDB2"HL.6F-4(//4)6(E6S*-$'60$8*&-%L4N\[')%%NTOQ>;$8FD41/?6?EBS)+-P 03M;/ -!S;3'H(#-+%/H%!I0?(H, 0L„@)$> +-:D*39?)6?6"AFL!M('G,4<710F"3^4@2+ $:!Y&ü+P2(&/?<%JD=9#B*+ ,Ff---------..........B).2!!O%*"1 +8V%)A11111111I!I9@\/22 ?å-GN$15$>*+ . 1)J$$@&E;5G=AA9C(1Od4A#53D,U.5(G9G8:+'3)R%05&B"+/3(+6E3)/jbW>B ;/E8UN0+8'27 G9'3--[;5@)2^$F<&8=C$3-[B8KJ[H:wS+8#H*3(.ü$,2-C<PB4^^i[T90"'L260:7D?Lc)!A:H'6!-Nÿ3?FRC‰~ZHS*BE05&<4 <& )V5+$F<5CA<%1 ?. D)F"LN^÷%>Y`(3K3*:)%U=91ü.=@SE4I,.I1E  +AM*4'*NB~>E;I'1!2R-E\<> @$O0,<@$'$/C-#G2B%13&"8GE(Q0G9"#I-9bO#;=:5O'+>6`*J;'% +óA;. 7-X$R&I?#  (*.EI&=%760!=c Z2 +D>$)%E1T'$%B4<(&Pn8>$O5M&E*I!12?;E/"G+>%@-[7#<L!/IJ-5&&92;#815:</L)/QXHw<&74BM4&-Q*4I$DAD'!:& 07PQ?@\J5)74d63+/H#3"B(B2=D1 ÷;&[$K<,;S1"=?+&A:V!'& ?J%Tbj444333222211110000/.AB 5G@ /+)9F0):J*:V%&)D232)%$.02;(>>4%-6  +%J<+A,/ôE,B<(),)0 )1> +?.'J8V-%79T08*U/0,'K9JF=?%=%$  J9C*?21Y03$>B2,6B#% +-'H!=<=6"> +,<EK*9C68)U57N-4?S=+?+V,*&$-I%*C0.9<!%[R?!8)%'>db,-9)']m#07Q1E(*&B]0%K!*U?F`744íR$KJ7,6.*'@B"8>1N>7$----------.........G5M&($NANK$95Rö:K<$K111111115 $^(@F&'G4-#d6þT8,!5N7>IK-IQC"8$I7R0 Y +$6"+<Q7<@3A1./?E:7 ;1)6:DE!=-4'<9;CI*375.$,;3SˆæœbB-0C;B8F[€cF/GS73)F:M8:MB6S5GM$*A9C `1†M5.0ì,.NK6e7"-( KB'?L5N(A22#+6>"9CFNF=.P)//_;1(-B/'  +7*98%*A&4KB6+-.5M2D.>0F!@'&; 2@ +)=<-9=A2-.)û0XA/* 4(YF06FIOUõ4 /"T9Q-.#I3/]"A=/+7`0:60*6LR@;@'-.1*J  +E(>;N2, OA&f%@O)K.l,6)-#>68>:F6?,<X[N5 64&ë1T=(@)3/"$'Z8-øF.&6!$-  9.1CIA,3)3HT10DW/23E? G2(&3 5)?EûY:,60)K9(%"6F f1..A93E+J3D4H40*2F,L'(4 M< 8Iþ%6,L5#1AL@ S-S5?KX:QA=Gc(*AV@1#<6?Q)$`!0*5fB%4$2#0H'E_934%$:5J>*IB)#(gHI+1*3J ))4(G!!>5ü;?134ú,0=_:H<Qh31,4X4444333322211110000//$*ý7'^6 @8F(6-%@0:9>! 9> ;8ù3=4M+!4$$h<88?!BA"2;H17<;9ÿ.AC?7A ;a:@N9)K341,8958G7$:+`,)RD2JD+"(C,: "EG#H7!ð6./8#APb35%%û!I$W,5Y#/1I4(9+K&,2 ú.5ñ:8 !96JB?.0&?@&4$5&&"AU50 8g J?KI +<6&B 8X0 #.0#395(36F;  !LCG,*,1<(ø0#C:ÿ$(w=F0$F9?G------------.........L?o6÷N:=(R.?-#;+(11111111'63AkO9=@7"$>ý6,M7&FC7.0D2/.=k>1!;3<(!CD3E,W5OR7a5"XêD;**/46%[7,/9AJGîi57,0 :G?=5+044;‰‹|§h'/D14BFR+@HN\7aDvC T/85C?;:4&)*A?<.B8<N\2" AF>.$&*%(77X$#</6I4PGF 6J,/%7E*ý$;11/#,>Y:/.Qó"AI='#A@#`5MIlD6=/<)U,4AGPk</!ZD% 4?J%6D0;,S(/3*M(O3(5A/2%@%.+742+ EG7S\ +D#' +/d>.|[27:<V!R5C=&)!T*)0%&88#<3>7@7-L*C 5@-6'Dæ;7P!@7&&5[-ý04*1GI§TE3A<H(#=3í-%O*.H?57ÿ9$DO[@"P52$J<4;3J%A4J$4<,7<@HB+ý$<10,)"!XQ52z4A3O-:8#2780>;,8EC47$2.<1=C;0BG8A999O+?#G';:P9<; /1/>"87d2A=+J&öö86\6(e@h5K*6(''4# =**(5=92!C/0%\C4!'@<$9CFTF&K3@ 2%Q+CR7 *'.'; !5G*6*a4C=*07''1B7:%&YI!89>;@.7G3G$444333322211110000/60@JFW7$&þ:]4&G7,32N087:"@A0-G E>&@=g-RAA=GB>F7;8+K-5 C!1-õ15J0.= '$1%7=@-N,(KC-3AT9J- +?J3@.57+#</J0%I* <;'7/+(?5H>=1!þ)23$?.&9$$27E#A79<(.<3!JRB3 XG-) 4+ED1EHE!XB9YH&;!S.9E7=B,U*H/ú.@)F 4=97H0<<`#.>@7A$#/?/L[W&#<(3/S% .043Y$,K'')"4;-----------........Fc8R&5$PZ7*RA5)$11111111-- G&<P@o[ <7JF\4/0=c0E'5!V%8  j*9_D<H0RC%A$ 0J9.P/1*%C19"!DA%@=>G 5,!AC;H/Z#<;(*4éZwäiA/6DA(I:,>Acn36>2"7KE;;H=/.BT-2FCK4?71(,?V9NT&M@(EC-<9W1=A*-<@72VA!BSQ<,)I3+?FP+*/468%$6*)<?L#ï=MFJ'#cV1Q1HD2HQ85=AN-$J0!%ïA=5-\@*0G<6+*D*h4BDÿF%35=A*)2'<.92PF0)FT.B:7U+@81IT>' +#3Q=5,T'"O`A=.%0(27'#W6&ú,> (S(F326&(2?$5: &s.'TK1><<FJ8$":H‹â”xf; $*+)X43YB/h:C6>ZC,+,=1,=06LQ-5XD_0_ü8>)@%(*I&<,^i;L2-CW%:.&':f$14>/I$*)Z;9&%Y% : /%$+;8 5*2N  +0/45+äL6=5>=Z$K3=X9û6,99?D#25)FCRP>5d5%&<6b&<6K@`'AB6AJ2+(0%7 +$E1,65]H)A# 8$MP3)2 9<3!Q,3@#<2H*!35F3+D*Pö :K$+06<ü7U/$3&N?0(+7 E0/QI/?+G39?444333322211110000/>I'FRO>4A3$:;E')@*+C(DP +>,=="A EC%.,:UA4F%-)!-3'÷+E@E'J+/ Iâ:'1;:PC8%1.:E[8Q,@:2; 87+?R7!Bù*T%<C(.@82 /$=9!-'4D2<)! + -1C2<(7)+E49&!?-8TV?G9 +E )B@0û5$ Fd[F; 9/&G%,($4#"%3423W4ü>''JE>.<6B54">!0FB=-L>,=.ú(>+F 3@<02+=+<,>)<@0Z6/F>+F^0&@2I------------.......64 TKB&>G%9>Q?W (6E?11111111 )!,<4!B>(9BAP,ò$"M$46F43HQ-H/q18,%4%<U G'ý   B"11' +T4/H= 7T1:A.O$#S,7@/713@%;F>/Pj¬ßGW$P6M9=T=D3þ2+0?!:6A1'\.K59'Q"EO &:&'ENBFO ;".#ý.*7D=,C<;?-@7;(!@;<&"81>LRTD>f^§jùS,F;K22& ^;(GD'2"$6R9"0;$16!IF5D#&560'/?%E$)=/_JZV'520 +2F+6>G3B : E[O3g;@?70^@øL-%5'$N8Z= + G_<).JEOE,8)?-75=vWVG( D5K<I4;J3#G.*8BQ6;*$0;E)J8kM8+` -2U&B€‡„QnJ&PB*`5(ZF'<:*$ ( +A+?$%U7$9%4<.)F%2/%8?0()&-:3-VIC&IO:9/C<046$&2N)F&6$1ú3EK51Fø'8N)$#;$-#7@2Q>7 ­O;?,.K9<-@Q7)@.6R1TEA 56`0K&5'D6XQ%S?[e*k>D:9183(;@[h_!l:)?:#$!-/3G>6Z4*I$!)C1(5!R;N:h8 =78%:5ü!8;/L&.+8 ;/#I0!2<23$d=:#%j-0G444333322211110000/Ii?73!.4".\3K;"9BG;!;4=K6>aN@. /KS:+2(3,"(#S"1$'3-S+ 019"Le@&?#"(F>@'@q:2B=+6J'M* 5$..77(L20 I(2$-K;f51//0]FT7<#4->4-;-;/,'! #,)I'D^6<'!A$'+7KLJB>@ %/9S-M,K$LR,;2.ýA<&4/1c,''88H(>U<H6.'\F?&A<$7ï\J6  =2T%(a33="C7$3 %BRB%A:@EG0.'+1-------------......9 N>%3ER*,7.-*07d2:11111111Ú@M 7>+07.NR)=<&=+@P>%6.Aõ&@BHCE$ï3H-2D0*4]J+RS $-þiR11-N.5C(W&KPD*#69$=")D=!'@9."Q"4.x…›ŽHbaG1"/RH>@87(Z;_CxQ_BE.9.$#$:]+8!42B=;YU?)9501;P 7-GY3:&&#'K&SJ;XZ 9+'184N%+&C(QRó(¯IT(L1"H4AN47134>@P?)FH)7gk.CA4#G<?$Kr8N)@+1).2IEIQI('<7G>6@J06;&M9@"&5B;$)ï>$,&B8-HJZc6*F2'.'3+12/'=#>$)G&>!>T5P=3$ e+%-"%$72S> 89 1).@<8),o +1(QSJŒG*/2=(1J9T(@5$??"P'#L(9@RL#^*:ù1#7H5@(/=S)A'$FR5%;"WD88!.M;)4R3$$J+#.#N-1H@Z"#C5LD.,J14/8%)K,9>9b(DS&(5.X1RQOK'(>9;97 +`/.""2>)4Q","DHE6S(%8 +'8'2$+?RB@9 *((2F9i3@e3-3,+7/)%@K2(;-::/bü-$*>'0&&796(Y*7978I%>:/Q3:6*V176?!C *7&.H(+-@61 ;444333322221110000/9b 40).X</MAZ0T\-i"T'!S+$&G7# -1"?#5/="J&]þB:496MG*$(+T8,M710,1'W.%tf¥Œ‚¥qIFTE@*E-7$,DG+ !"5k 0PJH/DÿK9<*"5'+<%%=.*#M!:?/.*F+;B]K"%ó.)RDE_S<S@92A-6;WXK816#RS\3+@(6"F<28/>5$<%,0&60,T7()S57P43[M.Kd=?S>S?@K2<%1!0=2-'''BCD* 9-<WJa)5,78)(,-------------.....V(?+#<$MT3j&:/.>' 7F,:eX*0O!DBQ2!A*9&;.=6?,:6C7J+6O D>1*+6A&55; ,iF:C8/Ý78#?C9?2G/5-+;1%Q.GK=M@D7!"g#)19+N6aJH&?+..=&+083+;:+9%_D,O@X^W>?503 51,.9ÿ(0RM5//$/_W9P$N024 ()1  +:>5476/ 6?79 .#G[ÚÚdP&<B;NNF>5 4&M-K<:G1!F4YE-2-L[)D?65>%6<268,A5(D72^+';.2S8G8$9(I>>+-'B",&Q2O6 X..2, þ <'(#C<13y490q.M0L..)9)HU;A=C@>670U'2C)YB ,1<-@#%2`?JQ=5$.5D‚`.\Ba;=,YD[JG..@J.4:I(#\ +:-*6/0C2-M"=$F8>= G4/O"CD*-5<J7C W1 $6A:5>4.D<0&9 B"..068J?÷<VV13#D75+:5C? \(R6'=DZ&/6&>6M8$9JYE +MG&5",UU688-7%B;=.3*982>1>9C]/B!E3TmH?H;8*!%11E22S'8;'BQS$53-m*E<!N3e3D3R ÿW2<)@J!!L<Z$57H=@K4(*d::4/ -G#P4)Z3M5N444333322221110000/<8)2K:E9+ERO.7) ?K),0+@)7,A,J*)N'F3*:1/3FõRF(L 4"ST*/J!073" .D?Ur@ƒrfCP59$169=8ì87:NS2T%! A3'O<KIJ$5$";;@>58"83267 4'+#N(V41+1%24=2NA?>?7M#/61B@Os*7M4/CE34Ae2U)  5Fü%?;=I>L0ú V((U),<<0'$+b\Ym{i- Nú;N=;/7L; ë/" 0C< E7#JUG9Q,-04h&'ME(,--------------....(5')%7Zmk97;û"ME5:HQ&2!Z1.CF?,&-?0;33GB;*!-MK+<:* *&2#]:<-/CDD3Rf?71"/E+A!$:G08EJB=O4S'-40#/6?GL02Z(!1YH?d?13,M+@ : &A0.D +bB#..56"5U>%9AA'771 S-,*;N9?W4I-!D7PI# ;/0<#+0+","IN2,);LW1*0:D=Pr^%"=<#F&*C+ 46p9730OP +31G9!!L4/HM\41C?112,;%KG1*=!H!82*=4?%(I!,53'69:2/77'13?Q''+ "S4!4%6 1 :cP+7@+÷)R;54,&F1Ž=N)<95FV-)Q8pHE6+S1-:LD(?!@05$(C%&87J?82J;#2?=%5G+?9'$ ,$8<3EMC-F,0%.%)154A-5]= /#329I$D: b$K&1 P$4?L>6*0L)5+083-U*<<)-,77%'=>9,S,HH<6:QDB98!93$-6;!(<%"c ->+I+AI72"$/./77Y(E"AWZ:#/ ,:2(N1A9 G9<G-J?>=06":.:C00X(84$,B@N7(,B- #!I7BþB/?> +Kþ%4;@[;(&*;3!-*DS$/%#7*fA444333111111110000/73FN*V?B)"7?7@&,_+C6+8-*ýV/*<;C6 % %(MD>8>TR;- M*k C--"%%B:6ZQ(N<>ZÊÂqu8€^'B3C6-6$23+,(C4a<D*WG0E%+<!=/;FJ)F +PZ> %5)1x3*1F/;IJ/0="?H%9F8S@/(4&C+0'=0û"@')åDOS%'2& ì,8OJ=<4%+=6DF+[)$'#<*W_„§PUM3&&%"h/3S7!/#+!:%2772@?8D-;:,>).*2&,,--------------...1"8A3=#O‘³ôe7W22"?CDW(:,9$EJJ05.@01F"#=-N'1:+S.>U-78,9M>V0!>N/&"4+/IhQq+94(';397+(C2/=<ÿ.=8)oDb4&:O@4JBDAD"NH>,-K8!7@6,OH,I3 '95@A+E8Pˆ<(D?.*B`68A9,?N5Q!%e99J._)75. )+>]b',#@96G'7%!82Y,:(Q6Q5-)%+.3(:E6[' .'"Q8,#:M=(09$)N-%#O=CT-(3M/!9û@?/.E[1'6'3.6aè< R1)3B&AýM#H#*57(K_AN<I-"?- UA2"7%1/,G;A6":2P(>@5':XU/*>P( I/e+66%C@NG"H 1%R.W/ *?Di!-+/C',3 :3K./7.Z^!&2<Iñ"Þ6.*7(<380N3+üZ-4#^?A?>A>=6 )E2O9+O1165/&KI*h*BH$>L!""1?.82*1(=C>P;6'3 $68(.'38K6!0).I4&*QM8:93W?$L# H7 ,%;.:'>KN(IXn4[DA24%V#'&27(@3$5K6?7#"/%Pe.)7D,Q;:&0C4;"CB0)/ 4>!< &0!.<6(+(I>0191,$%/7EKK>5-E+>LOE6'&ü444333111111111000/5)E147#:K/7-+.,+A$21:2(.!ÿ4:6/5A.<+H5&\C5/W$* =<GF5<8##&&7B #UG^Y5ÞzÅT<E/ã*P:%$,6'![1 +55045+3Q- +C'O5A'2'8 L5.=9I ÷CJ/ >#@/><#O*H@%2c4"2N.G7=#> +D"M.L?M-P))2#IA69)01%."Pý//,-5J>>B4#2  QD)[A=9™ˆ‹ŽP|JQ<8 X5)<; 4AG5$J6  2;U&(-B#5<*,,,,--------------..$>3*:'B#+•½ÍMG.56YG#I\! N#5#AC;41'@,WK/)JA6ýU'2%6$-6BQ&<1/R/E$1? 3'ôd0HRM=1D +**QT;I% +6"2.-T;Fy] +!?4#45#=8p"+>C;= <7BP<I/L;&>80m=(@@:%(f,6..A.>5k#@ +1o?@3æ7"1D<3.3.E,J' B762/J3,6$>,H +FB-C>*$0.= 1E3&BR/-S4D.KX)!%;0!.>A+"3-8l1<4;*GA)(U"",4Q5*E#&<V+)=."+>T/:(&*31|2,/c*Q<'^-G!2'#7D#@287s>%EGT)4T5 9"T D9G=;3Y*;7!+('5('&-^2F13;F>Q5c/$JB  '-3#,-0O("N&M("38(gB8U/'Q5%"*&0 :(1@+,7GR?,., 341c$O.$1'I3?+R@(%J'QC.%Y/÷?3>KOB&0:K*[;cC.G"8-GS8PM:#&N C:@?2>-GD% H;!=ÿ>J<$T #9F5JBK*L).T4<F*JT'Y%>,6+)Ln(!';%$*?a/AO;9?D4Fû?B1%?$'+U#@I+*'K"74"+?F7*=6I8N&/;2B5'sD'5#.7+S#-NC?<;$ 26#K111111111111111111000/(4aT$=+*$C)*JJ0@(O2'] 12?4/ (/F"3.!% ?M'"DD <5h7$V>25- 7GN%4#8J=@¹‹¹^I/G2;<4 +ò1Fv=îA=h/P#A?MKL& -11=*<2!3E>1+/L/4=;."IO/5O.16$*+B:0C W;L)5"!O(!% HY.?^-;;&Y-0>+:;DB@.8H#)#O#$17 *.$( "025$'B&$,  (4S+"1f`Ug%LZ&Z'#X!Q#<.;=V?>$46&A-û9<,-+,42?8+A F%,,,,--------------.<62f 3U{}—*94@S03#;>F=:!5- F02#H/+$)8;4þ)HRN$%D+;k@A[f3Y;SD% /*4 +M.@.B@ò790!3FG*,Z<9æ!>6‚a(XN!C#n9L:317'DO):0?o‰?$.5!B4?*%I2"I^m2D&OD4@2>(7@5,.:-B;">;*&!)KF6?,WTF4Y>^ +H9&(%J"Ak +@2>3'3D-'&H-98I6;3U4EY,>L{B3&</7'(2=E9?'%B4Y`!0.*Q;KE__E@8,G4#ÿ4%%-+%4/7)%X-)#$4:J]&&>/8)=Jp*IZ!.<07N,:%!*9OF&H$;#8=<_N0/6CFE >.E08*82,<51(O=N<.+(I=,%5!.3-8F+55GI9!#B1<+29>5ë73W4%I"4:@ ö. ?L#B%:K* 1IC>23<f/ùX+A:ò9<<@G3!:0`,,*0J`ûL-(3=%$3DV+ B!\.G<?$@13@ G!J/C3CC-=:1I+35!KM<-BG=6!( 3TB7'2 FK-HCDV 1B'.$0-@5=<089&J%E*"/BD ##1'4X<<#K*,<M CE+9 + c&/!'TN 4C"I#E7)"3- +P:>AB-)K&;C111111111111111111100/HED>-"P= >+,=9 G1OJA!1E(8)*+5%697Q@ OA% ]/) OD&Q'(68$*,O%&#!4#MJ=GH1"A%#8?UaRG5NE9///% 0 Y))R8J54L32),Q!&úI +%+B/09NO/&;5&(2.$(8G*8Q6.N>?$$/!<U8QA1T G$6%V*X552!:F58$(/&@&EV?Ný;<= @d?1M+C!/@3=6>\'4PPú C+,9G:_E6<-:(G8- þ=7. ø;:B/1* '1".øG2&)2?0-,,,,,-------------.9R&;H3/.XF7#)k1SDB$4a+10F!@;6'P@?)1 =60+"($50H]#-%&+ "3?BE3B'0B#!A3,.K7(]95+534!C \9ô#KPCQ=*"/NUB!/?MT)-B(*KÉ0!1C+24E-[-Q67.&N=CJ+-5%F;%(!8-W&>6ZEA'GQ BKvJ),4#B BFG/H727(?7:A=JCU&U$(O2W/4;946/V1/qEBw•Q!/B%>56R%j/!*)"A1 D4=N<I5 +C1*hC=)V0H4)K*9.B$'L<S k#MF # +S )0L-51d !*U5, Sz#;<9 RF/ 7>R6TG= IFJg0P6.#a;*$M(#JC(V9I*+: +%?K>JM%-P>JNZ/@N4.,) M'O2;*=!ES:& 4R%M>(\/12/B+)=j5,IB5&#0&\6<&91LL:'(7@?þ:"$E0SK=#@$:(&&J+C?b0$=>>BC,8?T<^%BI"L1#$,0=7GHB@(KNA-0D/ö8ì3Ij>7F@288DO;03F;B;7,,969)N?.J54K :->þÿ3(?N5;J:@,8#O!C,&':+(AF62 .ü)% 0@$*@:/5GM];((@3õ9  +B?87>(-.5D7("4-I$ :J6R6IT4^+3e?111111111111111111100/=B'!@-V!3IE) MV8.,A&"5/!*208D6)0B87%6962#]+ZL;=6!"%4,, 9C!.$Aei58$#ü'0E.)D%-L2F"2+K2)#3,@%:(5O9>42HN07AM#* &-11<.@Rg'?>P2G80:/64)þ*!I/ *5YP+Q6EJ$ZM?$I&GJ.CG+.$%0#=;5F4*A%`T8:1U?55[$O+97 :F:0!3Z@AfX1NIÿA>5/*:/DT -67'+;,,,,,,-------------'B%@-+)K(%E/0^0"ë,"J0;<*:S9'22-8)'9F3N1*K\Yü,*);9?X/M;PK;+&'<)=>/>R@,9T6;X=00MT.56(SE4h8 4<,+3"CKTl^CG3&N2&/D#QD(R_<'1d,B8>G9?M'P&`E2=3!'%S$<],W-SWI'"$$8/_K +*5gAE06&E)%;,+8-:5:)&> 'Y:M85J956U#;!;M2QZ%+,NO .,/[<E:,;KQ>FO+5M<A&<!8!D:@&H13i$&h3-F7X*(4?EX,4UH>:m<@?EZ?:EhO?XND":?5X1)&\:+-4,&IKL6G)5#U3C>8MH2U !_*%).;:B)'#,)?.]92+("4*2D(!($.161""83_*;15I  !>*5*X/X1I2Z%&>@> >U42?>,C1R<7%Jk)7A6:/=716-"&0B58+5$-'c*%HA91*VK)74!Q0\=*.0H=%/NF?/+KV+*K',C60&%#?)WLb(+6=T-W-Z+V,? +?E$/Jú;C1/,R21,þL))'÷-`A8?EK>E# /%C'3'@@FH>4 %1,$M@102b;495!"5K"C^721>'<M<AI'!(11111111111111111110001,$!6<U* <77J%)RF3 -#8&=(4&!BA"A/$?Me#>2+C&E06883M,1+$G<+>;2/0*_.QIQ>CAD$.L"$ +a!);6X?C1D8(82RR.*3?#F2 =2&$:/!I.#4:(\922%'$50+%IGB312;F<;586$/$ 59!9.&=_4k<AG0D/H +Q=7+JNS>B2;2]*929;772GD:F;2,*$> @.8A**,,)6/\64;2I!)51,+ $E%,;# 6;8(F,,,,,,,------------$+=:$#BC)J"132ñ5 FEB#!O'/)9?RA519>L2*:3cEeUT04//6B-3O?".&TJ015!"1"4)!&#X(5<[TG!IP% [5*<<#!ÿ0E: =KC2'90RuOX+ CF=/-P.J;*%,-]>H7Q@5HN"\'P9*=M&(577(@'<V86GI-'A8,)=ig!)*'<4WJ'&"2'8B,>)K =.R(F)BE$;!.=B<P$R.<PC0)&]$!<O!,:,5L7.B$.!*)<\)>? B1D3* +-LNQC'(J'?*# < B "M5%68 9Y?;B7%=?þ 82L*E_@+3#HA5/C(&E<OL7/FM0#MI]Z)B,`K$+H'<.*/*H/-CeF6&?;//EH'9%HJ%?,7,63GS1"'-H,&(3),</(O,M,úAOB&+U'W"7O'+/)ùV'M! 9#ED9+J%@/?)A+,"b4: +9.4K6I?E+ùT *<&@0?HI<C C L:DB'2$B#P3_="?2#5B2;): E:03)#2()/.Y!"0#m?#L3-`F796LE ->+? '.:<+,PI3;D@OPHGW&K8#0,.+; ü* 0)<E%5)-;9b4:.4DAX99 #ZC>%T@A1AGN[/CB/<&7)0ù1111111111111111111000"HBK3#$68&0f!2?+6/8-EM8>.,>DW;*,"2<(U0&$<A:1D1?<)'L# I+2%;&,-$1*8B7 +&;7VIA#2G0"WTK42C'  2/MD)C"20.FG6+A: +"()'"#bOl'G.U4*8AN',*;A. P+1(')/'4% >@W::e9 I <@,=&AD6"*< )1)9=$+Q<,J%7):(M)?".OA+1kG&CH.: =LRA*.. (|!<&4B/34)/8?<&D!2."%06''6;7,,,,,,,,-----------$:)<88(:"!1*B* *6=+A$:-(;>A05'TI#<903/;H=FQ&@P.@FK85JAE<G,R:;U9&0,BHL9 6+YoJ69:2G-I6C2GF@<8T(63\$/# (U 8)!!AVFg4ýA8+@G8;M.3QE6 A*773HAK4_AB-@J<,,)m7(>J(?6L1Q1E7A0JA7M'@=+e7þ! @ëR8:C&QB.$ 1]@21-,%.: '/><$[1=0î+=#;87/!FJ,@)HHCR;< W3))#(&l'B>6-AH61Y' - 7)*; L3=R"=F*:)4F-%6R6@.'G-K+EJ/:0#AQ0?PDP/AM.@6$3$& ,7C409/F>FCB]gG=>CO (((ù*0%97<÷=>$557'5H"9#Z;"R("8G<8)EDê/8D76.57$9CU"O;[+ ,[&!)C(DJ04G<N77:>!#< $102%U$8C,ñNCH' "2>)$e +GE892)*17$ELM8/2 eKI=D(!5 9K!*$"$28*47X#NG=BDV$*)ý.;/$PJ0);)8 +45?pLS2EC578E2@B%8>2K<#-b/NIMf(.!2 E32$&))8J;66ED.rIi>3)Q-S$$N=O '$'$:=Iú-:( O9<G%PG"=1ÿU8S#IvJV74(3X"=RP@ +&,CF11111111111111111110007%&'./&4>90>Y%<29;!<U/,B.AD5I#$8GKW=-ÿ..5/> 0#IM S?/#$,3.VH! /2/QF??-<)98 6:+(5(7ú<E1:7?A=%,L1dQ/F4'D,2. 2=J1?:+VRJ0>:+B#-!<4G*ý>1;JE+W +=20&,QüP7+6&M1:,! 6;FU(WB3;E1#1<-4!'<-@"*3 8%KH÷SG%2(')622 ],#PDD='H*I39I&!")9% +O6(.$3/Hk6  J55 C24:P/',,,,,,,,-----------K/*o::0%9!7ñ*5("33!@(?,(4?',*L0}o26Db.8K<K'4=[_3792<%:>1+*1788:9K6%7,3XN)&f/'B6ú=6;N+ +.& -?.W22D$ 6VB$%T? ,OL>D-;6R;36'6>LQK9@"IP,4 468:(0>N"#M14(C'"&-+F+9 _7GLB!&&C:A"B"E:Cù! :<@'2(LùG! -4A037):#LSPon7Qt#*"-,P)2K'4A4D*(1$:3=R1/4(,E<)@0(1!;=;5428*B%Cl+)J2?>B>5)Gd)Q5B0<Lb-5RA[H3J-  J&92UE.H?=>IF ,7+76<-W@!5,18@Q+GY3U N8O+<*>)UQKM- +;P#g(  +2+*A?:*?%?8hB'#?ý?;kJ(:üC$-)G& =@L&C2~5=*&V$),.4U3SBI7)DP(N@4.a7X22"&24$+('\.>@%$,õ(#NN%-X&;7E?-DI;+HE<96<(I/3*D3%,# 9J+[B2!D<:353H+E15HhJ)>7eE8F 7!5@"H (9?&II;GI ö!A +.C/[Zy™}tbO)$ [6B)L6.':& % ,81G+$94*% H68Ne":+"84-1#(M$111111111111111111100F>)ê$B#<'>G)/CÿFW<92&3.J70*=:?LF!62N\7=/5.>57 ð*&YGE>3:O811C+(@X*W/E1#*+J(6BL;!9?AQ;1#R& .3+0R?$%,@86IE)A N ðDG-7c3JGZ>4#*@E=5)Y) 7ÿEC23-!>8G@,0.4EA l/N>4'!6*"3=CúC60-B(<5PKF77'Z.6K,6C;:J =%>&`,G77* 1) O4 +9.#5B(@3/H14=%( 4-$)4$:W56N(0!9*,,,,,,,,,----------#,%/YOF+*%)*%::"C"1['>A8V%ùð7O9=F5V¼JI</. LA.8 A*%; +$.#+'A<)AC6b)(*1AE=>* %;L&# BG- =-!"-)Gù))?+'-0;8Y%,AC >"8B2><( <>\0/7B?Q9&M>*0%6=?$I-?38NG< Y<C7G9/J:"N5,$';30A?8H/ $?8:=E65(L%<#%G+.H4.X-)9*?;9+&2E,~YB-?<06 >G5ök/3 +58-é&Lg9=B;2E+!) 3S:PT9P`>>!N5*-"Q2Oc9;7E ;$W*+5,J1Sd>T"57d2H)CS6E5A &A-C!:'2779#027#%= ,,d:2B07$ÿ<"&E2 .A  +[ Dak47E26 )!8Q-9#86;01h( L6JþB G*f+'J&,&4+CXDF6K;J%>D0-EGDù(.+288D\M9 *C4 /(HO=<&6(" J*3N*'3241"59%.)D6@=^'7…Fc2=7 +F$:03@{",$SX\*'E1(Z@f>T>2fB(5ô.$(P@((hH&8*?.ýK<#'6U$8D&"-6M!'$H*=(8I“Ž}Š®{h.6D +8/' !I)Ol,$:> @71/:-E%NK G-4 +-b2#,J/;GD8111111111111111111100þ'@^"?$'68A.# +=; @gL$!/#%V9>A ?8ME='Y 8@,(.9/?)<K&1;dV5&!;X'S&&?C> /1D:(#û*þ2'K =9&=7+3L>%+3%*75ö#EA533U&K%69Z69=8/>>AùA!=3'!--3K+K&@#!j3V$: 60#UA0F&-   *#84-V5(FjT3=O*<+K!=1T<.26 'X5.!N/)733#.PW+7*C/C2F(&K,*(AA,KR+2'I1+&-!> +''%,+" *!.1%%-7?F6"33,,,,,,,,,,---------1?-(=6)AL,0F 0$8><%?.'K>G?3?D‡gCt+8"o(( ,8-O:G'7,!8@4C#LPE?K )T!A+:-2+6381T07#6HJB&+D,039" (Q".*+L5_5N)_K.M&@C`'($((IO=?!B/JM7?A)A?U/1*E&‡OD0A!2+3>0#+R+@'Q-ö!U( 9 :>=<9T:,Vm9567>">M0OC0H<,L=Q#4+ ,@Q"C,(7N-3Q!&4]_HLC*   +5+Y&A8HBJ`&C!?*!4>F&*)F1E,*]).:GC'/7;0,"((;(,,<M€pR`FY,?'fGD;f";%3D46G7A<1BGA;I>A5C8.K4D3&0#E<'P=.?3:N"83(0:5EAJ):L!C182:J QFN'S24'(Z)(*<;$A8/+/5:*:1$ 8=1D@g Y>+ 3?N#$*+11;L/*E12" 8#2->O$@=5&5):+bB QDUAD8B8356,C9';:G<; *4M$ "TO*S`L,QP4)IG;5ù-.+K;5H&)ô>G0=K7;L.@RM@9A'?HOO"7*QJ)G7:#"!3:0002N.937F0ñ@!"++!gŠkh£ÁÆ“†86FL43&  @1<;<'V8 FF,0+64BG4J#/( D1%&M&EZ# F+V6UGE0QF+J111111111111111111100>&+/o6L- (%+ 2ú4E>J4/;4C</:QQ952F!L9, +j !,=$</(7þ 9A0958VGýI8=8.S""!5A2 /4<D424%<""7þY:6@C2A5@7692/>5,C2!-"I>:#5*-9!:RU6+0'58,0(668C=G.*U*7?\ 4F(8;C+>*'9+>57 <2B%+)V"÷"U;1=?OAJ=-0*$)(#5'à$ -;37;GXFU;LMV&6"5)]=: `H&(A2?FD?,PkB>EHOC,,,,,,,,,,,--------('P,ü //,77$+9aWZ=U  ?K-|4:<CPyx7^D\]IH:@1)%KB">8Gý CÿH'9,,/$@#,-!<-HK$$4,,0P<.-%32;8AA=V.! ó?4T7.D*& M8S=:07JPA$4YBDRV<9$X46EP_f1l*[I#(*.5 4*/7:B$+<70 X$..>Ba#B++1C 2G?D%$-"(8-B!4F7/#6,220-258'7$-,D;2H"%)6ù2S0//)=)>$;'&:2PDe“L*E')!9'ES1-7TIE7&AV&O1?5SDD"P:E4(_€™D=3#M4M>\03K+#N4"W 9EV"04 I');3C2483#<$=6H<=3M(V/#A0 1JH?.F-7SEL=9'!-,þ)>5H7M'/@.F! 10"F&$#CA3 +d79;#7%JDz2-4F^'!A_m4':'=??= R@?T>/.%  1A"#<82<1&K4&C>c+EC9UAD=A5%&(#û4=07/@'G+12)24M&;LG8P8)6'?7Z=@A) 5@FF>,$L(:&5/6-(GIJC*S MH-7M>)11="/>.B*9ctOA2 דtFD(1c;013//6JCD<4E +&ðQ$3)$+B6B27( 9' 8111111111111111111100p$2?/;(S(5 CZ1'57 D4&#K+&*+>!*C/7"-<=%8Z7 :0>><J,=><4?--&#ý/: +úTO''(;$ &+k3üù)3O:^I' J#+('I98F/)8EED8:t%.; *7A7.(Bù#"1B&(+=!5F#67C-1 +=7ùO'KN0:C*c2&@?RfUgsF3BB#9$M-=4>G2,GS@CG&(=*B-/4,?3#D@(<+F  >O 3:J5)79,4 . :*-0>7.7*N+7$4t4(Q&,,,,,,,,,,,,-------.04F+(0E÷Rg O)Ø281!/J45J46E57KQ{\FV#HD0M1;|%8(*51#0TZ4%$3(2K:0,"<<A#-<44<4"MSI'-&45N,0"8  0OH1uE3Q1A:Xg.51K4%$E=),<E832'36B<!+T/M.1>B#C)B +B2:5(%@6K;>2>'7`I/16Q)#-0$NB',?1\#:C-4R D]#*$-7?J  1Y5*#/+'"''+!-@6& 96%'63Z8)+-% /1U18.\÷ ]DYc:H? +#ì<1\7?[D:?h & +MB?7R D$H1H7@9 =:82jd{L<_4QL#C>;KJ7.7/2B28=(++0/*+;3NAF!M0'-383+6(#/C94,4%3MJ"4F#?  6oI#5#':L)3.6;@9W' O\K<4G7(L(+#0$+1MT144R-M(12G-*>.2% 00÷3OA@;8%9+6B:ÿ(+!K2û//Q:C1DE,,-%Q[4SL>@6=#4C47Fa%;/>S;56>c[F**g'-137O?35TQ"eD+87!3X=hX@672.416B.O$/F.<?(+Mþ319A.,AjD<,E??ZSz“›îéoe,89WP0U2FbV)*4?#8K5--;/#/*%.1D(+:6F ,5+:8?, V)V þ111111111111111111100&/'+D,P4-$3=`I)1/G@6,#!,BDCLETìBE13B)+ù-EE&&D 5=:W6>>(1072OcR8'%'I.BB&O(*6=/G5EC8.8ENP<eI^:2*+.5BGK P>*30C3B/ wC\KE.0 /*.UW6=h@#Ú=%Y2'B'!GA1!'+D/!J"2=>H[99I%10".Y&69D( #,31)D0<#>)"'*-/&A'EGE>-.&F%ã97û,9@'& !$.#S4]GVIõ526H.&&G2,,,,,,,,,,,,,------+;--47&]&TJ03**>X’D?/A'P!+?*("UF_!-.5,=P5I-DK^Lÿ &SD!6)I*4!9S -.3;$&c<žÂ 9<C=B-K2::GL/>*VM'%2+H$.!$('2WF0$9B!I;:YE)$42>)-h,(JJ241:5:%J$!/OWZDoMvG3T +, z<1)8U&42\E6%,D!W9(B6F!'&D4D+' :'$\("7=#!L5:S(5:H7+ G$0&1'"4-::A-  C,‚G= +8C;Uþ/4_9:3KG/(E 9):749;N9-.O@3[LJ^5BdX„>1BE2F(2)%@)?-<$/O.EH„06=.c5KD 9)0 &20A>8k*8)^SKJ0V@L98#* +B- Q,B\7"9;-@"+M+&'0@+11+J$'.; 9,=&-8e *0$:-I'?*/?,=;++>06.iL;;UA.0 ?OC3ý# X!eI8,+'. ./'Dú/2$0+T-MK9?=2B3D65("JG72+A!17-5";&(8@M+ME:+!08<#G @E2O + "<59&;(<0@74A@4"9 @:%*9K-?D#G;?G{2LZ=+R@,$+<F*!MB(-46.8;/=\š°×Åsa?2-l4Hl<+*/<7F!-=0.$/\&,4-)7# (G;,&5+O.,W+JK1:12`;<+\=911111111111111111110.;1"JN)$:/)).""@8'='*9=@U:%/L:!jB.9ZK;7 <&64;*81.*?A(=NG@IC43?K56 ,+# /?/L>5"23"ý-Q5;/û!0!]$'K:E7¶6#R-33602O++$(E(VEW$,*ñ6N<2/<'4#-00'2B%?PHe4A9'.+K.61= G;55'5R#,, +,I<B5?lL`. +11E,B<"7%Q"J2-'/%V?6M#3%&'(*! "0G6+0)(1>+(/4,,,,,,,,,,,,,,----- $1P2H 959/:/0@.Ú, ,970$/"B+/AEI:D E40-m% I5<7*62/-*SN!55I'1OP127!76AF3ü"WV i«W 6+;+$"MJ$2/?KL";9B0"%%E9A7+A(7W*9[IF.R9;2H<5,` D1@Q'!11G˜7&GQ4M7L6'17K$NJ?>LQ?C9*&+ D52!,>).?O4Y2=> 2?*:3ZKN@(D6.E<NA=@_B"0D984'8,OL1*&3K^LP8;<<?K0 -=>,$(9.NM I#O6 $2ûM<5QD=/890>)QG77M1''0+N;H:2:L:KMF&)VJ=*-6B6]$1b# D3>CQB>)C0.0'7C8^6Y8=$K5.5DVR U2T9A3>5((6'<M@E^/70a6/U9&H/N ,<P5;_T@I;K*0;$%W+JGg* $4@(E/0I<"dF "96-1%*/%I.2C&A-TP$I5d%ö4;+,AMAD*@G.a>EHû0==1'3I+=2I/'^5;-/ $#(_:8+/ GGIY +\;%(5G?@/;;*$5YGhT7RPA>,dCM":OLFF:#OF*A H73&W0T:KM7ƒqa[7V; '%M[G)3'Y"D0 IPG)U6*/1@(+1=6-R;-*@?9?S}C?V-11111111111111111110R>'!;;U*!$,,5ì ,*UDK]>M 0T,7!8+310þ.,GT=#->#48,06>,3":,-î0-&L60N$1Bb>E' 0-<83!K'X9"<)5,FS$X?*5A!0)2 ";0TN,74 ', D/</Rù6"'-VRK-S7Ke+D*A-(8+#F7Y@ ==2(X5((:L$(D%K&$,B96( ):7ñ0JN1# +B*D(&+=15 0H*E3@ 3H7*5$''05' "77A)3- -#!&.$5>*G^D7J+,,,,,,,,,,,,,,-----õ7)4$#6:9D3)<.)"0K$ 6 W( V@*$&!EV:NO4QIú6;.;(558%D,BW>(BV'>(F)B8'9('2*88V÷åMrM59$5=ï(B3# "6/V+r^w>.KBI#1>04J780*>8.A1' $+:13#]J3,([K'$@@!C&9%;+qP%RC13R*).3F/3#5FMag '03 ;>%U8!-564^7C=6 +;B@'þ"<Ji0/7D#/"=/)-ý:![8"(2=F &6PDH86/83òQ?1C6IDSK%Q ++P1+9&)_1D2@?_J>IS7K3- DJ:7D5&>O@>M#:!<*E3*PR,; H5V<(U<M.1D?U@7B1SL"%)4.:B"'0sZDK"%$OT2)!8&-#NE 9UBCI32@)/?9,SD0/A0=EF*C5#-A8W,$  +II+MLü+J?.g1"L@M, Y >-/49)E@+-F&9)826HCO93P7=n-'<1295$<N8 +M31KZ3/Y"0<"&7 D0D@,-#oA!)F04&A-?5Z%C#$47?>7#!B%h#?AUW $Ã8/Q51> 0(D_A0OU3 <9Pc9B28 52@Ib)52?Y.E3A:2ÿ0F"%)4%Ri|Ac:U>+m3,5A0.4' 849!9GD-DJ2-2K?6"14#(LêDH*+;5!2Eyb/J11111111111111111110%,-TL 476 =<LD.!// 0!(NHEPJ?ÿD=1)1/1! *<,BJ4F"! !&E<':4HV#09<>9//'N!! ,D&-E(#(J$E%åE-ôE1$( :E<=-'92' 1"U=1A-5#0<"G0J8FK*+-?'*05+0FHN4"T ( K;<VC!542 -:8+"8:L6 =4(-+/*18).55?G/.<*GS*"21'3#<E-#TDG?2D$8:"2=5<;'+8!E3;5*+ü+.=, 86-++,,,,,,,,,,,,,----C%"2/&065 E!/B7$Z" A< ,+N/159&,>'*H6-(K5N@),"N^6,4?94641  AG)ÿT185#=8ÿDF;P‰‚_E55=9AA1'8  +AG?HL8&+ h.42[$#û<?$ %(?C7ë5)8-<$)CU3(TWA:?o9%!:)(1;,3-_3#60dZX*N5<$"L?R+5/Js>4%2L +2)V:-$GM<$).ST&34ø7ýM f# 0V.8(BBM00%GS<@L8+L.A!?1=7L2A1%:T:".)4#/E+)"<-L`;9G"5+#TW KCOB(7^88*#E#A19."E*)3),#$D75D?5M82&,bY[$"((>@0>A9!*J7[QR !<(F?FP?&$,2!üO(4&L%  Q:ZR;>E.1.+! K1&.")*('5BN!6J2B.,9!1B$2(!HR,7 6&71A*ú/@*6/OK))Pû,MBR?*,SN0YW(';NU(A^<%Q/9;A$?8R[R*H:07TB7*!8=EL(R)#.560J;ø/E+:7(6#BB33!bE9,"e+3)]."IS#G7 G9. "67=1%A'2:'./"2ZFA$/C?58T0+<:hir.?%'2F&M=937P g#* -"4W!B -->"G1÷-<$F)"L!O.@K0baF(_1111111111111111111I/ -+T.75M)1@D$ 91#>B/6*p(.3#.*,:,<CB*2D +*/;9+(9$04"/% 5/+)4U07%Y0B;<<NX-.B$=8'26.&/*SA01ÿ?2)!).78. + /@IF6!)H5ÿ1" +'%G?(52"# -C(:P& 7$!-1D&.!/0 W'U)V@8'2:848')/+I!AB7!,- ,0B12!'695OID'/((8?+3E!H3+<A-ASJ960-3$ %?%=D4#K6/&? BI +0FKI6E0!KRK+++,,,,,,,,,,,,,---F,?FJª`."$O&'"/= D/3F,(ö+N/"+#>R:=+6ûA82XL+D8K0?s*027G)56;H?<:J>".&10C(=?34'319\-/.;P8)=892<-A">N.:C9"5AeZ7 QB2@&+-..?'9> L_3QCM<?(='5D-#06*&:A=V6&J'3%?)-,I>,KE$(5+*S<3QB3+ +6N"0&('+JBI('+P<YQ74C^A=@5A)R3$:0+S>?"/F)=S)6AFW2G.-))GJ*;!&D4)I%A4N=;BD<P(Le>;7K2F:/@#I)@4EJ109ûG1K= 3NQ)4IU;0D=>#4124?+%: /B,9(YCN#?A<C96E%CaZ5W5./<1CU) 5Q95?Cô>8>@/FMD7@@-04&(3==H5%.0K5)R?# +-/? +5 '1:%f-D!)61H+R61>3."KZ%D4&,")&*?'5.,+3=!8I4#(.B*-!R,/2Y&3PU38I1MY0;?0 N0#,)E2.4.;+8?5,J")m(` +HG"û1&;4HH?=ÿ#5*M9(0øDKFW?H/@ SRA'QZ<G1&@4 6!R6I+FI.:"E+(, S;:4',E':)X#4'@$WAC(&?);ïQ:*))6&!AA 62-0ê<1*J6&5,7.$0M0;B,Ll2'061111111111111111111)G'SQD( ;$'B3@3D!9M2A M: &a+!&< d(G +-&-6<*$;8#û. <N.V #P$61&8%-6A-)($.;%E +-[,)=);ý)$J%:'.NDE. &l"?4&O_m#Ie4>&"16+.*&-04&53;)& WJV<9-&*Q=M%9v*K7qCF%F"8<5AGC/^"0%)4&.K> 0;K,/=8 G33-D.D$ 0ÿ/\,-+C@1 @2:øA@$,O3DôF 95#3#.ROZ-ò7M5(C!#<-D?!96"D8A'E0 3++++,,,,,,,,,,,,,--&5DP¢Ž/\1%/l 1FS8O(B;`/;382O0BF<0Z +A @]-%='/I5F,)*I-&20,G/00H*+' U+" 282&E/?&0P '>'0C(0;T3XJ#.H ;I#$08F@#*RZP(W'15( b0</%6f2:#=,<`>39-5(J43)@!4aMQ(9U'9(#$ +@4Z+7EE%8 9? 5.?4*&Dí&'@ ,C+12A#35 L0"63'IC3+ENT-Y>X<:þ/>3 2" 3N644-(R"KH@!2/E,96 ..M@$XWK4B;+X) +B298'6 +=$#3J8Q+k)*0EG:4R,::*M>J917R4.R"L3933BJH?0$0@//:NFM26'+I5$*JF22'?*'U.>:F$5PJF1$7>DH7&5*+B<47):#64K27 JNõ DJ +/FF  + (>EIRR,ó//.$>2,.G9100 ZA7@T4 "8O=-B43<@9($N"*<&G03(jTM$>-!D4-,+!$2&"<7"81,4/8!%<S676Fî'?3B:B5>3:@F)59:'2740 c.g#Naek+5L!99B?A$<!)E%E5;F+=,&m<#20X/99%.0#D:45+\A*( 9.;1#0+þ>-,10(HEC2$(0S@1T5 D29>>01111111111111111111ONG))5o)5&-ø:,.'+-)0'0!+=)7618P :B9DOCF;2([#57#.7K&-d8JE1>7!*")#$S'.2<%-KG0?4$599F!9/(,N:1(!$~I0Fÿ/##%7"!,%('%I6+ " Q4&&/P0-<(:1!G? 0B* #T.C>!.79?1A_D61&*6!/1?8#$-J8-C=!5 E7Z&J;N5P Jþ*'.&@PK`333RS ^9)# )X!,.3=$..?&%/B12 >N'#J'++++,,,,,,,,,,,,,,-2/8Q1ac35E1=:C<0:5.&8ü 3<B96-1%> QT=B@5P34A*N*_2A8:A$LD$<=>,  +K%22,7?G? 9)00504)0077 ;J9.T]7L+M,6,(I,48 K6GM8+#0)QC3!2?(YK?9g@#cP9&7I+SSW@A/*<*$; 1()0 !5VU)J*CF61: +5211T&PD-%062'2?1AH08J )!V8ìFQD;%#p2!\1?46M?K(8'#.'YBO=4E='%,&6B2#%68>-DH49^!Z655@3!)U*=(T59M@EDA9'B,*(,&&)RZLS3EF%".2@1,"7;8'4@G7#[6,]4R9$31 D?0,:/"0W!4=//4&F!?-M*_,(HK&0$B 'H#;QR>23L<!=)PDB :7BJý%/)J6 1^3C#"0 5;/171; (*+0'=L/&=N6G÷!+_ +0(*8Ý'J*#.)8&3$QA:,NRF)<57*GG:/03ý*4?N)%/#'H/8!C#+4HS6K;/ I?R.6S7>6 :? 8%<\iC(3/8^93IA,;F6N 9I@2`OC!6'5--',9.O"+1MwEBM ö"-168@32)X<=9,H97,)@ !O*G0H&<- &6 20I+:H?T?+0%B0B1111111111111111111b_Y-5/A8D/:79#,9 90.21@EE3/=8N2+QF.<J#MI-ø%&T*2:+;G.H S,/-V(F 8DY#B<'2û..3#* 5:9&*'9G :-Pÿ5+PFVO)'ô87Q2 T9WA9N<98C?)2-\?O9%BF6^+_;!%&&K>/PO,!%B$5:;B='E&60'5#=B>û4*(A%2& +6$>2"&IFB5-"8__4'">7 R2H%),=$@"?D+)û+>R'1+="#6%SSNJJ,%+++++,,,,,,,,,,,,,,/_/# +M9V*B0d96&@51.sII5<C!z#&a1)0;CC*.3V)*<%3,,?$U:L"D9+=<@G%I<O&E9 +/-[O6G.FA.X&(7A:6BT#/6=;(8.I);I+$-19K O*7 7ö6>$M?@1@6+DP5W\0@1R*#(3(( @$Fk",-R=C8@8EU4L(LN=&=/!CF2@.?Q13X(*8@&BNQL,,4& P)0S,@@þ4':3Q<X/ #B28%"-1>fJT;2#)1(.)*, +B%1.%0<2W6P<HDO6,$ )-52N@/B5?M#YP2&A7L#/33&P#1*C?M1@:*&$HtS8OS-)>8@ 6*6 +TH/Q5C?/C3AU!W) +FB'<NA /+A'1(I(B5$0$4$!OI)E$!S k;:$CM"G9;7/"!,% 1SÂA1=,:4 8MS' /Q.?æJ87;* ?ð +"<? :"F)A>*U(?>&rI,)@S?32?K!$ !946'n'@47F:MPB"%,.A'ÿ>E÷';5O DoU:8";18#%))W=7"?2':5A*'6H8/69 R/P0CE2%)8-"A/?'1=6)9@@C5>Ib9)$+ '-<+,??<)I3!</#-6:? D46CHB1+3[0A'(C)2d A;"*^:2*(.m_'%:<11111111111111111118;%7)28)4). ;N0 <!;'-D .=ö.>DF(553A4">*IE-&8 1#1 G:&;6!)" > ; #Q4++$%0?9(&!T6+@*)8Q5':N 3/:HGB2B.$5CS8/ +';003>A)+D"D#D9A8H0?*ó/79?(5Y4MCû+)5(@-gjI"ZB%U/.1/=!80 ]F/ '/!;6ÿõ$M,:5dC #$A?%@c526,$NE<0DC Z7509I#+7,%1%3L)--@1DV#;V2T$0þK %E3#++++++,,,,,,,,,,,,,48$$:21*79GF(49W<8:)-?&6 <C&W3-9*D(< $C(E;9:=7C4'&'6*2,*JG<8.Lï(B5) +P@1#I64$(=?!i=FOl3'1+U?4+7; <:0 H/K](:4&)!H"*&,-IA#FC602;.A.; I;?'6$N!S&;# C>D4Y12115>8+ ))1I.-+><Yg4!?&:-;c$< +1%3BC61&<2UJð/&"1@:A  +=9-25">'L+D&O? U8 06(ý;"F-E6"ý&,û>K22dP$1)2<E2s(NH&b#"Wc1J'430F#AN>K-2KF,4DCD)2EA5:y>/2+!K!3'!522 6#/D&/6%;/>5F90*13<59,:2ö +B<3G@(.009,[F ZF%(5S/27(2)KoI'Z-H;:)-BG2D/!U[>*B*EG<HC'/L> =2/ß4POH!-5,8C/MS-6>()ø(2hF*32";GZ%<;@66"1E.(8&[@GB B+7 /=6,-5 ô2&0>?6c+-.\ %3%C1&3"2'"]J(-D^:AB#-B4+62 $I1N);E76,D%*(),%(#F-%X23%)/-7#)$#&'*7(>V AH13. a;S9>K> \-I0 2S$UG))-%W2B3IDb1111111111111111111÷2V<2=6D@3;7;>LR#6["/G:KFHG8(:"*SF.)0H%RP*>',()UK Hþ%2?5/FV U$!!EP =LGZJ_(#6P9/<">*=M(@>8A%7%!/#5_I5=4$QB7=)_+@1A,*/?'&!3!8'i<J*[@\ D;290*#*$ö7>!6%J2449. +=,##/ö!6%`QC* ':86ù?/O:*CK@x5* +:N,.3ô!E/%&%X@/G9E45+/C#4 +B5&+++++++,,,,,,,,,,,,CD%=I:X1-D7(1-"0 !;,`1"*552+L9'8$.4- /#í+.Z,66ô4T-dJ?N3;0K7E13B&r>L +(-L+-BMO8P9$F5(Y 2(QH0[9D;;;4$17!ZH1,=/*IEM/)FC#-D\ C<B*21057:*4&_O6&KAL"8!TI> +/E( +&GBHg[R2FA !$3k5#:$809o;"xC-)sM 6S(*;@RX?6Bù&'XC/&(&HI6<;=5+Z4'LE-G$M2$(+4O84># -*(C;æ267)?P8</Lq 5)<@0DD# ;//,IG(+9HSA 6.7<(1.+-+K7E"$";V:8 ICDpr* !C =)=3(ý:14,;$K5G* G461+%L3 M+:6$457H40/$.`+@:þA5)"%b(YE61E,*\6$9 L&01bB9q %8$"1#&:M!!$/þ#2. *% ]#Q$g==)4'0/(9YU(1`9@+!;P1)I+>W+*WEH3L/M?*[*HQD8@%4ê 7 1>HR&CFG*D%10UD ++ <J+6F1;/5D4>++G C(-'+4(://BF. *6(3.F@+Dd+:#<0SXG;G*KS(B6#%)SH.J'+>#7A7$-IY‰jF1111111111111111111H%Y,%[E=$U[A)RI#=&+59*@A/AQ!. /=)D1="@FH.5%&H%,!B"@8"O@1%ôP9G8PF6B! &)H'-$Q3$/((7>0@5WK1'(5:O!  +;:f(%&9:+5+7,þ2/;E?3Y,I +1<F.þ8!%þ@+" P)2,W1g'0!PS +Dd>'4SyBè<4BP++/;".5G62#1' Eý1'FEAI1+ "6* $ 3E" 1.4/&<D#'"C/1++#'6%"JP&'*7=*80*9(&/5G"&",++++++++,,,,,,,,,,,=JE#ý@^-=9<ô'BZ )"+>=T8#@,#&19!9P _+BI51Y;[%8#E0+9G"Bø:/?%T(<EEjö3-ü-*.1 I52U>;5ñ6033P+!B$/*,>,?PNý,GEK(,Hi':@%4576ES;-(7&2 x +=D F7AGAC(C8-76*0? )#<%58\xu-A?7-BB=)CG(+9I:=K5'!6(? '-32;0:$'%,J@+B<ï,-*1@=9W*9])4F,"G*'` ;",LG6D,7(a<<!-4/)8kQP/C"1N#C5A(7)-67F-P!J$N@;7 N/A'A+hF .JLS9H;+M#U0->#+1!c/56965H7ý%F$EE*&@P-/0"::6?1 E/8H".)?9G: Ba2T:PC<%N:5/X<CL<0E"&D 7(4EM768\4T&1>8880047R%'<I%@A#((@ñ3K3EVKü.4#5%-#3O )(.% @')B4a2'J+;*NxH@B#"050:EôCóB&'B1([8#-+0.0!,1 ^'&(4=$L82J+#<5;_Zf0FPB7YIA *6"T%4D^K'!cü#.3D4-Q 4 #/'3E((@-+1;B?-*8H+K'&*L&. B43 ºp;08,1<9.J":*4&LNRG-e'59!Iwœ21111111111111111111fG/)"K&:''0)07)!3 N6P0<?%;.8CS8E +& +($K) 0:-C"ü L-".&114 ;0VI>A7JC:92H,3$'!:U\452*)4$ Kj!%7=D51)%@(+<kT4JF&5).>397';+*=;0L$<,#4;JMX2) L`$T?-52$1BJ23##D:C0*,]=%.1-F.B*=EK&EM,-JQN0:5 @H>H$<K'6? +0TA72$M:'!/ Q+7!1!)9+J),'@E74-L þ'6( 63*7;+++++++++,,,,,,,,,,[EO*=.3F 7W!0>÷?453=J5R(9B#(8><1*TE=!*3ý@JS1K3O4[d 3:+>8276!2C@&K9.Z0'*>&%-B5=@62=T<!GHN/1 +?*QR+*Q6O I?G<A3  ?--%D=<[_I!*EV,F/3:@E@<5',#<H8+.$1<$.(((-&n-+B$)GH¾72)M/R_A/E("5!-Q8'/.58;0J""6ET 0<--CE<!<986J0EF712U+>*9KAR%L&_-/%.47%01M3%D4HF/T6(-#!0-?F>'a<;1>&"/(B((?)JKUC\ G@?2E0:D2gCG$6$;'?37%D`09#,4+:::-6!ú.;?7-:'8 %:>KE),O?4;'(5:+[J/04S#=GM7i6c!!A\5.-*]:bngV3/2@-.(*++*B5)9)32H0$%(A%'5<G>@(8-#L R=X$)'-îB)þ3%é&OM4"#CL7P?+B \õ= 2M''ò;7*M1$IJe ]75 #:)D\&&"M7#:7?I"($5O;; '*/ûAo\L_.$)+]0M+J>06)K,B1H?l.H)7 IAH=#Z#$?úJ'0+G$D J ).2!#"*4K'7K0#E2&8(7IE-/G1D H=Hega!/8$$?E6<LJ7U:N'2#++<86$p†¤bK1111111111111111111Tj +&:0 <6QHA'7<O =1+7(& +9,L)!+?/64ó'5ÿK;!8 4(J1G$+9<6 $F/.:A E ?=*7%CD +!,* '4/C7,g.)H<-B]/AA*1Q1-+*:1T,+=35A.1K"J#5#)=+1"8gEP1C/M2-59A$5)*>3!G2)ù18N/$BV?&(E 9F*EA&ï., + 3.T! @3 0(D@.=!>%1CK6#%F-36 +9#6C35òD6;"A_: DL+1J0NJ41, )++++++++++,,,,,,,,,"K$);3K2=%N-/ 3;,F;'(9&  <h,?+^mF7I?8/"/;d/I/??P +>/ 2*NZCB2öE998LNCS7*>ÿ.;ÿ9;.OMO*-FDT@#/>L9kV@3+? 676E,;%B<J/@9&M*ýE+"?A)B(2:,'35._5J(c-,>?.8 _69!E*I!5H+*7'5#_& 7C-N>!2":'-)ø 3V"++6%;49QBM6E1SP1*-+6&'J*@>80:&'#" A7)to8?.ÿ? A3R6A28#. 1A<+ D2E*&)=B4]T46@.8G*;2.*J<>7#>/"98.B3A6?4=\<I-H8B(I762S$C"C 9[1C-G"'Q2(0(,AJ-8&/(P7*("2<ì F@ƒ³~@#!@D):>kž#\Ûw-$6U!BO%,$6Y+$.Nû@<D8+@B.E6oG-7D4.20>E88-'G,2VC,*L8d@=-#) 6%:V1Q,#)!7&+<A.lE8>W#QOS(Z@J< '5E2,4>#-+B:$ L*C+-8L=2!0JjV @D(8I6"(*$(+d?ü?F&@9*J)FO1FfO<RFA'UC&S3,'(25O03%D+6 2c+1,T#P=>/3";GK&6 &BTH%6.6O%H 0L-(:B-G0/0#UPP/%>A +!';UW9+1111111111111111111T7 p65B5$S0.03HA(,!;5.2BBT93]BB7*3+'>3^ *>P(+"(9.?"J$!  0)I 1)!/!14"ø-@ 7Y3&L*N2/*5H;FVIL8.93/.(Q(O39)\WX,YW[8D-@:.>/4@*DN;$ #:>;&8ED),(b7/;7$Ub<$3M75&[I>:;%#K 6-, S<Z@]92ý'"F*)C$(E >/ 1.F+(S+>6#;î!CK&1++ +0.'(5>[*E Ba>3+++++++++++,,,,,,,,D>"2$-;,C$6=-+60@V%L,(>B%G,6ý(I!-9MoED1)E,('#.':".*<8a0;4@<#"68 %>8L(; *-1::3"88A=GKFH*Q!95E%.C@FE ,3(>J"8Dý"ù)64TX6 B@v&/80[.9<H1A)00<AB6;=1.<%.!?^(,C/Y=ON]CQ5*/><JD'3[H(%*HH/>O(:R8;<UL9>3)U:(G?D:361"!.#Z8/V*;U;`P3 7;P9Bÿ ?#7;:>)5ö%&AN8 3%@<&(&:66/63I7:NmN6.)@J,U7-&9-0#2+AfZM3C83%;<*60MW5,úE5Z;fW9C.7/4=(Cý"9#1gKR458B,4$9¶Q$b2!..4/'OÀ˜L°P]N)0*498R%"5; )--2/*-9K':H/G7C1T> </%"DD;3$ &3-#3*.@ þ$++-W*=8-6X6)IE<&V: ,#!O- YN2H;&4N3(#5. dT\:4T.E?1 0M+/Q{QUE% 0<( 5*N5Ki 0,98L<>3:E3HQ-K*C'/*6C62H6,27/H6<( J#K1*ä")2í?V-%*98G$6lN8@6O-U'G +(3E)-H 5B;;&2; ;+$(þ23.'5YRSQ1111111111111111111 M*O>(C .;"F!J4;NSK*b+0C>$Y08ô1F..>'70,43+&?2*' 15,8(&4%M7.)2G"* H'7BH&L1+%9)1A>"N+2E4"4C#6;?T>L+:.D%@=\68-L!$>%A7;>+'$E*>D.3?LG>+=I(/GER645"@?6,[..88%-""AL"<-L4$ 6J/48I1+ NVJ(!\29?#(?.KBB""??,:P6?G;CJ=261YK3(26><&I#E+++++++++++,,,,,,,,8I>-,(; 1iG'&+27A<848_5F%%.3C5DBrQH9));7P,I3.T9LE.L@29I -.M517CO. 00F/(49.8A\C0$@F0+->"TF/B#< :4=VHN*!Z +>F*2=05D+JBB;X?>PG6!: 0HX0T/C),153&=;6-@!<BD:?#M95K=F=4$;8>D491!41:.7,O?F4 3P#9(4G.7&h7#1,5<`627A%2+BI4#üDQN=*/2>&7 ,Q(8!=5"V)'"&=SD!1:, Q):80HE&5*#G)N1?<L' +T,"V5BBO>;+-3àJˆh;X4+-AOD(W/BKS/T6<%)93$m '(@+6* 9E:aMgh4H -8@y®Þûv9 HC1PK~ÌÍÖh0& )Q=HUc/5&:;7%6&<W?1M?2 =3Kþ/5.8#49862 8/)/2,N4/&;(;S2@7$Z')BNF!'14î2\,I5R6M6uyM:<8@O2.,3-4.o# +/B:=G*N*G$XA42S%AS1%3R&( \K@>'G&KK<Q5D:P+#32î" ,, 94"C)9#+3=&) L8g+F!PSS4/P8))>3>f4'4F/-W#2=32RF(&*(' ]+B$/I2.YA?3K .H'4,521111111111111111111G& C=# $4@(@*!*4(]-.A",M+698N **#!*&' 4.OA?LL/,ùõ$\++l;@(2 ;2 9n"&*3J>D1,9(þJ(J<+-=9"F8?9.'@78)_,'CB0-8354S#I>%7V*%8 7J!D8T+$.";<V(OB' I*-O !865B.>L>C:E%8*0!;;3T;;S5O80-8*E$ +"/_E=+V70$;>$ 29L"2J&2D3Z&K>.ü&%&,I87K2##rC0'@-/,9N.8ý +++++++++++,,,,,,'+ =:& 36C90'* "8$@C,3")"I8+:,+$.&5?@R )'>"ý N3&\%+*#0/OX+-6 +4CKN6;2VE!O_((:A6O7* @14 @7:;A=-P6/DCJ7(CX[ 4/A8?$69;LB7.A,5"P>üGA4] `C7L8=.@P)5Q0#3L:+1$4CW7*B,5<C KByS0(+"2^,a@/2F"Z@3= BEM8+$7:"!' :27I+5E&'Q(L.7,^(Q6*Y137",*Q,&)Wüò.#/L%71=T'8K<;%?/^G; J%+) AE=(7; 4C2 ZA/F-?$M*E)ME+OlOa3D[3(-<,5,LZF(O5:))2B&4%53$$ (4$9"T*58&H+:"QaO~`‡y_E1*785&NeNT$@L;77TH8(&" 3.4?;3;'+5/KF+.ED "&- ñ)÷B*>,>]"'+ 95""<0 &2* 8>;OB4+'=Q/25a4B/=$*3#+*&J0*F>1? @fKR?25E5"*MMO$_2UK':&@M.3G65KWGJ3@6KX=).+]û'#:*:P<Q.MG(. ",B$8>&X480-.R!49 4?#?67_*Y':*98û213<..L&D(G9B+2<$_K2VH/8:;V7..;,î?=;lR!.h#Q*8=)1111111111111111111*8+2.%2!)0"/?)%+95_CPQ1<2&)]6+<S7&5/Sí;AE( +.,Y, #@("^/3J'ü'(^=ê)C]J\:0)A/(.<#90=D')'!.>2!&\Tg8=Z+GF%B 19#I8cd"*8þ9 4#QX,8(&8&<$Q*F:?P9E?1Q-F:!08!7A81 O90:35U1"!!.e)%I44:;6&8 H&%7!':'/(@>#9#" 53)<E`'*W </ 9L+)F3>L,&.27@(13.Uõ L; *7 B++++++++++++,,,,, :6E-4BC 541:&I8!1L'B,>o%/N!0"E4B+$018k=>$I@I0I.0S<%J.+$$tCE'-9'T>;AX* & +R36;K+::?@*Y0NSS2264šzQ8.A7C&'3X2&-J[P@B%20.5CQ$ +$($%2?,@3+/#P(;B. 02C?.4B56<)5?,9/\-Q;@dS"!-76. [J -0<26.>N 6<(?(O5#5?J\ 8NH8*<2M\`Z8:W1:'S&7)"h39-1$H8340#DL))Fþ@@þ$, +!'>&S+H*ö&rC=*#Q-@Z0P5IH%N.%022'Q,-:2)^^VpYF;I36#N541:#/d-@-$@5#OK.5 %> #D) J0@ '5(&D0"<l£HM:&$W2J`U@%I,O+/@1N%e756^%42$(,4 +:<=%4VN,KEA)&E0= 040LFC4&4ý?R74+L$. ;9ø! 5%35A1J.Q-'6-5ARO*4e 9M28JXK5JB5ý8"P,'Oï.F)8U=938#9ý%w5;d8R5=*9?,C -Ió9 9?52S(0,4D+07,c <ö@="*?G'4T66E(4# %+(#85'3A56)(_ü +UE!D#8.-X.67W:;$&B==%-K0aK V**3D(M!5<M)58D%1(-#';/Q1111111111111111111ýDB&"sA?-%2@=-0Le>6=cg>@T25K3C3!4D' #>;6P%c?L-2B<-$-I2.(+>#.7;6!+$ û* " 3%5#[Q-< <LOI4D%308&"W(%&$[D0!G755;6 H:<!)D -B@OW*4>/:6=jŒaU(.!1%=L3FZ6#)5:FZP5?EBP>' $565)J(F1*94>?# :??BD'";,#1A4*%H%;614!,&(8 +/5.707"+*(86!3,a9eM2= +8(C+++++++++++++,,,,"'[-(/96b&%.07F4=1&*?+!1-@BF"A%5,AB 5#:),a34!#0VBP#<G6=RJD!6*'N:9<A1P:"7 610%B!4];}“¨¤e.)E/97+2O?0-H)8:UWT:&"--<HI#?H7H7:!HD9M?6/ M68.B<F&)A"<":77!EB:?)+5*=)*X)0 H +>))>!+ 7B'H<2,A "*:0[7G#E9L1l¿¦<Q(DG.7#;+">@49&þ?$,Mû.%+7$6&2I?!(* (:&,G+5 sWcHW.==-&65W0D0NG2&!BH63"#G)@i 16T”£fB./o#GL8"11:>H! ,;5/6(þa>÷ +4Z%ú&2!4)325 'Z…¦îÄR;P+?&?4!8-7%.'ó::SIBO= $ø<J?>8P!óL6+- : ;*?).@?A1)IS/?"?IJ S.. E,",90-9,(4&6%0/J0+T5J,5CB%VC,2J3&(1  +)J-=AS/2B4&H1FS;,e*(0:(m=`KMY",6X^RA5; 9-@.*@>#*[JH3(+Q,[(?$'09!'8K9G#%>2%>'6(C9 .52'15N?125+8)(5GN+339#.$$%=5!9%Z6T7I*L--&(N=.PW-27=8+"5C;(U7:1;11111111111111111113//!0F., @%0;321GB5'!LKW`K?LD1 '>3#E2GICKUJTf\4D(:)-C"#-)!7"1%//)D@.H#J<(õ"#!H<,T%L5/9'\ (F(E%.$7B.<(N( 4 -+9/2'60,):Q9!A<B<L&>H# ;XÛÕ€(HC2"&7=)C'0:DXTT@(BE.%Vhe.% 32!÷ôøZÿ'1M) #/0cT(D,þ),"!D/$TR) &@9.&3*2,1(.#-86 >+IG0&,LFU/6$2;BN/++++++++++++++,,,:,W'&%/C2A(B+C<44ú$:<)?2W;%:Qñ.2F1gQ:ÿI$V.2=&39-<.=L..8-J1;0èBZ ,199J4/?+ ÷-H828Mm<WC>6ë0K1KLMdTVV.i9!5)G8)*BB%G>1CÿE@3;PFUE#6.F5&(DY*FF'OA#>#1+E)1?#9çGLW:+L8")'W)A(5, R+38M)D2):(PB&Q H?2571[!O"H"@F.19':+6G)GDvUV-KMZ,hL%;Y.G>H1%5=!5WC%;6DG0<8O<$d+/DO4!,S.VE#/8ESK)F/BQ+:SI33'0B6#<l+DQ)K#2'T<Vq…„5<$U7E#OM+N(O8_f.Tþ8",C1>4  /: c0/9##F$9;),Q"4SŽ•!¡z9F=5-/<$B,S.P^922#,6(I8=VOR44H-6M`<35"W'=)?>'*4Y.(9 +)Q6)B#4?<4'$ 2(?!54&3P!"HE:7GB 8bú>9R(LbK +#+C%- 8/FH#E6EF@:76&JLc,%P5BB+$q6 %6MK-QE7?BO:X<XSI *'B3F(KX/,23H+"D%;A4[ACD50$/:".K%(S(>-#2 'S4-07/D 1FMAN*9DY'1.<K<#21$5H&ODD4A)1,U05&@BI](',÷6$!>(3-1111111111111111111YEh--.B@* Q$G!/)=<e-R^7D.mD:CK!)9)#(#G&C0$FCWH1)5EBR$û2/=6!P36XEñ/#<3($U,*9/(((/4.W9+BOF]6&%H"':5B99*8!)%-R'&&!>:>:P3&bý,#B0/0B,5<2:;BU4:)9?DSm¾æ:86+Q;U?:6.;)*,4<95P9[N,K*M$MSAŠ3[F8$7R;P+9'í* [6*))50(YD4  +K/ -JJ8<.-A:%!($!'#@ NF6%3'XK*/*++++++++++++++,,**& $<F?52LD(=@)U=i%#F="4 37 Ks@8<#+)=3û@R*559,? BC1iG-=J'(7]>,"%=4,+I;9$P9!#+2,//7)0 >-#8SgG8+61H R +&!/8N28N-*-AB6' TF6"0:'BK6 8"E$@A6=9 .F)> >1 *1;.@>P&;7 4G$L>e?8@$&,BG4NQ2%4:#12@)HD)8OF-@K"'$<L5+*8-Z9A3K-)O<#R@k@(J>1"?'#M684I<)(?@>)!)FW&G6>+K1&CA1 871,=>&808F)6(iBB5&/C?kpXB3R#$RF8[1S9##+3*,!G4JJ-(Z>ö-V4:L5?%#A:8Se›WL$79?84%,^9Y +B4&/H11470ON4C(APCL-9 !DS)/;$/+@8ôC54P<%-AT8 &'Y4-$,,<S7, $2@"E$2$[J/ .#%2?))"L&M240CXK*-22D)6X@7<9()M+&G3'Fì-&O&<KE/E9 ?)-V0K=3,X9<b./</"RD2@*-.=KîN3(22 +KRX&!?6M<;;+02"! 'L!*!L Ks]YU-"AeNC-9e6(bÿ)23*ðR5?%:=#VF +<8=#,?75-0<,E?&)-\!W:1+(11111111111111111110O0!,#$:X7J?>$0NGU2$>1# 8d1ZB)>+- ]6::9=0?=ÿ; =(K;N!Nf(Q:+?O0@,:G$0  4b%"%SHA,<H 0G/7*V$b>1A[04J-<!,D<6(U#H>:B O;1E%0'016=5;S¸]àI;@KD A>I#CG"Q1<:"%?'*i9U;G K5h–Ö̉0:<=d]}il3W"LG<E 7K"EݬU6&5>c: 9:A#):/+'2=1))T&/H ;+ (<*'S'1%15; <!'<5**++++++++++++++,,'>) 3<.#$=H"<A@40[4B3A4=03#J((9AGB ,*JS9?) );633 I/>3'ù@<'(+*8.\5734/ +]a''74:KA)NQ&$- ',%"8//Y:%B; p1AF08>@-#KD/L1,.AI<.C1 R7.B5545:K,B  #'.'M*T._630>.VHH& %9**]N5AB219k/6 æE"%*C?%@!N04L#G,=5&G66* $;8J29/D-BCL \h,84'$G:4*5.87:D8F35!-@!;+'M123Q*9F6ZLH#<&A'@A3;,[EN=O?2='PQA<('/I$8&O6/9c=>**: >-$DAA-% ;!(&'/<+3H(9/(8)*O@(`x<5&e* +,"Hu@3F^<::=4C;<l2,@KR+5-84yG3>]#=HB;$+2)6W-<6>2O3$?,4+(=@)G=ô8U4ú7GLF/ûCD0YJ)(M5-(1 <<W054ð"3K";D "E*+GT+JVN4:)6<'"B!7I*úPM=6;3%AD*c0W+9=9U8.S4:COW/û>4&I']B#9:@K 5>3#K_[GB">4$&;;6@#.W4(8?&R`¦v-;I%:61^DdMH="MO&_;&?E )T!&;:-\9J'>2*8: .Fj:1/592_7<=AF1,11111111111111111111/1(9==U3@+ û356F:'NL%"C1-C%&;605%Z#G74nlO*</!>53 +(( )(;?!J-!BI1G >'='+ JC'KA5Gd-:"J<_S8B6<)0G+.[P4/,&4$#)14-H™^zË>I3IE ý6õ((I2#>!96B-ZRY<MŠ 6ý¡kQ<Y•{¯DD4'K((72&-!,P:7DF#þ7 C;@:E[!@/1" !7`=+ +ý +* 0 Jl$8.M2- )? +-842O***++++++++++++++ =,.'/##(40 7-$\2:=N6F-85 **:D*A+O>,<:,B.$2/2S#2J!.=":!6-778+&"-KA=."1A5-/JC)9)? &"V;A0EóD6H2I:.5=ST)3FZ:=+'=#/A+J(>:DT$$% ..!.(-J 79ë&\X-'.W&T@B+(E<!E:F<?"DXL!K^7B" R"&UKTD$6-+$6<?>I'(*_&*#A28DF;@:!%2?%02CU1B'#Z7VHcJE:"/N<'';;.E2<7)/&m)$:.Q#L&#!)LEb&4Hf-E56!0<;*8'"@='<4%/!3%P(A\AkI<?=Q%B#7YqD0HC];I4"0sZ60);GB\8@0TH1?N/'(V%%RDDü8<& ;4#'812BV#*C/9N8`2<E!/H8(9>):-.( +OC(70[".(#1"04D'<U8P%Y!&9/D;,6"!TJ @^@8]2ù- -52<*;>J#=4-Q^/M;(þ?.F #2R/?hi3#)6>IE;[LF+6G0CR#:%%5#(*7"90)2K'=:%&TE 45-:VI 6D/:K=c  *1ADR9=H?5,&=+'8J56I )T{œÌS;,!8&F172#'0@&;@B9LRF7K@? 2Q0(5$C/0:@9R*#E<C>.$5BH-0)11111111111111111111@K#T$(61$Y<#47)16XHk@"j.,30;JR5#2:0G,9R*(9û8F>IA$%?H(:%A<@ã(@]2X8A!8C+'.=3ó41H'í@0<*E0261(.20:4'+$VB.DSBc2I=2B/7;30H%>èB96(>&UGQ*LB7z°ØTP'LFL'''91C*!*+99g=OC'1<m‡óÌqX8H=R>X3<N`Y‡u(#>M.1, +N +0.c* )@P1HB.?%0B&70/62 %7C6R*G*=+(LD!G&&1G ****+++++++++++++ ,T-;["1E@&-#0? R!0+27Y&"" + "4;+992>:.7@O;gX(>03, +:24 I1%n3;&T(>2)$VFO(A=c%BU+34;)A(,!1&GP+P <m>9Y$C;31LBLH96A)(C*:[1-2(Z6<%,2Fø / ^;6:E0:*; 8*$LW)) 'R$@$Q))5F2>,K#M-c.@$>BY4$e# >,;'KFC>'5G <01H.;,<) ;.=C14DT0.<Dd=O2_6"Ma:-+DC7H5&+,F;B).=5E1g 5'> 45A1@;HG@ 6="8ÿ:*"!7M-6D!% @(81B7b”ÂpZK=Q(N$>d%4:7)[/IH;,72$.94C\DHB4, C<>246<d#!+X/O0IE /,/B!\G@G OIGk6K;oNII7 H@&6?'&Ba05+)3:6DZ##=''$@-"0*05,"4 'P!?47"F9.H!GI<2#3,:]3 D(4 :QL%+lH$( H9)2<3A:!2+CJ:E29M#E8?3%E/%207VV:JA$-\5(?1/9T$5JA/?,H175Sv¦K+4Z8E*9:<J5&0ú +4X: J3.GM0F0Ž™JSP<d5.((8A1L@)5ESB3E"3-@GSB0E2AH`D8<)72 4!D/6-99?<424.+11111111111111111111$6'!:(D<"/(ODL7BKN4#*<d^)1#C'3"#H>=E!#D7C7/"%27-"'G6G";:`()7$)%DB"!(H7.56+D 8=CM571.8%#%1?EW5&I(M/- =7 5<<U\&7<;$(-1E3O=P~dC9ý!2()% 95(.ü 6>*/-3i%M„‘­ªW=B?I  C78E_ak'K<S 3G9 ++1'6N&$2=R&,>(*H07R,5R3 \UD2&;+I<,(46!)+"18KG"N-E!?X*****++++++++++++7/  ,2,!/% _ W$3RO0:þ86?V @&(F/Nò;+2GO$2 7(7%'G1F/>).%"@ :+. B;@(8WP÷'.<)$4<:#N$9 +%;4<(/!EF2(E1.K†„ž\7%>TE49W@1':F÷'&:(:>K$'BL/I/C +'I!,%=F.#:;L88";G:4K/<-'62*9'S&e?BS(3-*6!ÿ*G +L$ @(.ýGZI=O9376<?9//4%> 2 [(,"äD%)H/2QG158G<L>9Kø7273FJ-*5A/NMS1#Q:V$J:*121.[3#9!3/H>n:/'M*H,eÕ +çb= 5n@35%2&%)+L6ýF1$G+Y.,%925C/QIBL÷>=,T5'9-8FAD>)0*+K6,=5>NSY787?bÓ1™CC3<  #<PC;G<#HóJ ?$,a ,1D,66'"E% ;;H10&*? :) / -36:3@.4A<6N79G)0*1U9*5=<(<C^' 3:ø7 +,EQ; +.?=2SY285L;!5C%!-kHZ*<?3G0+9)'#09!$P.UEw8 7*R=&#Nj0K4]Q`3B/+I"(("GIG(+!)V&EB8'H6>@/!]OmpAQ!$-'=,AA"*A<O,F0DS &&+6T37%, #,.& +=* 7S:4V!.:%6(11111111111111111111?HJ C3>;7-L5[?,+T)(4h@<)E8*E3'/5'.> 4* $%01Nñ4806"<21;9/0PK?1+/8TA<&"%42),53X#'7#@!BAF26WP,f45!0 G*I;2<6)/<AF"%+>4 D./40L%'22B]L2 C.EF,% J;69+@&7#0,þ9-3<fuca@bH,B7*+'#CDH>C)[1(@)7O&'" +,'MN 6 K5;0 &-`0%70(1 9,7*,.:D-/:?ð(C.ú9",E6O******+++++++++++ 1b-"zG'@=C*6!E"/D;:\O11M AFU'(JRO/VB$ 0.+C&#Z:C5+-6G.</4O:OQ+%;2!*@6'>I6>6[S<A&>GIU$/6O7S28"0C<-4Dk~­±“^SL$-@3AW@=[7&0M?>%'0"21*G43 %70E79C!7;6J< +52)I N7"O3#+Q!C8#7B*D< $^;T'.^ (1G*;0Þ#M.;3a824'M27'K%+%(S*63.D9;Z-$R"! 1$,,<6<[0B:064>;Mc9G7_:C_5 86J$@6U6*)[2Q/-D)*/_/ &<DFÿIDyœÓhOw)4\PE82/%<5(.:&?'./A:ADR8ýAN"LH÷>H"'91%2<&3--G8H))5!%;!OR,@5J>Ø û / ¶`LF>E)A,% + 7-"4*BH4K:ÿ^3 (.3(*a  I0/+K +.O2P!*P(>-3PH?;7>'35y*#1A^:+Q$+0F;,:3'-q/8+U'K&<ý,(M.*PL7:%(+f1P":/>A.,Y 9O0K#3;49;1&90UK)H2 T0%)"M,8MXVVM>Q@3FLG>3Y]&1- 8 BCQ. 2<9DJ[^;F2>;2/*7/.>0!-6;83'"::=/3b*%?H5D(0//0'(<1R6C!2M;.111111111111111111111 6< ) R%@@](H `&/&C''21#KM+'-!8 =& 7,!*5j "<BF.ý) %=6Y?@.@;':(K1#'. 9Y-M([%ab;*++!>5/3&%JD';Uû( %-N6;(-(V3'+26+&@!7l9F5/`$/2&0C8"4(> +A +DD5>5Q7DM(BX>$%<4[QJ9)2O7B3)D2($÷+.&)O/26.#(1B_")0 -29>6+3T(-H-M2;/#6?0*$&#^(DI(7)Qü*80<T=3********++++++++++0>:41I2*7;##5B33<(P>893;*''>%*/G* D E<-@H_B:*84 J'4.B%9*$$>M<#*;ÿ+SK0G.`3$8#:AB$*63>.<D'+D"%1K3QqB@L=Ìÿ·liW3)(C:?O6+W S8@8/P.B'7!;,'<g #DB#C6/F $H+",+%;$=-4 ;L*'77B06&<<,S?==&<A(&QD%m<M#**2"8."9(;F$-C8@7EI:2%;T*A#(8%@<5'@)"5=>5I002:*L+5>P"JI=!+(@V24Z22Wþ-B&)-0<FB5V2,^3=kS?USOJD??/NR4F8(+,0=<5,30&Q_4Q/B?3!-<4%F B%$D:V:+A*/.; F8@_ 8*@3Cqk ñ+¶FŒT #"''4#QH9B6#%F#ÿ3."6S$9#9)1;7@(+ ?;+3XPAO?5)2&*8P%,8@,:*HU)o')?P,E:V"k?&[- %;?&?>=3<51'[#7@F!# // kF!;,+D?<î=@ôV9+4?5QH^7) ((H=*2&$& )3I,+@I:D CB43/1O^D>!&?!+R) 6B;J4t ;913)9kD%6C+2Sý(4!/J'/=C,D53E&<:%F9E?<cR2%*A7"11111111111111111111HGˆ2 8=R*H1=6Q4>*9)36‘BF95!>+.= F )%VB20*#B49c2# +1:<9P+5t!732:e!  >9ELDZ1Q4=R 7:),FG?'TN-7 :#=71_1K&<&.<bY«Êʤ_.-,Uþ<E99< +B5?6+<P1.$-- 9+'=#L6)ô 4& +R9<D +P6Q,>/)$():P<[4#C!AH /E'3/@6'FG%L*G*!G@@ +Mk(:!=N!0&-"/7-9-7:*.&ñ;O*5=,5/<$#.7*******++++++++++#::,0,<>*&D;9 -4=,!UC&eVnBHlÿ ?B5*)+,5=&=4(*+D2R;(3%&/H/0A?,6T+98 ø&7!P)9?>2;'1F,@ADBP3$!8E+$28-=@7tŽü5wóª<@. B 6;;1(6>'?44I7,(@(N#,E4&4?)=7D>"2:)8(9 G",1#/.!=B6??A*9RY;K5EXþI!(/(%8?-*`(F8?CJF&PIG)O0/5#72</.9/+`J:774;/D>%%*3"5K2"'(]O=Y6FJ -;3.9C?=FP-.'/01G+)609-Q9ï>Y!3%@V_L98}Fyb†ma6A)%KIO%'!1E;80&30Q(E8N"+L029CKNN<4+6)1M%(::\+"6:56G;J/%9A*UH5sZy 㛀+,7<.&J," ,ZDT=G=44Am.;D (<$$1&6F$?5X'P7M(+:$+   "aF :,;X= NIc.T:3V(F]=/#:^,J5^L>D&"C?2-(8A$"HMT=V>;KM(=LQ"/"#G$)%5# !C%R(NB@!7!(KF .-A:<VK+F74:ZF6-,'(/1; ..3>[A1:*N&L-5J2 =KO&+5 2W/?+?C1I:7:FSF.A"$^Î$(R<*>8? !'þ*:=S35;<G3-?611111111111111111111N>?+-7-1YG=.2*)cE-MRIP0+[*V*8-: 5:%' (+5%%C./8:+E(38<>'-*Uü5"K!="7,!;E-2$;-?!+*0U /, &ð>*=A !B%,1YL7D8Hz5xʧWH%Hý0,-<(E2&CD('5D $377@$<"*]k0J4?-@72MMJC15!)@Y*$C3:I+1O3OM6%O)>*B25+;*>/7 7!+5,/$' 8 LSVE0!4 2-<÷!>B?c~ü:"76,.?2724*******++++++++X1TO+374:!6)5GQcT>Z(K4B;W=\=:@;264E+)397,>PM1F6198'. F!Q^Qû#$0 5P4,(,=G@0+/+&.$L&=);1&./@+T60C*+3s?Wr}O"Þ%¬e/YB:-8-KNO-E1J@35F=2I/$Q:(ù'>X% BS\"1I:+GF/"K;Q'C2O C: KI/<:0 8%*,*,K=01Z$*$3<*JC%@=38:#(D;&2+QdL;83",6FQ<T7N4^"/-4K(5+9+ J%I6 BH1'X8#C\BIA9@3?;3<=L+5T>;.= '('#%d4<5?Q+%9P™pK0:,6»ÞϦ—JC8ARD# * +4C):"+#B +'@*8C4F71!3GG8iP?/L8;Fì-4/ 10"$,)8((0* 7 D3B&N'PRwZŸVoam¿X0;Y" 3,E? ;[!,"8&)2(QA=![2C2@-4K*5;8P'02D&Tù7B>SVJ9/>P! *E>308%6#:[<:2,] 1;=45AB2<(I@2PEYA8'=1SC?#7S>*D41F!36IJfG5 ?2H'1.T!"'"A$(1ME0,@ET%T4!$=Mh9&">/?<%)8`.!4+7 .-&H4%58 B:A':ô#0N.0'C2 +22*9@4C<EP+# +:6A3?R949DR/5641/'M_I51<44-58711111111111111111111/&-M3*4*'#')/7*2=F;(!T Q8&-?C)R/,+LD!6N'+ -C@ '<I<%Y&P1 +2B8,.7G =0](5/T,0(üC%+'?5+'809+'H*,2$HA82/n&<(g;186&n + +Õ ½<ƒR>=M),K=9û;&C%g2!<#7I-3/ 4E:*=DB1@9;9@%$P)2P9+&*13/ !2=F;4"?9E=5@8. 31%,I%4;P*/>7:C6Z=4*L,"B+/7/K]5V%:$]#4<?U@X- /0:<********++++++++,-=8!é2<"[\ M<DW¥¼m1N8/).%.'9S77^@9F+&0-*%F7AIUHA^E*4GH>3BLBB;c)/#L5=G7P9+õ#)+"&;k,!(ÿK(7I519=>Y7/C44;B=7VÅS‡MÙék[a22.&9<' +-'U9ARG%6-.+T5!HD24Fb$K $6A@5E!(?/fB@K( .I'' 3#02C:1,O4=; 80 +9:uI$r",*-.659'69W&9\5K/(-)2JIs2LA(7 +47C9PA7 4@1RM,0$.BE/?/.59;$,8DTK2#4LG70E'4@ "29;8aS<,+%90:F&Y`W=SX>³ëÇ™[>?U%eOZfJ<;$M'<OE=7-2E:*-G>(M2!/-AQFSU\ï=2/$=FPR%A $7-/6DI>#.+)BH'`]Iq¢S8H/1A;!J@NF;#*[6;/'*8*=76 *6$7 )%ÿ9A#3X)+:8% =<#=A$"!CU67C0 (3QF@\,51).8].DM$%>"M4<-)Q!(4M% +.!"O#YM-(@-;>>!I9"SDGH*'T$%=t'D4O%"OH58;6HB f@:"4FM;M/7S7 NF%%5.31*%O";G199S4&;4K#*A.)"0K(ùä-D&!72G/+C::5389N.N,G >ñL'$MC7B<C>-22&÷(*Z\H&@*C=%<-11111111111111111111<+<+1&<&;.@c$2&; = /822c e.E^')--Iþ.&2A?0 >,'8H ($6)O&I;D=a%"5V0:8B0A6 >A!1'>(T5$5W6G +,ñ252/-&:V&!56Jú-9"4BIJiÑì‡K4` D9!R*F)&>:"*D<>)B = +B#2M"1D"B %2Y(4I4-C521,39GXEI8>&''=+=;\ ?c1"&L=<:ó* U0&3b,AAB;2/@M;;/ /(72h!;6.>851'9S9&#+"A.9*********++++++-2).AC'w.I6)_,oµÝµc.cB2)E<4'.5Y*=>48:>-7%;8".-8<F~$<%<)]3%G G"*'<2S?S1S2>08!&AJ%697@;/&(//,>F 71j"*[H¯pÝ#  +“.QI?ßY0L8V<UmMwX&(!=8A8 :49<).6T?`1/$93< <$9ÿXXA(J :7;+22SJ6/LEHÿ@2Q)1; /c˜}k^O3P YDE>='F8 B@5&C=KGO@891%GH26[KK7G!+õ:!A42L?0+;Y=i04=E3/O*;1.06dBZ,N/-+ GC."E4R2/3.K%[=---2JPxL?G@]A11P_R881676,0J,5_&4 B(-3;C[Y*GH:G33OH:01P'<A%BVF=A-,'3#J+(L@›bZ"/<CBO"D6-1.32A0, /9J3?9\ %<F20+Vfa+-6>+;I:3%M J-6 6<%)4*L'FL13 FFL6=Q(DC'5\1""F"UE\,[!<7,*):58( 5-% C-@518[<6Y##C*7?&&D6N 5%F<#TO_NJ7"(4S+"/FI $6,EI.&ÿD'2>)`Z2O2A/,C?O #\1/8H;E91I. ;;A( ,6:-lZ0*'+#;.,74  7&%;>"P:$;,>$,'9B$B($.U'/011111111111111111111$MSU3C:*T:ý"P(/k'*2$/J'*4/?÷)@2>%I&<7BB*.4-.G'% 3F3 +II0+:(C-%03,$ ((BEHbGV6:(J)8)T :,E$1+=J( #!)1=k.%W 0-"5sô»‚t$8!(?/EWRH@1<11?F63M4>#==C&8111/5JC9-]5 >10$þEGÿA+<&0 "6L$.51 &ý<(NV[6<^)O\ A-W7J#1694(55F/<=O4/ F7&*#@*(!'L;*!Y92T# +7N **********+++++:./G)>23#X@[9nÉnË[-5&06,+: =14 B ,<7-8.%?@(H4Xð`PHNXuLS2/!4K;L*!BC H;c)H#@öîBSG5E\6TT_Z,)L),%1<!.(>#[5GBLJV7¶t§Äì¿8P91=>\R(!&8SX©×_O#Y-*EEGG'J +<InI;R(+fA <Q@+/,5K8CG>N:&+a5:+/U L1+6)N4;Uo³l9K5D%I)@.&:@JHB17D:J<=+?1X*4<.9/-@G?9))67c<J`ôZMMMD +-LM>O)8 @.)R/4%XE+JG:?-I8%71S0LI<-D=IAA^C!.2P6mCQe(iU4%&%h#,41;18Y>!.H 7 *J/!S4#&C7=10;@$HJ514B+û]K[0;û>.b2`TW()-,/;MQ^2O#B<%1R7 ! 12J'80D5,)<*-\'F#;,(1'8+IáK2Eì>&-. 8DJ4I159;&1IK"048+55G0A (>FJ>":(B;G',0/,/H2=9V7YFY$1R%#4%M>1$/8(19$KT2"Q+(jI.F-CTS6/$ I$G;\4(- +*A<.:1;$DB3,*5 #94/C?)K9? &*,  4B:&A}CA"C0L +N<$'5'6&ýA+S;Z.TF4W5+!JE,0@"=9711111111111111111111.D2!..<=4I8E41!A3",-U77'L_- "&AM0%(, +H;#7/8,ÿ9(= +c< E&%;-1C>D$;#<5EAC8&D:8=7/D(T/B1TG#$<7þT$).74;JX=;þKK,<a2T\ 6H0."('.6H/""W'1B,@GD466-6%W67&99Q?*N.<6&!6N HE&?273-F3"ýC Iü=Kÿ1AH3&#0\&&H*0:74@N'<646"&+7">!7F3.:,%H&9%)4$G46?*=;?%%*J***********++++M.*%.?9?GRE2}p8@3ª_O+E'54AU*)&*81-2;-JP0C%&4;-? [,IDw!))<'47"BC06E,"2T'd!Tô ):Y*NQFG6cEHU0MNLE;'T#?~>Á.R¼eQ>;4I.ü1I%@(!/M?vBQ39U3-7-ÿF2 =>?XN_Z'"923E(6>X5N7714He77=>-61<9I?-7, 77$5Z„I>-'3"!p'4!3+?A=85V>'09NGDGXO2g@dJbR8?J5> L-&#e+-H@]>10R8-D7T<8C\!9:@*+D&)3=B:Y!;4[;)0."Qc'<<.GN,47UDB61O-F[SPd)R(-2%OO=.-S=ú0.@ 55ASCK7'%@`. ý4@N1=8@8 +'„aZ#1+C2:O?9^S@I;X4D)[HÑÆ7&< R Y$/#÷J:9%1F?+17F@2+?0JN&9,*0[ME!/k#Q:/N2=%R%.*09*-0ù-5%+V'%I]8P*GGM-S@/ûC#.û9\#=14I M4*$+F4@2":<)'< +3V4e(;"<<N8D59+9:3"V"^-/*-E=%H=C+JV*I0!BE[3)S?+O9FXü(FøJFþ<053 O#61KZK7;("/&8459CA/+C;Zì8=  /":EI0$GòD11111111111111111111 5;K=96%IJ;9,888H?;-4.8/HBH"\("!-=)÷ +7"&7+.NE":]+./I0"@H'  +AK)<3D@E4*E+1#5 +J7H21R*0-W#; <5:D26Pþ "W]8E'CF-&:+D;+A 5>B(W7RM3W F)0@2%*H?O.G)5R21A7+K#,'<E!QFC'"cCW*?4!G +# +=  +27%$: 69A37HC2@/=c;$%I:<(3# 9'?<'- J<P)#%F%22C!!RC=DF(#:J,!3=1&)*?************++++/:%TA18/"]çÓ¾{X:B(D-H7%.97F&O126!G;e4 X(8!,)3#-;<#^38û,+ % 8-@8%>%81A=;1-2.$ ?1!*6&'"#GP5b>1üI>(XF8.U`¨0X{vI/E6?0),)-=D:B*<'=*?:0BLP)=5`<I\[- E IV,>'(*)i3i"%1 gBQX7 'B2_(#U5"2ú<R9K_^+958 X,5S")E/2 A O9P#JM:4O5DOK*N2#*).2*4\"9b2?  :;75O9c_0b:(46S%$;HLD>SQ!/4;*2<.7'+Z<4ðJC'TrB'O?=NXP¡k…]N&S=,>Q8V H;,JM33 .L/57@[6V\Q^B)%3A?,0/$=6I0RJ--+:/!0<FZ@56K>nT6!QI?2N&*D%?/>[.Q  +c@8+?:>EH/þ0*.6';".,='L10=&XK'3372+K''"$Z65MEQ,C4 ð:52.E5E4?=>A891(3@<9DDP-E1%AP<&1*G]S<7CTKeW^PH0KM<,(<)P4<A 2HB7+15!>B.90.N)-C*/<7;Q@ï/B: (!<>, )D%<6./58ôM<B9# )T"589G0áB1M +OI!2L8G811111111111111111111!M]6*65(98*&VC;/8W5N9!:L7<"M@K*%+ W;12LCJA`3DO"(6OAY/(82]+O?!.åE.2#$cL;66= >@!N4.&0AG#^8C%<'J7307JX7@?M8(F>V7AC2NK*.79*EBSW+7&LR2+H. "6L  ./,6MG()!:6B9 G0%(K>,L66=8+NDDc"7G' 0 /\ÿTB$ 4!C-O#53 :Gd(&10B@X10/8Z3O2?$"*9/;'ô(')(1õIG%*************++R20(#?/ R 7"9Ñ8ÆFu_W!Q/B=F 17"&48 :T9Af7]K;69O0B:#&@$F/'%' %$>þ.W<8<(G<GGOQ,Ä/"h$I@2 Y1+=<#ET&fD?aJOF:9T}j¸®Ÿs_04Z>'?%C1+B>!F$XE7 0N*1TAP>183B4W:6/;78,"&;<JHQ,&,E':+-ÿN#%)GHô";3 gS7<5v@[W#F+O/CJH< R +F/=.?$G*b5J+?W89MpA@*(/ <e>R?*?5((+*9 )Fc;GGNC+)F%1PC6#&=H-S:t0R6$U:1%(=9C7<K85=c@ƒXN/OMs†ËǦ]mD\>\D >()!23WHM1G5G2"D2E-5B4>1%C6.B-;'$L#;JB.:>D];T9*'=15:ø#.A!k-,88'JY %6CU0@)L9)L*MN78` =-2*] 9!^2',6-DC)8:+5ö5$*:I;X5^<I'382U-?AW9&ù8?>;A.$0<B0?0*$%(D6&@7?J#LN=&6P(*6<%'^.)[;=A 87@`;B.=(568:>R:]a[TC,%/4#+1,$U8<J2I<OI\$ +#0JQHû3!4$5<(--%R;.!4nT03,% -.QL<PJ<8;;!$995.9E$N(1;1)0K>51ö9)>-111111111111111111111A6.;%1F@D*UC4#I8B1A(O+./0WU2&/*M72&:E 8<SO<^9@+"=6 +/"ñ"6(P@F0e+G)!,3#%5<G>A&+#B/Z.>2D26SA>N*#)*g D/fA'8/*%3VgV!$(B12 5@(4IGFJ-6)aDAF6MX::3"#TJRG33D 17G6*>-H6'0é3?/FH3*%// 448(EF'.I8': =".3MF,,2 ?+.PE8üU<J:5+$5Z1 +00.&@O6RK%:Y .< nGG.-"6dHB%;*************++F;0,9*GB=õ*=2©ÜÜŒW6%!ME<%6&30<+1&:!:&/1K8H 9?7*I+0;@w{@'=8:$+868%. 4&(!L35C;$&F1.FFnI"&,->?$Tõ &$65D,<NO?4"1A>7L%C^B]?:DDC$>FGF) CHT L^LG.?-YTO`'7V6&&.*LD/08KHF7 0 =Df K +'4$5(6ö=]2 +38YF0-P8BS=-PM##&'<N/NHE#'B?3aC41:B$6L);N( )I$1@jYOGF2+ M%;!R"/3.MEf!DCQ9=N-< +O:/! +0GM +F"5 %\0'%1H/A<:!b4-]I@2"NTXm;'=N—Í ß†mI=(=KJ-]@c,!?D)'?>GJNF - s)C<*,JLL7,'n3CI7F ,"?UNAHHb, >'/Bû-2(9 BU08!"$R?7CT?4BCD @N:<2'0.?B\ Y(H0<A$A> @7.RIVBIZh33E&?NY9VJSQ/>,R%(#!?UH@77.)'ED_9"(*1&L?14/þ#;C62:ITþO*IO>,H/U/þ<'86*$ 25'ZM€,<5CCAJ.:XC>W='D&#9 -3.O5.1">W2ý6$=VF$ %.(<"C=3<&4 H9!#C!!+$9/HC #@L)Jú*#+EGP,XK'G/1.+9!A'7 /)5111111111111111111118463<;(12= %*770 /BCL ðK' \Y*92B(.E I0/-2710+Kù3H6)>FJ.*DHG;,IKig10355/\@,A#;<J)BM8L$#O7?@?BJ18.PL>A2*6$/0 +;" 02bG27-:8"=!<AB=)>?".=/;Fi,!)$p1.G1SH"08]/JES1,N82EA:8 ,9# &,I"7?2I;H95$6:BQM/+>=:0#B9=Q2HR#9-)6 /#->/H#A=D(AP9;1X0OA#,0dS-1 +:/é IjB[HAo.+8C*************)M6%$-39#0G 5<µ½ˆW]>">9F&>1b!]6NB<F&/.HüJ=/>150P +B7P%3%&0L),F5-8B/LBAA2<h0I5A974C.&,H5=(Y8&*2.;="2."CAS:'[Q#8+aA#E#'jL?"E52J03F%'4=$=O),%Q2cB5 @:%-G4;=A82D<@W8PG(HG+35 #1746.@ E;+01AE<'D+:]c5!EC4F7%+:/D A+JA20W7,Ee<7' d2*:6JXR4eÞÎ}>G*,A):>)=$4%$;PS', <YY=8$AA71C"2-\'JGiJ0'B*! $;6/9JLB/@?'6L=;@&PB*†d`£zsVW0&F7M50?;=:(ü8[! ,D2B8`!22%l*!('PQABmN%5-DG!0\%2=4,C1CLT:@<*:4WL,:$#6;H$e ^L+:3A3@!&/[ù)9@=.EX+B6W1'9 +#%(A1(6J9<6!E.KN-,4U"4C& 3P#Cor©c&]?8$;K5;?96=PIóO T0=4F; >{:G624$W/>?&$'KF5KLL<CQR@DD$V7-0ò$7,9:=6/<G?G 09CV-*:6MóA7+ý+0 "!#1.8%:<5"'B6-)'0Lí:86"/;Y5IT]AþE.D H  .EO$"/"<R!/F=GD>9*$1I/&,V7;G,11111111111111111111$2XH,)-< %F80 VE)(6H/*ý2ÿ-1>)nA +T=!814Iÿ".*u115789ÿ; (>):3P96QV[.1"C*BRBJ2 +<"R- (F5]6?86,99#55"97f,$' ?MG!).(: "69<úM??X5K?1=JO5*HHIL#/\X.@9O*B7.EFB?A<A8')5'AM+*U,96.7/0"8U5= 3P'SWKFY:.õ+ZD#)<;#N9E0+ A/'ò00 +23 +93)A+L +%;=%4; F$LE'<Á‰H,&.\)************ b2>@L2"!,C—gt6<<&2@22K9&8(!,*N4C+MN.EW4&.9A(K-g".M?_D7 GJ3W@'S>?2PQQ17;%, HV7-@%"ø#&ï">(,G<.##')@9FF&XA<(=$c(D47 ! 7b H-@0</XA4G'1O,`B34.$H&LY-D4;9F:A@$6=#MB4D'R6M÷.+D,>XND'`=*C@-;C,Z?0!*,Af0ú)8?GEGI79>W@8wPGUsÚs@C PI#.J4O7%; .-="F$WKk57>3H-OQ953<&L4h61:0P:2$B +XR-BA4;M$8*0DS:<CA8KS6u7p5K +O$Q7!-N&&#M?'](6DD9E46'52-S:46<<')d>3ÿ:6#?T ;##BK*B/%Cû!42;4.M0A$BC56@96.M-J9'G)9#B)1:$B8 8U H&,D;(2)A%7%"A+[Q0;0:'A+ %#&#^>06os>2[+fQ.<A"\A7.7(-$H%B#%+H.NI >017='Að?#LM7OK#H(1"2"cr,h0 3]V<B;? 21.f5Y% JS&'.8M!08<T<?)+(8VET;HWF*->A?B?=B(,)û268B638F1)*ONñ8$ER 1 /()J'C472(DG64?61111111111111111111170B?@32#1&,H6=6L/<,%">,5! JD%-)ABC;9!*,'5HcHusD3NI:+ý<-%@7j.(G;("D5F/J*S!2(N/%-,@E=#G,?&-2$85378,*.6=2:92*G3A4a1*4W*5MJE; R6 0ò".P;DMM<$6,hIB+? ,GM7!B7DII?A'$?1Hq£®BR%'þ"+*5 ;>-%3J0  T6&8D489J6':(4<!/95=GS%1_O3!.!:R:vàóse-:2)************ 0*?)<!)= )OTG[?=28)@&BF$;M:4C+K'B#?þ&8827 1L3 +/ü3"+&''A(7$G4.)/53"?P2C-47 ;=OJ;<?(:N,&.607!g>-5UVú01426L4iTLen7F3STD- .(*( +J?!L9'. 3)4@A-'PG@BX"9G](T7Q;`1I 3,0)_ L30Kƒ6GbC @4H-BL-)+?b'435"0Y6)1)L#:H7.%@V5 F>.>6&F3;$@9;"L3MƒÅÌGTd`^QC^&."&R.!(K.&H7:e=!+LX=4%6+9#5...3$F/7@N65+FA.$A.-T5:$/892:.l6MS"'Q3>:RWN(=7[3<9#0GDK]PHEI,$!65;3ZV )5="þ +C=/L/)60=3J9=4:)!)>+YA3 %J67!JG5>C,1-KjlY4.N;M%88/C:2J4@"4;.(C*P(39?"<qJ%;&Y<2"1"4òXT$G%+,A4&,J>DjS5767R.>/3F+0ZZ0KEC $?($DF!W#7N(7 Q436*H-$26,5O8]Ì+\<&74+36G-<(!ÿ.E!7J.2G9 M*@7!8ê;ZX<I6ò 2@(-f#@B43/0K3\#%6,(%<+M(.>8)' +63@8C84K(?2=.K4#'*&T O@ />6$3211111111111111111111*.R#ù%HRED (G$/<*N ["9/6g2]K2û"`,B !A!@0.-W!<ik¯[<Ry<oW9,6M:5,1:/A=-TJ!.-8 +E&3E:1G!"4H)+/ &0C2Q$D;O/(AZ2&@DT +J/MJ,Q:-310T? 1G(E_OOH 1O;;:D&SK??>!I&/!:D;4* +.ND5T/,NG54DJt,<©ô܃H.89#78I-!Cø-B<@F))7;  FKAü;=:1@39&7=81 9H: %/5rDe<+SK!;/ ))***********J8HE.@KG0eDJ"D8A*"J( FB+@N74#0678D.:3;$/7.3!>>0 7$*5*&Q I(1D; %;>$DE=G'".W +1L183>"9*N/ B4:e0'?P3=7<;?!DBP 2(O@<. 04=9/2/H 86 G(6y:X36) M<D >F4%8?39!A4u1ýH$HO%->ê'9b@;3Ke5%!5+(9,9c7>>vL35:9J@N3*2o„w/6=cE-;)8;(-&B/7(FBD *3'(*R0D3BHM=B3?!1=(1CA:#/4N!(,A-(5'1@.V)B5%FCTW6+41%QW<Q\0HMI>3b*;:R3X??=;b%DG!D".8,A5/B&<"E?tfB*:IK<6.6C$=E,>*Q"8/,+Y‹»‡`S32 ,@_J.Z>':3H/(,&K".#,:%>7--7J6+#D?02),,J&:LL"'<E5JlED0Q92aFn?TA' B3-((";7G6XÞJ1E)"T>F \0R(0:"$16++5HV@"=5G>Q2"øJ/<zR1G1-,(D+!!72eCCD):'2;9, %315M=A##6B;%;*;%:<CO*6;G7:,F)(/: 3(,,$R0S13J 2141ZP1TC/%d$,A;.B@3%DY`]hDQ4, 1*!%ì11111111111111111111=,-9!;U75B/(H,4DB+C#(5,7!Z.8C,FO3& NKM )-b( FAAhl_S:>*%E6876D$"3*11+&&B>'3(73=-LJ+! 0%$Fq5)<FN$ +7DQJ@!Y6@6B)H$-\\L/ )@?(7L:V@Y 0I$6;9'15?'G/=;C,-!,E(+4/3?Q3F&)U6*E7(,9(?PQ‚†tvUH<<*5=8RVN$+'":(H5@U4[F0fQ)5$'¨:P*#9. 5.>#8HW@(B?#S>/9)))**********&;PB)`+33K+/8(?0Q/Q_;;3*,1<C"07KT;IA!1þW?4R9#M5VA*=K0_ K1B15V=R5S$YKHV/$9.;<@4@0*A**$8 =.gD&"10F +;*!@C6QFI: 9. &H9+*)R'IJJ@Wm25H$,3+$1HE,THJ9LN:W +Z#82HV/@4S@<SH$ 6èS209<R@C*"#, H/W?4<529=4(PIC92<E3 '1G(9;UIK;#c$:47MjII40:="48M>2;DS';9F1"*,2'L,&35M8M[I,#[3+3%c 88#H*,1LX%RC"VE<Ga[j.2MDAG2?I+(R(*(123@G=F-S>2%04- ?1U6F&7=H3EG @K7CMoF[G /Z(N0N8<$*ZOH$úX]à­4¯3 &$X?9&?+2 g %956D6 BnG÷(AC 4$5_3A>4HßG62@D;)H5++"&  73:UF_P|>?GJ;#2 %6Y."1-&*-;)B/?C!ÿL04%N.$ *W 1?< +=$M?`.)C$*@5(/gD?-2@3AB*4$M2@]X26=4 !&4o()f'7FPú6;%F:5 3(/()3[@40F42;Y0 E9ü)>44,NCý739:6[3)85ATJ!">+:-(?;2:?­ +éz+LGG/=111111111111111111111--&3I+* 0#$<;!'?&H4+?098%C.;28A`'+[0.=-$B2Nf1'?90-Q3M3JME02,*(9ÿ3+k.CD.<Da).))24A?@YO.4*86'6-(]C07,4B&W.D*<fnU[;6492FnY`YD/?,RXt*.D/DQ53a+F#HL)<*8E+')4=H3EDO>*R*$1-P4//#27c+^UA8 +1K6'"*P÷5&* 2CQT125A"A"J3,;5#3;7WI (%+ I8#-<+!1 ', ,))))*********=8-2 E,?-().6= øH)C151 <*S,S@B!>B)3)$:%J4:L>2'1V‡cO<PE>6A;"(:-'?(AM*K*8 $4**6,:P82(K#?)@>ÿ24Z'&>E ;-;EWFHI9+; ?H! +0,.4#%, +"E727*47DA3/I2 :D#;K:(%64$N<@,##];4BP+4+010Z1ô8?<'?Z*b8J6X5$;7 '+D=G*4Z)0BPSJE;*(99$@:^-V*.3'!H2+%4 iC#Cs0:?*K00.Q7 3CAP7L*0$)&$^,:6>SBBCYM-4b0WJ/-0&/4G;EE+,HB&O.&Z-TE5L:JM.;W)";$/19"@^:)(K'D2LWM8;/*&055P"(g8f+rm;?.54M;6!C= 6)_4%#%z˜pd?Q5.6LY.H:!17Z"@9üF0?C/%*3A:G>C)E]Q>9<i#:[-B13:-,EB<:D[LK/ B(ÿ5–BVT@L +&@:;(- -];*-0 Dn 4IY2*AB)7?.B1#0>4(8g5bA\C8P!2"5$F1UEF5&,B,ø*J5R;*-C(CV2@0 /.3N44@1AR]#.@3G)-/''+:DA,'?÷/5;2,:.+:B -:),,Ub(79&'BS&<J&)uEA7H*:(11@:7CñN&qCR?5""11111111111111111111:AX9027D-7. *K:a</ @.+B92@58\Lý*C2)5"Rÿ$[X^UfD;MV1!#--]:%'C!$V0(,B4>3.@9A"2$3?FH*J%S *#_?-B\%Q*D(B5(6I0 O9U:;I:@TQA?<@*742D$1.+I^71E*VuS_M:.Y&!/7G==:??? þEY!Q>K 8(/8CN1@1&11,>73<$Q.:=>:85B3P&>(5=3"=,)?6&:,E<8732G '/A;0)LBG,b-72>D?F$I#<7)))))********A+$,A7$*=#9)19*V!<S.D< !M?*!3#XU?C&I'DA29;HVñ\L,`‘Mw7;<)63H:- #@9*!7M--  'D $SHe9S?]&E82?_,"->')0_]/-<O2+PiT1"=f@D2:?'7'+I#õ#OA<'P>.$:@?:K"XM *!0F@O <0,kNBC"1ST0>:3-)=$+CLQ%)'Z$Z%**PJ*4c\+J&88`@&ÿ:( IL94>1)AE@)29 ++<A27&9'H2M81,@5*D!I* Q8EGA0('*-(HLI)5>4Y'@..$4$D!3H.:U9J@T3i@3*'=GZ6*>&,5?303):2<'C;P1-R4;,232@L+<B1`2")D1NH:3!C*#^FO&2h77RO,1+8=:<0(B 8ió!Ê?E~Y#0; z"- $.$>*&:%5<E-L3UOrNC*=F'_#4J0,-4?+  +C;3=U0EQBO02L+/a?OJeI:0 $< .,%2(4]&: AD$E%F82þ$!2ÿH@9F)CH9L&#L95$DP1- ? 4H,X'/GR#H4OV.$F65+O..DC6Q26>(5(F-7Bö$8 +'9P5-C$,8;3 ,&A A88&XF}7H/.<?&CAK!è+;CV07D6* ?(=6>=>S=O0TD-3'Z*D$/@3AFIª f ,'53(,11111111111111111111+8 ,;@ !E,:!-(ÿF!I01;HR67-*5A(56+:J"+ÿ$,ˆQI2AE`OT-7;P2=2$Uy2'M=3.4(R*'%<33*()-.+91qM$f59/1Q2/575<GPA9OG-@4#6)@(R+$QC@>W<6*B1EH&*1H'KI 6:)[_e%6)E +H WJ,,/ "JTY4'sC5N'H9=S$!=3"D:;%Pc*8<$,1,7!D=1g9 3/2C8& FLEE&7D0I@<;þ$/41#0"**-E@F5JD*%02 1 '6)))))******=&=M/35@W7D3Z3@&H/:4?O8 I#+:(?2-*0.&5ù;)5ÿ !./&AJ9; W)B\8'3$X\ Cÿ:4< ?#9'ñ$ .*L38,5!=1Hi&<@M7)'31/9XQF/ +*B B*%%14%Y3.5B81A%)L'&ôN<a0%@@M"6EK#/HF=!!.U2S=(+%%&6I?A?O )(66v%HI*-0O<s"B3J91L`$6'*(FG0"*.G2-'.@<!')=WLJ<I)V' .9N6/C(JDALO,J77V@)!G>3#U4=,J IKþF +E8^$6&DIA/Q> AL71.29#5EQ:FRL?V75;-8B>J<5Q"*=$T"K3`HWO3HKE&0>3/J;=(?)õ7H.>J(?<B>.353"3#71DcS(;<M<ÃÙÚr)F+!#7Pì2%=9G1-AF:*:8*,k|^cQ90üFY*@@=5ý6#6GC‚oV.>E_x$OCW:/EGUa{JN.7$4"  2.5{ B'CAI':>4(<*B5SH0B>÷;*&.#<]=%6 f25Z%9@& =C?#1-!(*8/.3B3Gt$<2)B4$9'1÷30+CK"O; 5.2<6,',/&,7=*3U2!>5H$8 +T0J9=BI491%4C!4%@. *27*C,))5<OBM-T$Dc0A]*#H?'811111111111111111111$@.63S%8,*G!# +)<-%P!.,B# ' L%9$+BWB4;/>oPRT}¯‡1i6F-'4@? +^N B81>*"*?09+@H@  ,">GFIA.V%6P)818#/2&"1744/=6D:/3$eD/> DL.'/5 :ISAo=9Ee;[f8FILk÷J'9&;Bü1>Ag#7ú@7%AM>B007XL6A0 5?-tT<,,(?';8 *C8.#3&&;"E+>Bñ7 +>SQP*>M9 +5,"758BÿL+:.+C"D'03F3C4B'#KJD))1111111**C6B1D5#4E24ÿP,1@)L45=#!'KE&8S<2J5%0EAN@V*6A QC#Nò23d&ÿP "E-V$C*G?#%" 0;(@D$.8B>2/:)J4=,5:2,6B&!=$3)+F9-ë ;( UK*0K38;'"üE;)è14 M+,27:29J),$)1)49E8#&D".þ04D:-><75S2qJ?)3cb:J:0</!(?Jþ'/:28":C9' 8P251B,O(1-*I:/#7? /TG<0NC)D 'C>>,+O0<P+7"DW3,)&&!%>%G*")o&1h6?39/D9U@<"<MO0T ,8'F)&2@?FH;A9!2:6 6::,"?+GB4@")'G0DD49@C)G.M91A9<97V/&wH,* 5*A *BL*GM8/G\D/-6D=FKZjm9O363+=.+]H=1L?#HD@, ,H*G+\\fˆqB5 $N97Ka5-&,A"B"4*@X”¼½«UL{HEB^X.@6V9".9M2T>L6M^0&'B$ FCEH6p?-1"F7&7S6':>-5*$'.8-5RK5/GZ<?64B60)>(==0T<:1:j-(F W.5JZ'EGT)%R> 1]<T:+'36 .ý>,/!?E OD%_BD$;L)R?#"5N;X8&<%939) +*-"@)C(õ#8=%.GLm>X&%(%9 +11111111111111111111#! 94 B6P>!1+2C2AT7ù&÷Q?H9[?*;4700E;'S)1)8Xp¬ïÍîzTTN,IJ@#@.@ C:8'%3'.VB'=+<3&4\'M<23.1,$83SCC6DB=$1)5Hi0FB2(-.F08PX]5 <%;R^BG82-/kB G-Q-'(3>2\!fF8+B-@*+=+#J0%14,)mH GT<,31.-, D?^O.RI> 7F;%7$>5.LC.B 4,. "!: 9Q3AþB:DGW1 +99 DN(=()'/ ))1111111**75O;713<,"E//6&>?Lÿ3D!")-8-:C=;#30Q3&<%/2=-ÿG&P7F:)(1!7)h@HC 7N%:^;!E:+JH%,<\2S94!BO +40*"XU+. 4>D]</(1Y/øJ;(4:3û"I!<F&/W4$I/9U<ÿ3#%)>2!T$%>1/'#%%8FdL4T9/%277/76D: +F(9þ .+&+&'SE6?2JR8,(916;=5Uù3,:ADE%>6C1,[?!##'&#01L.'(fB4$%$3;AAI&1F /Tg,/>öY.>G*)c*+U+B+0L>1N4%>9BG:5)547-4M>J.L?!)=(BI`<!?3?6=L#7Qiø; @S-FV5.S)'G,5Y3-)0+3!;ESF`."B##]Y(D9  (,>U(T!H+6D-.DL&_@&+ +khM&%>;2O86P"•Sj[EJ(-(ü1(ZG(K!X 95V*9=>FM·Ñ¯;n™w6*/>S?(E3'*9/")!9'*-9V.H@648(>EëG-,O.);$>@,Q6,<4AM>@ =I-X>.@?5Z2'194!48$"ELC=6?-M*+9S-<58/*,D)*JY,KD/þü"(9<!JE;G40=/%+6*ZA9;L ?'$2]%IH+W 4S!/;(ú*\"2,L87,K ;7(Q*N*A)E[I3C11111111111111111111;L5,5('S59$ø5>);4\9 +:9,$ . L6#5G9%$0BR.%MDHYct«óBM#å–D5UV>Y +M0-7%-l/ý/IK)F#UA'B!6;*?61.V9M'9)8JB:* LK& @)N3,O6R839m4, 'N+=8'4@"'H> $>+L]#6#&M><^ +;=V/>_O1G1%,7.ùO68KuWŠYBy*);8)4 +5'G6%E+ 1-!8MUCGA#E*9LPF.N 'J%8>Uù"(3+D='+AP3KEh$:=7:B .9'RRC4V))1111111**8":?5"@ 939:>K$3.-<.jX,4O,-9 +&"se+HJüR>+H25-*\S04%-GN/ V '&)=:7a5 +@ 61i93*+B,;1C753 +(*(L @<?<D!4;@+5PI29>/)3$DH)<7-0[P HlCN$ KA%<A?G2FD.;23 +6I1EK*AK9IO35I"Q!72í1<=]"2E5I'56 J*)r'21= . 56&"W0:=#F' DO"3D779\EGL)HFR7$D3B7:7/;:e5-;-<AGY_T*:#47#0% 8-65<4&x2 16/6.FE45+41 U/2#3LFC/:?4)@3 8=A).AM4@D3V6ú"A$7D3"3?%3#TLB6:\Q;G76_3C0#(+1(.$5!2F7U%:;(X-.@[.B+9(NP-1;í4>+-);*36J5T%>6""ACid'9RB&C/V(gQ#C:?&4+!6.&`>2(T-\&4!GLUl¾¥ ˆRvÇMº\"?6U;Q3+/(.2I;!MAW=&"<*# 7D:'W>V%<TBS%"50-D<2@,1)3:U%?&B(e1$,:19)!+6 KKD-F>PaAK*8)_8< 7,($-CVL)k@)E.;02E6'?F(=EK846>=EK/08OK&887<!OA30:=Z93 +$0HSH<$O#$>(1KE&LSM<+%/*1X11111111111111111111/$3@A;/A#L<<&%1h"NA28<8C7;C6G#E +]ëT@4+:9H/qŠ=3kƒF!Ë`bO2E++$)7R;÷"@47')L., :77-ø+>(/,9;C9=4?,H5 =&S(4UCO`c8%8T)M.("F/ø G*8"39?) =2F"42"$>QE?0@û,3 %(>.-A?H 2"kV=F4: 8  +M)W”£ž“N:G+(F,)ý?/E$ FI=V"-J76QKW;",%+!,bQ9E E-L C5ò)$1HA,H&+%($J !,I*?%]Q))1111111**ePN>%*%$43$KV!5&0!  ,*#6+;: S?2 '8)_U+=#-2:1d ô?*.ü '>+X%)ƒ*;%P*çRZ"J5+45389"4/:63()@@==.-6L4 U%*EB'4-/9 6+J&>2,(R;O 4@PQ&@5F<=A@-B8 /E.94/.+FB@5F6;G)u)+$IO'N9.YF@U,92>-X90"."$IE!c#"*VKS 3$DGC<(#PG;FRQ893RMq%@(8$I%!+%7F8K3I"EH7"BF;>-N`+KZGC\50(LPM:E5-W&-. QH@3A"; C)$71/877B3*;OFHQ>A=1 5B7Y5%55;@15SC8&">jP=O8OK!3?"(P:L='`9#C498$5.%6 5:SX&1!5*81a;2 )%O#>\Y?APe["(T[Er<3#!F..#>+4n+!'J7U,"9%UaI=)(Vþ/*4"2B@-S0:>MR)t‚U Áo6´)‚´²k"FNG];?>24/0N3#:(B 2.8S7L>C'@DB'6GF174@E+O(!LIHD#" ++5, 6&9V-"@C%"V2=DDG*]I(D'.Ya"2@P40"-4/'%%.0584B("&(530%*450,`<I/13D85D2/523*5$=5D  +)B+DN!0(@-:8=:2Z42% &ðDC.Y0=;:.*11111111111111111111RD7"%BP@C1B$/N$#KL9"6N':5:6I39*//C76N80DE#NœL³ê1K™CËnR$ ;6s$75"-81M ,B" <%CL&8ùEI9TT+-0=:.&6;+K!7B-2(>;=,@>?-1#>>>*BA10 )X2?+<UVM_@-]'--r(%PD:7-‡(DY.@5/-…c‚bx>7QZ,P„µì½g\=!L%87#9.BDF6.>9(-003*,5U4547!"-4&$B$DC90/. \F0B!:44/!S<XC3N +}JX"D'$5G:ý)1111111*V>RWB" #O"@NA58"5T.0(9CP>@4L+1@3@>69VI.0!/&NJS6D5N*- #A;/16B$M=*D8D(4_ J)+]C!:5/;1><;/CH-@#v.8([ 6*"*-H#*#.4=@ó*#B .&R'TL)=L;L.)%@"@.=K,bF3=.;A3!,9)K5D<F@24$-2=<!5(H!M& ;0C/F=8+ !9<8GL!.W$8; 8("3N2:C</Q+;0</4"IkU!7,1$$B:;(H53.09)2?@ 5"831 +"+> $eG0+LR0V+M:2* ø)!3AHB-)J,2L,LOHOQNZ!MZ I*"c+9'K)/+HM?Q LE1P;8S6D*/?99M+2'!VK@&D74/%:.$6XUM4EY03DH80@B-[H*0#/(P,.H26R1@'-.,?~.5H0C*]OR5())L 7*VB%0<)Af(;=-0B-I0pcFL&-+7@92k †$6@*lñ¬?0U"12.&>&%R* ,t 3CF9<C.G# 9)ê(R*AZ[6A50.^1O/ <G532üGD( HP?6P-2E<9U2KT,L%F3%C#;SuH?eQ]p|;s%O* ;&Ae'); D%</2:B$w,:(68$-E5CKI%O#K"05,84.;<Z+Y +<CM-:4?%() +44+, 80-!4,N66@>0&0)#)1111111111111111111JE;'"C3R".O'C0>(G=._4#Z:->G.&O* ]L20??(%8B5KFôƒ)˜J¬8hÆm[MC%M(I3#*!0=#56"8&.S9# S4:L0C!Y HH!25!K>@ü/:5(*!5:L$$4f8L;>A(*599E'(,+54=-C>$L6>9*$28D* ])2,÷-7b¥Â§qZ-E"@[@ˆ¯Æ¬cYi&*)#,!D%8E9,(4@@#9+4)8 =^ G:UIC@.-)-7;.-.-\*& 20"G/B";@8G+4=?. 8:4"2E.")1111111)$M0C17J",P(QO4,e>/IKþ"b +J#QW N &&4",NKSR&',!"6:/(DE"GEO/69k %(P#U=;-ZG6=AQ"='.-L8<;(4< 4@< F'N!9%7R<79N3 A03/-T# -OA )-P. +;0P)"#=(3:"I&6 . 8K:EmY`=7(N054 <J<=$&4'>I!=cR,]NH41:+"(@ >33#-1F9ETNCJOEY7?>6&J8<@*A746#\>a41$01 _:&,>,; V!3mD-<-.>A)>"6A32;5!+%=AAjB$?:i÷'=RM%)"(B%?> ?I*063<>=!\3:6+d3'$"?CM4FX@=g5J R9B$DR@LGXF3/9@Q;4,M&*))jK*.e) %Y3VCC+N&?4 8D,CC>0+*IO('/7PD*":JP>*:/-%3M.B',-@<E*)'.7"2(35L H:+!.X öA™-›TSpP#ú!1)F0?K)H'(5AB*S8 >I#NJ=!#=45293J- 68 ;%C8,/E2@'$<CP[5WQ&84%0],!6+#9DUGU71MN=?G$%YsCU>-*SB-K8*-41,E#5>\_G&F%A%?-,A3E>ER*1%3,%428*0L9%%62'\<R1#HOCEIL+g$9KO1Yk5?"G*k0" 1111111111111111111B1@$%3)9.>.ö/-G%0D)8:<<3-7;@"?96/6@%)ÿ!*(*9(5=>C5H%k æš´mÍmVÙrM61'.%D3!>(H3!5-$4!6,>?)!)';AC> :3r[4P*5,"$,D+C<@ 7:B''C 3384(%*429J1G/%#.%-PHZ1[].eS86E50'N# :RA=2-Z7FPC=8L/5K@uŠ~PG:IA3Se„|D438E73 (9A9-C_4D 58"#>-á5^%FMB=`IN#.00E5H@!VLM-f% ),J(-#ö]<U=,.;)1111111)P$3@# + C39MC`j%1@*W* ñO:B<FI&;B?+=:W@O1@:/ ,(++#:G /!25:VA )-5+:&9!-J+N0"C< :0f"!"PH1XM%63Q-51/0"5ù&(E+;ýB.(93<.@C,@CG*/Q/=L9 C50::<<(þ,8@>-768/B?)/059P0T1(/I*  D3|;/J@#!=1û#?4)=1*KJ  +;:. CU >M L8-*)..A:#NG]K+4CQJ@B(J:2ö. ++=51 _L;6'"`WK0'?22$938@ +59M.-;)1;%J$4þ9-&g4T>.47C:$,P-.<O%4SoA-K3 P;7^279cQHf,K&4%JKv,D:BH<*W.9(677M KY(K35-DR)C +20CI[)6E$+@342?J3L2e$^?I# s83#/HA=Y6]Y>/3%B2.S/2<9=&@,08,C1Rb1>>ø :VU*57+@;\S› ³jeÄMWF?;q-I>'$CK? +EDDIM('F9@N.Y)b2Ð#ÿ:JI,&:E;-'VbC#A%>C<7)--/@g…¬‚iRG/8%2;<9>9S%3=cAJ +I9A7(7"-H@ :Q(!5$O/6E9951P &?9#PAD'+S& Q?RR,QG+F@@-+#1*'8A)=1" &%NK-):6:D yO28_9F&)(1111111111111111111(5$0F74B/@./1$CE!2G02.(C% 4;P-3>8*)'øPC50ECq&ݸß7pˆòS_GGP)4SùG43>#C F @UD@ 8 =5-%9.7b>@Q% =1E+=Z1*5&M690#=CE5@?DD71"975I<0#3 ?'#3 T&0F-_BBC/ !?>2;\@61VY/7.2B[<@N94J$8I4:(G\\82+J..YA6$+:>.*[;R"![ '3  X9A''3Dh'5,0/XZH*J7`4+IO\;:0A1F9+32(+JKö>&&,B!d&)71#1111111!4+"+C0<9%72NK!//@4) %^C1("J680;8$&a>"4u#:44I.Z%/<<U&+9`146C4$*0,8(@>ç40,5"?K(".:('/A(5>NB0*=1A5=CH3'3%Z=-.2?Yb'O(<KIö6L6IV:"+Q+#6<".F%*A42<.BS:T/:/*u<#:>PC%6=P#<+`7nA.+EY"8;b#EJ,1<&+64C';90UV4&MMõ6%R3>G2>S@T+-CML=&1N+A E/?E9WE)601-53$:8I#"ô6cCT+4(2NB4E5dZ"!O  +('J#3SKF"%8(#>-G@)%=‚@`.0<+R__aNUD& +,,:,U,,#84-$V*>#$5,U])úF ':E/'-=$/OKK<JK0SW .:8B:&1*,%45SK.?62A0V|jUI[ +8$F7%=3%:YP@(L=cYI(L0+?LN%ZB"U, Z’ÓÚÉÃU4C=JS +AA+* +B=S@5G985WPC7E #*(86J 54+Ac3H::i&=/9>G94>=.;CUq­Á‰U5D;R?L5(8D.!&@UBM-F +LJ044<%? +(O'0>$%#+/+5 ýI8F, +(G E;32C&)7P:TFA-<,0#59---+n0L GïCG2;1=DA%-43">B3 5%D1111111111111111111@,G0K4/8$Bg93Q'2P$8*VD=÷-K)A@B)8=1m!H1&4876j>f Êì-¥>ºÐ¥_2**(E@8 1+1+,*-$AI772[4VL4=68U&<I;-5n7L%@U-K3J(=SR  /;(]*N<&aB='8.:9b!.:@ý5D*4H38ù'GH.H_RC$HL'Y/.D<5'*/;K/+.X J=07S9 +( -/*%>>;&14#Z8C!(8<M,5)&:H+$3B,$-72dO<`Z=8L35A 2"^3A0A,#?*4$6r/'.I(G!(Gb51111111T)('J <4U!)6F78-1LD!4@{5(""a(+.XU7I@(-P.÷C*& 3@+ 6R  (1&B^)O$#:RIB-2'7#5Ø&)åM6P/9O.G--172E>39(*9ED\!NO!$+%A 86'm(ü,94&60*':214A085)11)-C8/<'/CK17J 3T6(N' +/A5<.,+0mJ*G$<U&G*,+3D2T'F90=?>M%@-6QIP#6@#1O_2'A0L;&/2;W@5.7J2"#.+:6C38*69.J,%Cj1.*/$5 D"D,D; \,.(:9CU1/??)&0%Ea(6?pD!h7P;(1McdWKEG:1@9 N9[\/'";D2;<!F>Qï74D\IQ35 &&$*056,]’ic@)C<%M"%'=70c?6 <L24O*?AV(W,E."+8&N45K‚jdRV6S+)*!H2)-)%9.O.hzS7I/\#;-;E1PR6=/iSVmzŸgSA@YWL)"d)5,O;%<*/-5)J&: (BF)6+3+G;5>m90B8][5/AB +A UC 5(UTHdi[šuXEB*TI&ù#E +<K/(c\9=$J]#"!)J$$61+&'%IA35BL`/*T,7(H F8*12DF2G'>10c+1&7J#21ó0'7/'-/'"):+?3.);4"BE>91ø1111111111111111111%,6C)4U+*7*%T#+7)812@;2"R:811"2 ýG12(I+?:9A3ÉzL‚˜,¬4Ð_< K9Wk%*$"='û>-6; =;B&M &EC.4KIK[/7/NeV'>&/9Lp A%68@:2K@@Hlˆ^PB:;<?A887O<89"`8.6%I>++$C9) 3)'5`)($&!&B%IPK :C2534)3,U@V, >O:2%$522,.13-5'61M1/80C<" '?:((50&,(529"A#BHÿ5U–ßÁz\2L;5Q/J0'ÿG2 1>$*,-SJH3)I3$11111115$/$NJ5 S860ù6G/SA0 5/3Y[, 6!K6D@@64"DF %?=?@41&I4!V#F;+ _@<-,B*$0,(77 G$H7ýK5*O$#6@'0#9*-7.ð<#680FJI$B6oC#4>/3>JSôBD(-1J?)I#9'(6$5E ).%%,7O'J3 %-E<;/8)F÷3DZ#.@F9A1DB:\>2WK$3..'! S)I7TZc4L*5,$2<=@',{kP/04P:MBI3,B<- ,364B-5G& L9!A?OO.4L#@YL49(9#1+4 +'8619WB)M<94'X+#01o6)S%C@K7y3'".5618="d&-*RDLIQT@A2)MH55R)2'0M0I%C*D.?C=8PPEJ$"R G 8$+,Q1K5-?R0HA0<)LCI8E8"FR.A,-9G$' +1\6&6<b**8 C7=%ZMAE6!F$F5 >D+?7Q&E8"HGp™hDH0416SZ5IPQ-*+AW49TM9_V'55*:(: 5B5b<#M4)c298l>A,<;E*2=.@'EM@OMX0188%0K67/M;fU4V,q>8+522X9/'B3_b'$;?%<+4!)1 +28<%V-;? (&Y&P7; )95;7?-6þP U +4#))&#0@3%%0;31G8L;/F*D3=BDb@W;$,&,Q+B) H4&!!%:11111111111111111111-,L3C,[ 0é8.? )f2,$$J=6'V-F:u+428=5-F=2+: ç3ûI08f£Ó€¹Ü£@÷¦MY=:MKHI&@(9(9>Q, / G,W&;Y"91_.xi\L"R(3W\]*8)@@$NI;B6\1M" TE8‘¿r0-MA,,3@R2<MI<.B>L3Z-K5<XI* "=K <B1CMT?  G9?%4 $!17ZQ:9$_=3J]O=*ò2FA!M.6>C5,`1#2>B16ú<B4#<0:\a $)u'KF!<$:&@"B<:DF-L7Dÿ'?91"$3)1111111)3&)D)+gK<o54=3L($`G%FP819G$0I. +<*D2J/8(4B?F_&,3@%2@E"[.aZ?B%$5@rG<4.!"(31(D?'1#ýGJ=%,7>% 6-BJ!%10U%)*1I7J>>(^Z;@ <B$&6H/&#'5i-L5:$4&B57&8BB-7/,80.=C4:> )9'O5 6(6LCcX>9@4/>/&E*'7EB6V)_& -:>#QE7FD9:4:,4%=.4#+'D%*@:<*8=0%#@)&'-Bÿ:N2 `17< 6*"!ÿ(687(4&S3=<S[?'=3 ,)I/43>CWA''Q"PcSxg-E!TT9<;3"87-+9I;53HO] 26#a*(?EQN@4H:%+?'7GQIG%q:;SP.;Q)NG5:4:hDOF2$.8 + >SKMTM@*8J%8=4H,)((,3'-l.(%:A$;*61G&34”V68F ^ !-1L?:?JAD(@*=B&r%ý(aD/=35e0Q(&%8#>*2I2HC3>mrGxBó;ö :'P7->/9,H64F-ø*=:)û"/I0E+=;A:(!<>H'8S-56H!/!>-**H69/R0<6*B;(P&77$?=?B,3'>32?ü3R@C3,;*DEP,.. O 5F$4? 67:#M7C?!'Gë(2,:.402/:%:(&+R,8#/1111111111111111111F.E)3J2(Q&G?;"!@<4!'9#&G6CI++>)L,--. =EA$-0@.Ap¡Ý@Gv7FLB4.N<1@>?AM25f*/A[;F`%?1QID5<?>;H;(M#D :19<'GH* -"kn­[,)@YFW8;2,I-M+;&,%SN- '6G,V-/J1,ë!7 -#C+>;37&(S,M.g$5/NH4GKS,% 47>4"JRI(.%@8"j44F'3.+%9G3ý&00F<SƒçÙ/]QA%>I*$L%&%F?5+?0@!#0o^% +=Y11111114V",1 +UCT*C+;=*N-3*KRS( %;13*Q6'ù4X'E&HC0,7 5O>3+> ‚3WDF18* 16)O:J*?;[G%.;,+&.W6@7H)÷5R,H;/6R,3;+AQ0,1)<@'#MQB1$4:F,48K-(58F+9q OG>*D;91%:JDP">I::<<)25A06<: ,h3O81PDGa;1,4-= =,-\-;~Q&A.`@' $%08.. B $}>3@<E*_ÿ*J5/03`=:EC80#830!.9B?C#ú<?+$/#([,7:ALê!3877P:.E8%F*%<I;UERE6=(\ +a!@I^-bD.?=Q_KD:Mú-IJT/$7?[!!8':8&JC 9ID$M))96<&Q!'636394;'#`N27+T&/61;D4.-#N/04<,=$@4'.c(#24B%L*A"3+935(>" #6T($/"Y.-3"K0&6-3GHG[H>IFS_,3(T0 H3!0).V -?6-(,R "?2ph9NHOK=V12/%@'#9E3(Q84TV(>Q;;/&K=YA"T;`*5.XOBÿ+!4,bû.VO=C M< +A>#.û;C# L$REH3 121, V,1T,= 2+';@"7!!8S*T/$%7D[F<B13@-CK'!E+G> /,ó#4D=$B/B281111111111111111111693'E([Q;9-G-C+E,G.0@@%+90",-+6#.$ó&$ME)<'@/bP;R2Xfsžy™uu1FS5;.0355`;-$:6HB H-J_3';1VK3CH6,&-;$7E@;,.*6÷I**(ýL"9ARNH8'BI]SZ>J5BT2)<L+b+,*7HD&22*%+#76D/.&!<1D0F2$,A",JH5H"$8)KMZ@3U'6+7CG!@Q-`;H+3$25D6,7U!/L0DNU:84`B7gmÌÿn>?-F+(':-)4)#B45@+C;/5=&&5 1111111,L*R-rx8D3cE$>):\>""R;0E#''?, %&=@6*7= +'X! B 0539C+,=,1(JI,<@.:M+MU/)&FC04$Q5.N.42N1&$/F;G+##,)="<2O-!>)%K*<>"<$A>;+53))!9=I8@:BUq•4F9%$P5*HVVU+&")3*31@2+!16D;>4],0 (9>:2*8#NK,DL'# +9]$J"'ó/($X5G3],9?  @'6O_C2F<*$>]H)_A/>0:(OX& 8J++4<);-LQH&,4>4KA>\ !9<1IC9IN55+)<0&E!4('/"E'JS6O>"!\;?kpG5 /8+[9qbQ:S52*P*3(fHY(48; +3'2@=M9bb=%(%B/'b.C+60:)*9"@.K0>BWH<D311)'0CV5RüBA3ICG)M33*>8ZV4T."'3-=&E>+%*@("+s.H GH%9 H +‚„;D'#MKJQ[@1Y0%7` u)49' LXWF 68.(0IV>>R4K8J2@*6#1`1%).>/CILF) 65OGC:?<5:12|4<*<.(@L@H7"L<+'T%2,+3C!8\'EC*9;-oA'> )@2'3_NM,\<C 23K6?FS:+ )VE"C!/74GI2U?%?iJ7$53Q@3*>*9.#$P4+ .--.2$<C:21111111111111111111RQ>!G303?=M2 !5A U>)PX13EA9M#H0G#!-#8*3H:28&(WCN‰vZxGfE@$J.$$8<D@L6%06"B+5.G:@,QQ7.32"8?PJM);2*@#@$!:J1/08@BPK9?:0/15F)%:KCPIT.?6 M?*D9-)D<6$#(A\#*C'I!MJ[A-N &;(; í6U"LR=#ÿ;B.-þ2&2688>?E$8H!G.;Mþ/&36DIW-7<%08E!,O=IJDFD+MTidD-$1f(<L'@(63PE(< +YEAE3$WJ-EGþE1111111G3BJGü'%N8 +,2=W'4,:\P@*:%.13:I1 :+R9W0CF0=02F0 /27&1"R9uX?9IEKVL E;!$ECb/''a;-G'H1.;54:17\S XGA*d0>3`9c=&" !+-M<><,0#G11&>-#22/#QKU<A3D>D1 Z.9m6+RA8b626./.F:ý+.[I1+)'4*$K5aIU8<0I9L2E6E>JLR=8 +:1I6B4M*$D7>ÞQ6Qd0!=4$HMò2: [5<9(</K(VA,"H4F;2*dF-JG*%$X7(B+.*$QRB$,.&ø@J{²bCBUXB5(V024 D<)I<D8uFEBü^3ŵQC;NM,;3NK8B)3_9d:C"(7OD7##/9ü5a==)0,6F O.3!9!N,: '<(JdC$($C@-2,AN%$,:*>#?(< WF52F*1Y.>K`59B;Q, ;BB,:?*?)D#=/-8J2J++P51C?E$+":GI<;50.2J3,+EC/ÿ,H:$E2!Q ,O0'-;]<%^*/&:RRB=A3;ê"8'F,#9!T;&;Z79N,.!Y.@)3O>`!4>4@Y>=,:+5-(+=BBF;K;1:T ),(GD-D_B.^=J-HBZL) /`=Gþ#4K"2X+11B(<'%k##$0$=A4k2;-F$<5#?6] .RB?+3173U/Q1@:%1111111111111111111FAOuC=QN+#:)d44H'b$!,ü% 9<!0 )BCB75;I')=,H=<N+%J8VBFYY%,)$%.I:2G#Y?"6,1*dBL<):6 aI3:N#;L4?1W1S=?*+5I64>#C2B:EAJ(,,2-#:DV9G58;+^ *&*$".8S; 3\96P;A8?S;![)1:'G1a,ìH0=3'/D14K8;':6>7KI%'I 4  +!,),88'M=;5'% G0+W11LQPF2*ý5F)-&;<V9< Y…-!'(\(Q8-D+I&&+:*1111111!/*1M+0bE'",OA6;1C%X)!6%PC+1BF#,/.7P%1=/FD$..30 )=?,M6/N> ^)O4HA'1D<AF6"ú"A*.26.2:#W6=%S7ï5P/GVF;6[ ++4;Q5IJ$5<!LC2:/")!70'4(2 ++1 < '@?%@,-.F;< .E),YC+3$3/5 R/,4)7!:I9 \.--,!;1MD$+004> -#DJ@<&YVJ79088;FB]12*fK4.C";785')öU905"H&e_M!677,0&B#U%35L6%5&(4)!.+_Me±ÿc\@:s$B5=(.,A,:4H*>ZH?(OHr—CB1 K7,3T-/4A;2]5-D>()$>EE!:V:FDS# _a<J>#F/Q,I4(!.%;!'/P'Ja328>'BJ8b?/:57IT4/GR$+:<(!++@+SJJ2/)*T=)=D"7;,I2"5'D,2F4+4F3B/]I:#d7+j7=016%-=>305.*1EA-6 FKAO?/ #C5/F6#6E3: ;.H55+7x# /3;5"2@'@bSD(968:7%N÷V+'D<2 K?50I?>0ZA2.1N7SB=.C*+="+(?49H4@; +W3JLDFS<Z5[MCEL.A9'3@%P $==>:!8WYG7:`#?+IN@5;MP*DDD[?,N5A,.5 .*=,ñ!1111111111111111111 +M:").$90*HY3.@J1+E+77 6/)+@ C89<89"P25> AGD>#:9;*C99)'I*L1/6"-*-WEe0%6#D"3.*5B-'#æB,(.36*E$?ó4P%+)Oþ; 4JLC+I1M6.A BA2'4 J@A(2'& .0>O=(('V*#:9$S/V<B=F>%NXVfA5O0>2:8K@ :0.,07:#;-96@,]#H6O?74$1+05 H*152:7'60>$6[&(G.0DV;!õ"$15!HGC4=79=Q%18CAA /3E1111111O$2E%3'U=+"<CN1.N$7*&4>258 5"6A.%652@607_MK:U/2JI2'-1! +4;&33>>1F7.U=2*=-H,-+A'D&37H3ÿ@ITK.C;ZCB8&[ +O-04I3X(=,!:7,E(#/A6=1$3DC2<4@HC!5iC14#?>DO.NI`C59B(C -)/;*í'1&H$|<374ú74>#*O0$D@A_->A[UP8-KLC"Cdø?B?S&aY3?9/DW=LB@>,"*>0(8=)H'I$,D*#$QA2û,/*ü6$#5!(Q I08'7>1[ Ë UH;2.D$&E:G*.3<7(0ùAEI?LC6)UEù33#U4V#L1" 7?CD/52# 1/8(#I5*,7-D-/ 0*5%9H5X8DR>)5LW44kUU!`3.)8r<_aJ(2F-! )B47:A4 6>%: F$>:ER;$ ULzB6#J2N44\-+MA0& +\&TD@"5I3?;û7<=87!?/$Q:!>=8#)0/EWA8OchƒNiP,9,JdB49/!&60?+6=;3DN0H4!1EJB?ZT-4/;>G?#>W=MeJ #+'.;_@.M=K#>A+Zy\@ < 4?RaEK'+><.(/=C9#H=,)í/(?Z1%?B8AQV)0.ù. %GHH=MB,[5<1111111111111111111IF!:#9H0/9K!Hý 87;GB(ù(9W*!5".'#791F4%'Mo,Y# ?/S-<l%b4 34'84.LL-<.9F.ZI/O!6" FD#.%_)D+7G;4'&.=-<*-[6J/>$3/ ':V,'I^66/q6DU +&F&KBX+:75/$&SBÿ>!7;<(O9,+'ø2155F34;3I";H2.(O2C'2O+(7)AD3?D,ø(<% A=&#-)@ +>G ý&-&--:#KBD9 GZN&C )K2@.&;("&&&6TN`"9M9;=*EF(<11111110*+IJ,d A ?9;%CR6*.1."X,<ñ a5.FCGM T;/5PN.@/":2F-X1* /(GC!- +'A#5,6K.1=n#-53@ 7.D@'09++1+' 3 7<7-7)".  C 8M:1;<<66O0A *@F.[7.R$050@&;:IGO6+L5E//"")CD"<!'H-(6F1.;Z[ã,#/G(4'  :-8/25#!D>O":<:9>""2\d5=C%#D5&;/!LYL)|d,5$U?*)3A<:$.+A!5B.4JW)=0&49ó*/8K G;4K3BGG  B>A5(%JGD8C&O'<@6D1:SI$$=^ù''-b0!73 ECE61;3:9:I@&$816L8Q3@M@*B/:*1-/=(<7Q3:„XWh<.TU:>iH*<8e2÷N$+'%<F$94;219.'E5N5II! E.,:E< ,0Ó>$MA>!1@R5B@3^KNV7E&@1:=8IA/C(N#&@:6C2c@0Y;6J :+55:.%7‡°¤ˆ™Sc.,H->.D3:9A-þ5?H/ÿ!%V;8!Q -,H:&0(:0-<O=;I/6<&E9#/HB+AI:>D]<:(,V3AB,fsË·†¬^fb+#V51&S5C/0.@*HLQGHGb4ø8$S)B9#a1"E9UE`:8APB:9 038#N/B!%*11111111111111111117C;C,H;2$ +7=Q+:-11m@<,úI$7 <@$?CQ&&$÷#*5 ;L3!60G=-'77)=<i6NN-6]d2E>C/!3,M%ü5L12.T6DHþ(.:PAI74JH)6-2O7L270@?1'.-#E&`'% IISU5,:A&Q1*1),N@@4/7-)-FH@:" ,-P,;6:17=+%I>QIB<'4 D'/%0 A3@M=7#]20)8@5*Ov4%&*A"!1$,01><EBK 0;Q'mT1C?ÿ:*Q4&B%?7;J)7>0%+ &8ÿ1111111% >1#*+%+L@65+>::3d-<5BB*G#(D>$08W).$*!37 ,0 +[X#û&7.-)\IW(!-.  :):%1)@?T":%9J.@F1X8?3(+1FRL(C ;=Y@R964=:BW&<IJ%1 @0>1H"J> I#R$'F'?.û#A5M;6-@[N)$+$.-%79$2]A%+@,:&Ja U++%=!R)=9/;/:7':=3@2UD/<0!KD3;6-:=21C.%A%6D19!9*8ZL?<@Df6:T=5=8K4)A67'#%$1T5'5/;,+729'(5B@DJG.#,+X"+7D!P1X0:Gh@!3I05+,.%E-R'3*?7<6&%+O?+4=5H/H3++^<,J4FB7&&*6,c80&KJE6K@]I/<=f~j9>B()A‚DD.B#J3N/&%]6 <3C"U$"770C@O&&A'8,@üBG6#G,A$F+);6F%:YP!47C<'B0#%O.S5@/RU=CF:8>4A$N-!#+<,*%(+HeÃÿýÁͤ'4D@?>(, *)+<5 +H!Y;8!%=.ücd%5& 78A;A782 +B3F/I;1+/MF?+D7E 'C'64,V/02"D:90@S6geŽÒÙÆÌh3H\2J;'*'MQ#2?6*:9:CGbsF8"(EFLXEEEP|^:KD;G/3+AD=E'?<X:1111111111111111111^: +58E>)>W.B <F a#(4)A> L8 DI#9%(2>B7 0?(2(+1C < $5'G4-0<$#6@CI4881$T$&6G#%L),',+F*A-+&:/?45L</9;G%;Z@$!'ý@&"2N,/0S.P+.LXC883<%R +/173 48)=$o?1?;=*i8:w +-"&HJA/E<&C8@Q="/V:69" ..*<0"55.:>1+-.-O!6%O;#5+85&;CB)A28**#G0?1%+3<CIG+?AK'E)K/S-:;32;,,1111111'9A<F,AHA./%ö)3C-G80/A3(<%*3M(QnLF K&AG6)66c,1E=L D52$6HQ/;=2.Xï#\..#6$H%G/9$/J8):>*3$*$>%4$17.A,,$8@5V Mk=P;@ #=)MC0C<"46F68>*LIX*/LE#Z0F0%1%;L3*S;D3.X-@$S7"4CCXH:&::?7) :.@*)\@22c'"(QI3)?2+UO"4'þD9#. -ü2<2S9IV:7RF;J#4C0BDAO@"&KM8O/9F047? &?:e%/T%.80I,HB2?52BD?8+0NS6úH.#!=;)<X/B5846"D%3G',F<G+2&*1<%4ú,KANN>DDHLJ(\;'5+E)#D2U+*iQH:);G9@-0ca01?^E-9!6VedF"E$e>EQ</74/)+P8S"58^>B<S84-GCOD.=:)Pÿ[ + e1>5O7>-KO@.&.+.R)(AïY;V0-<78G<3F+ N O)PAJ1VK(fÑ3 ¾©¨gH=G+=OLL 9> +21G:S+N\Qr&8Eg.cF)JRA?*E8-WA&6'9+;B&AEk>F"BQ<2 BG 5C4>O2B/J4~áý:ʇg@7 -1KB8*NF$40,D6/!0K6/C5[N/P@gNCN+5eú`Cê‡JH<(:<R1%2I7=e "=60,1111111111111111111<-:.):H<B,(WM.+ö1&71KY>+T%11: 1N$K("-E$:I5&54V2P,4*>-_B+*,5%>.O?*WC42+b%4?]G/U6'7!*)M+!&1#*?0)JEKB!=  ($ E'>4?*T81PCB.<#)25@!0 ;/ 8G-*%,#8F=2)T+S&=D<û:8(OO> 90 7">+.ü5T4U";)2(L2OG5J@/ü-Z=5AK/9@?6E(1/'- +"C+$7:ò?-FD=L!XX:!S< 8RI*<3!K,*A5I1111111D=<-Lô-BWLM#2:.))!2.#6@ú8%78^./2;NQR6Bòf&*%"<<<7'+KO"9 1&1 )Q68ö=#8 8"3M1>3/'/$,9O./U +9G)1B7G>=$N8C.=2&I81 2QT%1DW$5-DA1P'(-6!V31/@ *GF53XJ+#<7A.;=!1OC-:]i#FiL6V(4E)IA?:B\E=D>OP6#&0:L#>//E_<5;;1:38146[A*!9-009 =?$, +l/._>:-4<a@KI?&97$MB$ L)9V#7D2 +%9N". P.:((>):6\>K'LIV*.K+B(ø/7 9(?8HH:7\ g^O@0@64;1#-><]%5@)pþ5"GA1O<'%.AQW""2=>BcN//+G;M(D<;/==1jV\G)[~l<g@2(1>4\VY>9(C=+V!<(- SGWA46'*%  c9#7+?< e:7(L>36SXA;#!;7g2'R>D %Y :3@LGP(:( 2B: -8K0JL†³•gsf"16'(I5Y=(C$C)9%øABR*D=L;2Z XD6-@ZNkT?,h!a>35a8>6#":UJ.9&*-0'?6A,C2@;H0C5Tˆê%¶fgN+!6R>%.@" +I@@A (D@6!)$-VGr5R9ZHᢠ+F +9pl+8/$!!"IA/91556<;CI1111111111111111111G489à#$$8*8+K(c.*U(-#/(2.84ZA18+û:@ñ '$R/',0/0..?4> <4Q>Q&8>0N g,UL?41R09 !"++>P6'O>;K NK(9L%.<#=8 %C$E0G6)&' /(,XY)L0>&2IUE.6=(&31HA3+^(;*F1@(K!,6B56U)# >$G(9.-JR2GG[B2.T@,*GN=(7H4 7;7EEB5ú"53-H 7 jPC90&:I ò,TD@K +Q.$28G9F9* #1h2//9 +8/:4 8@0-JP5'/>%=*/ +11111114;<"CZM)'J ''.].7$'C +&:A1&#*A &F45@%B};.EDF?>5î .)D*;>"9=.OD3;+@N='\H%!N.N.:&c€@$5H4,X@@ .O;8'E46@>7kt;FH!/F$1.DJ7&90 &6*K#_!$3CK> +õh?K?=2 +(3\L%HB;ò"9A# '8,ø)D>&>A /A8PF ý@=F&@04):9,> LMK*B+E8A#`3?0'F0(<.9V-=RP!OD:(4U/''48(_?$%3%A7p\H6VLRAý<A4H,-88O$Bz<1G!0(O156)'MUI 6 $# #$*V21&<408#8;;!?FL0'+(Kl@ 25I!O +\)"$  1%$%1 HT%QK;1,24?N$F579B$5G:)7;&J#0KOY3<X;Bn@HLAHK0c†;A6FM4,**<IGqRKEN)=ö8DC'10(E%E&W^v.4N+"]#:2C ==308/6*RJ89A>MQ3 E%U@? N@!=,,.1)FG,*%B)L Q-QB.K4DAJ$-J @69"26?b+*GL:Q1'<‘&AF)Y}϶zm1G84>9H,7"3O(N KQ7D2Y,53W@07!B2F&fO}§Ò˜ÍÊp\@5,I!2<K9-&#-3-(P2.D,'+E,13QG2+Ráq: ·(6:Y&+8U:<1>*#=ûW.-11111111111111111115>1/'J%)F275+31H:I=] C:=`4C=$)B9)$,(,@,)+-+B 0?0.=þ@3/+%?7438)ý9$ILC+(I<0@0=G= ;*5AJ :#iD$=V/B*" 4@63<.3".,(G<##i" +4#WQJ''*K:5&? 85@.+C6LB%F)' D'(6L'>ý #<*'N'.3&t<,OB-<&+%-SiG</5A1M5-#"A0N':A1.è96'/;/)-6%/N'/6@5 :+!$<û*90!,AS>$&.NG;LD?1111111oSd$%#A63///$E.S +-/)*!H#0540,%/(,/;C,)U.%B9I00E: ,4*%C$=-PM&?6<'E>QH73&;9$5 34bA);FE04 3:8$L*DD"B)aL6!,*L8.ýR"N%BTN$;01&9-2H<X5.-=13*9;v8 +;#>RTN+>Nh0IC6J +%">B[G9?"1+h,OC+;%FJ3Z30 !H0M@IG!X&>=:]58)["y<QH=5'ú/"4$1/AKf='GIJ\-;,-K>21:1IyX'(*6J<(/:'U<<;J5 +A[: 9+1;0='A:+=63F+=&?=.K??. '6)*?.8H9,B8.-<!?7G&='F32@=<$*  :=G%ö-$ 17D2/D1+0,AS88J*S;/PSA k4I?aWcˆohNJ_[I3;ZVB(% F<çC\ R&5,@K$7BF]+E"(6/ #!)C TD3$4%J9 &M-@E%BCA@<?1%&914\qV2)'(<'E787F4<<9  A6@!,gFW66B*Em?<#@$]K(C/*?? +D #TA80AIO:@G?)7KbB‘ÖÄ—LT63?&?* 36>qIRN@(G+Nh+5!?,'4,&5"491P-,4o’Œƒt5721B=HD=A(1Ü3+S"PB8I\.g%IGDJG,˜ +\ ý ¢lY%&AI6JI +[O@247 71111111111111111111%5(1:.'H$9'*bN%;5$LCC31#?&2?F4P94&&-6$7H(^V&&0 .3!51[ALFTL*ú-/_3! #0!,RQK?E#>/G=*/6!E?-,:+;C*-E>8C5!B#(,:nKG)CÿFG/7YG7W9/MG#$8']+S03=%-+;%2R-EB:Q$&Y,3"U;B'':IA'2#-ÿ0W+3TL<-%'.=42_BSI34;=L!9'X:A3DM(618 @@ 52631 +B!9 /%484M"b4="04%27.?>C "CGJpE&11111114,k@CD:<2>0 A=$Q88R% 3ø!XD#:&G;F+M=K:aK7#*VJ.("p097.M/(74G+ :;.J(F- CM><P ^b0&p9A5JE%0)3V+.4P1N/I?L61"0L&,,@N2B27;7M39€M:/42 7)MGL4HB=1G($I%:,2139q40+>+@ 401-<.3[B82I*LJ_í+/O##?*E,%>59*7-&7E, !4=!!48d&7%"+V.CIQü-FDJY98= =#@$1W% + /(U0,E5DsG%&I!<<93=/ýA!F684@Z;(\E6QGQCD*3409 $3?#94;5.6#4<<'G?26(+BO%4:2L4>2 J"7M51/<;;;M /.)4> 72J)wB.21ŒFql“®ƒtoh`HP?J# K)O'%'B?NZ*7$M'X$B,O>/é.&=E>9<!'J@4T@a ()AD?,**X-;$K-65FD%'4M"26=2D&&72LIJ973?"J41!G*$+:%(ERB3?WE')W&7+B6F!/(=2K^š~„476<J,=$þ)?'19_SP8Fÿ0$)O L(d*A$6$L"=[wKls\7?%/ !>Hg./?%RH1)=IJG5C!;DA#'AC38 4-uXâkpžlYNH6/475ÿ':D /  )9:01111111111111111111T:7ID#43;B7=2O,9#K5Z8=Rq53C<0@\,4<A41D"G39.$&3.:%M1Q1íO()5&"!%,4R"2JC9GK*=;>)!CU)B%C )^&,(9;D5&F6EA07-2<5F ,GA"&-"&9+(:4%2EB._90-V8!4/5C_:DN""&*'.+<)iB +L*,C>&=C?57?8 C::†]B''984/!#D ), O$6 7L54<358$C&<."û,D,D8=0-60858/?5!?6G=<JZ/A!A1111111EYe26'&A)d)8-+;E&/( ð ?ü+(G;K&A(4)01D4$(?(70RSHþ4O76*B!,0%I<;# &'+-0"$3*UH-J1,+,.$-L!FC1$;H_/($)0+BIS-"*:->90.+">12<&%/.<*8D9)I'%'+C:G1/=b,*J*J78X.677=.;M5>UFF5<T5&"S0,02 +ZAHU<$40GI +D+E82 J*R/7 ,;4U=CJ';%14=7? (B,,9*<X4#A"@9?25!!>2dA*))E$9_;4@KP+&$7JD7,A0@0?@<0DK26 2".P=P7T5 H (Q55/BH/4W ^H5<(X;$1>>/:R/W. %91!TE"Z6f1A. +!"1WLSp:'XJ[7/B),9E VCQO ðÉjmZ;+E'$7A=P9'/D=<m6K>RmH+GD2@-;@l,XAC7,@2#++U1G0&9+(0$[0#;S-+*?C_)0 =?$1.CI$(273FJR>"708CIGø6=3&#IF%2=3@[3GL,1"(=7K20'G>B0N6`?ZR"%8E:5b\@H;02H9BRK,jjlh4^6þ#.B$ : ) +K+GJT6<$"V[j\4@4Q1260>]9<G +73)4<!(5!#I?>D!@2Ea””~T="x*:1R!ÿ"=+=%161111111111111111111.+,$&$C=17C>$28N%N&3,N03PV4%@<.A[#(*+C?-i1@BK#&4 T3",VN)2*))  33/3B'LFQ/1'245'1/=KH(J3!(<2CI,n(= +>J e8-6ý +9%&1?#T+6?1#H1]!Xb8.'+GK<`C*.=;*TOS@6$S2%KG+ 5 +:9,G`BO@!.#,3?EJ6Y? <c.<E65+ +&7+4-#'@/' ;2V#F(<:8X,&8%%*,>(!:4PU+*5+;[632;@/>+14E8hLTT2:1111111B,:5HA"6?,1D+4 :NDt*H'80?J@ $.9=9P1;-DB%.=!&Y6l S7d`6RE('08023%Jö01IG*@ +YE8&6H5EF$ H//AL+V4T(G0?5[#884M-9/7?EO#7R% /V3*'@:*J%b5!8 +).üL,,#FK'IC6.(7*DP<?2541?+bT-÷@*-+? O3(>/ 7S"cC8&><>?"&70&8s @L/C>,+-U2[A$PQ!e(G'(!@7&;T2'8.$2 :%.+6=900?3?@,/3,;)+58+/ 7 0A,)!-68.,7"r[D(M#!=W-1$B<A)%.^MI<99<3N0+-V@C2<0(C5A43A)1M@ QO>P50@-K.-%F>M''*(3:$/0H)@23  L97'0He0YLYj¡ºa$I:­zMf&.1F3(:'"O0*&<(O"70$G3).*;%+95N=>/2 !)j\F6@-5:*?A3.8*=I1/ *8 7>-QEø$%03>%,6U% ,+H&+82C1,::77G*P9VRL4<T+:'%!O% D#E<X#%B*O7:#08N6*R;)3:,'OA+91.7L!"G&(+"=D;UAM1 3<'F K7#< , +H.AH*88>&D9 ê7.?"/: @D%B'Qú9 0(AEn,!,.CT>+:F#C(6=-1111111111111111111F-:3643,29K+84-&0D -D< 93VAC+D/J'<2* *;V8)+E+2D#Y:>0:ø^XB<D%-6F +;V 4.I$ 35:!!,$@#I#/BL6K0Pú8+"2&?'>: 0 +_*a;43G2MPI<GGA50E^&1(X2-MiE D#:6H%5F""0K6;,#HB0#I:-/' >V!)ðLMP/6*2&5O/S%2+1!RA-*.?+65% 8  A@K&(^=( K.1C?77157:%GGAB75!A,,2C4&H4+O ;1111111;"7<D)5A?d0?R JX%R3G20)J 0, !WAO8 3(/34.9*4Rû ?5? */!!HKB72B>,.BUF6,(/G*>%"., /84Z!F'4#/!>(X-JT 3>&3 3,6T'5U,K(< 5B*H8)"VG$ = 81:EI2g7K!A*63<!O(ç..6DC707F<A5& 384U<!F45<+%?î(/N.= gY=L1G'4) D=>"2GG@1-<RVd 3FVF(,Z54560 G"$+@ .2(NC922Y+.Cú$&-)Iúf0D$OEÿ!F7þAL0d<YEK +**?::N$(B):#<=<.%AF#7Q-:52<1>\A9@*!T<50N*"+I6+#5"R711;O<3?E2=MFL,2)`9;-:#=:4QS:&s—Ì’2†Îua?<4-8.:,3<e2/+-5 7;m(&+KBPú1=4!DAGYü.;-$I.$2 /õ#h*R8<0(E\jf=6>;g8O,.C)JIB//1W0>0#Z$-SH. >÷f6&j2:BK-F3 ;L!B4R!3*D'9'J0'7='oTL'#+787,3U0B,]a>29R<C=0ñ<:;5 /0',L$:R:BVE&MM#G9= P/:C-[/F4WY9=@%1-3B&>168 f=E$=& %,65&D.)6*2?01111111111111111111 3F;;?""!?%).D2@A>OJ7S,)Fd>7.[IaB*MC847:-,0DAA)!?4<?&$ +'FAN!&PC929B.3,,67M:&/0F@$%549/:L. -9RM//N- J58 'GT47I('8hc‰eN39,=0?<@4'C77'*%2(50=d +@2?5)-00BZQ/0.BG33B&A@&8ü=/?;  4CE.?K=,3=OdH <&987&/3@'%03,)D!+==0,70-)@" ),%*&KB&3=&<U)9JA#9!&*V:(=>)O21111111,N0c;L#C*;#'@:QB7HB> T4,c 4_82 C0%&912SF'D<D4%$<;MO9*#-J#M11:O6/ R Q  1#"!@<,3@+!X>0-4)Pb$O8I 8R$D9<V@DAF!;761&'A489?CY54(*&(Q,S3G8'%.*F +J6Nf0S3=1.;JF,%M+M354,;&09,O# +K*-R6D<>4=ˆƒl:/O,5+ #1-2R<3;(-S4I6L!>!û-3<>pDG>,+>1C*4@1+<)0K*86,7>6O"4[GB /($:/7 K7 C6+]9<?+W-!L=[AR8F=6(3B%3669T*AJ'QS`˜A)dZGE%3B#?;#S#2+A4O=D5&9H`:.K+/E)#W>44F1#?&=D+D&5D#MXVš )½aVG7W@C!C 9+IU;?WL;j< U1#/+/AQ0D?>875'<Fü(52 ?I%J/Y*#(?-36B;FA)::DL??+72U;,1j>.21ND/T,G.-%ÿ3P'`L.?2A6D2&##280B;'(>24IFt`hAM-()D:FL*[2NGQ@C+!4XV>7$U!#1S* F*D8F;1=K2G$A="I<.CE9e0 %Qk/0F7_;"<&3%KL@aAU†*F1!&MAG,2+)('+"!-2F//10LD111111111111'1F5 $4G3IIF4@$%<L-H7;( Y$.>6T>T#)4>,ó+& :90&92,'KD@F ]!VFAL/5*0%F22c1&X694)9<'G$)7:9O29.Fñ&BçS8%E L(55@+5? +Bq.CV; @5F21J5681:5!B*C)"P1E.>19&2D1&0#)02<-9+÷-"6.! +(94,7;*.,-J"H*<7 )0(n$'&GF/W0"4$8Z,5&.>2#6S^6;32&'A5RIz 15ôB.+k/$2Y806B;88(%3;PER %81111111NN5590;!&:C+3H,://)))1,%%&48CD* S2 @!,(;#(1) (5A:/7:%'N*8+6G=D$3#?4E*9_(58@3O.2þM%J=#$(A 5%6b#<.#M4D=M'A&38814HXYM9-8/50?A!@K?#6PE>,'J3 H%7ü;?9DM>-34H82%H17%ü>,@%276/!)3'O@$`;=R/&MaT#W&?<F?@("=U:"/,"K6*=<K6C<3Fg(_C1G889 6 '. qD6((3-"F=70<AB+;?3688'<"?)'0 $*>1-;$G#2N%#.'\/P7C*>0PZ+_o¸ÖvebRB3/I1N8(1B>")/=F..*X+9""OT=AA-:5IJC1":_M=O0PZw 2ë¾[d…BJFfA;/'$2=>( 99"0N?'IA//J@8'5f'L;,6M3=+7)1%Q1@.-6:(G%öW70JV`A45+& C%"3+%@1 :M%"5 1",2DM#(;-LG$3EM:20#&\P74$b(0Z@&PEQ;@YW'4(QJ_|€OH>(4=52*='*%'LL''(,4T4#-?M;1HP*I'$}3< -!9><6P'08AZ*/>j/6Q2CJ?&:E/+Q3$(-:%ªAZT): F)C2B+'>"UQ'*ú4H+B!"/5S!111111111! /-1,l#,+H@*&8N$// 4 $>J?@8-%07$8JAG5>"15ú#50<6?$XI85K<$B`4&W' !.LM2?#HBA>&#24?.2+>0  -GA='!K4;aF%:9M,0=/$K/a71$!'T<//$=#2þ3=9F$D%?.766>"'5.)ü'=##>'-@<þ)[*O5A2`*'6/.3$!9 @//(9EO8,+4J? D5M#94O@=14& 938]@JK921?5 E8'2"<>1" +o%ü $&%>=7&7--F**91111111/-J( +&0;6".>-<)9$$=50'G&.7&+221-9E<98SB*%07:#"33="7!,:6KS- .'J>(P%-Q8*7CEMF+<;;):0&2GEFB" :T@;D=(%2=90V  )<&O':T37B&$ D@4H;AP/"<I+81.AB+</N4\9L#4/2_>GQ+((D7/ 05/*D1O PHi4>758QL1T@*T,:9U&\_39>6" R*M2B.R@!( />'Gõ2_0Z%=?&F3M<$<,F5 " 3$m(B,44(KRK2ú.(7"Fc+%"b-;S+<#;74d6uQD9*J''JL+4cW¡l0•RZ@O"*9>02'K2$=CS7M ?,B88/<(K<GG*jK6$J.4FD!"OEK;!„pª¬½c[T?R4/996b2X.53(! 9(4HG&YL]# 0< 2: C-FP T>3bCG05WIDlJ7*734H$:)0!4M]2[.öL9"H#2;!K>&@c#Bt46'(* C<)M4VD-387!G EJ>JA4G-4('ESI.;G_>=+#O*peÇÈkVh/'4#9?<=#/(Q*;g.GM,YF6MG19[!>.7!=üA#V/>"R*B3 S0cDV*!6G85%FK?a9[)ù;5D//LS!5?D129-R.G9JE)ó-\:P)- S93=?7 +<>D`'#64]4Q111111111QD$/I55 +3MC7\FC2!J/G'MCFIP4L"&A _L (?1DR0<:/%a<C+N +.FAR7`!84ŸœbM-WRD26R -&C0."`1P',#. +õ 3;(<4(,!B)7o.%;5)0F@$Y6I#,P3;>A+E)+#B8",F%^+ú2%A.R),<3S2!%8D!';&8&ý:P3>*#$><@''27)&6<.5?*@%$+ü ;(2<;=,"'$#/10? "0G5E6"71g:N<EB!/X2).-.W/D 7+&1111111UC='B(0N)73IQ7%&f. G$)G$L"I ),& ,:U<!+M;!WIB%@(L*<D8ôC1I7)!.+7+72#FG&WH@CF)2:4G"+#$ 3 +9=8.709@)):N'*.>@) +Q2#*>I>C-OS6L@*+-OQ…I>*1>>4K/8 H2/").2A5#çD5J0=7%ý0+E#%F+E1 090ø$1%==;0.:>.)6/=)F\)-#>=37&91.A+3.(4,9)<98;9E'8($E@,6/"9( F1.@"+21Q<$> +4H%:( X<6Z+=/K,;)<TU08'/;C GC2<:+$F!Jf06 5>2!O3/kê:eídrCTJ;106MS0C,A*7G(>+c16"!&H,:HD8+&7F;8($242L8M89g=F‹SV`y”r‡nmIt}haLC=0V6+6+76[*?95G;+N) 5AK'%5'3@-3FB>1"#<00$FXšO0þ41B6G ./&)9&9)D!,A :/2 +9A4K1;%.DDM#*La'0J'4&$CO&?7<(6<G6H;c-@IJK K i>K¦X^GC>70=>&4>6%'$N$BX.)>/(^C ?*7H%2@2>'*0'J,++L3L<YM*=(I9A"31E>*=)7A/\B5/H#(:W:/7/&8G!7L+2%#+, +9'B1E8)?7,(&111111111a532>$E2$./9C4 4T><25&7,;:/$:B7p`?1J$9Q$;30),7&-CEû9- ,?+( N17)O4)BA2@:‹ª•N=> +1HB2:*=ECnQ#$1'/!J,.95, 7:r8&CL?G7C=6,+2:P +<D,I5;;< +/)>U("LQD:63$/^60.)Y2-\ KAHMB.$D--Þ88;2;'*2=S%$-4k-$+5 6e234D"H%Bò5:.*=4>I,#äù..Q=W #'8 ,@7+"L8%-',/=?0$*)%E=N<!305$GRRC>F<,<51111111".-B;4D;OOJ21h:&a3b9' 9KLþ6L(1%.I++C@&7Bk0;*0NEH]>?ù S@($E$L-N@)<</G5^:%>8E858'84E2(1Q!'8;73)'/-"1F12LHD/3D>(73 +)> $$:d%!I<GqY°Sg1AN+;*=*04_) '15C$@4X4,7%7`+/ ?/73M%/&#"1 *)X9."c0!=&!V'8:04$#04)X[046'7O;E[(+;HHp+C :8<I6D?:-(-8" [*<IZ7ð+(9##2DA6)0",/RC$*>324Zb]*18*J7&22; 4;:c„ÍÍÇoz>DX18"26I!<7,&*0LA(c:. (V.UmR@6GC(CPFI2;5/TRSbo2UbQ[M]cjS?Mw9T_¯Šu03$A$ (G155-B> 4;63üI((R,D43 VO7*!9*K=S+I+][7- 0219W;#E">"O5 9p33O'#:&5;)?I2>!5;-U8:"FF;H/ ý/9/0;XK,A,-.272O6h?D-,1;71UHEkO7X.PP"?5?I47;(,73,/5#;3ú63;7G."^<EG!F?(><LG~-Z2)B0@"&>#51+2&31%:?)+`I<BZ>.I-+O6+ >*T('T@8g6B8X!FA)!4(R<670#,XBH9$F111111111f'''(./%,6=(#8%C8,PC1 #A$J0;'O6@+"$ &&&348<&H GB.^a*,BJ6  2E.<DNƒR;HpW+AGa#16-#(5)0#5B2R/!E<+96 $ G.ÿ*48K1K%B\*4*<3J7,5BZB,C\&JE@,6E%443LE(Q%-*3>> +'3(;?.aPV;E(+.C^$+KAi2HB.:?I3L61 1J:21J5SF8'0JJ#'IGA)F6G/59'?+T6;2$I#);6%.t=>-. A*.6 &+H2)98I/,+;1111111MN:$Sô..)` ;3==79#$> IPÿ>6C,2(H<`(?52?V1*&2A5U)C@D^03-,"FI3Cï  2/@8/4F5>P;=.X5 T+3A'8*<C C8 +3@54J0(?0@M$8-8L<5E0<I?:$.4<<NP{9PfOf-9]D;C?$ )]51&E/6H/ O//01[3<(76A/'4(A :(%9A/*HH31*$"P-$AOBI÷O>+A74(3-"1.F*Sb92?6U)6V9=/%)7>{KG0CD;,;J5.@g."&!U#&G.A#)(Y'OA/4F/:+*8K@28D1+8G030@2J;B0O+.')>B+])0IF2kX¶ªœžhPK8:!#=<;Z&,@99.+A))=@A<61emOD9ãA6#(</$*F=,A+:'4Azy•gVbNoUž€†4|1<.7;EF1I2+/-#S-\9D="4,SK=85N03=!86D%"#c!2K%>>0C//8Nü&F(%J": +!&G#.?-=6"9#CE5.&&J6=K8V=;4?36ANA7FtG;(@1."8D.2/;`VG)41>#5Iú6T" 7IB<C;16Ga1xCW@%;G)9#3H +I8<[42?4495*9!;(2P)<Z($ 'F- 8 +C:4ò29ñ9%)/OD:û4*944/&?"%*?==)(FRWi†K: V@#Y;))AEN* /*.E@!C111111111ELd5T 5%I-8B5<$8(::N*C>-0M$NU+().8L(45)2)*QK<%%.8&MV03-:53(;K"?hZ$?D1SO>A ,O&(3!'*$ "[7E%D-0G.ÿ4k0<#+*":D/"'-&8*#-.>?KiLc;$QI +1[0)!1+/<+0K%'(C #;A@((:#(8(EK,*6.;l</ D(??@0O.(*RI80<MA $ -E0,Q#A1$YY5*81$1+;=77/#T27 +00 KJJ V$Hý=\C69D *G1111111$ '! L* N%÷D,K#3BB ?:_G!3@(,;I=?,<M/3&-.%b@)*:-=@$4.1/ cWUT<>P1>/@&P#G60$>:E<01@4÷F#IAB5/;UBJ:5 +"H9 *<!&=@C25. 3M3@D&G'BZH(.5L2-BJh§¬‘dE0NE:A#<-5H0+ÿ$:AE4>*?N<;4&,:8?%%*6:'[4%9*<U6 G!?C5,, W/:;76A8>9 I?:7*. 2X("6,:I2'4^S/4?<"H'51/$X#,TH<3).? B?.5'6)+4(cF?M+H>-D( ?:0ô,%&@6H&5;7+I$22&ø]/6,O\Dhhž±ÍijYRI ->:üBû.)>+%<F'):<:,;PGI037=-L7Z&^> E)F>+%57&+IG/b|Ÿ^prR6T’T?ZZJK=70?G.:P' +8=.:CNI,4e #BJþKBL.9<.%T",3þ"*5(/û7--IP*7OL:8^90+($4$&37@H<)3O13Y)JH:?6hH+):@_9BD$Y1"=<K+F;"0#'G0K9C925Zí_I ='H@,I@3U?Gþ$. )0V#=aDHK&13,>::28"W/64!$+NRDAfI#=<*'<.IA395`2Z+0>BI9;þ;,'>5ùW997G*HM/DHI3(+1›«.*$XP(8R>HC8D/61111111111\";)=ý7EB9*=4.@,:G03E.?,'5+F ! /:P28 />C/3?"$9\'_!9CBp6JB*"*$YSI`&07K-P/70'@&e4:ê*BB..MOG?J$4SDB"L/EB' )F8D*1g&"5>6<'5/74%/$$)?+{ N)*(.:6 E&F!?62>3F'?/899-47@4K7N#54K *-3=+2v6'2.6+ g!:1Y.133M(',6>$/'/"95)5++LB6 +:Y)(**&#IW0_" 3&=*0F#)N@1%1111111:&#5C,44LI%09)$02:%F%*F76@8(Q,? ,57$DBQ);N $ 7>10**>2V4&GD)%8&R9TP +.52K:<5?B:"X?1JE#2(6,4L)9G +"AHAT'3 +0C 7 =21Z8,BhCK^);'3Xå4×Ó\$*(*.*;7K.4 +<4MA9\:5R%g7&1@=G3p3V)H*.DA+þ*,+&G9,H26'X"#%M&ûYBV-$(1N3B9U)<$;I;=3(4ùVG7f$<096)1@N97 B#!M.`F%F-D4/;ý4b>;"JG"T 0L@8-')!4M-)A<!AJFZ(9#7/7l<>93'>?fŒæ]Û1®…\]E1>+Z+4<0:B7*E343T7 AN,QB0;&?=UaXù7]7j7@ZFK;*Y{bY]W(.MgW\RKPH"?4-%LL"#$D!7A=0(=',^R5P/7T-$'I$.5P5 F'8!<5%<\%L<$'$ALQ,]>167+:3B$B-!C/FI>#=^45,A-/\vb8 '&8C2+6IB:O%7M,@.97$0% CEVONHC?9LAD* )$<1>45ý5H3= + 6G2*>D;92->322Uh;YF-/S>B9>E8@95,@5:6#/42%HJ*%< ++!=4J5F) FF'2--'?¤œ]VV.O<?.4/S6fD&I fO64J*1 B'1111111ST/A58>)2QQ5L@$:#3>C2,A%;*.47 5,U4/2,1:$Q380MI,L?+@B+ +=Áæ{Z9#/R'6 +#ø$D7)\sK+ ;01-'%15&C%4:;Y<#9++,59DWy)YAO(,,*(--%..S+>%(E/(fýf.3#2'K(^.^"##?$/. $%LC5"Y-T4D`cD<e%3 '5)#F59R7669&9*"A7<M##/?4NJ(9H:9E;#0üE& ,1(0A"<*&(>G,Ö#@/3PJ +-F)+ÿ $ V04o/F[#7111111161%,/C2L0,$û4B45:4- >\8G5*Hö>%6(%3UH"*DE27P>$/I34"%N7Xea&(IA4 K/2-()@6GB141  +%FFL8:?83-M:@""0$\60?+=C & bK8"D++51*+GB, @G·RÿŒŠŒ¶j;N) 5%D(0P,[*9W9*31?$&0DH0HU->@*=?!3E@YH89 +)2+$'ZEÿ ÿ.:"=þ3"39ûD&;N:8+&XB9#9.2[5?B5G!HI !&<::[#ÿ=O8--!CJ>23D<@J<%<7MR0=aF,H:KE ]@O,XK+5'*2Z200/);2/#(,#+C$.K$ú78>/O#+/3KKDz­¨ 5 Ç×RŽ_S92!:+*MF7E6Z'ECDD36FI& ='M* 1'QAg)/?`IS>T.X:wx:j=Ae3VR6^A9qV$#BD-D1;A5("#B[ "6;".I8<?4'5.)7O%(2P%39A8B7R,JW4,J"N,:Z2',(H2/$3*-8*=VEFb j053)<;2FT42$4ROM6;<B+: -"480/.!1;#H"*8P&-);"R/ +%*@8#1(GP"0=&(:KVN7e&E>*<O/RL3'OE$.:-".,7-fei„KY/5)G5%$472&(-I4\?$3-8Q#A%GQ$+<2&( @$)-0=Dm?<X 6\:?,1<+/#H&G,%5G /&#1111111:F@.)4'c;G0%4+?5X)%:'5B3L670"S"^7 +2.\-C!7.(OL));?,'B;7ºÆ€S57%3!+T6/;7R7L*Nb@J)!7$9EA?[/7"=H;=N;2G69"&5q&&#1%4+M.84="/ ,1B".";ì'3*C-:5w0"%+7/1SD%7:>eù &0"25F*+CJ%4FG'3)M;@,8F*HQ%,,:7E40&;)6/>-C!øG"<,!÷,7,CD/>?7Y$F+**+7 #83#(' +daM5BE ýC(-2C01B/E&211111111648F(6016H<8/2;  ; (ûù-$PC;.BD"H:'+'H-%[43'&@+-=>7H= .!#B;>//*6'(HaBF )('7@T *.:2 H/5]"@S^7M O@Q"7X&?N8<)PF5S9$?+a&?l$*E<:1@4l:t]}7› x +Wv\p?(>=3Dx4á*$&%<J /X7+%)F8#><8E+!T`,6G' 806Y;_GýC:Z!=FK\,HHO>97 NIDC'W-#.F)9OH *I2(! +IBPe/'%H6">M%= 8-7^!G8B9KS6=E)2#:4%>-R5P&<@(ü5&BF3>MA +&*$+L V'&%_-CT44G51mVG@AE>U»]d1N,#:o¿…^7I5sG0X*@+.<2.P/64*30rX=)&6P&94DO)1,.%15;C<l32<S9G7LIJ<-+06SQ!5/5I!;,Q$)+m$9-:'3(+J>7E87Vi=1$N/0<0/2  10GD8@4).-1*~C(?a;'H5VE;M74=<%8?$4A44>9)35CD5 B+! *I8.E@/Mf@?,-+]>=,B:I'24:0#[UET+?Q&3)H5@M??2+$<%16;8/ +K7*WK;9(9!?Y ƒ:EA)62(!/.,"1_:.B#6I44 +=LM .-34&1FJ.<13V6SZ\GE#V/."@(%&V9E. *8111111137-ö3:9C>3 +%1%EV*@61:!.:A*7@V,[@J- +#(1H+IG Z>M3D1=++5X8.: 07.*==LQìJ7NGM(OH9)4ý7%b$.B)çA!B71KQ5I<#*<1D*W?) 5/15HH938/:FD#A$;5 38;`N.():!<IC9Q*E*'M04:0C1!.00%T%M'*?$&@O&=#,-5)3F&]B# E-#522G=cP/6B3=÷75%36( @LK 6/4(&n>0E9*9@þ+K%">)S&1VF%#PJ7 a+(V`1111111ø6%;#6@</D&5&<SqfT);.97AG-.4 +O/A29K@AZ??%@^1>0:&"=4;,XD)@A:8'&E)E2C03A! ;Q,"i0H446R2-Tÿ/),G&`>N>!VW+"C@M1:2,89"=LfR3 +]!+5/ rŒ« Û Žž‘Ç7SS"DEC(;I?X*7G*'XEA)?BV$!Q8.H2=5/)S<N*#9 V!V<Y<&89þX0C5O<73#J9 #2.<D'!?$6,;@<2C34A V $GC&=E?C91Où[<û7Q9!/D;Eih2@54+-HD")5'.&-)>0,C0pXQAX.$*'':;468/((!d!-?B&*^EF Lp'É=@–=ZÄüÈ{RA&@5@9%)5LL!(+,bUH%B24$Q&#B/7$-6a>K#m43)HwM3œH;9V>;?H*B3!894<Q!7'L/#6b9HE1R %K1EB5$5!U4 4C)0E8&#;GC-%-4L7û4&0*!O/F(=<AI30+@.=C1+17*G%f;\J*)úAD(9/,1NU(';C.9608R0MEIoAP (:C+B%EHFC(G>"$?"GY ..,c<<;&2G5'!F8A5F?&2<=64.b"7#+I2'Qsm[:<%D<,&$>+43/7B'$M9+8*41.+%43-=B2'4 33+HVL8)'-?4<e$E G@A&.59E.F43!#CT:ð1111111) .6<5<03*65B 2->=:H!@$"K81?(+,X #K!#]8;R;F%G54ö@@ 'Z?GI/, CA?">>73B"L>@3A6FL;5F+L$E#5258N\5D<46$:78@2N$(%1O3/'G02#Q?3[,N=A$E,'"A ):&C7=.83*AM!*<"=îC,)7N=<<P9:><3U *,</*$"3HI,D !/;þ- :M,J;=A%2.K5 cC" ,3;5",D:ô5<&J_#*!68bCL?%.62(4<"@/02';>#/=J>631111111 @n+27i+2/$-#CL[’_-/![6(BUL=<2;X&&1PD.Gô@)4%37"S$ G4ITBSB!6WE 1M+@H/$) L?;F[ç(==5(HJE8311<)A2H<  2'/9AI35%,'*36=9^P2A-F1 $?9FA'`2>ZQ`Ø/›®?/R9,- .=D,09!>4^Z-!6=Y)&"273.2 (-.U"23.M $2 G.0þ&<F+ <R+."5ô5&E[F6c33 5:@0,*C&48),M@""4?.R#(1'%54I"6A!E L>G/:&/,QK3>6A%I%'C49W'0+)5!F7,O<082&W0L?#a*H00H,=H#O" Lc§N 7 • W÷ JJ@I^E3&2=+9ZWB+TN,/EI : +700`#=G=12R0)-L $:.0$,?lTDJ]f='UO(=G5>@DIK,Jc?DA1/<"i+@))'(FOS@H(26J:87>O79!;>HH;#531%0F'!K7%B2)# ,50B:?:1@zW-/> W:M5-!".GQ2%- KK:'*`7 5d0"2E$2K!3M+ ,n;m46BK2.3/6=?). Z6QMK.= 'M<*9+GDB4$4&\0G5PK"8.0)?[4-S;+*YN F 2%A6498L5#3B= 3;#/*C"&)! .M1=+-F6'#We&$IH*1 5<*=<1111111!,P%k$1DB>"0<(<,&ö(@>DBE&3@.+. $SG $B;5/3/1þ.?@46=A3L72@8.^.8I,*C$OC,3;B& DA?A5ÿ17)=J()&4  GQRH+"G%&*6"TA&#7;  G .æ:(0>23+F&GY; +3Pd'3-*;,\3$5<0,;\ 6( D$,^F#GGF! dN-!#G2 )&(AU+A1&A2f<H,OT2F">X0.+5-EAU/FCû=4AY5?m(#T"=GaI?%9W@D<7õ?-(A! =@29:H2:,(E! 11111117B1!D)3&B)610<‘a.(@=GM+!8&X=:==ù<1#K2 F#L`3*8Q.>,B8+6Q-+7+.,% 1þB;F?J>$ 0V75#_4"!:ARO>>=?9:(4!,'37'DL!U, ;;'=!0@37'" (.=-*5Yii<I…º-—Ç1¶gAE)703E,!<4LC)< +K55G'"=/(EF KP8?) D;(/8C#7,>%;@G$83(=6$[*'(,*%!GI76YFYIJH1I174+ '(F>IOH9 1<JB13?>N-9)ý9JAKJ,BOI=-%o*".S''ã?0<GG35;Z!,2'&&ZPK=43I#6.6(%%'@6Ht^¢1B¬´K}?,'DPJD,9!2C%().<0=R"492b?X8.>o€DJ@(:7)î1 &0(IVR@*-V'_QHL:&@QC?(HNSNN3$ýOIG2YP/õE-]2 @/$-3.U=(B59_4I.B-8)/CH9YJ H1H8>?:9\<<#,<6!2)$E&B32AP"?,4E-X!R7'8-(?-u!2U19*88,"-=1#/ 10*(;/C1%/H9%D;/a8÷!7,.!M?9YV3%NE:18ùA.:278;0*@ :.D -:*."^)- 5@F(!:?+B=^M'-1)) +V*7'5/5)*9'0.cG8-H@*&BQD;C`#2#N1CK?]Q65T8A?00(-0>4&@11111117",'?R9A>1"&;P:;55-C*<8*A74J323)53A&9ûJ!'02ûKDW/%(F"12(+.M66-6, ?>DYh'7:?DD30!H4DJOù8D'&ê!#'1F[I/M0 =jCB(CE"@)158'GD3[+ 'YC6>@+ !0DE9@L,Q@=M$*= ?+K,32&UU4;-ñ<>5<K&CF),'7?3!1"#3N6#]:( Q/4ø06'Y=$',C2 N'";4G>"I@>)99-)./5:*0(70#&;4IW)CA&/.*1'G))5V8?3;=)1111111OD#$/,!=;/^+  YIH8&3 8,3Q<28"+J-$7+98Y.#19K-hUBú&2$B)Bë"1'=1FXP)#=@;#"1A.:,8-;D +#5L0-6<6@;[7M'+5A!e!",091+K@6-';@"+I >2'4.Ef:Y]·íËî¬~J(&7*+(N5%1[-DFKO7J!;!)$=|- $"M1AEJB9:$&;ö$FT& "&<+3f,9ï#F#-:I.I-,G20#7K$/ #337IQ,4O;‚/-7)B%,.E :I82%XC)@?- U-$%38<ú,9,D >2'>-%X>*@+A$2,.9.,@&DB= +7?2+/99%J|FEY˜ÊÁ•hb>Q9BF.\K+I):I+9'67a6>65&ó'2"8YZI?>4SN+I>S&MDrD/8<ûRB3I40%Rs%(R08$OLX>@K5?-4G"<(?S1ýLA†]0//ý'1I .j#. 1 N'$!S6!X?*$0E$ >?Y1 "EI58'--A06C166'4=1-YI^@_bT$&o:<.+;(11m&9 <"7*þ1@_ AV=!c**KAA=#1$+@94T%73,J?146[P<7.%#):@? T46*=03;(?U¦b5M$E"-* C@>1, >C(1M: +/N8:=)08!@;aG)3#;-%(5F:-<0++. +U+;-,,1C$BW .1111111+I9UK@:2+F!\P;M*.G+97C<$G>3D"#37*N9?52,$1GP6&FD223:? K881%&=/#47-2<"+)6-57 2IG(*B<>ED/*(0E$$':'F#'-8$X%)O-GI81!`5$)-4B3>*);>1B,'S=@>X8@?.'.$,[S;2X1%G0C'F(>1C4@GT)B;5*3'32FD0+1 >4$/F3Z4:#F'$)+)')0'*N!>9@AL/$7 61:C?! +ùQ/U-8 ø/N'K:-.$-,D11111111=)*%ZD1,2e=V)0+-.%786=!58E@W-J-"'8(U+/W/+8 C%E=E9G^6 &@+S6/DJ80.16"G  ((>F(5BM-=78)$- +6B=&IW%D(?5-('D& 0a5'0#( K-7" CC#0/G<X;S|~yŽx1A9GD"?.586Šys?5*"UA :(JE!;rUB]D-UA$(1I$<5'68\8"`6#+!+D<cF-//V77'x-;#<: +F!5M9'C+5:"Mh"@NF?Q,;7  *(CD*D:P2@>zMR9M&`"J#%$<>!AB1?%2.-Z\P3KWK %:D%9,:CZ;^CB5$<Z6)T5H3+ +<DP2$2Dr‡ˆ[h&Qd)H)')42 D23*6! &4!,1LU  1&&7GC.8&Q+f8";LC -89M\5/Q%I;];)8/1A3]4%.<)$5AC3-CP;53)?^1)>A‚›…^7  (> ÿ#(F.?7%2;;/%-#C.n3[>/I;%18B!7NnD''(5531 (/';7;6'78N7*. *[AP>+=</G3 C>N?_21?8D7Mí%C=84974;L1I:.%0EQ+4>5C/A'0F-88IN+&874A30g^04*!9H4)F`fim>3?1,&.ñ$32+7!"1$C4?÷ø.-:UD,3#'&61 ;'Z<&08.6O'H-07'<*ÿ3*"7/G?12$1111111.30:? #)P?.Q3R^DE/"5.2&J5@$J?%{ OI=>)*06b%=*OE!>;76Z4:<þ7N8?72_9/CIL-L##L0%)&AGB),9T0#./-KP@@<C((*"3?T8<&&:8<=76>xZ;V#3,N,5(  <83 > _5"Z1&WI.97C=K'E&50HA3CP3,L54 jO/,G!?7) +(61#,H*3$4þ1/050&(!B*!EBNDY-&AA+8? #J$5H-MTI,</ #/+G*("80460 +/%8'9C1111111`HDþO3#"$9!J% 5!O+/"%T8 @B@:$"Z"<#N)E;@:+:û3XMPE=FT4%7O +C3!K@;nû D,,?!</9 õ9$3OVJS=WVJV;"27:=A/6"=0SH('@p?04)39E^E>;0971%44;J GcmIOWK8Y9J%).+Bw“Ùm.<;J8/:TM9^1)N8;3d?-VA4/+:H*,)+4+*.,8a)4#/O8R!15L5209 ("+4?9=$8&,C5@@%2/'2;4[+5%:AIP!GoƪGGTDIÿX9F' E*-&(A+C<4+ý=:ú$8C O4WD0-9.F#&A2BT2P<7>F,1%A%)&V 2rJRGT\:DDTMSE2J07LG:+;& .L(0M=1X3$K"-2BD0)3[E=@CT7i5LT<C+,D<<EWM:=5K@.?5$383#:-f/eP,B](@A%29b-CHvx!D,4 ?CB)D5ú&J+1H46S1 +KS&17228D[ GG<0DWW0<-# "24.KPI>-")35(<456ù79þ59,J?03(JL +<$&2#0 16J+A;-G.^780'Dd G!L173)M&4'6EJ1H,C)&74BQZ„£’jP'FH9%A,-L!9JBAz;I.11QH=$4!40'&@7=$CaM$/2OFB/3(Z5MA.ABA'A0D<;8<,2/K=2"G  ù1111111'-E?5&J=CV 93 +M/.% <3/1BE0*$3L=G"K)384A,9E$8107-=!,8:>0<3JA6NW"Cû>#9B/L';.859B3!ñ9IO)+?.<'û-%LKG8-!C@'=AE::K$0%@=NF"%'2/5&600AQ=)"? *M*P3/;2$<0G(=," T.+&/+JF1L%!%J9B-% D/7 =C<=4*@!$+BR] . < %IF>(4"9+,@1C\D)4-0%G"O(1'9D%R/,?;-.:*3*G%>K /49$AB+8(SRö)11111111.55E$)#A@4  #33)Z7;/C5#.Z5H0-#3-!/,:(2_(E%2$1,3;O)CB/1@B5'F;*#$,98/HLl:3+#,0&8!2>(1M=F%-'?,BK+QsJ7!+!:5>B ;30") 0/&-9;;N/U-3!3#9:,A!,;.<?Š¥±IN)3%?4H#c>r:WT=VGNI=8 )')/4D3g 97/NQ4?fú'S)58Z1E0^D+@å.+I2SI$?*%W <F2@;+@s$+0Xj-.*X>D/3,q›Un='<2#>L=&2/õ!@1?4Aa`A&H<A!!8=  09 H-F?9D<+(O0F/K7C!A#8<L#N-KN.UVUA2:P)@@2'!8!#e*F+ 4/5)I.*,+?a:1 AD4B:PF`$F=MDfY LV4)D#B(S>9CA(F2769)%K/.=X=C7>%"*&4(@;E>!$=!+<S&m23?*+?MA3%2=X%=-,$ :%-17:.D?52= +8/5+-D+B&!øG*%A?OJ/-Y ]1,R0&k:F/&D%,!+5" /LJ4'O)D23P:PDN18 +*67I?)ä9."'17:*_zP{T1"J7)U1#0IV&0#N7,7, ,- E)0=9!(>WH 2"Q0%+AZ 4þCYO!38B%8…T*J!/29:2>#!Y<IN11111111GY'Hc27KIHV@Q=EGD7S%5=50)J;D>Y(+5*+>*1G2=9\%N?GB;& 3 -G$D8? 5GD.<NK"ü4./H=$8(+>"**$**4:>);@)F%;0QXuDEP%_2A5%5.o:7')1-T/K/))G-2[44X!6W8CG$'W)m7  0=%J2+&ÿ3$ [(6R`.?0C('-_D  1&26.5,Q?2":'B;E?0ò(% J11;!F$(23.2 Z432>-Y0 +$0$-@229*96(?3/-?6H!QH! L%L91111111.(m,160?-D+).N2<ME3C.8G)9,;9"$2/=,>FD06 05?L$"! +;.>+$GR'TG-5-iA'=bZ) /5')3Ít-=IAEM1%83+KF2B2?;9-2 1.2,"3X2h+.)"D0KEG6'-::? 6>N5Y'5%J*† 6,,S B5DCED170/&4/Z34Y@  prG%.-<! /DUAý='+C7CDHCo/ù+E2?'?('*/22G#YN$L?Y=6QF3Z?)8#A"AJCM&$7+8/H-I L+'/*U0P[;5>T ÿ+0/14[B(KM<81*<@ò.L@93 3-9* U"&L#3C %D+A.'4-A7KG(< +GA'6I80E$M/0L101L,@G2<)=?2.*09,2@>+:MЉ>FI$'G2`2=EBX*C$ _0*:].AAB-P,3/I:4B/()?H&//K 1CP4L>LY@'%Uî`ZC21K2/3? E0G3+j-2,AC<J P:E7?I?D#) 0%F:/S'8: 5F).)! $-,*40..+#'6/KT'S4*4 :ECDALX( N$=70ACL=0<1÷,).G@!.8'B2ISûO@3.E):MdCKSSL2/T77<9Y#%+5B 6<3R!1':E]/9810(/* (1/FR9L7$1&;=6N* :?4#!?'D H'1&)4COì@.42%311111111`" 2?,H4S!?{pGNWPBEY3G÷9J=03>*KF(8WTCCfB,#=43F1,8GX(#:EHADA !?96S72>19,'JDT]D4 +aý#:+*…,<A9(4\D<B:UFR,CO4.A%W0M#$3%!'K%,$3;102K];F`cqi;-1;N7.)$a2.1.$,1G(EA2B-WD(K; =O;4==8,(f05 8.ýK 570`3cI-+R?3I&/.-4D(!:*=3O5 %TI 35n!7(10@66($81)QD>"&>6")ÿ4q<@&:%iV-bG(11111115H ;/1<&9$\(W)29<.49B[G!% M%9-Z,*,/HA E6;*M=U3)3>2þ0(*/%&/5E5+?H_W,= B9K<=H2/ E5]2":" ?(&8eA3L5*m(.$;+93( 0*F*'-5AN*D*Y +<>*cC,  /H#/<;&>[2#)\: 2 5)"%3<0=6A/.7,Cz<l‹Ñ6+²¼|<=.>047&0MA4GR +#:NJ%H,=96 <&U3@ø/('3(54-F=,9Q2O /'6 %EN3+%E#2J,64)A9+)+":()7JO%5pa3)^IHb;(%239#7 I0M6:'5E>6:-:/)<48A!( I59:f M^MMN(96V'H* XMCO 2+5,ô 'N\;*#++%69;N,*0N*PB‘ ¡+,'FX39,'c73)A=**fH=NK5*&$Q.C=64-%}$75;üM9:0:IJ"F2,FCRø202 6/TJ/:3)%6J &@@.,2"H03,(B6;FY +5/:87A'9!q2=3 '&8=G8.#00.+<.7??#0*@+M0C:["R CU,3V.8@;i=-6GAT2'6F.38(=,MH;A7AaUL%M-*8+$@6 A466DL!J '43@N4CM7*"7]YO%-2E3, )@HJ.12N[K.PA-&):M,1u).0=%11111110+D0\?+O)Uoàòòù‹\J6-+-'_%)(1,J,<—–W_^3-B'WgD5>;SBG2<@MD#J)3öDÿJöC: +MKRE/? 7F:  A &58&4*;JCLle5/.=8&47<5%8$2EL0 8R6<V8*H2< ;-2 $!9B^vvk`G<R85F 379$2N@3F:87õ/D "75FE99J6(c?3EY"87-+:9-$A>E&?83#8 /=/JDN-0G<*F64F8$$7K1=SH)&!)5,*M$+" =<,*LXOSC4*M3^11111112A8C2./K+kaO+4AHN ;)4C6W4+0@>FQ1OL<7US:?1S/+,@9>@Q" <$4V4=Se-<4;UK?<!<C,"!K:DZL4)(0l45AMCJ: 9'/`< +L2,*+5.'7%5;7#% 9  :VU0LL7J-C5&H2&C%(n>99118';JdH,,:h_¬>ú ¾j#Õx\>S4S0=IB8 A/;P=1=78+;*F6^;'%C:a3I-I401'7T6,8MV (6&BAñ8;i ?L BN65&!@P8R;F<!: @!054;65Z4=9<F(;(9$(06:4;JLZC&H(M%( .8ÿ%%0/-3'@."!*3%Z'77"3óJE#L.$/LGG$P H$q5LLJ•@'.ôUB+OdB*V8(Q,_=,6;*,#BcPJ\;858C*9/E5}@6C*%\)>5 UM,57+C'0$ù-S//V_A!8AU%SN;KF433,A'XB2(_*2T.78*d22I J( +O%,G A(4!?G417S&-9$!&U*"E T!0%jHP-<A #4 1(8SC">$.H)C1;G5ZC!E\2!(V3!7>4+1(<56M;O ,CB19@An17 ;-q.2(HC'Z,>ÿ5'8?#ú0M"67<-&@jRI36#CüLU$!#K&(G5`&ai<#9!36:@ü 1111111D<  QO-'F†€“\C<:!/0-510*IoÐúÕj?,1n/8*+A(8^O5.)"(>W#>LL="*$Y>15!4N5.%4N*2.FPrI2%C÷-VHM 432b;$V0..Q EO&X*T+'-IJ2-)0,$1)*:€?]¸Ä ŽG!16A1"8!GE*!B&\Zí7[J:6:LB`A*" '*%*  K)4:'&#)C5@>()"9%O0*O6-3 $)0-1$GZG .9?19,K>4)/D09 9,5+A3%Ký,<öS3)4/@8*B7T951111111D2(')1"%/% W=\nF6H,2)$OIJ- P"B649*>*$>cY@TIR +:2F)C)>QQjBHL9I +B-C8:=P=1B\/E@/60(9A4CF=B+*-I(D6=2S>6R)DEdJ#%$"93C,Q"/$=J#a* +b$ N6.QC53%)*++5+E10(/5V8.Q1&@5JaSÇÁür³?ºedT.5C$D9,+2:35ÿ,61%&/B:HIK76">N@*3%C;$G-D/<-=%A-&C+E0-2?1$*GDK$ 9*@JL-;$1><E=8;OP*U+B'û! '3*.K1ü//Q%O0þ1FA"N^7A1 +C6'"A5.S#+((0C>09'c-VC2/.I3]>*1EO Y8DL"=78 +,:"#sB&T0@S)/>:"IQ/4$A8)?'>;2 9>Q7T.ú8'Q L40 F^*E:,>b-EAG%g*&3B,3 -G<+V+? +L#G(@IU"6ü,(2,%G/>C*@I JE6E!"5<5#$0&0U^&":iHLB?=0:N<UJ^#) 9%H08 )=9.MM=?-"8/#8"52c4WP(n$#-O73@ ,'2)9, (8@;+8(>E>RO(;4R"%1DC;O"F.-L35TJFD<#NM<,7,.(:56>5($E+H4>$)^ULŸO[0,(@(3@.þ:5!E60163PLF >2K0!%F<r511111112%19;=EˆÈcžƒf4M(]2?.?E.F%:NDC8u!#ÊNE5:!CPG8HHR&HA*@E+82^1$ 3'&/>#!*!o'B+ 4/"B>B ./E'"$<F! <EW1ZC4!)3*CLC4-XW H@4I >"P&2^&9FMzÍÕÅ…R$RQ#8>. <!87(:<""5:1(3:)/:C//@<,JE*'AOJ;6 û*=+]<Q;I#7O2 (8#<:@K[M3BK6.99C4;u+(.-0-CJ(A"/$8=<'N5Qû8.7H?(#42;!"1111111D&JV8#]GM@28+D/(P-Q<?\E30,'42I3L#@C9=KI?642!=:>K>);$ /4H10/$A>a^\(/b2(,J+-?IG0+<6HA4+2 6'<-:5QHUL$"0D>,-)"H,3RVAM"J546/8*I2_5@ #H.;E<‚!/HH'5E<<-](:0#?&.*(e8;1.3AVsÈÑ$Â¥4Û¡ûzQH;&<~3S&9":G/-c:C0)&3(D*G,H  +:2?CB(>?6IM0QE3'5<B$0/>6'ý>)&3(+:,@!6E7e],/.BK0üADN/2 #a‚sM;<(%G=I5 N>IS2)^G /+0, +$F2[' +A>-A,IOGOaMcE+,3F3'+U+.9 &+8f(v!0 3113!*2I/*U>#+?6;:>=98%/ÿ87=\_V31)WI!~,66L2:(BA &C* N P6!.5$K>:_VB$>"A)7Jf6E4&M(>@@>-A,6'6%ü*934!J7CC?/.#)B/+/$;!'e"]2D*;<"@1'0jUtE$8\!4Mn:M5QO * 8PG**AR H13D;MP#/XA=Ba!"/:*7b7JL/ K';P!(9 .:F;KC%$DB;;FG8I>E/-*21RB!53H.8"'(O!M&ùT9Q€N682Y51%G/ 7";'$?(]CDB>D>%9*#:3%(?2$"?Y1111111:1 )FB:OP›z賊Š4-7,H?2$!<$ó5 14!5?Y¶áx€%5:.>7?$ G<# í .- 3#9#@69BAVV51Y$5484*3,?+*6#'? 7%\/ F3:8-HB3B85B-CL:I>_$<OH61$98UGC:8*N@=8>/EM‹œVG +9"?"*>9[4\70(@..B)"lSH .4Hú_)9*9'@X30?&ý2!(-![S( '+F+#;,+K(?32*ý&-S6<.-B3**7?2B>-/821/*?=S.9h?L0WE&G(.,'21%$'1111111,+2><s€o 0-@'<-27^K:X;mJ,(O:$=1: J9T2+%*$[4S"!#*=9@G+D,F5 =-AI">Mü? ;'3OH9+?2 A(,N&3+$(/G6HEW379H!<F2@'.'82.E+:*4.31 9=N+:#5<W4J70K1 +15-'L4 B42L$ f 20GBS@‘s y’*¨”Z#3:Y WCjl]+)+^J52@&E&,->(=HE-4---E:'$D0X0ýL4T+:O#4K&/$2)3'+3G1;XL>0$+:,J//2T18WZ¨I(FBQ6F +,/&8Q?C1-(c68<=c5)&.;#?=:;!0,*2H3$?!B<2ýS2"11'32FG?&TR9*F9/,<D)'*-ç!&F4-0 ?4T"*<.G7)A(4=#a*'Pø:@8#AN..8P.3,8/A$(*.!2"e*Q.==!19>IWG96 E.EL 922='E?;)B#-2%T?A)?$W$GI%Q!M.185 6/@MS>1@=N@;0LB8L<G@IWXkF'E' M-û:&0;ec*) /:DH96'-I'>?9)@P4/2I;%*G"LB, Z/?V.U&D(==CID:#G-D.08? <!KI8#$: 64 -\ + +%27 Z$CHH@-;-.9> "_++W0*#2(H$>D5V*88þ18)0'&:.01111111D-&/;>(KGy@uI8EX>KA.A3"E6å.(&G;CJYSV+-@$&,@0'>]::-6LY)B$>%6)$:( <8&B 1E9),+?*&4$=$D7,":>C8($#LZ,=.;HM3 +=oKA) oM@+6dü8.)@K8^@:L-M=\-I<=.)? '1 'N0+MM3G8GC1,S6':0NQ+![\JD>(99B#-00#CO-BR/A- N" *2TH$)H+"IB"E#!!.YL6NA4*&#I@!V*#)D(8G-_,4pG?5E*FE)( {24BBG,T8@51111111'7C2WƒHo!Ð-"!61• •`>i6!(RCL18.)L4/>$@15:M!+ 0(D""1:5LP64'7)31"'3] +!035!h25TO,/CC@ LG,'NJD<>+:C4(.QH:#E=78K+)?!3+A/'/LJ 0.\:8:X>/<#CV#,69-=@-4#9ON;:q`°NU¯ ɼu2™STRJ"-­ak3>/b^I^N2/0=E>?9L(B3d!$,H8L*V*:E#):>;JH),D?>?NR38J_>6*;,$*C2)*9:>9 */<)-85B;WO>*M+Løl1E$+T( ;G"J=S**+$!.ò3EGR +-9 #1% jL "/_&HS#'*>#<@,8,C,RK8=<%.5+Yd44'74(5Q>BF./%G0ë&F,4:D&KoG@?@1@^*>/D,".W"P9@'(4(187(@dN";ô> +%$"98>N\70/:,Cþ(5V<F1/.Eý>(9K 8J4;2+*EK&.R.:(R5K-a@PE,"5'JC.(@6N0.77=7F&@FAARb^:CCG(RC55C,6!!!1/B*0F4395F0AI&$-!6 D93 AM4*+@(A=þ*! (è 5211;!2E+11?%7!U020/-5&<L,+8- +'BAGM$,G;<<<#OH8.:C)M42;,;J2.8+BW::1-Y*"M44!81111111H8-N''# !F/<*Xm93K(N,%B1!86D+493T+';..+=%<636KK+$40Y)057/(('2A>3N]'870BS-(?S1?d<61  .L#R1+5!;$&.]Q?-~.G: $Ga6?07 +45>R5.-=9CM C?4h:4FL2Q"'OK7'A1B,+û 6<B% XN<ó$8TA0<T6;8<(925$LE,R/7!' >@5 / +'>$8 MB*(,O4*@/?B-&R%?M<3G2J0.++4O--Q.:. L)A. +-a!JYI#`[+'1111111 ?&t(2z^2H,18*16)1=ª/"ò’5193 4#S3:N4$$; 9CA($$P/Š)M!G 6I2 < O.GEI-4B"; H"+84N;^/2K2+I>?D#1 6$ $J,:+;4D/C302G/C$-S)0UDN++7$6 +$1('3KYB3+T?Ni43 Yn'1j";DGE;/"M)iE-A?(OwÉ׎Â3%ŽjV9O$B&aäÈH'U5:Kh(>$.R -*8J"+E77E6D-k ,G$a5H&607+þ!+M;3.>2 &6I%G@GU-9]7 Y96/]4<&6 1C3E, 19G B3 I)*JS fJ# *Bñ::"6B')N*0'IN'+0AW9I>!W55M.'%03VBO">6>:(L%K15QG/&' K( LC68,`JF( 1<3!^3505)G<NB6ML+@;^W (6b*K>\øL26(8&5>3i B)181FK=(5&AA0=å??, K7I!4, # C* LE*/)2H'bG18HS%Cn</N<I7N>29=GO=><T00-q.p?*%40+'W*E=;")A&O7QGX&i=%0 $359%>+18A$ 'HT@8?7`A6#(N9%LT8E +$AFM'_#65*-;&E,'FaA'$)6@,/3U7;:@.  +:;3(%H%=*E& õ#!31.D"PHA#977=S33C$5,a')+J'  &(01111111%+>Ai-)E7I7 <&;#7563C%161YC)3%S/ H/#8í"?$ .ý"*)03DK78+8, >?$JC>?' ;O>CC;FA(:-&C.#/>*XB&4ra0D5,/Fp*&;i="-"$#/@"!7'5A?Q#8>&5[#F=%9?;ö:),E"CT(.2+#J"J"0+CZ.$@3@<81%,2!:4$ML$$+#2K29>*32865U;;?3F@7G*G-2+-(D3IO2[<÷6.41;!Q/?5(8A2?2>3K99,'B1111111-2866;A= :7QZ7I?+MiÔµŽN)Q-486P,6F   G?:#A(,4;D:%75M2(F4(69p 4d,%`0<3LW$79 3D0=,O)#+<7CV(   G$5Y)"E'%[K g)E@55AH-**2ND8.3B7<B<\Gˆ!AN+L$2C1 P(RN339J-E^%0);I”C*`£áIN@\ߊ?+.B *"G†V0>*$NFS.9K0$G?)7=4V>A&)F08I5F1VH+,%!\+!<%(6[09&9->H47))A$L1.-&3\.6p(,%+*?(=#E*6=?K/*3?/*'.2'IC2 :E:B@0'4.&4<;#E4OQL;/M+W ">*N?C%H(T>*9(+û3W& 8*!9A&0*:,O6,E)C";:71"IO#9;?9I@*;6o11O82@B-W&B&+I4=@V2;A,H:I<))>: +ù?(`9^]A<:D^F;+2"=YO'"?"2$ƒG;M*!L9$;I3'F@#2:1+H)G6=÷ +I?'K4W25?'36 1f V?DG/8%/=NK<%/B %NGN7( :8:BE@D $RD:=G+)1394U /PHA,=;O%IJ@&j97G)?#:#$ +#--8;@'@LE6)ü(0,5(/!9Q8094:F)==&0HB^09+ÿ$7:";?'8#L;1A,BK/,63C5<÷G,-1111111#>K IQ578+65c&JQ0;!F=N!8J9,4 E8+/C+J/`,)4);2$&:=J9#ö9W*=!+!!)597U";Z$60;SBD8$#</(;5;G'8:Lþ/$M=/$0B#l%OL9-7,5/MSN,>(B.*&%;ê:>C %Y!32(9.? +=%28N`3t6H:,#@.^?2.)õ+3**:0BX^D=$ EAA%^[=&/1(%,E;Iıga<$WcJ6*`/  7<:&5B/)Z '*?6/J5'B"0=/8?/ O3,L'5E, +1111111>78E&:`*+0LDG60:MhOr*B@D>GGM/V\F6,AN##c14 :=- +:;$ AN:=C*:8j]+&3$5=M &5R@5/S/!/.ME271'"(1`7"5O0,>+(]9IG0ÿ'"00AB84D/.74#O =B1?M8W?X%:&T=FS‡CRC(:!2%5T:Qq*MLZްòneq”‚1oPFH@S<<0,01(R>,';D%>1DU>&;J@S(.H>5.3;ýM>JC>@85: 0W383VC:(</Y4E+>/80_408>7J)2*6CE8&/-(=2(C*,5 +".T;+7F=+>%2\%ù1!QCB+Q%)(5O/>=U0H:+$"ù%'18LVQ%<>=>0-9//E>X77Bê-  OZ$+82*q?GG( +4&@:LEN7?5])6` /+/2Q"%+8?T%l?+)%>@/:H,X41hr$3/T:9900EL6 *44!B-7+\+R1)EewMC(I:U"@QB-?<A4<&,_819!876;#7#1P3M9L1<k7%0_L,#2a 9N;@BI%+1"9,FFK36: 085IP8mG60;!;#C6`<:]162T;:2Y/<2++&78&6K:+6";@H"C70:U&1=R*i?;/A&úHAn1')SH3;/ND ,/B:>R12Oÿ7B#,)+ )ú4+4A:F(1111111/`,1H7F:-5U@/T*N"=5 F# !(= I+\%X%Q8707@$ý8+. )LDQ,@?2:NBANe:Vï,(4OøA&04 4'--"90# ?45<K: M$5!)"2%38'57BX@% N:&V 94TL( O67H/*7&6% @0J4 " ,9.,+I8+6>)5?D/\>/ C3H?0*I&"&þ$.=@8P6>_4/3'@&*!-83"9O7j PD&'@>00D'  <;64(8K1S)4/,2F +/'=%' .8J1;<8=)34ICj3!#91111111>8.0P!BIRH@8+2.<%ZD='&9R-7=,9D.@64,.68<FY6<B:--&$-5 4;9!I>LZR;8T2A,/b7JF.J41*-C!0-$0,0@.9Y?2 P6,a4 52(#@=0%K e.:%2#:3::S<55F@AD2<$/ 24)6#<Lt—vsG1HR)Q?u^<TGd‚–º±»IYePA;>5@5(!::*G!;<Q,#N$=$71WNM(>%0-/D9D:81 95<C5?5B$ %2@+1@.+8 Oã!.9$YO2+;L.í.-49!=X;I!' A);4&00+L7#:  %/\P:2")" 00$_C$=ú1+EB!5&P 0F7(2:AO<?6dG#-*!$A#6/#!V J1>DWDB.8'9*\;D)$1ET?'O3,J11/BW85%%. &0,@OF74:@@93J549&.O+#A1,D Oò7*),ûI-3N2 5%87&5'`!/*DcCS@B &Iq$#E:h-!B&3#$9BE1?N1(>@.;Q*$&0B+hV6÷'5(a.7=N363#ý9."-<P-=z“SEN&* <„wF*EM.,'=;KMˆ= +&O<+=+:2c)G.- )1-<,)0M6=-:$.D?(#'</1OE18&363/"G%3B7?!O C,Hû'.]30;#8*%:N"RJ(9R:N:"?ÿ7!1111111?- ?4.#Lk(H,29%#=>-5-6>=1=CLB<EH&9124"LL655+ 0#-2, J6+PN Z6V 4/&6ý6+J ;&L7 +-J,%A69ùAý45KKX*(*GN'?67D$<FD"(1^KCI R'C2M"-&"@\7JZ";7 +D./$Q?061U,( B(F3ûK&/>-.05 +>$3ÿ  I@%31&X#<F'[ 6?+"H4<?(!36/,%*8' +>6$,,<"^o+#CF$$M*&"69#:#0A$-BJ-3<!&80-5"G0E<@%&J6BQD,!>@.9V2+-!N=1111111:a/ /1H9>BS+?)<05E=-MS7/59^772.9)7@;!59:;0%/0`3L5#!.^<7*P6(3B+P2F/>C?5FN%++`)Kô;0('02"1 S8&[61aB4)'3 *#4E/0B.Q17!K Y-HH(.1,u&DýfcE93<#;?0.T8CY`_]t<BF: Z`mT2F•|_Ptoh_BK!*5aNHJ<W#K,0 7&  J#R6*K('8G8/M*'GQ41&*!FA2'43)4 B .??!.1A$S+#/$8&*45BV0);0;- &,N'$'%1%(L0B*i>@PK >ù@8ó &37)4'3@9 $+#3=NC>&::-P71;(ý-?3=8O):LQ3F[) )A8/'<6NO#f:Rý-%H +W*;(B(N.-9#9GW6F$KR6'6&J8"B5\&CIRb/:1,I@6)5:G5&0h5O%-B&9$L!"PA)/F +/T3Oe,-2>& @7H 4/+F0=B9= +9%/2+)0(C+DEU6ROB2 L-GAGH22B4?B46Gbc©eU8"1]Sb]Ae0%"1A6c Q,D*5DJL1;/5K#97 )& F+1%P<&5.+42*#\)NC$+4a.(g1+%3&4)72A'6)9/5;7 #8." >?6,0E,1f(11!G=:81111111òL>(0 8.7?4;C*6(:QM-N'IH3'RI.1<-1HEU_,:)R7M(= +/3 @C3*01I1>^ WK2T9-'6F>I*P&!-+4C0K((*S&>1B@'(J++e<ña#)@:3'-+1ú0<?,-PO"@ &!,*H$>EB1L**(C*)0<"R;8-7E&2>:='*9^+1BGE06H&BBí#&B("?á+nB8W0 &=>CE3E # +2 6fW)>eJ&6R:=$A5*+$#7*-4?R>QFPU\,X3!E&. 7: 65$)84?11111113"2)  $E%SUM$[J6''+58H-.@GA,0K!7%#+5?FH&'<<97D,@D/6 8(G G0F0Da4= =;GI8G77N&K7+P/0,%þF,*LG*A>0J9+N$E*9#W:C0Y!$CA?4 *-':& K++?0GD/RN*ù7.6$LGNOqU:32,SB/(nBhSV>>A=N::W*CNJ7067T18L8$&T!K@%)g 0'':$18;>M:8[#<<8"EB$%#$U,Kú:ý)9DI<G+R0#:#9G_%.^f.5A3 *C0=L4!D FLH+LBG +9>1 S'C(h14+M"-+M+D;]QJ62MnO43+=Rå)7"/<ýQ+ +=\!4+.->0A44V)= P@5V9.X/,e,ÿ+F8P+Hø1:'PA10JI08{TU:';M-'D 2CQ+/$?1:2X>J)3<%@1@>F?2I't(<!:;AE"";)% +;I2M92/FO".:<2./?Ba÷/5+;)/6<@/)û/C:,J#(.+.2)0k0÷)9E:Y .Ee3/4 VN!R;9@D78b26L'(@9-_'3(0L|þ¥Q4IM,–šS.<-IHE$)#,D3VE0!-5.3=4D-;+B?  ,H9HAg=.C1<!@+830H@A7L%3;")F ,( %0^A+5":T4L?"4HU*!?0Q)&$]3 &<3=5E1111111 nN!4ý(C&P( A!0)C@3L*6(N;%<*:B-),Q9C?UA- )*ÿ/M68*Ce!, E0"&!L%1 =;R50"!)0 X +18@-$ 68-% ( 4ü$*9;1+06ÿP1W%&(WTA=òC`82F61B->@,õ0/.#4Z1B68c /*/3"[#?-|ý014.0*+?!6!A %I$2<%ïÿ3G%L_Gý0</931O<&&?A.9DNSR<FA7 58!'#88%3&+8<&E =0-=<-S,S(b].G*58ô2058@,0(1 F0F&1111111<2411,ÿC@*÷K53? 3]&8,OTCM>0O]QTXhV5/A2\6QEW,9)$)>/]7M1A*1((KAIA-A5TP64+)<@9;8A5J@VA94>%?:1+;*6t.Q67/)GEMRB"#F8)B'L#..,@5-A*,Q,0*L5'WB = Q2&)NS5J9AB'Z@Rk:N)aI?9E"OJTfNSIG&0$$m#0HB@7ô2? :8, +*:M*8.#9%=?9MZ.K*.5*!7=LG.I-4. #,'A/*4+$</( +@hTE J&#C>4 O>K.6D.:$YP#ED-?U12'!'"%@#/+Id8(0'K72H7@$%,4.?&-k8C@E.6N9Q69"2&E"#J*0D$1@6&3*)E#h";_*!B4JG%*7+U;$58)? E&1E!MU.7;%@O',*8bUIV%+>5#&;2é&8(4"3.KEV&+ULLJ0:W 2GH.<)6F;USZ;?@F,WHQ0-M#%Td4R+>@GD:=3Q+?JV^DO,QRK4M=!0O;HI>77G9E;Q>D+/0>7:@A/P|Ë6YLVOoy¤C5>8D D35 R)!2þQ'= G5H5DZA$86BI*1K1&),-6<257**F8U;.W+0!8>7A$.2 "7N7B+X[= H.F<4A0$À†J4S7:)?1  $ +K)-c1111111,#8".!%=>6*+(#0Cè-@&&.:!%<.N1)R&&/"T0F%J:+ %?/SJ.62?$!($4A3'4&26 G= 1F3/;*0B 0þ83541GP2Nd<0990V +D*O9:!3EF":;LDB#Q,K*=7-]56DJ<@3HP*E-DV*\1"6(*&B%"/F60E0^=E>-4 *DC;-#'Q8"DD!)#3!?!<.R!6$78D$#!'SH6&6:@89*# H#0SOõ%(';7>O%;+!Hxj‹g"2c&:'59C=D/`=.I:1111111-*;@&ÿ1+U%2#**I:3@4;= 8T(FK1>:1*! >R41&*ÿ42/F&G)d28D0.25Z%,A2I5"@1:M)&#&@% +>?.'.",E/@.= h?8H7  +tmXP7ÿ8+(553FG&@2 +a9@</M $AV)90K$@=(&  1',%'IkQ&87ba3O2+B5/a-+C1&.\O*;%:!A<8D0:R3@D)3>Djy2++K6E7"÷+!)@@G/6A)*&+7(*7/Z\6 .,/5)  *! 1?(LY5#!A !(.#?I?4'4<Z0ù6K</0#` Sø.'8-fD4DK9&%%L)ï'J1/T.$3%/ (-2 TOB?:CMN?4: b''JM%3"%I0,!W++*FO1K(',0C'j19;V =W9 4O,S1 9O!/Aa=:#1+9(Z,*7&7J.1Q#4'1#c %5937)ö+8 1& =1$ú7+.D8J6A<>C9W-Aa7%>%1<B22;EnB6#S55K@{H5…L!#=3(<gBGy>((=!1YVT'?,T )_??6;ACGIw”Š<^[QJ 8š€FT7J="aA(B >E= 9!,#K) DD%N4>4 ?J62J3$%4=H%< .1)&)5JH1b:EH #6949U?B14.DH% 0*A%*>-B0S]&;G' qÖDI/)5C2111111112=**-X&)750T# +=-E=;ET+8&0D'5B5H8hI).V(@ -PG#*%2Y.I9(.,Q'3&'#+<d#/\D00R74 ,2#>!4E,LDD-0@( +"4I9,2H:7=N,)BM/&T4#!$<$ =5);<8$2F*E9,5<C0*7$<!N1;)/'ù20B7(83C-?26J+H3!L(AA;BR'L-)8A06"##,L;FA$].6-9A*5?êM,V 7*(6N2;:FB&--Z/A7??=!<0E DmpW M3:/4D,=";!T?=?331111111C7';O&0!3I1:*%@-D<G#H')MCU(3&>1 )4(I9@(:1=-G+0ð'622,;.úD1,+9:/FG4]?>"5H#S9>j.'1Mp4B3(3D&/*C)9$;!EAZ€ò›k30(++;'$@0( HB,.8I;:= .8(@"#+Y@"A<(0"BP:9[:Bw+3c`JU5@7E;(&#û,5(B%T 8?E1K&&P@<\(  *LAG(:! &@;R +=1,7L9%3K$RB/;)(-`#DAI%&$DL3.-.&[3 23,B$d3(&122$H:#**I**3B&0+ /4:"?0-?.)5(ED9#F(HR 5F=*% '058#4I59!:&$H,?*MOMQI0`1'2L$8 <SH 93: B0+71:?2[A6@ F +8$-G,!014I*P&6;@>>2K2L7X=$G%<û!B@&<#K3@::HD*BVS>@/#-O63#F>+ýJ< K0Q#?#D-J!=D6@YXf?L?A^-132O'JG8+>$Z<D9"6H<G<=U/%;RI1<:;$+9BTD(c='0HEU,M:=$;Z'^,E'oWF/*=-DžZ;_2)80"0L.$4>:þ(P9"4BA'TFNB "E^8!^966F!,) + <'<!_&M G)N520(/1 ?: ##.V>H7U!X^?1"*-27#G&'5+I54% !?'$1111111;KDHk$CD@->C'(O\1>:0'I;:-%6Iþ!&A/.'8%"C9-0*JSK?ZAA +Ub &:8*#A-%0)-:7 $5&,CU/F#n'(y/5%@+ú:#.LQ5%7B<7#Lh!4RN5<KI0BP6W3M(5"0(BF4R! DE -(., 6"+0%<$":5I7358T384%<?)/.-9HJ1X)0($6"/O53S@0%I>b PA5T0+A,E?6:9?*5%+Uû'@0MQ3&F&;K?E*95Eb;[_I463 T'%/:*,<)!1:[1111111*Gÿ'1D1;.*/:=\:S,,S0Y_D(@1<;D%H,D,<GSOZLFMH ] C]9 966D 16 $#,@F$/'7'4!ST0/2 7=9&&N(=W.C2::7F)7(+3"H+*8>%;Hf‡yÀ^I242N:<<,(G7&,4'7#*= 79FJ<Z 8KC3D M8C345,),R<P@NI0/T'"[279-#F&% M"K,Q$@7N1 %)9*N 10N6'CCE/.6'>ò(8O#(F.5H162>B7LH=CCE B/B_HE,!7", )"FJ#?=2C10C4+47::FG?)!B'02<<-#+'P?1&3*> L'R%A:û;3?2;1V(!2.(7>%L2F=.<:=9=*N(-æ=>.I.þE,,EPG?,?C::I58:;G)ô798*]:IV.8,IX*2RGC<A()80X(1*9:Q]8*9&A4: ù'0KS<@)<++>B.>(825D/#A'&$.`&'6ds`jt}KjB50 66Ja#JB-[ MAK 1#.!;HM>N> +*@I20,F>)?5% E;$ !7"%4+,0#> .960?>#6F=ctc˜I79-1$8&$>&3H(!0&)$7(0 C 0!M!ÿt8 MFTF$3H-1õ@HB2,EPJ+SEOI+>($>MO7L6/%;E/+)# M?I</AYF ;@=+[#+8/$1ü;1,+41111111H?66G?4":M+:<''#R&B8>3.%(625J1<"(>7,"8%Kx;E,L<J%G-,64*AG5\('/L"N)@Q:2@  *8&M]B/+:&A02$0E$;<7&03/G% 4J#ÿ-((9RP  .0HDJ%.%2*;J(^-K%'a7 * 3.( NE-Q6)5".=93225 0/IEODL'>10þ.1-@LGT<R )6.'-B%Q$O8E ?#S8N78cS%F# $;(4"0N5"VNQ5/C2;>aU#'1"0 / +F30()B11111110P+-<0 @Fã:&H=#7$5G"HHT)8R;5#X[B3];c\=VQ)N',+&'%/7/P1+#B(,;S÷U)I*&F> \.4&&P -<;3:95%F29701P >/4oQ+K1HTCJ `«ßçn<T12X%.+JJ4E><-;.E>>-BI43/$ 7R6+)%?5??:$@1+/1)#m11U-2õKD6î# +?HD d>)ED1$R=R2>OA1H2.#3+:`C59<55N:ZQ?VN0)<;* %2.INT DM 6#"?R+JS,N<%DW:JA$ +IO//!?f$gB/RG,R'AJS=]H2B8C. MM(.3=)V#X2C&%*Wó)WC@+K5TB@1QDK'0,(8*N.>.)-8*%8"+:.(:4%Cc_);O;@þCH?2T.E+?+7'õ=* 9^)#2QE>(5'8þdC<IJ,I2HO7($@&d()74A%(B9(,.&G?*Z@V), L,:FWPZ‚š|s3< ,+F"1D )1)(167F.!0EB^68S#6FU5=<,#=&D^8Y/GE(2L^VM*%3P;m+VFU' <P!;H9?D?I0RJ-<#2$TG!KGAC#-B;; -C"+û.?Q=/!c8+LL9:_K2-P'D'-))D:;7J?P_**+@/2UD,:4%/&G4>!(G5<<()0i7(!,(6 2$1111111DM@'$úI2)7/%T58"6 +E+]`< 5!'D 0‚$G1M:-(4H aL¢Ÿš__5+&G:/86W FT?\)( #E%E ? 7-?5ZF.<7L2F#3 .! =.&8%9ü9(8 +Z*3*,4X40-+#7I!(0=8)"",.9+"*=+Wü9*4-,%/#"8L+"7 +*5"BC"9ø9*>/!F3h`cg1YG8;W'(@?5-3%L8  8-3<;.\2$A32C#0!7?A&ô'=?":!G÷M@$3 1P#24M*;7VD&$ B-õ3&4&">+0 W+(<01111111C26%rL$H(#/!JI DM"<"I ?$-JHLG; +I;N 9[`_±ß¶Û¨}7 %`$A;[69-O&*%%X"C@88M=#'D=7<X9)j-.P&?#OOBD%3*1/PmD-A+R,B,Y]&I2A=A'V G?3ÿ3$ +,8( , .:.9G,R%4>#UW.71K@A'JFZO^KAZHI, FQ/2;,O'E!=O 2Z1-C'6'9N0@(<UPDHE;58Y,H+!9,M$,C/? K3;75.%$+-ìGE&G%08%8&I '72.?4-&4>a4EG!C&0+(GVYB2J='+#53G%D0R ;\$6W9FCF,OK0#7D>,25R+&;/+j6=>!$&@"-S)Ý +351*A5H8$BN(@75!<E5%jH6?HH4:aDL0$;8,4El>C<?<2=4zIHWBKAA&<=2D.><$IHB==;5 $%5,)260Q/N-HU'^6‹…·uN=Q94<=%)#J%,'("/(N=/7T./SO6!6$APFB^[J3?J]'DF*G@Va>*#48<@'6HX :75F46AN#==G.3B%FK1,<0/5=N4O$ ?6$#N>A>8?:3A?-%!#FFÿ<$=&;*"AH.#W;@3N^$ $4(3G!1EP0U111?BïC.#II7:*ßF +') ,1%9A.).*[\%1111111-2 .A%J8.1$<4%H/:L05#B,Z&'PBH$*&2E8)6<7)4?[µ“IL)4,2F2,(5)S)jMWGIF.5$H83,*+;%/ o68 ,7;<.&0<"#S#$I>67:2%P44 880GB,W2%3#3*7S2-U!>+1 3)D,5ZZI9#O*2/51*%JN/+6E;*$5:C0\ss­v;.SCL6@&"N"7/,!4!"$"9;K8G-3@EW** +>",'Y!6@. ;2%;A*1'UHHJ K(+>Oi*Q$2YSMH!22,[!#0+'9'')#3 +4KR1111111!BZCE  ,QH.6K 7+B92XYX$BE!P>6?ƒEÌFÕþŽhP%<1+V -,S40/I7->+8;-C2$ <1* J >OI>/63CHEF"GD:@4BHe/i4L*,BHCc<7L'"')C.6$HT@AA/>9Wk,3;#/:0[,UFD@7DE3-H/<>:$7C-:[?627*E=<?&WM>9#>*'-$/M1; +@_)=347!E/gD2<<*AD282PnF-8$b2J,)+'1BC#@!GP77.%4*41! +1)/B'7$R5"H(:/D $8Kc+&&83:A:8$*#7 +0,F.+'*)&$$>(3*7 K1* $7$&;? %`V!DL(Z5B''(8GCAR*=<3-O]A";(1=$5P-(9 ,*!?-1.<,VE";)H!+8>#$M=!BC0 7+H8= %,756/6)#,&@6J2 (2E4\P:/1G6/i-=E8cL'?P=!?S^$55A$% %AS;L6<Ga¢GWîb=S*S>&EN$).5%=.%0<H1/A"NGZ%D0&=(6J(-'+9N`EB?6:a/M&)%4$BJ;-.@%/@M@W+!^!=nHE%3C +'">(&U5.J:"+L $FB9F_F#DlŽ@!!%:5T+ÿ>F1[75%Q/>[7C3_C4H8)=Y .&T1<24 QC ..A6>7: ô!#QU&GBGL,:%-0::111111167>,I-51Cý2 F?,J03+'/)<%;";.0lT+8<592$1*1^dK.NJ]'#D,0EQA4Q~%#6QC&F€B*'+=  "2#9&.L@I<p(6AcD2).!f$!)40"O 56O8A?1K&N.2:4:.6;8$C?*BP&>=+ ?(2"'&39F)+ 730%; ý`~LPaA?Dc1DW4 E853E+:$I+Y4+T*.4%(@.3+*<S,:=.3>';!>+LO;D6\/ú>&@QD/?2 a_(<6# 78;)3NR/F,U1 /1111111L@7-/9IB(.,57d''9@?%71;D5$=,HZ2>-iøÌz =ÿÆy^A8!_1NNJ +` LC(54 6K6-E*R31{w.'( 7þ \U'I:.0a;@"-1&FGG:#!CB'PG5=44(3'I#+ & =-7*?K>-4;I NH@&3]wJ *#,4=V =Q.8+/6Id>/&,:HZ=CI@cA.c@)P?D<1b0(BL(1@MQ7:PL!ÿ:> 4$F6+M3"DG,-A%P!%';ú1<8!#@5#@Cg!T+A=8:A'IK +<kC".6!@>9W,B%59:5 A-ReW)VA8AI+D"):%(;?:9AO+*-'Q;D/\ ,;5D%2K9G*g[JC"!:2432FU3%3*-C @ A80A;,91,1'0]ÿ;&?RD77D35F;3Q#&CL;)$1I<9(\+C>VK3ø/1L/: FZLE3&4CkO1I0M%Y":%$:>CG@K°ÉÎkaa'0@#Bp",)#56I3'"F=%K5(-.! ,H8D %Q7@5<2a2/PIY@AA/'B(9$4ôø'; #M&0+<>,'4=:+FD'%`L@#77,Y;5;)*3<C1)U#/*M39b2B:18P +/0 ^M+?%Y081;M=5N22=;604UBEZ3\1<+@=* 11F4+$;>5A\74?N&^A'1111111. 2>"<J((9*4I9QJ-1D'18J2<@>$0+31+ =Q%B-(=NB2+(,-%OQ,B(MFHR6#e«Ý½pd"WhG$A *. A5K)+?/M$'+%'1) + (824ûX SL0U:+ZA$5-.X%õ6* *÷/ J$<"-'2174+;K:97"(5GFD+ %:?E=?S1I/)ô1+KQ)H9EV`Y'*(& +0/21(:I(E.")9Z04D6*,= LV%,,EzfVK@'; +P8B&M472ô=jBS$DC4G)I9F;.@ .$0#4- -+B 12+='.2 1111111?MKMI+D6G$EG1V)O?5'Y;M.;"5- iöHL:‡¶þŸ ² DòZLS9K:%6P@V--FK4',!N6{&A((EA3290 0a0F/"2'*9@"5M9@(Q35@(2(Q/!;-7@,F72*5&/29M0.M :%)<\'I#8$550'-T7=(KN44FN,DXV%I36J1;B7H*$LG;0!($;H N@%)4#=R <1e2[22(1-iUXE JG\82"O9#*I:R$8?9;8F!/4$10Q%+C!&BCH'*B.%U9)%@P-)ø5#@>B*($$(<^Y?2(]4&=F ./9&!9.1I=;7632 +Y1D$E#ö*>#&F?'3P&KV(6A 2")8'?:&(í77-5Y-=25!K;T7BM4P652("827\=&04^ú$44LS1.0":;<,%9- 2/-! aE5726T*9= %7,[BB<: I;S*#H,;J3/!V S&GCAy«’t<@%-KE<+0AER,/B]50!)JS8-&= *< +</+H+4,TD<$A7+:;+:D;3,BZ÷(,V93/6!+)FN+7*1:@Bk%[!D>D)7,=.$44 &7&8:ÿK,1V)-<",#).0IANvSC8De_?U:L"ø-,@<`-T0,39%4D194<'2<2`$ B:I@M$41(( '*9"E=01111111#1 ,4$JT3'H9-/$+6QEV1=%c9F*:0ø*3GO=!/2*-)?C3&.2/D?2v<A%"mQ+—ebUWG DAI!T8"."A 4*@<9*054b/?-1T6#1("VhBIUQGG@;=N80;8,8<'+$?&0.(?;'B"$AP$N2-mU77(B$6-7 &2G %@$+&K,'F5TN ,(P,# =58@46>2VB U(/,CCA0!OMG 4BB': 28B+@G#/6@5>b[RK!W#þF#6G.4'*/7+/b>#/P8%!@1111111WMýF+("%U%Nc<</"A/ +@5R<H59!)<FX3†‡N¼ŒYÑg[7AQT00"&K>;:@P -<EF;G/EADO4> 'ûJ:AKA823:*+8 DJ(S'ZA"- +7D&2 1$ 6A%2T: /,.":/#+$"P.cB*40+=D+)û1G8j/-(? 9F8@C3EB*.83)!G6K)$A&#)(/'2/.>C<*4<B=8,f-:Z KAF<K%623*;8a3 4@K+& "ýI/)61/;18#856F; FIFñ2:;+BS L:2K+'<!5>-2KTE0Q +0G! R2+H1*)-E)P)99<80 F 5(H U:M;&6\71K5'E&W!1B,Lÿ&5f Ec9)^L4:@(OBDHH#":3'+ 5;'N,D"6-.P@- ;& êü97((27;5K[2)]%5$F);UX&.@(6BU2B< S0-#AB653F02PK #*;K(+F‚X³Xhw:>÷)*jD<-+ý4(MN6( JPb':=4G" :r<I4, %)3.>6='&<4&U/?+M\8ES7@/J5Wz0L?_6HJ -A(I5=K!F2SMH,/.û3975B#T@)5;6&Oú(/4X' 7.9>:9*N/64Q:BM8&a:SdV'pM1Z;BC7`B7:64>3A;^2.  :2="Z%[*8CC(0<%WF9I€.)-5L@ [U1111111/QJROBGQ2:B#2&&ÿ$K2.H"7>.2;U+)0L"A9=4FIK1HW?% (*"NE%Q25G8J+A*[I/)<E3$03I-?B%8' 42 '.L0/T^1#_w„oN(=UL+54#-;0HEb!Sp5)N^)$>)0(D.XPRO&00VE6%0:I9#"%D+-8..*@= 7\F!H4û!T<E'3!1O2*"EI*?187F\%817P0B??,;1685+=.5[?8:3<03/860&,M<(,'M*A!1111111'Eõ#>,B%2+M*+]\<3.F=$)G;4'*A+9&&1J¨¢ñ(É|lH;B8A64F:8 '>"*@0!//#H?(+,/E2#-+>EV.[M:34C2==+*#HN*2:2;(J=)2<K,2S*40l,-D:&!8==->T68=$> C<66,5B*?=./ >=I9:C*'K8CL98BP@Q*KG38=8O7F,'-67]04;RX \ '%O-'E'",/HJ4]RPo''$7>$5A'4?3(8!:m<*H„A3#XBJ<*/,42L`M5B>(P%9*:(AVABE2$>-@)@7J$%%G32 H)6@`; /(*E9DQ-!úR<726<15/Q(NEH-377>AO-T'#7>R&7 **71R*"B,% `EP A),$9?C 44: :7]X31ÿ)5A&4+O72-3J9;'G8/$F) 5%&)-,:.H/8?/*%H.A% R3''A!6C/- f +H4@70/:%N5')N8G%?5MJ`XgUZKVa4A(=44;,W3*+:BL # +h4. , H0%V):\05;6I+XB +DB AhfE.P=2#WE9 U5<,EG%74#)-%0&!$1N55I=@*= TEF)X!$82'<!53)6 MJJ /'A_WD>5=H,D@THjaT•šZdfT2Q>P*&R,^P&:C7<((3C_CC$á=988,(36*:Cf#IF#&+M 11111115:D571%?2B1P$J;Y:"/G(EP:7=A*8<*ÿ(&&4)W@K<Eb$<7".$A ë7C(ID.E)?-!"A[?4=3=&($\,5*'MT;E??2K**>Z2B-VFf¬4= $*+,(XRWwf@&9I49?'.I@P3[F1-Z3I9Y&N"XA=Kÿ7P';"6Q*3 )6+/?3R9<JK&7<.O-)55<8C(;.+J 1('WC'+X78(6 M$4I$.<-D!46!O%KWD+5ÿ&:(=1 ++$?4d6O'WC:?#F-$ý+:/LI11111112&þ;4.*/-@W*.!?E3:=8!+b,C@/LY*&[>-7.V8?Qb‰vjme0KB=3P/49B;>CJL9GM>(FM; F 9k<*üJDBB;&#&E/&L! U*/ 2RCQ#  C9+"4I8/X)=+!3(#$-L2"*%<@7>?/<7>B*=:/W,G;)+!;a$$ô38J8 7ùE?6*W<$)BB 49(J6H' G&2"541I`0 2Q'<24-OF,4&6II'8H/(.1*)A14994"=<:C(5?1A:%J("H3TG/A+-#59aC2 <Aa;H+-=:5.^%V;26-29&*>9CH:O9299E;ü>QO/>BF42b-G*: (5?EQ%=0$1'83\õ)3:$IS "B5-"(.,3:*L(#-4/?FJ,#0K<S )562%6/AB)@>@ #*5(,:?0>4+)>W5,4<P8.+A"6I*+2-'B CBWF/QQ1:M3J$,;)%!@_:l5.Akd'M)/3#+*2D=2qø$7-@Jag "2/!*$%I2$!@25C%J'I,HA?N-D7Tba§Æòwx9I776800iI 8J#N]Ge26'B)Y: >>J- +E03-HP`RF =G.5+/6G6%BAšƒ1&E<CR&2J…¦§¶µ‹šFN`\."PK;9(43$3 -<5<)+*&VWM%):?&;7G1R4a+3.3D%+K1111111//3;?#ÿO7N;(F%Z'n-D@+07+8)X)@35>8K6342:8;/TI 8K4&U+/JG*'Aa@+>H:7V)CD6-= 2I))04&.35A3=5+m.](!%$6;5C57=, 9:#@M)GM{ o\`MG0) 10:&%=<':CjF2 / 7*$7-Q!-BC(--'DHK5`)/CM#;+HA''OK653;J%(5+ Ví#!L<DM6$2:5 S8M3&I#6?+"6FM5<Ln336@563/?8.#:^!=`JY[6K$$,'-4A@+ :7)91111111476+!V+, 8:U'B*5<M._5QL')B8APa1E&=H^4;/;B9Q:ša#bU,7.O-2-.&/+"5!0mG2*OF <;G2=80D5F9,DT/..&$T M(':'W-"$2D)11#W:*_">H4)'F3# I$F,M:V1%C=]&Y7D%D1HHF>*#'9@SE./.&'& '%QA<//6&3P>M.9E<SFO/2;?bF*"R3XC,$ BI'4F"25O%Cü7?7G5%`06%78)2%0A"*H+BJ+CA *?6/(0G=#)5,--U1"+UT)B@./E=:B*-B<6%$.*:/W7) /F!C=f;>9W05'?)&%4< &R+??209:b,<bRE&.OB&$-2'6s+:*!.,.E"ÿ;?\ð'5333D- M07E;I6C)B %)@/.*5,<fJ ,I6./&.+a$B,:(-@&73#5-D &ý),,'5A,'R&:ALJ[+-R"6]17(A-/^1D]R168 3ú&8H3",@AD667D(!J/@f%H($NL-:`ª@Zx1*I/05.Q$>94"!DB#M/;6b-6W*l"J;;)9CA%jK( #90&H'h 0,Vd1?++3)fCM$gh†ªô\:5ÅØ£[`.^BB"G!2,?05$=:G+'GWC9=9A%D!00H%D"AI80V#M) +71111111*4/%&&-ZX-@PB#4#-0JóB'A*ED+65+9G!$%1gQN)?Y_<B9&8>8H8LL:AA21(+N>ý,4I=~kX?8(öî7Mh"2 ^70>P>:%<LP/KI5Y0dDG P2J<)›Žp7(Q-+V0/ 6'+6A,+&B"(&6 "<C5V:-++ 7%+,ô+2>(&=? 1 VBJ+&- ';9&(03*!mY "+,F$CgbE-23'O*?6;VB=SRDZ3-=#2'02"9*-M01$TG]5'.->=90 N!+\9+L 4B21111111\:>39'=XJe.3(OXR94,I"U +4/1$`Z`C)+!<8J%& fSI:A3HD.()5A/…;GQDCG4N7#@/ 8?DTR+'D ñC;O6%A\#,&>ZH?I$6Cþ8)6=$" P5'34"5*,A,O*ý:="7T ;_,8A@)A8(C24Q9Z8C'C';SO;0G548X-7240? 8'"2&>*)AA&7%&-AE@AZ$4E#>6#6 ."U#HI3K," +$".M.;+8V 054:AR01& 4D%T<E4X5%23."*28/7 6GN9D6DQ<1 *-+=^22CB0<16 (S+:+ /326T2"<&&7M@07:OM'%=&B;OGMP,B)B3?L#1:Dó=hL?@@>EYO6./8;J,@Y$Y6/:*.S-9C-6A2-.;.'<.?@2)&37B: ((@.8<H&UCBC*D9)#?+B:.#6'2V4)+=0%P4H[:U<IJ$=:,5JF;41@y&@M*c&8M23=#+*Nþ54!D#-<[L @^/BRl `V°Q0#.C@31+57;(P4<8-7"W.7QJIf2O=-C.):P&6>',BX()?3F8>@,$ 4Ro.3C)0,-An`„!µ6ŒŒ¦s¢¤ld8H+%:<$O.F;L7F*E0"@;?'I2+N O&37GL%.$75Q;X%'1111111Bi' #I7#D.69D1H.6>T3?B..O1 +^8@?#MHFO-&@*A U +:?% 8EmU@+&)0C+M@4C)C&3 4,VYH¬xe3'/'4Z,L'/HJ:KWAEQEC*!)_7/ +&"7:=.e<JEXNfK14$Q7BCH:G(:H9F("#E"]Pþ1D*0`21EN 6E?7E7+=IYO],! !AA;.2C,*#)@8M9148X?$$1=ú1 >H$./4RJ8?I$M/Q<5;T#33I$"5 +$,L6U760;@IA09,B$16 ;#=%/1111111@AA:  +&N5D\<7(& +-885G-65,FsCh0"Z: 5M @AbC'9G#;C2Ac$20A5#8?MCIE%472*<C,*Z0*A'%S*)&AM4<K, 7:K*3+GOM(./"<1:";%<*='*eG +29G?.$C/')(1-CJ>Q%>4g>9E1?.=92"?@@( I<<.9R!QV$t,4V#)6"JD>KS1;9":+.1<6A[4+)-\)W0:C9!E.11@K./>9'M;OL3 O -S+'%*A+/0M+NO%8%xQ$=)C.A;>B-%-508E.7"+/F 590$&7Oð6-S&34(F>/úa2('T"'6UT@TP820">7 >Z"=#!-*'DG*H*1*&0'D%#50;>1WWOB!M) + :J>0:A*R9;3 ÿ(!7==G0(:"DF&IM;Q(;=T7;71!;797&<:1?1,>"4C4/,3C01845'8!;3F;.1=$ù79U 5N!V54^7.'+A)û'.9<&/P@,I8J( C !/h/8:/F@`"OI0O>UO&_'ï^.&*;3VE-?2€D%H*,7Q3(@D'*1P 2(8 !;131 HwS/$NC;S%FF9P!A)DG2%=;=AhÕ€¹_ lùZcïչŗcSNCN>%=6/:#<*D÷050.-T1S94OZ3A3P23A5M'i>%2=1111111DE>.MA3O,970(0 (ZH9'<'3ø,A6 +=0.84F@M9ZJ61An6+/"H`L <LV)!X*+-$<'(2$4TGv¶ÀšŽI5/.@D'*M+)"0$XI-'E=.<>/F7/Y A=9: =O0#RO217HKY05}U&^2F.:9')<;<86,D!0)";NA3N/4U#:AB/6<+1/G@6#.+.= CG=+2;7R)<64$>C#" DFA8‹´]//2$/9H C3%"&õA!*!!+F51) +$&DGF!5/98$K>.41111111'F$AE$$!)$D=UC::0 2/8F05T4M>W€Q)%O;05GQOT06j5X/.)(=Qgdc2=0#:F78.0,+]LA3'-(Nø +9;F7E EW&<G4-;7R2'!M?-A/@BAV0<06-5G%92B87@ ["2V99@6&>640/+5)1NC ,# -&FDZ+b! Z??4R1 33P'#1<a3C5 "J&5N31/H3#P/8.9/62ô"2/'! +EJ9;93-7%-h)+4%aI)2'[C;]f<0ôMM1.1$2Z%%70=.=+:<HI-:<!;>C,;<('gD>&J(A!5$*2$%.[="CH6B;0,2.]L23#!3I10C6C[::+'($",)3h4-/.^P25?5G616"N,[#".H5A.7/ /"7-1/?6/EFK"+ E3HM7L!H0.03J  :9#;N+ õX,f0"81>üZTcmCý()1#CD8!^-,'5. +8SO*%H,9B>TR?2H/0&FF,:=10;FK!@C.A?&@Z,%YO4; .1ý=8>'294&$\U+(6K@,ARQag jG)=+V;+&K(Ub)?k ">7@ONA7F0?d8*"Bh%:M'Bf("J95;&,Q L,W+40#D6-,‚Puݹk +Ž _ +š´àÛ¤xP8E4@L7"D$Q2 961J'&?3+/]_0?;<94ý6F.2%#O!MSS1111111'>+1%P$C+ *@=87;I#D> L<$&2*8H# 0J?L']!I3)V 2U<#++MEE)%)R=21H+1/1A1NJUœÕ²`I>EF(-/T<<1*)66.09&!LL+Z8Hù 1:TB'r<%1/-)1W ,? ÿ:G4J 50ó"/ E^M+-A0$16'M28MD,0R 43<&+'>2g1+:(fú/ N!;%a,.(#@&2?%1R7-$'ý!E 1',ASwf­k\N'%<C)F:;0,%&<4 +=25#3'1EX95*'$F0U, ?ü1111111.;=#8!H$+ý$9@\O6N_E8()C-.'NqRKPA2*5@+=M ³D&F=B 0&'G@NB``Ó9PA/ ;&&!$(9!J3E 0("<)%<-M9A(H/&"3:9%7C*/;?+LH?EJ-#.<:2(FN(:/%=21/7/ 8"3D* 88Xt9(D:D(3/%1>76"/ +"60\75EO2+@/1)LKK3NM0T->86!V:7(57.3+)K5 AG00@>04+H8!,5"Z)Q8'+!=6.Q[2õJ<:':3A;@)<5HD(Y9#B F_@,("C@<"QKF599F1~:8'@^#<E*!5 <9.3*05)$'3"jV?3*,J2`A629?*"!MYt?/?B6 ?MGAäE-,/*%*M92-  N!;LM?,23V79D0&%Fú&$N1. ,*41%A35>: &-.6)GùA1M?EJ>6Q*;RD3JõC 94'11$<!4#KGLJI)?õ?>1E$$-EI-g,IW->AD?)é wF,$!C5&K#22_G-!(-JGr!V:LL=9 J5TMWK]>@@7$%0"(*!M4a+O8?C6,R5 ZF#!"(R/kL?8[3úO)B(?92$ VCR?e8C *)1;48J036G;B[$)]F3E6)0M,:4YI3%B;<+]7(S@„ä„ ‚ « +‰ï¡Ë“]IM';A98&%+;1b0g"=;)K2&4?9H;)/ +@=0ü*!P9L6 6R'711111114/+1'"4JD0L1DC,I.-&':O0@41>3LL'(%/<o——\Hh4BM   '"73:FR#*5&*"SD;EþL!H(83<$>tJ²™‹‰@L/6ý503T -&.3:HH%#/&?2(+ =05%.6+/C+a0.60k?!6%B=B%%#9Q"/42<DJ40RU',QM%_J"9:(XB62;@#+ FýF;A7&'+M$6G":J-51R!&N),74H)D L  +-cUnyh=!</0(:2*^@(19.-=B$::78/6FV1;(39;(:-A1111111?7/26I B27ED3`E2&<U 1 J'$>D*-.5A:7I0*F7¬ˆ/>#1E,72: 3A8?9147/õ+3<7%4@I]9>û4!N0HG%þ#ADd5F#&C:*\18&9/X%,'F"<9)/$G.Ab1++>A-=)4LE<;SU4F2 O:(B;7.1D&5=-&_.&9>C9W-0B7 >".C7"UUQ N 5?G*7MJD33 +9+:/R!T'!?3++@4 tB5*P0?@Cf'0D8-!.>=$ +43:;A727>5-);gA!*B.-_!915 '1=**+912B@("ÿ&!E.-KR2.3*_-59=?/M?17D*0> XN)0&3?2;4#$1"=4/)7/G*M32F03 +HC&B%-/ðDg$Xý4Y% '93+<27@$=6pN@;2-6/ +ô@#< 3+/?'.8 "M000+?+h:"4B@<aCHIA$R:NK'C0$9> + 7j$ZN!B,-?…ZB#QND&Fû0Œ{f@@F?;IEc6 +-!'XDL@"6.(82;ME!?R'D/7:31Q'$-bYL,F5(0:4K42*6@M--QPG16( ,D6;8...B%NJ9*;s(6>"9D"ù.E=,OA,K7W0?+"/‡ÐGB—4 ‘ñU_<KIP5 $?IJU +D70/3>,ë4$=;&)( E 0:!I@7" %3G*11111117 O1UWR=(!' +C3'Sg%$380%2%n-9!2J=6KÕ¦j,1,>E'40>+G$9>@\4 247*D,%,2x G$D7H^UpzV5%<. 9@)$>UXG/8".E2;2D%.+Q,'M&,G,A7OC08P<$*5:EK-8POù9(15!IH:4@9R?*D*,^CI3;$LL $!SaAN)O/*:60?1N%,7ê1, </5/57a:3%47$4#%T"; *V)*:bNB,<"0@‘=RRP;%0,;* 613.&<4<.40&%2Y.-CU1111111d%;F>)>,;<0?,SFKK& +#>T92A.;?097'N2".0,'?`/D0"0G7<./1X0\4I10'-.?54Q 77 U!&!5@!8*,*V =1>o'R# +#+-8FN/(6Y(A"541RG#(7,`L*.@36[KJ<32FE9<WAILD@93HDE22H$B--/;C2&i-+,;@aL;7G;07BFKD@('2/,@(82$D&1:+G',.$)/"41D?=Q.24>*$6GOD=k?úC,C4YhX"C7&-+# 86$.9C#!=*".3!<.M*B-!IC.2/5G7O*C1+>@ +F=109=59H6,<00i,983@<M;F',4K?)8"?:.h/5?K7S#'õLÿ##!6 '/6;)F3#3.<*:H1F-S7ùG/1. #Lp@(>1(7F17 <B0D\';* %-KVAJ +ò;4IL e8QK'P`+$û66K.&é8-2;W+/7<= 6M> 2^@O3+(%&8/B"? SK4/l5<3L”Q-1C+#%J7.CW = 0.2[E W'^R3,JJ63.P9*CO!=X^!)K47_,fWE4U=WH<3+IAMRE1,O#=00-F7-'03=NP*+(.$:$T%0>FG-=^.A< G3,&_f°ð”üŽcÈ©Ys 4OFMIM-, @Ï6@-;%'(7=<16>=5+V"#D9ïI$6@K,W1111111%/<B> U?P">$Y2P0-E2,(<<,-.51:G?,G4_ˆywG7##@5!6BFB,;J?4 N2;900-+#G03=4T:Rú!3%02NB"9*S-4 D*.÷40)9ó'6%$D)&G0\FQ'#C-ÿB0*-F4!<F:4E$I@BG90F L0+3_(8+?(8/)+/D +5EC7B5>5'&0T#('&AB?AE)/ô-(-""E?T  +%ü4830.5ó>)6-AADQ<-*J#'H&)43$7#/(=ýO0F,)+ 73G78^4P6"C982"2H711111117/G(3)@4ù5@'05 ;/\92E47:2'R56'%.>?7<A#8JMMQOP8>%8-0+FM„3/09.<918b%!0ü2:H4*BM'2GE[%N)-'5-5=F>HUW ,"9=?4Q @8'<".5:'%"T0$TìBI+Ij®›xA&35XM.4@.[%&5$)OA?:23 0O%?0`^X%81]J6^2XZ8I2+,(L=(24G-;%;FB'#&M3A<(R] +J<$>5)&'3 ";51/,:15/@%:88K;5PLP.< A'F@37Kw#6*96K[<?!,9 )#H-9>> -?:T",?5!<1þ90,$A+B=.77,&$&)#R&O.-1M6>C.=7HL."D6=7úM&R9'9668&W788î"4C B1+((:)1+8*2BS81?>&AL,8A:-<6.O#-A& $.+B4AT] P1O(8C;3N))@2A 6D-%2.7&Y%,,DS+84"(LR#P`?5'B1:U^ Q#1?41cC@SWdwvCPdW®V #1/0HI.72J f8)$,(R-%Y4MU+-/L[G$!Z#:"?F<?OaO3=;>64#&43K4A/B":MA4?4<*a,;D'6+GF!!#6E.N"QW8<3",H6>#=A3ϲ s]Yõ©=AEER,;9(8M.H3# 1SS$:75-G!";;,+%=O621[56SC#+"$8 8J1111111B,>A+1<F35>EDI/B+,?(>*%58/9B?<=A(R.26I3C@9898 C+/157C-M3"B<:C1':E$>K9Q$,:.8.<5-AI8$!4)-+--$>*Dò"PK3:$#6-!+ ;&)=41C!%=19J("F 5#I-:7+20L+3' 44(N*1&@9;F%E)2(P2%.N#*;61):2F%GQJCA;B&>J*O# + [2(FV#A@";B+$%5HýPg1'R[$A;19%*7MJ$ &51ø'F$)194+%+B!'(&7øk$&F1111111 +7.D#;$-C?$9()./I(\.aù7>,A;,9(AM&;D9*-4;%<:47M;0Àp(22$59B1,>"&<D%K0>M(?.5,b7]iN9$.6G"<,71"DA=% S K.:U,.!AQBB1(ÿ/7(<D1 1]L8);?(y{Zi<&<)R44&l90€N"0$$KD7N>8/4??F4>$4`”g‘:ZP)'(<0ü9-4 +A;`‡;M8>D ' %.!\T7+N +øQ;*"-%:0Y#@:!-0$2Q#+ 2AL-I*3XJU€B1?5=/4'$?0 17B!<1/3Q6,H;>7A634K4` 'Y+X=*6#2=1!9"=Z'H(J#+BH5'/1B;IF*:&R!7=(7>4/>.67$;J$,405;E $ L*8B"0U8Y?"b#)"64CF0=@ 6CF%X15ô7C3;&<IJBC$%9DB0%)0=ô$N0!:BB"*B@'!3P'S9,_`;1C0@J,Q8.MO=%`ž¿ƒh5(LT™ºA`< ú?EN4/C7#A29?!"X5G&5M72B.<>?%/@*&L1AI17 +TJW1<HNL+)<O.QD0<=.%QQ$J"F#'H&.$"39/BIK/;!7<BE 2Y5:!NE"=8kEaB÷pÌP«Š8NOv#M 5K;f+ ?F$JB4#9C/R?>;0#90>I!1I!%1;*i+$/ !CæF11111113'<"E-$'õ9.T\=X<15'#.$QCYV„&4RM%6+;R<2*G?9,&+G)5C>9U44Xd=3 79X'7M5#;%C,F(E48F?ZTR(283A7ï4469A1YG + @:M %$<8 4:7,@%.LB93 %K!++@HO!h&-2J,(2Y3J"90(>9W6!G'& 5JW+.>1/@4%#42 1  <Z- 13 +* (145/,"3)õ:;2@> î*5;?A,$3 AU>+;85(5?Y= YYJ33BO"0A!1 +O,7C0-?(:- 1111111( +147/+%#KA5 JB1G I((.I:/+T3H6%@*.'IN=3%)*55?3F-A P5X)B\8AQ@A G#:FH*ILA'2'7 7U 0')73N-i<KR=0(aM6(=#F9O&<3(Q6*O>IO;?CTFK*"3&#E0[6//YI0/? '%^?Cò6#7&!3N")71+&GRän…‚6V'+K<<NI+F3<7MŸÈëb/8.7(9*63X#+=!AS J=O=6+H,ø.O91 %G5f49;07.$'00">C=TGOAa881=.2*776+7&(*D=)'(Y*$$.6@5/T$+<L2C/$<$2;.0H@2D@1G0 *8LC<Y1A/4)/ 2=  .=5E7") +"Hh)(VOC7A1C<KJT31$6''/?5+4<.I7/=0XC4)(/6:%+64_1"ú!2Ae*@ ,BV<?4.1K>f)LDFI? 9!E=?IkD:PF(/<&;EZ%=1ü,*1 1:AB(5DmXðÌ¢[5)'~C3WR/55=5j6IITE6={eX3!8%'LS)>8X]:#JpK3<DT5GP53M&(L4 K3/C($"_R0<>W*:95A=?-.H9D&%'+'A,74S1693. ;MDM>FHÒàžÍw45‘QbZXJ.4J0"M535)G& Q,1+-:2& C=94C(%G6!;=QF @4/%.P6111111161!:%G?[!U6)=€Œ@PGL+ 8ü0\3\¢Ì·€(T5+F(H2(943QD 1$BQEJ5*!RO)%>ÿ; "NS2,1ÿ8<M#V#NO!-dI',:O+3,$E?B?VF@7743"6/#T5EV1#N9K0E+5,IG'%+-$+*3ÿ*@D7l/-5I+E"RF*/(5;8 8DC-OI/9 @/*2:12?06;#M=úS*<,*!;?U;^3'"=+73,*@2P'(@/1>+ô?-=6-3ÿMBM/D6a"E628D9(,4DC1>EMS'%,3&/FJ 1111111C=+0KFY:<C+$,?9 +G=!55Jo>L;D?\!*15 :)Y3. R/n8 #,.A=6.2E?*$=*-7"O((5473BI>BC ;)0 2YG 3Y(06!&6>4?>I f,I,700.9->$33;+B&#A+ 5=6GK-+M*ëQ!>?:FCS:^C(¼œ^9+#Tö7&2@]>360ÿ&/?>XAE6+?3(af + ¶XÛ,H[538PBK2 !%/m9-a¿X~)0?%,0(1- 3C?a7ü"1R?&$ -3,0=. -%7;3'@b2;E& +(0A=(HH(".G FH4"<)7 :LE)98%=3A$E>2UZD,\D8Q7%ç<0.9;9:H;E)**F2*=F5 N FHA49m7*2&A%')9<T$.('/OF@:Z8I453G0.! +(+#69A)1<259%I* ,K05<K54U&:@D5J"÷ù9;8.&2<0,7$N<'9R74TM-$K(8"B<y'$8!Qe40;N72*U/?&JG^f%QRQþ,948C>O.-ž²—Q)=0B-#J*@E)JB#VEJV%AGnKgJCX"..3H*L8ZK<<)S(1B6&&8*%G*FJO4-"…(T8;DX3B=C06I:L: +2z2'>72(HF-8> )@ .3@/H02(=2O©cŠÖRŒwZNSM7K:ÿ6JH/&<5?-2FA@C)7>!2""> /8*'E<'0@M*1111111O>;6+_KI+Cc*7s‘wV32),=BPHbï0É^4,T'< & /;$S)A$" CC+A"8m>+-6%5@RRJ9#8O)KY*ST /@K "e56P/@E +?AN6bDN@7G. >*-ìJ8Q!:&I:):TêU<F!J 57C3%?'2P87>= F*]?-S!$48/GI$-C_A(HE+9=%( Gý[N/Dd)81.88?A_7C95!D@%BG'C &(D #BL.!39:H/$OB0A*-R$@>@-E1/Q)P+/0/-E-#&51111111'H9.-$!0*P/ .!1U/JDVI7!/(6?%."A)^>F0VñC÷Q3.(5`@)4A;&O9/J;5O6HA'#6)+,;KL @:C3# ø(-. 0*[#_>3'/%)K-19(SF""$;-?,;7H>Ct5h M0X8/ O")N17F@MgJµÅg6N5@F0*H01';!EG81P/0 8ù-H;i^æ‰WLB)N?<, CH29AvO5I,<O+'[J%4? +#2B+@"&üL10,467)M ù 6M;P1*!M% XB,: 2Q C6/;SP2O&65(+5 !";+%&D,>-A<;'.(++:P4H1 +@-?>9^b49%7S3;=X);]&G2QO0?$>-91? <=60F*a&#6F8-,$O2/'!0+3<*92BC(#)L.o0%/3,3;LF/5+B;&57>E1;ZJ($/<;5@*: (<)7RBP?/#.:?XD4,%91D,N8NFJ"6BI;6a-##= +?CA$R>11$"&*.I0Q^N[ +F<//%cWCF;7:7 +*7E4/+(6., K*T[J‰©ŽJ1#=X*76*G0V"2<@>+?->)%I&#=,/5&4gWBXFOCb+c(+A(A=77}M+C-5E7*=;(,9C$<)Z%DB6/*B-gª•¶qRZSFVK5.=V1#:Emý>E%5&18,, 2MO1C_8J[T.18D8/>57'*\$$(1111111<2/,8,18;!J+<Hw°pk,8V1=‚áòe^A?ZC5%="-:R;!4?@QB(:*G1)&* =/EJ,2;#= B2-R+-/6P!$D6 %J1$B-#)!\;;#9i#?$u2J4%X*L(7-<0$68!'D]@,mIs%i;?81$L:""( :DV'!G6_D18;DZK<!0'J)edJ)"K91,&?IK@!W?837OGå*G233K'1K91$C4 2 ET,D37"H_*,D&77,2*S5+7Z,Q<# A42C6!R$"P +4( ,1 11111117X-$-!9.*$.</24*+W:>>;6=0:J%F?G0;;9@7@+;B%#H/J"S//$+"F0' "C'0<1ü?K+-$'#>/*^(%!+'#,!$F# Q8:"0.:3].,$)PD,$(/-8/=D/<=BN.0:HA<+@172<.7A)KD:p—ÏGBA1!B-T&M4D6G*OG=DUAT,;;L*5MZ{ØèÌ=H(5A:9-7,50K+`F7@6E>A*m+ƒ2G$P7L:"(A,"2-3>ü#"*."<9?EA*96*;96QG(?.>J0% 17:^/5"4D7%4M +##D>;&38A03HHV#6849=i(2EaKc:BA<DCQ>8!,5ADA5<%I*V%2.8;+-T '*1P$(@:!:*6û/.(,1/J$!:8*B#3@ 81.aWF+(A/,;F*ú.=)2#<%;1- A&?:M /MHeCQ4<%464 $N$!*7QD;@$+2[68<6 A(J2Z,9^4-+,K"0;#?"(M3))'*2.7+&3òO 1KCMEDD E)D"= +%qyØ™>AY$5L'A]=[5#6@G5i +=78a0)K'C'89;I@UFM#L>'<04-a)!6*'&:@=A(JM2+5BL'QRD%9) #[1%]igcD7%G,]&W2TE5! 0\/#$D%M +-!812@IUB(A2S  +C.F/=;(KQO5V1111111/+$4 ,!"8:'2eYL8>,>/57#>gk¨x¡o2 *)8R-:JJ),4*5B$ %8".R97,/77"7) +% +6f4JLdB%>'*/-3&,E/AP37'F8"(2 +E%7"#AG<8<5G#(ZN•Ts9wŒkcW<9*C[F5E2 +0+.5:!,53-) 1(%*8.:J%=# +.S0G'=0+;>63F8E.<3A63;d/*:<"DY87>WI+W*!248)S9G*.7B- =#K)=)9D=N!`"&+(#<?!?:*!û$#NWbKE?>A5:<(\1111111D.!# +6DCóJ&@T-%e8=,SV7M1 5;-0#OJ õ06&55:P)='0U8=02&&'E91_0=;6= *X:N"1$33ø3=>4$)7+,;=+I*(S-?C-$ú3 (382#C_,-O"##+=#LF9@.&7;ù4(<(8,5.Y©P^1GH7*K5-G2=I1,I0I8A,$(c ADWl;%:`3-ÿ<[-,=?38'07M23SK$1:9M+,,89P,1)&/4BH#0ÿ7B /1A5320;;=F5&64?þ;;+["A*1&98REK'89Z8+. =/;R675GyT %\EC97,.q#/[0AO?S@;= 1( -%þ<E2C!(X5-:'#LB/B63U:@_AJB8:8 Q$19@'@9UC6B/:46@L&8'M\C+S(#4aR&0G9 O*42Lû98789C:)FF8@21:,A6)I5/%+ #:72+a(.90J))IKC&O3 +"IL2L/C*&05e4Y.CB!>FG34O#&, R=-:`%5ùO7<903£¹£uAM-5$HB(57V52E='5TJ8,M*M3"*G>3J3!62A8 -1#`0",4(5*26L8%5BB?P9$2GHÿa)EKFO0;2!d+2>8$9I,uU(+G.^G*@+:;1*41M86(,55H ;('./-C0-O)=IHEI.28@ ' 29.( 6"I1111111;+&M##5B9C9(\;Z4 "ð8CI8EIQSLQ`H/B>/.?6+4$;O!&*+E,2! # !/"Z 0f>80>?/3.54*@,D'0'B21[W5$6K%8-N<$4@G#(7'`÷8AM01)0D&#?21(>5/<`jF9)968E a+DE,cE7;+b$'-')+-9'Q>/&+?E;7 +$$)E0B6;69$!÷/I:$L8$%"&7-<:((+9 /45ÿ(B('143=3A-$5& =,/=I0)# . Ch*R2?("<+@&A".ì(5‘ö¨[!.!Y& 6K1111111864)-00K230?,Q7:-6/F~ML<&&6BRD:I0+=,6MM-bA! 71#D^&:JV57D6\aF/54(@;9R$!B/%568D7+<11#qGH3A)B  6<("R0#06*5S,&<$;AG)D.9P@3I2= -M"98$+%I'#VKAú<J^9If€`#-)HI1GV9!A7@:(42öü.G@E?-;>%`>"0@=6 <7=2C5>0H@TM2:@18$%0RKEXJ4;A/7&^G&FIRYG4R39F3;JC@".0)2+Lí.:0; *8 >C/J!&*(3)Q+!<=!8*.BB& +FO<8I8.!:÷e[2 bP'&,.M.7ON $(%#+-2H3%2^$MCB@ 7,0*)!/O)ú"?;+B6N81!0./%,>7B-O8-1LJ?=%C D),ý8@)PD7>%9.'#(D.+"6?C'?0G&721N;@Q&1SE:U?445H 6ChLC>& aGT4-2$AD#",.E90(<#4(3\-/8#7)$R0 A%70,-@jqŒ™h)58+6A@BG'$h .7#B> .M@!)PC-D/:<-)HX #:\9#XL <%C%C3 R&*;8ÿ6B@#'E/M<"4<36DQ,iPFGzw „SRL*">G2:91Aÿ4)"=3!(:/+;Q'%76CK0@"E6%7A*M#8=; =9G8ñ<4b11111118N9,$:XNNC<)Mh/9LI5GCKBG2P6(9239.= =,-)3=Y<%Z ;=1M/=!7D.?(I"8:.`&<@6"GT='H9<G+$(.5< H@%Q>24#Aö [*)$Bÿ "Q'#90U0<fW]#GhG6:56ƒô¸…4A1 +2$F2$#CH3Q8<' !CELW?EIO0'>/>((6 +< ( /)N#N!;A?*32J5/8#5WP+7/8b03$C].%jD##M+:](&##12=-=/3-9€F/T²w{2>6þ1$>M11111117'.=-C(>.XRK]4R,[>|ºr8% 2=!!jS[3/-?D %/'X02,@2H9#).<=?5A0*J8B-`U)=53&C@!=W=E[7D>30LUO+ +T-!,8%695M;71+9>'E?$F5; 1-C>/FJ>2&5#<%N)-!;2-D]kM&$*^K?F:7$$,+T9G+G2`B0M:9b590P24 ]#"!91+8B=55Q 8/XR>%2/0K-$;45gDMP@%&76+Xì1-).,9)$ 2C -A.%C5%/'-5,8'-LHZ')22W":c=7,(=1#5 %31:,(/1P;= 02 <?G7 :,"9(,0%+ GN3Q3 R8+?D%m@&/$,&S4(4A(2#681(=7ü(/O7%I>ú)>-D>U'((F,9XaMcFL63).PH2&4 #.>G*76/1F -)3G0*+2A<J,Q=.7Db0A.(>)%D! 9õ[4yG&6J,B:*'5))T5H%>9):H2S?` 75-fL/8/-BUO; BM+4>9LQQ873$( +@9<U_J7"#&)>3eB)2@I> +R$5H7"@SR533)(6$-þ1'+1Eb4;R,%0)  .ø>X3,B'+LA*PPtinIUW'9AB4;&Z-GJ#D!%:J"+0B,ô$8$T->*4: :O>?ù(s:"* 01111111+.0BK$X"7.IH0õ.(i-) '$'Mk#96*P<ODÿ; /dA&@F"ø?)!H06D) % (95&U!6E/>!3b'F4-(G,80E3,C,.><F?T0-(;-9#B,%+:3D,ýI=.+0B=j4S8/5[,Cj)4-=d‹¶¡V1ó2G!&8569!;4>4&B,OJM5A+.]M.4!S/-1G +)PM/ 1=.$2(IKN- %P=G/%;?$C)&< + L>;1HFB,%/I%>4?3J3J\F:5Y4 E)(>åzî´aO9%&-:29^1111111:/&U@>)J51-44-I*9CTUN/*9@A4A=]G((U.R/F*M!"=I>"Q<;A#,F-C<;*(4:->1&25I2 +8>$5:!BD!ûP66?1 \'ÿN  D)}*!(*F;C0*P+H-,76W3%?Ia9324&7/Q+:.-omL6*)9 \!5D8%4:9^"4"J/&5)R!2 -P5s*(B<M/=7B7:DJ=%/-9*07>H+:5:=")"T5-(&94) M^-#+(*.<#3*5@*O13">@K7/PJ<4+G$>,=!ð1C#%8IF(661N$":` 5Y5(SX0>L,D OI=<G;AI+B-NS'?0*=NV!E8= 2<JH@3S+ 50G86[P-9?'*/YB#E.#J#9 ?)K996 dQ†EJA+\;M$16U2W1".0 <@E5/)4+`K86þ=PC*NU/L1+.4M6*;(#'3$55*/MR;FSD5N#C.87A1HXq'!5/l_ÿ<HIb2+ 6Kq6C14UGW* *G)EN(P4Ba!Y\09>Y0.BG*;%*F5a7@:2N7-4E-)P062C,A0%F%L3 5P2#B0;=69&K*!âQ]1()3%2 ''C=4"<WGGN+)' (@(ô,9&U :,I829V2K;34?./  4+8W> 9L/ 9@K<*%+%/61111111=E+F)'&.6$(EC;J'<N9G=(683CA+F<0C7F!'AH'D2(C=9-"H$;1(ð /?/.H90;*(3-@-,;5Y*T<U3K)T?:-%AN<S"!%0#588,+:%J#' 6*/)9%4@$93?NJ44,606#o +<1ïå¥RP;\SXO2# +)Dg  H.-626,1r+4MEC-LU8AB 5+*<.,"+C+F3X=U:1>4,@7K48,P)59C/MD(;A7;41O5<;2B +0I#3;5';;D*kM<HE#4_zöiðCOZ&W.9111111111. ,A99F(%* D#9IO@@'6%X<]>:UL.W-EkSP7<,5-L;ñ0C=H4K,2!/B:T.3=0E&D(;1&D6@-<'^39ø6+R‚H'5B-,Np 4+1J7+2&5,)ý&" /R@3'Et9#D#)#P;,)EQ5$3#A@S7H\:472.:5,3[O; GHKÿ59R V?F<4"6->'"AAF3CE$;!'/ ?H%I8';!5:6-C20"5G,JK*<8@.650="H>+F:0+K%H0]7K58;918+5(/33&*@!2G$*;8:(-@64+&X*P,&.I#4-0,0_^1!AH1#<;# 7 X"1;,=<('&+.9*.!<2,.UD4O+5:,)15C,2Høb5EO@D5;.- +E(%6HV'<2G<-<9Y): "L6PS`%35>U./*C)98O,T>#S>*ý4B*6"I.;2S'V&="A5-2$[2A)4I:"-L7C +6[%/*3ó13#NüO ôJ-d=a>a#:L7_@(C94?189f!I,4C,MS:<:;%%7OD:7I<>û<G:7*+23;Z<:K#BTENC37\.*)#2$*031H%>;Zé9%.T](83;n-$P1%Kt NU + <"/-D./7,78#2DA65?5$2/8B)ZQ6--EY9>9 %T+:  M R$!(Q%'1111111PC 94I!C: W'0)]%&(!ø<-/5#-F%BKDE!2O:::3@36$$*ê7+@C0&;1.Q5<@&!4 &"&(>Iõ$F 7)#F=V2O7O38V[<.  H2--B=;0<2mKZABV'N'92>KT(3>{´PR!\0KKXQI/M<2 DtA:'%#1N;@d<5AE%''  #<C/W ZB2K*>4 /F6*E.! $M,UH6&A'4+,/66NL5&Q.'>O;M297oR4M01b'9cEGL/;*&AüSCH<mj]BZ/":8B111111111#!'@;#6/G@CN.G; .6J! "M<("Wbl>@V L!`7O:'D=@/S$ $*&FGO.-8&+V/,5b3S ;*B<,50W;=V$7>N,3PHM@1@@!4F)<@?S'Q+:J4&&@ 3 #'`1%(-3!:#? 1].(70>*B<*Q:aE!<LN+HE0$E:T7#4HG,pJ70&%D>8/9$#V<=d,'ZV$+D.U9ME9N#\ *>I,?!>O  _(x21'(O7+?&>@hc  @8 2B@'56 O B.2&YH/-cHD'8#  ,F#&J%E012%44+6'9-2 :H=Q/,P&>31)-FJ:#AR/R&0(**)B:2DD3J&&;1=PX65RB9.=÷.9!&I,A*"DG6 6!,<'B1Y#VE(@)76-<8K8B72$4,59"%.,.&+&339S"6(1 1C?6<+VAD*B@3 K,(0B7AR4h*+!I.C>H7Epx6A ?+31)1 ]<&>X5LW E(*.[A2G+);D 5OQI_J+<;=I?S:M!710 +7+G $IlT>(N.Me?&. B 7'/*$0"<,N9*B7+I$&C +Q?$5*+/>6/L-0G-E&0<FS7M)ü<C9@08076=+:0015BQK#ZX*>;80#"3?686/$">9(P4=pG3rB*=7_OE.L'-.T.E1111111;5H+=/3FG?"6(Q#)2D++";*;#D9(9P-18"C7' +%6!0F7?;UD&;M-5>29&EME+:.*$"#3ç)>I20"6j-/GS<?9$25,)+C 5HO:GS&?P -<'8-Pþ;Y)'b+3K¤ '(,1:<.#12K1?(gE&=B/c'#'%.2,Fø8 D!B()X!-CK/6+7/H@ü3=$ *$79W@!3@A 3/);<*@'K76(FA:%÷.,.7473?4//1#!-)"96D,B8$?)8SJdF'.F&78111111111 +I ">/:=6V>k]A/6)Y/+0&-4HC' J/-'EH<":0.-0+MF,G%+Pð/W1-*' Z82(ZK(_-%5$%+@U=@3ýT"MG%dR@?&\Q7DA#7?S,3/E/HW)2 !0Vú;'C<MO ..A;C>;.8NE`dD6-%1"*%\26;J7KD(;&[/ "(5/766+(7?4c) D <(7IL1&/ONIO?$W/NQ5H2/)6I0SP/M08^9;%:;H9\CcV6+'"-O,$(cOV 6@B 4C#ñ 5CI%'>/? @"[#H/)$D)1?7..I79!- ,H2)89OM?SC4Aa=?6%#?J34:TH4H3Yu78'3-7;-C"@/"',]E!8I)pJU$Kc1)/Gz5Gü.S/!)+2f6;a5-ç0@/-+=+`M?=Eú$-DB.ñMJSFS/0/<#÷F%!<fN!G*VD35_C" +%5:D&GECN;BeHD+11! <EA1ö@B5ý3"<(úJOÿ >*/ñ_$5U 1Q95EA A(Rlm89=+0:<,,84X4C6]>)1G;DfBE(1MIM;-`3:<102H19F%,'S96*;V?>C(Q0D4Hc)05$13 *+ 'B5L'+Y)  CF+)D/&kF&/-9AQ6W,8]8;/ñ"29D)++5!.)"TBU'(86:4-4ó:, - D1111111%&4$IG&Q,7$91 'N'I@Tÿ3"01"*AD7!&<VT 5?Q +$<D3<'&/?.(! =F%7P UA$L$#<@$ D+7=DE"(`dlB$1U*=Y9K(&/.'.q QPfU?O9:/!T2!E(,95,/<(8$ +3'#88)PC+'A0H>L/74(S:73(,)5(%MOG-'rX,`8F5U;/$ >C.2(q-%6O,QI'L9 +?A:42Z#Y8 @V#'.5*9WQ@(&6a)-L4N9 ")I14OK6J*!%+.;A<;9-(9&%111111111-(6!>F<=FJ1F, 0'5:D17<C2k(6)2*$3.0$%.P%;LKI-)-`KP(01S3PP/3G%'J(*6)S-I4!4V89I(JDC&?'%_ +(,5(3K47 3GU>%L8&O) B<L12512.L,4.:=X2I" $ +$0 +G@Q'96J"-^L-C#M> 6"5#T;&<N94e+PV^?9..J>(cB2P-1C'.<).:W'S*R#C==H1V'Gý@O?!54 B<?D-""V71,C4.E01B(D8+0>"(F*EW(#))B B(N!!'0=V53C02/;&,W+H!<FEH)H/<BA$<$ 08#E`A*",4=8;305+C1'!:7E6"^$:JV(s1!*3  +MD.%7VV2@KPQ><'/%">I.**3A3B B0;8ø?Y.PGkr^;?U5#Bo#>',UC'#F85=*48>.LO(61BOC;b?+:)-;,H.j6H"8;+:HDH2 1+"*-)7!%+E8MF=L*oOHW0(5A.!ED02>* 382h2l4R3-@Z;SRLPJ"G:?16.1M'P+69^"M)&MI'/6<G!&(Z'\/1/$F+1V . )A6:C"*3;2?*:*=0$G1!!8#/--58D82E3 7/HT:&#/O?-?5--(:=jc'_(%1I'!!,8#(CK.-1111111$B7G>\87@XC8=62(;I8NM1A=C)3eDD$#<E%?*"N>-"2@..5:#7-H;LEE=B9:#P.(Q,)7K0)P BH2.? :79 %bU8FC9RNF(`./HN#1c76K#- T!@F*/4X@10<D>[+Wc=&,0-0,,:2.9  >N)0')25+,K%8C4>7K9;*92(.2QG6@1Li!4!R0NBpPA1X82 +#@CE9MV, +1:8J(.%./63 2Kf>R!=*7K;E=0I0!9Q064I,:0*"$111111111&@?[ 52U.RWL0)5=+3$ 76+AV<Q4:0+ME.>GYF3?> J$%-HI -L2+.:S/,]<F$/,_7<+^GH.,>'+4+1%1-(D,=B/H9+9$!#-,\I4,,)5'(@A)K+%EIDO.#4);-060D4aELE3a&"OKGPOR((4H#A8 (;NL:YtB)9XTC,eX@6".3K5=g8\0"( C667BVm&S38KEC3,= </,,G4g0!:EL#7**)&?Q >F5DCB,8"#.D5:K$RIV94?16B1:*&?:Q5DFAZJdO/ND=0X. *7(=4÷))[:;W6;!S%!U I.10/(JB30"8702#EO9IY(?!ÿ6+3"/,063/<O3+2K_Y!;EP/+?@0*L4+H=3F2<E9!/264L$;;ý78%R,<:JF/5Y~=$()J>, +M6,N:01+ ",8CIXM8õK+F9?UAB/4GW-!'PK'@#$ 4H2+3ô42mÄ<35>RN*'ZSE87@+%p)<D?Y'._A#jICYF<0E;-5=N'2]bC?X?) 7]TMb2.=1F.B#.AC> 6G>-.'979M9+0%(&HL)5.!>)L4<'8G=*OLDþ72O)%6&3+&Ii-<?17GWD'='C#0,<9=,G8o 068G6$ )6M311111114F@K*"2890"C+O@/1FMW:=H4**-2';7E/R%LF<è(2#3"G*ME+,1)H92PH,„"L +++#K?%'6)1?= -IG7%C+[P:>*YE':>;5E$@0w:8/\;M+$<B0 .2*A$/$;;+&+4%!8QO8?H581,%+7W64&(#22!27=4QmD4$(;-'/'2ü%6(\2Jl@#;&HL+'+-.9)/R0'0&2'.-0T>B3?E<IY?S9+'15)H,("BAAV(8:<@/$#+/*.+3/'&78($<-1111111114"M8#T2/7W)V()!$/M0[L<A.$4;7CD9(4^<ûJ6 ?1"K68aY3(:(49J`?5<_,"76 /P'j6I=7MN/2+$=$25gDþ1KM@#-($>:GP+9@'.3C&S%6&,1^$TB!<Rl1%*%4GI@N*W8 +'."0(%15M/:5B2&77'//79@4Vk8)hšŠPH.NK#%"4)X64?A(G!.b36M2!/CV'=2`+-C4<%-=7.+1= þX##;30[-"(07W/16(1USB6/F277).SPP4EwH'8Xd. J 62&QB&!H/A#I3&0 )<&4^&20,B<:AL1B +6,=J&?",)G)&>35'2W11$U-/9(^<DC%;##G08,?#68/:M&/2"1iõZ>K;6F&&9']9bs°‡³xmP(7>J/ ?<BEE3 6$%C<( =8V4*EPIKDO< LM&l:11&DC(!%:=/0m1('-Eiˆ!Bg%F%3b0#6 $='A(D (=OûJ?/'9%A@WV}IB@B#8IZ>/B3)A(+H?6/k 2N+55@D'.,!4"Q';G',..S.0) 9&öhC>?9!P(4%'K'F<<@RBB$. 2 +:XA(=6#ýA093%:€jNV@eB/\5"(o%â#HH*12(RFDC3Q6:11111119@=1? *KF#*5393*ü>:KF!6%^).(ý"A<6H" +%3E='CB6L5#>(* 601D-6&.3*([F-N(%BIN.,#)FG3 M'!=9%0=A/2=(MX1 9!/&?0>HO$FO\FOWM? 7$J41K:Q-^,,0IMC3ð0IR(98#0;,&>)1Iþ5'N>M)OV+%2E 4;&FAG@= #,,:Af-; A1'4Q=@9-BE-::2f@&k+!Y[¢pL2a5085B 1? PU7!8g)41/:#)K.D.$9TG)"=-+111111111I98.O8W*06+2[M.!6f06B1bLX-*E$!16J:4=Oø%; 5 ?(&I R+96526;]8•,F572("AM1'?-+G];%AH +2,$aF#)*)Q910B(D>1 61 47:? %I]*#.%.J.:=  $$@<M;G8##0+/?/:7)CK1E= +?8<8L, +!O"2&OJA8> BPPm¡$GSo;72A .EHÿ,QCo#%1D@,?,^2S= ACO= <÷+;95H/H7-.B(?-3) %0QIF*D1)$F%+WD7)+[%8%$)"0e1"_euC>jƒyP$:"*')a;PI?2:.U3#21 .:8?=M(?=*); +,+5>3`4*&253AF@/22KXü&&õ1F<.",IS0A+7VMF@&-!HF;<:I2E1fN;8G/*4:21&:9?O.6YIMj­²ïîÄjl8B,3YF(%%[5'@A "O,!.4g%[057! (?6ôKIBþKB-.6ü<?>M*&>#4?*M7$"2LpJM>,@6RP0HI792:2::Y>2 %B5QPKFCI8A_.L[}8JLFl!3:a"=AS#3=IKCe6 +n=%0Q5D//)4'(2(-!!-%[O#4DP324'OS@6-:0@@54E+@:VO)12D+04<b:!1&%FWYU8o/66H=:V9(\*X +"X)(ûq!F1111111I0&)"M@Q0I/?;02V;/>7L7=15-&B5P-+Hô4>'.:@I(& L(ìaB2-$*9P'72//B$Z'O$*+YA,8&(-1!-)0:%-Da#8G$'",(EL''?Fq2;[CX351-*27JA=;C1>6J:;D;;C)3V1K -6B:&NAK=I&$ D/-U98:&^O61< +E0562.IJ0)A.?&1J2 ?8<5DS;#8'L 5+Gÿ&@-; -/?-7 7+'BQ€Ò®3)!1%#1RQ5SM!9:# 57n@>#QS?/þ$0ÿ07-=i: 111111111M]UG'10=,(ZO16<74>?@33*:B7EY7+,-7:+N$(;=3<@C8>C>:F;E"=(aN]@U 4;R0>@7@EI+47 223&2þ6 Y-&-ü\5;A45?@503+8HD:*E%Dh, 4d7>9;(&(8(8] #$);F;'$$@3 8BNE*M/@%EAW2-$D542;D1AN,89%<./.<£e +Ö +mùœ&ND4"?-# 3ï::VNM8P(B;ED-->ó%8Hb$9-0O& #,OQ<5*":KF,)1.;5D.?"P"%*58!/"@E;S+U,A1,+#8j]bŠ%W*5`=7Ea/453:3>G9@^@8:$<D2'&=<94.* 2?I).6:2W7>?,&22Q)39B"M==A@BE 52L@%+Y/K"69WM-SG-1,A3I 6I2-<7> DK)1 4?gF,?)s½ÒB^Þ‚fEG"O*#1& I5(KB-/19+=K%7(6^/>*#3-eX#<.A)2(Rï-96c%E0R; 0-1EH"C#(b +'"++4.I8"(647>$1>61 DU3G=.28RVHAZ\]~;_MPP@:-HH6U<)./8;<0(-8!+B!?#/%#*67F>5?*.;1 782-[<+H721)+>S;V =L2:.&$3;>\5.EEDF #/!O5 CN9 0*J <-5;#) *1111111$9><"5NJ!?;-(FI[::"GE2<'7 (Fk-+6I$+ =VQ<[. ,6!,*&;G4GBN62:"T>M)!;.1\@B5*?$DJE': !&>WO87D9.7M%)>:*G9G@3J4I2>9)DU6*7-+7?T"[' <(!<%6S*N)(/G /<32F;9?3(:B.M(5"5Q8=?B+'?')b=C 3.ú,2N^!:,+5(J[>NG(:>(1%'÷cÂßµB\ >TE! W16ü=:*9=NDM2"(dD 3"5B'35HAX21<G111111111 (\@ A>(;P(M92>021G6DA.G8;!P/P+)!3M& 9<A1;S[$-$+5<O4$$8/ U)NJ8; A%!)E:$j6?F7)7Z@=%k8-?0GZ+*54=4.":(:& +M!CM>'8,B7UA7i[@&? +(@>-7EC;/-!/3%eQ*)#K"6$G<8CU:L1/"--ZB=)WC%(D5ѵÒ6?G2(X;,?//=&9@,. +5ZZD##$J(4)fSIJ#?5A%6L?B4'43*WMC/')$9*ð!> yDA2PH97E:H)08;>#L0@^!>>÷Z* kM;\ACF >4@'%F9:0 Q,3,2S2 L+#.6&4> 5,6#5:ER6Oaa[QK."2'!2ù,?4b#.F%L_@ .7'&B/(,276,S!8ÿ;8@DPV Q0e>;Y 3 ÿj;a¯K=ø{HV:D&L8+>, T9;7@/U0S/C CF:E;(%&S'!K,!)2J14L J9'`O! >5)/93*G @4)A*Q) +,$9;K"  =&HM74…AV+HŠt\ZR`ZXZ=T;(-9,D$EG768 Hr/BI 9.&9TB9/2+AFL/=61--'!%K0D7V/4(K;5H<=.I'/a/G3A;G?26B%?"=8G9&.+3:$4..;>%8!5H4S @2#(4KB#''1111111@$U4EUB@ +.  *7(-dA.S1 J,CME#M5@%<)*2 +1ÿK.S"ö%GI$:233:< "1&-)*08E2<N20'3H(\E@$&,X 96O/RAþûE)SN{fJ@ KE/=A6F<7Oó*,>*8ED a39M3a87!SE+F%@F1;Q)@'08!+0$)0aD2B6X+Sÿ(=<%I68<;9&2"%I$:$?1*)GH#ñ"XO- .1+X= #8LM,M=G//6C;58*FRI ƒOn-(062 %7(9#R1.-83T++)3 +;_ +!I$ +TE90Y*-'111111111>%,&j4,76IG?!0A99>+9%9%3$@<1"&#Y:8)6$2)DB7$:<)n>3,$?#S;% %?+@A=ô C(7($3-7#"'0JLW3/08@+BK69-2c$UG?v);=62:*0#7@7<.?87 HC(<O&<R.6]@8D/+DRMI)~6RA2%4#XA# 7(@;"3X5?,8=*<#,^9=f Q Í +….’M$ 25)&$6:JE3;5*!'44)S%E1"(?""'(9RM76(0"*t:.RV8M)(47ù6),1OR + +#0L-O=(:-#;.BN203a?3C)Il:;OM5Z-?N:[<:;6A*=8#4;7BK0*[ "<[1( 8^)9T$:gå˜E(37 =3D+4@@J7-5$/AJ>4))"/"/.:4!W(4ù7A48CW,@ .\97‰˜BB;4JYKDI%Ub¦ÔóÚwip0(D"6N"+<=/(<-E3?+$>G>+*?(:C CGO+.&$ +0:<* UAEK1751K"6>2%b5LN"3Q$,0,3+NA73#7?2J0-,B%#T-,G.SkQV‰sz¦‰TM/kTH7R0-t* @7G;9F 4<SE.C13-:óòR3?C 28B0L63"% *!M^< $09%0/R"7:d(=;T?ULD 79÷A)(+>+6:G0K 72J&<.L=(`0%A>;%'E/+A@ þ;1111111&:*CD>89< 6@H#@140/-=?0#=:314J?6;þ ü=-*6;.!T0$78/1W<+7(0A>2(.!, =-0:.:+2B 2G>2G.(<2;U4K<?35*O;~>!3E5E"<0&P4T4-+5A-3Y-0 54?.3 +<B-:H;>(B*L#$E9KF47 6+A65X/9 .+; +;="?O56,,-UD *$91#ARN&@!/6-5†7\AgG8"Vi'9@+9G.4E, P<2 G86'+<D6N&C?&H3>X/<":@,IT4L3N5.@1111111110//614.76-IN?/*84-! +&62X3F9 +?25/(S<4&C@61O+a/L72ò!B#&0N0B9:_4 r6O5:<,D6=+.:D41 7S6<&]528*3LB)"gS>2$BL;@1I<.DMQ%*D3'47% +-#+,#û\0;5D_&C+-9<(Q9 +XN:56B&#) %=3@>RNS,*+(ý4*|’ABÑr*M16S2OV4;S\8 ?A@:&1õ*538*L*(P^8NN#8F;++ H%?E,9&>GTI)UP47L.$6'<>93,58@4R8;!578 _SB=&6'G9F.=3-13:*47[u0 /$Eg,&F$N<9CI 5##I-<3C!BL0JBŽ7øD;#KR+G/;UP^/1'J/B'!;B4H<&9<1A\G3!.$["8S@DEr’Ò±œ.->ÿ$P/]`ªÃë̯mIN$AK88(99]CA/G#8@8/6%KO!,6(B$)06;="P(7="#6/&@V2 ?1ö;>D:[P+?7+"<*QF+*FVGL(I6(@6A?ü'.1,L<V\qbB_Tz•˜}.E6Ei(?6=ZW*7<GS8^Q6$([h0:'=T1H8W-ü7!T;%BO0W;&U)" BT>-('&% '+C-(+/2*)[C6=:2p[182% 9'?2>$>&S%45Q->6?4<) 8%#1 &>11111115!++&?.)ü&62F.63BK|9M@E@>@$?3(()$2C980NQ'#0"<P1ô*/^ NBB539@<%:7.>7B+ ("4NQ1*?>5(5G!;F3'E#5A7B,)<&WE54L#75:+<A/D8PI%&(&%.<#%A'3A2Q.-IC?5:8_M1$),2M0=&(?8PGW?GA=F,=7>$AF@0VP;786K>M'0>/MA48Hf2ü&,)>#:&DJ"/æ3$L5B:FT,8?CE7!7F+7X</N"DK E7++RB<G1111111113?>2.247G.<G@9VB9R#'TI:51O-9).:9N3#T>273$C0.?BD(9b28jH,'+5&2A.$@6+:-2<#J!/=+/(#E+;L@@-,7(U59n+L*C>C# :2<B#G$P#4Dz;!:0H)@Bd,6@K0RQ=D6CIC 4<$;@({ 9G$*<7.+(=4)XX3 0@0C;Pm~u~<<=8+EO.2@! H=" +,>5BJ?1:-10:*J9D>1+E5"47%42+9T.O"@@48(1K==2ULR/@*>M#(5WX$&ó'6!3"BE,DBV81N>FH<N,>=34$C*4$&9NE>I&/- 5"@D/8!>"<BN <.,G 8eŸ»T)BTI÷3 +C$=6 +.eH>+ü /,2;3 #)CDEKM-S!,4 'W4jö?ºTB.Y$6]))I.‚|g„}701$H/8H%T? +>4+'#F5pHS5(HY8L<*.4*B277#8995PA6$K"%*@Gù2<88F?6.,?$D:31(3.S19*$($52 ..?\`_f[|¬×Ba3É~gAB=Dd4+<9&(%2"C:5&3<G0.:$C,,Ik%> =2#9@C%'8%?<3J8F&BM/E&-*=O83bC28//7A%=#*0-"B25Qd,3 +S1A:-*D.BO6;/*3"*;"LK111111154A-*+ K.J:/3!E/6 #'K@*;6<<.\.OcA@55,JX-&2(2& N"041W<,L65AV#( 5C9.D1Z/MJF1./@B?" +)%D&RH/E<:7*(B'C+-+Bj./"25 F6A2-$`8)@<9.*33C3f C/-1La˜~S#&%7K=N5D'$A@7-.EK_)>!(R=)1(<6,6_ &@ <5862:(FW(!9#T*30@:P1(B9U%@#H8K@o9C2"4=!4A+ <7+3bX""'3->E=)%6(:÷&.111111111'8,8(%A&'?$2<8+Y R(>5$'8:C!&&66>:I*#3L$í.[7J0`*B;-<#H#ñ;!1HL0K@&R<7:B*.Z/WGA7A,=7.;'-#6!%,ø/=<:TfD<!$j%;1--.B*!T("&-pR95# HC%4.@93;6G96W ø*CD)J"?Y12"J4?D #2>+ABG-& 1õ(/LNL'4"$u-o8R@Gd&HD!5VA 36B>,34a,.7  16I0ý0D (-%3 A@_22.0^48_>8%7 (2-//.0)'(,%-.U='B\J"I+;<0:)5*#6:n*0?K; -#.'A4,Ig.=m>,`4=4S1@4>4G2O71R6ANLT5b'E ##F=ÿ-51S4=0&-%,(C!U+P=(!)(F T4K7)&,;7cg×][Ûn&I7#G"5>pTˆ=m,;'Fo4/2C(H:û,3BY> %"&C.%?_8(,'D)BO<5< %ô IG,#B$"V;!1C)U&C7$6 @ 2-$5@>1=(:0D+A,/@kpK`I]I\NŠŸ­’9©íô’9E89x=&^Y'#AG'.$6''\Y$WK)\N:>?D#3G(9  9R (,?".PK3)8- !K"D 9*4J$M>J8<.1'5C+_.gFI. +(.:88>E83 NT!&J_5=&=%I,(,!/ZGH= N11111110,-()F7I/$(&3):-,C2!N*"32T/].),@@4C.."^9+:1+<J8 *- 85'(9AP:"'PD!.B$#!P2J*>3E4S#C?% '5G6Q1;<I*5M5&% +,&1Z!C,'#3/#H10 H%GD840!.IQ/SY:,:+>*+;LYl£GA H3;U'.Oì1-6 T.P$% L&(/#K$6(Q+5$%,2 !%<$*(3(90')A:*E?D5*F:1"1@*JPIF%7SL/:C943>(9!#_.`22. '-+)!$4I>6111111111O+ 8E&6% 7:L33;=d4A.5/W/!)58cH(>+C'E)S(2ù742R(.ûD! +;J&,<+H2F +64+7;&C&PHÞ#'/A(,F%!';97ÿ +Lå R9D;JúÿO*(6?V1p3>2FL,,B4FNOR5! 5&>M"6?#86!( 'B1&3/AM0DMG @4_7=-5\,4)8*34@O8. +$N-?<V@/-?*)<378S;.+$"I(EBA.?!J@\6:M*<N.AOL5(X/*/=6$X ?RB=U@0B=!@@kGF9e6!/*0%&!%C*$O(48B/_911@<#7*4`_55#9PKC"%;K=YA&@>$;.0%2HL4K+?Qþ=3,6/D #!80."ú496$%;((U&8^U:K.2;6].è/;@*I*2%289.+e7W$6K0255SQ5*@P(&OL<3VI=-Vš*¬\<J/9*@*H-@DLPEE$2'!#0("# +C.KB1.828-,(./CI)559G:d*5(L2"0$Q<=[0.G8C0CI-$#K&8'.J!7CF1/+6 I0=^rQ(SZd;NGDhE}µv¨ /÷h¶Ø{IY.doiN72F$ !;&O.'5/ +E."2_S5D7*6YH8ôI&7%'&Lý153XVH T,,:%.D,W4/<'R)345 1*;3*<;9@. <'$:A81.F/+&:&2$"D@/K '7.&11111111+1%:'.#:7('50%%<G&#1#K41AS','H KJTE944(M#4"2*c=B% 9[H<03)CH4<37A GJ*H+%G1$41KKC=H5DK/D&&.dcL'FP 6$PGJ%*7*O).4/// 1N5D„&'3U2H;7@}[T,9- *$9H.a*:I! +0MMa+B42<."785"%<5 <(NB2þv:#/E,J==9i5'.;@6"42 ,B@!4=*AD* #-*9'0DLA,5(#9R7>3L7T$T$7'!i374+i,"?! 9111111111b82\ 1F;$1)+TF>2.-)%+=KMLN;5+7(3FB<O;4C +%AIEMR510_-!H+).Yý/F,"%3$F9@9BG07X+hF> ,L;FHT>W&?B<C6\aXKHZ +)-& +>*(?';;H)./-DN>JD /SNKG\B/ù+BüHI@)=ü0255N!=7)<8'2 0FHN($P=DOF,EP,6-("62;& vP? =S(.3% 0T'W=+C=K4% A#74.(jVdle<>=-a %0_1E-8M%-,#, K.%91 /=A352]2'Y<:1DA'9:>*DA!-35<A(J2F/T0(5R,/#7E<-0,PK"0!0>K2/J0C=$91D!\!MP-;-;<?)T[. >%=9@0$*='./CM+5#44!()=S-/H›²¼‰,*"$:6!H"M 2@5308['8A>O( %+7,%5.IûZ,VH/-2HEP!"4W!Wqn#=E*-)!9fW)3+ $&0111\F07.T@W@*@223G`6÷+FEˆzSK@_e€­Ä4‘Å\zù™ƒV:51>+7`+ /d%4P9G'PG&-*.D3 (-Y<'&Q"(>$+:;* 6@ 8 <E7</)AX':30?I-7<C +E92&E.8R@)A+918#7H'i@I+g'#AA@ 1*=3-B70-B(GE4) "1111111*ò3?""óD,#<4I8BgW C% æ:7I-0$%;Q44,&= AF!418!*>1-0*13*B,4 A6"6e.Ja<62:C8!;UJü 19#F/,>h>26M F6+RYpR-/>>$U(F46@*;%*L?N)3ÿG!X(;2=<)N #Q231BB,&$7<-9<7FC5óJ?,-B.D!&cF3)6V$%J/#<<2\9+=@);1>97L>EDU3]C9\AFE0:38ROƒ5FMMV"VN>9/;<"M2 A; 7=+WcB41<111111111#MB-.I!;!JcI6)B+*[7=YZ <a%8'6+:DD$-1D,6)GA0K5%.),>3+H8B;'6!)Eb-)ñEU63(-,-8/=76)>+200L*,?5$b"3=1C1_o37)0A N289c;J0]K9`L)^"7,&%?)-73=#X#)%$'#)K1$<f4-Q$&9 CF(P1%L15<CB%K 8qA0;H56.O?-:=a"1"IC&9G$#b"I) M$15#0&5#@57SJ*Q).==A1^á¢+’Q+!2H_F#% >=vX2)KJ( 4aJ:ì' 5@.-W6)FUO!F0B<9H00C(K%C&#HB2+F#A8w4u12#MQ0,/4J>B(#j6> )(ôÿC@HAC@8:0 6'"9)<<11P(-AG&9<E''!#+ü@)._JSP'5 Q S:C1)=[%*8IP$Bmgf<$V>I,K3I*/CF;;U)1"5!:3:@1H.$G-9(+>,?U6UJ,<ý5<Aow&8/I0&*$%HU 3$6'+"--&B%9ù-1@)71^;(M +'20*01S{ƒi)IP_‹’߬·âïØ•lb]IN0O.@T350MA2J*L3;;VL,::,23/N/ +3I$%C80%8F0:#.075I0>:mY?%`%'@ A&=/a+Y$'5D)-=,:$!;QA1#3/YO!è,#1<$FU_L#<H/7%5Eù J49$Na?0-@99H1111111N/"57D0!:5)'-+43T<1T+*?V;E0*R88 '-!A!/!5 V:9-7 4>341H;8AK*F7/ÿ',A#('UA, 0!5,1,/^% 7,=ED>0#@=N@D(E\/ AY /!,>0 +#D38-jDE!(bC*D< QIX,E9,<6-))T)0$t-7B'$,C50*(=5 +3:#.>3LQB-6-7.2@JAF$$9:Y.#J518@( #&I ,7#C,!,-$(/3#K&2Y(8ISL{C%.:@K%*BI"">47A#5VDJ//@6qd5L@S111111111= 4)4! 2'6<B?.%A+'4C- <H%M1&67,88=2% 2+%6),%9< +$/3%@2HL$9-K+.?A_4/%M.!.IS5&:82HJ_C7*$z@K36;.*Y +1L26.C;6#J"441J/B#(:L1&D(C=!'FT3*F5M>(!4:,RD'C"% 8-H0-O5>@0D  )eg+*DZ3022%0594#?i6'KA&(5U_`TD,DBL=='D!,38.06,/L([" +ÚC>DIBYH1Z9*'8;7-3$!cYIH48,'GD+$RU%.B/'34%<'EI"K)F,< +F\ +?BIM"QL</8;!T-);D79;&^é #G %Z0UA:$?ND?$5(&öA/>7 +B0`&.0$I3;!(B(-D:1CSO&,),.4=7.9#7>O**<R -/ 6.+3-K57:0M%;B7+*<6-:H8",3\2Mó$YG/=%;X+!Fg0-)1a<6IO0 -#K6B8h(I:$+.+B)D3c+6KT)-%;V@L?)0P$8].U%GGeWVjhY§¥¶'#³ÝE±c\eP1, D@,1R-*R%*Q<8< I9hQ,29,,1/$3ö?B. 2C5["?M79"'*)%* G2:L9H%T$16H>/@(#/VPM4V4,7B6*@".@&c%11B&5C)P;?3 7 BZE\VDù&)3J1111111JGB/9,,<,@5*/6ü(\M>%(-5/. IH3#1ý *$:&&ó(%A132RF=$>.=>-Q?48$8?B)@38,<;6*$--(#'3P-1* 2UVQI6)>?41C$5'*HC B<Bc50:J5, v3'C146!K)D=*23  ;,F?U4P/;27 RR/e/MN)IV:-",E3&6ù$LND>/9M:=$BFI5;8E6ü(2@/-RS&,:-. 2[C#IE#'%Yb3 ,9 0M7/'9'$6!0<6;; 3L2%û?]#SE&A5+1111111115 $8<*,G&$B$I8G F+:B4?ý#1J;P/&R*</%DM'?ý?3,!ÔR:"B:,1,8F,'F3/Z7?''W,C15?6+7*<A ;;B3IU5%%(J=5õ7üDD)@,þ8M@$"<0'E(=T%I3'W6H448J.b5C-(;-) )3;8&Q(ME4$R,/4X*,9,9)W95/G'34ML3<.F9nX]9V6(L>Y\# H;#:(I,,D7@usCû'D#I-T+S:'/þ08* P5H;twœËKE#>@#F-)T837(8CT# +J+2B4&!:Y7BE:+K:%>=/<A.2$F"/O IA _07L$K48>76N%6U(7<%O2J>"^H1 +" )("?,B+9?6.M0G?>D()455 +, ;k21- -65;<*& 1+=JC 4;0$3C\E"@-E80%=&%4W,H1<M1:533 E2E05C- =/(2.R-VB'R*4&I*+)<-D/RFD"@%>9-OZ3+7E#+'H>*.<<<$A"<oB&9,)P3.>B]40N!X’9HfU‰«"¦YZ‹Ô¯e\0/6A?I*H.3#<B.A[9E29MT5?9=4& "-$9*=95XE18A;&756J+7+4'B +V8."-4 <4)+B@ </0QP"8&HaxF^+DF7(!E"+/F,50(@)+14FUO4#!7 JA1111111÷K-J"4!"ÿ-F&#5,L O<-,"80!9 21C0O05ÿ 3%>5 +),&) 95<C5?<5G1EFL<@0%@0(?,G(/&4é-42;U44$)E%AL/CR< :;1CO9GH&09a3C,7N:I0<:V6E1<5'9^) 8#DZ0*B2Ds^<,D34M"+N,4K #9*<:óB3-A406%W4:02)=I#8 ?=(<D17 L4A@4=IF%1J<(*;7)8C-#?26.%1-,(^5+: -0 <GRñDSJ 8J5G,0/:%*/= KL5111111111$ >D<49<K#"1J#IXG(17 +þ\3$3-<,7*91$7X:*#DF-úD)3 (KJ M. (85)(8 &3P80139+53743G:6+(A9#//%"#M766<DB'KC  ((E8C=.L#+2SS4T=%'_N(:ü:<PI:1>,645)C,+KG /"& 2[&AK76(4?1H;=/#H18J` 9C7/) GI$49+J)U%6"$!AB eG[9Tq_#-":.-#CO>VE=?':")))@g%E5k€ç“†Flw C36K+H '9J,)M< !<'-R5B$AWYM$$i@;?66/'(!6AB.( +;,(8,6B&E,A>B3a;,9>0D/&&2< &@$/V!U5õtGS= :mNJ6H6K6D:7- :*".0$@ TW+*3B;.R;6.06X.-Q9 1d!O-EJO)/Q7);$')5(LC.(HFU#!ÿ;1I5%,1 F*11U.I$=)-X:[%11/*.3"-^_[4//2; ,c=wT/HR>T 1E /1nZK3_KE>Q.K*AN1J30@r7x]§ÇçmCÈy›f}SX<1;2B%:T>+6 4Y&B(#E EX@ê 7Y;K?5%õ)+(bJ +,1TR6/C531$7X>%*8$6#40 40#22.*,JE/2J;UI4FAII??,).5L L‚B7*3$C?!(6:1111111%=)/#!44?]:2&E'A358,-'aE.ú>0 03E;&,92/G #6=0A!-L7C0  .2]-K4=:>K;+:B17[4D09$<LI2C?-#9E:..DD%)9-K2+09I@(5H82Yn"_Bû"`2LF@.g.8a.<N4&(5@BNNRJA881C?+"08?)-15+F#%%"1W=H)=>:?1E;]:Ö2e='!57JN= E>QYG)2:+9;.(/)C(--F66S>OJ:-ck^IG'"ELE=>P% 7/ 'GHO*$2H%K.:5111111111@#.Gøb<T@7+7L69'<51@D? "7G 91 NG6S`-E+G(-)S1W)3C#8 .#O+.E<$/,(7A&-$3F+LD&!"??DA 4R-1+"('V5W$1LKO*+\ 6_"S\$CþP<=9+(=FW?.9&(86DA$)7T6+3!ZEû 390340A*A61!;*b>H0/MO&D!1:(SJó1 :O*0Ad'>(* 47%E#'.&B9@v>?,ý.;2,/LR*1 1/[F F#N6 ?SMUC•:VGC&V+.=L5AH/==/=F@"<+Ce%?a".%% 42-R1A+0$+7g1KCP?5 +6K/#N.ö>3F+!@$'6*A3D@*^<(PDS%/",AM0D'B-+#3E4<@2/$B5Z$5 ü@+*b*68T @,.T5!?M4*,A592I9--5%:3!AG(OeD-=)/42@>-/ ?) =?2"EBA#8 +OA9,>5%6P0=>03ùY('/86"?E7L2;fTN1O*=\5O8)79CWH:H:  $I-8&G3D3&W;E=@<>-"/8?0.:7RY-^¬y½ËÈ·Œ‡Yˆ]S=H2.ASTC]/23&"L> gCbD5W*(=  +U6"="# E)G),3D@=G7?O!I<:A6 <,VB>#!$F(%G!$V;3B=/!+:D.SG%M9K0.(HB?/%6UJE$.<,/æ$F =1111111E%-,/1;6*J7&: + %-Q@íý.AX=C4&5#D/ ,7=Y3+2,S&]BBc;+G!4 0!>#K%8?4 F,*?3(BM';;8N$8<33X2D;<-)!#B0C1-ÿ&9\$rN7R;3.P&13*)E$;8PTSADC%7N!(=#e3+5)2NAA$(<D>?44"/4T:=-,-$0)&/6(",N%2:DFI((@#'9M2:C3"4*X,GNG&ð15?\ )6' (:(H#)K99))gT%U,104B 3P7L5)46*&58E<+<01 7,%111111111ò$4$-='23!/+:?/6A%,0[2ETC*)H"V ; 9'!#:\/($%%6@ +?nM'+ 3óO2#58%>E9-/,0D\,67F>F,1Q;,g(§F6 HW( BYC$6!"9*!CI.\4*(!CD5DD$+FM<E' !ï,7EB89$SF ? '+:C%/ü85%,2> &"*Q6?G([U)(0.(2EZIQ(*8 4$V"4F7[3B-4M4=D.D;G.V2//'4'=CQ%5[‚yLN(>2HF;:j\ALO6#CP!C/ 6,÷aB6;RTQ!5_ 2G!2<-:F,aBV&.#)*!((#!-}5:'_?,A.&(.,$> ?2;+<g"7ëB"L8B"-"".+J#8.!3I3h5"%%>5EE)96A ú?,,N)?B+$9 0A*()?)731V$4W&T<E@*SIü;+L,g:+#)<4=M +<65 F.<<P<D2-J4>:$ G%;8:,1!:#BR/+'5I+zBLF1A\$*$ =J9,&9>6TCZ) 4D<&OCKŠ@7…m‡£p¹£utzRQ=68)>%PZA%#ÿ8D,G;rZ7D(%;KFI14=9[>4!D"(K%5? $I[Y^=)=4"-%(9#8(V ?74#U/1TBCA"1[3>+CFý'FH-D! K%8.,;/"@2 1"(' BL(2;#"J11111111@,I/.2H79/7)/?7%IW>/7'$>B)T-77ó'G+8+"%3,%fDK^.6 3G+)(;P"EpX3<&/dW18/4JES/J#J5i<?/8;% *252I6L:J7*T(<õ.JV 3M3L4LeX^,/EO @ #O9ó<F*E=9".@6$Z<EüB!/A8L9!<41Q*-;309:=0[ *GA0$-BS*,<IF:8/2 )!+S0ERO S@(&6$F7H9I'#B=8:B8$023G#,&,*.$3)6ELJ78M(8/=Iÿ6;'- 32@=%"0111111111-)(22K.;KR%0P:/2;G þEA"%A@>=88G((840PLH>BB'(DD?6CC(<<8$OG>,6 .%-+/3+2(SY2/E-@]bc*,48'%.);C_BB%8fG AIS)EN'@!7I6M+=O-.,">)aM@8'2G4C'3Må"C?'1"\E2$/>5#@63)91 B?2>(þg-190LD1K >RQ6,P69P$&%/''+:>4>)$-)7*F %2]CE]C-P_e?!CtRO9.7iEK$3(10)OG.++_+7;$þ+;sn; JI/$==0=;3&S10N=A1C.!!2+H%KD'W.:IODC: +*XR84#X4E1&HA)$C;*-=+!:$#g=. %03N:0G6.H+Z.B3?(91b3#2G&K1L,/=$?;6 +&(9P@[c9?4-<%O/>$G="M+:#/&8?)4.:>?M8õ[%(ü;-:FD !(39KW"JP@Q5N)(-A(=6?N \+1XD0-&@,$=6D35*?1Y\.=?74[YBX]c]¤„@Šv\R(cTn)KQ==)"K#*"(<QfLMGMF&6P%"5"?V'E-SH/@%429P?6H'0))#$( +38+&ð1%2>,F*+;D'S1&:!<M 194(Q*%1J=ìK>38C/Q:,A87*SF..ù#1111111C+.!0$:ü2+-$5BA.T%,-=0F2+&;#X :<%"QD%O-F8*=N )9HC2#GONjP3<.=ý,*68-&$I@;54/3Ph‰]=<87*68,F.5N5&-%B%3*%O *<;$;2 +X[A~dG,A3987D0F<5$/SDCEU'>LW,D9P(ý)+ +S12:> D1;CO4-  >- B7'4 "H(!P#S(!A=99%EVNÿ&@GN-"00a-#%/%($ZKL3 +"J460O1Ví157O F?B!:?;$Q0 >O'664%5*+:7<62R.M97111111119*E>&/51#'0< 4]R%D@T)*$"*E/:7FJE H&?-'L1< 3?8P)FN<E %=5638'D./$.-:P6a</@0/ +$% GAN4<=K';.#8%0"?!.7[T\,;H`(_B)1*P)I=p>;D.,-.71! N(F5"2:;'<<L!9&+ 1"3;;g;=1!(:7A< E//-+ù':401.)FZ5N7*û1'*H"õ@[+,5,6<*K:ò(5J)&P(>#>KJEA&#"?"I#H>R*8,MD?"ü8l!4$7Dø2D +/\>F9;B#3÷.AF00/"+CE9f4I8:" +'8I0JK+*(28NQY2'8;//+(2366*1;9G&I$,Y*%D+OJ5(ñF52">;9lKO2+.S)3,!0/0)1B-) +,GCA[KGU<JXF*+?f &Bf/)6:5+B6,>=V9=MK-1* 17'h!5&Z M("Z)9$.Jø@'9N3^"?ð<NüDF+B=9.$% ;'$2/CF?87V(CJA9]*LJ,.#7S_6JF8=E2)a.`^`QFŒ]‹qk/LI<<c2J!Z08J.;.9=>DG8+`W3-E1(:1 467/0@(4H!((5G',9 M>*G$7":<9>!(ÿ/$M$K4"=#)"Y:),I8.(:%F85PF;3/'O0+('8<+7!46#`>K/>Q:÷1111111$ 4!/D-J!P(-M6S/#ÿJ3CX%0-0CG*J4CA:& +#-Fl8:4!TK?,^++-('4RAB+,[=A9VD,%U¯¤`L $,$*53gI*,@B2N21TF6'5:E)##"&L5"-ŒÙR PY71! A>"O<$+%7/2Cü4*/*=" --7DR,/g&'4/J3bP^89)$=>9 .8B(7$L-1)LA9H$$ +0="?9.,FU7=TEr+*2íB E(',%'&%&#L8AZ.-, $0!/4+0$SS=)?<D6<7;÷;C&6':11111111@(8,;5/2<==3#!<&/> _>J#1Z>"#S5c* J4Oô8A#0BCNA4d +*!':>! 9<,*GD.TRXýS+K'53@84%MM3 z<%(?)''LR0S:9T%4`7#=O2$í4:Q">#D$%#;&7$C6D6;<ý, e3_3J"&a6.?%&:;M51AA^0gM>)%0P5&@9/8& CX$'O2C=5;: ;;R;D*\P]M!8:@)&c/ +8!9*)0(, 7.!=*&2D",) +4ED O)-5-",*û-&8(<'10' +$@#!/M+C-(CL0&.6!K8^!:='P2C&'*;**&U,D6JRN3?)7,35$#/!)#A!B'.38307dD\O+;U0W=3(/A@8?eFh?')+.$    H8#: -!03G"K+&B0?n·¡ORME<%2B2`X +DAgDA/6j&BL CVH4 1B 387,@6Qô-, *997(4'J.=1B8(F%TE29$Ad5.,-'7=V;+$I]iO%HF5C!-)A,BVR5TnI9G!2.FOXRiF8pXC0SZI.:G6^N=&>(/,e/'71<Q=1e:ü5JM75!*@33-8>7YABKU#%!65S8!8!ö" +3A452<D-P,d>VB?.A%"@'$3C 9D6K+9@VLC>(;(J-P*BNH>6;.E*GD4?6 3 +O3"ë211111115 "c*(;2W*QM#@6A>9N -*+?,h@/V$i$5*%:BNGLJ*D(6!4/#60B /! =/+<>31#[15CL€¨E>C?DGCFDE1'"24@ G<76"I( +"()8c‚€êwMo+%4@C.< +,>CB34a?K!&!/GA[60)`<&# 2BRW,")@+.99@l-6$A:üL<! !02:í>/@.:9%(`6ø:L?.Hp!B<;_)ET#(:]A01L;?5E@<MG1F@; -,")GE+&/?bKU&@b2!?;11111111J@-(I.?3<)Q+ +;(5i=3D<wGe5:3MC(6M37?*?"BV3K@@02J/"-6P-8-6A#OH36/M/)5,P3JA6&29&/"*FM#KWD6(26N+60+5M3+"#F$?(11"1=2Ma?[J-GP*_EPQX/&^85&!^Z97T6D1G+MV01 *?m7-Bð:# L1I/M>,5O0*.,;9*S=-0,9--3.<1' W&F%8-:'=ja>@"<LI8Q2B(; .1NA!=%J.-,.D<; O%"W1=>9C(8866P!<:>Ab3V=T$(DAC 2 K)/C1`H!BV,A)NID-*&?3NQA_=I9,X>D,#?>9D\ G5OC(6NY+33'(4,C?4SQ7:L-LA:-/-M C*0B9%[ÉùÅr:H*9123$,SB_7Sù)'!(&G=2)=:#)(X %FK;:ET.?]?>/,;-X1$ 7U-J='F"DH).Eó<A*2!9i @9-*-%;MbdH''&51,TG'I*1&<:P?44$w8%3T]O@MdT,CG .$7I9?$534'PHS4.-K8AöAS6.+;0 .L W!27:0@@;&'**>7GkF1F"5&4+(*=#M0 &0E+S!<XOSxNgaV$->O;,5(>UG(n>;'V--1!0B30F%?1.D<1  +((ú4G<?5,<"&1111111#,+B3E)KB/"P%0BM)B =&J>P&'I\$ ÷)/:2I'; '38: H2;%#I(9/.0=!3"94.=A&Z24?,5/(1}C9G0HA 2J8:3#!;7Z@>@M<6(D(a1U6FC0$#WCnUhZ4$DA>$27@+9@: 0&R@.'-436^@61&9#'71!/AU2;^FF(F8@#(I2I-0=51D: LTaH4:I!D=F#@A,P<#Kò @GM/_" F; U32"?7`7<J1$/7!69,'6; =8%6:FBDxD2& %%-+11111111=MVL l0B6..L$3P?%:#337]8/4F*0'&KC4Eú%(#CL48)5-(26M;82E :HRV;2+:@$)C1E/>2.ÿ.4MG8?,;2DB4!HC5' 1 :%4T<%++/*1_ýC%E) [: :8%$<!1D10@6C5OR$A>"O'H$0,1/0HK70;$5.B<<KH61<1*.þ=$?/ 8K987+8-;E28)(A5'*Q#J)B%1#gQ$14 %"#0c$'O.70C$77GZA.þ(:2?@A-.2,$1,(-8G>M3'//@NE,4:09W*E)'*1'"4$ +0@L9LL`'-=:\!K$:5B,H4#?L8;Y9B!=0;4=''F')H;'9(6 9V:6)GNCE+) .6$N 8%6C%,5%D #'<0C/3= U%%=7 ShG“œtFWIkk@GQ+U/R0='F2BN>.3? + -AC<6;;>< 6C1M%&X. JG/$^("H8"K?99-c!L3M 9-SB,#C9$#6L "?f:*6E,L. "j +O(lH8:?"F;'O0&R1M@?ROMG,UZ.,SJ(%5d&LbD"(48H>JG%%6G3%%E(O;&û#$:?0,#8^4-?2 =-&#HA\!+5" ?>!8OVW=#Q<Of8X>ü+ ÷$'ô'P1#F/\4ò-(D: 6B!O0Z!!O(? W//B0=1111111L 53%K +$((K[ 9/3 @#!@c#T(3668+c*&=5::"B3VB'=2.@#"7&9>0/\A Q96P6(+ -)KX2"!<0(<DC0,)LP8*=: -<8D92P/'43]-T]1R/;A ..'>7#:<~:<I;#.8K<-=Bô46/#4+5A:'?BFÝ+L;4C710&8SIT/-3+<A+%039/84C7:B'HU-7&3(<@A5=b1>!/D8;( J9E$4%*?_925SùfC:5.#^>/! T>Q()m1.*4 F@ (11111111#.>]@(õ?BW:Nf5,(#8FE(BE=$*%,C6&0!8GM5C&B@õ.%(ó5@0R\2ó%Ghy -<\-: CH`Q?_0#% +13"4TS5/92B5&`74-,;86!028#GC70-87L L0UG`E66%-?0!#9þ@ 0E8>\HuN'/5/8?58JE R&-./.+T2lS$/=HO3)J<=H'@\D$9*C@E8- @#DV0<E<(û0A!%JBW5 b99F<(4Y6\\6/ "8('-K-I1H9<0JNK(1":7%9-ZD.L`F/!C&0',dë#<O.< @@Fl,J6 OE*3[1LE".5TB^ :<C(;.S7)'?ý!<Z'-P302%.&@D,/#P,746C;)R0MdVG8D7($K) +< 9-+dSG:=15HE +V9>MU`RV{ÆÆ†i0A:9F?&;D)'I% ,=N"VE)T<.=?np+99/ :320!NM&&hA02\,09)9M.7"5%850#."F/ :3WU;B"*<!$A?B]& TZ.BL+7/2a2K3/SGS=)0EK5WS">'R/SEATR'qKH!ù.%#i..-&P>&6$X53T/T!B*#.'<#&.,8$#"Q"AXB +X<M6!-91î0PL<+ 'JB)81@$-N6!68,ô6î*/<M 58%'S(>N;=;;3>-;&2#"2@ AMe1111111$<-SHI.G 6;@1.a"8 <.<<3E9!B6:<43%IA))8@0þ1AA:).]Xù:RV6H=?I260. + '_=ü-$0>*';*,1S,22!-)L2#)%KE)!%#69`#D!H&7J5C(+'=6447%'7@9?^K+1691%HJ/#_)!D7<)(97A!H)M/3"=93 =*'9'. += @<Z, ;175AO1I?\?C(ú'47PA,'.0;C?-E9:"PI ,O@=?M :%[A,,(58?(I:]I>5 %CDG93J:4! J0;*=111111114\(PH>`dU<-ZTT$ :,c @47J9(?(7<8>\I(,JA06-H+:99N44F#I)&E&6PS)-0D(6=7XAf5S+4;ü3@ ;-@% M94O)BC2D+;+2421ZD 57<M#(3E!N!</0F))</;>E=(;Y4G!.O?==%\d>@-M$MI5/B1);=76,414Q>1#B','GD):L3+@P,EHA2%!9 9"1M/I8N?2$60I-DQL",S!!3IE6Q"R:GN5SA"$0+"E.%>i7;@+?:  ,>D@,,%[6C%5!%$H,(FV)=)#F"; +4ED!/.)(:+1*IQT\ /R -*-$7&G#5EWDAC=# >;-4+ R25/W?:C8 +E.1E:*(5,^+6?F818 &J)-9S*.4\!;*A>=Q'**1U040,F3QW¤ð¤T8 :!3BKAJ0F%JP3/=,/'@J +C'3+ <4uƒ¼Ø`>),B  </+RA99!C +'(E1!:NB%;C -'7.ß@??+7Ca8@4SA$/FDø6H%& B:@F4PT175=3 WK-H<8V)W$bUB S3=V,N+,3;626 0AAK%@86AéO"(D* .54PýW;6!."&Z?61ü*:&*B9F-(-+C*!165DA07J? E326)+$;H&A.D9!gGi. >/",D L #BA1A>((J91D1111111-//$*#I<BH'<e2ñ"%"A/4"+GC,9ûò%)8"C+#-ù=4O.F=Q?LZYGG:V'L.4%:C:8B,RB-7*!-O?;J0L-?1: ^EJDWX9?2 >Z%:J=N)/C),U-4E<DQ%IO5L:)/3=$ +)O=#G:;H-H5C'C@6C,O-M7+6M9$-503<48.2+.F!W=.5"(.'B3,SC0165ñ6R#%7;.0F* 2$?ð3'#Y(&<; LC] 4.1<4E<,2$1/NB,+I.@111111117C_<¨¡^^P\PSV1G %&!<93(3;B9:&3M+OJ>H#YA#1:70/GFS,$B4/D :2!13!+7O9C<Q>NH2BL=- )! nAZ83-D E"BAP*,F+BE8?]*;.3+:D*ÿ+(34: K*8.Z>&) $;)H= Q,øXQ:L/.+W`2X3 C,J82>A2!?.(;. 223BKj*G11I6#'.4Q6IFK:48/0=%BBSJ*W:A11*Cr NI  '#"2Z)  +2B&B23+7!Bö3K1D!Z+!K2.1-PBIAT4'ô8.A):3.2MQ[09E)@S@)8T. J25@05G ?1J+J)$260<<P07 6Vt?*I5)+"B5&-0?-<+__þ-=4:L<C\SH D. +.37FN(/)/,Q*:)8*+ED1E<?,/_¦‹W$@_=A02 (];@'6A ?:27K +6];73:6/dÁ6mô†t71%3M^06f>FG#7?,<52+J?FD</3$'ÿAG22.)RW3<*(D^%CA2b71'L>R*<7")]SkI#2;>T3+] 7!MAKCHm++*C*&/V +K+(CA(C&P?:f'5#ë#0*C0?16/4.+'ý!Q$24ð+../*94'ZV+JA\E J1$1$.Q_' ;-6(CIH$,OG2!"-,:T< 0)8Y>, '3?!/0A&C11111118I S(;.6/()+HA9--./296I:W;$2 (L?( 1$4+%C,O016IR(+3A,a^:adziTX&50BW@72"2,D 78$5<7%.(4[9PE00>;7)*:."5Gt0:$Bþ6A(([?Q?6W;1E,=-0G.GS.;F8R--4"J2&($F8A6R50f*;6+/%8 '6&]!*B@12G,ý>63(\üB<:Q*&[4)D<?.7<(L$/,43$@ L,?;H+?!O<. 5.77.NE)"B)42FF%#?LHA.w,- IBF@2&%4(HH911111111w-!ij‘ŒK" L8L-39W7L ? +<8=BG-)51(6qIb*7O6R!)8H%5'""F&C:V '*3)2'*bH"86+=C\;>8"5!>4KP'N+Q(V4=5?=>8$U1.7$)0L1=bQ,5^<1?2I,]</-9("@C7(&0`WNA84<B-I ;34"I=97;#;Z"&()$+3""77;9TA8<)0 763`3 &6PH];&50T9G^8(;1 RBK@*?.W@+-_=@8270+7+<550J$$!.#$%AQ'*"%!2[4K3?79RC@YD5 >S4E+UD‘u<WaG#:.;!<' M7E!E-4$3Bñ:S72KH? 7"2,)E>DT;õ1!;&92'1(R%?+@7,FMR5$*K5iUD.H7(  1/gK!)KD 76=A6=AQ<L &1L5F YfB8LDE&(:KM@Fi!(-#B(0BC.(A/-$0S+\Zî³èÈ‘òVSME!+,ý'?57$N!94O'*.;.(;LTU %..-2: '[2 +E]81?L1:"2"#S$A\Z4^M=9I4,:&D-L._?CMu6=UN ?0)7% /7.6RBM=V @÷AA@@=X+[? +aP500>O'!!K'$')+û. +*J:$1#*7FRI . .F&A#r X3H1L2*.1/K-ÿB 3X!9.Cb>(Z:!(0%G$2 +7@#N1a 8<@71111111</+!*!6UÓ%<LW>$21* .%3 2+?*3' E2:#M#&.0;K$5H/ *;+.^©·ÉƒI>ZJ9<^Q)@H/*úA?>',*<+"S'?,KB-!87,XVeCMQ4,F94J1" 4$'6:'-=3;(B1'3+2ASP; -F:L%T0=.T*7!< *)F.C,`D+CKIþ=@(')X8<97(F0@@88 #:0*5M')%8-[<&(!QM :K%9R!;ó &P*4#\91æC-VQ#)KP*-D4'.1111111[PµÑ„kzIO0",?=,= +Y8 (C?F.?E*D C(4JT=Oó 33;% H`Ik9ý.7d:)3)?-=.52J0:45,N3$"H& K/OH%4:62 )M93,Q+'%óA1$" ML2B(!LI8-H8)":N!$MI9!  W=%!J 8DCK,/*R&-3.4+>&L1'RL"ûL2>K2;Q\# M!(%7/F0-'AD=@eOxHG8FE== @eGRO(@26CA7)2üC@$ b8B*366" .33UP:J-n (J=2C:"; =/4LZF1:,. K96,#%%$,9,.j¬¢dU/ +<91D+-987.\N C395M*FH >N:A>HT*H<(6M9HOSD19N2DF1G-0H@!e+#(<5VAEY,D/6;L8/þ/ :9:3"+PO.BCI/N')6 L)/DQg("6N7.84Y:93LJK<00.":2l.H7)ff,÷W‘ï&¤K:R(<,6) +> 6&;(M-/&20%aN)"&/Qô#8D9ö "E#7#,J)5?(2.(G.&&B;Z#7'9'QS*7(Q= '(=B>(0F:@8cD'JA8E3(C(,(O5N(<x8#F#<úA*+$?3?P&E-%N/4"&@?< 1"G, R#"F$N*5C V-B,+e:B6+ )8%A3!$L0*:T#.#/A6>W;4=UH,#J(90+7.:=702YO#1111111-<3.:01'A5#C0 >76"C$>7A8;)BV" H='H5#P."(H'(3, X%%UK5;žpZM3B8,*38@*%'+.).B=#"50;( <R;#8KC-F/*&IOE2%:;C.NL:',%C#:0/+?ü9?.>Y>C'A*()$#D8/*’<3[./$-I4,F;/?2D[=RJ%2:;77%C /@1)C-"+ <%@,Q?&GT.I4=,;4?'?,&&4*+) <J743TGH39#@ +=G665E6+. +B P<=.1K35ò:B+?! +F1111111:p¦ã``V'F(='*'& 1550>B4R4O:32=-*30$9/-"ID&Q*@; 2(7SJ'!07H"3 .>>*Z( (41D!2@$!(.@*Q<,ø]7@*8.?O:GO\"-/60& +:òôI?21")<XÿM*-D.G<,+6\7#A(]D@`#1'*)6-C#(1B&Bþ-7N4:R<*_%`vG*^H= PB%*M6:-,YiDKW?>I=-1=8(399I90U.H)C*-` X BK<?0&*S''ý]0BN*7<M?<+""3(?>)6>-T! 3<*)f7D\VX =<a$E8);A),H"A0&#)55A:/K-C\6:85\ ,@YlNm("),@Q"Q !/GZ +LAC&:66.@>J6K,78&/c.R@?V.!0$:$Q?%B:B>!BF0!X1Lwˆ5%J`FJD2;*,=+$  X(T#2$%?+ ,*;Az2cY>½hX"#UH68f8AT=A-< ;>D; :44(P- &T ("#+K,37U->')DBG&'3/G5,.c9ñ> "'PJ;YT;-/1F8LABDQ"!@'+  HQ.1%$55735H9".J .45(778.=AJA6%H";>8"5L:-=4'85 '7T+D%"lS'I8;2(FB +D$ F5*u4%$/*1-EGACH7+4>+>4></F5(61111111.`+>1>O'ýC1'(@0 7?\_#'#>I-=*S2"8@SB*9M>: 5%.)=6ÿ9:?Zx4d?d0/,|=C%9*N</>6JG:&"L?)H@ ( =aFE^5 ÿû'2B2.)5'81L +/,7:L<>0+'21B:>J%%/3$@0B><%1L62F4* 01'E'I"66742a0''?>< J<+L,/ 2/,7: ),G@C6$5â/B4KC&/CHS6ü(3"\#?(ù!B>.!PJ ;2 CH5?28---@6!94,(C$R<1111111"~”`@KGF, ö?2$+'$wƒmN41H"J7! ,úP,$*V@48. QH3-8V>>+"<C-;B÷A 6<+cl3F - $-0*8$U-+Z/9/@C/? 28MCR"73">?G?D0!N*76:4.$G:4<I)U3='MnxG0BVJ 3"&CK@5.û1;&E&M?-K*6=)/6"3CA,lT3.$;9'@#M02<AF3&87#5-S;(4Y.@#>+-2+N!>7%():Y4g;C4!I1<SB((58!+*D$32:+`.22+E?: Z> 60;18C3/, )F*5B6$7>+Q27]1<-1M7KLO'QP>;<PHEQ;D+P^B&)+5=D@,,:C2D: ;79K&l_>3(9PC=I,M ";Z+)<.Wk !Ae1'A2-a,'-÷<;$SC&ûH=sHa!40:R(*"B/6"K(2b%BK(*0'$?Aa6G07D:yýûÀ×ñ1Q<*U)R'4E[;2K +.GF'2@7YE.S,1G`3*F0D9+4+ .J 3@H5N/BQR0F+2F>(%/,'G"Ea( +,E &e-":%-4ýL>@-0A3;0@?.>*6SK"9)Z@P;0,$A<7A"5,/X-KV#7,,2@43 U0$.2=7:L.I_Q>64B B2/^<'.).+6N;/40*E4;5!A*O:A$&EQ8HjYF;%&NQH<*!>1111111WCG&QBI.MI0$;.'/32"D@/A#4?63D13YB//H&/<PT">C$*525"VZ.CH=;8-,U?eEIF5>3+* W,0N-)6-! Y4;2"O 31D(C!@â0EI>9 <XI'6.J*V`C Kn7-?&/%.-= 6',.*-HB7K838A?A4H1>XM?Q'~$./<(984K9].#,7/?1R*?/"?.5;4A18007,?.N÷460!=?42FD2!9N$=3(;,?"3$()5J&)28!!0* /#/1>>" /8F6+;9931111111<OzϹ`<1-I):5 +AH6;G6=gº‹21V0V<@@13-35BSA:ô:)PB$)#<NQL67?/1L8<;L0$ ÿ#%+Q&5.BA +%0M40"'62>>B*F9+'F4/<33_*9$UF0"#0ò4$%:Q;56ï8&G9$'A!*@&^-$"3OW.-5YR@'3!>D?35'#/3",B=&!LRP0= . =TMSD+ (((< I<4H'C^]+D!::Pgg?R6 B/B,CU#HIAUKRc!2u21".2'"(-"%#ë@8 G8J8CY>9'7;. 3 +#VC&S_(c.:E95"-I"71<'7i3/":?^9- :2' -#<N//V5&"/F40;E%nsD€s6**<89'6VNQ„ºK.!5+<D0-BJ%G K ,I3+%m@MR:3 -5#<&7+B/\H2(B/J2K0„B}qD4c9"V5-?QX/;yH9)!2$E/"+`7~ìmññ†){=+.D3)?=-#B<$P%&/!RT=V4FþGR5TJ]-+(4(CJ(83 4>09LA07R'\.?L42<+Y,, %BAPK%D>O:+++T$L["?18.#696U+S-û! +1" @S,&-2Qa&'79,A*.=:!'O1*02?;5$'/+'<@1A9*$ !@'=0%!<6*4T=2DL0O.+H*L1*E/'%*<:CU1=N-1111111>(2FB4" Y51,5394&+&!1[:Ni/7+<+tf</+4645&5D04Dø+=:A4QBR,D84l'@F,4J+7 'I<- 4/JC&R904"/)T/< ;/:-=9ö:*,.UK*>2*" =G!B;L&` !1:@>1 +)GAQ.:6;F$4+$.!Aù'F@E:(B/=.KIk25&7)+=Z^OGG%X>'0)@=0?D/B5þ41C8"E=5,<'(G%.\!"QEG$.0#8/D/E8a5H:K<7&;2<E*4&:8JQ+3&%:$47$<U4U523 S1111111EQ$N@R&TEE<: +*#$=S,QL3c@%A!9>K)H+TD.E0>'XE +*5'9^-877"C:V0S4=O;6*(75û)<* &KEJ-0C%05üK9.!3HM!:A$.,H79V?42B?[:PT03DT ýF[@5F&RE#1E*H4>#FA9:37b :X!#`@00U7ú& "2-CRc13X08;ð&T\";11"A: mQ„qP'?EZ&639{*c8E6V(!:31:7PZj\GCK7-SI#CI1[ +GE7AAc7.%%).)MRPG+ +C+X!,,'RDM:*< *F)$ +#4->;7'/ C*N+=$E)VK"Wc08& P)+/"KEL!'=::7:P8&0_:9!Q"801'%NIq\|<SD4 #"P6?r¢É‹(!E*&4B:WMH[5$F94MD,T59M%'O33W;PM>AU<-F91Ds9x†VQ,>:J35GF19>>?.Hf55E) @28?#fÂŒSéäs$6I<Y-- 0+)+T)+)*:24. -!-*67*3]÷?@.@'6?91N!G#K+< 24C76 A@QV6/6M= I>=R+OJ-V.+>I=($ >8#VD>L*\D/c@7_<(!4DZ.@6N2/)"'? #,G2N-:!!.*BGG':R--#/-, WJ,!:::SC:L:1%'?C9MX.EH-16N?GG<D )'ECFF'!O*E<2"=.?+ ,)/&2B1111111CH;%9ú&9û9RPS$8l)O" 3D*HN@L6OS/N.5&B8<5"GG*?>B;ö3,-n@A0.K502Iü](<'4$E99 O3ýE/c@".`.1..( ôHMi 79ö<>9,16>&.GA>85",C>M1N"?N,,"!S>S5K5RD"0P075<[, .@9L=7; ;. )1 +P F8Z:<-,<#M3K0!N<5%94!6-65H!+*@:25,)>XJ@""V#1*"?$; +.-#Y=PP<07&"(37+N7 )"IP$'G@;456=1111111L[NQ?)/ +]3&;Pð\8:IW'T1F;C:H"[@R5%-?3+DA2D+,253,\'4"<úHC1#:$,@WB9>475)'3þ3G4=*6S6,+=G3R4$*E!NF/N10>!2;E12.6îG69Q3& .:2+Bü@&4#"779#W -- R2#/0\3/J$D!9"/1"@ML@&7;0î ,JJ+>.P(-BL8?ŒðŒk;"M3B b.+"B?:/InMfm©ß†dR@8+(O=.5dMTF1þ.A?7(C6aI @FBZ7 2#L#).HGF$=<50,?&+]=9!XG=F%:!T_o$CIqd.R"D@8B885UK<':,?$%;L"HO7)?>6A-&L=SRI;Y: ?)C .-1"n…g0313/$$S@4(*7THi4X<`;CE< . W]2}I21Nû!$0=CbNt;OTX7(2B+8)[ E7M,-O8QaG 7BDHs»Ü湃e:F8+"-&8<H3B13P:$H95@E:/+77ý*";F&4/#,E!9&@-1CE(4G YRB9RJjROu;/4E,CK50!1G&PN0 /'8<H'*C?( KIGI<>B+*,**(*I#7>/<O)C Z)+$2'=712$L E KNL ,3F+@V*#(T/= +06!f% +KPP8+R6(YqyˆSU]:EE  -IGZ[;G*DBB.J2%î41111111?/!9H!).AI9DS<*B.1/'"öE"3NU%nJ$/:>E]@626.* E: &+.C.O*UE/#_N$C !(<A#00M=<7.0=L"7-3G;DH6ýI(0P1U"5.I?#M5,6E>/D2202&=<257 3ë%Y+*-"@TD8?*)= ;7=D>Q%2V#/8(9'3P/ùX 6M+'3'23/ +W,,QK,- 204?/?DL":'>WN,h/K2A<2:M,:<IH3M!LCQB$2<BQN".C@(3 +U)3G2KE0J!,4&-)7(:A4KM1111111dI/?.=+G5^$BP%47?/-'+*H,/'< 8,? ;M-37.F;F>]' !(1F3&:.,;+,81;ABCTS14%  #-13C=73^$P,6!#8I6+Z77 *-?] 9A8!=C(0#=(Gý%1= 3K?7>38  +B/.?&)&>@ðd?=.(+"$.24:9 @4,R: 1>%()0<4#KDB^_JDD;.7=5$>/6&))C; &#@u)c«²d + -xŒE8I<37JS".-3.>&A2'-NNH.DŽ/)q1.#A.9,(&bB=$X!6F..- Q:+";34O4C:IFJ74;,/[N - <3C÷;.63 +KR2)EN2#%$Okc\rO#*>Ef3.EE61F; %*P.M.0L350.3ED1N +8$VE5I^0?$&<a1;hb6XL9&$\èA¦%`HA2$#6)('3?M:&B>RHES5ZZ4%.!59i2EV;B+2$E1[nd´®z|.h2$"<+,H ,=3;55M0>*I2*.7O8)4&,6K60KE$0,7OSV3'$*.^rSVLJ*B;0 )#\96? P!5F;&J9;+3=J;Q2H8)K44M/+3&// ';<3<r*6HHO2<:7<2S 3H'%!'5I.">8Fc@#þ)8S%&2S$-9U-@*+A1Kש‚”I7,AE4F=48-V#81<D+QD-E3D*1111111="L`+T>524A?5Hô=IP 6-6+)*40BA.5DG?3@3d*+5:1+<-&C(8++:0MS6HP&(l)&þ5+M.#6!,D-2AW(,ó3N:0=%# IC1->B<.<:)4-1;1/>9 +.:54/ #$.(/32G @AE6øa4 >=8/B$',0+W-,>9&97#03CNE4CF@C)D10; --7d*-'2&L;$E8<FCZH'TCT3-W­4øS+8)=G50"8E+< A9/E&='/+9K+:P+Q5T%.S'D: +0G=3/c60?4=o 4;,ZC.1111111[\I0$G:-0Aÿ+0 IG,=86e:)B&.=+!.  H_8J5#82_38118,%$GB56+#A!1>;61!R4()8#0#4:("M.=:4E/4?7$2T$+ø,!ýD=3I.H"H8N5Y$H^ &ï99?5QZ.ID g4%?)5C+:[KD3P['1Y< 64#2)403))ü*I=-035eOD!%I!  + ''-)!@8@.4(8*,(:20=J3$.96'5(K'0|Íý€ âpÖµ7>;<,  58% +@?Q6/B5-9N/'%1V7=H?TG%=((82A>ý>lCE6f1;H.' 2C8$K,C.@Q6K2lCNi54.Q N3+B B!F &I:mxâV< 92?#DS)":G9EH,9K/%b$!5%F Rf):%?.6+64=JKBeHF'K6I;b@,hXcÕÙ]=P_P,4/G06,34*RcFB*p¤´03%aG9B17I:6FþU/3K-a?•oBs..H>4VE@X7C-%2<:6OPG0+BQ<<@ -%; ( 7P--+=&$>3 2#`CV(!54J4 ?@7>&!FUPB[?C6JU<LM/: >'0U331G=7.3,2&,.I@&&>=!(6B+,/99&s#%aD:H2<B.$ +6"/6/5%S67'N,L2WO)D9XS5A9F MjÔ磇u{D.5233EZ;):",98;"HN6,11111111+2F'=M*5+:7G46@Pc=;FKV*<)6-7P0(/DþG"$i#K.9 -+=6VA/.-5>%I-0C5'")"09137),*=/10:$$1?.+ aDF@+3+1<)+5A3H95"49_RC?5)" QK& +,G5 %&*71/B*".(Q 92'35GL(( ô&&O;//,#1"DMBB,1P+HI9BJBK092/8<qz$6<HI000F>5)K(4 [5 )Q1'26 >7(EFB,(FE@Z?2@J87!H(63=*K 9 11111110*?0g?K0FA==(.-1A=NE*88@"&3,73P (#8<2?%9 <d8Q>/!*L8&H1Q':pI"91NM%?:?I]QB&2>@9 -C>>.W(&A"=2;&")I?MA=X>4#A$EG1ôGO.(l5!#9>4,-4!829-DCPH3J2::61%(J.0I)1[þ>53=O6*M)`4GB<HE6#BE<*@,<&#6C C-,1F j¼ú.8¿îƒXGH=g9R=D73)3B%O)9.'*,0*!/I+; :DA@lñ0"CôB2<N75#GR!-0?1?@ôI@&,B<:D8(A*+7D*E#&02GRQ46P<4OV]@ÍqÅÈTAa*-IýJ/R;ÿRR_,9N%8(0("#&0^91-AE-5 = 2(63@+4.!76DhOZ5%S'CgŸ®W7.4I0 2*//#! 'AID! _1;—¾¹2?9%]>U:P(/4CVA6BPEN j?6T.6S0S*BEFù%;%q/D#B*[%52S0)Q6@H-51&R; 7K/0 * %>*@458=3<D-E=N_4_)Q>: #92MuM2Kc.HP7BGB5U3=H#Z0O'+W+")J95\6(1+2/ù"/1*41+I$?_4:1;5ü17:9O=&.'-!."/!LO6>.R12J-4G"QcÌ#4çÂÉyo#(69GV8 :fE0W206ùB/;17+1111111IB$'[1,6.0(8=G277S"7>0A&02"0@H[*L*=;C3F6-> 8:2j4W.3;=N * *.4 ;GIH3(&1 6G=(B*5-'%$"6?B!.#2<N-7BC)2M'7+28P$26D,#($W#5, 0$þ%(#,TMO:O[3A <Cc-%0F>@,/#A*1=@.C#60,3& :(P 2DH^,5GZ,5?H“rX5)D?-5Lbcgóâ39*@)/!LP1"4)OP-D)'3ÿ/<;6)8>\T(?.$#?NI4$F #D+%;9*3#HU.11111110.C4 E,ARH(' )K7#'"(=C"3"I'A KCE(/4=C "&/.-1=H:AU,÷5<=O@H6$4*, D,D9D$I=5.&Ppy$?"*/@MD û5û(#5*&>4@:ï6J<)j?O(02(!1<JMG22%7=-+4$6$,EH;=)J:<B9%>4A)J>F +8z&B& MJ^36;'7.Z8&["#:U2:>^<(AK$B50;>7Mþ-52Qý%*91=2¦z £ ¥¯kh5>kK *C'(3W--2<HU\)#;4J1(1"ýEO( +,@C75BQ 3C$$1F0C9DQ%G<WM +?E"7-"0GD9\TpW@J(L  6ø%G( **YJEíñ€­9 ,2?%'U&+$O'91$MWY&-$2"42B1E-9R'=>O4;'T!.3022#`N/;K) N^611H/"(G-N0!&ýY B06>9+/_/qZT8%4B-I>N +G:$hC(/F#L2,G9- +3(5_R%N9I*8.O+%~;E.:2G% D*/<H9'1=:5'*6M1N+&G<%*!1CN0%4HL!#?NUD4]J1=L,5L?#=åO,,K1<&FM&)S66JQD13EB' 5')+/8@%N#6D,2#J-&9$F5650:,* -3P#CI;?H*A0;760.<'(02>$(0?;$CM"2!4-@QôQ6'¼h*BDNI7'2AS135%AG<9>>C 3:111111153=A5@=!OY?b-^)3NH)2'@B906B2MB="%7$?1<45) ,0Q1 @@FB]L/6F*!(0.$58J76M:9X@>=J ).7+$ø3($@'"N<>M$??&+I9"D&Vd40"<&:4S>)<&7 456N 8W-[;, DHBI <>3<@+.-+)"5.G/=1U1+/LC&.%I$5?"&A^u"NdBG41*UzƒØÕœ]:M?"7(&ò416>2P)#+ù64/.>D332#>-)/3"I-fþ,D/,H7485:6;KDC_#(6J!511111111Z '-%.#2& :5A9306%.]5'="0ÿ>,*@'7E>zø.? + "->^J3,ý,>(" #0&9>6VHJ &7%  /D*1Ty£½·7g"53A:"2D*H=@." H0,Y#$;26:$3A8 :)R2E=3 3FFX6*K"(H&5!V74.*(+,#Q?!-+3!:6F,3> (-CX'8 A7.OG,>"3!M 9.T5-BEN/KõÉrÙ ³;Q_1I7,I?.$I)/('@Dd±+<E2);_K5?;:6?$->PQ007$+1%J7>8'>(E,3C8/"xJ1i.@@)+?-1 !&93"PA*+>3Z`úîC'@ 29;'A%8TYZ? ).JC744%<+F0U#>DD!<,Mþ/P,@:'D1L#;0@5NE!a$" +6)#  T7J&F88O37+": .ñI)6D':$3/; ,d2/*QUC*+"Y&.=>AnN"/ NH;_857?JLü5NJM=+B7/ý>1OF!<49? +"G@LVa'E;B'K>17íJ.>6Y'&$/ ]4!/MJ:.DR36B&,=/,PZZ, <&6KI0KG*6&Mg,5H ,+"H\)%'!2 E:<Hù5jC*W)%&9DL/#,:*6I&3- U2&3:5(<KŸ jwO¥|B1)J$W!/2G^C>).,f%SEM$1111111K&%%:@-,92>G"FH- O,\BJt9jG& (484;(A*.7%7*a.6" EFB %ù<S]/#Z@159=!(%!þ!LXPF/?*4:**7 +4d1@I# & B:+=!E@õ\?B3>M27")W9=B5h8 GQ A(2/O943'`W4>S:/;& @6?2;7 J34>/>),2Q ?091"65F39niu4X=&<@W8Y)6Se/7L>!5*2I208FC:L($?);E2=>+(&"N&26E0‚;O/;G>)6G#% X@RF4K'2 +(2!1111111111$";,8(.T E.C%8C5ù>G2@U3"$4H)/%N6(C@!D=?D0]b.&@ K/3&-<045B0>&I ;.ûLD]Q70HL¶ö½]V;27F!(VUE÷2H) 858@M*%B'&<2A-3? $C1-)16.?', +="I%A>S: S>78c$X)4B# +&ë";%.N&.O83F=D%);"/)#N((<LIP'*+*?:)Cg($B()=LBŸ»‘¨–_]J9;VFK4ý,D>9/NEHB4(KGL2M8-0%Z:iB&<-%$2*5_/62#(3Y7!('TF!>:96JM!T'P3+'9_JVdc3&>.(.- , -`+,2@!bPY:IK#^7+<< 2J@9)gjFC(0%ï65L:*)/.=9/) R)&0B&Fk'üS:<IZ*3N1RS(  +$AN8EFYP5'A3KW,?1:F.507H:>57<'O@;)N 'J0;=2 $]IŒ‰µ•Š\,6])@-49,,))Q/G_4?H$E5IC"$!PO(((!2?.0)H2AEC`@-4F(;;317b F*DM3W>EHSG( O:TLI'#L/'F2S> /+6L6S4N%G.>  <E-G)-B24[B10F1+LBEE.&26+G2C.%LM 3,/66-@?A-E5rRF %+T45D;GÜVsÏL,*']1!$0(4:J9d;2E-D=6WAM1111111T;85DYGV,/E'=I2UE-ø!C&7=Ji|9<7'.LD..\B6;"W&%f 8 +8,OLO+<%i9#&+*G/&2#*:/:> %I2(6`L*7']7>/7A3H 0 @' R3E9 CV"<(35 HG$ +7&0(-0I8R&C'@;7+F*@BD. $I8.L@<Y/% 8R>02@G<1B1+(B?aT%3#8*a7K6?6)78[@Q%8D?,!J=7/:>Mÿ<GC6D>PF"ý49L('Q&C#-I(3G.H;88+?HL%S?@0>=5DB/U/%,1111111111ø(-J# A/<;)&)/2UF? +62$.18 +F=õDI$RBZRR:'1Bz1GD);C>A%=ý.G'32@.72/Hÿ$2G2Z_îQÐpa+8D,!!<(:8HCE=*`</!A,?)%)A-* E5]*5. :)SH<*0A(# : SC+$3AR0U&K;+*"> +PO6, HA)"@\D6KS0X,&K5+'GN $'4:û#!)P9C2m*?7+&N%)^_BIn^9LG&;K.A&15W3&53G=>.&.42]>V+88(M;7&)KH4û>)V_X<&-D<'-) F!:1:þ6'%.>O{qcSMDK&ø-A,@BC@]K:G48I9)028(?3/<4$û>9'+ +%*8Hs_LC1E-Z$,Dë#.=0(C@û;59;+9:.F!'5B V<=18>Q>O-CL0KK"'&H1$5>$7=F%%+5%)b45(F7 ?&R3VE(<34B:0A%Oo[|ZG2J13"*=L<8@(H%XR+/.M, "(@.h2@/J<(2C8 BG4'7E +U5FR>31&&<,S"L*!`=.FB539>CJý.;Q-KG%7I^.3J69>8#,3)14FI8*@):L$('/$3CU#/:;73'FWJ#X5+!3,/..&*#@;'"a1(&'2ý2;&K$1#<$ GGþ9,6Q_±áµ’nJ8084-9*++0E>'QbB*=1.1111111GÿY#G$,=C.,!5ñ/HQF:'1Y,(4 ZN>RRE3$6.H!02(%1%mHSN-*M#IN-6'.7'@616<C!98:=(7U04>*W'1#;"RB95TXG5-C8eV_,U%284Y371%#d@*) D<) ,1&(I-K$8#P%(U8E+?1[ 2H;)NDL7Y-1?;/.M,%) 9 @oN8 $7,EO.@82*>"C Y9+C0J:7B/-13D@=!G@C>D&A81]6%ý-!"- VR483 "6MK€hHWE L3/;<''$S9,0d)D1111111111"Vq*QM5#S['(3"Y F(E<.2896#)4ù;$F6I61H!."GA!M3NJ5KU98k8EG6% 9:(&0#ÿ(,7%S'1'7a?,S;Rzi˜kW>@8M320TX(G*%E9-@aEH(5D=9$B2C,3`CCÿ@PI2B*[+%/:65B% 8,0[[3a.1HJ-34!"E!TH<2F;Ý=F-AL;9@I*.X4 0#?)&$(0.H2@5E7=A==8#Q7LQ';G0S67+DLe1/H$?)M<F?%V0'X)_IQM;:.+A P&2:"(FRXs**e )> 355/J0T]!7ô/+529bxZWpU,06.@7KF)A2T(%*;*)IE%0'%&,*%L@7V77AQ,>TE%E75,! <*7'#L/(L+%û-ÿ+NW<21I8+#=923P2102MFE1I"@,KO+/G.-+=DAN&;RK'd6 ++ !&;'R7#A,&1JGG>"XE8H>Ž“6YA!<LB"L56\TˆD,*226 à )C8;-4}B3%L$%C/&$-6*$TUFB8/HD8+2A24OK5%C@ +3X*ZAO&1#I9IET5NH.P,@:F HB%(1?+(/8$:KW*,.4'27,,(!9J8(=M; /+- @M12IK)3a<+:"1k +!UJM*</+"E;6+< 8a61V™à–¨{= 31P-,AoF/3 30LüN.]>;)1111111 )*180-1c1O!D5-AA> O'BT$"5'"B4+((<=W*,%8'V 8&6$K(üEI8D8*@2T?*9j&/<5#.(`KK D'5_P@4a)7 GI70")<+I[<:#0$0@. =BQ2B9Z.6"13G5iBG(12EA-F#>A-8(, -#$7bS$þ609<$5, 7Y.4.ù*:23= 7,>639O)> #bM0%O8#3]0;(&:Xø!1%68U*#7 /<@ +aAFL ,E(<;=;]ª×ª£_/-<O%3.$231;<.2E1111111111%;8D,õ +B *51 ++3#D*EVB,AN+K'+@M2<D+&DA09@?'.G(&P  ?ùH6)1*ME<;  6*2%FAŠQ5DJ}J$Q7+M*':A 46?- ;94-G08a>%ô".-J3S:2&..2>7'0 9$9E D'\9A4E2> P65[3K,'D,Eÿ#3,1>:BG==('K""/$=-90FHHZ7F[=R;1CFCI3W;COL'IU-$*1>G@A$F0LT4.;RQ;a1"!2+()&@:A+IA3$C<G<[5&I=1F90W+_$EDG3AV:qxg]3>\3*5.# 5F?MO/-4242UZ(K>V:X<$I:-*]!J9-, - A?J=,S#2A!;6EF&649>95M;E7!=7-T+AG*),Q!512*HMF.8]>;5P1N4<'R=)E)83==:037+CA(Ra*?[=%&)9'g<U[';G''GR5/BT>M137M0J>'"WX"a17)J0,4;L40#"=^-WA*@n/64=h\B>S1"-)!4c?JYZPx??5M74J#;<>9'>S0?*-K2$94+(&>5.;)1"4%'D?;96',35/$!'.)/7 !T<%0,6?B4823B@+()v_2"6 1<$6K#j‚|‚\$>ü/>EHW1!  6G!<.305)HTG1111111270*O*78#*931B3@.@8161"N059,ü--+!:N*2K"/638.(D.2C/NG:*); .=KI ]5?2AU")!5/ $@Le1 ?7-6<67:Bi17;3?F;B#:*9<(81):2%NQ0-EF@LB5+CÿI8]*L ,B1/OED(=KE'+?890Ho7&W$.W8:BLR+8<7I@ 08,08+"S@/.L:%*E0(.;3",:ôP4''/=,';1?ü ,)@;"C0÷  -726'D)1WA(g‘mÜЩZ>/H[_ +(+I+#IO/11111111116M*U=Q%øCü48!/62>-W1.1((+A-1=98A3:2@!.;g*C0^ =T4=*T<2HbN=JWþY_833%3#?2.G$KP6.+T6:@CAJM5, F+0B8A<>'a:BL53A.J?2JH06A5E ;2A!%&!E.,30dKB_61/2+ M/,(6$=/@$ñ,<# /Z(%% q.$J('9$*He723*/'K666;ZD/65I*QC!' %?C<)$ D<%CZ:)&,7E2,=/M8C4+V$ ;2+032""&',5'(*'M97<ùL0.919&8=2O(.>%+ñER1;7/`—†f]3TWf6K,J$3=8F0,"'0W=Y?Px=,!=N8\<15"B+J5 3:A/:+BT'$( QQ VMA2D"J;I&8+-S*$7#*6N):9f31J1,72*;ó; 2þ.-<$, 3=C02G/PB6*?)*'5M>2I**`hW-vGJG_R7DAL8+M:?/'6:!:'E7*!<Y'QU%R/*6?(/HGZ.DC,Z=<4?:B<;@.G:H/EIDM,=&C$]1%94pTKHR07FLFVK '39%G+C+02N3B;9oN'84I%4)YN\!-=8I@/0;;,  )3*J&KJ+4)>F$2KA$4"$Gl,>#4=4$ 4,8@0,=E*^ZYCKV ^23?@-0;I:.,B2<=,-111111101QD0O@6?#26ÿ^42(!16M;TfI= A)5MI" L70* >2?#'M-"9>1AFSE! G3A.((>/;0ü85J&%/''  1LFXDX;3453?6N8S>A#'K*A#<2/H=D;4aUCþúP-D>80R4=o6#VK?2V5.E"4G(387E6*T0$þg!@:)OSR.9!e?)=VDP/1;E)8&_H2:,þZ&'e1(/.9&6-J Hý +G4_+1BR230".&. ;J KDˆí3… ¸W^2HD$ "*1 +V1111111111Z*+%'(9$@8*4 Y%T.2)!7+N@D09-:@þ,)5Q=-/+#JPHD^GLu8CkG7,?(4H,:$4..B +1K8YP$E<@9C;.KFFHN;%523)2TLWSD2)(2*I)-,@>Y1*.BX;;A%cE4/=\6Q0#%:,!F…Á½‘X0L5B5R7.8);=<(/%'@@7?#(;339#C3;1)2B.4/!':/;RJb'"E.>3 * +D6LTU3G"<R9H87L;(#K%=?$6<B!=2.99; 1,8G SB/>0#UT1C_?<?)50;G+/H/2!*#!H#3#S%ôøq=7>+V#&#G#f(U$(:TX$A)LcA†M-(OC027E<+&!2&,Ci;E4K' G"&BIM? C0MN04< ,G\-&N'"AHN>N'72I@$I;[);*>JE3-'+L#2O2VA3F3MG.P6e %&?M5"X)C=7V)9l\fAA,#aM46&?$PW(CZ #hB0=H5F60R-/(50N-79M.G!'9$O)$3/J[ :5+,_+(5,Y>?S³©u„C/55#9?-VLF&;F-6?;)<A1<[*^>W!'0WP!4(*D4*6/(RV@2+; 7/1@*D.&2543ZV([B!=3+/+70NF99AL31%@L)6JEJKWm~&2<&+@SV2%6>" ;,E=+9BL"1111111A/)cR=1%D$7ubD05.=e=',?%ÿ4;4C)2&<L$I$.*'2R9BL:%60B!JhX!L"[\%**5A2*w*4E@!WL&/N$DP0&4@;A).C0c$5(;$?/H4L20()#I)PLQ+ C%ü9G5*=$!B12=M? @F!RE8>09F,A+4<>&*63$<;&+@?VJ5ET0>L4)8-+ø/?(#`;9NT?2R4*#[:#'/E ((4(NB':.,(9(9*-$;2,G7=(;AX23Ipo`ë'Q ÃVU#@"?3I+<B'/0,1111111111!4 -'"5Z:$;)4<$O9#3: 0/GA'I0 &,8,6O*%6> _7/8H+'L+L D+I:<:G=@!5(A#!/D0:*V."128HX:`4=2!.0*Y8Z-4*D.&LG,07.FA:L=3Y.+0D93P1=$9K5?"5%53ý62+;|¦55«¬pN0DF>D)06ûZ)4>iD"'&O+"7"ý>3BCM81>*#E +/"Z/4CRP1AJ22.-AF?-<=A=L ->A0=*IFh}520,#;û2:'!*H"#=DIK <5S.:38I,A"#<*26'XFö&G*3,BA58'36m5»ŸwGBX4G]5IX4J*O=BK<8ÿO7!M–¼jo+$AM.ý=/271'75#%>g> 8,4EE/743D ?))A 2B=e>HA+GH= +2 1/C"ID%81&)C-&%Uø$<5AV(J94/&>(*/#?+Q(8B6@Z9^&Y+A0<)WU,`;V;R*,(!A..S ,B[1.5o%'8I58=J) IR&%ÿ:JE(O>0QB%û6>4=k&:A, 96HW&†SR#BA#/;"8OIF;=jÑ€ÔpV<O0 "VJ$OJdG)22Q:VG@Y!4H#AY'DYBD1>BE,')' +6:O$[,4N 90&*.:5-1@0&)C+7$35Q[S5aKdD5'".9$L*.- ýQ65WL6=8 *.Y6C7$Z†TI9.1111111E$&@1#;5(77G&+)#>!&E9#<:%&A7#A?C &m;./L>F,/>-E'<0<4=5FFh14*>&,E(,/*,C!&2I"3%ú>þ08($Q/B##--=*& Cd9T!88B*=($,J-R(+P/K%D9JT]\e5G>30T3,?--.2 +%1?6 +h4B/=0C'2&D9D>EC0G>*>:5<3/6L83F 8>)"4.Vu´jˆd>8HR*FV/ù7F;,2%+9L!9%NI*; 95)KS 9B/$4,3ez¾³Ì”I]L(7Q ,6),F=C%'1111111111930$8/)ûHE X<JF"8LA>$)SYO(39NA<$,GN()C6FP1FDA?3*F?,^#ýK<D-4BW5<03>0,47O$ `$6;4R. +N_HA=L96H 4='&<FO/17)FUP/F1.)#D>+4=0?),N?STfKE5I294.!99*P¼ ÉjÚEA;""0S$70-Gæ3K. ;:3I 1*<>8ä-])6QI.'^HL+>?38NVD<>97*?!+'W#*LD1ÿ)F/1*,9%=8EV>n$!%# C;>';@ H542"8+K/+>%+6 P&7SeZ@ H8&V,-7[7.U!D803:K794+DO+B0FUOz@OEF3L% 59:*9I.CC09(6.3UK=8Z4:0:**<&3 06686.A>DZ3+0&K) 9.)/%ÿ(?GA"#+Bx +(%&6 A 0(GI6"%IH%,==A7(@2M1B&*W.ekK A\<. +*-1Sb1QAB6B(U)W]y,I;<4m7!9*B8>PBR--9-L4 9&AM.59=/50P(CE!C?'Y÷BFE6'2õ<009G-'/GHD*L3NJBa¥ûPŠHR]EaH7g34#.G77Þ*W1?&L4.80L+A1&);k+5c;qC7HÿC2-%,I;5M,FAH4+)-"(C<67))$)(NdP1),ršf>4!4.QW'-.8@6^ü2G%%KB[ A(4W-4:;/GwBv/AJ>L6?<31111111;1#A(&!I<A>(J(8H;;O+')2F64 -X2!$."3A-"/)EQY423 +2÷I* J<]9D91=7%3):-07*+J%06+ :.17(N; +?9#76!/)4û;îME<O)>":'@&#1PE?(LG6C.:)-%Te3P ,8A!6Y6*8[3F4@1/$<+_8NK7(F@F)-<'9@?a].Dc-A(24(eÐ.à€UY'L&0?+"6=,/)/ *1 "!X<P%?= +@)D"HC;W8)!%C*UetfnVP-A: 319.3#?[ )1111111111K3?/464')MH?0k5q23ý3O+8X?A .7"2?!=E%3BI&/4.%;ûLk"5& /`=":*5I[-0*5->,A;*2i$-#,C50E5F<AJ)26<6G6?K2:4%J(.77ù7:85G5N8:C&NGJL4R}V\I/6#01F÷3,3Ea¨î +$ +€¼t>  0:/1[?7+(9= -I3Q)XT9J7=.C4>0K'EMV?NF?E$V)*6,\CøBI<A>%&1;G 2!E+B$#KAD' ?608SF5784I&3-;0!>Z/6=K<B8."Y5&71DF8*$R%.+F00QAMpY’R;(H@Q.:R<40419 '"!)$ÿP3dDJ=B%'.00N%!(2#(AE6=<G#6L*-8I5 û$C!8E-DF+0(Q"7[O87P@"X=><?3<?('%+)'4g>*0F8>ÿ4$;@/7#(GS'1!ü6 9K"Pa9dY?P<!a7#6OH>%C 5R'-%>;UAVDBKJ1MS0ZB>!;E.D.;(!8&8F8(./:2G3,=\$9#.'W&?(1PwªÈ*útE&E63=38R"A6H=N7#L2D-C:CBN7?28<0)745&0(,2%5I?#BQ*B->0A83CA3424R=!$&=H(!U2-+NOm38H-8/ 6SN$!!4Q9dC$RC3(80_&+*&_BcaE\LHCd 1111111C1)0*-8:P58- N(.'O'5"(B!1P;"G-%7 +Aù8/+2i3,.c+9.H14!.$98]1(,E-)5940%JYT5-1D,5$I2jC344=H*?"5/1B;.?;&2/./H#H69!<2B5/":-G$-14"!/=/H @95%*/N%35,6>KIGIC80D%'H)=Evn>K(54'/26PDý2% KAÜøú"l?$?.H#9'3c9<.;30,)4 U@&$A^M9,77S50:4;W0})f(*A73N. 3-!8<1111111111% 40)/N79%T$:<L=ZD2Q(^R=;F)F$ó%7P.SKA$!FMO#'92P+OüG3*350+BC?`@4):D<(CN23.* +-g=%A!(.7."")\k)ú8W,86#"8+I/04('@H7.6<:BTÚg^»i\,/+2AFK; C,B#;G51?&4EMR> >+?II;`vom8J:!($)+"i#/=06!#I!?3'6=B16B/%-+8/5J<6;D:-r.K)*6O6?HfC4*%fM76R3+!Q$# A;I_$:::N.7%-9^'&L?,0 +N\@-ý(T5a2@J7,<-)@BELE+/8/.AGB>&H CQ;#1A0?6f(3-&ü/?B9=FW"!F:6T"E0RG"N#L?24"(3.?)51A@;<J=.0:6S2C1?9$C7<CC0K:/H9=F4C)K$.BH=F5%GD-O +%  I(# +B'3_-!'".)T5F$-0+4^‰>D1 H+FF`31+ýC5M(7-')=AVX4+J;E7-^0'5=mm¤”DR\4&)Y-c:3%ûC;;GTAQ1 +4!I>-6;U& A?m%N!''X>&5CM(2A(6 /9.I/1171T#5÷?, ;$&/833M9&& -#3 CE)>/F!@"E,*c"7Bþ:<.> 1L)27H%_R2;;!)D+?11111113(')7=*ÿCUSGÉD=<,'>693*)@9%+$/IV)%(N)5A"FAV )KE=6$4&3:3 $a87(?/E*)+>9ö#51< <Y +7G@@B-@A= +, =I .(<)=-ý600TM+# õ<5!@'-"E(14?-1.>û'"?C:/!;H-/Q@*FF>,K%%65)<@(B3'&DV?B:-N#%.!=0$ D8>H C>)YßCQèºl4(G 746>J&27jN@o.IK) 6[3#$*)0628,/õEG!K6./(J"*37$H7'M%38()@*-!+I11111111111?:8</C8Q f3K ))#d@N!1:<8/$0%9 5+QN,P\C6Mþ1HC !<4.';"+ 5Mb*0D';T +>":2QC-S<R"/$-*1)63'% F+V+4&-%37M7.?B,>)N%# '11N$C=ABM5DF @*H<g1?Rr?_'*9@NC'*??:7/<-;'6-17#?û14ø( +N!<V5$;@AxIU6SAB+$2H`N5ÿ9HIB?NG*!% #K G77?j40+3 (#U#F(E@',H38@8B8 [".Rr79$4PD,,>2CV4(S<62ED :V<TC""KKE# 01A5>Y<U'FB$.( B&+OF)KE"V:40D#K1>E<,9I7 9>&#7D8'E,F8%W("421=*:%:FM;.%BK/17C;!{"R.:P7F;;"j G8F)D2T:[4'N>$/Y-BN+6*D>P)'37Di(TF1L+6/0[QND-#C5-651F3I4/9;, H&!HS4\I343RR: :2/5<4=S4(9.3Q4W/)#"olgc)j.6V7%*T/^zZ1C901>1SOmO<C%545$8!#%?"5("g%G &(""5DE5W'4>"-W7"C*&/?0b8&<O@B1#  +.3D+'6A4E +': ôHG"*#W76,$)=B5MD>857 Z)9M1111111 75*3!+: -$;)BO"93.&>.> ,7B/)ôA>B#SS90A/ 4=>;G:'%.8"+T*O%d27-#2G5/+O 1 *6&&A!I=MJ5;T,(&:H<1K 0,</#=)M-Z%V#2#<,3 $ (Uò_+.+OB7W-`1# #!L-(F&0^E0E !)9+8G/81=%@F4.(6>,7?5L73E1-gn]”'SM,9KA)*B8;11$9>"I?7L%BL+)1,M@C,ZW-,a.1R/ +F , SJ*04;GOO'1*>O+4ö1111111#G/,:&5X=;O!ý,O/A>%@#);7)+=6 36H?8-GF.G:è/FV?&=.*? -$5)*@35@O!28:g  5ReT."*_@3p-Z$=&28ý+%'AD2 +>5øF&./N0= +]+0@@2C/+5+262);.>(5*J16FG&>IZ2=5:?7^A,"B2S>40!I%&Xg#FJJ?G>SJ<5A()  +<*.<2:8=)A=%-/> F4?2?+($96NM>.,fB /PE*8/"&*P,34)3M7G=E:úP;gXB08JN;XþRX1?@69@;1Z%:Kÿ?`:hIN/E"1%[5a&U7'&L8W37I-/C=72B%"-ý04(>$1!8a*=/0)! S"92&*<W2AQ@9 8b/C+%B"J2:36EH';S"0"F1Eþ$$AD1Lo5:0N%24/7-T1"r-&HZ@17! #&=,;4ûT,:9AeqTLP/X-J3JO3$5>5=2$8KD!2Dd1WK<8"^)?/?9L/<583@-$;FH1ZQoˆp;9E><Q4;3LLE7L+%G,QQ&/UER&/H(>\#%CH!<2X$ +N?)(8!<=%34F//?6H.CB;,AE *LII>!W-/!`-#'4+?(0E(G0K%C!' )='D4fD&,4C8a,I9X!'$5J$+6AAE1'7'@=R1111111'3<_ Q#; + ,%J#;C  F ' !&08q':0:*D%!: U4+Y@:F,G4'åQI9>ME.4.@ø68 4E5GG1<+B:+%<C/1J(M2> H@&Bc 0>>"!W9?5%'"L=;<@D0@.S>>4% @M)? +A)":/5)*P  861B$R.!5&S7*0'H))ú@5!;E-7?:5B04@°.;ã{:@"? "4*:9.)-3>A $ EK$EK$>$J/H 2W BGX4":-@"<=/Jó:M2.0V:430;?E<1111111-1+2/?X-P./5T=48"d9^T8?#9?'85318<& &-W f%6.RZ01'<.3?'(#?JL!)8X=>F7>R,A 5…HCDBJ3 /.+:E6C*û&W&"J#L4 f.0B/,>Bå,++I;G'`.O6@3a?I$d&"$9ðAW,,T E5I#@,(=I#W'?Kn[-+058#(:2I5HE1"*-b6/+*BC+.D>;=5#**Y !> +.%/-3203--)!$ L,NJ,3;5_Q4/'6C=+:L")46D%?+M+,(/8|•%"5&& ):.'9& &8=",#5RI;"CKL(>@0 %86,/C5 /1I,9384'.óG++!# W] +H6: <) Y./ I >O/B9/+K C, <9@F6JHI:'R7GS:7DH*)Q)#,÷52!!75O<9#=]i/&((/F3aaJ*+96,3CGB(&*f7< I,@##.@5@@ @J*WA3A *!71H!4FM/*285@n4LL: ^&;,%JJ K<:+=7_B<\U’m_LJ093E63_,IF[P773aLQ4D);.ZA6> 2N;76,-.0?,;0 @ 54*@D-,E9l3)$5GL+)E0$=#.,J=DJ A:R4?@/@,,'&*C5A-0<VN4 K(2T)&-, Q72@6A*C!/_451111111G K=#5(A +ü%K1SP*%5K*3-7K2Mf=HK2-$=(R,'I0a>`AA%2E /NH"65Uid")1,A47227F*B1-&/;2%AO>(/@\/)- ++7b6L+%?%5$3U.<*SWBC?5! M  +("H:/A-'!?,.û-"íT8-] #E:;HV-8<C.)%I3A$2#DS[/+J 6/%2FDv´ÒzkBb+.:/"D6DCAT-@0>/D<D 5'ÿBN&()#+& //CH#%%,T"&"6Z43Q")A)^80*-U<%,+N11111113I'G2%!&8C3 PL8Q)M) "Ne" G[=,S3>2(SBþL +)//-G4>A02& /5(G-RNM:*<,};ƒ5.K Gxs4W@IEPGGö@60>J7HMJx!7L(8&>#J2<+>1'3J:[.41(4?><,6@K.F8H\Aa!GS.+-589qC.9H5FOb3ó7A'*=:bdb??pPD10@=,&7-:28%  )þ1õ%?(=8>-9=)4CA;7M'&6$"H2>H+M/B\]LC8$MK$8g*6-;/*L9%VIK.",3';$741B)+FL)5MM;(H1)LK&+]?(>70>W5%,%<1F/D33j/Cr)T1!#90V!>8(,H027aP<1;8B\(6J<C:WFP$R$8E$B;?,:?Xù%((52æ(%KfP<763&8BD%;R<^.[<*6!TI~II0NM-A)8@B# 9/"/A?1OHJ4.9/')41LXI28)B$f(%-Z),;LE6)T33A+4.?XC'<,$\3~4-8*$+2A7Kzpb¢=<1/=CU;L!JF2=7CWG> +q!Y?)>SE$*/+&=X_= 4D6"ER=1DD0 @ 5/0#7<($,."+=;"-O%C9D+/.)=?I8.4]<AO!$?:()B:>-'% DG2\M+?a-,\=S@L:$81<'&<%+5$9Ct0O +1111111#E9A;N-9%R4$4@Bn7+5@!!@KA"?M,9B.+W/1E+*%ÿ$2'* $C9=+J20+<3-9T2[(#H8T$2Y&"A16B(64F-+3<D0M*=.41)381%O#D9O6&/9I5*L$:A.H,&2< >(3IG3!A>,4!4ï8(*-,#/[V-%HZI;H$IH:* AA ÷GPE0:151A*4*/9[4/ 95-,1JH1/;Wcf[NA&%=Dþ9`1DJ/$#)F5=>?8QM*6þG< 3=E5GNE&#þ,/15;(-4436,)" )Q71111111S"0,#&K1H<E9M3SFK!)6 A4&Q>)'%;8>I6NL#.V.@p_2þ.G&%.3+B7'+LD::i!;4.YBE?)G`&CA734N:SBP 8:G gI8)4#5*Qj+$+û&@7I-.'#"N.B3+.*$3.)&96%80<(9(C<(QO3N$M,@2K?3=,<b8'3R&v6 ( C4-8Ti[?0AOGF>J4.*9N/9A-, +-C#A,F#4:0<:I&N,#;SQK46å-5@<>@*A!/XR4 4A6!J@!'H"/35DON%YjK8FYJE-T8B&>*<NG@75H:.;*DW=)?K=PøB1   eE%G!>E9 ?M,ü3O.#9= A9/2W&&+i>=!"%/SE)06@?398C/)/33 JD3B,%')4-(#=' 7'<?F+.F&F*3'9O$JO8#')LE:LQIM)-T95V641o8A%@< 7?oD*<'PSL0W<-K8P3K!?4VM~F)D@JPK))7--GC†A-FT4;Q9AL/b%"(;HCKJ[%]33,D?:H0Q_T{IVH)bS426.RJ)8%;9NHú,>+0%82E(4>2C-,;'K5'3(6 :=bF1SA%1ü#6 8Rg5=ù D6!#9DM4-, A/68X7 9-,:$,C,,>;8,2%>JC+ &(M%$/8@`G Td8TI+?8$:21(J=%òC/1/N71111111M^!@5&%3*N';(Z6,. , ?Z$="?þ/0 JDA/#6/"+2'G-C5%>G-A>.:;T;-+3,8P=;%<#,?%+0' %*Lï*!83=kD";O*ZBA+1',4=IY-1 2J.@J-K'BK&7W/)3@/(/"1&7%$/!9KP<>6?J(&@5299 '\CA..K2!A&':&8G@C/ýÿg1!+HEES9lS*7<43078 CJH[1:8M,MKYdC.K1-L$=A-'9^:R&9$N)%1 @>(T& ,'A,$G4D#G(;3:KH1111111a(Fj1>EQ)B;,?@)@:(6$4"C/!0DA.<- ?7 %50'F 4>JS"-4#$= ++H;8:8  +QT;5#MSk@1 +Z(JþA6/„ "H%-)A^'><50P&B%3-.=G7\I!6e888>ED= ,(< I=  d*8%P@;.-EL;"8S h6Q2HA3* 6J!C*OWqgZŽŠ‚zW‹W.U,?+"O0K!80 H 4((3)8%)J;I/?E/#.?M7-!:6I/%k=+52"ýN0/GJ>N2>@)#'E=&&73QX{PZLB]-:*L'0". ^#D,1)%/'<69 5/45%BS EC4I>D2:C91 L0C'9:<%:2'@$=  +!!06/G2"E&>FZI24>M+W$9+*95)J"<B'(1-:+ +Q%c-8P01A =3@a:A$;52==H2:L:8I@\2!/$G0.Fk\'-=T 9.L*\9CN*L`E' (: W-84H'C$'<%39#PI68%ÿ+Z@K%rNF<#:1&I!&8HM9*FNYD8!)\7T@Y.ZVBIC-98N6)D'"C5U] /O#2;Y+'($4?A "-/*R/8`7-X@o#4JB'(24?,3(;?.3B&"+$ )@*LVV&:'5H)FC11GJ2%53QHü= 5+# -&Ué-GU>$ÿL3$9@H1Iö.þ0/2GC1111111M3ADS3D:!<F<>(; GA6K;4#9' +HjlG$,74)B%#0H*S4O2'D#I4+C*b9;<56ND,9D=[#/AC&+C4"K/9:![B22.F1I3%);05*E:B<+\G /6-GF>9)2:=#E%3&;A8/(;;3.$`"9'?!E"/.5 +9%9KF,+(+#A!/A 8&50/,I/Q\&L;VRTQ+=a  @#!,4)(>ý)-J-(+0f;~.B!)) +>8-!+&CN.3a!WI,(%,C3+L)18k*1#&=.91111111+&"E'Gõ<-NMK-55'16MS+2 3wO7H.B11&J"Q,D.F1)U(&#51+#ÿGJ0/!AA2!+1A7Dê·[ 6]<:$.9M +W%>?ŠnF5XD',I>*,D>1/-$N&d$7+O;'3/*70-59L5 07HLR@=<<=2(?/%25>e01H*/=\$C1$.,B%G3@`PVm§¨¢°Ð‰„ia8:.E KW&S9A=6 43NP:1=<9a7(?ZS> C8,P*!W(!H^A6%&2J8-3CNY4D>K +%g>x“`>2JDb*%5%D,F+;$)0@,O#015?2(K?@8 77 +*!&*@6&*#5 6S2':'&5;K.;A!'(=</!1!+<4%V/E$'`)>R9^þH#37*'0-*9W3)=S]@J."T,!#<-!B215OB0H/O'S*4$%FNþ* &.L2/Sh)*:I( 89RZ`T>=Sx?#%/P +%AHB<.a754?0@(46=4<T#I">F5C>9N6CéB$85A40>,ø8+]\&!54MA$C5JC5</?>DA;A,?8+ F5Q=+4M+0,:-F-c.'EQ2%8,OHc97>/"T5-A.T3APb>E:,D2!þ&E?9-B= M=@)X$3=7X649F80* (E?@#W@J1%.5Q5%";.(1"A>5)ý8 "'(MJF <8B2)$1111111!I[Xýl>8-8&-!58*7C+JD?,:E.U>2&7<'1N.$% LlZ*4J0'D-#-4-\!0@%,05C(CB' 22*3*$!9V.T2-6-G*L&,#NI 3+,,%<(+#&,"W (>@M)/)S$.=F.*O0/0(]; J$+4*JG5W=@aN&2<:)@\P#&&K*/>+<A0F!7>#E;-#G1D*$O',?1 /8_@JCKG(b)XJ*?\3?.@7 .3/5FOSC4E@"C"A.9!'.8 !)>B96$)E1r"/?'Jÿ-.BBB1111111#AA00"2(&DFG2;:÷-.%A=0878#7C7D9*D! &2" 38/3DC Në0"2-L5+=:%7 'T0Þ$"42RH3;a;E(^G7CV3hŽf2F,!!';@L^+'<B0<5*N[ PûI%D %AP9ú 0^J?;N#V% G2^/#<TF/3X;@=D4$4*N"3F!B(B;4)AFRi›©ÃÎâõ¾¬¤Žh\-C:8Q*0;$!5#/+ 47>,0J/÷6RNR)!=<5/7J D.Dã/?6,1(?,Q">*O.3:(4üCmxZ:C,hA[!*5%4 +&3)(*&G12,C!CRDc8þ4T5&:2(=I9#U=!.)EG>(NB!.888- .5!<)o/K$/ F' +6"N*5-=ü<*4.ED)V+I-l c#\)9-÷%  D%L>/ <D,2H<,þP0Q74WF-p4g%:IF<3*>9M:(Lª•Y$Pi89+)9$/7PKQ9!Q")&F7OF4*/G/.[3JA5YS$I$G:)-^ ôE&=ò (0:$U+,N8KQDFC:G/*Iú9A5?.0EAKA]?CE8A?!R)L(Q1:&UNM=K5D19>:8ÿ!5O+%">Q(>$1EC2d!T67=+M3/@ +03HG:&#ED%HEEM.9M$&B>4)EMQþB+þ!/+X(ù.4*:54?0/  0PDýO)1111111.@,%3!5/S7÷&A3H .(;7D&53JR.Z.CA?>5Q9=+em5D)@5.8='J!5>1$2eN<;:&N+P+; 5@9!1%4I2#;A8*)L3<,$9?8AL:+DF*79S-D1þ(+E&9?L<4965/,! D91.9V;,M@'1@?7.;-A#4aR1N('2H7<4S9:,!L'6C5? '> &&I )6<1%<-!D4QL>>%QE5&:0AI%*C2=6øA*F;0ú$'eF+W70+,6:G1?O..üA6%<9<:*M* eO,- *F&N7Y-Q+ 1111111KI K4Ge,A7K0!K2')X<.O? H+062Q8!:A4 1:$IH;D2NJI6 737<j8BQ?*! 6jJ6=$.303DÿYB=%HCT[CHJK/A'2&+8,/GJ6+$7 +6N 9CG&"+3/,?6*1!0C+SX Dú-99#8H!50;ù+0DUC=J67D)!FXG8Q,74S8D)EjN•²¾à!5yPÊäzlK$'8"D6U765M0,&H40,S,3.MKžªr4@1,3YV +,:6"F(-O6>L%M( %O?ù;%"HJO^7RC%vB(2(.D=I=,U'-0P2C/JD%G.$;4O-)F+'"10ÿ1?4ÿð,E9'2-U5?(XJ?GF*,ME).K27 ^:%8H /0K3A,8.?>*,4A[d?A<M,34=D+E6%3LLE*)',1Q 6)L8N4:'G'?cüG3M7U6U&J -6 1RRP~i:1;@-3@'.^2MA099OW/'@O(&6KK+D0W>[AM0+200?2:.0M8g6(O %+L71D<?VHJ?;30?9/J9$)&:RAb]DZJOB-P4<=RP<1gWMV&8MPKO%1/,A:7).'K#5O'E;?&-WR]! R5%4& 4?RD19(.SL+%<*$$(1&O@E J(NC.:H&`/8üO!/HW8E4(4+B:9N5&A*11111110d&8,L9/=OL2K&$+=&C  ñ&%-:<1&/`' +$(D(Uî:8NI%#DH^'\97' 4\=YHI?A6H +*;0$,F3:%H +$1(üF_+C(#,A=]_>]8::I8726T >9D/'6 A<"AAHM6S9%*O 4;')&HF]^Vü?+&1*4q0B9;G(")=D'H,G<U?AN<M>#DO;+A&CQ)*N@_A1+@3&R;5G <+S&B'&C+.QO" +'TE&9#66?C>$NL3 ,=&4Q10*'8<I43,-NGN=3W9:;%2V1111111'3>m8S<_?Œ/K ?;6L7@+,B39Ky@5P/J7(5G;T5R*!H0P.'58IIK:#9EHJ(*!UG&,;$å@13K +J1$91"+0($8%":FE<]1K%5HD2>M.0CXJG'9!<99A:'1/6 7F5%C::1=(*O/%R%!=/2&9:F/93F0Qi3'<W7^AlK„Ÿ»nyUž¥›º€¯NXA/.E?2<;DA8)WA;%; >C, *Q%R¯m€)9[',,!,-'>C8gH6)I^28*:#-!@0?=#/1FL3=M=/;13%5! 4J)0(M#)H %0(?E9T3-)8=&J94*$9<+wT U20F7?4ö454;J2@6D'1H363.DL#E5"/2CW#U7P76/'!4?CCQ+/=9M/*;4&)D(HN.B'SCK?8;+:'G%::L5H)'%7;1);R@N2G73)4 '-:,(<)>.N#,Y(]48(K/-`2MM%E895@:3J05;9LC/#*.5I"L?5(. 3&.,S#.?23$640J&;>A$K2LV9GmQHJBmMpdAJ:MJJTA B'0)(05",7!+(C4J*8S<@./l<(2c/TJ&?'0D2‡$4"-H+>/*7@GF@YA?-/HP!.*]#74SI9I.6 þ?"BZ->;&+D> .1111111-( +9-96U$;@-$"1 E:BF"U.8]*V52-;$8-,'2>%4 J\'IHO=-::%BBFmU*Y-)+g-<D $0=6Y).O5T(46,0//SkQC#@2)0N@24&/?:9B9L$47)7M-PF?+1D $%;$";7"F5)#-)646+<Y("(@++C?0>AD9$1*-,$*2)P[CM1--G$1L;D/)71],3'A/$2(8V$LBAV,<7,7+X4-%!8->%4BZ*Z2!7.A/-Z**QH>0.?ZB9N%ë- Y2VH9G6%:<XKG '1111111FQ7*nE.FE19$DN,+'7DA`/J$V9+C'HQD.=M3'])"PSpO9IBXE'J49'5â1GP$  2)  Rþ0BXAN=1A1F9.<9)$þ9*E @G7HB0B.,.M7*+ÿ:A/ B7&N9$-A(*.]4L$9,E<G1(?W3-5(9F.?M12Og)E>;/7.2fD#@?C2P/c[naz‡8ó™,ð½g"T0$:6>2QF40*TR?;0 6$"92I(+> ECo;D&>42G7!"=7;.C%I+:#/V4')L45*:4A[î!=<S<QLC[&S2,<&l /!,3ð/61/9KUf62[*O$+7?D"&??(A(22CGA7,/$ !<8!>5+8;N"R$# 3  R*U%.C0^*(þ/N4L6/)A\+BKBS<6`#] +>*KN0 H ?2?5() B4'C?+."->4$97!;#%M9;8(>,''5);924)&$*UB#H;L@>="S+@=3+?)5J!)M16H'.>JW:+\/5 .þ%H"+XYb'J7P:Z';]GAG83!M>OgE'<_\;5_FMEob6Hd‡AJR=TN÷K)TC?0(7=( 5=.<OS@F7.\50$5',32ED-L5"%_52!+!001(. B905?V#)óQD"9A"7@F@7G @8%@7''Q.3 /SI6 ,-37O1:T'&1111111:4.EOODJ*! +CW>01B1HAC(G,A2560,5/52,A3$)*0)&B'A9'IH6>N5ùðp3%=n&_(BS#$0J;+"4#*@`$@,(Z.X4+1(1"/F#QT/J[7\QZD<,^25>5,V/W@9A /;277=B0.** K)("=/0"( + ++ÿ) üBHòH*80>H" +*%.Zp)=L-=W77+"E'ECygEHB9&.R$*I +O97(J@5989B17 @ -AB!;^72 +d($B)7%YLHx)4C/'67.,9$0>;(>HC;"&S…SC71111111&/7M3";=U<C>$#E-4Y-LgKN*' AX)B,65+=]4">>9XB,47EGBD)E.'&'TQ.05 6B#-@(:aDG3&C:D2"/K67@ BYT)"7-)FK. *H=@D?2.D9F+')'÷+'; RH*'8+þ*.6;S9=*-F#7"`R*7-OQL%XH&+=A`iTr‚’u3)_£bÙ}cZjK>F1=HQ/4A;A#Q@2=Z2$NB; 34;2+!$êF )4%9*F9D Y7%:(;+906/HGC7.+`dé&$17B9B54'J#(#BA&<BaAS,###.'/6#Gd!6:M[N7:L5*BJ)#(<!2!5/'SH-0`7)$þS,".ú%/Y5 #,.,)"%+  "8ú)#.;X2 6I&/CG)5* EA137 ;"?S4:;^/D%!<8,3HB=#2'X#8!VHRG9:1/g@8>D&5-.0/%H*H H4N:>/A*)L#,"!)&A07(-*4XDG%>7"?47D/>802J6$8[,3<9\E$='`UI.2+H<45T^3D"$O6pXœIŒq¬`bf<Yx€WE,#<2H-VCI@ R&;1& ú<&<&r73>9-1.,-;E#C)AG%7I9),=-)'G(&&1'$0] +)L2O5L ;"?'E8E-(7&!<4 :1$G96g:%+.011M+%B5/+;1111111&)K>!--J* *@4)VJ$"R7(#:1A93@AJQqd +2-L.43?'M9;M@I\2)D >0<\´Þ 6Øb§f9,6<%:gDG1%0:?#2 2@9I]L6AGA"I<6<7FJG"T6'Y;LN$>S>8> ?<#5/15(FBM+ýTI=64^+F%$$#=F82''?7::E)E1!4(*@A'45QA1E/K/Œ2oB_ (G7,? M3E12+E5$399'EC5DAõ$ +#d! +G52O>499^4.%;,,92!&+!%"*0/51\nFN#.O1111111%(/%44-8=*(.iM0=1 +D34 î7J/)<9$('&A'N=#W0 $;`í:?DCW)5.A2->;\LEAR6,05D, 5cKOVUZ_.$j1+(5"2IHB!.AK2L> ++L.8EM$9$@L)( )D;%">RP>KI(9<+ /#:GO-.%Q!;:1;<@B3.2(6?E5/)+9/FJ+J~á8%-¿ +e +™¡ëWí›aGN;'N!G"1 !:8(*$81<$1$N5+E2=LSA6/! .$M!&) GH@6>,,í#:,$2--2@!*9+'I4! A[\+<='3>M*<.6H@5/&%5%T(\"3,)1@C559=!EFg]4%K(Z*4N-?17K'<FL:1Z%:þ*E,._=12UFS)G-E4#/M..>XC11KG-9D-4\< ]O1@> 4/ð,L0# 2.@4_<[9=9G*'E&;G.0J=W>4@$%/;;7N".6-48P/I*RT+d_+,!# ü-7<Q,,3',P@5"PA!B,'`"(*<(=<8F7O2+ D8<2Q_=O:A(D5S+:8[TB0qU@x¬¯¯æÛš²€ek|MA&A+3JN4%>:*=!*#B$IFS(@3$234I?=91> 19<<hLT5+9S$ ;3 /B6BK5HH\*0*!2:2:1>?3 -5+:&F1.+35R28,<N6=B-5'2E+?1111111) +L,L%B.Z/-û?>?$!$$6  178*1?*#^*G4".$\/ 640M$-:/)9R8)C/Cò÷ 5):G+5*1î+/@16>%X7*=/@;C>)J0X*9,20-Q0F/:G¯h|X.11!++.P9B"T:-, Af+942?'#1,J9 O6'5&7H<'@ASyH6+3+3.JC%OJ(37Q%/64,5$ZFm·BDc5!@ 5);90@*?4, .B&L*d-49E? *A06"DD,MZM; +A7--&3I5? #.P9)$!4WmSTX,11111114AE9(@=B;3, @5<5'"4/S>8L-R13G/I/7Y6'2-)5&&/,6:6C05R- 5;W6?.*2;2; \;<H$G'R\OD& +R=?!E4>93)W#SCA)5W0CIS=/A*;4>5#==)1"+7=8 :*1:1M7U)5C1+&;9E )!)AT70P;2:;6A>T–a¶N"8 i  – Žz…þ…ZE=`:QQ> ?< AM'0S8Q/-5=5O88:*(=06:>;< "-K8>5;[G0M3(:9þQ-K;%46"9SI @?@$9) +?c63*(ÿx?: $> C?+A:2'./JEA8O—k9>1A/03A9I/.>O=',9JL+þC(TG6(!C2E? 3)S'4*E,29=K>B33GL* )MGA7ESK@,HB-$AL%7<BII$ *A@';+#'1I<"1%@0O. 95K`!9 5.B0"4M*Q;6C;/NMH"%.>'28<00K/>+71&<9þ)A/&:?.13"FR H5i /E>@S#H4:S-):= <6N[R:sFLfFU9F(=/ d1H-:%K.p¨Ïn¥ëÞåa%à°ªmfP 8I3.%2"@78G`0! ]"B9=@'3='10.468?'/5S= Nh_4O(NA8E%(K"R@4<#!# #',(<G -U/ ,7$.)C3G62S +C07O%"/&M+% H1111111GGhYC*[&I+-'A799<>c7þK" +]_>= /B#N/#)5;*A8$E&BP6R/,% 30OÖ~†qi€GN 1A6&++E87(N"3<9)CD899"D*1+F.( A*#4P;9I`‚Ê[B7>V?8Z//</5+.',:ùW;L9%AHL+<.!<:@,F.8"<5)*/7*. MF3N6!O,G79AB-&:b,2*)G+$9#G^7#+2=èL40AX=VGXN4>!-@?5# +J#-isJ{<7)38A/:"FD@1+6637, C6;!D470X11111111# E)0G=!/541&E'LT>%D/Y42'M?=9R5 '3A%"BM05-NF:(.")'C (<<>I1.B9)>*<*M$/4;6G9,!,-YC,58X8WI591=-*+347)9/14LMT)Q- F"_D !'<,KU##9(;G8DD-#,-^888E2,Z+?-'J8((.5)RB82,= 7My€¹AS 1 B © ±Á€tò¯ŸFQ1<*?BN_&$90%4N947FLDV/!4)72N6 /-' "%.%NW1%#4 41C=0A,,O?8 P4(2? 2A?9-D'!)? P4.9>=830*2*3g:1EFE/!5K£È6ª9.(L6+].F4E"[+5<CL12$9"!H#=...L'2%5*264->1-O'"8V,=U*2B$-o=#.+1-9V%#")%4h4>:;TJVD9&4=*f?å[*t 0@6,C?/=1-!D:(O<,4*>U.AC3%1n;JT-I<Pý$:"C7-$07G1<8%,-/0<B)3-<* ~=971$<þLS)3*Y=^E8T?'#3#<9Wid]iX"D?"C/%$M, 5Hds¢EÖ Ë +› 7e÷!Ðb`l05DW26 )6&0*5(Y@,6D JW#- +430:11E5 =$KE=-cV:I(%V9*O&+#/ T#?2'H-L%='(W.-71 #.(E'?3:P '#,?A4d30!?%).')7(D3O=1111111*)"?$FNC$ *1NBS#=*%3c)u[.Q7#&3-26=NL,8ê3!4E8ù7X<+EF2+(/:W…³àÉ“@>K20ÿCPH;>0,*H>M.G&#""30!*:A*6ù#QF?3$ZH% ZO‚¾âŽW&E?-26+*V4Q7;X+-)%]016ùH?RCCA%97XCOEE6W-;7ý//D(=:!;[8:134'1<.%(L)9<'5E:'WDJA-!:$7øt@0ó <D=6TJ+Q2?:;;“KÙR’tO]SGZ*  +$J9B:7:$6"2=,/mWH23DF11111111HDpfD(6;A%=J"1DE"R,0D59P)LHIL!-#73-:=8$MFC8#+L9V+CJ?+8M' þ&J$!OGBDP!,)26I/92‚(c?K,F8A+F9ô9E9<-,0A-+3%NA& %I%>#A:0@T%* @8GCV]&&:(B$C30-?/(!5..1G+7e«¼iïõ 4 ›§HéZȯgWT?6.6JH=J3$4$G8F6:U;%C<1FDSJB{cTX.1A127##@3%"#/+41è''662-)0@(8B:3&<$8C9DV?8ù,?I*0"04">Q$+; T2I[,PU4N0<KÖþü‹U8AM+1X=A9*-E/F8%C363N7,";6SH4P/+D.4K/"#(PD/ ÿ?ÿ000>8H81&`C +5)):lA (Nt´ÜÀk4=7(ID-5\4Yb. @+EGT;7DB18%a)_9VE]': -:*0)B!G2.J?..;@/>4=4I4EV F<:S&JPXGBõTA)4/3=(=:nqFKKA%EFL:NYaQ »«£˜O^=m73R5<APhw‹è¡å¼+$ç´ 0¼Àì‚K*0g9HAE<l$JD#& +.@G"*(&<89O2(3Lò:5%8&(*( S1'J//<A+-b@!D&=.&'.Ee'H27*4?0068!W><(:83 18(:25&>:9#5jA=6361111111O+$8M;=;% ,&5?64/B S  /i=9,R"}F<>)1" "%7I'=H@9F&C=;DM-,Y4a‰[B"H;0F- +"09+"5$,B5!#"(N-5???4H(-65 3-JF?EB2&/F u\2;,,0 27U:9C(<+0679/5@F;Q`=A 6?A;<L5ZD64Y,,&4G4?:F[,'H<pK)8LVc/<6G(T).6:4)6/F +7Z'?X.682*;-E7-=<-=:49 4:J!#72ñÎ ÖHNCAX??NL'_2,!"bJQ'* 2)-::811111111+&A6<ZH-G?&TQP6 o +7KU#!-+8@úc0983H&;$',1QD.7-"1<CO:^% 6/#.%8380@+$/:)=R#10'@Z!!PPBZ0tb‰€R$? AW5#AG!GGO-0(3c6A>/477<%=ô%7]:/7%eA+R,Y4F(UGS:W7S$> :8*56ö]:<C3Slƒ¼æbÊQÇXö_œ.»ŸY['a2;A'T;B= %G%J3%\<47!5[C:@W<b>vS@,G@7HS6$4C->, =)1RH6:W] HO9$<;&?lCRS>*%TB55:1"(#( K- =?269oÏZ A.#OA)"/n mΕ18E.R"GFMIF'<P8UO8*30O)>,J+û&Z/#3.3:A3 C* j"W-- +(# +0C"$WE + 94X.<%T/AKg–!Ä(I†D0 Y#@1'-%';.990&,=@GC"(0;6(&>3%R`!)H[K6 ø'-1*28þ77>H9N594SR 296SBýG+&%F5-@<.$T S3C&:/<LXE@.>'1@7i=6þ?DyÂ/#µWVHP Z=%R(38XÈ +!Ûs+Tj0! +Ú5üVZ31; >;K2.#&gQI498<;;úð 9848P9 "C*3*40A#'W"I/2EG*L$ N/8K/68;6%9.<9/A>:a7  0@S%29>A81'JK@21)<@)5B@H!"Fø2!>!6.G%# $1111111+&!3&5 5<"$AH%65:EeD9#+383. +F()F4*5Z4X %= S8g &7+;S<LYF 7S3+?B,.5,6>06#71(8,9 +M6B6\A1-o(L?TVIdb*5O!+' 2>ELj'E-KK@2BG%.(%7,+7OKD,-DT(3*<(!*<%+^-V"<,d0%#B49?4<:U'-4"DZ< "4# )8GJ4'6!*&1ñ414F<9A,P5L)9L;& 3+(I$7HBr»Q +ºêiK)MQ-GI* F$GX3D2*N72ö%9?./.<11111111NB7[|45J9(_QJD<%:=7$'=D2DJG*=/+?pGCUU)ûO7™]TXKOJ; ,51?//JC++!<>H/I?g0q8 %?96+/@CI>J&K–kw0#6-'F/*/&.@62>!833 2*)G'G0^8ÿ0/+6 %M+M5;T"A$I_$);:F 48I50X6E37+`\A5CEAB1û2c.RŽ÷#sÔ!'ðq0ï«‚hJ!Ed;#B+./K@/6;-.D-LO*B$ID'&T29J,].F* A3T=DB1M- S;"+_ÿ<&?UX[J(k(9.;A$S [Z#. 7\5@A8$B%(J>%Kv™ëóøH\D&A*FXbŸÛÊv:K='8> H-35 W_K51V)OL88"  <A/S'Id<"1*.RO*;;*!.+ +EF07M%1,'û@!%22Tt)ejINUE2YrýÎîe<F K0HI? = :&7B2'QL)A=52:*FL /b@6SD"6?$4,;,6I %9?1F N[_"4@@4O#0!+(L +23SALO\>5%6-R3@c\%'/:ERP K"KtöíõtDD[7>?./(3Poy!ˆ 50êE~M_t8ÿ !¸¥‚^NU+P2?4)8*".: GK,-C=(^*; )@2-0LI"@<%IC3+H;B@E/8O37$;JGôG,X7F7H3IA@E._17 :! A@LI"4K*+#24'>4/1=(58ôF1111111R4,;1)4&?,+!5B#0+B!F>2D;F';@0L-,:<#,Q+3BE9=8"8)C</*DqL'0Z>1aDGHEBQ'm [/G+;;D&%D17/;*&.F*6Q,;G &2z8AQ 'N>86$n.XA/D8) B:#W_BB$A,,6%D1.AK7D+H&F&4<ü;/9^+]D7*1. !,C4'9:;%=1<>;5K1AE,Q5<<lB0 3^8):/.A8V<0,$J+2G+!1;9?6Xxu š>=6/R<E;E)$S+5KLF''I3 MCG411111111%08  ?)8* +'20%(Q'(@-"A+T"#.7BC*VQ!0:!U$0H1uF0,%PJbJ=BüU'11+ M<-6ý,1x.;)9@/,4þù-&TQ8$2(=!4`9J$4, = K4BP^1aV<0F& E##í:>5d1RDF26R5(8_'KJ=M4?Q:#>O&@;A0GH"!?C;.2<`-ú5*P0;Sj¦ BoF~sV=ͨs:IX>;@F0 IE W(#>?@&SX=H_RNB*=7%E0,(H4<29++4A):8?#<)#Z-DoÔv(6<,C(:>K/27+F6NAK*1 -T8;OG14+&8>N"´dõJQH*N'0cJXgYn*GJ.O%P> =ü'M&E,2K4=HGÿB5 3?.LL(0F6I !#6H&Gõ,A=M8%B=2c553)S0L7H@%4R^A]9G8PLðÔú#Ð&7<GSI14.3D5>.!B3=A#&1þ!!83*FR!W4,8B,8!L-2KOX?(O,IE(:"?#7B@0C>3d2A7EE:8 =V@C:[=,FA*%1($:!WGF/$'?_b–n5ÿ„‚/U@%5M1,%} 9 +â i.–S=&® ØYðƒmŽKT*Z@60C@@* 2%&'gG ; F  +A+%?*ú&1<YV/NND.)H)#1#1 +"L92 /7.0 E0-#)3V@5@*'.(>) 5H""@2'."-7.BM.@& ,11111116$/'5H!!6.-QPP <9: +)C#1j&]%(,6,)62*F%(:*A0,1Z"M.*W&5:ú`S7+]oO)OD"<+?S,WO +?+B6!968 +Z)&*J$R#ýþ)=052+'K#G32:%@3?/0XQB6$#=.4RJC>"Z32-%=#8E81'' =nK54XY55"13+'=*:430\E>KH& $- .:!9?6JMPL *Kö9#V@5R%0)'9 47/?H6W%P9K;4H6Aa ",AB2NnpsQ&>5VD2U!NE.CD4*N==3z14.1349"+511111111!UG;)>23"-'M4*62(3û;#D6CA5j.*,g!F7=.R9 bU>B9L*9B$ :1"*B=05-G-2RH$B%45ZEC)-81-2>:!O;&>'<?!@!*C137*YQDT<(9GE5$0I2,"B(5B_;!H0$18CB+->:&DI( J?123%&B.30/.<:!B?O:C1=pµò +Øøù¹‰ix”Œ@28JI.54,67)B 5%. Z>@€EN_\t„To/;AC/5(BF)A%@3A(1*@GJ27Me}‚0I"ó!4-,QL-R6EC*2!'C#\P=#HFN5`¯ÐQ<IKG@(6?:B>1JzCA<,X#35;.0/ .))$+8'>$7Q?F 678M)O-3:<"I J)%6*3 7O,(GQT<d*<3,#B]%F.UPE–¤tGd&Iˆß~ racCK$/D&*R>,H245?1%Tþ:-/))245&$3 -F3 84CO"TB$5&)n<5U9^8%0<5)JO2%$JI<'Q<1F:,>0M+"3B>* %,1)30$650gBIz¤¡rb48>>QTVEFK{©×Ç/dd'|ÌÛvÐó{VT';\M?c@MF 4;A!WL!!' F>@+E!) B90T`Œ¦j.+HKHø E/-Y,U!57KL*#ENUc 34'AFG=0+ 9YE)8C.J- +?*iF#A)QG7")?)JU0* 4@<!1111111&/V&-1P+DJ.DA5a3:,DA1!1TD$-(/1OYAKR'4&,C5 *Y80+&X:E?7SMV‰wVO48)O-8*"07*"?7>þCG0K6&K39 :1$"3>#N149D&H&2>(%$3.K"6, YW(@A?sBK5-=;5(:5T."2+% !&DXR62I2&,2:4 I6:07&?E*<4,(=E:$-#5@P' !?&8 ,$:6J=87,56.B4EW3'4 8 -8',VC2F7j,;."$/)%G+!(M>C@ ÿ 3P"*.P21+%%00a Q+<($!8I11111111L;(,0û1$?,D#<T97-A9F->\=:7,$.0B2)5V["L;40 Y!GI8LA02D<.U.<4B' 13)"(:5 76!D(2B6*IR $;0G,88>þ3,6 <44=Z/%% ):$%&;!ð 3V/JVFD?/5)3:<#2"9L%I/H,<Uc#^474>FC>B6O5!P"*0IMr‚—Ýφ}Ÿ–mYEkE86>2/+)L*A\B71?2.+G0[]irT~Jˆ†KJ= J76 JEOFú;=&<2%>6(>+AKEjmM5>F3=),0(4&=úE#!&++61"/5ó2+D;F!88A_rP?<%324e"!F%I#/ L8*3MD6! +>+8'=/ + CO +:"!) +<"B49V!41G<&. 1-0]"$<!û K" 0 UR6E³%¥{ËP?QPƒ}IVN%B8A\ZF=D&:7+/(:8Bw&/FZ0"(9>N-(<PQ;? "*16bZ%>pJA$ <A<OVY0)H)'I+"2'--BSACJ?/)e\9a^58/1.+CD;.*%<&G'I5>&FMdYb9:t>.= ,C?5ƒŒÓ +é +O ¶ +­™Hí‘d>k>+G&-.hL8 @3"\%, .$'#X!i75*,?-hrgY5B,?< 5@!I)4;@"5'/-ON,G)J-%1M.$3#@$A?*.H4L*'2B:"70(U1112!#2(ý^*RD!1111111C66%7 4(\t9;+G'$Q197F 5<:-TXR='K:3@I!1 835C0('=MF;1O13W!02,R0<8=B73*37,Mÿ()^?Bf,0 (/ b74;#+IW" )21$1$QB<&<0243@/&)+L/R;<41!&D!- 50s?*34C.))%'%9.$KH5 ,&&bDGVY@'?< +7$A7Y  R776 ù24'AL"!% 9.0A@>G'\A*,H3*.\û'G?D4O*'2-RR"L3/$! +*;-F68*Û4,%EFEN^XK@L77D;O?63 B11111111"$)6=;47=-6<IA5-8%NO @2Y@Ni$/V<^=,3<K62E1!'0E!& +3!849k# W2A4E "$6;H*"-$%)(,6]72%/>!PPFHB%$1EB<3D^'I%)/-@O93(*`J[S,'A4?<#.U( 5LBBc0>8GoM^1?`TE1,1=QGD"9 82H-C#QH9¥í㛩žPiZGM4,P7%7N!/R<9ELXINJ%7?K!9%,d—lS’_gš³eR2-)\6/V"$!<WC;DN1\N#*2"-'+Q!F'0<5R'(,1+5EB"6%%777.E#(HA#B;(ü*1@+,-?>3F2>+gM4"9W'601I/)5SUX-.A=-K[(2<*;93T<+5'-1@'I2DG0ü<>#3_3)÷6:S/TQ%$GC9$*41$FD"QA.RN.;8´jY?RsSJ<l:P/:Cø8985B"8|E1.&&21.=^I1E2SQ'[I`?IR%7? 1@.$K25 /HE5P%1.M?(6N!%2:51+&L2*< $/)^FRXF?H7/I)15Z&-3G Q()Q\4Q.;7DGš2eIQ23A*\@s•‰¾Ð7s¾HÅÌ{PI:i$g$88-KUE21&6$6+ü2,=CI6P6;5M@O5# &0*b,*8$1&4> :I@ +I<G=(H7-L6û^/J] .   ?0F:,8G,;#"%ö3<HC5'8HT*2'< L*1111111589@ *;9Z6-I82,)<(F*;!IH+'6- /=%@/MFc'EA;;>(I,6)()7(J7E54^OH6Q=W[$-2>! /'@"0$,+%U$,58*A-'.0<!69 2,1I)944BG%D3J5%3b D<-cD2F*$N *@  +%I70CHC#ú&F0+8*õ *LŒ@'S(#3K<RW 0067\,7:xn%P6C>;RH55?.*?2@,9$7D+L"*LD,( +AAB14$a:@!H//4þX531"WCM!R9*4:W)B0C*011111111'6F H2_3*N2 /LO0.()]u9 =?//49):CD=*()H&6.EU#,AF*% 8@,772A:=0#1$1-=0@?/;M-C'5ü(RR.5  0;"740I!; 0V<&&0'!UrDJ18,N.`RfJSPT<4<'5,EV5D,(35ZU?2/4#Ro5-36U,3'*HHR5-ö@ +/9;RI7Iiƒ¿xŠ©dŠXG1<U-D2c:BF+@Aÿ)LC&!^T>4X}<–r~]€µ––›cT=@k+LRe5?)!%*?D3X*)*BF8*.+,tB2!>A'+;&' 2& +]-NLH:X+*G6/:IB8/*TA=_)&,TJA%,ù ;<(S07W?MC0&/T%G4 *6  B5X5H53VXL8)12,2M03D# ! "'4;&!I"7'?.FIHJ"+6;"$ +"2K2W›éldê¢YO5-0X&P>E/;AA1bM8.DO+2A;05'06,SR¡´†t\>-!:C> #& ):A+ +V85M?4m(E,2&*S&E5X%+<]R"5VJ^Kü>I:1 :S-.N! #<3!5(95NG8J~SI/"?f=G9A*+;PNUgm˜Ð$ð¸¡|Xg6Ef4@3TKDu)6(G'8014|8!, I5<?Oc.,)7<S#%+M +A%N2F9,(Q7.=39H28-*XKI%0&@%'  54<84A$6%G9@+."A!:;"G$*/.L>:1111111DM@"Cø07CH(!lA.T;*P!9"' %!þ,)4Q4C$)87.DV4)"E7:[C?;0;^<:5YW4!#<D;.-ò"/K;1QVM.></+#C>4 K?"Î-&$J-45,419/6@3-?Y* +=RE;H=K$ ?(<9M/O)?(ÿ<Z(4'6.]A /=P-4:4CI?&6.&6=û31*T41EW/(1FG]4+I`9'/%FJ:EC;-*PN("/>2EU2KL@8*+#ý3>&?,1C-&%9\&]5-G+F#>T60+#/ 37/W7.)\<J$'t9< 4!H.3/)[15"11111111; Kb'L/;(GCS'(3<6D!(1,:47J5/'4%A;!'+=ìTDB#?="=;X4$mC'3*6E)#*+796#"V>,%4CQ6+?8K*?/>5TI><jMC;%12!A'dU&0G,2WT"3ay®zO1H0%ùú8JC7;2#5J8 G7*1FS5d, 8.+)"FN 2"0I?:*0Q?5)>uƒV^HR<,)6AE)"Q4A%!C7?,*:qfƒ`JnStVŠsªÉé¶Ùƒ†Cr1/+64"K"*+)%4;2`%AR&(6K>+:A F3";/_2+Ha<7'I/,.D16 C'+.%)C #.1/ER>E6<9=/1@:,3HBH2,I+0=,0'@'A)7G<W‰_jCVJi9O&L+%*5J 9%0@('<# ü #K, 6H&Z#!)?Y@*/%$$*:BZZƒ~UUL@/Y)UGD# +STI:*<U/F< W?4"-@#8UZÑ1à8[:(/AC<;&4 1%*%( 5& +Y@?QP#MXM-6];5 "WG-FO;P<LD;7DdB98]6ÿ:23" 19:]:6NJ:F"E5"[H;3 + +51K_a7Zh|ˆw©®—¨n™ˆW?GZYQ462N N92C)1&(E91BDB02z>S…?4.8E+44"1*KP@:132;(*//'n8R&+d1:53+2$> 52#3'&5,4=L.ü40K%27ü&7?(3(;,:RB1111111/8E+5=!Q131S" 80L45*<A :)#@V/I/E';8AL!$::73h2AI0*_ÿL L"7$$"9/EL%N:.8,I(C23B').J '@*/"K/+570!(1=04K.@0!C"+(6"/I2*29%,c9>5&:M8C +16<.2C/$D4"/,1A?9*6@ø+*P!*#>2*FN[eD(5A?38'I@F'J^'$;&/3@;L,ö9D5!49B>D%);*B:K/%?/G'C%>494ORS7; 2P5>D/?)((Q<3/# ?Q'8&7H>8'@&F/TV?T11111111 +A#CP$6D?Z7/&,A+:#F49(ùB.-;9*3XID9%0-UB&G =%@U +í!.E45,K1"ûIAN+Q?6//^% @@!)  +H511+HL3HB7/?7#;@<'CE/65)PD{J:i+>2j= .O+0HZG13F+4.`6="&*a:5<F&N!)H9P:B#CBÿ#E9K>)cPfR^,;A1X?DG;14UE09d#?PK0HaseŽšw§f¤¼šØàÅ‹yImmHF@+$zG2_/A6>*(":(CDM93Y=?54.?5+8].S1+ 0+'2So"SAN)62 ". /K?-4ø"XfG: 7&bDA$63B 8?:\&%E,4>!==T.9J>]Ξ\46>:,+& ( 0 4 )4O3F5:5($6#:$;< +26 X$Q#:#A53C^T@FC0;4*('>"G*1`[WFI=2+JW; +/C0('G7;=?P7J\Ìe´ ¨< Q=/1-`%!<JI7 &4E+4)1Q(8A12.?\752M-Fe+V5P*M3R*7HP)"3'2a5D 4DILa$&ZFJ@[bC[&LaVb^IQnN6dE`Š\x_ƒ`/3"eEHHC*495)1"7  +*)&3EŽˆ¦®WVB;65*/þ$L[F1Z!9F4`* 4#"T(+*QC9Hb</#%_D"AN?CA$;>.2& +408">)8:1=0÷39<! 1111111H.;A=0XE Q69D1#>"(4(?9%E@W*F3.3N8-/#)+*"O4FQb1*=Ne2XQ0,V, ?C93M;T! #:.C+&(8w¨W&-DC/ 5.;E=,P(D=V258;F('FN+9:5X6/,?g856G0D74*!1:9Y?51L9 .CAG 3C"K'A=%,T-U0,'Y`#; ô4B!+8@U336- 3%7&I,!JF1+5þ?SE*5!:B*d=5D)<+ :`%#: 5)ÿM%61>;CD=4B7!0/(G-9C=Ib: X-\‹zl^+11111111.6>)'8#5?A87ï1:/A3H.5X$B{%3@"L "/;)A$G67B;G9 ;);F#!WF&5)16+#'.(,*(=3@7DF3#WO(:05?D-44+67(&MC3+Z#?220";5F-6OC: .0E9HH>#L?)ü.U0<;3$K_6TT1&4F0A!2/+$9Z3J-J@)EZ>S;)'H/'%5IZ=)4%20I:.@ 3cK4;B@IjiŒavt˜co„¤²¯›Ùº·¥OrE.9Y/Y)7.O97HbL6'0.24:$B'*YQò/5 J.R$$8:1(C]<\4$:G E,1IW/9!e7=$(*9)Ba0Q-?-+CCTt@8G<2J"5:!8:(,/5%(2%$<s‰¸²^A$2*/;M>>.-12*E=q4'`6;F'%) +#:F5#QNH;11T5/Z7AOI ;8 7I060?6@$ +2dC3B.A)]1>=Arò/ö¡f!4.57I.188  >IL!7+2; %*'$*9I7#)1)7;_6>(H=?T%U9 JE'B1!+&((O+7)$#.54VV'zFc?;F@XDG3;s;;A~^WWU?*4Œ/H0<!?1&# 1$>'Fûü*"F:$]_ít^d_Wv7*,-`?C 8P* +2!0MQ(,?*+ b-Wb//":1a#6;8)+%";08/) 7G%*%W!M0D3,,@&E11111116@G,6%:D /F[BC<7  +#320`HM0')  /'$*H +b/(H9HF113'+Y0@#X+9&%!L9:L,@EAg%3$QXCR8B%H/:& +:1'@¥áD*6AVY+V,AC>@5þ0,>Q,-=F&X2B +1;1M=$"8BN1(<*.=&8:B 2==$@ 5::.):+-G&<S":pI2U+4-L,:\D)8/=4"+C4"a/]5RJ(46I&-#<1/(>;1:>:AT#E'1D\#"/.$N-.W03'>6/L6@.0#þ+WC(#5.1 ;@8??;ACož‰\O11111111'?6&$0SAO01.DM%Fû=$D 6,e15=!<=5U35/'aH=F*$+E4;&F#9"A6ö*J2+_2U$ì=5=!3#(>>)$4++DEEC!>T(<8Z.)30D9)XC.Df$8 8LF+,#?C8,J'BY@F89P;L*<)M6 KA?7)K.OJIH@PJ<7"C87'.8B%D9N-<UJ *8N:'5+?"84"+>9G--$(NC_|WŠ£Y˜w³yÅ–Õ èÕdzfPi95CGA0DI! %: =-:9!?'C'5..%B,J#XUF.3'ý6'_H,3:0Z>&s0,<$@?D-!1(%76&D4RMH MZw{`:=/FN5Lo%- !&8&8 ;K+8H5SZm—k@E\:'K#8:3!R-A/4"]T "48A&D4$<ÿ 3D0J. $ +&$>D4;+.,"C<D-([3*E2g9K4<2'>@,RK<B;%U(V!JH,j\°Ö˜>/+V)a;LK1110?.010L9443,))9 @4A>7A?2.L]8$D/729+-#1L?/48N(RpEˆL-\]')96UK0,6J1DY1m;B?*fOGsW-B/+MCO5;>63)]45#/C$" +, !S5>%+8G7s74H}wd{D '0!J<^ixW7&&Y?D3-,<F79@G$4:A(0-O8C/$U/8'<ñNH/<1B+ O:,6)40L,AA-1111111,@EAU6>+!;N0!-[,"&=TQj<F'.8* !22?)+?<%'X7,4*$5<%5FO+"%DBOB=1%&,4D9;7@)+=b%!8D#@;;4J[7rTD'./Q3 >"B5$[Oq1+0160>1. :7>=SY27IJ:).?  -&GK<2.3!1GG4'y<=99G C7BJY@"$?k.@?"86%+Y9L7V +"6 #1F1?-#B`,#?4@'?<+ +2:.3.@::?S!@5*@17Bù(%4-.6<SBN&94*9'-BY3@8I0J-L,AvjM%]11111111-N2)%CL*-G>6SX1(+=!.2V(P29+G7 ==B#!3,I<&/<%)D8]DN/ý4(4 +6&'"1&GP= 6$ +/ P7</B"2-3mnG<?0*8*77%'ùH>04*QI<$H$&&<D49$ü/B63/EYk.: )<:FH;1Q70L1SM[GG*P1E:0ñ77)`1A-5%G.5SI“vKM!'E#D*3/-6HG+,NF76H/NK(Mcfаo¬Å¥”®¶…ÞôÑß²€pu*+LB aE"-0UP 8öO#6-=(.%=$*9N?/?7'MC3"/3N6I T18þ)-.O>$GU+Y-<,.,>&;+-T:*ZFK?/!+H\F2=53U;#)1@*1F?;:G1>SD/E$>96>3@=R"<kE'DEN 1Y&@3I'2.(<,.QB4)$BL`IN?600+8$=%h% ;.#:6 +í/C+kGGLA("(@.TNY5%#0 +6&=RSP>9'+B=,LE4<M85.PD)?'816<>*?<,/4HC#=Y2-&7FL8IkE+]J4C81CQ`b1=C*6>H7h8t46FM`3SqM3e,q%,<E"Q;9#,=9>EP)*3 D?OG2K_dpG-Z7VlÈ­Sc$C&68= < %D?-8B5 !A-0+*>*# 3%<$WC);7:(D<Q$6<;8<H .D%0L7E71111111#?l)+J24!28)M-IM9C@8HXH»€0?H('786 BY<41?,ø<A  &(7$@,7$#:!E;7,;:.Q*;HP?))?Q.,"F= :3'\uO'>&C %;4H6D$0"'/+(#&0P+7C&T 7@>)3M49P8C48 9."45C@%5%:B3]5!&2;6?':'+2=317QS.5&0.:5%$9@M3DdP?5% @;<3?* '8# +4.*<m6h&0<%2>.f3P %>3CIIAP9K•œ<Rï*15I6(B 8+<H3$77)/"G&1111111._<X+6þ)/71=1J834@A  ,J#1:&2" /,7%<,.9ä;09;)*"?$-.%;+8ƒO1:& -0B!(<F3BR21?;CI:>9 8F(!)3.IMDK54B=.5&ÿ"" B59RE$H@0BA1YöX?@>19'FBK0LN9-=]62J3?2 "/MS¸ËX35C1</.-a3.B@<*&9<GD^[=0Yez€~ÜöÛñËÜ–´³¹÷ýÁ®ÜÉ¿w‡n$6"$Eù%ÿD$1 U/)&;B0<@*C4/&67#$-$50!C2T=29/pLU.,2'*.R21#M4;M+8:#8X+\N+7#&[GU* *G=0("Rm/5($'5#B)4K(9<_…dE9;$D=o >$E:ñ#A.&>'.dCP<'79IJ1#K, 2'6'I:)=:!_<V=?3E1/2/"+ ')*?JB"2KH&,=F'f+"700>+".$3+E]1'BL;B;9"$A=*.9?)h D:VdL593%( 5'JI -M. #0C8,þ!=/-K0-(7&U;84/+J#.45XjC:8YR%gXGeWKJ.9I-1 +59FnW%FI[3?ac6<&&6NE:&N\C'&4$?+75m$þ3FKOU…hB5?3!3\“¸¹ki;  C8D )5C Y ; E8,:*'V:154.5& +91G!/$94GMe3? U&/D.41111111@J!6>D-.8ù:9 "ú/59%4+#)HGG¨k5T30'4:#[8E=ü=DP/.G&-0N:?=%2017å2/#T.<;OK?=125;#/!05V57.$!/#)(;V|Nc?-:.<-:2F101@fa&;B&L=:K$DYK*N=<0L2AE= 90,?.16>'BC%!2F?52#09:$@&:'101 6-TùMLK/2P-<1"#(%78A3QVCD-M8SE(*0=7I?KSS;(eY& p% 6YA+60B+?< ø ).@ E]7?_QžH0U<"&"(4"=Fß(I90@#L-u1111111!)1(&9Q"*L; >&7-X*( 58#ZH6@E:J/!.@RUFUE.5?/E /;+N#F-3X=0  'L$FXL;G]420B"G6T10$J"M0G5 LB,%*C7*>@O'?5;C&!3SA.(15%3+8H]<*8-/<A">''?<D5+B4(>7M#Q,2#(67P1HiÃP1D-4<A.LLBB<,.3(77;\9cMgt|Ùa{O3ýóÚ Îä÷ߦ½¿qiz|R8F&'*2E3;A5E1R6#E5H1,I4H62F\?à6- $2"'7(!H 3+'K\7F ] 4L782-D!T3,!(/K*V6ÿ(;&) *+!)5>=A)31!CCM &DX¨ªVDH/6 '#ö%"/;O@ù#-&#d@6-:1A5<C F";"%d(%>"87J:9;5577>KA)P!9?0ñ+-/-Uk!>8úJ( "53EP!*,O@1$YTVQk49@Y]9.3 WI#$*>-33,\fL#&O286-+(-$7H J.@ Y):&3M#+p#92'^)N338$@?-&'F528C:+/? KH'&.@H: > T;7NC:6)50<37D,I,.WFR:*64<&@!915 :/CBmÀy<<5,NL'1%H; +%>K)¹{+ ?!J?7N2,8A#?a2405%,B0:3Y7#,IL/?/(-fø*14,1111111D5DH +E*D>JO77@ )(.V>:4,IE4 >C7!";%B7%-pD95[G7O'4$":6÷L,.:J)@"3@b:-1 A:H<"44!(W5)$I?B!UM5+1-ü-@  =XJ2Q44'HQEBf7%0G;!CAptk@>H/%C[GE;D^9 ++I C> IJ3@(:$'3#&M P6-8@.5W +&&M>"-,)CE +7'a;7ZQAB)47%Z ZM0cL^:%%5O2:8HO@ 03'$UY480M+8%EQF>4AB<5,Q ;;)%)<4G3JE749TQ84 1111111)7D/2 7HL.4þ.37D,).474251@&;0I*('.:=;9IH?J(#?#ZN+3633*K+,3LV04=4DA5G+1>$S:/6@P3PGNPEE<KDS&30;83E#4 '7?0J@7 !h!4O+/C+!=D@6IM]79D.$@9P>7DLH>K0A. +$î68A@ GM4"6ME72<!2D[a/r…kJ0I1MXII52<>[Syx}§FÍÿClÒ¯¨4ôÜÿÚÛÅzs^?ML86P'1':'3Y2V+^(FF>8%<PiD@,$DMOK=?:'/"$'8$-B7+bX9-$)8F7 DG,$ <7-!&3@'-S/7&+:M8Y*<8C<+p:#<SYDFbBH1>ú.RB.ü ";E'1ÒEf ;D<>î.0c)75$*5$Q,=9Q@()'=:L)3H€L*)/.1%,::0!'-HTE0@2:%<)9-,'M84(]<XN +#5'8LHJO%47V0r"E7,2N' 33]hC3->;L 8.C;3J9301$.0+J3=H5.62& %#2>A7+!H*475 D@E+F>@<9 1;H "Gv*W-M/U;Š3@.fH*L)G56E @'%2].-4=C%EL6? <4^1?7;F'/(8=‡I[F>?37A!=)+(,75BOVA +FDE,-7U 'G$,&,D-9-EQ1@'CB *4)#E3."/5%0"11111111 8+9@4.:&%P E008-*G4+51*+3.1@<2$5P9 +$CH6G]-7@ -&*''6.?(%8-=SJ%.=]@7:=31HK1C0GPN>9+Dú)'496 +*2*S>:;# BT(-9,,BG*1(,-"@A,Q?aBhZeUI>C5&&!)$6J$B?P+5>/2$3@FU(F)#4ö9-;BA+:?!)<D)+E'@),53G!6G;H6A6A05-L=&E)3?*0=4'+7 /#(,N +%5+U@f2#)*BN  +H @G.1>(/<2+I1?7M-=,$=*411111113<-8 ($I3(?EY6CY%S0.&J)#NIJ%6<-/8%A>=1(/"M=7-#R)C9%(<CA-  -;b I#;K5/61W4"8\!]&[`øJ/"95:<*E$2e33;412'-2118,.@H3"(;]BO_6g07jƒBm@O8BB%7_tl?+=?F5Q/AZ;18HC;,"&d.O?C + j‹¸»w„F2:<D#BLSD`sq“­ÌFåë+ 7 %)c§O]#óÒÆ¡…HYPG%$*;)'&*AC(/"]!&B*;;!0#$01 CP(/ 9Z3þh:$UN,$E!GA8Y)+78þ);B!$'A +5ò+*[ EIGH Z]G;:.''1=I D&3`5]%7]85S+ð=?H1G.EV,K"L>./%SB#36B/(.( 0K- B"á7(1$>7<1 +M]ž»Ra2U%<.  D"%AH!A(òE'<5<C\:1J/.G .$ (M?3[,6]-6UJe<8W4"SK9N..4+7*)<r3><C(3.!9I /R!55/-00J4J2!" GB5 a".!+(18F>+DAYwEg1#%$OC0U1)9GO>?@AF9E)G&:=($0@S +H-1C( K5@7Q H-8'\0$*51'GUA250'2 X#-A4%5W< +@*N2X*$ -'%"!+:LY%.265:L1@_ü%g("0-#0> '811111112B"a.G4M6ý?!@X-=0F/.("+77,5'H58<<8)($EQ'F(C61O'#--/$9))A91+Z;'+?7* &Z†7.oM>"K=1<228'!$?"*$*+E!>'4@ÿG9+FDS';?(5Y(: 0?S?:;D4a6N8%F"54124QO÷(#N!$.'7+4UC;KK.EP-8#/<=[(_WM6.;)7,&$G+<K!7<=:?9);0S. +@38\U+Y,7FB:K)-0$ iJ+J2I<+b* D9!(@G7S4 b÷%0."7H ?þC@C01111111G2>'<$= CL<:?Bi) I ,MEX64',+);- 439  2A5;MA<69:;1!K"-79HV9#UFDG=*Aû:I'\)E61:146=>Q);6'V-F>*3EE '0X,,==+?N7%,8S&V".+$F#S-- .qM5ce“IA7TƒudX'F;764.+{XSQ)M?4:% Q3>i6!/#$>F7QNþQ J`¢ËÊad5LNO41:>BI%[tŠð¸¥y ¢˜H ôëP3G . »­°¤?FS=A?&6,99V#9C0Q3N+g=c'F>96`<#[6C>UQI$+e/&F :ÿ8/+$H0-#(]I!A *$#AI/B,@7"*/ +*18!'l>15P +5?#&,#,+@<+@=5$%$ H70%\NF!/>2/"Q 3-$@,!73'#,/%#$L#^7-U BEDC&D^‚±sQ)"283+Q1I))+ 412>*;K)7NL#+S!*(9=6B;8(G_:7,/-9=!4*0 +2<)"2>?D@6D&þ3 - *><2AOW#G6H2N ,A>QM3\$"5%CCoAHC>10øS8(CG6í3GLE4=-<Y%M3W$CC7/&KNCI9@21F(4O;2&+%%A*<079F#16 % CY<*!S5+@1J/;G2;C!,,HL--û,&"J.+274Z_0?J=#.#92/ICYQ%'B,Glf3@614B7'  .> 477B1111111M?-B_q, 5e5þ(*5$G!,!->E%Q( N-N*b) +/@4$72=&1'9=&OK0C/& C./!M<3:6C% +>$7 :%U@=`„ÜÇK`$;%)?+(;$-'"0"(+$F)M58*#H)EW@`6S +4E&FY<4D6LK!(,DL.<*7FB;V,>:D+C$1+,31/-H-4AD21:3""?" 6+'!Y91GWF</@4.-6 7/E3CL!F+ 'EKW(JF!:Z0O7 G804*%0/@,5?9+@); >e/H?X3$$3""JD71111111:E7=?1G@U2RjdlQ: B#n2D!8176J&U,8772 +1&G"8R.- 3!ð12 ?:5)k> 1ü-'-0+ =462M-O;<N; 'R*2=-) W58+& +;DW)..DýZR8`LA(J$Z:'<@=Cñ/<0>""J$N¡ÝÁoP5.2O"1e089%3H23DFiE67H"650&2,< +O&. ?5++ +#? H+1F*Kr‹˜f0l7>59DI4CM`^‚±Bú8 +UT!>­ +÷¤¡D''öÄŽ›H^/>)+T21:9837V" <7 *O0EJ)C1)43:(&.EE '0.E0=&++..+?4"6kK85"...K_41*VUON5>O%GT4#<DD3198CA,7)g%(;*8$(8-N8.3*6-<^5,6L>,0& #3LE*FI':2E618 %/K"(R"$<  /')<-M95@LO®/<3@(þW/:D1"ODD9Q'6* 5^ ,5þ%*+Q6ð:!Jgsm9.0.).D<=1=,#/$O%2Aþ\?>8þD &B99!9,/G=<("0N7*Y+[E>? =>e_&-4@&?JFf6K02-04I#MHI)-(@8?U70P4!QJ::18:/'XZ/^<=/2=*./%6/0@5Ic-,5_-9@$>;G@);/2 9BC&C!102+-+*D!bB,!Y6?/"'Yû?(7#G@9%GIøM**?88CsŽªdC558=(#-427(B;#%m31111111M4+&2\Z[ ,DP6F$*#$%'4,:904Y!D%%$A -;30BH(+%5A6',O-6!0ZF#<)!->2é#3A7%ON¬Œw($+(+@%,+<9>2?.?C( +3>RH5)/U T<11JF@=Iÿ5C-47RC8.0LQ!j$I@#511L,0000-2@.).I.+)(2$<=N5 NH>41%&"l/*.B,MC)]46$G/2ET(:HD:N&C%:BI ':P=&L?0>0<'+'@=3E"%4&$.FDøS'1B2HH/K_/ Hò*J+ü>*@; +?-81111111$+1HS þ7@@Nz¦‹/gSD&Q*4L*1+<4 +9=V*'5R8,2FD2>@6LGO#$+!.O&7<)'5$CD>88J *3#:,H+':47#5R)*5P(>MF)41<%G/"#B:"D3)2@ <'5`E8+W—܇CaaHE) ,,40R%;K-5TE84;7S*DE#$=8A/@6b;1<2-MA4/40eR9-5??C( )R^'~QDge¡ÏKéð ní«9 PÃ-n/¤“ŽvRB'[2$6+:úHW0,5671'\$9=&:.;*>FP\X, "Q- 46+"9'Hö))#J'[.)ø-$'$((!R -0%3,C_$*YDHLFRC5G .$DSN-HFFS% D2I"A)ECM$-A/4,(D-A2D-5 $%-053 O/'H=>[B.% 42+-P&;QþD;:B4Y("6, 2"/8E93: +38óB<?20::8,vüBc=! R)]L<E+@C5 CC<PH4? #: +4( 4Q/O@4=<(G>0('=9%3 C:@!"+D/H-D11>L'7YTdHj$O5',?5AA+gE=1*\8FJ>-@9F7%,>PX8$;? >5B.-ô67GveMR@XL>K0E9<$(D;C,7A(/=(;/%*6%7#D-C5Ó92C >44I6--) +=V R3,-#JPE"EM–Æy&4!="H Q%@  -N:1 :÷l1111111>#Qr+Q3&%@EF;%"01Y3M+`I=$D7+$/#HER@ED%"E00<?O/K2/B=#1! ,\F"@@<=>)'9^M+A9"**\[F-N,F+I45 10)':D"%"%8#*)"AU%(D2\i6A&8 +=AS062 g86@7VR(5VL51HûBNJ1!I#8<B(<?!^9E(7T&2G/=@==N#88%6+@>-G_IJ@X@,P?/dB@R($ H(/595X*(34.SFS 50;:JD O*4B1'+F:%ZJP<4/9Q‚s\(<5CH$XJ2H';<1111111EQ6$<.:D>Q©ªVX_(.6,+C+/K1E0,/,3F=;/HPMU.7$ K$.N6$1@HHIU9EIV$)@A?82G<TH.7=`INH;CW @=&3(;77I&7K5K22 "e(@HY*8!IF/#IPL–5EC*H1,%R4571%>4"RNYY'8%6W+<A.\0CF(?=EHD$o.-SMC7\XE)6TO"<O(A[$Epybg´ý²M» +Œ}Ù ´¶ˆÁ:Ü˺˰ePjTT2gI3%>:2ùE=I_>M<230H%=3=0#'P$ 7!B& )5#'B.%&2e:C>:*@' >  ./!W?+)Q(03D*3.B#FF[zLe¬g)IYJ"}LQGC-+!ü7.K4:.*W $H?!%8@1 20T>)K%;?I!(?S`<<D.K%</N.. /-),.449/0D2ÉcO0 '3l2.8 +/4K6'-ôR@.'=*F0!%Q!*þ( $2P(0$R359D1 Q7(@YO9@#-7'" :5H!8=þ64 %!449LN+Cl`D#=#0aJ75K21EF6&P 5><'+/=S0@JHJPLP/]-II,.D9<=OJ@lL+$=õ"'A`DUqDdRF‡ŽJXTJD@!3`.C+4?)EJ0"#0<PV;<+0!&'ZF(A/*:>::A>/+P#/@me™£R(/D9@1, +A H5,>)11111114 K;'?S:>; :=66$)+X"&A")PK?()(G.@&$RD0hL0J8\M*&C39.ì!<+*G3->-H6XA9AW&C &GAK@^!;)08R9-V3:6=.-491/ +T=#2?+F?MV8JNS7@AL9EJ"6,A6.NM%(*J&8R"2 :@&/0TPN,T10H#F9B@*"A/UHY<T7/1.5&Y#@5!08$3"%?%*G@; +##+;U$R"'1/J+7/2Q8F4)4:XC<2:[mŽƒ´?;. *&P8&GK<2*K''m1111111\/F/  +A9?9MNd.P+ =?8:6r2&;H 9<;9;.M98H4(+E7$29"`L*b6A!&GB4S<=; NV(&@UbAB8eQ$V4,$.&$C7I5G9O1@í0=H7 */>B8394@R6+O)sJY8B$M )-K:"H'71GC% 614%#I<%7,.F09+F-:3>$Y&38]*i?;.1K71!CT^Zˆ¯¸n]C1u߃É-Áp°kwY]?RE;@I?+0N*8(I7@6OADB=4W+1&\"-.+L0 +%D,0.H575+,@<[8507F"72257A4&%.#'4J$ACPƒ¶ÕØÓ®‹ib\:hM&a1+>9[+7@Y~Q%94:=F*E<>6L>7A=28<W7'5"52[3 BJ;19J4Fg0  +ü )!"%KB&UG*7Y,<*QD IH *8:,4"!)D NMú#SlG9EIGB2:;<=L=G>")A;8'-D÷4B>((&-#G [&0$ B@/1>'+T(-F;IL"+7_’p@*]BJ "!L97526S-ý /!$6';8[GO:2OY"0*#i.;8UK"HEF=>a@+M]I@H@09[2'N(B!W:*)@:: yJ=i1A!,AE^H@EI#2( $C46);G+1>.2/@07+úY+nIb5H<5.:,%A 399)1B88cH€5x',:,(?7<l@,m1111111<Y:.6?0.%1.:&>QFN>Q)#T48!D%E* < !<!1#4(>$$-Gù1L@7646?*H G%&  '9)6;$KD@<G'ü9&/K2'% 2L/%8.#S#C72#0B$4GJ:% $Hý!"94 7E&,26F069828F:)K0!4D8),(>2:)=&'3=%=>#7/)35 /U='\)'86D9I; #!)$>=CL9 ? C4>!++%:0D(8[÷!*%?D>L" 1[;G"3% 23DZ8)Q) 2==THFFBBb<SGMI&33L1@Cd•9,-4C:1111111 ,0.;*'=OG1$0?FD;"// )X6S <,=4G%*E[55>M>!<BD5!3:!*,;5J0#8$S*;"#2=CS$8*K;ZC`)I&/P,L%2@L'BF#56*:)='=L;,(T3AN&%K'4VB.<K/,8O:769>1ñC%&'Q3"0CY)S47$-6*6.*8*A6(01713((C>0!?UL2K4=>[F@N:9Pof\{§¸ö†™ »«u3ŸŽ]…{R+2Lv9:E67(8,ô0T!E*E .''<(=U3D67[3 0$N"AEA=73()9f99Q!%!:"#>P))B&W^2=ZI+#O.1%);^l ù¼Aè‰Gç´vz6%aHQ-Ea02G2MP CV.*('>b8J.=$84D2.>KQ<BF :9 3B);GE+:-)(1J *HS;J&KNFT1%3(29!?)9L#H2+*"/A ,&<6X'#!0%+U1<-'(9(47AF2+A2N9*]HA5U*5C.'."2HD(78])>14/?;B8BQG+,P`GI1A1(20T"Ý:2H6DAKD.;@>2R9)R1-I#M01F <‡"5B$P33!5/5_MA4<H&aK:+;M88:BEEFqeoH?#&BF&@2U0#?)!(= +H.S@475,+ý. >Y]†©{=4ø-,@5%@?OTT2INAT15+4-@KPQ.+T@#)(2111111104IT5?!47+.,5.>:@ 6?9G>$A645;1:V)BI0*F^;4+B÷01 +*4?A6<C6I"NK!:4ND&!N./Y3"G!>0Pd9 2;Q,Q, + (8 )">3#")0 +)</>XF!(<P=$'86 0+8(#:;8%7B:<K2$#<*]N6H@3C,2/@8$%27&K=886 +AL#\P$T"U+X(*F%-44>7$c$G#81$:P):+55'.HG\1/93CEB<0]<#91" 7ô,HB$ 4+,5:$Z6AS7FheI5 bI7#9;5O-K"]‰<^9*=L1111111EB0I=>%)2>>V85MJ07/J"/E$2; I5C8ü<Z9(6! O3' F)@/BRQ4AG#H 2'6d>)0<K H?$-#)&R].<C*/&&4&2IET3FG9 ù;0/B:!'-y7X6!4'7>+V#6N3TC972KE1"$>A, :#Y3J A .cD9&1?;4=.G68NS4UF86FBA10C5-0@0P3/,%D7(P[GNLgmbyÆöíº´–i—}jm1HLGZ!743=*I0C566@0,!9eE64BK4',2@>@"0..>Z 45+I_z#JG)_E.;''2@7<?'8<i4:9D0QRh:3éWrÆ¬Ž˜qUs095'<11 G73 ,J86>:R7J83$?@;/62C)*X)@=\49P)):!D5.$ 3d@!#.3[GGA;F4/*0‘K/   ò4-?<))3<.1U#&;þ &#*D +E*[4 -CF/!7JD$"@A2.,*!R$7H?66[KR'65K&E09Gxn‡Yj9*JOXIV9@0=@^"- 0LA;þQ6 ó%3"J6,R5/= G72F2>'&I,VS!Mw6C1c*&I8/>B"-1=""%DHb6.D6>6(:.90'2R*.Y6Kk(-@:7;857#-HNN8@StËßÐb7.Q=;#490/5R!6PG>)(//*51-#>;ü%\@/*(%1111111"&96=6<-D70.42& 7TY003IAV58@(H*M1.58V"495@.C(&>#;/3&Rc40A$!,;GB.D7@5&&$)3**,4D<96H+IDC56BD/D8LP8E L-0",.SD/3C6*)>3'>G#P=961ý.4B=7E5=1%K@N:H*&6+G%GA.IuA9QP&F=  A*=-&ú<':ú/5JIJ-)7Q]6IC5&61E36R$8LG?56..K[9SWE&. 8@?H:?RHL('//(.?> 2:X<’5=%D"$GE"L"Q+[<zc1U#y%11111116 +3W2/<.S<V$,853=j)&E>O8-ûP.;<06-HJ6!=.?-&%Vk C ?:[="06 73þZ@sME(O=?77GC8/!!1.:#)@, (4 33X1Cg$G)7%T<BD-o@/=B 7BGM8&#>W#"6B"+/#*#,8B;6A C*%O1k=;3 +4##HVA*(D.3]L2i4EIø$#BP& +C7FA>9]XLMJtTY‹¯ËºbŠy‘Um;P4|HD=E 3.  'J38BCT8EAG#G41;2P8SC<a*B42û(CZD'E16H*3KF9!3'5A#ML6*  =-//CLO—HP k +y ª ¸ ¦Ë5mû•ˆY?N$øC;"CP?58&?I%1$1:c<'=I0 & FG55XNF.#1ö?"<#. NG'- +#) @=)/3+C2 E95Z (FG1%8xƒZ2<6MHGY<&6:/H2"%9@ )!s,%=00*'$R.R/:< 4K6#E) =/-Ig!.7,-= %WJ):0G!4/XÚͦq?=?#; "#3CI'GAv'E4@RN]P%A<+2 -=8N'?50P:,2P>:"I]J6<B;bX/Jl&;;E=N\/*!%)4.* +>A-"%=+  )1JB*$ &=% /#B0!9Nñ));*?O:MR88ecÌß·w: ,þ'<507@fuTKó3H,) QKI$/Fü+9#= 330*&J51111111(6N+A%TC0A% '#(T84!C+/+339G_5('"589GH +/.? +2%H97!&J?$@*^E.E:<K<66 A7*5<I=86;5/=3%44: D>/:FKQACJ„Toÿ-:.i5P)E[X20"#)60;7/'/2"W+,$.R0[RL:TR4 ,=.;<3'; + +'@--QRRKK$K:52_7(6/R/9./x7<cV[%;5::&&+;9*õ9+?EFA7QKH&261+`2I1#s<8,G\EQ )Q#*AB#6!5( -B,E]1$3"<1<BH6B+A(4õ=1111111;:N=2X#D 5?F!.0Z2-6!@*&<%2%3%[U)TG]I&78&,8a$2-ô!"%&85 >?H? B,D,J3C%1:`7PNAL(0&)RW;+"'0A"O/%3:%?4?.&?+ñ 016!)ûQBHCa 1BA/<F ,/>;?0i"EFK(*!BM((aOGMAD>;8--E1%<6)71"$0/(7J:+(< WZ=A+>>/CSu1*JH^y`m‚og’lrQWƒOg[M,R6?C69B3/E406C4C9%=:[(B=7J:/< -D(/  1/QC %.)3Q4ÿO;W8ý'0$ L'(>OCþ1&2F#)]m{!w‘  —Ï” ô–†BØbC!@?3 8&)" 8'= N +!"275 :8H7B+=8.÷5C0;3(.2(B. +32 "$)I"'1%(ZE 5(-:÷'*0!;$,D4$,g6D;>CT+.:H 6K.I ðG(JE*JL\B&4ñ/0I-:%7?3DB*#J2@4 ;%2HKW;NE33EO+J-+1bœšl-C:8$#F*,((;)':FH* Q!AE127')"úø U36""KW>6,:+<5H$;: 5PHY&RL*uCC%#C+ BFM@@H, G",/**Oõ>!@%,-73 XB6"+['B: @.O/C#4@bg±‡_<./8ú &=Gp’Æy-$Gð.LD:'Q-8G$>4Gg'K>1111111O+J7"+888("9W*\4@;N%72MNCN,O%(/S;A484)P÷V7'!! *JS.%F2D)MAG+5+*R/9.>">!.W>AJ8/7/!@?SF.I!9BVfƒJB@Y'?)&!,[&M+þ"$3&/?1!6M$4+(&);,<-?7J2-(2C]0)/'?1--FCJ4E;0A"07P132''?j‘9LC9G,6/%"#+S@-=)<î28M"+@;+"0&VC?[50 @-÷>0S%5@I?/@0A8>J"9' +PF:-9D+'#!4/B-I4AQ111111189Ba(!Ya\07=,A4*T&303!.J 0862(&9/AH 1=+ 9"7&*;H0)øC4.$IR5ë*%.Q)/<I?AXQ786<P"Q42&'+2;a4$;;EI$6()!'&C0$DA%6dL)*)?=D:9^1ZCX3.Y4N0A>H!2!@&-)= N00e9B2@G-58 K*3 !+ý2#B,(-+XJ6NV6"LQUCX2/GSciŽ=UMW]`W“1/mQLC6(7J>A21NG3#550J9=JN> 9Pô*;)._>&7'%P(IW/+8'/C@O=3;6<BBBO*,@!?#&]m-N;9euÚ­±v Ÿ‚Ñ% @6ýÐLH63H!%'%$L)5;4 (#L)4EG4A^:E!,+h.)%;43ED$);4LH/\ (/F:P45P"\"(&T$1Mw&E @K72$]0>#5 V850$8.&%0:*.D83+FB„…@K/&C-18H,DEDDL.*>"8/ 3d$C.@^+,;.V<",r”]T//')+-D" 3#O"B<.K6)*N%>#8?(7/'1M8L<HP6K=WW*S>(1($_*F>#]7?F.0K9HOH$@(Q##Ca=3<IELH@=5)C<$) +#DAXi82&74&)6(+(3*/þ_I=$<Sr€ji [5BS*C%!q¥p>)<+,0118*C&F,>%CV6"ýIL1111111&F/:L$K5@%@T +\9/"-G1N(P(E476PK/!"M6S9+2+Hý5/&&9I3)73%1C?I )B%) = (202!H(Q *G.$5Iÿ+K úRU*<4@L4-G7.44G'.G:I3,- +==&*@A(84BM?(C% !40&LQ:/E6,>7@3(4#MOMM'L->$>81795=0[G%) +2*.&9:)-JR`Uxek*m*F#C#W-ô3:.%@$ÿ8F*0K-+Q99$3&<I1A7=222$N,UMd-ÿC58A.=$/J2f3TSR9<\=nLJ-7?CG/111111111119F&/E ", ; )#.6/Z# ]?þ<&^?F>*,J$.Fj->2$Y)Q1'=1-=*'996%U; 4,3)3#<O> L37B4*&.2//*.1&7785QK9iKB,D(   =IP5*1=$E @7,/Z%K3,lxš²¸rIAB*<Hñ,#C47WF(:*]<$'2R*0%@J6c:1>3/)0=8*E4%;933Q0A3<8F:(IiJ7D0`BbOc4FE6Z=@OMcg&F4F6vF1,S(=5+C-)(.M<>+$I +GF!JL>S>P,>+&RBN)?4DR +81M.+/$ô03V9V<6E8La.1"? BB,NB8Ÿî$a Û‘{¤x D 튷o70Q+$1=CYX'2$AS>A+Z)JE*D1>H13(71(I0)Cf^<(K*7(3%19* :.]-8:(TJ?3?K:F,!#++??08â)Ue<! +V=&0:!PHWP,= 1/,VFXwwF3M83.$0(I-ZA4$Qÿ;50H4)>C28BR/&&-;56C%/$.<@M@&)/ü:+<)2h. )"!-y:) .K90.9Y;<!2b8VC!1%:2P 801&PTCG1<*(LRN?%S;8qC9D'N5j?0%K3+(*5(-"5: / K67"@+2+%4 <0)G:)>40,@& Xg_E0@ ùþ>&9!2>9>E,V*#5^D;B1(1111111,$$/%7#B123UJA$?+3"øM:$.,7U(@&F#T+I ("4T\$#-:?G8"*G'+6$AJ*+:W8JD&J/<FK/ODI.S2)'W++#<>=P>&9(@(X@>IH.LSA2,+DO71>68_YüF>1&DJ#=A@#<T2@7BC31/ L.AD!*-1.:\T#,RHX(7 =}31,=H%1,\oŽž„Qe@!!"IO +(7&#&30#C" ,BD,.4:>;?EU656F,:7:."46D.H/<AC*A%8O?1,ZcHL]MCeU2@(bM6CS11111111111>99JL-M)!,$ +K?=7*;X6&5AH- @;VC84<!8J%Q:240;5>(&.3*P2$6$L#]-E6I%982P"X54V$H<=)0b' S5*:69:BOC-)!F4$'$)!0M=;,6%$>2A$X1:hx1ë5º@~N1"4!&: +4+(1:>!3:B*3;+D0\0!wn,=@="4"JRA:; 5.6<//J<PZL.W3Y9?FUUULFRI.k8j\A!#^N9v>0"LM3:-IO4D*;@_G*==:8=4o.95G8Q?0AM\2JIH",?@F0J-1N$J-@8<5@54>D'<+H%GC7%x[¬Îxg¬ +Ëždö ¡ +{ñ|w0-*28<"M()C//HX2R],0 ,T1B9B"06"c=4!01OR0 #DôR,<;#%=64)x,X/'/ L8+$$-DJ(-<'&JUP;3A0$-Q&*:F :=.+ +:#EP;|]2f:;ü+=;+"FY=.EF&$F)!),*b$77>;&+V'PYL1 *0" ;5(-&;5//:)< .*3-IE_@(M$;3#$F0/#B/IGG@B*"6îC1C +-%<A31CD;b@75:6Oó4DQF/<;<#(U+G(1;>7=R&6=7'<*"2&.13B4d6$FB9.1E%143F8#?F'&<(4I:`@! (W L%/L 3D230?<FM>#3/1111111G+6Fù1 A<-65UC$A=A€TFY) =)*.(8C8#)O$:%+?"4?/+#L5H4@;>:@5#7;')-CJ%)*<Z(I),+;\8<@IP8<A1E(*5!;7O%d3%.<+-/A:t'71%/S&,F!#- YXES#+9-:.=#7E$3.M5I+G@&+>."K6>#KD26;Dm#&I7N??dI(AU7E0.?8'5 k) AM/*"@Z%5C<**.,G??E(:1LA!=07DE2M?J[0R@>+<?2d*Amykptf7eg[Ni/BB11111111111%6DBA0OEH=3!& D-(% &&T-=1((??NJF);#6/)[+903LZE+'5H3%LY&AW%8#518'R/3?-:L@J>I)4?'6Z6H5B/#8L=0=ïBF3j3PfQ0 P4:E D3'8k86C@9$<5®Ïi¨¹[HZ96 4 +)3=*n(?û:1N[-)P2*BcD S+*O$'/15!-/%;:0:"7_$)b?,FW]Kd9TH<3HAbC7G0LEVHQ\\)CQ3&W/P2<.QJ<1LK%L*TJ0+ JúbJ&+0'H6I="=M'%5D7917f86GX%=9601#,:<17+3C7' )5,C4R;(Wn÷_ü‹ +F  Ô  E6ä&¥5H/&Q."*HL,<%%*0A$C")3Np'5W,8?<; +70õ.[ D5;%'-"7"CøC ø(E @4-76:AE+K-LQÿ A *,,5<#5DE&#:7B'(?0;;6P38?'#*DRV<K3=$UN>3$/C8/</22 W`=*$&@30,SC<>'! V1E1=*?BB0+8/($L"+6N&SE8IV +@?10/"+5+(.59!N22S0'ZA&Q+=:/'X=7+_(6>0#cH]LA0KI-()<#8 =?:F&H#7)!),>OüB-h,)7/6&?;(0 "#/KFF0:4J,mB-BX7 27$?!c98' @9R7)(.;&&@)5P]%931111111:3!("D$/KO+"-1%'B4X <=!,,5=B><H%*8*2H,#5@09G-*HU4 +#. ). R15D6)9< (9H)4/\%-(C%( D)-k&9Bý-+FJE'.';7L";L#-9BWk 7.N,ù=;?'-.!)H W:LO=;':B5 W&=4) 6%3V4)==&9ÿ%7#12"F.A;%<(HPNe,@5]5@(,:JL,I&,5BE&/!3[P(3E*,"FUC6T=\=71/'$2R!3?>62&C9=MN*.Z\~À}m©vˆW\=OW,6?11111111111'D4--3$*)&Q528,f9n,7$' +Z;64. +.A!"2D#&H#5a)2>84. U<( (90*0.;0I-("6<9 34$/$E4:CC"*OL"";S< $:*<.I A2:H6J)X<W5h9%^z,h‡ïÊÑ6VG$I:ABB0?E,CDH.4S0E49P4,C!),.3* R%@70290&6-Rx6?V9LgC(")Tu:m'HII$AhMEM$I9N1P`U?2S+2NC#MK)(!loÌʘ{4OA+$+J1:=@CT 0VB>(B5JJI2(A$C3<&M/7A 1/= 62'=D:+7<>(+K5><p±éVΟ‚&Ycuó‘jAB>J08=. )(R2<0%09K <#<%;2 +-*+);á4AX*?+@(F +6M)"))-(O30 5 :Jû&8@>=," +/\)H'1<39E+>ý= ST 2G45/N%0=[,JC>O! =23= !AK=:4F,1&<;)G 'Kj2(-ó=!A" >K{.;8û:"9)"'GG,v8PEL1F,$0WSC)C8'*A'96ÿF<* m/<> 6:6SJ+/?S9.(1B;U$7\+S3 .*@=0#08=956.'+äH#=.a!="/79+$*%! &4R,/&@5;A2.HA;þc*<B0>JC,/,+S@MD'>6E +/91* ù<^ T$-1:8,I1U41111111MC94&5:%,%N=K.+6%(A.,C+-GEA9<4+CJ0SDC,D.*'# +TK&8L/ -Mo&B1ZG>é7LA54#*%D? *?.1< +I`*'G265OS;8`\&4TA5-9D<>*S"O0'M;b %!2JIJ#N,&C2IH(%<Y.=2"M=`)91A7G<:GAU+<2h$+)@%9ô/#9HB;I/9O#9E86#4O+:: (O%1$=#<DM2B$3A[/G>G6/*53'3.1A.*F @4) <+36E4&4 33$]5;U_F‹Œ´§êž¬¬bTPWGAD!11111111111-QG:<42%!`W41C3G,C/ =,'9)B98(; !A2M7M0)EIÿ7,--Q-7> ,þ- 8>1/ ð72E<L41'G A:AF +þK/H9i@P:/#EHn[K&./D6>8>5?</&:0a-=G58TSuØž\FW"C 06=BA4e#7h8G.?*?.b5;G2+>/72?=(2"<0-GT[&$R!G?jA:B3ET9@<1HR6LBl3P@T'Ej<FA5qH200Kg>SH2'6wY^‚+võæxk: M<GD!Q2&G\(<84D #8a,@=$ CB,501gUAA3BaL?=(@0J9=>-Y4&ZAWMYhŽ×N•×µÈ~«a>V,/6$2$?=7VT&<8 3*])[CI./MR,EEA6QD(= H-005E"'@R/%G$2#)!!L0-6SD;/)"(66+.7.(14>K",4:Z&4N4;==/8 *JD=,+.#*5!# H'Ú"8?9SP@ :>.E9?N$ "9:# XMN-34/C(=3#:3)*(JS<$&W=6"#%G65‚9 +97$1-aQ%7STZ<9AE2>E65]FD%8N,,._@)0:3+$-<LG1E87.G5i;6 )4+-05(5-o ;0E41 T70G$Y.+/D+ (#.2*C=/û*,.B83<96 -05CNP5!E!û&.3<%PA&1111111-RB:+F-66&B#/%N?$%1e'E2h*Q37;&@1,-'3WC”.5;B8bR$"NKIZ- + <G9R5ME$I;,<0P&0Bý+I-;,ù ,.(2;9H(N_'@M BZ4ALgT(M44/30EJT"07:/& ø('?6$4I i7E4&3U#3HN#@/10&1)>R(05#VLC*I@< +'%ON@T(-=u<^B  B A #-E@.+Y2B3+#156A,'8D' #0@:]?(/(X:#?IK/6T\0K30'_‚¨–ÌÐÞúäÆg>K-F9D1$11111111111ÿ&H'Y+";<+6Ei1:=+(-=-9 0@6*ZI<2! 0?D7=/V.1J 87('90mA5:S@þ%:AP1#5Hú3='56$/794:*.286H8$3BM"#8N4 .(MFA.*6?'D 6#-:A/+F+*28(?7-lbz[7@436#FHIEAG'C43&L!-:*?,)+B<"8'??@.,#E95<Z#$A93??*A=8I6fRE;F88(I0>WQ&7KY6Y#HG=E)(S^A'<3@4ÐŒ +G ŸÅÊrO6(-M<CJ$;8)*GK05Z<0!%E=;8 F(# <ML$B@-8/j+7?:EH8 9&BC89;\/9pÍã é ´Ì§…FP^ER<4 )7K&:5G';K>)7N>J->6$E?=%0+]+"+7F00QNòC[G1,=!(C.þ5HDõ3/" , +0í5>-30@.*.,"-:4;*-7Dq'B%8P70E"<:+88!$LJIU.'LG  ðT09` ON[3:h1@")1,M4C"C4f<;0E*<0!8<V4ø'"-.A/S4/=FN,, 4H51Q0=A/L"C9;N:@&>/OBG&l%UJ41*=D!.7+ +'R"!E>A6H<F,%-6@>:.V/-$(LH74Q0H(/9O'7:žC=/9&ÿ8/$"$IU5<?11N 7!);-.!6(.-FJ1 CB)P#E4%8*-H=1111111$'68 ^:10D-(B=/S,2./O0G/8#H(@24)Cy` @,BEDG9E[>:AB(1)30" .Cf5+0E3BMA..0&GC' QC(=!B8""%)5&4J/2L$7N(Q3D#>9F40=\KKI3+',0W LE5A=:@7!@ 2I7C@?.9W<.>R#$1*141/AZ;1:>B:-.+-!s>q0.)@îlK%*>X' +P9%=+ +9+#89_<nS+=+*#2-"*!-I+V!9+%0ê0"2' )/,2C5"/-051@B7J@yÞtðsÝ«r>h]S'5F11111111111NI&E0*=67?JL//C'1;9<#0787>SJE&4L)31.u!94>', +`?;þ:+?"1.B6-WG/4H=)0*'1B,"?$A@@L S#5U,34*/)/8G! -9)F@,-%,5+;",5&/+\-#+@%47GQXYDDWG?f",U'-@HE%<13'$7/)$@ :*49]$;11&9 *F!  ++<0) 9B<952+>c03R4#QT>*-bYVbB;d4*"2;Q&:CM;R:;,E19Lcù» +÷ ûý·¢JXABFLM41a@Q2C2@%1=5W3>J*>9H3>5< jE'"(VG<9 AW 2/V01)0HPKa\~sj—˜ž¢=SeH9O303ÜK-!209+K C5-(9*h63$=2VB'J2&.FF.7/Aþ+@OB'î('%69W,+)I2& þAQ!16<1<9<"r4H.@=K:87H N)$ 1@=&Q2:,$W4+22H&"$'K7-9 PMEC(Q(H>F9183)9:B2(:/ENS>*6$E?*;+øE8?P#5BLL%E,#Y@G$8N; ;; 2L%<;=8AC&;>)XWNK443I2[/V#3/;3B9Z . 1DK%*56,0C$H+51CCND8(**$+2OR'IR&6B:r937 .,3@  9/,K508=;8+>T?;E!&A-1>0F.7h(%/%&-2B,1111111T'#*;*+- 6E4Q;5 ñP.3`F_/#1(5=9ABP4E0V1A.;'B^75V9/E9ÿ7'1P]"/.MQ&ù&** &=#L1<A3<)(_.* GVCd`5d(;'+$<(#\*,C1##/9H;5J=4*GRD.H+=$475+IG$:*&+04AB*@ ,$O%)'.&<*29@J/,7*XP5J@30AP?:&T :G>!O)11ûAô(?E!$8/F23$-GU!*,=99C@/33);J 5P4@6@!TOH VÕ¾±Âfö­]@E8+;.K11111111111  2@++"-C#E#-F(K3Ý8?*DL=.PD5+DHV:2I<"D.(%('B:;$'!6R!-E0!QýB"<C G0+?0C7A$.h6AI%<<14,Gý&1 4;9Bû%A*)$#6 7#4F200/?+3H;P.A^0';&]?--<):C)^ D&7+4%>O/N& F/+D"/%8:-2,*:4=oZ-KO["I2OQ'PI*O47@Sa]CY)>-1=6@f55%>E04E;.^,WM\}`Û@ê^Q5E6!%@5%?L)1+1&2\>$O%-**Q)((H#.E3 =/:7=I76T :N@-$G5O1F"Db.BQ!{Xdn@UP?0IX<&3,E1$:5&@568e4M-<18G#Q0:4956**9!*!17154!''03*S<)^û[)?)((#70+0\!6/H@  &=û]ñ! C"/.),!JE59*>VD8 ?X?7:O*(+ìC-181C.9% =P/1"=`/0Aí('+<@;FS,4.7(']5ïFi ?5"5:) 6ùQ2IX2-`2>-þ3@FC/#.:8-2 +L$2'$/1WTzHC$+$,#J!'88k(=4=T)B<T#515>';*74(5/7&6.*1) 0Q:**5JRA"1&8M.-%1E5S3J3K62I:Lÿ;0^A  <(*+))7'.$.5N5&&ï'8=$>01"5..0'+1111111(+!)I)Z= >+  ) > !W.@>5F3C6D*<INU7E*3 &9/"+R"*K?S,"!/('4.,N!< M=7' =8,JM,%$B?+2#<->=,?&2>3:.TA) F$5<9M&"*T$ .]6Wg$h=Z&CV1H7>.1<A4+-NAC#Q)*9-R<BJ)3%"BH61'9E4886K?QA1 +-Ek9+J`0?&%(M+(!G;ET7N89:1/@6+P(' DB1+-G1#"C@5B'$/. "òg=55=K!Ok°ÓJ.Šÿ@|"Ñ]5BE8^;311111111111-3@(8!3÷9:(4$)S99@ E#6,A.86< +G&2;A#==*3)39'6(>'/l =!9.*<597K#&$0:1?(G8UJF9)??D3<YN/GGH,Q(+(G+9( .n2)4/I%O/ T">F9YPú!"'.8B:HCD-A,%(mõB?>L#":5'?#:B-Z)2K#+-HJE`FWM?i=^PB/2A)+:AFN/\V8B;lL=;<AG5 %÷"$HNdK‰ùìÎdY* +2"F<1!-7H,V:C)@(+ÿG L%9L0.L) ['<F,a0/$;ûL#2.20;0 4#3Ib9"hD>fASEQQ-BFIKZ^ 4%<BK@K=QE*1!]$1CE3#L)9H'0! ' <17 +E9EH‚M)<. 4í=+1!8:$I&-2?Oþ5*8DAMP758) (#6?ÿ=+:4L./)OI?/<".'0%7-1#@.7<úl.6.L3;%B'6$2SN/5a-"'A=6026c8]':5Q,*@3)A+#XM +E (#E ]&D;&O9CnH=V#-6)B-H fvƒˆ+Df.N"C94,CDT88AIR,5W)! <9*!! "&,: 527F-r /29L.;%4/?D:ÿ/;9?+$/"#I#=?I*0FRF +M$:094! <7H"9!+@5)/%"6-1111111883D7A??**:1A=-1!=*$$`8:@K1:þF?.%4:B%W&&%/.HE] +53&02K*9L=JB"*4/<.&?7#237æ490Bÿ2%E2a)."K"'Dg6>t5O"#ÿûC="<I?O!.h<&5%70-**1,+Y-.?4#7aIZ)P5 1$ÿ62A-;%0=' 7+2$>O8*< 16+$:T);$02 +I1%=9"0>Q3"+NF&ü&'B@>#C3+F ?JXM9SD,[Ÿ‘Мî‰ó™É;Žy8.85Q6311111111111?ò:'@#-/,#'hEE +D)(1%@9=3H+=-/1E+;7$%E3K?+ 3$ #.FL7*83 O6*=0/3:)9@,6G*1O!1ò9,)5+.3A.7$>.ûBF=N7#;T230 ;47#7H>I6/$;,,L,0D2E?2<^'&T51):F@(&;T/:.%764=MVs=h,H%*3< #-EA#B>$KMC7R=T+ @FB>$6Q1FDbY5T=o^nG7>G"86@D+0K1Ffwj~pW"+7D:69X%')1/2<'?+2? + ECE9:1<;>þ!+q)L5dA$0(Ø2LUO8ZJ9:y6H<K-KFK=w;>+ [6g'0;+$3C;.6œP+.G(-M47* >^0(H(4ûL6B+%.$>&@+>S);8f>E! '<ñG,%9$=%',3"#7( $!.7H@-=2VM. :<8é82>)HBU_@>E,%4.H/H)2ÿ:ì:451GG+?Z9@B-#FG<!CJ<' 3*C9†…O2*('5G F$54+E4a'373T43/9;H4 93KO$,[&O/?b†•iD (7P%7W:Y9;+$H&Fz:(N6 4O0?,!<<( +14,GD952<K`LQFc/#F5*+&,*7$OL/B,4FKM(A5&ô83!;'4."8"-I#?:!?(V)E111111119 .*$DD.K8' <7FG6<&P*'<&J58(B5!W?`2J+4)#5+.=.+"&Z!N;30#^N)KX9(GI1 H/;"@ü< ù7,'6 ?4.ÿ&ý4G<4% 8H:3;2:9:dAE744=$$*4-:D&<3".;365##,)NZA# ;,K KM X /J#0+X- +;4^-J^=E5JB=&=3F2þ'J6 +RE<,A*K2Lþ3T:e/-&1(O8,84H[97))= 7KC/"EI33:7'=BFUu•®#ÅŽÙT—y†Þ³QU:K.%3 G11111111111.(*S/! J'ôw(8,CQû!(>$Q.,/662(#,"($2DZ<IA>w8=+(<71A%@;J9+0\#`K*P1JG4&.5DC(:;5"%E((I9<,/B":N5i?"-//E50>.%;%P97C=;6: -,D9?@ 4I<HH)8YMJ`VSB@I%:V4ER%D#@&7<'\@)A6)(&]CK+(1:/0}NNW 5 C5%,ZBHG2;JF,<&sJ> 4D-*{08;1V0L0/J@99 SVL+2+='5UE)5LBE1M4J9:!,19967_"V+0$0ûL19 :3IB9*D"[CAD;&!P%:4?WP$#78VVFE@X,[3p<!S3 2;N2NVB84 *4<?=K%*E(5&G\1DG*%K-<WRTZ:E$ H3'H0DYA!)E)Fj@HV1P + "2W"+2EB8 +ìä()&K1S<5H?0&ÿW[28=')"*+02=2`A!<=%GEM  CC:N;##"H/,A$8A4!E *(QUO!Dò68O/4N-17 -2jPxlh >4)%+BøI;6 !&-*(C06K;ESûQLã$&A13=K,&2ZF^€V(:+4)NI.1_'?2 6%=G=%8IG +4#( )C&#"(!2<"5 Q1iFW0LvKH0'/[R&!9IONH'$;<L.S,7@&!+PD0(-U3:)C#.*!/H1 $T/$31111111B4.*FH;9%TS8FT0!@/D2J8=4:0&">,9:Ix<&6Gå 0369î8W&87?:<$:I@%-uZL=19= 03+=/6))*'4DH 7ö($)2;A?B%$<R/4;?31 5='6,@ 51,E`0F$K+?*ö ;9F™eH8P Kü)0@;A2Y9N'12G?O!. a>&5IH*5DN8J/7.><K)(00:J(BE4B.%?</$309E%'?U`+O aWO(!S<1KF1MC6)(82;*2(#*isäóž…š8ô‚gA@-7*I11111111111( 28)"#6N210 +P9J)9";3N.,)'?-8?:H6'4_,,="9ú'A.E1'8*D./[0<O$ý$+B 72()&<&L+!I%DX"1,7(=1u/&F a=457!-E%748A3#:&7GRW 22<>49(9.GN\\@=JDIZ"8;3E;W)9H1 6CA5G,W)2RC824KDcW#BuS7" +<476@6Mq=.7A6@<R0%81+ +0J66"a4WH5).CG1@7)8*07/R>8[ <-;?2*JE/2')8/09F++ :M !0 628.*2W,>, @O-/$H*<:D;/D)+HPR3T" <1!b#& $C@@91B947$9)0/*<,+ ,"/O5:9<J3:&=/*=/ D8 J)E0,E!òJ")F%AA'ø  )0 b,71.<%"$,&XIL+D+0B0<AZC z)IGo"/-`@6-'&8,!B4=1@847=@:+@*%+2)7Jý.'?Tv  =P04.21,F&?.///38>#>!4/0N*NWX<R6$a*9R"DCH-6T$:JFCO.<-TA +',6DG@"D/Q;#"==ý+5<'1;!ÿ $&5 ÿ(G%2%@kM[=Å’>AJ0#9.#6+LFE_;7,6b-,`(R<B;-0./YL<+2,7)=L,(>4J/$,V51D).('>L1111111W76+6C?'4Ma%K3<1</):#RW(F.0?6B22):4G3QIi9@EC&%+1D\Z4@6$N.m6geUR8+P7I=$%Q:78G0!:@$D9%3ú:0%!7eA%.>B/-L<DDN?!P*G%&<C(/<8@9,,>Y@D5:<D>#AU') 1U-1%83C(' +R=-200; -1%D/%+<OR.F9.;#98S:59/U#!67XBA42&<23(%[0?'B ( -32B4-7P+#6&Y7N/,DAXŒÓa9r¹DØ9¸„eE46'5:$D111111111113<2+50C0#307)7û>%CR(A31ERM/@Gf5$1+<f6&Yc0Y(=/I60ö +EC<AS2^9,9T%E7.25ù)1)0!M'""K#>^.: ;2!5>Y*V/)OR A3+0*@)*5#52!E'1H"@<A m03,@#Q%L7M#F;1C(( S*!C>LM)>*,U7/=?W )5@9=$*H!@CB+<,;U1FL_9(AFV.4#MJ$?8$P+jU$ûFHB!E/û45Fd62>.=$5(I9(?)T C4%-N5^:>,&;-*4+=0Ic,B0,6?<8:A:S;(20>*Q@M9IA&20E=&G2,AGI6P?.MO2,/3.D;^H6#/2?9.=* +.31040÷FF70'ù1&< *5øE=Q9C$AE&*)*!H"7E4=++õD Y88?;4H4=86L,+&"+)"9D=1@DC648Ka121-;\)0 N'SI)> .- +(4?:DeJ.N??):31E.+@[1?.-10û=!-DE0B40F.::+CED]<(D>C87=@30ý. &9$6A070B'8V1A6H?Z%+.< 97/"6;+<*?9Iý,Z#,$W(),FM@7c˜‰f7+E7=L>HDý/-??3=5 9=&3F 2')5X<-1*.C@AF6V<;\Z:<4 F2O2-=81111111Hÿ1*V43"5&(7'G1"?(FABE&':U"..$û5D6@9"!ù)*-.%1+;2&*1=9*,VE2P.&a>5L=A9?6818## +>g0H0ô'.N*07DW;59c-;B%$'-'835B=D0(/&,2495@W8:.;A;,=%Q:04 )6 QC0:UR5\0FA20R5>'YI/;(2,:?J2dV' H*Y32&9-8F,;%0?.1% cR<(3C2587AWgDP1NH#::#9)X.27K"*@/f³ø7]ÅÁÁMØw`1J O8'#11111111111<(5OC=?<4D^='?J>#1?#"*:?,?(ê(A75&UG%'W;*<#??#'/&)@$I)!‡wH.J#Ca)k?DNCA$;; U:'PA,("#IH\9@45'A. +;-0;" ;"T6O:.!&72@#,J@(413'E 8-D*ÿ58&ú#1-"4<=L5 %%H<2P;02-:LCI-*+$_C>7<)#2)4a +$D75L5=75(G&2Q#\=9.N&L5?^R38X/?Z%V;QR8 D6#(ü))?62@'#J50&)4-%5F<-"e'9ALA:'`9 V5)]%!.PEB-?6ï% 5.O7?*ý)$5110HH?:N(/7=ü#68$/43'7-#&.V1:-4:,/3:$&$2-62è7A@+Y @ôK=5$V$[IE"A ûP R XA#+/>=20V&GG3&%L**85$&:÷ ]I"Q.&E16?G3NF/!)ZK=% +<?#jD=<(O790'L#I&;!,-(:(K+R04G5'0S26; .2/, 1&\#@B/51B24Jþ 5Wg%>ûM"";8%a,I6BH;>*ýK+,=<(#9C/4*$:4Q;Y!1N6B,>ý-32/06-(O==-<4% .. 1%;// A:GN+45,L1I@2/*?.,ý*>'%$%4*<:6#.Q1L A8;M6A9:!?3F7C$Q):P# '+E#11111114&;:/83/@2;2=89F2X1$/=#L;2()G5D. -J5!,Y$+%)%27,( 030$q+O?4 <E8&:!O A7"-.i9+0&4(2)(78"+0G#4B"Q^+%S$..62(MI<641*)G+E#%A0L*0?730;+,#<>J;.YLHA*A^'.>!5)B.#Z<7 +V?844)>(J"0%þOARAB6>5+0$-1ð',I7#<?1 -,,J-MIü&.0*G>["=/5:QE0V2?hJ>'-KF5on à+FA"¯diM)D<û&YC11111111111/*TP**' ')+0$1<>J>V1,>N!9AD5Q:=!*8,C3Q%M3þ--31D&@MFLCW;%99<R2B07N2#(75C:)#?@=A,B440* =$)K/ 5E)0:%, /*+#M#GJ!H<CW5IGL7H61;6>N 17)/3LS#&Te0(J3LRb-M $,l'CF [0u*S46/2%!2B%.IL-(9O'#1L;Q6ÿN +**0?>6=AB$07$^'+"8(z7-K:36G5&5-G/?#%+H(ý7F["2K15ö 5;3FT@$ +&\<0^O[G=). +4-;0'KO<$D5-? :2$!{2+>T6B 1EE@H,6"2/*=I SXl*2"EIJLN*A%Na? )>1/X:K9T<,,0-3D=BGDI3857òL"öO.4-+   7-ó -,!-7*  .!W5+'0D(=<M#5E35 65C87@#3H$9 ;F,3 3<+D" 1;>,F=O8@A73//5 9)HE3!A98A)H5jH@N09+;<1^DCL)5P4:*IC6'536*-4BD6<4P&GLJCP$@#.F* ?@B)&GC@/'  +15.I 94H.49N*9; +3ÿ16*8 +<.P4ö 8>3J+1,;>47BRB>@7M)-!7GVQP +JB:W'O"CAJI/0+EM#0:1111111+ %0&K>.-B7B=L*L30K2%6L!<077;-5=<0)K)&@+G!>)ý$  44CB(\B'ø+?-KE=,>+M2$546)0#P,.KU 0;'ÿ&>*D(`E'$5õLÿ,\?2:8úüB(#1>+) </B68:#2>I007@;3X:'@/82W5R2+1!188&j: 3)YC+ +, 08i4@:$$H6;Ok:D[A(=L ;2"/(9=<;KL?3&"&1@Y@NT,#0?/3LLC‚b4L4/K ;@m„´»­¯³[2D"!E'O1(/111111111113(&%65!G 2;7+4$>,:(Q9R,@?$'GU/ OKK?<5)8727i4I:9&&3"#!HK?*4,")5ùE11#ÿ 7=3658&1Z%7B3J99.+:9,@:#%1)RôQ,/IM2.7AD:-/D3C?!>1<B1/'=9 (7  G$EJY,n*!0$E=")S'379>Y3.%0)3ggo0:33G?= E!A0ND/7SC*$@J$5-? ?<,,0HA.@B\6ùM*+1>&2DF*7[0M 0<5D5@308N6D-K'C*N7ñöO*:$S76K9#9.<:0$)U)>9GK4B9@+^,A>9/VYU7OOY*:a5U2+ I=XKCI.4DQ#>:KN=t2%77"LH.),*@: L / $L9û7)$)"$#9;&ûF@/4+>.99.B4!:0 'cQ43 %%$0B9/I19# +\1IJB >4/,+.E, ;1#(CC)+ *^ 3' 3FK!ôB(:B$Q9E%.850)59;A>>rƒ†G63&K*H507UQQPE<6K<$#GCd;0$c$:?%:1CY$>>F61C0@G25< H-:EV59+)$M Y&)! D7 ++>))3(!i8)621#û2*:F4-.G(E% 5UHK%K:*C&$", `ic8K-A5H>L34)4(P9@?;1408  1111111&1  #2]Q\4T,@*'7 6E!+b3`$6 5?'Y AP!2&A9@M?,*?1þP#8"?**&%@(0$; D8>>*&1{:6624437C1:=x2=(  54Q U.Y)R6)üO 0*@S=NW8<'645+$1;..@2^M)D@6FR2-3-7I.> ++IK6%"*D86WFE&9H   +K;:%GA,\115e(#'#-?uC'93%D/ñQ!+6NYb1S'(Z5(<BFJ,,]Y&¥¹jiD67:'PO{„“AKDQC-TGvou}zb.:968/4R;3#11111111111(q<ýC,R#$?1=:<"$B+ :E%7#&; &R6$>7@G7>NCL#!ONC (L9X+7!$C^B@;=ad),H% e.#@!498C', 3"N B@5!EFP9&425[V+"<AB :-*;H7 #N42QH7 eK.*.A%J0)+.P2-(G!%H8_%Q ++'EL;4R0#2G5<_G>6*:/S#IGKEM'ipV.0M)A<F7Eø'=)Y1#ü4;/*6,%<,I*T1(0^ =&0ù1\&`'0*MGûý<-.%7 E/=K:HL/'B^'T:3=%3>9BH34$ .**Q51.E0C1P4FM@4,FA\(+-= +@(!<=;b,2G.; 9D$A&8)1JiIr'"US:NY;+IKI?#-Y=/,*=@<%ù/U4,85+BM8C%*0 G<=4ç<=HI9 +5@(,%.*,:?'$8@B%?G(@6D"A?2K8I=+ZD) +41b/2655A$%$K*U9a#I;=QBY;a#+!+)6'E=%HGLo!1.,J93C8;@# B,<+265,W ++2?!874M2%W,)+8M5'2-"BAZ3.#3ìM"  0üö+4:&F< ,8D),</H8;(B#D)II) +)"9:?& :IT65?#Q1 V:'5ù-1PRN’ —>;435<=<4EJ16#:(EDQE6BH: 11111114'6 6-JO9:G$43&M= 1 a<%0A"C# E4">4;"8A'?P$6.$8KC-"F>33%S%?1""/2$H%:,&3(3;?F4)J!$/n’wI,0L % ?T2W1CS?5$&.:SM>B;'p(*"X"489\/-VHK.XB:D(G!C AWD?F>QK90"E&?ý%'+H8!*-.B\t?%[IE2?* ; QE#, ,F9H=?_:!/7 )I.<6"E9:7 90&)(.9>5IM`u“2O<>"B&4Av˽`.4O+&WCú0MP%J7<9CS<!194%111111111110@ 71):+40=#*,% 9þ3"N9; !è*$&.C_ A28/&(7HA +X:I"U:2\90-EG-)4ZgQ94:C4/A,.>_#(;D$U)'38(.%>@..!/:M7>8 'B-"RG90IF#0P <F;<R<þ:R þ6:=E6;+ I+)26HBJ4,+,A1&'60.M2"2!CKNF/ =7<)CB=P2X1A:JYA*DE1C4E86D#F49LF8(Gb"D8A&G6,?B!GL2F<DJ'D?$/$12K,J#4;,%][d/?::+8"^9 /1,C#R.7''.<".'"9O"";*ugJ.TAU+;"`?!%A,,8;&AFY1Yú!8"9;JC21):xŽl?'NV#<3+F27'/<99S& '/-,$2!40AB#'0<C/'<7A*/4û 75&# 0B*H63**>!#P#1  ?<)Q#3?*9"F BA.75M'O$ö1:>"Q+hROX4ï;G +<H*ADG@[3!9=:,X+">?2:(!(7 +;FH;A1B:C068UY!:ES:,-[,=4+$9,;%0Z:(Lk6" 2EG39-:OLF+ 6>55ó.38,8(H!R"<21<  >Q(-L*#,1&"2NB;%3@4@61[47"3@#PIZxkUBN'&A/611)P4>1A292& 1111111CZ*5.F4<.2'C'GP1?;57#0Z.)&$AD:0#hW]/Y<594=4&1IC@ 7 )TQ1," $/0%329-@>#!N_:667'(<$XnDNLur&*!17E%`6-1I*@A0HC):$8;A4663N>W#$_>'BS:.1 +X 92<CDW><2%5XXZ>#4+$26.7PG, QE?<+1!. P T+/)J=.9X%G09 "9X3!! 1& +,ù&+1*WF5Yh';F?;>Pj††QMU3ML0+7'@J6%fý,06@1&:11111111111ÿ?.A2=5B-&$-C/"&0;C1.%:$9'+"-%?5)0:?-7/NHVST 7K%R!M^#/,g7:AE*#:MJK*('%,+1%E.*8 M4E+/!:9C+'!\5>%2&M8!HE)7. +3K+H1 1ETM%V:7/(43Q=J IW]&*50K7)*,&",MS8=U" A=C(+# "2<U5E4O=KJA6<>>PQ$.F-)6'C<'.+ R/634&./&[NE59J<JU.*+7E.18.L0+M% %?-=SKAF+L3#\Iç#e4@IZaMXSHY=O+QW.?>86$4'"C:G5I -AP@)-$%447(,r_'N/8I%#! +L7185=Q5(? '+G=T7+7_c$7/<16*"G( )46.8U)<71A67"!F?D10-'?%>F*b.9=1+* $&#%H4/H/HU+7IO52&9=5=!66%*8D*]:-->4Y3-7."7 _&K,8'**:>;&!$H0,QJ&*-*C-;#4HV4Kj7NQ3H_,=Y'8(@:)>B9=%-AI0/#<aCM)a(C2Q/-;,!F +/3Q'2.2"3*@C2/234L8F (&G +SG1 0#A:e>"L þC-91)6E+.O&05:3FEF/"/+6FW 8@&1D-(&"6LOdN5=.A)-F GE@8DF5<]LORB6B'1111111?:e%);'#;<--:--G :&D"5&4N;>n7*D!'697O -H;8V$4C?C  +)1/"70)?>1;÷=h&A Z>_*4+1: +2P J#'A95269!*?S6IE%Q>( &"F5$&6M)61&08".(@!;5?û%75&% 03i@?4$$#<C?4.$;*L&&FD- AK / *C;YÉ2!BKø"7F?-5B"7H=þ96BS&P52,;à6P/>:=I!0J`(GEhWY5CO/A+3@"*9!*4;)1@+<?^11111111111DJ->%36,6O?=9<*ý&)% 9%7.+2I<8&72!<(:ARJ32+F,<*9,;'0'-]L +/q=9ý7.!A.GO5B-2#'6#.#8BV$" 2.6LH'%)"$:2;> ."=QP7) "9 +?þ<>)0R8`D14QN*!;$!N-W,/L.,6,3?095FE*66>ó>T&4"?;<);J9C(P&9SF!-$%H4%!.:8A†…61I%2_'>%3(/ D$  %])?96)"69_0C)DBD;84#>=+Omy=4U!.EG4öN`1F#72HD (M'*8.5%.-n("YO09/SZ=/5.:/5L P)&KG'E$/! +("E1)1"40=(o5L'&FKéQLCaH5% C'2:8 +D+6A#80=#(2.7 #=%aFð,E*UX,*9 D=F()!)-ñ*AL.&DE.!*W3H7<0#1K:&)>GAMF/DC"H91I3BL3(EA6%W47E?'$,95@4*K9=1`/"!F!h-D$*R8GCX+ +*;-("Y=f5)U)*D?#?D/*?k,= A<2://.:B 3?%4+,Z>H-6<**/9!,/I3;$7,$/*)P.6*,((.b8/01,5 /C2;;:))*M2*T1"( J5:>/& GA/&VlU6S4=&6!;+,K&8 D#^M411111113.45>24F+&F)5/(-.>A:&2B$)L<3/RFLû"D/#B*FS.!6A4"-/9D%#1L4>:?(]X7qo8(A>3DD*/I 7@7-AL4C GT(#)83+;#32;6?+K5/&0^/ö1A543837</&895ú=4(8 <U#8D*'I8%D8.=3X2-,3 9O+84ã/7%8(A +<ÿ93W +(= -.$7:jH?CQEPJ#71D;"X:3"E390;:90IOMQJ3!V3[9)5C!672662(S ü273#+62R%#@7"$'X)8:-5!411111111111/'+:AR_1 +/AX0E@ZD:@3#KAYEQ<Z=Y5)5?B5%G0:#) +c#I;/D%JîG=O<C 5%.8fb'P4>'Q8B!DC,6A.?!H6'J%*"CC7QY3&@=FMM:3</:(?;:%j8c:2.E&J.)-1RTe4+>29@) TG3(DK1;.#E-V=U(nF#@12(@1(>=:!5<#$41C9'!?2>KP8 #!=3^;1DbFF;.@K6P38KH5.%5*?4:^"@&15 52U?H=99F:;8B,5[')W3-$ 4I%,D=$'*?4E6>'##B8` 2=./=!5W<!/$IM\+>GCÿ%W%E($!-'@7IB8K?*;OY8_?)%1Lu(F,4 K.Q7;+378",%!/*@ë#C',.ù ,":*$ù3(G8$.;+<# &ÿHJ6RA=*D000@c08?""Q62CE584;284W(95 +Q17=72'S'7N$'KD$E-%E;171>-2=9+O)?9`+ICL-/=:B,9!F'44HG6*]>.GT0J <B-27d/-.\ +(D3E*Z,8"*8 >"!,:6:6&S!(1)?0-22;)IEK"/(d4&/ù%-'2#(7%3> G!665AI=K9S); E F7b%5YE 9V8BG)EC5!<T& "25)-1111111&ZN"&M50",%=*_O3?<I+U=\? >IS*))- A"+6''L%$*#B 5@J6H6> E9:J#&?-DAïF$.'1"`V7]B3Q!DB/L69A2Q'B"*'6G. <46-:80pA+ O1%(IE@5%/5/U54:5F +)E0+H+42<%30C2%( 0`>( :C.1*DV6:8I-4,ü !#EM43[!4'-$'I'$H5=6+9,).K1?<,9F"!B 2/&CX-00CK2$62#/5.4+*?=0C7=7&>5\>)f0S11111111111E40:+<<89"Z'=+W2&<&6(@;, '\H(15;<)3]K4*).:5;-0.OA&&J8JK&,':1+2===(B4&haL7@9 $7][G3>E+NW*)J:%07]9:7:XY)f7U4F%%%=-4;#L3- .60A 6,*ûL20..?/5(/EG9:@M=I))8?:@[N^)8!;#_CW-e/9I,B7'>DJ6S$G,HX0&L)<1T9=$^(5/tS,W#/5==<#M6#"þ%*:=QL[CKPKJ9OkM .W$ +GV =8'W=8H$*^H4J' &_/5[@Q%0:333 DFC$BW!S&6FdK)6&U9:%( H%%8/_>EU2FL/.@3 +D-4<V (?4c8/;B[)tI+%üe;OG:8J9+C2$/ý&71(8 I)B88,*.ß2GA3$3E8^=J7[2&=-)M>[-'ö#<FÇpQ 9#5!C?9%A 1/8`]@26?%JR"X*ü$;T8X/'#'24E6?L'J=  #I7FR+L;<AN:0U!$+:.7!26;&+, A,$B8'C&1"44QB/KE<E/&R?=+>eJ@EDþ!"8169H0NSX) 58C $A! 8@^&+B/;A-,-F0 l8:%L6'4)7CB"*;09*X38KIG1TU'3<0,/I;9CB#1L7 A75>1111111$WNEC2*H*8$S-'-#'A ;4C885F#F#7LO*H b7A%4%7/"_,+(< R1;D2(/=-18Gv[3++LM<3 E:8!,L;EL,.T+K'$G',;;-:!3MdBA%1.;XWJ5XG'<4)F)33E3!H#.?CB)ú@9'û99#82@&S?R;'+8Hý.J'þ#6!!RQ+ +<35E :2.íF8-+."0*C ,/92)M2/6Q6+U5)E@+31:2-%.:$?5F# 1+üE,%'DAH8>L3@) C<3-%$T (]?111111111118,+..;2%A5(+05$BY?/>I#@VGFJ;YQ(,8I15)DMK@6*h><A*. +733")/(+94M'#7Jþ)%8" E$-+'/7;5.EA0 4,.;W#9EG!0ipAVC0.2 =8ö<".B+8/2H?=:),BA(:.-R12oK:1D%D9%9E884<B18K#aA;H /[(?M.>6ABE9":?4S.8.1hHÿ,3,M43*4*@88#BG0*=%<[4"/H5'53J,:7)7U.CCc. '!,O@ l82472K&:3H:7$<D8^)G2'Qu32C>=DB0.ò8!; /%2SHOG84ùB6) )#E+/TYB*=(DC%rDL( +,üL-P:<*D<+6/5??5+(09&G[/ø?4+%43;+:#!)%T;þ 0*#=!6b,)%=07*.N +/6:4…(A P%LP&#2:%< PC-2%H7<_»656 L(B3W:B&9&)'A*%%<I!L'.-Z""Z&323WB;''öC&GbK2CF67!?/b'E H'K0?-m:++û,5.+0H-[K%)%L2&3?$@&%/2:70ANAI?<G$&52(L.$L$ B(5a;><$$8%5'=P2"B%1&`##d%- 6H9'2+910R81%8O0&ð0I3FR5D&P!2KET2E'<9*,  0SCK8E.0<1111111#6'<9=7";/R3J34?4)K*2?&672) A/úN/M;û;"'#;*#1/K%\pf">B6A3.&2%>3%0C98Q(6!6 -(52;MZV?2 *:(52ý)!-8#0)QKC*93b:C-6û)-aXZ>!ÿ!+ /L#?.%!K6B:L4VMR-*2);:&Z,-443(-JAA+)iK!)</91 ';A5-F8/-! $[J+W4,5:58#84!E$/%%EB!,Q 09';J(+5.5* 'Y/#0D6''AC.)/.?5/,>=<0%8'<=2<PN10He%Q11111111111,3Z 9S9*A$)! 6=*&!877U7 &Y"J6J_64%6U-S!+55÷ ;5<;6</$.$-G7%@0E%G39W& &2!02$d!W=(A4:U< <!3C:,Ps¶A.2,%23+*&Z:ÿ9@I*V)F&63-# #D(T@E2B6.9>$<-B>RV  , 5!0KP  KA#S'%??)-S*E4‚?/PO71G:Z9-&" D&&I1G+EL5  -G<58""J`3?5>?73G];BC)",E)Q,= <F,8eLd6A.'7A/IJ5ZM-N2FB$$J q'0=#N J:iP2E//71&CHANGH"7744J=ML"þ6<&NC/7LL;B#DW!E8(p’8*' ="OI:5?<81%:!4 4,C) ;B7= ÿ#KI)8:#C,3.(& 9:;!'"F;05+8AfEG"(ìA@( :=9[0*7.'0GI#8 O9?:4S+:=P8JA0+/B"7-/7;B8,>#9#.15C*=C6:'VUS4AJ5T/I5@5;&)UK</8@7@75E-3AHJ!&6.(NB$-'5@S*TD)Z!mG2p5 6g37;/-A0M-A2R!B''"V:A75;TT7GR%;5D:`5%H^2I)A)3+$j(71HT4@7.I3,*"79S&4/."5*@2/;8Ió H?6$&0-91/ %6 \1111111:L&GZ,62 '(1',9;?B ?O&<&#d1,(,15'9(67,$)-FJ92<3 ;)1<"2,%D0 +@(!D4 %9]880+FDKP,2-P'8 `JQ1/3b-(=a'NO8>"&6K8I@,V-(M=<)b+F C)089TU,=63R;#+E.5FI*:7Z>A<(QL>>*:EI3C4M+$:V&1+1745&)V5')A@3<#I@>B&!0 #$)%>AGEM/%:'?,:$ù>K" 4(8$1632=#4Q)$7?1OG)%U.l@^UG+'<611111111111Q:9,/)8#B$496-*>8(<E0-;bB67S?'"ÿ%#0HLR2AF 'B)$3$?0=!4.&:;!:ì6K; ("= +BN%?M2BH-OD%Q/4+#B83/,#anOG2ÿ')W P# =ù)35 $8H/k9>;N +:6 :D$!6(2G!/#HP'KR>/H@(0+Q*6OD$">>'9EN8.Q`=2! ! 4'?V%<E/2G =@B:(6?%=H*A#\6637/ +J>R?8 #0@&$)%!M:H=.(i_#R+CAþ5&"!,*.58#+C2)6"#.?C5#%84*VU?)S^B*30!1 "=6G>Q8)C5DD54S59$@r{Y]9\&&9B;Q$A;Fo?=,G L&<CW3&7>7Q!%$HE#"U5E>OK(+53' $?5G&M*(=J.?30%66-%.6 + -!5_77@,91& .PJ4 3&#05.N6/8_4.91'5I +Zì*2/2Q.9-A.40FT:(;2cB?=.< B-;4)U./9;F6F$C5G4 '8H^78C)?F3b BW0<M)Q0DE,?-08H@`F36=E*C5J@T%3L)h&!&@/ b*E  ,+:A,#=7@#/G/!DBK?<'WD**:;<]>8D,*G[R<+!:"<)(76"><2$'RB?=!1- "75..Fd>$A!&Q*LMC1111111;022M?:÷78-59VB.=D/2#%:.@F9%E "@# %%B30) <(.-.+ !20-=*+2';14)-+67,7P*3L#16^ %5I"T+  (666;3>4$$-G$3.?&'$9SJ*D@15,1E$;6U 0?FN@G2,A&8B/7 ! 1F4NX8,H7V!>D4:.2YBC4D4%18%3?V&"8&O.=,0M4D:%O*33& \&:Nt#2+A%.(F2+)1<'$e01.:&3',1(5,<&=14`}epgR(11111111111<1PO\S()/10E/89341IüT#!F)g9)DD%%BQ6,L.*)4,+4H*s,Z!B=%7&.1]".C+!O=>!8%,$B&%:pC/H,:84C=-6!07@4>O-).DW7)BG+:"=;->?-/+-&I1-B26<#"*N=()"5%*D49T.8ûe88"`,7[P8077C=4A!; NX Q<*6'*L67J"-(AE8-")C;0.278"E+NM560hB%H.:P_9NHI<(:MI!?;@+9 KSB#6(63(,'>^=,8<E0@43C!#Q8'X[/%2?=2]Te<?<V>%?GY}+PL+2= 7A3 <-;HQo›¨d28=)!\E9:PX;1:20;@+N5-/@NN-,>(-D3#Z(.90P<,=*3.)%75&E7,S5A22<@A 8F'5 D E<HB:PE$% $.S$, 8‡RL!'H3"31,;@LK//‘0?@UB7:$ W12lB9*"D!=&M?ö2D32HU63$'(;;G)6F.AU?6>!5&O1?"<(=;::6C%870".I,L.#.,*1'‚w-F=8!BKL9?HO+-*-Z$8  "E6_8?:'2=-) +!Y/CIZ]ý ?W+  1+9)D4N*@A&F4G 8<a,q?DK E>-18)D;I.'58&F%74 ANt(5WN1?+@AQ*$3!,I290$.KI8 @11111116!=þ+8-8.:H4EýF$? (AJ*/)<VW26S/6ø1PK= 3%b1'%5*.$1 033(66 =*2ü;A% 6<*D#)+A%O!+;.!28%>1L04 [B/ 55/>F#VJ'D)5<G#!G(;=#!F)78-4*($?--75%7E232B<**(DQ?=a4@+32)^=.GS(++cM7 E4)!+.9((M;&:4C83;?6@  +:470"F*6U=2#@=:`M# A7YM#A(1<.M5+2$H+*9PGduaŸŸ™rTIL11111111111A-&3C=E8.%-!90-B'-a:MRD42/=*"*)F& -:)!1-7?EA4 1):.)$5  +Eò/N0'==-E9L#%&ô<2!T/H9R87J3\$ENGF<52G,C0%14!B7*M++I46P* B7 8B.;!`/JJ%C ,CC4*!<cdÐaSB8P!;D=O&F2/ú@1+95U=M+=:TE4#++2BJ'UO:(2 K16:8*00E0#E!=3@(1+VIO=6-;(O5-; RE0:5K%Lb+@; '@^vsE&4BJ0>!+ 0"3A/5E4&BWe‡pI(=1.D?DS;¡ä·NV*\XE<,>N/-\huŒ]#=/AU1,:(4/9"F"'a H#(+( ''?:[O+0@.)%B8&9=G5'1A;ø&!J')}%R1&*5-+/59:<10@1>ò-#98#C-':$n]c 8(\Gdƒ–5)¯C.($K,+#1756(**TCB QD,E$$#2H$;?VE4)!_J;jBTl^912N04L43F4))8/6-1O EJCJHEDMRb%:R PH32G`]VH1_;:]%/'N9=QI?;;$G;N2E,)!3??A%AXG+$(+8AKD0S$ 162dF+%46`$3(65V"K@><]J6G9g :0:<3'"#07)$P +5511U%C+7@;5/";# +5"/!:@=;B9$8:M1111111%>.8H8/9'4-)\AE0)G0S'D),+*(ý$0P4]!ÿ '. E5(&%;+,3;:<9ON;@A_^$)IM11,0L/W91#-><&\ +/A >3A@HH÷;>A3%0T G$AZ/,76V 7:- {</<9'GJ$A3H G,<:#>%KO5L =?/(_A,=R#2&8 +B%M(/4P+&7!A-^\:MFX>H8C.C, "(,0&41JFB!%:L?DB 04<F9% /78$P(:&'öD=C2NG>*:&el¨±«É”ª¢YO:11111111111"N<2L;+/ +P4#H&E!LWI<K 1$?=+87.&*">5,6<736HCl;;4!)10:6*\6GL"/9&185%;-C'X9Q7üV$>. &.4%&J? ?5 +;3+L*,=3ZH '3A4,?5F C>/:8(<'916>5;,."<?$=h?] n"M0(H@&@^;3;K.8>f3= '*PW1c9859@N7&FB.W)IQ1CC4!-4*K>F7JN.)/% @$9-<:\-0-'+8/5;K;L3A?@/;>IK>  =Dq©ƒ7D-07R4.=.F4BC"(L%(?/cRC^hX>A<GKqL|ÜÅHª»‡T>N-K(ÿ5LJPHy?G,8#)5(-'CJ ((.H?+'3EAF1;<46 -C0-;C%B#/*R>`AR4A0):J<)0M)!4%9% B#0";I$+B !-, " O;2N2 *1B6(H3(>@50MNc$;+÷-*8):!%, X@M $%> 1?)0.!B?2%þCF <$-G8{7X74$8+O=6Q&'2J 18%4CQZL.)1(LS;BI;BeoJ!^_>?V7C8^\4'-&/%ID'[c-FE#'*'9%2& <-F)""05@ %K(*5'W3GA<4-,(6AÿöH/NG89?Q,5ZHB W3R5*@!G\*F'XI.H,*-!X&9:03DJ('V1+8T@35!GH\1111111#';B,":}H6+I4gT2þ=3%6,: 1>'T<1=<O## N&AW.(@M-3%')8$9+*%91n@:'-0BWAS9.5"3A//8'ÿ3E3230,1EM&"0+42)!G;,D!/G* B8A)*] (4 + "FA#,=C*"*/ùF?AA,:?5-M:477C-8$/÷+;Y&8BtMD96#+L <#?9B($<¡ c<+N+ 2:0a(8=;A!BFG+%'1#,EJD^-(C2-O8-:0H D=<*]J7R@ªÂȶ¥e==11111111111<&1ù<J1 L.3)8C26 CWQS:96 $/;,6&8*"K5Cb??1"9/?>'C&O'+/S$"V@.7"30A12:^0>0Q!.L(-9D#]. 'A`0 )[H64/+,3C#+Il(*H=:H&0GM2)6=5F+$Q÷*RA(@5ZR©DŽ^A/?-5;%9 (@<!2+C12%>E/8>-JUd2L5120="7]A8G+&?G5$7S93A.S,ò38i4&$'42>9=7BF<"B\*R:2* >/()F]ž¾øÕ……6X"(4A7JO4/'S#8#6/DEg[CC;áM=,:pÊ¢s2wj36 &>=#,>*1I131%35ý3&%%F5 IHå5V&GD:e C&&xH+7P?2@V,(&ü2 (@'2AI&%@ k- +@ ,8ñ?)=H5!>%.#,>/:7$4  +0;I^-486N$,> &/%02@ "3E%1'KCW3F$IýEF3,G9!HX$>&.448GMÿI'*56 LD>! :11)8m/==:4@%,2*_ Y9ID7FE)5IXgDICK?N;)&E8 3P8&_P-6DK.1ZDC?O:*Gí\<L09N9-8* (+=!`7/9,-/?092N2 %RP='?D ;V5:F/1+A<L4. <Cc;#/ -P,M7J>2,:20F9(*6 : 4F4)H:A811111111%%['.%J4W.'+B#)3]Y2:G]#>))%.D42=5Q'-:3Q8"LZK,'9D>"0H÷L8<>,6*BK,&)%QL5.ÿH?)'0 1;K)Je=:(g?QO-K:CI$#4<5g"ZS0f"52)#GD1BK#;H=(B$<:-@F ,CECBbH#-EECT+G+D8(8;P?&?$>. +D43Z/* &+)R3%@);ia_3öù77 'KD<;=QB<:,;;%)AÿGH/*?.L9Wk$HR56==5In#P(%.B}»ÓP/ÑšiPJ111111111114$=KHD+.E'!,$#G*67#I=SR53I)(CCJ!#+45?<97iGD1B=/?O()(#,!9+5I*,("=#0K*'3)ø#ó<GB ûB77V, 1G%/D9C(*8P(:3Y79+$ù1B$(>1 <!B)66*M4F+0"9,LT. %"6,9B¼Vè}3VO*4IX?=3LMJ14K'/+G/@269-I^63 @=J:0NÿO%C<0P0-''7m.86,M/4&!% 1!,#=54&U8.<A#E,22:@HI-J't¸î­OSp%1Q 0'$&26.H3;o/H%A;1($>>HQO7a]¢ÿËyji9>HY=P!1+<H>R_WL]R%!=-984-"9C3gK F19!5!B +>ÿ G'\8"Lë? Q;4C;:P2R1DF!$#$'$'9+?,.(%+e;.0 '81/ ##1'*4?#,*<. G\+"8L;$!O-W?6".rBJjC#\+-Q?ZD&: "F'N'O-L@<U*4[+-:7@,><7K-p16.":3.7'fB0$'46E%=@-K=XJh‹`^F8>=6?J^'$/.)jM. %?-(.6&*8IC-G"(,T0-AO"GN)!B$D1,@3-D 5+##+;,(8;$\;-&@Y!5^#a<B5B$17M!9^XNC<$D (%5:I<' J ü#H H0)#*'$/%*$R*2%N<1111111<[3F41."2P5(G6B#L0&&+7/*6@\K3EL8B$4+D<D7+8,ú+5C.,G :'%2)A?+@90!0J')*6 )H#!+DK5%8! b@G!1&A1/2 3'B<:. N%J<GJ8&9 >-A<Z.%)G==CE!$;GN&E][[0YE2:&24D6 V7U1+9CC:4(&92=L4%8.D0!05!2"86'1E9.'0 "5/*#+;E1#&# @7?.$%=FM,-- 9#%>G57;,, =1-8**:89‹ÀôZá§wpPE- 41111111*KE<A&5AHA' (--<+6$D@76&%6- '9 $E.0QL8DM{Ti,39A9 +&162; F1;!(Bö@=.>*)WL  7HD=ED4AG'! )%1*&]W7>",53'`4(&)1&1@D +<,:"4GBPE*MTC,=><gBI54,3B )8M:7"F-;))W¤‡†qQ&H<Y) +>6&%4&-?!)%7 %N! .j8RF8;7?X4 +'"!(.4Q3!>PQ::,>R7#;5=*2Z.7D,453'%3/$B'BQy SOܪHL;Hd")KC5:5("RN0-=%&eG"4./[[[B2P8M=GTtV7R:.DI(BK"HI4'26D:p*E:I-?1!1LL0%B,4.8-C I'=(!P80$(,'e#5;*4(1*6(;@9K%1, >8)9ë"7""8,' 5="(B8ýO# %M,H@&5&' +^,)%NSWJJ16I"37ÿ5t†_@5J#">'1-+0#j.9(3""1G-8"9/H;K!B62G) *N '6C:IB *:*J?-*;A,C=0>]41lPN7elÐlE=32 M0>$6;7'6e:CH,2;2&*)!A269`8>$,%MH591"877Af*C?85\"PS6)&DKH9d<% (27A,(50J%#!!L"<û2/_ÿ!FK6%*DK 5 j!M>"+8M+8/K7I,IdHM1111111/(,*%0"2/H",M:A47ÿ +$^1?>ú!</<>,B0M1#+c?.7!&F.&BH)<9_ öY/+.*<%cNAFI, @B=<7{;Z02-$4S= 4J!*+A%9\6D-NN,/D:=eN6NJ&3#$!Kj="I*)1RT,1/Y 2*KT#/HP+=1%H +%BS)%7p:=0K<)F,#!4%6CLE$BG3..:.U7FU0N=23$'LA>L753:[3:5,K0-"'1E!2E4@ ?8F6-K@=9=,591"*7 )8RK®éêÊ}B=A*-E1111111-,D035%XQ&.L3+1,5/$'(0$@50%*Gê. 3.#6k`W5W@PU<3D,JN-J$)=7/,,/1> 3 W7j,QD( 0C46=5-8.)8=::BB(9!1(#.7$SQ!=s$N(  O?ÿX, + 0(N5.i8 S\cU-)"2)A8 -YD1!>,#E :7› +5çèn4/*94-*6&9*; , ,:%:2552A40.(=^A]>-5@p7NL57$# =40%HD9 ;"[)IR'71;R+($-0&2OZ†Ûy\•h(u\RW4!ALE&D4C&?@?ND6" P8?A!/^E8'1`?.@'i0\E)A'70873*N/ +*@ò >3\Q&'9Y0/C0 H=*N09#,G5CL1@B# $)-=OITJú(! =$dA85H##!RS6 +3Z)(?3<<$<D99)E a.:;0Z“ð¹uc495YB*('6T/1;V+5*"'8&'9#(9%5#4,4 )I%>ALZ0_S'ð:E1',4R;%.-XB0`6J']& 323C67>AWP.üV7A@DIGEˆ½gFX0-7-; DO_U@-0668>$,P&X1b_8W&T3N?F%=AN4+9^:0R=M!Y5bee9"C>%'"1.;6O(2*%96+>+ &K@-d4'+*D:G3GZ,8:L/AAF@:6G.WFc36\'$2+O8H'=*)F11111116<)T=)< O)N_l#;81A/*:&#<!/BL@ Z"4?H}1@$@'%)T26+5G'&U 2E !?b%)%6   <2XK{Y¦u^!þ6)',63EX>H8"$$B: 6=Ki-71(D3d-T%2@>:- 3H9E%<5;/,(cX(<Bù9:S8:%??&(=> 6)*((ûFBA$+D#`.@4(t5R"1+%*7B<';,(I*8>7K"H%=BaO&%-L;S 0 1R1%#1!_*9&,,4D+(GN'-#!C"$6 B):0;$18^}¦²¸ÁŸsF1@*591111111%".f9CX N[H=SJ<$<,2 H.2*,/($9> .TYFB4#D.(f*7 a0$%E,+M#A(0ó-&.#CO61=)12*%!!& Kb9&:?';2wJB"FK*$P$4"F;5@>4&6)1q3I>5!8#?&J&7"*1^9HYH91/,'Mi$(#EU`ñEQÐÄZ@B9:9/O3E/A3Z,&EJ682'>(%"WN .?#03;.%* 3!#;>*-RJ(9;281,GF=,@<"/0:30CS:i©<ŽqÙgAZX&1=SU+]A2"0i!B"<-+:C.-$7}V863/'=P43N.GA'N=.BJD!C#K A;T.8'3<597A .0<*-$(1#' ;/9O#.>SD:0ÿ%'- ,j96HA%  $G +B8#+0=4L#F/-5..I31;#).Q6 -B(-2ö/)í)@9[v ©¾.b#E?- +@#/DGGjV6+B3.:-0; (7'@P=0$KUA');(O37515Q:@P9D$2Vb$&N,4'E,NIUbN$*X>5Qa:^o_<305*=/j?LG6IP4!B:$BHn8&D<5'@?1%E#=.1B<I%@2NT#-/(EE¶Œ R%8[09-",7bL )46Q–66 /7 =80,F&-@4=*1XCøZ*?5/ 4K8S(")%;RF+5%0 ÿF)!C5?11111110B- =$a*+"<I9') 8P]IgE<5N 9)?C>=%.?;"<PK|/9)00;8Q?E1>$+7@!=.S<a2*V:@6DW*20$aMW^‚¹¸H2.A+618B2 DECM<=@:"!R4#4$6/1* +84+%6<=-E(R3*5hLPJ\>03C& 0*%??@?.>)2J[I'H173&J!NG9!9:,% 69DE?!6G97%'*';;%C (@- *KAJ5DH+QO%, E  5 25ET0*8  @>#9*;32V?+B>!,*>6-,'45:qHˆð¼YP0, +.R1111111+6',$H*J;J#?j`#0#ò471 V0%/,:/4 X36 ?+8HUJ9:>D0P#D71(>>*! 5(< Aù4/80&35:ú>&) ù4'NE C/F6* +; ',B('[ 0/3!C/-%6(A82I:UX*J[d2T0H$<$)4FfBK3K,32L8I+bÒÏ·va.TJE>\/D%3'Z4+ 56H8(EY.3BA0?8?17*88G6(>:1;5'4*(2K28A7,<<7@T0A-;3%3;E1X@Iv½ÞÁ›IP@ npÄ€%?ue*.K)KA>->C3-0=2>Nu// 17V493a/Q+@')5$;-'%,N;c-/9*8A:.:2%%=/R6,1>èNI?7CA3)$< 826:9*F.,:;!! 3#,%>,- ?89*%-h2G/0,5]Q D,(-U#/*67@*-C)&?F0+3F"SWÙß‘o/-G99@'"VN3Z941+&;AýCHKKFDR07&=)3=*; $:6N->+"'8>!2L95$;J!6Br9!#4G;0!7Eñ3>M(G4j7R]^d:Qa,QB()T\<S7`&9.,)-<!<.Q'']/KW>38-8(59L:MG5,&&R2S€u`65'AS#hP>%)?)#WÿB™Ã<0JQ,AW!R'<WI>-C$;$:!/(>26W]!.@.)M&#. AP,M 5.:!)!?B 1111111;r#E/D(!*>]%/$õ)F-)!4$48C*M([ :UJ96v£@?+,ø%A,,I'7%H:8I,%:5@VKu5@7C0*Y9./Y 4GC‹˜aFJP;%*b01?C@:/6#2T,=2 U5,;*.&S@*)T("/B.$F.:?A34O36l!+.3Q(7'\<K/"57'7"E77#:&1,0+%=%0##M.(/%7%?.^A!<)L3*.> +B?,AE'û#,I$M)21I7/û-=0) 78F.=2CR9õL704P/*E(J]ssV6<@=;$1111111(.$"&-&D%Hÿ*+-7A?M, 0L@K$+3L?!0D%>0C@499;n39"9U:=&5,=?7#ZS)5<5-F!#0!M;,H(3'B%I=G:2&8*;/XýD0D*U40)=4.H G +AD2!.S55FC9 I,.9'>57.$ *1-DPU$A%O>H=?(3@%RCpxP`;U/OGRY<>FK,383:#M<M*0;(^TI! 6LNL^4?)&7&G2'6:1+DE1JG9$N AAK=#*+)1+1=/9->!Gc +~¦Â®uK-cE¯_~S8462>?=g5WQ.2UU$-=I*O#!BCuwj97J^#W"1K8Z?LCD/M5/!R(A^@k?D7*@!')2JDJ(&3-Q7~>;%8#+" =866?!a%  "8#-ô4 5R:< +6 A.=9;3>&-'25+ +8#,Mþ6DAA8HDC8$ ($%7-$`€°ž.`)P7< =B3+#)?+>,3?+AI&-F2',2a'#;>)%+;:F4<#C*#D0EB#?&A-m:--PL@9704F%B,:R0)*F_}“\(I@//5>$6J0)$(7ZE,-9A=*5$B7)?M@CO?!Jÿ!0ü!R.%ü:)44=57 +)%3GU1J'D!1-(8)#]?#HYF'%/'6105G%ñ2S$59$5T'- 9$38úüK.;D4-,;<76;$+B6-&W11111112E$0$N/1761/&!=F94-75.43*<?,1:QLHS2D&+,8>/AH/38*9& +B<@H.3N A6?,5CQAB69!8\<_O39?H87õ(,9TD+(1?SN 9<H;9õ1&9B8RI:*&)B)/JJ:G,GQN?iA3529=[H*ECü;3 ,5&L2A8$Z3! 4;C+#[BIOKF,:S:&L&(=&("U&7G)O24G?/736B$-"+^8,SM(A&986DA% +3.2*59384'ÿ8%::3 N-O)D6!38[IU,0A2j@9R'%-A111111197F)'4XI:L#48jc/)7;V2/85þ24 +5P5/07!57'#EGd:A8!9%5$?>ML/$9;.R1L6** ,03((,90'JE/4^E<M4"d/ 1=$=+.úC<-D+'(I@BL77 #38E%$'4@CI' $##%FG#7K06ë<R2 +@,? :,=+B5ÿ(@UKT+C4T3:OŠ‹$G>!>(.$5%"M)***1&,16(#;6,=ý5-2:R3, +7+(7,95>K%8E' >4Z:,IJ$-;6B3L&O;™\';KW‚hé-*CX5K1O41>%"-BL2!:=:6A!%MAL%jk>1 +&NL@.BK$XXD7<3(8*K8A@%"5;7AA5m7Xl=#,(E>= :('90*\ý"jA);?/ +K#6( !X+@+#73-ç>:E%8L6(' _-ñN-1 &8FG9,fYT##..0{ ]%S3+( +=Hù+GJ.7'Y!LP1/G17Pú55H 8A7;+&&6O3,-ú?2J)*F3ê51))-7n)%2)R9QDUI- )E`FX')@D27B8*CH/0A$9"\9-F9AW)?*T="@,28U5+@,*g/L%-H=<K0+B+<S67G(,-7"#2UPE?01'0(:@FU8<>TB;.<<5ÿ 58T3>G -BSFD6 ?6K'?8d2K6 ,E:)<:>,^?1111111-J0 :=û-4%@,(=$?F%63  PXC C +F$&;-@L,G8L;,B'#<#/. **8>09@<*>.<.T%$%N&)KC$?4;D<2)$(@I; #.(J>>A'(?-%?R+ +.Q/K46$BG2<%+(E'.@: B/&'.,)52>.@8*41%-'5G9YT8@< 1Q<7AJ.'ô'- P*"B a##Nò9,)JGCù-'I<I7! +5.4/7(",5;#)7,B-/AdC;<<9,>20%225BF S7G,#F-=!3=>00?:.-$O$FM$+:L7*<B1111111H#8,<7..: 6ú1:K)K%*b 3'])A3=GXK$#(2$3%8,33%R4 WTKa<D4:1=06-.-N8>9P-'461E'%G%*>Q!*BF8V+/0,73 8F "!ÿ/7;37M2F-)+.56_9(D%K1N&%"7XG)&$"B99F+++7B! +Nj(/47b46Y?3i—M1LY3).B04HI+X75&#BZD%^Y;29'JS9/ (Fa Q0,-2  ? 68%@D=41;)f N"#9"Q;P|žl,O7[âmJ7A*5:(&;<RO"R$3E*&&&0+Q(J.ODP-.7?'=40DH)A+5567;)5/';:0'A#@6J@*(RH‡Â{: );&+:%9"E5õ79,>!")ÝD/&9& J I&'J$59!@1&<;àLI)7:" +-)õ+5#8!GC ,15:A/N,?(3C&/E5=3//DRF4%=) FR863>Y(Iå#M5L#372:T06'O:F"B/@5að>2LE1DD E(.7'1=.5)*&H+>*!D(*J>*D8cr2)=F-úLM5N892O7TA[A7A>u2Ae}:A/:6,5Y)9H://M*2L!4(O77>@>W)=EIS%?L83)4/0'=727R;R>.61*'("=2Oþ9K0U,C1MC +C`.1.3-4D>.9(A$KG*+04?!>'1111111!@.;)!=-Q-FF6>(7"@%;+A?L#$;KD#.PFB(+ /)AQ]5O46>8$ôT=&>)?K,5ND:6!,*,8.U1.437H#7,).G3F?:A14$;eK.OA=9,15S%A(,+*=KF+*.#)?,5+$G2+%U=3QL<F A*2.ëCB-'F*!F#,5#\'%K=;!,1'*B&.N'#2FL.JWDKR19-)+=.'$G8GDQ3*? + T+1>7">x4_ 7)>2_;;>Q>":&U953 #B>)5<'X<:)>LF./@"@U;H/6H_11111111HM5'7*B:-#-/G1>6"0(K,@5."'62#,4/5=QT<5 ^2B115D!?÷ ;C @,BD9?/ùF?7(NM)$X00M,''!M4?(BFG"E.1%# +7PM? 3_03'#5BL5#A9?)LbE3>Y +:O"$8<7\:L2J>6;*,\#0;-%H,C8-46 >5?>_/B?7-54(D.OG#ü94&0[0%ü')AIF@3"+RP&<BNMEAE@6$5 KA1+OcMSL.4$ >%&@NSW)_>!au§N34CO/!MF!8?10:WB!  6/47B/i)3RC%+)*CA/0#4* 7H:E !2)33F,BE0T1iXjk‚7C 1K"?ú @+6?'='ì4&)A4!67 +l;K!%C&-% O@iLQ2'-$)7A$3ô=>(>Mÿ2(;7:CX  C2( +!F?*@S2-H7&3<.=/8^.@&/=3(;;=A::M35/+*,==J+Pf!GU-4:%7.%:8W8 &7.?R1 +5@PN_6A#,+B+A 6HJKK<M13I3 0L6+ $*c0!X&(C05V35/AEeNLS)->&?1A,!.?)G&%I8%) X> 8&4*L#F42L#l>/ "1&"GUú65>+[^2C8 +30ÿB@4*/C;H86R+ 4&;-0&>(6'A'1111111#*B@IV`0H@22*A=QT9!N,D/%.U$;M!  ö(êL1(M$84%432-6S'F3I@D1,%H+-TN/3I(T1-#Q-,# %+A2(.">D0"7%E3BP&PQ1499@ 3%FF$ (GG)Uâ#R7LF:J9U *F*+"'B</E">!>&5JF@:02 ::XP7 &JL=51O351>G/O>7&4A!U!:?Z/;!  I':/0*öG!ù?>6N*R> KM4-8H8#K!;8K.E+I84;.7-I9PE02+ E O1:$[7-;0"1111111ý$:1/J'"7b,=K 4:=,7)/"8 KF)F7X$:3H*8))T"9*#:?$$J=-D(^H: .!"4Iû%7d4CUC4G!$Z154*?5$)4,?QC3#L*4')q3  /GDL5.3SJ9"Aý!ÿI;C"//M.~1(4;$#.80&:'/<:C@X/'-;0B94&!#4+=48 F'1A -8+9"*?J,=6PK"Ea$P0V 8U6.O:'F:gN6d2E)X/:D5Z!;R,P k1KF.37Q29 .38E+G=0/E>J+ 4KLgnB*@62C.H'6!0L9S?A + -4F9!1>C<;>C>1 +)QJH-3B1/= /47)#k#:+!=1,I1_b;%#C##)/4C(O2/GS+@50#<j!+N20'+T.)M 0sB,;O:9 2.1"G."M .@:;êN$%  86 4G22@";:[d(?,1@/ý/HF6: 2$2$%FE8+HL?ýXF9)IDE8<Y&KB'E"8 H,(-2"0;R@C6&8#=<tP#û5H521L8).1l[msRTQ-8e,0:-%2D5=8>2D,0--.JLR*";Q),&'!B=':2(%=. +/75;3L*C*).,'A*$#7("D+3A70*>9C 9&-#36H;C'C>("1,88>E )6?760'=;(42/"2=,E61111111NE#C<4>(7$,@9346/D1! ',51514'2-F2L?3-.03!7RGx2%5=,=*$6B5O1!"-&K9-K<3=A'9A:&+D+"A![4-Ý?G$MU8MF8.2;.BGIJi!+0D06O5=>1944 +,=C!C+7H:B8ò50,(D0GG6".&QB7F1.-52.8@1"B<?/ B +-3'A6,=R %Y8BK580?.2BK" 71=L"<)FR*`5_93&-H4= SB9 (D'S 01;0FK*SX&  "07!'8RG4% O"1111111)299:A (K/'9B-$F ;N-284W48!?01S(<;Z?2</HdB;## L'O@,4*1I&-,$:4;!N7J&!5! ô4G6,#$"9\3C4+RX #/8$!*C#B71-%$,@8S$):E"@GJ?3)4d+J/F)#I:1F8?3ó384$K;'6AGV L>i'H+4+4S#3E+ûCB7A.E>4%1:A20EJ-R 6,$1YTJ[=",63)A.0(Q#I//ú5-:G2+47+;<J2$N%>fBFJ;&MP7,;eI=9>01. V?E6MK.4)#3B&PDBO??2"3R'#G +QNP!92.;9W7K*{G@ 2!,.S1C]FQ4:7&63CE%8IML'20%1)D.øE?(K"6K9Z'B#Z7Kh×8J$-5'F?;@N0?ÿB!NO->;4 *9H5(.9T6Og_-LP.Y42I@+&>$@50(8I/!MEL,(76+S+c(# +2!Q-7O3*B$1.%33Mj=>I<^#9D'+*B81a,-:8 33<4:EK)CJ&O••ƒ/EJ< 8296B@x!9/2$5WN5:>N,>LI(! /7*& 4&!5*"+A1!I(/&&96/3720('1!*L0P8:.<bA-"A$,ûK=;$,!!\>85"10:<7=29I6;ECF9&)ÿ'?W;=)0?1111111(üH") <,%$%/%CR%0B)/&,R41!$7'7,%L62ûG$5 $&)M!!ý/?$  +(280.7þ-34<(49!/(1N7D.JUGP]1)")V ,#W&,#9DX28M"5&(ü/# ":&8HL6TC3O>(6*>>25NjKþ=83&&/+(>8#I"e-V&D6 +E>?0,"*,**2;#89;$A* +^)B&B>hVj&#;0.VG  :6(5H+?H )0850(G/78glR97:.<4'$F#.").GRm),/$9x*3?)E1= !$ 4 ,L-UC!:11111118+V2 ,'<Z#I26Y:'33D8Y%)0.B6"6#@H, /#K7?+$96"-3;138$C7ZŸ‹G&R.*)3!IO.!' B@$:%(($%ü."<&F :>+C<8(?30Y"C054-"V. 5)3.9&4S663U==SfF4"58%>LW?0"T/I5-5a8+%#!6 ''2L0,/@a A&$#N<3/.M(9B5F.38,D);(lS^ZD4%3F1:)EC7D=7D7- B%,)01Q=0:>%*::C=*RK15'$.)KJ3(B/EHN#/+4<6-LH18 +><.>O,I!ML')),/=VNO3.CF=)Kõ\/T +J (H+J9G#,0&ü%?.+9\ ?[I*,AGK.(*å,<AH:#RC)''2,-)3=#(6EL!Ni)&D"6*)))39+?G7H)#/9-;=/Ea*+]<J@cRÎwbX*I&A$46$ C-90\&@1Ag$a20/R/7!,!2A?-3706&5RB/=?2/F\ _$9FS3O|;,E=J11I90TG$Z;> C2-%#Jbš£W >)"(F2/,%$K@0?C?+X&T+MQ 7jR0hO150!D7PMF.:,*7F<]3077- 7E("2Cæ22C!E,)>>3'x>@2JJ88/(2,$30A,lL&Es`tYNY77W5,0- '?7&%2-(( 1-*Iò1111111,'%D#0M' ?)J&3,E(/;:)&.L!GP'Ik=ò1G(>-`&*:#) >9=7CN%F3E&Hõ66"('?D +G8=?_cB3H9/*2X13(H8ES9X3S< 7>'**?#&B$!:<#!&9)-)TQ/?K/OB'4A$%"G./A>=31 +,=NB'.">4_"FB60"%M.E6&"E=!/0:(>/B+!1 LC$N[B,3&O%.1):.x4D0h(%(87†ÓÌpQM#)+6CEB?'BBJV=ÿ=5CJ< +>,JJ#/1*F/%7 'ý9G1111111B*_7t@&P!(*<.AD-W5Ql B0[BD=%#1Bf75,h,)* 75.*?+"5þ +C%E¦#ÀG5-4N+a=82*-D0089).]&+O!ÿ%-6'a N.C$*(U/0GD+0R/CN.<A ù-(76<D>$Pd,<#&/  #E?/(8$U2$=-D@6R4B&P*,e'T-*1G.B+09;6vC(!ÿ2R@C4y.BFX&$5,@9W1;Z4<@I, 7#9%%)$G<++*+ .-+<W/ +,4)L!NO=ôR>:=GB/3*E$+:Q +([1,@Y3 [?:'4T1;=27(eS$ñ2 N9D.<9&F(&!83Q/B-þ K,&26>64nW;þ,#7( |0037LP+41.1M)QAHbF/10j6&IZ1i\B1B'>F4+4k;2:0 4 91!3 ;A9A%R)+3-"8a!S(@[e½˜EQA0+%IS:S/A1$,.&0?Sn0K>399>I!H ð.5"C"1 1O(K4LV? .8"W a_9=.êV.;S+`#P6BG<? õ< \"0+>; T/p1O#|…tWw'fB802&6<."0"K:1I#AB>=CEHE5,2";=+1M.2^1"m: B>)!5ú+I4HE)9;68.,0: &GQ: ,?HK'R"*%5#<O .-0]+2;*1N[zŒt>+/(.(:60V +//E* +S1111111*&7.EOC.*$-$9D-#80*8]L#8ÿ"DEI'7QH/.UY "<8A;>O5(-=1 =A48I&KTHID g1$!?(=L$W ((:/MCP`7aB'%M$Eø3+5Kû1= %'E D(>H : +=;/13IH1]hR.% 6.8@?70F-;DA0 " (0+E2,ZBJB<)CùD"87K" - (IC$)Q"?<$!C33(.-89 /#  I<+P6!40-OP^€‘0G*%!E0CH>5.EL9S2B8$9-D67@G<>2; :+(-ïF<UL=B**51111111/*HJO72&+-3*S&A-(/&.)BA1(<C?)U9%(D* S!,><]+,H+@"81+)V`W¤’{S$2')6-F-'/*%9%MI<>XL?9.%F*(:"T3(9B!/-J +-FYRJN5AL'39.; /ý +!HVE%'4 #E4#4#+ %@ +:A6HK#2"I6D4;T1EJC(FD0K7$2L#C @@[!C7FH:-:W=2 7@?9AF!(+M(,‡L<ZO%N1+) ?@B3901*76(3"@DK%X9.A6W 0 S+(ÿHENM8;9S57Z;BC4!,J8`8S g881ü MMý#&!&1!)42a+6><J59"$F:5N5F);&?8<]IJ- ú+.3A3/AB5RúI?i*xuE?O5,PwlX>hR6&F65:<R)3vkq0:D2Cë6+7 C3#6#*%óB3 C$ 7+$J)N>*+O4xB)32#A;7*4H9{gHQBù.4 08G1BE%%jr0.SH4)=6´¸QD9;6!) C@6<F9S/ a 0=(%42 # 31LG"o0*2 +JID T!FK?YC\d:<(-> +4:*0;/5F7Q33?..6(7=?S.4E#E I?82.%Q..ù36+ F7F0'@Z*1-(6]E)@1+1.18:Q(-H?3> /14-+/-E"3KJb<?36?*7%?91Df^:</@*.))"1111111)L8'6G50RP9bC%í"T4DL9-*Ceb + +D$(<4HW$*0$!75!/,1*?%Q"DE51'=?0:)=)96W#%.+.SB%* :MG+18B:S€ŽŸ[RH;OUH9,D0,* )&t0<-81NE71E904 m!\(!J5RI93'+/76=$&R<'!+8F+RC=O5/"E17J"2CCM<S'BQHYI0,ö11N(98 @D($/: +:=:F7@S3]4.E7K=D+6=+,$.Jkq2$" 0E<W=AC=(E76()$A!MA17Y&Da-5%11111111?WJ P&*%8>NO(9J*:2XI$1A Bô?A%-êD/=I+-:)06/?)Mî8O8MG->7.T\5*6#,\3! +\ 1'L-1=/%.<7RI,P/25F! ?9+70=%5(0"L;M9Ck>.9,;PDú*?F2"ú"/!M8" L 'GC74G*$EI*&:.H*-<)MD=,  4@1;8 :3–wP0BVU#(:Cc;û77!;xÑÌŒ(WJ?QOS,8/J% C3P?&14IFH*1 6,.%>LJ-C3J7_2&':*'4$*%*=L9P5]N+K.?7 '&H"bh8# &)9=AB $.+1([5cEX4#5MI. -+;H@]3"AG(B3<A>A)2R;`?D4BUXdf&NRB6:l],-!G+#I5R>#Q/IE=I5K45=.C!>(`AA?+DK<(,?+;6!01\1 /+) )A:Y~@=F6,%<FCC?"L>R-ES46:>C#X'(QÐ>åW[(2-+@)2;.D>62PCF3@/;O& 3p *2'B'"!>!(2</?C1CK#=1=; +244?J>TUN"`$0DD>-0\*Q9,@`O7'8!1673(.-2FsEJ<,IVC>=,@3"D=@>@3N(î*):EN(J7/D+4@0>K?.C30;$9,#03@%YS0?+;d5K/>]*=!k.8"%+E71/11111113U&-,L6 (E><0/#I#I55Q/+$20?!04YOYH9+R'!A.<\4B/&0)3N#7!"(+?"U5>'2373J*D5"$@Neï2î|f7?g`O,XRXH'L*>)5dD^>7:-,@*H679B<<3.-("@=C.!!&o2*([4$55%OR71 ?11B'<.J!ù&3G0D;> F;+ \BVD,[.'+IE2"E;63.,+>2/#2A1E7XB.-<%:?M0&G$/;MO5B';NW2BH3)Iqƒ]N,+4.AGE _:"1+$N/G&-M÷=1111111,5G>5(,:6!!V8#ON+#7@%S,I(PK4)+4+K+/5(24;4K D4'56%M!:0C@)(÷i *C=7P270,836(M2 80ÿ 0D<"E(G!0 ; 74:*O96z)9EIQF'&!F8*?&+E%ï%_L"!3R58B2=B76,B6*ET0(0CZ16G‰ºbI>);ÿ'4695!@¨þÏÍêR(4;9%N&8#9;(>L@ 0F,R(A*)Cì?-45B*08^?&E@21/?8!ñc3ý% +:"B*?H,Y;=*+:#+9'--*E+51C2'PU86\C;ND //F?J;)P10C</.( /<V14@MK0;9%F#05fOD' +]5D9B 8>F–‡b*@% GI4$6?9/^$0K:9@2GE!5!?.1-Yü\#&A$424AA6=/&5!*G.:6<R8$)%÷-2Q$-?27BCE$GD5/(:H'ú/E@P+2*?8/Dšú¬< +^>F]?$10&3/+-<$5@0=#=D84$ +B9>)=4;<5d-;%-a=1?'TD3)4:a9*<d-/X7,8"*&4*0&&5L" 0#H.4L*8WV/ù6/  +3G"%(E#;H=u\b_ +;.#$3)(?8-G/:J5J4P+ 5HB-Bÿ%>!5  (;#@'DS#[+=O)2&1FKN?3330T^# "5C-.C1#11111115LEY785#!03b+*2$bö0(@CC6Yc4D;7!@!P*:I:4.&(!?&<F#P$N1DH"$D56-=!(õ*-$F0/;='.= ><F5;AQÛ¤¢ºMcz@‰½¥pD8 +L1,*AH&>>C@G3;7I2<5V.4(LM4 ,C>9 4G:?%.&#?G&_!CUKM&C:43;CFD5":6K;>]L?<6+B<$k˜a+F!J6 +7>=5#@;(,9C)#F)A5!M.@Q#XCCKE5(A' ?2F[?242;'+:Qo®Z%L#Q1R!,$)6-Y% 03 +Ù +,"=61111111=$H %4?'D<TVP9CN!,L(N*I&.72)015 (66JL )ED79<J@T"c 2G%%0GN:+#OA/C1$1,C0?"P4+2)G]C*J111><D-'O0Q +?J>A4'7N>AöJI>A-!M RW*3<V+&4:-8-5/ " @(8<7:_;?9-%0;(,v!I%I<R82CcŽyD,)'HC)#,"%<3:Q3NG°bGÍXBD'*O3@T!++.,9X74@51JR80?P2-383$@.R&O@3+0.A%A*:(&1E-/t<LHNB ?LF0#0%$*%819#l2 ô,*3=6)-3*j1$1(C.)-I?Q0+K?'>#4;,A(J%D?H  5(.7;+28F*.>MˆJ6M&4C!Z:9G&@$GI*-'2*'@@,($ 7S2)S#56./4X 4)3%ý* 2=. "1.(7V7OS,û-oO4?G&82 IX)Y>,H3"ept4$-D"G?G188^=4*C2K6,G< F6$!K)VH,m55372$?A@83921(A,0?r;22b+?:1H"!>!</)W=<MKBB-J^1L8T 6"/,?*ú-+1D=B][eH=#,?*BI!=(-9@íK%F*0(0[(M;/,Ai>KG/3BQ.4%236>_)2mJ$4N#2M%m&-K 3+33@F'1"0#)F1111111-''"'!!$-2 +W) +?)?bVP-F2G/%?537T6/'K'%<I+;#OCY'I97,.(4D26L,.%5,)!0&C8:,J - #2,K4SN=2Z6HMzíÊ‹a9/7?I5*53fF@0G>#,.:$38F@!õ/$*d;A:;(!.9*4G3O+/B- ,:>9"N%.6f?6-72(3U- >û:385h@-_ T¼!FW.7!2L]8/L+H>2"T /ê]6R51$9'5IO` Y5,<=+=4ãG972#I6,;=djN;H#Tm=FD/$/<=&.!C80!D@14#/&+1111111 )59-SA<,3[L?,/&/7!/LN?+G?2(C>74$ #-/-69!)WP ([6L ú?Ua3:.I=!N?-16'"ON<9 1(7"$4e572g:EC1)9@3R+ e'73;.RA8nI:3@;"/S>D +T+9E.3+jh-2= A883 +:J +I,!5K$ QGJ"6//;=1DC*:!Mp 76F>4*7d8.4û9 +F,CM.JMgciZo"+B;$?=H)>,(:<=$=+&5+3Mû Tb<)>-;>84"H2O6#8>23Q1cW&'8?*@/LY(5(F0K4+# *ScE$/" L107'3:L0;2-#5**52.6"[2;1+88:4$B''E2F( +40-%4 2" +PA +&R4 ö8I4A,,3!70(A'&3.*5+9 J=(*BL<D#!C56M'J&IAE?>.>#X)2.%Z. +I9$0+C4%H.<30 <7 N74I;2JNH79R8K@89DT!MP+7/L5 0(9N-6 V+7@Y#@M!4.-9,B36M60f, 2=MC@/p,X"*%:B_ C59DE$<ü6(<'Byc0*_-B1::DP=W071F&028*(VR<'/980HaQg#?C9?;"&0&16&H/ 5d!V&c+-.B5L:#=%2J.* d1P,32&1:(O%'#O5FQ-5*0%&Eõ<-FEN#,;%1111111 K6/#/;ûS!225/3)0MHXE1E*8E,,.1!212Z>92/"<+,\-2E@M70"6@H8D6+ïJ4;2Dñ(T3I,?3GI)I>09GK1J:qS—w…OF?)B7,0* @H+5BE%%F(Y+"?;5." *`68*M5Me/)"BD42W "=G,9+'!?_x,RK"4F*E(,3*%*&N 9@48M«Ý©N=*89)(!H8A4$"XFL'GT7:! QF)A&?-'>['G5K?5 +!J#Y K,?>(=ZASdV<5H="--',)'H2%6:;=7;1111111.&HUC7-)>7!WDDB# 8:;05W <B>9M0 %G=+E)=m@0%= <f4G,16##K&G5*R6@H/0N4/?.+?GT!%3 _@T6;*'=>+#K*T?n'HA=7+B$(5 2)6>4<;-3 , -G(>)H'ENü88*ñF]1:5%$=3,>W1@D<L4" @>*K +>aE%09,6=O*B&&8" @&?1+)9OQTMAB(#,,('<<H>DH\=;?:I')N9*572O-05L,.6;:S?=#>".6]3 \+D44 &4=9"# >0&9 )M,$/9.7Y3 ,>-44>Dd;5)!4-L3*ø(BCH./)3&)=1#K$. J=>1 L28I,&)gJ)Z+/4L,16 j)%KH-5;,. *(ý"62G> +6C.1+S;. +'25Q/)="9%3#ò%f47&K4%F7G(8G*X!.K=,. .Nq[ò.3?>H<!'_0FC/.247.2&<J3OD+F96<UJ<K$#g807( +Z0gI0."3A+ 0L09+-2,@'H%/=&"A:r4-0"[*H25A;MV5B$YD6@UQ36(>:64.7[J;.$AM!K![+6)&@1;2-F%8+, @/09<6121$M+<$'J-%S-Uu=4/9(%FD8W(3J 5L2$X!&3Kø6( EM!5ED.>&2)&1111111KW(. )82< D 3;&;15D%0R.*A HEH=9-&(+_A3$>0F9E%/'B9#$@(?"AK585/K18/W--O-JB*-þ2;6*6.5;2i5R-:I=.&("C-,"N,-A4>;!0 B* **?<:1"H0I'@?=-.2/)A9*ï,2.>(%WL9B+7-\B?$B>O8J?0(MYo@,b>)&;_Bi63D-*1EBN>AGH# 01?;-*7 7''*Z:\P).B+;.9 Q0)FKE%I&*"%CW^''JG66EF#=#@1GF*,C%7691111111B0">6M60@;/)!R/=M*=5556-3%h&82ABP/J#5$L*4.%B"%7"9?E_0?",G?0-,GJCFNCWGG R:$+@JB2*-9@"8"3;@)36($ 1,8 LAD6D*@3.*62@,@JG"=6F1+3)<,:ä22F.I/YFD ,O#069!=**/:2;I">0MOL6,().*=BQ(<%* M"-3L1N%ù/>#'8M)*8'"E!A%>>7m+;73&5)/8/=2-1)3!5-/ ,4& "!/CL > +ELN2B&7GJ.:2PA.#),S900'[O?.= @DK%3!7L>X>@0IM0L9E&.JH.% +<L :F19;B%;!*45,P<C'4]>I?/$419,,F <D 6ïIb$ '9#,L/>9 û% +&ñ"8m%O1-= +0C)010Bb?I?=(7-,&7@C1<D&<:CE-<" @@#\€=>;*D@63A3NYH5/$BG4 %D'%.+=9<:2L57YMQ]5EB$  g5=O\@&,0'W 3L8 NeS)?RIS3M1!$1* +6.:H"OWX1?&+6;1-&17/;"P5<#,üLC&G!$N<ù$"S)5-41ZM!O<T091)!,<C+6G4-B!# $f2?C3 ;.12#7&&!'K,-(.O:R6AQ?1111111?E--DN&NFE)@FE2 Hü0'<>aMN46;/RK9*-?98,3( 9ø]/6SQ!Q3$.2i&Q!6-K5ÿ!/"5!'>0#<C3 N3(9>MTQ[d…iA8 %,C*%7,33\9-JY#3'ST;A;3%A'ê.5;$A,BAJP/[$Q!3?")0%>"G2:!\)"DD")@'R9>1*2> R)#O->3@?V! -";> E?BS '3@4'8B6W**S<I36#&J"'2+!JB:/+G:$8:%CJ_ED4]B0+22I)5)G'K4^&$8%9( '1111111RFD$?&YG PENZ4-89"D=:1*:9e*6",7. */?B4-5##÷/C1I-HN&J% 2 ,2,xA3C)!6JJI'(*5==7).4'=@9#&03;)6C;F&5>*%O<$6!194,:R8QL>S4K1>;6#U.*' %'?(?ME&8O2$ +5%A0(9,$$+Z:'6%9#;8S#%!B*;52(*BA+O3!?-C"7$-1&M5(5ý%+ .1)%E/=:;?&\\4PA827IOH.@#3-%IG6,@DBF-% F5F$1gë3&&0+ '48/-D2";1,PJ*,& TöTF*>&'ù1,;'1280Gò+Im5:P!2,3(0=9$I0#6(<# C/,45(7V"--<=+8./4<8E2 "5-B#+7q&55"#%-#55Y‹U<,18$A*27 +0/E]($)-2+O<Z/-99S¼§ŠP#'=7'3"%%X +!+.(* $#-B'\ü=H#K'QS(.=%K-c::D3 =3;-D0D/ D$:4\(17A%-7CGA<`CQ,3?5aBFLG(8c+-7Zû*(.9).!@2#/?0>@G)I:%#DD ) ?#.+"DIO#3#$I3/B+!* =$E!1C4#UR 2/1@2/ +H.($'-%H1QS';'- 9'*5! . 1111111!6=%:+-+9&4)53D*+P@8\F&C=qN169K];!9'(@&.@'=71E A%>!+,!;$.;#0FE(4VgJ5E6(U%6-?DV4 (%IO(3WyX>T57B8*2T/dNB"Io9)þ +&:;3M]h9M"03 =>9H37&AX-286RN^60)"f^3AI&5þG 6304F,ZJ1+CQ)-00++N(89"60;(CLSIQ7\KWeU@)0$;J*-97]ÿXC344-4 'K"<T3$'4KI_99&.p6N+*!C&4J1111111>.7B(Q3($,""4;("-!+D;G"-*%/)A8$5DY/G<4/F!AK)B1)!98'=4007&@A--4H;9:F0N5QE*0F-'C&!9!</;!+ <"+H +*29(DY)>:415JZPP39D/@&I&/A>, &+SD#5%1"2)F(@-2,I4N#K89J&;  //*kU/.KO53=;?)+"'H@,"  0 5? 9 bH:.= F=,3E'39;+/8 *2J%>ú0C'.*07J7.2L9B(<O@<G^,K#;f0_>0o4/-8"7%< Hfi,TCNR:ü*:5A!&HHE ;AaA("G07-C)5D?N-*lH3*!6>+D?+3 7I)>./UHM.6/Z%&5:,;:.9O!$26.1BS* U:8-7,>æ7)!O C<.7,8"2<, +? (8a9<)6+KY=0-D)M >[*9R*2@$," =208N.16B8D:$Y8(A6$4<6/AG[mq06A$:c ], .<3>5:8B.)5;LB<ðS0(A;+LU?IL20@<F2%5 \k3B!9P% +;')%Y??.)65-9G$LCDa<#1óK12G9,*&>4:3;@/A#,!ùV t4Dö52CLL)05cþ"(.:@9-*!)ö5,EL#D9+@Vs+64,,pZ?AYCI7=4=`=B4DKmF hU3FadHC3@8-B3%!'G&1111111 $,;GLA?1'DB*8X2 .58BDFC +<+6,ý%O60A(<?B9$A2'8RMP1@,($">186(8%C#4C,"!@H+)ú5^OI6]DSB2W):(;L¹xLJ(/4Aó/6fO>8"%7:5G4:$B6_Rœ‹v/b(,/OD6-/@L;'B#8I*WQ089 Q>M*B5N;4<EE&'=-=:0=B6AB1,TA98:5CW++$E-G*]@4$D: '"-!2;(CS89)'*R2'63B/H +#<(95B#j)9d<? +8A) +=7:0KG7??H/4 VH1@11111114/L(B*9b6 5ú:4&% '5E/$2$<"%3COTOBW 7I;2@W[-8RD1B>1.s-YG -3:9MR.O@H?=6/=;>@#",1!1(4(M/A89A T?N5E1"4(.Dô8=*9$W*..-/'>**<%'8.2DNH.O)?74#-2K*65ÿU@+8-%0>.A^"4+71'"I2 A9!I2<#03N-5û86<CV2A4BL9=%L#A; %.ý 8$SA$6C]->`o,/..\øH@59?0@79EC)0: 1cBD$/Nsa@94@/@.%H7=98'"6+$R1ZD/(:A .>6O/FFA<-A 7i(QS+=1J?Z>33B0*A(OF$59@B ü5AH:N4ó)%+c"<#P5:?0 ,4M-)C9 +LH0J2$CE#95E**3J':- -W/#9 !;*$%8KKC#>,I" 356-..R:* LK6"AGI:&.$IR-DEeA0QZ&+l\W$J)2'2A:p %-!M'Q)/J6UPII?C/ñ, TM-UC#8744<O 'K= @%)*]?0JM(15'3+P.*&I:*41.7MB;'#AE!:6=6/^@7A=C#2 Bi>)40;23T,34)I(A-6/+(P2?8*ECB!,+V47$5@Y>T!PD‹sw;>7=K)"C;.2*,%-DF.)A:LP^Mql=>@$@52378'4b1111111;053ú5) %-$,ES;9M0û4^:!A)/!>SýD,&.OE'<#7XN4!2ë GJ-,=$)8,6 3B!-9>6;;;+-6EI_ûQ:'F$EÿO;3%155=,*gu–~UIDDU)%KA1+4]&+G.=J9bľ‡T3Gp2.;3!=/.5%&2@)%23@2w.ù@4IISbgw*6M-B)38=SA-2('L@!;&ü158>GP<M/A6@O)=S2A%*DC%H.$33.*Y%8*:P@)8û)L<.=,S*#U6@0 6O_.7,%G.;>+þ1111111>+:$3Q; -"(!/,D!U*%IB0%M#7$$0NJ7/\/F3k/<E54*A#"$=;'D:>I"4'A1?+Z$8#2W?<A!2"19$"%mPDPI,+A>2B'=37'P/@$442"!%ñ0S,IAES,7#ÿ$.E.2D9):=E272+I6 -VFb9V,E4%J,MB#>)BG &;);' F..*-U'G#*P6öC%>+5/,6NE11&4A(-CHeH%>7 X50=(#"8 +?Z",BMI8 G96I'>CFLK3>J./:;eu€D"8@G<(/4$K5("3D,(C=(4.3,+FYN%1#;579 (U-)?0&""5#)=H[E"8ü6J<!71%(6((8KL%*% D'Mg(0A%B<R!-<@(2@% m# !"@V<@L&79,<*UN=3A.0.P9*8)1-#!65F75*9R0$>C();?48VG/6.*J8"/K .UG "4q')LL&AuL>7<-:1$,/26J@50 5\%]5#DE 0%/7$170F(/9#>B4@A3H0(F+0UL*=]0  +B#%]+18?3,]6=HK; / *37Y)><'H5F?f5'*.=<'^3-'0 G-MH!8%H-';3.M9MS.I7\90-+?S% 3-/ GB0H> ??)Kbr¦`WEFT'+AA3R?;@O*G'&<Y'\"8'>4†\M;*&÷(K 91G1111111Q%:4,>>[+;C"Z,3'ùR.;5 :) -?D(9% A%:14F3=B4)LY$ÿ6'(0NL"(A ! .ME &R/;  #=E&.*+V ".-2@'I<<e•mA77D $9X/78#&$ +G"(IF+eeôì…J6t1* 3;NC7K+ %'÷5(-+.D<5.3*G""+5;*R;r`6H=3;@^3;"<BML#1&$7*1"C25E11+!- - (I! JB09L-)6<>':)CD@-4!:"C/'f.K 0ø('@.0!9%(&/'0 ,Y?" 1111111)h)M>%A(*!30+13*I.450B"5IO!   BH=$]AC<M'+x\; +.3D#*L+"9N781=<+':PG'\ :"] S<.)?("*V #,*8RB1#:C*-i):8Zò<5.?6-LÿE}>&V3-3%/(J'#,BG 1>?/(S2 ("/8"2*=+5&DK>7%D6DC@6C9#S*=9-GE2VR&8<G82+;91-:+15N&'3XRü?;&>,"2K&0@)L?L- +@/?C/-92J-J:-R2I"*=06·t;3-01.S:[$l2DO&/3.-B%â858'*Dö3&,%_:760)WF +(,6 6&E;@&>$&÷795kEKEGZ+G8,4L,%Q1E1 84+;€@+?N6%ED-'5(iD"'T58%6+*A!2D"*K +5h18Q %E^.#X)*/H7.I=:) (43[<'1:%4&,OK7f:>@/J,5[<,/K ;%-G0M7.P.2,B>6e.OC!M<)?F<û/:,%#@î2BKN&F-9  4NFaGJA2B!A$$,<B7(6!V*I!H66)]7XI@9.8M*L%"@;F(]<E?,DO"0KK970$[%G'"#*$.$ýB;"RNY+CL(6#.D/!N&'12 BY 9%#AéU0JSE?15&8(9 B/5(<2.27+0EB*@+E#<L#1)2*:D+3<VVN1111111'%.E# >&*/%0<+<60=':"/. $.4,0 2.8;6"H*;-1IN&T.YD8+-4f!.H7=?@P91._C;M)C"6\+4J99,D?+24<E'a:gTYYþ(06f.FU5:B*/*?@A? lŒÁÚfBE,4B@$PN(:&/&H$C/: .%4)'00ÿL6-=9CE"]D0-V0.(XPd^9GfaX82(16k!S7)1LD4@&15254QG0%2D5 +1 DA,-E>+?7)=S]6T>'DM G58>6'6BS*-5GF5C+,K&1111111< 3Y<79F28$+?g %3> "1%>VB")6h,G80?9.<; P>GIDJ=7AÈ/?+553 UJ;*C"%MJ&*7!,n<W0275U!F"W61(EO 0EE5"(=2;I"I;K&0/"K$(A??$( +]A*ILSXP&KH= )ACJ&U6J81DC/0?343,CJ6=D6&$+?.78*=b$F"T0.2.@i$%=$2(ZAGL1,õR: ^)O=@4QNL#T<Q8<=JA?*GG!,0$1$!5N+4I/V96"*2A.<}YN$4'9MN4Gy‰TL.0B:F7;%'5+B 75!`9=>-+PI(F!?C0#;B3E,KM,)"(%7>$ úK?/-7)<<@C+ùA(J=]BC/) V-<C4 .JG4("G4XbDR!56:5J;BQ3"<!&7#'E3) ##;R+*!%#M;4N?0&M )=C+!5#6>8Y74";; J +FF;A- 2GSH.67$1'5C8 "&V ,ÿ+(e&62000>.Y4E)`A6,8*%.S3P@')1QV9'MR)-4*F4*D+ <4W-AMG1-%A>CH?;M+##T9% /ADK*1%!7R3@389*=7E6*8)+9,,>3K3R/,0B0.i;<R.=8$.<76/(8@B,FA<62/F'.I.(:K)!%D1FVM9L*$':D=?#R÷;(/:E?<í'Q81111111.6)H?%5"D&3#3L"+>*#N +>O4 <a%(8E(D +@H!,.'-;ð00<?'J>3';S 04'%**94LT—YUL0B'J42((0P&8<3O,2)Q4!m&4E,>8"^.9&(WDPF.95<?0$E+6P8„€±[+5&91."!O4(#F;\>71;-G-17q( !JF],f9*K>~…jj^~ÆLZ*6:(4?OB)NY%M&5=>/92)8D H&&%A;'0"L )7P4")-C„,C,.A/.<%V;=J÷*@5G &?0`>AQJKý8- +&T:7?11111111H&)A=:7*1@#(&P) L<9T:G7#YL.Q J9rb5;:JS-;H2Q/K6S1&0%.ùWJ9  `W..-9PµoF7#4503B Q?=G'9D(%ÿ#;=D  S0:@'&36*(9(%!,'83R3#EZ5]8)$R<3E2( <R>3)eQ;=7-8',J6'5:8Z:U) &B=,/B#M,40<QAGPM<-1"0G!;L6#P$E2T09.JA>,0'#G.@AH<9R)E='*@ "62=*' 2<D'V2l &ÿ#49R“ã‹J:CWO6a<# 8P('!+  W$>@7 #˜íF<E>"@L->7H-G2IHþ$A&@DPN"T."O!,/ c:YG)?82)=9M.,76)&=/&%*eJ:P$,8,,+P6&?*h$CEDIr"7:]:1/I31J=-x9F/>(ûF,0(8W=!$Q3V&*OG?5$/,.B1SF-GKCB W@W9T`@:$DN/+6,2S-,*C?NAEAX63,  Df*EA5R5.I62U'=IR).=!$A-#:>#/633$36,j+H!&33.=0NY>CA[-'#&GLT0@>9 +=@C4D82-7EU#O6*179:' M03.-@6-.5Qmeh'56w5W>/)-Q ,.I:. ,>*4E+.1`,L=3O02/K<&>99 ; +3,>]û;P!-A9 084J.N11111115!!+%+ <H/E, W7>÷#AH0? %M!;>H\>345R6M%\,V p!/14Y=2G. E3:79C /C ò65~X>V$AID<?-8F71(û 1X">:/D&F+0$%.--17V[LiIE+4p*H=>/qshP<!:DBI+9?7:U.6'2>DE=!<H2+?404#:-I;8?3@A8cWpURLsZ0C&a221K.;/BF$ +./J=H7<BI)=+K'<497EFA(E-,49)#S9#B-?2@"<9,-2A)/#,(@I=5&-ûv#5;"#111111181-N%=l;L >SâKGH#.(;0. 'O/+%E15V$;P4:;H5@I+..!&G2g +3=64+CE94N1.QV+-@<:'.,@¸e>]Z^$RC8.KOH5o[_gN> &'^9/72? ' +-&!4I5!,+$'@&:,//+@3-C'%e&<$742"ôA-P679,?R 9.H,<P:P":S%f"M/4@  G1$:ùS@6,%<).925J1CS#:ôCIT:&/9B/J,KL\H*@)W*+ ;@VE.@#B (Q2#>9;Na8?;D; 0)!H XB/A-7pÚþ´T '+ R)H')A'2Q7=??3/#@ <F/@7cM:3Z$'3IWR"MC &'?AAESëSJ,(R/F1 cAb6=Q<) +:8.*$2&_, A%FDP/b-96R!31A5E".A;<*,p1j3J" j1)?(!:7F$8*7!M "o$1B=F52T 8#7&)W;#C9(.B6'!?Q#%ZŠOA<{rV63,5=I5Q(('")6=%O-+'<JD0d7iM0 1S.B4'J%63HJ:_TF/=-? E'.3g9E$*%48=BB-J1@,93?/e(' O66?,T$NI&I/'* 7`"9=@2?;/%,V3<'?õLAW7%q@I,L,!3+%2N2"(*4@)*8K5>9BúAF"53BCAE;*'KG%@X5$.[1,53), +>ý.UQk@1111111;, % =>>+ $)&K2,)A "CHI@GW28*.80/9 ?H833(41%.%33(:0CG$3$KCE)J>DB&,V 1%AJ=,:/WZFJ-#4J?.L %$l8.4-K7#0&&6-jP:Q; -=B&j#/58 *7:5Y0( NEV'8[>.R9;Q7)#4,F%";J6I(Ia nRD*/O2*'?' AE;!G K3.JF5'021=@2=<1.V%@=7+  O#!1>S#)>& ].Hý;*0*&O; 0Aþ8''78930/8DC$Jÿ7,31111111+7V'%\.+9þ1.4+GB!2""5H!$2A/.:%@F0 -=&1+*Cþ(R46ë0 +@!D5LKcF-Y<LBG=(3+, 6.=GTUkF2.3H'R_}€qE5+(,Z(853FFAI'A&VT:>1'?3:@ 741S ,><< 5A$H(5 J=42 52#8O/"D?M<>40ÿ2F0Nì.;J&MGQA=Nï*>3<8-%=/-3,&(6) E3*."J#=Ha+U"=sBø5/J4*F!M"GH'-3^BFM7 ?507%A'+!%1>0N(K0%L1C1a+gg©Ék )k38/! 9E3 '÷$B86.?!/%,û6U6CG;*).1<+R:8P7]4,SB'O: 545 IQ,.\>4K0)%=<>0B7)ñS/2< )3?]L:6$^9X71U;S600@%=18<5J/N&13C.)D+,ò&/P ôõ03ZI8#D)(4AJH/5-l0B0f !$$;%>J4Q“´?c½`HA7P*8/9!/q\70B>GL=,786: %C&>5?<!g@>Lùg.-4I?(<K2L282HJ5\>/-#)3418.)A@DOJ8/C#10!2P090+$!B<*(7D]/2R@N54DJ@)&TP%ë1EZ3*5M1(TB=- SHi\I)7>3'K`5L0W? +B1B8.!C1-Ac;9N#!H1,gZ48"5P#7BK7.;:J=1111111C>$987H7?6)9,>@L50/$U?<5H*)+44/,X6- A@;HO(( ù/JC,%)I/&.-@">1K12C7%5B<:9 0,)4%%7%M#' 5=R&‚\W(>K;UR=`8-,5;VB;12>.)?4?$, +54-99I21;% #*8%%2JFf5 &E%.0$(,/ .30R&=I+:/I.E?E;3 +&.FLd5'A=#>?6A& +@;5>"7BV9,#C'Q)+'HDhK7077.. :<Xb7 "+ 0&70# -û#OA"@F!8EK1+q931111111ÿ(õ:,ÿ+# C"6%3 950!A;(Wf0-<8w:OF&<R0>\0þI@%3-'@`=F E,><52<8%#F7J.&"=E;Q<51B%78@MŸ¦µŽM7I;D</81%*9 +=6<7*%?M,#<=/)0 <^%&/* E-$,?Q5M9;7,0ò;1,%*F8D1-'"5;G?.81 #'.+%% ;-B H34@'7%!X7\IO +:J:(nc:.@TCKp\&7;f;6;%7Q$ H32; +EK. +/%M#-j"8SH& G8p‚YWI#F&b$9HD!+/+D('F0õP  19/3J5;*'=#04E;M J  &"F8'+ 4?,S92>b7 -C+R9PZ#CS/5%WNG,$3[D35;<I101YU8.'J&8&7>$C:5@õ+>J-45Nh(&+PN;;?2&0 *R%R;/5Z5;í./g[/21/JUKH$.6bw_Mi¤´z?P13GH5%3.@C]MDZ86/!2%.>RU: ;F8$L=qCEOG4 '/7 26i:"99A46?*O0D>=%7D'8<FJ:DC)<K?0)1B3;'K.VY$0I$BP5:MH1^NROC>K349a(!.2H=$4(E) /"*SODS03+-#1Xbgey1C1'C9!C0f!I2#"9/(HLNCE#2ú+ QB),<FE5--O1111111"6+41(-ÿ24/'/65+";-.8=F ?/E3.:Aþ;79.))I &D?$3'K!,(1/A'Q) ûA@BK'P8&F==4,0-M>+3Rd50-8!Z#@"?;'&(7<BN” „.3;p<> *744Kñ<5f(#,J?(:+\+?N3L2,>.9 #H>X76&1/;54CV4;A7=6T$I:L-<5@P6BCG5÷1'TA'6@H4&;X5>#->@ +B>øR"6+#66=&?M.85.0eM;.95#31.(N`DMC#AF,?1F;Z0B-)O+O+<'C1.:B1111111?&/7ü=ú2=$0<=<C<,h0*/A [)4$6X!(07"C1E#",7Iao @AU)41%6$,A&/1:-*.9A+-3j"<2I# 92#E T]~‡€[%5E##;E3 '02/?4>(<?b% ?"Y;<(7ˆ+-B5?799Y:B0@A2 1ó$510PL0$:D,Oþ16*E461D#>=&930;!=A6R/4dI +3"<32@'= G4WX9EMkG'JJE*,20N'f9'5#J*&%9B1L-%',?OA7-82 Q:@7-"2F( ,C4C)J4iE:#/@+4O+ñNI_,@7i"%4>B5?5*+:>3J?NA6AB!-A!O(þ"5;<V%/2'7";>0$Nc4@D</'@!@R<%,-"8&+AX"9#:66S'1n=G52M KQ'@#=%64GC9.W2.DU)9'/P2+FIJ5,>b)<MeD0$&!#2þ"OHLO.12B"Ar'Y/,3'!8N6HO;(U@EC9@-,8hF#*0E"J(2.3g:J2!`?:/>=:, A=K!4H4&"7@&=:EC/5?CK:P1,]6@N+Q?=E-MDQ;6*M@8pN`CZKc/I.39lS!  A?@%@)E+0Iö&T=*B# 2EN <1+.?Q8<I-;L^BJU<"2#<5"]MOM%6((7%(<MJ$? `&CBWJ5ÿK$T61111111 3*0ïY$&?((/)545)Qƒ_;2>.+1*R5 5(*C!!* 'F-2<%W**'C:ù T+5( ;AA-5>:8>õ&48@)6/5# !(%L(5A3%;.aL±®~v>65B@/2K/I8#/3 0C.R3a(÷:4J0%.#=++ M)E!WXD-P??9ö(QC926EF,&/2!1-34$84=%% >V'2T1\7 )1Y23&CB89P)J=)5'933)G:9 +n:%:8$!Z ,;:>$<)H'.JPC">!E2:2* 5(2<LD AKA4M,=GB1111111!02&=*$UO:SÎAULJK:BM,$'Y, '/ +0L 6B$?`4C;@ S#9236D8 +6:H-# 1û)41=0,%25'&-:õ>YM6-D(H^.+E4CO*Q0+B=C4*,F(64>#!>.V:=( ?(&-%A80)&& 4M("N NfIO:??@M'O (,@*.;1,<+.@I78&8;;8L-/B4!'>372)52)ø".37==$,- 8KQ2H.&J/7#Z/3)N"2/J4@JP>W13328N63o +)&2/*$S="8>&C2;A)QTSC'LC-+()8B/7 Y0;E+4%=7='c%779E2AJ826M32Y4;6MO-A@G '#<?Xe:22#)2Z<3DýDc9$>=E$@<7W+!"%AD==93I'0(%[&C'?=OBID&'235OWR>X3@:;C4 49 ".!"Y2/33(7KE0H'BN$<&&.68d¶tOOC<)4,&.4-B>&($(0/#9"87-<"0DC&AC63&!2*=HM'H39 p^=1%P>E4ÿE$LG7RT9/6@A#03M5?GX''C<3"643G2E1=9I_F#09!EH/=8BHBf-C2,./+85/&H9HM01&K"54c#2/26I09. L<M%9X'QN-0DET_98E(N'+/L2@ ú* <6D@<.$,&5/#,@9aH9L0:N#1111111,)1%1H7KA@23"GF2/)6;S3!:%3/"N+?ð>)CC&:&F"D54O :9T"%>,!LP<&<F%1*0K7f *?@5 9&.!G)+5I@@O! .3?B]+*D+6K$:ð0:2síè>2?%TK-2&=!'0;#0; "4$A542E;E.19Q>3D4a)*ï"587:AT+êU5 U03U4i/(A#,:6(.0- 5P:%(J?I7AH5@%Z)#6B## 5ý/>86,-+&O(J'/ *"KT9N\8/%=+3 : XB;@/FE9, .3011111116$2€S5B\%(6K=<1R">>063$+=H20*KC>B614=9/<^ B>9ú/%ðG&25B7O@$?D+1W'HE%+FC@1 + 4B0NQ'40 R<H'ƒI27T1)-&7/8X!/.,223"%!98$ 8G(?'A\B: P@2570 -Ij.1$=0/F(M>@35,6H+&F>L?&&V23-%BDZX.4A)L##J?GY03*,O#=(EG638>"H*FP;QT89=+00cQZ#,4>6*/E6M"6; E3K':$UcO=TY;#'/CB?9<9=(@ G=X6&.; Ba _5CS(2<!U .4H73M,4G)a/,$)DDA/ $)3:"*681@1##!38?þ5'X:87V@1#:>2+>231!8"ð?<#fT8&:!$N;P2U/@*0 N+5R/GK'7T+v^I29/& 9((0N;>/4/QG,U1MO;>d.2%O:+6@VF·áƒ0D%J@N?>IDL#ü>EF))8W6)-3&-3]$!0A?)[O&GOgRC#L5?$1>P,K1f /E9%84/2'"'90IK$1;B3%%5I?5-HvB?<RP(<J>/=R( 'S„I3. 9H_0&3ùC1 ?,T8\5$@&3%$/#D9EE@=F5G46**(+(&B<7CD#;,G =q!U$E3I.,?&,7:;2D.(3'B +C þ198*0$11111119>=* KNB00(5?.';Cÿ%;?3:GX&9!;PLF,M4D;56<)N*4<("11%ü+&8/HAA5*"!2&;:2&-$97<*O,G0242#"R)S-)#9$Z;;#ûZ8/67"A/L?$- '""83$>O(L)Q?83"e 5"#=V714G)1DNd@AMM'.?.?$=+I06,3G!<(JIA6'94A'7N;Q'8/39@+;+.M6S!+/B-"*$"'%5/1  &I4 !6+F,/9F/5!'&CM5B8D.;]092+' /<?>!A4,E+)B=11111117*(MD%V#M7:=.I@!BZ1;#-5J;$7#9,/&-H/+#+?6#HJ).4óB+68e)/ +B43-*,7?(X02,/,2HA3][a6)9/ P1,FGjB8P@:H:",%:Z4%#?2 O +Eø")R7%9 +H-G@!U 6ûA/:1'7IC67%7 #M=/1T7@4*V0'?+40H&C#7 5F=6(#64CJ  %/J4/T2dM8 ;B&(:,762=: "), D(ARL0Q6RS94!;/'- 0 8N$7;ø>%9))4@182"R3HF@=$4e%@K>G;><N-*AÿI*NBK)TOA(B/#7898.?5)=7!ThOK!*HDD0/1' ^)F,J*@2'&S"N$<+2<(26N+YL2G&@*";<;+5;MWO7585CR?0#HL7,81 O]/"A."('S/0'>*<c:$HE€„lLF$0V:+?+.4&%,6A>/>6 D&MRM43=.,n 5JA#27X;2>6<L)6-' 77Z8""G&75;I4-/14L 4H(A1(aö($e:sSo1&2OQ043--<Mx9¹VD88+(A5&4+&($=î*Q9*2A<JBF 36=/JA&5)/E[,A9$,N9J%<I;ýECF 73DK8 d>^1=;=+@71M 113-A.-1111111-_P%2J1 6/8& )R)3^3+)4B1<'P,M$  ) 3!H&4<69#.5>(DAB!325")7>R2C(=7F"*&6)07. 82/"û5 (:12$/1='H@)02NY/O=B57!(Y!='jC2 ?,*T;W6=8[;?F V;TBDLT’pW'H=%$`2&F''MUC3:1+9P XN76+8)(./9/>9W +]3ÿ$2  )1&2E'(ARP#SJ23%%F0"*v4?1.."E*@/.$(+P3(2B43?-7"-2$A;6>-#3+*2@1111111XOM#A676/D4$B[4<A,`39YC 85&-. ,9GL(G5.21J;[%A+-#E'U&SK +8*ù9C,!/&I<1IN/K9.E169,!>6;> +'<-#5\UK=HD=D#U4\3->)2,, +1<'3?2$I/8- N-+6NI'JDO9*5 **,M13LX/67D9MZI0P"A=3@H/ 8SEQ*%kW!3C*V2+3E2DJ<#46PA9j"/A $&8+@-F<99994?7)"Jb 475374+;D P 0 8)@:0?Y+!9*Q91) A27 +-4CHH7#*R#6482Aa.i)!ýR3&07 ;DI%L>N;'(2@04Mo‚c(52L4 H.7$H2]L= 5DD.8*E:3=G<7_$A/BPOA&,/.A=3=u`4**(?æ D4>*,+.F/`B)0(ú#A;B*/÷B/FOM>V9:7?;6-?Sÿ+H% +ö+) '5JAL97"÷QH),4S6]UV%8ZC(,.E3E723#+S?9L36( AO8!A*8IF6@$"3@30C#.,,$LLd”b_h7= 61(RK0C2J\'$=9Q#(Cü ># E9#B3G 4:9"Jõ ,*5.-6 97M-! 3<:%$$ FN?%42.5*ü+H2@h+úM2= (=E&1&;0="ú@&*8>%:= 0cA=K>SK1?.8?Q4*,@=(%$#6;5).J ,!5(##U *K ;%<F.'6@:%4+'/0A7*! (N*6T+ +9;)/8#24'42"B0j?@#8E%)(2 ?@i[x?JYH">E$*8&0:'28$' K$ +!+5/ JA&J2.B?# ";A?42FA?;1õ-X/$%L7=Eƒs1? @X3*#1ýi 93$*'_8*:7 4"H1@IL130:.6[!2$!1$-,)6&$)36/T<4=ü19.(543CD?<,FB0CBH!/3@VA6/8BB< 5%K%80L$E1111111;+ú'<1] ???8165#./^3aOH8`4ME*T+RM,!(GN8S)E,0 ;6O%+JD+A@)EPX%#B)33-1XL5<<(F9/9!@3:D1 "CCQ2=P=%.'>8272%^2O>+</?<,4?D1CU-93M ::PBU2]/2&$-UI1W L0?<&5JC,AQ *GE@@DG[(=$<5"5T5C;6T.-5M!'^5H%!-4/=2DO"D>>=4H-?@%$!#1D:>E3NV*='6 @  U=2.7,/ 1#URGCD'N@2O+:@($)H'ÿ196#@/4K*2$ (C&IR.G5;4Ha"5#.'&C67+,1G39t%D•¾nWL %I4:-LGC;.G24>"8 +&YR!3>"'585X48!R1?77%A)19*_0"'3#9-K9(J-=3B:FN7û(E=#LT 2P&2*,*8(?9DA4V2_&,=) )854%-0_?-5/((0+6F--"N2E)"<-1J%WR*DTC@#2!B#<G#$T12<004 >2&,Et6dVf*7)7F#DP"W16OkП=(,.#E8TE132C& %);5%.,F>#W2þ08,F0R/<9MFF%7>6*2278,"%95)9$J*.1E3(/@C NíI20$@-# -T88./>Gc5)*(#4EMD,7&.@-%*&C +5716.,<%@,!*2ø"98ø)-&,/-RJ)!5<ô-4202H"&HKI.]$ML.(-C<€_f_UB;ø9aõ*!)GY(H`(2)?)CW;%AO"42/=PMU9=Uj.+)L!:5GK$.2.@JEK$1L.7)eC+O-D733:+0/C 0I+1L\/3=.<%2T +@H/-"ý#F61N%<,JK5-^*&?9']H.h/3':/T-%6&*:ù4#T)'i- =&W/.+HE=%7=?H'39+0.*é<0+1*5E,'1111111@K'(C 5++(/S!BB÷hAR&8Q:8GW=$6699!52,, (a$*ÿ:N+/,&#*6M2"kB /337M)0/)),6208>W<8-><1VK-*!'#5<217f*;*@.-$8!0/,>&3EM9<%>/0-A.6$7IN 2IE0 ,'U!R;7$;$#-T+-1,N-@G,!7H/=0;;I=D36</P?j30.D66#&6'**RH.MGYR/)Q1O %%&);%7#0.AT:I*PY99E:V/%41SñES 'g7, +Z)A; a;<"ID,F4D+E:/#"W:"<.@+E4)'KB="7<<K,/ @&A+j&A"<ýC''E2A440H&7%Q'I~w4Y09A9B)[3 46B9(%&B8O%AFN<31:4g.,.,()&1;+F5#II>4)I:01"S 10)0BLT2(5*.#5F56$(/W$7e+/6I<?21"EU0$!,R(Y0,9_G0a&)@";.7*I!=ZW9k<3NYG/>G#N+"0AV?<<AZ4T-HI3B$K7HK>O0K-0:=/!.<F&- PA?8'!C$&S)C8wJjƒ2( ÷1$3?.:1+3*"0*0,96ÿ%$&3++&ADT*Z.O$=41,0Tk=,;=Q2*.M27,''2! &.%3M 6"J/#(He,*&,1B.C<ô)=?D&)-$<>5+'C.1ü8=:MLY04%;#*, E%4q8,+M:(;9&+û24[9(.:95+b(1W7D)?%7D#=0G19=+,}Xok3QJ +8'%GJ#5G:;("FC4C`==-VS>,PsG0*LC6KT13951'1(L0;(V9 ,2NS"9*$2C F-/Yg/+2>[$I=$!3.,:)& C?2%)KM6,(#:=B-Q&<@ &2G8?'F\%3@: NM!#1$. %$5=*2 S@.';)C11g=?8,B (6)3J6 8/( V)0V1111111M,'NA944V6O4a9#1AD;'6)YH+HK,51($)*"%&-O2+'?#-0<(RN:6,5K1Rg$B<B:0=M+]&F#!SHL)'5%-1H-'6(WN$AG!ELE'XO2@8*ý8<1X aJ(Bj S9E5?K)22@ 5$C@8W12S);ý6(2I(/:#-9"39@84+ +-,8*FbOI_A`9*CQD_6Qea4 7/*&AE8OMBT.?7&2-O9"9/>5:U>0)G,_$F(HH&9) ,5G)(4"5)h;4*,ÿ4F'?S#: !%::#<-l72ô5L+=*%]ÿ0&"R?$5_P(* $ W @$3(??@J>9&4140KðY$ô==31B>F@>5 XVT7-)-8&j =-K7"<K/  .#øI25f>D1$B&**QRJ,AB5/[T)F =(+EJ=]G5 &$@/Pmï*.0=E713T846. <# 5@M.89OD Oe$O%K/&I<* %9;!26,3c;I74:+bRR) 1H33/1!=.#C90E9@YHX@I275(>/Q''+!'8C3Rg2:A6];G>\-C8 E%":7A+U3Jj(=;A6=,F[,(<0;C"31(V#./1öSBT(6/93F!K3IZS0G;H;S D(*%@K66F27=8C>CD-'/K*+H3.&D/= "V5,T10'*$*J/$ 5C$#XC"-UD)@?1+40!<'DE& 9X?$Aý606&2$ÿ)(XX70W&@?>TRO@=N FG2-AB7AK&-<X'-*,#$F+J(/'6/3,b(!+ 765>"\G>i#S "?T#6A&O,>?2=;E;1KH'D/,)@7570K-B3<?q-#H)E>,>.M)Tm(&+$7;E.<B'/,68.%#÷/?@@@KKZ/A'2&$1.#!"@K#jT83>e=2Q&;:$:JD <8P';üL59M!%39 3L8.o)74F6+95E88(0(%"1111111?14*3,*8# O?)6*N"[,E=N)D"8?>F-ƒ2%F@.5,$4574= -Fø978?=5Y^',Q"H$!93M8ö;1G:@B 1?E/E0/;(ND(*F&/.I@6.,3</-Kg&.(/=<R/*7!$E72(ú'1829A%.-E5?*?)aS))<1>!0"ú>F*:H4$A&$,`P >D*5=/IYF0^?:Z6+J+H:-?G!"1<PF3 *7:81$2 +K;L369GF-$<+HK) )+<@ ,!:'X0 .#,-ý2Q6E/-0'?6JI:M68.3(6*5'LQ/M:#;6F4E""'($(27A/4:P(0A+:!:'U4<$*!9Gb,"1,>=FQWE*& G>F)9(K:',M@7;@;$S26'5/3*: &$):@"A=+;:33=-E+O,LOF(^@%33K83I3//&LCT01L%,þ S)!D@"6& "OI,"@(.(8$87&U-Z<S(AZ;Y;+=2C6D+S8<8g1M\3=0O'e;) DR(:#8-PHG.:6>*QD>-Xw-5N A+">#&2;B&)+/9/33S=I8D:7m.4ILY 7? K9.2(2H8?B3L27Q> 5=#:-(=Qo5:(3 $-#@;[þ/..>,54P%)6!TI8VMK'&@S[OQ<3(E ,V&÷1,P8<L3%4'/\5/4.673-=M'4 4\27(/Q.9P3.+,/6a8CLL?4 3 ,%)'N/8=9=',G)>%BNH1844Y(#3'ñ> 'BJ;+S9'L,J=!Z.)095<> +$"$4E#<N!2C+$6%uR&Z"7C:A#'1H>=`P@67(59I 9G8OC&`.7J)S^)(>Q-M#6)9'+,0,54C)XH..ôB#D"@J0#@TENn“M%D%7#4<S2õ+0A4'3O +1 "-0D)PE5!N_0,#&5!0$K:.<5C#  E@"./MQÿ1'?49EK;'B555[2HIL&$ô1111111?I87.'6  4561S2!1-40 '67.Q1#56CC+G&+7<+"* =QH."'6o9F.Sh?-1./,51X)'3I\3(_'-$,04+*0S1);+ :$;*).6K+84M$Q3?-(%+28%.H>.L!(\2>.41,*,1R-H3"!?RF+(C%P7W00B#ET*Q?3 @@M/'k3T#\ŒP’ZVtF4*B@31 I()58267'B%.F!7& 735<1!*;6,#[/3/!!-- &,Z B%2>@&,7=%"U%: #>1-'D#dG4 "3">- #=B/%48)03þ*!)4ý&/@T</<qM0(5/'9B%L`* T77U-9!2>)I7H"C a=`MnH=#&2BA!2G>(I9>8B7A1<>J4!d86'E16;7P!41@$ "J=83B6*K',217,G5.Að%3):&/D+.%8G +12)C '$2`=JA-L(/_,3K#<=!J=#-$&!"*(!B;,3=P0"ø 9+=5C1#0# !*N-K\`1%*;*:'1BA-.!-@ @f,?D@;9MO<R49DTR:. $C" 4?73!>/500&//*H2!ú@+!Z6.E1<MI0(5!.<!J(#5<<D 3N8+(C:<5?.I7<EQL3]V d.?5 $E+*RQ88&<N7(O-F4\N'0RX>0/65J05'L)#"H:C5b8..)*;06$ %>/N.+97 A5.$ C(,$MC@J5 'Y@--6?I37+ 2//I2!Fd.DP656.24*..b; 6/%X609K*>$!1*=$ 7G722I0--2T.ZH÷ÝEI%L02;"&9) +'1B0I7'4+C:T2)H/054"b>iÔÐU+O'.gýHDC >#$',&'Z:5E)_.&@7B,UBXM8"C*-4=4)6(C=D(#*X67G4"!+;6?3&#)B13LJG-)[(7D/-1111111G6÷:<E' /:AN-!63 ).1$2 3)7@-P,<',>(N;?.F BYH\5+:@2(<*5$?0$@LXL(':M593%*DúH&7( >8%3?O8!D.113E%UG?@?-A1FLÿ'-8=F%=QA Y'W/:B57B;M;&D5KB*6)3+A*>D>F$$@&2D91,%;J7 6 R:;JE0(cB<.5Jqš¯ÄÊŸfbZ\0A28+;&;&<N+14)H+-.2@$@ 4E;9C&&'P2;"0%H-R96,B,>/7-I'D8(NR217$3:/T.%&>'18)K8I('7<L%CG*()-"-<A0&'FA’t6CX##1#PSP#H,?E2+M,*W4,.LB"%,k>)'!E2=F0-55#>51G#[%#+X(FV0í5B(-K%^/N5.#\B&66 c%!-3DQ8,(9D A IG/6U"[D<@d3;C9A;3C=*1*4@@4FDD,;C,<)4[@QD39J,=+!<>.$+X?h&DB;',XV3"E'&0 +<$ ' 8-L,E7-+,%K(%6DR+](,;TQ7,;5)D.,e>J+ñ=ô'. 2KA<"$QFbNSK#6%AbIF +T%ü :A n /4.",92E,/A8M62R*"K28iq`BNTO&GA<<)5"?41(pb;"/@W_C9^=[<,1(2-!3&3EM)(3S]5O0J1I16<Q.G>P,.+>)#C*  C1I#:.7[2\çUI)I&!1(A9.+>YnbMFF>#06=I"/59?þ 42-S#PI,=2;X& 4'HA! *(MLC 9]O?#eGHEý/A'41A<G:I41I61A>&2I;@D/0F+- EM142Gy¥>'JI,@J/%W"9;M9')+=L+!+L024l<%@N6BCQJ):H.õ7& *.65O5C&A8 47"20W<-+2$ 2+)#e'J7L211111111E +.!+237->>fJO-2^'8M0D3D;1<778F=;@; J0-0):/,+;NF(E'A="6-D/3.D-35d46F0- +/;S:=F6TO:2c'8+7!<)1/C145O B"6+:8T.D3D +:T6ó>4'NI-.5$$%H/-4@$0K</+7%0#T$*$ V*P)5"-DQQI4.S?)KRG5†Â, ›q]*47k&:9TABí(A0jVü*1&?70J08=B3W"-*<+?3&*0!O+dN))KC2;J80e6JA3020#9G)<%J2,I1G65&93/K7T*/)$*? 7R:jN1$8msTS3J.;E&<D?U"75'Q)XG2(F0@1=-&?$IM7]N+- R&2&.6(8A,+BK35!OX,>#=9!"+ +1:2A.#+2 @7"S[1K)ùB5*34 +R2CI3DO@ (-LNA<[34K7(I":e17,C)$//H)G6&*E^/(.80'>))45N=#EN+h755+ #8.-:20?X#"lA%:VBB5/V2X6'-A+3@'<#C"5:=6/"#S†”W(76.7RI?'O?4-@N0//B4.8" +0@$, O:>`I& 8,i$(0$(!14F.F-F+LO908=/1''00O<6E#.6<8.!PFEÀ†L#3PL0/$/8KR:J98#6V”\(8P'RG;.\X‡p-5S779/#F$<.!-N>"9@+-C1+ZP&4V36$<+3H&3/)7F$C 6NB?#OH#O9(I";' H<)%.])%28;97/)P-6.B.A #&4 ==?>:$/@.+ [^.%.('/*' )8-)&&>7.9[)J--FG!$NK"1,S&:)/KKB>L799-2Q,# aE(0LL<'-!2 1<0B'#2E:@F\K8?7C\Q2-('9"J,+Q=(+H$E;JM/j%'H0&;z@O'V;A45: OõBI_-"E05)GR^>=/;<"("5EýBUBe56+S1111111*9[ >JH=d-`T,fE0PJ<'H 7OA3)1JR57:X7H?'&]]DGB&L1 $@4"*3G#(24P+$/0E9c* +(%8B<6)M96*C/14$=IB)PYm?:901'=,S(?Hz=4263,C+1#I=.(:G?1, 2=$?&6;&5;44JO0H"U$?)$4JP@- D- Xb'J7.3>%GV*1[j“LŽ  9Ç‚„^Tq2D3.;7522H(VH+iOL1!6-/ë, N)I!6,6%,28--?6W.B*(]M(17'*,FH/,SSH/"D=;*F'5+WMQ_B',702/L45(B)AU+Z."E(;/*ù7>+:O96IC?E#Z=2*G/@-;L-!?3&,.#(7(S5/<P(3?ø368? 27G3M(>PU -õ<Z63G.)&- '4ED/(F'K*+;8144g[/(;C$UEI#2$^'+-;p5.4 0'1@CC%_GFE*64K:89.0EA,#:$.SH&66D3AFJ=GBFP;:A<N69B"C$.90:J;2#.73-GE=6P)+M'29 >b(*F1$-5$"\N$WM&#).kP2<<@A:).DY +5*4:KAJN_[;/-@5Q$06!DF2<5K0"(*77>A*,22%/25A4*#U + '.PWJ=%+!,-urŽh\L %5P/L%)N)@:EI‚„‚>SD7,.=(w–úß’BM"),!T3E1_' M*5/7R$SFõD Z!÷3;'1>P/(0%3>$*@'/Cf38*+,8 %IG,O7\7:YP> "6Qpd@0FT&GF";!)0.).8"A?2D58KB2%;!K&&2#@7S,<1L*>3A?4--5(562A(è.>K5= JI@(FX0>:C-:<?($(/>>8XE4%![6C-F>]G)-.9jC:7ü%',/A6=?1:í9(D>3It7" 9<LG82b3"( +A!'þI 5':)C F/Cü E#ø4464KV> +A7L- +2-0=1111111*+'X3!I.-56L64/!-5C421# +4!>@@&0F8.F-2 @ *++34 "G%B,3úH-7>.+K6BVS)$$DBD4EX4C94<%YG>(P 0;1)8'<J@(DòBø3K=<<. WAE(/0)<Z*K='(6 JM%,,@I)[9E*G0/=$%1 5õå3?@I2G6÷IjO+`$X3;&%b+=<`c«ä•˜c冸œ‹-WU$+D65JD3.I 9!7%2X$4'53(;M/I3539F:*5N  $H'8==-,'6)1*C5A8@6&@(/ AA.ê1%0:B*:@DN8%C>8R=0GE)2P$'PüKüSþ%+;3>;$$&\H @YN=N+&.H)38(a; -BJX?N)A([W`gS9fI"E) 50NHJ=2>&J*r<*.)$XO[4X1;37$)(E32>3SKW=&?3-;0 1B4/<I),3)+2*$!5 =>62?dA069EE)+29#I,"G,4E9%2:10/h@$,>$<*#DW_G-B1*pNG+;D8Y="o-631)Hc@4F<4; /-3#e[U@L/I*M(OFþ8C P!<P8II,,-$+([%OA +[<67,3'*3 '+G3"6F3CF(WH%6>0iL:*F0I*2 +2$H9!DL2+/<26Tÿ=( 6EBEH(48AE+Z[T?e 4+":GZ'"J@9G11‹„SR9=õ*9•ºUÌ`j);e?(,c[ 1D= =P3;5>9!†%.hCERI8-.E5EE>@79K ZIE9;;?,+J6?D+,\GQ!(6=b60>M:FˆFH  2LV= ?&?1YFC1!AY<>9N/-DW '3:c)2S888>?3$:HJM-/=I/8E9aGcdGJ9@>`<4A D8"BT"9A1+,4;"!;4;LQ7`M5@8Q>%@6F"8`4;13#29DLP*ú2'0@H&7)/,P3=C3++)K088BJH<44B0ÿ;?/$U/E*.J861(: EI5nL 7 ? $ý1F111111174;U 5-OK>7--b?:Gü"C48 N:-;E(3F"(/M=.)(+ 6(36bK%3+>MG5%.B-UAF(0'%Gf/(%B?24HD18CE5;E '$''#;"?.><-6O37>0"ï0?2;U976A&)>#8J;?;:IA3G".E(5*0aa&vo\@]((L.A:C˜ç î É+¬tlC6$82=G#b% +"Cþ#.9'-J+9R0 <*%C#R.0A$37+/,5)(2Eô,7)89&#7?3,*8 3+/%FNY%!/1,9ÿ8AA3M<%#<*?7;O*'`MABk(\&"+% BR?+M>-.D+\/\X;YK='u5Y;;>7'';Z3#,*2E8>8f©²mI7* #!üQI("7<CT<mZ*%4<+Y@*0 D09L=V+(F6*NA7=I1%TO5^9@+85A%V.B43,*0P&QA:.a:=.12F.0*bN-8B9_/3HX:ù53CKI/3*N62í0()?#D4<BA&?B4Q? Y6>O$03.%LD$8ù.R91"L4L*,Q:,:?;2 #8 +J4 $F0-,JV=D,#8.âB6@*^*8D<=@Q8=./2C-"CK7*(@A.D9::,F8]4E8-"1%EF+3H9C"B%11K%E3M54O!"G1"1:k-',L@F[P&K05G*#'!1H'HIO`="$+XFÚ¦º¥74WM34B=%k%0C1JH#;6J!+=+.AF)>; 4/7N<3 -8Y'd O&CdKv13FO?86/ SAE>YX6)<LEPzШžUI01A&$;-Bü+@,9?&K4EF4I:!Y:)=; %.I$B%,TW05P329O[H2/(EQ6DL^å•6D&[,6;!8J?JN*)..057/:069?5K> -..3,;75(, 8=FA@JAVG +,"Y#(8 >"9 ;4>383$:8Lb5GB>+,ù0PY$5%$"F"?8I[<M>.KF*3 >B'>6K;61111111/!/F>BY!*U,).J/2ü$ +3?.Z!5 24 0;3P/A*&J&H1B=;#5BH%<9,59Eh/V`"NR(-$<B"0!>V9"$P!F "#YAM)96B(G('A6=4i:T)"1&@&,:',3D:%)+6V#A17</(;^*,"934B30U>G@(K .1'9O++,N0N\Qr…aV>T).(6<)k¿*áá ‚òØÁqbG/+]$2(19RB11_3(4$?C1+BJ(,5 *29S(<$F!Yú<+O'*w?4`UQ"=0IYQ^:C*e>-*G(A#)1P#B?-/70+>(@3.?>,%F</D)F$?]`L"I?@$!D1<8<,LQD"<''D8>7J·ïتX><-1K >.'NK&::%K<@GT`gZ+7>Y;'C66B?0(-C*G?P7B`4H?/9C6>þE>K3<C,27=-C0<-5@H7$-( Y*A;,)C,\]5J87?:71ÿF4(S".1?-.@,3?=$$, Oð.28+>D3?>%9C)!$20"<8 ?542O%T"13<X"%1c=+$MT932I&.@4.:=.+D $X0#Q)*M`//58(,GZ ûUQBF;F#KH**#+M4*-6T +I4V& K<$R%*-3.U:+O>/D8A 8 +F5þUB3@0(?ÿ7;25 /l$A.%2aÊ}újB>[<7P-(<GPM.*):BS0$0.6<2+N9OJ6<!77(,?eM=%D CYH[)"<O"7.#O.53-0&A\|VлX<F'0/1:*;RF25N.")+)i5/5F\C+@)G3CD).6?-/-'1 D: 95! *0:/3QCRhoõK,·lBV8,H+A8H2#3$5C7IB<1HG')$F1==GZV07% -A(-9]&  Y(5:A%3O8C9)6&ÿ?;;-H)"=a/C#" 7Eb/-O'ý505)9-W)SC(9%3=$/*B&<X6(R,M4301111111MG501;II8/A=Hg]JC'D9Z>75 ALDJú@^%#> !5:LA>;,,?#L:./+1'"$AFT\D6"4%6R,-=;HA01#&+7<&A0< +K06*01(4 .BA::>VU/N  FI"1.ó -309B+D"6T,'$A,/#M ;:H18=9K*01;?I†èú·¢o7/G=7K-cÍ#ÕÌköÀ‰F@<3D ü%)EG( C,11%L! A;N6BDB"#0%/T2?D÷55,+*(N9?ACLC))F2,!,&09N"0:+8B$*0.EQ?#J$)E,31$50I@,)I?F+ '7BOj;i!÷P01A:@BB> :&.1V#WJJo3;AD‚žÃ—{J)ZD9>AF5BD84PDR#V(HT5 -E*3(=GQ%)&52G7*!++31,.3! fA@ .'A!,)^QS4-E!c$K:??þ!7=O(2S;`9I,20ôë6741 8e?4AEþ19(R-D5E44,6%HN a'BG.9+>N)80EA863?1':"#1K3$,BSGJ<807 ?j]5:5#&1<O>:H1#;6<YKK%P;'4>9'q*JS0  R&N@3+4<*>4<::?8.?#38%3A62<O"()X )2þ6&S+) 5h4!03:7>9$-+,><&3>D1,4F>&K!0 G>$'/9>s:9C9=4 &]lÊC#‡2d'F_-X;?G2AE%6O1Q8.2(%9-"@?,>+X2+ 0 $87k& =%J$1:%,0K+K $4&,9Q'.D,D(JwN…–sa123*(6/K4.#2U>K* P64I53V03%@ [1@+A4C(E:M-D1A:05U,'.;FHÂW^òI9(&6*F($K\@'4.4)+6KP.I!/.XUQ1$4&3.1AG#0+C45-)(+''@J:^-Q%7(<=0E40E1WD I >V=*8VG23R;HD2A4%4/-X-.C*D@*5,3 L0O 1111111V6381B=&3D;M)#U2(4 +F;B 3B)"9.3í6y@% T4>QF,5<ó:D3 4 "/F)91 >'3%:h?8)23 +,ý8(E7;û) K!%);83=.)B;)SC F"O3MBt$B% +QI+5Bý!53 (,-TL@N#0ù5(4&8'C9%2P5*077+=6 @>LHa£ë`ŒÂéd[:/M4XJaµ0dÔ…4Ͱk`-F&D%-4FA-10L*:39þâ.C89>V&-, /!X23 +92C&*cC+/6 %BF…ZV&.V)>M 3#!/V5!1 (;3O->!L4Z*0&/;F4ô0ëO&þ&*>HCL4=;4B$sD:XW5R9M:;>95N$&ñ4I7KO;= E2%R$=J&(Rw‘_4 78T?%'=+o>SMaPhT<^Pš`2+SB +<%14+!)U*K44$?*/I/50B-,JOý6)VC;)>I9=[4*X@ +J8-<(3'HH'FK5#]?S_ -&5>;4!4G%EE] )% ,8;.F;.JV)B4 &<$+BK&>5FP\<2 17@ð*&AA!L>N5L.6G<T2H .61E3þ@QR>FQ,'47:U:W;,pGJE: @#80=0T[S24]T>3H1.CB)'9#"@".O7?:$:^/!0 V;G*4AL44&G->F"D<P9CR.* =!1-)6#6+p  +>"D)$%=BG0P£az86`#2&AQe)#7,*0A6)#ü4,NQ3I8$&4':A$.<!Q0$&G/ÿ=5!* (!P&F;2L1?,J/9/P`nJ=;J!0J/"%B1E;>QB$9ý#_6T?W S4 +(6=F2?@B,5B7;E$7O*"? J)$/57U<db›À±gLC!)7KCAA 15T9*99a/ J:m!2,79ZU˜N=).:SF,8-& /7P.5:QE?H$)3V@ % K)1%B/aT60.Q1!E^)EBA!K3) B@.7 ,"$A-<2C/.6SKBAD ;B71111111? C"F](6L(%?`;,74*L09AEJZBP=KN'Q;)$*<2L3'5 I/6 [#-B=#2(LI 726)9ï2% $G?P/2/*+R:D(W: +2?*HF40)B01*&I9'00JI+©o„ 136 ZO3^85ó": 53+*6dJ0;++u!H5*?8Q-1 -OG)* %J<=0PŒÇÃg‘Ír¹a6X-[iV›Ùì€?9ׇra77+,CF8<!/,D;$,-B?2%60#8%/1 +=!8?R#@S=6F5@æ? 7-C?%*'2F:.$+#9A&$%@5<".G7J=H),;7</p>  +%,KE34#-#F5J4!=4BV3!GAZ@:U0D/K[/B3XF1[1'N4HQ6!?"oRG-?(E 7+.%OG,}§ï)ß›ab&`9P1-Y5(D/ %38&'C+*O=?<5>-4$520 H)+9+@! 64 +NA,e4\/,2<I0,56F*N-64F%H-GhC18=!',7I2-AC>9* +;,7U$8<%\[()-K)hA0'>Y<AH"LG:-60=+*C<=#?+28(V0>(1-+W* B?4=6~HX)tGW*%;6+5CS?4R%76<)'$A?5+HB92+K &></*2&B1!080&E72 (#K;1()6;9)'i6MN-2:0/&*/) ,3?-5-3>!&F^OI4D(R.ë>7 "1 5N=Gr4U=T.,M;M?2)S =<41W"24!F(?a3X/=9"("?';?$;+Lù>:L # ?J?0'A+ +S2C>85AD0:0C</. +/HCbUEQ,6'3C/4 +)B12F0A+0A%L*QLaR4/?Z!<7;A e9= LU*3PGA"N)6?E-:G1;@]\„"R> 6%G,4O8IFB; @B<(W8%D15-.B6P©ªsU"B/&Di ü?7""5UG(/.+5#!% ))*T3 4):E"^R c-D77:T$46 53*L5H! <-#33))5BY4HZ'31111111R;J/b1'A*2K//.-54B=B3'71%+I'7TO(*1',C<;(%+3!(5ú!+' $1BP9h2.ó 2E5,"84-;H+R3C95;;P)".<2þ$ !5!AD-/#1I&a¯Z]$I(?<*02V,3>MDD4;-9.:D%AL%/82/H^$*D?FIJ .XM× ¿ H ”k×ZJ3AjBDb”žßïùnfIB3#*ú 9*6(/ F!['(6+>.93X272>.9;XA3KN'1;V5=(6061+" P&=B9(O&#@S2@7*)KM,V-M,$ );$;)92B+0:$68!<O9@)0C)/4/&)>@ K-481"#X529G>6.C9`I07!&CP4IW?U!("KWC$:D8!*6\USâTq¤oQ0;D2.%;( >OD$?M&/@(2N4Ls*$.+ "8=+?.C$9 +5,#QJ25?93ÿT;A,E7;((3d)4L-B.UC@%:Q9+>CZF1d$,B5;3%;]-At'5P;00!23gE*@<%;!Oh;Q[BYZ86!.@GI!K/F5E 2]N4EwE&Y+ D>S.\3E 5dKNRD(A9JH,hO13-HC>,0'(M<+@&=,%6 8T8=KAN!"0 #*c '1*E5+(RD>$ +/,^IA'(2b9)"84:8739Q4;"!%C6Q =l8X_P*M/ -=) +1,&/<0CB2A7?B62-=-.*!/>=]LE2197c.26?VG:]8+:/,1J: +/2&OF I.03ÿ%HM5DTH->,myF8#7:>E7"/(/D84 W7I.7)6%:7ý@1+$3 /G=6>!KE&$)/$!%$[@=4;4<CAF`[RH0dwLi]ODBQ=":$@5H(S@,G$$12&?0++eZ£T3#/$.7I+H6+N$"MH/967@.$30*1>6  -!,8#"K&<-$2.N:XS-.$Md^@/%.;4M)4;58#"Q]$JE&7-:-7!/L1111111&W3B+27=EFE$55E2C6$)V A/)0FL46S85GL(,97)-Q÷&)-"24ÿG(:,:B^0"A11E37E'@-.7A,V\#*A4'2 :S0eeC#,D0>NNP'$-1,(F5M%0þ=>w’ZPU #G$H'D$)U7$"=8\:'N.Hø9B7&;!+,2?'C $1^;)I*;2?=?$R<'Jœ¦š +›i ¡ ªFAC 'DLavw£¸`œKU// 01V9:OC2237ý-8@8V6-.#S=+7$DD. *CXB +VL UI,=JE^2D=!-PJ,%%:<<N<$I@ F$9# R**5JI6)80%*4 r.CÿC!#/3RGC-)<.)&!M)$VP>D/$G$TQ,.*67$-%7.')>!&%=O4F2QPË*m§74…\Q>HNJNRRB@(*4.O+7<)DNyhGX=3>%LMNK)C)/N4Eÿ*7'&BF>;1*-2#W2+$+`=$q:.">N;?9 <1Q@AZD- K7Z[E$97naE:O=4_K3F+3;',1>YF'UK31E4433RT3C%,4*8G4:17/#<4þIn;b2>^!C=8!##'34,Z;H"@982)>2;(2+)-2$_H*A>,#4@F(5.0$I0.'UAD$":*0K+ *\!5;9O/6 **:% ,@õ<& +C[8cM`E8O.'I +@J;V319(7''h >+*/ZduwE$9)A'((7-&L/P;M=*<J4)N!Vg 88Hü+*9)(5X2.+->*TC5>7996-ðC,6P6H1'%ZU)9!H1aAZ-.(s/18-0#,BI +>$F\56$< +J@<H!# A6<4&# 5( /-62(#:?1f0/ <>.;K*(AB'7O%3 JùC , E6?)43'<Z9A /;.)d+G 6›v ?#$XOM&N:&A$>(,E/j%:<0P%8 1B3HL.00-.S5+73"L(@ >M3*?"#;"$Y*I@ F.6BR$%DN/('W+#:1111111$ü?.] $(61_Wgf3'%6@<P.+0< U-0`$-+&@7;B%b8&2C99]+"4K84Y@F/E74-%/)O/@#20-/&?_o.D(A"?./R<:bZ.73*þ*0-"9%3þ93-'+3BFt†H-(4F65 /)8,>J%Og4)*O7L"',6!*/0F4M?ü/I   AF+ANG-.;2U¸vâù \ +’¸»…M)-&[nPm<t6Fgh`;AK/PEO"4+D'9:!%,.+ ;.!#R*6' E"<:S>,= :"!V1Z05C+I+<%:4Sm>78Q"E!7:3*7@):+--+K7B2:a;6.E<26+)X(%81C#c3;(:?3**R;48;$l4H0+A NYY\ZST#E:+'IR`47.4?*!&:0.-,=LBVK]vÚü/&!µ +ô*bD97GM +)$+$5*=S1I()D0[¥ï˜¡PKA395?8, X1?1*9ME@  *.6P/D8$Bñ;61=ICT.*2W;.J6;45%W@&<8AB'$47+%=R4$c;K>6$6$2** =T5<'C#378M)'  5@QJC6>0XM//K&%<N&F<PKIH4{(T<EgP24> =M;ML ">=550û#&IM86,AE@-A9=A@(P! :%3/3L`58I*0=DGe<Eô;'(;!1^#$JDBF6H"a/&A04IACA1%3C/E5V7=?" /17?^;$$ DO@>$<IC0A- 0r88K1;A.>\<120k0@b2#+2.7%I;?KE8%>, 3N" +)7+%?J#W4!,K+/D+4H:]JH 0c9IT*R/23ZL% 2B@P+4810?I"?7(L@FR=N<-9K#2BA:3;AT<#$@$O6M2/WV6'%6A69ýGEG,5%/ï#$N?0 ,R(8*0G6FCZp4'FP4;("'  #JI,&:õ3 úBBKK0 3=3=6.-$28'<20>H1384@";0'0>-ùý63 40Y0 8!K,:6)L'0N4ÿ611111118&='+4#&;T%OH‡ÍÉ€NB: +.1G4@4^H(9D+#E.%09" +$6!#H[$-37'84I?;>)O=791;4&=3&3?P*B[I8YJA&*2G4?F3D:(A;3,,8='+k"RE!I-W*&!6NC=$&>E62 6m.,$A+YZ@.>29=-h":!'/=9/4$F0-JO)OU¢ìèøñ‰O7-=';Q=?HXe<EJ!&a?O:<.;;&T,JD#&0a$#1!N'!!KH0L0 3<$NA%E%-^L/$? +L8+;4 N./=U ZG67$.%16E*#:15B 1>-!)NUC :1ö -%JJ=8@22$ +e66p,*%:?  G0-IF#=>:/ K+!6/^97=>%01&545:7TD$,9^ E¹i éððPg-?J#*þ7!?2<FU 3(,Gf½Š{Xž4Qa9!`GT+63G:%(";GH<2J**)*6B,L2BR41'ke$W9O4'(A +7/sC+V+ #8W7GBQK%7H5D6%@;- ñ63&\:([6!/3#C4BH$ +?3L/(+4,-578**;GK0N09T!?/wB!:n8Ll=,;..KB$_D#. 'A2;"J$7C@@Ar/,"y=08J?^F;:51VFA(E$/00-=EG:'#HL,-@N5 '9\9%*R&.31MD@ 71K)S+(:$ 8ôEAn<=FY/OLA;+E@'ü26U*+ 6LEL3 I!$02A=-6:012%F$6X$<+I.7:!TP)"$,,:+B)8&%A6ÿ-.$F:?5)IW(>(:_+71"<eTLJR)ø&>MCpP26+] -!4 7,4BB;.6SF/B86,B2"<67 4/2M348$?1<.*"+=>3.(BC';$$E%=?6+D#4&)=?A1B11TJD,]/49!/9&@1<9K6DW*0+)0Y TD,,h24)8ù4L ;5G7+W<M!3",J9+T9$4,:A*9BB)G48/:'1111111L#V(<)26%SƒÆô>`:<G ))Ig1*,!*U2#&#,6;*-/)"a(b;ADg"-:5'H@S1? ,6A#/6+ 97="3?CA;7?WM%(%$%= 4#%/*G!4"O$,/3-E=> 9.: +YKD4<>!"Q(.,?2<?ü@.I>47%DKi`19=(=/H>‡Ó^¦’wóž9]:",<12Q4u!yS >#H>BMmG56N;!fd>9FWDOG9MA`7Cý+*6B'nnnZrSBûIVQ-(B,D% @&) &I> +2o%0 J7" ,,;1ûA%.A9L: %1/=%d++#4":TUAX;D&d/@?E&$;,86.0;E>L.>'V0;10N;TF/L7"bA-/]µ+h0x¬xd,W(: B=;@v="-64$05G;£ ®¯®o; +C'44>A98RQ.VL/J6;/ÿ2:<1:O S2 #6#J4rb?AP-(5<H7/I+,&J-Z?="+$#.:$ +S '?4%&L{;-:6Dr&?E:9G'+',^-;S%11P2@20125R > .O<C8%#8(0%M>‡Â„X3$;9-)1%4ú <(1;[Y=(O-ÿ@;-P K0O>Q2D7,9[4F7/ D*1 827<5< @6,?HE//;#R&?2F="' //P"GZ .&4'1A( ( :H6Bd5QC:1),)=E! @*"E)NS0!/-0*öL@6I5/ *>58 /E&0 (4'd2D] %0@/Hù0.d0<'>\@(?L0N<;1CO=ES SN9Q/A#3&(1$XP%"4#-BH:6(6M4$8Q9%,"14I0òF%'"N +;L%:E4$O2QAJZ(+E%U 106S'T.21*-4n4<D!J@5'A<>lW#. 19#+,5B26>KP.8VWO<);JG$@01Q+B)L%-F&8= !2*,<()UC+O8oLC4)>_8N"K:*0G9P%Y*8.3594$>W$HAC11111112N  L:-!,D=3E~ÄÏc$M3Z4*JPA::>+Kþ'8Y2:0V-F:4 5.^:.6:bcPq`DA71PW19F5C:J,; ,÷M;A=ü01!E 3PMI936: (;,U" '%6 1"168+"/,7/**$!/,V&@6+P-Y6!,-/+GL. Q!;>"-A*"?J%HE<F63, F/5FZ>[|¤ÅÍeV8(,SAH'hBU5`&0<3=6<7.A+a,==;2797Zf#9îDF-26l)^6DEnZ¥\V•>XJ@&;<7"+AC?- $'"32D56@+0,&#83_-(!""4K; 72$5B 9#IR>'%.+*329$J&[@&<YQ3'/1G#:@B^#J9%EE:7!2A?923)ü=O><!#_\ˆ¹ëΡ[=P6 -`:O> J)1#+"1"3*@>Q]ˆœ®ƒU==07EVY1UùO<O.?= ?&[&$è43%5( %@EDG.Qa|8J%43H91&:1*P- 73!*S,,1-0LG<R<A5..D$ó8,(?E,X=@'M2?&Y6!J4!)A$#Z%G 7"?- +$=,;6<E'P.AB$O+S_ŽÒ“Y=5B0'9'(=589,'-9*/%D$)>*206-+'1TM8*'855T;*"-"%1O-/69:<3 @2+j4*D&3"BLcHNDGC8/0($3$<;82$6$:*<0T"/13'SLbd1JBQ&<18+@#'8;%B$  >K%)&Dõ0;1&%J,5::/6.#3C18T56%Aì Mn%<CZ$P2D'B9*)A9IA$=B;Dh=:T8=($![H<'. )J2C 5;+;E0 1#)(LE(20F*:5<!S%%N1$274<&196A'-@ "=6D87G1B93>P1K)3S%; 7 ++*"<=2/#E:KZH;02J""HW#@2'@/!#3/5L I&''=-W <9O<=-7M32/@/PE<4)#`=&KM.>"PJ)K7/1-53<4%UA'1111111/W)(Mf$C:P 33X/HX7672*:X;+08-? 6?#76MO.Q3$!%C5.#j=/2ù5T_O/$AGD.9÷K #F6dF#KD$4&'!$*/E*C1""&N44!?'P ])PD+69,+=70N3-8E('3B8?03L=M-!,\íY=$7,6$8O#%1&4+]2'71k?J\ALQ-kDQA ;W*D'DF5I\J+mDi'3;3ILJ!8>2%Z.T8F8NB8$=OM$H +Ts;¢Þ$%‹#&8.K;5/3. 'M G3T,26? \ 8.""HIX>1'"$( 7ZF88&8*kG/;;0003:K%T +/0,_ *4 0$*.! ,&ø(G.! 09!@319"?F-<"<.=3:",<-LLU0,/1[bQ[D•g\MX%1?ce,&2A/)98/3>8* E6*s^MK9"%,. I70f154?Y # :?4F03A)G;(NM/:/3‚dKLF:%6$,M %.c%`B(/CEE)?,V*GF793'JU'>"6PK9A 5QM/KFQL-6!!99/4D"L8.9F7.(I=e91D5@;BI.<A/5Bc[™^Dþ=J/EO+04I>&415C 45%I%K18.D +/09/üAC9 :G6,+>BGDZ?89ö>p2**B6A2E– +=ý,5,*A&EI e9E?D'"0%7A@3(:M7A +8XKejU4ZC;6(/*2!!+H35I6'=+FJS9GJD-Y&,@:".MBT?4&?N û30?Q.F*@O=&530I.(.C3YG I[2 'BM+7<(E9+BD=+5<^)üE1+6BƒL\K9aG5JL]?L"5FHc>J$0+(5OD+&S*6'Y.@N:<;(E>)92û5=D2'B.G68.-/D4Z'Eh % 73883I$,>55"<e<4?$)/53#I>H<4$K.227>728##2>46,';RDJFG,a7(??0M7M>59ý+;%-)=0=G5++Y1 +;40f<45%K$=1111111 ò-+7 *1-;6FH@K(383*C0bS91OK84=7-H29#NU"02(# ÷MI,PY0P%-EcK@Lö*' 916%,:5X'8;"E56@96+G;8K.9BM6&*"A0<KaUKR-<<"C& &,,3H?9!: <.231F)#ET?K(/<792E9IFDC<Zù<!,'/3+ZNE>dO%7!1+7!729VH3,48 60 .N397#@,"2;;;*Q- 2;@<,[=8)0&?aà»ŠŠŸF0?" 9,+(D0Z&7$W+/ú:B'/E0<'D!31/,.;S96= =J8;UYEE-B/J20>7"&!,BB5Q5G/D)E):G=DE%%4$_Y)F"-X90@3$ LB#9SEI&@G!SD?;&8)5> HB  (0KA'!1VP!I'r+4 P,Zf75+G\FK071&TD_@>b6üF+Y H4>0&F0,7H'H+/8/ >)-1.>E8::ZA&,!K^ +G$6./J=  +2E7%<M,-*7>5')1F%$]3E;6/9 70!*.8!P8O7E\<162K$=BC E"N4=-J2"A%MNL2]/6G;-$%4$9'P:B#269/7.&S%NA! P6Q?a13x?-LGEd4Shí…lQD#<7 ($"  94%>(QDA+[E1(20M/6>U6&XL/"+:D(1)HJ!I!.!'#'!.N E%34(0=iN6>$?'-$"Já 5/K1 >MB+&%B'!(;i8'9 &. *$8]5T-8Q:**=2"0)a}C((D?..*O7U-< ?W :?'.1bC>M/OAL8%8&8%E/;7;(E^2BMC6*-Yù'*76C@:ADK510!<S@27/]9D%"?';!0'+ ./=?WB*!W7:#.@"GGE@+7C'D:5'$þ,5+)#2003",/47)(F!<&8)H66"L,$S<54E$*6QK54$8@ '?  X.11111113!/2)!K  !<@2R'MA22*/@0K"0\S%(+NFK5*$:gg1F  4+J*'<H5îDR<W?-6F$/21L;)&):ö@F(1:V,(;;& ';23;B94EGI4<0_H&!+E2J$- +3<%L.?$$K =8M 1+$.36&/8>ú5;A-D(2$B,.($U QC()ZB1DJM36S68G*R"C.*F%08-:C,\4>2î=(?88"@P2_'57,b,5rmŒ [.bTIJ<I=/#E"O#6Z5CO6H=C&4),:J\\G.\QK8/0 0$1&12/TI0CA>:A4)E7:>,& 3*R)T':%,,? 9AOZC$Rÿ@$4=5)(KÚ)E6(8-0K3.JC@1>1U +5JGKGTr!4;*F>!M./:'@gBL&BZ)Fg2Q"ZX J7+;.+;F7%@+0F0-#2S1HDP#JF.#;BI;2<>U0"?3.*8.K3F)O2N%+8PUR&-27(7HCEQ.=3/6-(=+(#>!8H#"6 >-^@ KB<@E^C&2@a8-44M?GC%bB!+H.S/'9ÿ>>5.7þL G#9I0JRK)$*D;5,#,"+;D#=S4/<2(M:-7A2"IRf7,4@!Iaa=UupM$KD;f>>%.8+3782."*S/5E;ò&'FF;30'[S76NC.A4b J+++.(M7D/1..VñO*5=6#;>,O"1HD)A/+/ S+.(5;-A,9/4; >"/ù&YH)F >V9.CAA;^EH6=0=D9F +2?T531%$H+5!'G.!+[$.* 9$445,+M4R:99/%1oa%5h]V.RKG@!E$;(>"8?=;%RD AL/73H,>/909E8=()LQ,*<MB2#J8[4@*.<JS;=FP/YM V;L-=#/95 /&0b8<-B%(C6C:Cp>[/D`kQEHtej)8C-J),GUD1111111D$+ [(%;4, &P6*M-"M$%@>M4/B4<QY"@PK3*(EC#)1/)&:N!H!HZ#9 :+&ÿ-71I)..079ý:%ü&(\+<$E" B91.€3W587_5.3>/J;d9.@F4C#;1-<2')D;';G+E-49P2,-89-&?7)<;@(M.<>,@9M&!6/;T'62@b+ Q,29+[ 1 +3)O$aO-–J +N) #,jJP`&90P@*./706BIW V[-0O?hS+2c"+(8'W8U46B&K2!W&52N%=68L4-/+4< G&F@6 7JIG-+O0:BG:VE 07( =!*@T'"\."&C6J?I?,DKS7P:#SWM>51*5)H=?4)C')?63+'&* ,'F,*" L8Bh*@(2=RL=6<@9) -M2$9V$H6."/:K-f3H0)K)( ?E/ =-A!17:+/M (F4&/*=2W"D-=9C6?D@>#"!)2 +K,<-553WXL5RLP$+:I$017O?UP8+/,$Q\"C#$-)V(@1EJ5=)3AIYV%3+72HJ4KL(hø*'KI*?J$;-=74 +/C6"l%[<0;+=;B-')ú5=A*,@N506ê'!,0*=9"D7!)2-ÿ10B026*]&N,L!- %3*)!JE0H 3)A),G%0@)%56%hLL2$9,E)&-9;?8&+$?)$/;@'4H7$#2_;6/K8,,,05`:E55K!I/(î")E1 5;<L4C3.:g2_iA ?BK(9<LD+NO$H5'AI<<om->?"1:35C<6>668K5(+9k:-R535;96C*A ?#;9C7Pk³ñsK25D>4=>0<277+)!;D,A=M7E4=K8,1 G%'/[4B*A) 8d'úH-NFÿM76üWVT`975G*+L8E28A/9IH%9T:)97+0BTþ.06Q4#g4.'C:)}C_/DFK2N509<$1111111Md(#Z%ÿ:>CJ *?+!28<673Gm)'+I>1G:<# A#E<Q#:>.A5 S7 ;d$H#NHû4.>P% ,/,96(þ ((4()>PC;*!,0C&J;B3T(6+$H?+9/<C/,0!$GN7L,J6 67 @<*2%.'4'7,$643I, /^4^O;\;((32 /I&N04B0CGj%:^;+L D3d-"9ú!#1coš‹?!5)Fq<*3!M+:: '"Q3ñ 4:?SY$<-R$$n.<;Of 1QC A+=IJ.+3"RE@C*?BQg^*:a:C":! 1'2W.5:J<,D17K*%bW)1B2/8'@ E=úCA+(N-F5?1ð5+0 :4>2Jò;9 "?2-B;%7S F)FR'C"W* 680=H<?X>A$!$;!=1$-/:!5\C(F)ô +;4 +>!1&+#H?:?9ÿ_$J%<?P/4CR'8(A<"7:>2IOB2E8$0M4?AN0??B4S)4G77*/0;;?D0%(%B:; .Dä(0;6=S2<#2%* A'T$@@EL%#40>Z2,"B/30T2LXB:a9B+?LE>1.J8*-&;KC9-#R>f'056S42uB4?4* "4-ñB%0L+!H!+*ME>%0'FJ 2M U-O:6:@?<Y88#*%EC3Q? "7/($ALD%GQ24G  </56%?Y3E64;*.;I<24 +12*DM/E1 +C"5 8 AHT #18%'7I1:X1:$/1 % .7%aÿH/+F$9/mF2BK.fR/Qe4/Y(K&=K,0wTS!G?3Z;9AKN26.4$9-5:,)^K)AJ!+.;D`4/8d=?ø =A7>LY-/J‘ý`§V:.6APH1='F"915:*;E0D9Š'9DF:><F%+##:62 A=8%BL&D90(]B+(T35JR +9+'*@09B5$-E!]S.837:?F">G4#D2V=@O(;*#DR906c.sA +S2,C 8*J1111111/53 #9;=>"/),DJ $5)'9R6/8!U4AG9?C@*41=G<(*ù"I%/M#&>=C,/Ok(:%8F"F1&3O0 3O!(A31#,2<GA%8>Fÿ[5*ú#)‚?.F9!#)+7(s2=+.@)&M+!N-JQAB:B%+ @%4Q,I4/'107Dqq7@0 ,16?<0)%$=78J:&2>!ICC,6:>8 ,&03ü@{ g5.6G3lP%ú</A.3)B46ù=*9 L5gQ)36%;]%D8(*4ý!)P'.@; $A8%H4O#DH2@Fa`4ZV"P^+.@XP.1-+HZU\9 9%12$2H+4"*@10?1/ÿ'4]‘‚6EM:&1 ?9 ,S$òI0R1OAQ7!C*F<#/Q- >&4)&B+Z662>8)>%&".2*?2%#0-?6<#0P#*0&=,)B"V1.0%.&9ý%!+"95R +DL/68'=!B*b:6R1K85#"):e/-3_U=Gc(#N>ö1??<3/%7*_T;:'5TJ)+';]û1=,.6:$)V%A403.,:%)L@.>DA0R%.LdHva.5*0<)+&@S 4/#&i>+$G +325HK04 +. 7ü>%0Q$1C!BTP?G/(<]B BJ%K,"EGL/E-~$7(0+2 57LU'6^/ñA##K,4K/7E H%($äX(**U/Q2)8,G+=1"$*=ó.36#/<cû =ÿDK:J[AH?4-^*.+8?E:8>%/$>E(HCK1!>E/&2%/R@;CWAG38C@@!4;+,<XYK^MfG,&2/K5$*) H10?H4Y!X/3*'');. B;82@57#;*K0(D1-3v +â ë«Ñ;=+J9?/35+<F*1I:3*0&19(1*MC:#;BJ ! B3I`HN,$-0->A J+. S5" .0C0(02^&0Aým42%,$HN8G)"$0>@9(l6%1Y(C=G;-F.8-C>,?S-çG'(D"TC><,@2:!1111111E4 $[# K5t298?9D7S)7H7!2dD/ 4.$+ 2  K)6;36W'B<WHDE$343‚Rwø; #G:4((&2% +'46 %4,^==:)S'3<7!!,KO;#(I.A/4)<9$*.$T÷8/;V7@9:N 4> D0/:L3&7) J)GVK#LnB*: +6;3g$8*@9 >þ'=42.8_%?!$5°g/'=>L7A&QA5>'CCEP5"M@+@6/A.'V %:4Z1&! . 7U*D:;A4, !#:I 4#8%nQ$9 ] R'.?25_@9 7G0-=G79?80%8B?VTI"Y þ:MJ^O?)@‹®”KN-/I85=36<37)"))2}LiéK</2G!+?/:-;KKk4F222EÿIJ2 +/.[5B;G6 802M<'T&>C0>7=2 *;9"/-*1-30 A-0C +T%>E%%4[I>6)/ 3%30 ,0]22rK.992!> ,<R3<@O6G14#$3/ )"#MO0<(FV10&/5 G'<+G,+H 10*IHøaDF8U0/9T<<6)s77= A3K@@A*58G? DI#_0MRdO>8AY5GO#>C'>(HC50> -3H R.,>+J?K%- &35(A*=-6L>!H3//!)19U=3R-6:7>6/0E6F!, +90 3M)D ;*7D7*.H+@=FaBD?'#?ù^, V:/%($,38:&"0#'K;8 WFLB<J@2-K1 :6%YYK;<48`+=KF''øþ '<) .'?X.!K;]5>I# +M%$(?-9û3A=/GCCBA,%R9% ($=. + =)G**50896/342Lj† ow•C*7&2-H (I,52$8\=&788./7,7%>.90C&2X=&@$5.)6K-3,((;73?*&û\-9S)/;h*C$7?#L?44KH="#KR51/!,A=*$*L(4/;=96#'>j .L +2O:%,1+$3@1111111'%6*: !-LJ4 & P%-3)=N(33a%3@%1"6,+",U/H&IPAH<*G0<)7)e9Z#C*lZT2'#RA E5-9I#&3<C&WH4Rû33&9L$>IL+4="/E$%%7B\&"T :;]&7U<Ce;%6'C-"1 B"#*26$32*&!5+=V9+%%3!?!0/$-=;H#P;AF4L#? E0Q÷R.JOnT,,^:/3aO8&#C&+_IE\TZ C=AM4,+D%,/ +1# O./AAR3F/=1 0J#.?SIW*9+.>1+ ++O8/O(  ?:/M5F0O(1b*"B"5[ (A-D;ÿ>88B>+9!U5”ÇVd#8*(ý!+RÿU8) 177-,aqp;R)0DN1R706/1)Y/.DDæO:T4 [F'6,Eÿ.2H@>/ >%-S` + (-23$4'[<6C2,:$B/G*1*#,76KFG0L%%(+$N)1Ai43H 'A=-K!H!X96@í,-ö2S&VIC,V +*5&3F,8R:_k;O@A&'B1!lX&,0#"=<a\^F?'\E.Q)/S +M)*0D-7$L1)3&>M)IG` Q%iGFjKE78 8>K'ZG?/00##9? :=M5&+513.-8B%)5'+D1%7A!S,4E5:@UU\:>./:0D!28D77@06H?H*D05;C9!5$%;(D792#0(A+1+S3(ô-1",.5(%2!U3^[@/+2636;*jI+"9ú#QD??$ 27F&W$(?_E>"þ:/*04RW#1""D@'H@$*AH@-ï9'" 10ML8.MN +/Qo.:5[<0(?A2+!LLMJ59%T$8QA/UI*)'aSI_F4ÖSQ &.(ÿ8LM'@7>(C:4(>HHú!@4%-E)B50$82"-+92@&!'/A@$0HB9F1H,,<%:33'<'6d>4;03K7 3l&(1DXGHPVH92J%$E"5'E7CRV-5:".56CPQ(3Y1111111[64'@üD-=HM#6ILJC=.%?1?3F+R(#/Y&B/@:)$0 6.J6<+7TW$Q7%385,8C9*J>8/!9<2S",6;0%3=$*$!^)8/)8T@H ,B=9< F9I9#J^MQ8=ý*59&4%Q%!D1"/'2119"'%-E÷GD( &T"=;-)4+.& ;1+K() +N&?.3-'384G9?>/.+(J!#7)DC^" #?JTH?>&9+-<aI:q}C8)K' 6.W?:'$.0#+0#5 642%20&>(!\$,6$)39@3ó&/0 40a(#3H7C+I'#L)'N0&V<)+1966GúC;,(83/8>--jJF–XJ0:01+9;PF? 0!%L@*GaT,3q @5'!'6?(*CeíL]Y"jEH.-(,4)]$T1$9@7QDP+C!;E" 1!96E41+.þ93br3*IO:/0:@).<)3 P 5?)%M15"*:'23'*:&,1R!1B+O37<])j/-89,/A'@/500ðN53OVJAEo5FA$!-8 84-58HB)G{Qm3-UP(!H'SR>J,'2BE#,.8:1UCþ'%+)6.%EV^È‘XA, N1(9E('+& +A*I?*^3ABp*8'<T9,>A+<6Q!4(:'C!E@A;37839H<:T)0,=/L#I%)A,4)ON?õ.44"A3=4:[;5->PZ 56 L:8Q2#/*û9U7<J.;1$@$+1%-"@%1L,:6 8=(1  4%0 ;!,N >#9.#O7,FBX; "G9;*0+-ý-)G+%BM@BX36W5$G#(6+$7#/ûO5&!$C7/*0'OI64T9Z]JK.K/-?K+7<@*(#I&4\@GGTG.213!A7=@!(%&/,36G7AJi'#&0$GS7/D0.15%T&4D*%dB/=) fS80,#9H;&!>?+4OP5bA&(5'*%"NWIR,74)5<!L*J?'3%1111111;!!MC?9B3,7;)93-6I3M2L81CU1;3699AE8S'*:CIC4$)17!.k,[:P,ÿ739=,41 ,+38485N/`;)ô <0P03>#/' 1-13(61-9&)%' C+ON@4W7!*^!'!CBF0 %0ì*ö>;T*3 Y7ÿ& 65/Qb;(4 ?870R(4>5Q* E"A7VE1+-+/;, ''A2.7L,`8&,, +=A*2?Y€ZV.;9=S<.>+^k7<N%5;Z*7A:<"@?F'0 +DN"/,&3+*% &%VB8=QC=' 60 +6? 'X!8[@0VHO6U*E %CL"1BE5P/3 5gJAN40;O,H>2'j'RL û?+"7Vl,MC5D@8H$)2@E,N#(<C2..$ò%ûCJ1@T+^6+.;X,@WH5*-2.J%(1;)5+*M81" +,4/1&D*FER[#L2 1)8*A&#F*-M!\+@/L1 <<1'$$Q-7>$$LN%&+A^=Sw>-E;323 ðK4)5C%&9Jc+C  M<JK<'?N&P%S+6/A* 2a,D'LCg^ü‰Á|X=027TF;%%4H)@=20/&)W>2C("")2.H.=3-&00Z jE$<+#-S2 "!*(;1F/,10(=8,?4_GDFFM3)#5@>#<;D"9Bþ)&@4- ;3U/%+#1D>-H("%++C.< +Lþ0:!1CV 4'"E%I"<D:X7Q1 :>VQN3(!32('E#;O/ ?0>@QJ: /9@ +G<89L-@#,7IE?ALGC:KB"M;"<9#"T9Gf@4Iq^%768/,Hg,-?;SG(H8D-3ùH=K,/&0W?5CE E9,#95;1+H.--.PA;H<+3:/6ÿ5GTFZK ""9495,!3.M(!;N=#1-JI$[8*!I-&(.M;8A<B@G>%>B+=M<1%791111111#?8#.3*.?#<M1H"8-85I9Y>LJ&V";2ï 96X2-.76H%$/27F2=`@@10,+:(J:B#RU)5B4)9/3)?0aíOD/$ 2MEJG-O/* X+ ,*99=2S%;#-$ !"3-58.@$'(5èHãLD-ï-Gq>3O0@EL81@-SG +<I 6W!#,R/>2 "K&$7,H9-,2þD3.IQ:/,#*$#Aá,.C7I!dX3+@,%6<C/,@09*,+-;HE1FHA,,1MB* 9D@-/)7^,j4D4Y+  7I>-1Fr1!(S1>%+!J J6T$(A+3GQwq9`,#11%'M/-?2-3##<$!K1#/ O;+)CK6#I-ó+;#=?0=NC%- P$)++)3CT= =.JB!, F +H*5'&/i9 92A0M7c=/0DRUE' +N*"<_+ +&AF3H1õO!C&.W,2<>25A!#+' <+N,9"-#M#aR,E7"I")Y ;2'S%.!0COL6BP& G '8J)/3WBEST/0't&aV8@@8 =3843ÿ./71*G*'2;I" ,3äréN$2)-*1Z5G9/;M))?F*0 +:$.FH1<)&KCH-!_C-&'K UJ4-%6?9@J09HF3- 5A$9/>04C.(<1ó-!3<16@4:6<)A9A(+<32$BZ8K0FRS'%F09=45VF&@0!(  %U.,D!)1k&6"9øAY0<"8P3/G!2'V>..." 9@64Q(()4,.A),H= !FL7EW:36FC'?6P@(1$/$+A#>0 %5@AUA7I*1ET7/H-,=,6?6:&,=A[4úD5 0-5!X].J4G :'A3$+;#86ABS6$ #(+<!/@%#2&QR^Iz/1(+;]&D*, :O837295!#79*5)')E3r4+K>:)47/K(" @.>=E--ÿK?11111117((L-?+M7"8={C)@4.,$F' + -2:933Q847$ÿ*)6ý& ?D&A/0,G2A*8$/!6,/&0H!- + #% 8%X? 3ASj^)93@8 M+49+B282)/B6,8,=,2<),K=O3 +"/%"=*35#*C74> $6 $g?.%;21Y:*&),">>|¸<[!1ý'3+1'&3dH,D=h6J\>L!?> 9<('S+]#;FP7@<9F$6?d=13:>I$*-'Q*3!B4@ +5!F<!2.H!*2:G36^*g M.Q%3^2 DD>;*!9)EV<OC5z82+AG8 4,B<.U'>:R0B/1X=I)H7J^F<N9KKU#H,U ;% 8Y-#E7"(68@41@QI0B.T+J3D@:,.Ta>"/8/4MC5<&J- W3=P6 /34 )'C&S%[K"C/M< /1Bx3X5WHA5A086,/#Of9O/þL/,:<"BF3O!$>IV,+2"@/WID4/=,)>:8-#-L. <N151FeO> M *8D4Z;,@4>*dDR">$C6C:)`0~!1;4;0LPN@:< (=6Ï+ +@$vG$9üe9(+ÿIB!.M"+.j!U*&)*?O]0$5S)$ 3!:>)=.õE%X#!@ K(nA&%D$#9*%3M.7=D% +/ +> J,,=0(1($5*5C'H;PF++<)..432: +%06ID$I@M(3440M /#AEA>ULQYJ65*.8.*:M0%;J$F9",0/"(/&+/5.A0E9A@H4& A+øUW9GIAWA 5:66 0.8=Mò@23 +<76;/1>FK2! &3C?FT-,3= X*7G2=BE9/@ 6(%%-5)$S-=D3(P3<=%/!Iö1RK7ö+(C[2;'A495<1ID8U3> #9U)A: AO" 0)<#D%`+P,.''3 6õ')7@&0, PU4ú>9K450$?;011111114EAJB ?û)%**C.#( 6(9+23QN*G=&!,]&H5 ,c%#(>6 #.MõJJ 5(.6&>386þ,%;,EDC+(O^dlY5ùYF,AA9ÿ7(O(3$*W4' +4AD"%%-45Z1>(&CC4.-9I(g(&RF!@*G=5C27,EJ!D=M/!9L-B(94A%/#B= -A6<=;>M5(#C96?D9-1&(74 )G%6GE8M7;D$C6)+01&LB  +9?"T:ÿ5 4D+<&7&8OE,"@).(87B/(]ù4.'<&J'==FU16&- Y8:G(ED/&!(OG3,8+4A4G8IFFY24FFT80*#/8VEù,N,%[9. 5M;330H6$S#%\/ ?",5)'*' 3^X0/?0D#=< 0/-('D2 O(1""-4=>%T( +"%Q!O*6 &XKM367ù +)J)%.X$(%'6*7*%'8 `*/Q$<%#C8)9_ =Q2C&B**X8'4N,+K-E62-ACUWbU8& *2BLA>78G;A"GD%!1Iekn1(<S0LV7X?7 J.1(369<.—ó^žl*`[+7>I- +C2Z +L/=1.$4;1$3@"E%.L2X1600C$7[&+961-[>/KGXI7E=A.A],<4=(3133AF;D5,2u.61f:/+&.8-8*÷0$58%&%8'%"G:8CEU #61.5 3UC')2938;%A#8 C,6EF2!32.&)+'1?<8.<R23(#3MD57GM)+"8<;'e2Y  %5(F +;  3LC'@MC4%+ñ<&/& ;;/1K",k(F/6< l,.0O€we5:.!+Q.4>A!*7*6%1HA$g.@Y <ýD1.M)T< +D;)A5FN:(Yb^K,'(>>--4<&'*<)4#_H704.C 4*&)IRS985.AA8/3. ;%(( @:*$'3='!+45Yü 1111111-R,;=,&.:$=))%'4"û+A850B*[,?*Y>:L6&AA*;V!)?F>84S[/ *8/39-(X?= +< F  61O?=LKS…jPP>P=,4$( ù-,($=J7`EA*3I+6J$6/6W=;.;SI1!L*RK+';üW6ó'9]?'P6D.//A%H5332?+,6 /9AS37-V)=3O4@B5@ <*,%.3ÿ)&2F3+(/0;]-2.;6>@7`+%0#%106&.?/d;&[[+I*-%: -$R"u8Iû6A='5"HBB5X!8 +>/5V;9+PpEP>L-:m#C9+&A4E$:"CG2698@1#7+4K.0%9rC6ISL&*.'Q@Mf3))%2'$D7))1B8\s+;8I 3"'P G/G3/G/".v@.?=!H528,/E)-((:1!-76EX#79^9+4BG"FQ%`E/FP-C9&@0!j0)-':$!K:> F U"7B29#)Q003K9])3:.>7% ;':45K5).G?5PI0#GXDBKO;ûI B>>+BDIF14m1Vi23934&$<*1VHET(*J,#D25DWvY<9P;)F=i &RH<Z@0&!>8-3GI;@'. ,?"3;`"LBDF0018G7,,!!I!F9 3./5;ÿA#4(W>$KUA@518*/d3$;;&B --P-BF:4M"O-f;B%5a*I*F]dxR257"-,C$=$-+AöL()*B(,8>3+@%"„:GA0R?83O+--#'2 M.2C?2L19ûI+@.D6!X(<%43=6X8h3   7!"/: +0-B',KURC';C=/;"EI!#+A!;$*:8BTwÉ­ƒ7=YU.*5(?BZ<6E 0A.O2Y 6, 0@CF  82;E<H$W'#7E& A]C)"<1E+0 22/-6C' 73Ua+2)=!2++A2+8.N),A,.$<Q@+1:XGDD%-/AF5&%M:341111111"-459$9)(. /M.;?$#&)'!1BGLKDA()D171L:95J01-A3.% 0C0C3+I 4A8. GA ? ,%F 75#U - B†pY@ZM.!!L5$<)$91%/X':,P*'Q<)K*/"+'0>6"KA'F%$N9B@:ýA7*6/C".0;!H=!)+,ýG)X,F>)Jg<+4#* -3A*3,]5C+CD95<? 5.?F`6+Y(@<#N)(%=R. G4L*C<K8U7!"&fE-,0?)-L'73&J'X2-:.$G:EAFOM=@=(5; ;3$26=,++))@1DH=I?!30Zû%)+)$I<`-*21UU*_™˜sA9%;P+K>0Y$1.4=AQ3(C2M%#:&&+10@F"B0=.X$-/.>"<2="Ln9fO'",9I@4%)Eo4,=&>7*+4I7*4$-L4%>"7GPKVD@H@O ?2G93 ,)A%+#YG+4-IC+$2'3"$?@Ii;?"60FHLAbM: )>:)-LL:'+SD5%073-8*?*E!@2)$9"&(PGD2" Q=+X&R[G.+L@7@.7JfG.!14I-4:0(7H3,(&FD75)4,5..A )#%3#7(> ;9.+1&%$2G1^Må'95ZCCI0/EGM+8)9  G+rD8%<@*$HH$*/RP1)>2o !<3+'L*/<}pjLN%?FW4:0:M*;B,,!-,F);.  '5;T .4<*ADB+M)D7..9#4::W /(<53DD-%F4FN#>?B 9'H*65@X">/\A>#8X9_A4A@+Z(8-9HJ6;Q!EP)&&8F4^Ò,ÏK65C3='8$!9+>R'+(?4(&,(5u+8,- +:6Q1'*#O > 7:VRBD.V%0qI;":C8F23X6e#6:UB%)7%6I(0.7-@51!#:ü$6 95065/,<&YN4@:'c4M-1111111)4F0?6D&,(6'+N5.=ý(VS:6 Nì3C+A'M&'0:0-=''N+<IJ+D%9BG'O!@-T5"ü' &&>]13B3 :lT3=+ $ÖÝuGR 4/ ü(9#50GN07+K5'5#,X L,(/'UV;S <B+EO-,#EE G'@1I#'F &- "9?-!4]-"6, ,$F67,5(g*9\(/5.:M\08Bdÿ<2[.-:,KC>=+0(0,/E':6>:/G/ N5QN,T !!#@Ac'A'>J&ûE5262$W6*D !" 4A)(95?/23#M\@T`E72+&e2[UA9+-Q=/9VB-$)"/+ >QâFE56+5WKH@,, :GC¨ðƒ800,$.3FKÿ(5I)/&KH( +^P&@L9<=N0$?/I$<@3RQF+?õ7=B^LD8 %31?";6?#.!9i%6H&#/DW!èûD=!P&*:8_W(G#;% C:(14 .2:*DD5< ,!/3-()88&Ae4N*Z,H-%:&%5R' .<Yÿ-KZ"-(9@BþR-H2-8B2M>5 A;<&D\AY6,150:)'X$?,'JJO)ME0M  '-"C@6>C6`=2+%E-"N04 'E.8  (()92D2? (ôD;:45,%H-C/T""+C_<"$-,,2+36=#0(=D*1138!9-&-1V?'Hd@)0,56H&?Sg|v98.?; >!H/B4'94„2'135A<=UM(2'*R2, 5&(:)AN@$ ;>+)I:>4%01c8:$'P"6/&O 5Cc:; F?GKHAM68>J98/)>2(0=.(L3,@ 5I -3K)/%9324(?<#B>7R%"U3$''@+9AMƒ#/¼vMES%/%*)00&;26??C5/ 2g)2 A-=9mC6;M $.R9 7DK#+ -F-%j3+@/#EB4[V9!;C;*@BMX=,KLH/5'4,/U$->3XAO'oD9OB.(06?'C325'*1111111=,C?DG D@..00*!ùKKC+5ùN8-G,.G89/R5 V4 &#%`=65:T7I+/QG9"?ö/CA$7)"+N'-E0#9Eƒ'e^,<;,<&#ï,MF9!3:8&"/EA'41#B$+01I4 0+Gc153C3#&9/.@Z,IN(',(K69=80)@"%(,<H-)3#PLVF4+A2+;7D1!+j@U2,3E&1E8- :3B848C"*.]aH;2J+S817#D3B3^-G'C +V0$ADCT+5Q8A DL/+55.:%!0&3ÿAM3ÿ44AH-17VT*k2@1$N0D]<C@e/LE)QW980 öDa*9L64 :B>C4&0@N&)/ZŠo-)*@&@3$%LC,Lý?.E/,,10281V*"!VM%6B/,!<CAS2A+>,I>?!$+9!2&  +@0KMC:4R/÷!>2H61'>>124&L?"D"0=;:!*+41A#720,1;*/@9s8HJ)/ 6^>ú:/D ()7($II.*&$JY':N G7,H#>+0UHH# @\6'./??)(2c;"I!+/M",>G%*7'Q7*87#PUG1]/A=f*##?;e#">7A>/"4?aK3J?+0DL7B+=B6W6(;/F<33H@<T> C@:82  +0Y(IK3 H*_6?333<H240+G?8Z#;/)Z_ozÈÑ·s?(&46PV< T93TT]#!];%P.56&6P6a1K2.)MGR2('/9O+#4#E.>''9+H,6*2&#;/3<4ID8"3Q*&J HG4?@!!:&#%BN4) ,; (4L``ZJL)CC8"?>7X 0)C*42&0&*0VP9509k`b‹œ›>R?M&Q+98F&>-R:(,D"..0<.gUOV2C:)%f:14l!0;#L0<F& 2\6%9I+/:,/6am6X#69@ +.)&>VLCLl>MGaK >!0D 2&@.A0=,GJI5#0QA..;1111111<;($+./9F+)lLJL4E)!.a-G$3S+:N33#/WüC1$(B" OýH9*_jfB$ !3&@))/6-"14//@$#/-PÁ­¢..>"9 5%7$C &>89)6Y78ù/@-5'E+7eeV<%"-66*G)#,&:`$BN.<;',2@'2*, -X6%+GYL'f9U&5?6R;S'2H-,JK L 8+J' '9-$87YHc_<5%-*=*%N2+'07T7+4O@%/ ET?:*O*N0D1(ü$(25FAE3D$%<I9'.M",;%Hc#$<&.)w_,$-! !:<G>;"9D6,@+10/$23)jT/B@ '1Nÿ<Q4 \$G,2())A0<$'(ô3E7<OD5 `<4;>! 8B6B:@25''A)&:;5 HJ'?)ï5!7&,&E ;9I0fN.&;6<V9/:÷(2JBE&7D#$H=&0; -7FbU?2O>B@<&A 0a=J<+; /F#0H%K0CE:)K64@"U`? &26R4"3VA!>=I 2 W3/+)5!.%#b3"*S*= -%@H(/011[$2R4 %?FS +@#$*)A!"K3,6=%O2+.17-8C98>QC0!;aDù-?D3,h7?0 #B?;%Q:-)S"(R3E$.KI +*A83K*%+C^ . Gîc<C*(8- J3#/'M(qº *Ñ~*!6??Y5-:&7,",>S:c9%$<S 468A#9"8)5<(/,;HVH/ +C3+- =@; J:4  )g>.D'4-,Z$T;EA: :",+3;./ +1"<447A<>E .9(@P6.4VO> &E3;2FC(6<7a21I@:@,'(#0.D8`+95> 5“jtS'@:N92?5@8(Ø:S9@9*-<(*.NVõ!7*O-!)H4"I?!9 J[3$4ø7;#' $h0"9b+<1",4-ú!+'RTX<E‚©»£_8`I%%4-6@,?VRDÿCI$I7-\ +L*E-[N;:C11111113AE%í$D +<N79O#:3"=<[6(.CüA&W+ +$<Q)!2</!J26(30/P:B)%CG>0<<Q%.+)L/_!AD:Vc>" pDEúê£LC.þ.06#$#&?3:F"!6!$2 :$f%%A!"(33'09@L09XJ?C00)38_&9)F;7?44 A', 7:!5G* rG*\8>:I%=./H95 1;00<(9D2=;901 >NWþJI5+,2VjJ  G"S) @;47,#H. ?%*G?9+9";aC3<\M2#C,8&%S!1=G@+@R'!A,MF+:B8:38/7-99>,LI-2-2(5oVP +&.A+142a5V/:"$6-<M*,A:"!_!*4)\.C3R/.)H< .1/10U1>Cý%-/B#$9 67=rJe%  ,5$(F;@O*8("&<,60*/>"?1I&+>$YT*'BG8TDO`@^;*!4#PGC-,9;#b'EIRG=74M][F3<!P5A/K3 7*>G6S',&*$$'HX27.,Xþ>(:" 9/(;A57cG=7:1@P==*WY>F'+7<<N &=<L!'8AO27('EL32K5?C$83E%.NH.K8$' 6:H-%D59(<#9'D*/E] )D:L 6#I>$2",4"' ?(!þ[)"Df !>H!a7<L/D/ý!XÈDÚÚA‘r(R,BA&%-'6%"''8N ,!, 71"F,=<C+2ü#W[";>Q>%&&>"DSJ:#/2K#)&4H:D;,4$*3/;6A9 +#G*L)K@/F<BJ:$(6#>*860)$<FJI93MP(  KC3/9;J(9S<Q= +E<9IKRRS02#C/CXLL- F<KK577J@4#J3,A2'']) /E5<3/=T*04:$9,E=MG/!8?#ø6%,%*F4P&RJAo"2'--O.ó1(FI&;R¦'™y×h(PM9*#+@%':1,,MA%M%;J;J.AI<& #&11111112& >!:+3-$J3>03@16(+$(1,' =$563WT 6>I"C%6é5.& ÿ6#,&)KøF,9A:1\_=i.Ü+%9"/AI.\6#*,C &5E&'"3W±˜CV*.+X?7,(25F0D'U3!+C7=&@A(EY):5;)*41A%>9S)>?)=#''/*\-@BEC4-"<;L2M[w0" J?3A'X5-8X'!0I7"8.k<(1,!/1D=2')`m^4+s7_7+J8EGN4.#ü/2QB(*%+.(/"#'"!E+H#@3LFJl$<<X?8)Z77-ø!496 4E88P+'D4-+?VL#6 +'3I1Q%I==(!Q.(8%7+/$`7A.97=DA ,F2%8V8479?<4[F+ MS26>3%9 ?FE3Dc/5&I"K=1"û)2>1EB=2DE96\6I5PY6)=!#[G#&"BáI F0$,<I-X>4F(SU?&I4L`GE?4$/00 @$&$N#_D,T-)pK!8 F0<,4`&$;(>#:&+C!,=P7B.#%U(Q+ ,&d(63CD),,,4>+Y>EC5NfX :/5'YI%NW(&"D-A^5N=5.8k3O5"2NC0433C1MA&BW3+#A;A5@$U=;A"N&E&N3Fe!4%7G3-1)Up (TM#%f,Z;.b-LC/)!R"28QR'._*[!UL@¦|ù.N42', @#+@(M9%4?>W5V 703'4F*!BI0.òG&*&c95-%$8!)ViYCJ0>6N-$*5/ûg6>==@,2-)3w?#@>A@û7*QB-'5,012:H6H"Z=-A>"7e)89Q/0@P!GGE$QP'&F*'÷þ.F#>-S+9/E5,$> +><5(>9;(-( /-@])7D&30%3+D66F86'@":(+@,571>G>O7q<]HH (MZ4S19@&\Ñ[‚&Ád"A(+10B<<L)3 ;= 71".IJ&H1J,M1111111B,W34,83 )2,@W3"&</GD!Q<;%8VL+9/YN$-SG!*5ý*'1( K9QK. (ò&;6:7'=2û08!$&(<<<<# +<E.0(4xm}N4/*0"-@8ò6,6$3: E-:90)J5">-40.$B4W3<CYE\c*A?4?# ,JS +4I&; ! !9-(@i-N0&G4'!9 F/E+';<..8ø4RX3$46RQ-CL&2rDTŒv?:=:M<0,;YK RE4%5RN'9$R?!.7&+`%1='888'/:0 <Q+;?.*5:PM4CXU-4+D/@)?=L]L?!&3':8R59CK?&2,OA8%,(+.4V`FR@3'.7:?Dd;'#L;,.K8ù?'2#IaE/>%AD×;'%! IK 0%B'8<M:L" <AC10)>/ +3?/H62+9,5)61$ +, 9)+27>IHUR<%+K:1*'$, 5"?O6RI#JU 2,NRfgf=27F43I&C;L,)1/4;":3'</m/]8L+V.!@2Q%0/)]k?F'Q :R>/D=#,$;86D8k$:'(T$+/=Q/73<N^;4, Fú#%YA8M6816<I=A83Cå@2 @4.S<@M-/22!9QG>+G) L&2% %>>"<N%(&0IHF$6)=@?>3"D5&6!%,0I*;=0?4'3*;.;/ _-\ø 9Äi6T+þ.D4F/aV4)d KH&*Z-.-,o*9&T4'8+#[-9/D=&P=-K?2<(&a/PKF+D>AO+'B%"!FJ7Hô%A'9/A141F6,1P>%6M'AGH#L-'"! J=$TR,8O2,,H//4&IE+<L,QG*FH#RJka]D>ITD.H1Q@!6.7'B&<\LV8 1=2"=(-K5)ý"#-ý@85&74/K4b L:=<8<.;Aa. 5,1=TL[e:‹O>^?;:6/?-<% )6%@œØÎ@@'8=O"3/?K/0#?\2 +$$( +Eb5+7$/ W1111111MA?()&E/)$, 0BD97J9 :$2 *%; 39YP>PF;U D%9&,JD1 6P(4@%799!%3)F8m4?,;328ùV=K.E3*=\8]I*'%(>ýKI,,<3O&3*DJ9:K%e_7/$@+ p+A8=òM)I'9UÖå©3*!9A+; 7Sl742@(9Z#BZ--5bN +3,8.1:-A*D+;NY@%'# *!C:F&!NJ'2UWn[;60'56,%,)V(I5+:$*b/82> +DN %YX^J8>,-=<("%*1IA 0$)%&$ +@J]a;F*b@$'"b<F"+E')WW8;C9÷B 4ø?*<(4Iah$L--7V 7*A8-5="S&g59+C40!,8K7JB/5%!C/#6@0CFhJõ1QA,5D/!>GOF%<0%&'XÿHFVZ?> +&Aú?V78F+5O/K#>ø4H59/*2B1-P  PCAB?Ks9&8J59"]>D3"7F=)7)2+K#K 4NE/0')-C(<W;$(84EM(RS/1;)5!$=4Y9::O-@J@:!JH85\8X3CQ*7C66J4B>#4$$&KA5 !28 I4<1/*C8YL2&G!+<>Hg<U L5VK#=U@V#A2;'.T(^+3=>O<:#"IIOû02 W= (&./þ,8$13'/C/OUy}†‚4e01NT#?;! 6CDCC8'-T2D.,.2.=K%-L4672/7,GO:7.ANJ<!!;&;*+22Xf91$N"P Y(\F;4B4,5C$J//÷K(2#<*C(7<*<ò:?" E76 M$4E 1UYEQD$21^8?+PNH :"-)*?"7!1'/A3-E*?RDM{ 9$%;<7=:W"&:$/2Yÿ* b*01)"9,20J/eTlEIqbxjHažÐèèŠn:&4#V!KIc‡‚]UO@!):-K;F?ID*55%3+>P+- '8C,?8DN"11111111.3I: @06 :&47- (60E%4(1, /SF3<00T2H.!2@,-4-:H,03698<H +O:\B(' B20 ü-1P\03 +8%?/,L0+õ+- ,7!*=$BL5Q+Q3P+H#1/ #: .08$DG19,0!f\:¶`QA? +I.64G21I-/DF?(S07F *HZ@ . 7?O4FF0WFFC<T!'>:5!M9 ?>ÿ>#+%1:;?11?Q";!/ü .7B $!J.:"@<?8"RTB=C M]*D46P-G* ù,3 00ALH1YT>2,'BQ#A!CG@48R/ë<@/I9çH?"<Z1!0*67%X13L.!31(<9/;B *+-/ 3-@+&7352>0>81-&M! MO)[)(/+)Bd8K6.33L4.'(72G*Q&BCû1CD$4080$;$#;ÎS/.J7.0?##4û*?#4""6@< <"+*42>S8!\*,*'5'3";0$3?I2-/fu':G*>39U++.%R#9(E(N-O3%& 6Q*a.LHJ?N +=224+ I0H":B 2.6& 38&*- @MJ]IYaJ57F-2P8 A74!KL/V*/.:,PG8)04  44%.q4'@1õ#rC-<@/G(>=+#E503!+VJJ_H% #"002^+;- )aI.4$_L.U]G+G9/.-.9C+)07/<2( 3=PpnwQ!0*"5 (%p'#Z:!Z#8!2$$D(2X63>IP'G?>42C>&/",1PJ#8DJñ4C:* 52J?-2R5588/Q'D'!M<''!Af+ 2N, <Bh?+-LA4<!JL*%B4A&J"I/IDB#=.,1D9-LC'$;#$D 'H6,/L + =%*C1'@71þ0*47<421@'0/NI*-8hRgh®¥K%wé µ>ò‘3Z4B"J? +?R>wj YD<:H KE9 5 +4'");$41!2<D:D/8";7"&*1111111$W,!B9I0[@9,3<, &g0 )."*13E&&!,M19N<>3H5-ü4@E5+9(;V# %)V5W07"(?;.% 5C`L%k"B/@  BA!5/!+&,),"1F*-9N];8<-/-J +.7O(0/7"D6M&s%cH))8M?f°Î„«©)C$'4#(Y#:O ,4$H+/ý.(EA;F#ZC',O47,0* C+2*>JA6$9%1e.?/3!+.H112#Q0B&)6/(AB<L 7&23&8_5jC +R; ?bJI,@ 'I-,@,7>5E25U6$3F#2.ýB N *J!3D4B&YL>2">.3$N:5 #<L" 0G9@-+%|~ÿ<7H L#3=*+*>6/*6T"46J+D*!+4?2Y7>úR9/9@48( +*0; +D:04'E:Q-R!>'AG(,0>/174C[U&1.(K83 E(Fê5 JNKŠ„PH+%B1&5:IQ1<0#+I!BO#,7+Q>7-;B,;B4(%P(H-h$6TEc6?f\+%"#*:MA,82=&ID6÷EE 9@_G0GM\J;9$/508(9*<7/S)?EOD#."`:<7:/@-C$5XhP= &(82O$%9-&O%0G6.E -*<.2!9!N6Y0CЏM/R+G. &4-<6:!1NB%!!.c0@86^7/1$'#0J&I($$&!/9;("7H1U;27PYH04=8$):,8) 8)GH<$ˆ©ßÆc8U$1=*E@-BK4&0K793)' L*L1U,/(F"3.9C$ &06.ç(<,j*÷&úA/3F*48>2<P0 ;$&[;AT& .*8E%B5!**,= ?< 73Q9 L>"N;0 (E!!./I1:0&CH"K>+9F;EF3-U9*!7#9 F%/=,:9$./43ý4(HEV'B +N;&6%=&"F0-;Z@dozÜ9ÓÛ g p  ^Gº‘}?<P1S('1Ph<X5=3Xÿ'D<8 5BQ#Q4E!"1G.?#6)?-9=L1111111.Mø%OF*0/#,85(+0-8C@L;O&97%(+0/@121< 8/f23) +)(?<J',F-* +Cf`<0O`(/O+÷&.9.$0'5(@@%FI 0E?/&(=-(! -L(,#:?)  <>)BRhòFI_H2*).f,1CPhM+@5%Dp´\͘S@D?\B7H:;"/ 58L0D/;'-7 G6VC 8(:*/9I)*"þH.+9)0ANm[#+2.QBHAT27M:L$9*!-.'$&D755/JSUJ:8;ø#"1,>36: U=A'N>,=1-,70-=+U^&*7#1-2Wl¢a1b;5 +L4=1LFTQDS)5O1/)/ø?51L*0B"",&8-;@NEY )B" .+ BJ8 816N)ED*3-+#!W877T3&+'7T4C "6E*K(+HGa75AF<92+D7 + !1/ &'C?8?#ZGUªþÕn/P9'ò0)8-=$;?>#PMMJ!59:8&'-R@%",3H#8=\,A)a65@4>&:cID6#[eN%:/ :*#>I 6)N3T.HY[9/<)B +HKF--1S7CJUAb&H=0)O.-WI,K!I>ý ++=*6;6F+294356LH>'854,0D13+H34:<D‰kN0)(*+38`8O$%=I5.&0a'G37 7.?+J".1C1"1.$!3.*R(J'ÿ:;.<OX5/L2-6#ð!749:59#O'7'KÎS!‹UB)(J>De{Y3C1@3QTF$;/2"NJ59Q?01/2.@+5==94=!8##%$3P@6@E+ýAp---5*7&G13-+34153!5:IQ+3Y(*$.+AK%d2 Ní9Z'4=/6&0<=4@ù'B#,(8/ G/:R;%--d6&/&3R:)l*O.S? $"EP4c[8PmLCbm¦/Ö  ° å +)@Ë2¦laLDT)ýC;'ZU*LkQ )> +31 #9R$1%>#%&HC30?$U8";M1111111152*& +-*$3@3C%'$ñ7,B!/(I#.;54R0;U6>?5 +<>?/@=F 7 00!'$.*?+>yZ.=(?/#CL72,þ:2&'U%;#@)7?4'*%'-?!(;-%(351-'/^2$%h2<&(Nm G.OS9$ŠDçÕÐVA5.#V-G =FNJ,$M@U/1+MNL-8*Z1;8BK=C4 "?3B:0!J6'A '+ 753#)+dN*2z,(6 4C&#.#UJ! @>.-C%74'7Jü+3167BL@F(;07/A'(ò>÷(?EK+K/! 7U0K5WA1BS@7BDQP-r)),GV.2@'?<EX1PA6\F>&):-5;&,O91>[R[3/; 'X/9 --ù'aCC!rNF23P./ E7AC5..'V-]6+bI%@A63J&>B/A#/01!e0.&(:.)<D8=/3('"*•â´SÝ”`79A$G +#W@9g2B0P..4*0Z)B+30Q!ûNO 1Q- KB)0) D)8 @170;-FF)M7;2/=3-FTRIF-(59 [#C5HFI:=)F74+8I'EJ?-NJ7 +,"CJ +(AA6=5)H*3=39/?WH5 S+dS#6KYZYu91(.2A&U%366$R05GWEE!M 0/- >"K9*&4/6 O>T'<1;@ *6%I$<;+-2!1@BC5O:?!$<4/Q<Q`\./*V-4S4;S #;3A<;›Õ0úDD0#$bC9‘ŠSFEZ1(&ÿ/: / %U1Có+2XH>+/xJ:! CF[&#%=<**4C9,'/þ<@%:U:G4H+;ú#;8>( bE&<.F4&)#=U(+? F;0`0&:G@:?G9<:VC<.&2S@J22$>.#(@+7Wÿ,"5/,)QJ +"0O&?#.C!-541ú.LU+M,&=<6SZ")L@+C:2Gi@@IYŒy…}‚çUÎÅÄô6Æ¡|RB.&</Z,#II@8?L-*ù8<GPa9H* J11'*;J:83R1%&=>+GB=1111111 GK-Z%H>$'=$ô,9I0D)=)'33+ +;9C[/ $ 9q*-%Fù-8&,43L,A@E6'MA*+1# A+'()&+ A37 #n=-L+*DLDI$A:FA$10;)A6\ 9 14:<5O,00-;MS=4 -5=-)Mcù +¿”39A:N%GKA7õ %BC=58>%);-0`*,*7#!:+2H:0%.!>7KF;CJ3#/$+_6+)ZF)17B04E9O'8)$$7 T>+."/c?=3@G4*A /=wC")8 ,:(!0/ QM8AS$-D2fCBH)$+2+&8:L?^31$K,2E9,%.9+=4U=2,2 .Ù$ +PY##@)<00$23(D22C':(;>;LF.(#6/:3/348e4\>"N7=*8"A).65;7&RB !, BA"@,0CK6;'A1!$ $5%I púðÀþ\")2 aIFB"#&CI70R!C '>93#%&519!\AE'K1:(<<8/=.:7*V$AA<D:)E44%LJq™=k:+G#EC-@"g;R!D% :B$H>/.2&4K0 +*HD62I7?;,>)WK0(F75%e/7/+ #'4=EQLcg#vžWHI Y;F=G 85PE ;AF=&$C'<@6_9?6?A) EMY"/=)" 6"383J46û:098939C3=.9|&AN>.@#<53.&47cw‹[M9W ,ADSQ+EM\8,&59-(! +4IF#=./1-U0KH*=6TQ297/)+*0<=&HBUF47%FN#3;$,N2.g!(,T&*#FS/5%<<2^r#nK7\P=O\,,@(:)7!4%8)<3*r%)9'':C54O2&OB:)/I +@5#2%:6"2 &)';G @2"6AA+7<';A!E-A6MPˆ›¦q­†|’°ÆðØgQ^*,U+j,*/%OC8(=M.MO?L>0gELY K13& A&-"3KEf>:+3F8Q.1111111J8!-3í"&$1?"6E&G0%6 G1C @G;L@B%2&9 [9?:.&!. *$2<!+1^5(572{2N)!E2F.7!%"0*(&4;Q#@2)üJ:`þ*$/;(% EU7$ M%@O:A#&6/2!#K4$NSUK$%3$M2* M8ƒp<3=4QþB/ö/ 4 E7R'üB6,@BJ/$64 ?-(D?E5*ON +/,#@*;3B52<01:B%#F$ <9*1D!H/?[@û#F0%8. '=1!K)>!/(14(1m?6B1P<=#$++ï +J7&50(G)@!-95ø1:b[K +#<;K91N)"P^ .(*õ-('&0M*3 2ttJ"P?(o'24%=! +);+?0!?8%~1-40?62&8*þ$1=24 6HEE1G)>!F.H<$°5?OO"A7>?,6<1<ÿ5?0(#.<:%%3#%"@OoÞœ áEHn%/$%=J7/5!,$!#6 +<D8.,`1 +H)",O<+ 3,"EI(ON T9R%-4K9@(379/;OD18Q,$1IY†”ª…]s@CVI <,F-/"f"=]HV+ O  H4A6D.+.aM#,'?89$;?&" 3* H2A?&C0E+@$'&27^0h9rqW;N4 ?*&%.NK::-1;U&390;32?.OMUSpYFK.)\+1&0?.4&:)4W5@/+2 +D$EO\9g7<&'RP O?"dC8 E4fMN=.3<?K>173(55>?U&ñü4H %5*'6(>7B<8: 7,*@ö/:P#D !$A$J"ïAÿ.>0%=/SP`LZ2$8/6SFGZI[b[SN /'>4KP-B" O -E0,";3R614I81?/1& : G<$/7%-7DF8i<H5"!!=) =PJI2>/O374+/22(+D@@$82þ>6>-/UPH;„t§¨–Óê©“Lqg[f]`"(?+2C7%1/Fï!5\  11$I5YXh}],l *!'=*.?+<!0D"(<0>&#(CIR1111111J&6T6>/'659<:8&":,4#%0".FHýS1:9/)EQ:5>B+&'*+")*2.8* J1(!05!0;3E)>(`#729N560 ö(39=R(+A&: E*>5R46$/';")\_ ,R:ü(<K(4R8N3$0"DZcA  +5$1%VGVB@*3.//%!%@K?O<5J,_S>,"&=BF%EPA(=6 ;"6X9H *42TU/86&"! ,$))D.B1Y5õ;',86O*" Gþ5=J'4),)'+*$>V6R  )ZH,@2?:K4/@P+79"-< +3LE58:P5'L 1$F$NS2E"3 8W*2,&K-)-;A5LG%/ ;>\d<:MJ1:YE..#0T*"6N6*ÿ*67C'W>.6<?BL3;;F:/)<:-K0BG& 5QL !B0Q<204#G'P-/ ()6,>/D/J6.&22+;+i··SP=\ /@b%*@@52,Y^7?D-#?"6ZF8^H3;D9)-A=_2%6,;.+E3I R&&+44UG4!A1; CÎöÚ‚@4QJG8M:3Y7>*<B7"B(3#N.L5.(/k#SbZ+:3DX5Q1.U0<<I"LX<400L'/) "95NmY<"2)F>2I7RIID7'ú1AR0úJ>2ò:7/<4J544+K #-$&)(?=,3;EZW8&"<AVN2:B>ý"E"-1%b]J3?*$_/;G"N,þX$= E2@HX;%;:7<X(*)\2;38&+7<%7R==U#13!-?:ý$."Q5:&/-+(?ï3(&!><,:1R:E(#1MOE2H!>:!3,CB)J6(;+AC:;";+%;=)C@0J54&!/H7>2'0'/!257M00>DS,8P%(Z8=A=.KA/(JDY4,F)&:6+ÿJ.$ 0?IgdF˜¡ÇÈ8$˺~`Fs#= MEE<9(D+.@4)&'6)-705=857VZ::E@:N-; B!)BH5E9 ,5=1111111"2>8Q2)3-\!]>;#$2%à)V480<+8'$$$I#6-#".G>#7'@/G11 +67C1U4)$A6G'*E(4F:-BQ-3@7) & 5 HM1K)L;37#D4'"04D4(ð&."6NASO7ò.@D";H O>ý2)'X;7=?ø[,WX;7T).>,>) AL,$_4=p6?-7, 6Dk`!CI0DcQF,9?#:*_%H +8T/-59)6@63_4/?+'C6-!3*#2;3+0:$1aJ>B89@4I,O,BO)/Q$M:+ =G:=(  ù$71>=-+57g<3FJ_1#S&U3!5N.7V'1FE-63C$@",22/HB$*'6"_RF.?2/7G!22  ì/B3E<5CL-#`LH3DA%3%5G:81;L5J J5N!64>3 ;79G7&*E)59E7D9/'4A0"*>7-D%1F+?&4*#87"]†hH;<+ `ø7CJ4 1=A$E+*)B D/.H4&ÿ@4',>ÿ!".+ÿ=R<8,ü3>@4?"<7(;;:2S6ü[53E(.!T@–¨¨­wSF;:,+U ;Z T )0.8%KF=9 +) *Hk^A2)T11BIaF5 !;8S5N11G"<  +,8(H+Q=#.CC=85-.+$L%-7BP'*:04;D5E2%C&O-V?;(//+,>2S?1-FD.$$"'5 +H!,"'RJ5H6=;5 2hNSBL31E5!"5/9, :DA.'L+@+8R/H$f:,$382@9+.õ/)A;K0.^D)P 2'.Jù6*&'"83?:3-;F )7 +4HA%A2'()#2$,3Q3%%19+?/a 74/=%"":-"&D,U,@>./7%i'!:2Z<^$ Q) (8:;"B031W‚S;71M@" :9%(/KS:'6V8W2L+9B,I3//E!qJ™ Ñ0LzSRG×…9sMX@.=0R%8ZAý<2$BWe9D?F5?.A2+YóA1 72b<6.G571=*92<C78;#1111111ùô(P47ü@'/. .ð7<ù73.5%8ýM6(2O/4(5/U96+*"!.*92C170$%G63#KHI3!9 J1-N<24+1+E-;;*27"#;8GF#8&2O259%XqJ78A9.?YB)9D2I>/'H U;F)==JJ3#I,H.;( 2#?><M)?b"&<-3.8>0-2 7%A(G*1D*+,sL5/3S  I+.* +%--<C7%9:D29 :'C#$J!84(,X2ø)8;V84=C7 +*U0*DS#K+*J7 +>.$; 1%a36+*-513E=,-<#IC',O8I2%&6-='UOdG=L7(.5-<"/3+")/VE*1,.; &1G4;9 5-5+,.%Xö&,KIW9M@02.8H*FC&7)7+?V13URò!' 9+ü& 3&$4 /=$P51ö#z-J+<%TZ,#B53p6(BEN6>>;SZL8:-  ;.Z.=H3;))?+:S4,C +"+E970K:>3 ;8E4C4.SKU.%0*F4FO:FDW>1(C+=I0T'Kf32@0yr–gM=@:5Y +K1@K2>>98B-))&8W=; 14<2$ !A4B (7L='7S/1?499.RD)04(A"<.N71+TCP1$X@_=<F;4&]+07E &C!8$><3"0@@N4FD"<!K5,@.>K7? >/ %,Dc16C M>/qYxHXih&.85G&*@$&+$C&@(>(,.>388-6%3 -#;8KI=T</!.3(@ .?#47jS8<!Jñ:1@#&ü%9:>H:0%&;:;4!QH5!X*2)&,68#75S7A5(+N -ö#CHDVDM1KK-J< .Y;@P/C:CX2IW+E”Q)Q1 + I-3&=>H$Q @B]YE#+X0=6 -?*q(Q0(&3#%+L9I<; >5=$8K`‡5SÅúÜȽKñD!6,bWAH>E@"1D6E56%81Fd /(>62D1*O'F[' $1%.*>/+*>C6IM E111111100,87FFc*:R2B.Rl: +&+?4H-<&.ÿ8?I!T518*@,V'01IC0E097W2)3/d7@ÿ/=#R@'$D 6*/:W1L6' +GBJe.!%G2#,8L+<.%)L/=WORA"&'73;M#$2G-'=.#f#@: AS4D+ P4BT1.1*;5u3F=).B89$:).7(),4O&PAI5*1;&"WI&T8#$7A)AF +BB!%4/JC'143-NþQ11.:6>&45Q$2%`&9/)1(%ÿ7$*"3:?I/A<S)G" 8+'E2"'T%:B3"'Z@*H?1,ed R&:%:"BCôG%M">-O6WE)6D +9M<=ER$T(C.N<7(-(J0(7;E"/4*CFNE*I;IU, +.>6-5D#<< 5)9_M)4"9m& (R@ RCA1A- (5-M,;>WH2+*: @"3/;RoR1ZC <[:.DF(<%<>*-$OH@I4+8 #76\L+Y7!0?#:13:@->QM=C(#/0J:I)F +M<K811E"':L5M U/.C?5,8DlPVH6G*V")/$]W%<XY03'+-)'6! +=U -G-N@AL'.40*/E5ZD !/'K,6I& 4U,Q>E(H!&??? '>-39#/K',,2>>0?0YB-G)-9':/:4# %I?/!:A* +&.5Cšî’S:V'/ 677 :1;-<C%1R.N49SC45ô#"?L  ##õ /#,7ôü#AS#*uG &,J 9.?'67,@e”žM5!/494G5,27 G< #3@8-"(9>E-.?G$<(4)9382'5)36BY#;"'[’yPR87<MeH),AG A.)C/@/165M.[83003W#42ER@E55&I8;*(6-A"Q 30#&A3/&<l¯Rç+e;òsæÏœ/",B<0//90>42< d,2-;+.9I.K&J.#>VR0,?' )D1/:> D";GL F9(1)1111111A".@6.Eÿ> 5',+%@3,2H2D+VQB00% 41'2G:4%U@096RDVìGE <<.+?ù1+9Z7-0<B</J$+''65*O3=CI75-W1//F5'ý'Tù7/7F#]H<  ;+?8*JkL<!+)'%XJ**%1,H+<>>DI'.&4 *7'?#5*2!3=]; ."*52]D(/?!/,,*(6?7(8"/1D86OBJC@4Ì0D.1 E6&73.<^<2+%9"-!5@G">1 %O)* 8,!><)Y5);4R8=:HF÷A)TF/61&(8.49+;84R[g5,=K ,-(>R;!G2VK92-//6!F.+ùm.0AH*.C)% -I +'.6+[9<4-*J;#=N +42X' 36+'P*<8+ EHE +*;(" 6";U@7(-"1% ,+QM'(3U2 N+.)IN%105:S2%8K/!0:6;1NCD4)XHG'*T,=j@3@C$>23'Mh9?=3,a?&#ÿ:RGD*'PIH2n3'>F%J7PO,GIQ8,)9>E1$ó9,8#L91?,3?/)A1% 12;7A+/H)'-J6;)H8>c8' *=G(?!D 7?L6<)&E$3%1)=#>5 +T;9\1-::-@QDJ E(;>-J!ýN-+)0=d c +36.9.#5<#M;-8D+A³I'Òz"/& þ!G2@:*,6&0#3*',503<!J!;93894/#)?9R93D =+2."8)I"C53)>D#7 @L>LUVx@')8F;&%#C3>;F:(@%D%.$R6A(5õ:/=7-C18[3 =O4*O=*M!OJJ&!6Sd¤åc@482rLP7DFC.%>A ',)1(#!3. *!%J3-2#%&D9:5 +3+8<5\;F„ŽÃþwGbHô„»EÎa[P>271X"8)2;AC4-!Q$,þ0(-"*'YR)BB7h0>-C$Zâ([H 3 :Q) H4+91111111 8H 9<!%?%E?%50<8*&$4*)"6L-'D( 6>J.8H\<- $4)*6)6' +)AL6 0C%- ,:"0D952#EéEC6BBE#H!,>0r#V$M1$7=-)6.;52B0*H$;/;:@5391F.b;JH"Z1%(ADW(!3E"O;$8k*R;96L)5(3<0K7*=C)7/ø 2-RH-5b"I;þ!R_:1>e15/:K93O÷?3F!#A&@+%7/*Dc*.7K"<"..01R%/M3:(= (0@CA+<25(&/  ;546AKK0+9Ta=%EM,KJWC%($:E:]<9$1$6(.HC].=1D3?+ é:6+NC<9L;2*>"9# & N%603; +)=97+B2E$,N2" ",(LY7!2+/D*)C -4H768I)85;;'$+3Xo–@NJC-W93-.@h;1 ?=)4'H%VWFA'R*IK: 99(P$G_?$9L2$$+P7?'ESL53C>,*2+2<B5_JK.CE `0"-&+8F=>2A@@.>'+DH0d-;>VG/a!^@5=.Z5/E:U'H9.94#7'83C&N&'FY95%*€.D$7?<B$C7BA00B!&9H!5. :5"4IDI9O36.3'77,G8$5%#a5:C:NF=<PD-N"57?(*!I.(C#P +4DN›ßÖšI<Y4( >0J/)8$9(I%EY46EF.(6)&!#@$<.6\.U12=H7.&)@X\=3318 (* +&<74()K-)ö166B29@!9J"="#'@@.Q\1=&=)Y;:D;Cp20 +*e4-a#7,/,KI>S;uB9:&%C+;4þ81'-!$D:BK:M W;!)EI>'2$2-%%A +73BP*8>H!8!9K*esŠðtA‹Ò  ,6jŽW?#1!9//*J[++,0I650(V3F,=@;7C^ >?4V O6='1ha.2/&48@;/:)CD;1111111$OA @=2&@HL2>!@C=15 %ÿ.2-!6,(;E<,=96>>=;F:+%G-= 6!L!6&^FK8P3 ÿ-D>5Að<,ñb*1$43''K9+9>%7CD2)1þ,:%KP7,-6*?@9I( 3G  2BCD(1C/45N7#X/=E>HY-"g*/\ VG%(/?B>5:4D$.2-l Q/P7<G)"F/8F"1EL;;,,?:0924?& W,=)6L(0Y?<20g. fX,$95)5%A.40P?9&8$5(MM(TI'Uÿ![71#'I4+FLB%9',<(' 19KD!;9+5U?M/5'#"3B/9ö#NH '="'1A"E^(2-bz%F5L +7B%H&Z $15H1'9AT-,3/E"CE+C=,F;A@&18 êA2<)F=?,6BD$"8+.)*'V2<O@7IYCM8-/>?6.#)(P?NQM $ +J?S-:>#3;35'ì7.#2.K9 1(B,D+M:]7+3-.3N:K&>#KN37)I>.8ùS1C9L3/>C&6<N%)5%95E565=*16 W= ,JJ(6ý^f$A1-2T58W=WL7;@OD!1@='-;'R4*)3(,F<.!* 3B;MN44E3&*2G4:(3189"-:;"$HF6 70 F S"@>L-6H9$_6-%O0%!.O['4D;õ$'R=!EMKú%28@585,L[[Q!.9>)G&B<<'E-5>'*YA(N.5+:4U1>001%4L1/!+%:.þ06þLJM=;67,[58H6%0>ù."#2&6;,/E$.4#lY9,,A4)%-!>BP$YG##=#2:!=%=G'+91H/50-M)45G /,Y1<F:a:ZH0ô(0=:@7B<5'YD2FDC0,6^)(E& +1!S( 9;5<m91E"."7*([Q(%]wZªë¢ñ&V`htú«‚<80KCB>#-<%+K#*<!+.c3- .8B1H45GJ""";41A@,NNB29"71013]1111111%1*-,(_2);1 >2A0>UIK02Cý>(:6391'I!=) +!N )I= /A@JX7* %7FA%%-#-ÿ-":6;UK./'9")*67/!(98,!ˆ@<&%=(1R%31"*</+#D<9%16eI!2-8/<<Gd=;#<1A%**=B+"0 4<70C=B41)'1:#)iP6 $@)d?4 GH;7!/#LG4&WH2.=$E+.'*o<[) ;346:%*<êKL.7K%2U+8$.9pE4E<8þH%) ü =(R "9%CV7I<&;N&,2=&.I%!)+)75<5%6!-1PG +E  8$E'VOG%T=/gf2G<;/3B(&@== *C$-!3$=?C:+öR4 &83O>*F4;2#E,6?>%.T?= (>JL%"126C,4-ö 7D.,&,5Ig9@4$ E'+?M9&)&IA1+303O3":$6A;=2J'+J")2`P2. E +2T)4'0#(MQ<+2:@1;)#6#)*ä  HIE/7K6.%-F3LRJ7J[80aJýKo?10WA4V*!["$ G,19SA4C.2)+#&+$G7)K#/GBL5=2:!4064þ204B7L;140 ÷6l4s59+$5!5]+#>L"JB:248G?f+F8)=:+;FGÿ=1&<;*4=#3E5/90,-?F +^I= +&Q!68HEL"@<ö+3Q./$%[(B %+((@EL6EH%42PXV/63#17;)0,9Dj(,,&/DD2[I72&%3BHL+ 2%+:IX7!+B.p# A@W4B9þ7*Hü754E+ H79'7 B(6%3/5*G#M 0*!-+6Y1//%C9ÿ8A]32+D-X+/?"4 %-4D!:?*0%c<'!?)D<b*Ÿ"¡]¬ÊÅh} ®“EPE#6>09G4KG%6LM!"%26&"M11; =! EEJGb<I#09%>42.A)ìSCL$GAV1111111C'$%%8v/ !72+"C8Q'I.:!-*(RCG&/?M*7.$/'1A" Lc#R.,0C,64 /I&0#95C/ 260#Y,/#0.,F&323%>3H!D9L1T) +P+7.4'ýD),2î0/D-><0LOWH((#l*E+#&Q-><8ðEB>Q ZS.( c-6<)P-'?!xUaN@!0*XIP$11<+E0%AR-@.C<aY677@X,:! K(/;++76C *B!V@5C>.Q0CJP(/!J/-)+CM[7G>%433E]S8#\:5,-):<@A%*(6%.?> ;#&8+>='3,3H B).5*2*:_=$^&E3 +%3 3--#.)"!Q 0K-}1ONM 1L5(8M3(#H\$/55/ B7:K<(6X76b9&K@;-3#34$;C:((@ . $#:6A+2=C7;2>! H0&, MR/O!7FNV 6,<0Y,"!;?*F(23 [û/;%#'(G !E KP1:D(GI@ C+JI+311$&,Z<0\7==A-CP7+33@LATOX?7:$9G06B1C`4;&%.&P-7>(0-"F.J% k%0 1 @@"*%=?>%#@-463'6I+8A$IG4.I&'Fm!*44C78*8.'H(1GKH^Uj?)'98>96.^7;W:J07>T @3+)(90># H4G#?#8AIEE1(N:A[0?71VK%1(P*#,K>!!KA6T1æË|57J7T(DF1(.:7G3+>1L6?//NO”;0ø.@/ Q@9>7VG#/ÿ@*:%/!U,&.A6%5U4.7 +3#ABF$63^]'+;- C)&/J5.?M2 *Iú:%H(70I%,6:?$$ú;H 'TW"I8  5=*7$?7=+4 2/##=_Àþt-o€9è²Oçß„‹FRWK@$%$G D/ /)18,2!.R:%h\5';,2<K6rSE6.@;)3;-)L9G6(</HC +v84ý-<6>1111111?L243B,TC2=I19#2+-2+3;ú55=$@7=32;M!78"18a:-  P1,43S.R&$)M<ú(HD#F8õI*I6*/#?")k5BA"0I <U.BI-*8VQ& 3I C5öFV=^4"F:5&-+)- 0ø2 G .;**.'%<6%G:86`O=H+K(+*A6,?8Q&-;?3&E084=ø')7F <AX0,,A=3"A85X- 7>(CCDIV;.+-<#I 9[=A::@#&C?:,9.F0;/8ó> /&%&!*.U-G6F2">M=K*:!C0 .9*J6OS=?<GF,D=#"6.9.1OB+4['(<(@-0<2-#$:5%%.ù-H8O/!&84(@ÿc5-.30209"73H8HB?$F:H U&0_7Y2*\,/E&?G221::<<9%+(#KA-24&W4x*:?/ ))694 + +.)3!0T_?@aM@55, FL7i4A?N;>@7&31*8G?Q39>.'31F8$ ?<#E B+=9TV&X'%G<$Q`Kh0<'(F9'#5a85E5(R:-+W;*+?57# +(*4 /'6:8 I1"2,4 M@XK<Y-U*#30Q+>E- CW -;AMV#]%CI$//3A-F6877%þRB5EVUhd%E +C> û9;-+ -CcG=EOG+75QW!@"#4)+<,O0!I#<#%1#*"Y&[02/?()I4KI/))9F15Q=-R1 V†=0&J7H%ò1/>*3BF1,)&A2=ZVKKnx•\4G< BW+588/1M"44S>G<>%22<5"C@"| -?06"G)0@(15.="41,8;J0)  P;'!A58æK$!*,&U0@C*= +C"+,+86('+üE=Í4Ý(ü°h4+¹enQ^7'e(),+( R&( ,1)%3939 DH2K-< *JJK?(F6?7C*.-a46>G1*:BF=@@-#+6T"N3-1111111IF .,8>!E ,T/[:Y" /?9(-M?; GA(<*/&.#6 1HkN% û"&:,")9 +,ý"- /E>#/  :6:#OH1' LD@%8^6$:G!%8 7T.%JK>"2ó&?%10D&@,,$<,$7!1';8&`H%<9/9.0K,"4= GP.ý.X\I( ?HHS9 dbD(*&, QúM?K##;H 4"4 @Q1:9C")7 W=6C=?13.H.F%<719O= Q7 +2*82@(22,.8-M5V6-!*&'-ZJ@$F>#Tb35LU*--*æ'@;/30-7 )G-B0>XCC`C@A<46E:+0)W!T*.:&*4/J;')/;KE&#)(OFåG&= 6-T$HC(75/*C0.(FX3&1#oG@0*.*G@,M^2;4M@N##7=5=4-:)&/-'/+)'.ö*/:=M.:%&-;=F2ð69AM)>EJ‡,P=N51NT3  UC5A-$2ô5?AZ/-H:A>9V"WO0\9L)1'8LK5,<8LH@;:=:!G<9884Z@ßR$T5)168:(I?9Fj[KBEg@;g5'/9$04_ž¬iAK&Hñ5!+@2D?3GN@=7%B$,&:>5*1 O89@%';CF/+9G575Q1>Jm*#%$);E9=S+A (0#=lºŠkE#9I4>T:E2J03M .<#:F<(&,I/<4/1-A2&84G0>=&.1'  +PK;jŒbELD74.,[852Q1;;DD*AU +=3gHnN22JN8ZU5=()&"=E + /%De7,<Rý$OGM)H:1@'&L;//)W<dP7ACPB!+70(; # N&?J00;7RDI4&2=6&'Ak7;9K?3%+,J0(W)$37Y0&H'/Zp»&]ž„M2Ád:J3GATK1<H:(+&1*'FF4=GIY;JP4JDZ!7U==<]F/816A0<'$4>#9L7555] %:/N -9/1111111/F&4B0S1AxK"L"*I*1"$KY>@#;0¯,T7, 9%.:'%1$36*G:Jm.;@ ;>34!, 1!#+3#-136-H%,?$78  +,)M *B$+*G6,D,@S<::1"ù:# Zê-476.'0 ch"=>?'4=(2N I9ú=D(#,>A)QZA4%,<L4B;GG+755&7+'BBù*?!-3191&&(*"E,P<,_ý;9LG,;+H?&$ 'jAF:!0&:)H" %:; 51:#$FXE1*-ô73"%#7.(7,Z$,;H5S<>bA%54<RI.5# 09K%c5ESdV[-:\098+(PH V%-&%&F##%*;41R@,MB9(NUÿ:+DF7<(S 0*:G/4?rDE"g-+?PV6>CK+E2^--*7F22@*,3-'C%&7% 1+:% +'(C,+M0?<)9'&""-AB,F--0X:7.04(-7C84#4=? 9F0$-F;\ÿ(D0%Fú?@0'=1,2ÿ)V">A60ø@,HEF;+Y93B7-!2FH!C;4#RP-D,()-H,X0'>,W1=T@2%C(8=!$.'& +%)93CS72 5Dñ2 +D6f¡upP7E6HS$O ÿ  +S2&B("bhR1;m>Ný-.(&:B+$" %I9IDB;8%J6/H&-244 &) ùy±‘j:d!2jk?iED0%$!&+&7/A9B7O:+ý'*.!=33512'+U#'6B>96.@JZÃŒ598>M@#IY(;A=Y-íþBG0÷@#/Z3ü1\`B=??I+'"0GE,*>B.37=?)4='-BF373L(6,H6,2E5S*/&G##C)SA$#M!@?=4)F..712+C)&C,,M8OB'- $.$);)JG:>2<AML:>>)ZHz…§÷##ÔÊ•p5;KCBC$1:+3+)=5\&7EE8=P*4= uqC)XFN?(C5 .T!=})BB>>J$67\'05(#%DRW11111114;K$ 3,-B9"&J-B'"ZB8+)ý(5$!)C6I¾gD:5-)5%6$8T?þ&+ EAN7@$ö4+"44'÷7-) 8;+@*6+9 8S38L!!.R02ñ P4J>CbI!)#ü)##0!÷#\*"X-&M7!O' 0J-1#??>=63(><<D  .5."+< 8tC/Q-8,",%3,(05+d9.K* N2 <CM)C>,$3&'+#0.!B'$54He0%="7B=G%2=HG(.% 9F5\7J+<1%5@-/M(:ô 3!776;!)('"OOZ6.("79=F'3V9=:' p !<03_Qvº™£CG%87>875.+O+$a/<PP3>;M)#`#52ï'(3(B&05^%$@?/=39UWOB7M]<ö+M5:6&35EIWF=(75@ !\Q  +G#+16M%8@,k17'+&7 O,*L84%09x).9?7'NW655JHCS28K5=0.73MB1)ID=4\$"%C$T<.9*7=06=&#1J8/9B7J #? C1 &H=I.M.L=7/=E*;)bS."%7%#943>I8?>5=;+$ÿ#A -]6+;1@$(.!H:-@5Nb<Y24%.03*:6T.01FBH:6 3P &$.'VK"3>B><*D4%0/?c0.V<H;A2<2i-ú-ù>B4,-$(O$=lxMMPŠåûk> +/&:&>W71"%%)":)B8<;G;6W1*3L0D,AH6U+3$2ÿ='-N8&M9I?:!9,:ó#-'6V4-1Z8=/&(7.5[k8-CO:MB#E;I5&0O.Q&> E-ù1CD>$L9JF2.AL-#3?GD%KJ-//('4%A9%E'=MR+ 1B2 +4!6"616[O.A8*/%G!71JA"2:?0**EJW%YNr۬ȱ­xcI-4-!1FI' =-0EK?-5!4UH-J:a/!)XK5&:&=I-6>W`E6F!+K,DC6Z?-M,/K4 3M7>/1111111?O241>;'; 38L3+=8A-!;/$<;BQ!"I:sb3WL> +SB8  )M(X%+*--= +;==8!ú *2& +`'<2 P;!O%<<'#?!& 9:&%('L01€XJ-#;I(C%48ÿ/; --=  # "4"$^#;$561:1@8P497-H2B.>4",4617 4(%M++=85P-&-6WB5=/U&D(H-A0X( s-BG?F6 =Q+:!I"OD7)8Cj ?,>))E1FP*.ÿ/A5C? 8+-C+6"W6);3&L5_KF6DC>ÿHX7E1#+:7+'/28025c+9?5ªî7uDOP8O8,_ F(-%)3<>8B,I,89,i&?DA:Ih&T6-;.C.20IP7MF+PG1/ /*Hh</%(5.!Q +,$oEÿ=OUH&H$)45R;4Q9(%#/;> fKKA";"R%' +K|L/8+  07B3"C/>G    \*8@ƒ$ $L%);&]Dp%%)&óBf+"WNAKL>476M0(PKQ+!*G!"BMBGjvqB0T46:H=!N7>)[H#A&^0/PP32 %Q?!U'.# 6V7I 5/EAK2eX6[3 +;F$=%[ '$7%57÷AmFIþ;I+D(<4:]Zra2UD65;%;.--6F2204WI)(3! #0(1GF#6+*145/‰æ¨‚rK2JH'> R9&3"#LGB-F!&*,EQ4+ ..!:65+03&I0W7ID2?:;95'*+=%#L3**M#(-=.L3(::/4./7K$%.9)ü(HI=73M(g &L/IA*9iI<L?OA*,f&])%!H>;&53*&J:2#)2<$N6>H%>ü:,.&HBQC? ,(÷53$. T-62V_1(#4?86VLxYhˆoaFLt?(3!$`,+&*B6?=&6C.(8@')4W&a 25:33HjrI_=žscJ`&A+DA'>a;3&11.g 2f<*AW1111111.$,$51,6977J4$5)"$&*_$:9B&*"@ +1pH9)!@$;C6*7H _P0åE*,DE='X#úK9!#@!3- 17 ?7+6/" G."'27-L6")'D+ý9eVo=÷7ú 0N2'' 27750:Bú(30/4=>-'"þ+8*83;!O=2Ja94.(%8</'"MB<a2.+ SK- JLTQE5>:3v*,2F0b0%N8F7B (29703H#5O6+^%7*7ÿ#F=3!D`L9?[4!/YJEO;D"C +.<+??)["OQ,=,.)@?4G9.(*E1O(">B,:>aGHQ '=VAFO=™¥Öœ|L^<ƒ*)B1H26-R4$I./<C J!><%>!U4 D+)í9(806_5lþ9BI)0 /$.o)6 ,<:=SH?17E:8w&E?%28PR;)$JFA++1"> %%2.4+?<:49]<d6=D%0GE@\-E(3.IB$&C?;;4J +DH*':.?.:3<',1;!-EAHFP+87248^C-(h)'M$_’|Ÿ‚Md_A&$$$(/0,3LQ44/!9V;.@@*C)V6V:$%#(6"JI-:*þF=66F8,I<G '(!+0:`H?B2(IQ$27F%p“垀56''3O8;GLQF-2!'8 J*'%>;=K0;M%C$+" .)-H_+P7!(W"-+[N1/8$)@F$B-4/I7BK?M<%B4OGN";7<&'(+D%#%)+ <ë&:!#2J72@=jJ.0+DO;+/H3)$T&;5/+0/*S -0<71K- G<2XOg75%L&63**uVZFQR-H*7).L&A.H)#D9B6/÷ ,%<D2K77W&"6-0,?71(C33#,!,!AP2`h'29JRJ2e4Dew5<+%:PE,#8./<J ^7L.:"CJ/)'PGEEF@,E**ZQWIN†‡hUEL5O3##7'J(,(%:/@35"M> 7*1111111'!-<59 +ðN2.R1;'&,/@!.='gO<ñ7IF8$5&3JJ;;=-88 +;9/-#1)+*3(%H<-+H= $AC%,58ú;,*3'(H&&7'4@.c2$-7)?5F +>@%+:;'U[AP;D56@43$L#A;19 6>2<,>La.OP32M$(LcF$ù-+. !:*NQ6$B#0ON9UB)MCD*< '7=,"1#+BLN&/AQ:<L'9<2I48+?3+",6 "6E/P>&+j4H&2$60O(<6f <*&AK,1%5=21@, <6:><?W=7WA50<77.N'%.K2Z!'9'+/E=(==<={n@Zd&C26,3)8Df10;%E/,C$ =E70$](,?4< 2P?2D))MYG=(,6#0CR8-`7\ øt6>AU?&@CDD3Q 3=*442|d/9?IS.CT=D6Bi26 6#(>4>. =]1P<'C+/'*?;3$-'08ÿ*%97:4G636#,J'B4Wa&K;Q27=JK68"c+,-8(T/Ap!6!-;MJ*?SNjšÞÅxG373%#"(:"/+C).@7!3]ƒ)DQN\ +$'%# ;)K(/'9,$ ')7I@D,=?ý.F8G8E52CG7J$3H- UQ…ÈòæmJG%$D4(E9M\C+;:1):.*1/<*6M8.F?18TI'N!8HK6CH'7G!%1K)Y>+@ù,.K /Z>/LK> @=>;*:P62.#? 9 U* !EI7 GYS9SCø-J9(@+5%* (H/+@;L`70>A.C7ùO0(/SOA0G'lM^0kdBE8R0ÿ!E8\CM+d361FPV7@?7D"!?\C*<BDV*NN SCV ?05[-593!#44.7@@>#E(#?/+8VF&%PK2-+CB @ < 7%7S+*;+#VM+>$($5S$:BW7 5F=.K?7Tg?U.”}¾³ÂeVUA:(Y)+&2(7$Y6++A0F)1;11111111:--)6!" "7€T ">@'÷%,7Z+? *¤»*756A!"J;]3H+H%J1 XH-/:ûX*'þ@D'..CA.7)+!%304'.WP/;\06F<%*<D+S 7"@G$+)!).=8â.5%-5,@B$ ;0%6!"DF)*)Nr2.1DC"</8)834",<"3!!.>(!,<0.X>+!I3Bü:KH!="$7N1#2"+K:)38,E5%$)EEJ-Y,)*4@Q%+%F>A15</"*L?'/;)9#F/0@Q<1CYC=)3,+0[/,$%%48J_A?"&8:*:A&& =83(75-`FR)J[0)M-9/ü:w›ªÄ\g:@E3I -"#EF- cý! 5&ÿA37"<!AN@'P+*,;I*8D%fu7ZPQHH A+f@A#[ 6! '?0.8&N5R' +ýP$& &$$=D>"0T.,V.;F1DD>M+*4Z&IX6)793ÿ;H0&G"\wQ/FKM;@Aî482F*>I&<H0'(?6M=62>M0I)/8KQ"10"?L77=Q12U1H;$!H9.@3RMx¼Ã˜jch-W,*>Q.2%XT'#B,nH:KT1E. !76&?690#?=F(ú8T3, +;1N.41^&/m-+B !+a;d6:CA3475:ÿ/<)[u\†91g 7^_z|h„gH,9*0#0$"#:0:700(H)RHB%H6K?&"?G%/:%I<B0+#?I11j?4T3AhpEX0=9,)-?A!D70.)+41):9'; H=!]NG7.$#ü<),S:6 2-!74'4P$D,N<4OL?oH?;L>S]G<@GG22-A_;6=5%BA<_-;J>! (,# I)8@=ä1#9M5{zDNK4/NJU$-''7%"'=D-)BAC0(502$>#(4HU7 ÉT>>I(A+_E'=5C5S>@,W>&EQ97-:I8& 5; ;=lX#]%9YZ€ÞÊU#òŸf>[796 1(5(@Q15f]=c<1E27D1111111[ %YE%/10+= \63&4&1'9  3<4«.R" 9*L:!#=)*'#;(294'#<21#E;GwQ!3)"C1+1)<-&.V2* 6B# %+&0G"T.ÿ4A3!A8.Z<==IF=K0(?+.M7$ +KI*'A3-$54-OK0(#4D#3A,%(; 21>'O5<E&F^)-0* 0923,<D@93/+$/09<O7C:7G4BG)7@L8J2&> Q&4 ý"'/%'-E1*4Z@<63G0!I3C+=!M5I K&P :DP9%+? +!J$\;'+'W5*bB8-=/ 2C?74P9# B7':><) #$3Y4@Q=$N­äξ“R <-(*D<#;6@B.?)3EA& O>CA&K.0\,,-> n¿uCQ:74J6j; <=6/)6N8I%R;VLH? C4S--NH> 29QDAA:@)Q,".=31 +>N,3#I,;Q#77'7-3)N4)H07"7QILV)O"@206  67 I^Y*b331E:*11E(9BUJ'F41J#D )O7 U}04>6@@%G{~@‘}nAS6<4E[H.?'9c5'BC) 4G.UP37- $'2%HKý=$\-8+M'!=8C&( D(*T<)5-630 Cox?9C0 %=:1X.C5$>ev|¬†H_7$\+<#6N,2#88#0==>7*(:".2/0K$F=="62<-[:9,"480,)C VRW7,>,?3.S2@-:J?HN;'4 O79"Bÿ4:.? #D'1-3ÿ(73H/%+K$I(E%'Ik9:<S+"DaPE-21N"+K:C2b+:%7H!7,RC:5X-10 ?*5.#2G!M9#[M(:)M;;1QKG>d2Y4&F-3*C@)*49)5$ ?(SC@?E84$/:D!?3+K7>0RU?LWM*)M.ëE)1/>b@ <65E!WfL[;C%n‹ë «à~_rq@[IH F6'"Te?q=3]SDrV*"F1111111f :267C'9H.(31"8/J(XSLDQ( D¬O$-6",61 *(#26'H!4\Q!Jø48*UL<(&&j$H/.0?GS50%%5<3( &P&&:%G2.)#$D.AEY)2G5 !E%@-%?F#j&KC4$?3BVI'!@C:#G5 E>/&)2:#.//7739/2PXAAC04F";3'S351A9+"E++-6JZ<N(01(>0"mW"1 3G--;U)/T8@) "U ,(N5ý<@.)0S'2# 560H44K  CBD"($N;:84-!B"ÿK@Y0X  -²4rôÔˆ;<E;@L@7/ +2A>O34(ó4@% $A8"..&4ó'P9R/h}gL1+JFJF*8)e++ãTI+þs;& +a,733S)0A? 5-&U),"2#/.-6.> +/Q@(4=2)+C2EAkf(16.1KRL@<..QE>-"T'=<2LH4;)1Y44=J05^+K%&,3*#^%I2;4GR 0*\8# 07H3 >`F*'G13PH;g8xT]bUxZAMLL#WR;EF4H2#'F /6&G=-)K;!9% &)%,;>A ù?8.'/_B4=*I"'5>Q.<AC¼:ånW0@I3G.!;`"R3@JJHRvw`7IM87F$&:)8N4%/M86#4$<0&(@D?%!X33J/ C0-2ÚBJ3E1#&E<8_,8B8 (GN>43).%0+-ES8*)!%B C@!"81.@-VB,,))8$40+&þ3!..%:5ø. @/$<&-!%<X.D9HU3'$FQ69An;4&2WWKg ,66/C;U5)xA">,"Q:22/-=<>B19=g(25%?W D8$QL13G8!7%K(üD?8/8*I=ME63>$)13 %)147 A#;:<8@:%5$.':,".H&BA038O–¢$pø;JR²iG9Ik<8"/?;e62)1V?7‰†fT%^%51111111%F%-348A-$$KN]3Dò1'1/<&98?hPí³J2C%G^4/7 2!003&'/EJH%"0&& ":+\+&(% T/*'%?(G9,',/<*:WF@O!K1+:#0<a>%<893#-*4@C0>#< + 9O>&#*/+C'HZ÷F8n9?I=:A(%_3O&E2+J=) +D0T7A?1.Z&FEAH+*%C8 =2-(6+;A:K,0"1=I ûV.=!;3%3-+.#*#L"DX"E;;,Q+,=AA#82RA%N6GL?@41I30W"67$51TA'3K.;,F ++G5("-B@©,¨Çcau;J"L75.#,5:Dþ5JL+"0.(;:0H&L=;(!+(?!C/?-*6*4>B8>#71/P4"# J% >D/259(*0?:"-, +9#*O(58A@"L9H "*Oý1@<.>1 6;6 $8(9';00'*$P/"La2N7E1u/&0-3$3 ?7$$*E]>O!B$*S2S"[[5Q*@*4U.+[2-TC#58/.(85)E:HI!;cT$T«¼ƒ©M{4>D.#8\GS.FE<;"CNM7% D8 $++4H'/%56(U0I.B +.G).+//;K1AK0;7! %,G+g^æ§Ü\X> #<1-@01Q?$'$H-/7!V>Y(*G.0F@_'U6+%?7F;@04$C7'VRE R(/:RN%,)SM26&*Bþ*^' M4K# 3)3\5:BC'XéK@B 3)184 ;H,/þA-/4$*$.3>/QE#95,'=!>27ñ'+$+VH6/;^J/J/PBP -@(5>@DHJ'59iÉ»¡18B7<,'"'BB6<&/!7"'4#97<C$bJ#.4'>E&O-):b $#;Z0 +:1T<!+"&('05+>1I),-0#*C"+:*7!Ré@6$5J*ML3]:R36->>W>[p‹Õ•CŸå;ÖN_O+#'L`ý-J2:2G760“­âH:B*F,[11111118-34/R5<Q(+'=-+:`(W E;?+>H<5  0+<F13.G2!*Y#,*dPû0#;%W()2=5P06W:&97ý"$M*F63,#[95 *@%R#1KdaB+$+? J# 5-15-$51,)(G.7;QX5xE2XN+9BF8)44FK-,\4B8#/9/9>DQe[.3)S+G" )@;A $1-&DL.@_/M=;3j84I C=26C"O+\*8HBLD1S-)-ö=_ 9J<4"/-0#0413HCBX$3.HO)&D&?FJ3@=%;5.@3D8&5'6BJ&FNÚò~á(¿~CC'24X`26= ?.JAW,?'F,#".;20 < 7WA9A!;=+BD2>2B5.6#C23H@!/&IE=ü96  /%$0,#( 7B5'A.6.:'XH-C5"$T )-=223û5(5Db>(&6"-+4RD8!R *J#&-# A:0)4JQ.+0)SW8 =MWK&E@/5A8(,9KI8qY)I0  37B<;.C8r1;[<)$pÙ Üœx14%52'*Q%%A1`*/(:AQK:2 )GC-.(1-,c,0#+!ç+9,,)E2 )/.!6/##2XN¹Š+%S>&;,I.A=3'D0K)=. XbA69 *):=%"]0MD$036 >!'-(=2.?Oe!D0.=1n-'P/?78L%C*@'GP)B3Gþ<B$,-;;;=>&?. +2)CG-0:%3JF(39C2 ,6 G%L5C2:04+,"A-.&L>E9J@&G*ú+ê/)Q*(&O(%%Q ¸0D"H*823(=)FA*(:I4 4\:7I1GUE/0 9"14#*%2,*Z7<u$(0 +8=<&+*U,H ::*9:K-:35)"1 :*1J? +/?D%> 734D8 SC77;ca¹'³›{F€iò†>&$;'6FB."K"H<Ri°9•1O<29A111111149!,#E?! :I3#DI"(2B."=/:F;9G<F+%?Y>&/8,NK+0#"12>/"3$J'3 ñ4#C5=B; æ0*,;\)8/?f #0D!;E,!;?33,gnN1$#B0JBDÿ*Rõ*,#%! (2/N5&éU..Ro9M.iD3+Z#3/9öA&GF4C%E<T<V.<XA>@,ý*9W02;5M?M%Bn  8$5'-C50+#3>8#<E51;KM?8A)W4F/*M_19A7&:)0?V,1Ub[MA"%J.-3A SS2'/+$,7#3.0'S/E"O9*29.24AA#2-1+9'&U@;%9-$3ñ™_±Ô_ID00[-BZA +12&)7+-0+I9D965"]1,1"ü4P1(0>GKP2U-72G A>_$:7= :/HA?_.+?(&57(L( .0G+-))#?/r`gI&1$+6IA<a#K*2;M8@0((4$>044A&%%#=-;ýSüP  O79OL-(<>E<6bTjƒJRTA]AC}m:7C!.U('6>B&P)/"<b$2%F#-=!)R-PxiàÕI4A'o/IGFA>;,.$LW6=m.$jV?'4* *& 2[#1/1U/+-7R-D*EG" "!:34"%OmRzbIDQ1>7><I!2G'ñ/U(3-;*ó+2+R;""GQ6qj!B$.GNn)*!=?<_AUJk=o?XBDS8H7<&4IP-.;5D6P6 GW72'J:8RMC/?0/?P+Q @óñ3HE#G?C)\X 14Q"+/bV$7))+EEx"&D +29'? - 4/>^2/7Dg<:W;A6,AIP1(:8%$*ÿ2o;q§œ\<'J3BBDOD2$(V&75(;&D?%@J!Mbn+)#C%//5*Y4##B`+?7F-F% $ ;2"=17<3?L.E06H D;'9+%I20)><<*'7+$=&ò> U?I2+%XCIUw‡¸ÙKf,ê‘a[TS67/<,& */.8"@LJIÀxaoNO,XA-þ1111111T?TEFGb(0J(3>U;G5P*;7,4%C7?`.+?B#5 -!õ:=/($;7$'((=56 8('I!!2>+( -2' &0' &2,,)H$'FM#'P=%".D.++)ó/*T\k3(A$ $=:-AK;260 5F3$H7 ?Bé6OKUHp>$*L1B/F,-&S*<"FM') !8/Gú1A7;LGX3-U9n˜@+%2#CTtVú%>5&;<A-697!.'P3:I"0#3-G@(03"/0hDX=0F%+.3.D1:56<,1Z7M );&'@OC/6;@GJ1&@(!9 TBb))9"g^(@J1]3(D<4LH-?m~ˆõ r "z´z#57A+PH (<"4$$8U84('9"  *5F @øU2LD,3G?YH*ÿE='0;D 81=+6;$3)749+T.I9$G#;;.##)+kÝ#wMJ K%9!NO# + '.i#J`L=-÷?If>(1A=.B:104*B&2ýDJ4.76+A+2A!4G)MZŠÆÇj/HaNibNSmI(>2C@Q##G#=Y7(!L3PEA/T$*E‹«§aQ3%DQ!B:Iç@17P049i#(*%5„€4^ 4F-**-(?-:#9-?QD3(4*>;KB*: AG?7<A.)‚z,QK@H@8PW:ÿ+2`F-M6=74+3Jƒ-=Q1T!>13V‘U3I)A%cd0C0-üKHdDtKvF('-D,4S!Q5:X5.*8088@ ![8e<,@7"9ûX<,7(30G>#+<#I)<J+ F%Eú+(6%E./#<43>H49#.01FRC 8'C-8(F\$N <$ +:z3W:%J7ib85'(T2/1Y/^VA8 ! >m5XPO5] &-FE+2(!3ù-B5F48#"6#7)$Q. GA%Z*9%:"S@V@$6%$W7)*!5(:5$S/U)*1L5"#-(:1/,4V( =Y96&7:K<4Q.-C/AZJi˜~Ê« × 0Îdeh/"KV'<4.+"I%;Yèk%U05>(8ø111111137>AB &Q+5%: 46+%-LJ(8T,3S5-1I,PB:ü.&)2R=cZ9&;,MO/2%!4Iý,3$3 +R-H),960/9(%#A #2$/97:B'?%'5E(FA0E;E)-9%'!@Cú5=' THÿ#AXR7+ D,F$79PV=^XEB2  2?>;)1337ý-2þ P5 B#FXW'A:7lРv> ;SXNS @?)B8!Q8.UAPO,/!("I! +7C2;C&?=#@O$'(/":N:3#;-TF@>1E7X1 0kRY>ILK;CN";1>(H2-&þ6./  +$.<($ ';2*4-K¸{j $_ ¯ â€Y`[YA-#>S#h'GR!&#E&%F3=2T4?% +2@^J&E@A-Cý/K:#ò' ."<ø,5=<@;@71C&1bL.G&4,)&3;^T<IE /P:f'£0“NX!a:8(C‚O)ý'#C0 8N9C:]$HG+\D"<EX@þJ-+!8*A8(8B4'.9/Í2ØB7S"A*T<iSDN *,,,|L+<E09c=[A/>8L,1 B:J08[g-= 'k0!7%W4D'9&94;K$(N9/ESaVO1J;%5:*B0 #.:>þ&G+E@3(5H-U3"*5O5-")5,+V;@/XP8 9E;K6.$[6GSAú8QC<.3S%(%iABHE1î*A]mqq„nW<&+P1X: @?AT:100%975^€f+L[,8#'31&8S5 0+0)SBI1,/IG95*1C/X98."3+8#$05;4J&//+8)G(B#*5Q%'ñ& '55,-8?%'(P5::.Q> $3$@1!V)34G2)$),V=+--,46"0>El.-.]E:025A9+N!!4#O*O9C*/#%;B["0F05E2Oú  2B4:E)-^K.eV %))(#1L,J0NFCM(I\3tCZw­P,‘ ¢ +XYö¡_b%"*=#,8S5 L_‰E]"`>CY11111113?78"!+,B9))ù/O#3÷ 72#9754<=8!*JJ4,8)-ZB/X+LE56#& +5+6ç +**;;1 +Q%" ú!M/&D=-8.!0&TG!7:#/ ]%'].DIID MN>8;6)1HM`E9F>?F;#>%P85D4C5üH-4 L'Q,#ü%#/21!RPæ9OJý@5@-&_:;,'AVa–FRZ9*73E0ü:&ACIC?'5A95!P'930K5EF,M11BJ' =$:.6)L"aò@1*3,H)P?úPLA5ZA:3C(T :"F=%>lLN-6K6ME=94VI:%WD!1 TŠ<€ +¬ e +ÆÈ²yþ nX**#-9+L ):*D"54ü+,3:&@D/92&@Mý$o".)5$:"31(H& 9$+)5=A/%TA771@Q/((f9N=+N$1=?9C2aK‚Õ…\@J,D+9Ka4+;/9+1;DUF!N0E.!MåAII: ,9OT)5L +..%-0>:3.>%>'<_À/ìq?O477%6-"@2*%0L')(71%?81Z06#8Y*0Z?F1:K>G0E5'&;L<=+,1',:DM% +^-)H$*"+0%A%G'%( óE"!I4D/8"!?/1L 3 .81[3OT+48TH'KO4*T7=' 93:9:"/G9G917FO&,E@\X19#B>tp€|ž}–‹‚^Sj@_^8-Cfkcd2E@ `6Z3&/*G(A*~^ >R)>E#7%98=?  G4!Y0GI,.C.E-'377"6!-"6C0 !û E8;Z,LBF $72:H6">7J6)DJ@$ ?fA,9(D?P>#T*>=R+%$&(" ?C%,+1;+Gô+-I,+G %4Jv)3N5/!(N5K^"F(,EL$(M17E>4)10ð94&C@*)Ax'):"IQNGG17="8578RBFEM/W8F{…-½”è·Q¼>Í\J<M?=%/4A#):9J96JgT„N-3e65:+1111111`c%QTT&KO,X5@2%6:=9F6;AH0 +(<CJU%@0,?!7$/16gK D4>1%B<#.//#',Q6,0I=78(.VA+68,<$D7@1#BEC/MD)&-2*776'<TV<,'- =  10, ;,87),SR6'þZ"(C='&S>C,# +E#'"3O8/J(/(1D"J8-4Oe@U.4/;$47#=B>! M5!D(6.@Y L9)'C +2-+)0B&Q4B[*->U?2< +A''I=)F*7S6;B$#V A<=44>=7,!,$"4 G%Y'5)AK>>'7TWH,Qn0ð üÎØƒ/—;>Ñ=QÿV1'P!.I6A*V+<6$TN5L?+ 8Q,PG+J 3ÿ1I.D@K_0*XC3]BPT6.+' V3-5%6N'.(,# AD"&{{M:1:4^JIXM79AC<kG@S6**NM>P*B:++$H,8Mü@:3((5&,*)'87K5@D'^:\:+;0":(X :•Ì¡i8MQ*P#/Q6FG9VF@H=$;ø-K<!QA6)1B4)V..E=K(+F6 :35G! ("VG6ý;:5$LF,<>F9)=''(=&+B'#'* L1@LB",.KH3&M5A*0(' #Võ7QMa-)8)>08(7-C=>;]1>*:>44 +@>38;8D4D.%$#SjT„‰{¡®’Ë©¬Á™lU8KE>Au§NUY:C5 =M(,='8.44/2û&12HQT/%3><753<<(h=4HQ-+,##*."!5A76 EAB=.DúF(D:%8)Cÿ+<1A-!; &QD45!e&?W7+>;61LQYaQK,+"!-.5D1-:MI)#;D@G67&/'&F)#"+E>(=-%#,B;/H0='G?147K 5$;5#J #H"#2.>'û/'I$/0E?"0@T %G %-X2ð:DB]è^bŒÐc(¾t -iÐXj??3M@@5#@*R "I)EG`P/,4,?D+11111113!]e867?'%!@?TB/ Q1859S900*7 N%$'*bþ3)X3B9÷=ú*8**.AD.1#%!<6&T:D=G%2.+ "9@;3M/51!(VA#*0H375E0D7Q6B,?'A1<?)D9C+94A$*O247S16J!J;-Q+5=D#<7? ")"N#91)@$/þ%L%D33UAP,"&sOj.&;4g70J!B).:6KF;$ ,+3* f-11DD7\F2>_ E&M$ 0<#D>?2L8+3% /4',7%>2q/TB98d?>F@RGE&)<#2OU5()T'1*9N\GoMQ:A4(//bxÌŠ5ÛRhXaл«+S?<8 (((FI<#4<0D**+- /; +D(NR,3:>5K9  .a;B70;E*_L9j(:'0J;297B&7 EJB/*LJWsu’M;->`4<L>=%-0dyZMM?,G$H=W2ü).E@9I/$>@HL2C#?#*;*E9,0SL646h9J)KW#ù-OFMQB:_bZE(486 %H2:., I"7L$17+.1!2$!S6C.DM.7>6;<7APô7;=M;3`F2<E)N89,!2F',253#2@C6D)9%&+ 91..+4& /7>E8 !A.V4>+\%7& B I<:,>2 P \1+:0-9=P:(1 .$+S=QJdo}„½è4S$ñ¦‹@)SZ1;t +Âêø™J6@I-3U<L<72E5"G-64# 668 122aG,ÿ;47ME8F,",=1,#8%Dp/R3?:" ü7KA",  4L9.!-36;?ü +8=^ H=+:L5F9K?U*# UPJC#A<„,U +*2/##@R!3H$7V*RNE"/5Z0=^,9?".#.Dö% +;64()õ!B@2.KCY?D %&C+-27 3S,M: 5+$WD <-Lj7@G.3.6l6EH-gFˆÎÓ†vbÆEÄ|dbJ-Y(C2  H>ÿ W#/O*-V29 +?!B1111111 2.)'0(Q:8;53,üEÿ360A>F +S+4äï/=(&DOKME"=);UH</98>:ø?9 X!-+"D  %$%91( &G(#@)O<4 J,>,MHC9'>5<+@/üN0*ñ#<V";&70.@J/)0^_+',*=95$K+RT,*/$A>//583/ MIE3' +@;(E:A.iE)$(CA2*/4/K=5 @A;$(;,@[7/&M3A)!0M )R6 7 +7-#..T8.6Z%I@KD<$H'o564%_(YQO8BF:]=84,8<(':+G66#5/(3865=>?(,,1#2‰Íˆ¯aÊVLY@K]nJOWa1!7$(Q"71.10J'D>.@<03QH$:9B6FA&=b7Sd=-H?0(867*M9& ">8A720C+0+HN4O9/1ER]b/5MH$<"6U<.1"<VU9:$F6,MG!,& %"T"8;KA7<&C#C  /&C/<!:"C!%%,*(: 'PRf/[3::A:$%+,K*I'"&8R.A02"Kkib"C.Q;4-2A4=U"X4Q-FH,9,B 2J?; +B(1/)!:L0.D4TV÷ ,)_/87Aÿ%* M2Kd!)&%a%9î5%G:ú%.-"" G18A9?:RD +/-.I`_,#MD"BG(+*V+!>9*2G<'STIŒkÒ)݈*ƒè¯w\@THåóïkQW)[cA >>Lÿ1#2@I-=G5P3 Q.:0E2!#(C#M32CAdr(-û +."4J'8*9P,1)öD)?%#@1R +@0JU2%R#$F15!4)A91> 18TP]-A(/,?3<[!5NW902L$4+9H?H-6.?E=D<4)=L A<*$,),#(5[DI5)6  K88S-C_D"\*>34*<Y# 6810û5ES@&E=@D+;BJ6VA8F|4oN§7ï,á|ø¸¬[OCEEZ+$G :X<==E:7<5+B"Q4-1111111M@B*WB+6+IDK*02 7+R-76,&,D/A6@)O%:03+ +?FEL<þ3 %1+<;.+ /Pý=2@#P0GW:?W&'"'#$5!&227N:6 .ý . 1-3 "LEB$.;qø  & 92 ,:%V;J 4//1DA6*0X((E4!3IG9/8%/-(Sý0@).< B;N,;rGB7*0W.PO5+@/-LLBS&3R#>7 #< -(d& 3=J0"@&P!E O'&.$c05?9?3C15.A:3* 7!&:,=/)%0!F07;%8L >,796`^ŠºxP?D@D!+B5(.'!E8@h,(973"V*L +Y,%? !=0ICG=ˆ›(g@÷O9E&.469^P!D/$!'>&3-?>N;1&C@*!3L6,!>'õ<X#>)KD:==CGHZ/&J45CF +F2Y-C6C5:6*S*;-E@öB,AD1X!#L,E24+ :K4 2#H+åh%+3/FAd5-;'+D +%N02($*D("5"62H$4SN =/')] >6?/DBJH'/P//#)84?+- .;<7I0C "I L/4W9YF6.'R2D!TI3;;:)D0!$ +,/(/+%+."&$&5*' /'. +%+4%T  2$:n 9F!MDF7=8S7¤IDMJøF@!07%&]=3A,F+B?.06$B&M&8# +Fsj¶ì,… Ù  +Äôwȃo+FKP’òNO\^KGJ%=C.''7>&B1 #Q1O"3B1(9&0$+ ,/G<7.+<5ItH#O)<>?D 71 +7,EðHOI8*4M.&,L11I/&)-)2:\0)D3B3NN%* .L#PS2N77Q(!?JOzDF+!4]3N& -;>)>|H"2P3(VC;>-U2B)7HA=0&;;'N6G9ET *,C7?@, 36=I71(5$( (@-1P3+,6-a%A0?3,Z$5/.,I7O\5Dm><IóNÈ“KׂdeZBM "6'6+QF,$);)DHAc5D#5C>670'9(f1111111 -2-NIU6H=(8>+8A-,.'$>)28)83 D<@ P= 91,BQ S3#!?T$%,7"'.+'+61N’j4<1/2ø*DW5M7:1"20)'?;)5'B$26&<N.H2<76M-6%/N251NFFR<>@GL0#K-',0  +ê<'@4G\%#DH!C13ýBY %+=²‚!J( +6&+d3J?*,:&9 C-4-*@33-1!4'J/#*9&*HA7)#>A'AY@B*P/N&8#,S1"O$F0E8E*,+7-07$+%+,B<8Q3R/I]¯<•u5;%#eE545?CC$9-*+f<&-/'1$.(w;8GQvxî ÕNH4"7F;0"Cÿ.PZ'8#? 3!s<;%X5(&.-94IKE>"5B(2 ';CB>W!F&@7G+ +;:&I 4+9P;J6@7?$6'J-@\@÷*30Q1;ø+2$%(F2A$F /(FAñ3V]BF1A9OAK@mK 8:&Q-<ZHD!50d3>D-%4+98,,#43R06QDZ?1D;"XC&//'44?1q=@HO@89:28-Bd+6N$ HFX:#:T;,>F@=,!6(3õ2,(- *7øG+ë!GKF$N6/($SP6CU2d0N,C* . KAZVWq‹g=3'76:=eAWCXA2<-><%7E)E!>'>;$4(#;mh»ó† Ê ïy Ó +•_Yä¶pO>v]df{t@rhg ›{pV2'%),*. >#*/7;QH-=`C,H8T'<C@1W@ô?2"'& DA1.86;1E%-#.Q:'0-  3E9"?/Ko6N/8B&,<2EGF4+&F5):3;-?>!R :-3:5FB2$:D%'P5$,3$C*5-#7)(=-:?$%3.'5#?(%. MA']/Y0M88>;#1(3I@&7<@1 >5#5 *+/XGO$HC#D3>0*HT-T³ñ5>ø¹š\RUE90/AC +JJ*++7#7<*!ø%T 5&*6B1G"D511111118RG4!1 ?4ÿ"OI%%1"9R%46G,B/=4<C;+= 0 7=2'.)(5;6+R$148=Ew5&5GL 1@$% Wohn3 2<L1B=ï@6IJ 8/#*(B%Ev|l(,3(Ha:M @6*Q!:P"%D6/*$3''FC2G./*3>!4;4/ZKQ?F+%>9+A)A. 'A,VS,+brB2]6s B!&!6?IN6L4L(+A@+@10 G?5>4_"$#8B5()HWP_ExQ@D8/&h2+Fh$"\8:4SL80F6=47841e<"P-49His†)½›€d@@Y<=56VU#,R=gJ('>Q"B &tQ<'865=8S'.©­¾§^S*:,I/N7B."ýF@/;/>00K02 :/4^&374>6R((?@P;=2;-W*ßYR,336C3#8(01% A7((<FNE.0E)9O%7N>X=R3:*C5g78:FCQ!+KA47?+Y78%;E1 (PE,+>)D^ +/*,B7I73C.#6Y91!C/K;( DE:?PD%Y<J6G_cC#4\4$$7KM#(1 I +Z8.F8#'[>V=+".&796'#NF<R/%HF:P7()9)AA"])$"!%.9%7Lk H=4H)I?8*.>20A2@6)<6?‰uŸ–©ÂºžhAF'N70R$,)D8J6E3%N`%,<12-?;1;x–Ìs‡  M Ë  ¸¿B£«_bP>/54X`vPwÁD?¨xZC)\3#%>7;J9*7G I("!D_v=99ú6<& E2*,0/;A'N0$1/-E 7 <017:<%01DQ2G"1+:'NkxFF/P9607<?*H h#%N4<0O<0"2;<FU8G3.O,%&*T1;0E4 -7!&/#&*F;ý,2A3/Ae0Q) I?S&H9OB&?L(D&A013$0=0*/NMI,/1( +)E:M\A06 H$ +!=L3K†¼ÇygXXRF-I9+$F9G6,Q"G)&EJ8'-?A"'/$3ùJ1111111H<Q# >p5K#"5-/8B*9#%AM$'H!;B3#V?5*;+ *+:DN +',0*P -# },?GFf: 2/DAB.,  )4@G$((B7Ho„N&*5($H?=AG&-  %8.<& +$2 +_(T]/=B>/"D)N46F&0J(&<3B9-."?> +$?<HF/VE8+(;^C,$ïZ#@&>(NH>A8)@B>8;,/,! >.,>Tc](53<5GSC:BAH@K85&::(KT-5"û!;G/0:C(/9û!"8E6Ga9¦¨çœDJcMGG/÷!7A,J>1G1$]<h;:#032!-3$6?Bh\hB3CYZ?"4,95]8<FI+()2L%'V0&'@).<,N\X9/0G),TlCc"G1CH21( )?&&W51H&, 7'AI 890&(2*)FB!=+,3C0; )1Y;%B8F0+5y+^$!!;13<1@7IO0BDö7??6B<3B9SN=871H724  $!L9(9P7Y9@fpy6gBG3,!"%TRA7[&]X,!H':2M'_;% :9e<X/TGNPAS?P *1&8>UR$R!/5.W'7J!6?8H(,8V\.+A/(F.5//HA)+G3 E,W%,2(-;: =[WÖõ ÉÓ¾”/+7(M&4'U729 237=FA):</*'QWiMf¾a>¦ ; Ç +Ø&Iìsieƒ]?9HjQ+){WÎ¥ª†21D3='995H)> W,."$PF1'1,‘±F-%;>:1+>Z&L5)J6XSø5-0&J3J L'5-<%6&AD5)%>S2qc|q-%B<KY:=!< d3W2E01A^,CE>E û=1&;AB,55. BL&-&/2;!20;K*:A'A:)</A131(/+@F(81Pû,:-H"%Aê:$E.E'_ ?+ú804 + )F2,PGP*== R?yOž­ežL B]Le*>RFF&$"/E>9@AYU50$C3D2"26j01111111"5<9&`A*(\5B;Y( ;@8@06P9G?+ &%/'5'82 ")  5(.:('T9+ ?(T;)/152%6;<-8:V;2:$%;ï7G@7 .'$3-41),@|W\W /6\.'&JF(<."8"G$7"><>A.6'%"/IGOHQ$SI&OüP8-WEM3@ +95?;D0ùNboB%&/<97>,#],/<4SF6.J'Ce%4&PSB@D<G//GH1',FEB*:=,%3K <1^* 2@=hX6EE?_13= ;?>+)0>>K9#PD8F7%V-l‚š’&a^rJ>9eV@2#D:'F8B54P[;EB#C4/)1:<=0=÷D;fqWZ;L3/7:0#G=0J!H)BE.P0<A'*%*L2:5f<;M# )$D>W4#;FUH:+P1M0 *DVFCP'_?O$F4=-1bDW_AB1+N"=0U53C9BHE\(HQ,_h+_+R3?'G,K D@;FK%L"B3'7JJ"4!)< N6L60d3-3<@d`d—ŸÚ·™sb'='@"7I:S,D-)U"1dBR5!+1 S "8Q;!3/VH$(-þ <1V#2"`@=2+F1,7D7#>99W+;$MABG B2<4)+O O''.CL3"1861O"B#%B7&O†ª M< ßÝf+ +AL7;a$.d:9,3.@)L52&*BD&-(7~K|ÂÔ›öp·eÜZýŽzzaoeMP?)D[/}¿h9,49)% /#"I$M0@<LB)5))$f©ƒOFWQK8C&4 E(<H1ç5=..#@&$#L!:" H% *1::2Kk7; BQ"il?|7E+!a4>N9!7&*aL9H%*(@N6*: C@).2$[83!K/2$>-P&"FPA-#.j<B+4/,L>)/43A.C454,044 +7G8'"#3-&R==4)*;0(C%#FO&%?j/ &7H[F:5iWFLfaNlRI`O6B'BY.5+17H.9I-+(*-'.A2"'60 G??1111111=[$$SO?-DD9( +0,,1'"/K!V-=236ù+C; *)L)%  ^" 1?2=.1A:*/'* 7C B%1@W4L&+##+&8/J 7B% i!-9%YE38' 0:M1X)ë*/C.!+B0G7E)9+ !&)E4U. %9-<4/C: F030"<A;UgLV=04= 9p?;0$2 :),W*( . >)D0.'+9*1%#00+;=%)DC5@"5Ac OC9%G.¢SüaI23þ/0@7H?5<(0C!YcR (S.#*52?Ip'8kSkTS5,4SsV<C_7?B#+e7:OO9('5U÷B&eH1)$<%; 24<A&,?5!< (#.;(1=J8$;% &1C'8==%1M(2=ý$ :0.ü +ÿ-*=CJNC70 B45+39E=?++=O)XP,F6-F8&S19/ZQEB<87]=1R"I/B2SL3C7( #22Z$3H/>P<86-5%5.78E6\J 9*,,@üO#/BE6Qfª9¨ˆ£øÉ˜F8LFGE6$;_7N&5<%:"2[@. .FO:þ,\G=?H"35.O&) $$(58J6-169,H*ÿ,%)>@9-,%25;V 0X%E*$G"7=!E2*?A0_ß\ÊÓn‚‘s13%&;H0BC/,',`.5%G$CUJ)M@@=K*™w°Û4!ÈÇžl¬±h-6B7'b˜j•pu+ 7." M@CB#"V7t'5c1CVDJl˜Ë[O *E'%9?$473.&73HI4.,%@;8.1 ) *56T#H3I.42:S7K'-<‹\8N ?1&,"0(<@J*Xe,) /#ô?Tú'(!û+5<)/,;&! 80(R?98#34ô+4&)E.;0<F 6E 0: +4(F)L3):777#,-;ð&1B.GN4$$!( +/?%+& 538?/aF-n{=egKdKF<WM23*a28H7H;H#8K4FQ-<O D*:&F!"G-)1111111D>"-3F7Q64û?%<9?2 4D./13E +'5GEELF20 = '%6)L)+5.ýX#% !ABG5<!0-A"C4  þ?;3-28!P-")8JS*6!W=(+X3û0 $05 $>"@$B!0@==-)öHY9"8:"6EV.#-(4Fe;U[2):@&eŸ[vT(EE,/2&<&#F4$A6>D/!ö&;29I1=_L> D>C4R2*4 E3 CF‚ÿ@'T7F3+.E?6%Fï59C"#(ÿ;#/+601 ";!H&;<EI 0=7QEEJ+,ab[N6.P),M<ZC-7/ L3,+i7'&Q %O5E0$V4;!%;8 B;,)Gv2Q6<#1P:"3*$%%2B3&$65,&%%A&O/19A'C1j*@3A-øD'%E%F?R5>/.CF66/" LDÿU*EA #7>S6K&63=W\(K468'&50V-9VI"3%B-&E,-!CT&.d346"^/90'9+"D"6AC5GV31;&?%)0 GB_/K!*J50]6-O6B4€öýºÄÕjó{d>L<>G-<Vô)9=TI0L)7*D0%3+0a0)J:(QA5GR8)(>*#3† $L: 49@&&)!/21Z444.8'(E9X='9GJý"3#4+'78 #-.'+$Z‘ßê—|g$KS,3/4:),$$?-@&$)A6W8)#MEX:D€›¼ÁœªÝ—e`VÍðônOTU 2(=iJhQFt+"%=8 300 >F> %4)D9( "U–]U04 4 ,% E7"D?=3A X-21&&%,A'9,7,393 +$41^H&`0COC*BX/H9$6X>B'9C=UH)'1 +B1#$7 +/B ,9;C+ +c%/I/@H+,%$'4! +P)/,$.H '9Z4.82:?".6Ha:>H,E-(4(E=(_><.4@ A*>þ1/0 4Q5."'8.fŒ|<x;20-3(DA%:BQI!(!2A$>$A22)3-2BH<:#T?O +811111119))6/%Z=59& DE=2'.ï>F(Z B5ú(/,;592EJ!ÿ0)"D& +, +)1D79)0ô%B%:üHL;C`$8%*6(8%.11$B*JD1OK@@#5/K +%"7%&I; 3 -:L1*^/:K)A5! <%N:7f= 'I5J%6*9#B"DM…4µ[=n&*/#9%F>77ACAr4H L (9$92#YF56E;=;F4'O:,2;EQE;B%J'$MVB)5K81K.0Y4;[G9326.SJ/><306@E<4I0*#\ZV,OHDC=Ie`aA!#H/EA+LH#"-@<),?A*A9153<1*"52>56)-5M]0.E!=,&/R/?>.'*4"A'+,.!#%2><0a1Q12B""0! 6121IF34$#-Jý+/3A=,-ó#66&7V:1$+>=8%\,;7(W@&7F-2@-;4.-9+(;SD/L$VLXE l)=7AIT92 ]?W(*8/3PI+(4)F>/6 +}úà-VLõ/ŸÆ^^:2)<%.10+KFWZ64KC)$G"4-! )5,;-@5=B%&;O)8?C87=HGW# ;J;Y$"*&97L7.I&D0 >8#6:m/6P<7G,>)*FB?.=;,8%9kXywT2H>&F7D)K<,+=ü@M8:H>F2**þ-8$IETX7~yx‹cƒz`gGZ xD‚)BAKB7þ@788"-@3CHR$*A@'33:'&2B3=;FkvI&G="9!9;>8<,MCNc "!$C&,3)1B(,4%#<$D4%,B()J!ô9A);?W6% +4(;<*(aû#@:-/<- 6--A<ø+?'F]1*3'11+53]*! 8!13%8:+-+Z:H3/64-.71(%1,$E&2 <MX+B7 @%7/?6!1>+->!O?!'^ *G79/S:<LvZ81^-<+2'/WB44-I4+CA+/ .0>/BP>7,D&8?%;1111111,:2&&;@)/:0.652 ,3e@ >2 71 6 )?.&7$)N^1)43hK;2)4'0 {,T? (EF'C,V$#@=#%J7<)Z=4r5>;++$?@0û7-(1#E4%<2")"7?-#04?!5+/#DP0DJ $.nB)+EKP3$R74K.-C¬>T©oT;731&@ ,M=X7K1I*?5',5,1:5,;4*("/C$<882<CF).A'582+TLB@0(:3- C=?QID0"ED,E]#Qh%O:6=FTF#>>CW0R=.&-/4.J25J +>,6G-*>=5>;&LB$d3"UG@  %H+4_0G >6 2?+# ],4>3:#Y?.H 2CN==6P;1)01( 1<?4 (0J2T<2AI)L/X0<>/-=)>/!,6P&&H*J954C;/3X!%B%+3F09'0f7 5PH.87 ++$K-0%3(Y)( Y,B:B.54 +2;rˆ-6,EE*-3J/I-C+E)7RDå¬=µüó‹@$.9k[PGI2$VKC6 3&/8]I..e9 2;V/G!?1CHQP LD-#VLA>R"33;/1:7)4"N/^B7O#9 $D',2X?+B=5"5!83 1)(@"8-A.?ZhŠS:F@H4SHñ +96!6148%-?)&$>*ì$]G5FGM9mpPJ‰pk-P-YTL +(?'<9F(@3?D?4+65 D,+<>+/ 0RB@>8&3 <=>7  .I3#H),K&HG!:.42 þ:IH=3/&%86,U0!=*G@<KF\C6ü5A>KE"6@6 A1@&5;9'11C,&/2%I67/94;_"5(Eü$"?G4 %2L (PFGV$65%4*6B!I3; .E15 3- * O8)?0&$8")*,'/=3<>0"õ'5A:8=-EW0D9M3]QPD1//M"O?%I4=(G---1+*>DH2(9HTi"@D0/# Q)1111111*K(-B90/0-61B+(2KC`ú*LF!)1(^%(%%5"-5D9P(:&5FD..(I?)6+(8I3&E11 &&:#5[%98@Q#?!*-),T$4+;%' 89.<S+--/ AL6?E50;X6/2/1H^3C&(6?!=)/$3H59KfmÌÏ®c]4/#F@'<KA37@_<UG(1,#/$5#[JBüJ; fC"P-7#0*B8-8@,2"8èF$)D28OR"#(@2!31 4;!-%9I4#\86E4 4)@"ö&,#8%:?_@A=%) 09'oA%8 ó999LL-#VD=>+)9B5"@39 +%!50*:HG1"6 .%EQ&a/)D7DODA/!7&S-3>4E!(>* 221?$*7-60:/3B>;832?,8%[<'(4==& 1%_8)>*P4 > Oû@8-B>I947h"Q2-9$ +8C@4:  !)78I!<9L%G+[ƒ½Z,K2+F+NQ#-g0,F=IR$- 9~Ô…\Wí.*ˆ_:1QLF#4#6F:.-4);&A&5@ +9$,S8+6B*A,CY/-$F>++#4C.l7?1C6%3ýSÿ%@*QYBU'*44&Y; *>*/M,B!þ#*V;L, 1!C!60'895%%:(+0$5(1&I;!-KU9@ I'÷F+.46( M ^$0Xl`5Z7E#EJ7D8`+E<5@7O6.5/;9:879387U;%" ?/MS"S90%?03PGAP&&G9,C& +?;*8>7+&AIb1BB,/#T$+M%J9@C/ó45/[PB='  ;!/6.eJ9U>9::?9)%8>9?47A>6313K.$>)%71ÿ1>4Z,"Z! *CV:Cò-U6WNaø'÷C+$' +95 D0 N,)O@S1 5K--8 &A7.!(r-3S*C.93é$!=-%=.*P[6;E5Xd584L"8)d-_C"";=) ="B1132E"8S111111147Q06ÿ@($5GGAC64,5[#A? -Sþ6Aû)X=$44$J:$95<)P+5U1.GY?(1W98;Q7 :-K1<:B2 F2P:)JZ-;D,7)%E&1);**#ü>1"+3"86!25D+9Iþ-OI d4P 44D>V33F++8/X5%N<L#O‡”?H'IahP:1z2IúDRFBF‹4 @'1$@:56!h6%Y.J$1;.Q8K/b"7 :'833ÿC%[$6,?0j ^C1J-&P./PRTK4+yTB8<ú="Am*:kNC4*Nü[A.@L"ED%&%Z720V(3Do$(?C71!:).4=>E N2@.<>4)C!4/8L.M4)G2L!L4C=H9#<%&3)M1=!)D$G(+r3."#><'HY5C3@5,@5:*J6.R9+&$B D-A/ù#/"-AMôY,4*3 V&&( !,A,(I7T2@ G+(:'RJ +2 --27BY';/%8:O8-n?a*#49'+,<89=5'E/6  ).) GO‹þ•6ÚËà6€UA=P]>': AE )4:7EE +M-= +.F2R6R8/$43=I:-l$A9>MXe,5/322;G/B9B.B#2(;3(':.&L=* %T9QfJ=2G1:C&)2*MG:-3#&+V$M?RWN7+b'J&,+[(7+3;B'+2 %.5K/AH96K‘/-958U6 <,p 1&./;@8L., 68:5E31SX*9,C6D ,,.=/'09E1ø'*.‚J/(Nû(=E +,0J;!?6,65-73O:S;72C+P'_71S7/FUM24)7B9'%H1<:$,$A2DPeD/5&7<#->W/H<.E7N(/AFV3þ'8.<%%@44< FC"/30'[9^E23#C8'07#+O9D,(-7/C + 4,)1- .B L*NB=$b8(:63ùùRL6;1 AXjW"9I(0!":24 2*4=:;+$R/1111111E@4[6@( 2)W&A1JgA F<+.2L9;&'/@*:+5V79;$@4!*E,+MJ:.((08!65ü8:*Q586Z-W1'NWVG-3A#ý:-57,*4=O,"<ó$)L,%^0C&(:!0I%%<% BZ/9-X;5A34+N=900B=FBKE75\9²¢eH-AB[E%2C/P.59;#+4 H(.4*0b5F(5P;C +0)E= '4323\Q?,G,oY1J,593.2!;5443&*@<U1>H"A8EQF6$?38:@< 1#)?i468Aù_(@4$|#L(02CF 6A!3"5M*-`,U 77$Q$%OIP:G JKA3X&0-0927;(&DB;E40$L5$NIBÿ9CI#C& 1,)@& ""#.?b1@1OP5: =E!E-.A+<4TY(<L:CN89b7ÿ9ü&C;=C'/*<89#>-H? (2K>4-$J,÷'#(*B,WüB"/& N8ó"@749ZK/,2C3(6-*5/!`JKB3X<.D^†/>ö­‰}†=#?H$8&57 DR =6#3/ +5#b@%6&):^'-6"A0Q51+,#*8] /EQ4&N/)+;,$'\?éJ0M W6 /84-% >[R:OY8+#(Q/eG9;9<2.)7LA 5?<O:/.,a8@"E/J6O((8>d@0<&28<(O1<5U3Qhg:+N6$9G83<2Z:>.F>R))15/"-,D<'*> "3) ,;*8::8E04#6\:@M4 D:5 67@31A4)J+1^/c/&',<$<Q%3"2G 4L$%/>D -24M9F0/;!50#D21F+?$AO3<á0E,'H9KT,9KK(3# *,:,@C%:, -/6ÿ +3'M+1B%?;* <9:KD5d/ %>N48;6!:9NION9)MM=*+00 +M;r1' F0)%9<>31-P(,ZA>8Zw™·C‚'"G ++6 =6"CFGG8LGa<1111111c,0 0$<ù0" >@GQF$<"@4." +% &5: +03JJ#*5.G3*$"@>9!BBb2'/)$:C2'( !+ #.6+F;4$ü41/9  $-3;-#@4FR8@;90þ-I1)49>%=:!;á(2' +Q-&&0+;I" 1)2<U0A 84=26G8OÄÇT\'<3B&<2AB(J0;<>#@,=2ý0F3?7!0$<^(D.^#>)A.#@&C-@$3M1:'K/A+JP%-.+1j48160-EA :3:%;!:&$ö/32@F< .]8.619L 3$L@-(A;: +X$ZU'4.,-)(1*HG"F>!9 F9)5+(@=Jû>( 087:FK [.Vü)(ý60-C$,AB(M( +(HG4B=H>C-û'44=>;'+-2HAD@B:#1G" 1.7'EC'4  (A‹{6>EI÷W%9S* +2C! . 9#*60Q*=$†Q7$1#)//(&"6#J-I:?5A-)L?%<8D>$9/D!->Q,iFSIF4\LCQSF<†õL}9 Ê…:M3*I65@Y/??+5>J)%)$#*00;?'@1>jBEA-ÿ\#9;.9H+D0G::#/XC?!@:(?K&URHOA ZI4'\@#D1õD3R[@8p@>$&/NIFJ$$$1O"3X&I@9G!JHD/:L-ñ("$>P (4&!#;*</T#XJTF`+N653'6BW]R++0D11.)6Z!$=O,G5+1C,I,J8*/06L:û.õ IþK!<*//*9@8%26%5KE)AQ">?",9A($÷(7nyb%/0%,997,4<$6F+,46?(:%2++K2?9-IEN5H2CH>-!3<)2O ))H #=*C+ E8-ýH 04(51W[\X,X#M*C!-K:'H;"&-i'@6NLAOG9>2X?''O#,3.=+6/@#A,4_8$0 4(þ><-*F#B P('V6>)a0;&86>@]æµ{7M@Q H037?P#7.;M-2=T*M1111111.-;=%>A8 (.?67"=I ')þ3,3E%<63+?U 05-Q($C!'-0P)9+&-K,<WF!J>T=$H +E' 8/ 'N!(PW8*B8%ù4\?*?:d'R/B`ë@'ò/=E1!15504 %61)U'73*!AF./J+)M&D5)BL1d©t6,=:N<6&.M:Z'7GR.4 197-/#U9!5 LML;; $H6>(0'.0.:8S8-7>62@04'c+A4@_23. /(/ARBE@ - 21!@"/B?E;C&D1"J!4'!>5/9:@,/_(*1@=19H("0J&8A!7$( +8_5$:H8 O&8S))=N@ -,3 C?#0F`)>3I6>R 9/ G+SAOE0>;+(88'&/714)*229<<h;U6ö CR$< 0Up//WC/"</-@)%I36@"G 9 -U6<.!"&1<:3;)I9F#4G85>9@@Z-Y?)@/E+G#*'0[T@J#"P0<->ˆ¼¹ŸžuCA!?FQ# 2%0&.7=G @D`8(1/8.@÷@?c<A3W;,'W>o,W'5>2#U+5 ! (a*:)1BY>':&D"1/*85*'Y&PC['8B\-0ù*,3M'ûRA +BV3O3T/40%2:(',BP…`H,W@5FN;8)48X,7I%"G+-#M?&'AN<Qp""T#-MKEI8I M8,?0E,M;  3;S$(K-(+@5 /\0-W1hFJC*$&G*0/ 321&5F!04@&"W>*@*DDBE 37DS÷b7 :L>(**%H3$(1+=]8(A5B0;0A*$F/PBRC.AE26.$M;>2/1) 1(9E@*7648v':3>Wø3(-*.(!> 69O4 !2<(" D?FN 1$!(8@C$Q1/( !%<(@>;=5>L@)=#I.+:R231!&!@_ô”ž÷]G$?#!$2H4b*,+#9þ-0;"B1111111A8G 53QF>>Q/!6?-! !>7?Y,E;M,D;=8=E,/N.*^+>*K-(:!*:3+7ñ;; *w2%%0?FGM2_T/.þú!a1,>11%.7A:?C!"/ 7D?(5$SB:<"%$M<H8KH*60@( +QD!0,a@U4;%4@yQ$6:69. +@9.CF ,6G)" S>'.#JE9 &>&*'(1?9<[gg.;b" $@<D0=7H& FO$9H2%([ )O2HH:'5$U5f>8O*#BA*2;4;.3()C+3@-"%PAB#,??#54?,G7E2Ar=SV +1&4V#K8Z$C3Z*1g' .# +TBF;*+B?H0=')3(;CPMK=ÿ/%GW9/ñIB)66J0 8&:%@"0%WG/)A-J4D=9-d&>;$SK(- <87W3+*"/)!/;:$K0L?<X? <B=%- CB2&Q&2 >3H0D)S $!M :8&O/>!0F;+4;(G#F7BL]rA<:#T(0*?&HQ|R\{TTC7Q"0!C.608 O0?A"/4L3 <<E<#+< :p"J2F0$@MI8%S%ö'"4(>7>S@BI116-(9(6&'&#&;0+E>N3(F^3KE'8-E, )FG]KB:+ ..)20,$U#3YŽ{“K9$E'7(5Pc'0?')@<@+&H?:%:57 /#0 '&+F?ON.IB%(,%%F#2a†~8?K44 .6*-R<F (,#>"<$4C$A&i +?#FC:'/ 26@$ *0.4/=-:>*<B F  ö25.F729.30-(9C"FB6_4EY4/[;4D7X'M%.!95:A,@]B>:W30$.<YKP@IN<+N62?:/'I0ZO*%B++ !$J,Ia#;=JI&87O<!+b-K1EP=1'_A;D0)63!KW/6K$D &" +:/>£>Äi±Wf?%5<-;;-)F.$271111111C?'+0T@6EI2C;D;;GB$#(&4 0%"12O$1%6=.(+$% Q+=E4*9M.>!6"@"(+(Q05,</V&7'#FR,7é:,<(X.6'LC/[51#D/ 0-0/6553R=I'S*)+ #S(:$,20*?;A2-%.N1J>%0 F@"). /DöQA38*-09L;,C.^%(@EN*Dû:"P7/,2>%mY9?L77:1BDN,!1!,X/*-E*H"&'.-BS1DRS ,-=0,Q9++ B)+AX@0:/B,&%!0,ý(] @6 !%/cZ0"(^!H+,O'733J5 +: ý< 0$-'!%3G,&G"Y7k'2/MQ2,1'ðOR@H49'/BE><F9<*b!': .TB&<FE:R6"/M1">2+)+.@)-Q-Q(')]1/%K6D8'<4.&F)4+*0=4#nr 2FA00F%@91>E!@IUZFR(21CC@0%3:(/!/<:17%-*/r:W1`6"9/S!\<>5,84P#:*!,.94Q8^/+6D>8 )<01V @$Nm0 .*;.O2'/:GY<T!6x=ú=9CQ"$S$A&!1=-?)÷3@3Y/6=K:+!Z1=AK)64/`;'5NR*>7OU.*.B9*WGqÎ â¶NMB,+/:N/+=))346"'2æQ9 20:/ZFZ%EOO&7JWJ<?8WkM,$N""C–òˆX>%6[U/?3 :(,FPUAb'4"1a:U$1;)9=#V<08ID0L'.S')33*2-N#< +C?ñ7 4J?:IA<X,V [;J9' #O$[,KI7]A;cG>=$5'':%8aC$;`'=i6DTA>H8E.!"V#A7" ;/H,(>DL!<:6Y?2%ú@H%#<,659? :(# +%('ýH0/Q75*,FP!++ÿ)@`@(066 W8+FR[V5&F95& <G>À<º5G. +>GH EJSBþU1)&11111111+(*-NBaRB/û,- .+#" +A(@E+.2aB1.ø;J +"*5[F 4!2*$5;:R#J,9)!C-#'"1** %>8F>>Z"J/G"UGO)J*-$ " '-- 18(I0ø-,Cþ$E>6.8,Cf+(J'6D5:B>=a?-NR92J<&*8 +-#4$L%G)>)#;1Y0%'.5 -:93><4;/(5(8*U<ì*82U/".%79'1>6$"5*N T)-/dHL.2-"+4  #9E9"ÿ/,:;+W'I98#=ðI00*B6/?B' I1("C501õ,<)/=#c30PdR;6e!?;'G+84317W($&+)0=2J#Q'H/<P#./,G9I4ò&!6-/)"0.$2D.'4I&:1T;&,>?#8[=".c#6-/-C>&7o3(,*B@080;(4.2#6E7*FL/-=+8WG<RL.86<V T6R+&'J1 M48;A* ýI.$&5G D7-ZH3HG&BX,56#M7(/B S J==09M!M3\G]N*.#C-H@5.2T6-7G ,M* )@K2!P7P-/J* APX>3,&/9*00K;:0Aû$:9@16763.ò(-+.!*% 9 G-W.&>? AG>\+\648<3EN?H"=89&öBC=#/&4!*37-@0B*;¸’÷^;F334ò"<Hh7K T&0.l@@LID+@H</1CH>A+T$,;8N%6E‰uq7Q)L/N B*@ù0,(4NF@<j([7-4G(4=8>FG$'51=5q654E7(=0 3:3')NBL)F ?2X#&@4MD(A^>8&5HS“—{;UhS/EF=D$+*B +.$.<#-8VV+%@?=!HP1**<G0" .),3490Cý88 +(8+:'--+'3?H?9þ+ N=(+.5BK>$:!(0Bô+# .!=U Q 8(R%U!D:?."9=1/;5|w­žmMEn&MaH07)@N>@/)&9-.1111111E'-=4=F=%;1I1#K5,#8 /&+#BTa&%4 0/ñ,=;I%(!5B6?*7 :55 *5@Y,8::&3-:>7%)5,@-:';6@7 .*.3#B<!7,"5;'*&0>+AOOô7&M;4,?C9%93QO'J(1..=P+%.F0? :$-\<4+1BVGW:e%2F3+5ê9?=M#?) ,Lÿ.I'6'N8/*K/÷$5Z42T$h..3=U!5SüI. 2?*"=='+ C$@&61,*8$9F(/=?& =5+J ?^2aj7!14!*a%231!0@0)W7A&?>B3D1j*3+,MJS:3" 2*C3, +%1*'=59÷4A!+4AaS10h*0$04KPP C09\CGB,$,7XU+/879<90:41$'4) .*(8[-Z,E!(&A,6÷8 R74::LE]=Š>?(&,>!<+/==Gc!5A,/H/Q%!T>'MI,KE,&9)C E\3+(ýa*HI2,2K$B3%(6V2VG@m]54E5$1$</.V+=2Gc!& +H$[9<ñ\:"'/ 8@/"P 9$)?;"*`##313'0!2. $X<D1I:'$3Z8A856##(#33*E$(RD*,B-@66-4= !@53!E 2"9%$4#I,@?m3³f.1Í\&%4(6c%e0*(A$C97dB+C/4:d290(3V,=9+?O<.](ø5YG)T+A'cRL,8#.?0;16ÿB72  K*+;a("X7.7GHF+)@*UFrM",H%AA/8>:++GF0D>2 /%!3J.0>B-3?/+N:ø2HJ;B5<;.?0Q[¡8*}_dy 2FD10!HB2BD:E]9&@;.÷õI.<4' *1,/`3' +%1450+(>3''8*$2$!S6L(@?(1[%7>2'LI5(/.8#6+612$L:#R,AO0)*<+25!+&d=+-0[u^R_NÚƒaSAOLJL&(2-9D&8(F81111111Q/=C"6< 3B;0FQ.S2(4  %"$'D_!(@I<+ "@=7í6*3ÿF?(,F'-0;5$48"5&)0>>D;'BLT)?B(,M*BCZ%73&2!(P(!87V@8-%ð1-,U#20@8,<0$D$GQ*3 2@,&3÷!';&I(3507 +$=*V*,RE5#-1 ;41.^13>*+"5=8,&( /T3-P+4 !*00%H>f,00.$,.F:JSF%8TRd6";4286ü%E,,P?N<6A;<% %H(2! Cc%/$^F>P)%N&8% ;/<3,6<-/AG;/s530KT`1109D^;ã=% =. .13CJ>0B<H,HEM2;#+)>2J`I/&/ÿ1A8)G&>bP'0!,P8` +PC,1F[L>D</1;;E2E<H Q)/IH,O.E5%,W'(VM<3,=BM]Q;%/)D)JHE:</=3+TZ-*ø' 3& # .EV>ø J/+*" @P(0.2C355`:CFV7SAH:).1/- *)K.--347>"U7-9$C75ZB7<Oö#1,K:+5*/ +Ma##"R:B1;4":5 .B40 í,/!2 2!K:+ I46/;:?P"F=B,C93,647ø7K>6>R_1 +Å +s090=eE798,(<@%*<3fD+X3 / 5>dQ1:<(D^* +!2<;"/)D*KS%+û)Qü5:Gø< <"7 e6.&O7#9;#A</%A'÷((AjT /; :(1?M2%J8!6#J.EO4-.F1W.0.= QK B4,<7M)/B‡+õ~XIJO)D.661OB6F2HJG;B]$.D";=S7Q +-4$R% *7D28ÿ(7@*?'R (;R9;;.L7 K C8ý@&C+:#82:;C9'-'+PG"318%X9XSV:9==/O $&*&y€§ç>uûv4>-F,<#,ú A6;)1111111=6Ak"&4>*?O<f?A?Zø =0'JL//'>B"I.!+E,  `"X8XVJR8*Nc?;6X ?>C" %@@: ,.*6,( 9.)$%)&+. òN;,;''?*AVAþ:$0úþ ::FG1/F" +4(2 /ú24/Q*$5K,J!TAI @A(ÿ$.-5 AJJ6("H6M5*.7%I0F\KA:8:/>L/&? [I1H (ù<:(ÿ44L'>.!*G+D>FJ30?293/.(;VY,/);@/!4JF Dý9[8761$!)BF#'#K<<5>!ES35=þ0)j8)8-TP( "*C6$G-8#?E17' +6-E="^.FOí7?,&F<'+&@[,-C'78N1'12!+.<A:C+ +&>O@^)@.78,)1K9-6.èVB2*@4-T&$'R!X#EBJ`#,-</Bb1:22;=%8=.<'ú.=JSÿ9C)UU0-3*1<I:a.9B.@0%I*1<E80;<,0A.<D7655:4>1):1:7 -4)FUA$&7 9;6R &703%(7êH$()#.GMJ5F3LD&+<3'1"ú 0=,A[!9!302ÿ!*2< -2&)-EE"ú> ..@5J FWD.(cH:635TP*G(B^õ€Žï¢úb@%>8-/$JX/L RG 7M"#'#4<>"6YNCD5Sø76>15<<-70 I%4#5>=G.S)69;;6)::+!.R 381,/:5.G!$A=T5+%0%r8@G)R) .18&0Pd%,67:C9%'* "40798( ?N!^c/A7#>0+>W"_Eh‘½—|34DEAP3*!>.)#^( .("K/DjO!#BM23;+5>N>4ü67$3 Q!X=<3$0I2%F$$%! %>G *G.4G.LOY5F9C6 ,C(/4C((,02H506P/+T-:%S;B,":G#'.P=7=C0ŠúðçWÂC’dL:2!6)(2-FO"< 1111111/3;< C!5)H&!7#' +SVåW,-P,= +A24 +'*/ 'a).(8< +&B-U.#0FFR.;I/6×!U0KM32EH:7M=(7S!116AV -!( >'C0//ÿ/"3(L3%6%7)>5;*::"($H<"H2/2-8$I-#5R&G(7!A3-6RCd,6?7#> 35R"IFO 44FJ`H)\O*Q@0"$@;ACQ<úCE=<-`S,9)4N\DAEJ0 +2% :/8;c.I2-Q-H,J- =.L) '4C$G< 5D:=.V)+G!!88.C .:*5ÿ+3 9 +*H4F4>60?IK,5<H( ;/&&'%1<"0&'F9'1O(O/*)#/;/0HO1@A424; C+^&-,.B>3AKZ)2:@ &U,*-E<=/'4T:"'):.LI[6@ *4;;Ql#V>0f161%03"z$(8XBEN)5"2 6B+6 .))J0OIE(C(" 0AEY &7@F<)&=3B1?b8YO.#=:!D$2X-)05%452$*@#'9?!2A(@6):.2M6 -3#=hE4.W8@+D2FR'F< ":-ÿJ3'=g 23<,-0(A]I90/)9"F J&97^(9).3>6O ;66OK?BC1"O O1#'&-. 7:II H3-="[(LZ†hRJ€òFC,/0+72;'D6L:%C1D4+2+?.2(MUVUB}z.&95);-6:(  +e3O-C/Jq”[+5D')#07*C.F  $K;,,$E/;8)"#,5?313.8-,7>$þ+* F(!#!0XC7&9%0O/ &#)%#'E'0',1D*[>0 6--!UFIWOZ:;d)Z-b72@M3#5-;Y)7>/'$$"+&=8:A63%(.B$.4(A33 3)1? +E +8ù4rd'3G:N&18ý &,,493G<!O*5&-D73+-%=FVE)FI==0,E@A4--0"U>dPs:TgP%-'%R|ãs5¯×ضxC!*89Uc8<A0+H]1111111K*$9N,P.5FLDA87X0;4!79 +1+/:!(A5 +'U%R +P< I)-K0=K>(=&&B=8G>"4,6:I+-10:0A168!/?0)ð!*ED3= > L)$=1#JHH. %-<"2"' )DG)W!7)'*R(N<&</"# 45+1A("5A 8/R0HE$-<B  ? -L*\(KLON,-.9J4K,^5(2@l)-%87'AU)**7C*HD9 +;B(!)'E%%OC7#J [?Z*#1:7Y) 7F=+*2G SS(H20#ÿ@;3h;" -/@@8 +" 4M*SA?<$@ú!_'/='/%D*"X'"%585K*=[L;8C;KL0M=$ +8-HT"X(0+^%D2'Q$:%n@1M #)í5UJ+#>*9-A3-G +'58F  >WF%`0*K9+8GEO<47)"3:>68)7)+b0h+-;6N!/C+H1R ++3#3&D;Z#8 /<&Y/÷B ,ç:."T5Sh5[(R%DTXV<. 2(i!4/L,U)*8A= c//-Q0!!9?,.67=DF,9G?:,9a:+:3)!L:F,9$4+(K%-GS ;'9#,3G:9+%48&-4G:*4>!P4D-=,/$4ü?<)D3C +(5*.%'(0EWD4,=;'MF0Y$Bý-/^1i<0<H6Vk´,ø×s[^*H/0'J)/%+7 *mQD:1F]X¨½ßsMo(2/-A@,=U BAý5_\†È¦e.<&:)022C1 86)ð(H3D&$/%(6!#6D E8 :Ba<,8//4*%i59C +:"J/)$M &O3<A/2@%-AU:&J(*l:`XB7<>1*%8?8 G>Q@Gn:M$=<4<>?)'A$66$-*Y= øC+.A/(;ú& -%D8=L.F ($2!=GB)5=O6E=9)$A)4EN296B7>,<*%++C<'>0@ PD14 %/)A+=L= +G6!H #5O@d,I>FÃ6†Q``_L"A3&14>% 5Td)11111112?35K2=A#f"<9-úB*.T/*4:& 3:<A$-?5*- 4&.*,,;7(G-R:&E54?0*84I# ("65+:+:Q'FïM!&Y%8L7þ9&A"!4/4W0K;=1>:,%(;M"C5Q>I%-5*bE/$,%,<LL6/%!".OH74*-m3&7*)<0Z3D 5C?47!5+E,"1))X%Y8I&(`B64<!^T\-M!6 '70.=7!?&?&CCHT'(A)OD,!ô752/#4?>E>P'+<h51>",FO':H'-%5#<,#2:E4*ýMB63)1%S48/79U#C(182*63-IL<3">K')0þK2'M%;?5"9)KQfB#ô1?7*:LþE'4-$*KKOG? !%&EH5hFPQ.”C< BF*A&5AF?8>8$*71I"SE.(%i?.(!<I(6+/:>5@#?:(3d6W$<G4')33;.TF= @I.9)02A<)603/3<M 94!  >$! ?3*0Y;9E)>%*,í5+8D,T!6> +"#UEJ4=F[$?;33 +-:]9>L=0X5$X,53/)11?8 4UV><8)D #3+>3OB</*SOY  5$-5A#2%/-E5>?%-*H>E>^H 2F.<1 G*F05D/T +#1W@DA0\*K +N;KoŠ•°Uf97C3G4l-(`%7û.WRI0!+.7hŽ@ðâ!`7WE@D*##F??IKJ90EpG7H62I4>'>  DK!>(EF$641$>J6K99 %:PBGORM7;=-4<+W349:I8<(%W'3%?5Y@987#0bW)/30O(!4DWT(,IMIj.88VtR¥ajnTT-:L.+ID0 '&F)./&<!2PA2IJC2QKû,@E%"/$G"",9B**:&A'9?3%,=b5" =Z8/E!A6BJL155@$&(@*WñG(#%>7+4ÿAL]û°i:88PI%02-V7CF<?H1&K-1111111QL04F )/ CG58:7=$Lù@AN. E( C8#3 D?*""9:"I;& >9|8C$+<++"! %Q3 %@7#M`-:;P./& + /%*ù6&4÷34"491' ;A23, MB& +7?2A-!*A84;QD6  !ÿX1;=<]2 ;C3D&JG>'B)N5;44-@jNKqYQ5>%-84< BX"/Z?*4%5<8N%'2)3J#0%P04_76?."\8. :PN:$H7<8AG)-4C!'D!!7?2)-ZK6P,'VL<()297&846I=1#T[>*.;=>)@Y"ö4"":3!,5!HD'1Y,<g$H.634*9;61:CL<+;.A7"#)O=a,.+(<;.6')I4S?2LD%V)/Kj¢p;1@#;%768R%633@E.J7 "+5&H)>=MH+Ec29$4?$V0QF0UU8RA5;G+/H6[;=6=8EL3G70#+59,N#)7:<==8 +[f€PWE86.? +;8ND2ý-5M@..8L"++ ÷ö !!O;9-ý8/\Y8#5F&<'@34//#:I/#85!@*<>6Q3 +-+=Iü60M 1E6= $81I/D7>$.'A>4%5%D!/N7(-2Fc:>!+8-4+C?D<:0. 4>X-$6l*Y^i[E*5e870W7K$2!?$";@J;U*S&-'Q†Yð” $5'-B(.!C! `) %IY2:Z4C13)5;6'AD-W]47K(61" .`?$5-% +(-":*"/PA%#K)26:=57C'*,,# =#" +:J)A:1#69Q L#7E-z” u:S+P:REhC/D#,/)BrºCvi …cEQ/&'05<<P302'þ*G'#!(W9/2D'/ 7>>,_õ/é(I,A $.<)L(8:4,/5:7A&)!8B*@*a+I*]/:BDL5/->9ï$ +5%V67?/.-9 OJC-F 5(OšdC[ODJ,<5V "K882+9K11111111-`$"Ed#5H +997)4'K5(+ÿ0I7GK61L '"Y4B.E-;ngU&I.CSEXHI,X`-;,!0800"-1G):0 ?1#'-5@<þ!3(KBXR& /5":(?0M-);2C#4G";#)(";&6ü'E.83$ 1/O,9 "D1 /+*B%1)(#/C[Ü鈅,9d06#94b8; J=P<!+'< N4/8@<4Ca6(<"<E=70'GK5?/2õCG4AK8G@V:!&D<-Z4\W=9C50.[0=$"L(b25<4']26!7CV$2<! +&:D%924,, ûJP29K.><W7ÿ2P*@ !/?-?B"& +n8"+7&<)N54!,T)C5&#MFA9x]h,B*=*4D4,UK<7-=/6&I55A`=7J12W9,O]ý%/."D+!O:n/,D82J,D`fxoY%(9/) .!!';<7;!^ J/;7;K9<43&?(S4•ŒFz]36;@+,JGSEQ,)'3 : >L67=EK* ; A5K$0+/L 5 4F?b+#&K:(+-aG +8'5&;>9!6&M8.&]$4Fú3/=A51):@3,%VB-#,.6Cø,#+,W=,N8.2U6U85*%+S6<*:0;7-3,85-  S6PWG?E'@.28Z;6>+<&G!6A)Wp'Y:>8,!4;$O09‰ë滋E=.6!:-"[HG1NE%=QM4E+4.17+&V/GX3 U;PYF: 2%726G/)=$4ÿ.C#60$;#5/B%#!N%D',.$AB(/!!,3-LU6†÷©>.G+$0Dú"8aC$>/>.6"2N¦¹¦ ã +H·àgi2-J8-"M*)66&gA68 +7K*29ZkFJ+"G,>%ID'C?5R ="L0DC43G M%C=B--N-%*!?H*%.9iG6577H5 J:N:>OP- U,N=5$BD"Ezc89ZJ=E@CC) /Cf [53=1111111$1?%F1.üH6M1$*ö&IQ /3B+/^:#8K#T2;%"1 D-%0 +=7CH;=@   +#:2P61.N@"D>16*QG;"O18:7@3õ&"IO(3(8.QC-64DAþ#:+O:)-06C"99%B U)..5.'L2;?Cü*D;%154;#WQ³ûÓa4'(C=E3E8@=/'0:56; =,*"WG6D2CG:2)1*8B6L6 K0>0#$9*H/*k50K!/'ü0D4;5(&<./B'F !@6;#:1C5#O<34H&,/B&%00C7,D9A Y<*Q1<44124. ].8-E=C@$3GACHe9M 8&/F 7971F"B#F;LH,"ü)*,OPBTE?:5!P.#7C&$IK8'2/3LA !FA'JnO$*6<(H("?,3,7*C">1;D]a@6W:)C94/%T©þØæ—[K*((7=FS/M0 VY-2E9L. '$C'1$`5?1Tv—qÀ½Q8‹`)KM>3>BH:2)/&))C1-C,N0-0 B,)fKN!0,/47%.&+,*/HA16D8]3,P,;E-E3:+Q):: A;-8-' 4(7C!A36#-.*<=6=*B(!2(6Q@N+&<ýR10)DB..#'#A3 +:U:JI22A!,4)J#+F>95;+8?EKXY9IB5JCV/&187#[fSxh;u ,5,)-2;5 )>;-ûOVY5..<%O %?1-9Hú;5‘U %F4/@6/>81'.%,(0,X2--(8*%@O<<SO4!@$5/"=R6+8E0b91':& /%7/¥ +òj[1?E/üT/<(f"JXéÀÄ(> %Ö›U0/6EQ:><!8@/ù2&(4 /#:!%3W;[%8:?0).I-*)h<G&,,8?M"5;2F@!9;'@ø='C+V;)CC'28,2=.F)$U!1C6_aR VE4C.<9,8A8I1OC4k122D >*HEH695!Z1111111=N-5)`,D $N2K8.!L9 + BC&8:<B@7#N2.9 ý50$ C6E#IE6H#@4X!)&>J2!Z2! 'I8?+@');A$!.4"67<#>A';0.$#U&+2/?A)J,'H '<!*M3 +'1/5 1+06F !%/G1RB:MC):'5J C;<E$<gHJn€Ð‹=:?- 2%C`E-A1%K!< +9+!4C8N=!oóJ01;OW7<+*S øH<+#%(<DeT<845ÿM82-ZEJ+'(Cb,(;Y+$E$SY;(#12*".'Iû3IWGC; '59 H:47;Q9*B9G+(-37I R @=l%#"7";01Oü0X'$V4?# "0:38=??*&=15 /3!B0,3@-"`,)2<62307>1.,6CR:G>0RSF7?)B#*0@#.8/-=+334:I^ +A$ m.]fòÓô{sIDû22R=O%b4'EiB2<$*+;.2?(Q3C][Kfc{J èAYG$1WbccVV<þ4'.%.a3?;:YS;JLNd1'E@N+L.9%2-#8Q#->c (ô8$0,;"'/>m.m-'':7L(FZ5 )08ø/)A$CJ)4.:41P6Y#ï)%"2K#kC,7#"> +409Kp%203X%:7/%4V-5LIQ2(>0'3K?788, <NB->Dî=aHE5D,%'$AF4X)*[l/=!5$UL#C'"JN6$P!"8 935A" ð#2/P)'=TA/'7Z ?, 6'#T/ ; B>A5>I<B>A0G()!$)%+;3H8þï %;B&07</+0MG.&( U9ý3&6BI›Re/!)1c+E, !D0& 6+CQ>ùç9ˆ,$\ï¢60 K.&2'P'41:;/$$&ô+(T6ô=:>KEE.D354"NM=\3!=>'H976 . K'71T8MbX?#0>FS"5,C.=#?;"%X9KH\$?"K6CF1;=CG01.+0<(DQ'N )ZDG?1(EI7=39/?ø1<1111111D$#C4&+Z9?5>ÿE"1?24Aü//0!*L,=..4 ++0C18O G19Q(&%[JA.V#,&(@$@6B589)#+}6@#I 76C >2$08 2H(-E(&!-26/7ý&.-L5?EC3 /@B=,%8+!32B#6&OB'#FE:+^26'M7!4=&jL‡GZ) 2E2>Y1i(;-/&0ö!:B#)>252">G=R$,'2ý+ 24"%'"K)?^8<:S85#61 =7-97M+HJ.,"1T ÿ-'DJSJ?E&026ô4''1$#(.#82bBM]'4OM%:<&<0180?8402.?$F0JO'Z) .>,ø7G@-86/8F:26:>PAKX$#.3;32L/)G+2"=U+&()<Q?=3'R:+/)B9J/(,a1G9%;+U 1(-/;-*ïù='01=' $* A&='&R-F9tVkyC`?0 +3<+I8AG## 5GPP8'7Y*LA)+43L:(@51=S/-d:#6Qf†+1PbU?ND+aA=V1$&-(922 1QBGH9MA%PAI4$#E,>7,+/061%D/RE )")9WD=+7:.+A5O >@J0ø265O D?CB+ :S&1 0H#7"4-6*0m=#9I/7:-@^M9%4A4$?,9/5#=0;& &NP1@<:F7\.9@WF/1%C)Iù=6&.S6H18DI;d :JGG' +V#'C < +:1OS4%!4H-0-=.D&\LB3:3A*"2% >:i?#3(4ýB>`04:2)&G;>D1'BiNüD'&#=9P ;$A.F3'34(>:D5-.@E%"+#(5(+?# >+>6$DJSÖåW<…ÑvŠa21FD<Qm-'1.@H==I:/!$% /+D#Q:@ >2#D%($3";0&28».1G@úd672&@>:gE(XBO5>0,;6%4B43)P*3+76 CvaN?<.%;F0=BB( 2?#/O:+');>28Iþ+!7=÷J. ;DS+1111111*#/$K(b),=GQ(01F4@!%F7':2! ++!:G*?*CT@N;6U<N('+&3417 #=&*A+O"Sö9 % +7=#0&P F%%T8(OM/:5*.02@ 2" I&.-[:=H:Z,6>21B3 <)MA3+?#>/?-8;!6='4V +##?.67CùH@>I8J`=0/==%1%;'(A)+7;.D:FQ*)/+7 ?*0,G*=3$1-=!45*?L$,?42%$ÿFE).+=O.FEN74.GO/O6@1!E8:9@7/3:% @d<%5A/8H8;2*,A9.S1K9+E4:"ë5JI#(6 97.Y/.C/K*'+26,4T!8*126,6C6>4;)E<9-?&Y(='; #E@+50AHM);ADUJ2;pY>_%+9(F!+=i-gBü()Oú$4,=2#6 *$4T),9!6.-262 G/6C-7(0\(3$+`a3%*>V,A=$)DF]M128>1CL$40. ô*C/(0=GR7þ.2ùI2:[9;+57Z B.AB(þC3#3P#"/ FMV.,6@DA/''OCCI.*+8>Q40Q6I1/@3<%3 >I>E;Y0<#/2*" 644 MA'63,aE)I:2-T=.)*  ?;B-5BþK)41A@;4*@%49<6D,31D;@ \96.. .+,KHx*4$2,5!+#$!@];e0Q;>3E.H &#+?# 8#"O*W <56ÿ/848$)4,@7[ö>9 +*6B5I9H6.R&8..9öïE,1+8&6;.8OR*,'ú/:H(3>@,C! #e?/d1;/<:@tq*\žœ£;LETA(V0>)QB!CD=81:?-@ +)?C#ú:%E<:+0aK*%G7ü!&@$6-!7&=8L?@AcM'0J<<% @3CH8?&O;6?GFXEŠ×n)4'R3KH7RC:  #E9AL3CB,%]„#<C59"4.. E251111111,/ +0>*?AFJ  B$ :J`&25'I?,Ii"H(5>*7?:'%2 '=:/24,=Sÿ%# 7J-BG <AD!19'U&6T,/X(A%)3,B9939"0.>.$89[) (&';&$.0.* 3+/97Iø920K@I/33\7&7$6õ+AN22!#!;9-*:-$IS:'>S,L1!&1KD-F2RE0#.."7E E]%5.,FS 9%.;1= A0;<2@C?? N$,%A9v E,39G$a +N'B&. "#,;63@C8;D6#1!#=G-/3(D>!*$8#,HH9/-F3H +J!$F@-GHF)R#>2KF*5?;%3E2A+&'FG530*86NdIQ#R:6''$5NYW 8$TX$*>þ/SXF&?)E$'# M*:9=+OD#-41-:1"S9?3*3f5$*$61A$&+A3`&.1:,9T801%SSBù#F!VCIXECN1A&)BOD($ .1X9&2>+-6!*)H/EX L#2/>63 )JM=+)2-1"2 ;8,- %A +P5A(6@+IG'?98VF$.E)(7@+ +Z; F4î'\I3K*.ú6$<M9þ&W.@U141<J5G@:Y,VD"41$, #L?,1&_H) D=E'+*'/4%SE\b/7L# +)+89/&J9"IP(EW+'IH7.'Q7$86)JDMt±‰F? 5'#7((+5CA0ì-A4J-7/G7/.#'A"+)ñ!B!,':]7;0+A6R%%!#PRn52Pb,*2'E)%1=DKg,9T*9\-@<1  %*b,$9U "K*c-ó:F88(pN\£ÛßçƒbV=DG7 '3 3"4/ L#P;/ G.ZF3+/)0#%;.-!<3E((#%F0IO&ù4O(30S#.5=</(!J!3D1!5'C52'" V%\-D#a<6'>A½5?'X,P?CJT6402+?)=aJBG.F(sz-5*79-7H+D4*G1111111$>4#?8Y,.# :/ &-;hbT)$+/c6C""")=F; )+@*!!+98T3E& &!,0.P;9B/U(F//;CQ)6+;)-+-<!.Fî 1#."_E%6(D#<Z8[18'.LKK<< f,"G>5 1#).B-R1@%"ï7z<46G)7>*=ô><);&8I,+$O(*$=R'4%<2)7,P(=A9<.$&LNA. M@1P5?>'6?+U11QOJ3@7$A54+O2H0 /"Z#&'L9p+AH@%H7!_8=>&5!* &$ =C?)&\3G R9>9=D F$U58Wü</3C2;'D-'>&-') +';2=U%.p/4";Z@B&;l(,K(#_13"]$ ,B-A.BAH2>&)/#J;";<7@C:$<<4 35)5:G:G*5V?-5M5I"00+ é%B1@+1&’W##CL0> <N-C7)1AD41K\* +"D[ (*94AQ!Gf5>"7'!HIK7>/4J-KJ5 5S, $/HI>E$8Q'b%6)()C8.11*!)R'K*!/"F)7L0@B!@96 +S.2C>=8I(KTf*'BN&+617@5D?>M50 >QL0@<>5(8=+<8A+'#D/N5-E4&Q9N+.1='8'=þ,ì]:*>DG)8+88Nv0, =)&L6:""$>+8/I(=.-K/=66XB04< /NKY©Qv¸xBT&T'G9D;-ý\FC>4<&+!!&$-"'`8 , ò8 (C^"îKF:)/((J6Y-7 U!KNBa1†&A4I&*(4; +(25BQ;RYAJ11 #A21./:;9F-1<HB#*-<( 3 +&*&B]`;8`Ÿ9y@e'P1.# 0-R$(MJ)9H8-.%;7.9Kÿ?>,7"/:)&"@&5*1:û<>(#[*ü(.4=5CEMB3E'U8-%2)' *?Pq%&;?%4Tð»i.AmKV-@? &!P/. 0Q8?.=p-[LPC:> JQ188D)'11111118`#9955@HI '.();þ8DkY%Mp5<N:$-aD@23? 07'2A)0430,':9H-;)<0U'8-N,+5895&.% +2<=#<$0U!,?44#4L7=69'<.+#.+-) CR%.H +%"1.,J922L*YK5$/BAû'A3)562Fý0(9C1O)."!CcS@#a926*5b<=9'4E-=16$Q2$."/:"# +$7ÿ6K/GJM+1115-4F0@ 8-%A-J_<" 32>(7=F03PP2%%X#K06%G810g1^ú328ð0&WA!5D.A+8899:N-:UE D9?T%þL!A911A!/+ /<+H8''6GcKW')5$?_ISD"!CN+?!/õAC-,4PC&)V5FI,,EE0?C)'4'HJ*%(F.A<F7@5H5);CK.)SA 0I3iG-8+:a&*b+2O-U'51*D+."%@ 8:,o6AE60026(GC"=,:DHa1;B$A3"'J+`#EA&7s0&,%,?.M^C $&VU QD/53-I84=27*' +?77U /:V,D-C6:G3OC$8@R -53#/L665L6575!S8<K_aQ=%$a;HüK"D%5,5&, *4j$? =4@*=)7&>0.R(2P +2.2?*<))1BH3h2:2T YD/#+HB.4==7WWF.;(?N"5ARg9.tP|5ù:6J@BHK586>!@/90\ 9D%))%$756/0 KO2$<"08÷$E!@./?-!NJ#"> *2-*6/%;C$@+W9JBX:G0*TH0IL*E(k<"3$&$<<U9X+?BO4?CE?N28*C)<(K9 ;9K&SMD)H Y"; c''1þ9 -1#,<9,4&&C.?17ÿA5+(-ÿIR( :C> ;2% 3LJ?/1;-G +IF5(…GÜ–DJ*9JP?0+,)7ó8-/^A*2?9%825"FA,'3/4N0$5*11111111?%a.,8(K)3 DC%]G(g" >L'(' &7UH@ $- AI97>"@ ,"2 )7< $?(ÿ +3C/22 B1&9ÿ 5$;B,÷1,.('*":[/[-,$ö ý/Y#,f:?OP&6'=0)øMPJ6@34\NB,0) +9;,, 40.2 +D.Q?5;C%B!$87*.B>%%P AK# /+:0<+$WH.e24W-I @+736E)7\P$51;\+EG0Y=L +++@38#*HB;)L(98=8D*2M;*S(@Y#@@#";0/%L(`!(G "B@/G8<6 32@ï6ûQ,>M&) <"FM,BGJ):$6=T$X(<:)216/WH+.+2E,@=*!6 "M  *2E,<?N1D"-/;%BRY ,>4  !S>D(:,AO*2=W;33=0= ?Y)G&D&.D?Q#L_%>)E1)%_5>"=:E5?&/#6N6R8@84'õ0.7$"!_'--K@6!L?+& 89;[0+>!!8</;-#6XBP_?Q:,A"=(-3-'6'3RA6"D(]'%3#,M0J$=+&(%?6KD!ANF=2?,1-4]owF_'Z7/4*-0F=".N'B/<ILI3$&6#, +6?06);C(LCLK..1F2-0g7A9<=P7@D69'A&CL"2",1   +P=#8I/18==~L0?F|~lRL:43$4>n&$6' #%@9&&'S%,2J/&1#8::373D5ßJ:[4+ .&%=C>:",&GM'3 H:#4:93$S$(=. 3DH(2òW/-MF(\&!P:J'1->!]2+(=" P$>5C!JDE/*$J >4A*2GHJ(>.5bH03>0J#2EB(:7?!"P ,E&'M+< J.8:+F$.>.>,25?&!.S6(J4P5IEr`Ìž{PlTC7'.;V?C1<19;%%$B&(M9EL6"3!<23,L?E1111111-64B!C,'5"$%N>/J/S4`+GQ<'4D/9-?B\"#:1$8ü6ü;0 %W& >%X*,,û47)0!,?J79!%'0?/1CG[>6K :1 +þ(#þ5)'") 1/S-)I$þ."='6b;1)CS=G1%>@:G.;#(4501 96@&4N#1CQ-CF>P00#'0B!=:"B'G9(;a":`%5:2;O K:(C("B5A W@ AW$;CBJ<3<'øRY:7þ1..>U-G1#0&>;*1$8;S)3F-7).D(2856B3',69BoJ ),'3%8:<-.4Y4 +F>+7;?G 'L#?]Z-24Q/?Bý#'-(J5M7û& =!,DI>)<ZK *; 51 ;C( 0'*,"BSI(8 ý?(j8N336HD0&7>G*"4H5ùO.;B'(XA3@ P7F/,%- :? 8:E(K8@'(I-"BA V)%^OH?*J=ýC?O'1I6Mü:$/S 4BA7,9).^7 8!OZ; :!S.N=+4-0-.59 %_R",4?1:9A'+"'8<C==/5  E-;$PG7/JE- 9#,,>:m«Ã‡FNF;2KB^F²Çµb^C+INA!A5W$;:OC%999=;-'<N-,*&B,/I'1M<N 8 +;:w@;^R-I/)G*/A_5'77H:P$&.D!0PJ93O3e'C,2G-;H\7whZPTwB=<N$RG6!"N$O05'i,_ ÿ*N&6<%&= 4R,:$1*KF>[&?@$??D(.;./- (:`2*$%*û1HWÿ.;4ME%(=^;3ûE">@\L&'“#A77"&E,ALT,37=3?V?K-WC^0C38'!*ED-(3<4G"6]'2X>(%?*/5*!+F0-)%.%d7$2:9<% +.JO—=N4I&èF4>EU\6D”ŽP|~^0,&P 4=24V2 $AG5?$M$1.=C(274082"1111111I3$!9)"AZKE)$"òG(-+O 3?)F#[V:*> +K40"9R +<+06%-",÷@(5þ,8* 1? 997 M+Cý";<4@F33@M':KE:E-"$'#þ'?3+W )A"#-&8=,/?"2#?'H^BH#.0ñ,%#33 H"/@W==Dú:%'79LK!3L:ûCL2F62:L3),-)D+12(B4&(! IFþ:) +Ac `25#G>?;68*;.#`Z)3NA- +]7K3,1E%UF")=3$Fù%5@%10/A:E"/*539T7*5P,J1u25W#" $#;2HJ>="D NE.*=9;L22:K>48&((K4.0K4>8'35 E<G1<ÿf*D9><-02 )H+$b" %(= 7$3 2#'(.8 *1J5 +8)>-9 >)6!<_&Ka&/.'"I $3.*59-''B#I)U8D U2"7 %/ "5Lù6é78>/D#9*)& !>3BD4[9WA3I'7 ZH!/*003>1@F$4&KPD-4C$ *-!CM0;$5N*/G1E8!7@(2C"FG(+(YE":$E/=CL/HE62'BC>'.n]ÁØlEJa]&AiT²jG¯iU7b'-7>J%O>+ 32TH 29 50Qh+"&07>% > 6@@ B%X8MH2&+ù137K0%#55<,FBQG"@+:4P*004F\! -ø8WD>;@;=FI,QF-:,18,8: =09R:!3ü>=76B2 =*#7T#%@4@(;%,>* I3,OS+,&4?"*ZN4/ .1>](OWN45FG$5/!42*Ia÷HE%:'£S'.QO,(8314>"*Ds$,:, GH163G#&"72=;B72DNMa$ +3A']F@? ,-NJ5N9'"P1!O<(;5?N, rg= +'&ñ" %434q|‰•§Ð¡ÜП`{SA73]DUK?C1(%/Kë3H3F8*/I3!!1111111UA4.b2@#58E[ó8")'0LB(4'/** 7)@F%(6 +2)8 !&Jc6+37-1'3-%/RI8M,8ZE"F÷/>'K6@0-t##ñP..D8,*&)$--)D13 C J8 F:,),R"ý& 9*A%AN168>"A)/ N "NG0AT84;0Q. 61-JaF(#.XrVI!C1@3S*>2<&9=84C8&1'65DH,L%/ *V&0!/"2.,O)))3Qý/FPON)D/44=?,û:=@9%13F3 0(%T'*&-15N*7$C1O1)=(%LG'$$-F: *N.H)G#:+UH+7-518RE+)F /8+/BP"3')"40'*98"<.(%T<&71$K08!8>5'/"*8D! !914!36'5-H;h2"!J-*)L</M&@@I6,]e 47H0=.%&4D'y\]Cg4C(AD2.>?9X0†KB),!:-B,;>9<P/,6+%PBR@C62+9;-Q/%(9 ;#þ!I,&"A5OM+J2A'N/,>CD:_LB(Q9=#O#3! +<&/J>/ <P(T2$&F./EO/761J÷,fd‰Ž+^;5KLR–dÛfJ>,G*6G.612%&BI-Y&E0D<WUOQ*'(.J. +#62: U8& A1Y<6,25iDC%"@, K!.#>I1'ìñ/(E&AJ-.D* _, </&"* -1M1;A(*\.4,U?*>=]ñ-62:*4*PD-24þ9#m8'A%)D7'#;53*" ?1!+ ?) 0.)*' 52=@0E->;<*;) 8;7@3=7 9*.@<8,P73:4U9)_L>-/,8K+,H.=3%1E8L))88.022/*@1=0þQ!X#D ;9%1(89?76%*ø+6.;Kÿ#QQ"/<O.KI:Aa_C:0 M"9L$5B&F•…Ñ_wö#²oy&=(6?&$ 0FA8C4*/O:9FZ.F?E8J +)7#HC11111114,#* +$,<aE")79>A$O&6üD +8 "36;>+)',*45í.'2C,,1A +/2 +$(@F,0+- +86,@A8@&5-E '<8=  <PA25=  B&4HRJ%<&M*-9$9+C6$A. =#D'6 <)-2;On/S501$9$@Tb@JD&:$># 4N,730?V%"J7/S<^~\„`H"R >J@8'(!=L!_:]L>>"I9"5I<>AB(6%E9539<U$R5,<@09*#D*%.:BLF'I!?$6$4QZ/#5(G9B+,6!7.1X-M$>;/(<-"30:l$R&+&1) 5'1 #ùC*)??He6( &/*71`R7=!:"<;Y)K:1!&?*<U4ý#$,P +Z"7"6 5&ø!$6;& %?*!DBH3>]>NV:@O< A%+2 J6-)S%11O=8bk^(-><o 7&4?%'K.?ô"BMýZ&-<9BTEh2#J52O(/977B4=0&#D4L!+/7KGFHG?;E> D"112)7-!&;D(8A)F?\.0@5/H#SHh&6@"G/DB>%(I>B9 8!9) I+@)SMf"0Qú#6[ë*EûwFEg&K/ö*2?3 +94K-S@7G1/JUq4$/1@)@1KX '1#R(E2G",=D0nôIC$3J%4%:F(?>+.34"#5% 9C4![*>J0f+$ +J,2 <76NRk]>@<?/<QVF.Q: #75"_!<;K*0&J7T:B8,#NL@B,> =D""<+M\0%+ 7?1(-,)?34II&#"#L1 7 $8(9<-8-2Q= R33/ +<P7@4 9éM<#@C9\'\((06>'B*BF@<,Q$0(;"ô,>:)/#5&:J0"(C '+P=3Q&C"1M%*3++,I4%HBN5"":72Urk”ï¯øŒ¡ïrVM>;L\J1%?C1B8> !/1E?6DN@U9Q@41111111=3)74dA>+J<<ù%2.%*(3/ A>%$'.0L58#5% +&$(D"L=û1ì1!J9 K:@û59# % '.9H ,;T(U1/K M #A"1:*$E!045"< +5179#*2$>.3?&,8URc8E"/)A1;#L6(:A.-VT7 C#6+**60+$597X.O†dUHt03Z! 7(.6*2 ;P.1 619$73SE`=0GZ>*N#H''CE + F&$ L(F!+EDBB)&'"üm$ X0,>?4*<6-úLC-(3?Iô!B? !C%,?=*1;T@D2C9'D@0;3$6CA%!I- "B/I"4;'+AC,/7õ-Y>+7!))*1NA"F&%")D..j"17G:09:KD,/B ,K8M3*H169R(3$D4+." )3)5.,N=(,L.>H5FS:1\53)..3*:8=X4Ft3%6# -+4!:$$B@L%S+R"H.@>2<OQC=BLD*52J; /0>&75M_5F.F@Q0B3,%D4@-#>'8E# +5àSN@"B"C"E7õ;).05"TG#/;8C57(-IE"&(56UCBh+-9!?74=+0DJ6-SIÖ´Âm9b!+)#CF.0&/4:#!>,(/70ù*4A@7/:^+BL'*1!r +ý=">1(2,B/+3N!,4=1))5D)9"D3,6$C14BK;E&BF//MC1/^a@1M@"3#>$/H=;-=7P8)3O %8+#9)5/üRf$H%!'<&;0(1B-1E$0L)A?7,?,2 /61Y!0[!ç&<+? +'lö:,L/&MC<AT0"Q+K2)B9./B R@;5NlL9( +* +&"@4G5/(9L /65955 ( ),4K6=;!PT7253;'KV;;.B&+9E`[nFü4>^1#)$H&s(*ES +0G= $(F6R"RP8*A20IRU&:!O<‹m£ó^ +iÏq_2*<0+(2&E0GA6KX 529GU>!-@5H;?Z1111111?.@8\(>.346-NBCeX4&-?- 6#;/(-ýF>$6ÿ +"'08+ 'E)0RA+AB21,9)/+B" ABF0) B!2, GC'0G;5="B){Y 388+>'.õ.@2,0*1F! 9O&1%@AWB,1. $Oþ!I*:-93<B 6I:-,*&;3B&D)+=DhMz@$*3  0/LB7:.FQ9" =(Q7. BA*53A 2J6ùZ:;#,?QH=6E'.=*ÿ5RG(6R+>(,$+ï$)I+5),X92+7K*LF]24.OL-: K29Q&8&9&1<7Y@!`S8VL0/,(5+BY\?J/C^0@(++.B?X?ü16-2!)H4NLD7AJ!PGM:;J<89, H'2@OFE?.."B,/E 'E!=*'<(5%(;6/' +)(((/JR eOM &3<')&ü145yAf/B9;5åH6;>;5&7">=E#)J<;4.D<'%(ÿY <0;4i.883.L8I& +0';G8-8H:&;9L9B4Y)" I0&,6G.3 õ+GLl RTAK,[&J1;ù;2'01).:2XG+PjS-B<þ67+/ ++6IpÛÂ4 B480=-* R?/A,6'?&9#C7]>ZI(A +$)G/B0!1-B/ò3R1â>!!8_>eT  3 .;1S  4HE':8T)2G%-/Q8@/>[0h $'2G?=0+= '</6.BB"3=0+;0#G:ø&59:;; +CDF 3<S,;K%H7 $'62:@;5"#HDh'5 C<.1ÿE#"@:=9B2FH8'7%;)g.&.!;O2L ,F;F48-5''PQ'05;3O9n%02*J#2%-I#:/-!6&5=5x(-F9>@+@&[FL+J5(;#2,R,C#/-T/35E)4=%6.=9$<7OM.3V"-":HYXy€”sHª|Õ{‹>GK+!?C/)8<7b=ùD&/%'Ka9/HGW-H)81111111A(IBK:FB;11>+*90SB:R=$ <#:-J..G!K.,H/*@.$2?7=%+(</11K3 8LK$!E2 "#E4$*/,Z[" ?ü!E79 "!F5JUM@):4K'F+ø.G-*'A&#%=(2+$X21;1*+8E8^*%36*;L 5?,FV0 +1j*"@+8A":-/,&/ .E4`D  V2$.(2#6S]Vë2+*4%,H*K">ZR$L$FKÿ>';'7.14éMBE0H410 +F':IC-U!3D:K J3+1.L,CDPR\87,#*4;SuB %/46;<JF.E*9#,),L=ü'2($6+4=%#-9'4@4'1'#8GBø#XA/0 34/.>)HO?h ,@,DY9,B B13)'<G;cA895XFQ.1C4I I?"H#424-7+#K(g?#F<õE5 /1]_1(64Y5''A" +>7%3,4*$R 7 D9?_C$>Y.)15G 8A<.&%*%CS@21O'+.<+@0%+4U#5J$E-úA9-H5.96$@C&03)R0%-`/N5('R55%X'4',#' W8>Y5I3cnf}85$s!%;K(0  (7‡ ‰]5<463$)%58NAN# 5S$.#'L0U15(#5$3MH@$?.(X4>'*%BCF 7>KF#J>VMZ;$)N" -A.$0+7CF1  TGJ9GMA^W1 +7IL&K|,9;/(>9=,&&491(6.1!W-;'$"'1F/6'G;%% R%P@=(I 0=("& V>C*;NI0+#W-!@1/?: )42!?7=#Q$80%:@ .K5Wy84T5A17:B D0*)< =?5+!RT,:@<0<7)<%&1(6I":&E+5L?63-H.-1:"-(K!#,( @- +%$T,;;/I+J34(YO"<*T,2A0.ADüLL+:50k–ìE}3üˆaJJM;-$J+:"+O@*7%4&472?&>C'=/;@T+31111111_'Y>3M"#ìA HRKT>-0A4!/3'5!?0$,+(9896:&6&*!3 5ñ!2& %B9M2!G^&  $ +*ø=3&8#"0!-.'0<6/6:?-cH%'P 2,<*)AR';A37#,794 #2-@K6B368(T6‹@,IU&08KE*89EIF/J5(?.U;7N+'705úG$*4&7.&P=C$K\?D'/!!73÷ +72!K5)ý!d8G B2që;,@53'6K1&<I"LF'  )3*'- N+FC G*4!+C808E=/E9ômbTSHD.2+1"?/(@ç6%KJ(QHK#<E-/AVHG)<û9O(%2H6ALC3Dl#=b65$:/!A?2CNT&TQ+F5B1NOT99[4>%FJ30@@&0/X>2AN,-0C!"3"% '*4'?/-ÿ:0,'"+,:w7A8>DZd@=*90D +S+ N$%8&-@OB==#/%7"CU(-;4: 01'-aQ9$$K-8Y4&R2!<,4"-ME=$S-..5Ih0##G-+,--%F:$#P?]VO@BI:< >2$(2-7B'*744C86YDF1ÔC!7;+7@)SVPb£¤ZGFCBM'F>+D<ü 0K>38òe&(($8T,94.+3A2/;@(G4P'??"'Ad*#8</:17h!'Z-(H97/+I.QAE-& ?.!KE -/< V=B)F4Z +3VO.';D9NB<M(-ì;L5"([R:%S"&>8O0#P/M)"$8,/5A93*PA'#;8(W+:;2+I&-<;)3CM65%=511L-&FGns( 9KG1 JS!B%ÿ(þ0F-+&H,U(:K!8=54 40U'Q5b9>H;%3N1-<L: @((/K*MB!9'3,8=2-`O&)4&+TC:1üO)H*6<7Br$  ,RNQE_Œ}¼µaU7>?"Z<(>E*E)7O,'<I;<B7:&3-KX43$)0*g`1111111!65= 1.`=,U2E </C4J+1T/%F<$3J7H>8I5?*/*)>16--,-;B$'%3DôPÿ1B@/@,7;S*#)->% +ú$T. !([74þ122ü-94F"+$0O*ã9&@b M<(G9D)-D  +A9;C5*IN&-4DBE*TR,8W.=2/(O; ?4>þ$%9,Ra€{EG^8õQ$<!Z=2*LM57JL,@,/GPHA!)3!0;H3]CSBA 8/20'AM65"S7LF;CL5+:M1K_;:J 5<B ?L:T1)%+84-OC;9,9>@-2@%93%"CfV7:1:2@")@"B#7?V:43]&/5+@4d4(1M+ZODE*")>ô89 9$(,.S&?$D99&T)8?I(KNC/4:C291bN<8 %>21\$E<DSIJ4?64=%f4H&FTF?B! $(&3BV703+(-D)&&, :4D96$F..G*H<53<`< $/GG'#>0&>[)*6DJR,+3%T? +A50 %O?18A=1@b@F0IR,@+B.>9h95,''. P(6&H_6bNLE1<W.50.@3'J<›ÎD7 "3 O=\4keX;E9+O@H./?$2=;*2->4øD9R*2PC-0=U8'58>?E9@7G>&I÷,L/%RI.õ+;2!DNF$') 5eï65ÿ = /$;EA159P4'A,% B2&B%HF+]K!S*+-# +&1E $28/*W?L +.#((./.)3ú0& 8V;B +N7X,-P.*3#1 JC$-B) B1K2þ+3&#LQ.&%$  ( +(1/=>RRR4&&=7:O6 ú7GE0< &; :/;?;!+858I4,!)+77! ?!9%/P*+>F3*5HETP;:K1`(R#K A0 R9@115 G<?"*3;9-48:J9I0)30OA Q.A%j_`Wgkvw>^>f3>BY91"@';=C<61'@_!+8-397DXP$",1111111=0 Q!&:%@2>04><+*#0D,7:)D*H=,=!-D;cM9,'*EF*G/CG"4*]8!(ô8BB.!*ð1-@J:99 0DG  7,SRI&,R-;W@E+é((37).þ)D:o?;SB#(;5\PJ<7N$,&ÿ$+12K@þLNZZ@BMP`W§¹¼b868/LI&,D.52.47I0<P!F#7T9$#:3 ;K*`"6+&3>E@-!2W;<(*;$;2L,N)$cìC-UA3LBKEH,HC":#,,D3,CB5V)/F$/þA69GG70R-(,5UE+G1K@AK1:8-13,)-02>Q>?/NY;'G;KE1GB(227)>-?:1>òFL5!"5-Q*;16*T-]263÷\L`#6*&9&L7C6*996E-)3*$KJR.U+3/X,28C5F E' íV+T14e4>7RCA= 0',B1+='D6H5>@GBB \!>6"L!>2C-0RC<&-48 +Cc&9b<K>)i#@FX,Q<L@MQEX.F,"G6(#DBV,8[J!15*?&4'U3Gg1783WH<“OBT[H1.(a&g*1+8E:B "N "G.6/.0_%S)7 49N;RNGGZEQ, "A7=ER7>;=12(5<A-üG#%0-*5(8L(@CB#7`=G/?/3JH=.$" QF;9,)b?96û-1<2I-5C<#7',D56A;476O/R.^#- >%.17D@FC4'"1 981ü.JS{,H8#<9/?!44"'!22C9-p)75>>1 +H.)).ÿ''E$3X2MFI-@GF77:CD:/J#'/1B:,RR;84LI0.:% J'A #CF;$B,<3K"(G2244<HF:$-)M>5';<!a8DUqY8hi'ZHbPJD8::)3(B.2'G*-17;84bc3VU9><!1111111 L95-^0$G%?%$*L&>(3-)]+'E'N#!(S6:#<ÿ,[.G<9E8GP "$3*J*6/E24>)#;S2 >[8"+;%F?0K-BG#-'!>%546:()$ /*]Lc)MCFh%'?Lç8R7;1 (>cMJ#'"=+&&LN5C,?.#>4/  .d-/9-*&>w¼ÕwV7GD= W'\ =D>,]!% 'C!/QO/[;40#75*(5:'IHK QD7! +<-%)DQV T3G/:ô6-/Q^2")</6!b&#$FD)36D1##6B$'C%%)?>=,0+,7@L 4&86J-.G(-(1*5/=S9(<8A13J&V*' )33A'Q;8;&..1A0MD/C4'I;G5<O3gUAH,,V,üN8;16<7[99/NL9>$-1MQ/R/J\+a<>_.4T.W9W@"+!&5?BKH&04%W76490+X*/AC<45N.5.(04*.P6.(94D$DCO".0J3"<?!/7D*;-2'.8B*1i>'<‚D?*S<8$dD0Eý+AW1?3?AX9)7H1C6@B>-@J1 %;-ú9C T;==8<9*06L +6#??‹g&2%K %=E$I%H::]>'!,Q> "DQ:)HA'MYdP]\S>ED!'!L83C@ +>7+&$@T7F18._C$ 28?".0B-30*<./)9*(û#;#9A/=S2ü("7 +2'PU3LU+& 7!þ, / J $0÷&(%-,(.>:++64 #+I@$J-& 11W/C5(F"=eP>*ÿ$6): #J-$<<_!&02;83*%;80.'eCH]!' L9 ?B4:;)#<2-1-%%AW472Q2.M'R/C'*J-'E>6(!BGT//G1W?K631%= +- +C†)H_2@(-6(L#0AF0 +4):L>H)?1'%'<7#õ%!K4 >#4535O;0*aJ§JRB!Ms>`<E938K/#.B<e2/3!TPe7+.K@G,5B >,1111111N>%/+5$=JG%213LH>,D@%36/4-,$@N731)%L<Mo' 1%1$,#I^A42+#'CKC(5*.)õ6\\/1D* 7#*cH45C,E761T$ '0!*5ó=.13$2.>A_5G ?0Q&$E,&=66$  $5/9+:]r(Y04XP-44,;:)-RB2ECT.CEZ<OK@+?sŒW2G.4E5B/E>ú,&:FA6F.#$.5e:QW -M!de=L!:?u)H9T,7'&34I8$-'W+-$B6U+9*(84[GF@ð!'42,&YEAE5X0P&IL&&*L0C4+#- +>7>7A ?.4'1("I+,-E+0(*1"A>);P3,%B!GDøO7BNN*;*6# 32a%3 +_!;+#ë2$)Rö3**O=!.TD**>'<þ.0.72W-Y&:G'.?NC\)=TF%#%5%D;8$'2,O8WY%a;,*38òH(042("48"-"@P0/@?4$P.K'DNC5G-H,/#*#þ4:((3*UJG$7WH11%j/`D02%C*-8=*/CAD?20K4K/1F+1>G( NAJ<0>P;/2H, %-4")@(6$7Þ!<6"1=E$ 4%0H6*"0G =8&<,9<9@U1+UnR$A/3+=<!?&X#M'&4DA1) ,/+R&AF<@G"<741;;%+%SPFF 9C(*$#?$%+>x,2) "4](;4./<79_(V.EE%*6,L8-:üGZ\2E1K8IR6./CA 71$'2'1#÷/*2<>74A) 78%=.*C2J3R,D 015++3/H#E3D TP.B(8?+764J *90$"2&B7#) U  @Qó@a>YõO^@=6"(.>/*G)"+!W1H%-R47;'$:+H&T 2.$39%=<24!1"? +!C38> .04.:J42CUG.H=+I#T@>Lo-LC;91:.09ó-':8L4MHgDG4(2=DM=LCA#%1111111E,c$&3,.25+3 V*5(9#C4+ J85(2$&250=*3/?H&F+;036U5+()@ XX$696)[C+÷9.-1$&@=.1M*/"8ú&N1$%80 8 7*-$&%+F$K:A&"ú/5&05-/6S;4!#>J=895 8 (6:#5&KFZ),=2',R1,M9RbK<&K -<;&)* .";+ZE/&#G9)4+.33F)?;S=1Y436>+21"V&-<<@KL>:.(2DFR?P:*V=8"?43'=U3( ] $8,9-=HK@ÿ;$#O12/,'9\;04#-*&(B*5,/6þJ+=:9-A1561-4A.ÿ<%6'&A,1öC%6Z0>7 =$%#:)V6(7@DN9#T?<Rù/Q>R9A76<;?OBU>(>( =:">WFAe "NE><6D)>MD D6K(".&73=) 9! F*?0D05G/6Ü375IM-:b4?4J/*.!\;,34 @;K3]4`(<jp]:AEG2LB1K#X?.*7.8WCE'F"!P]ñ.H!G)=G/.-D,/D))5AD-?s>828,HI-1_L4.3B%9&=GO41l:$C%)=!&+Y$=+.+:A.9[+%51 ('6B$T42D2 !B<4"=<'j$9B@+H!(8-7A2 '&4Dö +B;O5?c=CL>-9&?$KE%</&>*E4&J '(M4-37+<LW ãF15#%%'h@!<n .$$4F01 +M(& =:$>$8) AI-;-HEA7>648#AA9%<$C OK%I59!.ÿV:8B4: $>18<!P.7M?-=:'<# *#E*?'E=9D&MA:O;&: 7AESE[[:@=AA<A,SB)*"J<!)õ[R :;,=:.&1I4 L#!<"<).V;Y\0bY`<YQJKD(5%>9A.Dã.*ü32I)G7C+<% :"J13T: ./6;9@1111111U%/B3`C@1*(/;$E%3>j-PQ*#0DO:^5b: +.Y@?;1'@66?7)%M/'`($(%6<;ùQ;)#))49,/'*;# +0#?S*39H7I @2$-M$I&=$ -# (:5)1'8<L9+8HU4B'D I9;"!d+$3;E282,$LL31C!L4+'9"MO4V &$J&/7/8O/@"I+N#,.;47QC5=?M9Q4;!FR*#&B$C('8/4:7450;0A Q&Vd)#63'`!U:.A5>Wo2!3T&E?07C<$4>8=@AJ4)-$SN8R&>& p2.3<+\:A(/;a/*/3C=E &*C!E8øVPH9.@)83'4$97/+T0+Q-55A*%%&h,Y=M JP?1E-&0/H,%07C*)4&B'>NO7;MGX2O,=46/8 1= 0=*X7D" 56>$ø!EK6!'4D+ Y0" !H<K*>@7224+B$$+I;2 "AB7&C=-#L'*#,G(4.w2+O@ L/04-<.V2$QOJ1KA&&610B,'4I9JôA;?q^+05S19E+\`"*@"O=C*& 33G)2?U/!8,F++("#4)>%D>3:?/5J'09:00 :438 )E6 ^/8600U$ JBHMF&6J<5G)59#$KO28#C64j% 2&(23.6 +VCBL[tSZ5< C[/]#^ak/?:8/U4>L%2/>2/</,P2E=H,\<ES)(F ôA$$?U/.8$;(,Q0 ++E"6þ[<.&8?BI--)E*1,j67'Ph5/, O9KVKA5/L)GM0#)ú*K/ *,"A;-"P?/4R1;G67 ,<>58"FW&<V/A +Q/T$()þ 49, &3-?1WG.6J+Z56F):5) =(:Z'7'4 +5@#2<ÿ1 : )J$?# (5"I7X+%$T8 +)E*U5$F 9B,?'<8W +û6K+;;N/J\/#N+F@%&;0%111111184V4E&?.:$*>E9C3A--*0c=+;/û>&,2ê-=?1/,-&1)$.,32-(:."&-36&8H(M(1>(,8D<4*#4ò27'D D-LgQc8I/&($$% 5 .@õ1 C&*5x\5O5TwI(9.(".2/E +1P>'M619 @9%$:H!XY&2>/G5J"0JEFD>g > ;!!-)Cc>;ü(dW<'G3H6(;; ;%N(G6y;<'/18= +JF4A,&B.L6g&A"89CJ0'/95B(8Œ~A8);>;A7%@@+Z2%3#8.6:+$8!ý;)6Q/=8+N5K /.37!. 5P:0M?8+/$&& &';^J ,E1Pó-H<I'T"7ó%"J)ú9,2#8? +(?8+1S77E+DJB')7ïES=MNB+4'41?0D4,K+8H ++\@11M8 .(:G?!  9-09/.FE:')(23>JS79J=B -;A2FV8<=JA-0;7@A" !U ?3>E+;;úDfA/C"'E0><cA0/2'.L.$fL/j*kRh/%*.A>&7Dw  +B%>5(5/73B5=! L7)EDF"B;=)[$?7  4'),(/1 ;MAMP,M(3WT-?L:9+D0I,_1F<$B(C7[6-OA=JB4OJQD<11:3= 2'3@*@(QU>4!:\8+(,'ûM/@@(#59"/+11\=93%3VLWCJ(`,9434A>SD$/5";`.M8O$A N4ð+.9%=2,-  +Jÿ:)&Z*>$$<%025<,-AV6?08Qg)9N# Ý$.^4MCó!A";+07N>,-2!) ' H4JÜL[8=4\ 64: E8F(LL:?=1=,)0:9 /*0U1'F!XB^ +õH;&F<&HD&7U<2H<?M92*4< +!?23`/:,%@/G/+<3E'.S0$H93A(%&D>H1&'E40=/,VD2/cUG593A>D5-Q=4 _. +9MRAR,?$M-HTB3:û.22ÿFì:EB/P&>00 #$("A/!*[  .=E<þ(43CJ-7,pã0q"5 L +/+.6LL_#.% +.)ö8þÿP,KBV•@^+÷!*$GLML<@G9%7*4(] g¶¶A6D/2" c@/TA/O#&%2>H,6;'F(^`99><M0:ME+4B'#M=TAH +A:G I*8%E!%þ>"09,SCLAN6PA!1JBBH?W9þ?'?7BB<:&5B('79.*Gu&5X F!7NTSL35*;/k6E&F 5/==;*Oc4 #H =Le-;:=%,M9HW&, +??'!):$8>P/=5B'=%'G/õF<Q99[:G!29WC=N"I$ N4ï'3&F<C#K>E+%AN@%/-b=3=7'"%Pµµh3G<4B18SCHT%035?!@1#E?d&;>=%>A#0D X191!<62ú8@]G(7-C0/4LeFZb<@N?/N.) 74 %$ 6DL@+F&B9,"791L,+E+,%6.eKDWKI2816 %BM@%2 ,$CA:BA0GUG/a<k?0<F!)<2&,#0;;0Q%gE7G@`+*/bPZK$$.;<A+7GU)Y>I@39"Nžif)E;85'./@:*'HkPC6#823Y7S1/ G!G6*"&!4H /9!0I5ó55B?6<EGG),8(1G I2 =+>&^2@(;GZD>C?yM$=!k5G,U8F5Q&,J1.+ :%)+R.;I*4)A&###IE%#%5*L 83N1WC8"-A 8:#"&25<"EW2DK?BP4'..EN3ˆ‘D65B8!+ +,'K#&\#.:,*F;KK22!'. 5'-C+P)C9K9M6JQ$$AF#721$2,6  `/E1Q7BC?%A@BA7/6> 9HA== *J(4Ka(? 8/B%$A80@$.==/-);8I 94=1=/-"WR33 CO.<+) +',HSAF +B766iL.k9 G[5+0C&-<.+:'#14*70-96)J,$7,*$+2U %D6%(I#40-._XW+J52')BT3:,:#E0L2/=FJ(:7H/>;01:2A=#/5:(&'?L'.3B(>=K|ZW)FD@'6!% ?(I$"/XCI,Tž…75;54,_2(L@$LC +F8D'M29üA5K> V ^!.@$,! #:%O!DRO(I1$QEE,<?;-,E.%V7#O'F3(86<ýFj–36.2>-@4U@&J8$!9%R@E0?9)707[CS6E$=O6%O9i#%6+ý8FaEo3GFi$&H5M3'J<+P.3(.?<9,+'#H942%)0& B',!#!;DF==L2, ÿ+$9 -1&O8,( !P8:;@0&4M<(CmW\l„iD*3Pý"4>]GHR'Q$9  0D87L/ *>5;&2 +I1+;(@9?3<87"5F;7 G   0,05B8DAD@1G<)I99.]6HM7þJ÷$7P4&&/[(";-*<!!-:<`54!JD5VO:FW!D)$AEL)1,.UýI&&D.&H#84+5XND` &:þU#48%.?/H*7;2-)6>&_I&H40T!Ký1E¬×Ï=F98A6.=$DR4B30EU@EM/4Y<2!'5K<H;@'T= /\J+W!(43 >X+F:7#H&031E%>:(+<+"0 );/BNH3-8%/,";1I643/.(C;-).:/!ó!;EL,<8C<#H13 4?C&þ'! ",(;*A2EP) > *=='2*Q:(*'f,9<0! =;"(,Q97ƒy9A>@1A".4)3 R**.9-1O$Q;9+'[1$"2-8';7JF$611^( @3ü%*C7(GR=3=08+64(nVSE+A %+54>L&4$!N'=DA@)-/7)}C'Bg( 4#E)9BKOVG*"S'IF=&54^n_K$\O(<5,468+D@* +O26.P<857Y"!29Y*8^++X-*.?O8+@9<%@M:D&D%:? 207L1=3G4&70H+  F&'1;m@:)VHDB:QH13'?c!57@7AK!P46 'E0O!85'6(0J544B0CBYLG*&-%B;@7%(6?5"-+*6?2[C08'NH3üG7*(/ý<36%D6YD-1/,4J?W'#V,*H @P,!80)J1 FC%J%"[16',nB:Zþ7G+00=O6!//@_//,%^E0@!'*/,,<]%PJ($D4$''7 (43N"6*WJV "; BTO.&!;Q3:349 '3$ou‡\f?Qk‚lT%8J/B<_ s /$M21N +8!'A6?=O75G+JB .C<V6>8C4-0#W"!-#>EþOW8h73:=&:*26LEcˆV&%/7'7/NEû++LRC.=<7*8FC,?68J)& V +1)B/B9=3;!6"%(.+7@)+KJ>; J 8+5E:H.Dï(!* +E O-E('^B8' ?Q5<E5!ò0;%3[*j59< 6*?0,iJ7XURHf'W_8"/A59=C0V8'ÿ@,"9$<JG)B7%'34+?=6!6G.þ:'.279û3H2;2>7A1.NmµvE-)4E3.GD,:;P¨nPOC30T;1Y:72[:&]:/[6->D!ù&69)068)D (Sù- =/J<9895//`J8&D)%/>2#7%?''L 10(5 39ô-$d4Yý7QDC 97)'4)#- +'=*,-#:EK6/6(2A0C*%((K,E"+ +=6+7õ:.+OFH7%<;2#%JL A8!%; +:n04+0E15Z04)B'5 &;; &#N%6J-W66(-.-9(X<F*J;>E<C!+0I 8ï1!+-K., +&(AC+J< :H#G1 +*3!433T3 +CP($M:(<'O?S0?& ;8",713+EI#19D29*F;%B%BR;OU,7)#07j DLh>JBGIQ455A( W5>HV98)@"+E>,cV,KY0#3#8?+q/(;:ü:7IFN4S$="329K/4Q 35>(I09/)B5'2;-6H;CC 57*5JBFû09?+"-<E/^/1 3_%$S-#.IJ"=?+0'7/H9LC,#(1'*"/W'(M72 $0M/S?K=BG? +RK(#C7)M%8K:(=WU"D 9B$N[@+21553,+,/MS98)üUE)?O; "$5:!K!;,>bK7:?M%3A4*:K2D I '8;G-Z: "3K2IRI-+QC <XD-.34G)\D;<1o¸wgQ5,:M (>0^$67B7(`*X,4#!;J7M9>-D5 *M6"=H*,+635&*%2G#.7?(4K%&88% ;3-_+5eC0F(HFdV+37+3*õ.%;I E2N$/A0%K59Il6C0,I+@1!!  +%<*(8+=F<3,(1%2#@6/9+@LA3;H+R!;7^%6:2792(< (X!$4"$;%%S_%û&üF%.:3#5G09S+FT46<V4Fb&73#)41':=&9BA* &2)1/-8#J.>L;&=P L (5DMD5*B! &2N!*C D+FGJD/7O%-L6.8$b:DW3HŒŠ,,A" 0,+ /"QAN9R"C*@C)3K '6+2,WV +385$ü]/L-ZL-.F5B0H-$=,H8,9?.A 41u(7HB @3/"T#/91ñI*÷N/4ý"2*K'C8Qö6G((#þ225g&B9"* F**EI3K'>Fô'&48ëY#&FE. Eþ<:?w2[sbFK>?E(0(Z"121( ,N'X?,U=37>5>,";/534I9@))<Cú.#&I:"BICI0=,)"67?"))858< -A2aA6Jå#8M* =;# @.4+I/>KA.76-1=ü*A6SX>6G 8L=!46A9H$1C3,-þ,F%/BC4<=,H >@E<DKS&r1(p#"*'@CU3#%:&I.N-P4FR*3+'H8A>/<*@#.3!$ $O-'2 13 +4(-0x'JN20>46<BOLE.8,8F1>-I60%0-M-=#1 7e>2'B0'"&2J "C&6#=/!L'@J66$A'2::A81H.-=-+F*A+3>3ÿ D6" B:-7û -:H=Z0ABFQ2.V0!946"=5þQ*.(;52>4?>$5A@>';H8Q0)"111:3@2>N<:M. !M(L06FI9+>'6EN3;AK)D 45J--Lf4%+ ?%74A%]'28==H07?-BQG>U=\;'L/7?I<&'#+MQ&F:?A.B C.û`'7NP -M2#U);9h":,7TAM)úI5ø"C6g537X[L:1"=BB<K'ü7.&.*/3)T*@;J<<-P5&AC;<"I:I+)JT5./ *@+ 7I3+#255<;>&$00ýNG`A;+4.#/*/#299 &6:6*57N3YPF)2@ ++=6D!AY',4>A,Yð=P2;3a;)&BK.h"6R)V@J.(2D1J,-J%='G=)*8 0EB@7ZD9,2+:+:9BQVaA*3@8-!8#>32 "96  /*#>(#M9 6î?%9\;'691M:P3[BV2IM_24*2QB;<;285õ6" )6RB.-ZE].)6A4,@=D),#1lIB10 2,0O> +-,1 '9MF<?Fu>^%(E*.,@>3,)%/=&$$9 +83#$)(+"2W>4N)$,4") 99S+ =@6'38;$0%"=43,"!8= (*)ó':3P[T/.!7 B,G36u_7 +%8#/D";J2(% #6)A0ûH-*!.N@1)J+;D  B)B$X*>!> ++99N.)?;f739'7M.?96U ")3;6,3(J+*:3Q&>/D\&,V :B(9VýCYD: %85@RF.<&545 _'A...&42#T4263AC"8>*X+N7>F'>4L:55P&'J'AI/6 ':?A&EÝ/(;W6 2/8=.'G? DF?V)HFR3…k]4/.6%2/'%R <)91HC*&Q;'(+4>G8#]X9&1 (. . ?>!3'9 +9,C>;@DMC!49"V.+A>,Ö!57374'@R;+[>-; . 3,*!O.ABB61+8;H#;'5*12/I+-DPA%F.+,D-ô%<0>.$1 D'"S,5>)9B7<<9R(=A5'A&*%4+g.+)0.7F(!"#%(/  A@3,WBDC%8AYL;TE 4 +T76:,03<$@&!'6&/2W.7>^4,=6S*'*%(;H5'03** '-QRI%4 H#FAG+, ..5P*%9.(@"< +Qr;M2@6(B.*0M', +4u".'8?F<",(19(6: "&0D9+?#?%=D+/=Yü -JGQ5M!)D.(5@/OD +05<þ5K*?$D<*QZ)&! ?H:+3-B:):a*G'%;>U5$A 15/;=++@7M:;U! 43XB9E%HF28;),TT3/+O5/_m+9?B=.I//+9/%93cDBA&04:#3H*.+7Z/T;?'>A2/G0 4-*:6%.S(7,1UR&<%N1 61+'EO<E:8%$a*2 7 >T#$U!$0!-B3CI@=$"R04* @N* @B4+U0m•iT;\\  -C)(BAK-=CC8C745@9ù6",3&,>! + $:'P$0!0Cû+)'38-$,< +S8Z*Ag#!" +à/* C' Q9$+!,#'3-ED8 42 !5'DL)Aý8H&3'7 )++!27>4=7.E!0!;ô JK/YF#=(N1)K#[/:!:Aa1/:q:3F6]f/[H>4@,,!aHY4O<7*=&6 M%@$Tú)C<'35",÷é!53<6:&=`27Q#1,7 *%D3%D@=? ;7)D#J sDY;R.E?d*'@0HH2OABK"4NB+@3L0S<B<-)'"(0)I08) +#G)b÷+@ C%,77:K%8+F<SeH3/(1#'BD/  ^(5U?T"4;M  +$/?/,+3+%B+/Q433:="!+"H'kQ5+723÷+* =/RNYKK@-6C,C.?>S6?4Y&1@" X9$1-OB"NIE:@T%.1h7. ;4,8C4&I54::2:3&:R$5&.7--*&1L".X52*3.1I=?325B"a'#0$"<7B0D=%>1<8>A-P0A14"*743QG:6$AD4Q)C-D-S'-*L?10.0K+?1Ca;=4 +;CA/=$?"+0#A L867P+>86'92è?/O =,4-IWZ4b/GMB02(86& =lTL- A-F<"O;GL6.D?:O&.8'//,;:+D8C6 +:AþQ% /K;'#+D%6=.?2H A79?%ì9O&.Xü (86FH12q6B)_%DP8%4/:.2  +$Fa8- -5,](\M%-XNX  +M5C):QF PF7V<T#4. 86S':.I67J].å9Iü(1OKL +2F2K(C17;#9?),1<#2/L=% /M62VWB)Q(/#BL),3(&*01'-4Q$P[ /;44D35(*$ M>H2)9/5%/&C. +RP 4pXSVƒ€.&?2' "(;KZ0]=>GN*$X 6!IJ-#"/5" ;R!41&7&*71+6H$:2/*27  #5J6)>]@R"*!-=e %<G0Eb8õ>3(5O?$.Y+'é-@AX(þ+BDAYP#(93+$ M(&L$A,1-":01+  ";C2PCV"?F;K7#29R081/6+%D!;F581h|X5J&#(<3>,/#(KJ11] :(B30=,)?%86ñ8<:"3.y>$"=*H%69)@&D5D; &EDHHF7#A8ZDP@J4JI9071/-/;ô5(]84P>V["SDV+RF*O‚:C,3*394A.2A+BD!5-3a-A0K 2D-O8,=2E5A<4-$B",GB; '8"($30('!6#_,)+$V$.T50*8)!0F*H4()?!C4K5. F6<)A011 D7I:88M9(*C=-3<VI<5+-@#:&M$O8<'.'ÿF`Mö54,G*)4529/)0TC@(F@aSGH p"F<HÿT4@([@!3#+!d//U38/I<?W<FN<;5)3(Z&P5<÷*4AO2 G=)fG91+7øG$?@&6'3,>'&F4/O0;<WC:K;=+6R.&2ój6*"?X2328(L@ 3Ò)!JX97A#>K4.3E>%A#5+18S>"O)@-!0MBD$sLC/8&67uGD1MH+9<&BA']'*EPN 7LF411E;ÿ36E<þO3!#9 *F"9-CPD0-%!3L.1)93GJ`FD71 0!:)H3+BG.F71;/J873D?C/A&BFE7"&0/|"eüMC)1/:,D((& ø1(!-F4I=öGE<?=93T=0&!GS1%JH4CIV ==<=/48YL>!>650. &BPA>+EW$ )I35NM'!+=ý-1 H3D)P;?N"/%+G27<h+#+U.!7K6R-#E#29PD741FIEC% 6L?)(:D5B!)*/?78GXe0=>;RLB!"/ +-$BU f;@ 6B3F$1 ) K?61ü8ø#;ZE/<&/7370I6?&++"V38// -!%2$9Gü !"C`-&, Z?-)24"AÿBóí 0BZ9-/#"'A6+@E%1045/''A8*'G/0E#.>k7>,/Q9C!)+?ý5BC&8FEE8-*Mq20=û:X:"E4  (+7jN O5ý. +2T,05B U'!+*C'+9,0!' JLïANC4#  D?# ù#E(2/& + ,+>1SA!-V(:0I[_@<C0J!F'@GcC[/@LG<1):H5!!-`9d0+3GDI<L<,þ>%CD +<.28L!/DLû'+3U:.b2!"A;';'Z06C?7a3,88ô7"Q740W&.2%48* $729A-BA!'?3;7)?74* ",0'O#"%!X ^!7Q,%)%-2 +D'=?(,.ýC,%G77$(!% 3625+2NA.M:4D"!00M.E-$=Gû583$B2(<4#&HSMQC P@5.F?,þú8M)*', +K$M.+B5Q..271ì;<G:J8,.!; 1!##/$0>0g]1C2; D#-DF1K6#-ýG#3,QDé.4084,.)@"1"AO-'(OTQJ(4D?0,+::4'>&#(O4ASo17*5GHO ;H6 5<=,2,8*ú6")*&! QDB;?õAFC-36(5#$H;!U+(170G'2479 -ö+7"-P8HKL+-";*=&,=854;N'@".,"(2#FFO)94',P5B[9V9:H.B#C&@<@ãNC;H4@>WDT*K A4A$1?8(-#HN!FCQ4-XML6&3$-Z<%?BF(^?W[2(-. +?08OW> 36QRA4?.%&<>70*K@'8?&6-8m$6 +I#YF#B42&(85D>:+"D90;5?.0J AI*5M6!'FI,8 *-!4N=#-(08&9&).: ZGK;8&18+H8P &&+',L0)%/?*!!7\C(!7)LP 6)):/R8+,D>GK#*#U&U;@<$AJ6+34G ";"/'* %-*?@A C,45F*(;-6@2P*8(>1< #>/C./#2)&)D#/# D%(/E7 +ú# 5')Va >+@D$J7 + NPH-*D)ZVf7 P0-J$CI3C.6.)8844!&ýAD'.G#2+,D000?9(<3&M1  +&LP: E4>G251D7;@@do\:B,EQIHQ10@NM8<GUR1,dt?6xs(8"F7'í:D^R 52:7').2O-V6D@=D' + +9G/P= 6E* +H[8$E.3/,$6-;$8,F ',=6,ID D%ù!)1795E--YG3>%+8>=:A5&8=I45=%2  &"5567:WF298' 3>>%A)OF& ^" B:B;$iDE 2O,?aGC5"WLC@*4!%@Z<8:A4$E/1J9TD;."I,8B2A;E <$$$!B!B(J;d)';Dû#%?,9M3;6D!, E<4>C!B#*9DF=<%#  +Jû/LBK78:?2-/`+!8aO,&)-)R--6;5G!R0#;DK!:1",8/;/ ;(('5M+573.?:<^MPP>HCL'K/"H0/H48:2,@4/8E J7W80<SY:N !+XR2ôE.> */]V%-I))*(EQA=øDE:4%*Bý"JP*./,*"/..BDFT +AT4*;OO3+8O&:.a5X6/'"KGF$MJ-9T2Q<(;935NR9)10DMP(:4#3\//*)N' 26'$7B%@L@%Z-aF6A=M5:;8+dN3P=3"BE8"-Gb::O:P09/1/!'.+<;A?6N%B,D2);+DB%$!%-7RA'"2#5%&.N&xdM( -/9$0A.I(&I&^$ø+-*JG)#>AK'&!2%.&*S7_32-)4C+7&D$-J&)9*<;$"5-K6- 4E19'.2"- +D,/M5F0EI;&:î#@* 9J: >1 +<A'U;>0' Kú)/A40 e#,3V*U?,:I1,R+ò,A7E>#86=+C#('K417W6'%& \77,$,:"3IXC0'A%?5*&)1NZD÷I94 (]OZQ(*DD,P).5G"*[ ê)2 )KC&!A@ 0ø563&B<(/ <RhO+J.7 2!&I$ü-&û"M25+(0  e7J[%53&Z@P0N.]S9NG$h3U‚J31GOP31h4M[J1<U+5G.+;9!+4G(68=F?#+G&/@P<K%-S6<-6/E7+#8"(3*;s124OG"9< +!42<#Z;=3PHD>1@'-X6.;.8?û(@3A 0 ,66P9:a1o"(J)P:7CB Gô.(7$8F=./G.5<ABU)B22-(L, +($D'"'3%INCE1"I%7,*&P9.(,($+-@6'-G/)Y4.'òK10@TD*'$Då":ë*#M#9:Z874@+;=:W4B-D9%>V88C; 32-HF94,OE;?9;FnR4C:`C:>]*:$2M:G(0&>M= 7&!-1BG1+ü<&8=$ 0&R3#13.&A&0DE;.8/þZ6B=]%6D4!%= 2A +,ÿL4!$7S7D1.'%=A%)>6([KL= dh3t: -4"I&QPH5!1*F285"+'$üL(14!13G-à3,&/)  2$ö/@]#5:M3&3.;C=/N!'9UIP8 '63C9(.99 :CF" +J7K>@1C,+-@.4C)>2!K5L@-nL +5G1R6,: 49G: *^+"0]%)G:49$<)5HE%KP11(3Q)#1>-##/k01J$Ü9>1 K8?  +P#E/-I>!::3#4,#î1)O?3%2 @>J\$&#2C1%6F@'úCFS0:B,:&08N"E5.kGB)(U3!"'13<%K=\i5-=# "=D 8:269 !+9B*(2;0P0*=;D>IUs403J)-"%,5='""2C,$.65(-)$8-%21&7  4"1ü/@6"/'+ (%(A 8/_9 !.C;5A û=5#:5Y. 5 % L8?M, C>9".9@=E-$Z)C7.Q:!(=^@,,ÿ96cR5)> <&9+&80;>RR2:  /G"#+42+9+F,@:YH%-?)5+V./' ++.I%<K$$E '&*0=;9(DLM>D#=):I+[';[]AB)-61Xü =)[KHGhFiSaOFa>FQ,lIw%(B.WMVQ27#5 5( 66+.$7U2?*/3*H\559/K, 5&1% ;,.3#)-P@ :(*)6K]&NL'?BQ!'(-+I/$+(-*5[M +"9Q10* 'CI/9"..3-7;9aRP5+W)? ,#<<3F3"(-* $D17 D*:> OeE88'&&1!@è70% &90Am!!DEX")7@FB,#3DxE5j#/E6&C55m$'&9-,SQ:D=,O@CN+9 ;=P7GG-6X+3W()0"P'+AbA &#g&";,I;*&@%E/ +:'7))+/.a 4@:+$!F+LV*4,*93 4;H'+!3!5?TNA' &3LND@"7+5D6=I<4#=%R4!2><A0?:,4=b9B:N8Q,y‚v8#@%2&88'y..88>41<015:#8;.(;024 Y 3!5 &&,47U('B%,Q=-eú2:229f3a85:+,N@V3X2-D/I7&9=54!65D;DG >?(JQ$*%&='.E3cF7 >2/SO@A1,%/@A(-!:J+W2h73I0()N>P4(/()<..C F5 ZC@-I; +*8KLN1<V*< 8.7<AV;6$"C2+Z%?*#E6_To4 +70BJ%XV&BX"(3=GD +BK!,..V(O58%OH-e1/#-R 9&,?73*)*/7&B5%W&A+7O,<'$!%R/I)ù9:J +1"'F:(:7"7"50.'77$ R2$/C;**?a-)?3E%75&"F93K:.*I +.?#,876@ú&&@2*&1_þ;L8/'2.U9Q.L+8CBC4  ,0î9B.#@>D6S38)L#3/X"8+*D'2G *  Lt:JF&?+ úA 54 <+89'B--3Q$/7E X13-INìB;748;7''3P3#kK6"/&ME,*/G6=/4DR>PCDCHjQO@9`U}uc‡GfJnWf>D„=P;'-# 4.G+D9FX0B:2; &1).1=9D18.JTNN0'HB* 'H4O1]5^7>3$'  ;(J?E*3*4E1&!6)*EAJ/3d$$U?7;0'M;,,1!$#B!YZ-*'C-2.7*BlN?1S;948'6<DCB6(973&/:;?((=1*a!8F$E^üK&A\"D#.@E+)<A%"@;4B;+(25CO3GACD2ñAý%H(-[J HJ?B!'?&PE3T5B9<'2OC/>,'R8R&"%JC2A27>5;5./>*@87:(G%(GB+&)4J5(&<:=*F(+$3H;I<ý3#3+0V6AC .9B/)/W'A5/( (#\.GQ@0*?632:R ':6'ÿ4;3%F7M4'(=HL,3+%",-)XŽ?(.Q,!//",&f49*>)3(=2'*") +F)L&*Nø4A:T7"R14(#$+P9K7H6Z9*:M)C.0'.#<?R8P +F++"4$=;&D6*V+HDL H33 -$6N9F0.U/00#+FA,4:-,4?R[:a.,;EF]?2;-#B @R;<' f)'fPN&*5#JFT58/0/>K#9@+4H=7<C2A)!53DFG3F-'J^I1a4:89+'G7 &=OZ23$GR*86\*#j;5)O0+Q; ,   E UVE39E6*32)1`,+?BL'eG :)7ø2Y2#* '@9..'$5LA(A<H%;$4C_*?/*&,!D<Q8 1(I& -[þ)4ï&9=*1  +$IXF@*/#0@J#C*C85F2*,6R0;=#<D577N @OI+ $5?!R?-6? E\(Y4A . %"O7a^+G@.P,7($."GaO?$3;þ< ?3^J.3<U$2?,)V(DD6û *O$( H 56<=C;O'[ )3<*6 &TK^V,?430$Q11÷0#CD:"5 K-]3\7>iEIO;zLYkl[>“ogJbGUhQ3Yak*9 H4S_$I5Q) @Utv†`H.$%BQ)û +-'=7RTW +H&8VP#M!EW'3+FU<J@H4(%9&!+5 ,P:+D$O?y +D,%)#@,)8I8J=;+C4;ýO,  U +.0@@dYŒ-1>B(D2>)8?„I)*J::#2(191"(J)/'J$A$H> ?)[?04F8/Lê;(#/@$2,(+(K:P"D740J@2L)>4)4*)Yñ=+E(3@"?"l!2/3öD^:=>"+8ý5&+.HVO?-+H&N+-=<&<-L%CC,÷'6$"9?*(3("0"6'"G-BWQ+1@û99;.66%7 0=159M'<#'+C0< 40'oJS-48è :$)9;L!-Y8!$?Uù7&G>7E,W/?B#" 1C EI<L0l8<l@E:.,0,59/*WPRLA2L/AG J(<>2: +=QTnþA*G.'D34a (##-0..E?M*&P23QJ@'1EIM.C!9(0ÿ.5 +G.$Dî(I$28+C/'K,.*9&@!WBE89&?T*AD#/HI;D$D@'9&c2'D:.;().FMPRL[OM $hm7û3-/FXð'!-'^0HT473UM";CF<[91+;(L&:0' +&4,(>0FG7*b3-"(&*Y<%-9Q9,F8 '2:`K52$IE@T& DNA>E+*BE4ùB*@XF4)5$.,&22.96 $.95V2G9"ô(!8: + 2YEdR!L BAWgQi7B%!-C$U7?91?A'@$9*G';'A<:"/,%B'6V @:&O )?$ù@"S'R3/U+=úHJ3=%/>2(>HA0:ML#*),:H9"/MPN$ @$$z0U+0$0F2:E:J6 ;HJ,DK3>* .'+"4/,"&=?7>"2%0ý6gH9  C0 ):9@+E<-EL5?_ <14--3-38V.5:*= ;-@51!L$8)_NHdlšcȤl>R‹‘WZƒJzV]QjzKR:8JD&(5n\,üTPip­xTO ';' " ;""21,N'D*!'7/$S7;7&'6@#Dk d7HF7'(" =;8Q'%Q(;B5#ý>)/D+$,. 7&)ü09 +1:/97f>97 +B"#3-KN'=!,$H,=0+1&#+;@J 19B$60863L*+6úe/E(!CH.'.3 @6 +;C"&76!úKETC#86+^=L0)7I=-["" +;M'5+<6'A +.'/.%=0(A?2%9;92@!>37/$ 93? #*'='$(S,7E@%4S0<ïG(5+I!K4Z1-RE> '"@8%*Ea+C=7BQ4b*+C@7(5B;VB0>7E%5"0C-4?0N4C6LA!CDõ$;WA7iM-::<(i?JUT0;$"!4-,7> JGôB+N/>6H.-.U7BQ5$.RŽd!*5:.R0,,A>C8.$A6ü.+:*6 83&TCûb1LOJ7@;L  1"N%I&" 6L%(<ZT*Q!-W99=#@49SJ,>!.=:&GJI8+4*Aa))7!3#=$)ZT8]0(^:2;76#(A5 .(1D=N)91M[(#>.1$?I"-/( +a#70:A(0 ;>.LT86<91!3M4712'*I/7M9)>7@$/) +')1'E*:B26-QF 5F$A 0%! R3/!Q7_6,-D=&4JM!8'6"8=F'8@/6H8 E$!@C?=/)7'%37=&X7:%: %n­E4"#>O/ FëF*-7<<'0$#2..HG@<@*))3 5)%,[<N<NM6@?2"=3C#&I@&,8'9/  S @bA42T D+ HB//NS,2?!2 =1 *"*0504(ZDo<0&;//*47-à~JT?F058?Gÿ /2['"'3]-J=*L/K"/*D#ÿ'L"4T2/G:D3_-[!13I2QO %/F/M=._)(?BOA?4253F} f’ï˜hrnx€‹fnbpŠ_V˜PfiX4(=2D.2,8&0RR`rm?<%@Y>; 6/üõ4>(8MD!! *RME5!7R0=O÷30K2 &<;:*=H24J&7/*?%<2)!D.2B4V =ö ?p ?6;&AW1G".j*$?:K3\5+7-P>E&A>Q$C +\(1S5 +"y?EZ `$2!D,16ÿILJ?71H9P:,040,F- ù.#3 &?(/72þA-1b-4;%_?31 1'9ôj&'&>4>()Z898`("[- 9=B7=,=O?FEH<055<K:9B,,CC.-: E0-,NJ,*'//#.R[þ7*s83W0B#!S/2?*.3/9$@.4H20/ABR/5/H.&.HAQH/.L?18"3F0? ;8RFe-O82 1R+--U;C+!F.2R25>RE1=A!%  1+"H%38%%9=c-'/:6ÿ1)1#X=NQT<'dDcN,)$7.043Lb =6"@>9$)8AB)*ACV-=Y'F?5u.) A!KO.9.<.;$="F98(Vb +>%L<H34B9=,8V<<!.FX"'F8@*%%"2BA,"DN#6D6 B17+$-A*=3ø#U+@76&BIB.<G31%F*!("7?.5=/-OW4>J@(@;**"9=2BE.#!:Z%W4&#:5F.K<D %70"OAN$?(0-D&'1!- C,-c?5.6 K"GB/ñR1(0$*H!7P@;%3#,8f@ü";+-9:9*90B#2 6 F`0e"/$>J9!I  ÿ?7&4$4G-79*<7+0EG7NF7,)@=04/"R.-$8?11'^;/>;'4?u38Q/2,&-7#AJVKI;=J3>$()9!"B#3-K.2@4(*T<?4C2.4SM=@/<%:$G"'DPL,3 +E )@7#9+UA&Pö@.@@A%F54@ .*B.:@%*' GKuQK)<ZQ:TD0%*&CAW,57=I]b^97EPB_ÂõJ\¤¡¥˜±cs’‹z[R{›‡bVxBC&T@:&1@%0/a]=\5*"/" +5,Q&*.)_ -0 .8D$;3+$O9'I"47"+/%2 8:M ù:H<*,A'6@M"!U@$>02'"6 "*$GG81BS5.72 DG273:3:D<`D 0 -%>44! &7!;1P> .96$T=:D5'I1 ?(]")!IG^6JG =6' +>-;=66ÿ:A9 $:B1DEG<744?#K +#,*4[A9(M'-40+3.1`5B501CL6ý >-(U4;1<%5,.#8&50%>&T,?0I+AD\' 6A.4 D.E3-8;$=:1B"0X71;/$-2+E?09]A+I-:X"4P_F7K13@.5=<t81=Q/,:! gBwQJõA<8H,C-,#./AT$D<,E!S%%054Q>)7.>&-3M/5":*1 ++=/F/15&5',IóÖe4%A<%‡,SGE(71C%XE--#!#'h#/9#F  ,/-%Q--K&U,. Pú?^GSB?46 A1%2%5a/G2%9N+%6M9@P!BSM"H#/HQ.9;/S/.;&.B8: B.*MA#2ZxS4058710 -3)!4ÿ1'-%D&`F8)-:!+/P%JCBM'!@J>#9B"F<#-X2!@'[$%00..12M:#31)>+$EM4 o:9/R&'R+>C-R=f-8P+ %13#39^F7g.MN0<0Dö2H>ö(%&.W81( ++"3CF9 J9>/1*+'Ú<P#:2;?dQ!$=J),1<(139H:B8% +BO&*>86TGFM@.K+)-1=)7.0"^510N!$?IE4QIN:!# ') +>6'3HBL.,7:#0 #CM<11=1$@L)6?$&#7.8 K<$OEI!5>#>8;#;*.JA'2LK`Wý0.;2!.R;,'==350/:A0;2-9K’/B-NNJý'Q><C8%"531<#/-W\9LB{R=Rcé2tÕ­g¬“ª ŽÀ–š£™žœ‰e‡pF1_5*M1J1=351/8I0)3]JE*GLK#;+>33(eQ1%7( F2U:Zg=)#\5("!=3;*D3+1O&#6;8H%-+*-+;ÿ;^- AR-'>!?7("!1N#(1E ?F,0:*!:5) KKL/I06=G6%-(.9RJ.093@ 1766A3 +:6 +V=?F$M-/<-:@#O37LOOD7 .:+G>E6 +36þJ,J0ùE7/7J1-12QQ:""Uñ :3L%-CGAR2/>;÷8A*LM<9#G" 96BPED:Y$0&'*#6NerB61!93E% 93D:$í<&$N3!ORL05Ca=#O$&*%',153E4L.&>.>E?. )-(@J}Ÿ:1"$2,#-7=a[E&e/7+;@#GP/7'(=5 D00!049f$, !B(+::(? 8"/;2%127K/,1÷/M.>bDB>15M>Y.!7,H,>8>-C\D:I*0bðC84ðf(;!^9-<<<F&ô@R@<GT! U '-)-&+69;AR6/ +O,9*c%!H5C?F"L'"#9: ;<& +%)dP-P<)%1"+*))D\vK?EPHB-5 +F-(%Tô,'G'*9@ 73D@.$ 2#2/9Q!6%E=874(>HC6O1F-&@7#-B-*)#&'5+/$!T*55N>**A<72;-+GL '<òQ$7$(*ë&1(<%?#J1)3ùZ5/4;%K!#<; ,4 NQô(: E.%ù#$7"0ú.22C+91-6/,(6EI)I"4&  %[)),E#~\:]§`HK(55D*4I0TA18;6(&(;5$P8?:+<S8/D-69%[ 0'MF G1, 0=<5439I58AEV;4)9"?@@I.71+93'71+K6EF24%1$4##+#*P2ZG+3++;8;H916 0B/0T.)28"4%L+5IPP\Z-I.!fT6:C%T27J6974N.+SN0SC>MJp¡¨Ò¢ª§×Á³Îëóª½yš§Hxz€‡PO,eM^#92-IU])O(00Z!B 5\1!XJ1#4 <$T^6=0&!@FM64M#(Q ÿ'=)@') W/;0VE>S'A$9)S;.794.*, 0 .&&; 2. +#*! +T1!!'0/ (9 E29.E6044(H&,/"1'%MQ ?8 ;#%3,3;K5.?dt:'=B@"N;OD-t&4)#5?'F9[=95R*3SF3\}Y)*"&4F8g1M6&*2!*._<A>+'&%(+00A(23; +1^O3T7 $" #A.54998HD.P*@;%.1)+1*D+K<Dgù ‘!176>V.G&7JP+:<L#60*9I'(C)b>$J,"+W(.4=FE,D.h#D!\"#;GM‰$ I20KFd46R0-C2M A9!/3+@1Q#4<-80:I9X 3B M;K;Z6'<VP93*/+%&4X05;+E<.-9) I5%*%78pQF80`U.C[(1(,6CHE-6E*<;4#3!/ü3%$/)$9.bHE*6,J664+;12B%,%%:@`')'I7+49-2WOIB()I0+a #>2>1A1B96KW(3%D&=>9EGV>VN4./I/1':?Q"*/75A-=?!8 4)36*(5>01.$Aþ"$$("!!_@9&!>B"$>@8Z$"<0-3;TIY!%]BH7GG:*2+5.-8<*9PNDGü h :NC>8GRLm- +'ñ!LT+3$'$5D(1R2#$O+[<ùD31C<H/)+(%+6'4!?+!*. ,D..('7A(E0'07"",</+ZXP*/(Q5*@qe}ˆE9<56I:aH(!='F6+F J1,*Q">*Q" N20n')2+(*=A%FW 678J9" 6S8-B/9I>%-3 +*F!/eDFSU.L @0a,þ9!$+D 1=B!'+)6H*)3# +T+Z4J<a#2G!!1;e,+2.((nI)#=K OB*R,U%Y =@6'0A1V=573K:q>61}qH†Ê³¼õï,DðúÃÜž›Ÿsve_'pTTWf‰5*MK-C;-'<5C;5'#'#O7)!`.8w90+"$>H:/EO3>,,92dA3-92*%B9H >428!@7B5>&#2R+]?+>'8(M$27C-T1H(31Q0.6-@$I?J4Q;0,C;+3,5,H*Q-5)K$.=E2+o4T!$"=óF",'@ÿ"DD,+S#$3K$645"Q2/$ 4*,?0:,%9)$7+w!<17'\)04&E(6,/+-_FR +-'@$\éô+2,=1R;M./5 % %#6C8PB4322'MPªÅ|q=B$6R;;-&!/H"F  `T6'=G4(ø&/r&%9^:3#7D+6N5'@>2KN1A:5F<;#-22E66KýãLffP@%4*B-8<ÿp<A[M[-H/3@dI62D*8þPQ*->)**,!ü(%*/?*+']OŽ’‹5@6U$9$%H#)5=X&SRD $D')>&;4#<&*03V4.# J<V(NòA !0*K +6<0H(*:,CW<L\K<B1/6)$ %@30%@4D+:M CD@&8%F$>>+<M8)*L)#(-i .LQA&/D7*H#00'46=2. ,9 "0K +MI$*&(<6@ü@$ :!?7"0?T9-)\Fû.%%(!3M4.I4(D!,;=N(3#&4J-$=3+)4A:"4S+49<60.L:4#&%;08($ND 8;;.O7;D4M?'0"% ;:0ï)N?57%-'0;C5 .,K;'+4%9%3*:M%*ð&8+TCC"5A3@$/#-9'C5"#B/:02)+M&203-#7?E?&C?0"'J8),9*F4-/M:,0)F700QX*I0;(73ÿ- <'%C&;P$G,!8.T!B,P>@*ó+/1T4'3ôM()&8+&38HI%/ #E&P2%;+ +T&>N9'"+#'G_64`!H< J`j0OIhsq¸Â9wÎå¹b(þè½°xkfœ‡n`<QTB =3--"%:2&,IL&C;>- 2)#.!1;0\P<I.&HEK54''*(<H 5'(%"/&;A?:6A-,T9(3+%@Y8#-++;E!",61 "c$" &F,†$<*G534_>AM8*(94L8'/"49;>9JC2%86:'26"&)-!6 $"S9%+DHN:üB>63>+&/10@:+3.S*,.@9740A%PL# Dû;&C23D"OC$6O'e,þEG#>NEEZD=S,2& 32&#=7S;-*HM?P+LP:&?TJH'>ø2$-505%*QGDI5:Y3'< 80I+H1[I(1K H(I:$J  A&HL#A58 0 )>6?545*)/)8C" 8(A3 P0:49>',ì7KG)%D<=\78"! #D,B=45 `\5.6#E8@2H5.\-2%(R/AHú(6UHA&90!3dI/h6Sm®‚‡C6#7-"6)3$%?F451þ6&%+b?,1.! %1;#F(BG<:Cc#84$DND&#:,E%85L?4$ZGOYF,?MA!nT`>@0W6 7'#H<,M%`86qb)5q!+9P=OASH6M61DE $A093RU0JW-,C1'.2 +*G +9ü=B =; E7?"!591QRJH-Y1E>#I>EDO<$OB(/)0 4&0:&IPh+,65)W!1C/S -2S(-20&@O>%dG&O3P:&2"&!D"'6@BA:>E1$"I7 +ð( 1(("!2` - C@HM/HD*F.+0=(/5--A(()DI F +0W01)ñ&;(0 =T+g;4$0PE@4UPT/KD$ 2úG,)I.@D2##I,[E'(H6 74CNBS!'X@.N# 3GA/9.P_4Q<E.F 9aW+",?-)65#:@=N':6/7ÿ2031'7 G +@"38JMý/8.@,21'%,=%,.JKI@=O+)(]>B6F#MZP1pTv‹À¹å.gÀÿ†(ÊŠ”¢‰yf=Md>M!G9<5@!Y5&(Z5H8. ;%*ù_+&4+(?T&13%7Bý%(<AEþ:-9! 7 1F"/<51:87?(7 37C H#$$/8GFQ6%%R  "5?%'&/1T?D (.c.:4)B;2 .197"99mG>;/F=óC7,6C''%.6;0G.'(HJ?' '?)A(J +$((3N)6#!,=>;7.EH7ET8B1S^2E5.:.=ê&; )&*N 8*'+/$G)>.B("R- :C&-(7P6N6/- 0%"1Z+'HP*(/ Q(?)+÷W2/@4#IB>:"JK%8"üG/=I410,þQL>14),V/$JH'[G!-1&=M!EXI###'5- +;1G5]In9?%P*(U&49 D=.(!h %.\93DH.$,4P;%',ü<"(M"-K!IOyoAK,#//C/'=242RF9DCZ<X4P +1F@3H3=/-!@BT5?2M2P*B07&,9/"0)F0g^-ApEDX;*458.-;)94 M-*:h=9SM-5/;BMCR%C>2$8"þ@(8D2\;.AA.=H=;M ZG?0O-"S%48-%$H/G1*#.6O[KQ?<')1 I5@U08ö8I,. #L-9A,?%788JXSF (M6"@>E'!'7;7W??-@ +EA=4`LH@3?3F96G.=GÙN5)DAT;#,?:- %h49%;(+æ&**(C)$"D11/@ =1*1?16.9)1O'ÿ.G1G/:M3.,9)4/,:412E;H:(I,BNS.C=0( &.")2(S4B[5$!1+G)*G07c<65A9D9;8A3.G4 R.û,)]_V8JWM+^ 9*M->M"N)O,> "=1O%+:@+%G17;%$./)J=A+9!0>6M  <&( ;56QRUXû3X5%kWM^\Lh)/\SP^8l’hrx‘²±h +,ÙŒ¾š#ñò©»¶ŽpZV_IoH%5'9.=:81;/35?+G.%I/1=ê44;-1C(413H2?,A*,9'0&M4E(=YG&2J /-?B)9-P+2+JE..F2I-0.0>#!+X"'=;D& J@ 1J!YG,--,&78039,?C$$g8H4 +S/E7+*P<1! c%!/3:0)+?."#..%@ L(N=:>@#::6C*)& +84. +)2#6$C'($!0,"+9=#yNER(1!N,;0`N<5(70'0=C/"4A+15 %'23O4^8#+4 ?7KFH/8K80%;%@34J7?=34,N4&:3$ @9(*)+=N-"%Z9Q&U% [;;DF9M!-)& 0 $%/QQ_=A.5-2b8)?37,?304ð -Q/*&gK0 %0F0D$ +2$G )RFL0þ6.!Jþ!F*45q1+8=TSL@;!2/9a>?0 @)1P*,F15T<NJ;3=' BH NO"#õB(Q7'e;5Ft8B.#<$,97<#7/E9#CNa!úPB;>8@0Dû.7,è.CG9'X&*EGK0G#@&';6!W(&%2RV8G;÷\ #/70&$8?  )A."\@F D$-"'AFfq:'/%7&<7-E0pE-5K)8>/ /(()2M:F<B-)80V2^*?Jþ0:01CA D=2578Q(@*,18d<$@L6'MO(C,N,.B"9/G6:2:3'6 #*!#5H-#(0?FO<?,R&÷-00X#2 +4 C)"(84X7:3EZ?H^D89$5/'A$F9(%#(?%W&/# ;3?:..IW7>-!.1*6."B.82í(9+,(D'þ>ê3,H?%3:N,6S2+:6A:30(56*O&+3D(% 7  $=I;pM5j .4A51 FB#2$.- 622$80G?<+!$,) &=.(&H#M/:5B2&/(;E(/÷55Fs;D3c>CE?\‰MZT“°ëAÍÍ_ ä +ä +#kèÿR”Ò¼……‚qQMmQ8d%2.3:y`/#L4$59).1h(0.9J P-"6,$#,F+8 /@2+)$")9.( @B=D(8"-ÿ.,@Q"&$($4*M/H,$"HO0?9D@#?.23@)-,>59% D*;,PU/> $DA<(G`'@9?E-BEFL#JP%FlD=#>%HJ\$2))e%%5;9 %)$O14+0L-/':>?60)  +%7k3'ì6(7!(G@a8(5+15 A01:"!"6"6C C;D$0"$  .+?), BCBH2) &3C+/9\" $7J'D)0-B+=+IR[?;?" (9a/<)ôSüJZ:%0d#,-g üø  5LL:7#N./%E ;97B:-8P,' RH8De!>=N 0? q;D;'$LF/, ?/ LBFJ0D-J35E".3\.-)-=:#3.X+g.e"E'AC%Cú83Q9(>($ Q1%<A;11&S-!8#0C/C'25!+N9b21, 8;BuO6%65:<MM-$68r#d/:=/=8F,A=* /T=N"G,T;10l%"G' +""Gc( DG-9,+)Dþ6/OD?+?;?-*4 4I,+8a":-1<:,9)&92%@,2J HËy; 7*03@+54C2>G!E%'7</=0NRAUú>M:&/U=.2-.)09$GC"G:BI6#-- 8 13AJDkK2#03LBO+KHH5U- 8A(8$9E6F6%%A-'36()2;DI./D./ô*'/84 9DK * 4M.ý"M+<K®–eC)e#"0#%>)&EZ>! D* @(:?7^445S?KD+*!)0)Bó!%!8C6(*RH#A= (>.+'C-1>,*6092FW322*8BFKz/$)$=*#7I m7?]4.HK$"I5K0#$IdA1C>L:)=&)'B;4&: *<EQ (:e1#=B,D?/c@C*YC9*;Z3B;EJG]',8=/a§¥±íIü_ + ÁÚ tš»"¢“„y]E\GHDGC^M=\403 .&5<7 5$%>HC(&#6]04=H3-B-A<5/9%?* (:@5.L@;6/2'2I'N:.&1'$%2 +* G// +<ú-@25-y +1@;>0B5&>,N>!*17=,D:,7W1s:=Z2E.=-:K*C1-=/ M$<!S>:9394'!J5($-0(B[6!>#M>þ"NO'6J)ý/- +8`+&b'-7@1*-G$7 +-6#2+F1``  =D- E*9;/B(E ,0G..BI->9(2#'K&ú4*F0F<EùO:/& :$L/&4F/*8,3_gd1C()AH: /1 <7+'K*<+( P+÷&;ü4H/6)W0.5#75 +';5.%;?*,R9 %>OBC@:%&HH6P45cJ-CA+,1P # =,;FE/./$1(?<B9+"//516,<e9.* LH+ ?>G 7H5%,$MC'M-<1%E-7@$'H3%9'M3û,<$05E 8IOCVBD,N :IO3$9+)C*?@N'KW5+5@D)63E@F7@PQî11Pg]+6EKS++9?7L3F;Fe<P5(ÕZP%<*46%F6.0 +>>+2 9*C9(()3y0D%* ./LB&5N&# &9%ON+;;,JI4V)_%:=%&A1/(A,A( #0*9#+#TI9aMX?%4@.1,*7 >-#1-;M4>J#ZJ6Y!53ô i,F@$P)ÿ#*D,@( %0"Y0L/)/BA-!  +.4&E=)/(#@AM69!X"ö3>ne}”i=0<7:>(T<(* -1P2óNQ:+7*3%B( K/ÿ?99#=b46 7BIO +E3725#=9(õ '&=)(+?!B=?&G0h)%,).(0/;J\a=&8-;'*9g,4<<9B;;>CD="XS"? C D,FEID;:**ü)Vc<#SQ÷=DúP4 !>UHC1OQE683W)EC123,1'0`>_hž®¨ñ€Jÿ ïÒ å +…Xös$ïÁ½£Vb_dMPXAD9@ /?[K/G/= +I.1/%*&&<2Yb$2/:/F2>"!< 0,F8T6%'#?0 72-42D1C&2 6$4+4<&&535A" 0<e8EA<C,9,+AJ-8J@8@0?&.E%<&<"7C'A5%266=;9 \9,*5(.U#" T(M+%#%:C/5ú;5(12G<582M*5~N&I:D8F3?5,7&("V9<G;ÿ<)5(&G8\?F&7 R ?#8 73N">&5+BC96ú7P/: 3+ 72CCP-\H=.&0(ö' +B.9F"+</Kç7"6M/%<A?UR;F'"/=1=@'2!7;/>>(2+" &P3/=G$.!H($6a9U26$24B@$?:M.J#*d#) +/F>51+'9,L08J/k6A)#-,"'@,?%K&-&L%@.'E,M:X3BiIC4O$0>l !; V  !õ<B43U ,NDD.;9 ',JK$.; 255=FL-53 #; +&;S$K<&CJp”`K%J.;'=þDH5)"JS= ="%"=‚/L<QKEJ,$E&R<.3MM2-!a6C;=!F.8RV B7;"+<('D,,F@7õU+8OP;6#(3&8-MûQ($]9%6 AC0ï*TL*Z> +4 =>%!/TF4973/T80:*&B2J--%I$2N5<2$3TN?þ032Y5Z>#55&8 Q /P2>7'(J"#3D3><RADV&S'ü +B""A<. /*!4$!A*%&@J%H%0'^/`++(32#$C_D("('.<F2<<nH=47c7*;// P>/*<]B 8?:6>04))RC")3)üM!.84#9';1D?583<P133.*C3;::)&04>V= =;.$/<95)1'G 5  +=4<@ G!"% a!9 4<4K(+FU+*EO4:k&*#Q*46$!K@SV9-1 2+H;=5267`#3TXMTjf`Š˜¯Ç‡*Q ð1‡1§í š0UKUß¿¡©t4Rk<D"A%;[=R2$?=X52MI 1#+  ?2<;*6C\79 6V-4>'9@/HX& .//74890 31TG #):'C190E0:3U;(2nT#148+@!ú(-B)2 b4J*<WG4*;X $C0FM.ïN-3*O4:,C9*SX 67;/:4"þc!(6=OO<h+ 2</Q4#D[F'N;4W%;"8MK)C;/>+F1152$?-$1%K'2!2191QG733+' 8! ";&A(2@2.2+E@%3*)(%4@0A'>5)+Y%4ò+%$$GWVD1C&J9<CAO cXc +')M(.39I=<1'),  <E-ö"0IS-((4+,&,2Jv¡•m& 1C;1D'$C26>;Q,0(D1$8[;26A1` :G5%4XZQ:÷<-)j-D"9<4,R9G-Q,B<:6"FAT' MR))I381#0Q/%CN=: -H,A:6$+>µCQK: ?0:15E"/=:9#9 û:;#06#,Y(<W>8YôD`1G"D8lC:::@Q=$&$5^$R"G\+6<E:::,* +")?A:'H,9&+Z*%N0:?=*!)D8M7  JI+";\9E*K"P4')> "G$3<:iAMô)0<7:U5-E&:+" +5:,(4326B$'&F..L:I(03'';9E/(5)9/&O%U804"/<;&ü(5J/0!>H ,XB7'#CQ0'CB18++3&L. '-Q" L*34?0!9&3Fÿ!"-$  bi'7 E?$@)B0=+(>ú8=B)G/&3ù56K@<+?/!/(:36A' G40PTU*)+FG'$-+#*<* :.&A. @"C+J(#@#+;4$ÿ'T0D:7ñ**33(4(26GU2:*>3 +-N;:,,î"&%4K?CX08"=?87$AD,_DI&ý,9T*ZARK?GI@DF"&KbS2e<JCfm„‰¼ÈÐsA46?8D#í§ØšLƤ´ŒŠ]^=F]g5;-~Š{g1@62 +. f!X'Eþ(91):'P:?/J-;OO$,9**< &2*<9 7+Ü5:J94W@=/+4,@ .(UH 41`Aÿ,R:5,<lQ;3L5#.'3E+5)0(<4//L-51@7>35:# 6HQ'*)ì(:C#"D1921,7äEKB:-5+!<2H0>-DL0K@>:/II:,';?B-ôJ@..F/-Y53 < Y#K%28N<D ÿR A5+;FM1)7%.';*6,#K%;=3%)H%@&;%O':R;M24sEH#QMR76>1O ,G0$",ü4,.,.?W82M6B>(-2[GOAAM-"3$!I=6NIF88+VG&a%}ú:N 4(<6&<)'7&=6:0P&B/ /&,=U@h.4 /#BP?>Vg-X3 +(ÿ LE8FU : AN4>Z7073?$('41,#7B'I.h" +?3F */ KC&M@ 4877$eœÿl%/J?)@-F45G;!L;A#KR=,C>:SG2] a(K0b9K"8:)D+T5#,&1U9-K<&73)'$<)*1 (021A'85H&01AM'R),C0 C+S/(N3T9*F5)%*&(#7@<-LWJH48"[0D463*F )D;:4E4'#;O(/+9T"A(136!L8AC13@I^+0$S',429B4. :LD:*6$G!,*DEf2B.?I&F:@-37!3>* l4: 6mD 0&3/ 7R;1" ÿ&4-*"=&?BD :!44K#,+2*1=6,1B.-/&9""I73; +DQ+37'+*-JB: '%O8I#(#.!E(5E"' *D07 ,, +.7G'6R,2.'*; 148#)":!/,'<(3) @:8<-'*  þ4<(JUG"LSQ)*%G3'6AK?*C):'/(ID](0ö0;/J=<YB<`Q:+>YJHG†¥–Àùdÿ· ¯ *³.ñî7µ¤¶'Ô¯Á¢qjgF_H+H€U‘ë¡b1&*ZDEP1 '2).7h"JC0%%=%P1FJJ4:/6#<+G%Z6-%*B.&6!Eõ.TT<Q'<,<OST?<#L*WM4$2O?9<4 M9  + ?+U656< 0 ) 5J!4EQ+:3G=,P->D?'8C(I8-I/5I00;DX>)D7c/,fF@)! <+X2)?812JG55Z#+/2D*/+-,[.?F4F/>/a+S  ,#'0%Tþ!+,-K2$;M &'<2(k42E & +1N' 11?; +0 //79&G5\&LQ/$ù6"$4C$A>:3D 2"4B3 D *&GgQ4.5.F@*.89:8,(?N.04X5;kÔ rá‘P@%Q5.74! ();78fL *#-$(1/'P,G@<%GG!%;@7+&SGú$04#B"$03C(E,ú+\—z‘1--/:T h<W"B)5<4./"3IIFFO-H61)F.)(1?:`ALIn‚UQ5,@N 1:XIEV6(#*8QX^#S66BEJL%O+9*"+)7#]-],4,"S3N(UD!5Y.8E39,?53: +V6L* +CD,I[(<-N:M4:-:05A/3LAJ0kG92 L%) O#8ü  Y0F.$T,?M/O6O'6 40J<7+)*:a#*H9/5E"IJF9&A.+W/%X;F@8*f6`<4?O#F4)'"MK,"'@8()6.''02_]6. <0A8@"2F3ö$*&)-Q,)2=-÷%6ÿ3 B8BJ+,<1:)]W-M-1ET&.B(<)I&I#"> (-#(E>!)11?GAK*O;W'4&4>T^3@;0$&^?2/:;=':68&%< $*!!*ò).<'6:1b@5[XJ(;865  ' +`//&9D.;3? G-k2a A-75H5.Z@$3-0, /g8*<3$-C>"J!@?(ý5-!O@.,Bb1&94A,84JeC[29ES97q¡g‡ÔêO­â Ã£Ê ‚n†vÆÇŸŽo+N9|Y!C]©¾‡ƒ€P79Y:Q,6J):(/56K(CA.EY%'&43&,( N>:7,3,3 ÐR"õ25+6H))3?GJB=P?:N4, 1Q(@$CDRH <ûS36Z*%H6>6ÿ5D[dTA) D7*&68@-(Y&7=G=$P#:4;  /D4Sõ:6dT33H/.>-(,0@",05150H'/\W?0<R!3VK(B.N1k%7950)Q)EWR<29AFCEH7E3I!!:MK'7*81 '":rF/7,%2 +01%'/^((FCOK&B4;N&UP@F:%2H-1$':0$(IFX,-.,E;SG2;L%"-!==9&GB%% TG9*÷:A4:17DUAT„æ:ó ŽŽw"3*=L(.@.,B3",/;H*:*;(G8L-/'.û;3',2Y&:267X1E.%b*#/5!A5 +<$;,6wq×ü“FBW@=*?7.AV 8LC38"A1$N1I=F0J),1hC2C=b#E<6D2 >(1]0.>/&N6(+2 F@6A;+O22GE,)G1 JT-5G[!.J5KMR-7>@#AvPgL5<3%)>þJ0H8P-3>9^#B=AHiR04=?ôe#(L14BWGk0&675(6 #,7)3W5%RH">//ID)Q14B+K<#5'@<?>', V6*(N?N-3OW4K996Q8Cq"&.O@.LZM4!UB+)(/4#;69'95(2#/Nï)!$L +('01J88/9,C" 6 +F5$(;0 '"8-XJ 1AF 47*&(.)õ8L09;! :7P$>%?"9=3=.2a-SND0J8(%:'M7!E4  2SEIV,G;)'"* 0" + *@DCù95.8jK"W)Aþ:TUP+>b!P! #% +9FWc(=%K*/O74N +?>'6XT+ 31 6>3;68 T&"K \G *0HGI?5<YA9..:FDC:-".+>@799=MXE3>dn`V]J}K¡¹¯²*¤F¸ +~ ¶` Ý +o“;ÿÚÅ™€mPR[IlU\Yc®–ºâZ2V>E`QB,ñF!û" , [[(,8"'=05">='F3/!=*<''L*<*+.'*7.&+TP7'0IV K9NG 6A-2<:#4C/2;+-(47L=+*DF_:,58QYG--X4O4=#>3X6H9A$ PS<B;3)4!6F)#J[J?TNIT]*081/027O%<.IO4I:=4 Y76;9> >-A?++%C'/2/"$4.0# '-AC0K:+7%F538,.A:.A4%2,0'ùC4),2C/O:Y2.$R*(*4&>+F"(XB;C$@3!7N{J 3*:B51HAAN5=8 F4"6 $<%"] +E! Z#3")FO<3;H/Y%7[ ;Y< U,þ‹C rt£Æ!º­~5'''9 =+1*$"$R%$7L@:4-!/H# +$*)I/3"5H-.N']-E%W€ =8+O*J;0G1Mr¢qCJ<-1$@5Z:E 2JL.%2à/5!4]4V-NBE9:59I%F4G EYL3r)3])-7G;);"_.S)$]'/AU)?$2:4M@E&a',OKW-/2!U68&M;c3+2CU<',!^45 + 6++9. 3$P;3;>Z,ò#?U.+H 84%@9C"#V%J% 71Y*3/G& +ú 2<2/1-K' +c93T=S&#<+KüC60)C8"%!41Q<QE9 + =PZ!ûW)5SBS8&82ZGLJ>4A?7B&B:'!#%b6"="0('0201%)5;2ù +=G*9Z"34D\&>50@*E6-::%A.8:KB#66F6/5+<5@-"[($A& 6,?D6K.Fseg)2DA%"(0>CE%8(1ñ(%1/3B)"CK ÷$Z*$'# *JL=F"FVMWS5Q#%F@c2\2Q C#-$ò3 Dÿ>R3<*L +-69+"&#JC/!9R4))>=(D#'/1(;4E& +C! *F6(-TI#)*3 $FB4FL7T%KIu7_U@JM;Fp‘s·ƒ½ *·‹ ‡ +’ àñTÞ¥ŽxYo~>KB}]eáÛi[>%)83C'-*6?C11C)^D?(FD+ O8 +60-W#C8C2>=$(G$FV!+1A5)4'73?E'EK$B->X%HP-N(J#0E8;-?=dT*7N147(()C/&.'GFY%Lb5**35@4.1 G/5@$ "+Fe6 $G1,A{kQ'#5."##AG93$02$$G&6,SD?)/4 \3(2%q0N+O7;)821B"@FWC4?0PM ?82L.'< **K,!$j<9"3AG' ,&<-9D1D+A!÷Q1P)G:&3R9U&S: (D!J7&0E9^).V3=!5g*+84=*.&IC?S+,8S-<G&@O0,UD(3@WQF@?IkaMlI;AB ?1ÿà/-*+3! !27CþA%?0$;537D1L4-3,?G(84$XcC+4_4(6< ;.T"PD;;QZ\L)5,R)#9)<D/#3?Qd)102$'6 7/8( '(N5(5,3_`%(9=8Bí$X,G4OV$K98"M@/--5& 0 5I;?YQN=8T %DLD@N::mCODOC+B==Bÿ% 5C4^;|B,5F?Hb0 A6ZIOF?  +:N: 6 QYJOS#=GS:QE%*04#V30I@@M%,*/+;9 B0$57E)M9O747+  \O.3IOC KF61=:7;A/F9]BT2(!D*#GWB3X%(>"'/dW>7323+/ú-36ÿ÷I&õí3!3j[C<!7-L*;%=%")*&`773L*%2(8,!!-M/#û>=29G.#j"J;2 +S/0(hA(*iwÌpj1`6A(\-#1CX <W!+HcF+E-<9<,> (D(?G,ú+T4.3;D+1;)GzE%EEC8$(aAH)M-##%)V63($%47#5:1L9CCW#',P%A&;#÷6.(!ND</!Q6;$-\ QO.;3-.P.R= 1<A=Q+KšaC:MekV~@@xž‘ÇØßk’{÷Î<@„Ú·¤|sJBYUIb-8BX=^q/2.',%67PG.E>&0+>"XB:9G@E8+8-EBLO=g!*O1E0:7+/-2Q>'.>B \,6.&C#3CI:V/@;&"+>:O!H/2!E!3.).,56(2B!;9'7(906>< 5OUD.H4=E/(&7)G ':*KE-+M/TK/L>HYXD;X+'- A'$4M;+A+@J]9B/7<Q-:$ ^1)K+':3/1'" /'N'E*+F, -$IC9+2!$?)ML*,&87 #6JL4!?K$ A^ <1'4&!.DW7$4.G&D3 R-&+OO0FAI34H,.+ú)? L,>=1;J2-I?*9/+23=Mc51#9UC 7:$L7I8}P/] "MW]0(:C-V5:F>D.@G'>.@/d(CZAa'F,Bø-&AA??EF%^M &8DM8$`.,4D3:A,A,5\+$s:89457V:D:@ 619J#-F/.BY.!G(*>@E'U+( I9:.B2160.`%O÷,ú..JU@Z0@HR;QE?$5ý!Y(98i#.0LH$U(FC%?BKD(C*:7=8@:A78!.<R`*0]-;Z(6MU84>C-#þ;3*+9.:OP™¡Z,7S5.--328%=J2 1*.@"(QHM7-U7kDN+9>)8<Y=B9@,8&"A&(1@%.!37@@L'_;&;N8<;)8;%15/7b'/*H7.2G217.$=1,ø8'0-8&?'>0%5H%&) :@2J'B5O8 !)=%J +H+OB!I58-,:><E&*8M.=2 +6"!75 ôSbE8T.|¿Ð™@)F= L +['14%-/2B,]þ*0L?4W<+8+759# -5;$SM&*:“‘jQP E? -Y0:.ÿD/,&E/0.õ&B+W53E3V6"ÿ**4#&.HEG=(-4?0N8A3-A2-L7B6*9>#,+40)0]FK2B`67-- B#:J)P€$OHNCXQ1L+ƒz‰‰™Òé!‡8³„ÂDɰfšiedL@JQ9'Z6[=4T. ü9G5&26,48O44K)D?) +9I=5E $G!'7]E-@('1K$G<:@4I&*:<+AH(0)1+8@B 91DD%d: 7>F 4c*PJ!D39=0%L5+,=:•‡a*4ü\<6.)-38>)8`,& S+R83?:H7? A,)=.d%H;+08=)PA9Aô6E0CG 17C<D4;A5"8FE6:"<F3F0T +$4ZH50>4>91&&7*#*HI9.MM/CY)X66-,I=.= 2,S&P[5141 :+1 >3HS+'0T-:<+E(5.B>.0$&//81.D!B(3 B/<B2R@M.*&%38gY%$6?U‰'4,31DGZc=Ù!B-)$(7>E#B"I-DM8/bc)C(!V^3d5; >6F;4X(P$?E+M ;A&-A-+cB@1Q-D-9 `)0(+=  12#:33@>Kr:LIZ\ET Dü<%,3Ú)74',þ8>09[(WGFV<@6,#I=,2B;3Au7û2VH4I:#+$61&+4A&".34P(B1eGc@FS=?^3HC:Y#+:P2(9@:M8%4!rP.3 jC.$7'@!'=I^#$9A=ö58V84M'.(6WKt·žnN=5?9>9&46G6O7N) 5 $UM7A'@!dM(0G9G<6[*6/)"* +>'1Y6.M*8Q31NS4E56JPF,3/&UO!"N,BV(<>4l$A 1,1&#"H(*H +80*1["!%=ùS 6D5DQ:;8+ $.2+# ):>AC*1%:ÿ1 %44-/2*93)"S &h!6B45>† ·m'*%%!$!@e#F$!6$7OL S1%('2H5B:.b.5=U$4'#()86qÁKTJ/"3!K)"  &**2,Q+,$#1T>E6Q)?[&9(8=77TD?$D,!$/<>.g-ýJ./'#:KWBG=9;"P#., 1#Ek]8>GHmJDYaJm †šÒÎ$5€‡ËÓÇ +Ê¥¢_ˆfc$<QWA8C$5"GVm'+F:(;=AF3D<A.F,86: =6+:N,& 58/B-/%7;5 I)1,L!"(.C@RC';X3&% 'G848-U3%1,/)GA-1&":9.=J<G><|ŒÇ>H7+ò#'8;85?'-D-_&='>(3XFK%.3j+QI/$A!EK/A,5$&K/$:EM/$%,.5%5[!9(*73C2"-1JR-"(/905H, /J 51"'27G097.P!K2!:/6A.8d**C,`;(%%C'-#2(848E:0=.1E8/-)$9<83:&NF c)/0C"F!+.(A4*LZ9m9((,X?*A 01MT@8$#>H%Y [2,4=  (7 *<:>!8/: J<;8(NC76?W4>G2!G5+'6V5!:(,0"F5F+(:2>?5U<WP4N3H4?65=*4C%!.D4BK‡'A +H%O- !B+>S 9.4 $AR8AQP172EG(f·³uwh2/1>F)N >? /lLNS=95+4?7P1.>?=40.F.VC?>3U 9_B%D9JA)3[13=;J4]_P @=<&bGN_044XO;VMNc\Y ý(405/3-gR0fGK #NP!/&' 9,56--; :(AG,,QBGU-;/k4:6B:><G;$ ÿ5"+ø&,;?Gg161(+K/2$B1RX)Y<.HSL0U6S@\:# @2&P9Z>, + +&')(%# T71)>2 +*(+),3,;L" 6"+& U3 EWM2:'*'#Z:/>'+LY^S36"@45,='NB ##&5/<QM7hDQ+4;1 (0AHF\+I'8->8N;# A2#"TCK)1m/50þ / ?fa<CL-J1"02@2ü7D#J" +7$"))ü +L<I?;<11G,&D?IC 0>A'=,,46 ',+)XE"B1+>B&6.-/HBZ+NJ> .?-0*3,BöI/3`<3yQVOAƒkdFT›–“³÷ø8H^ÿø°v{—€•WaQpt)GLOR0R$='/9` &$G[7/-3?D245-$8/MA#ô /BYLN:-)3 ,/5=.8#+<:!#G)-,+CD7>U/7 #3("6D'd5()8#J3,,$<%,#@.[W. 0$0G6úE<T<3()0.0GP%9-=2IN;BB4VH)-4X.@,b!9?>'W +B==>78:(58,%D<#þ1"("Y"@;^,47mb@;E2"215=B8%)C38k;Q2QM8 +==9&-G#HEK"*-/G%M202:; 0<A$E <1#TèH9>A5>=:B@[J:8e=<//?1%%'H>Q;,BI> ^bM*C?<W0B8/#?QO30=2H#8@91?"B(+/ 4>, Wã/F"1&$929@(BG9$.,<;>+G*=%/.G9.(><N.<JD?*J,B ^E*<OR5%ÿ+B<$+,!4DLC^oW"%Q,48(>d0+8/:X/C, @6)J= &mL->›äÌQ´üB04>R66&?:5.=D<-ACG4%/.>-R''B;P8DO#.>:sA#8M@66G0 /;8/2224C:FT;*L#,Xù:I'UZ0H#EDW>,=8W6> -:?5O1, VhC/%'0@Gg0G$G'R?=03<S+?9I*/?.3C:&/O!& (7!B&>)0ó4\NS6,hYD-<A$H.&&E?5<G-1FV/*]H37AB 3/;H16KA*#284Q% 'G*  +@!57X.=? ý%()-R@)6g> %I3<(<0817RLaV!l&/=÷<3*C- VB(&,"=-;KG,J_"7'87]$R="(îEM$MR14090+4.(;5*CG=*I(M;JH!7Y7 +< :7QCH)*#,-92,'B^F/ =7,ó?:4Eô25%C"#4/ +2(/";29+Q<,#> +4 @2#9  206$ =^9&D?964'<=B68JMk,sfogjv^zbub†“™¤úßÕÊæ¯¤qj¢‰bUF\V8Fb@S(=Tÿ<>,);-(MVPO3Fÿ/,*1<B?@1=C0S7#A:F-<K4B P2K 29 (4139B8KD;8/.(=A6FD*%<8;8?!$4>G<E@QB![:õK<8#@N%*.P /?%11<I*ú;//KFe(=Q&:1#^v5d-?4'! //=4C?(*/R"9D/ 0/7UD +D?JO!@3.L/ Q6PL< @4%<+'# R+PO:3-E?+_O-,0/'"0:5<.JkvHO1$/<4?BeV-@%/õG.68OJ +E)EK3-"V,F$+7* C$ üK<3<6)63!1<@6Hr/" +(CI$H9:a5A &3ú(8 <:0%0-I&9#.T0,&32-'>þ/í= \ Gz8 3e+525I09(4Y 28F)< >DJF[)'D 7D-9S35M8F<1QwH\07!#=4;9-7/ ÿ7/<E5?#8N6K+)\.HK?n<›ÍoJDc‹cûX*2 :84MC/! ";7; 036,>++5GAP8/9 <[G'?UCJ,ú<*2<;34&4/=8?29E*NL0/5UQ!Q)$:+ !@"=-vK~{brcY19$=36@ +@<-$S:A(6€I4#I#?(<U;?!%74=i@@.")%a*--07 +6DF0"@aN"A60$K/'5.?'02Y,+?"JB!-?(42@K5 .%A:4,E/48GN#B/4$+ùJ,#3 -*B?7+'=S.þ09 &:92P7/66/#8&9"#W2&>+85+9/uˆYSø4&=8) -&Cð0-A6)$3S)'(:)!68T3,%? :< +++. 4?+ AA<# A)$26;øL#)"@*(E886*^M8E(5-3?G8L+N.ÿ)9>9(\$3&+#/*W3+9: ).*#,;-7%(1W@)Bü#þ4B3F0Q,)+1::1/WAV,&*R?Ojc?r¬cJAiSQl`œY‡ŠŸ”ÓÇÁ©³—“š|NgEIo9WBE78J#X1'(@C';+6)&<23J8F",@G+UT.A2KE3>9>17,CD X/;6F9ÿL%->#&>7/>116"":R;;;2C#2/;H/(3L0,/"88-;G@ NCF'Q7+'H+H2? E O? +0@8,,:@GJV[SgR1<:;&092[†IF*>1-$6 2 +62L+%!AT&5 3H%O!/8ES -3I1 7V*)9BC)+1.5/6J =..B"U7(/';`0qC2DCVAQ=G9&PN$+!"[9øE#3(44P/'<PK/(] +./8J=-$P =jD ,@6 =0C1+D"C3=,C(69<D/-&038,X O$NX$/)@4S2"4ñ.A6kF0n"'6C%/p 8- 6?C&*F47 û",L@(,3IE#0'2 +-8")9H)!-!$. ?*$.%0%2B2"<>E,i;H?#F$/$"5#"9Fë8`<")i-+.!LK55eS[ÊÞ ÷¢&u(B.M$òG9IC!K?K=*úA.,5$#(/U0A9.6XjK=m\#,B.+&&9 F!J+01( UY]0G`916(B*@½ý)ò¿¦Wa+&(/?" )hK)"&HrZT545 +)7?:JO*8("N1FE&8#Z&/$@3OXX>1?6M0H*&J9?GL)<O>$b@D!#>!Q)-fEAG%81)2&þ98#)h=.)=C#4Y-U )"T%Q17%"#)*3/+1 $ @Q5?5Mà:H/8 23 #;+9K=.+-61@XkQ2)&)E;F@4*4%@0"-2:1P8//54/E+;3K&15H81)X* $3PDUN)((27&/ %&VIG5&;#32)<=;.468+:;SI. J$@Q#+4.+I(÷=35%3D,&X+AD%0Tü(+JeNS&:0"D4DB00%7.7(L)!!Ml}O;R3l2]IWU+VtaC7\EppjNUrR®ª±“¢¢~ˆ’‡g{nF,ULA2LW(:,8-+2A+<>7;B Hû"(KI)).=81(%/9<OC.* &)H.>S24?)6(>\$(+>J-&F$ 68'K($:11?N<B2=D,9)=;!1./(1!%6<#>-9,BV+154D#*BD9%7/A((3Q&k$TGx^]9:&($.#C\³GA4< C/6!>9P)b5&G(H4-+ A6/+90?@&J 96D/+9EaA96FAAS3$"G:9Z(?5!%X,*E,&=- AD>`G%‹K%U6MFQ,*+:7(3F9C!:96$D'=9F(54#K_W7K0; 41>!=K36--)=*-,;Ar6+:-YHO-I./*RVc.!-=6X64,Q /B@1ò$";8CM4O0!%SD,&G(-DD, 'ûQ+Mf:43E.9U4 +9!.7$Z$(95 #'0A,#7HC6J2*"3I+L'":,":*.= +7>?29@8A=BG-O#>%3:úCëK./4S‚H÷ŽÍ!¶9b4?J3G`^n%/(4P$8;, +,"-/94*>5)A6/8Cp¬ŸÞ}?46A3&(F12)I07- =.2$5S,ÿ,1# FE)Kg?fô^ œÕHÊ®=&(+-/AR36A6,Q6&@/CK- +?;H\$5_M,1M@"*)7R$)= (k5_,B?,09>2D.8-B/:.1%[ 2 +J$-9%66(F%4,%9!`F1='HL<1X2\F,@@9O.>,%<4860?/c7:)'6%@A%2%% "L-0?MLz@1éC-C`'D,)7*,Y#(9' +,>;þ@]gme_W<@F$IDR.'95 ý=4G*?948)W?$6"(E-B;<$5*4M;^!H':"?.:é%8:*+-` L91<F)J(J;"@.1N:478&ÿ'+1$.0;F')", . S& 7,'!:22E1FL@VS=K<)%$%>?0C&!$/S>V+b””]B0B$B8g"1KBOFVaoyME“„f…¡LhŠ{}vŒ_T<_xuT9.@")5:9I42,60MLM,4;(AG1=+**4= *U-<<B55./CEF0,+R8?J CQ$U1A+&-5.Y)ô=YSM,C]GmOjûME2719,*> +233EP=B5B&/&#!#(/@GB;<J$1->>B% KFA>Kbi6m­’T>ö4.)%%bbNQ&8$ $ý)÷Ü0*/<$0*1N(&0E+52=&>+A3K 6'X "):; $*<9"X 0'F3'_DE?-%(K?Z2&)19E2KI*PðF8(W$#1+#**6$0$B"#46 H<D37->CE0,)1(+CG0<>2$9?â5ú1</ .=:D,9&45N17A:$35H“S3 ;<T61ýBý 1%+".+AQ%@5-5(*?1t88P#-:;L ÷%!="IA-19G3!%+ @D=2;/J:) C,(I@208D%;D 6  ò %4JK9 :H,D.4%7T$0BMF^AIO!+S0(;i‹‰Že2.E+&K14K<("2#HG%0E4G0C>71,!BlLk•üQ6ÜUK%(@O&;+6#'!5)_J<3)/5 9/(/<6,JZHX’/‘ C Ž g>T¹?E0 #0!.I13JLD<6/0+"T2@<DL58*!'F[7 >67: 5)t6M6P;?:'@4/K,AN)12E,9;/$265 @'=/3"2'5z3!D: !4. BL.G L <1ü5(WFH"  4L%JM7>-1<GC($8!1872)fDWOF987$3#5$AI,E)CL.O.-#5<`yñþÎW6; CSLA34 7&!D)ýû5$#B4693 #I!8)$ü@H@F'ñ14:DQ4M<?6?O  (5/=+740?D6"44h-"T. )0'' Ný.0)/9*()#J5(#-.QW@ H<+B3%?7*?#:R!< 9 %0I2?+ 3BF>B@=Lk[M'öER+6AF30+=<Tpalc9zj3Lar]o~bsHp€30lH<]XR:+AZECS&  "=906r='!&k3/33&F(),-7#,0ú$h=> *Aÿ81$LJF'.)N8" #7P'<,Y(HD#59, :6(I[¦Éƒc:^/C2,F/$H;=520=894A),C"#/$9  /.1HI"33&(84S(O6ŒŸª¢U¢~I%6 +=!)ü C<^-X2 .?*9d5B '*T/,B?VA.!WEC46H80WXFN+V0F1/$@'+Z%/>(8+=8%Q;! IA3&<LA)+2+$")YBH7gT)F;-õ"6:6>)&23)CAMK:6WI79*7/t2Y:9I$' 2$G) 7,J8HN7>?48![PH*I3A9(M5$ÿ/1'##* -! 1B 26O?K" Y8ZB 0 T<;;.?9 +1õA-B!'=22+4HM=4O6!)B <WN $3685>HcD/6A 53üB'$;*)&K/<7D6/7$HW0TW"`z4K>,/>1;,DL:>#k<:M\* +SŽbJ073 +ZT/j[×hìñ>¯n(O>/G/QK7$N$< 6-9EQNY19Q +R*A$?#(@1_˜kT ó1} Qɵ)8N %51:F<",?%:4kROÿ /CF!,--: L?`-V)6B*VO_/*IQ,$"@}>M.>B C!<("S, 4GL H# ;0/! )3'$="*<D*MT2]%R +A=% *O,NH85^16kGE(W?G !&,O4!2WC!. +98)/7,H#%=\H82'& + CL20 +&I1^<X†>ÈNÙŒ;X?7?.ùD3GK(E08#+14"""9'0a94JR8%J/)3:P>$-.),70G2!"/7M9E"$J9< ;(zH,E@06o;"ER\-2!*_+&/'->37-8)#+4()3C7VV*@.@7[#$0F)C5.S'<L*%398R#-#46,/ñ:W,oO-.MhF#$;97\t3E'%GZNecTW'QzPLgœœSVcf`eQ8<A<DV,P=3,5+6'(O(+`:)/)&F/M8/0&0*E%W42HVû-9(!T/>A2"B+I 55!''9)&3%' DŽ>I×VO_=8,K5)2J)%Wúc!!0 $0*22H) +&'>B4-E0;8D=? -¢æ*€”`Cþ(NI7.( ' JCô@LDNh&%F712$%<:C'R/SlAQ>$=35EF42><1F#1 : LAq#8E:S4'J$N6(PLK)%,3-BI(F1,$*-+&LCB+I6P09-%D;":PQ&,$+&?=DGI*H5F #6/$0B&/ KU(")5B,@!!F28 N0 +F+6% #4)I"+3'K&'+9:}C+U6F`'B;#D'9,0B!((&)C1;4.7( L0'/&<4B9550LH0 D)"-3;$ \89j.<6%*U?ï5;*VP0 R"'7*8(H)"4AC).-DA/C,1ý'G"GX,3+i#A=2(*CRQu SF@AJ$1Q@I92R(<c­¾12)&*,JlH4œ¬—¦WÅÏc-E=\@ü>-9:)40c4>!,44F?'2!BM <8qK—ª/¤ +  W ?!ùL$;CO0k/#HMN$I4?Vb#2% 0[D(( aYL(ý+)L[,EB$"9_h{jŒc[8?8+@*0bK'688HB,õF?"9+3þ_+@(C&?F??5C8' +)Ý@(4=RV*%& <05A**#9&T‡“”%W6%88;! :P%(X3VR-/7B @&@Hú4).J !*_*!$#-I  6-6<Bq[[{¢^è¶wIN1.=)%;701.OF)V7E,S;B>+HJ? T46I*13L3(L0$2G$(@(;*+4&%"*3.DT9BNZQREO1:"C"" IB6+1Q.%#U,7+$7DE5I871+0.O&*LR90H89ú@M.<8.ë47119&ù-,!CB54?G5%>[/D 'IAF5UY(3G9K9Sy?nXN9lTqioobOSD“K]J;]XG2=@]A4 D+G?A+4?lD9B`,))$4-!S6-J"-T?73Jý6F&6I")( 4,87-3+<=OFF-*F!@-CMe>'(,276/M>fHüçM»É\)XQ;H0(\A7)' 4 3== ?!A*G2,0C5] R/[A*D5 +34eRøBPåv(8D5I6TD'.12$(10)("&+%()dABR#J"36-8HP0D\U:b/9*BY'482 5<>)V8*G858;;1 /SC7GCQ(ME +R4X<-.-ú%;!@&7"F,7K. !0Y?=9>7Q081B960 ,@E@V-^9/-5O?!B)(T&/35%,&JOJ8&#-4I:7KFO35K@H;I6$2C9B'E>I.=91L&%?2 I6"?&$-A(;I‹,8ý+ &<;+(bG+&L*3!@D)3@8@',5;:7 )8G'9GV*8AO'*R>9:6 )TD?R-10=%/ / 8&4X%G +/L=A,#(6,$>j62)?D>C-9;54.]8–cXB;.4!/*],&OMr³r2üB58wc· r•Þë?_I,4(7;.JJ?"#8%2l-.C969_D(8A:IIIjŽªß†ù· kƒ×nÊ#ú)?HG6&58#126@CU?>(/?Q <4KCDC1*E&":.#3N0E-L†wØŠplW+2Rk4F7:L"A=N;08,3'P ?**BNH7:H& &I)1G:G_JB2X+F;C 1"J.+') V=7¥GÍ’. A'R">(62F"#>40?6:#14:6XC@D*Q4;0 -4/9@0653˜¹ Þ–x`89 +&"1&a.-B(ý+Q--:3=#.K3"2.4<):)5&(' /=A;E)-`6O"01<24NT4%  EQ2S)+:B83>$54&-`JLHK+C=;=8'<* ü6%1QHK3&3LC!"FA?7 *-=5:WE*!"(-4,U%+CK,-= 3"@If?1-57# -QB2KN]XX]6X4WBSszihiG8W!LS…N:@F4)(9X;49> &I?*G=.,O2H0(Oe>1';P;=)$-50`L5<6N +5>%&H@9)A2O"LE-,=J4!> C557%-où õ†€UCoA<,13Q3,>/+GC0.>%3BAA8: +86P7 1*# _+%HšÂ +ýÙdKF:HD80(70MI 2;58H +P&??(7 27Na~7EB2'#W)X;3:,538:07"36D),!AKF$<: M)<%E/63.! Q8O'L2:^ L:@FuC2$5'61#"&-$7L$+"Iü;*95/F(NHKM*1 +1JRG&5N*+%%D-N%4O1<532ñ:/;)8#> $9"b4!*'î*>2G<>S2>6C +5[9-+*:/+N-4-:>ú9)IF9DB"6Sõ4T+,7-G \A5;7@2)<>G"*?]h ,*)gI":'/&2F@75>(8BM<J%D 9 NI<6?..2%F-G=;+4!AI?LH> JF;,<JN0(FF82492JDH]~„X;M7E'%'NG D*/9$i).&G'Bw ¬ÏO“R4G(R7"B!C>*)*);'cF:B$#FMS-<;,:<YZ<EE†u§>‹ü«Ûu< % 5,C5;&@A0Y04Fa,=#%M07-)g;1B16#J?,5là<ý7ÕœŠv\$ ;&K/E,P ;"FE$"C0".!*4c+.E9!>+.'51&<=9K;4:!84'T"L-4;9W®6•H:1C3G'Tc:/2K>(! A2E8.:+2<4<ü$!7(545'? EHJAF8&P*1TW}^Q6/@!2$#57!.60F<K æ. 00</1.)&+#@ H6N&^ü60%L4()G=:7,+7"F(76VX'%A?bD(:>X$C0%3 2- 2Q)-.%2#!<0W(þK +2,ü+5#2;-&7.;6/89-4^:1&/0- 4B4  IM1:A&"#J^/48MU"L<E/D#AZQ2@<H%jH=]-44^n[V@5n*O+U1X(Y&39;2Y.(-,7DN(&ê:1;5V7" 80a/<'U,ý.A38>NA:.&'85.E837G48@9+h(;)-K%%:LI<.¨?êø h)L$TN'6N9&C8,4/,õ<4?!6HG(D63#$ 8$5->,)$6;QZR_†©°W>:N!@ 3>3A',( [:5B!D9/34D;"2gKKƒ™d6=`2=.K 709,C6?ý-:$&&1X2B++Y>Z'>2.?G .&DA@T&>cG78<);'6A)061#A.W)-2*"!N(/#ð.5)=A5+R3K37% "0YD> 0:) +4c3*Y.95eR C8?5J/82?! +0D2R$û*8/K6QF2U5)#$3($JN ED85.5@09C!L$?"#:812B*r2-/?0*"+0'^gHF> 8$<# 2;82< +:B#e;?23>B=!5P%7;'N7-U<eù5*8ü<M*+,H@2HT'%71,_8.46(F0G03=H”‘¹lC.'+'?F925S #7M$3NL`ôôúšQIO--!05FK"h"='6\QWB?4+7Q.B*$4R>Ys:Rjh†…ŽÎ¹™6~=#B," 6"!A9DP 6+5-N7P(KK'( POWF%://? 9JBr4Ù÷·ì”ékj6>2Q5=BW:L-.D&$=&'+(4.84=_$;F;04 #] ;@?LQC?.>iOR&6ÿ/&?%œ©¥Œ,G$`O-IX/;44+öK<%=ü1''-?C,ÿ00C*G5-$(M3A$-? +EB'#ýÿ//<G0=;:@+:=).):K</9_:3*C?64@2?6'#1W=H"P ^8>5: +h%#21;9*01EH?7G5ï=BG+9+)D(/ *)$)%  1(r;C&%#4H 2"J63:9,3)!4-J<!*O.C#>+%1T43J#&90s`8= #F,ýPBWþ5.87'#B845 )?:;$/NIbNX^bjNWh]KdYfQLiYV<BF*HG,0B9/,:9KO%2N9[<N80,81J G$61@Q0;17f:%)54M49%(2*9>#19V(=45 4/>ö&$3=/7'-?5.i¥ë$~J8F; (2+#7-,G?>77&!?O+#477C S5&9*  +>='.<R>i-/:.K 4+4+$Gú@?AE8"G+N.*-NQ<Bdm$)X9 $KOM79^J/9N3AD:$6-ô*(9@.2&C@(8!N6 @2(4D!AO#!4R4L-*" 6=G?;/!35?0.*:,41)@ *3&=$93%"03G'8C /+_;*S0öC8KbCA..5C11=7.'*=I9>H#(30&]#/@='-W=/U$&96N>Q.$A#/+H@)G I.C$$6E=3Eÿ!"Q&G2ð]4J .D9 +YGJ)R1 BBLcCL %, 7@> +<+6-A:7)+;')C,3/E-<.!LK(,:/2,XD@)6KM+=;2/,2&A)3cH164A4!;+8/=%5CJ?`w|E,MN-,7@U/A+$>&WDJd ÒaQ;9M0I:/0&!J5:H3NtISiE, +#0B -0doH;XCmQP‚b#ü&.B8)A5IL>=8+>BX]/A8 OF,B-2(7+.>? ,mmÛpÿ?5‹ô}LM&F+4!5FF(748/&"6V@(*+.>4$;,!G6<2H0I=H3?,\HHL ;+ 5&S -OLk#f'L1,!DA-P% 2ö&(;F6,,9N8<7I'6$-V, @+S93"+%.C)3=5.10?8A.I#:MS2 $,:A2<*2#-^ C>p8*05) #=<U$2 <+9*Oú*"=)M29(E_/E'* !6D05=4G&`E$Z,6$#>7":7G"OcG@ O<. 5472 Xp,,/ÿ-/A8 +)@  ("=++3!`QK.L81#*ÿ3 G6>Eò.üQ6LVQ<E4,?W1CQ981/<-M/<T)A@ko@_1CfGX<*;:5!<) 2Cp3/ H% C/Bö-J@O/=$9#ýñ@4A9:;JX 0@;8 .!%"6.H8{% )1$P ^6*2)< )++@\1Vnr€sLOQ)'7@A5C6$Z2-F?,G&94[ -õ)?=H;þ/5=4#3'2H:/ TQ13)I-3603 =I%*=ï8$0>392'1L4-368,4@'=^<9''D$))PA5.g7CN8ÿ0.G !02,!-+/:#@:$= +DS4*H3@><'.II>?4%2&-&V?)6RDK +&<@c/,>1%i0$BG' O0GC8CA)-ZL;31-=N.DA0]79(2!7>)/./@-TA6 +MC9 FM#2&J0;9?.3FA*;T&n,=D$+5B7@QU>$0Q(%U% 9"-> 1SJ;"6W(!!a=36="0://?%5SRN28;3!/G1D #HN#A1!C.(.*-8;,"øQ%=A%A@%:2+#84,:,.AG2!$F;O3V9R/S"'16K("M,$*-90:F.O4clM[[EDEJ`B3i*7$KG$.+@$M)K5(?$0<9E?A7;V.;Sg^Cm~T`;Q7ù%íF#B30@7/5<*"JO?^),)W9'-5A,78F'JHKHq '¼ Ö— À’8²[G0:/L&(6.&)56B ,A +1mF'?AE@Dû?963<-%A>'A1$ +C?:3%<,%4CC >E'9L@>A"0?C.A%C.+/";"#7E R,,1"!6- 5 Pþ8C &2(XB$%M&I6D):3MA+,@085/(?4- &"P!H6,%$%4668+L")9+;4C?1SJ0(c0!%A 5T/*0g545M?$$4L,2=19; 5I$;ý";DE9/H02"W'?2?6E/:1d!,+?I&#;3&J5ú7E9:2$L:0I >CbB082- !N>D!#!? +6/L$3!/86E.5;D(Lmx2895RX,QBMk,M:/ 2:AP+8O(:OY[5R!"@>\JB_X'< +4(YF<$6.%.''#MB>(%7,&.0AH-G O4#!/6W6"bT*0_,74AINE 44'MS@Q]V;2g;$Ha+;$ýOF& R1 3+.?/(6<!D^:0%#*-T7.8-4#/U;0'&\'0. &K$jÿ@F7B'%GlC6/3+(5/3B;  I2-:;'8"<M;K0 A'XB@GH4**4+H<Rn..0R2&N4&!<-C8B;!P0 c192,7%071=/3(3"/W&'(<7?/*84 36^D?"6&E1@2H6<I''G.!-LUO % +4÷ =g<%F$-*3b\/\,*%('17(7/9+ I<5\<516E0,K:6@f) PBDW8KAQ?- .-&ó,"&.$B*"63,ü#4I1ö6/3!+C#*N2X>1- EF6HFL+:)ü%O&/2N`@?_D:@úBJ95B#W2 VBO+8C$68 *+.?F?;X+9 d;95J2:&0+8Z02,>F%JY2ý $0K?(+8,?<CWJi€§u?6=69=7$@[FAH=@")8C$a(AA97?> '8G4;gkHCRF&?AXW84YO=D 9#48*)9ø9- @þ \51\H_PGSRM<[e^~ ·U]¯ˆŽoBB/6C9'L +F89MP4!H? +/0AC,BF0^974?*!QZ0 4>&!23<22"5.)"1ýI77:Q\<<øC-5920;I :B=,--:*4 [* ++&!0R);.7/-  976'øþ.'52Bï("E8-û4%6; 42B9.@*6"Fb#!##\2"3P3C#9 %U@-*@78+U: .&A@20A@P8(;5S?]`+;& Dÿ HH+' 9$08,.4$-M@ ')C1ÿ9'dSH ö+J=89e+AF:"98,.)/U%0*'E(+99)+ Y&=7 I,G>%$ú<9=+?#$^1tePhEG[a;JD<>T$I/<+(K577? $Z0UhDDE= ])5*N KF&2H79"&IFB$O8EL) $1?6AC-1#$B?/=3_>68#E8:2M>c'!Q6?<C$, 2 548^$4:)/& !12*2'<6B,W51&'9 L I$CA/%1">7O05:10 N +'90>-014YQ,P'T(83RHÿ=‡Ï¢N@IBJFO4Lf=3C;Xo3GBE+?1e;KîLMALM/#' 0->/>dfIGI6,^5E!G* 6C=J!95.269'P>+C22-;<6N)&<DRYZ;88VMú&'368`.Q10H'CY=(:I7ú?^,<,! 83+V/jG ;GCþ'(48(NH8 /IO 5&C@"8:,.3WE9V=`:>$K(#ò17.1N*S2^+VO1$RPb,8.51,D2(). J?(!,T$72*G*@`ï$;I,ò90 :)3'5,N(&\2/&=#&7,"C3/T?]B>>=:44 <7=+0VL )A3*>33'6,h*CE8L#-%1M9#?9FT<OBe*&GF‚ØîÄ–>a@9.V5) c!</-(N7O4# + '<4&H)G!>YW’`]M~>;6$; H-K;7Cÿ/4/0õ3ZK)%7$%K2:DW•´f.K9sZM'soÑìý  +öªMÛ”tA/H4.Q;,]WMUGVH :2?0-F*9)%2,G"c?3L7c=-&D/(03<84%=GcM3FGo;6@8/_30_$47= %#:/(51V+'9<>9I;nL@637=A&&IE );6',8  +:%!7(@#H;@!0$$<*K3$A(ô-%8;@1? E6c7G275;K /ú'7"7H,\$*&SO@j'6*%M8J9IPN)=1& +=#' .'< 6*-9,) :;$07)>-96e2L/+%!H#)=:'9G3)þ?7A916 0$N1 1&ARM0/A;::I +)HP XI=Q:5SJYNKQP#84OhULQQR$MJQ ;K/IG$H>3.W2;'I!aT48)'6%AD$j@a1@%8%ý+$:( X%B:8 @% ("/)C=DA@E -60%>."+97A39ÿI) *+*#0A;/398B0)/= 3<Q=X I1=7 =>#D(&û."hI0.E'3H<AF:aVCGK ;2;MS,C#L@ +4L+4->:]ÝÞ‚/4&#R3?L*)d8:16B*8'!;8 !7/(1=KG?`:!\1?CC85H?H%#<N`% J1PenQ$&G%J<:;;9+))25Cý!&4B/DD%H9\4(K@>B0$%6&)+1 $4 B4).EG<?GS?!/- MLK7+5. :QB3&6"AP>5 0  +A9V , F.-0:/>+0A;r9DB? .H# W==V0 .5M9KNC)#>C" H8+34$WR493N-&E9FNT4.8 l4)34øD;$5- )6Q *@<*:??$$::W~BL  /7(:9)7+$ú-*'L+?4AD0525,"ÿ")L4R>K!.H'08C&6$#8<IJVNˆÅÏR@8B2.B!,:.7;B4H'$ +<D$$/R#,95bN+K>Yo‚Ê™£w[@H;)4Jn6-7!&.@^lJ.A@%C7K?:/n€ÛïŒ=A$FlGLI?`‹Çª —RG)a&'0>:4>,,EuŸEMð^*&:>7A3A-4R&EP>$D,$N?-,1,=6!"0E.D;D ^-,+;J? 8+%B'5 A<5HD('5b)=H1(173,0#@= %$;4DK*2"5"%%AZ"LE*J-/) FG4'E*#'5%9&8%A.?A(- 05;GO  7*;E@-")6*B3A+?&hN2A<`8>0/ 0"9Z%,C:=@.AR'&S<4 '44]894(F-/ ->E9òBU7(8/O(Y16,8:8+4-(96!!32A@'*8R!-+*JL9L-P )M63$,EL1+GF2.;#7#*+62 KMH=J9-\'>21MJ=DD9KBX@%,47FQ<:8(,;404%?,PJH487C=7a5)0-C=&>BNSGE,1!O# +@6M.;25'BO%!*.FFU°8K37=0?ø5$+'%$Z50I=.0. 8D=N19:D%E<? ? d0,* .1G1HH"AW7Z8'3'I(-4Q-7+)#->1E,<.6?C!2?1E<'NC.M7t“A/@1.#'<BK@KIu`9:U;H;C0.5L?NAf7[H,S(&/,!;7=1G:5!d;"!-&6::9;=2I73?t<2> E."ND\18*-3#H*5O+:$:5!-C"3"+  /63(+-2?H;>F2AI3R5K6B9&11FH?%2A!'2MG,Dü28?:4/'(;fJA:)):,I4'!@0%/BCF/@Y?aK'-I,10j).9÷F4@JE!+*/H9 ++"%P\01GJ.%<?5D/0+/M(A;d-F:9CA.ð1@ú+:%$<81&==0/7j©},P6E96626(1L-7.6@BB'98A.%E/5V$8+"70226'EE>CA3*M4pQ‹VcP146"2T"$4&)M221-" 0?M/9&/8/-)h.5fw¢gâŽg2F\H /*>4B5:7BAPO 3F;4JC-nxƒŠ*G%T5EK:ms4z.ÆBOH*P@ -)]dM_azW20)U+4=LBS04:<" .W2^7$ü1 QBX8KH#1X,E<.La$9'(GI;C%<.>>,-)5KM^8D#:=(5-;)_D0('?3;$-%@#-M!':.1Kë# /8)R#LHB)+/D01@ +651%8F($!*'3FV0;$7%I!2,.: (*-#7? (5U6(RDA-)/ ;,SK&"*N,1J03D6OJ8a[8;,".$..7##$&2$&9l&';Q:;9"9! 3&@:Pú1 ÿ(!8A>!ù=1#UG8' !4X08K1+BC:38,[1@ME+&E9>S*>;!%13;3J=$C%e[:UHC@GCXWj-LN?MC!*<Wl9*M-3J+0(5''>D=8(>3*+0B.-6$3AFI*4(I'?q:M+ 7$SA=JCAZ'.*+I¡¨;A98<S'31Q">C+@%1.1Q#3+<ÿ0;D +5* ?E3("N?I*% *4>Z>;5?'):>*-'8H-'-0K4C%450?B3P(((& 5F9c<*eC' (0&%06U`6t{£eKJ?M4:%:#ME]GMYP?8#;!4,,D-/Lû;;>49$6.< ?Q<G'5$#;#9N/(?I78'/F?!-9 2?H(4 7 E#J8D7%A4ù-&,ZA++", P800:("!; )"%6=*,99J895FB#=<.F,;S.DU-.&)Iø'1(]8&SQB@'J09-9P87#'%)=9$H&#*B&%+O16#c+3'@!c?K(Rj/7,CA25*O1-6;Q?C. +T<'%-99d&(1+)72+D%2DO1#3Dƒ…)(6;=)?E?B6(@H3($17EY0J&e',?0VfEI'G!:9=,67>C5UCVO+/*<H0Fp.,)9õ9 #-KG+:5W.;O1NI:4./*H+ER²(^‚•bŸO3"6?BS-*EU(:/;K\O:D@:e2L1PH1gEW$8P9YPJ%:GJEm³Ã–¶nV8,Q&"&3%1^RAQ„s^?U@#3(ñaAA9ŽR+O-3T4FRM@E;b640@<%4@ %%:(HaUNF&@+ø%H6>'--D)25NO1'-8,,=)&+ 4\ +&&0 G9aAD,/&5.#-+2-(512 I1#OQRSKJY!(45=$):5;$2.&,$:C*A636>@ 256EQ#.41 E#0  /<BXH17&*6+DXE6T%ICHR-N Y>,";5BDJ!F%L4Q=T9=(2)2U#]JA@AAP-)C>>M<%,@657-$a#HL+[>;;3P0;-9),G2DZ':.#0M .:I9ÿ=9P<%C:&JH3Y<#5/'&K\"KfBcGD5^E);0<S>;?49!ü. Ug<"-A,5E<;14ZZ'10& !>0!'6LI_PH #%(CG#)Gÿ-P(3$TH%N=ø.GD5FC1AV\1 :M ÿ&101G-49@3"N@$B(X(!Y62!6= ' 9$+öK&@D*.N'-5)81 &X8,(/,$CE D,OS.":J$!BMYJ.,1#< ,G +G30"2!)/AI1XP¦§uT5p5)N< ?3&&&5$>J"359).B1[N68>@&#U"H .385 #KE/474R58U5='2(0+3W02^ N(680^0'*7;3*`96# 41>V0%6\A6B$*+A,8HX7G&.0H'5*Q ?N/ÿV#*1 Lû/D(=>+0? C#*8##6#=0V5NB=M)+IIQC[%*%8/9KO'M?? ù (707"6(7[G/ +)?3 (3+9'*!HO3?K%3!;(#,1J!M93 PHP +?X38"$R.2#**D,2'H*(DZ2,!@KE?"K.#$ $/ O[. %5+#(6A9'#0<+F7:0+=@=5;*7%i[78fjtm=:-N83##3-NY*!J /G-13E86)J*?,GPp%U‰ñ<F u;*A`Qc.(5UD1"1M/712!P2$8.H)<A(=4C?/@?>O?CGk8›UF6^63A^?.(!^A>3.Nc3M`98++î332&)I)+-8> $1!0KC//,”7I!= ma `yI,+,B(k4m8#JZM÷F6ñ)$;D<Zk.3' 1.@),/92E#-962- 'ýL%- +%!HSK:‘LOüm+0 +ûE * $.9:! +<E#,)=1K4"-5'C+.7!AI:ù !LDU1þR(/2R-++SP^dG/OR+%B$)=.*2S7#.5$L4%*2<B$d5N4<@6<S27 D:"-9-C.%43=!:2.< HO80/20%2.*97F8W@70+1MA(-03=24*-/)=?"8-.,P=7?c)I?NJ$LA%$KDG4/I+(M-10@_+B1$/1w73<N<2.O=eA^9L]'0gLö-,eW;:,N>0FD83;RKVGD$$L/1O782(9!2D!+O!&)%)!%1/$L7/+-5-8<25P!?%-GÙ6@'+J762)*+-*&? 7K"*(.M4d4=%84-:-ü C?K/DFCFVNR>0L(6"!0+4Q76QWe¿ª†ZN +IH9&:>#="=I41%A$>98M<@JK!E0'0(#,%'7(@/8&I 92E$ );O$6O2(=1 O):G*8-AUþ9>"5Y) +&!C4g2%;F7ûP23"ð@'Z56ezj0-T>I 4A7/J"&_D9TZ+CY6U=÷>9@&Ba"B@RƒO.&.KB!1FK<013-! /4>H[9F?,L,57 0(!-+1(,'85@39 +6#D0@:>%2'"% .2&D*?0>"4H4UK+7)<@(5.=(=;G77/ %))1'H`M;45(,1I?=;;&6)0@+(/X)>7SX-'281'G0+97&))/!:SKŠžV+"Y<*,K<, #:4B:*9;(YJ>  QK+-?L 1291A'5Dl¦\è¢B3A)10(4.%.2+û:7/)-,LA%%44,'." G5eq=R492!Q23@=5+GC?81<N8/1IWaAI7GYN[abF/ -ÿW%)&Cý] ($,@2C>,I+941OE1 6<H•ˆZ:)P614H-L%*!&77HA?0H91?I7XO:=8=0$> 22 K>*-&N=ñ)7ã&.$ +:"20Ë7%7R] \h)#*=O -*Q0D?%B.:MaJ.lKm Y@/!&]3)&>,%"*%24>=L4='%AO¨•?K'+D*,5 &A:(ÿ.A3/7Z- +$))g8/+ï;(:F)8254!833N&4_*H@X"@:&?*D"'#P1,;%#0?3(-:10 D<.-0@+5#.&+3G-T2O'+2,@IR,8RE&"MB`G20J:?A$IEMDZH3HI6,h1*4)-#0$#B*O_<c:7q+&%B,8>/4; ,%,&=H3T?'íO93û)i+)#5 S@1:9%17<4_2&*V#&;+'7H$)D99`G/7(/+(95-"?AP @%K 80IF/?+0>#> 5>;2 +I&9>)+.e@A-?0<êK'Z14'ñJ=:1 @*0)QB85I4pÞ‘qYS/TU2  +4-RG91RKl2'!,$Za\+48$$7 +(!DB86D"&÷:2 !D/184@5$=$7G,21>a=EF,(Ab0H6e+03!B;G(I,a,m>?77(E/Q&BLR*/l( $>?=a,F0 +6&\^%09^,+8, FT+R9,2= [~=UO!"?1'4X ?:/*JZ{pE6#*%#>Z>05 G6M5J- +#5C"5[?+F!53=@01,$"jL'-:,13(9. +<;=1DPWE?3;ÿ'2B8-^U9YW/L$?^I5*L/#Q=*7%3V1 L1$-@$30@(+W1D&`=Jc;,N»Ðåà\LK!.! 6 )þFGB*/!7‰=,-H0$D3(*44OE^G1QNc]„•* [îIH +F+1IK!I]=4U(F4YOG #!C9im-=48'!J19e/F*?K.D,>4.`#:;8)"'*1.H.(YL ,)&6@&)#!.^86T <>mH2.*+R<70 H\?>GJ>(‡?J@6'$,)OI3$U>1ü1[I /J%904<5)3? )*!60F'317X'9 QA$'6 !$H"+*5>&9E (?A'0B,*s-;A?(B9.'KO?:S-.,3(J73ðW10-+Aö)-5e16@1D3M"'.7G1<?o2,(2I,$'05-9<3I*.<%R2SþCü6<?A4 A1&,0)û0@*Q*<5AP (ý`%*.$P?D%MI/! %6+95*&H 7$%+F70<!Ym8B/P&)&14/6O''AO6AL?LQ)'#5KU><>8!L@E2D6-&<';&;/1<2)263,''NEO''.>67>526M-01/I,"ü/(/-;249>0ù8"'9?-C///û7'L  +D"J+$K9,'<%?+-à;(!2(5*2JB"5J#.1'$ ']8,5^,#$*D6/UOeD*-3-ð*;'KF';#--&$;C‚‡6;3D0!:1<?4CM;&B-@#:5&9L` 68RD@4R007+NI +Gê6##<L1+3 4B=I "F6KP*?I++?4[=B:+DC&;-"CC +,G(FQEk}A?,4+$.%^ALO 1;K67O7- #aK@;7*B3@î",5F)E48N> &î8."/0;3#,AB@YF6(>HT:3k3N$N69šœ…_PKH0F,AXO&/h5 #.d'JLF1!+EH:4VKk%4>QI>E/7,$&S,("?7")9'+"641I=#>8:7D:H"9$ðd÷#88+*@\/&/($FG  LPC$-bNX+9@1@%<4GM')G‘éÀÊjd/CWA)/KJ +:" P2;4FC)-‰Œ#I&H4,-4:/347HD=~Jn©ÿâ'*)!!318;;1:N0@L:0G0.D`=6+$.,-!+6D)-/A,GOBd;#90[A2d030!6 HC f>(B,@ôT"0'%+2{ +3I!80E5@,/=2*2*9:^+4$?$G@+ :4)>þ2<&30_AU"&%&$I>%6()<9G,@:11 @)2 )D=!504Z8 Oõ?0'?9#'2N>1/ZWI$@t2-# !:2:ke†E]?BK;#82  X"W.1(60:128!pe*A5 IF<!>Oõ/>,&N)1,F18 +#413<4;LB);% " :"\2B"6R0F-C(L3.O& +"H/-85<6# ,B&S2-:]A+'%!W?/0V: I026*>/?51087JO!K;?E5P8#6"1R3=c;^* 2,+IEH& 2B%FPK4,110J*=#B3/K.Q%9Q]=A YZ6#JY6? *KAR*Q#.Q"<.+.ADìF_  +/1LS0C!&<Z@H<C31B,(,N%ú14"P)LS#!?.$,),-)>.3*,6Cä.:3A!,.F3_!Q32T+8$2P)>?),$+15*% DjE'=C_.A;+[O;MaX3a5"?E7krbr*?6'E)!U+.8H3H5J^ .37!)+W Gd7l-M.?;NK/3RM]-"7A*A$+-/3$]V,926N.ð&[B. 7B6DG,8.O%Wš¦]H/O;>LG! :1>?D&0P-=Ph@)+>XXJ>5'>NC-c9MLC%05<")@LJ5.1(#< ;,8b7d: 6)0I)8,Q^‰‘T690F'+96=F"A,5."+4 <' +W/-4'-((6C!@H0IG><2 34D28@*S!1G 232 "/$$:CZ$!CE/2CI2,0+*.("5';þ4S3=562'B(5M0'/5?,3?7N?B2I+5ò'5$9aD·î·V80>KM,T/8#>ÿA*-2:/(OO2,D6*,'47:3(8:1Zgo[¯ŸŸLCCûK@M9D;D7>;÷D,$/ C (@;Y50Q2235$02@9?:#6A*41.aD#(<7%>,<;ñ26>C9BK3Bí;,G3-3ÿ,"IV4 .S<HCCCC1$ .63><A0;>D.*:,>8%@-4L("56= ?f(A+0$,()70!1*#,1" +)><.A"YiF[%2'ÿü"X)+!H= O?%%/,/#!/.-+V>7+:(úLDO+59a jª!BH3 H/0,,3<8VC>%: /P7D"E43!1ó9E4)-817/4I$@'7 -6 E%a36&),:67%'8G+$"(2*6.U9;B%K*-A(û-+÷,29" >H"/%0I%N'1<H8D<2J>E>6\L$/W:6:G23+L*'5>8MS-7!9#/F#'E#59+ilcTaN;E^?-: \O?0<H7;L4*"&:9P8DO0)8D94@X(25OA<-#49 ]D$5]E'04`2 +.131#9S1-)*7"$\r\ @9B@3V(3)3êü<O%)8,J6!4/*&14#:D522'C.$N#]./$3!D8:`,(;F CD-)>%#@5\X!*HUJùZôT9[67T6: +?WYFsA!F= <,C8KAI*]‡"*"8,!,&&øE 1\=>5'.":H?7&ü)B'.G)?(;J +OC.3+0:->GNBU.034E -5a¦¢Y2%P<#ú*A7&D;+#Pl62=%/G;+6#:IK L,C;'.J>08=u<DK,<%8/2ÿ.= /<0L"= ,@EHŒ¤_69$%0B./L/ 23 4%0/2% 9.B==N&(:)!+?8GJ<2E0F ,G98C,>Y,C<8MY MY?4-<8<4R@L(?N;* @,=PC0++:%/hS 1*1!30#E<<K=)B)_MdP3;^864<A]83;# 9F>W+2%$;45EX #AIX]$Ey>F=86?9<UT4en<5"%'&<%'5<SBU,1:81I@*$G0€`>J +-'37/0+3-(6<@=8S820f+@òIEY!Z!@BK62<H(@@6;O/6A818G;7<<üXQ9'P,&>--: %7:<+J +5=;:&8C9 '1W9õ"+:*û3-(VB*A1?4&V"2þ<)"H>B/'õ' M<*+<*-8%ýP$D,-6 =cgvuËÆNX6%]CB#-'V*;.t%C/;CO;!KK'Q%=*)8AE(D-!?(1H**FFEG/=#8)S+-H< ) 0P" õS<H/)/,,"=!7AC+U2%49=)97 D9= %PN9/J<ù-4,32 <:?P[8@Q=21Z,8K0-:V+/)]8XG7 T(}816:3CED*16H(0I-<'*(2 -G:&=9!)#C.& !D%951$>C=!M"( 'ðZ:3&H>:9-3Q21"8<X)4-- +9-*>,,%iM1?A-B';4-*U)*3  P=!,J-5M0)/3#4I&#:H<"&8621+(/E;#$, +'$>B2!-<E[>kaOD#M#EuIN,*<8EFVBO5o(AV? $NN‹oX(*!E9;$6583@)(8VAA7,.@'?3&3EFC,0.C2/D8ú-B9F*0:J)- +/ 26:)NM“y68^0$ 4P3.C^)/, $;A3C&<E"(=G-Fh/2N"#X/[ 3Ka&0*VE@I$(3 ?6<"H$A;A%N$<.%M sUM9"J+5:*D=I 8e/EC3DK:SA1#%4J@$8;$ùE-$>A2MVC?B*-%0%4N.5A9(/9G<+WE0,-7C.HY8D#_GF6&"##$*+7H*I(@ 4L5<0+B3.3EH1?5E=6,<8BOCc%eX9 P)BfZ$a5+O2G  7.FB+=8M 5h3Y?.<fQ:$X(%6=*SM- ý2<5)%6>L>F%ý:?;B7*,Q*,÷1#8V35>K20)3)8.32*C4%.5.=<!_&(8&>&345+ V7<44 87HD5 &F(*+$=/!&<*<c/R $\cC0MI110P6++-6;:%?%M?!?J"%+42>28@ þ^9139G53N8I<78$- ,/6D?=.9((%÷1,PI=BF430>#/BJL=1FFz mýI<+)C4$;%)G&3(.4 E="*P6NG6@6>C$R2<`^-)+<<.A-ï<)RVG1%};&  K=J$1':0?*Ba53<L/8Y(B%0 õWO<G+/H 9G,R5-*0+1A=.3þ@ó-087C "e= +31&P*gE>a#G0BC;04:EAd1-hL&@F&'=5%4O= 6+(E35Q'5-$-&ø/'?(**O/4H<7MSI5."4!(%'--/=+1Z!'B-+H')+I2@5+2 K"JQ9^!)'++K7;8F.2þ (*6:7%3=BB!F.'L)* #/5?;%0B5046#D=4I;?G)K'B"/*857C7#64!O9)77344@B15..B3T%?Ia2L(430*>3]I«ŸÈƒh7=!:$BE : 21*32 F,<M-%`@=÷1-?J%554 *);0!08Q>O5Q"*)5M)*;$1$72F3A/.$;U ;:113%&TUJ(&H5;*H3BJO(7+D,>Cû,\8V34"CoNW:=3F-3, 786!(C1(C&N/9C0!#Q(0)D@MD0C09@G.6%'þX#,9A;=%.9E L+7.E]KIE5<V<1E7C.@77'>#80L"K. T68.3(Ca28<?,=F/>9(/4Y:VBB<-)#36F*"(L,8ÿB$%N<N*#!"?B)"X*]#&FS14';=1O'/20C4C7#P$=6>Q)A*!/\, .4+N1KfbB(7L;"ý53OL68GQ%(Q,Z$=0-GBET258..,9L9&N7U;0:&?N-C06G6T,4N (+#MR!X2-)0@4='(+A5<9 212IA#7A;"?F9 +#32=*<$$^0239*'6,9@*U(;_=ù1- +2&3Ó/.4HC-6:$*+4  G;S;(,íy%'J84G>*4-B+%,O7E%!;3G3=:AGO=-_PcLA$-#"+8"3%(.Z> ++  8U91! 7I Hq,H÷*/$I&G X$7$#@(9)7F#/>B B+Q80$W% +=E'E7Y539%$4`=<2:::KSW3:@96& 1 2;@(8&6,*P6*6&#+=,1SJA6<!2G,2N/\;5?'-QJ%. :c(.b4CFB`I5@)9>*G4F#Y)9'5/LC)7&PJIj;H3LH7*2;'7A5' V#+'-42#%7-ACE)K+ Q-.9&@.8/&7 (%'=:./]7$U!)%N4;*#)ï/#)S0[9,I<%2*2.52SN:P4-1-%/'T%ù(/)@'.&A-12 46ì û4>,D@-"5$<7) +-F;*BâD;K#1<O<2%<ML?)3IoKMMë<7,QyÁ +KÖSM6V0 +"M-^,3$ ,#*.j,6 f@7 );;J-((^[;=2 ,Z,; F:%' "!C0$9*DU+:&.P@".($"j"UB`#G!B5"7 5'??L'0E/G!2&2BB6F244,ad)Z3HD91H'.4' =%=3364&)Q$2/9LRSED2AV":CB3/8U4^3&C850E!3+)4*? 1ZE9 .);2 0&]CF:1="5>S.*OO&9K%(1C\J.*&N>#IGEP04E<8"]: 5-*/+I+!-8 52B#D#?5?@0*EJUA4@9Q=@3.*&6LL*0d!BUFINE+30K>+3*96@L.)3,E#'Jt%,#$/Q58:H,O1+&!4OB*#;0,AC$1H9#P"*&\ ),+B$9M-3:1A7&VB*L/6,79,-A7'@(8J$>A'-&9<BU3! ;-4ê*/  9,B(7 *MT%3/(Jg`7+,þU! >2*"-+&&EPP,H 2:&F3='V$70EFI+JY:+F,=23 1-73:*A2O;+R%!?#I;43 +JQ=OXL><3V\<H‚58)<P'7.22Y!={uG0/?1XC5B,:ÿ38S(>6 E0l&= D@I"F<)B5 +3 G862/=3P5I>&;;5>'=S8(!O<9:)X' .õFò-?)*ùA3 +,C-?+<!0322BB(3aB&C93=(1(j:F@/,7P2ú:9] >P.*62-UCF*!8?9--2I&,  ^C!* >(Dc :;/G$-;'V;8"/0&82AK ,&U:)B'81441)#'2 +H@98FD'4Dÿ"8K;WP90&GB'558+.P&%3B$B"S*%5J7&$4ñ47.@5%  +  "!#9<A? '*C!;!6'e%8B="C+L,""5X(]9@*\K+:[&M98# ;JV7O@(:X{y¶`Z9?FAcÁBgùà®BI7& \Q( (=17/þ5% ;-/ 8C, T28'! LGfM}<1þVR)h"M5>5*$:($2J>H7(t+%2@ú9Q).E%0@//N@12,8%T,C ,XG-OB& C <1!N 2ƒŒb.^-1B< .6#PeL5<+?683+C;0VUA%;E6%C+Y!['.%"=UL:7ZB40G6CE!23.[1@@ @)TE?Y.8*PF(A6@52D4$/L6TH#L7 <=;65G +#!G3)7ú5B,H1):L?I)XbI$4L../ú[XC .:7o&)AF9078C$:0*"6Q3"TO"<>,">6'6*4GDN)H6G7EB$E#?FJ*./!;5 2E9159@59K=':)6$'+KI.A(.8++4N1!U(BA,F"bK!5R*/I%A9 .M' #'O"?%Q>ù(>J?(6:N=#,- +,07*43>0,1<[1H"DP1;5'9>05*)'<4#".+EF8+,@ (-/74:,5:5=,?6+,*+2'.F=%=H*/L*LTJ0>(0#2#F&7(Bõ77)+4 +,+ü%&û 2(/5 +L>ü/=AS*N0'/B2+4G&'þ,S)5;Nü_LJ8==3&#(7<M!./‘M[6Be$ RF''3 18.AG.0:)1C>Q <""K?F'J/ 6#@2"1:8QX>-+%(>\E3C;í@B_: (4,7BR )/ý7.CG*#I,,@.+ÿ844  $& õ$2'F4H:966<:%>C7:ó*.4`PBX>MMFm@.D <F9:õ;/2$PL/ø?@8D&BC<#>/'5/#(QH@D%9F<$@;''O2N41F!J8?7õ>"#F.H+42)$4(FE(N,EL+J!&G7:)\JLZA8HAa +7-$6*08OA -?";R*!HO\)6?F&B8">?&+W87Vl%3'ô+635RE#1$D$9"/øK$-/!)F)7E +.G9764@G@';232>- +/+H@:D3O@q†‡E-5?=gk¯'ž]HCM-þ,!:!5!*'Q$4<8ÿë*#\-A\7C6:4JE"PDc<P3 < +;A3&=7O.UA!2 ú#;;<@ +-%E'1&1K353+356;Liø># M,95%.8&N?(+%,(06B+9'#/YC¬°P /@12R?.;f*i,@2$óK%-PCC'B&H);"A!J'3,W$#"/D6F4Y<<6F L%!*$J:L[%?=`Y3F.+A,P,,L1. C/&/HF8;.;?8N6SETK B +8#*"3"772o +4/-D.=+>U04B$3(=PK';U&-W0942MU=@fV%A10+6A. +hJX.H&4&ÿ/I%/A::#BF#D1BJöH+R=+;F#6%%E#Qd?D,;*(&?,#0 &dM ú/+0%..I2/,fM@Z#1I() :#8919/.$4/&0;B5P50SPE:}KA33 ?= ! 1()+]<?8L'i!FDKE()b6M`&N!)@GúB;/2H-<9.*-,.(6E +:(,N:!K==ch+''.(&E/ +(9/<.(9I,A+&/*:36)* $9-225 &371#$##0H=!33F9F(;#-% +F8MPC$9h6<O!+"-*@V,>@SàuxT;6K$&.=&%B/E:d  -7 0&ë%P*!K:0'W)=#:8 ø W "!E)&*B05,4<F.%##5*((4B&g1!5D/,&G::65#U5@,,3.ö/ø>>@YF&,)>7"0=):A*+1I(D6/4=VJ<CVCWH]7D$ O"1055!:!C '7CB19->,D#%1,&B),;& 2!+57)<@ö2I:W.!%649#,=B/3$ K3:0' '3G.HH2@F_E=ý##16744!4A?-$F V8,-3 !F"#?:5:!0?:@2)?!1)EQ0K@!$@/@:-X1+) -%GD14*;"#M.F:1<-$N#?U=3!>C1;8;U81ACKO5Jv‰¾À{5- H #9%'ñ%?>-%/31#L0A<eL*1)&I€,7^=:^M$ö&+7,#[ 5*4 +,=?<N0$4(N/8(*OA +/E2X@R*(@6$]",9@-:B;1/;G/=/5OEG)<.=)J-0J9)5@V5@HJd[ü/'D#+ +#H7"Q<6/(8=?"1g$9-#?*.)B0"4:%!),/9##0:o)""9.9S*"F;BJ"IL&3 $A082U;^0;<78)J3?A%G9L@V8&'8" '))No%0BA>6V@/43N,WA<g5F:=DL<.mVB-B@I^GEJFR#HFM930-E;a ]RPD8"/8!CQ<K-JG+.&L-72[”%0!,Z?01*36628C"(6S!(4189 W;`1(FZC 3MH7'1 $13Eù/-.:84G6*g?8<L/8(FD+.0-83U&F92E-GR;_>:#F1'H+D3 M.*=,+%:BW1þI%AS%7 CK600')#8'M3?-28&E8@M*^="3#4G\Y>X75B, .+X';C$319@306C" H'"4$$Q)/44&5M'K82&+ûMG*7H/1[(90%9BD9>,P$g‘_ @($(&6(5 +FEA34DF9ECA\71/I7.5N.,+(.&I%5<&KC;@+/A5&+7U1U:,"1 ,,56(;& %ú@M+[(50--"5/G<(ÿ0!1*G3#2;0# ;$3+2J<)F2$7E5?4LT&/]J;T7+GC(/&2KH0 Fk55*DY%*$64790I*42C@f=?!!6%MFE=8#A$ B3E;'<*BX?JE)/õ@40 \4 K<0#E5mVc] .99 82,A+=B %6æ32%@*,&""'R'##;,#q)1$/043XH' +!</%?2,>,32 ,) Q2 ]3*54&2,(/õ/,:;8L93G*[R0!#52?bJ@OTEA;=@xoP5Kÿ7I%,85f_E5/.?)&42V"<#,3/3)<"ÿA &)c<GR($J%![>F C050+,DKE÷/L43%=#($/!,,%-@Q=71#P'-) ">C1"2KE5)D.AQ" \ +HN';7_&9@>=A[Kˆq'5;RLE!+/9'9?o)@:J@*)%1(^;$13+1A<MV)U.!"2?<=G&=%H ! ++8<'-^/%C*!(&@)<'MD$,B S%*AI$'B(JN;*a+0.S "/TTLB;N0%6JKH7C2D233N;#(-:HTS@6D$g'>H W>?X$?î/M7&]&ýG2RG;M+((R4;R+:_?h7.AA#FBS4BL4"*H2:"E+km )9 /4<65]/ð1*.ÞG*2b: 7%;K.A>+L*GD 9"'<CBp(/1A9*",#5NKF<&:H;*TW.;X?7"L!+`O,A-2! B%F83A$b?5H8%G=%'HF<>.1$EI*E(ø3D2"%1R8"5"I)' 26T"6(C'2) 6<+0&5 + $=+370)$2 @.  (<1,K< #('3%5+2#/B>'!O."23MF*C5%G7#A82W53HH)$9F1G-?*J 7Vr%JFFIFC+=j„P'75+&7')<<*Jþ#V75õ+8!4! F4KI% c0W0W-1E0A)7,".>F9$IH@3$FB +FB,D,I)+6 :!2%ü0!P6>n@,%H"$M8:(4K1"$'0KM??$g<HP7>"<2EKg."#5?2@G ++9;6!5L1$@ò6O17Aù-V:)E5"21_-1*67$F=D/;6B*XOH=?PD'1ÿ")(: q9W4891):,J<IF37G 5?<#&='* &26J'*#'#þ350J3`:<.S?@žcWJ4&%*, @,"^:&"M% 6]'03$)2?:$8"?<:)ú>>?5I3=/&5c;7&K)85*>Jð@J+@0Pe8[9*F=:EK,!(BALP$%1/C0"34-0E#3.I,7(!#, +/,!&4&3#=.7  =8<@,'.; !&5A>J=GF+;*(L(899/I1,]/B-`2'?44#hV4c "PQ;8)K=*8=8%3QW \2&-Bî2)/F(2F&/Gû6V2@þPM.%R0,#$I#2ý:D*.ZC<GND9W%R;4EI%<;- E2<DD=Ak8@ý8/F-5((240G]#I8I=Sñ.;B#D*,D/<)# 4JKND4"û#60/"54*0@&O77)')*X^Z9.E06N$'+*.L&L+<*$?!+'8F206 2&6T\-+%AH97I*+g,<EL'6X>>A:50 +698_% O+AR04)7$)Dÿ?- >-O; 1JP/ /(8=4ON"A$V3!%34û! RD.<(O@X-@8/"BYG872<'B7c%A1L <9p?-/;.D"X8+7D4F:_+%:)%)$?:íBFG2"5=ý$!ÿA*''1"û4:A.#06<35I-;3.=D5G%*73/ï;5 0*/,!.437G6/&&9'0'"1:I--Aú4._&:2M:040e) +$'^2  7(:!!3"ø!9;4 @H?>3?.G:?U0A -K:L‚e%7E4+6,0,5-7#4J?O%),úZ((= 46I949L/#3/@(-72^%ML #+>5H BK$-2H+- :(H4)/O)B*>*GGD5534$'P:&++UD5L&4]  &D E6,.D3+I?!50i)3"5BE?0_WõFK1W#)0&K/#;&KB6$(; úB*úE43 +2393)-" D4:"H &= @=E 09#%;2@-6 QOD&.A2>;VOIF4 ?#&= gN÷3-#D&=&@FH1@/&I'?J'C=‰)8n),A!40S30@&*o:A$`2S&+U,6Y&H#4KCD&368T;79";Z@G Q&50&@I*B#)/I49/H.GZ82;9D]4M24O-GGS."=>9m5699(EP!8;I''=$R806%8&DAI((+?=*,*&4:%4.4?!+;'+;*.e4<H%6,-jð38!9>,-,U/%27>-&*'P.#')Q:<8'/*02/#E54/=6W.:72Eï;#2929@þ7-L"_>A?/#XACE#F3?);! N>_ B:-Sh73(=73-!/J<6&?.44:!@ 3%ï6&D-@8!ML\-G(L6$0&EF-&XP4635'<95g6&870) +"(h!$*A,85W# Je?!2+<! J+C.F0AVA,8CF4+E:<K/B(37> "O?:>477SE;);K-38>&7I6ý6+):(HP3H%4 </?03 41*&6"(>?ø*8G7›"/<*2(Q+;==I-3dP13!2.'8C=KNŸAKZT?><1,([F806(]738>"-#(3C,M#[/gG92& +B0"-I( +H +/M61@K3O9$'6=;<)G>!SJYK8.!%**8;/ 90M.2@ (î'ED?R66?%"<#&/G*<976@T8B-$ 9f21)(45:2-;#+#.L131GH:$JP!2(#1UD7B+&7/5,Bõ9E1(gýD85..1cP*F6%57V '..020%+8L*F<*Y7R#(;=,;0<$ 9&0*#$*5$ý))&6?048) "(`2ú$/4.%=ÔY./*#+0EO8#B+/0)+7C499F4& 0= 0B<W]754T0H+B/L+9*8Mý0B<0&8"6&3U% &'4ô'<%CN3.&>F0#8. +%-,&<,5D(:=ýH..6DA'#î<(<68N661'T"'ÿGA#$E@*G(HMN`U9>+OB(2ÝHA0O?àlËï~?V,*<60?1Y0 ./U) =R2$%=5#(jGD@39 _$:C+ M+4!$) 37A=07>&*%E38IC5L'":B1#Ji87Hal/:Q8#:'1"4U<K0?]üV,   *,8C+ +<>'.,#-0(*S9Ll*Fä@7MHD2="hA)8**8)3-5X:?<30+:0N2)//`8288(*.!!1#S*=$(4.(';+ý>#76 !6361 )fI+C$+R/+7B."J9C 2B99/B2#A5-G1*73ROA'@APd)P%E-SFý"O5AHQI1</>*5D)B9&-$7þ K(P2J0 B&&#J\'+QGA+/ A.'?6(D<9%.E=.%+1',$(6c<2ZIþKB:)< 77/#% 3>.8X)$;/\N4, +; QN.H[iB:O@#?7%H[694!5#QIO @"=6.3<&-3(60PA4"&`18+4<a_T;5YS6,"1AG:o¨ºy]JM<2BG N&Me&?+6>+2$<'3*59-R<L%R$G(&<,2;&&ò]!3-<8<  #.>l_CRQ>V/R3)Ick!,÷?:EðBG 45òV4 IO_96:L;?9'6 .=D&I"'FH'$IE52 (CA6 0YF,&V#;%(-N0M4"$>F48-#!%F&#T2Gc+3;*5V0\,(=7%88B.&;#> +.*Q3(RHó&3899I=Q7(-@3 ++D"û0X!2 +?#-60FjE!/9+J+8w0B.856N$0+.8CK", 24>L/'0%<,9<A ,FC!-(?!-ó**)%:" 'A50!M56H35<2Lu< I9KU+0,$A&:  )1,MJ+$7?IS>1T,01$(,ñ*&1D (1K,6?=U*CE5Q-6!"$)"-:&%1)L)TD#.ü! +>"/5%<3I(2C*\,'*1F O=/@9#+S=V/-'ö)!PlZFF$5V)HD+4%7><*ì 94'I %C0@$P-6E?+C7@;a_57-:G&L(0ø;*#>S(3&D0!G-Oò=<9zAD99"&s3-%C8;G@,/P0;+F Q(>1' +)9 x( &;/:()4%3G*I01+#8+G@V%, <7,% '!K#3GAK9-IP=GL)/: !A/4&K-IþOO"!AN&:B82;GcP)D%45 +L 94(Rb35"$%0 D ++*$?P6I6XVAD##0J4F),.EHUF)'0#. + + *B(=#=!AG`4 C1(:60?EA!!)/%7ú(>Gv + 7PR=;0> (W/*$'9/V;H'",2M:ò&%3*/#)!;&,'C'$&<*"2/?#EbQKF;NA0./[GE-<=+74A2KG ?D)9!RüñL"> '/& ü_Hd+M33@7&;ø*J$-:[*&51/K E,<PY>;AA2\NHJ<. +,!NP?N F@2$$#20c@_¯Ì‡J;8P9S)G)A*/-B<,=+2>H +;-130B(437)T!?,-8H!% 5D'&6"14" Rey–”Œ>4H&X,'!( !6, ;=<5@3#7!/..,%HO53þ5.5 c.7)ó%9K>:./$.9ÿjH-? N0*G2:59!F4Pÿ(809ú0ý"_8!..!L:.,@ 6. 9A B=6 D4^M&MK00?K%00LN?535#6.$8,+h&1CS,*(.+J%8$ +,&$éj8,;&)i05>"H94)4G<C/TT#P!1)#)&]W.$9P<>C@ 7GH4%DO:HAC1$<,;K>;+02>bD*.@g><&N3,=,+2./.(9A1/1/9ü5,,)1-L1/(&&N 24 ,CLO=X)/ +B;:!\0" &&14KE-#)?hM F !;!<75&0DA/#&12=H@+"!68F># 6%.úP+0!K6L_ 88>!-n+3)..<> F+D'JQg, +'"9-J%D.*\R3<2:6.?/GI6B7@2/*1*')8/9<G'N@50@.OG)UWS>D =QH.+o\ )17@GK):%1M$#48:>D)I;I(&<V0 O!1)P^F12%$"M&HD6>:(.,5G.)ð/$%0"[<J $g#3g<\?I,04,-E<B C*",("DA7.< ;a00Z/:JSA ';:37'1:#:5,&<S>>0"W(<F/4K "=3?-[ý=9<GK2=J/%)</ÿM2- 2J)UKH;#7'*DZ=.+#G0?"NU71E(<4S)4U0%B)4F$!F*<$HTm= PI8I;'Q/$4?'>&'8D!9-A62(-D4#7M9J1K +B;,A8&#(='L(!?bB<U18MD (910üN;<A9/'4$-$8?95*39AUF#3/1H'$þ;7P$/K#*32 ;<fg3- (5R!3-EUA&D9L+;C 2<4=P`жY I»d:TMW65J1)3+>5JR#848)Q3& =-3\Y;$0G>G!0-15M8.@&3I'"]&0.FA7n¥—«nxRJ9%(2B'G,&2ÿ+G!<(S 0*(4H$0=A9I5R<B3#øOgE>) ?,<H 3$/0#C@C&X\!'/9"9*)$%0R4E8 X/87D6 A,3H8VE-& /ÿ&;$QA$/?%I:-74B2C+.3U:*>@65-CC#E$ O.9AG&I<>G'/ü(S0E 854J"N%>6$)/@4"41-0+7*dYPA%E-;;ý)1ö5-4M#[)<Jû=#0S,,A,=R>@JH:&."E2,/0,7/11#"%,<!%"/E6)@$=J,/+"#''6<+-3D +U 4 +%&)&#2C:U3%8FF6+#@%K)+ 1HW4/2955V56I&o+)I9/1)/(T2Þ##D2$ @!*$D7E4Q @B33Ií+,%n!)W-*9C509?3G>*=-<$,-A=D6C U5.E :&"24*E +40/NIF;'@5JL.)9/:$/B/(G862!*AE AB?KST2$* )F4*48&1-=S4*`>;/%L6GB40@8@8='C8E3Y73F*&?!9@%c>!D=814F#(& D32M.G3;6IBY7B8@K_B&mN&*(@%(û1Am K-"b10 @2'%AK31363)E:IE1W4VS5'V.)c#øA<!&(@%%L3<%&A<8ý+0&^'8'-A2FL$/8 C$2(#:/U+@2NRL)!/2__8. +N3T318@#4@ 5:*43;=U  (<'7H'0-%+?A5>1CMP9éL'U,Q-58+'=" +E8A#@8÷ 9A%86@H%14:S2+1<CB9 ,TS:3ì51E126 +.>>6H4-,H;<gRHF*!#0!$_91N+81);.#89B;1I7<?):*)(7J+PO…Çõ'$ãšJfL560)LL1%A#C+$ %-+.45]&+830'6*6F'UP8*9N>!8 5&:>E)9@.YlʦěK%>0+3W- X52)!Z0F"1G< +1J.:C>F!0(:-9&J2#Q ?O"'7ñ,"#( 366( J1)%,IL4,@+4QZB <'-:.(H48C%24:;$>F>>C8oMg2E"7ú(.0M*Jÿ#$5;,,#;,.00O4MED40/5:!%ÿ"4+/<þ%>,9B#=#4H- L-3,+5.0S%:0+:(D;.j"7?5DóC=H('?N0V(9"5;84+L:2G)G]&B)4HD5?.=7ü%)'>24 +0@5+(6.'7A5'.*!,\ö) 8=F2E0 <3L6(#(41)%,A.$,04ð(: +3ô7A3KDE' ,8 +FN$%;'%#&"##ML7:%:.?7-5R<4b.:#B1E4FöAO>'$ R#3(+8H6B28"9>&" 1 AL&?$1$4C;%DOH+1;- 0#0D "EMO3- 'H%=-+N'J;)L6& #>=&/ PB,*D5&B'! <($+-,*7bF'3þ5AJI7'"$?2$,N8)%"D JC<5C(N=@R206Q(9E/BI_7)</:=(4E99#AF7X/#,FK2&EQ5!0J@"PB.T@ K+7"23*S-!'K'*=->@=*ý,.E'HJMJ2+-'5.@* +GO=*%; >: -ó<K7#+8P4CDV!D&D/E%5 @ò48E1-/+*9i@2>4P3G,;\=-"JG_.:5(!?L":2$*8"O+@,"FA,!6E+B(X-8-2 803'7<H06(-6F!H2+#<-&M +,M9(!+813D÷@F!X;8394<'*D$9.LPQM4HT#')_.0>5N@/=105@= 08B6)ID6!2 'a,BR2.TI+FD"w3;,&,$-/=,+)7)A7'IR-KF?O;D@XG\̸­R(àƒA>J:,JD5D5 5'gSA 0 77> !E*9E'2BH">S=1E7 +,0DB;4.)#L&ú'"0+,XuˆÏ£ýÀ‚ƒgP^81$+@ C*4'-RE[DDA/=@$57J6[0^5/+)6S!)'-0 )6'@/&'@D54 8,G-038.08+78 +4<K8'3 &(8='"aöEH9:?7./E/MKš:.(B<:A0(/%QU+#5O,5R$ "4.D7#  EEN&D%1-<L6+JH4:F /'( 4A*1="'?.0,.'O"3#;û6#4 ,3Dò.IBn'%)8,/'<6$9<+*$ 2<+,<@8&%,/^.FZV4B/9.1òF1b<PCþ=9?'-F& 65C*LI*!?ÿS4D3V,7"&+('[B;$=W<þOG0+-0:>$,C) :þ7$99 ';2O:4RC!&./+& +4(*>Gï/"B +2<>/;W1734Z/J9=?+;575F*/& >=0 +A  ,> G,</&,#M=G!9&B6&:<.9-A?_0<@)05K .0;@*,9H:7JL )43L>*5?8HO)5APG8/+7R2=92O&&?'(*H4*!'"(%7GL88F*?2Sú2 ?2$L#RB8.A^BP<þL5)[)A?D*7<618?53',P=4A<D#;)EXF\>-693+.Q/25/*d<4/H.!P">C!;BX>AB&6!*$45:$0-'YE. ?L?3$J !3/",EPKD, /@@&[D)'8#BLiY1,kI50@BXTC=9"\';><$TQNN6_3B<N%. +&7O>3)7#%E8M]aZ8ED=F@#49J(?'B=A-2'<A.<K=c?O420<#;)=0.D:!-3F;õ.-0/# (9B0H+9+$;'*PF +P16)L3 +77I\2%0]/BDA)D9R0 #HJ1@Y?'+FCTG!"3&  $1G ,8Tò-$Q ."C= +@#C=*@R=3$U…¢~ɾˆKa,RG,<:*  ;#=DG;,2&B2L,1<134FA8%M(  G-&!'G* 3;$>DLZawYåâÿ¯xq; Z48@&=ý'4>8!F1t@@G=M(X2&2(F1?;"&O;?A>OC(&F4(CBLM$1?1+V:"26,$LR +L&-4 +63#d00ù' 7$<EVR3Cùh@S/ÿV>V@R/ü1=.)3MD'1 9(2!c#3#-Z?&51*/G-<-22,8-42G:! D=1B 6PF=!329.*##;S<5%:3(aPD1.õ+6E"7(&(./6EH:LJI7&`OPKDM*6 $3H-X9D1%> &<:H7#?-$//93A-0 8$@"<ý +)0é#B/5L8-$?311D+1B$<F2!?,@<(6*26,0(1,0;;: 1>E0':IA3C:A:<!MIJA$2E$D(!>$!/$,$(4CD6)/1'4þC-)5" AB-- +8:/1%H+!A#CQ ; /-sJ.VB0ID:þN5 +d= "%]!/01D&;*2sA6M&G.*CK"A<A4/FO2:0.ü?+<,@) D*C'  *VGøR'(<]-8H,+B97"K=ýJ%G+"&FL<J4-7'(4$(0$4#+;7T;H/K-('2##N0I <%U,@)!C0'/9EE +5.D]6RY %,M-H>%BM)G7%7M+$0> ,%%.D+H+3=;);%F)&"A +6+"";+/0&C#, +6 HDK\>A'F,7/+S>D:dED>.*0$7[vsˆL\/ 6=!A34IW2*'7&14M.W*:EJ.=.H*R.P3',*5^8GD-=-%7.2$<3-C%&5'8N,:%9ü6':_?8EZ,R4L5'Q>8&;;& +B"=0A0TG9þ%0F0% =/(6*>>$)L?4HXFIgQ;(+5+%)1:C.,2.<L1<;C<19-7 M$Z(,NOBŠšÒ°žyj?>3?4($EI=$MQK92"C O:!>)/VF%D!C5V:#7S8+:=&4C&@R5,!*E'G_L”ªÄ¸Æ«mA>+@V3 1.KrNL8KBA-2"G5F#;'/>% üS"$-%)%C&I_G;!$5-:4*X"0$:*+ #.#,9';%J7'$V;>3.N)7XB'9*:B1OEC8E&5"7'(8)$5A676& 3J)D!E5QD61J02=9?/E+K%)&$G IO/D77(8"(U@$,".6g#6õ.<'=AZQ;F@.3K#H*'#%9W-/+>;\22>)D& @2)>>M16257J<& :9B&:.>LO O)3!=&=48 #PMH6K% -LK4V.-/+I1)>B6;%- C9MK28"%#AK0;;X+93 S""2!4/-+!>, A<'8">D$G#O'('0!%&1;ô*"*B6f./N.N4:=83%(:8AJ: +8C46@k>#"05UW7A?ò%/?&)2$7[201,.+#D%/+#+<./4&4N4<E193G7_m:,Mj=P6MY8S#PU.[;(:KY6-H.'""9 A?M1096,^>(/,67'L*3 4=4+*.3@??K4%ø;(-PG!'Fb9+!M&$2U1 ÿ* )a3$ADN&37WB80+OTÿ.Q,<+B2:00EB1=!=7\.\.lK+7#JJ##8(,2ü2B2!#)5G<0&?H3|%/FA.9$!(+);*AH;!w.!Q &K>:b36Y?%?1A>‚Äù¬„IOAE-1@(-/V1+L74J,F"1 / 9+]93? ,,N8'D14$32!-b+IH;N4NB/Aw,-6ÿJ!5O2:3W.BY"`#7%"&B)21'4;e#'(-;'#*7'4K15xIC0);T6N,$,Aþ75/H*6:'L!2B+ 42,25#, g:Y.0  83þ.ü)@+2)3)XU,8-VDU{DBLIPE9A76*MQ'D,2& êT9ó#5&ò&'ZF&/X8%E :0V/E32D:4(%%,#5/hYLq‡Š7FKO&G+;]38;<`CQv^N#"5,:D!# ù<<9&J>#M 5G =%>("" I5<Y$:"8F#97!((27:W9/DE9"8'>1(@0WF-N\<+%/22*+QJ37)%&*$ +8 &< B4.6D3+K*05@ 0ù?/6"R(B$<."IJ .E8 'øVô +5T6'%-I3%!\@%)7*<8+ !(G0'#<86$)02***?6+V7;M &"J/B ý9/6-1T P*-#6/Q?'*=/=6AU&202?S)7A)%.F7? ^$( +#*"('.DEC$-+AG=) -1U#C)d*÷K8J4!$N9 'JQ ? 5CB 5 725/H+!I1 6g R 6)%@;X>ø2%'_,*%F<UB#-8"5-2E0 +0_<Gy„P=>Y=6?%64B:E35#K,/+5>.)5/:@10*C9@A@+-(FAS=/811E8U_%6?PBCI@*R`*+#&481'!A*]E70%5"V/-GLT%  ?87?8/ . 5+e#;&<>1X@&:11A##!B*EC%$ #*1/+C(.>4')&K2+J"64>a#4QC45+91J)dFH?C56:B84&bM*8WE1'r+2)(!Y>YmP#O#F3@26D?9P,<5=(".@2 +#*E e&9_þ&*((H5CRI/6EJkj4<K0™ºñ¬YW62'-.  $)+,P:7,D#KD $83+23-4ý'6&>Y^?J3-<FB2X"15%7):I4&&.,,7I4?GGb>/N5.9 74K!FQO)  KH@N8.0X.83 4S0SY0GS/G(%VI<4!OF+D9"'C2O'%-)AL+J +)ò">.,1  331P`E%4478SAB2F2,NIYZI)P+F6BGM:<S'd8Wp6+*D''AIZKC<!81s!2:&:; +=.&0@ 6ù8-1&ø$ ]2 ",,GGFK6NTcoDTM &"1</3:?77PWs\A5&?"6W;.;32,R%76@B)([,"8333 38@ N"5''0!(HR9(( +)D%>:.:#!'-'/$$?/5B.Df7.155IL<I"'/P> ÿ/R-T1*&0-0M0@;X'":"?O<H4 5:/@2D?"6(">7%;F: 3)+9>He10?171!*=>R7I ?(0' FI( &!P?*"@"U'4 D%R%12) ï%1- 3;.V!8!1$!@&.0"3A6:(F?=/%%*)6j9 0 +& 95"!:-+&5õ +?9+B6fM%7@.39+4fþ:KBA<#R23 "A15N.,9ý& F6;@5$!>$$<:95.?k,,:3$-  $8*4$*Y&M&' ;>&-2!636HWSvc*ñtY>;4J6#ì")4 2.*+H"!5O,ô5':KJ(  B<%aB)7(9O9YG;E;*Q24$Dˆ‘57+ +,>P<8(>!3LKL77786BC=2# U;LL9,''S >7==7.==FZ392 <5MM +"?@F$"!&1Q3B4 \N4OD4ý? 6/òP&3[dM@&`û.--(96Y*]G6+3E'6;!/#<>(I>"C %!,C$%'5K8R[.@"$@13+20>'5"'L*/. A9@'4E +?;$3&9:%îHC@QE,zI"|„‹œ]7N"F0%*A=;5C44,.>4 2=.4F)A:T.&6R"K6KN> JD-C<;KCHK:BA /3,8.CD;0XEA86N18kJ X7Q)3.*:75!þ:DFGR,8*[>$C;,@/9:,*O>HP,7!1+ :=1&ö'@K<2.!A)#92!7>2!,+0M>.+?M^L$#C2@JEþ8+'6E5&>0V4R6V1Ps35+*e"P62(/0I5:0^D9M1 *0d!-.72TIY"$/LDV g$(<( 0EA0#0...AP1„^DF#C77HKP&P($-&,MUR&?6B'ô@ /cù:8*B +5/*B0+47*D,6G!H#145%0'AOLC-26=-$;!897=$S.Y)94$EX[2&[NEJ04A1+AR2?&% 9 +<{:I4;0N(C..48& I.(65+I!7A&a>1D3!30ó<.F+ *C<F.)30($5$R)4:H/0+F0þ7 /6<÷45R K683#@3>I)H-FW3DN:!h/!2-(2*.14 &//*33B3;ö(0($*94C! +? 12)+*9.;7U(&3@ +(eF*,F/-M!1/M38'4/,;*$IN"2#< 81 $,6, G @7B#'U(>5&'1-):(9,:'?%BK)2.!6GF+JN!" )C"7=ü90((3>0:+Ae·ÊëŒNN7Jÿ6)651:30*$/#hJ ,A0> 4;!a2 `b9N4 X1)B<5J49E:+I8A2VZŠgC<-;!.J>!?eG45$(9(<"C51 2 <:K$îøNHY6U-5*6KH ICA)?7',7 ;4L;&>L**"1&U>&T=98ED8/?^ù$!16S3A0H+);?&?E$F(H%;LD, Y6 +"ICBT$"7@-<@$EB5;'$(24\?S=>4A[,8"B#&0!D%B6E<#0$A !3a^K%U1LI.% "G68+I%D!,O27C=L)?YPZLK+1)64R5!VAJ 1G=/E.:D0M<TA5DõAg?p™H9C95*70C0*QLa=!7(3= +,@K#1,3>B!TXDD. "WW=<.96)7"TM%>O[X=7OB=!3+2+,+2$*A85;)/C/-5DE9'2N44544-7%B!$ó, &0"J-;!Kû;7B%36E#).8-3!!926>?OaiV& +KD6+-=ý>*/,e4@17!.62c;6?e[=9+92@A2'T1'5>+.#()8.4,$&M>*A2"O:U7 GF JBbPý0 "W)H1!4X:)AH6,7 !(";A&.þ8&."0%C55(JB4 7 ý52a@2-(K!3)"3C(*;&&$3DSQVû9`>4>'@8 .::**.,,0#,L&LH*:M*G:4H3&63<%47B<4Z'N!+$8-%E&9Eÿ%+K *5- øFúïI 0G.('ïA+%)I4' . 5HJ?37*-#*@B42!K:/3)2<8/74!'"%CH*D0E.M7ë;))  +# +44î Z+#&:7I@,) +Vù**:%>20'B1 +P&7*"7F.2/FK- N2A+@.?N$`)ÿB>U6J"3Gþ(=ú510%ES,/J6@8AX+:?=5:D.93-6G9P(3 91O /4-;;H{_q40;I >+)ýF 9G0>K':32)H@F6QLF7E12UL55*%(G,-2) >,E)N>Q 2CJDùC0]c:KL?'#.E;D</A((†KA ++  'A;D:0#O*1&71<:^32%42/?4F!29#!H6JZ,05A815:;5=&í'2!=)# 0Z8,(0'N2); A,5@*0O!6KH$%AJ@,D.2>N$F#N @?';D= LC;GR›_A%P1@%PJ@0/ 4&2C(,;bK@%LDS&$06.)IbDGX.#3"Q&=F<-F):S2@JGQü%&# '-ý21?09.QS$$ T[(]&;-."X@>JKq 108=4,e!$5?W(\K:008A3$"&N/J,0B#:"Yø(1Q.8<eA?66#C&#L>,B7RT'S +G3O,Cd3þ520L5",500K5"% S_ +X+6;-7%+ þD&09,'86/6/')1%(E# [08-"#2"œI5M4+G<;4%V\ITA„eI*R?+Búù*>DNGG $83QQ-M$&"@3 +=;.9.<166&>*F$=A'',3(H*<7/&P<D31<?G!$AA\6$/>(C6@"7,=M%6AU8ë.N+CF94? '507()ø&>(,#9"*#/%34*6!/Ba"$-O3"/ " Y98'1)J+ 1x:!91G*+-)?2ú!.(/&ü7%.C"DK:JTd0(@e1S;00J+2 (?E& -?2"I%.'%+-9Aþ"% Q):)P'5 6!3@:*C7MB10/0"/;C/2G)!@) D=0!2?%#$,1/3#:'4K+ +-3BG%0$ù0'<)3P$0,"5C%1ù@+!$4,,.)"Z,(+&3*B#7o7@!0$ +E:.''YDM4ýë 8<%I)%3%Vè/*2H91E&E5-7g3$21X)9.+* !3%'<20I2%5 9>K(#*0 33B 4A%öP,#("F2-0 <(,B=DF -I@)+n' ý <S 5D;58+->h?3;+ K\9(,BQ37VG6\AD>5(;2LE +=+>=$*ED>;,O32iytcG->+=+AJ% >M:)MITþ9NF8_X<ND$HS+;$2E% (A"Z74Ae2MK0I<J÷1:=1)='*6T*,C95F"OA(7W3I;5?'[$E0ýM6GE1$&<6.(E(LJSdjLLrIU4H2,W:5E?,73- +U &'05mP7A:‹‚d,Z&2øE5"J(?9@;3F E( 3B7R(?X=!R(=1 ?Wa>*.&+ ".H$CüHú#C8,.1W"1GL-"#%' vŠcdCT?'6FRZ45K2 /b $#$<K93gû5<5;j0.E+/-$=9BC3:%GGE?/H9(<)ó =##$687G!5;5;2h=CYC)(7F8&$C#'<%#+90'9,=.:0EM?>H–V,5^6PNO79%>3"LK?B=(RB=>(/@, RbŠDG."1 M5*>C-E/ZC46=9E$K$+ú!EA30><>8$9J4K+.h(3C_6(&8>.!Q3P2.O9%V@'8þ4@:) '#:2*E!B:9, 3-K"0+% ;4 r=!4 +JK7X*!5,(5öG21;O1H+NMC76((&9  ?úJK?0i2` ?''64M18<;"0ER;@Dÿ=TX=8hCr@s&^-R=0==,6Q358#!B4''+4AL-!.@'I>-N!G&  KA6&30 "?=#+ ./$,'Y 5B#/ #@*!E;'8-3 2',108?75?=/>:5(+J-0L.L %5J2-o%1]027.$D%+H03:(9V=F=$6K?)2<,!."<î!?<F<F%ÿ+Q*,@o/M;316)193)1 A1(,*-,5C5 7+"&3V4/+?$8Tó++"&B:6$"K;$",,û ,^&8@>:$)0"2þ%/'9JABB7,<N95E5)#-N19+O Y55H!/99@4#$.E57=<3If+[V<C#&%=6A5';'4 +C.R90)L>fc UHN.,;0Bþ.Y85M +-2;O#7 306A;.+)>0SNU$11;'323GD"=187-1;<.+$<KX:82D 5ï$#+W04:RC'H ++9@ þ CC*(U7K=e$ER3I3/*E3$$S+M6*+Cj„SI8SK@77-l3"-< 31%6KC*7 +2/4;6#.!IO@[co,534;7<'R />A32#C@#".F%,!)"K,.*/.-;>-I! ;7'G=$1,,RC&#[;9+X4%2'$'.223BYV7ˆV9S1JQ7RYVOO,)4KBAI9G[H6!$&0I<H3B.(90(3%$6-+I+O0CR%3@M);$ Y8Y= /2!Bk~QlH@>/,-ÿ@1!2=+./$*.R'3c0'9..c)73\D.(T5-,ø/5;<DN%<d<HF9:*9'<96/ý!*)0M*iœj>J?DJK/%"_K^CjN=!GLX-2U>:%14=1.J9B'!":)#(F)\C#B=&:,FWO37: ò>,B5<a KFCF9:!::P` ,0*ñ?)1'"Y@K( ;5.%9D71A,)J6.)8709øö7(OIM!G 87 3 ),E ,'*'E59%=/4<3?P-2%;-4Q417J4<3AC† >7ZS+DE8D.92J 3+#0+ðM+ïH'9òJ>G?!1?:1B..38.(0$J7@GF J4úCA;62V=F')@?!<'8QWLC2Xò(+= N< (#7O*&?,K0 :&)&1'G]*/0<FT"! =!\9/2'=/! )%3V8E40;2--? =9.M-# +2-S?,253 NB @*3X:5B  QY*04>KN.E'J-!,:D#9 ?J;& (C*.'5Y!4)4 3 +ý/D=%H-$)NEQ ,&8'$-7$G" (KD+A1.J7>3?-E?79: AWLF42?Y%.1F+6$+?:1G).,;c5QB+N,2?4<c5M4(/i/R3(SX'-*7-*D2@D.;AI-)0>O*H"2"G8O2K&(AE#S@L<MG$7 6+#%X91JC+4F1,3TN5;<[;QBBFMXH@< 2;(81F-þN;25-F$&>+L !-:E:6N=/2 PI?:+R %8)!&-4K&6˜&/%?1&1,*?U@E!`@9/H?N(-*71TA30&&<fD<&|[%P+.-Jè3UFHQC#@K&3D#?I7<H0A"7'U1,F'+H>,'gQD?i-##AO.+\J0F413129)39.7+BPE3/0T@a'M:Xd‰`P"B *=;+D@$!0à4H=,+/;I* !"W6AV46.083!ÿ.!@HH4)<  &7J 4ZF0bNJMQ%&F;<B?%1<;94/-;''=T*4@$!A''( N0ú!$(*995"-2&8K$&!\?A1+D<:84-U<d7#.DJ3L(;UBM:PM !J%:Ae2QR4<!V8.*A'KX+704(48IC/#5:=+6;-5 %66>37-=(40(H+/7+p4DL%+ "#?ï9:(6@ 2;G=#%DL'ÿ0-.-> C6 $@N<,71,! û5'.S*-J% 1&"S9/Eï<<"1 + X *@'#6=!<(;,.?9]CSw<_Q,"7O&'+ ?$,=LG.15;2:-3')(<*O('!$*@((I,4039;.),Zö10KC=+V)8I!%-'@A,D).A6+< 0!%>"J' K?+ý%9$XR/! S*A)*A=H P'ÿ/B1,;6=(!#FíLW=KL@Y/" H1T%G1<6S; C+9$NLK*0650.3#B;-=N1GB.'>N[9H3+L2@G.%[3D)<$)9%55?D><L[510+GK4%8-6:/Bý0 E bV=2C2&8;D0 )$T6$(:A!/ )2C@%6O/ <F/3C$C6C'$*H'*-#$@-D&?U5/-CuL:5,AE7lI*:5-8.C-ú-3%Y02ô90P8ø5#&5*%7%,5@@W%A3S 5&C69:,H808)H"5;NG7,<P'.#6;! EL2@Kù8!2dA!S#" A0@'$D%P,:(>:_5VX2A15(B-!+)+,$EF3,E@TDG>/<5OT+:A&1@6/3W?,BI4D58R#19HEt4%71 ')8:4F=G.C-3L7O *:(2&@(@E9L? AE)3B0YJA%4>4912 /J)/BK#?/+3O,+D6NTFBh/&$2&E</"H9L'4T"8.[D.=(="6=g3 8$d4>L.(/5@%#N 2, &80H&&DB>*5&#%-(à>&H:]&38M+@€f>G2 3M14N3 Y #$8;(>X,%5ù$C1?;NOJ/:(QàX(JEM:%8K+5d>$55!.Z(F$T62H$#90&=07M8SF<+8+I;E:-7=<0><? C1Z-!M:A<8 ,'7D"=6e%.61FZ1(L"12H/J(/.8\+&//DI>&""4:!B&Jð1A*'Y„c<64-]#6-" &:M$5 B:0(P*:3=G5(2C ô(V@8)úC%</--6<>W2,3<<3/,%F29*2?2,>õ506BP<T&N]5 V<+(@I! +AQB/&S=j$2Q<"C<.U,0A= G(FH9=) 5)1D7Cx75&$Iü,&*5%,):N9\48@8+S$5  ë0D(:]2(4@.ÿ7:;4D$F14&+'E245 ÿ#CC+2V ( 33&)0  +E*@G0V0)G;94.Z= /Nó5*)@H> +2#' Fù<*2("*D.2A)3ý28@55E*$$>0"'5&@TH[\?.d2&*40W.(X8&:+'2H<S($# /S<I''E&=4-'/-7!,A*2!1P%2M,>JC("N,*,X49<-J7R'40CCJ/u;QJ.3<TH6+"6<?.(ScA?;-$S9 ëFCD*1 SL4X$.<@(H#.*!#s@D>l+554D +%,&K?5-9,> <1.%*D,/O&+#cH:BF793S=0)H-?LD7:A7/#I)8L" ÿ>99)F,J.,"%D8@.;2&B:b5>%9&EOH2,):5@BKZ&1-‰ K)?8"+#"8S HE:: T2$.E% 521[HE8.W..:!< =8# ?+@+A-RM;15ü!!D7?<6I7L885V +_/=BCK1)Dý1.-1P67F2VBBA8/:2038(5^G1:80%U4'82O>?G +GK4 H  :'%,?2DT522$IS8,?1P7(b%A<$"&!9<-<$A./(BFO-0K,2X+Rý 5 ))'7GO3>5$56= 5848%b-/0*-"390P2! &F ''>'@)<N=%9.s1-~Y:07.  ,",/'7s<W5P+4..-0&2L33;*4?><L;)4KHU8,07Y=i/&?. +L P76$59:8`:A) +>';,3@.3R=</#;?./%)2N'ü*A=E840,<44ò <0B4)+F!2,!%6 @17C@G)B@-)8D6./ZN:jF+,5T<2<@ %$H/;X6F,"&9&I4 +&))0=)83lQ5A?=_(6YdA*//0Z0O573!!"%-= û:R8L(A%)2,7(+!%Q1,CI=A?ù#(!5, +%U,I/4=ù*8+(@ü=946]&)2]:$"#?'94 63K)$U>@C1$D>.=61+F;1N 0c5AYò&W*#254 .)N%&9+.ø"2)&@;ï + )*$''@ST7&*CøG#=MF*$8Ñ>I '?8 8,U9V’‰$5P!&1I'NM/=("?X. 0!+4,8 >M<!+*A@>4N4+,-(';63+.BûS R#,/ý40-/*<B3ö?*.:3(?B0%K,2#D[>ZD9@XL4-?'.4/@L(>G?9DBB ?0#"3@+\.B):!-C.00Y8F&50>9?\441/-GZ3?< +9Y<K5)!@gQ<$-3b$F1T:E5&þ91D>@DN </E%<+A$&!*ü +34?ê?G[)4527CCf&2;!2 0&-]&-!->@$>&);û[FQ *C@/L*S6=4&$$ ; 9R &6$(D6(2-üL0 X(((%A4 :5ü(P>,KC 63449*&N`_*;B$ +Aõ,0TD%:,;!N5? ÿ:H +;LO:5GFE-6'O53//"-BC!%D^8S:)81T1D@<"6:.8)82;0GM%.*8F@-(466B& 34!;7'E+,5(=./%4>" C4=9,- +A'()#)7T(FGD)-4':)&H@"L2MC9b:5E /DB-9770%A@=?B..)"H3)CG9&+%S.H&$$2 +Fn$õ*9%D?!;NzW!/ +=$51>7()* QTp6!5'2#&E+A,DW&/(:öfH0//17+45þ`/ ;8#BG)A! Ký:>:@8>%%39"76<M-.5?ó#E),W @= D2J)/+b@Ek,.!#=+ +V$G6A2BH4B;=JA4C5<;%("K/D>/%/E+=:L"=A,9t>%-'9:!0B#64`"*+*+D7%973DBG&>#878T]5=A.$*+c 6C5/Pþ"'H,;W9 ÿ 9($8 0( *#ï(' L%%LBQ *TF<)5PA":"*CE12$"2DN D'/Z&1) :,-I + 0: ;#CDFL0DI=I%526D3:"( ++J7$8O'"*1;O34?(<7=  5@1(D=30C\60<PSH.)" 21/.+;81<Q  /#="(#&4ê6H/YHþA(6-'>(1>+A#D7AA#PM>EI-9JW8:5 2$IW3883IR(&bE';K6ÿ'H>/;Y.Vˆ{nBH4>7Jc*u(B1f;@0-pW6N)./ù,P-/CïaC%*G-I-Mo(!-!G\UP"5(=a1 0BED9410 )L/= &OJ5QMC3<F,-2*^ $C"7U.>EI6]p(I" (/1?50B1310<>#% ;2K\ö0A?<96:.\ "*'AN@06G(AJ1`]/?I%@CJ?()1?,(S.e!9-TJ4,&>1F<7#/N8:5 !:+#S4% +Db.'S*4'"?2%>/5 üa2-F(F($-=?7P3"C?i* * ,:3(I"LL.S)=jE-?8f&2$ E(:#W,U"/T98#&]*#/5!üL%((+6C"+I>IE!=DD!A8D5/:');_" /%%:11%2.'<(@34>`<U?9< )a>:K/6.*,*/?;7>(*?8,.TI,#&ñA.>÷;&7A[1,0 +7Gd'%&A%#8%I1+..J+<b./!F9  <2dH4!&(*H*@>*&0?5*LQH7%4-W788)2Z7/?'0#H&-6(&'EE6FD0L&-FC&00.CL-BC '1+*C4TH:K' +&&.4!6?">2E!4-N* 8?8LE. 7(jdI.9*8D%01"FN:#/"/F4 4';= . /*(7<'õ4>EMû71+("9,A8FG.C`$E4$34($$RB9T35;/7*@_G^7'<.=K%80++:"041=D*U6;=$%2+C-G9LY3E00 %L0!(K7/ 0353 1(41.=.  +,NKA*434W,B-#A) +&*=?^*üC*!-=T.-VF H"%*<0;2-%&!-0#!+ 2$&R .=#9-9 /;*`+/ &8@-ø.ç50-/)=L7T+)'_/5J&D 'F.2K8B -& õ%J*(=(G@574=S[6-(&+*S:'+ +BW?,J#! @3@+$(F#-8:S.?56$9q‡_.*7)09B> 15EA!0<2=]P†Vg%G7+)278 ++(G%N?0B+_'^:*F5e—žw?'/2O$88D 05h~i5E$0>9".3I-77:IO4 ?J6 >VLa6Ab!2.L8-1 CGF0(=:98:$ HW‰Y!#X;-)$=2!E,"$34'3 4D)4þ?R&P<,3K);&X45k( Q3E0F%:[C')E>U<N*I@-A+ $@87o*üü!1)9=E[=>2B,9&>-J>ü851A)?4a?8 >!* :3G9=)F5G=%.03JF=>601_*9'*%!e(P5/9.[CG8'8HK83"C0C566?#E$cDø#0+H(=W8+Q03.ø%@T#475N%P4K=?4 !>G)0A4GFC4#?&[M0B- EI3-;Cd3)/><'6%SIAGN<-@E1<RN;05=9ò(G7>"8M#.H)7 GO.@./ 502 H€……yM@0þ98(5'?)///E QCR.I'5.QS6'IEA*3?%,48$.CUL&J%.8$A-9N@;8;R>(;2)"/4,')+GT5;3>, (W3L3++=..'R,U>)7*:C4,   8/",'9!M$H<[6-1W=Z/J1 GCP3B'2<d)W*2N"/E0ü4.  5$ %3&: 8&.Re[CM(8+I%29K>%./;J,3-:0R:,9@ &2T,L%3!K=.(A >-=Gg=I"7(;'@,;HJ5J22#9 @\E%Q6(2.@%C/5DH"/6+0:ò-#"(  :.<ð*%,)+&%<,(!>:,NA8f/.#'1, )@3PA*2(6)<!$M2:úþ;B?>#+!'R1!!+7)A<(<+'>DG">0 8B="3//&kE,D@F<30J>51.X0PU)!J!>1>H573,+E4?@-1>#,G<d$$V=I(:51? ?'/ @2(IXH/968&veSsJ7O1%#7"8'A<@<*OJWF0,,$26=)Pñ9. ì1*)'""?9/,9&XKgOLtZM1vP0F1R(,H3/YâÌG R=J( 4&24,:;65(R?%K/3ZE*4 \Mc=ý;0+15:5`MNF+U8 ,(E`5J- +H)?"$T2,%.",5@$=CR67ùFH)%( 2+1 :8N=7(//H."D6 ‰++8<=KN #-F/ÿÿA#98$,# +HD9Qf3*^1 79B+$A$?gI+B(#^d3PS6804&2J9-<$&F\68;E%"A19U/8.(-i.5G*%*74<D(4FI;65_&1:1@ \C2'61.'+'L.M@/ P6)=.J5F`9+/TAH>(&ý7J:-*63$.;653I8C5$üø68C"+L:8U:/K& <)6FU@3=-38,B#D5 C.*Z+I<XA+[/ø+5'E6A3+ +8<KMH)#=897+8 D-^@#$3!Fú(2!@B0NMšÊß—D .?-2,-"1#" 5õC.3A$D M<&4:(3*7 #!P#=SÚ.< -r<'?%)O#V4]/*-.9/((/65&>(2K0!9-2)<DA)=*7R"7=8,Y8?5$'+VQ97/'>8N% $.'%T  + ;0)"4%KJF9-K*(H ;,3--54C&N&9 \/"%+H%G<-30#;%<6;%:EDB1J!%F$5O6;1!(I c!3TS/A)>X7 =3+?JI,.0*84"G$C)$8(% ;@2F (U38)dE@2,12!/ !.H4GB02<:: ()6B(H=-(+$.W"+ù";O$-#%7a935,S43-':!Cd@)+':(; N-440c(D++L?5'*?/DM9*=;K>/70)+E!/%L3)7I!QB1?,B5  ?K0-B> IA(+!B.F4,P-1<?3;5+E%(#4# +6<036)Xø+%'RL5P()T.fPV68I(\19 S%9- -L[TPxL˜ KER05,9LN?K!1C9ig2',)2+FB69Lû -L4I>-&J;.!)!H?F6‹7PO!,8O%/ì5.$VE@VsC2+;2GNCC3 6'2.;8;#(&->%2: PL7#!93:6H#,9C/E4 9-C8$47<+?:-,7C715<959SEG$G1-=(ó$" ;-&CBOK0`%/üA4*%#.> +<P*<D0 5<8!]"9s8CG Ø%;59,93I0Y4,B3>K\(C \Z426a!%/.])25a8D;?/4F,-&9-H"'G5Jý>L::-)NK+$U#E*J.  S=0O5fQ=Jî%IH,:5/+,8JH9I9^?15%&7$4E?1Q?/ @*8='/W*1c;$#G(C.9:.LA57 9>54K@F5/&/>F;+ñ/.*>,.2.(] %3-+! 23A#/8c$ 26(%3 .=bT8$%J4 3D<þ'>&@­­…x<þ035*,/-I' X4%*C?< _##F'>AW0.a7;#$"$#@<6&$M):,JB¤æýBJ5!'(13Z5"$I"?jQ22 1."81/2B-?* *& V!F,A&'>G)=*,: :6#:- #./UE$/ +,#96=<=8;:0%A1(2$!+0-FAE5<E2I,)%: G$?(<%,<G3890*;(ùE37G?D*!(V/R4F5<g,J+.;.50GF!)T&7>-÷ C,& #+!? $%G6D3õR,'=3Qa6F+1 %=&6?(@.G""8283- $")$D-*!+ ((EA$@" <<C1 + %7 0G/'JGú(û 9&GT//+>>)$0!/# B,-H -%)&W8!#cGi$$B +F20 11*GåG3<5AJ421 +41'7dCkO 7D6'.LI*&$) Q4LX+(<=?<&;&4(6;@0;A/<*"'<<"00X ¢ðÿ™k:%B5 5*98c-I]]90R W%*M7'5+U,Y3&%DD/*:0%9(,>PD9:*3:&$(.8XO<I0B"&8-,&D3'S<,>E>/Q,+@)/4B#Ia(A+5'!!6MZ;þO(&3)B6.+2UR +NF$@=6,8'>ƒ`d2C"=Mþ*0 +E22L<G0S9h>.I2+4C/0'<-!D*,=!=<ð!3#2H8þ@.F9 ^.B?BA,+S-E#1/&">.7?@8*.O)NK"÷D,5?$8L23LJ'-T+nFW+9S<E.9?JP8'J K./ JK;BX(\=1%/2 2]lA@2Bú:O.!1$-E4Y=;9@U"s’:]þ">!;:5?g&94(C,BG"OL"-. &,!A @D#;)?>+9.T8 +7D77 ,)GEC1E(=J^B0++ @9ù4#5MD <=&'B2 A3=|M4G>67C&%/KEVF=/=433IM#&< 'I&7.3B(E^"U+2:4+]9%#[J)9W-7-5&*(ú3,-p.<9;-02I^(HJ{Â;U=F:.4ïSB<CE+)J#.]M +'R5% '6!0?8*F((S'B7=D-7A%@*?NR5 1,**õ.F80)T>,1L +æ/#697!=;3*7 +%<;5%K$M/ýD. E-T&%83-n;'@ 2%B/*+:)160]+ 88@2MçB+EE()6*A<"- +:-G9 )8%?47M(#J 5? C2S#+?+#?K*9+&#2:+1?1G2 ( (@13-O3ME+1)H, B)W7+*"+þ+!?4*%*O$(/)&"&66*%-"5' 7ñ!954$;+ ó*81>0UF bFM'÷ƒa70B(8'L,#V9D- /:$S54UO,()#%R8;*9<3$45!4J3'M5+8V(2150XX6;3Q2' %30U03BJLF@91þ.9*<:>!C!\"B1I2$%"=&1/4H-\?3Y<a¥“iL 3=JYG&-ÿ4,T#E8ð%#>:170C!4FAN; %0) .:4$F%9&3;4-38&PV)(6Q5<?7")5:: -2-00( 'A7U>8 L($#92.:&/d59?"Gb-eHZ >29+7C <:49<:)H*FC®¨H"<!K#*/7<7 +. 25"+>&Rn :C#ûB%$4%-7!<"B8H+T!,&)=B5@*O75A=7253T+<)6[=7*2G*B2V9P8*SSG4<E/ 'R$* +<5ë:M8=PrQ5@(A91.9!A.(Hÿ39!D7 + &1%%$7C7,F06O@ì^>>#24?0' .=$)"9# M=?¢GG%G5 `\L?A.5 ô)13'a773@(4OR* ;?."65") >1)N* %=*)÷*R9>,5B2Z> 6$)/5"0;YI0/M3&$1G4:$H @9Y m'Q >@ø-ú9^0N#N5?I;PP0?HA9$+)"7Q&'>0:M,5,.D&*+%(7U40+#!]FHPG;,2?+A0CJ=Y½ôÅO4FQH/0'$$ #*%&0!5.7AE."*/'$D>2J!!;U1,;J+ó'9 K4;G,Mý$TUA7B@&6X&P$*7J0/3TR5/-5?+C(6J%,B @ü@-F$+N27%2R #F./".*>)A&:349b* ZF5 <DH&6 :EEK'J2$+)4 +&+:("30$#  +!ú!/"**U0H$)/73HG2PV_Ÿ>*2?3!XA,:2 B,  (:"e<? 7AJ/:;354&-4,#4K=6*1>ð(N* <5!=5QY"93'7C,9"\D-/-½æw_- 0U:K7E ( 9T.$FH%,,>#4XM+l-2AS)3?7BC*<07' 5&&*O`'BuE> P&0G7)'&=@ @', G.<KE0"F-B>;Q*Q>J9,>>(?1HHg׿³¨M9>A:(P)+*1H*@=)-;U$-2%BJ/3!D)D-ù8:a?<5E%;--H9$\2@*8.9;6-%.-.g**4.G(ù7T0/!"-09$EPF860) 1 Iø2!(C7O*A<V!17:ýO+8`C! .A,/&40IU@Oú3=5-:GOK'1@U0G +- BL:^30G,5APE12QQ ,ð)-ý84B"B/D6>*$DGCB4"gþ;AK819!%+)(IR +E%T<+ÿ<D2#-#:59$T#.)-A'2!H1:>L$-J?QG#1'=4-)61G 77!56%$=4CG-QM3;R:&7#5<'<K@J14/ 0:RNI(0%BN BC;E+A+G[e) )1&þQ7,1=+$+,:#(:#363D1<6H)SF4GR$'-)#,&R8?!&D8="9#!/23LF,'!rh]@#)0?4U`=R4Gn)D7;"=L$0*60);:@8-G>J@6A,8!7(0%).<3GC/D0W-/6,8$Q0NM<.S:%AP3-7.5#0:H8=2#,H"')('B<?M-<HNPH2K.810<"2?08=?54.556B 3([ $<+E+ +9-;"þ8)16<!1 2 5+2 .A2"33*Y.48 0&!#"W 3(!.Z.>RMD:;<,ó"4$2#&)=7=50'%Z%?,9o*'9!,  !/V@N--3 +"(H 93R!!;#P<%%2NBA 8 <,Q=E+&</)::77$K@0÷6úF3;J0NL0Ê 4h0 C Q$4F%!2K-B *+E/s =CH/#$$G1)(.3&-9+ ú")7!A11+,(0(D'0  0)=.bQ9;'bc¬Ñf)-7 A'=>3(1Q0)(Q/#L<(R8D +.S<g+<-<K#V&44%..&<H));ZH5$D9$G (4,* B$$:>@,4OU;#39)''P0'!8$8ý.;D-!'!*CjíCqù†È_RB%FJ2!%F>H?R)-$E*2<F<þ;7>9)7>&'LF9'-7K377þ3 CGT%=  1>6S3AB5?6(DI!@P*MG( +<,0B,TD!ó)<ÿ01/g15#^5E#17AþV+3+õ#C8>#I*#"%/6 ;9,P4,JB3>223&,@.. )():'168B):*L+9&H>*8=< 23OB,<G=$-8dH9*"/4,*AH")?IQ79 +.(0'"?&,%<B &>65:>  K7>+Mq<.C.YPG.#"*!13>-ñ::GV@'@.>_"(=/=D2)9ZA76A6O!?C920-*.3XC$=+B1H+&-  CD/>/)û%:U79S92;<8(+9C(5)%=*ì3 5B,84ç++3#IM(7$6N1:(7®µu2?471*-=]I9ÿ'.2+FA#<#E$?'&K68<;5;#W3 M7,,1$ORB#) ^A.@%=F7-B1#H$19C!5B*'/:4@K6.AI@9"5)<1W ILB%,K EK>/9C;7%0-)# D$!8='$85S&26H+)+5$:/2=' 7U*÷!J@564">3ÿ9T<D &=,74-J;/L>P&,().6)L 6:9+Z&-E*FF25/!79>)%2$5>ôQ,gR-G.Lÿ<";)#Z/:-IS@#9%K+5>a <928=8.$' *34 -=VF18;ö2,;û.øJú;>_S2 ¦i4/8/P5 M@@$T2%;V?#8$*@;M0K-/(5%H:J$ý)53;)H--C%(0!+> L*0+O@3KP? M'}„‘D'!-C7)6$A=2"-&A". ">ü&@@A(@-/ [P*>Q(""T/:8O=3#>*J38D6ôR%8 c'Z$B=/F#1E3:D/==#O/,B +J0(1X:"< /+-;)1A@FI.6bñ‘·Q7"þ42PWV/M^+@W9! )D!B5M@6<%=.@í7:&J6 +SFg>3 --&*G.+5L?47?5M;?J7;D*33"8&CK;L<2))"0/3f%. .L4 !,\<%6&„>'!!8<%.ùP(ID92;76B09&(6C38'G?5;'1+G ;#7JI;I*<U;9:L7(+ 2.,M6$ û& ,&H%+G0HC<K3383)'37%%C?-35F/ '/,1'04'k:'*;#=ûS+2)G8-$B"7!) ;+(R >-9#.>6P(IFI.O):9;ITFI0"QH0/<5K283.[!.!;:=(:4>&@Q18&54-P&I:&/S2L'V<)-BI:N)<4>8)S SE1I12QH2<+/0-,C^D.U#U690B:+!MYŸWB*168P"K"4FH!$ +ú(!* $;&+E$'L/,Sö8B9 </9"Cù2-4SA NE-2  $6E-?*3C&##.%.1@5.C)9-%7E$S*]KYJ5,,0&^7/<<2,--)E7&D*1)1;%V +$7(>:="4*R; 0;,#H4$2(A%!"X%]"C15B<63%*A8I=&' ;63&+?-(Q!I3!&<1,ä%? Q73:I,#+BP-O/5 7%)/6E :W! F5O,5E) ==D2!+.=$@BL)+D10/3eDV7K9( ($*EM&S4 +%øA3>(EF"Q?3;&'HEu!*)03T#OóC=`/!O:q.ì3-9+&7@%47=* 'CXF-=/+K-9 #H8AJ39/;;? %B&ú,0.HE#!00S423IA ;20îD*6 +/S?%N%!578+L3:/:+G5F&)E/201#D$. !%þ(?42/?@><'=#\!93#8&<$B6$y9ÿ!/L)9 &=;?P1;3845,1;<,;'Jj31*KCKÅg[&,R$!CP11<2*@#IG8.QP1+6-:'VZT8;J,#M--<5#27E(=9&!Q5M5NU'%BH8**#1Y@A<M&*,#!014J!5!):,0W%>aS6J-_4!7/?87%040+1)T*"H(@.4C)) 8 +T#-%02=P/'<;.A b"C0Q!QJ<3 ,?A86]C9$2LV11G(%9&Z>" 9*27%G.`+8#4=:&7D5DlO[4=&#'#?>=-N "8 *A615"8%,9K&;J0>3;6@c W)P=!5$(*73)><&A*$.?H+[B!]695:K3R.#CDD&;1!<-$3<I,0!&@@R+/>LE" 47G^)S7-"6(YK-X 6:1J.)O>A#9=00ö/T%9Q6Sl<F# &>L ;,;4$Q:4-L* H96/P6)V(E!:9?45:7,7BG"6#-0%%CCJJC&$?F.5+8,J0?'78"3611bL10 .(6DR'Yè.>G&>K#Q5$3ý'/3+C3WQJ'J2)NR-(O1*>!5+19K2-,R%=$9;?5#Aþ 5.I@8+A?;;>N<#4L;*264A&C ;,/6"%1- +\BQ*C&5N#4/5-+>^r3/,I?$FD,'-"@ *,:[3=(* T##>2F;86=+6 Fù3BE 1%!ô.,:@*&:þòG)>+6.()"1*'B:0öQ37+).ðM ?7 !2('##2$")==GIeBG< O+3(&3E0 8/F-A$C2=>8+"4!$%[O83&H2'M1+):D<7%)(*@=7:6-)  75/-ú&GAL"*Q$8.3*9OX@GP,.5$B +7'! G1$*"/]D1U)H/R)*0#-4(.$&!%$Q$&$( /.I ..CG:%0YJ7*5?$7< JL-M@DC?K'7"-18<M06*4XtjÑH­75JG\E,R7!@F%4P*5.i _„460*@+-7J+0J&-("5/ #?98 )225Pÿö"O.JJ'%,5>+$'1ò6:"R$>58&$; A;>*,/.+#B0' (3&U@9' ?+0)@5>(2JH&éq;L!)1C"LFR*CþJ'+IUI'G71)@!T;@'\1*; 9FRö3:< &G*1 8A@@>6'ù.2<@-AB32/F7\?-F-(.')úw!S&*94.ó$ 79F7<[&!4-@;S _NCG/7W=3EE <`+I*-?3G9;! 8+*2 1UA>:3 ,L.%6T3é#: ,K?-B!:HJ)))MU6F(;!4*-#=&4.)>6/#0 <!B80QL9,$<@>ú6H./;M8S+; B&B@?;l16) ó84!0M#"E>.'N.9^,0E,1'+$?V3 "*!(^,DC.40 /#EB>A*,$(WF'*+1'7&-<7<B;B0<,B=&>/I.9:+6+6;,2!O38&FS+1]$ÿ)8=B$=LC'!?  :A@2?,44+ >78 .J +<E6i /O;7+F>F./KI26%W(@/,7)8/#9(1<&$9 #K;&L2.517&;'1!>+AO# 6+-/C:/KW@+3)Q"9'3:)qD@õ$= %1YG* 2'=#;@:$":7.H 5" û<'.D0<8E5 ,_B&*323B076#%+7D9<!$ '/LSf21%"D+*A72+;9/'?= +%#4%: <0 D1B0!6;"3:51)'4!*/7+-!#"úM/1@6/98-$C6"V3:,ÿ&K7A=02104W21G33V"/3"3,3 ?!<O59/MHI$$I>8. ))JI58C1K#4!+.D+92327&:33 %%?!4*535H;*-& c+<: +Q#.4?5B4C91S +%7GQ5(?' KAZE`AjªšwF1;7.JJ[77&.;,J'F2E1XYc06;&?L>'6HB*+.CG54Y"*ù?*#3 +(,F-2+.F"BñD/:1+ *971P $N0Kó@l,96S3FEB.66O%+f%" <08E/96H @=8B4;JE&?*R;PB5gN6A *4Lg;N@7N>O39162 'A&PFKN21!4<(3*!(RC/5@JFW><Ec0"22D<?62.M'@/.6.*A/*'$- Z<:,</4);R&70L67+ &õ@-0,B4 /'C (?9/0#89/a-G%0=T/5%>48 ;-:"M<;& 8=<:Q+Ga++S<$(O& ?9#*ED&&.R63E*&:'G&*4E:$.<?,+03S?7.=? +J.8 /%+<85-1B?b84%I"+/:>9:!? !I$OB;5;(CN&%+E$;!!F*>=&~L'2C:15+Z%3CkC+9>'?A3:1P</D=F<"6B<5 ' ]7þ">:A" PV$C%5CE4$ B@D4?.5*+6<:+I &&(*2,N-:,ø*-)@9G0&4"&4)3ú6,A:.//$3# :-!0/2?õ>5;',<++;$0>3$F;-#.G 5?+0:C,04&1>>KE3&÷/Hþ 6*<% /1"8W1-0#E077 ;DB,$T*T49C?(<,?F51 9-"%O.>9- 7":(6%*>L2!T92**úAøQ;"TP`798PSmE1%&D# *5&Z))30%84/UcK#4 >?KB8( +&3976G&.>+J\0I 5Q +F?5 0?@W=(WCC%&'9<A0*='?,; :&<5/*)<p]?L'E,`T** [B6O42:W_6;B8QA=<43*2$H;(/!6.2MAC',L>;0RJ$ï3,!S(: %$M:?.,N=>S'<$12GO(0>:@]`c^1TEuL5)K8 697/7M*M 7U-3)O/%R6?6S9/ +6,5G)/.>,.-*]>,0A  L:H-%@JUò7C356! @!0=)>.#8-#8!&H/05-5?B9TJ:h.E9#/Z'1,<M9HZL"('M).Yþ%,>+*7'3þ4:O)(+<'54!+6;31;!:"N1)-A8!J„rA> %O4Bl3(6>G22-&3CN%?80=+!3F=HL+mn*>'7!?6!,68.F9)5@KC5:2HH< ,4B%)]8 AV,,  !5 'E-4G+ý+G710)'9*! ,AP95F?#9,FC/ 34T70WJ4d9,C2=>GE8,Q+C%('>'!!Eþ $8H*K*>?81@6B%Gÿ530&g,$<=+U73D*AO<@$( 6-*$$>)W%-.('2IZR( _ZK5,#&A5 -O%6 56b#"g?9W,6VCU>.@,8)'EN>%,6&5$X -:1 .6.#/8G<$0HA$:+G-5<R=N0.úVA96!"S1FB $#7K?ú,F÷,B9,þ1&0')3 mIC9@( +942679 N*=?K -8B2&2>-=''.C#)=$0l#H<W >AP(-86#E*8*+&#9,"3."2!;>C0@2"LI54=4.39 G79+4$8J7.'U.D+;B:8;'<$A+M ö,/B-):8)AH" * + - &H?N(,:&22U1*(;2/!Q0O71=5(X+ +L,"K/60U?/1L-?</+).3A$+*>+)ã,(7(IF+8R0#=#,8(6.!J*# 3<5 @D-38>$.%227E%,-2?F-/3#1R1*W34  &"8XP8"B=1S 12'_:5 @?4sBf$&J3- ) 9J:*JC-B:V_ P',53-=9D !65cOE!6-8O ?+J*/ABK4 +'9>K55S4 +C19%7H=/.D/@K64+ÿ-B3;,*P8606: 028='F?*"W&3D&Q*>!4%*/C?)&)(0'3*&%,B=%W;&5)$!NHaD?,e2;S6.;%nOH`>42OX%>2\D:/5ý(+=0 7!73<0/)Z3('/)=E=1"M,.94$-<AN8)5ò:$QC63=37EO3f9O),+E_j97/2%PLkD3)-:"Xþ ("SEGB/*.D4 N;:@I$" )<18* +(D;\2!N05=9(EQ"?)#7-/'9'?4?08$0%7F(@;30 *K22F8D#6=)!l}!6ïB='C(2J"+CFZukLF06:"5?&:47#,@ .)'A,@K##%+8E%=D6 +89( ý<)5$>k1%O&1.20:0;G,3 +K7)7''DH+N*+BE66Q84ü÷D9ûF2%?+&a>-'@ÿF1b2>g03#>!77)?4>63/ ;0G.4U9)(0;n +>>>/DD#452,1;,W 5C7, V3=0ø9[>+7;P70>#5I4C+,:I0!4-S?0JDBC   (P2 26+ F$<IIC07*@F?EB%T\N!'' .3:E60`)A#;4+:,1/42T/+V1:=78!9PVH#528?-#)."&9&ò;39 B('û5 ( ;þ"3(ñ4 ?41=% 2'ý&>WF:?- : +/3.N71-B&6#06CV'!S*+:2?/=Q6K./EA/[ J*9á06Q; 4X=5:MV&)X&4A<>BX/a4M/A5 (5 0J1!!O;Y<8W==4 P"39U1B(TH (## +"U4IV:"0(Q432@#*( :9$!&61 =+TH;:6-(E3 L?-I;4O9N1!/$  81L+@CK8=X+D0IL5, 3&;VQ0I YH#!E;HJ:GE/N56þCÿ"C197%, ?)AP1!$L;BG$B&.H*66M69E%51!<*&5I%8EQ1,43% $H2-3/"?>#8'&2N6 &R6>!I=+';"/2F#4!-%:G4(*B-4-h;E>*9..3=.T+89CU1T5%/:!8'&):5(('#03#;H442%">R%IV8?663D??;5,<6f2B0+$iB0-?.<8) ð  A<ZQ3D+IM2,dscX4G]N8PG7+1,R3=<;*BI32(3AH<?75&:0l1>ý96EE4.<45<#@?'S=B)-]?-M3@7>+;2>K& # ,_*C"#ÿ8-K$67@N+ù34M": 67j81Q(,B9 H]+7<;)F*4IWJk˜è¹Ãp½`ˆI>"'-*4)?)P)S%!-256)//36÷8' N2-$C/!; '2&*$ÿK093,N:6E16#)$SF9@%3#,P9"R=FA+3:.MG.C3<I'40#/4P'G ,N15%@$(.YA%9(;,53,/2*CFFô-'5V4p=ù&1C:,2&#IIB +8(V/ ()g?-8?#2)ðõ$÷6O"></;6$/01L4AF#/.@+$&5/,+4O" @972(=((9:B:#581ü,.7s MD,9@0,JD9,%U,L2þD78?:761J*1(40O.@:9;94'2V) +/2H>A61&% .)".5/F(@8> -&0+A/*^8+Jå@J4' .%:HD9V B25*<G,&+FD(/C9 %;*c <)X'/87] -0-<M-:6C/8+ +% 9,/'*9E7U<a'DK,A"*>!46)255O52fF^>#G|TAH,20-VA . ":(0,*<!A(/  6'+8)'D"+QD,"þ>>97-U) 7J<D-9G%96$F,"7M9J>1*K F&.9(:4546),!(3U6)+;&!J7':-J<?@3s!C<? *7NV6 +.D$54-42V1-6 55!G)80R,&5"5%VF(&O+5&6S@'(9Z=.K<3POC=>/@+,'8@(945 ,)1 &;*)H?*@6+$.1I188];/88+@.B>:"9öK1.:ED+1-L8.+/5&4%_ 8*$$.5/*G)(F')/%.I<.=@/C.84?'+##/[,C:/2?8=B96" +g5[ 9KT7M;^X!D<>h#6F('6&<;N8M+ GDA1;.&9H 72/&*:@)A)&YHE8N1:;:X96R)QHF;N,+ +/FC7%G0K +.=;  ()gFKú521 N-=-* #/959;84HG;K251H@ 7#G$ (.8+'&Q[HeL„Ùº+. ÷ïp²fC95+#&*?CôB%@,.(-D9^.F&3#B3:-TR;E84+/10*1;;)-F:V)):G7ú *J97+D:0(%ECG*N(4ó \*#ÿA%J?&"GIR8< 5/E84.6$ +98'$5<=D.„^Y÷.2&#$6 DZ)J0\.'=iKEî6JV0.,$O/@$ ) R0% 0$P$P%5  <@86U8(>N(NF&22Q)dEF@#(/;..7 T43!D+(=5D<C@AI5Sø4A '4@%.25B-,>5Q;CFSQ/'K7@$?*6$*+La3!D%Mý#3@L-+$L:!,cF@,+D;!è""42 J4"$(6/ý@F F6;>#/)1*O a1I'58ÿ8&G0/($"(**77AB33*6 :(þ +# 4 4*+%.5<,$;%<<0C%&û/$  -)4,`K9$7*"_ð66:*&$8'%)1&),G+654\B20BC"&71!U+1G@LC4*B(.8; +5.L)3@N282C8) +?&@)I.) +%])4Q@"&(,+*8K7/# ,T5(+Q$P(/1ü>$=(3%KP@LS!!%"4J=%4E=-@^2F;=c'Bl3JC6;?>C\(3BI8S$ /  1 *6@:E%G;>( =#@7&#?_*C*' .+#%!?1BF0V4U5DT/G+;-(*V4?#þ+'H8DDJ@Lß31G81):@ 9!G!>:6EG<>8745>,&3J9",,?/54426E&>7-ZM8/9E217=#K+*5gO"/ôû('&'*/+(!"./ 2M+J& ?0< 7,$2GK(,@H6DD%"]+.:8ñ5 +E+=+$> ,$I"!< K[BE?63,-O;Q3&F %2O9?E#")-)/Q4C=C8=+*1DRE!.,-L+&=4.%1 7:C8Nø&)/$KF3$($>t;90H(#))< •T=1+C5=9K*20"":HNz9&Aü3"+Q,-!:5:+$:.#''G5G:ˆx×a¿Ì ¨v\W8ö(-@</ E;>=# ,O478;5b?MK8DZ;BO!(M,;û >28B4;'-JC: @&?F#: K"79%6B$42,0A=Q0#!%:?6øC&êA'2($,!"<$48*=:ÿ;A8A7Qø&3,H-Lp<B=% *`L## 2G +)G<6FOÿ-(+/$H-?W5CôV?+<@"26#1- C2ra,)ø=3/"%, 06I,@]W+? &@Y#3;5<*N9!5*0 7126HP0("8P8'T!$ $= +O,)=DA+ @HR='FnH8:&@?>d&?1&!'/)>7%/27J #6#(D:EKù"*;J%+.B..ö;;Iû(U+46î9<-%<#9 C9+#GN.#&.&:-7*I2[A 8E:3"=:;!F%"+H$(YCQ2%5) B6ûO@#-VM ú02!2&MX#*'&í"/7& (*Eö+<15OC!5(4F`5^3A9vQM[94K .<4D-5;+ 25' 5/T$þ5!+45$;A2Y3'Q(C@,C/?A2Ró&( +f7_AW`+("!*43.($;X+52 F‚€FSWOG3'+&;%#*(, F2,8*2K&8=#-<C[548V!0'H*> *D6G1$1/fNA&HDIJA@===70:*@',E5(?/3aRM#W÷3?ø<2#97ÿ1*4O(.0C=662-t0(80R(:eL;)83#/0+)AD );J<3U$E(EfH:6#4 <BS0#8AA-09";"ïý1A7J">(@;C832A%/:B'9''@,/60Y+95;+G6:/)BBC6$@&/hc?.RH#> +WB?-0F4+8@GP!:$Aø0/b&9J-;05)2B;4CO))}I.1R(;*'BKQ-I7B@3') +Qù+26K0=4%C"O&S'/;&+<;Q(9-0mB!M'%N.,NT ++/;'%HB);5#"Xb›æ…6~–d —‘NGVN;.18"'!e,7.98?.4C;hNT%1.-#2E/AE2 $7F&?%K-<B3qþV#N8)E'BBF#1'5#3$6^+N4#!'6\7FC:>:8";3QQ?T'c=R7'*BGBXCEH.  ;8c.=?"*! k`:>b8PG !<U40û'.6#;H.2&$4>0+H*$2GA01L%'3954&!9#0,IN.2J,D%B. %5Y6!Pa).;$ (B3$82)#6-+488598%)F7*B(/-*7%B+-;)13! :'D)'#*UN29367P2(-$6)QL&-?  õ6&:)9"R)L9C=6 ;:õ?"(8`"*'"34B&G((; ,öC# 13!3#^/J9)="*>*5+)0qT,,"JM7A @<.\D&+E _22-WE>2M&!0<>*2 +)_ +45#6*0)@8ä6D*2%0ZE9."N9%8;$(9+@gg3"KMq>IF"Q1&:5ð *A?.7Q(6!>(*(%7B_%GE#1  *%6/0M(C<fC$>A>A@-J3==</?K*-'5#/M5.U@‚•™_h˜G#>80,,9/(16Q>*G/0/<(R<!4%:FP<7-9&R%3-1!%-'/;T(:ú.0: +.R O/>^2+^5:7?(7B0)@!@,<8û4<9<6&4V&0J?_40AAJi=+K23/65Q4GUAF2H9?UV D (B!04/'%C=%B$#-B47 5%0ñ6+ +AD;H=(;B0L MR3;,'DEI%&/11B7D-E 8E9;) /.7/a%T:A8D1M59KC' 'TFC<KK+K[>!74&.8CN:?770 U*6*.)%6Q#&5+-#"- HV!$3%÷)&bL, '09@# 2#`?,@3SZB(68MER[4ý'&+î )ô23$;$T"k4A.@b9927AW/A1QZ6,4 Ktk×îÍÖ”Ðþ%X³^:P86"#L;!C7$=+F'5 .A4$ +1I- 6?EB8;@C8247L%H+:%@0)M+DF90#F$J,02b26 )F/*<46$/O C;+î8L)$-T9u9'Y=EGY#uLD/C7(O7 :%=DG%&4@M9W?Y.=;1TR1ü=3 û<@0,()>'"&!E_G-6G IZ*:5&*A/7Z 9-0 8FG?I;$(&1!1#1D@-!`)*l:<WM-K- H(7,B EA&/ +=.%;-)/'A.70+4-'6)3-7E, +4  D5+AL5B!2=QS04;L)C>H -$$+M%3,.567!3-73+3F.T#&-)=6 +P)#2.8IQ.3Q,&75RK%=(DYX#$B.,B1-%þí3#F1;!=I:)H, 5635Y#Q[!%Hø(8ý"2CCP1#:D:F#0C ý=X+J2)B"?$9 Ag2=:,<413&0"&,?N./CJd“k8.CAG%@&?432+!8<&+  +/4'C =E2(04!4%X9K($95J_,OI/(D1VcWfkG7I';gFH9  !)Rÿ%þ;'+3L!ARlœÀyRg3*/03';7F.-@+(<R <1*AJF5$ Iÿ.!)' E("=\6ON4$@1D%D($@!*H.1/;5bA*O>øGN,<@)-3+:-P22356168<ZC(6/ #*'4^4HN!;4"FC6*i'-j,<.A@kFB16DG=VE!:=%>#389( "þ<CE3C=# s6?@)7=C81ü(@$-5,=@.)8$403  N2 6J%0Fl0:0L1?Eye`AY+b?H=ü.2-6!380/ B"*+9=)&!IH<UY3I;DL#J% 6+E,78K7"=>#Y@2,XBa/!fm3=.I2-;D ?MG)+ @7-R'O<R+'W=!1+V!M'>:.(%'J#2@( I *7LHLU%C3'^76K7$XD*8™­û6ÌôæjÝqX,P:' +$*#(9A*9@OJ0ó(;8#!./G@.://#2L? (2R0>^8.)D/%#9-JDF >að]/1AJ86%=>A57 *M?!)(<8929$2%?6E9A7<DCS>/ 3;Z*#/,(%%D7( M?E",9R6D 484*eKC1-* 1=*%>")6C.8G+:/;C'.=%C6E@HXh8sED+ c4;8R 2,'4N>#%ÿJ70+1?4' +101E/E1?4Q9W???N#DT@A)%AQ,M17< 7%#K^! ì9-.>F98'1&6'p1 &$2557($!)""% $'ME+I.!;:1(.ÿ=8!<  72+&0/KE<õ!8DD>23&*8/56*B) 5>Q(&K#05( 5-.4$;;þ3.P5-(;5$E%!:R5-<A +P(! 1ú1?13$'B`*R":1J;4e* >4*1B.-*7"'¥^Y73&E/,‰n@H%:?"+E>C-.'*N+,2y]H×D#1!/A&6 #-^*6W N 7 &+>=DD6GL`6C‡JS>!P,;.2D.'A)5-%+",FB8De`]b`T=P8,%ç:C9IC+5($)#9;;þDD#-,D=^,/[49M)/53"ú#24@/"8V(ø)4# +$87&Y3*8B@8/)71P(K.91<+@)+?-7*'f7('*>&=\=6?(-7'/FT0J %V9I9N5$B5D(>"öQ^BE.,?$$F7O1=" +5M6%ô!N ù)84Aï>A,365'=#&47"1:ë,:$V+"PJ5;?='M:d)EB,þ;YfŽÂg;#+9+5'?+M!8?'&(=/I:42Lw2H<4.<#C@(?)F5+-b7W(,!4W8<394*C4,W '>==68Q&AD9*1HE"',ALEH/ JQ [z(?C5=(c. -8@B&H)953/M4A7#!.FK*(2=)$'6F04(>B%N3B7Twù¬>y§P±"èª[A7U;;%#,2;.!;X 0@1,òL-5V$)#H;G7'1<..B(%<H 8530:DAGë+,'Q#R5T6 /*B.eI.=5UZSB$0J4QüH/!2F/.'$%0UgX1#*G@OQ?. E#+,ñ^U< "*%4#V+7:IW6"90'> 67:9J9R@=!C(+#?3918N=P/-„ZÊrG:&B*<)0$)5B"N%'/G%,)AQ=D7 c'L^fTn;<DB?2"?0CFS9EGBm3$31?`(1 CR3:Z36/;d#<GL!*JC8,7?O2161,!C4-))6.%C3%3é<%I$""'G+!84(3C3LM26Q1;$P*2 3.45G6i*0;D,@67!6 ) 4")BHB )EA9%;,C35*%@`L8,<1Q3/E ?(d$3"-‚5%O:912dH&$"E62;9I;,4DS+.+.dW:9ü  +2:N0G&-;L<,#=\JF1T0A  /?"Q'/Y)1".46 B.GFi.\XZ5 4 . \X7]hD)<?Ng£±c):2"\[2 "-2+6aHV 7J&=(l>NbECYDJ/;GH6A'>17ÿ7C =HDH<K4!#>)<.%?6<%8:*/D1=6H+" :)7@ C65;44#!) :LqOR,G<6D=H-:K B2$= E-"8)8V5E S/')9C#)LB<0@);<\A9)bHA?3)&#(:2-=?6'9P1)I66E+.7?IUCJ  :ÿ< >-&T>6?!S/6(K-=!(8E;,:6!-=-7E'0F_œøÛfL(`@A ôÓS'D1[)0*5,1 @0Kb<:.I'+J!"*c@*6?*ö&=4,83ñ.%E*U&#;4-;5,//@(C=7N%PE,:F!;6 CP/BF LM29W.%(F4!L>N"42!"&;>FD(9:4&+A,)6;û9HM'(5?a17]$3S2N92A(GC45F'0ežŸçá¶fΨy=R8?9-,0<3E2;!2!<20!I?+*?9+'T#&*)%)DCA@N>9 ì%!)>1KM"!=6B21 !-ZN@2@A-7 ) %2"'/"5W6588FH)#1:</(>G+*6);27@R8I3Y2L5O"' 4')G;6VA ,*9,00"02L) +!/EN8**3@F(D)=S/-;7><d4-@ËVߎ»{m&% 4!!@ IAL(-P9(><D&C+&Z%5}q14&)  E8#V5:B1T7#1!dnZQ"sN91]U2A98& I38,N-1?6E"(2@/G<%,J@ &;L+C9[9>Q,7@-.V4%(0+;O/#&(*I+CE%D)4F5E1)CL(B&)&)A<,GG,-:(>9CYKR=:+3,B3.E:$:l2L6=!1=.^MF7Q=2%÷4.2@(#8D'6‡-SI,W(?46< >3.@A63&ò!$3K  +*9+=D37/" #4L)3684'dOø BO.27"G H'.."%20*W>,;3d<&K&4B6(/M>7A*G[Cur¹G5/ES/A9920+7$0$:?$=VZ8^C71/#T(10G+0 9W,? P)!9@D&):,3K&h<":[0 ÿ?`#G:R!(>@(!$)'C$A?-(;,@jl7SF(?3. S,;,)-?&:CH;$+ +!B ]< Q-:B5\3G O<D90('@).&3[EEn35 .\Ui O D$ "0R:!@$>ã),>3"2+>1;,+H@>3>c)# N%E%.(3)!+*ù333EB,L90X^•{NBö`%%Ha¹ô A.2'I?'t63, *&&I#<.7=C088-B ð2F52D+JD.:0F-N/2%/36:#G(MR9,$BS/4-LQH1.'&BN$0<1P8-0G5 ![>-M),:&52(0+Bï6.O+3,"4.>J_:27e*>-Q;%-E%-?614FEC|è!`nãÎzW0+88"/:-6<2^34.= 3LF'<54JI3 .;(2EL)0/E7,V "^1d(K$ 3@2;27!>A)O%(4B$%^S 2ECF1$*%AY&-,6H- $&O O/"Hd-$/0&(þ&1NNXH,0"J-6F;9 16 G.1(#2L+B#5!R10 ý!JÍ„B˲gTB&6#79 '26@/ U%V=()9,%)&+&.F(F> +?ý$HG!)<!!.$C ÿ@"38>[eJ"(&.-6 -"!5+/#7^ M<&()7# %3I(0.9K>7+G, 0+$-%28*$[ 0/) 7:ÿ,$P_-!F48!+. +J( 97".I4*;G)57ó555ïU +!/M0H;NHf+-)A41;)2;70þI +044 >XSA,9/C/[N.+0;4"C: - *= $1/ EL1=&30/=;-øfI(,?$7;6& 88DC&÷! c 6A)TN1 *##9,048O !%1ô"==2%1r#23 TWGA8'V#5B4,0*49:þ"f!5$@$.<D&9:;+=1?L4+E(0&"*KA72CA9 / + CPJ50.B&-13@M#2(-'BP*0.(>%.9MAM#-/';B9[7 (<9@*õ#&;+(W%>I ?3%N631+7G%%>FJ 638S68)92)@#34] E7$ $ó$/4,(:?225.0G`H0=&#G@+ +'+1 05.@;(.C?S4H8( !A# +N,@=%_I:…üøq)4D.Ptò<ˆ`%6&%F>Y&N'! 0 #764>>%<10;W,'/D &S&C420L+2 25T>(6Sþ:(!H R$94!?7pLJ@"]4P&J1N%NK5 7:42E#3Lü +1)//ÛJH// 4.)3M-TQ/D6!13FF!.*-N'F"/6%G0.$B# 4)e§³Ç`BWB()? ,,!Z7C=GD82M-6$"::-Z=-1ÿ7-+QE'MM8-]051 :D*9*$12F#39P0K(;HZG3"<W+E$' 05-026!'Q.T4,;=->3,#>L"5-7&D!ÿ<:1<?S,A^";@'0'?).!3=!!*U'6Q6(J@Bg;##0>,?.=5P>Ni5%VL 3%:$=g§¿°yfL9'!T71"3@$DJ7B9G$4,=A"I%D. (03>W< #(.)@5',J?/"2#5$!0:(2&Q6=34 &,"%/P<<I,'26?(A)8B6,Q<ÿ B. E(O,+.4,8I & C"4,%;7ÿ?=C.0::A+,è 905ZLH3+"392C/4744(%ü0FC:&-'69*9 9974$#9F;$F':IA=*YO#D?"("H2R`)>3$E)K""/Y@949$TL,#43#>@);/*S8H70$1;7#P"D(>0*9$IA<(3((08=?%T/$H4'+20CENd3U 1:?I48$>'/) !%6…eKE775b>'8<)1.I%&FCPR!ø2+&:6"A -2 XK":ø"51CC&üBG,8#<<S(.+0AT<J3G%I=L0?')3<D/$=#X#)yi'*9  <8MZ#U2I{D)34)E<*/*@H')ú3-(."#;3,/';6P=#AE?'ÿ?()ANþ>'= O&(=-98;- 9 75?$:4Q127>4#<-DJ3b2:>@1& 4)*GDG?:$$71'*>@2MSJX1U/%<7F2UE$R?J*JDv\%&S1Dƒ$©nk(5HKO +L F.LG9KM0:<A<?2#%!8 >GD1=38f&4$;!#?^V* ,KK9BH *:;0 4F ^&V\FS^UY(#3Q+9.F$4þ +GB8G%3U@! .$MGV#:'+%9:S?B&K_LE,KB ECM(0/VF.#e4RX9OEEunLC%7H_ 7÷T//93(J F>!:":/3Tÿ10>$>MH.>  +C=@B@8V4,-+2I $:,+)7<.74B-4$ÿ 1 ,JM1!<, (.X-C&9#,$+9F<D  6+,+>Ü81]54GU1%+K0N, é "V$B)-$$:*B( H*é'@F1ñ+J;¤jQOG'41545=0=/WA(EB5d;E:G5$33E,?,  +î,, 99:,ñ?@($H%02Bü):>2ö@:0&57.3,4EH)G'*@1 *1=1+:%%=E'RJ5*-F;/46@<4'%?)#FV=(, =*(DfE>= $-16.HJ!U,2334.*,= Iù-5/A%D."H_,*5LK<KE3?B +4 +8/33;)9X#ñ' .)#4(dN9 +320)%%\;C +?8/2",ÿ+&4+$4AC$F)G0/ /81ù&L/(/083A3<(%W2<==2.8ø$&13C+&(55ù19!&>òÝ6)63B]\&=M14K<&3" 99C@!#=UO '=>:<;[@4:*@+#@ L9"/.S@G/#& "ù,1,*-N(5$'!"!=/1D,"E/=,<@"Y]$H +*+B./-5*<÷132D-?gt2&mJ(''+$f'm=2X",)dAAR+&!7A,:T5F)E-)%K3A +!BÿC8:<ED&:&HL&+*38=WJ#$!0,60663%A$&U +@%;üU]8$27.0%.-4-:'6 ."#;N5g<:0GFP1%í=6Y4%.4CH13Ga!fM_Rˆ 6A>929I/ 28(,*%\V:,F8.Jü>1'@4!,%)N%;,0/W3[8@9=$ü.LEE081,8I4R4PI'9A1;,@!7'!#H$2'!:*'@?+.*;4;8AA,6BH 4.2;9#:<!+ SH*5 %\:'ý44DD8):1c0L3"U5(721%=1U!&!40&wLJ>$%FC ?8D>)G+UJ L+:*%G4C==+7#10D<:"A712> B"X4@.;6.-[D3 !÷G1<-"8,=*8*!+'F8&)@/* 2/A&>OCV:.\'þ)"CDMJ(H2@!cñ6$WM3„Æ´J4)+(<!C?-M%?)2 Mó,!B'<W< +91>5D'@-+BL:<D*.ÿ08 ,&"!A??Q!*1!.== - .%+9N/?$A&÷C0P'<</-!ý)(K;7)'-6=:,?R/* /Q9 PD*IE@<C  ?=.A/&01)&/39.(&"$:U<(+3S"!A)\H.+=5,;> JHA,AK( :,d$;"(/!+&;*Wf '.64,8B0: C!9*<71,>",-A6P.,&5"I7<N0H,O@9C*^1(3,21)  ; =*9*0<%?4;?1*105('!E1#G%ïg,?38*36)$*/ <3''B>)+?$5:;EO^7;+,A< G G,>üL@A%4S! +c:(3.@1)/1-&V4)!'%)D-1ó%/L ;A!83$8D.A-$&&#8:U)&!7%;C!*ÿ*&#W:=3)4e\,ES27ë8/)0.>2?%@8+O;4c'M3&€:/@7%0"G"52)SPH?'Gf[.999'=5-a*1 >;K916O;'/=UP39725!.D98&#?4C!` %6.V:"\*:TE&<"@+5,7?+">P@/!)>í"L C[>h}P2?"("ò:66.H&CS<FMXG)4tìd*%&Ñ;#$)*H[9. <G2W42741$G #%08/AHS&/)3<-H+!.t!@7 ?GL(#7,,H<59K')D2,G\BC+>29#E.@+E6B Z0$(,O<40:e=6=F[ e8+1%4#õ*N=ü+-_)"LH %.3$58%:9JP7"+; W*.-CN4;J&?9+$A03.B&,<:)6.9!756$4-, 4S":L>E0"OD1$óI>EC H,%A1,; +,"2'+ + #(*;?%5'>&6863XV8S,ò<jV=KDZ”o8Z,/[ô=M%EU,A57.D'<)6:41`Œ„KBn]A)aSVT>ï/DB;% G30$!/8%3RORJ834-$ 5"3F4)+>!6J??07#/2ó88)45!&6?n BH ?09T \?. ?4!2 55?+&47  (7D0C$@ 13*N +.",)7"3;ýr$C,Qÿ0'G86-))E(7G178=8 +Õ<&(;, 6 <&,% &'CC>ü($Gñ"<$ "þF9 :C>1F +B94/320$O$ &OwP&@#?,@#2@ '(B'*7M/0ù2E+.(AQ>HýH)H"$M<7B'<$O30G7WPú%%"$L!0GV 2A 1C=9,][!7(%'%1aCC.Hd1>1H .""#*-4Yt t!+ì]&'*,B(K5)QüD3I(0M47?#6% &C0,/F BJ4C> +47' +3* %191 2%0()÷$8"CD+E.',EDP:2CKa%4>%'*XKAGR2P0B?9B-A#5F9B-R+ö;Q'%6>:6.>30-9L,MY?EÿPHHQó89"P;"3(Zh$J 4;#$T;UH@!.1O:4E-%Q>=4;T/8%+/(,9&*K7'( -3A+)wZW;&. KF63("G<9SEGQG.)X;9VÈãpT9!'# $8C)48)ý:#F#N!5&:e&#H7!W9>2C7:--..'1515*,>%0-2f -8)</S#* +NHA5:/ *2<.A R?@=89:: ?90.+<F45@%CSA3\9+#698 Iö7/A '**=@Q#%+:J<'30,(A910.9=T)K%251 ."4E435#37>Q2R*?9HK&16# O*/ )5-I% +$)k2 ^1(-1=&÷(,8G418)#204'# F&#/:),7I2(C9;>6=!0:Z#=,R2WA09ZAМbDF42<-:#2$3N 0B/ U 0ECTÿQK<4.FwrMJGSM%,38D<&23 )( %*J?E& +L/7wN 3346\H&#1*( &(65%U;F,5;*0=%$'$*<'# Q)$2:0#&P<-7,2A1>&,@@*-  ?9307/6 *%)7!3$%L=3*G$8L EA!$* *-?!<,E(/ <:3,):7J'"1 )*?ý>2?9<JU""A<# $7T<*%*&.(8*&<$w%8..$DW3+32FF7/)PB>#D -6 6#K&:" 5 T*)7$L/:13I78'" :>W2L!=KL?1.EO"N>-$K6 Aõ B;B),#[ö> @K!62$*<#:_ %F-J?C2+e-)HF1.#I7G$54,Cý@8-ö<Y3--"ÿ-B L150+2J A+JA$K065@9!G'R (;$è<:=@8>-95"%'!3* @!</##@+9L.(+%2/3?þ.;*B;APkVRu>&-=-F2>4/6(&'>5&E :<)=;E(48LE:.=0KR*I$1)=8 38:*(,25M\0/H*@CD9CR6&3=N=./RC'.b984N 9=ý"V6g3:=&C@/Ze% )>7&L9C? Ho*@Jl- W*.E}™^r ;*"$;:<HgA$0%3V79Q-óO >"]21H6(C +D,#-:K <65P:V=5 75CF-Q$7.&*"[OACx)!2+K-2:T,00<.&'51 6$&C.&`?,-3'8$+*3)6H18-IO D+-)%1C4BC6/1'B,</( !B,#! 2-,(5?);/7"(/H&3E(I//*H,/H31%/3";=G*/,"M'( '+701#6<+=$$g@$A& +6K*"aJ?/:7,CVG4C)",#(854/ý+J- >H8$LT:[D%DL%5*7!A]`FF2&i„fT$),J)_BL:H,>6f/-5QB9J55K:é8#4|…ˆ]=BqG6f!55A:CK&5%1#-*eJz. \"0@ý**ý;/%:?î*6).G 4E)" 'X'&)2!3L.ý1'-:ÿ9"$A/&&(H00-J1 P-77: @-:5334H8*+#*G3-,)#1B:$AE),=c&05F?!6>D0"-";"ZU!4(",4;(,2!.' ."6#,ý@ .-F=G!*;8.FK$6û7;*?)F &)(<""2J6-B'KC -.3ðZ5ÿW#>M<ûX<18KNé-ô V1  0&CãS<3Q ,>F;,#% 6"W-"+?þ-M*!,þ 2C8:;3G&(#D+ '!÷2=#?,1?$;D .*A?(;:%a~J3DO [Mã -F1! ML'D'4&:>? ;1'S$`GA,e76!' .:5,PF!S09 ø:!?8=7/7.5#K*@G/48?/)9GG66S1H1C+_#SE)/.0J#8Xó?&RO+*)!.M:6%1KEP0,>:*D-<>.ûA'Q/F75,,'`7!D()R48: ;E*?Dï"-Q# -A÷=6G< -93C9"9)/ A65%,Y"-A3 +,D17GBK7/8,7 G3($<^C[BcRN6X@$;k^`D %G?%0.)?@â#CSì0FBU)0A-SN0@L6&"0I3'67B-ý+.< O19#.;*C \e_Vr8AE0(Y?!8>%C/",0PEA;! ûL9#/E,F (!4#?81O,# >( L""% @67/$18X+4%63]N+*H?9M0=-J#B.N0q%A':E.8 6O*+)>(:G5D;:Bc5b9A(1%õA?>$8!C'TqH%ü/Z+!1%Ii593-E3*!1('UK@:P? (N2GB:Q/,4-3A*0;V9+.X?>&9JQM./Cse%C,E)_ +)O_#)L3;!2&7 J) (-H!7&. -9@‰P7i/4$ *(72.%=(1+="$1A4'ö0 >J'+3;%)(=O9.2=##)+9*.(\0?%P/0/Q)+)294@.B )"IH%>/&?3>$")6(*>3"%-E$'1#7G?-3:I"N:.:&,=(@O%+CD"6(X2,:-N*)7 B /'AJ58$C:!+"7= G >\!105-B1>6/&,Y),'AJS"F*B?D+1.JJ*2/ì(- .0 $&ZD",3."ò020"5QDJCC6:ð*+ +%T39(3;4$ ' E7W=6)290 3E*,L&#üBÿ*6 &-"526 +"&16A8J/ A-$Ek -))ö+ D ò#&0 H,3##-dqzC/I05$4) +?%'QPT,  12æ +HM(A0FoG4#*;(Ü)+9LG?=)!74"6!(û+*#1;(1+GU>\8=QQ..(:?-@7"7=O*6K@ô?8R&F0F(05;7& )*-!+N +(M ø6I!\ñ)DA P5<6<30,3B&1SB-);&#Q(P>û%VN&ô*BH ,!-5ESE +J/"7>/M;3i!<ñE?  .KF:+fK]-4>@%d265B (?9)9\.;#:TrÅÔqYOQ3>E4NN; 6#0ùBKñDQ/3+'="(@3&3 +*->D,.4(5(+$$6-D.WV9öO,Eþ7FLC5g·[ý‘?3+c)C# 4+F G/A B,$9:UD@%1!O0:1*@8>H;*F/Jôö#*&1<O)16ø796F Q#4=?8<4DA&"89&1%=8f>[ý'bB=6<3#00AT ;&;8e\Wb+>& 'T;/24,@O=@M?&>9 +%,90?0;= 5$< ;U175+!;>I9N)CF+B'7f*[<G)J3&,r^;">#B5'"SF a.w5)"<F@=-1'JJ7+EC/#ôI7X*B&aDB#%J92 #3DT$.@Fbl@/[.=$'?1ù4<@R 6*E0.F<7ý8I#Gö2&%31F5 öH87'(#S/%B1@6*<&<H,0GL(,/P-# )0,69*D.î;"<#7JE>A,+Z)Kú0#5A4J.,)W6C0A??AG(G F,? ú&10&"A"7I 4>(>/G/@JDk% A(#!1<1%0=Fø742ù'a@($.=#').=73!$-"F+ QC#1);6, GýTCOuá)/a; +?8B !13@38!(' +ù$4  ;3)88/(4/'"5E1(G")Z2ó[! F4E/43E87G 4<"AB+I=* .O_I01H1C<+]H&,241!> *3@26+K+U!:2 ">,?A8P:4B +#4(%<+:7G #12\"aTOA8*20U">ý*AJø5.7(#/$**A;0i8/>25( Y</S ÷+@6.!FC# 2`0+:0$<8"P)FH9G<'*)B ô1B +$AlC'#:5)); GCF+[C;,F"=/5#;8? 3;94,E.7*=<,/û?70147X/V3,@E5&=:,-,D7" d74C? ;2LL1)093.+_‚³õhÁŠ@cG*$71!&49/ýO4>)0*@\.;=F#'_0+5-)7/165 +.S*!%-692K<D+:2L4,72-"!ëþCW±}|<®\CA3$%"0Iü>C-#21'UO8Y@0*&00:'ó3<273%*5%<8&+OB00P‚ŽT1*%:3#2(5*?YEA62F+Q-JV6JE;-B 74 \ No newline at end of file diff --git a/tests/galaxies.weight.fits b/tests/galaxies.weight.fits new file mode 100644 index 0000000000000000000000000000000000000000..43bf61cf1c6888794ffe319d0a6e9ff4019965be --- /dev/null +++ b/tests/galaxies.weight.fits @@ -0,0 +1 @@ +SIMPLE = T / Standard FITS format BITPIX = 8 / No. of bits per pixel NAXIS = 2 / No. of axes in image NAXIS1 = 1024 / No. of pixels NAXIS2 = 1024 / No. of pixels EXTEND = T / FITS extension may be present BLOCKED = T / FITS file may be blocked CRPIX1 = 1.000000000000E+00 / Reference pixel CRVAL1 = 1.000000000000E+00 / Coordinate at reference pixel CDELT1 = 1.000000000000E+00 / Coordinate increment per pixel CTYPE1 = ' ' / Units of coordinate CRPIX2 = 1.000000000000E+00 / Reference pixel CRVAL2 = 1.000000000000E+00 / Coordinate at reference pixel CDELT2 = 1.000000000000E+00 / Coordinate increment per pixel CTYPE2 = ' ' / Units of coordinate BUNIT = ' ' / Units of data values BSCALE = 1.0000 / Scaling factor: r = f*i + z BZERO = 0.0000 / Zero offset: r = f*i + z DATAMAX = 9.852823437500E+04 / Maximum data value DATAMIN = 3.713666992188E+03 / Minimum data value ORIGIN = 'WeightWatcher' / Written by MIDAS DATE = '31/08/93' / Date of writting: DD/MM/YY FILENAME= 'NA36Rm50.bdf' / Original file name MIDASFTP= 'IMAGE ' / MIDAS File Type OBJECT = 'WEIGHT MAP' / MIDAS desc.: IDENT(1) DATE-OBS= '26/10/92' / MIDAS desc.: O_TIME(1) MJD-OBS = 4.892162787000E+04 / MIDAS desc.: O_TIME(4) TM-START= 1.104800000000E+04 / MIDAS desc.: O_TIME(5) EXPTIME = 1.200000000000E+03 / MIDAS desc.: O_TIME(7) INSTRUME= 'EMMI ' / MIDAS desc.: INSTRUME(1) COMMENT IP_JIDNT 7 / IHAP: identifier system \COMMENT COMMENT IP_JSEQ 24887 / IHAP: sequence number \COMMENT COMMENT IP_AHGC 2857.489 / IHAP: high cut \COMMENT COMMENT IP_ALWC 2112.953 / IHAP: low cut \COMMENT COMMENT IP_ASCX 1. / IHAP: scaling in x \COMMENT COMMENT IP_ASCY 1. / IHAP: scaling in y \COMMENT COMMENT IP_FILE 'IHAP/FITS/EM9210260304099.FITS::USER ' / IHAP: Begin of keywor\COMMENT d COMMENT IP_FEND / IHAP: End of keyword file \COMMENT COMMENT EXPTIME 400.000 \COMMENT COMMENT IP_CBEND / IHAP: comment block end \COMMENT TELESCOP= 'ESONTTB ' / MIDAS desc.: TELESCOP(1) OBSERVER= 'LAPPARENT' / MIDAS desc.: OBSERVER(1) RA = 5.648170000000E+00 / MIDAS desc.: RA(1) DEC = -3.018297000000E+01 / MIDAS desc.: DEC(1) AIRMASS = 1.068349957466E+00 / MIDAS desc.: AIRMASS(1) ESO-LOG 00:00:00> DATE = '1992-10-26' / Mon Oct 26, 1992 ESO-LOG 03:04:08>-START EXPO EMMI RED / Start exp. on EMMI Red CC ESO-LOG 03:04:09> EXPO EMMI RED NO = 24887 / Exp. num. on EMMI Red CCD ESO-LOG 03:10:52>-STOP EXPO EMMI RED / Stop exp. on EMMI Red CCD HISTORY COMPUTE/IMAG imAR0051.bdf = #0001-bias50 \HISTORY COMPUTE/IMAG imAR0051.bdf = #0001 - 1.51001E-01 \HISTORY COMPUTE/IMAG NA36Rc501 = #0001 * 1.00000E+03 / fRc50 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc501 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc50 + NA36Rc503 \HISTORY COMPUTE/IMAG NA36Rc50 = NA36Rc50 + NA36Rc502 \HISTORY EXTRACT/IMAG intex = NA36Rc50[@0019,@0003:@1042,@1026] \HISTORY Renamed from intex.bdf to NA36Rc50.bdf \HISTORY SELE/TABL cursor MA36Rc50 2 0. 3 Y MA36Rc50 \HISTORY READ/TABL cursor interclean 0 6.85000E+03 3 Y \HISTORY interclean Renamed from interclean.bdf to MA36Rm\HISTORY 50.bdf READ/TABL cursor MA36Rm50 0 \HISTORY 6850 3 Y MA36Rm50 READ/TABL cursor MA\HISTORY 36Rm50 0 6850 3 Y MA36Rm50 READ/TABL \HISTORY cursor MA36Rm50 0 6850 3 Y MA36Rm50 RA = 5.648169994354E+00 / MIDAS desc.: O_POS(1) DEC = -3.018300056458E+01 / MIDAS desc.: O_POS(2) AIRMASS = 1.068349957466E+00 / MIDAS desc.: O_AIRM(1) HIERARCH ESO GEN ID = 'ARC-0001/1.2' HIERARCH ESO GEN PROJ ID = '000.00.000' HIERARCH ESO GEN EXPO NO = 24887 HIERARCH ESO GEN EXPO TYPE = 'SCI ' HIERARCH ESO GEN EXPO LST = 2.420000000000E+03 HIERARCH ESO TEL ID = 'ESONTTB ' HIERARCH ESO TEL LON = 7.073450000000E+01 HIERARCH ESO TEL LAT = -2.925840000000E+01 HIERARCH ESO TEL ALTITUDE = 2440 HIERARCH ESO TEL FOCU LEN = 3.848200000000E+01 HIERARCH ESO TEL FOCU SCALE = 1.489000000000E+00 HIERARCH ESO TEL TRAK RATEA = 4.200000000000E-03 HIERARCH ESO TEL TRAK RATED = 0.000000000000E+00 HIERARCH ESO ADA ID = 'ADAPTB ' HIERARCH ESO ADA MODE = 'STD ' HIERARCH ESO ADA ROT = 0.000000000000E+00 HIERARCH ESO ADA GUID-1 X = 1.294000000000E-02 HIERARCH ESO ADA GUID-1 Y = 1.717000000000E-01 HIERARCH ESO ADA GUID-2 X = 5.070000000000E-04 HIERARCH ESO ADA GUID-2 Y = 1.110000000000E-03 HIERARCH ESO INS ID = 'EMMI #1 ' HIERARCH ESO INS COMP ID = 'HP RTE-A V5' HIERARCH ESO INS MODE = 'RILD ' HIERARCH ESO INS OPTI-2 NO = 1 HIERARCH ESO INS OPTI-2 TYPE = 'MIRROR ' HIERARCH ESO INS OPTI-2 ID = 'RILD MIR' HIERARCH ESO INS OPTI-2 NAME = 'RILD ' HIERARCH ESO INS OPTI-3 NO = 1 HIERARCH ESO INS OPTI-3 TYPE = 'FREE ' HIERARCH ESO INS MIRR-3 NAME = 'UPPER RED' HIERARCH ESO INS MIRR-3 ST = 0 HIERARCH ESO INS OPTI-7 NO = 3 HIERARCH ESO INS OPTI-7 TYPE = 'FILTER ' HIERARCH ESO INS OPTI-7 ID = '#608 ' HIERARCH ESO INS OPTI-7 NAME = 'R ' HIERARCH ESO INS OPTI-9 NO = 9 HIERARCH ESO INS OPTI-9 TYPE = 'FREE ' HIERARCH ESO DET NAME = 'THX31156' HIERARCH ESO DET ID = 'ccd$18 ' HIERARCH ESO DET TYPE = 'CCD Four_Phase' HIERARCH ESO DET PIXSIZE = 1.900000000000E-05 HIERARCH ESO DET BITS = 16 HIERARCH ESO DET FRAM NAXIS1 = 1060 HIERARCH ESO DET FRAM CRVAL1 = 1 HIERARCH ESO DET FRAM CRPIX1 = 1 HIERARCH ESO DET FRAM CDELT1 = 1 HIERARCH ESO DET FRAM NAXIS2 = 1040 HIERARCH ESO DET FRAM CRVAL2 = 1 HIERARCH ESO DET FRAM CRPIX2 = 1 HIERARCH ESO DET FRAM CDELT2 = 1 HIERARCH ESO DET DKTIME = 4.000000000000E+02 HIERARCH ESO DET TEMP_VAR = 1.000000000000E-01 HIERARCH ESO DET TEMPMEAN = 1.376000000000E+02 HIERARCH ESO DET COMP ID = 'ccdr-V1.0' HIERARCH ESO DET PARM1 = 'CLOCK=tho1k' HIERARCH ESO DET PARM2 = 'HLO1 : 2.02 VLO1 : 1.01 VDD1 : 23.03' HIERARCH ESO DET PARM3 = 'HHI1 : 15.00 VHI1 : 12.01 VDR1 : 13.98' HIERARCH ESO DET PARM4 = 'HLO2 : 2.02 RLO1 : 1.01 VGS1 : 4.99' HIERARCH ESO DET PARM5 = 'HHI2 : 15.03 RHI1 : 10.07 ICCD1 : 0.00' HIERARCH ESO DET PARM6 = 'TL 1, 5 telem. data' HIERARCH ESO DET DATE = 1.989794555664E+03 HIERARCH ESO DET MODE = 'SLOW ' HIERARCH ESO DET GAIN = 1 HIERARCH ESO DET AD_VALUE = 2.100000000000E+00 HIERARCH ESO DET DIT = 4.000000000000E+02 HIERARCH ESO DET SHUT TMOPEN = 5.000000000000E-01 HIERARCH ESO DET SHUT TMCLOS = 5.000000000000E-01 HISTORY ESO-DESCRIPTORS START ................ HISTORY 'WIND_RAW' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.9000000E+01 3.0000000E+00 1.0420000E+03 1.0260000E+03 HISTORY HISTORY 'STAT_RAW' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 6.5800000E+02 3.2767000E+04 2.3813201E+03 5.6562799E+02 2.4699001E+10 HISTORY 3.8941301E+14 2.4969999E+09 2.3490701E+03 2.3460000E+03 2.0070000E+03 HISTORY 1.6000000E+01 6.5800000E+02 3.2767000E+04 HISTORY HISTORY 'WIND_OVER' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.0000000E+01 1.0290000E+03 1.0550000E+03 1.0390000E+03 HISTORY HISTORY 'STAT_OVER' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 2.1200000E+02 2.4400000E+02 2.2111700E+02 2.5815699E+00 1.0815500E+07 HISTORY 2.3924700E+09 2.5441800E+06 2.2058000E+02 2.2050000E+02 3.3000000E+01 HISTORY 1.0000000E+00 2.1200000E+02 2.4400000E+02 HISTORY HISTORY 'BIAS_FRAME' ,'C*1 ' , 1, 7,'7A1',' ',' ' HISTORY bias50 HISTORY HISTORY 'BIAS_OVER_DIFF' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 1.5100101E-01 HISTORY HISTORY 'FLAT_WIND' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 4.5000000E+02 3.8000000E+02 7.4000000E+02 6.2000000E+02 HISTORY HISTORY 'FLAT_BKG' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 2.1311699E+03 HISTORY HISTORY 'SKIM_FRAC' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 3.5154400E-04 HISTORY HISTORY 'AV_WIND_NAME' ,'C*1 ' , 1, 5,'5A1',' ',' ' HISTORY fRc50 HISTORY HISTORY 'FLAT_FRAME' ,'C*1 ' , 1, 5,'5A1',' ',' ' HISTORY fRc50 HISTORY HISTORY 'WIND_FIN' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.9000000E+01 3.0000000E+00 1.0420000E+03 1.0260000E+03 HISTORY HISTORY 'STAT_FIN' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 6.0423798E+02 3.2842602E+04 2.1606499E+03 5.5936798E+02 2.0734501E+10 HISTORY 3.5516501E+14 2.2656100E+09 2.1273799E+03 2.1162400E+03 2.0150000E+03 HISTORY 1.6000000E+01 6.0423798E+02 3.2842602E+04 HISTORY HISTORY 'WIND_SUM' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 1.0000000E+00 1.0000000E+00 1.0240000E+03 1.0240000E+03 HISTORY HISTORY 'STAT_SUM' ,'R*4 ' , 1, 13,'5E14.7',' ',' ' HISTORY 3.7136699E+03 9.8528203E+04 6.9033799E+03 1.6677500E+03 6.1352398E+11 HISTORY 2.8897399E+16 7.2387098E+09 6.8047002E+03 6.7938701E+03 2.0480000E+03 HISTORY 4.6318802E+01 3.7136699E+03 9.8528203E+04 HISTORY HISTORY 'LHCUTS' ,'R*4 ' , 1, 4,'5E14.7',' ',' ' HISTORY 5.5000000E+03 9.0000000E+03 3.7136670E+03 9.8528234E+04 HISTORY HISTORY 'DISPLAY_DATA' ,'I*4 ' , 1, 9,'7I10',' ',' ' HISTORY 2 2 513 513 0 -1 -1 HISTORY -1 -1 HISTORY HISTORY 'BOX_MIN' ,'R*4 ' , 1, 6,'5E14.7',' ',' ' HISTORY 3.2100000E+02 2.1500000E+02 6.9644336E+03 6.3300000E+02 4.2300000E+02 HISTORY 6.8900532E+03 HISTORY HISTORY 'IJBORDER' ,'I*4 ' , 1, 4,'7I10',' ',' ' HISTORY 1 1 1024 1024 HISTORY HISTORY 'LHCUT' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 3.6236699E+03 8.0148297E+04 HISTORY HISTORY 'ZEROMAGN' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 2.4671000E+01 HISTORY HISTORY 'SEEING' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 1.8308023E+00 9.6358800E-01 HISTORY HISTORY 'PAIRSPRT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 3.1899800E+00 HISTORY HISTORY 'MULTDTCT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 4.1900001E+00 HISTORY HISTORY 'PRFLCTRL' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY -5 HISTORY HISTORY 'OUPROFIL' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 5 HISTORY HISTORY 'STMETRIC' ,'R*4 ' , 1, 2,'5E14.7',' ',' ' HISTORY 9.3000001E-01 5.5799999E+00 HISTORY HISTORY 'BRGHTLMT' ,'R*4 ' , 1, 1,'5E14.7',' ',' ' HISTORY 1.8387699E+01 HISTORY HISTORY 'NBSTARS' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 17 HISTORY HISTORY 'PSFTAB' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 1 HISTORY HISTORY 'THRESHOLD' ,'R*4 ' , 1, 5,'5E14.7',' ',' ' HISTORY 6.8047002E+03 1.1384800E+02 1.6730800E+00 2.0000000E+00 2.5446301E+01 HISTORY HISTORY 'N_SEARCH_ANA' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 822 806 HISTORY HISTORY 'N_STAR_GAL_DEF' ,'I*4 ' , 1, 3,'7I10',' ',' ' HISTORY 46 744 16 HISTORY HISTORY 'HIST_BINS' ,'R*4 ' , 1, 5,'5E14.7',' ',' ' HISTORY 2.5600000E+02 2.8824686E+02 3.7136670E+03 7.7216609E+04 0.0000000E+00 HISTORY HISTORY 'HISTOGRAM' ,'I*4 ' , 1, 256,'7I10',' ',' ' HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 0 10 64 23 12 HISTORY 3 3 4 4 3 1 2 HISTORY 0 0 1 1 0 1 0 HISTORY 0 0 0 3 0 1 0 HISTORY 0 1 0 1 0 1 0 HISTORY 0 0 1 1 0 1 0 HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 1 1 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 1 0 0 1 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 1 0 0 0 0 0 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 0 1 0 HISTORY 0 0 0 0 1 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 1 0 0 HISTORY 0 1 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 1 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 0 0 0 0 0 HISTORY 0 0 1 0 0 0 0 HISTORY 0 0 1 0 HISTORY HISTORY 'STATISTIC' ,'R*4 ' , 1, 11,'5E14.7',' ',' ' HISTORY 3.7136670E+03 9.8528234E+04 6.9033760E+03 1.6677493E+03 6.1352378E+11 HISTORY 2.8897433E+16 7.2387144E+09 6.5048496E+03 3.8995779E+03 2.5600000E+02 HISTORY 3.7182184E+02 HISTORY HISTORY 'WINDOW_FROM' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 1 1 HISTORY HISTORY 'WINDOW_TO' ,'I*4 ' , 1, 2,'7I10',' ',' ' HISTORY 1024 1024 HISTORY HISTORY 'NBMODIF' ,'I*4 ' , 1, 1,'7I10',' ',' ' HISTORY 1 HISTORY HISTORY 'STARS' ,'R*4 ' , 1, 51,'5E14.7',' ',' ' HISTORY 2.6300000E+02 8.8700000E+02 4.6759199E+04 7.5000000E+01 5.6300000E+02 HISTORY 1.5854400E+04 1.3000000E+01 3.1300000E+02 4.9727699E+04 3.3900000E+02 HISTORY 4.3300000E+02 9.6787102E+04 7.0100000E+02 1.6300000E+02 1.2378200E+04 HISTORY 8.5500000E+02 2.5500000E+02 3.5242898E+04 7.6100000E+02 3.3300000E+02 HISTORY 1.4904300E+04 1.0110000E+03 3.5700000E+02 2.5686801E+04 9.0700000E+02 HISTORY 4.0100000E+02 1.6969100E+04 8.4900000E+02 5.2500000E+02 1.4543700E+04 HISTORY 9.1700000E+02 5.4500000E+02 4.4644398E+04 7.7700000E+02 5.7700000E+02 HISTORY 3.6737199E+04 1.0010000E+03 6.9500000E+02 9.8214500E+04 8.2500000E+02 HISTORY 8.0100000E+02 2.0127900E+04 6.3100000E+02 6.3500000E+02 1.6520199E+04 HISTORY 5.8500000E+02 6.7500000E+02 1.5727300E+04 6.5900000E+02 6.6500000E+02 HISTORY 2.1833900E+04 HISTORY HISTORY 'DPROFILE' ,'R*4 ' , 1, 25,'5E14.7',' ',' ' HISTORY 3.2567519E-01 6.4562768E-01 6.5725815E-01 5.2960014E-01 4.1916752E-01 HISTORY 3.0000001E-01 2.8000000E-01 2.5999999E-01 2.3999999E-01 2.0000000E-01 HISTORY 1.8000001E-01 1.6000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 1.4000000E-01 HISTORY HISTORY ESO-DESCRIPTORS END ................ SOFTNAME= 'WeightWatcher' / The software that processed those data SOFTVERS= '1.7 ' / Version of the software SOFTDATE= '2005-08-27' / Release date of the software SOFTAUTH= 'Emmanuel BERTIN ' / Maintainer of the software SOFTINST= 'TERAPIX team at IAP http://terapix.iap.fr' / Home institute of the END  \ No newline at end of file diff --git a/xsl/sextractor.xsl b/xsl/sextractor.xsl new file mode 100644 index 0000000000000000000000000000000000000000..ecf2df5cacabd7ec71215fa10828cc1926b7ce41 --- /dev/null +++ b/xsl/sextractor.xsl @@ -0,0 +1,411 @@ + + + + + + ]> + + + + + + + + + + + + + + + + + +