pax_global_header00006660000000000000000000000064132400271740014512gustar00rootroot0000000000000052 comment=b0d72ff84e611ef4a9bead4ceaec718726832627 pspg-0.9.3/000077500000000000000000000000001324002717400124745ustar00rootroot00000000000000pspg-0.9.3/.gitignore000066400000000000000000000007351324002717400144710ustar00rootroot00000000000000# Prerequisites *.d # Object files *.o *.ko *.obj *.elf # Linker output *.ilk *.map *.exp # Precompiled Headers *.gch *.pch # Libraries *.lib *.a *.la *.lo # Shared objects (inc. Windows DLLs) *.dll *.so *.so.* *.dylib # Executables *.exe *.out *.app *.i*86 *.x86_64 *.hex # Debug files *.dSYM/ *.su *.idb *.pdb # Kernel Module Compile Results *.mod* *.cmd .tmp_versions/ modules.order Module.symvers Mkfile.old dkms.conf pspg /config.cache /config.log /config.status pspg-0.9.3/LICENSE000066400000000000000000000024461324002717400135070ustar00rootroot00000000000000BSD 2-Clause License Copyright (c) 2017, Pavel Stehule All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pspg-0.9.3/Makefile000066400000000000000000000010641324002717400141350ustar00rootroot00000000000000 all: # Include setting from the configure script -include config.make all: pspg pspg: src/unicode.h src/pspg.c src/unicode.c src/themes.c src/print.c config.make $(CC) -O3 src/pspg.c src/print.c src/unicode.c src/themes.c -o pspg $(CFLAGS) $(LDFLAGS) $(LDLIBS) clean: $(RM) src/pspg.o $(RM) src/unicode.o $(RM) src/themes.o $(RM) src/print.o $(RM) pspg distclean: clean $(RM) -r autom4te.cache $(RM) aclocal.m4 configure $(RM) config.h config.log config.make config.status config.h.in install: all tools/install.sh bin pspg "$(DESTDIR)$(bindir)" pspg-0.9.3/README.md000066400000000000000000000116011324002717400137520ustar00rootroot00000000000000# pspg - Postgres Pager Everybody who uses `psql` uses `less` pager. It is working well, but there is not any special support for tabular data. I found few projects, but no one was completed for this purpose. I decided to write some small specialized pager for usage as `psql` pager. This pager can be used from `mysql` and `pgcli` clients too. ## Main target * possibility to freeze first few rows, first few columns * possibility to use fancy colors - like `mcview` or `FoxPro` ## Screenshots ![Screenshot](screenshots/theme1.gif) ![Screenshot](screenshots/theme3.gif) ## Options * `-b` black/white theme * `-X` doesn't clean screen on the end * `-s N` use theme (default theme is mc theme) * `-c N` freeze first N columns * `-f file` open file (default stdin) * `--force-uniborder` replace ascii border by unicode borders * `-g --hilite-search` don't highlight lines for searches * `-G --HILITE-SEARCH` don't highlight lines for searches ever * `--help` show this help * `-i --ignore-case` ignore case in searches that do not contain uppercase * `-I --IGNORE-CASE` ignore case in all searches * `--less-status-bar` status bar like less pager * `--no-mouse` without own mouse handling (cannot be changed in app) * `--no-sound` without sound effect * `-F`, `--quit-if-one-screen` quit if content is one screen * `-V`, `--version` show version ## Themes 0. black & white 1. Midnight Commander like 2. FoxPro like 3. Pdmenu like 4. White theme 5. Mutt like 6. PCFand like 7. Green theme 8. Blue theme 9. Word Perfect like 10. Low contrast blue theme 11. Dark cyan/black mode 12. Paradox like 13. dBase IV retro style 14. dBase IV retro style (Magenta labels) see http://okbob.blogspot.cz/2017/07/i-hope-so-every-who-uses-psql-uses-less.html ## Keyboard commands * 0, 1, 2, 3, 4 - freeze first N columns * KEY_UP, k - navigate backward by one line * KEY_DOWN, j - navigate forward by one line * KEY_LEFT, h - scroll to left * KEY_RIGHT, l - scroll to right * Ctrl+Home, g - go to the start of file * Ctrl+End, G - go to the end of file * H - go to first line of current window * M - go to half of current window * L - go to end of current window * PPAGE, Ctrl+b - backward one window * NPAGE, Ctrl+f, space - forward one window * HOME, ^ - go to begin of line, first column * END, $ - go to end of line, last column * Ctrl+e - scroll a window down * Ctrl+y - scroll a window up * Ctrl+d - forward a half window * Ctrl+u - backward a half window * s - save content to file * / - search for a pattern which will take you to the next occurrence * ? - search for a pattern which will take you to the previous occurrence * n - for next match * N - for next match in reverse direction * Alt+m - switch (on, off) own mouse handler * Mouse button wheel - scroll vertical * Alt+ Mouse button wheel - scroll horizontal * q, F10, Esc Esc, Esc 0 - quit * Alt+k - switch bookmark * Alt+j - go to next bookmark * Alt+i - go to previous bookmark # Recommended psql configuration
\pset linestyle unicode
\pset border 2
some possible configuration:
-- Switch pagers with :x and :xx commands
\set x '\\setenv PAGER less'
\set xx '\\setenv PAGER \'pspg -bX --no-mouse\''
:xx
# MySQL usage
MariaDB [sakila]> pager pspg -s 14 -X --force-uniborder --quit-if-one-screen
PAGER set to 'pspg -s 14 -X --force-uniborder --quit-if-one-screen'
MariaDB [sakila]> select now();
MariaDB [sakila]> select * from nicer_but_slower_film_list limit 100;
# Note - compilation issue Some linker issues can be fixed by:
I changed 
gcc -lncursesw pager.c -o pspg -ggdb
to
gcc pager.c -o pspg -ggdb -lncursesw
On some old systems a compilation fails with error
/home/user/Src/pspg-0.6/src/pspg.c:2403: undefined reference to `set_escdelay'
In this case comment line with function set_escdelay # Note - Installation The pspg is available from community repository https://yum.postgresql.org/packages.php ## Gentoo # emerge -av dev-db/pspg ## FreeBSD # pkg install pspg # Note If you like it, send a postcard from your home country to my address, please: Pavel Stehule Skalice 12 256 01 Benesov u Prahy Czech Republic I invite any questions, comments, bug reports, patches on mail address pavel.stehule@gmail.com pspg-0.9.3/ToDo000066400000000000000000000010261324002717400132630ustar00rootroot00000000000000ToDo ==== Known bugs ========== Possible ToDo ============= * tail mode * 256 colours + custom colour schemas * hide outer border * hide inner borders * replace ascii borders by unicode * draw scrollbars FoxPro style * CSV support (own formatter) * regexp marking (green background, only pattern, whole row) * mc * row select, column select, export to file, copy to clipboard * mouse support for range select * support fetched data - columns width can be different Similar projects ================ * tless * ngrid * muhmud/lessql pspg-0.9.3/aclocal.m4000066400000000000000000000322201324002717400143330ustar00rootroot00000000000000# generated automatically by aclocal 1.15.1 -*- Autoconf -*- # Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 11 (pkg-config-0.29.1) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------ dnl dnl Prepare a "--with-" configure option using the lowercase dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and dnl PKG_CHECK_MODULES in a single macro. AC_DEFUN([PKG_WITH_MODULES], [ m4_pushdef([with_arg], m4_tolower([$1])) m4_pushdef([description], [m4_default([$5], [build with ]with_arg[ support])]) m4_pushdef([def_arg], [m4_default([$6], [auto])]) m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) m4_case(def_arg, [yes],[m4_pushdef([with_without], [--without-]with_arg)], [m4_pushdef([with_without],[--with-]with_arg)]) AC_ARG_WITH(with_arg, AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, [AS_TR_SH([with_]with_arg)=def_arg]) AS_CASE([$AS_TR_SH([with_]with_arg)], [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], [auto],[PKG_CHECK_MODULES([$1],[$2], [m4_n([def_action_if_found]) $3], [m4_n([def_action_if_not_found]) $4])]) m4_popdef([with_arg]) m4_popdef([description]) m4_popdef([def_arg]) ])dnl PKG_WITH_MODULES dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ----------------------------------------------- dnl dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES dnl check._[VARIABLE-PREFIX] is exported as make variable. AC_DEFUN([PKG_HAVE_WITH_MODULES], [ PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) AM_CONDITIONAL([HAVE_][$1], [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) ])dnl PKG_HAVE_WITH_MODULES dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, dnl [DESCRIPTION], [DEFAULT]) dnl ------------------------------------------------------ dnl dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make dnl and preprocessor variable. AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], [ PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) ])dnl PKG_HAVE_DEFINE_WITH_MODULES m4_include([tools/ax_debug_cflags.m4]) m4_include([tools/ax_require_defined.m4]) m4_include([tools/ax_with_curses.m4]) pspg-0.9.3/autogen.sh000077500000000000000000000007271324002717400145030ustar00rootroot00000000000000#!/bin/sh export WARNINGS="all" set -e # Ideally, we could just do this: # #${AUTORECONF:-autoreconf} -v -I tools # # Unfortunately, Autoconf 2.61's autoreconf(1) (found in Mac OS X 10.5 # Leopard) neglects to pass the -I on to aclocal(1), which is # precisely where we need it! So we do basically what it would have # done. run () { test "${V}" = 1 && echo $0: running: "$@" "$@" } run ${ACLOCAL:-aclocal} -I tools run ${AUTOCONF:-autoconf} --include=tools pspg-0.9.3/config.make000066400000000000000000000006551324002717400146060ustar00rootroot00000000000000# -*- makefile-gmake -*- prefix = /usr/local exec_prefix = ${prefix} bindir = ${exec_prefix}/bin mandir = ${datarootdir}/man docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} datarootdir = ${prefix}/share sysconfdir = ${prefix}/etc CC = gcc CFLAGS = -g -O2 LDFLAGS = LDLIBS = -lncursesw -ltinfo config.status: configure ./config.status --recheck config.make: config.status ./config.status $@ config.make: config.make.in pspg-0.9.3/config.make.in000066400000000000000000000006661324002717400152150ustar00rootroot00000000000000# -*- makefile-gmake -*- prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ mandir = @mandir@ docdir = @docdir@ datarootdir = @datarootdir@ sysconfdir = @sysconfdir@ CC = @CC@ CFLAGS = @CFLAGS@ @COVERAGE_CFLAGS@ @DEBUG_CFLAGS@ @CURSES_CFLAGS@ LDFLAGS = @LDFLAGS@ LDLIBS = @LIBS@ @CURSES_LIBS@ config.status: configure ./config.status --recheck config.make: config.status ./config.status $@ config.make: config.make.in pspg-0.9.3/configure000077500000000000000000005172061324002717400144160ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for pspg 0. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: pavel.stehule@gmail.com about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pspg' PACKAGE_TARNAME='tig' PACKAGE_VERSION='0' PACKAGE_STRING='pspg 0' PACKAGE_BUGREPORT='pavel.stehule@gmail.com' PACKAGE_URL='' ac_unique_file="src" ac_subst_vars='LTLIBOBJS LIBOBJS COVERAGE_LDFLAGS COVERAGE_CFLAGS enable_debug PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG CURSES_CFLAGS CURSES_LIBS DEBUG_CFLAGS EGREP GREP CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_debug with_ncurses with_ncursesw ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CURSES_LIBS CURSES_CFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures pspg 0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tig] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of pspg 0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug enable debug build Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ncurses force the use of Ncurses or NcursesW --without-ncursesw do not use NcursesW (wide character support) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CURSES_LIBS linker library for Curses, e.g. -lcurses CURSES_CFLAGS preprocessor flags for Curses, e.g. -I/usr/include/ncursesw PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF pspg configure 0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link 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 pspg $as_me 0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #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 if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # ensure CFLAGS are set if test "${CFLAGS+set}"; then : USE_DEFAULT_CFLAGS=false else USE_DEFAULT_CFLAGS=true CFLAGS="" 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # add --enable-debug arg # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; fi if test "$enable_debug" = "yes"; then : # add the DEBUG pre-processor define $as_echo "#define DEBUG 1" >>confdefs.h # gcc/gdb debug options if test "$GCC" = "yes"; then : DEBUG_CFLAGS="-ggdb -O0" else # default to -g if test "$ac_cv_prog_cc_g" = "yes"; then : DEBUG_CFLAGS="-g" else DEBUG_CFLAGS="" fi fi else # what AC_PROG_CC would have done if CFLAGS were not set if $USE_DEFAULT_CFLAGS; then : # default to -g if test "$ac_cv_prog_cc_g" = "yes"; then : DEBUG_CFLAGS="-g" else DEBUG_CFLAGS="" fi if test "$GCC" = "yes"; then : DEBUG_CFLAGS="$DEBUG_CFLAGS -O2" fi fi fi DEBUG_CFLAGS=$DEBUG_CFLAGS if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi # Check whether --with-ncurses was given. if test "${with_ncurses+set}" = set; then : withval=$with_ncurses; else with_ncurses=check fi # Check whether --with-ncursesw was given. if test "${with_ncursesw+set}" = set; then : withval=$with_ncursesw; else with_ncursesw=check fi ax_saved_LIBS=$LIBS ax_saved_CPPFLAGS=$CPPFLAGS if test "x$with_ncurses" = xyes || test "x$with_ncursesw" = xyes; then : ax_with_plaincurses=no else ax_with_plaincurses=check fi ax_cv_curses_which=no # Test for NcursesW if test "x$CURSES_LIBS" = x && test "x$with_ncursesw" != xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncursesw via pkg-config" >&5 $as_echo_n "checking for ncursesw via pkg-config... " >&6; } if test -n "$_ax_cv_ncursesw_libs"; then pkg_cv__ax_cv_ncursesw_libs="$_ax_cv_ncursesw_libs" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv__ax_cv_ncursesw_libs=`$PKG_CONFIG --libs "ncursesw" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$_ax_cv_ncursesw_cppflags"; then pkg_cv__ax_cv_ncursesw_cppflags="$_ax_cv_ncursesw_cppflags" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5 ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv__ax_cv_ncursesw_cppflags=`$PKG_CONFIG --cflags "ncursesw" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test "x$pkg_failed" = "xyes" || test "x$pkg_failed" = "xuntried"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # No suitable .pc file found, have to find flags via fallback { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncursesw via fallback" >&5 $as_echo_n "checking for ncursesw via fallback... " >&6; } if ${ax_cv_ncursesw+:} false; then : $as_echo_n "(cached) " >&6 else $as_echo pkg_cv__ax_cv_ncursesw_libs="-lncursesw" pkg_cv__ax_cv_ncursesw_cppflags="-D_GNU_SOURCE $CURSES_CFLAGS" LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncursesw_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_ncursesw_cppflags" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr() with $pkg_cv__ax_cv_ncursesw_libs" >&5 $as_echo_n "checking for initscr() with $pkg_cv__ax_cv_ncursesw_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nodelay() with $pkg_cv__ax_cv_ncursesw_libs" >&5 $as_echo_n "checking for nodelay() with $pkg_cv__ax_cv_ncursesw_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nodelay (); int main () { return nodelay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_ncursesw=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } pkg_cv__ax_cv_ncursesw_libs="$pkg_cv__ax_cv_ncursesw_libs -ltinfow" LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncursesw_libs" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nodelay() with $pkg_cv__ax_cv_ncursesw_libs" >&5 $as_echo_n "checking for nodelay() with $pkg_cv__ax_cv_ncursesw_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nodelay (); int main () { return nodelay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_ncursesw=yes else ax_cv_ncursesw=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else ax_cv_ncursesw=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_ncursesw" >&5 $as_echo "$ax_cv_ncursesw" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # Found .pc file, using its information LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncursesw_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_ncursesw_cppflags" ax_cv_ncursesw=yes fi if test "x$ax_cv_ncursesw" = xno && test "x$with_ncursesw" = xyes; then : as_fn_error $? "--with-ncursesw specified but could not find NcursesW library" "$LINENO" 5 fi if test "x$ax_cv_ncursesw" = xyes; then : ax_cv_curses=yes ax_cv_curses_which=ncursesw CURSES_LIBS="$pkg_cv__ax_cv_ncursesw_libs" CURSES_CFLAGS="$pkg_cv__ax_cv_ncursesw_cppflags" $as_echo "#define HAVE_NCURSESW 1" >>confdefs.h $as_echo "#define HAVE_CURSES 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ncursesw/curses.h" >&5 $as_echo_n "checking for working ncursesw/curses.h... " >&6; } if ${ax_cv_header_ncursesw_curses_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_ncursesw_curses_h=yes else ax_cv_header_ncursesw_curses_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_ncursesw_curses_h" >&5 $as_echo "$ax_cv_header_ncursesw_curses_h" >&6; } if test "x$ax_cv_header_ncursesw_curses_h" = xyes; then : ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_ENHANCED 1" >>confdefs.h $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h $as_echo "#define HAVE_NCURSESW_CURSES_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ncursesw.h" >&5 $as_echo_n "checking for working ncursesw.h... " >&6; } if ${ax_cv_header_ncursesw_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_ncursesw_h=yes else ax_cv_header_ncursesw_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_ncursesw_h" >&5 $as_echo "$ax_cv_header_ncursesw_h" >&6; } if test "x$ax_cv_header_ncursesw_h" = xyes; then : ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_ENHANCED 1" >>confdefs.h $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h $as_echo "#define HAVE_NCURSESW_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ncurses.h" >&5 $as_echo_n "checking for working ncurses.h... " >&6; } if ${ax_cv_header_ncurses_h_with_ncursesw+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_ncurses_h_with_ncursesw=yes else ax_cv_header_ncurses_h_with_ncursesw=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_ncurses_h_with_ncursesw" >&5 $as_echo "$ax_cv_header_ncurses_h_with_ncursesw" >&6; } if test "x$ax_cv_header_ncurses_h_with_ncursesw" = xyes; then : ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_ENHANCED 1" >>confdefs.h $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h $as_echo "#define HAVE_NCURSES_H 1" >>confdefs.h fi if test "x$ax_cv_header_ncursesw_curses_h" = xno && test "x$ax_cv_header_ncursesw_h" = xno && test "x$ax_cv_header_ncurses_h_with_ncursesw" = xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h" >&5 $as_echo "$as_me: WARNING: could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h" >&2;} fi fi fi unset pkg_cv__ax_cv_ncursesw_libs unset pkg_cv__ax_cv_ncursesw_cppflags # Test for Ncurses if test "x$CURSES_LIBS" = x && test "x$with_ncurses" != xno && test "x$ax_cv_curses_which" = xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncurses via pkg-config" >&5 $as_echo_n "checking for ncurses via pkg-config... " >&6; } if test -n "$_ax_cv_ncurses_libs"; then pkg_cv__ax_cv_ncurses_libs="$_ax_cv_ncurses_libs" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv__ax_cv_ncurses_libs=`$PKG_CONFIG --libs "ncurses" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$_ax_cv_ncurses_cppflags"; then pkg_cv__ax_cv_ncurses_cppflags="$_ax_cv_ncurses_cppflags" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5 ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv__ax_cv_ncurses_cppflags=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test "x$pkg_failed" = "xyes" || test "x$pkg_failed" = "xuntried"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # No suitable .pc file found, have to find flags via fallback { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncurses via fallback" >&5 $as_echo_n "checking for ncurses via fallback... " >&6; } if ${ax_cv_ncurses+:} false; then : $as_echo_n "(cached) " >&6 else $as_echo pkg_cv__ax_cv_ncurses_libs="-lncurses" pkg_cv__ax_cv_ncurses_cppflags="-D_GNU_SOURCE $CURSES_CFLAGS" LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncurses_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_ncurses_cppflags" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr() with $pkg_cv__ax_cv_ncurses_libs" >&5 $as_echo_n "checking for initscr() with $pkg_cv__ax_cv_ncurses_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nodelay() with $pkg_cv__ax_cv_ncurses_libs" >&5 $as_echo_n "checking for nodelay() with $pkg_cv__ax_cv_ncurses_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nodelay (); int main () { return nodelay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_ncurses=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } pkg_cv__ax_cv_ncurses_libs="$pkg_cv__ax_cv_ncurses_libs -ltinfo" LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncurses_libs" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nodelay() with $pkg_cv__ax_cv_ncurses_libs" >&5 $as_echo_n "checking for nodelay() with $pkg_cv__ax_cv_ncurses_libs... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nodelay (); int main () { return nodelay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_ncurses=yes else ax_cv_ncurses=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else ax_cv_ncurses=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_ncurses" >&5 $as_echo "$ax_cv_ncurses" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # Found .pc file, using its information LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_ncurses_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_ncurses_cppflags" ax_cv_ncurses=yes fi if test "x$ax_cv_ncurses" = xno && test "x$with_ncurses" = xyes; then : as_fn_error $? "--with-ncurses specified but could not find Ncurses library" "$LINENO" 5 fi if test "x$ax_cv_ncurses" = xyes; then : ax_cv_curses=yes ax_cv_curses_which=ncurses CURSES_LIBS="$pkg_cv__ax_cv_ncurses_libs" CURSES_CFLAGS="$pkg_cv__ax_cv_ncurses_cppflags" $as_echo "#define HAVE_NCURSES 1" >>confdefs.h $as_echo "#define HAVE_CURSES 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ncurses/curses.h" >&5 $as_echo_n "checking for working ncurses/curses.h... " >&6; } if ${ax_cv_header_ncurses_curses_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_ncurses_curses_h=yes else ax_cv_header_ncurses_curses_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_ncurses_curses_h" >&5 $as_echo "$ax_cv_header_ncurses_curses_h" >&6; } if test "x$ax_cv_header_ncurses_curses_h" = xyes; then : ax_cv_curses_color=yes ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h $as_echo "#define HAVE_NCURSES_CURSES_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ncurses.h" >&5 $as_echo_n "checking for working ncurses.h... " >&6; } if ${ax_cv_header_ncurses_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_ncurses_h=yes else ax_cv_header_ncurses_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_ncurses_h" >&5 $as_echo "$ax_cv_header_ncurses_h" >&6; } if test "x$ax_cv_header_ncurses_h" = xyes; then : ax_cv_curses_color=yes ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h $as_echo "#define HAVE_NCURSES_H 1" >>confdefs.h fi if test "x$ax_cv_header_ncurses_curses_h" = xno && test "x$ax_cv_header_ncurses_h" = xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find a working ncurses/curses.h or ncurses.h" >&5 $as_echo "$as_me: WARNING: could not find a working ncurses/curses.h or ncurses.h" >&2;} fi fi fi unset pkg_cv__ax_cv_ncurses_libs unset pkg_cv__ax_cv_ncurses_cppflags # Test for plain Curses (or if CURSES_LIBS was set by user) if test "x$with_plaincurses" != xno && test "x$ax_cv_curses_which" = xno; then : if test "x$CURSES_LIBS" != x; then : LIBS="$ax_saved_LIBS $CURSES_LIBS" else LIBS="$ax_saved_LIBS -lcurses" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Curses library" >&5 $as_echo_n "checking for Curses library... " >&6; } if ${ax_cv_plaincurses+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_plaincurses=yes else ax_cv_plaincurses=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_plaincurses" >&5 $as_echo "$ax_cv_plaincurses" >&6; } if test "x$ax_cv_plaincurses" = xyes; then : ax_cv_curses=yes ax_cv_curses_which=plaincurses if test "x$CURSES_LIBS" = x; then : CURSES_LIBS="-lcurses" fi $as_echo "#define HAVE_CURSES 1" >>confdefs.h # Check for base conformance (and header file) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working curses.h" >&5 $as_echo_n "checking for working curses.h... " >&6; } if ${ax_cv_header_curses_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; initscr(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_header_curses_h=yes else ax_cv_header_curses_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_header_curses_h" >&5 $as_echo "$ax_cv_header_curses_h" >&6; } if test "x$ax_cv_header_curses_h" = xyes; then : $as_echo "#define HAVE_CURSES_H 1" >>confdefs.h # Check for X/Open Enhanced conformance { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X/Open Enhanced Curses conformance" >&5 $as_echo_n "checking for X/Open Enhanced Curses conformance... " >&6; } if ${ax_cv_plaincurses_enhanced+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifndef _XOPEN_CURSES #error "this Curses library is not enhanced" "this Curses library is not enhanced" #endif int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_plaincurses_enhanced=yes else ax_cv_plaincurses_enhanced=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_plaincurses_enhanced" >&5 $as_echo "$ax_cv_plaincurses_enhanced" >&6; } if test "x$ax_cv_plaincurses_enhanced" = xyes; then : ax_cv_curses_enhanced=yes ax_cv_curses_color=yes $as_echo "#define HAVE_CURSES_ENHANCED 1" >>confdefs.h $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h fi # Check for color functions { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Curses color functions" >&5 $as_echo_n "checking for Curses color functions... " >&6; } if ${ax_cv_plaincurses_color+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_plaincurses_color=yes else ax_cv_plaincurses_color=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_plaincurses_color" >&5 $as_echo "$ax_cv_plaincurses_color" >&6; } if test "x$ax_cv_plaincurses_color" = xyes; then : ax_cv_curses_color=yes $as_echo "#define HAVE_CURSES_COLOR 1" >>confdefs.h fi # Check for obsolete functions { $as_echo "$as_me:${as_lineno-$LINENO}: checking for obsolete Curses functions" >&5 $as_echo_n "checking for obsolete Curses functions... " >&6; } if ${ax_cv_plaincurses_obsolete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { chtype a = A_BOLD; int b = KEY_LEFT; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_plaincurses_obsolete=yes else ax_cv_plaincurses_obsolete=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_plaincurses_obsolete" >&5 $as_echo "$ax_cv_plaincurses_obsolete" >&6; } if test "x$ax_cv_plaincurses_obsolete" = xyes; then : ax_cv_curses_obsolete=yes $as_echo "#define HAVE_CURSES_OBSOLETE 1" >>confdefs.h fi fi if test "x$ax_cv_header_curses_h" = xno; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find a working curses.h" >&5 $as_echo "$as_me: WARNING: could not find a working curses.h" >&2;} fi fi fi if test "x$ax_cv_curses" != xyes; then : ax_cv_curses=no fi if test "x$ax_cv_curses_enhanced" != xyes; then : ax_cv_curses_enhanced=no fi if test "x$ax_cv_curses_color" != xyes; then : ax_cv_curses_color=no fi if test "x$ax_cv_curses_obsolete" != xyes; then : ax_cv_curses_obsolete=no fi LIBS=$ax_saved_LIBS CPPFLAGS=$ax_saved_CPPFLAGS unset ax_saved_LIBS unset ax_saved_CPPFLAGS case "$ax_cv_ncurses" in "no") as_fn_error $? "ncurses not found" "$LINENO" 5 esac case "$ax_cv_ncursesw" in "no") { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The found ncurses library does not support wide-char." >&5 $as_echo "$as_me: WARNING: The found ncurses library does not support wide-char." >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This means that tig will not correctly render UTF-8." >&5 $as_echo "$as_me: WARNING: This means that tig will not correctly render UTF-8." >&2;} esac ac_config_files="$ac_config_files config.make" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pspg $as_me 0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ pspg config.status 0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # supply -g if --enable-debug if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then CFLAGS="$CFLAGS -g" fi pspg-0.9.3/configure.ac000066400000000000000000000014411324002717400147620ustar00rootroot00000000000000AC_INIT([pspg],[0],[pavel.stehule@gmail.com],[tig]) AC_LANG([C]) AC_CONFIG_SRCDIR(src) dnl Document where we keep our .m4 file. AC_CONFIG_MACRO_DIR([tools]) dnl Make sure aclocal actually found it! m4_pattern_forbid([^AX_]) AC_PROG_CC AC_HEADER_STDC AX_DEBUG_CFLAGS AX_WITH_CURSES case "$ax_cv_ncurses" in "no") AC_MSG_ERROR([ncurses not found]) esac case "$ax_cv_ncursesw" in "no") AC_MSG_WARN([The found ncurses library does not support wide-char.]) AC_MSG_WARN([This means that tig will not correctly render UTF-8.]) esac AC_SUBST(enable_debug) AC_SUBST(CURSES_LIBS) AC_SUBST(COVERAGE_CFLAGS) AC_SUBST(COVERAGE_LDFLAGS) AC_CONFIG_FILES([config.make]) AC_OUTPUT # supply -g if --enable-debug if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then CFLAGS="$CFLAGS -g" fi pspg-0.9.3/pg_class.txt000066400000000000000000006367431324002717400150530ustar00rootroot00000000000000┌───────────────────────────────────────────┬──────────────┬─────────┬───────────┬──────────┬───────┬─────────────┬───────────────┬──────────┬───────────┬───────────────┬───────────────┬─────────────┬─────────────┬────────────────┬─────────┬──────────┬───────────┬────────────┬────────────┬─────────────┬────────────────┬────────────────┬────────────────┬─────────────────────┬────────────────┬──────────────┬────────────────┬──────────────┬────────────┬──────────────────────────────────────────┬─────────────────────────┬──────────────┐ │ relname │ relnamespace │ reltype │ reloftype │ relowner │ relam │ relfilenode │ reltablespace │ relpages │ reltuples │ relallvisible │ reltoastrelid │ relhasindex │ relisshared │ relpersistence │ relkind │ relnatts │ relchecks │ relhasoids │ relhaspkey │ relhasrules │ relhastriggers │ relhassubclass │ relrowsecurity │ relforcerowsecurity │ relispopulated │ relreplident │ relispartition │ relfrozenxid │ relminmxid │ relacl │ reloptions │ relpartbound │ ╞═══════════════════════════════════════════╪══════════════╪═════════╪═══════════╪══════════╪═══════╪═════════════╪═══════════════╪══════════╪═══════════╪═══════════════╪═══════════════╪═════════════╪═════════════╪════════════════╪═════════╪══════════╪═══════════╪════════════╪════════════╪═════════════╪════════════════╪════════════════╪════════════════╪═════════════════════╪════════════════╪══════════════╪════════════════╪══════════════╪════════════╪══════════════════════════════════════════╪═════════════════════════╪══════════════╡ │ pg_statistic │ 11 │ 11258 │ 0 │ 10 │ 0 │ 2619 │ 0 │ 16 │ 393 │ 16 │ 2840 │ t │ f │ p │ r │ 26 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_type │ 11 │ 71 │ 0 │ 10 │ 0 │ 0 │ 0 │ 9 │ 375 │ 9 │ 0 │ t │ f │ p │ r │ 30 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_2604 │ 99 │ 11515 │ 0 │ 10 │ 0 │ 2830 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2604_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2831 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2606 │ 99 │ 11516 │ 0 │ 10 │ 0 │ 2832 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2606_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2833 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2609 │ 99 │ 11517 │ 0 │ 10 │ 0 │ 2834 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2609_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2835 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_1255 │ 99 │ 11518 │ 0 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_1255_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2618 │ 99 │ 11519 │ 0 │ 10 │ 0 │ 2838 │ 0 │ 51 │ 226 │ 51 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2618_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2839 │ 0 │ 2 │ 226 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_3596 │ 99 │ 11520 │ 0 │ 10 │ 0 │ 3598 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_3596_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 3599 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2619 │ 99 │ 11521 │ 0 │ 10 │ 0 │ 2840 │ 0 │ 3 │ 13 │ 3 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2619_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2841 │ 0 │ 2 │ 13 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_3381 │ 99 │ 11522 │ 0 │ 10 │ 0 │ 3439 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_3381_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 3440 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2620 │ 99 │ 11523 │ 0 │ 10 │ 0 │ 2336 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2620_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 2337 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2396 │ 99 │ 11524 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 0 │ t │ t │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2396_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_2964 │ 99 │ 11525 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 0 │ t │ t │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_2964_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_3592 │ 99 │ 11526 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 0 │ t │ t │ p │ t │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_3592_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_aggregate_fnoid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2650 │ 0 │ 2 │ 138 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_am_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2651 │ 0 │ 2 │ 6 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_am_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2652 │ 0 │ 2 │ 6 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_amop_fam_strat_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2653 │ 0 │ 5 │ 709 │ 0 │ 0 │ f │ f │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_amop_opr_fam_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2654 │ 0 │ 5 │ 709 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_amop_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2756 │ 0 │ 4 │ 709 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_amproc_fam_proc_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2655 │ 0 │ 4 │ 411 │ 0 │ 0 │ f │ f │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_amproc_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2757 │ 0 │ 4 │ 411 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_policy │ 11 │ 11502 │ 0 │ 10 │ 0 │ 3256 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_attrdef_adrelid_adnum_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2656 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_attrdef_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2657 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_attribute_relid_attnam_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 13 │ 2579 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_attribute_relid_attnum_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 10 │ 2579 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_authid_rolname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 6 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_authid_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 6 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_auth_members_role_member_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 3 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_auth_members_member_role_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 3 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_cast_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2660 │ 0 │ 2 │ 219 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_cast_source_target_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2661 │ 0 │ 2 │ 219 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_class_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 4 │ 341 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_class_relname_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 6 │ 341 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_class_tblspc_relfilenode_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 5 │ 341 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_collation_name_enc_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3164 │ 0 │ 9 │ 964 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_collation_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3085 │ 0 │ 5 │ 964 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_constraint_conname_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2664 │ 0 │ 2 │ 2 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_constraint_conrelid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2665 │ 0 │ 2 │ 2 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_constraint_contypid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2666 │ 0 │ 2 │ 2 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_constraint_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2667 │ 0 │ 2 │ 2 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_conversion_default_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2668 │ 0 │ 2 │ 132 │ 0 │ 0 │ f │ f │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_conversion_name_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2669 │ 0 │ 2 │ 132 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_conversion_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2670 │ 0 │ 2 │ 132 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_database_datname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 2 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_database_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 2 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_depend_depender_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2673 │ 0 │ 40 │ 7327 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_depend_reference_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2674 │ 0 │ 46 │ 7327 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_description_o_c_o_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2675 │ 0 │ 22 │ 3924 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_shdescription_o_c_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 1 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_enum_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3502 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_enum_typid_label_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3503 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_enum_typid_sortorder_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3534 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_index_indrelid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2678 │ 0 │ 2 │ 134 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_index_indexrelid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2679 │ 0 │ 2 │ 134 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_inherits_relid_seqno_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2680 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_inherits_parent_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2187 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_init_privs_o_c_o_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3395 │ 0 │ 2 │ 149 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_language_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2681 │ 0 │ 2 │ 4 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_language_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2682 │ 0 │ 2 │ 4 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_largeobject_loid_pn_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2683 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_largeobject_metadata_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2996 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_statistic_ext_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3380 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_statistic_ext_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3997 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_statistic_ext_relid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3379 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_namespace_nspname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2684 │ 0 │ 2 │ 6 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_namespace_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2685 │ 0 │ 2 │ 6 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_opclass_am_name_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2686 │ 0 │ 2 │ 133 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_opclass_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2687 │ 0 │ 2 │ 133 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_operator_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2688 │ 0 │ 5 │ 787 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_operator_oprname_l_r_n_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2689 │ 0 │ 6 │ 787 │ 0 │ 0 │ f │ f │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_opfamily_am_name_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2754 │ 0 │ 2 │ 115 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_opfamily_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2755 │ 0 │ 2 │ 115 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_pltemplate_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 8 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_proc_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 10 │ 2894 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_proc_proname_args_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 33 │ 2894 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_rewrite_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2692 │ 0 │ 2 │ 121 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_rewrite_rel_rulename_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2693 │ 0 │ 2 │ 121 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_sequence_seqrelid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 5002 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_shdepend_depender_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 6 │ 0 │ 0 │ f │ t │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_shdepend_reference_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 6 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_statistic_relid_att_inh_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2696 │ 0 │ 2 │ 393 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_tablespace_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 2 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_tablespace_spcname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 2 │ 2 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_transform_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3574 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_transform_type_lang_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3575 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_trigger_tgconstraint_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2699 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_trigger_tgrelid_tgname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2701 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_trigger_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 2702 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_event_trigger_evtname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3467 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_event_trigger_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3468 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_config_cfgname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3608 │ 0 │ 2 │ 16 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_config_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3712 │ 0 │ 2 │ 16 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_config_map_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3609 │ 0 │ 4 │ 304 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_dict_dictname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3604 │ 0 │ 2 │ 16 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_dict_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3605 │ 0 │ 2 │ 16 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_parser_prsname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3606 │ 0 │ 2 │ 1 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_parser_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3607 │ 0 │ 2 │ 1 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_template_tmplname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3766 │ 0 │ 2 │ 5 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_ts_template_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3767 │ 0 │ 2 │ 5 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_type_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 2 │ 375 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_type_typname_nsp_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 0 │ 5 │ 375 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_foreign_data_wrapper_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 112 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_foreign_data_wrapper_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 548 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_foreign_server_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 113 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_foreign_server_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 549 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_user_mapping_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 174 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_user_mapping_user_server_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 175 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_foreign_table_relid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3119 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_default_acl_role_nsp_obj_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 827 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_default_acl_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 828 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_db_role_setting_databaseid_rol_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_seclabel_object_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3597 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_shseclabel_object_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_extension_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3080 │ 0 │ 2 │ 1 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_extension_name_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3081 │ 0 │ 2 │ 1 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_range_rngtypid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3542 │ 0 │ 2 │ 6 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_policy_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3257 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_policy_polrelid_polname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3258 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_replication_origin_roiident_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_replication_origin_roname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_partitioned_table_partrelid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 3351 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_publication_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 6110 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_publication_pubname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 6111 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_publication_rel_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 6112 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_publication_rel_prrelid_prpubid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 6113 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_subscription_oid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 1 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_subscription_subname_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 0 │ 1664 │ 1 │ 0 │ 0 │ 0 │ f │ t │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_subscription_rel_srrelid_srsubid_index │ 11 │ 0 │ 0 │ 10 │ 403 │ 6117 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_authid │ 11 │ 2842 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 6 │ 1 │ 0 │ t │ t │ p │ r │ 11 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_shadow │ 11 │ 11532 │ 0 │ 10 │ 0 │ 11531 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_settings │ 11 │ 11601 │ 0 │ 10 │ 0 │ 11600 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 17 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=rw/postgres} │ │ │ │ pg_hba_file_rules │ 11 │ 11609 │ 0 │ 10 │ 0 │ 11608 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_file_settings │ 11 │ 11606 │ 0 │ 10 │ 0 │ 11605 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_config │ 11 │ 11618 │ 0 │ 10 │ 0 │ 11617 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 2 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_user_mapping │ 11 │ 11500 │ 0 │ 10 │ 0 │ 1418 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_replication_origin_status │ 11 │ 11732 │ 0 │ 10 │ 0 │ 11731 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_subscription │ 11 │ 6101 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 0 │ t │ t │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres} │ │ │ │ pg_stat_user_tables │ 11 │ 11636 │ 0 │ 10 │ 0 │ 11635 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 22 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_xact_user_tables │ 11 │ 11640 │ 0 │ 10 │ 0 │ 11639 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_attribute │ 11 │ 75 │ 0 │ 10 │ 0 │ 0 │ 0 │ 48 │ 2579 │ 48 │ 0 │ t │ f │ p │ r │ 22 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_proc │ 11 │ 81 │ 0 │ 10 │ 0 │ 0 │ 0 │ 74 │ 2894 │ 74 │ 2836 │ t │ f │ p │ r │ 29 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_class │ 11 │ 83 │ 0 │ 10 │ 0 │ 0 │ 0 │ 11 │ 341 │ 11 │ 0 │ t │ f │ p │ r │ 33 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_attrdef │ 11 │ 10000 │ 0 │ 10 │ 0 │ 2604 │ 0 │ 0 │ 0 │ 0 │ 2830 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_constraint │ 11 │ 10001 │ 0 │ 10 │ 0 │ 2606 │ 0 │ 1 │ 2 │ 1 │ 2832 │ t │ f │ p │ r │ 24 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_all_tables │ 11 │ 11643 │ 0 │ 10 │ 0 │ 11642 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_sys_tables │ 11 │ 11647 │ 0 │ 10 │ 0 │ 11646 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_user_tables │ 11 │ 11650 │ 0 │ 10 │ 0 │ 11649 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_all_indexes │ 11 │ 11653 │ 0 │ 10 │ 0 │ 11652 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_inherits │ 11 │ 10002 │ 0 │ 10 │ 0 │ 2611 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_index │ 11 │ 10003 │ 0 │ 10 │ 0 │ 2610 │ 0 │ 3 │ 134 │ 3 │ 0 │ t │ f │ p │ r │ 19 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_operator │ 11 │ 10004 │ 0 │ 10 │ 0 │ 2617 │ 0 │ 15 │ 787 │ 15 │ 0 │ t │ f │ p │ r │ 14 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_opfamily │ 11 │ 10005 │ 0 │ 10 │ 0 │ 2753 │ 0 │ 2 │ 115 │ 2 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_opclass │ 11 │ 10006 │ 0 │ 10 │ 0 │ 2616 │ 0 │ 3 │ 133 │ 3 │ 0 │ t │ f │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_am │ 11 │ 10130 │ 0 │ 10 │ 0 │ 2601 │ 0 │ 1 │ 6 │ 1 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_amop │ 11 │ 10131 │ 0 │ 10 │ 0 │ 2602 │ 0 │ 6 │ 709 │ 6 │ 0 │ t │ f │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_amproc │ 11 │ 10841 │ 0 │ 10 │ 0 │ 2603 │ 0 │ 4 │ 411 │ 4 │ 0 │ t │ f │ p │ r │ 5 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_language │ 11 │ 11253 │ 0 │ 10 │ 0 │ 2612 │ 0 │ 1 │ 4 │ 1 │ 0 │ t │ f │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_largeobject_metadata │ 11 │ 11254 │ 0 │ 10 │ 0 │ 2995 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 2 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_aggregate │ 11 │ 11256 │ 0 │ 10 │ 0 │ 2600 │ 0 │ 2 │ 138 │ 2 │ 0 │ t │ f │ p │ r │ 20 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statistic_ext │ 11 │ 11257 │ 0 │ 10 │ 0 │ 3381 │ 0 │ 0 │ 0 │ 0 │ 3439 │ t │ f │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_rewrite │ 11 │ 11259 │ 0 │ 10 │ 0 │ 2618 │ 0 │ 12 │ 121 │ 12 │ 2838 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_trigger │ 11 │ 11260 │ 0 │ 10 │ 0 │ 2620 │ 0 │ 0 │ 0 │ 0 │ 2336 │ t │ f │ p │ r │ 17 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_event_trigger │ 11 │ 11261 │ 0 │ 10 │ 0 │ 3466 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 6 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_description │ 11 │ 11262 │ 0 │ 10 │ 0 │ 2609 │ 0 │ 35 │ 3924 │ 35 │ 2834 │ t │ f │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_cast │ 11 │ 11263 │ 0 │ 10 │ 0 │ 2605 │ 0 │ 2 │ 219 │ 2 │ 0 │ t │ f │ p │ r │ 5 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_enum │ 11 │ 11483 │ 0 │ 10 │ 0 │ 3501 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_namespace │ 11 │ 11484 │ 0 │ 10 │ 0 │ 2615 │ 0 │ 1 │ 6 │ 1 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_conversion │ 11 │ 11485 │ 0 │ 10 │ 0 │ 2607 │ 0 │ 3 │ 132 │ 3 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_depend │ 11 │ 11486 │ 0 │ 10 │ 0 │ 2608 │ 0 │ 54 │ 7327 │ 54 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_database │ 11 │ 1248 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 2 │ 1 │ 0 │ t │ t │ p │ r │ 13 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_db_role_setting │ 11 │ 11487 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 2966 │ t │ t │ p │ r │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_tablespace │ 11 │ 11488 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 2 │ 1 │ 0 │ t │ t │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_pltemplate │ 11 │ 11489 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 8 │ 1 │ 0 │ t │ t │ p │ r │ 8 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_auth_members │ 11 │ 2843 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 3 │ 1 │ 0 │ t │ t │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_shdepend │ 11 │ 11490 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 6 │ 1 │ 0 │ t │ t │ p │ r │ 7 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_shdescription │ 11 │ 11491 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 1 │ 1 │ 1 │ 2846 │ t │ t │ p │ r │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_ts_config │ 11 │ 11492 │ 0 │ 10 │ 0 │ 3602 │ 0 │ 1 │ 16 │ 1 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_ts_config_map │ 11 │ 11493 │ 0 │ 10 │ 0 │ 3603 │ 0 │ 2 │ 304 │ 2 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_ts_dict │ 11 │ 11494 │ 0 │ 10 │ 0 │ 3600 │ 0 │ 1 │ 16 │ 1 │ 0 │ t │ f │ p │ r │ 5 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_ts_parser │ 11 │ 11495 │ 0 │ 10 │ 0 │ 3601 │ 0 │ 1 │ 1 │ 1 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_ts_template │ 11 │ 11496 │ 0 │ 10 │ 0 │ 3764 │ 0 │ 1 │ 5 │ 1 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_extension │ 11 │ 11497 │ 0 │ 10 │ 0 │ 3079 │ 0 │ 1 │ 1 │ 1 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_foreign_data_wrapper │ 11 │ 11498 │ 0 │ 10 │ 0 │ 2328 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 6 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_foreign_server │ 11 │ 11499 │ 0 │ 10 │ 0 │ 1417 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_foreign_table │ 11 │ 11501 │ 0 │ 10 │ 0 │ 3118 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_replication_origin │ 11 │ 11503 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 0 │ t │ t │ p │ r │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_default_acl │ 11 │ 11504 │ 0 │ 10 │ 0 │ 826 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_init_privs │ 11 │ 11505 │ 0 │ 10 │ 0 │ 3394 │ 0 │ 2 │ 149 │ 2 │ 0 │ t │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_seclabel │ 11 │ 11506 │ 0 │ 10 │ 0 │ 3596 │ 0 │ 0 │ 0 │ 0 │ 3598 │ t │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_shseclabel │ 11 │ 4066 │ 0 │ 10 │ 0 │ 0 │ 1664 │ 0 │ 0 │ 0 │ 4060 │ t │ t │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_collation │ 11 │ 11507 │ 0 │ 10 │ 0 │ 3456 │ 0 │ 30 │ 964 │ 30 │ 0 │ t │ f │ p │ r │ 8 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_partitioned_table │ 11 │ 11508 │ 0 │ 10 │ 0 │ 3350 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 7 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_range │ 11 │ 11509 │ 0 │ 10 │ 0 │ 3541 │ 0 │ 1 │ 6 │ 1 │ 0 │ t │ f │ p │ r │ 6 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_transform │ 11 │ 11510 │ 0 │ 10 │ 0 │ 3576 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_sequence │ 11 │ 11511 │ 0 │ 10 │ 0 │ 2224 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 8 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_publication │ 11 │ 11512 │ 0 │ 10 │ 0 │ 6104 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 6 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_publication_rel │ 11 │ 11513 │ 0 │ 10 │ 0 │ 6106 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 2 │ 0 │ t │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_subscription_rel │ 11 │ 11514 │ 0 │ 10 │ 0 │ 6102 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_roles │ 11 │ 11528 │ 0 │ 10 │ 0 │ 11527 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 13 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_locks │ 11 │ 11578 │ 0 │ 10 │ 0 │ 11577 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 15 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_group │ 11 │ 11536 │ 0 │ 10 │ 0 │ 11535 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_user │ 11 │ 11539 │ 0 │ 10 │ 0 │ 11538 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_policies │ 11 │ 11542 │ 0 │ 10 │ 0 │ 11541 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_rules │ 11 │ 11546 │ 0 │ 10 │ 0 │ 11545 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_views │ 11 │ 11550 │ 0 │ 10 │ 0 │ 11549 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_tables │ 11 │ 11554 │ 0 │ 10 │ 0 │ 11553 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_matviews │ 11 │ 11558 │ 0 │ 10 │ 0 │ 11557 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_indexes │ 11 │ 11562 │ 0 │ 10 │ 0 │ 11561 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_sequences │ 11 │ 11566 │ 0 │ 10 │ 0 │ 11565 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stats │ 11 │ 11570 │ 0 │ 10 │ 0 │ 11569 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 14 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ {security_barrier=true} │ │ │ pg_publication_tables │ 11 │ 11574 │ 0 │ 10 │ 0 │ 11573 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_cursors │ 11 │ 11581 │ 0 │ 10 │ 0 │ 11580 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_available_extensions │ 11 │ 11584 │ 0 │ 10 │ 0 │ 11583 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_available_extension_versions │ 11 │ 11587 │ 0 │ 10 │ 0 │ 11586 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_prepared_xacts │ 11 │ 11590 │ 0 │ 10 │ 0 │ 11589 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_prepared_statements │ 11 │ 11594 │ 0 │ 10 │ 0 │ 11593 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_seclabels │ 11 │ 11597 │ 0 │ 10 │ 0 │ 11596 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_timezone_names │ 11 │ 11615 │ 0 │ 10 │ 0 │ 11614 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_timezone_abbrevs │ 11 │ 11612 │ 0 │ 10 │ 0 │ 11611 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_all_tables │ 11 │ 11621 │ 0 │ 10 │ 0 │ 11620 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 22 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_xact_all_tables │ 11 │ 11625 │ 0 │ 10 │ 0 │ 11624 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_sys_tables │ 11 │ 11629 │ 0 │ 10 │ 0 │ 11628 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 22 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_xact_sys_tables │ 11 │ 11633 │ 0 │ 10 │ 0 │ 11632 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_sys_indexes │ 11 │ 11657 │ 0 │ 10 │ 0 │ 11656 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_user_indexes │ 11 │ 11660 │ 0 │ 10 │ 0 │ 11659 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_all_indexes │ 11 │ 11663 │ 0 │ 10 │ 0 │ 11662 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_sys_indexes │ 11 │ 11667 │ 0 │ 10 │ 0 │ 11666 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_user_indexes │ 11 │ 11670 │ 0 │ 10 │ 0 │ 11669 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_all_sequences │ 11 │ 11673 │ 0 │ 10 │ 0 │ 11672 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_sys_sequences │ 11 │ 11677 │ 0 │ 10 │ 0 │ 11676 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_statio_user_sequences │ 11 │ 11680 │ 0 │ 10 │ 0 │ 11679 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_activity │ 11 │ 11683 │ 0 │ 10 │ 0 │ 11682 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 20 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_replication │ 11 │ 11687 │ 0 │ 10 │ 0 │ 11686 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 19 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_wal_receiver │ 11 │ 11691 │ 0 │ 10 │ 0 │ 11690 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 12 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_subscription │ 11 │ 11694 │ 0 │ 10 │ 0 │ 11693 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_ssl │ 11 │ 11697 │ 0 │ 10 │ 0 │ 11696 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_replication_slots │ 11 │ 11700 │ 0 │ 10 │ 0 │ 11699 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 12 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_database │ 11 │ 11704 │ 0 │ 10 │ 0 │ 11703 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 19 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_database_conflicts │ 11 │ 11707 │ 0 │ 10 │ 0 │ 11706 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_user_functions │ 11 │ 11710 │ 0 │ 10 │ 0 │ 11709 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_xact_user_functions │ 11 │ 11714 │ 0 │ 10 │ 0 │ 11713 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_archiver │ 11 │ 11718 │ 0 │ 10 │ 0 │ 11717 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_bgwriter │ 11 │ 11721 │ 0 │ 10 │ 0 │ 11720 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_stat_progress_vacuum │ 11 │ 11724 │ 0 │ 10 │ 0 │ 11723 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 11 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_user_mappings │ 11 │ 11728 │ 0 │ 10 │ 0 │ 11727 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_largeobject │ 11 │ 11255 │ 0 │ 10 │ 0 │ 2613 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ r │ 3 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres} │ │ │ │ information_schema_catalog_name │ 12962 │ 12980 │ 0 │ 10 │ 0 │ 12979 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 1 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ attributes │ 12962 │ 12993 │ 0 │ 10 │ 0 │ 12992 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 31 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ applicable_roles │ 12962 │ 12986 │ 0 │ 10 │ 0 │ 12985 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ administrable_role_authorizations │ 12962 │ 12990 │ 0 │ 10 │ 0 │ 12989 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ check_constraint_routine_usage │ 12962 │ 13001 │ 0 │ 10 │ 0 │ 13000 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ character_sets │ 12962 │ 12997 │ 0 │ 10 │ 0 │ 12996 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ check_constraints │ 12962 │ 13005 │ 0 │ 10 │ 0 │ 13004 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ collations │ 12962 │ 13009 │ 0 │ 10 │ 0 │ 13008 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ collation_character_set_applicability │ 12962 │ 13013 │ 0 │ 10 │ 0 │ 13012 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ column_domain_usage │ 12962 │ 13017 │ 0 │ 10 │ 0 │ 13016 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ column_privileges │ 12962 │ 13021 │ 0 │ 10 │ 0 │ 13020 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ routine_privileges │ 12962 │ 13071 │ 0 │ 10 │ 0 │ 13070 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 10 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ column_udt_usage │ 12962 │ 13025 │ 0 │ 10 │ 0 │ 13024 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ columns │ 12962 │ 13029 │ 0 │ 10 │ 0 │ 13028 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 44 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13098 │ 99 │ 13101 │ 0 │ 10 │ 0 │ 13100 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ constraint_column_usage │ 12962 │ 13033 │ 0 │ 10 │ 0 │ 13032 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ role_routine_grants │ 12962 │ 13075 │ 0 │ 10 │ 0 │ 13074 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 10 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ constraint_table_usage │ 12962 │ 13037 │ 0 │ 10 │ 0 │ 13036 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ domain_constraints │ 12962 │ 13041 │ 0 │ 10 │ 0 │ 13040 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13098_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13102 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ domain_udt_usage │ 12962 │ 13045 │ 0 │ 10 │ 0 │ 13044 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ routines │ 12962 │ 13078 │ 0 │ 10 │ 0 │ 13077 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 82 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ domains │ 12962 │ 13049 │ 0 │ 10 │ 0 │ 13048 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 27 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ enabled_roles │ 12962 │ 13053 │ 0 │ 10 │ 0 │ 13052 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 1 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ sql_parts │ 12962 │ 13109 │ 0 │ 10 │ 0 │ 13108 │ 0 │ 1 │ 9 │ 1 │ 13110 │ f │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ │ │ │ │ key_column_usage │ 12962 │ 13056 │ 0 │ 10 │ 0 │ 13055 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ schemata │ 12962 │ 13082 │ 0 │ 10 │ 0 │ 13081 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ parameters │ 12962 │ 13060 │ 0 │ 10 │ 0 │ 13059 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 32 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ referential_constraints │ 12962 │ 13064 │ 0 │ 10 │ 0 │ 13063 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ sql_languages │ 12962 │ 13099 │ 0 │ 10 │ 0 │ 13098 │ 0 │ 1 │ 4 │ 1 │ 13100 │ f │ f │ p │ r │ 7 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ role_column_grants │ 12962 │ 13068 │ 0 │ 10 │ 0 │ 13067 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ sequences │ 12962 │ 13085 │ 0 │ 10 │ 0 │ 13084 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 12 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13088 │ 99 │ 13091 │ 0 │ 10 │ 0 │ 13090 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_13088_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13092 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_13103 │ 99 │ 13106 │ 0 │ 10 │ 0 │ 13105 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ sql_features │ 12962 │ 13089 │ 0 │ 10 │ 0 │ 13088 │ 0 │ 7 │ 671 │ 7 │ 13090 │ f │ f │ p │ r │ 7 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13093 │ 99 │ 13096 │ 0 │ 10 │ 0 │ 13095 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_13093_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13097 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_13103_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13107 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ sql_implementation_info │ 12962 │ 13094 │ 0 │ 10 │ 0 │ 13093 │ 0 │ 1 │ 12 │ 1 │ 13095 │ f │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ sql_packages │ 12962 │ 13104 │ 0 │ 10 │ 0 │ 13103 │ 0 │ 1 │ 10 │ 1 │ 13105 │ f │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13108 │ 99 │ 13111 │ 0 │ 10 │ 0 │ 13110 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_13108_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13112 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_13113 │ 99 │ 13116 │ 0 │ 10 │ 0 │ 13115 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ pg_toast_13113_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13117 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ pg_toast_13118 │ 99 │ 13121 │ 0 │ 10 │ 0 │ 13120 │ 0 │ 0 │ 0 │ 0 │ 0 │ t │ f │ p │ t │ 3 │ 0 │ f │ t │ f │ f │ f │ f │ f │ t │ n │ f │ 548 │ 1 │ │ │ │ │ sql_sizing │ 12962 │ 13114 │ 0 │ 10 │ 0 │ 13113 │ 0 │ 1 │ 23 │ 1 │ 13115 │ f │ f │ p │ r │ 4 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ pg_toast_13118_index │ 99 │ 0 │ 0 │ 10 │ 403 │ 13122 │ 0 │ 1 │ 0 │ 0 │ 0 │ f │ f │ p │ i │ 2 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ sql_sizing_profiles │ 12962 │ 13119 │ 0 │ 10 │ 0 │ 13118 │ 0 │ 0 │ 0 │ 0 │ 13120 │ f │ f │ p │ r │ 5 │ 0 │ f │ f │ f │ f │ f │ f │ f │ t │ d │ f │ 548 │ 1 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ view_routine_usage │ 12962 │ 13173 │ 0 │ 10 │ 0 │ 13172 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ table_constraints │ 12962 │ 13124 │ 0 │ 10 │ 0 │ 13123 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ table_privileges │ 12962 │ 13128 │ 0 │ 10 │ 0 │ 13127 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ foreign_table_options │ 12962 │ 13223 │ 0 │ 10 │ 0 │ 13222 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ role_table_grants │ 12962 │ 13132 │ 0 │ 10 │ 0 │ 13131 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ view_table_usage │ 12962 │ 13177 │ 0 │ 10 │ 0 │ 13176 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ tables │ 12962 │ 13135 │ 0 │ 10 │ 0 │ 13134 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 12 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ transforms │ 12962 │ 13139 │ 0 │ 10 │ 0 │ 13138 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ triggered_update_columns │ 12962 │ 13143 │ 0 │ 10 │ 0 │ 13142 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ foreign_data_wrappers │ 12962 │ 13206 │ 0 │ 10 │ 0 │ 13205 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ triggers │ 12962 │ 13147 │ 0 │ 10 │ 0 │ 13146 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 17 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ views │ 12962 │ 13181 │ 0 │ 10 │ 0 │ 13180 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 10 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ udt_privileges │ 12962 │ 13151 │ 0 │ 10 │ 0 │ 13150 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ role_udt_grants │ 12962 │ 13155 │ 0 │ 10 │ 0 │ 13154 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ usage_privileges │ 12962 │ 13158 │ 0 │ 10 │ 0 │ 13157 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ data_type_privileges │ 12962 │ 13185 │ 0 │ 10 │ 0 │ 13184 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ role_usage_grants │ 12962 │ 13162 │ 0 │ 10 │ 0 │ 13161 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 8 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ user_defined_types │ 12962 │ 13165 │ 0 │ 10 │ 0 │ 13164 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 29 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ _pg_foreign_servers │ 12962 │ 13209 │ 0 │ 10 │ 0 │ 13208 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 9 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ view_column_usage │ 12962 │ 13169 │ 0 │ 10 │ 0 │ 13168 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ element_types │ 12962 │ 13189 │ 0 │ 10 │ 0 │ 13188 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 29 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ _pg_foreign_table_columns │ 12962 │ 13193 │ 0 │ 10 │ 0 │ 13192 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ column_options │ 12962 │ 13197 │ 0 │ 10 │ 0 │ 13196 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 6 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ _pg_foreign_data_wrappers │ 12962 │ 13200 │ 0 │ 10 │ 0 │ 13199 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ foreign_server_options │ 12962 │ 13213 │ 0 │ 10 │ 0 │ 13212 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ foreign_data_wrapper_options │ 12962 │ 13203 │ 0 │ 10 │ 0 │ 13202 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 4 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ user_mapping_options │ 12962 │ 13233 │ 0 │ 10 │ 0 │ 13232 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ foreign_servers │ 12962 │ 13216 │ 0 │ 10 │ 0 │ 13215 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ _pg_foreign_tables │ 12962 │ 13219 │ 0 │ 10 │ 0 │ 13218 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ foreign_tables │ 12962 │ 13226 │ 0 │ 10 │ 0 │ 13225 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 5 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ │ _pg_user_mappings │ 12962 │ 13229 │ 0 │ 10 │ 0 │ 13228 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 7 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ │ │ │ │ user_mappings │ 12962 │ 13237 │ 0 │ 10 │ 0 │ 13236 │ 0 │ 0 │ 0 │ 0 │ 0 │ f │ f │ p │ v │ 3 │ 0 │ f │ f │ t │ f │ f │ f │ f │ t │ n │ f │ 0 │ 0 │ {postgres=arwdDxt/postgres,=r/postgres} │ │ │ └───────────────────────────────────────────┴──────────────┴─────────┴───────────┴──────────┴───────┴─────────────┴───────────────┴──────────┴───────────┴───────────────┴───────────────┴─────────────┴─────────────┴────────────────┴─────────┴──────────┴───────────┴────────────┴────────────┴─────────────┴────────────────┴────────────────┴────────────────┴─────────────────────┴────────────────┴──────────────┴────────────────┴──────────────┴────────────┴──────────────────────────────────────────┴─────────────────────────┴──────────────┘ (341 rows) pspg-0.9.3/pspg.spec000066400000000000000000000033531324002717400143250ustar00rootroot00000000000000# -*- mode: rpm-spec-mode; encoding: utf-8; -*- # Pass '--without docs' to rpmbuild if you don't want the documentation to be build Summary: pspg: a unix pager optimized for psql Name: pspg Version: 0.9.3 Release: 0%{?dist} License: BSD Group: Development/Tools Vendor: Pavel Stehule URL: https://github.com/okbob/pspg Source: https://github.com/okbob/pspg/archive/%{version}.tar.gz BuildRequires: ncurses-devel BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: ncurses %description psps is a unix pager optimized for psql. It can freeze rows, freeze columns, and lot of color themes are included. %prep %setup -q -n pspg %build %configure CFLAGS="$RPM_OPT_FLAGS" %{__make} %{_smp_mflags} \ prefix=%{_prefix} \ all %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT CFLAGS="$RPM_OPT_FLAGS" %{__make} %{_smp_mflags} DESTDIR=$RPM_BUILD_ROOT \ prefix=%{_prefix} bindir=%{_bindir} mandir=%{_mandir} \ install %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %{_bindir}/* %changelog * Sun Feb 11 2018 Pavel Stehule - fix few crash related when searching was used * Fri Jan 12 2017 Pavel Stehule - possibility to replace ascii art by unicode * Thu Dec 28 2017 Pavel Stehule - bookmarks - searching is much better now * Fri Dec 15 2017 Pavel Stehule - case insensitive searching * Fri Dec 1 2017 Pavel Stehule - less like status bar * Sat Nov 25 2017 Pavel Stehule - lot of fixes and new features * Wed Sep 13 2017 Pavel Stehule - initial version pspg-0.9.3/screenshots/000077500000000000000000000000001324002717400150345ustar00rootroot00000000000000pspg-0.9.3/screenshots/theme1.gif000066400000000000000000013742411324002717400167220ustar00rootroot00000000000000GIF89ar """ $%#$$%%%&**)))),,*,-*..+..+//---,00,13/11-2422266639;:::;;<;<=<:9===34CUKKUUUUUCCCDHJKKKSPNRRRVSQUUUTYZXWVYYYYZ\Y]__\Z]]]^_````bbbcccbcdeeehgilllknpnrsqpmpppqrqrrruuuwwxuxzxwyyyy{{||{z|||}~~~~~*******33֪9! NETSCAPE2.0!=,rCH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳN@ JѣH*]ʴӧPJJիXjʵׯ`JGٳhӪ]˶۷pʝKݻx˷߿ L[#6̸ǐ#KL1;t}ƹϠCMӨS^pб;Xq۸sͻ7evѽȓ+_μУKNxнMvⲧ8@R|#hM/Gܺ(BOfyYY˜% 8`Qoqw|zD~jтuu4e7<xSA^YBIc_V3C*N_tE$ ܏,\~2zC8@:zbk"DI@a"J J@Gu3*Zؙ@)R4! (3 -Ŋ$,9Yx,f0a$a+E\.7u. /ְ:s9+Y.'`ǀq \Ģ N-ʁȉT}ttZhc.<&(&QH@,I1`耈C,|-ӹxx#! z;@x͞c!80./FPp( /j4.q wmJ ،htq`4&A1#i6Sc+] ٮuh30%q-XяR@PG=졊L@f9C88KlyDtл}O.< GE 1鯩nt$(!jzN `@4}d>S:)c/ZAW:H 4T"| (1ZxD h z &&cˎٮW6Wȷ3)'娅t֭c(X/[:bcf8/WNV ZjK?i@֢ pP "3,l oꮈk\WgQ 8Sa?Xbah'YtЄ:b";UKZl q<~a6qP@th$}082V~6x:/4c"q%+ܾ0=pQֿ^E,a k,=(G+gt̂?@.{do2עÒ-X [ 1zIvp jIeW0KshGuJveG ep ćW)gRT J- q2 _slsF`EC uADڠT2(eg0D}@cg Db toGvЅ7v`TxV#Q@UwY=saH ^Pze0PxTy`-U@`5}tMtGY [ VV5& *G} |ZeޠTІ6z@ L{اJ o(*SV~Z%$kd ` g 8qdqyQ Xo(X(JV8rvAI0P vQ 3xp( ;-نt 9 Bȍ 9#ka:M0 MMiH h՗dXnXЉwc TVPHU@Ttoq tUIbepk1x۵n+57T `:?ݶ\dA} Ǘee/ ԊMI(g  5P- a)$A9 Ph}WǠMIfja~ld (ybU ` ː հ p $MGK yxW!weHQh0`IYUȑšT+G^6`9'*isE@sMxhT0EyuWG/i`rpɇ` e}nu{%JXd wf pmAU`:?45@T%y ꠣl Ve #je؉ٔK ~b" y;EɥƇ/" _i3ZoZK p pd (r5a7%9i0 # +xA֩q+gTJ~4-h)JE:UXV4 iYПJ,'zx1J8cu']ѵsQ p!Pd` P-pq XK@VeA*m - ]}1-&V@6]@Ѡ3#vAPbu+JNPR=T]V}XZ\^`b=d]f}hjl-@וr-J}|׶u]dػq\׀Ԃ׏ ؛A؈}ٻAטm ң-Saٛڬd -еm{reۮ׾M#饪4}KɍwA$]}؝ڽ=]}-MEAꍲ2+~뛾쟎a`,bn͎즎+80P0=.츾KqԳn/G C .#.0W@S !p4ʠ4LZo/o+@9^3$o$o3@?50_QI/@6!?%'4ZK|0oQ`ȡ~N0; i[1omːN _:e5@MI<>ް" <Bp/0u\/ | O¿o o__1a<?_oސ!/<ț7>.d@C_hE4j/7vE$~)UdK1eΤYӦYV RZpj.)Hɧ ^[c TMaŎ%[&9wthQ$89L0f}uwI&vd7OJ.4.m~sɸI%[N;/ $\B.dV[c <!hlXijD\ 9"Gb>$,˸bHP T FN %03i(4L4U%&\ibD _h0;h2S05P1ߜRΔR/ӌ[4F NPdI5S+;'4A'KPUm8 3{GmǛ4]"X$E @p$eF ZA/=lfEv\rͲ%euZ6%Qf`!II : /%pi5e)`q۝Zl03`M]S;0~4yM@hK.xbr@H_%kd~ Z ֺcUzi.\:j5aYkᅗXLrxƼ~ⱆb:fΑi;,{49WHe`,mʆ\x؆ n̙~Im'ibV:t|TO购QFt4I~`/vOp=ISzrw.q^ogݧ`[zy[8}#S*_;uΗϵLm?&^} wc9FUyDR kz+X{{ _KȻ݄ Ub6ƒN[\wDKSg"p, T`J#\ $7Vl;HRcr-Z,Q6 bP2̃3gYІB(8)X!cYAxu $>A$$S|F O:ҵkۯq6єk0({y[ć5a b25Rr-yyJD);D΍x_9)qL6)O܈6V=t~Ma+ 羢 *\=IwxT2Ɏx.{^:A Urx"XhP\#Dt4"娨lO2w-O !&g ј1kOԘ9`^9Ӎ6G@ҐXVuLHYkc^-N-_'Ƹ񡒟HA!e!Ei~*F,*:m*,a ;tHĩt+a3zc`Z4b6m G[CՎ6tΈF*&COٶZU`ɪ;ܙ%,27Vu~-%"K(yvm'Kդ Uo.{MIBGI]Ӱ[6^V̰+/}?9ȦX ۲Ҽa^IDHWpZ6S=S/抱U$yqm|cX;q}c YC&r|d$'YKfrd(GYSro|&:P|n-᫟Ӄӆ̞J7#5Km3׼1%h&X+s~ 7%('_3DžwyWgﯧm3&k:bcP ׶Ҡ&U˻Gp6 8YY&v}ld'[fv]l,wuW9kRms wňOLL渉gnIF7a]5q_s h٣vfp | '>x+` g8MMp35Ն8}n['.f>$_~JxǑd|2wwGK{#ˑwʡsT]WyӊġX&Gzs$Si~`9=o!{~v]kg{v]s{!R?{{Cw'|>x7\y,GR~r<.쓧|-yg^|="mIyӟ^w??$<@$Hyz~}IO瀇ûbx8=+?3B!Lk@3@ @P1H9&$B*dS0TBӂQH'B( Q9_0 A1sA$DCЈ0 H>ӽXHF,A8A| 00ahxEQ QyqEIDhNtHCat]Q|4EF`|ak4l?edF| 0? xDCx$,8xH>0.|G]!x0GpȒx@H{" 8H|08@ m HD|D|xVh"Ԉ 55Ј1m tE:aMIZ(W)P>ȤMhQɒ(ʣJEeɡFdJ˲xNO|M=*΍0 `ʼKKFCh!X(\LԈX5@v:C$4Ql ć 2ˬHݰ"!O|-Q|@I܍k)  J۸EMJMK|` Ň5Rlݘ.|HQ_!۬*SRv: K>lL LCp"пdTLhhݗ3Rڬ@%$t3=(R|@PQFuT|h#L ' Α 0NFTΨN RtJ$͎N( OUΰRT]MU=Z-  23>H02%h% 31@V|VhS?PAPA-CET?7@Ȗ<HzW =zLmɗJ@-Ji80$0J|-5ȉhOGS@"ʎ VhXV|"}Y[Y YE8CHV}V4VccX8 C<9Ҧ}Z͂C8:`# W M1ZUZO8Z"QTG4 cXDۺDЀTL[I옏yU,Sdl!hhK@z9XUɐELRg9܅!}eHhQQh5u?V ]h1pO$$Z T PSx@#Xݨ%^V`>䭱. _c^ے- hE}__3^_KEMUCFJ_^`=-fn`l 8pa) M"vCaVac6a~ Vyl=a b_!b ֕>b&nb'G'&b~<$d=.0Xb4CU-c5.&pX\[elb,<VPU``P*jXDFi>-BO>؆kLJ&kdJ6N?SV>ecWvexGx4@T;[n ,.?.?֢AZ6_@YeCćUmU`d4GINB([Zax;&Uc#e[ccV~e[|vXXnͣC)h4/:C2H$U fc.Zf%TC6tC8|:$h2$dl>D( CPDF%+%ICVK,\HЎ 8.:p\TTEVEXEZJnT^\-`Z]vi|(clddelFÅmthG,AV kd6tDkPpj|FFЁz#D6Ƽ >Ƈq,G"llTPFGuVcsy0se ZpW^PZ+mvniG V`G?R$``ZX`WxVEݞ.nVmsmFo8y *jn1Z\h nT_m~Vj`ifml|QQ`]K$X2 Kh`III) 'QW\F`JʽxktnXshx(xp~ʨ OK g4K^r\ьmtA8qa%K\c\˦|Q$َJmq^Y%vYt[pc l;(TLla&I'(WiHU,X7`MkuVMޤO$:=L NTQU-OX?A_N ΢$soprٔw ׈k)g )"!!b0Bt0.جZ$~"OA|Zdyf0[8eApUb\8@Zʄ5W9|ZaD)Ԕt1XO5aVel-\#9 6ɵ&b+0,vy#*,p.9XLmjZ#@d'uQPn*l xipV0x ʐ9܀x+GfT*Hֳ씲@#yy?A49,HZ kdm#c[kF[>jةr͍@I-b:54LSOԘF0H9>SKdEXB/ 4 >q$pLYB"1-!C` cD hK (spbDX|,ɅN%%/N/<K+Iz =\9pb@);۬֔)d%;#ꙋ$#0+3-3S 6|ă ͬ> :Pm MaRM8%ꍐdzϞH:ZX) i@6+ZfN?v_@29N,^:\,N/>ހ2d(hO9 M!opϻ&^r(cP\&WKrNݦDf5׀ēay '}ȘYз a(fx#J#y~9W  0A?OWz fOӉ#xlИI8l=x;H( ? 2J Fɒq,B=7 `)D[?!!̂_3F'坢@б4pw`&e o.Y DP$a g\"C?Gy/Иv1e85)zXt_v 3 >1ph`8\! (3 ,4Ffq$0\h@ (pSԁF8>Xq V-3h0ߖ?nF7J'ר/1k@Qƒm! v|BTiG-s,$94*VQu|H BJ"mb:KH @ |XM 6!'HBDh94~Z!I,zGЀ@(1 a_RjR$j&@ZRa,hmt!`O,s?PN)JcSRk"8xD @ЂkTҿ4k-U6u0Ê۩cm/#>gDḆCtHqI{^#Ss.vO'ըG,@P~Tns% k T;)JǬ=&XpjIgǞFpCBdDd TS=H(1Tv%<d*YYc"0`IP=e/eFIC;TK]ڛ\z%E %`.6T׳!X TSZd98`[TȊ Ren&TX:OpZ[$IzH&FR$k_&jlr= &n b$7b@A @ 1Y4ao2ւLX[sMqNe}Rjginjj]A&z'gvpAqb%bd@|'~g <[~{:P}'vz&}@},p>z.)$ >@$RB}hHYqP4n$@_Rb(>0B <@OLI(@R%@(4^H@NՒRi (@P0G,P[ (ei='z*gJ~R$ |,~ (h*jJx} 4 1ND1A(p<+Cj|&\j*6*>'_ +l(8Iڱ&j_(CHȥ4k9AoĀc*A|5A:Sflf@e9$@0b%ilz,,TQHl|@pφv@02ң&2̖Af+؊-يD,P ^Dڶؖ-ۥꩫMmA@E0BPܒ, Tt" D HAzx͊[ج DJhДlze\ҒD.\d]`D^14֭ҫx$wxG| />HGn>*/R*S?Iګ*@.TPnР`,%/>&iDJϒVo* qnGm,Ā!Fpft-gkM ּW^dp JpEi?m:@5#ă(ȩJ)k𫦫 *:yf.(w/*k2.VH<+ oQP=!$Кc*"c9]&'Ғ-;/#[ y"+2,#?rh((2d9 #?2<4%ƀ"Ԋ"or'""#S)r$"#,{-k"wTy2(2r&/20S02%L$";3132CV4"YI@x"|5:3;;3<;7<׳=+"}ٗ;=Sw,2?7"BM :t@?4DsAs;;4<d4GјutF4II4JG4KK4LǴL4M״MtIo4N4OsN4PktP5QO4FgQJg4 B?<P75U_5VgVouO/5WsWQ5YtXtRYgU* Q!5JP5uM55`V`wua4ava'vIP+6dGdO6e4cWK_bcbkvG;v?x6g6iihvG]jkhPP#4nmnodӶj7X Xl+voitsusttp#7d7V 'qft0'4ww57w Au:@O vӴz3{r+O3w\utjg|o6f'}f6wO7Qh )htyv'r4^(+%l%&đQu đ)h8 4h?lin{tx?i)g)8i5V)8_'CRy?>hd@Xi,їi ח@y@ׂ À_u_5>MMR-39>z47 hzKIkjJtj}2Ntz8p,4O:;z٪Ou,te7stvk-I㺮{yx?jG{đ7tBX @,( k-+Jgwz;5dO(;!kn:U:U'z (Ӵ7w$|kˑ", <<[LJ{?`l? #QH4| CFx?hy7|Fw4Q=QGMSƇygt{,I>77<ģ~fx!BK leA@'A… ёp, !1x~kӀɃE@IHR#C<%RTQ'O0+Mt)yplhàV k\sֵ{({# c"V/H37$p?#BAqb͛7C./ѣE'GLh6@NeOBf;'ձZx;wd@֔;Ș^ f~8ENF mܺ IN<Q?Q *@A|"N.S'F䀓f @xC=@1e@kAL.=\`EDɂS` F~nlE!"4 (il0+.0!ʱ bh"$(~S̃8G:Dpȩ(DH(o>HSЋ0쇒2 NA& ZA Xp $)Q?=o)L[NRUWp"=++`t0@&R3Zk}{@"Ö=/n64&KC[>$@yݗ~7/W >.r݃ށ9G ͘= dM&$9pR$C,)l]>sgMYfhhTfy騥c^íy:k첽kTp/}oA{ +pT|v|_FzIFp"H`KW}~3 OuKrdh w߅x@,Qj-@ou'gݽCً?5Sڏ .7KQ bAlBB:[A@gzPW%] [\>hm>Ā wh#i{; eȝ~ԁNvNfpn HuJxFP$.!" h"sXxO.; X#wTƁq WN$pgP=#_8G2"7B.$X(ƽ]2cQ M/X 3 >`hyF2)4YNf.B́ b`]6}@ |i(c6.lB >쭆yqz0mv#@sD <],U8)Mj&CxC|p\^O-E-Fu4]AmrwVT ]hCQG=MnJ4:gDIC8lA9 Rԅ@, e(AX+  qo|S*UD 8JE F2cvK3&dO?bB(|`P $azh5I^ԡd7dViGX 6:MgZhIjԽ5.]jmbہvqzGWv1PV!Z`5 ɂq]zPM&) V{Bg  0It^ Uj5a:DIkVc.oQ=[3.%.rc` 12{!j~{UmgS?t x.`ŕs VAJċXĢAV$jpКd"`b,c&'C."XX\0b0o bxnBnPcJЙcNG@"aFf&hl8 b `d0cH0!~0X(/p !PXgp Gm,I "P0!N]ABb! #i$ȢF pEm"_'a06$0.xې$aPG  @D쳄wqzTsa`dT̜񗙮etѢ dIB*6$' 2yٔAyxS۸z}I3C<P?^Aj Է<`%~.΋T5_dy t9ƀ)G|HvDYф_bUF6i[3j~:xCjZ :ֹ<HPBfH`>%PrsC~?fKs%hZ'b Zk\u ;.Dv$)v㐧6ɡ(ysJw鰫~<c P;$8 `5V5#D47 $|9 TJrK}ȭ~ۼ.E3`? Xa<@e?\JAD~4⁃/t|$-8Up \%(E<}%h+A]`ڽ7޽| $ c\8o?a;XC ~;@/Q/l\J\3ZGgP%YϠI3Aiauw b?jl?o'iۻ/ۿ?` $_< &矀g (^iO<hpH|kPჱ4S8+&A =hԁp@c,-]'tNIT1ZA3 >TRw 1v]>P0{rv`xi;Ǭ!1' €hN &Ґ(05 G$0+Q"؀$KAk?\PB B88Gk8@@"H^XcyD xl[.ZGtH(F/:@ yqB,tmHN9ē8 5L3K6!<?Mvfu-lŪR +zsXJ͜9/ 'E3Ξ㋟MyONoyz袏N`MhSz뮿6{tN;麯;1zN|{ެ(S]Ь_}=;h&>_NQO$NsO p*p\ȿBp%@_R)D)WɞBj _? p.! ahp!5>̴\C>~ա YH(e>xA,V-01 !h1Q/O ?41/0,A@3 @T}9##U8ﵐ +@> r̟(` @(` Ĥ>QҔ $'NC C( OR ``сL$WՏ>2 pͻ% x " H6Mo"h0mI !)-P 3Iq<}ʄ @ǎydD{)2 |(oP= {;"!TĻ-/;`w.x;m`e?&Cފk\e-@jp1IMnBZ6ҕ.rK?0 ##GP;,<8V\R>Sks0⣺ztlн{]]##~|,X淓F^CDXA *ANFxvӛ'yg= IL|e8M?|Dg4d>" !i C&Cy-G?mLC;Ɏ}h<?! T0hd#G\}2qXҲA&77VA1tzڮT}atMmzF?9!}rxE0WN K5m|[ΏZc_x'Ixb 8kz$Uvի_+ZǦ-nytb/| A_5ח(KD}ZպVvn Xy39Z7&&nv_c8@bq&</;;NYY?g%_?=46,@. s#p3G&g+1[Sۭ^i~ƴ_qJy E>˟ƐW9 =s'wuy7jjP?'xW{t`老u8yd:yhvz P ?h9A7@ˀ== 6 Ѐ %j:SyրKƂ炦#3D E8  Ѡo؆AK8~各lWyQ7`pqD^h7F `U ܀ ` :^(vV= PqG]_tdGx?'G r4cHiN@Hq(t{8~yN ~`uKI J` d&MX]ް ڠy&Ix^-PK$KdK?]L CjV=qLɴL]P:Q p P.` F`;OO!MdMkO肏6 gVH@ u㧋A8d]Q先H^H^]#S ` ` XHjWQZj#R 8@2.SVS= U2/ BUVUvlEZ%džn膼nXiH% )&e\JV^V]6= hހZSz$9QFڨ15:VK=. #5]8]Р4 Gْ ҠPfj_h Q`p`A2l7#;r#qeql~:ĖB@ɗ=J@?J J !ڇVo y yOڪxfpppqWq?ušYf5c+Ȣt*qX3 B BS.gt'tںh @:꨼wɇqjpoua Q W(X&(c^h0w7*wq1|gw6wo?10 \yn xؓ:\^ah?Iw 1 HĕL(L)dNMMD/G4k @Y9rIהMSu U \][\i|7iF啔G_ef[? 0RIy @\1#aYl^TJTBr/zkIb &`@f ,S]RҌ;QUWUԜT|:%&hˑYcLʚA.HX|<  xExS,#f)g\ZZ<`k`cURBkbb(!]\ |C]+^ _ }@Q4+5#V-&,~a0a[au%:2HLg~M4j8:]wR_$]LXGP`Jeb:_I Rʐ 1֥WZCofhJAh|g 1,QwMNR..bgnW#=oucUq4iNQUݭXM:9m| e~8Z_f|k53<`"&gmFmi%/$LBn2 DPqR* C$q q,nF "&Mr%{rr9K.tt47/7Av,B<TNt/ק+KrҽyvJIzGF8~i?/>Xn2,2l.:nx{Bz|aE@c.J,L+;B~z1郮 t[5s|Q}kyN> ޿DN섎ؿRȮ.@#^Ӿ=׎ퟣi^N#eCBQϑQa=$7jg7p#~'H/3| eM|h3  g&jmG11 s79e%_?'iT(?d/O^2/*_6o8=qHh0B MB9LF;5dS6z/XisjKJd51KED q Tp xǢ|UTU^pUVNh* .l(*Qm4K0 ś/vX8{ZP(oT.Af%/@2KQ ё Y$h ˒ Vʋ/n~\4x38[̝3l}cRD][(+9w)y"UU~]PANҊj*ci52|zC]#jd $j!23< 0d@F !T# @mExOp R>SLHH۱~~ xXXҸR43=Ij'T*4b*?|0h 2<IխU .$` WA74(ZԜȡ>cIvҠ:3ЃC:[N$JZtZVf3%(q)\Zxx x`4S/vR3ԙe!HQc- WC #L`~TeA4LĜ -(@EW a;#h>pVLB z&#gKWD'5jk‡m59S8M 6ю RL<;!vֈ_ߕ|D~䦻H93)!>Q}%~xCl\6SxD29ҕ|%6 PA91sÛt.;q&,3Pn)ӟ 3i3g>sL7Ntu%<+>ÏFaQpT0'HURuGQE]YQ^ )BR%PLҳGEjRUj͚MMӒCF9>TĪjI) }^x:VfLO4Ёh@+O뤤*<|C0s5:bҰW~ ` u3ªKJ>(0]"He YYF4\\z$+́ZUr8AҔ4`m,Sbю A+yV *R{ wu4p زuEdWYvWJ4s =h+:Zר [( ?(wU[* X P^y!2l)Grܶ(5ǜ |EX**vAh E+ H8<oNs& C04Dkx@T~( YɉA `v!J-w ׫v03zDCj-E_tcX٠nje.@K\ &0gq 5$ڱ qk`ccF74'(1l6Q^ʌ@N{zl7 $"Jf<üj/`167hFG>^4#5=܋|4%p-ұNT{UO8JЫ%t a t7!]  k4!iPb=b?@p8r>p6 wuy]]k·VfOEͩf>cψƶ܏h0:{͔sYOXd},!G @p3(]BTBPfQ|DqOB߳#- $֒ݏ]=G˛@4>lJTts)mo1iGLWm;cZXnTRա;AȾ87%ƒac^ke+_{nzO@I"rMK>}t-g]2ǹ}3%wg8=g8C=ku˯;=0=|Y-+/;ux>"0@sH0>JK{,b y [ҩAa[##q+}9[ӊs[3r3i*@}P=|ؙڹٝA0Al ;s؆m~s)|?ۆ=:@H $  "")TCCD,  &B"!B!B«B,B: 1$:k:H@g2:#g-6r#̨.eL- O pxRR9P ђ.,( P:-rںl.隙ENs#Ї0 "5~ &u+$Kʚ'pRPQӁ(QxMQ,/r /ZJ8P30#n(@- o0 (>0.0REeTЂQH8ObeUO R0E͒`;1Z11Ӝ(2>y-2*sZ X2"322`TU_ո˱8cMebU6MSF;q@¬QÔ@AՅ@]bЅnCJg!0y-LЀ " N،TUնĤ^4$5X PRXhQ)b\. PG`5WmEY 3qmr # =smz[^X]Z| f) -(2`̂LjxRhXxTГ 882m a͸׈b2z!9Qݸ5 [qNrZ ډ:AӦ$B:WڝS0SP30f@`.P4Iطu<ᑽs kBɒ-Y^W)ݣ:݁83P?a] ]#L }>پ!9Ӆi?igY 6 F9\ ?|V n+_U7E_v=LWgw4ZЫͥ%_ !P^^KXLBPQc 4؜ʉb ѹұaۚ!*VTћ1/fa7}am=5qޱa,yDa DE'.cd 0S` 1 S %JRD+2Yl r"3N(*:E " YXf"Xb  \92mT# ߕ6Fx`'vc7hxf=wA   9 Ho} &pNN' *Ҁ{w 4 `}`q`~V`(!|,먟sb;LJy~l`` 80,lXJa4D)}0K:HQRXbayqlYiXSo"iSΈ.XZt6Ax@h2ǒ"M5hH<JEr٥_Y$bk͸[x#p0zw9\(>(SK-/Ë6K-O0i? >@:h?+SK,*(*j&hJJR鬖ꨀ:*K )A8UYP( IQRpfv[؆YczX ohcM6cMikZ㍽cfߥ nְ#Yq{gh+O-M?)P-M-OY~ҼJk8 h?%sr+C'ҟL,<#+ ۵_K薹nI7ͼ[9ؘ/ik.3;ˠ2s/nSŏ_Ơُ2$#IfiJg1L@3;ݫ̮_>Szn=b#_GfӆvmjoiL9kw&g֓8x&aLUM08**b/ZW/+ 4hÁc@%ɢɲW$ [B 9O]cX {xݖ1M,{;f/(}v6TtA7 ]g ece]SRX@j<\qhĢcW.a`9jݕN/Ť0AC^`BuP! ABy1$N ISI(`ZjKv%<_@6LP @d 0F<xW0/h 5< p"׽d~abr tL_gL%(E# 7A1'!WP# թb#|W ͂*76׉ ݆ۏ X)H @01!|?7"[yfĕdɖ_ܝ__ A`y@ 9AH |KD2,ވ 5z`   ! 6BNӅ`J!ڠJ` raVbY!,-=-Uߌ ӕꡆaH GjTIbMɡ .I5"hZU,YUZa4]}Zaa"q%P^hyx}&Eb}aB{W}ٗY{ڀB ,pE}A9Bߡ"*"~[mzɑbcczaDYMY]Ym@Hz @l ^?AF\cf6 .߷y!"yICDNEHA|@ZF=GNC-\?C DHA!a7ظX8*8[?9!: $RI\¥dÙRd?d?c@$LdL֜qN-AeFQ]|a֙\VT^3>c445b$W^->p^=dYbb`J%A.FcOPYg Z&aB 12e+x_tau %D&A_gkk&5q( MNpUd !rrs!x&Х`w$bfA},J|fptgG}gBjhu:iF'2h[gDփ !s6l~Z肶XhVIa, mx&aaouM~kkn(N! >!8VI1bpZfyiF&^[ـH)\)] 0@ٝ!(%-)a,oDizpX%efz6(0]4R#`@~@4A `D֩i>))(ƓơV py夣j)OeP:Jjz#>&UDD | Qnkg* *@Қ 7Mx6VxrpYdc~E&+k瘮(G$KìڭeF̕hQ,@HljOѽЋN0TXޠM>#d%,QJfA%S2HRkAXهI %Pk:-ƺиH΋'a-maj|-t֤bXlnЙ͢ڪee/[> \ce90`Biة#(PŁ"nrJ"j`H7̪f-ȾC a 1u~Ie 2Hh^g^J)Re`bEc gEFRõ,D N FEkmerDRf f'2vqoA o\.CHouO;|^/ha>gh^c6岋4/ƈ苉KnHLn؋9Knh.υ /Ef{nuƲF646J1G*a00 #6l:g;c.ao~7|s9@H|I*؇-l#(Ȩ 11ش1XB(,̂~"A豄R!iF r!{!'r(%R@8@LH'B[Fh@H2++Y'\ՕC xV?fu@X+<Z DV99h@1A3gs b)@GfA6["}@@X#ę Ck3@=*abH#Cyrqhh|#F G4S YsGgjXqF Y-F@ H|@W(EeX @,(V35ڡZGYPC[Gz2Zݦ歳D h%S)@F\˵=0ru6t @r@( @NN 44=dE<40ÙS[lB-dd FdjszAT< 6d{+j}iq3hCr=i $] zo9!dpXp:4ZKS|YTSŇ@+#Nb@HAhFDe\F?#;_g4{?<Xx=v>k@B|~ @Aq9><]rhfG5 X=p 5Sى Ѐ \g ZS苾30$_%dڣG?`С>pR o , B^YCI%GTeK/aƔ9E|7oƋ gO?@QG&UiSO,WSbƗ 2tHkUv0. ٵɓЦհ6C[oƕ;n]wջo_0Å ,TPMpa n OtIc07k^=۶ܵО:%JԧN,Y4=Ru돰g׾{w?|yѧW;# 4A׿ P , 4dG܋P )<Č20lC`dkA I$B АCٳκ(nN>Qn9>q褃 R!,#LR%l'BFo>3R˥-/ S1,3DS (|d9(yđ:;$F"a"݄S; 3=GKf̑9VlM0TM9OA UQI-SQMUU7)i[qU]y_)\UO;MNcO=6YJea-RD9% !,9hYlc1@:xhͧ1&6(kX-8%ID9D*_tyrJ2[ԙʂM; !E-\hOY0 !,BNYlc*\ȰÇKDȱG <ƣɓ?' (cʌ'PVdD8=w S$СH#4ӅK>:0jSNbukVR"*vhA A;'0!F2aYoLZpoxʂ;LYNÐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸s_ޟ qċ/o.:ӯ'>:E{<|c_>O3!,!Ol(^*\X=UŅxhŏ؄  ܸ6)%LFҴys˙5{2SOE&$T?b5]1J6Hb c[ÊMcOvA=*05+w@%(5]5M5[c} ןZtޝKW` Pg?+W 2~ħKA|/p#7/K5T !:,r;H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ Jѣ8'(]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˵۷pʝKݻx˷߿ LÈ+^̸ǀIL˘3k̹ϠCMӨS^ͺװc˞!۸sͻ 6ȓ+_μiNسk߾|:ËOqӫ_Ͼ˟OϿh 6 >(Vh^f"a (∪}H(*4ȟ6@ Bi䑽L6YANF)唬)IX:ie\v ^)&`i"lRfpiri'~tީ矀gJݠ&P.5 餔Fhfڥvg~*ꨔJ꩞ꪕ꫎ 묅J|ڊul c K\S*L: EJKp yNN_>o暿y~>nzۮ>m?K{ގ>l |O?kʿ|>O?j}n}ߪ/~~u eO?߿vq&ޭط2p|"(AQ  >CXs&(D;"y%NX)RyVEq"'1^fؽ5|n|&G_#u=~ -=P<$ @%-z$$S$IS%3&LrWd6)J:%*;UIQ+cYY2Ler˒ѱ%0da^I2e2e|)M)RU&6mn"8q<өN5m|'<(yj'>Y}:*Pw<(BЅޓ 3#zRԑż2QM(H#ґ& QIS4k(}\*Sд(Nӝ>Pꠛ8F=oT0y*Tq#թJgVMNr5AX*֐9+ZSֵnOXZU4v+hWP͵+`7#f b[2v2}?"X2v  vU B0hc %mi%ԪvQka+%mmq$ێo$ߊq{$㾖Br.t$FWϵn UlWG=ҫ^n^ҷ}k˾o~H<0/9.xD}J, 7 /E ϴnC\#>P/"~1Q,˲6~sK x)qv,!"2|%CN*dSSee6Q21f|,y>k~s,Ĺv3s=Y~O-h@:hh>Fn[&MIц+MKX4iЁZӣ4=7Qsԝ;5\]iXkNSuWfZ՟SMj^sYp.vYkbrA~ gSn 6ja]\WVs{uMn`VBzS-ηoDoH)+%Sq8XMX8 q>xuG^8(OW0gN8y56 =ЇNHOҗ;P_t5pAYz`6|`ձu{$O=q@<xxϻO‹=z;:ׂ/| ϼ7Oz7Ow>;9>ADo}ۮϽwO;\(K.>(`{[>gA" !<,9^ H*\ȰÇ! ,9^H*\ȰÇ!,5 H 3oa"JlE+b̸񢿌?(1Ä(S:[re@!X,hH*\ȰÇ#JHŋ3jȱǏ CПɓ'I\ɲ˗0cʜIM(sD͟@ J4&)*ȡ(=EH*S.c5Mdx;$]ez7OZ(z͕=֞ZyP`$O{ɕ!p!{xnpUאЊ8oDbricDِ)YGA٦X(V%c-f{)AYm`]t'x @sVHeB :Z!F)L*O`'A,ha i{xPX.Z eBLF)`jW5BzFj)4~Uh[6Av6i -Wy.({;W%kY ?#"CN0-F5O(VapC6C:C^ڞ_;_Zq&в5W%!ZFZO_YԕL-Tm .gi06‚cra"eDaN0saN`4\ {c I0@y\$Cj-_Ex,v&rs'g#\,rV !tHGN)NiarGjq"qcҶBA"(GA.!TIJZ򒘤cNz (GIRL*WV򕰌,gIZ̥.w^r 0IbL2f"Ό4IjZ̦6w mz 8IrJL:vD'm.+zζ.q;RE/xݳ"׺M.y^٦7-ex{ݞw-my2WԬj\RW /JB6#L`Xm0ŋ–-1v)^Xͯs/;8/  ږ0*-l;]p}w<&GBNO^,T)e"̝3c%?9>\c-y1| #53 $k,h443}n`>W9~MiQӟWo;}$\ְ(udU^PTV=jqc^\zU$:>~L+SPz0^OvLӵNez=h'v[]ii0۽^yۋIГO;񐏼[wY{GOқ W/cnYOs5߻W跏;=g{^z;ə)ؗ/?>;K d [rD/7.dZ?xH~8X hXX G@P؁Hx 0 x0.͐ +"x 482sG7(X4r 0XJȄ MH-Ȃ45Ѕ !K \q] A^U uXYqwX{HFA.da!hMHg(0  X AE!  jv؆H؊u|(x~᷈ /؈N苞Ȃ]h.X DUmԃ߷{8w~8 X(8qX)\؂](fQBq؁hԘ荰8(8ixP;X =( yh2tQ6I`XKÉpX8 Oْ(N3XLȅؕ(&GI 9% هs4ě6@Q0Ȕy_36A|wWU7Ov7夝n7}sĝ[)N9Ky[|g}5t?%MEDOgtxiIMwN5qgctzSu tʡ씠SzapcjRKFVކWN:E5F[fo,ڢ*4:fK j\gqBSDK1JH*M"ʞN7{:p֣YU[{Ǥbk$8 w*'n&M!gFMJN 9:]XjqFAJ5$YJԟpz}6)&]:cMdeī :|ZJ^tCӤ|g|iǬY@:|:Ԛ.d*hJt1n&nL*KIJSEjPN TKm.V^Ɗ Ivgԥ] IEW `cjRb kvE7t}fﵢq@*e!Y$V{6:G*s-KJK[I%[Tki6{ PʨNj:wv!+_njh\;LBJ*}{,cSM ;Jw ?:i" |;:!I{W#mڸe^s+*Ŵ亣Ddiw+k3[qo+ie[J[rKgмʼ;;)Oۭ+Z໫⻝ F+KK׾uNۿU4/lL̿ٽ4Wk k5`ً4¸ [b[l'gܰD5|8N`[Ƌ+jƮ .U $P\N2Y[toS@Œ^,O6̿bIϻ+knSigFY#Y<šx|hLa#ƞƽUKN:նv?Jqt{v["h wilJXq\ŎulowkY <LTtő;ƂJk/j=a~ʧtJ ˿>̱p[p mNͣ{ko*ͣDa ^M&ܲĽ|lO춶lKw}z gJZ]'WQJw\]V-K;!}M(Ťur k)ݝ*%¦ѭۯů$r)+y=Kd2|Ӎ|Ok;i$Em܌M]c;lzR 8 P/ո[Ֆì@Ā\m6e_ll\\qS.մrҩzֻgy4o ̀^ :ءZ˨k<'lǐLlzږlLס8Oۜ4ʗ^>kÝˮy]-t̾ng8L$ m,~ܦٺRg^]mH~pЙ-[ږμp lnZ4:o>. ]'n%[-/@S!~U-n7N]OB޺ =dA_JL Z7H/ɮ^}bTm}QNjt?)^^NVFE>܆_ĸ~Վ }/᭏/Nnr^+oO=l+ߝ/xI>|_gL!H \Çk$9pb)&HG A$YȍSgƥK#`8M9uOA(Q>&e qiSY|i&&H mΤWaŎ%ٟfUvԪV쪕+AyF{_l;< ' *bƑ%O4|;*tjUb).sν#kG Q 3+$,ɝV$m$IJDm:+$#{ɮ#w,S蚄oA%,rA(T΅#@\h0@e\FߜS7! !Ü)ͰRH9S@U!IЄt˿DF,uQrttGtRQ?ecqKbr ͖\2ao}GdPZ"\G_E܄M7dY *Xr)ܖG;v_82oXtN\lؤE{/6a;*b&p 1,E!RR2c%s}$ ŦNg~d7ld%B)ADd'qрj\"DCzr3\& YJ7"2PtH < +27VP0],bnֈ(S(7\[H쒗1WuD$&]'Lb8KPtW<$"a_[3Ži\&TaMLP;ٸp=[^0xteySfl_ Nb@/A|ݰTE%-ޓcUE^7>OH[SCgTT/]L#(3T^p&#/d^))&k0~ԦNY2Sa!8UWwUptgzXx&Zlz5!-C:o&"N.qd6 K_Mg %0$dG "Lh\cY'&-UmL{˞w&=FmVD]nֹc[umw3;l^l-Z},~E_ | 8[pFs3 yϧ/[P"wfp9N֑ngKSؤl8;-o.;cI8uJ=o??Ju;|A(?}%2}^u57=Ƽ?3fԚωU U~,wXy*{7x.iBXJ| z~![̯zQFRoq=J\} ӏvԋa^?Jc(sE靧$;Yt|hDTls7yN_y=F!@p +$gz{`M#.:1>HxQp37?fs p S ?8+Ļ=h !@Y/K^""75+S2rxdH! 4ރ/ ⮫Jq <8ٿ@KJzsʵ4<|űJ<%]=sJL$C9,T7T;< `bX8ԉ|ӫcKV0[L>FdH'#: ˫ɛuj"B$,iRJkl=G ˩k-izI,k| IN,F:<2z,CL;+N8>ΑR/O[̳NՋαADó+s=w= $4DpBQ QLPLlЄTɿl|×E"ktGEz>|M-5̔(59<Dü6ƮRzA@rRQPS15G7$2ɾ|K+ӕSQ>%?M49=)Tx%8xPBa U$+C=27/ۺ<&9 T?>$95 孻C\[8*v/Խ-.GN,IIp]4SB=EcHRRUuك:25Vv\?8UdD僽67jxA.B~jh=cgNkm=.V}ӷز^E8YldtEHjmd-e+M_`> d59mٕg]>'5Ug'=Ni(٩Ff^ef&/Bjd;^ifF}5cpq>0-^жUfatkfDPl<۶nUR9К'XbV3o_,χ`^}Tk`֦mfb}WPH:"eCaWlٞ~p$bCJYբmqbZ\dq-k>'ApjB.:8vc=0"q$G%f@'r0n] oφ\b[ö2 Ke*M_i/' 7q(݂:]pl>aaUVUV m f>^~mVllFlen6f O>\}aE:L#{PUd{T|ǂT(~P*~XDO,|ڗ}ǃTHg}$5n.yA:ϼ9WЃE (Wj:݇8G6TvYHmy!!8OCT|VtEиաIЩHT$IG*x?1 ebyP*IZOVZ3%]zKen&A;>g&m&q9'u$fo}'9(d_:(4:)Zʓ!, ?H? NApB B,(qÊ+NԸ"G; )IKJ$Qȃ0a83"!,W H*\ȰÇ#JHŋ3jȱǏSL' H HqH&[ʜI͛8sɳ*)R 2EXTѥPJJիU:%zXjٳhӪ]1&YGWuݻx[֙@GÈ+ ;^L˘1jLәEyZըc˞Mm h `sMȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihl8śStix|矀*蠄j衈& 6s2 }JJ饀Z馜v駠ꩦ(6jʪ뫴j뭑랮 9+v 6(zuNҙ-dAkKd|[izlо.+K/{giio.EpYТQpV;| |"' i)0$ZV 9{VYͷ\M8ŝ^ 㨧6qߝ KϬFrdNؠ᫧nŋ Nnzyo\3ƃͳ~csso>+z7۾(9i{<X/*MmkV>:J %X+ w &ʂ!DX<ń(L W0 gH8̡wЄHHD.PH*ZO-^l"H2h FJcE9xc GNH)C>RD$L881xF*BCВ̤&7 ELrxD*yPґfă*JV'P/, B2&y"/?Ib!+UB&,yi(Xe&ެ8oR,)R޲ml5QNxRGI:qz3-?8P3M(Jz3m'= {rcA Pvq%.JҒJt(E=I3eERdӠ.ùю@bPWRTQ51y}hӦ/oӝd4VJCTe4\ѡdWXKVW"Hלƪk^WNb4k"՚Ft<(E$aωkt*ӽZlFQ b]*Pj4-WUkF+&BZZ jnXҀ!,f H*\ȰÇ#JHŋ3jȱǏ @ɓ(S\ɲ˗0cʜIs`*UR ( @ JѣH:ĹgʟJJJիX;$2EdKٳhb9SpʝK+qxk߿M@lO+^̸cqD\˘3kL&7yӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihl9śStix|矀*蠄j衈& 6s2 }JJ饀Z馜v駠ꩦ(6j꫰*묩J뭋z멽+fZgQg~BKƜVzgL[r{lIΙmYPiЛ oT z"& yrf$k%3 t ,֭rZGL2f;V1{-ҽ4eLd0is Qkm⌷xwLxHm5֊Ǽy?.sѮtykr1_\xqw^^_ͤb7 K7/}ˊdo觯/o 'L:'AR  * GHz&LaPP, W d9 _?,$ ZEJ݉Y,nߴ$*ؾ4yZSibg]@Rs+טVbm8{N,<,mK]ڶ\}ukɂ  ^м=̫@; Du(z;_ַ!,u H*\ȰÇ#JHŋ3jȱǏ 3V@ȓ(S\ɲ˗0cʜ) U@ '͟@ JѣH3L EϤPJJի*SPgUbKٳhӢLmIpʝKБ)܂\ԫݿ d!SX̘ǐ#KSޏ^N̹7 _#Úͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*iAST:?f馜v駠*ꨤjꩨꪬ꫖b 무֚:*j*+k첰*>kVkf,vr 6kk@.+/Λdl/z l鿚l0;ž6L nƪn;j<&3l–˿ *)WZ.۩A9:\ 42'K 3*4P۴)|E n5D#m5AmWvo0sW2,7XkuG_ƅclxĥbcvܔW.塢L~>Ԝ)Ԣ¥˰چOѭ6NNxhWw)o:Zߧg)ͳͻB_^Ҿo6|zmg.8c,{o:i-ܶlY>.~Cw +M#8`SX4)dg(*Œ.~ ^r5"&9@V8DmT+o; x-*j+59.z` H2hL6[H:jQv#>~ IB$"9GE2|#)JQ eĤ%7Nē #%CIRq< rGMd qDej\JYL-sIH#x/9]V *yYFd*Ƽ*E)GZb&-Mfz`&8ØTTHM9ϙexD;E9/Sq&,gI/+]Z2h8zmc7IJ\G0ЏID(=qːX,)GE:K}>4dhA5ISjShM[:QB)DQJTI^h?ԏ2uiRUT#5p2}i>ӗδ (W%V2pQ*~CI]WRx<W V ]+XȮ/5(?klP5r9(ZU+QQYƶukIjV}+ ޶ A[؍bQ^%hRUmmt],pSv5 [ D= }&xho1sy:eeZ]Tٴln vgu+Z[:E)N{%~iulib]>1cohmgLix,6#T$ y񍇜H"Kӳ2e@!, H*\ȰÇ#JHŋ3jȱǏG@R0ɲ˗0cʜI͛8iV&= 4ѣH*]ʴӧR(QXjʵׯ0TR]˶۷p~LK˷߿q"8Gc=^̸ǎSTi!k̹gE;@ӨS^͐(Y> 0ͺ۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무jS:?+k&6F+Jf۫v{,ކ,k覫Ժ n @+\ ǫmû@R<1~ w7{,mʪ<(l,GkW,s?SKrCOQtH4LpA:,5[u9GuZm[4s۵bO=H7lc89v:uƆU^8^-Z.Dʹ3{j;}x֬'}qÞjx㏿s^5ѤK-zgN7mk<; {6 Ü~$#mr#:0˾7}>#Wg>{X5]xUHY/iqk$ԢJrkS*m6H^z6dW z`=%ZEVu32]MUJЇ&VYM::W 6&)MKVv']jg?! z-jOS=Ŭq-v#-4 }pORQ.wkVMi@;;װwDF\ڏeb:hbWܽk7^%%0k6/s]:UeКP }k]mծU/ G7'qPLcBXM>d STxPiL)+N-2e Sf}ٟgn ˶)m2 0ѐ=dVƯlKNGEL!, H*\ȰÇ#JHŋ3jȱǏ= *) @`?RI͛8sɳ'M)uRϊAQ0zӧPJJ*PU\P\ÊKٳ= @G2x@{JLx˷ɬ`*Eiدǐ#K. bp`ϠCUh 0݌6c˞M3ӥ. #FM ;V@o%6&NسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+S;?,l' 7 Wg<0wl0,$l$.q2l82: Blq@34CG-5POd5U|Zdm][=Kl+PFy5 Y[=6#xE7;:8嬷> G^/lîg~{wz{~zߣWϵ>{kNF=kq+tK;'?_Ku>U,|:þ7ޥ/_ \ů+1y )΄V>z+5 w" "H(Yl X=m`W:0S <~#b H+w|=5P6 G:UQRAdwnG^M(y[Fw5nfC{ZT,|-ǭՙNBfy }`eU^Hz^SPe+dϚyw%hwz6`$陡:C31c=M6'J x5F;~zK7zv(tG/]f9 g?vѯg!1, H*\ȰÇ#JHŋ3jȱǏ@0ȁR|p˗0cʜI͛8sf IѣH*]ʴiE1പիXj&<)C׳hӪ]˶GU $)˷߿~XϑR+^̸c+l zk̹q)jϨS^͚a >ָsͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫N+k,lo 7찼 ?,1Ol_w wq$'jSm`6=ok=P^SX8N8{ W@bwx1PfCGڮwƫ pA ΁#^xUNrVH0~^4'gGD^<)-["Hǟ)ϊk#>R͏"6Z- "{iԼ(叒SSanJz%0Y3RFMYv!D)+9KղfdK.w^ 0IbL2f:\IjZ3Ӽ6mz8Ir,g8h|'<)y̧>Y},'7z̀,.MԡD' jsHrQG?vґeHIR\4HEhxt4h2u*4TyOgJԢSFf*RQ-Ѐ!, H*\ȰÇ#JHŋ3jȱǏ*HQŤ˗0cʜI͛8sY?)\B ΣH*]ʴӧP/7%RLʵׯ`Ê g^ Z*ٷpʝKGX ݿ Lhs#KLYrO-Mw@ϠClU pװc˞ q SxL Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,lUN,G,Wlgw ,$/p('2-,1l8<\s@s(MFL74I?-Su_-Z3Lccmh+uAngg7 kmlO7Ą8 ]nA/ĂO猫wpknਫ=גW.A-ײɷo./N¦#ϱ'?CF/zZ]\?~_.d1rO?˯K_6An}`+(;q~ $hϱz'=yFBץN|L]x>nnKa HyՋt(”ݯt`wXdh@M0d"ph*.VT8 q.f=}/|sch9,}~1<>nFﵐ=D*$8z$By g8҄dLe%WʦٱtZ,ϖ1p̥.ˎteiƙ!d/%̣5ifiI4IjZ̦6nz 8Ir&gv3|<y>~g>Jt<(BЅ:'fDJъZTh6QvM(HYi'5 AHR0i8_*SqNBC4oSz)IkM )>Yb43)mDTZOŪ9S*fW:Ԙ~ 6*ӳUk]JjMutj<Ԧt*k]zdtTXNЏIDZe̖,e5Ҹf|&aXԢUkb]V%-kgk[6e'ۏf lL1[TesMv\ W-aTֺwz \ᦵ=zW0,ЪVl/u7zbm>[j5lIp8'irt]?vpoLa\pk#x5cX̍f냴D^h56ֱ_ maּѹcЇYΜfU|oo_mTUZΫ-.]rʋaQߖǥ&jK_eSM5^Yt}Ayzui;!, H*\ȰÇ#JHŋ3jȱǏL P E(S\ɲ˗0cʜIM<DAJѣH*]JӧR8ЪXjʵ׊)t rӫ\SP׷pʝK#tYEhd La|l R$hM˘3kd)𵯿6^ͺ'=@}2[ktͻLG` 2Nn(0/УKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,swS=Ew;_/}` -_jns,o{ L_-p (9 L/la 'H #^'B0gg$^m9|\B%P\EN._(2f ]Ԩ̙pe|༨Q\ r::y"HF3ih<똗"b{b"hEf/{c!(C+V hnR\*Dx`}8DIno wY\҅%/HI.\2au&,7')bn޴e9@L:Gtn$9 IJP !g<:xvӟ?\e_L3ЂMBІ:D'JъZͨF7:Pp iA=*Ғ>&MDQҖ0Lg S)N?ӝ> PJԢFMjGQ2բNͩHj jUԮz#kI'!Tࡠd5IA: zàm}@'яʵ/q5(VRU}4Vu~jVUQ%T xe1{W֡xD*:Ѣլx8k`EKZhV,evVP4oyPƭlܟ6עPm?&їV C3{Pl*+-u]" .|K_^]nI:_k0D[~4=pvC݂6 d-y9`W%p**Qe{:b6ōG}+/^(]iu y}L mC&W0[ĒEqLYX3?c #T~p_'` Wro 1KY.D/ˀ^[Ld Zbv3z[}\$|_ŖMuԐ4zSTcvu9$zūkn8-kKWgڸN(dʚopj{U+:܌m3+*Wz{+ +UK洵Mb#+8M-p+b7"D/=V\!, H*\ȰÇ#JHŋ3jȱǏ SL "IL!P@0cʜI͛8sɳ)JD GB ZϧPJJիX%HցK]:JٳhӪ]{4?U0RLDz˷߿WlWǐ#K0\s/nLϠCK&L WͺװyNA_ cv#L8OkȅKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmtS$=?J7PG-TWmXg\w`-J3Mhݴj}5nǭ5rmxxd قw'7>8G^aCNזvI6Ae޹藗n靣d<:֜k}ۮO۪gӱWդ/ʹ@{>G/OOS`=i~;oST9P<ɓ~3<Փ[O&Pjv-jƾIl\>o !DNS;0j.Jot8_ ?Cx' Hg>n|݃p: aWŵA`!vA/y d!"!T"_w>:BR=z:,CCAІȣF9s$$xQi\YAQ&yL%'Ir]tZ,Yqm8\l"D03=֜!, H*\ȰÇ#JHŋ3jȱǏSL' H Hq˗0cʜI͛8s֬"EI'ST9ΣH*]ʴӧP+9 Fjʵׯ`öjbӪ]˶۷MR:V$ܻxܲ/LÈMĐ#KL⪍1W̹ S @KG^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmtBS$=?J7PG-TWmXg\w`-J3Mhݴj}5nǭ5rmxxd قw'7>8G^aCNזvK@k 9藗n铣d<:֜k}ۮ쮷Yton袗4۞+$"$xB:^uãіūP_LX?7!"PH^ K:`2xAΌ (GJ |b,&Fg븨Lp|$(#[c1YV&s,'GК[PmajY*&vSr|:Oeȓ<Ϻd\@!.ge}.ûMa;je2)dX<EOj%5tc*׽5Eh?җ6s;JztKlF7{@ǡC:| li~M{.67tfnU~1S N-p[!,  H*\ȰÇ#JHŋ3jȱǏ @*(0e,cʜI͛8ss` $[K˞_5ӧPJJ*ʠ1`ZUV]ÊKٳS6PfTيݻx9$~W,PÈ+^%a5l6ۣ3k̹IL@ѥI{^ͺk% 2%]ͻ ұ.o^μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|OOn'7G.Wngyoy;>zG~zꬷ.ny{_.o{ss=7_A?~}훎~k?xÏG ΀[82pqo^A= A)w{ HY[t=~h?O` W&ꖸQщLL ݰS'|e4Q3+8rώo4 )|}*b1h$x2NRt$$xG9p4] HAM _VN`leII|NI$$%7>S3pT)AX&.HGqռ]1<& ;InjћNgJ󝡄.Y8zFf%Ot$@BP4բE;QD'N~ =ͧQ:e@'JҒ&&Q> ,MLgԦé\P$vu!]PiJT鴤G]Rs귦:PTJժZXͪVՏ%_ XJֲhMZֶp\J׺U^ׯ浯U_KضMb:v}d굲%,f3ٹ hGKڔh,jתƵ+l1Z a=Ijgںlp; i_-q;\<@cipQ\Umt v(~LvY;׼=YS*.a{oj{mwf m%Kژp gc;۾rY؟FnObfq/o=6 }njju/ ZI涷K+۷^x%9p tPgms+X/$=W񖻜Iwٚko^p,Bx OlE!, H*\ȰÇ#JHŋ3jȱǏG@R0ɲ˗0cʜI͛8iV&= 4ѣH*]ʴӧR(QXjʵׯ0TR]˶۷p~LK˷߿q"8Gc=^̸ǎSTi!k̹gE;@ӨS^͐(Y> 0ͺ۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.ncS$>?7G.Wngw砇.3N騧޸骷~9Ǯ9n{'@3G8W_SzT;_췿w~Ϗ9z8*g/|'@9 |8 N\uG NnWr4`Nxt3 qk! A(֎>L 7ٹ/0.T *Є@Jn[ K%CXA!6.(t/>5:n$g8p_C2p}!=0vC pw:Jr s^H@~tVR"Ou2KO$0GWR, MJ߹R\1BH%6 x7ӎM$f4jb1\ 3HBB2R/'JS$7m)Ӛd'HOkz a ˉ1 2Q#vrd_E <:ҏ&LWjKntLwS?KqZSvAzTO^TgXXͪVծz` XJֲhMZVZp\:׺v+Y׾ `Xp5,b굱d'K:,]5VrM\C;\u UiQֺWm]'!T2-XI;IУW-p2~wUC*1alEhXyZ^Ūx5w3=oWS"-\0T 7o}_趸D}ޭHZԲVwK;aH]nSa m͊`c&v^/&.Z+-vmmM/^-n?! zDЄ6jH{FMf#/z7bzn1WZUXhKWA=+}KG94|j9rNvg:Y٬v]ǐqMtH򎫠\/SYm',oyKv3 }kC/74_1s.pl^wɇNϞŽѧKڑyH WWwmSNtK !,) H*\ȰÇ#JHŋ3jȱǏ= *) @`H-cʜI͛8ssULşA]ʴӧPJThKSVUׯ`ÊP̢U ݻxUݏ&2-پ*^̸\Qv`%?̹M1#Ŋ װ7أ`¥ήB 7* vxУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.>OO/o'7G/}Oo^}}'}o觯o}O^6uG D{q H ZP o;:8Bޭ%<;~0cB/@2@ (=0wFBWCЄ1HDqC`A 8AD9b/ްza X6{M|c麗;:/ƳB9"wX"ѸEь9L$<ЇL'II*VxO4b&o== ᑂ Z2S~/f.w;^/T"GiNngc'dt$Fi!.JMӗ))%YJoV24d4eVs^6Jo3?k )@ 6!:OHvSe!IЎfptf gL)OL2'yEwBhȘbSFўRn\!p "=3W(CRՄ(DDuxbT>ͪVԭfq]*IF VՎ ҔDHZֺYū@)毀 `KMb:d'+XRlR, mbA+ҚMjW{ZҲu-l)+zc3X RKⶸ=.rjYI6[Tͥrv׳F* 74&VkkkT73%H_]^׽0a+¦"UC?r/U0&`x_]N70g+b~=qdbߗVi1y x1`A*cAqlawֱhc"o]_8)hM,cUn2)+̬1~4A~s+*IFs,]0sqYb$/sY,h@]W5S=rLo:1&\Vz&u iGˍ0ADr -AOס=';ϡ1A=Y__iɥ5 h'1ǝYaK΢A7d}8yhnj+Ŋnuh)W71&knGRqFF3\j@flpqdM.O\~gن@ǻqަW=fƁa?HOmt [ꝭ:ksWS[{}ht%߶]!,G H*\ȰÇ#JHŋ3jȱǏ|rR\ɲ˗0cʜI͛3TAeIv"ѣH*]ʴS:bӫXjʵז:2E*C]˶۷p=7 \U 4߿ |4% ǐ#Ko(b̹ϠmveJ ^ͺ lpUظsͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧OO.n/o|Þ||>}gw/Ꮿ|S~//~#?|k]G yCq5`%3AvۗAQw46h={^H@0dx ΆS!op(; A$0K4)щGd!"eٕ!8٩Q1aL`)>~s܏f9vnry\T#o泟Kf0X_NqK_._ƿV4ckJrt5-YCҠN< jQ#ZDC?8Yի&cmhwgκǖnke`_2׿53]\vGφl}Xyre]nym \p}h5ےv)7:3玘8Io9m-iuY ofqgy%s)σZ⡽Eϑ^k/|P{.u qR{}Xzsvj],krZ훆;f\K7 !,V H*\ȰÇ#JHŋ3jȱǏL P E(S*cʜI͛8s)0S"HbKE*]ʴӧPbBJ'2 ׯ`Ê2*SQb5,~KݻxkB@.ʡU Hy+^̸1YU6 (ж`츳ϠC/p ) @RE˞M'=@H}2b Olȵ,@cKiV@yسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯9So HL :c '? R 7z 5(*&l Sxds!w@P>$ O!Ə DbiC&ωbH<E]] F}1EA5QV<HG9Q[|_=>ycH@o7Zp\@*HBZ򑈜$1yDI&w  )~`(HF~4cexIHOl%A?EL")K] |2SHeN!z|4*Nt)'2p09N8e/iCr2I6s}4yHk լ4YRK7LuӋ\(/'r~tb;4v]cH:EnF&aE)Qqb4- cq-E'? ޳,MzR<0ZLeR۸ԥ&4Sz_A7VNQ'(ZUTv&ӝLl(UMuաIK *5a k?2Q5;ȏ2We*a'K*vEeǘIw 7ZдT,\j "ħlG8[4~; L`J pKMr:Ѝt[Z-onUwKMz;}u+_ҷͯ~_޷]gw=q ] 'L ܝ4Rj$ߎĺD?V*!DbtxF.qr*ME*\b)S9$Rbo[ƃu bVZnjd Afnq uwkg>ͼE2pL6CЈocq|7)pyѾݰ5}a@>uNv,W Ը5u}\Nv4]LU.ӟ5a\;گs]VZֳxj^>FwqU}HaMJw]V5լ{#ж>]T?yvMq^[mm]d; uET<nkOڎp.x+D6ǩ+7EK>塃ZUNr ye>=ִ؛sP98.辘g]+}Upm]9Ϳz|kU{_w {}c˾h<4gɯ.b8ޞG1hk=ߗ\򰏽)/֟KzO]=`OGuɋ;Ư};}!,*V H*\ȰÇ#JHŋ3jq#RtcHH\ɲ˗0cʜ)3E*)y&NS XѣH*]ʴ)Ûv:uu'SjʵW7O~=k EǪ]˶[8'w *˷߿>;*^̸) y>̹g- MP*~^ͺ5k5]ͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TR7]YeXC_eCa49\YApNԥAe.D{Y`}y}F )n٨J旗ɦ k T'DXbE]^i)el^(y%}ϫ:*lR⚟ DX%Zi^N}FZ3jD:첱*+Cn:j~{k *1ﰚfjiØ\&\,jFbK<{<@q[s9,4_Ɖn˰R&2E4F^:f7M;lp m3]+dsUtv m.DϋEk6ؐ/wj-RAҦP9k7SUڄ~LSnQO~q|t䪃c!g_>;#UkCO0;^zJ+Ij厧4?O;9=~[!Τ@2%-s@"26v-x+R Jn W(s!`>VyĴ@І%Hĭ/!ejX}KZ(ēPZp=1r ċnTSe4jktJ.1 gg,#~ǙONHqO,dL0":/9W#׾@J:4(~ #Vt K |z2e-rTTdL ܶ, LYʐ%ss+]s- eL( lQt+3t٘c1da'gJ +vS#˜, sU@{n$ _o yZӡbA/Ѕi;EI5hE*:)=ѧ%jS" 2 ^NwJ#[9@ PIV@EMQ7C1pO=Q. ! -WiT!fILVq̤7ԍʪVH@2lUCEVLac]׊pi&mf‚iT$tU3^Su,%)z^f*Np,MjJmC*Qǵ ݨm3˒J-\W Ť mFH1tYZ*w&_ܿh 3GK[VsF\W &>t.njb-<9^!5$߹׽. Kf) ҐU˚U-}MCzQ|)u;^wj5ũM6S0ΎO3J*RSNaćne1hq-goD+∽p#]kW"w:1 /+Q7e!yԦ3JFb1&o)O;'EҘ*3N{:M-9S%<,W mhq :}+{׻eB\Sb6ųm 9Y[́3QT˻JXrY[d%,}.G8.GxC-r[t="pZ^ﵗo;7V_ 熨mb\[3f=ܖn\Hko >|S_p£[O6qSk|yF|1r{b-b9eA)bxy S"X&x^s(t7zC09T!tuwZdkvJDuL7tnYxIfuYVJw@}IX{'ZET%vo&UGjG]jpFքGwHHV gyhHVMTHdי*ڢ. SN:[KiU yrjCqD4%U6x{Ȗ 9D7Rt9z>wm&n6I}WjvO'h,tyodz.y{8} q`m ě<5 eȨhXIxJN0E&Zוɉr9*%S8zKeN-r9Z i>i5G(V !EjGE W(W#xʒiS*yUb#fikȩrʉS}Iڸ.ljQ;q۹@ [{kVj>'t!! 00S7Wc뺝++{ڭYCu;[Z媃6f+D嫼{+˒I1̺۽{k\;{UPB !,2FV H*\ȰÇ#JHŋ3jQ t 1H,䃕0cʜI͛8s_:IV2hşC!4ʴӧPJS Щ"X5]ÊKY P:*) (-˷_\p볰aCKǐL1f'#ϠWlK?rͺP Yv_`Wͻ_P.~J8ͼУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tքECXgAz~YcdThPgaPᨢM1HJg* )@':_Nii1ť6EШ*$觢kiԫ1d)}>*lA*t&/}).B:۝ ,һzkWq7[-ȭ1<+ ,Q;3c^ Mlڶi'ĭ.o75AS llB,q_G4cۛ-SX1oFY]07h֓kFǽ-8_$i·OkG.秶dW.g˹R#m27֦+PI:/Cf':V?qxI?^P;t{͒^|XP4Wl3Ϗ|7r634w|5~G|;?Tchlq{{Ⱥ1%g)f#@,n^K7J(L ī0 ?p^r! !RCQv͍JzC!κa=yMτWJh£5&"#Ϫ%3H1\BxpWL˜w=QlgxQb1jTŅQplcIH!UH#(Xʋw"+G1_YˑmLЌ4wFZN̦6-JmsJ]MʼnqqxY)rz4'DMwN`zg3xNDJH=ӰmMs)< j6YT @FF钓Owfԣg;iC!ԠBhғnTt /}2)_&PDZSZX_XRjhA2JvիbZ5"dQnqhE"1y)JƕTYTXQ G\GaZvzD-;fum+E+>$&)5ش5Rdpd#)/ʎݯ&c]8Y:O 0wtvAzgm- *.[TL'6RҘδUzaMWX2)r6һzM_+v&bC2d揭q.Y"aC!Nmk_mNO2٨=?Me1{z=hvV~鋷7ƞθ{ arˉܐ[WOUvNJg}iee)?s9咦k' |H9={Kg?swOi `.'4c>4]dn/W$K8-ԝun3R5ZLnUH^3yDzU{۞chUxYd:ܬwe#? [ItrȀ~m(݋{\Z~Xe}:'|o^p]wQq9o~Uc~4qWqzjW&#w*,%ׂBt`i/Jpj:#TIG`Ko%X'bvwt[CgvwUcuL]YFcG/4'edFrva*UCg87Uc}U@Zwikŵ2'k&xcą6x=_A̳gug3sexhPOMvY0`08"W#Ҋ{&[l R|i(s:-}q(qH߆~VY}(5~Qq<~'}OxxRl *cVEY|A ەgX-X@pxxU LiscDY)oNv_EFxrt#щYŅc'|JVR%C[S8uX5^ Xׁwq#5Xi ڠԁ:a$YIfP Z;Œ$J5!wAc8it(M>9\17RV)D9Fa ˆ,r14yXd(xScyCS|{hcT(=Dw$m ĵi36/*EjRIx245]iGx>WeO;4:ytlGv:zQ ۢQ{{6!J fiKjJY'yժoiR['84ޑ̊EٖnG "nrª빗#6jjCMbGpJ#4zō yGwDd+:{k's )bHzN艒Gn:Y [6Pw7icu {Wt]1ۥ4Ezg땤uU4Q++y:秳6c.JBXiGu'HKfFfY=rDknʖUGs:gZSaæq/{Z17v:npITzt dꛏZV԰;/B{꧙؀Hi|š*{ZVۦ3KiE[U(fTPÛlXUFgӇ噝m L{BiJh[s)ˣZ㵣M h+Տ۳уi%yulU L [x j 5Q%I~J$XQ%آ'h5ڄ3Gvg1jk'Pקdz()/[f\dGmf 46'\{Hr`?vg3^sk7rzF+yn۹؄nぁ:D|y<kt|x̘ǐA,{!ȃ 6 Ȋ<ɒ\>A*CA! lʨL<ɏȩ0ɘDs?'LHʿClmAQ,ʓp˓>Fb,˺ Q̊a1 |,|^ƼČR!Юl\<|yV1,_<@]t}AyѓgQ!}#- ˀ-]=, OEьHp=8}}X ^m'Țeԕ @ͧlr-[-s!,ZV H*\ȰÇ#JHŋ3jhJ p)IH\ɲ˗0cʜ1LU@ ͟@ JFFU>H3ӧPJMN|1֯`Ê[U&d%0MlʝK7ՁDԧ޿ H୿SXxǐMߦ3kL*[6ɔӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8X@ģ*@&7YБJ$Ag`DܔK>eAdPc_#a$dVڶ@k*@]z٣aYu҉f&dS)Йxs򉛟 ?S;I'_AЛaaT&j%Aejf:&:םyflL>.F+w:fm}O6Zз .lgaPᮺP+лRS&/A.2}&#,*$B:SGLYO' gl`(쏥l6Szp i=WrDodL3^_Q;rUs[;0[{u]akCh&ݰL]c tMQ[xր78yWn9[#mj̜F.}py聉-i? +l:C[:P*ʾjԬ.j;s)/KiRϖnNAo/X'Ի#:T^dXkT:%ed!+]ߠT@Z٩V1zqĦy 옖6§ /`8 *_fT wĒ)qcHXXmO#G6,.m?4J&?1amі;=+o}sbӢH)y.@&jHӚ߸6F2e Dw"G2b,6cQ w<,! 8-m"H_zdT4KfH:&22{pb BCP""ĸ6JR&8{NL2c9".ЌgBifQص?镀6_@.v3qjLyJ,NՊxsgKW?r;l%(p{>wPrTCf@%JP T}E_Q5rOѳѐ+ڛF#VG]~qLt(OJThHMRB.. LB:a6x-JHC8d+cI|-f*'B\kC>.J~JX 1#տ"iNc9.i+ [ZDbj8 C2hU+g86n1mYExIfņM=HY2ƽS;ʁ Df}\rXln9L¹pTwKnMz׻qql˸2My/}c*SQ3hN9*7:;< o40O'|Gn5 DQiP; s'~jy% @I-0[ w,vק6dwP7OY7Dplj\}ZMER\e*IbeVn-[&X4߼jN'.daQi6'UB863jhC6. $d:D:r+Lދll[)m'ܪ3~KO'fxn/[nGekUKfeЎ"zMj[sԺvlmr ;M *39~L_~B7ntq:X0+Xwwx,.f) rsFUY+rAۮIlM=(Ozr+4+埅ُpjnqSf : ^=t+jg6loކo'.ddB?}DE4B|G1"Eժ'-+ߊ(l Z{q&=VSzD8=ne6 d;?lG.%2׾BzEkKloæt]m7wk6>ݖiӾwOTn^367E>؃(T oÕGlW\+lf0W>;ŔT/H֞`gxl/Nܧ[w+Fq'c63G)gT'}җcvr Gh"73v0rr K,Ael1m5e]F:׀gVzcbzRemSGSbj=ue\G_g6u5xBf&2Y7Yw^K6RbUS>1ohw[vmKypb XUt['bFlyS3y5]YԆwFxݴk}:'\W6C(JuȀ,odœRš gwh;dk?7XdYgcJ*JeuY :=ڣXw*4 PE4֥z{Llق&Wz*,.+e&11'Q8;UА xY;˳6kG9}H_Lk7KҐ }_Y[7;& 9dCSik˶zQKƨ݈\۷]!+ ayj[_ѩ+~:R=>ảKxA!,ZV H*\ȰÇ#JHŋ3jhG8#(S\ɲ˗0cVB+=Yϟ@ JT$MjSӧPJg T%z@f֯`Êk思d'fڷp%:3sC޿ 8εyy;ǀ&ś-Rː3kk,k"d*zә*l?rY蛾^ێdqS⦻,}fBT*r põ[dARe&,!tkCm;EQ\?!\ʈ<*A0C%@6eF[JiPخTC|4IҦ*AQSU#tA3sʹA:ЮfU#\Vnqc+U3xMg=ع'S88ʕg7V1mw\[4}^&ewRYoW;~:`:$&#dyC^n[QP }=C*GL}Z ~=߾ѫ+q翕~Iͺ7.oNr)dxzVB|80!bgqR 僥$jcž!.|5xͫIC[DM6%ĊTlwǻ,a_2lы_[TCi-k7[ֶvF4DhJH"3 gJ51O4[ g6%mO2m $YGH&D27F:moP@6c, &.Ol8C,LfY[q2,if:53Ijf@j nHԦSh=iv!ro$'K`^Rd$~|'J)ßHYxO`/4@EG-B5-D'EfNv 'IUBPnњR"Tb!9SՓ!:(C&C QaH=*lzHf.[#-w/P꩒.] fmZJUxͫ^Sa:}_u 4lFsIBfX1k,)㈸_q.{vٱThh;]QrjQNa2ekv+ґj-ZueZ*VerٳRpT,B xMwzv g{%BRoéFpC+i|)R}YRZ?6.%~J!عSC;RVt}nCt\Եe tJ0P+ ^ YIKgC‒Ű}Sr:UApػc[zjQޯ>Dk.'`׌'p3K+M9v0>ͺmX {[9ږnGro!l7tihK#:k^4B[NRa>gMjϞ t9aR9>_4Mb[[Ʈ/9֋󐙂ꖱ){0PB8΄uDhF\uuO&JGy.AhCxzvX&6Hbh[Zkŕw4zx&yf-8~.*axW5a7wukkjV\X;DbWhiuIOibszivŅuzzC1G؉B{D7.=|PFlÇDUmwmm[}SSn8FGdWpcE<=&&{d]kyvk5e>uJW2't Wao(O-ua$HrgcdKvP=Jg5$WM\*eͷg2'e5sh`8'8~7䈿P_&tglƧt_h 9#A$Yc&9hIyVXh(qx^m2uvXSnjz(hB],9XFp#l(y5yz!B}\wIy(hP,xIM xfwדJo31iHzLZ؆fzI"~RR F(֊ibc|R;n)@XeؘηS&F}~c%|c\sxwV7 )abbIHDzFu42FXȍ -qXFD,Ē(T[Ipb&hsD} *'Ѓ^7hfnՑ61Y2#(DџƄ>Sgt5JjK8\y-慄#fIVwPyxGi)dh ňyih[K1X_ĢtJJW4l(y̵*knJ>*ukWzGvg5;T }YX"Zj\m mxlŷ)@F3"!x>wF}ii&D`fb%):F2-P}xHFOӀɧ_Xُz:ɕ 1'zA.7-i?CJ*S36D-T6x4x٘كҥz кjgzd-SJ`%]p)wYHZyZ]:uhldh?rH:z2J]fJ[(Y6ʙǓZyYC'溰D_x8xK짉6"K05&{j&Kbh*1kg@P5{1 г:x 0 x@U0 g"$UG,kQgx0 @kXkxе E˳PE*04Eam;=oG1X+xK0 g ~KSK~(S0,cKU+v{y [+ W˸Yp Q+Kp[鵷z۵<{1qU`1[{;b;K0_M:K{n[q[+Р`;bi4˽q{^{D[?е竷Pg~$۽+o ų>a ([k !,*NV H*\ȰÇ#JHŋ3jQc  ұC\9cȑ,cʜI͛8st @;MV!Ϡ!xӧPJJR*pV=fJٳhJZ%P w`U˷߿-eW{!ǐ#md\ϠC94ņțEYװcnX%L V^U6pȼdãKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tixMS ԧ@X`aiSA ?ʐBH2ꏦ)AV=_~"j*骢6HhrHkx++ª_"+aџ鬆9*ʺmk覫=hU (CknI/6ﵨ쫮z0 qv{o$,0,4O)[rIƛB .毬bmvx@2EBJ5lX(0Ctyƥ\pl+pgg%{Pخ޷w~JɇwGϑWngw7dN&ߦWJx_Nͪcn&Uo,6ʋꝴ^tޜ|Z?eMLw/o>KLW?uѝ'ۋ:5FH?۪}6)|߁V Xv`Ks^ɲ-ho>e O%[!U =caЅ_Z>@ H"怅#w?ɯ[WJE\#6́B".8) Q5 axF4h[sBlx̣>CHpZ;]) "}Z-hFe+**T!d&IN"oK(MI9mglWVN=,9KZZĖ2D_f$0Eo#IjZ̦6Aʝ"V}DUϩN.$wt$; :-^,d[;~Cnzp,&RD'JъZ\gB1>5~bC)Z5UdlFG:@ Ρ\噧_wͱy덻 ðsʽ9{hL&ѐ'MJ[E+"WB[}3zzu}}\FjҀe)/Z⯁0@/9ЎM4YWleζ:/zuX 61t b/K^/%|g/6mtj\]g':SSwi~cRڅ7-C|],Eu Zd97Fr8n0[fЇN]x6mgKFnRЭ.ϑ[&F9ʗN9! ֹ^]}&x{4/~PUj82ȅ9\a?"NH~/y'z/MtC =ATa8H z$>$A| ?y>"O&d_Ly/?vߏ >Dž~N2:qwz ,H(a}D(7"{/@Aȃfj↿9!a! :IxjtWH=(x4V胉8wF%${x`x!J}IGx<'ՁxWUc7CX&R88x|t]hwUhȍlXtqhxz!,*V H*\ȰÇ#JHŋ3jQb б* b˗0cʜI͎)R7]B gУH*]ʴS;HT#>Vʵׯ`_4а Sr۷pE:v 9E{ LVayL堈M80SL30P M~@c)%Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v9!X@d&4CgiSfAlI^jVצ)dX&ft&y}&t&Ob蠍@yУk:t a^*vjۧ"D+Iiz馬ZꫬꏱT@Fjf,l=*:*&Î +Җ{Zt'p;,Խ+'eِ + UvƲu,$ǔI"Fw|#?$2):L/<+3\44B"4W:o'9D/=X&aAO沈k]tS='omq9"BZ}[7T9nllТ2na^5 w=x3n7L pkJgpK=Cko쳧Ӷ>\Cu??ZFnu51xo+sȣU+X`w$phڎ (yUj,9g\!zޮǹΎZ-\ APd#<޺*K^ఌx wab.V`H2z|3#續 jt ~g2i+{yU Y}dg;4BLw?+yr ]RHڀK!,jiI!ֽ ! X;َtY eK*)CNp &iFDhSMg.%:W:vhfEic fv{jD<,nє07^&I#+; oy'7zzxg~h|@JPsAЬ*TazP qc G@ y*AK= h%j1bJUʧ g1;8)(:Sִ;A W`P*Ч-UvN!nNהLf`Jֲ5JYȟkCV;2+u%^K5f h\ׇMk,y8Z7rnf"z̏EW:ʳT{*UfHB 2+7ZZ lj)y%_6Ln2&ϡ]+' ܹ5nzL)ZۼM~b͋)}{&I[wzMu=K2aYԋ~Ki|N–q0Cq!*e@jW$M%BU C!j5ݕJ:Q8Ye4adj`*'ñG+Dj8jb$q\S;UIzX:VCU1:VCk]eyk9xOZٛӰi n:sWCϭ|4;ƹ%gVJtk`tۜJ6-%p!ӯ*(,^3E/M;t}9:`&XLlL]o7K-ܺ| zvluy}JAQXy.iuWYv/L/֓OQ1=p*N/0E8)E' %K,c@+?\LbxW5>rك=e{499F+k1\67ЍwWĠ_|2m/طg?{7ChX4{~}4#5#ugh̃IYmhr2~Zj-af}nVsՑ-Yc]̋a |7ǖ|6ޞnԥnSLv޵mvqio%wIsy35v?ʂyq߯.ߍ.o~= G]:J!qxggaU~tagrاuGbfCF`Nw|bser#r%s4VYqdiTVxGt'uc@q8BYeK7xE5OIEu€eF[u"'rR{afx7Rk7VxXPpy|0gw'chh|[oG|!V{ qXniyN>SCyx[fx3oy3[.kUy&Gtlӆ5|]eUy:\5z1yxę~yOou&^חKvvq2 3klH\܄WZ4^.xVʂ?}I^%'zFvK,QۻK۷  :ajkv_ G+A ^*\{ <l, | ;1 I۽݋c !-/|vV`2"{&KX051%*+|\LNL2<5 B,?Ħ?d ֏XY'Ky&Aw& $6jZ@*曈JEudQ襛Y&X,JƩzb2Ai+I@U|d)vj(Msư`I0P,R+n:+oWti 렱bl얦~nNJ;mLfbl(϶)0jB3b lbsbZf%VK3]$KSZ.CU%k6mgSG6UuS=P ]Wgj7M*Z_+b=-7}p~wCdj- 9?MvW} 5k^3.uܛ)7MI/>l8;E^/|v#T ]ߊ|[^vY,~kwyI_UCz3v3;;m˾Beӝll\nu9b`L8YS>v/Z닠_Bj`0(FyhYRƒ-T[|>uP go!49OHň81ʊpY4v-*zZH2BɟШ 5:C陜B8޸,ݹr8-uar1obKIȕe 7گ(3I1wD4't5(gH1lUbmrlֹ2%l?AARL&z7He:DM䨏OA%5)Upz[~S3)MnFt=Jht$!+"@DϟSC:?)tOu’-s2B3P}m/?+bD{_I iRGG`=$iE),k q *J$Y;F/vt{ih7ԈrkSrl]IʬvmR,=׶ź +`dL2U.MW̆jj[hz[f\*_(f}MzIJ^VIAkHzԂmISOA{*"kPd\g(Pgډ %^}'!\) C R6X-%˹Aiz֌ybc>JTy\[{b*:bJI2SXDӉ>.+t d5.Ћ+FVu4'!-^Q%`mƙ%;E:e ޯ}dĦ):Ժ=.f9^.MVq96=n=aF5 %1[45bYizp,KbWҴu1u^N!Mz߆^=iF9m8$NŜK>ٿ&gz®}#SJ9dьbu<i^e!Nt:a/\&뿫**M4@ΣpF)w":X%u,GGO fͮ3:Hf܀KwFuyγC9`?ccgR~^c? '|M5~QWbQ/ =5_ooa vkOZߡfog܏ϡ\lO&wײ#Q3Ͼ'{ ß ߣ̓t[hI`]ז>]g^ rG[r81b$sgVIbh7@41ac(:wsu/suVdeHrIe"g%gvhB"3hئcGUptvBrwagg1wB+LH~^nb8d(Wqx=bpF|z{;$eͷG7YtXrxzj{mUz(y"m'|7H҅ŵz[6[7Pj{,z~H'zjȇ#|-kH՗t`0hUȘ_8~8gv~o(Gp5[xp2&e":h`-)x8-8E@Qt@+l=sqxm^.vHBQS^X0c=F>rp(>,!d+tUoXw(E#&RAEfGwtIb8YTrShvVYEBYFiojxƆEn!ye,yz57jw7[LjBrI{wnXfS`Uw_'؋ŗYa5mNUćLJDb啎@IWؙŌ8E~',El`Egނd'y_i6v6ti$,Ix~RzQPsP'7 9r{7@IFD;h i yS ǂWDIStTXqQeFZ֑ `qa~C")y|1+y}yfŃ_Xh>~x WLTIWN>P%8'xy6\L^14:F ţ|o頝j'vYyx[zil IڕsFږW] b'IƋwRJrL9vzl$bcb}&ꍆ4IL($t}82I4 oc&vOj&:#U1eSql,uZ8-cSQ%@svRuʩx8^:BQS=Hsx~ƕ?T?9STc93u*9-Vt اYS؛Qڭ#ZLZKuS`СS ׯ`Ê?c P՜injܻxݻJ y 7nHh*^̸1BJ*븳Ϡ}8(違Zװ#[ ؠբ,/˱ yC8GspسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|WbB4Ꮲ@thshB82ZSL!Af!iFj*S:?6rJ`z *{줅J[RH:` l * ,ˎKIJ+kc+BBJj6L:Cl IܬnZJo#[j'ǚr*,0Ӭ<@-D j4}X74(Soys"ͫWWin5+ؖ:O ᱽu~Bq͞R=~{V+ủ59.sA9ykt.褗n騧^KlBSmܰyAffjmھy}^|yM&/lҏx _=Q79ߗo觯S7h"2^?cb@V˜r05U5)ډeb(KcÞӂ?Z8BlVZs)f[h@ H"H$$I ! Podaw@rbd6Q+c`y81 jHN L ) GY;41*2P5I0yfm4o?cA>π|[u.jx-?+bW!PHe5IbjuM\{ѱTٌۉ"v؎;bqY l|թ/U DDŽMQ}م+EN4;]%=B;a;.1nb'[م6'-w[ԎڞΠ4à+=ಹ3ptgf-;!vi㮰T-ņz9_/g7+Lt@6C"p/Pn idI|%ms':Ҧ3\;(9ťPh3 _73ra(U[IRW8tH更ȉi(n5ˈnNE3Mcgu<^bhyōmN88:XzH~Ѵ3 3sh d#>I[rO G6unn Z9EqֈT)z(iRA a4g{ q <z{Jr/Qy͒:(DW9'mwGh_jg10(Z:j~Tvgoǡex%J;jUnX`XutKY]FZ!EV5+9yU<N I:V;R'&n*@4q*%ʤ*x GgoGEZmG4rzc:#Ojvo* tYN{m!,*V H*\ȰÇ#JHŋ3jQct)H\ɲ˗0cʜؤI2RJѣH*U Υ?n իXjӭ?Kٳh*2mBʝK]:y߃ |4ÈJǐ|jw1Ș3kk[LӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8hmZy隙6)F * i>(Bl:ۜ"ʪzRvY&,sF+mS:T^\j,AƹDd.Z)oABvYi nd/Cg޺dj~[[Z+^Y}*t0 ;6 1sa/0#N%~@,,2B{I!‘N>KM]\G;43EP;UKYoV } 6K$#NY}Rp@rS9JmΛP|_=ɀ~ky/磟{樧E)O.vP#T9tm+o5;E⮉JiRj)tD3;|J_=T@jO[Z&T 鰱/ރͥ2䵽OUTwM GYs@VU]@Ʌ j+UWPLv2leS`THY<wVe=!{n7S BI /ҩKtɛK$1}#HL"M 0`OtfxԦŖpyj Xض60+׺DYPיDv76rB\$UfH?>bg1jP&9ђntC%qgS(6oMr$"*+Ƀ$N}WNt" ^F%K!C?JQkn~Ѥ*-, 5> LVSԥ mO*TbS8Ak*}jCZTBl/\ JֲҮYfMZڢf~IBGU"Kiѕs"n. ['4j%8i$IeNMu=+ͳ jRd|82"%\yՖ-%jhjve)#>FЎ4-yޮ¸z1AnGf6,SUKMɌn;}Зqr7E[ltGʼnN!Μr\6<Ӱ ΃#lFE)=NTy{b57 1>WBW{pi3t&FH%W&4(7<ѩ._2 Pdӕ?+wM2p;GΧWTmDGm6N5p~|:zׁY+do ] l]v).6-l3[5pi3zC}ܧk>eӚVeVkAuIdzaw[4Kً}Z~8-)K˶vX/ m~o\f̡ۿ%n},7O;mН_|BY~Q翝38/$NJʻfBldzT}8k&kԩ ?asRu`)f㑓;5}!ױUWƯ婜@rq7RJό[eKW̒bÿjjk]汛hw̜ÝvqE[|Ӷx&:݈v& XDK zPm_wZ"T}hk>8V01ctuUF).6u_L D+ɖ+z^Y_kͽ;b~3Ӆݼrռlq|5r߻v%ݝmOUGJVc^uW4u b"rMV`l?sQ'O%g%TWu6rWw=us4bhLA%bsld T(pTtett''5u;rTfGFHveL؄NXk3UAQgtg.ÅiQG$?Y+A|z Ilc9giyx:+c-pqwlw{-$}.J4$xk`&3]8ֈF qm'Xs[n%`1laȵnn\G){x(ٗMޔkf8O_`z'̘o ֌OhȀC"j޷0[eR7 Ȃq1VzlրrDWQ3LsA؂ߣs:[1Sdb`(9t$ue"C؏gV"rQuE}X NK$YRtGv-e5-U0*um )#/iD$kI 0ɂȢ%(G3G/_QxEKP֋Pw~KWx:1+fGt5GQssHd\v+مDmC2I%)$ 2si%i˜f۸Yb/X$=5]IUj;=4Gc0I#ȩ'KYsss62#_)9B.(4{lt#~&șJa yY8#1;V:f7PH^a&GjtH{Vo3&C^,g•h g]6F5p}|bW_w &t_е헉L:7['T%*/*Y{*|`1Cy٥OE^\MX%9Hza(]VXJ OZJ+j,R;Ӈě2Eu8x^MOI}aHTiنebzcEq~7JתdžO*}ADcw颼V]eozj#7Ww(5W,٬C*Gj jR)WZ-}b6y8 ZHSoZwd\7"GHbx98Ib 9zi}iQ;Hh{qǡhg = 84|cc樨Y`8t'j/VVA꧶ĦڷaʧH:rBWi{5q>n\ ?6~H+Y#|GF6beY\ >x1H`i:+ۼq? ˇhDԻuYS!7 S9;Ji1'|Y9 %Hk,vj]D&D(dNj˩u٩jY]rAذz$A LL^<ݹu9L%y !\&,yx͹15Jm*FsP ™h/%"S{} Xōר\-[dӯ+ Nq챳p2*:sîkCkÿFzl}l<njpKF;=߯Vi.t黶~9OA Hpv%qv d |WNNZRxAy8)OA0J{ ŽK`n-vH"HL!dL vQ&=YI` cR0.pgg#B UΆsJꈡA.UY  R&|+wH*$'IJZ򒘜5I YRꤏW0JQ*2cwJTd2c(];~@pi%CrEl/IbL2Yn9$ p|#'ʗд̇. !Cx+,$O A.g[Zՠ?ה>x^y[`zKWMr)CDze$z%V"]uļ-mg[ ɮ$o؎{J~M ‡²&>Mv{0ll6X!\N;؋z/HRqu5y%]BIn.'O3 Ѹ>DL!^ik2!NjJIecSUw 72gɿrY_r%$pX]+T2l>Ђ-3_Yo\04#AI2CAGϕtEJ"Kǂ M ZII3dW(vxVm\]Ϣ.eCk:Wx̩S lMU639o~1 pOmlO$c546ڎl8ex_{F~{z_dZl.-|_イ72caUh ŵ{_,"Q`.^Õc3Vopq87vZ'NSqVhDuU(YrXT;dvew}8?6i_EXx:UBK2OWth7uZhiQ9H[y{Јކ>Yhi>"lW[Iz_ i=@zF"eb}86f~miT0 lx[؋qH)?(6XpKYVy85xϷy|]˥hDΨhxfK+ agiXwR@vN+0oۈk ȗHjZ؄yzȑKa QXf|va6cjl Y9hL9|ylho~ WSǖo2Xn WHXBryIv.-{AC٘bq֔Rդhٞ'yZ5g[g~)p J* w;eN89Bw{b`;(r zؘ67<Î=d㘙K8$AȄrsS0xe'Jj5Te/CiJPY&ʓyGCsɚ0xC%KY(eF)pzftZnЩZe. _JȍhHqwdn<54O,T g6`l ?I8(=wnV4MxzTEƇ=NE fWڤiؙHC=N-cYq:ڂ>ZCg(E URV4جNyAʃkC{ٚf&X魶YRv=_{'dgSldy,֨ծu9$7K~I7jbٯiu|}T)6>Ri(PUp.*;3;.<&!^ѧ5[7 4ѳ{y/=+]1;*MD3a/ۋ= VdNc[VRJ0.K;Kj Br^۷PsS˴yvHc XK{qw{sޙaeck]涽NV!%XU h[' ר!,*V H*\ȰÇ#JHŋ3jqRt1H\ɲ˗0cʜ*IҤ*8y JѣH6L1AE@:JիXcYEgVL"ٳh*jhZeٸxaJ 3E+^T|H0˘3kR}Ө6]԰c˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L AiM*)A)%AOrUV9]eŘa_:@jfp~I%`vyj@gNQfk:l騙.JgAƉhEyСZ ꩨꪬ꫰*kfPtzګ|IjA*lzĢ5桝> m.;kh{'WVk퉉2:2ZMNi.z`6Nz ,s7gpG,WlgWFqzJ%1)'wI%-s-/5sX. =cAkg=I F 3R\w`-5+/d*ni0_KqF,{(=SWik̂gg۸=ޑ6=9oktlonq5jI:ꬷ.N/bոW7|~o 88sf+f>}gw/oٷvb%f6B28XƋZ̐G~ <˷0E*Ҫ ']]΃?5{$L WCߨ`8)i!t 25P+9SxTy"7Cypי⎅.z` HTjS+P04OjJ;})c _bǴqf5)9! y54e!ڨ&E22"$bp,CɲXy#7汒񇩄cIZ̥.rFdpyc$G` 1Q2g\lPJ1<6UvMt2x`7AT6R^yvv#ay'@ekYyVO6jty҆"ׅ}, Zrj`XwgU"U= 7aӊԅ[BZ.un|+X/g -,5|Q".gLc!IW/#usIT$ykYv@lx<t(^XMLNK7uW .g G6PrQbOE)nJKR04\ FZ 6gNO no%iWZ?y;Xri';d] UҺIkɴ ` dq@)Vۃ-6]7z^DgcoZÙYe!YɰaZֈM4Ҭp$)VrڨD_fj 7и+e/٫ds1XU[].о s![I%o1eƛiKtو{$!ˇ 32j[Vb]G9\y ?M&s}s]ױV5( epFnͽZiْ4vp,e1OkMgP(vr3^ݥ{[.گ*@ȿ}ی?;f=Vyܦ<3~Vv@we:wfMoϸ=f_/\6]^yI:7"ux95GHq#Ξ!71ldc!L??b?ߛB08%qw<naaDvUfZ/'ey6D'\hjGF%}crj'tz]|GwuXzgxQ)6m+({sWkGF2h4ZnC8S;8L&S\.(=EoGxs6Ƅ=T^^&&f*8Eh[V0Fq8>&fPdb/Db|U}&V0Ht}0؈ (v(?~HK 6IS8gZ|8P)v==XK XMdž`PzVTiIԀWfxe%\{aHh_iuSa4hDGvXod`Ds1fvE^%g'hȁwGwjjv8uJT>䇣1AiAňU7diU.bY&!6rrLHE9F~r*q~Ԇc&#C0Exwu|bX}93LdZwtפmNh"slZ^?w}i9plWMdv7N\~Q8k5FvWXLٔYW3gߦ+l>HfnwDohO^œrjwi"x‘ٚi Ѩ'g~RrGRyT,Q0-}LSnf3K;9_LݩHƝ=GPNjVGN9%論YfFTi(>^~(MAN0fRy2#$mJk-||'2p\`Gh Is\!K%HRpLOiZtKӦ*jr{D3ð^*M Hɦ˝jVJA,iӯ {aӉX(F͛cYɰa!_62B,j"/&mcL^U4DP(TD%jK ꐋ$.UR9ԧ?(u i3C'=N{\G3zMl¬@zl&Gj^j B)h^We> x,S|9 {P=XiV t,}gLc5vռ?E@پY": OFfS,`HdHUtʃs͕v+.-P(_5ڶ`W2tNGWVvjgCkG;`ZTRu:$[^q91\5SNU%tudݥjm>Ud[t>]Da7b5q5|_Bk`cfr"z %֦^-FX?g ""ʕY\Az#(7(eZ*E4H^>n,vac>5e@Uke;<>uo>6wN|fcf]FiWb8i8[fHdHms_bO1b2\]u4чz)m.X'no4)tt;ĈۃhQxx)RXS CGX4k(j%H5A0R'db+n۷0Cw_tsdZ\Xi؈g8UH "5@/'iсXx1Y @ÎH;v}׎~THGXP7׏xsɸX&9{E'~v|&䱉VV|/x|Hɑѡ|yX}'xgi.7Hs<&{xs4+rgԲuTŲrNP,EQYVyA/g7sXׅ3xR^x|A(hulRxRWGCvQ'^դLVqq['Qr}ghB蓚Q} f*YK{yU~woNʼnBִuXuu!]yGnWyhV3&Rgtԃw|7q)0盬ET)( Yb ~ʩلf(*LY2.7HnFם)֖ v0Y|'^yy:([I`1O0ɠ_@J/cDtn ^OA ׹NĆzcWUElf-:@I.8YaGXգ06UxXWڒNIJҴ{^'3] ^ڟ_jf}cze≦Ê#i@ qj(URz'VʅgtŨL:1zz呩_ȣ[',<:傣Zjz j7Z| )l楷:HT0dR:.{xFÒu(k,WyhK&FyD&ĭ8!ht֊ǤH }qpx.%j8Cр}RYvkڰt2D8Y.q7*?F)/FwMʚ} axiKƱCI('n4䗴w"4y_4SwvԞRLI8نʧJ vxA3WY\z8=G 钣i"ӛĚj*eHUUMoUHsJZjW lIrtw99;:|8U˸홠/ka({k [)JٻP>ꩺ[{?eӪŖǵd˕ǻTĩ׻ʴO?1OKeMݫpT)W^Ȩ] +7Z w~:& zY֪4ᛸGu< |\ns0U{7eZQJZdyL`uiNh|',+¨ B?LEJ$w'Pt#J:8@SC@V$gܱAD|O]`jIZPj鋌ZbqU-#K,spLF]̺f:ƗffzK1)stMejER'2c+X˙I)[DnjF)")0<)|ɇ ɐVofi0T1‹T?cQ ' 0QDok0͕=|ΊMqH@M{Y2nyTj*5{T8Iwʒ7w irn|l1%v!' =;|}`P&}jmaɈ6=ꂥmX˔}tmos{ԅ(.JY|\3.׫؊+cNMZi,|kw"sEݐ{b?17Ƒ~ް n>.t59mA2܊Dd>?q1N:;.1N;.-AHN㵉C]; ('>?=~lAY_`JnP.O>q>wcW.P qjs$Nx9WNOQ푝Qyt^E~^<~\豊n2l^nCn[1馾A旺V^>d^نqz>>Nt9>,N^jE*o/~^ ^NNIyb!.,V H*\ȰÇ#JHŋ3jȱǏ*) @PŤ*HᲦ͛8sɳϟ@ViB͔4r̥PJJիU@$b=H ƪ]˶۷p=*MAG)Č @` L:k@*;Ę3k̙Yv;=n_ҝS^ͺK_,.mi]ͻeD2rܦU^μ@oaZ7ËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/?C)U HL/,'x?R 7H@ r GHЃ&LQ|! ;( 7PC?`75<%Љ1l! &QT_xE$f1]"D2pШ ~xF*70sE/^4 >pvT!)@o+ NЄ&9L%A*@ԇ'?3jP4H3ґt=,(Җ(KYKDN7m`BS1xs? $0Q3-(׉LzӪ,R:Ӯ+j*ԑՅgU`OVS6PZ^ԛau;G1tOWkXV~իLtT(]W8e6ntSP]3(̥NRTmc?J].;X}Xie:FB2<=.\?LNbn'qβZ$&j KȚ^׊LgUiybb?Z7/*Z\~ۘJԎxrKqM}4%LPΰI GfN*!dD %8O6αw@L"HN&;61L*XV򐱬.^L2d3 e5yn~s,/IryY;;64E+Zv3@۹ǖNoiG{ӀuϰѢȀTy|.ti׺ɷ~t]OC.Tz A}dGY@imc~6\WvϽ\g^6}Lכα},oG;{ߕ.DZMnS;۔v .vC瞷ۛsoL{|5pwGىִ ?xιís>q| G7}b9nWs<㒖kq^?8չn7OO~'}֠&Ӈ.;3o }:͹θd{fvʕ îf|Aз{AK_EjX~޿=7??T\Wƿ.qtkkHf~(g 8h!,G H*\ȰÇ#JHŋ3jȱǏ@0A=X ˗0cʜI͛8s92*'QzHtѣH*]ʴӧԫXjʵךF"~]˶۷pv0 K!@ܿ L8gX) :oǐ#K QQ2NIϠC'M1ݗ'S +װc3@d- Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n@1o'7G/WogOws͋OЛׯ=w_@H0~;:'U0̠8 No@(y# &я(xF*<<!:APS{H"q~G&VaM|`D*px"ΰ ,4a.Zpy AЍ |GGxh-ϏbaILxHPqHqq|^"Q41=Mn&kc&R{<% J4~\4 GV$RA[2'a sqT;S:kf$aD]leC.f1a #M3LiLf‘:IzbO|&5=}Z h/JҔe%ۉLP24ƒgC8O{ZR(b (P&Y}T@)IjRSm<'=9QnFrԨNwQְY7U=@aYMA%4srhV͇լ49OǪQ|ޑ.,!Z](뭵@yZoh'2xied[yWS K:Ӭ= 4CΓe%.cl5A+j;E-:NlgKͭnw pK-rV΍n+ͮvz.xNj\w=ouӫn|k־ot[_=o}ݛ[2M[`NF+aa 0o93a1`6ï%maaƶqwubڸlS@r[$+9 &|_*߸ Wr_.[9ZcL-C7eNɜa4wYXfٺi|yd Dm'?9ޭe9ε}f*9o,g2wԗ'meTԉo;@#=kUtLۙÖ_P{i.) Qx4bG)fщ(bdAbQv|FL] [7I "І(I:4f  Yx4 HJSҊ,*[IU^.qWr !zN Û+KyG#,M>}I,]z߬/8b,f$J)S&ӕ+J[.s|J @N ]AwFctdCPQ62Hk6Q( 9OY- 9Жѥà )ə~2 $Ȩ>\ꔌ hH ErS2nVd*5aJՈVuUN7ũAC~*tMZ N k QPnkUWϯ FK,hRv_d7Nͬf7z hGKҚMjWֺ,lgKfVhqޚ pK.r [2w}no܁pV ͮvRwKW5.v7%oz3a-omYZv of@͒oi^W;a X|MSqw[ςXı0Anb~e+V%αݻ{Õm+d!8(۪5gW31.{Y=7k&3$^nxU|ervsc+bu@9Fsg02:~obs7i{4GHpN4C+&muiLzϛq?eXףQ3(Nvi ^e;V2[,m\Ρ5)w[.vm=b˞թ mm[omw6s5Pߔl? 0]fv9Ϧ\\,7/+h׼8Ʈk\o5yU]Π-^ۑKv;N!,) H*\ȰÇ#JHŋ3jȱǏS  ȁ"3y2cU NhI͛8sɳϟSW*)&DJJիXb})j˗j:PhӪ]˶ۜH (P3fc߿ ЯCg%U]#KL_W>Л` LӨm>82fƝݐ۸s|ҵ?رrMYȓW&gt%kνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷFn/o.{7SGW;gwcɋO>_}?/\o~+(@~#`X:p}$яMcT!=H; ЀC W♰$RȐ{!0w:l }XBdg%rƈIt"Y"$>:T .v1^C >PxI?&A0jdcS,Jq~w"I#jэ !Y1Αmt`_ tDB%'<ڑv>rSSl" IҌă.'QFͲ=e xJWQ6u#+YQrT3=@1/xFR&KqZrl3JQ.sҼfUʳb6ImX}$A9Y%Z3jH_Vt$4LS E@6iXVxd_\eʛNԦ«Bzs k`7XMb:d'Kʂl ?2z hGKҚMjWֺl3lms[MoKMr;:w}m+]Rh;Z x ׳=iӫֲ֥wC;_m߫֞a z3aF?'LaVlKx E־mEb/m[ c ػ4v;W8q<"F9&o; Φ5kcyXslYB޲b-yp~.&cR]:OaVF1]ˈq^B+6~4' Ϙ^gx-ouV}slyN|h@rSkK09ӹ W3eoyy '{gmuNyoDyG{[Q'zջu!,  H*\ȰÇ#JHŋ3jȱǏ'P*0ɲ˗0cʜI͛8kVIdIUYѣH*]ʴS=I jʵׯ`þ)%Y(˘3kYrpˠ XLӨd(U ۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-6RI%Thlp-tmx|.iMru+G.W.g7y:'k dz밣z~춻:> OݓO/_x@ ?wӫm?EOxLR>o;OB?$+m @, @%x 9g67qpmS[;iB*D6;dNΑ~ [zΩ,5WLl[NuMmFrKi g[l5| e{~u~[8g e{vlڋw(#7tuk[W݃P+Ϲx]q !, H*\ȰÇ#JHŋ3jȱǏxW HN\ɲ˗0cʜI͚)TRc&E#*]ʴӧPJ%bg7 PEjC^ÊKٳ*LƝUImr˷߿-N` #VU=[L{Z]1L PY;7$̺װ?RzВAzV@ N\xΝ=5>Of{PɊ$P`h_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'.0\]1G.Wngw砇.3G騧Ngnz밻nN:゚|O<E<_G/Oo_g=\3>O^Ͻ{> =8~η4Qߟ>7C0To' t҇~0S*xA2 JN^h B.yC P|7]OI?&a9B$"?Bd)! Py/ `\]7CƕrF w tqkBF.F9u\ >{G L#"pFb0 :F8NcsE6q'#^8JM҉b*d#ͧ8αaGBNq'(J>}% [򐱌 Շ*Cc5IG&C@6Y<7ahe6󝻃gI…|#-8Y*oGh.O̞ NdB)ϊ`g?6J?rT@ Fpd[*+YX.rkv٬9qwl3и6sh|e-U}rlnal_xDt/3sped/٪sK6yK/|iMҠ\LcZʔ6t-cEնv4c¹M_\oqnmMSƴ=,TƬ<[rJù0E|g976MIו6kPojϖ2 edߕNWp֛mKm6lƙv-nwg !EWNr㕅9g!, H*\ȰÇ#JHŋ3jȱǏ Rpȓ(S\ɲ˗0cʜIHRD@ JѣHRIɕ9JJիXdZ)ϓ)~ٳhӪ]{" O˷߿.2ϯ s ǐ#K+̹ϠgV&b@ޏtV!װc>8 >I@Ƴ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'mmmPG-TWmXg\w`-N7Mh}lgmvpkvtmxs7}}vMx 7_3LS.{yon砇ns= =8}zW.8ФGg O^ފtxL "3O?<&hІn$ڸ)Xt F7юz HGJҒ(MJWҖ0hFcJӚT3NIӝ=PJԢH-jPԘ.4}*T}*թT jHӪZ` M*ֲԬ/%+ZWֵZkV*Sx]3~*_p2v%-lGX2vrmd';Rhf!WN"]= Z 8E-HUXΕul?ڂvͩV#{6uf5:ܭ浴mp5ܸ6-mgUoANZn7rK^ђEr:uVKvjto[WΗm[K׼Uz{ខ_wj/_vxn]P5qp|7n|7/Ѕ.qc55pwU"+$e1Ob㒷ްw{k} o1\V"V+i\5k%3Uկt\gNdUL5z ¡f*~ bA[҈%4M{bMU7MRtԘF- Nϐ=KbZ/WլF1!, H*\ȰÇ#JHŋ3jȱǏ 39Aȓ(S\ɲ˗0cʜU@ϟ@ JыRoӣPJJի'SdN)8G~5< =|yQW^ФG z42;n88LN;xL 9徻ζsG?>5_|ꏻ}4AK]EЗv=lPis_aL!>ϗ=#1OzҤS?._<}{H/S·>1.{ l_m>- 8Be'_列T% B5쓝ph@j9[&A2.K"w%}㋡7xǓ<p]<h"D 3 {gD:*ЎGEZsXD GGz3! 2I\D5nM$8FцQܣ?{ `1,P!1ݓ$$HK%ʑ4:c#C(ѓ%)ґ}x[-0rʛD &l \ ќ$&9غM85>xB{&~r&6GCe9sD75S-dmhEGJRKti[J%򲖠el !'ͩ+ujNt @?JԢHMRԦ:PTJժZXͪV:ԭz`%jWJVhYֶp\ߺֹuuWW}T `+b[T2}lU#+YRf7rvgXQC N d(iڣzv}-lgK[֫5jn*۹v ejo5rUkr\u.a;N}.fkݱ x:uU-qjܤmod]bQ B^w]uL`׼{ޠ6Eo{`J[rWݯ CW1[ x 60c ogୋqax PI|b =QRw1~eθƮ0{u\ 5@6kn f> f~[G4̀UG3whTY p8Ez(HAsٮ}d7&eu3qa=r,nAPfݰ ˡz3mAqtj#1S d (̐m2i$"[FȴA2ձHܣG? &PX3vcd2t1ucI*ugA~Ҕ}T1aS%ʘ }!:k*z\aKpp%%MȽ8ʱsf'IϽ|ʬg1)OhvI#5EeKC7f4Cd 8y bH7ȏzJWjԥgNJI'"j7eN)STl?ɆJԢHMRԦ:PTJժZ5YSծz` XJֲhMZֶp\UxkW׾~ Z+MbX2tu,d*lZVճd_1Қ=jZn}-l*۱ks-pz5|hd@wrY-u]fe5Wk*S@v[V%n9k[f u}U׾5H~;`m{w-h Kt%oW5b5ok?zv]Q_Gx6QCyֱ:ńqs|ƎqfEy\}w z- #y% @N"nz`V>-0z5 /h?CAD aZ&Љ^ANE%n~F$B(skcz:͎r Rq鑏O# ~K)1/a\b53y"ՇNѓC3БEQ`FCLwCCm<"(gIˡ1l-V q 0azŴZ// =T s1ٰd Ӛ)f˦) 8IrL:vOp泟U?JvMBІ:t}Dщ곢%(F3юz FCJR|#=i֛}LYKVfU-;#+ZNշg1KӭG5nh{۞ӶlVV^'ai[mx ש7.9j5w+{[NRӵ.`g VFxLYVyE0z֕ os귲Y3L_Bï%Ekמ &o8S6pkSځn`ú@iCl왟 9#p猎ퟅ\ЈN4Dz猷P0$4< RN4 !#, H*\ȰÇ#JHŋ3jȱǏS /ȓ(V9A0cʜI͛8siJ&y9QdϗD*]ʴӧP*sCTT!ʵׯ`Ê0} HʝKݻ4} d s\~LÈE/u볬˘3k Rm)!k @h9^ͺj{vl /ͻ q~z PУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Ժhev+k覫+bKڋ,'. p> ԯgoqmq,2#TAT,$l37;4=Ϝsx@tC[lr)k%A1K(?\cݵBt?j=7ݪͶM{.wKd47{/̄FyݷԀ'^8ܐuۮS?\sm3ϗg3ڂι r~뽸ߏ[mo➓v#2w;&N X=#TC-d4#l&1xm[:/*ochD+6nvPCd tW mN$NR DO̔]+JRj%,e)9Dzlbr/+1bZL2f:Ќ4IjZ̦6nz͚8qL:vq @ρ=BЅ:D'Jш6E3 ЍrTH)yt(MJҕԟ/gKczϙjt6%'A:sԧ9=)BsJӢD==@t25ISyNէ*TYRv5]VZղդggSŹ)kE WvʵtEM ӟ N:؂tGj!!,I7VK`'PÇ#JE3jȱǏ CIɐUi(J N:D򡇚+eɳϟ@{\R˘;EaΠPJJC4mytISVӪ]˶@TNغ2C$VAP ,Z5 LG*S5j* iD԰˘V!wu.rӨSL2ݮxGL1hCڪs [^@@'A4B `УKNسkνËOӫ_Ͼ˟O:%_~ (U()H GŠa~4aj>8Q>]Hyx>DN" vbF)bbxRm$Xi)Y1YR|W Ŗy%GNQ%DT:ebZFY=qy#Drњ1YoF $b9uIZ類&MhQ^8yob!f ѦnhFe٩zjz*h+Bz,\fj7@ZjDǢ89ުMڪ"žZފ Kn+if[/. `nd.i|>N*dnjoJ\p \j2so [+k jq&w2j)3g.=kԍn3IWhH/<7;;[6<WqBLnrS쪦AtvZ-5;\uy <Ïbit#p3bLjm(I9a ?;sS8]\Ѩ_mpojG\5ih_I;5/sC#ůF;~:H_Hn~.#*X.ʟ!Hy{4%`Ad)Ap='D\8f$R 1ڐ<0Y4C])gHTFjD0Br |'? $ QhR" Bd,3JSVprC4bDDfJ$dX0L[*r 'p1EXM%QdOra' OԩCqP=_Nsf!7.j<=b  $%T4Ќ<Ԟ:8 |BL;R"E1ϒ\-kU!pt+"2%E>>+P'ՏEiMHo|ԗNԧL*9Sq =cؤ:qWa:V5\dYYv,gTZL a6-UK;|CECjʌ-BK~te2kngTsr-p_{^7*x[W%y. תAy^r;UOao"v*naYPwWI\+8/jsͫZa v6;b:j]pI=/BoTb\Vso\_Q֟ɄNYKi1-IޝP$tU{ߖꤗۄv ]-˖Ʌ2jJgxb>U[(nyB meez$t~qMg_S̽PMٌCΥb-ZHKk~x Nӆƨ4Z# j ǢY`VgcV=M6BviJT ŞYlֺ$AKTO:[Fa=#A3g{Ǭ9D߶Ή˚p*2k]Mր{7LblM;UqL" 8Hz<@#xHwDwd28ȷlr$G?C)DAIF zid=uIrP?s?F*ҏI)`g 'h^_Q^K~ ${i>v=$vGvSe y ›xH[tKW{ˋ~xcꌿ:oŻx/_} xןt7ooTv{:>R@wR׭7?'|G^ зCoLǖ~bkg6#Q:h!hTgfLZvtFZ)胇Uqhd̆k&aŇ %OUhƀn5kW(7LV K7|^EzֆX؉fփwhL@87CƉ&cB#GZunC5n>v`O4Q%6Su-HRk`tdEbl*Ft5b7GbH(HRhsֈݘ.ITCvoef@xjɢ]Ãh(}|Fff`嵆mUhu{cej}_v5iu(m4\U0ْ̆uȶx(Ȉ "$ɒAV(!Ra>Lؑ=p6MYvoqѳv)U:J;ؕ w4PCI3{UIi'HJ{Nڶj!ڣFJʭw۷S4\˥^ 0c[> _۪dQk8${o6I}c){5Km8IJZ;؛눓 RoK* zz:a*˼)^) JH[TZKlx۴"DZJ zk8j SCZ|9+jsi* ˮk=1d{2ѥI[X{˦k޺{,Q;;_̌$^^~N >|#t[~= W['"w" t]m^Z,fx6=ޠ2m\MCO(PCzLŹnUyb^,@5 ֺ~iiWc\Zo$b,2c/LxǫlO@fBX(ٙR>?8SrR_XnmT%zC(o* o6?lnk OĜ __' " o.eȟoOځ_8씤 oP/䟄/Y5~onEk 2`A "TCk 8P@2>XcŋCqÌ?dҥÑg>R%ʗ/c<͜&#)bʠI.8J,2m:$H?N:i*Dنa>TiՊqk\s>_%ڐ_WDx.`Vg>:3Ϟb%Mх1a@Ӌ:&][i[m\{76u*gNY㵟mrzukGw;^}wbӯI N_|l5;N~?]tϥ3h#l!0k@*鸄&D: DK-9O5@,l ECFL!"0)C")D_Ѭ(Q #JGR^S/O)Cʿr<JL,ǒ,K:tLȷD34SO/0˺hC \sCrƆ д@B й֤4NeN>!I58U2V/UU"QԀ!,J6V*Lb =,Hŋ3jȱǏ CX?)FLJ I͛8sDh-HѣH*XJ @]"dOҫXjjUj=?]˶mǒ)9`YVWmI`Ҭo }+^Ϲ* WQƘ3k渁d) S^ͺװc˞M۸sͻ Nȓ+_μУKq5+Ğ;F5x>dž/oO̿k x]v(^h-{!f"DlP]yȠI80ڄ?Na#F0ba7(ލ嘓 |1&H3EK# ~AID$KPXR(FД"B`ִ%]!mi7v#{^dO؞x١?fg, v{^yAj8>Jg;ngYW^)dV:োZک9ީKRګjݥ(I ޟRꝢΉV0&eN%eGb~8Bވrz鴴¹%[vb'{7[Em컌^lEFzK̯*/Z bښq2l&R+*QU0#AfmDBτt!lH@HJ#+G3A%L;g/,k!gMS8bc@!DZ F*ʋ,d-Z'VBOV>:qzj",p[Tx<'q}#9?ΐV痕P=[%Mq"r*?H+*<%LJe(xeb~R/ƞ`<&S_r&\Mqݶ'vrk( Nq+8!p!l'BbkyPS^h+?.ԠjAh,QR֎aBG) IOb)\sTS5'+$սjQEKFIԙn5*b*XCrUX֩ $_:MY)S ZJt$@UIT:G'A;Rjb>Y"ꇣS\ZQݪ&shBUHf.׶'%¬ht{?Ih-,MB&$q3ލR*wR۳vI i {~V>Jf YVV&iiYY2»i> %`g!MuŪ^Wb\#lAiY=[Ќq ,H.D^ 47,^py`[ LNžd5l]9o2}gF}x[_v&íL=]ϥF jey38O0Y ]l61mB^ԗftfHYi h$яM a5NC*4%!%Yìy"YO$iL"ulDWdn<{Ȗ5O=mgW[0I4RA~Lm) {oȭ]p88&cw~vcEcD~SWb_g+g5X(ƀdOve@排!WC8Wc(TRv[`g=|_gx\5e]E[( %E!hmh8' D~Nh"a٘w&(eN؍B8;UU`Tf+ IVHVzqExk_G!fdJQ;樖HI}!4AFdǨK e|988Z1"툇1ɘAsֈUȒFaz)d*Y >e[i ]8C<99޴O@wc◇yi9]وjّӉ h02}霱YIYjƞRM9 O)YW[X\sȘi (LbaX E! Ɍ蘋*W: V/xJbzJ*EƎkIQ%<f9ܑYJ4 `SVVCŐY71HvR*Y;wwחu*!YG); uhީEC:7(\0削STUivȧ ) YIIڡp:U$?hD*Jhʏ0dd i&j(:GJ_ʬ K& `euO@ ~D3bتm fI .:*dj_p:EZٟ)i+ ;$יڃ*xᚓK[r%{/y3gR ER eʥjƉ%ȠaZȂV9{V/zGJتڬ0;o*֪\{`ɭpJ'kS>ʁ>:}ڠȤY TH"ĺ4jRQ [V>j+*~)[1ۓKʜ{;+[e벯 ۦ -˼˝ ;=TQԼZ+#I 9bZ41;=JUL暭+UW˰ƚYڿn{<̰ \[˖;b| +XXIm klG&zL|֔ϻ绹: %OŽN 0; w i O{:!ŏ:kѢ4 ,;qy{I NLl<5Lы^kfȭ(ǰFJsD 5Zʶ`bڲ8h ɑ\lu)t{L™L ç:+kK˩,ő)ɡ\ {ZiDŽf[n lCs<ǭČDLk bk`|\p IVln%mߌ- y{ܽ mID;o׬Hz7Z*̻lX*nKHXj,l'5!](˧,q7[ QɌ3<)]mۿ*Af8΀$=BM1 M h(m}} {ĥNݧ{f&=q ͽ|Ğѓ=>e3Q:L͈L=>Ǔן&^~-.-oΛ>CN<٥^.g_ N:މ=bfܟB^ۻ֍ַ-عދ Xнs9=%AsJtu]3 tvvK.M^#'d-"MRCRzM? &|'/ m-m9pC9*D}ЎO;^2OܝΓ!yYoMbI4ޣ;mwk^FZn.M})bNfʗY!!v/.[NԄnۄ&۽p)΄bҬ[m`2h_H2BieET#On$J/O?D4?0oÿ쮲N/ٿOOPɇǻJ?zNZ S#3p`A&C{B\SWt)PHQT:tդ-2T]I6ȩ1-ԛ7bى%~|a|#"H/y1Xw̙'o'ᵐE^ȖǏG$£Kj blM^ݛϤVe5`'.7nsvƵu]g^g.޼9Ͽ $Gk>Gy02d T<\0tLo :0 ˰JA1 "9V):PH*5l54LÓV.ҭ{kQ-`/2# $/ƜTP2( m 2*˰ .Z@4Lj66C2N ; 1I+KNC%I4BΥQTB-3oS-̉ǝLѭ*տw{UI:* 3S)bQ+V!Bkᬵj][oQVBRAunO !,J6VL P E @Ç#JL1<| Ǐ CIɓ(S\ RaKUR&B o JѣHG!ͥ-iꀤXjʵ+0keZ_Yy۷puNu=8' LpI47]&_2P5Lp㜐μLieza΂hAS9&Ӹs9 ®U7pУKNسkνËOӫ_Ͼ˟OHrYQ(DCRvP G RCi"eKk:%Hbf#u%!}`l򩦡nDhWu"'}hX]*ѥtfZb򇨜 `df"* n) Yk6j?`2kGZ+M [F["d6eꬰBlrH*龘.f{T- &L+kZ)j2뮜v+V*v,ǬN0x MBF1.S$e/%!lhƷ1\D(-9C@)IcC?8 |H#E*27ЂH=,%h$g$#5@\d IҔ%" 2<ȑ|Jr4J/#U+`KE2 C%x^>$d%or lRY<&\>Na?KpӐE7}IrG3f0Jb.0T4QHl*$;vmDT/~$}@5xt@i~s|D_VJJRR2ҥ(' EQjЎ% [ٕ7B}!QbTwQB\*z<*բnBj}*DLjd^u"!FN;$l*B4h5!N%YZ':ʌKFrN ttg;7Vztg8Ê&q,cY kv=u*I Ӳ3z'hW=jwu4mIMLi,eɵ+ђ%l>Hf$ev,ӕ\uduyI䚷I{/?JG]>;uumeDΆeMOzV U!m+NK.(zCbW7 XT&1E#eĉJ[b23*B5p \bȾluk 8*'-e~զ 9LntR~ =bN]tlRX1IܛK3x/cqv#_FԷ%)3Y^[/㹼z6A`GĴeg}g7zn|_yA5AgQZr(kȖJ2ReG˖1K}9D38F,cӴlȻUXyqDz$gkDw.Tk Dlp9w>q[=xD*"<#,I.sS3"zH:nUGrnmF*ҏIw&zGrSy)Aޓk$HͻW'_"vX OJᏹwo}>Oc$gA&= B t:OI(/y%> ]#7;/$<#$zJBosI +~@=g>"v+(#>G$S~(۽_lگ炗u3 yƓ$~$'tt/7z6}'u&r,Q{xwqkyDW|tKGqAz$oF#Z7bo,n(tC5nIQndWum`mc*ޖmUdהl3'gleC`4mHehdkK†%"dElfDIkb&k6aZҥhbWF4jDXhƇ6ein^hn=inm8EwfhXAieՄ Odj#TeзKǶ~[lq5ЖSW%\(:D8IYG )g &Rz*)hS;fY5:Uzѧpi1CɞHI騱AɤbJZSy#꧛ʣ3n\*=uT4Z^*k9j^fՋdIP:<瓞enjܶ%ZΈ)*Lxɭ_% ;3hɮA:Jh恤HzOV̪D(u4fSza6gk¦$Y ,X*X)jĒʲ f TIݙISD>˴NyO;yH+ԹO哂 5QB;GkK˪<敁 [6+jk^ .Bvf!hI~NV*>2˱wUR>H85@3H斵5'1چʯ++J(Ji5*){=H-P,~ZS`d̶ .%! WW=b1ޖd'I&6Q:ymA׬Q'ވܷܿMݪiW%M劬hLk=҈íݚX}l^*^$]Ջ̴>ܜݐݢjqNޛ諑}+>]X9[] LVVIym} /֩hu<{nMɎ1KԖ`㧻"_|FMX jKOlEb vٝ.] #Zn  +oMu^'7r - i%VlMmցA0} [޼BbaNjٱĬgNH=)Krʏ^|؎*$X㾶jCͮ!#%.݁f˾[0+NH'讲Β][J O'dnl$l\NlRO֞-q^m9~Im'hO>J,-?JaPǡ>$$UHjz=oO^g $3A.D)#PE)B@ 0I)UdiV!͕ ITHpMO1=yg˅+V$CsSdL)UYYƌ BDx5סj-@ ­].m&|,Ҟd";t-Hv,\dTbRm烃F~XQOU+vfȦu-ϦQBrCҥyMZ=S|wm?{&2T}Lƺl%:X|tUj|}ql/@@/A&!tA Z0 A + PzD[ڐSd O8񲤎54 .;Y-4̱NO^*7 ˾$1,4+6 Ӫ0{. *6\2N'b#h*3N9ǫ1|rES3 sTQAR=5##M崿0bU;_u::ZT*5*Җl `V骻n-dqY /gs؋UN3Fw_Y*]i7NKN2.ӆNbNb)!vMn4v1 hltcˆrKkM-7eEf3r&!UQgM1#Vby4Gh1bdS0g%,[ ym bj"( l^4M1fI,;+-I"?[ѩ] ʨ"kjުk@ZF sbAv N[~f*%{R ˥ʯL0 :k¾N,G~{oĚok[ZBh#$1 {lpRKoj1ͣ,iǭzLt8`\q ' )u"xsWvs}\B{0)gJna{l?ۜ7ƹzvȚf(vc\d:w*5CK&h΀85 Ik}nv]z }퇒^T$x"JI,߹<3g=C~xoG~DM/>+_׏o$O7w>@+ þ,@ NsAρ 3}:j%`P\H!:(z*y@͇nBCQ9G&HMJ^yD IwnRE?UaW+rjIdӢ5NHcO'2DIh$Q d("?d#\t'R-}AhE;돑,DL |xɶ#*92^h"a^B|P#DJ8*-MuXβ%#(/%)n&32ٲnv3הe82NMʕ# !B /@,4 Aw3:t ӕ!?CDSd'8@TUf7(9{JDPY>ӈMPFI_LrhG[IKT/R5WBяf2ĥ&#PkSr %!oS~ok ˂FS 'v| |V V{ j䜘lS ՗PiWa4=Hovդ̬d-_i]QaO ͯ.5xu\T+]#d)tѭU6 S6g;XMGg!c+QZ'ByWƳ;ʤN>UЧBOJנ,<*vוeZ>Hf*]o۵@ҭzVӽ}e}j$ikK1VNssMe\%\Wwo"uK榬=oC[Ûx.[;J'I\`UBX!RLG'դvLJ דDngRfIxƉ婇s3_^EuYLz=l-kpilꚆ=(UkOR o[#)e=4-hz9w"i xF*0<Adوz(K9ӡ4sXݑI sL_w&GMVS B)Dh]g{1Nv'c;H?&!lܩt q[!H$V7"v{31vwSoJ x7t;tiQӻ57H2jO6w%b#ȸnw5tAldӺũ-o6Ssm96x)tN?M];\! x=~jtθB ^zSޏ2;}0-wsSn?4-P"9ܬ!Ȼ16.w,N-柦0Pd&Ee_Pv_Z_rb9` uc$dbddb#WaG3dWc7(Qf'c؀-hctz4#-vH*Q5$7~Ovdec#ae%6OcH6FM6?xFS_؅._&FZY2u-f$f K`gi6I`q7'g!&z]~]XgugO8]ރgP%Ph]$ZE^|A1aI%_%Ee\R V|UGQ(VxNbG(BeI 2eUh, O5SUs&c, \IVWeqZ!6Xg5<1*E4ZJNؠ_OkF3ڠ)*zwSjvIeD'ڞzجs0L"j:Lʆ:t埊NKʣ=:ZUZۯW=鬓e*XÚ[vNk& \5xJȔ馄vʧkj!ũ*Bs'۝ȅKx;J# E;j Z4zTZ /‰S}jR3`] cHJUjcHrq.U j'f$7E\YI:`Ja۰uߚx E=I Zi4kX+y;X kTkE_@_J^:[5UNjfIM ;6[8)7;mr{}۲2K {TC $Y|Bb;JI[$M$Z^k$ӛџJhjĶ{edjJʼ1DUKKܣ \Dָ_%({u{`-z`;d/<:{ "Ⱥv [5-2TLWV'I6h\K!;ͻ4K+uTm=۔?[<YLϩ˽*{c{ܿ\jLKȼa6!:bR3UUe<#f+h ,V\̱*̇yRòwk{`?N ]kDyT4Zdl UՑŶ,EӺ!{j_yºGxZ,}J˞y'|˟*ɷ9[&-6R87MӼ@8 5-X@;J=)FC#ӿ -E,NԨ8ѬPܚDdYc{̷G/=$ *JJΨ{a}۷LՋfݨΏ*&dVl|ʫ̿Y4 פȦ笥 ƸҊm2"{ņk]V ܎pML;$D^݆lŎFN򽱝;N}KIԏBӢߕԒ ; ܽ8Q2=]ԵoܤʾԬ?F&C\(K+â]֪=\dތ!j#,juV]4(3MRMø*{_6j!;ϗAм|/NThTM,݄Az+MwZCǹ^--Rm ~_mXYݱ^ X nߤ̢J͝~k$a٭NaӞCo/E~+ީ-&CC=4vBnVLưDUT6ƨ@g),OXvY+)`~ pZ%Z?H_w+rl$!~pPyɗo=F_}_wOꌊ򰹞MzS&`־O"6d 'A\0aC%N ĉ RDG1dH)UHp#I&WTXpń/<'Ȗ4R!ƢH8SϨTʑ)Ԍ1NxsˉA}H(QWɮ*LpRhσoRYVEJԋ ׯ*n*b54ϛ1ۭ`dɢ+eձpYa~Ʒogh'TvnI!*q+'t}t뢫g>vzV|yӢ=S=S~~~Ͷ߷~+<;?0͟₫m`2o$(%иj.r$ 5.TpE:l$<IƎ @ H / "J5{D:Xd ˫î[A'v(IRF7,K%k2ʲԦ1ϳh2$ªMAQ1[5kL<߀;#kTt7W9tIT9=OU43TO4Pv%QV5r Vے Vz Z{kڰJd.[L|ZgX5]v ]\sW^SUWx)W_9^zR{ !,B>VSL AL` #JHQ"*jȱǏ CIɓ"S(0 UI1"JU\>DJ@ JQ+)AuyիXj+Dz2E`խpʝK!KLPP& EsBº+^+^?L-P*.˸u[z0>lAΠc˞=T4ClNan Mq)(@ +|sC)>νËOӫ_Ͼ˟OϿ(hDM)h ]7!qF8ԅreHy!P %l%v'Պ,$#V4zvcg9ҎV GDebI&5YԓIYbB[%Y)QSMabeEhR%ZyqY& ߜ^Ig(͙ѡ!?:&v99q:*(%Fay &nJgQ yjP~9?&l*2&Gq6{Br˦jkYN( ("ʭImkjzl{2޹Klvq2i*;,Lʌ~h>Ksiz.vevsƭʌo0 :Ò ~h~99{0KgAsg.ZQC@!˶:3g\ʑd&swŢ-}ZOԢv^KP.2,;B$+^ϊ6t(f ى4yEkc3K6BNV-̛,,mzX@Y=kXZeRy-?7|nJWrl,V9֩S$d$ErDZV}QQ1^KDO]!HCsIͼ=;}#kh#gW֫^tt۶A&[$]Kϝ/`P'*yIޏuCp͎:ύc[@!Asϣ\A wNq?>6vi{"C՞V#wz?vkD,'y]r$Ќf:~xf`B5lSEk5lj'`# S_AOAZ!a]vjtaX1fXV]wVi~eh|`g(X!gcBhKVcS!@hGI9(F(XyǤJ[XLf9ddQfcj{tlG[M9zĆ9f+(dx8eMPnMi(tiCVxDh/hh %hx]N83}X]։7VfF4!8g4jR/U5vhWB`lXFFlAvxFF@Ԃ`#8Q#adb[fUPAȈP[D؃)V.eMx،5؇dv>`c][ud%ƃ;cȌeޘؐVipeEEtZ":|mxp ꨑ̔>26yXxRXYPug877cxZ|Uj VL%jE&=TϘk8$GG(T}T{yF#)F9IET$Q8p?]2gA5'\FyFhWfttyyX9YɅڔdBNț %GHV鑞ٚg9\uZ3KIhHX=[Ɏɝ88iyQ)+Ԙ(qA[lIZn9i8=e˸EzơD# 3eLBtIf8 Y&9%%484ț)iB8`yBsUVM[g J `:NUP GHYX),yIg9JZT\VQ\i:vْ#I)j֛i:9Y Veƚ3ڞ N\SCюIO0jdy&lԠ#' *ZU¢$+|Š4ZxXjkUb6a\QEL5ZZIکWAi[]ZmZ:뙠-X4^XI]HYJYb؂u*!zaO ŜEXhɍoj:A+K0Z66ڪ/kf۳iLS57DJjJb.MٖUj ^奺ڵSvʬu1fкCsˋz_w[ykGVۣʕQ$Mj`1骟UˮJbڪRX1T!ʯT[:˻BW (ZAtJF'Pں Ĵ&oĐ7 Aʶ% k!ƼaP:y~[[9˚:[C#çjL\e/yȣZa G ˿$)i:|!jɂɶT* [d|{|UJUK_ٌHn] I&Ш"ҨcmˊUM1ղUs6Xٚ1[Z2a]cMք׃ɮ\мn>&֎Ѩ.{|.NحŹ.WWq~5_7.ìڦy drXHX"> ?Pˮ] L}^SQnWec]~:- .ϊn}pޭ..K O>\Lnń^L|Г{WᚏGQ֮ݤ*L9gֳ 34%hVnTB#ҽZѵ-縍C.ovxzln?DLܮp$XA .d)!J0"A2g̸qk vt(ҡA \ɲʅ0O\I9uɰ2ZDxI7{(4SP:t!ΩYnmO%LR%2lCSŎȣ Ӿ['S+_=T$=pnί^eݫq#C\`;ݮzШ@ <̳ӯAZ6dֱbYI6ާc.utqɳteCe_;oz= =r_sԫE]oz{f-^њ" l(# J0ۘ) <aB< P!?+ Q;qDSŇ`MF{Fp\G3oG S<"G#sL1'ĨBʹ'1<*{k2Cƌ(*I-S/9鳪*:W?u@Ftr6BvAw>W1@5kvSQ=iR cjöTΪpm^ʥw~sSX_Vw)JP#^ IT:&WQnȋ=}#e\ί?/?n'x埝귿~lˏ@OBl'H^T7 fBupCN¸p:"la wʐ+/l oF'2T]R *<U>rx݌8$9VbHD./pHH-~}s1! ꉰI< ;6g"u<&'@ܢU9Tg$3=҉/HzdKzpPx"*r<+Ig@D2̜5 h,1d"e>B34sL3i L%(GۑS"T/k&6ґl'';J_2W7(F~F\Q4aSkECCgIDh<-4Ac]Lr4R$q8:i6ҏԓC Qyٕ3*IE+Z43DR{rsMf Չ4]j6pjR5W< T\Eɸ)+Sܴ$B gS8*RP0)YCO*R kbPfJ~ciUeQ?k"6J,<[V8NlXK<ZڇV,}4..yW2Hr*\:Vrא]U[}HX2JymNJ[wQ6_6WYJR_^Yu'x$nmw}NH&T@42_؄UXU cH)3*!?nIc~Mbkqq7T'2qrGRd.PW%qec 19 FIEiV3hŠꚴO a;c{Y_U+ǻ[SQӛ`=jNCk[v[m{j~: $K{uXD@{ZCtj@Z(ڸ1 Yq:[8#˾ ˱R8KZMZ_2+'6~8,\zB6 [Koˠ9t[iyr:{PӾޖZ袶*F -H:nobfK𱁆+?;lqSˮz:m/l&'/?V 3J>- 1\.ڪ+8]UΖʏ},.u./c[,O{iiiNmԘT|g\C;f횚z),~M. -v6 F_̵t=oF{d/죧 wcnO[̳VnЉczުFVo'XoȤ 2rԣzc}/2I,X$R5tlYurYɒRhM3"Օ(l1S>zU{TRtx5eHnV& q+RiiZlM[ܙML9 Svl jEld5i66¢4nuJe[NϪWsiй#ضPqj=RZIrC,i yM*t vV<PAR-O˓A,97(# gCvs[b֊ld#9-˙Ȉ~eGg$A"Wr1od=Ӗ2@S̖$k^#9My[9E.A_2;*>|``HSvL)laSېg[m[b^2P[Oڍnߕ7 8mSF*U{]U2nR 'ww= .K ][|~䭼ܑw?9;~sw2m392xO]URkCvrϭs{T/zaӷg9ףnp{~WEew}[8>O/Z\Wk ѫؿ5? ohc<__|#qyωzЛ)Ey+Eđk_9Ro~Aju]{ ny$=clv7{TSEuOܷ>.SwSUgtP?Czsg| AW8|Hr{W?pr%h[ p(\{T0'TȀ*1z. 2{2( ؃ (T0ʷ*o;qi'u@`gW}7ge7~U8vSa]u_VaX~WMmgs+utE؄xww'q$GzGhn[QX785 K^VQ[^q؈}÷L耨g"aZ'TG]GHwz#{w8s6OU%qv*8N(tgsNcE~gmiH}͸NvXJmNxnوO۸Rd0PDqGwWyrh-GG$Hzwxy(J.GkII}X;:U~я3"qh1b%G7}1ĈMb؊,Is"XJ9V'Cոm˨}]~7IRȕ֍I HNȎtV؂1y6y_w.xؓI$O(;h eiO*\ekXdʄ~>Yw'ѷVI{9\^UԸu(Tțb蛗g)״Aؖf^tiy iVY I)@HV%9Ș ٝH`I%h$AwH{%yioY9҇iuT)FVI9כ ʍ ' %Y\ZAGE<4R *#3Kb"Fj8+SHxEҎZB։ՙUy {d\lT[jj1Hȇvs] }'o٧fሣXh)eYɜ,dڢ$ _iވ՚IgĨ{/SuʠJx.9QJ,xl U$y8xJd ?Z#Ѧ 3HJ8*졭IIʡXj*دZvlJX};mꝪZˊ[#Nhs讈2T  ˫3K%yJjA|aF7=KGJ!GE{kxYKQ+@Ck)GKt |ڳ SMˬ@pjqylX)끶s):dkQD$1;٩jj!{{[~m{;`'N)ۮ?۵sċʧ[j* TjYA{iA*k›]k̻%k^^ 4ݡ2zk;>[{+滑gA"ڷ-$ʷ5kM^JyxbU3U˽ۣ%X+ ,)!HrK riЧPJJu*D( ˒2Sp`ulճhӪ]{0E͂ $8 Kv˷ǣD *N,دǐѦ)Js]ڽ9iϠCZ&Gb]8Ƣc˞}1 @WNȓ+_μУKNسkνËOӫ_Ͼͧ0\]TW_GO(`lu 58!ut!YXUr蘇eS"E |"PXXҊMB5bQ$ aJ*dF6ЎQ!)9"%_EZy YɟI?^2Dž9vZ'P' H' ㎎NI(F=ɥi}OAJgVy$Tz*U2B:Hz(yd}X*O飣:gqk)%b45'_V*- H۟O'}$olB#"ip*;n  Bp|[ #!GJB e.$@"FxY0!J7|DQ, ?DAmkKN/fb)꧊5`Bx-WbGX!Yg, h\Cq8\\7J"FF鐒krH-B< OI=:g;dO\UrOo)\2$/s 'Ir$Df21MQػDiN3 )>r#\7E@gY$5Gk|g9NћZIE~fTg@ՖqӒGjx&@4EQNTh0h^s9#e, fԖ,'9KӘztHY"Ҧq eN ՘5%LQ>S$L iL}Djs9iUS)_)SS_@OZP<:OBT7 f]zOաX YϿV`M(`6^M+2},] L͎!aU\TҚP aVBmej(-w|{$!xF*&G&mH\.&яz/ЍnLBr׺, 4Rq~LB!=b+u݃^ېh@]ٔ~B}N-vh9^;/It#tϾuznO>+ULg}TF&^w;_ʟ[||_gC_ꏗϿïB|W}7 y{\#Znçnwn&{z't݇zPgqfw{xj}w?!KgP%Ɖh5?U(f'QrLA-(lUr1]|e~~#Gw(3B AuGy;xYX? 8XWWcцH>玿/营ZH'|zM߈{8@ՋAF%hXt:F)78HGTq`(xD4yxpiJ7tX7itU駈Rq̨Ygf(|v+(F"ƖO)g4z)DSHxj$T'H9ى҃,ij!fyÂM9`yMD鳙~W= C }@{2'DC1x0EHٛMuؘ~~OHiYH]_)iGĐhi&|! gIȗ~)sYX)"逈KyVg-3(dfD.!'ٌ&KY%tY]CBC+JɁ-\~ɜDEi6=Zv]*E#) ƝFפ!wmH(Kɞ"I6H &݉[vdH/ɢ"ڠ;G*[$gsy&a) wnJڍ9t#BSV>4 *JdWȉ8&Dq92X\L(yڨAI!يzZ8ztz㊍lڥ itʛpJV>184Y둯 bX[8vDCz!6 JD 7ۯǰ{?~[x9N",̒O2SG~8_LVql , ܖҧp{ƌJ&Rr5 l ۻn[şh_>Ȉ֋jlɃ E,ʱFS*C,JH [|0S3̨}dǣ+us}ȱǏ CIɓ(SDXE_ R\ɳϟ@ CKFcy0ń>%JիX2~fVIqS۷pʽxPX@Mg La/mXeNK˘\a] P̨Swޅ| BѱW[$-TblͼУKNسkνËOӫ_Ͼ˟OSY?o feO`O &hՃL޼6/3^_|+p-s.p-k oI%Ƒ~%稖0rckJnH[ 񞾫k ݸCZ±>?8K;)y!'ϑؙ Oo #H3d?u/A'|&y?*Pi% zy6PF"P O8:h,  5zą# ٤Cvp% ;B,b#"*LNK:y d  Sű}Z I1(~dcޛ&1$5Jcfw32DK9q}g$GёAP!G0|wIɸG&!gd#و<.$jt#%YPd$ɅRb%'-?j:Fli>m?^ FJÄcH@IF|3Ib" DV(.!o3`:9 @&̜C'9pf? M"G/ǓѴ)f;_#@Ʊ$B\g*WLwYW:׫vchBm&ldQٷNylUfᵷmf"|+FfQfݕr7Sfծޭwu+k.#խ[;6s{I܅ s߯mN",5^]~7{{vNf) sIW\B}f)?6Jn5*`guRXW[}rN͟gy g{/sKܺp7i򐟑#sWn<{ܾa7'vN]oz{OF>jيEw\`o|YN=uvZT{?|p]b_1}~=snZ7k~Єߙy5wϞ+?T'Hy7yppGWzw'']gFهqgE5}T}zut'WA7w'HW)(s/V1}3^5(q9hW;8LGO$X"(gLߗoigvGG'~Ejw ǀ4yVw?h\y'xvx(,ȅWxq81{}'}EVC(;ׂD0؃O x8t9pG#Cd>Qt'8}x8C5wxׄxQr'wȇShd;Xo8)qxH{k(rNX^rxw5:]H8x؎(}zƨ4(_ Sh'c[D ( wG{QǑ؃LvIn) BRtXvcؑF4~x`%YAyhx1)Go8pTqHw@ՕٓyNQIJ_֒ė%Fɗ\_KaM'da8%Pshpt)*>m hDžW2|W9Ȍw8XHhRՔ;Ry@YPHOɕ[^yYqq&77ّ4[6|op0&I%g~驊ئ'Ę?=dzzA9H)Y0Jz::y) kI YyZ>ʜ*hRϸ:}zjǝ[P Rz* KE#z=Һ?ۚgzCAE[lʓHi77*iy!Hɐ!ĵڵ k pJOh\IJI8˨ZR٘:ˠevxz>X$~ *ZD`Z0{qɲ: Ym;[OKG+I{KkڨM;QˊpJkjY빆4ڕq['d {A;:znKwPqA+z<ʸ[*L[n+˷Sw[" IEikk幹 ֫+* ۤKv9!Lې%+!,+\"/[)܁[OQ;âu,E,o׆;GܬSlxkCl[ll_| lĬkUBƛ[@vj^<}h:CF{Xjȸȁܴ>*Yz:L<}y:_F*m|\gLhYf̾9P8WXѳ bnm:I[RhȲ.E *Z+:{i..k ܶƛ//ھ(JHxc뮧N쌈r+\X[2s@*hJ n*?,œ*'维Ds Pܠ? J /ِˌXݶ2ߊ5Nn1Κƒpss4 Q}3kv*k=>;۪z~}ߨI63aK", Dt.g I,h%,U ; z0O!E44* 4vP)3

ɖ8[r$(b2%0#(b:] Y$c!9LmRLI8tdڣ;ixs̬G'C|r ='rԄә|"e)ΆF%t-K+2th@*W$ Q2` %EKJBSe Jσ2 5i?)z==)>OP s])lTjRkvjURgVQɬ,UiUiXjPzT)C׾S:eLqdT ع^Яq%buXȪɰL,J]*Wi򕳄,\X~6vb֣J%kTMvmovuwhˡN)1.Z'\.!";F1.ui$ەI3ɩwN*/x;\(*] y n彮;K)A/Hw$un},Epwά|'l 1w1-a"hN1_C}ngJ|!R;vq|V GU,$wMrڽnu/j)ɠGlY%4в_J67EmYY7v f6y뜝Y>}٬hߞVYgzeH P1OMύ2[QӣmSQYUK\Y?y̍f h-~~34:>4=9Ξn{}l4n mW#۩mA q+Rk.9ٷ'kMϻѮn{p Z4-[teM13k Dclc|ő]pL?Ʌ<񋋜v4C͚[fenU K.˖~w?.p;EW:Y~j$ejk65؝C^zi~,cyiw| n<{GÿvI~vw&/+ks7ŞȪGn+{_COu{[ozwSt&{CX&x}phCҗftѧw |7g|{G}~ =%}}x'i&WWy~L4iu?jxjCxl oyAyl\7K((6&}x(%7"G~-Wjw{x~SG(Ji}]("f؆Djhwvx2gs3\(H_TiM8zzoI%txGl"U8sSy9H;pCvWuXhMwxxl(>[_S}s X}(m|؁br,H˘q8c'XxvPuȍK(׈F֨XV臧_ӴXzhx%w x؇&RH Ih ׂɑ|Ibi(V\h(i)EYY9}nFt W'ؚǔw:ٙxؘG'ȝLh(WY Tr C#XɚYxiiIٍIjgIy؏ r穠ȥ|xJ1)izi*:()GZjsOzDʛ٧j*QZXm9Sک: Y κꧥ '!>,B?V诠? #J\8`*aǏ CIɓ(S\ɲD@JmiBLj8mtIѣH*]*R, NU9B`ÊKNJ:>9~Dk0) "P LXUVܒaB@ }̹!2\W_:sӟc˞` ʸ$`4K ~m+ȓy'<&ɼ` }]Q~*uөW4˟OϿ(h& 6F(Vhf !Qe ~fX(-ًa(`82#S=㎀ԐJD$RL"}Q6y%X@b餖\襋`Z8ŖMilz&IgIXHgy6gIwFśpɒ$IR):Q!3"hFjJHz eܧ".z&ºХ*Z EI?qcZzj j#j್jm$vlz HiͲm ll2&-:lޙj홡ګonD zmp.\o$ VL/Ll 0S,# 1pz;ѠJΥ"qĚ\gr#+]mx9#زrD [jT{RзD֜f  #^(]/5ޥaY_ifi_}~4S,P9 LHxNL 6[ V5pA nG8)D(Zx~}7qK;X~7m3mUM}M5Vn.]ryMܶZ>Kx ~WӖoL}ODyHމ߳  nwj}P3/aJekrOS\H*yzy^DW6 )}yoĜ:^T;Qu|/ {q{Na'Vx |ѫbh?Z%Q[k'܇ L}`:h[xs~wu(pH(hB֗yR:׉DzH?Egpxkl刂ԘxHzX芓['DhEq؍qydžxňU~8mX]D-X8hSxVK(mͧ|Ϸ{] iȐc{F8X脧ngso؎鈏x( y89D'hr8)R5oȌg(Qd(4Y(DItRIuj~:Lzz$Q}U&Ljzzʨ:񪗔 \֩ :遧 t$z) KʭgTZz]Jeڡ֊_Z[xZᛛʟ#:MAK KNjį*ɗ:KrlZʝQZujOQKk!Lj۝&D?KSԊW **cJz|;f*rӰ+[zr˲%At[9Kx{qK`ji[) ۖ]{W{5{@NzR˹E8)FoZ}o4ZI#;u11;۳#vz7Ҕq7'g:({)kI r{#+vk˧+:b>BB[B%KIYd;ͻ 뿱m 㳻!lK++ -,¾+ěкvʼ kyֻw۽ë.KçEĥ۲+{[ĭy_lmJġ{9dtܢ%LaM@:BʻK1JPkȕj7Z A5v ||m o~jĒhƘikčʝD<ƴDyDZܦYaF Ĭ\lKlDZ+l\nH o˸8l)ɿT;M-!1, H*\ȰÇ#JHŋ3jȱǏGɓT˗0cʜI͛8]V:(r'C*]ʴӧP>HШ Gׯ`Ê A.SPآ)8Kݻxe@J2&߱#pÈJ0H{BFU˘3kbJ#S\`ǛS^۪'w,ʭsͻ+ܒ'7` p^μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6Ю6ŴSCfv+k覫K+Kڋ,,'. p> 4gJ"K\-A2/ *l֌gm 1L. Ek1ulO̴X}u̕-o׮}'.6_vמSn~[|I_90:C6@qml<͆420dk<? z?Ђ  HB0`BpO O^'C}}Fx"+[H-`:"p@GE- ya'Dψh\Z/;{#(ḳ=Q},E?  1F~lb:y!$#ӸɄubEI(GIRL*WV򕰌,gIZ$?r^r0[a<2f:tf2IM^N&6mz 8q3<'1tZ,:Lҝ̧>lj}rHB P=1J2(DZ<H":уӕxALV2OQӤL ә2(EqSHE+ԡH-A# Q&56E%ԡD,JVMiӫ* X`$kTVxuTI?&!W*) Q2U_PTj*V,6Y)K'Lbիݪ(![zm%`ьʵͫU{ QiT(@_S$}lf͊iե+UPv rX榒=6*N7k([QF"hQZU𞲦w[XI̴u~?/.+Eo)Wjq{z7Ehr1;amrJRR]Eװg[}ĸ-+ߺtj~3VnH(JTcHurm,ԧVhUtraX2qZ4im웃:smC3\=ļhG;Qn-]hz5yyd;[3%:ݴGLMD??}Ʀ!M:6g@!, H*\ȰÇ#JHŋ3jȱǏ= *(0ɲ˗0cʜI͛8izHJK) 𙳨ѣH*]ʴӊ;{|bӫXjʵW *U]˶۷pAPd+˷߿ED+^̸=Q 2I3k̹3ҺتӨS^PIK˺۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&68ŴSCfv+k覫K+Kڋ,,'. p> Wl Kr \-A+0[rAF6;g׮!4ӒsCK3G:+Z;uն \w}^s{sԎ=ނ-A{Fj<6ӎ\P,okPW}-5Wa'8q/>-B.5OQ׎g6vOm8-~׍xY밗۸l]V9oyJn꡷\Tksw޼ o}+n6ӭ7^vo=回6/| _Ynh ;qy_#Bw?q_ǻ:66}_ |ٺ>f-ЂƲa [T<0qt\[S zz:&PC]Ka،F7.F-^C[C8>5ra,Q} #HǐiwXhq}rH"PӟU4 NR 0KwnҞgFljOYvԡ ()*RQ" GON҃$TВ2DCN=ML0SuROP5%OQ UZU$j'c~LWkπvj'*VJMQ=T.<+ץhO էFUMfV+ְ`*dӺOV! kb-qµrO Oz֜$lbWmQK[d.63>Avm>cj5Nۻ5l]zO6WP;Zn%mk; r-'g3+\䆵sS6MIu NWol9أ>e#p a SDU-Pv״nS5 8nTǛ7-n*ѓa.'NgXoE_;9Ç%rQST *ZC3!a-sٜC@^Ċ9A063nBqγI=_}F9 d !D-^F2ބt9!, H*\ȰÇ#JHŋ3jȱǏ@0ȁp˗0cʜI͛8sUJѣH*]ɘ?ViJիXj @O\z@BOhӪ]˶[&2!l˩}˷߿:]" ^̸Ǎ 5 Rj!k̹grfwϨS^͚a @ӭsͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫2:ŻSk,l' 72 JL[w "0&7r 0lﺌ |> /ADKMsF-GMgQoZ2_ 0KwuP-3ӭ=z xR^%-OC.qi3L+?n/Ҏ?v[Nݤo|7=|<~/C0߆}S?q̧@ICD@|.cAu_\[ (+z83a.~k&qmàuGg?hwBq".}=D^Dpkz z1x_6Q_l "pmT\@D-j̍{c>9&0c E͐~"E: 'Iɗk%ņmQ (1PfZ'=* C(gɱTRҖ0,3 0IbL2f:Ќ4^R̦Tn g2)rL:yNrt'<)yz̧>~ PM6ZmqhDJъZt$ :{U.DgPN lyLc>T׌ձIV?<`}Ÿ}Y[b-S`Ԇ9r'}3 1L3MSS.}K[^vvԎp3g@:޵)MZ,e6;wlbߚv']Nf ٶ56Oj 4 !, H*\ȰÇ#JHŋ3jȱǏ'(@4YE$*+cʜI͛8sS 0d =# ӧPJJU)&RtՄBjJٳhӪhDశH˷߿@VRM;0ǐ#K d@UP)MyY\S>MۢI ak\]-poȓ+_~u*8t^23سkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$[9S,0,4l8<@Bm+5+8; TWmXgmZw-4^ vOMhaCrLHߝ2ACݷ@^KAFˊ۬7g+a9'8˚/N㈟9ˠ\tꫫ,ް.^N;̞OM#y7rߎ{-zlPI7=,}w;L|#~/Wkrz}#]Hq}\w |Y$A!pxY< {R", W?lw! /fkf<ouQB:{`7C &zB,"'ؑ۞6/naаBPw\Fѯ~N3GHΈc88Jew`gC/r}c$3hH)r{ N$#W 7Gzs]&x9^n 7Ԝ,o9>YjpDDVds%28@e6j2IͭUt,t2?j88Νismlev~YI@JЂMBІ:D'JъZ%]2юz4Hґ%=JWҖ0miJcJӌδ)NMӝԡ@ :Ԅ=RQ:OhRJѩRզ=jD RrըVXYֱNt@ѪVHjֆUMHzЯbԯY^+UrHE[X6T4C?X6l^ZNh;+ڣij-i] qmlTvEmjsշ,AK׫J#\$ ٱ7BZT٨uE+얶 ih VԂ׶Zuu׶oA+߁7Y'˕T (߁z5Fﶫ f0ck` 5\^:nGLaC4e:Y<۽+^̸q; l s?3k̹sc S^ͺNȘ,V۸s}0 ohs ph>0`>B΅Y#`d @͛H^M?":1|K!w!^PXTbFCuqk<ȹ1MT&Cu[<(Oy%C^?pwe/f*N~~C ƘOee0 9̽r\gz~ֲɌf#ё}3~Lb8UЇ;bgzcy1|VAYjs/{hE9*pmgNVW󒵻_VOQT7ȣFkY{4}ۏnǖަi^z-ˌv~$۽zߵqcRCn_Ꮕ8e!, H*\ȰÇ#JHŋ3jȱǏSL' HN\ɲ˗0cʜI͚UR(icSW&E)*]ʴӧPJW%'OCH:u!]ÊKٳ{^՘`$z@h˷_&wV :EZAѿ#KLyl5\U&@ӨSNkupn8l sfiS ۻН@ `, 4ӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.=S7G.Wngw砇⢗n鋓ꕫ똻nn.:ラ|O=˷nG/Oo}׃^}o3ޏ^k~|SA[nxH@_o NI]#u|FD$'@ʃ82O}` ec KH:!P|C A n* @xH*N6<\w>0XW2*yB󝑌md# *QWF #=8ьD|97ёDc% %eGQ7ґ bKV|4e#Lrw\'[CPް>,$#DTr"%ϨLVʒFh&SΘĥ0LgJӚ8ͩNwӞ@ PJԢƔ*FMRR29u*TSRXͪVծjժ^ Q*֤S=+Z:U2[Jנµxmj^z׽~\ Xt8El`2G?`FU4RbVQ?SBձ3EmUUK*)& Ve=cЏ֦ ,o};Zl[]ܸt mtӵ.uS\";ծkbK^iz=Xi*Db+SWznOkZ䎗9H.Xk\X r;.uŰOR4[mURjaW ~a*7/zT~Ri#z,rr6te\ԺָV}/sϻ 㡶ṞlwxE9=^+]X沑iV[8ۿ.4xB>/Aoλv{Siﻸ;S|?MEyܯex'NqS'c7iƶOU_ FP5NW5 !, H*\ȰÇ#JHŋ3jȱǏ @ b˗0cʜI͛8sLQJ%MLΣH*]ʴӧP/dO=jʵׯ`IѢbӪ]˶۷VQd(ܻx郗tLÇS<+ԧ`Đ#KLsc̹Ϡ d ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg5lSt=?^-dmhlp-tm^|~66'7#xKNޖ_^x=PsN@n:ݢ߫۝zr٤+.;l>>9}c{]AȷͷCgxګM߫=OQ~^yOy=]?u$ȿ9s[6Aqc"H u]&B !Jȿ~C\?.Ca\χt`AMPe`Aѐ3a MH'0RTHBMw_b ECc܈HD.1lg!'GYPe4`E2=2H&PjD$}Fic4H(bxFP!(W9FUF~e?I4N\<32#">4e;:󙲄`9%o\wӥDB#*wdP}"2ٙGf5Km\@P) ĩƅs=Iъ΢4;@èHG9^OGqO#B7S7[JA$+? PJԢHMRԦ:PTJժZ?Vծ U^ +S*ֲ>fMZֶmE+\UҕvY׾u ukQ=bX&S},dJXJ6f7r6G?.ճz4R~ePQZfn5K"Hi{\᎕xpn6˝mR Y4.cjf.Q ^/fR^׷El|ܡ׵F*zҏItvD/,X 6_m{`W Fou`v sCr{ tmmZbxE0{q|*ǻ ]`䫎&iSY!m!'9 民e_<˫ em:LrW˘Yfg̉-#cE|9ѳ/7MeN{u*&Mjz4-FgMi 9ɰzbFŃp,e8Ր$D=&KԒU+1o7֮-k6יƵ n%#OAoλ/~~ a}3J#?vx6ִܲe#[B<8uTs_#?WXW㋅d!,  H*\ȰÇ#JHŋ3jȱǏ 5" Eȓ(S\ɲ˗0cʜ) )TI1$͟@ JѣH3LsϤPJJի8 (PͧXÊKٳ9۷pʝ+Tg ˷߿B]+^̸c]Sqǘ3k9$s@mӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dm6ZS=?jp-tmx|߀.jM'޶7~7G7WngS{ᢏy馧@@.{킻ߺ9xo|G~o/7A-է. 2x] ^(R!eъlc -ҰJL#7"NI4p>6QcWB*7/a,XF~^$7DIuT#&3>S"GPo!HO R,8K3^]/3a)J!bIRl& (2boivL8@d4CGzq}f/5s tL?]l<(-yi$)QN4NL;V(H9IV/L0;zNj| BFJ4wNӞ@ PJԢHMRԦ:PTSPXͪOծ"^ R*ֲhMZךVWu+\*׹v`סըͫ`KX⵰a2}aXFf7rG?|ճv4R~6eb_BնͭnHiu\~xpK"W`.OKVׯjARٵnbWƪy}vŽQMOJ#:$ _7lQW`w /3^.`>XͰfҷ0gT&qLs/lcx%덩+x a!Xmt#;4qcX.񌵌a.k-r\6;x%>S˹a2-k,ArgB9F٪f ́7Wȓt[Dou~^-[f/y†LlEZ*dӺΗlr[_GC7T.uxeUSNUXQ[`cMm6퇶Mm?Yx/sfqϖWvqEslŢՐ7k}{CgmonEHT?V8a%؀!,) H*\ȰÇ#JHŋ3jȱǏ= *(01 z`I͛8sɳϟ=d) 8 ta1@ @ӫXjʵ׮B2e үR $0۷pʝKפ %[ZÈ+WޏU<@ O,̹ϛgZd,$ װc $ɷ 2iܨRУKߪ&~rOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.nS>?/o'7G/Ng߻w<އ ˝C}ޥfue~bl9+}cW\0r _=p?v._'2ѭg<ݿF6οm;ݴK:1*׬5w{uroy-B{}oإ;w!,8 H*\ȰÇ#JHŋ3jȱǏ@0ȁp˗0cʜI͛8sUJѣH*]ɘ?ViJիXj @O\z@BOhӪ]˶[&2!l˩}˷߿:]" ^̸Ǎ 5 Rj!k̹grfwϨS^͚a @ӭsͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧CM.n/oȿ{7?/=Oo_ww}'?~̟꯿@ßԷoӾ'O}]u@:+ w5Ю@ jw?xτ$L Yv/)Ԑ-] o<z?]aWQyCQD)PT@@9qKbrv1]7AP_g) B\qI|"E5=}$$lX7;^4m=E:(F>a]e4\?J_v6dK{ ݴ^tt& nl'ܴM7,({c_׺o RO/ŋf|#1Z>sUwegr+'VE:ϗb鷅p>e+7Yu7ӷb7m!,G H*\ȰÇ#JHŋ3jȱǏ*) @`˗0cʜI͛8s֬-SIѣH*]ʴ)ƞd鴪իXju&O\C׳hӪ]˶ǞRTi `*̺˷߿uL ؁+^̸c<ȝkPk̹g(iϨS^z Pt۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n=S/o'7G/Wϻgc{̋O觯췯o=gO@ ۧx<@1} ^H ZP ΰqp DȻ5;GPs 8A8|_BxdKN# gD$^^W)ְ'=,.``H!ΌT9|dtEE ;/fqZcIHD F xD%rb'H*r򓛼N"!OБ;C"w'筲?IS 0HL j1L&nYVZ<&)M @8PXsSgyDj>s ͤ=U4XE:̂zt נˑ꒠3i OX0N"%ZȗS8ў"3>*AzԦ6j*FMsxԮƑ 22hMZֶp\J׺xͫ^zֻ ,Y*¾M\:d' YR|,f&],h{6AiͺڹV]klCK[MmsZ~v-kw;[ lqm{ܻ.nIУf.vK]w;Uh\ҵuns+;_N+&d+~'~׿l0u |`& Ml%LWINk ?Ô ql4La-S0la.]SkÏuy*2_>uW.5R^J1vg0h 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸kBX`Q+,sSLaP%@6{.]+Jj,KmiKq+>.kze ?hݛ2S{S,g.,iS :ֲg?7#/&^봴jo~ANtуy۬|?_{EC+rDn_N3s}~7@~/_AwYMD7?jjD`O9n @ (0_ǫP4DHo8ŭMsG%5{q{%`O=D wfq"-}D*Tm QJV9Qty~%(P} c%ᇶolqj3'1O Rvn,b0K_SOMԃ?f,S3`I1hNs}]5jl[YifuT}-}; [g,bg[>te'8vUx%gI*Mfy$l ݭNS{%.J [Mҍ vM MxprS`4Yd℃B6eSd*XM5B(2&{zq nkRSUlxsVkXh؉QuAS zwhHN+(UXw\}Cse<|$7nGrbRPw #bBFZYÌ!NNxXH::geh^UJRl(Bs6e`WwRu$6pG҄p#y瀖xH \Ȑ9)}'6u~WI"Ըgl/{#نvrwsF,ub0)E;T|O${Ɓ+~>F TWg|rw8M)v 4wdR9ր먄Y6oXN aIU|cI>QÌp(87wzX,ܥu Ai^u`^8hI{ C{W urSpW2tHnI;w:c06udiV8f|Kؖ'9#ҎW=Ht') yH)!fCsO&THc.2Y$`؝Q9WSVטb\f9kف6/soa"Ȍy %7'| g8RWqӃ(tvV1퉋#Ix#h+-ZsX)c5j久'ڀH,ڇ3(`?zX*%Zˈ|sÀ^Zfz}75~!F 'BjAbp#*y|*C9|(ڙkKBnYWf'(hY㗈&tÃ!%aq{566窣<ÔɋqA=ԩ@J ^o)hUƦzժ=z;Sf3oz:!i|إ%iEٺ`)3yCJzorW;W=i ?iIxI oۨզAj K}Ø vIw!(EbqW'8%H85Tɱ6 +Ai4蘸:pNj.[eJDk=Gu=VLkeOThu2Ưc`[۳rx˰U;ڷ{ %8&ě&{;Nr qyuJd_ɹ;kgW)u;ji$쩺|%ʍ&vaz皼ȩaؕC+*@j͆V lϋ炐۶K;)\xP'lK'Ji.qkdJ[kK>_`o6w9xT5;K&`7'ug5k؅]xpܳ\d1eQN#Ʃh|M),p+I^QG_ !3a3yTy<,gaOj !dٶm̈ sɱZ R5= |6:znF :Le\v4]v{/L# &<´̎xdH*ڼ5c۳I 3fʳo\Ψl;γr²! (kWyFl+6#7U sRË[7pRkQ9\Eǚc ;Rje#ل7|IhW]Y* wWpEqt#neU,|W \dh%K-A4RЫi%7<Ég7ҡ[? [Sd_dS̵ϦBwS#BUԡ:x0kPGCJΆM ;ҫV&*⾼(w緵O |0{^~ n>^h&;ޠYފk"> ^$~тm*,~!Rce .->><}7C ."KG1!NL-Z>i$;_L.I].dN-t`cZ?=β3A.wnOg>#儾Ba.5HeU3,Op@2\P@A`-l~ɲnޭ>N>IOk\, w>7N^(=S`.䉞:.eŨV8:nO`^Mn^ڮ4.>j~ jNc^>(;3>{-~VN0Vg8o?>@dz~ϹJ$ǸxГ^0j9.UAbN>)jl?.YN1>垩~??h?_?__?/o_Oȟ2,?//ݿ?Ooȿҏr/XT!XA .dCEXE;#ĉE^-#UTX$,/Ɣ(R Ł2ޤ&΄9u9Q?.]gRBHWڮ{ `U2<ߜ#~\T2Cr3hc_EL;4ìS.( !,*S H*\ȰÇ#JHŋ3jQc THɓ(S\ɲ˗0!VIBȘ$ɳϟ@ JLD+ӧPJMyTK@pׯ`YӨX:"(p۷p$km tr˷߿=e+^lQpdfL)h@ V:/MӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h89UB@@j E TgBi{)}ij^&AgbIf@Z}h g%*PdMjo i$E9iK9hr&?z)wJ鮴2k*Ŷu6 2ъ6C֎zu'AJ.@ n{Л&)m =묒".._{Ɩ{7,$lC'b 2c)~I0o.7weC=tg:3E\FmgW[M;*SvҲ}Yw_'&ƲJ5n7Cg]jv6ݷXp^}ZRtGS5~) [w'[ZW/eϫn9ہ\&vI|QQYY%vcA(\_$<]f};;%*s]2E*t*Ub]J&0 %ݰdgAlwBo]p(LHvO$ .$S0pU%8XِVN0r+GIe7iz\ޢ2I36( Ǽ1)1WwtEFqX#P@dIRc%ty#-2H>>X$j(R"텛$pF31ʥ%D^"Ӑtw+nI\],+w:er$fErBd0ISJM3kGot:vsv֭ZFPy\ d(IljZfRd8aVhjU>WC1O\U=3aR *ʃ,T/f( DZ@q J4ņ,'9$2+ɏ6ǍaӞZ!(M؂*OyqiYQE<+WSdf$$7EuY]+:+yqbZTJŽ'Mb#MjqX!wmlS'KY]:pI9t "Gk˽ݡEJJ^\$g Iѐ\7yJzVr+Gf-+Spci=6υxkK.7իh`{Znn %'^xlK<$J#wWw5UH̫ '+ZW 夣Ic{bQSM]>a"1׬e0D.M;cmo8t 'zD `+s?N4RS (tS8gQ$>֙]0mŧ!aM` 'EILTKu&\Oa"4Cr-a4#˼4Qj).]Nj.gLTD3 tru#S%R,OT]RM9d/"qxE#FԞB';0M(2A;0~Zwό-twW9sgMfh{t%o~+-+j3}3E~oVweuV6>(fj#5^8ξ/u%O|3poʋF_>_#qw? xK*3M-rg_MܤITۘފU6arUTvvhuwO'kTg]qkwi$zyGA(swx*r+kWxxsS.'_4X6p*XVv_wvbՃ>Cn'Q}gZ"m~+x7#c'VK'h^f.ȅUyv7VE34bƷc7[HViztyӖwD4h6z1lVZNhpvHv:~䵁4B$06s>mq| xpH4QGUEs.}Džkva`vx僀bi !YL`Pr27+0Fk_Hݴ[дxxҨ2{Vih|XӍuԀ:(ׇ 7k6l؂cvL (XM?wYbfbmw#uXYruEyS]hI6aC.WS&'vl}]c@ 8cvI}xIQ6B gԒǎO9Pi{Udtzć9hkxS='@ɉWn(Wh2$9ܲpexJJur `F~hqbv淍 tz44~2V89чn<'$xgW(wEȞIiys,H8Yu@xلY7\㤇aX\KU)gqM(Zyfjg2U.c0?5c旈&wy9y|'mZ9cghcED)X:(:re]4i4w~8Ebvs5i^|?SfJf7WY*],jHYvהW(3XB ou#ט & yg9j }^q7rY7-Iߩ:OWɤևmzyhj/B)x6w{* u"yZfz㚬]I)Â:. hx镖5]i`VJ{ҝZd@EBiYcZW(yӔ 'a3";A뙲h8(;qOOW{Nme>en˵]n8qbA a*HSD1ibK f)dKYTqb,jbH'xמʝaٸOPiD*BEJ> DiaGRܪ\WFX/K'Kt;+AVGkSMBZزzZEfq]Șx .4E%g{jK#xK?WcڊCا>cp:4LuZdkrzl8$ lU'L*hddZC軌cJdh}m2|!R[ d g)0L奅AmK|&3@zŅ-Ԅ|/ ~pYJ4Z-|×h95r~%=2[k\&mSlrlʼn|@ "x\M1{6shhf㖨Z\@|*źU3;X'fɝHܢ4ghU̬n$9TGFK 0[L,1Kʹܗ+L6ZjY6Zh,syj | ꘻7ƿ.<~aʜWkrPs;},zWbID铨f%ICzJ '/[x{φm{kn;fcverS9v+[ש-hڔsxtـBiMȯ[A<ҝX=fNi46zdyL6uK慬F͕;5LS(J[9ŧLW-Oyw*v6=,=`Tl ƅ ǪllFbw_[N48!<8ll:z0w͍X嘩.11<>j$f@^TcbaHALo!,*NV H*\ȰÇ#JHŋ3jq#RtI' ɗ?I͛8sɳ&Ye \3R)щ@իXjզɡ]>HT ӓaP5۷pʝ1Ew| 5Y)%È+^Q)V]*U0bk̹b#Hiex^ͺ맠UMmQ.8Ӳ*["NiУP$A `2]3KOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌9Bi'aF?XL*УXPVE **Ja)#!AƮ:j&듰1쇓Q,f+-m׆Rq+k/vZkzpJ-:KNLqB 1ݮ+0,4l8e+ԪM.j+-0 t}NzJS `wNW !!jlfˇ@j7XnlrAPmm^n?sj{-?.Wng"qi4AHt١9>{뱾.>nl p 0ƒ/8?ogw}Cr?D!F-_mߓVd.mƀ a@}{ "2A>Ek+ pZF;dVZ-a,R, g p3Xnx I*# |[q账214l5Ki9" S: dB`F:~.:1d%Z2#@퐄s]w9a)=˃d0H/:y!;9H(qlJX> \$՜ JD\zSK0,R*8 cHtɺl1j;a%R23 U#Ki\d6Hzqp4azB|Fg,!0Pa@EÀ }g+t5XN<>dtYJI'JMJ%g:s}Ἀ+8ͩN?FSpB$;P-SEˏrY#;SA4*ZN} \DʰGfR͐MiʏlT!S7Py, >5eSWDϝ=(G:9V6aUKtԝVqNuam@K #T{=\5JY`2Zdhb%uЁV#^Sˢ[-[ۂ0liS<,WaY'n\ΒUVMpHo nŻ({62FW9?zۉ0|E>DqUыV80lS.xGL~ԟZaHil51~PM"!=.*cy ɎElGGM0| Ye;*"*aZ,֗2X] ?qk2x]Y@7l^|h\mdq(WN"Ёqb:\;XΊ hrxОg1Czm Pc%an|l+OVլD=zkm,m3Q,ٽ=ChTL]E_^.7_P[>*1CKVR55p~;EL]BkOG8y^ON$%N$[ koХc5sZ1썋}N53ƅzy(5 kμl ȇS9#m{T#D0wn1 GO$ũJmHC?{Z`÷Zս iʕFIq_ -Z3bvs5wb/Q029Ld'GgO{e0^^:g6u}ó&:b ^]=&@l~ڗ/)f2Oo_ y(gMۢ3.O'e~T=rgh=8|Qv}rJsȷJu %a'sUh cqlg:(x~s ȁ͇e,ѷ7*%)v4X`hg.(qEhobWo2ǁTXVEchHmǓ_{eHtdFԥ]YTFxENI'\C<5fBoև*7b]NڶI؊Gf2r786KC+[CaIjh%Ixf5[L+ wۓ+%[̺OkV[Vyy[fHirJBvik.y5:nǂgv@Ttkc<)g)*{ Q,aSPXS5*\kh4z7K,>Lf8x{@xO\ #q]3M)>$D}vsbZjWƃ$4\c)TxGk}S)+J {3&l\C?Bd~vG$2<\zE^dcſLŏ[v;al272W13 4ť#ql9]OD: ʹYdyԅHV g&u)tnnyhLҲP{zr=P2͏+ԌlKIvmYJ+KK޼[$|]v2=Z2Y}=o̷6L5[:~͔y)_ʈ:6tԋzP/н>-ktʾmȻ:ѢWkܤ!O-WiL+ ΃L]r|۽ܾxc8gM llZyxs֗8ܪځV-ey g yym?[ )ʗ=Ht]&.#lmE:A'2.#]=@ щZ{\SXkuuIBox]4;u\WkZ;% ޻_DeŦڶ)Ԋ , H`#e`skgH%=Ԝȋ \jM0guʆpL6i \:n/-yʱip xNv$&QđYlNMnWJGݤYgh_.DJp>DcVNaT̵Юk SU&ɫ⦰>C))#2AhAz Aq&q0z ˳l}1 9q% $>0 _7/n!XJFOa| O*C/JPLOL?WoU\O[VOVFs*%pX]>oOt_WmŧnongOͪƄA/Skh[}WΑ }[_t}{+9тy+]{H<+kYQg`g%ă#`C6ջiO) !ff5YpKh|bb&[ b!759u: q>^@5ole͢[SҶԇeE-mCm’%{[W|Oيt7kjrD4y˨ +Y4ě;y$jķ.7Dj&9r6}u*1 lr `hUNE.cfi8Hj{i5򦷛~PbkYwq{馥6^GHwvKqS=S5|:~Rwr= o  W|-uG7-(7qYUO>{N!ǁXW ^u|]V%Wp;Zŧd]eV=^՟laڀM cGiDiѝuF`aRWNEVgj1㗀]Hx3sTgu{_2@O $T(v"mTxJFC&fe h#:g26|?)ޥccD38DX)pFJeRńaHv hCFU2Kw\X^s{VXcLZ<1yvcs<8f;uB8:@|\vJiNxxmVvĂ%v5Qt`8_M{jȈG!<e]CQ4eo](Qe~Dh`>^(jS&YKH3S[5zm(O'tdzhkA8Sx~W+ &[4GZo;_&Cؑ`pȨLZyUGs2Hxic]ziIKu?KO@֔ X(u8&Iyh2Z\Fs7;z4hwCiGi.uT.O<]/EQcQySi͆蒕KyrXkZGewg;M?C 4Q E,5y/:gOxxyP3!I  I_~HI)hWYWX6FvquV!'QB=9JSa,bVo1TxkrW\_8\bJYtS+(urŁDcX39-9e1ydP*ݹV3hhJ7ٞ邚O"3qF4>U3mXLsiSUy- :sfџa;,chS3ZR| 1);vZ c_$̩[X`FVbG梮F‰DNJ.59h }1lVi$qbih^HH}IVX|*}5EoTE'꜏z:L?D§86׏fj|%{j5j~|7R)xO17#8lZאֆ#T9FEgeyHNo+w&ö{q:qTxg(ժ+E99ƨw6rwLxtxfR6I:^%:WnOkGK 94&_I; pEJ(\"*:VN cz`l/c`ʗ)Zn*qX'#4Y˳j`-8z<]$FvدXJ`{b[eצRzHg;nTtXp8Fvdk i_+{YzuDQ] .tO)XL*X{sìdI^kvʝ4(v(=lW: tWkc4p&M֬KD%\bg)ZY5tH|H={e > 7I6P@)[ڵk[륟Ӣ+R^շz<>V S,6!D.۫׍zD{'a7f+Mkty b%,'[/Ӷ+)2$4Mk[s KXJFG똣x2)\<`uyp5(o9X3k[-T`TjtH +'vˈZGo IZNW[CL3)7iq܊:{z 9WZCQL{wL=yl~|l`l|8ʼz{T7̎j^yGiwzcUõwnh?{u {t5t[貘Sm3<Ԝ1Iu޼1@<ǷZX\č\f<rĶKΔXU,,),\k}ǹ iKZg<iJb|7plmuLYۭk V cSWȐFP+(zEK`Dr#ylcˋKҁIgf{Hܕ8lN LݖS]@I}X cNHxIu9m4| |̟Y{hW5Zsts[:M͒=s 4׌fkLٞ٘2]و&~Ke jw@C|>YڋY= xh#gX0cLurG뎟[i[ 6lj=sD_]ׂw~*6H\gk̒SϽ6k"<6`A)nQ=MW xʙ#5R98`y]"> t~}UJv6M ]|xÚUSJZ ^mT?0)ሁ[ؗŋX*y ph~!WHMy.|["*ϣmE=^ᚬ XqM{d1茮(\ =hܟLH[Vaf~j~bJ=z=n{ꎕ`;_EJhNR_V>gU18\i0yWڱ ք&p=\ׇ~L/$Mk7j#MXO% E?a5 [`_/۳J"%3WRgnr&fX}]fV|f'vJe$SD'LTJ+dYh:q)k]s!YrV6kg{A=e?++thw^z^|w_~EWiy)`3`wa !,*V H*\ȰÇ#JHŋ3jQc Hb\ɲ˗0cʜI&5]V9 JѣHLALJJՙp"p⃏*KY&2Y)p|KݻxfX ҧ@ LQrdž#KLZnZϠz P OC^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DFY)L6MYДVAgA%sPFۗWBD&Advdk$mdbv&rɧ'u~v@wnyPTꉛhRgꏦ2g?siigr(qJJŹ6t:)*)J*Bg楂Kka"R. ky ¦lEr{f;mC׹A ϖD[%dR%'ijq_Q@"ǖl(׊(AdF,gJflAj3:c,,S$X4)73MX[%ʚV@"*mB_4͒k%'*]GtW-pZ$ ;~-JJd^kS wT ':l$6]ΜP~o~qƣh pAǿFv%͖Yi{/#j7|.>;4@|۔wo>;|2S]&3۴ 7ᡏGkHBE22PTؼX/Q|*h"OWzȸ&1i\L WHЄ[T5;s(BC̄>wl8 >$<$'s@z*ӡwu Oxuk|LMZkWǾEkJ5CtXf_b:9^`կNϋ?$y=,~;B.2FŽͱSd!(GI="$Imʓd4fB)Y(`>mk_ eJrtdI[b2 OL2]/U7 1,9κΒ'3pP;wDfgLJЄZ(CżirͣG3hW!-ҔGgXD%&'TaQ{<Ξ`;hHW4=Tܭb7Jx4 a7 mʭ;}eSK\>\rm.oZPjV;4["X+f.:ɼa3,9CS1o7V6ek ɴRQ, M0ۀhmN=\ƾ,163RTR:lY[FOqzb~&*QGԋf \NL(-DֶPE:˽a?:kfXR[5 YXt y7#o yA4\h}wDf,?' MΛg%l҈nLCzM۴M}"+KzMQN0S]_e|xdN'z4af 3+k[ >lRo4x~U}] #8Sn>DKtϻnƔm-٬>сM9#=ބy3'hfc7}]E>4^z[/rsJn~};vՓ-zDrw-iQ57aҍ%=Tlhi#ZnO͏Hj}mCp_OT}>doTOD{Ԗ^%Vbâ{q'y6b}E_י{W(閨w?&yDAu]rQ t_9ƁɞKV>.L$}Zcs27;}h*- J'E%G'io=?V6ZӠ[&$,y`9y5 (1^_4zzd=wBI*5fE>)j8/XixC+y^ z9v8&ʤu`z+ gď`SΔ cfcY4eJz'_jZot|ihP%0ԍxBjƂIFrxN1Z7ZHMZJڈWѪ]%/J(يZ9ur\ǔ/qVYU|Nhym:hvhzÈT*i|5\ jE8v7}2l+(/Xjj~wtoCX&S!ZvZůudkO٦2؄"7-g=i2[CFkwwi<۳92I$->[F"f;x19L `=ԣaPktRzpYY\;SJxo S8fq6osWmv)ҕDڇZMUğd5{y96s{z;j]~pRb&Y;`r[~9槆FK>:L홦o4{Jf[m{gٻ|Jj>J׸}WH)֦is.&;&S}Dcb_ YއM-bMr-IZAԕUdOzۿBI,̛,Ha @!R|Zx "<$nLiu0ӵSJw7i;îA&Ê97<79 ڎX06iK4<5=dsRS.[ZI70̅D.wӮY e{Ǻ_*Ē,4vW6YȒXSLɕLPEdU7hZ=Mk$eu<,HuCCWιicͱ+6YZ\w#9.\lMjhLL C\U|qa/,h$T# w̭x\䌰DUk_Z;/xsh c~Ȕ4ӊj8}l #lsLFUm8$~WE X^axzh֊ M&9Ģ̫{G:x8׽X =~2!<~H.3ܢ3o ≮IB\98ؖpzry=S ,J|S!m:ȩi?F_WƻmnNVp;lmLq{KAzj}~Smgl;`yKuI_ȷ$^  -D9h~onQn_o?"o _.1LNcs $@>D oSoVUN^,O PԞG_H"b!$;_oYclo`/+|b+AyEp߽Do#_l0X3j^A6D(q?5Oj$R_~o?vS+[/iYO&'oOOş}4_^D&+$X` dC%NXE5nѣÀ!,*V H*\ȰÇ#JHŋ3jQ#tH$S\ɲ˗0ctY?)ff@ Jѣ m"OMJJU>SpZ\ÊK,RzEӟkʝK.*)( | m/ǐ#Kֈ޹pf̹8\ ßS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)aa$ASLᐑItBO.)9 %@M6i@Q~)dN RR 9љ^vfO'AV@FJAj>lbV:y٩lBg~*YjziGFiJcH2*۔I$b1;j& *AP" &>9쎸kB+>jjLozKdy2*j~kfX&BKh ; qnp>Z2lLё NNƦ;_^ϔF<8)V qZlA٬*ݫad쪦b'cE§>Kuԓ*tܭN=J,ȶ­v pk$)8oۇ0q/oS?7^ Q)r&,kw&x>Pn  pM>hlpJuAf yW)2m%nٿưe~̒rXφaBh.e]h*ZZA0mbd%d"wJ^c61/}`ݧ+$ {iT(ĈPnc^b:DJ (w,ʡZJTܐXfV)RYJai||T$=?:Cհ@4"ZR|f= ^Dmq&9@Lh4'|5+^xiVГ+IdH0'EHD咺N:tͨF7*񮜉ԉfX}E>ɱf8RڽhHIDVRfR>Z^,"€mv;$֐hS cǐb_%L,n]dUx~U4z1 v툌<~u]Rּ2n NX.. V%fMV[Q(1&2KSYAgزqk7,WtJ~t[{b`TmUwE.b\YU{Ԗͮv ȕ2tEҭs-8^EVQ󺷼CF8l^J)ҴE',0ڂ+ !W.Yg9cMtj*ŦjX4pv?؛% k-NQx-̋u]ں11[UcSM UaFˣF—ciVd^Z%JJx#&S= ~Q5ЈN5ɁnV}4 jeޤ)}@pibX* %Z}BRy棆_tޱqT7/;kOu)M`Ka n JmZsAŭTM<&viܾ'ٺxpC~h,7mxhN'5_w˻5S7}.p[-px;8pœt#y)^qxQuWfy*U}-b[b:N#׈9Wq[F۔IXm؜_8eٷ'%NuFKYpVrƮI&þee?ӾNK{NHkTc{w‡= L[u̽l qo0 (XXv`qf^"_[e/HzםsO0kGgtAk|ئTЏɧuNb?-y.X/It.H3AKLAs pmd_5TYWoqP~d3aMDV(cmRn jAmcy|`!̆*fB:G%s-uFԁ,$$_umVkVf޴=+؄PX%\SxX8r{WK]iY(}_|}g`4E8qdPqh]~'򦆺s8S8_.vCa#9=ǁ5~ rHsLBX~8Rɤ cy'rH~8h7d>?5lv(Cace(i)tHȊqKm%B,Ӧ[B# a4(qxf"(ZX=֌(nWjg ٘VZl 6~c8noՈЇ%7_lfc/fAJ~jopg8ab^"9t!^!IO L0M];q&8}J{uqmkgtciSדTrH?2AW1KuJ2<@$r}ZoPä)'sstGbz/Oss#mL-t&:]%Îy9fr?lHXa+Z鷘uvNK'wz:}3D 3=D|dGbuTy't)Umg?F5'fiEyhG\IGw\՚IT5 <,9;6f`zKvpg5:&t9V4U՘ 3W[54:XhEcvfYkIF]FJvj8©2!uCY$sƒ&GJ}y=j@hFuQ'5xG0Z(\'}tcƤȘ5Zw8jIYz|0?x$)k?RÐDz֓aF9P8vg뷢|*HYxJ$x@ߨ.Ni&biXDh4ew75ojU0Z8Chv#v%,HOnr|C&7EaxlfԩūcZIq*=h'E5CI|Tz J?j-Vw(B\ncLUy[Zz#Ʉ:1-,ɜ ’Z+;*[ʦIʼ;fKY'GHȺKFJF}ŝǣz#q8K,܋/EdPfDͤH#SӼ |0ܻLU鼩'a:x{ MB-䕾ejIordɲ'jT[EmIe`C:Tɘe\`IZo]@ 4-O'0XW|ᶴkzR?KF͉$`csb}CO0ؤٮg5<}4`.OZ 4YW jmbd176߹"[N<7)ܭމy؝ݺWRFZڭ]W=ܭ}?wm1-5޶޲X9a $-CxҸs7ue8g TXfl.*դdP16 =TnBPT3Zfڳ'.Ueh&8=n=8.E~:zJHeLR+|1ݼ=iĮ<(婦Y25c%_ZD|ˆWBN*ʧo ɦؿYLwE@f^ժC8}،{EXʜM ]T]vztwR1OYg,+gj\ijލΐ:*Mޒ֭,_6?19o;=,=: q==5ҰK0}aFlrEm_?q$UDԈ \l;63ds>}bLZI{ XPjy5NO;剚R_qa?%nl9_&?f]IZ?,_.C6 >A[%`'U}yv/FmY-E:Q#4w$l 775vUAPoKFMq4ǐ#KV [oƅ;ϠC2>5MѰc˞ݰWn,O~+ 0 T;VУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)t6ɐ9RA*ThCY1}B*PQ: Y*(1E i,JZꏤ륖*Az9뮘*訬Z쟧j:nڬݩ-|*+mlSܩ+*̫.$n#^.V+ iй:{Glq"c,r>RL4?j?sSA~;<~~#P+(|3y2v_a nkwadzz/\E {:gqqڕBVLzhlj#-!E WofU>x@^ )D[c\6ծ@ͯnwsû\@!Ř5 fhK_wB($⃤\DX>kyo>458>By $ :,yr+ [;CdTeQyΫ!|7IV?"%&/=67mL%ꛡ)Ϋo-00˦>4TAd۠yk \Ѝt#Zn_ A,uc!,f~cO*k͉![ DDb8{[ [ļ5d]HR5մUwsԧ!;SLԨ*#<3z:2)Zu9quduٹ~#Z߬X>AZ> qImʹel,Qk*+9O(w]oguH>L9|f5=@;޽_ff}0r+̮Uxw`[mj#jFϣ;.gGOn5_ww󞯉^_F0? ѫz5YԝN3 WNГ>KQoHֳ3j;ypcrziav;Y7 v!dGU4L#${EbVikܩ}7^@N P{~xRa%Vb=GaW]¤7 |c7xAghX7u8uk{dpVt奀WtQÃtc:8g75vr7qjgQuggJrLfs$QQJVvxdI#*Se3Dy&ddqrhT9f&v8QgrqNXn(pASp`;Znl?0vq851s-zFEsOhn6/$lq0B[dPݦ4Ĩ~r~Hb+GbcXJċ`x)@a.A**=h>.HZ&p-Ԏid)Vv{(aKhhJeiC I.%I$Kx%GT77!*Y6y1lF˸qT祅<;EO_xj#I4u1Hi3@j J;PM~f5(L5=#㕕92Gcrg?iTG6Nf)oaԓ DvSxє&0Fَnɑ(i\B}瀴aPYf;seԈF{y`Z#Cu}MTXim7O }jCI{LI/ SY7 DViSi__l9@QrQrQi]86MI0Vz^%Bh)sL&:JEn&;iiiX3maXx/B b q qfL @ G&1V|`Fbo/Jd8GB-K*wi8 og؍CBF&*qNjxS8h).]n&ʤU1T*(VKXzoUhM)7BeDB|듦xn),rZi٥69Bv)'vi7XzoFfڪJsҦђ骶zڊ L%k$S*I[/;:ᵪ;oڇr:A^)jw׬:ja<59n "mڪ<:VfĆm+3$F(8ԗQKp\>nN|K0Wj\xtJhPxsٺx> Ԛ $E9PGYl(V{'* 19PHei3vN,+9a%U t?e\ɧS&X=!وdrF6Hɮ8As۷~Cd~zgKiIT5Ykv[9:`Ѣ1,>m `ȰiC+HUw;yX+Yq)hRA(%_$#UZFyɒ8}_|y:~Rl9旌īO|ˋ[y¢[e'*IJQ5"|׼GXX\t<"L!sCO 3d5<ܰ>4ːόĉ,|1t <5뾺,ZOcc{(4b<-'ϷALÃe X|+ LVBɛ0YNq8E`.-b8a/:pz^DztGz4!LqE-ŔI*"u긘IxP&DU 8:Fh1JxxW,ږ[r֖Dr, ί>'ʏBB~io`983pȴU뺶m貣d]w]:Xy \LG̼7S[W)7ay}R"{SD}|0/mND[XԶj54=}(WܖE/j=mA f*Nk]O59fV/ĕaMK\XD+׸62;,uyGYF2d`Jȵד۰XG]׬)ۚk.Tf%\ty%ޫ,zns~KG⸆ѝ=MdNeMPz)E,Z䭐١okQ>;΅;n遜pgyi=٫Qc,g8ݟA+I 1ھiq\hޕLJ1s.E,C]S $zIDxJȇvm?op+fw ek<o4qM_K4|JL:8G~gC-ޕdz9N|W>:2y{J$ k T6w6Jӑ6Lwʕ$~2]Ҕa^G~O]|Ń^iY͌!2O i^\OrH^5N_]l F;ɩN< \\LyVڸS $Xp[ &tŢAb䈱G%9D5v,%BaR !K9uOA%ZQI9^8ś!ĉͧRT*4rH]#jũjӧ&2=0oYڗS*%\aĉ/fltC\NTƛVn,3!J>%W͐_lhIz/f=o'Toؔs4dIv;/bұ;]sGZN޹.~{ϧoֈJլ{$3-"ϴLPhl;0;,6պ3&r>K4Dyz볥o˘;WB9$._n\cpEJqJ*J,/K.K0RL4TsM6u*ȚtHL)s6O@tPB 5PDUtQFM41HǫQL3-*KTɸ65TT9BTcu,:2qHz㕬L3hUvYfKkI* &'o=;;t'qYpʾ-3 C"dR$Si^|@% Q{Q:w'_QufB-LkVח4&XxdQExX%v'a;ټ+/UKygBm--4ou]]ZUJgzjj=Yᚼwk6lV{m3s*8ɹ{ܯ &(1B|oƗ p(n<;*|p"GW\??\u~3a]Is M?]I|?>ZW7#{leyt{r7Mԃ41W\y~t{_̻/I [w6/{֛h@QolcIU?q>g+# k@pM]@Nw-*h3~5!W2# PXl]OR=ށPI:K~CŀC!=la)iT|0 yh=.#D׍@;!Hdf VRN,] sUPo S@!,*V H*\ȰÇ#JHŋ3jQc t R$ɲ˗0cʜI*Lr͑>ѣH*]ʴ Q;{6`` Sjʵז) (2j_Viڷpʝ[T(*<=*{ LNvJ5|_[Ð#KlTo%|6ʠCMqg!#w@ף7'n+/ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXfS %C_:HXPZrAk&ԦBeygrZgFyei'A\9&ɧ?tAh @t'}F@y h& y@2z)~j_9*B*ꯌ.ګB,ڊ벺BoNz- {J6 Z)B+vK2K+ʛZk /|({lo>OLpzr뫣v 6l/"e պmv:GsD7du䪅;l4j\>7Px4k3 ȺY\ u--|{,2wÉA] k]e-v`8FO=8).-v٩zuz9y d_MnCh=;x; :&˧>o-ǣ8鏚mvC+~ cAn|A9[jHR.=L}6?: qg6E$Ym}HiANXjT1CRo#l*muv5&Mij-MC~uy+_uc!+u]hK"pwva CM`Z 9'=~Zq҆ə4sKA_qV' tsy @BoO 0{X̽1Pw #lCeX"%q]n{e*R] !Isə$T$HG= Ӛvj:tr?ȇSnAh*uzJ(ZURp) 5uJJ'pH#KGiU^1Xo&AO͐*+UM\¨ubNf1xu,TKZJ2Cr \əfςv gXAR[5V9 2nڳ"Ln 6p7hQV ]9rs1G7jJ2꿇2 ^n"~)-YVɪ\y'¡Soh=}~Cp}W7g=w2}/S~o~T1;{~p7ueHZ|I0BTzTv&u@O>yl"c{S+7^L/|kWSFuwIAoDxj`b]V>>e>HS,'2?VMdgtv&vT'=|'|Ÿ3~Ȉfm+X5Cw/pxHtm59ExTިS2o|vgg+KWye,5wu0W#EJg1(H [ƂT'y!*LjTlًɵ`Qm(d3{Ncʖ*钁0{.Q`L*ӓhw}{%S8R>G$psvS:H{"#fhfr5>dzGY= C\ozs1/-bWHcQ*LDUsW G$u;ա,Sngf*h5*Ull 35" ܩ;nU~z/f_st5y iWu Dʢ]ڣgj`ؕjY(Yd{I#6ڭj:z=%k,T6r ֌ }骊Ǯ{86(Jg%*<$S(Gy7|c_^xW<dkTWkED?Kn9CֵEe̺uZ0fZ:btxCr= OTZ瘦OnTD1.EB+Dt4VDa"VO%t8<ȇZ˪]XV@Feg*aJfTɢT9W;\UD [ & ff%+j(B%DղZThJƱ{TY*+ۻEPNk깪x{:ǚF6锣fo/4 +PQVlsca5˪v.CTpF"HI9*:Ņ0g! SyY쇬X B4Y0w{.+ K̩ǗbU)st%f23iW浄`:.7-+?o,LS^E=7{$,ow@LW-#w!|2 Cx Y?A΀}ڲe_jAIûGLx\Y|/r{\8 ,"rQя¢U3X|c0-F7D@jyv LqLCs bZϺj2?}?]}{9,J궃|,Ϝ\V#K@u"ƦW=dm%@Y#ɡIzDFQq=y43 &FřLFbȷ3˹]١j9@쩈$!{Az.tC_eOj;E4Kt!x8bdZW~j`v aػ1E2>6z#3 KJf< 3b8k,T#6[4`ܬ(Lj@mE ۙ&)s [hω1ffeܹfK<:ݺ7ww1" 2G#4E{f;p+e=DN%Y\˕K^NI؃jMX~Fn:^ļSǕ" KLڏr|E[Ǜ飜lqLF@ ΀9↾7:KUPG2ȷ۸mn(٘-]G=[~cT+-J[KYRrzNuyGu|{>M5 IjA͝C/#v6(B~&7.)ʉbNA ~fЖvg-Vea 8J+A(k)JUilX3~vevmg0]%P^/󝖭MTO\IN> ѓ|Ay?9CBBo!hO`e߶@'ɵ(G$LqjⱦPП6zS:1q,)Cuհ.{mOk*FXJ$@ЯQ S A<Æ\H +2p`E%bѤG :4׸5oa~uLz}u)TG-GT 3pC;\ACqDK4Q@Wpb|o{˴ ѿrH"4H$TrI&tI(s::QǛh<.)(46l1 )ͶL9s,͟܄/;c/sQF2o<0+Sy̱9+ -$-AiOQV[):C"NC#Ԃ5G B5l;%XduYhL͵ĺзii5WAb-\s]vSU4ZxjVRm,S[u\ u\gyV[J_ͪ3P܀An܂ 7ݑDbߊ*ӌU"=Yg!r]Mnyi&PNͮZX߳!ZUfդVYh_gV;ϵvV{nFrFo|p 7ܳ*3M)*Tɳl3rnm8wQtH5W-ұrLwRvR_v"vIk+0rk'=y'~MEa}{DܠɿR1'rKAbkصNa$#!xB+(=P;<ױwd!Zp"m KL >s . l=~a`j_cb 0Yq AIQx<0Vp;⪎.۹pIHGf/vx$b%w{do%9sM1Hzd$mCN{ sٓHRY/Sȴ7 äK!,*NV H*\ȰÇ#JHŋ3jq#Rtz I-cʜI͛8s|JD衧ρ),0bQUJJիXm 4§G!بeӪ]˶ۊ>CdtwLN(VPU&@`Ę3k<c?W|\9^ͺ3m۵GvpנR΅KN]s܃!ٵj^ӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌n=SLᐤ U "An*B:TjzЩBjiA: T@Z)K[+ꦦXp+ jb&l6{?J>keZ߲B۪KB;PoN;QV o# g*jK\kqVlj̦%LО0R[<(mN-LIDŽ-KG-TWV2ZtBMcA_[=% om3]bcYH]v,ʼ5 uݖj3ἆo'~xծK=H\UG^$q^M7 Nav+ݸ ENmp.{ljw?Mnv->獯|Kߦr,EbHOn5\_FJa T4M;Nrf@`ZWJׄ1N,x߃#hCȫrTbVKMv X&"Z ׿>_RgBXFn`qLA59OFSPfAW 9#R?,!9RsU5F^wI5Xg.ҨVm{,mL6$ h 5==4-{W'gؒd3XKz[ v^#/OX;o㾁e6M~۵W_xr^]}{,=^Wh>z>|ռ1O\9#j-su=ߕzRs{?Q+{oܣ~ONtw:E'9Ց@T85Q7`v6i1O7uTvrIFoH_kw@6BJ;!@rzR&u9lvm*Rtutdk6f-? Hf(s=i xp2(LC3&'eh:lǀA~1KS7h3:K84<Fhqs/F$#h4ou5FhWݶ*Hyb;%8-lsTivp9؋2~5fq'Șʸ،C2YX$؍TB~8Xx蘎tC^_b,w_u*HdwGaWbt7Msbm6F]N)4tI}fikF͕c)T<;v\^w6`Z;_ce1 e-M@XcZaW4m/u%IhxǕCv2UT}X)FqIFՃWZj]xx>'y 4evǒ(I}eiGㅙVyB^Y[eUmS|dEZguiW@`Ccwu&Շ%49ișirgV~@`ER!Yy^َ+ٝx{G:+IPCJ >y>+) YfAfHfȜByL)zjK~4KX.' jCqDz9ڙ_&iX ʄ}I2Yk%5xu)6X-zV/UcdFhŚ7ZZy.>jз\awTZVXy\ڥ^~KyipCۙ9&6yiX:j*)J%* xt*`YTwnqc2O䓁g^vf$eW=iٜRcHubyshjl8pZ24كj}F2IVYsوԩlpLY<;XVC]hD^}TwAJws3{=nwG5D4,%ruY. m zqv'TW)VC\9kB> DYk3;VtyxG {"zZھ } ,9H+w#Y4I$קٔ8L [JyI6j4vcMr J\֤:2 qsg@ {y&l6 ʜ\ʦL7ljx%XtѻvZ1kRo R7lG̨=v+|M]B$s>Hpfeɱ#-,i`xWH۬\l_Z :C3gjZṬɄRDzh ȽM<6=m[6j[rjh!-9"u>DTF,PRݳT-7tZpISz37 N~R5Ꞌm.)dJ H?ƃWtg.%)*Ijz'4sdz3!Zo‰Ψo;Yp4wfL?GPϯ X:? ΕIe{jݕw^p;j4rm.K?TBlD0̮k~)kS' J׭u\]GkW71~K,ԟU>^I֫r;:ʹ caaj˛iM՘>.yRh'#H 3Ə} ol6~V>g#Wf~2hӤ,6~.(`V}"O=Υ+ .ޥ^18j S]{?+}n,Ljt,}M9]5~h|ZW,FroZ{.-a*J~ã d=K*4sZYeir"||qv9rg˄efn&^dx8m,~6+H"vFP"@jyh'[kMj+HGWu%tԞ_a#\]zJ+?DbKKXcSyz(;փ$kC̮}-x H9Ys宏hZK^_v=Ss;-lЕȁX;M ;+"NH\jw7tp r'\zOy~gIKXxi aX .4p|hA0'^#7nq—2(RD/UD L7GQI.eSQNZUN?5z–y.RKqʑBEli֤נrIKP̢+͘7ʕerścȑ%O\eYfgСE&]ɛQ;FkرeϦvq٧buMvqo8zfsѥO^uٵow&'|8Ti^{N>Dd IJ&$CO~tE";-)b & 귿*)k{vP-omf*f:ʩ뚮ڰ/S(̟[|LZ9 L7tz#RKQatxQ\RY5xZ*D_kim. mt97lԷ*wvÝ\S0$Njj @:iB֚;m:k^rZءg3s;9଻*n.퉋>2Kt!nca7m>O0QS}W'ۯ]M&®V}S.{ϿeNLxU-%9C@꠬t&8 J k0  g CAT rB6,'-Zc$MVZ^R'8#oN!ArU }IKrbT(*S$B/P눘Q~`=5юj H찍(b~qj,Jo+ᔈDd#R(#B,=Q|d:/%d8i}NJ86R21l]_$y@pÊLM[̶A'^HI<Й?3Қ?1)G )JQ#.| g1d@4D'jя q1%;tCJ((zqirj Dj:4i,J=(=7IARtVi~nZrfD5Ւn"^l^G;UUNwYmVu/?*rJض*BɇÔ.:ͲUY^X-,2g}ĺUȭj8+Udrˠ׺ V_V\TJGnf2A&EmRIYZVm)TFSQUsiӥ>6EcM\6trNJWZzSv.$L]4I9qY'lYRliܞJ-b]Lgۻy 528 ]ljum#nZXVcsϦJ!" jt<<^, }JqWd";P{+}ᐣ){Vm8.k{ɘ9f3K%w&ިwr(-*rr ήGlr(=X،6n3C*]#̼2Ґ:|hvx^T(؝sǣv)hW|6 ԮqSf<ٻNfVM^Kۨ|.vS = Х Ja$FHvSSP2]/Ow)fJ{;M<>M&\Ѓ;m-ԟBY:ሯc_v;'vM.5<+Yalsms+Uk+R -}.Q"~+=8L&lU`أ8ﴗl[ /uގC+sܼ+W7W;lv])oQC\:5&_lS>cGv.z>u<,7J)ٿز""=9eyU=yW18&Hj?Gɢ)U6*S bU7v/󪚤{K;{4YwexFh3x/ E:+W;\W;MŌʱhSak8IkL;3yS{;稣88?f9(nij9)}~nh/F%Sct[TJ+Z>{g6i4ܘz nغ8 we;ۼR~{C }jk ۷_*WJbɢs=ʊ\%c`XԆ^jws][Kg9) 1TXmВ[jB^)y55]ɾ *lvŸ";yV}RyR?{DTQ,&7/>f1EZX*c{Y1;s>,K5QYǞ3ܽű^|KfFgj!(̽b\fR ǧh][la h/1%' *g[x||*bǹ_?#,gl8.xWKNڳX5ʽd.yiY~X4R{gZvGM[kQ櫋VIe3qc[Ivt[ eU u۠,vG*yٛɣ/ :vax F|ƃȢx!Lca=3jbUWm%|mlxqɩwWyױj¦m8w7[7WU]zZͩ|JNٳd[WLcY~<}ڥǬmK{!Zگ}۸]-t_Ewd t^ds麢Mge hfhƙ牾@4覙q~|sMt5zP^]F/ ̹3TK,etZn$6A5{Yt ʿm:*֣췇_Cdnz؆j;N\\_d1{ }<5ibx>ɮ~~5X ]  1s_ S ul/x >6l/ O٬)kyj Upm\?@qknjoA_ U#XA.dCX@4(E5nG!E$Y2 ND2˂)%L6k4Qş=%ZQI;$Ȕ MprRFx P375ӤE{L@tPA$P#DUtч eQH#ȹXsT?JTOhMRPC]/ !,*V H*\ȰÇ#JHŋ3jQct)H\ɲ˗0cʜؤI2RJѣH*U Υ?n իXjӭ?Kٳh*2mBʝK]:y߃ |4ÈJǐ|jw1Ș3kk[LӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@ ɐ!)Q1NdASIdW.9DQ>_ U*}[fif m!$QNpyW9 wie ꦟZz)S~*tyCy)ALJ@Zh}笃Zs'o⚞+' )zjN*6[krw"+jv,vYhBI)z]+D Oo~j N)s% HkL xMra,W+W9KDTObiS8'0Yvk%l&WXnl#MZ:f\^iΎb&`򚉌%9B{$MzRBg>-)s"ٵw <~vh8 MVsb  ?-OМ)MPS^#IOGӚ< 9*z\BŤO3oz؇J]*T’ԤԎ[/3SP4ܲ8w-Wu+0vK7LSa:09WMYUjDAf!TpXٿr4 heW՞V0'䔰g֓UZ8uo[^ۘ)} a*uI=2S{`|Kٴ*b.qb,iauWۜ¬j{Ö9εmu]ewϫY՛>J^z>Zj /`FIM5p`LT_VyjYE7}p;L6J'K{-a%lc:؆'֜Hb1BCVI!̇Im-XpTֈ\JR\#XÆ"W2"Q0'qVqz`i3F$Gv*.JKړX5s0df{Gsm̴29^T#E.=i;lMe+@7˼LS2+Jҏg$b_Ot^ӣez)]WZųsYaf]^Ujk՚篋}SI9{Q; 8Uh's+&q@}YJƨm)9Ӹ͞RTRimU09u\GwOi4Q,@ЇNtHOzV,tP . 'SXϺַV4)-ѽ!5À[ݥY:ۅnO}]쎕ǗO54)yv)9n+ $Vhnٕ<zb=}%3$SW}QPQhiG~TZ94tKob5vzjn~)OEeswkؘ9.xm&&l3њy>$d߈ &XdDLoכjy怪ؐ{;bYeZ1ه._LPE:~D6ai)IA%$~ מV>PKY]dPxiXKw'7ԟß>ȓ::Omq&Yc Z(,Z9٢2:r@k(fN21xd_\75!ZhrTvs=VD>t6,txi8$d{5\>j']Z{xfڃ81(q؍ =6,v ҆WHd0`fNJ襉{SU9Xdc 6N"괟婽[IRwj_u:TzNH&H=R0W'D7duX6W| W$JYpRJzwo$y'b%d +t/;X΄M3L(Ȁr Ua'IW@v rJ۱#bZBiGCeB{(Thf,gmטÙ~0k[F)[l11ꢧG گ˕;h 9#Ɛjx?yooj)UHVJۅj~Hg0ܨk9oo{fE֨`ҖiiiFUwmm!ur\vkčзUv=rn9;zo{f'V +pdEECEq9pz#p3l VYt.Z`M,D*{Ȼ [4Cʎ:*c5T?7Dt7ƛUwHtz2+!@W1CIi+/8f@[\}Xkz_C_1{ ZEu]򫳊j{[ƔF|Ѥ28+XR :k;ئQzyKȦ,Okkz6,\`YiI@|tpgJt쏣n`)LMȸ}u0Ū q)HQ{x-d쭁ȨDJAt xJJC k>O:hz\Ȇ\"3[2e/7t,+mЉ睻HP{+ʝDnfp Jc[KKk=T_ɉkz;)*:ٝƂl{SYٱ̹8Mj+~u̶,W |U+\ɾbD˶Z)Q @\fm V&g ٻЃ%~,]-#  )U.E!#eyы+ѯMMmxsJ㞕5t,ӓlr $SvL5u˿cfwTcB{y,gl^4m`+I`rz9=gҐ\'Dǧ)}%{ṅkhoGkrKk"7YcnG W-|ϤT]aSf3ןtgJ)vq`rh UC՛Yo=tm=j&;]ݽ1ʥ8&<{J{voI!wtܗ%ޥBTZ2]ƉݲR&Rʴ3xyn2C]r&!h⇵;}XѼۥ-6ǦM4Ӂb{OenzZ\'kϊý'iZk#.X'G\7ܗRX@lBGՀӉ^!unbUiQD*x`̹{+&+@ ;l*_|W|盄VxS겹~%\y fl,WTgv&[|ޗY*M 楺Mꌙs~ѝs1MX2XNqBkNKJ7Z 2*xk>l> dojnjoLie~ێk:ߴtJ*.j#E%5:F0npx.YLs uv颮m~7|a^lb~>3Sqm}2ԧʻ*DZh .qJM?F7,+OXo>-+21͜K-T_l/*me>|l67Nxx[S\@%sV;=ϐKF=qo(,ˬ^g<}˒nuOM\k̿˩r"}⚶'idЬpnkTn_!@GwkOvl틉 s5FЬLBlF._N9uq69{ ,O*hŀ#H@aQHp #bH1EJ\ǂb(rdG(Ov%I1eΤYM9uOA%ZԨΕG.eSQNZUiRYnצŊ5رW6u-[qΥ[]y_&\ذV\̤U|e̙>~Yg'߬iԩrڧ뚥UϦ]h2GKJe9$n}O-`iٶO^λkO( /Tڝwu|*ϏcLH2p;n>#M{cA P;l/&TqE+|DK<0i3F_dqH"kskpGZbp?T%h? 9,K01;D%s3ӱj$k28ʸtP'ôNK?tЋCp 4GB=- !1,*NV H*\ȰÇ#JHŋ3jqc t IH$Xcȕ0cʜI͛8s>ΑU@ OS]ʴӧPD¤Q(uȮ`ÊKEx0Pl6ݻx`B k Lݾ ^̸s[`,eJsN~̹1*yq S=p3װcVoOnks@bV^5[qУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tigX`Pz.4I)hAyZhL:hD"TiBR@c(J:Qj*j2)>N`*|*П)Cif':l K;Т&ۂ{mv{ *ښУK럷PK~ʋo&{/,l N笭*+j ~o;˿xF y2˕,K l*rL+2 ^!Q3Ш<Z,v:{Q?KTGojWDw~T^l&28Sݱ1Ml_{GngUo)8"p[ȫKj8hNvA)c c3l8ʈh7/\m sxpl#!A1H (&n #И Θ'К1kXE;vl")kjSS"UmZ=az6WQ3e*unǨԡe)M~*jZ]Q(tb [Z4&~(h! j됊| t+uUpZתX*h0ؕF̌xjW֖sy4kAkͭn΅3)%t-Z/ಯ-tib\v|UFx\M+ѵcZLOEѽ}{-mh-m,^ES&Yjˈn0sq]bEؿ!k-J-q8bT$Ҙ(B^L|aj1Oe]{շJqfcܕƼ1A2VGT 9]c~|~~"OȎ}+ÊZy3'=]2l {<ҭWA90`+"k;Ҙ4Si+i"dJ5MRUîF`,GΥsEĹStQT,Wro5Baۚ)MGYo)Rcf%MxдZe| hFg2Xj" fIWx:qƱFrݭv7Ƃ[ k%\vkĿ54͡ʸR6cM1a>QiYffn`t搻.TܨDchr@œ3:tGj'p,+#zMy%vV{U!nzދÚuذٌZ#E ̼iW"jt9\ -/}VěҨs` l}gO[Iىfqt6mof=W Uu56Q\$$KSf^(u֋Ȍ1tx?yF4wwxc1Ui0tYhb{(&:@oxRW< 4_5daGuVjh^:uHs9qV%by;2rBRFdtqjfFxO0)IKU"EЕm%'b5I yN Y-o2#U?s4.yckfw,JDus7H.*ѢGPB{xw,^c Uhy )eThRgv֓R`s`jٕ^e6%o^STJFKcC掎t9=dbixS癔9!xtvIF>Yue)7O}V] GXԛI9ه4UW_W'7xC`#Մ`IFƀV Kp{2S9KAG9aiTÐ%6!I%9" gD 9Ww"`AWHUYtCU&Ó JÂRXӅYxrUR{Sg0j!KiQC8/j= |T8JYqP#}YeGC)5iHؘ!jl9aW9*Y*uʦxzʛh1Z9=L7*!}iCQ66d(MqgrnfB6~8z&naoiRn#_ zSIJfeRoII -hLجf" jj'oW2'h: trolci~z"ʄh艳J{wחo}.#/VU{}iox'5wkq1^ 3aP#Mep٨YDǝ9jw\oz|̧}<ȱNݿ>k}]V~g^Y-L%c1}XfjCTHKs$,]s ow>E\ Z ԨoSﺮJPOSI)| 8ad_<_k}d.dȈL.l.?x_)yMs)U$kn4W -_7IRK;ΞJv ,ҚnABKc~à|밈/ >rB1W4Xڷ֯Ui-IkWM /+U3gg؄uxANĥC)2 NQa2L0 1RHǍ!5LQdG G4IK1eΤYM9uOAJt ʇsE-IxСGR|pС]aʓ,Ѳ45fKXz< RPy_{,jŊV$9\N8XDRŘ2ݸ&v sV*E:m`رeϦ]mSOo'Nnqɕ/g9ԐwZyb~3ŏ'_yկg{χ.UzλMݰkl5&TpA,/ B 3i:(1q—3 .Z11jLCclL *˜/t:bpF$T2j*4j#njDM$:N݄\rL2dF/J, 4-!K1KE.OKpOK9!4Cls=2lJ|(NBb,벳*SXcNS{d>3Т+tƩ*EOYUvYfuYhvZi.Ov[n[pw\rכCt][-׭\|uTǬ Tu&{mmQvG4_ ;m^'I;VÌOq7D&^qSZ$eF]n(d{eqTM\U2D#d^Y2>mfyktDLNJQ6O_b:*նcn[AӴ.%th~_Q={izݔQ'I"r%upC3Uѳ.%?nS|;QO.ZIuMĺCf{qT4[|cڣV5 ^}[W2rMKU\e؇ڹyw}~k.k5P$` SpZ\ÊK,RzEӟkʝK.*)( | m/ǐ#Kֈ޹pf̹8\ ßS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)aSdBHAMJS6T%yO2$IJ&cZY&m$g%Qo]Gi'c҉P MdxNIh)P%h9Сr.?~).ty~z$&ꢨ2PjYpeO&f~%~f쪘"l,>+:,vIkZ,AZK賶빓*iBGlmŠ+ mлզw)Zjk;Ghn 'm’+ҫp!#D+;+)-DW.*HJ[\PG-m)O-X\ff'.6$}=*beggMuEWy4oKꤞ4k.%Җ_4R|,݁#~N:79l89枏^s<{Sݻu?m[Svч;v咫w}^9a/렦q 7zsw*>b<ΐHlR421y{@zm 2o 8])\GEAS{t; PV! NS׾\Lc UBrBp`  x`VE&ĕqudH:xcG=i# KA#"=E:򑐌$'IJOwSB}| 9R&ZRy d^QR~VJe3yVj%fI[{bLE22G4L&o[E2)zXY"H2On錘aTk/\7a4g )M4_9DqS@>lPQl IjiJ*2A9%Pq"<ȦNf89ȏTwAfPO <7Kr FEƺϘS1L~м!VVcd*POP:kl©[E)f\}*YREϻgH].qϔ*k@׫z(gTIZ;o,RF3p hGuVJZ괛ԤjyqeFm{^ELTWY(מrJK![פ3'&og+|ޝ2>qVaG˚6l2WTKZkQQn5) pX=W=)/_=*jp-]WU[{Yz<,rE< OWǭbtn)_Vn9vy#CFmqpf-7.SVEFfyUlOt˜|7$0t[e FNc<~ȜXs?-7syOw v5ڊ\DhKjյVM)4>iWUE+>+<g5WݫDk.jWS6PBb귩_TbqYijLfuC>jëNg ]MP`w[` na_$t2)Ћ}uxj9x[`Xj*{ P07'<z99KwsF.iǘ^pc]2 NkIzt0T+jK9`LKlvo'uݔ+0nvzI^;JjXrXo'Vi2\s?~%o ^v#1&O~u;ӝn˛_ ExԻ[.AҼ@Yfwc֞/ˎpB=E/C5n64 ̈́D]'Ygx.2n.qb3t(XW%x0IXH}{P|G.7`yR$_yjup2U5Lb$cJ`7Pf(ir4&^Vip8vY&Wtrk%/uGT&13x(ɳVd0$@8׈w:ehXΈUthoq"y4y?Iӊ<4r?INyX)GVh8h:LJzmT(|K8R?h72e(%*A544~K*Ttt'5 (Eb>HRv& ^ʼnbEyT_wd(kI˖v&lWxX7?6:q t4}9/_t!-{cv.8Aɀ}a!*? uGRF?S3::ձ}QMeW,o۷eg|zuSJmVfkhx#}z4zʊǖ7{ pR}DZD< vy~Zi6,|Jra Hk{xˋ Xv)ʞz\X{*;Yi`;EIȝ塦mb,u,.ȺyYG̠)f<9l\NSΝńi\s\.mYxlw{zC9KzۿlKͅ - ѷK'FHq:i*a(u%a?M-J]Xއ䷡Nm{Q~X>$]\.^寪R9bn7p7g.k> -nka}pt^ -Dy4prjNz舞N#}l =鏼K ξ~CJ2Je-ɒsɅȍٍ̃gK,}RؿV̷iUětFWYIŤC7гLp'6>i]|tN*jiJ.nPˊ] q)1qA]X-AF1,Wi+! 6_rS)Ob]B$?1O3O<4_k8=Jz={5ͮ$>J1 T=/PqTh+7:?QTsF>?! gr/SIaj acPhnrVA|Ptmz*[0i?}aC맗-o5-<nooϔک_Jk}$ul$?1$6/Yj֧ڿ Ur-!,*V H*\ȰÇ#JHŋ3jQc  ұ*) @`˗0cʜIM<dye= JѣH"/ńyBJիX{YeiV"ٳh&Y<ݻx5J uX`È'o { 0WX˘3k,Ls'L [Cէc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&aSdBPF9aДV4%b_:&9iCjAX@hfAwTB{ۙy9g0!JhU})۝OZ@m:i餔V gAR*Р.TeQr)奐z^uJ&_6h^Z*朤Ί~ 갣eڪJ떁jz)Am*҉lf.Na)yVp҂kY;k.\{,&l+Lm/d.n;Wlh {q (ƫ놼(0ܱ (l p>Z/1C5$;e'm#4Z#y'Ơ*=3ׯNM.]27^Zk'B$y1]w砇.c(j֮.{Ϟc^3AU b^.| [֕t2A/.Iߜ}E/oW>(Vk#z?{E]K`斿6J[W2m~Xb6c_f-I0u2 цF,z]po, Z0"{6?65pVTۡ6~!W93_~BV84E7nKH"TsS/eP(fEPa8du%32υ:S¶it$!t2/Ȓc aD* AQRԽz8AbB"%41q$)êiꃘ̤؈ ܞߜBy%,F-I[B6++֧'fYv7jvHp G[`"tpZb+n' VWe4=Z% mG]9ɶ{zR&xQ*,WR{'(8mll&,Z;߿\2pDś^w[셯ոޢxe ǢkIeb~RNp-}ɚa*8 o;4'xZY&j+>NR 4dF%Fne]U~wddo^d\ߺAߚ vy$ qCo6e%Y?oZ3i%> |7~9ozC|C'ц ]SBf?dR7~[cvZ?Q3nJvcHEeu`CF{ک,OثYOmkT/Va_L]6fe֊XBnYifim̰v5v5=lO0ηq~b7AϬpB/':65~RՓM5-5p%AvJ+hdؾk ;):|hs_ul'Yuk]% zt>Eu;nǠoM'^TJnMi֑:[hOߥV5*uv̕:BbOy+wO9χ["+QMݯHLxNxeeH)[!ݪT =5 =<|"q?uwt-]2kn 97_"!'ۦ?o~w4^}˿ozYvvr~e6 ؀xX[u o5F4aiTrxfgr8%G'!@vv~V,g0OouIv-j`K.li`mgcL^Vu:5]֕[H?p/T`4\b5Z5CzrDJTItt=^afJU?3aechb^XI؆:kbdf03eɅe(|3E]V;dd)(V\X(x3Opxgwb=xd(_Չx gxVx5iXqAxCzJvqb=mW ،㌟Ft7w-%HxInc2g?uesy2tn8'bWtwz3wsR[ITq4Veww1Dw{*PCT7Y_-{ .RȖoH\GOlDFw47ASI} zdjis7K#wT%moG[·3nd`7~`BΒxY{IK}UDxeanј<"_k'tuS|wtB)v98Y|81t|yـv&g3QIƘG7gWqn,8>fZ /6W7Ca_@$awUՋ95V.7A]PJ[&.fӨRPDy,z4FGx_fvp@ZC6gyxIɭz"hE=㊁H5ԍXvms_(2Ot j`zRc=?گ7PB)Hx8@լzuc$s:nMiLy8WUHVQHA\HW'ie4XV7vH8Zy厼k40cCwsbttg;x66]5$D9=xDaضy1X;jQV0\ˆ./z]N]kg/8Y4kT<*~tcUJٵ6;P[2IIh8vW~ GNˁs{zޗ|7Y[uG%vl֕4s^圡,Ud7j~ 3~E{-kTG* 99ds89۽ӢqDI+k۰' ી{/@9{PPYtu4GGGמCJzoRb}GK{ UH!\\鮁e)L[fx>h;dZYG39zؚG+ÐǑǰ"LDaP[p4//D,Lkc,5x3<ڳytYrti KƗrM.ECcK;}bMژDƈ»W&>aCP.ckH爁{~+yŃ^ Ȯ:ləI+ECԓ.Dl%7:̣y)K=I*6Q6l" H܊RϞlQk#M̋LN?M]Y>۩6 њ=sR]v׵'툮&*U3Ea˟-~i7z1+,f52]^+Mѷ?3f)n sH=F7~PbυC뀽"?ܾ&H$* ~~A K690_=;OFAaa?C/K_4O0[/P!CSr[:9fc2WoQK(9^.CoGT`llH@~ˍix`?C~$6?)2DI[p's|LO(_u/J`OuN٪b_y""?/oh+?ϟNJ݀!,*NV H*\ȰÇ#JHŋ3jȱǏI#I\ɲ˗0cʜIs 5MVΜwVѣH*]T#M-7 ©Ujʵׯ LB)8Vڷpʝ[N: T'jB)M2͡Ы :ѬxJ꫰'&A. iZ~Q6{\1-z 꺮zj⊪zJ*A;ަ+кo ݙ' zB 4qI|ۭs,wVںr 3 i;-DP:lch7lt84*uX# s ? qx=_+a'C}ɫrvѡ"}sZ[.*g5fMcsB$g<&\ՊPᓧڪSMqY_7Dž98s[pm1>c<Ч*難taSyX^:\מ.κ+2zǭ5 '̮Ƭ8//>+LJHXR[۬5{^BE-{5$zB"^ȈGgÈ91aJB6ϊ" D!qmݶ')pfhb5IF㰖*(^<*hWKsYHQO"rHGz %nϙQL*Wie52^ƚ+K\s{b.?rˈ|+-1 &H̤nq _$iyф%ܞV7p*Hɑdl$9j.t\=y :NOȉ]g9ݵS gA퉔XQ(,Y( R˕B {<3B;s'E36e"GXA:]h7i.d&uMKґTL%,ԪwS%u$g)Pf+-- S(sSmEuӌvϭ^i778`taQz/6d*1J7UpIdaHI llY úS$5(DЦUlwDJ#|D5R[v p?Y:.Ζ\K}s]F?,ZT;-u q n:N{ߡIVsTs}u|ƕ~ҼGW׫hC`aJMՂ`%]흰*/ַP"1̦KW1vӻ8'TY~@r HN2IB*,?R\NJFaZɱ]T =,W 32juɶ>b.z°+E]*^S"VQn }VDW^3epG^-R>e V+ZrڲG /F]'Ѭ>;y$]l.:2&2_Jz\eC~1K$"xA n\O8Htm5 l۰qc%;vGiÚpf\ts\寂uQ' ?pa%⭝o^սiЁ&g$d*14 }N91' NL7IQ}l9wez+ķTv,' AOޑ>Zۺ϶;5ؐi"BJgm*],Ws-;80\?|RoJ!_z5nuZmvc]}y)})C߃ֳaw7XvgauO} 8XRr-Tv4LHväp 1}K 7Yx$,+j7DeQCwgW!f^t0txtWW_>kO7DrxP7}~Vn|ƅ`HLKfHzUtSkj7TV612n8flF8={SZetiEmdarR1YqX<Άipx-1'ejsVN3FmNGptppv:ʧXa߳c~pz'|ȅ>r4hϴ@ӂI8F0SVEz(wX ظCu(%'w&ex(T0xӅr(042=Hw`G7?P.PՏxf݅WyY\QqETE 2zܧ|hjWk}z2y^# .(_(}dU8t:÷|mXWGQH9膠œK<W}%z3YAi65c7R*5q] ){M=ɑG^Ւ~5Z1xEl Wٗy 88٘fٓTv 872WBy`Ƙ jU>tAy}VM(Nx.R|)Sb]ǐȈ.>0,f$yX'2ӋSY~'QiyjUlAQk؜^Ty|USgdk[U7wɜCŚ6`SvBy䞴5R<G-XǗ)jsS]"ǗS5V=Vi}de~ꇞx3ۥcwՌwCF7+ȢÆa[3qAfET[xqI:T*@%SywCK&YYiv VgDGKDgh'-ѥ{g /Ղ#'fm*e3&2Unڛz4yZ6w{=^T z^H={72?')o郈VDvf}jƥeDss}simoigp:LIyjtk;MyCUiXeUOoY^b5GGնW;LTgzDg݇ʟ?iI:փEkD3|KXA׮`jHg6 NZ%GfnLJ'ƌi{kbwm^:lUZqEH;Mz=tx}6q+wdFCtf}f%>\xhDB .w$7;Ha>ooףYx? xɪ'?@zG^.'VcazCkKxpblj@L~Йh~'Ƈs{غrfj`,9s,ip9+MKJ^}ӆ^WDD^ G,DWi'֕5K+sZXUc,|^(M.As)飤>~$n-V[ꪾP"4LZvل+N-n2 /J*>ZҼgLƞG v<>kW蟮-uŀK,"qyJ=H,Qa)ԣnW=;+H&I;΃f_ޡ-ңY>o1?K%!(o#Ɓ/+,1o7fnA!(!!8A?GFM?=N/c#pUokO@_hw_P`OzoN}+W[67"Z/ll=q'o|b0?C!O:_sqʏw\!,*V H*\ȰÇ#JHŋ3jQbб*HQŤ˗0cʜI͛[@IA*]ʴӧP|@)jD`ÊKULuن)HVݻxe{u lE+^̸qҪ>t˘ k̹Cƣ?̺} _L+R`*;,9УKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dih X84mR&8&jrFB.g{:hD>h4XYzТu*jN)vXzXz@xY'" 'ꬮ*흷C-wRj-F뭬bq.hFZ'ƻm֚*k~K->f-6Ŧj o*. X+kC ܫf<1*Z[s';ṷj-'L Iz:7khp,T',yYUyb jb۰%>Y+nJ+2=PRokt*|[G;E$6"NG_ĺx3zm9&(7A(:s{Gz]8kN|n^gcVf!q%@ j-5TR;6eF]Db7oy@iU)vlGNO5p4jXsNg~_rwFC$C2l7nk_f&y.WplIh:fB.f6iZ|PmghSw;3/`59n[hP#UFhiFFFF"yhw8"g۷TW]egf#⁆ r~"NJX)0؋CxKGdt#w h8?s( Qk%T$7VWaWPcQHָNXLUMmk{UGw明WSG,^wTp3Yrz[JȎѨ5 o)'SאXjSRhr쵐1ogn2H^IBLGu|w0YW]cqVXeUQT[Dy~A=PVb9.Q{c2D?|ua)m\䌼o!IlIIg=un/u;ȆF~8T|gcֆpF/ldHoGCFȉ`y#h}3zw99'BْSQCn! g0s5Xc+{6v9!@ )\.SGeZ[{ g?ې~Xc׈ rb7Hh{E;YtK.stYWzi@vjCIjeiqeW[:mv*3K6bR8r뷹xZ: qSI1 :l 5j7tˋ'7)DSD}Kkhr[q[ :㻁[Gfta t۩QǯC՛Anهo5ѭ yYVKDtv7K(KA,XH5"Sg^~Ze?1E"gCƙyKft瓕IaSX kմKk b~Bc|ꙚM)km+vwèuyFE]9,^NhK> OxA9}9]g_#Xt`|n#*cjwt Q! AmcNm̳!!bZ1}Ome#!2vo0t\cbULv/X%_N'~ouOΏBW_\_ΪQdXE%&U _*X Tؐ Ç%NXE5nG!E$YdDD8S<–s8sʃ9`ʅ8)(O>ҴIYnWYYNTKQe֜ٓOqQLK,D#.AL&bݣuecȑ%tmж6z"߇q´0ҢP-[Sk˦6jɹuo'^qɕ/gsM&+ZH%NwA!L,V H*\ȰÇ#JHŋ3jȱǏ$M\ɲ˗0cʜI͘U2Λ@ JѣH^oNL*JիXje3 ~JٳhӪs@ UܮKݻxLi*|LÄu"H!أb`KLe:k1ȗCM4 _ADٴװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.no'7G/WogmswOћ׿={@7yx2s ' V^ σaGA zG?"94Rz2ao ?!*H c%2C?SDuD ]4ýpdL7F0p kTE8q3g#Sx>^ЏٓiCJ#9$2b™7 &1.nx $' F>f2w(KF@!7'p9I:K eX@:jfL&1w\)?iSd5^z3ye-cEp"/9tVڬ&5#OSљ_+LnҚb,0eҘߌe8c9*4Ԝ'e0ms|#7m$>mq`!_%4s}fV.Li5oj6s7]7YtteQgi55OZѰfsKh:74%=k&юƴU]=cN1}b/nﰍ]\/ ;V6^ǚtro\ N)k{"jyGzί&olTk:7}w{^1~krխvgF6ƣ=m[G3.oww=rH'\ m\_[݌wKih8υoh_7rK#\nsY[8n8k?!O,V H*\ȰÇ#JHŋ3jȱ H1$zǂU&(D#Vى@ɐ#m)S*af͡PJJիXj_NCʝQ!$:ם) v+)ܹ% LÈ{*p熲:bŷU[q kٟh^ͺװ ( ΰ_= @!lIx~8b9m0.Qسkν{C&iS@סX@*~N'/(VgS 6z/U ޔ_(wXF~aeKp5G$ht=!; JQG*RK"؆UZ(D]}bc(7T`6y[D)v@bm_U"`S_FihbA"uu#%U2Ckٌ9`64RNIi&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8L"Xd54 sC< :BLkuAWE@WM kDdĶAk=Prootu i*6B^cdvDDOuxƁ=/>gm^wD[iK/@nA,Zt^弻>ҩv LJ›#Լ@rϾ|UC9A}gBN:7S0]uXOmB+_޿G<7fuȰnS g*}~f>moj;Ɏ 9=ɭ;BaovX5XsaBvҕlѷ;O M 7aQK`a;n(%P!`*$As"7? na!k'Qx\hFi;ؐmod ThmΒ D;/ԣ*HDRQKԣRʄ}D)h<J`{kAb>(hIOw),Nyrv*2TW&|`uz.oc6Iq+=fqؤylQ3Py TLҢІ]e-HmJWidEGJҒ~grD KQ 10XSR.39BtP"V6K!2S He ZgVObQ ҌVJopUa720aK:n# ҵtbKri/P,7yQ wΫ rLs'L ejA77:*;k a6R8Yح0$K лaۊX1r c5[4Nmhٽv3xEpY'F LxUGZVdit[R8וm )8Ou׃n.!iYn/q#H 2~}AFIF8aRοm,5S]w)fڳg-o/֪ǂN` b<xQ̭C S^>/nd Ql]'LJ>f!͝Ug 92>QEy9#( ޡe4јδ7bזnNۺt?*;*k AER9O[5*@\k`׽3j#Һ!>_Un4]:Z\]&V8āfѤ;)Wz`-znƵw ?WvpnݥIfR˾Py̼zn~po 64=/{ixYPR;״ݔA+Wn\W}˰(/K;,x&_ nmYY*Q0rŰoOq=vӭ\o=59搭 ߲K!j4~PúEzx䀤̭u`otq\Z߈[~jM5 :~6᳣/g&!T#Gk|{o@>*A/hn{;_YQkK{9>{C|c=y9y 1+o'SE?˾ߞVI}r4u9Фn{xL>cD*=YW7GrYW~W<*\ǁ+hgC=m6O7ufl~#gf"pbw&1\[7hefU.Q5sC!ikE؃PR89hbքq;5h2T(}ahW\SRlk._vLFv,cfRQV%-٦LW`mVdEd5\VIokC6O#r8&}-VKxbr'ZF5pOGg+ g  ]pL!XXxdB{gAQW6C{,whiNJ1HH*6G98Z֥6ny8z7KHWED;Mu/UwfX{x$IYv3nu)dgCk7+Is"tY,׋7^iMxtAJd;N^D{ -vWwFniwf|6:}^jXtWD}׎MD>FQo[7^wwU"Ք7aFs 1|ӐYuu)PBeÔ,w4y~0~~陸S9V@l;)wx>Q$r\E7Bǁ~vfpzr.i,%f'5fl -HT&XT%*wwf$s8:VclY2Vc[Rn %\vWRgUTGq3pCid1|twq|:29QE8wamƜ[Yf^e8.z`3bYdb4 ybm:)DdjB6h9JWI<-U'ZRǦ_e΃=G9"?* 6B,lj`5 KO,::Gg2lVn6XI0Ttwvҭi.9;HhQƒ;[*†+ja@zCHAǶ@* Khk2qJjXC%r*%'%ԫnJ?XZf0"EsZ.1jV3z5:U#wӹ}XH>D-A:<w֗ך)͈P,MW@L =TJ5jtY^xJjkJx{:GXpuYd / ]kCDֱbxErÝ4>{.E׀BK~' \G/zbyxa5@}gzY|\[^)/*@iK| qysz;ج{q*H%ǹY {]Iy~K{,zZ*;dmYGS~ Zٳ2gf (Cki~. **}0xsJEM_l;kWӧ'Mܽc^e^%'{td%eYn7eAcj"܉x?RƇvJf+ēIJh IV;zJgcVj N pׯfeYg ĝ/\@ls'G)SJ>윤BΎ?7e}xx+_G͑/:Ǹ j) ;]&YtS{ `#){ڈ_D(:Hݎc-^vPXOM_iڂkѺWkyFl%Ree4JP׵flې٘,77D<z:ۡoR]r ٿuU HnH{Ǚl9b3g:Du„Q錭mv銁䡞gèvLs~븞BPFM{5gIz8YU, Yl Xyю~y>(⋈Bw5xH?ǘPܣ3]f}h &7ޜ+ǭLKJͪM왱C3ݿ^޿[kvu!=bzF,eY-Z~+mNv1Y<)$>!(>z{Sg58&Jm)ٿ2kiItM /oqAS@8Y$Y$鷈ϕ[S@g dC%NXb)Sb"0ƎEȑÏ'UN4ɰJ1eΤYM9uSgJ)Mr SЗ0dQQNZUYq$:_F_zҵkNiÞh(ĥpft]L_&\aĉ/fcȑ%O\ٲʷ4ey%y{iԩW^ UlC(&v4q٪u_y~z꫷z~{~jca'Ҽ[|N}i+^$b׾lT/~Nsp.kVIs@zO<0Wl"KN^wuO|L:W2n %(̢ ߽ .7'L:E22k2=+&Y5R?7"E@q?x#-ˑ:@"̟!?TTɃϑ@;ˮXDA a@Z6A @T/1k@ 862nAoӻГ@ܭ# O2['"55(3)B0+C˩+ 2.3F8H:DKpƸR..:@:o C;5b*$r[CeC/Kɡ:CܛA-1<<,u+l4|wY!U\1QT|H+HܯoB[{1ER1l@y2 &l+(5$1L"<캀 8Dy2򪊙ƩI 44IiI?Z+_!390ټx ʑB{@OD4Rt[Jwq;a;Jd[$K33+C@="KwRDŽT08 ,KC:&jw9J4#4%؋%֓0BBAâzI*Ó)ǿdG qǶD"=skTF쬘<ڼ=>dʇTA8F4DaEl.B48HҳIEƫB`Ԉ pDƘO b ?b J͔ġlP P P P ĴӿcFx =QޚϤk⡾`LLDQƺd˩B MQ[ ,pq.1zSZLdAp#C#NtKj*3(14c+BB@܌W/׬y1\|SI# r/NPq DP:TKmgWYKc.FvfeW39X %aMFT/ؽL)}_k IJh~DmfN-bbUʻhM:dƙ mY=J`0TWPUV mmnn.n>nNn^nnn~nnhn߶nnnoo.onNFofnnoooo֬^pp.>pw?nopp  p ppponoq_qwpɩqqqqqq r!r"/r#?r$O?Y%or'r&r)(r+r-r.r/r0s1s2/s3?s4Os5_s6os7s8s9s:s;ss?s@tA/*(tC?tDOtE_tFotGtHtItJtKtLtMtNtOtPuQuR/uS?uTOuU_uVouWuXuYuZu[u\u]u^u_u`'u2@t2@aObGt4XX?`vhvivjv[wvCOvDgvkvovpwqwNGF*vsIoCwBGwbw'w{w|w}wn'v:*XCwGltw_xoxwu/7xg7xxxxwWtg*yH'cvwx?yy?vwyyz/z_7xGvx7zzRGbtzyvcGv{{/{?{O{_{o{{{{p!q,V H*\ȰÇ#JHŋ3jȱ* A )R` TH- RNJ1Gɳϟ@ JѠ+L:65@`If՚J 3 tسhӪ]˶[a2UV,N5lZs LÈ/$X]~*qJ)%oϠCMZߙOr y8^6-ťsͻw[z 9i -(ܶ^KN:V%H 3Mjg \ӫ=7L3MQ_ۏ _o'TN$ | |I :H^re ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&0F+Vkfv+ӆGknVnbnkᄈ믺;oLX`m7GRwq _q # mln2O-| $ :$-3Hx4Ҽ2~\RXg-1I*CW5;vg4?bC>p˵xuR@/f5&lnjdV!'ݔW~/Ԗ?|ۍ M2ɳ^4uKyҤR?R&dZ;I+Nx7X?/zHSՋ?K;y]WAz;o]yw;ȃ?.->HK|^\.ng{v.Z7 ,NBB5vJ72E( +g}sC :UaHZΗYg:10Z;"W&wk C!5>/v AgxWG"\[;%ωxl Rlo"Hib!oHm#6p GnIAxẉ*)GMh2{).YtY.U5hXV+=mj_2WfBl̈́I1ݑat60jқ3YA.L:%N's_ 'Izj >SO1DSgD9| pPt hI? j%CAQ$I"j@"R4&AQtF R,hIo~Ҏ8MAE:ԓRt!EQ'Ԥ:ԩLH_Zу4M UѮ j8F*Gy>Q=jQԡ*+TTV*^'*ցT,/_7*oYZ־ ,\YZR,\ӿ!icRXx6=K[+#bv& RUի]*oMRv*-)m.Vőm5ܚ-'9&W!li˛\VmU:ŽLj4}.8Ӭk]kսռ]/ikO7}VO_*r*w -1iWКgmꃇ޸r*5?.g"$3Z%R¨1s]*Y!r*|*v /o 9XQ\+e0pK"u3^'Veem+!G@ FhZ*ߚb2s=4͌Rt@5Ri W6rAz*8DhOIZAesv.Lju7A7rwϻ-.ϭz)Vj dwJˤBğw |ƺӅFq `Mm2SU[-BY A6e j 6[:1|]Zr3 ?~xZ"[R}i/mY9?0K~ܳy&V|-6*ԁݎSuϻo+&s;pOq"-n;G"(Y[ķ5l^I /чtIc~7t>2 $rQyycJ>'\zAk"'MO7Pl^๗>˃ܐ+?/䷎ر'{rڧ{cQ+}n5@g!n7b`freEV:\twoww|ȷ^XW~Y#p~7&?Qzno#;uHrASNk5`ՅW*8r k k&W,5\.p1~t`HńO}@^qVE8xesiȇvjShSD}iy|4mxeyVP}YЖ}v͵ԥ%R 'b7r-v|(Fk}ETXG4O_H}XZJx+Wxd0}G1ddGz|\n|dWlȎxzb{7z>fkFbG9Y {ewS%eٸq;脷}(}RH-UXVX URhFLiV'ǐs8a^~~nlfR#THn5m7~(Z*EC a%V$Ʌ؏W׃AuBhrW]jTx`ւ[n}PUy_\o[%oL)"^q]t)#[kˍnnbۓa"ߴl_k^n x5 W+1c]azW궻YO\18lkP5_ !kg{٬h!GB޽xѩ7]͂~H"zfEZ \呻Z֪P?-XTsΌE>Yk: =?iwn=9],W!tY`=~Jo[|.u\Ռ\z no̖o$vxP5hkSIy~_ +}+"=>&NԢNsLWA .dC%NXE5nG!E$YI)UdK1eΤYM9uӧƁ=IтF.eSJ-bQ("ՅFlݚAb*Q(Beժ4a3d Ip 5yEfډd? F+ׂXɎ=8_s!O,Y$35^3e8)ج:LP[IT1M8s;4.p͓F0j!EM/O ;ߏ^;ܖك} ŵje`-mnx[8O9< E.3무6ɶC "o + i){K/Fk4cnH/#3t&Tqʎ8Ӓi3v+ErE,hdF KEsMF׮DSO> 䭭9+s"Bt4^ L"SJ|4#],0B%lT7FK66]T@T״\Oe-5Sc;aAOWCߔO%l,>Ys6TtR%͕.-5fIfGT{m +=(_yRl#?~sZ͡|WBk9 :et\ x@)ȈKZRW>eGvS7/vYhgz\・ չo{;]A10)ڝ~Q4M.*Ib_G$WQ~E N3* @yG&nRͲ<}[_b$Yon誁YpZy`4X7I=Ӗ`go.eV؛Vf8-&P}8|'pn`Fh!HN!d۩v۬oN{PU N[jŒd.RkrUW(5o7 U2?.QHF LSJb!N:u3rh%BP2ɱb&[W[i'@9!UK` h%H&pQėdf3?U]|_#dFglҌ3MpS$g9yNtcLg;eVX}0Il笜",/zQdx$ ]4HLm1t̜$Q_AD ٨600u:KPTTNeNMu/E*QKO= TH i% ^!9hR+z,l;)ɐKjPH5< fL*z(C:SMm:2mU%+H)GU+N}=(lݠ3DjKr6^M_T0jf6#-cXo'ˊd,:'bvT[$^ Sxh՟bjZb^S^a/zRHFNsdI:X GcX !ɼ5g0/-hy+f5^k[{_N =^5ź5nW&p |`'Xcno N p:s |ԍ|駃IY:g9mh8f=u^;kS=*\ERz-}#|} .ctf Syma9\؎|LmT5Ug9a,EǼ#T~ٻ2|:Z/l~tc$cTa&|9ú6Wed.S5.l ɋt-պV(O'V9X=ᨡ k)ɮ$=wCNjEV7] hS  f]Pu>'T \P_ujFf 'l?@WqcIUVc.rZ+F]řUlE2FB ,Iy|OV"Z`^dܘWg9dDi-}5"h:R$C'zэ~t'=>G&tÉ759Q+qOGe9N6YU^&e%SiϬhsbAn 鬰;/FZ/6rkwqh隆<@5I7R[@SV8 9+%LAt ˦A#A7 S2׃":s4LCVEf1 5$@C32#)^nk bT-e A J{$$bdKT9bFqњ eE4 N\7\q"n17L zBG3%9Z?DHN>S俆DX͙dJw$t<>L9I JJz:zyp5Yc?δl75@䁓 PuЙdL LP$|ˤ tI 7I$< MI{J5}QT&DR3$R&%DA 9TlI&R-R.R/= (/J1t,2S4( 9e6=%S;=F7刌F@f!T'MS1D;+&kPId?KMUC6tH@8CƎSAS-\SQB#/QXZݮm+d0"U`}P@VbEV`gU VjVkVlVmVnVo]o Wq W@r-הAWb qm3VvuWzV-GCWUB' rTslV<)錝RؙUXԳQ={'w؁EBXAYTPٟ`Y(F%YBXӃEHٷ/r̈ Z0ԉ`YIYJYV-DuSYIDŴTCɀ%WӖE ] uT񣛴Ga{[Lm=m ZV[َ(B%[1ܛ"zm\}\ȍ\ɝ\ʭ\le\\͕\\\]-]=]WM]֭mn}]mWٝ]۽]]]ݱ]VmWcUUie^%^l]^kl-;^p̠ _׵^j5^kgMcu^_m\_@W-_uxE=VU` vg]m_`>`(aVWu}jVS`_:z^V^ a ^ >_v"V&&5haf ce b3$_=Icb)`z\:bamV-!.3Nd]uud7V7VFn]m=`/B`>fVDVdTKNIJV`%F`^b noy e,b_e 2fecU<ebI^XN`6e`afa2*cf@c>gdFgQߔa8WY\\gugg`|ddugdVf݂N[bhnhWv ]~o.gʕ&hch !,W H*\ȰÇ#JHŋ3jȱǏSL' H HqH&[ʜI͛8sɳ*)R 2EXTѥPJJիU:%zXjٳhӪ]1&YGWuݻx[֙@GÈ+ ;^L˘1jLәEyZըc˞Mm h `sMȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihl8śStix|矀*蠄j衈& 6s2 }JJ饀Z馜v駠ꩦ(6jʪ뫴j뭑랮 9+v 6(zuNҙ-dAkKd|[izlо.+K/{giio.EpYТQpV;| |"' i)0$ZV 9{VYͷ\M8ŝ^ 㨧6qߝ KϬFrdNؠ᫧nŋ Nnzyo\3ƃͳ~csso>+z7۾(9i{<X/*MmkV>:J %X+ w &ʂ!DX<ń(L W0 gH8̡wЄHHD.PH*ZO-^l"H2h FJcE9xc GNH)C>RD$L881xF*BCВ̤&7 ELrxD*yPґfă*JV'P/, B2&y"/?Ib!+UB&,yi(Xe&ެ8oR,)R޲ml5QNxRGI:qz3-?8P3M(Jz3m'= {rcA Pvq%.JҒJt(E=I3eERdӠ.ùю@bPWRTQ51y}hӦ/oӝd4VJCTe4\ѡdWXKVW"Hלƪk^WNb4k"՚Ft<(E$aωkt*ӽZlFQ b]*Pj4-WUkF+&BZZ jnXҀ!,f H*\ȰÇ#JHŋ3jȱǏ @ɓ(S\ɲ˗0cʜIs`*UR ( @ JѣH:ĹgʟJJJիX;$2EdKٳhb9SpʝK+qxk߿M@lO+^̸cqD\˘3kL&7yӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihl9śStix|矀*蠄j衈& 6s2 }JJ饀Z馜v駠ꩦ(6j꫰*묩J뭋z멽+fZgQg~BKƜVzgL[r{lIΙmYPiЛ oT z"& yrf$k%3 t ,֭rZGL2f;V1{-ҽ4eLd0is Qkm⌷xwLxHm5֊Ǽy?.sѮtykr1_\xqw^^_ͤb7 K7/}ˊdo觯/o 'L:'AR  * GHz&LaPP, W d9 _?,$ ZEJ݉Y,nߴ$*ؾ4yZSibg]@Rs+טVbm8{N,<,mK]ڶ\}ukɂ  ^м=̫@; Du(z;_ַ!,u H*\ȰÇ#JHŋ3jȱǏ 3V@ȓ(S\ɲ˗0cʜ) U@ '͟@ JѣH3L EϤPJJի*SPgUbKٳhӢLmIpʝKБ)܂\ԫݿ d!SX̘ǐ#KSޏ^N̹7 _#Úͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*iAST:?f馜v駠*ꨤjꩨꪬ꫖b 무֚:*j*+k첰*>kVkf,vr 6kk@.+/Λdl/z l鿚l0;ž6L nƪn;j<&3l–˿ *)WZ.۩A9:\ 42'K 3*4P۴)|E n5D#m5AmWvo0sW2,7XkuG_ƅclxĥbcvܔW.塢L~>Ԝ)Ԣ¥˰چOѭ6NNxhWw)o:Zߧg)ͳͻB_^Ҿo6|zmg.8c,{o:i-ܶlY>.~Cw +M#8`SX4)dg(*Œ.~ ^r5"&9@V8DmT+o; x-*j+59.z` H2hL6[H:jQv#>~ IB$"9GE2|#)JQ eĤ%7Nē #%CIRq< rGMd qDej\JYL-sIH#x/9]V *yYFd*Ƽ*E)GZb&-Mfz`&8ØTTHM9ϙexD;E9/Sq&,gI/+]Z2h8zmc7IJ\G0ЏID(=qːX,)GE:K}>4dhA5ISjShM[:QB)DQJTI^h?ԏ2uiRUT#5p2}i>ӗδ (W%V2pQ*~CI]WRx<W V ]+XȮ/5(?klP5r9(ZU+QQYƶukIjV}+ ޶ A[؍bQ^%hRUmmt],pSv5 [ D= }&xho1sy:eeZ]Tٴln vgu+Z[:E)N{%~iulib]>1cohmgLix,6#T$ y񍇜H"Kӳ2e@!<, H*\ȰÇ#JHŋ3jȱǏG@R0ɲ˗0cʜI͛8iV&= 4ѣH*]ʴӧR(QXjʵׯ0TR]˶۷p~LK˷߿q"8Gc=^̸ǎSTi!k̹gE;@ӨS^͐(Y> 0ͺ۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무jS:?+k&6F+Jf۫v{,ކ,k覫Ժ n @+\ ǫmû@R<1~ w7{,mʪ<(l,GkW,s?SKrCOQtH4LpA:,5[u9GuZm[4s۵bO=H7lc89v:uƆU^8^-Z.Dʹ3{j;}x֬'}qÞjx㏿s^5ѤK-zgN7mk<; {6 Ü~$#mr#:0˾7}>#Wg>{X5]xUHY/iqk$ԢJrkS*m6H^z6dW z`=%ZEVu32]MUJЇ&VYM::W 6&)MKVv']jg?! z-jOS=Ŭq-v#-4 }pORQ.wkVMi@;;װwDF\ڏeb:hbWܽk7^%%0k6/s]:UeКP }k]mծU/ G7'qPLcBXM>d STxPiL)+N-2e Sf}ٟgn ˶)m2 0ѐ=dVƯlKNGEL!, H*\ȰÇ#JHŋ3jȱǏS /ȁUR" p˗0cʜI͛8s4ɔ) IѣH*]ʴ)ƞ-S>H1ԩիXjʵpYA^Ӫ]˶۷S '*p˷_xܻ+^̸1㔐S<8ˎ3k̹Q{ ӨS^pCDZ۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무jqB+k&6F۫`VkRjz kk+-V oK tr,ll3.L: 1' s$Ҥ ܭx@c2ٖp v+@tR@VI1xL4C LPǝ7?đ?:&a4^w@ޙ~3 h9c`ږе G@uB W@}4n[ :x!Mt]xԗgXE5:5xh-PQ^^S(iAyjT9h,IP8;[S\N?BPK%R͞D}? И 4TUb[UjTME+1Jt[oԨT$jTSZhM֛vҤjaX:,0YՖpť\J"U,d)ͷ2}kAOKNԊ+k+[. UXVܬ-P%qK[T.v}_*UZun ̪D/r)\^~ֲu,i6{m^F7/wV,Q^>V+m.m{~oX 0N4rZbֶe.|kazf0WKacxq?9TFǢUG0!/*mGGRضI/`W*[e!m. !,u H*\ȰÇ#JHŋ3jȱǏ 3@0_(S\ɲ˗0cʜIsf(OVd͟@ JѣH3nXgҧPJJUM}LQ@@`ÊKٔR۷pʝ3Ń!-ݿ  خ?w*6Lǐ# }pGJ̹ 6^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐FZbzQj饘f馜v駠*ꨤjꩨꪗV꫰)*+찿J챫,.kkF+V,fbm&+kR:Z׷:4A~nӏ$,Nkox@Ŏ{aUe pȜ 1I* aN237w:x26LcjЬItK_e$gu?om;3I7}kA_cc6m5wћnԚ6]UWOC8X{ν8U aO3D<4ΜO|9ߜ :=53=5z^)# =,9Z (?U;2Mwu><HK\¼/j'gjglC f6co6Q CD U> Jh*Ps a tܯ g- a G3mwxUB0a$Ę-B˜F ː$$.D&p|BIQ򏟌V(5RNL*WV򕰌,gIZ̥.w^D%0IbRL,fڒΌ4IjZԄ&6 Lmrsf3)rR D9vg0KxS1yJr ?eM-\ |(-*N.?Iщ)πvԠMJӹR`B/BLc ˓b4}MU & ON5%gRk*LGe*R Rd&UNmV׹ӭr 3JӜ,FT%jSjRrgVTƕJEWKLzU0-%beQ.֬4l;Vε@3PVV]͒4ymkh%K֞ӵiOa Y:6gh,l3MNMW.u(=jQ XWNurwK]V7DkYzR<\Ϟt \h7ҵlgK߁g~ITrU+-F z;Z =+V ޯaXVl'6j`jXj'T'81;\Vd(L,by=2{ Pn珣=I$F&-,˗'7Œr͛6 !ʞ@v)УHi 3ѤPu:5Ud }z+NY"KanjmIDzuKcZE[QoN|3 !J, c ##p`A"$ߚ (a†!3,fɐ9sF`@!,f!,c ;C_AgpaC"bA2! ,#c93ПA8L@!,*` ɐY㯠?Tx`Äq̙!,2c9CƟA$5  !,;c诠@ $cp!,Cc诠@ $cp!t,e H*\ȰÇ#JHŋ3jȱ H1$5@@*, x@I"gr\ٲ`ȑ: JѣH*]1e)!xR.JWc 6a SP۷pʝK )GR]3@|7>HfJv -Hjǐ#KL2BSMaSȔiװc6; LoD-v$C PnȼV9;У+MY*c -ɹ.o+ヮ.Z~ɓ_1Cyrɧ 68uDl6JQUa7wvFr:h()T*LNUA amPHjhH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+֛SXAX`QQ\о LS@_\bO "SL, //9 s$ 13;Lr&wt#X۳J9cm<ەS ?|לS MFom1 ^1B w˲` ~틜ǿи6j.'HAF.p `B4XAy"`"V~S>Ną&VV>:jz B:Pp>`H˗ /0rˠ~)oá)N{©ap_0@.2Ia^=ŏ XϞXžUwǚ-MX3r\7A)4䜢H b]]{%gkΖ5 jNRdϩrE;X|Hޗflb~DKg"Kr(̦6nz 8IrL:p~<)zz̧;~ @M|4(BשЅֳ='" ӢͨF эzt_ehHёn:UMvӥ&FK*sAq>k:a) i Djmn.a5ϖӷ2~d /br/H|rkq9 M-/IYbI^nڿq+Rl t Drowty/ܒb7V">[M]H#=9؃NIkh+V_XNKw}355\n7իμ;"Nq5O뚷7t9^l6_xqh* k{ƏO Pŗb5r˻[oM}- kX S;uc6&uHo?=SrMr7?wKrU3agypEo&}Gp!ǀ3|rGv z&DswwwVKy<`sXC>'H{fvFtЅw9O7HQWs8Uj7y&V'FrzyKY-x~=?D|vfKQ'swuMhwwy}m*׃禅c~`xwD,xQH80"'u\q}熧yGA{`HdbXztz QDxq(t{E{tpvpgD&|i}8Xh}xr7MG(nFX4z",kׄ5HDowHXIWILC9~Xmg|HnD&vd4Dh-t A8y9sC>m;Md+(8Y^(,a4gM:89RN6tYSD{wL SyԆ(pfm@_@/BAL vy6֛ {))uxqhiY$穎D,hon؉&Ii{KAdmvL:u-9GhqxT[Rɐ@GI1II)> Z&K75if)|ιn1GQ.ddXlp(8h{mvYI:/zisڡOZw>0I}鏵uSHrdFE4>?X&Ds#Li/ڨ"FM Dz*(@BӠXye QK7~{*siQt6g`kJgꦙ9zZw3k;;I֩[D|[atL׸%9RBXF٪&{}*$nYM뺥I-~7zw5~H7nUD 1Awxmz:8IG1W9JVL=hؿ*. wKۤ2\tEM1V _#,G\5we*;SCak4[ѤsdPh|gFlh 9gO5wR ÎfrqꇍwAK_g?\sG*vktU s˼˵|@LqFA̾|Ȝ̻|皭Aʬ[ ';ќzdƽ}"DV۫KLA+ǖs?doV,뻞` ,( }9Œq*W=(I7i%3x;͂=؄ ̿46]،؎s ٰAn`<.v^"Jyͱqٶ}iخ뜳NB=N+a+|M玪j(|YL2Rܞ$6ܽ-{YKt~FI8МL+(tכp{r:ߓ|?mlIipS Tal)^֏ΟͮZN. ,0ָ~gԟu|&A6.>^@~zB+KԊye 办;sgƾ\dw?lwh`mŏ'{k-ߞG0ƗD)ƔnzN0Jp-sAZ u[8"A[I2C./*Cj6"وqCsp 8c}Ĺ#uTrI&tI(rJ*J,rKKLi>.4L4TsM6tM8sN:$s!=O@!´&"*DQH JI# t8زo8DMtEt?BRKUըXL3Fa|1Lu4:͟JyVoēک><6SaeWFLZ9=$nQlUӱ'21s3F+Su՗ޮ}^%@R3P2Xk8~WrWQbCUJy0]XO?ѓk01g{gzhˊ4zivizj2etMJnNamą>EU`k>J^ b$˦nnP:7 knLMWp0do UQlp"KtY°1B -|L]걜R?fJDժ 93iX64Meh@D:.xiؿURUQ?g ![YP60D n끙cȝnQA7SF Gk1yΫ7d]4޷!boOUT 5YMfLxA H_Sz?(G91YN,)nv6"Tr݃$k ]iOyon[ȰaFSӤf5y6 i M݀$g9yNtSNäQ9@󐸉%Du,'E#5Y ')!@T(6 +aG)e8|Qr$DҹdJ[OLXp))Y46 /% 9_ʤAIN,iᣫndGR,z̔ Ӫ2=*k>Κ# mIqZ`V'fb!TU,EV3/z  ֚jmY!)MȪSfl^7ѕ~H.kxX>&֐SaR_t)d2%MqlZ4X<>2؞kaRgcc4j[j5Eép@@ŦęM˟-am#W>7:\sɏV&vٓy2cj qY\u%,k9!1bpfLп#&qM|bMH6W]ň3k`Jqm|cX;ZCdo Kx-ms ]4T+s)sF脛&V]k\曮p~$u̚?K sT)FKG ]$r>jLJ'۴mLjV2\AZ(ժ.l9k%^*vXqQQDJXegzrp:NͶ5gWθFR\4]KVV~K$~R!ZT2 VB<$fjG3pg\Vn~#'yM~r|W5b9o~pĹz.NAcFIm|frsMÜAK_4Ꮷ8۠}6:e#jKLFk4dĉfG!ǀ4FC e$H#CTHo܉oƈ Gs:GTAuLEKLtnjTAGb|ƀlhlH|edm|F4ňI*džʝȒ,eʓ,y-l}VxESLCc  Io%VPTF!M0&5U{V# LsWuRWUiٛٞ[ER1MSWȣUP|A'UT?XwYzeA{]TtZStSD[ҢűZ"t¶͹úmμ۽!,*NV H*\ȰÇ#JHŋ3jȱǏIUR#p˗0cʜIMR4?:wNB*]ʴӧ ZQT>Hq4ׯ`ÊP*왂ځp}Kݻx-L@^*:6EP+^8k rUn̹ oHwf)FͺUp\N  ȹxܺ+#μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)RX`P YSi})(DzThB ħ-:%B:hb()@vꏦn:ZkY竍z +*@z+PKiKаJб{vʫF;ER)a; zֆK&Vy+&{ɬ )**Ngw7$l( .0h5>Kn0\qɼ-4xF^F>o, q>ݴ;Lu -S+ךvg~*c)rۦ0\'. m6d-;4Y 3=قX9vU۽.}7бO8ܙ;zN9剋OsC};׆s^ŕ󫻶ߞ. }=;[(6z_~7ij5] qI1:*b<1qXU4A +gZֺDAu"gVWP[&uke{]FݙNZ.>j#dY.2$߹f R_֛VY6 謇ń 2+TƋ)jƪU1{:WGml1pݒR2bU;]jweZOtBjg"-sOhT\A:lyC4^̏bh,*aDT #ZT *HA0rl6MʝW4AB-l%={%?B/}꘢*0QU#̬Vծee4U9.fOha"Ӭ:\Fn;]zi,~ϜT*nO!65(u:0TZEn mbADK_0xNMjЕGҝ|cHi{i͇ڢvO>X-D&ѭUk6g om:}$Q Y<:vέ16njAʏ#3ym/R]MV[iIo&}6RkM}FX(p vS PՖ%O(NYFnrW<di, g0+R¡b/Uݱ=ʑ4"? D6^c\eA^ kMJ:|66͵ZBG")cզ πҳI#zlrw 5)({FGRZ<%=.s!<ݢsZ6ۆKImQZG5rMP56hcv6|FU솸,;&`id ئ6A@t{;:dm_!ЛJKpXւ:/j\Or8BoG6야u9UT+f_U86p| d1^m..TS޾GKv&1s;~B+.9Vair9FӺ,;wRs=F9Kڝ}t17fBeRf>Ck86ebǃu#%udXf*}637["9G$KX+3_X_[%]E3(v6uWRxJ5`\`-8 H[``&"x-ytv{Bg(ؔM3 X r5H9UDÌ-و9oXjN_Z与ȎtR.XIs4X~SuwLpFMA/vs!t1~ 9^MJc&wkiIhGFpvBO--JIId8Fs/G>* hKbqewR<7",h;gBL CHX3:5Jf~x5>tǓsJujTYWC~e@?Q·oJfOoxlz/aV2wΖ3\ؘǘGc3͸LH(#Xve16O )OSdx#Z̵qZh9] iHD:+լJsJ<#R)ib s+ԮD)MY>W:9 'k.w3U'oʱy[2%Ei0NjgJgw DzFJ1˛KkVc*l"ˍg{5Qʠ{|-uekkWiZQQt[}W~X%F%LŀxNjW2IlY9X5~'B|G]̙|Cg' R \=|چ9UVգC1; )]GIwך^Y;*3̭&]!Ex Jڲ h,>0-)ss9ʻ}u5jȺ8[X銱 ~zϚL~."ˬ|.j3f4u:31zeM4&ԎGzt8vڐ +&VW]bDJmKh/*` L\ND y۸YJaZPΑ/9C Yn~:9Oo딧h_ c/` i.!N,8#2<%MhT`$-eO9ȁ'i_oq?3Lˈl3RS7ĩ`\=XdS~ {䱸v_z"(cbV[3ZʠBp6;Z}ʨOauRr&j+kX(qBφ3n7ݳzzgo2P` .šC 24(bÉ1nhcƉE$YI)UdK1eΤYM9uԸOA%ZQISQNZժɄYȴpeӮM%[Y0!,*V H*\ȰÇ#JHŋ3jq 'V@@*!S\ɲ˗0c Y6G9y JѣH J RK1իXjݪ2EPtkkJ5˶۷p02EqBg޿ ,JI8 ~ KL)l:` `Ө)*ghw!۸Oo(0qa%),9ȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`z7aИf>fIr&T'CuY &pZH'yl*?c>gwN @|I6:PT霧j (թ~楘 )ҚevJjz,+9)Эn,ԭ:괓Bmy*dk. J:ʾzY-Xkp[+ٰ.2 , 2n@hFB*2zL,l kЧ+80^flDab-twXvmK79nfQG{[ hA/_f&ŵfDgrVl9}ktkmG:ڬj{[]˼J>=G~*zj+#4ZCi}G}|GϽ+=S<:ojYlO4)oUZ6ݕb+k:)a.͖绻 ]`W–eP; P yF@@ sZi DDq!/5(#VƥD}=*"#ڇUOqZOp51ic0¥e1g8KY+}z iQU̜(E1-z.ldxHQeaCNu+H/K}Jn|eIDa#'ɥ|%}(L >:Fx8Kd:ЌfFGY*"D4,-&#on*&9򡍋cqT*Ԓa`B:スS Wt+]t $FA*(9#jʁ8CWVfHGK:=t`|׷.D7}ҭt(H`jRDRγݩMËte8`O')b4 qb(t^:}^ KꚖ|,ovҷp Q 4A֭b8J%|$[fzVL$=&ee`KiK|K%\{04LI.cU4αw`ly#rAِ2cǮX]t=g 泠BYXI$Dd~a]苔ij?y#IᄈS|}Pwv>%wg>kŀ7}<ӲVY${fPѣ^evS5 c'T_G.Wh3;b2S}WY(tsedorჩ/tG@:tIKHNP84pf^ !7QhSh%bCq[xem0e'ucOk3QT-x? w\v\lr'gJ$igU*bֈsgq>^@ w5ja G~mX󂉋P*C]B=mVN_s~~m _e4Řg%t&Wz{*T58s4ptjDoȌG|7_5/tYMpLC wgj8XqwYr/L؏H-0G?Wt!uJZPIV>?Hxs94].QQ`8HF}DVqu+lԐ0t%|N@hWłvmT:T?GxnVjSQu,Hy5YT89(C5W=Qsft.~w{bJL&=S\V@HSX\,QiIa`c}yWpVSPuR1=^`);h)w7z'{681G]3TR&dӅ\9\Y}03<3OR4a"H5If/8v3$؀z9ŏkƉs&lC9 Fՙti؝I2!y虞깞L5Y08yz<1d.C9 smAWgBAi]YrUD=Y񝕔AIvH琒#voWJ{XgBQ)sK98jNVx/9FCT;i@J Dâ|d{3ݔ?8>R+|d؎yب^XUmkPue(Dx9>ClhĦ'jX^3&xlƑeGToGCS(q:HR> Mwy~/*)lZd,=avb}z3Y`VoCJJ28W`V?~KX*HxpX9$MXpYC:C'gaz Wؚze*U:)8W3%g vVF{E՗CAJJsʋ`*kgx浨6S6`H_tz{U:``VȨٱLHfvJJH,;uƷ)j*%KW);JC}PsC17jBQ1ʠWC:Vl[1-yIXC[o+Ѵu[ΪYr2A|( &I)ld/$/,C sX+5Lh)_Jt]D|&ԢE&N6S~2?܆~kRLB`DШإŭ:=SńxÓ@*.hܙonŤfbR$^aGWJh LfldȒ<_EÔɚ\D-f!!֔xt3F7w|좤d:싃WLEF3̺f֕JµOhpX7gmh?Cfhrp /YP+lGbֈhZ䋬El%JcʹEp ftHt U ~?b%)ۋ"YC(=j˼D+m L 8#ѬG#B,RhdT,Z|D٬On| GG {0wSA ͊vxZDf="yx fLp-c VO&ʷ:za.a|]؆ bc }^mLNݏ5 M˄%2xgԾڬ\i[{{ۉ۝2mbJvDw:+jK{xwK,Kiu9TJRzYݵÝL%zF2kCy0.> -JucQiKC]޵j<* f=rY,fZ Y.mE͑g-yʷG+qY|LmL~ݯnN{k^Qˊ̈́y1h=u/ 7T?5_v+aU+c޵K]z+*?ՃGmuyMm#ҕ(y3x5مXnZś͞b?X5"[umfܡl_{p@f1xw!]jޡoo/o_.h#luY0{D _oۆ)?)_&fYޔ}li__lPnK3z&o&X3woO_$޼AЄm6h //8J X#XA .dC%NXE5nX^jNMiҢeϦ: !,*NV H*\ȰÇ#JHŋ3jQa 4б! z 0ɱMlIϟ@ Jх)R\G!&]*C UN"HfԇY!z׳hӪ]˶mI H՟U% XeLÈE&WË"@?046_+'M4#'fu NlQ N8j ܠju@ᙽBOܸE~`Gj@oɓ}t/yaY6c aQ7ЁE(@_zdd $LmV~ r,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+mX`aP^mAStKQQa{ UK.A.CNKg+{Mq[B [0ʉ lEO? C/gTq[f oA`VBD4 + .$d OX;ݽ05!j@:w䐨MmB('NEotE_X-GHre<nбBo`ūU$Gfxx\_%A0f.3^#2]OqJ]ymi3j>oLhz/D.<(=†X4ڜH ; 8 8q0DY0w>ufE˵X5r+GU:N jN{Uw8M};֌Jgv}yϷj-ꑇ-F;IͨU;L2uuMӕnۥ3{NnB\L+էNb[zurSeĹ9ӦaKJαm:ο)3Ɯ8 7$#e˦`? [~~qrcdw6g6q&Ɵ zoYq%ٞ6iHc* #vC1;ky^+p8M}7r>elʃW1;4FگFVM:}`\dim3 pc;LbklC;ak<:cgug}Gh*H{(Fx-xYdjXX)RH)c׋/d6d@sC'r2Sq>d@0uet3{HHֈp^>Q8!28Ǩ1ba`(Qkp~(#ӏ&6r2xay$%Wq %A9 )#FW.eH89Qs(H#7RK)-sT* S.2֓IH(FoMR9TeHP`MHswO {WkqquSG[)1Tl9ys@9rY$ig  #dW'zLpym42 Q4y#w>5,7BROK)hWNm4fx.Vh =f,3{+mdoEWu8yreI6h5d~((o@m֛fҚ{IkhTȒ.c ťʞhʭsYIz:j}Zgz(5 ڭ R1MO9qZЊMhJyVW4mgH?jwlI xtYJÓ )\V3ȉ^`[+]rt:X5UuIwq .J-ڀ:Eank+3+{K7Έ*FbIYzy?do*cKF륣+*Qcr*:Z3h? Kq7ֵel&iۜ+/Bܩ#Em*.H KJo{g9sY) 5kVeGW˒kk:Q٥$Y+ھ9, [7O{goӿi:cv 4 Sӎyո!KP- +˭5{1*f;{E@ͳp(mg6Uڼ1\P/WU6k,Ugo.a\n_-pzH*LNa|L)x5?!FA}|ȈB2gT졘٨;mȆ0v dD5B;biUʭܰ/Jv.KߗUcf/6JL@Z A2xs{y|ft_ ,. m {M̮l*zpQSK0fQ]\W-j\;+l/8nk lrLZ ]RͭS:!4=#h;qQܳ9BIS,SWL&-@JIEګKi,IDG;9+Rt ʈ,(kaѷ/ؘٚ#^FFΔ,=}GOugʟ>(tڷl \Ҕ"ѴC:T-M| tZ-* [98¦{CkܤumܵCSRDl_yo|>Z/CjOl̛llo?iϝ=+[ G] kݱZ'XFBb {"a2U^mMmFݺMMQ\T;{X)Z[sq[b>`;fN˿,N?,DŽ }ڦM$nd:.%-}"0?7bsI9yc啎p n/M]ެA|+8Ju}O{S-wċNĝ߯bSj<3cGW2 +Myӷ{iJ+=P][ZcUjr^} S8.N z>F:rO/Eϑȫ<\b/90Ut㺒e+Ӟ8  T+s+)Re$%έ㌺o S_?BsxQ])zC] Ա.·d4jS ') b!菡@, L80E V^Vn%Evɑ]/sj+#FN6W|q-q#|rŻc r,M8sC}tK7tSW}9Wmsuk'y5t=( I sۃ0ĠC3 OR1q?yy7DNj-e˫V¢(LU:W.$5%8C澈M~ 42K :^V穦.*BJ~>!` d` U~(`{b0GQv4,`ɆRݴC9(滄xMAG Lf7xq Ti=f]JV|0UvҋKzHs$A0{: 4m{ߞn|td$ GnFkd%-yILfR]wcENR$e)MyJTR[URc⼁MOcJ,gga[\-_cLݲ)%[CM3e$XR_ƨMuB [ 2Wt{ 95;1+_l8H 0J7XC^@+z&lZNٱRb13JqAщҒ"BP*4XB1pDU,|N Wltc oU싵Rx'>D0!1 5FȣY\B$ZAaG )u#! dd^\SC5.iR!-xgV3LEwS*5iDQ Cމ%۩kCV 4]zd.bMhNg1uZi{[:3m,?vz{\&WensW!c2t{i.i]24kL+zs+ Zu ]0~m)𵲍kBZ%'+W_MA'}9[F }s;KY0`Tu`!3I2hJC[ Tp 9{c8c#H=M]LR۵I,=ILF/OzKC=ɘ4_^ɗAf[ ~wZ XӉ jY{s:%&t }hD'НBG+^| bIs(-:{d &ux8}D-yg&qS۴K3&flx㜉%6bX˼be(Vg%ִnqgӦd|YGe͵~g3Ѹ]kg{ݾ*T!(q{q>$ ;f'%omnx#~8?@^7 <4#x R >n$_ħ壂h@jWy=!} ;/|oF~g~_oI D|u;'/s?{??;~H>H@<k> l[=@ >$At?4@?$?thՑT? SA$= ,@ LBAܼfAX@A##=<6D@/>R,D *D]d7E(|a9 ;pspg-0.9.3/screenshots/theme3.gif000066400000000000000000014737061324002717400167320ustar00rootroot00000000000000GIF89ar !&"("(#(#) """### $%$$$&&&'''&))(((****..+//,,,---,//...,00,13-2400022233344477739;888:::;;;<<<===>>>???UUIhUUUUU@@@AAABBBCCCDDDEEEGGGDHJHHHJJJKKKMMMPPPQQQRRRSSSTTTVVVWWWTY[XXXYYYZZZY]_\\\]]]^^^```aaabbbcccdddfffiiilllmmmnnnooopppqqqrrrsssuuuxxxzzz|||~~~U/Y1W2Z1Z3\2]4[4]2^4^4^4_4_5^5_5_4_6^4`4`4a5`5`5a6`6`7b6a8b6cUUUUUUU*******9! NETSCAPE2.0!K,rmH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳ@ JѣH*]ʴӧPJJիXjʵׯ`JGٳhӪ]˶۷pʝKݻx˷߿ L#6̸ǐ#KL˘-+VϠCMiƛuB *pO"P@wmNe-faɀ,2VzɌ)^C ͽf Yg}X 紕uKwfܰ]Mqh46'+䣏 %(b`Y3|C YC+' #geJ?9HCH -J]ly$IN0PCɦp50Hc7dQg? FǴҍ|vEY{'I*Jך:-AW>+bJ PMŢ+뮇%Y3@?TAV,C %B,dYYʬc։ k;l0kl?<|a3,(YH^@i? K/;PБ1`0<<(rud}Qpd!C4Ep?~ M?߁c8pa?ShY8%L8ጇ4䒓U9]7ޖ<tCeN@A__0,x0#z  0d0 $6xA)jBS=˃K!J? 8OHD(4b9ITP̥.E#ťaxЏu HW`(p~xejQ7#4y~~:MFi0+i^3L0IL{S00ƒ0.+! spzH{HThAyЀ@ u(Dt-6a.a"EXˢ1|0XdI 20Y `c ~\@9Hz<~58 4*H0蕯~] S ռbJC% Z(.RA4BЕ%1@dJY"6me1Yka"P sQLI.8  Sh)Z ~#@ÙAv"^xAe {` o.7;97-獮~_/-m/ 8/Zq~pp PpIpY` U{kx%..P; K[#w->Ld^HNl 3Ps)[X&.{[LfU,5L6pL:xγ>πMBЈNt1bq4%"Jѐp,dNӹ´G]PAuDMVF7ujW3qkL?@^ereK؄sP Xq>?(XkN<Wy?>S@fto??GNx<#=GCBI0ga(mfrapΐ04Aɳ d `xfЊBH$ eNp?aGgF2C%>ZEc5O}lFetFi$|՘E[E(WzGh!JdEXtH9jA n;3Hz+C:hPR:TZVzXZ\:ƆIMjce Oڥjlڦnpr:2ZgEƤEG5ʧAwa{{FjkZjc`: ڨ%ʁZizɩ=KCZ*8uK:zJjbhZɚj : Ep`֊Z:j:jʢ $zYgp p\A" <ڪ ur(\@vfGxbt9uw(WwwWGv`sV4'Zұw*x='&kR+rB'g%OG3k+!si"&+xA;bLVsa{Y,dA|̽d,ժU}+c1_a}rlj,2-'~pkzk3>g;lQ[tY| Y-'߇{~Víb}]Ʊ[ص@O9KT[D̒[5W5i8de:Z6˫;5:(ۨk=d-q;^HԪk1fq L<ɕ,ɜɚK|ʀ[I<[ܚdA;%U[U KWYͿc>EY ~N 뇰#)[_1. "T!D.u6|`,fȝX½Z@O#G:wy2ʖfǏRa䉓0tcǏ=V y_ \úHU 0bȀ`J+~Gܹʗ3{QtiKBs6.: O o~(@4tEgË!xså9O b5A "& `3 +0/.tP )kP@ qŰF,I;ʹh3l +9tBry!Uc )`"ȧiDp@Xȥx0.i@%tJrh' : 0` z Q,:̳$3Tw~윳2DRM{&ETS+CU[C`]U@#3i~pqjk8% * 7x#L"N (4pL0%6j7mtz e8EPB m[pk *\X7(&~ NYcYX/7^!hS YdH6 5Vi yg2! |1Y)|ֹكsk]af@bsf0mQWkj`g'ŷP:vl&gyN,~Q:ܹfeX27q{p{]ts<3V0^uuZ=vgva+!#A1$(tx`4쑓m1`2HkN и2S 8v%/TL("2{߻g>opԾ jh'E _?# L`!>hv) =p/^lCX[ ,9P"kfE,XW]kPؙ&QSF,qZ$b^ 8@8GT/$d 5DH@ A )HH.+yF:rqd'WwIOFK3 RRd [T0O<`^y)mSf;`vy[( 0X~S_J噾0WL,X HM<0:9r"֬P4#NvzrST,PM\N g8@v{ P qFu d3nj5P6,@k(]ڀ X2@< Ig0 @30; ut%ISR$U$5Q" @^hQJ X*W 2Ӛ޴0~Sb>% jH+!~UaTҕ `  M lғP"q TVQ Kx ʪ,UKjd!E-leٮ-O ARu>2 +Hikb3~f/r|#A IrQ:.vt.i}7<ʋw[  m›*A赏 c ׌t]\D( % 6⣎xOHFrSGIJV’DŨ e:SNۦ7 #qO_t*ĸDܦ܏ XQ"H`+2F. y\rʣQ ,.za_ &[V?"&qe`7Fsx%i;>;bߒ,(C;kNdbN1BkǜgY!MiL,5Y kN7li3RXqs\Wlg,q#H&].~{xѕک3g?]Fzva10x5ғt$g.Ti]:'[}kga>ɷo(R;)BWw붳h ᅠ_w_3e1~Ӹ2 IM~ۅ ߗfeN\}7OAmr EtͻFt E1n-8<@Um`|S5X @b%iPzVyIY{#ӯR? ZpP.@Z+k Rj+xr8<]Y4j4G I<8, N[ܢ- x-s  șx00 AŠxЋlA:=H4 P "&ĬH B- T3Զz.,SC碌2Q9êd.ʋ XB3]X~hw#C~A/xF4DhRKCj2  @0 sEH!AA:$=?DF?3$g1aPY5 _l gDIdB@CAF,kT#SIEU4CHK.ʸр5ڲѣ2d 3fɨ@;xDD pBd~XȂԉ9{3Șz,2HɗH@:>vUtVՙ4HH|44^{ l 2Jn#yʤW~06 $DJ쇥lJwKFԛU;0 KyI6yIiЉ nY|[qs ) K~ȟH 1LiH6*p δ~7*+̶ͲLsM }s~s  K#88OIϻ L529HY:p9NV8꺴C#1*#\OcG"}l:=⣫âLdOzOKWN,PkP(BP%}PSPRV"vH=q'k_PYzI - C=f PݘmǰPP+LA M!8س'cR;ý(I>(2j[?>곾/? ?0%?*z@*>*RS +*#@d+$5:w MbT+M&T,8BATAT% BӲ"l-Z5M-Lq-"¸-1,TCU2%bzIH.(QDD@DD$BDDTD3Y˯GøEXF!\%]u# <#ZV_ sF>9Fb oLƗbF~Fd1IAGr #1o<9id~p2tMWZW-%.SSr,> f>+rS!>@{*$^(^?')jL@9~" $eXM!Ha,jcJKeA.tA*B<ʉV;/ 9F>hD2Vd@d/B[ .EcPcE]"auc+dCd.e#)!F,WGܯTN/CW~X0TW[Q^eS<^WP"gZ\!W^TX&~e Xkf0foG& grfs[#k${]d[PY_Z1H,cAZ?c-ڛAهv] yfY5|VfK~)ZܴNʽ[f[[ۺi.Miߴhf8jUd[˩aA\"ĥa܋׽Mzӊ\%7]V]k ͹^뺖!e_}> ]}f ެu^EZȶal*Prl@OC#Ԝɦ`zЗ^u::El(_qTm6<$ދmކ6Mm~=_-Y; f0p':RƘNmV %`(`W ^l``V ЅU $M￀~p.p%R(a.E$a"nbSꩵb"ΩopD( S/6?ApT@!8^8dK]`dZ%GU?Uܢ 0F&or,-)般|1Z*wB1[ n"_C8.M!GC-fley cp+f_.EETerCeHe0IbF/SLڍsn;?hFr;f]qzVgFAygvu_gCrm1_ ]Ou[OX(eo2|F^R3lNUUv hW?نNԋh&r` 3z_wnfw'BsIj7i4`!J[uri&֜JOJiVӊ7Ꞟxx ra[kUsj YH>j7jeqܒRTw|\.yk2k% hzViz\8 k88tv(!yHjl/A.M"{"l{7PWZ6톏mP-ֶ6|:|_TS|o>n/Ǽ7}|]z}0D}Hf`'fN!5گTI}pg{(K'Rg.>p+qsSz -p= ?1Sq*~\52諆 4P!Ł@,C0G$ ^ c>xVzcȒi&ڧ遮a_XZynTط_V`J+ųH7Е=MYOpMjRz\r%b9}h%C33 tƀYϞI$ ` ph?Iqm (@uhT`7@k4;**;IӪ \g9h?zh3Vf{}*+P4@)Tc-m& qtK@T9(;S8&"Ќ 9!;n2A#hc:ޚpFTô~pO64*-E[2{>؂%jT/3YmZte>œ#,Y19x3Y?hÏ:&is e@ -6kigT§۶L|SݾUS-PK7-QO\24K.Pc.سP?g9<̕5z1V#8F$c4 K#")  H0@2 A3^!q=SaO~Dg跓}/a܀'< xS^?#`2(iP)0I =p( AR>< `/!9!(D Qr/,H,v=!Cq~p-v0\dF%2"Atq`Nsx# l=q)r7!{cF/rDa!щ|$$#EJ2)%ȁd$(PdF$&bJ0#9+p"%&q JRuG/ʂ'IbL .3(_M5ID  nБ\JLh>4&! T\S 63x@O}59q p,R P 80IL%0E1ѵq " s#! Їj@ 6v" HDҝ#r7@BJЂMh #\9Dln#$w-&@:v,I5Vf 8DS-"XMu'3'MIOO(GAꀹՅE(C!JQnԣ*}8[X*nTB%Ved@ t@W#%W)ܭ 5-S\Mr ]POu/Jce/|!K~ `ߍ~?LQc!h(/e6[ hq*[ІVfjXV89 jR5:moy#m,u@7-#n1C5bS3qK4:is]U:Zܶȉ?q|zǓ=/zN`W%oy`7ס]/l^">ڝ|S̽{ 7`@y7 -Ah,$C(FL,#]NCq7gbFxx:(v(n&++O@HE+>IG9r5T{$ yAe#ءDKPr;u#^%߽~ǎx J|e-)WvÎܤl&y?W4j/V}r!O&ZɌ'=Orj}%GPve'WoiԡwUȪKu?pAO9D$ [|z-yWi2'lJeŕE?! 'f64x]t^l5V~@.T=ăNkuq^r$>GtL I^! ]]P~xsHEv}@?kx4ĝ}Yא|}]dבP9V V4q؝ dX@E_ 8CF) aX"KG rѕ ʼnuYTT4"Aa?@3a*0ȈL!!:E`L /̚M-a?p|b(a)L`g *Za#Z2B<".]!\aN"[)#$[NN8Pa?C 4¡4Pk\@lY`8=򀜒\9ɩ\ʕ;J̡^!< ZhAFdБ9vEL^f]C(]]K$/dORMƉ֩mIERd-Τ$(%SNe9%Y%Q^9#Uv% %^@;D PZ*\zeyV"E^NTj:!eOC\D[aO&Tv6US.77$!0_v(^b[hnG9 DkAfXCcDMT-L4RaN_]NO9D8 7xn GtFYiV 8U ,`pvD UVTXY&<X"YV,~rg]U.pV&6>h(`Dfa* 39mԀăA2b-͇6悲V–.֖}Z&~"begoo9 WgN"NrYseFWa?2+@@,nIDz<@7킃<~ ęG2 (wf& rea!Eb)#F(NeK@48CXI]@v1 `03=@jbWJW~j 2nQ$&*YQ%YFdd'bEA")D1AgT"O\=,LH()"E+ (.e#n/ #^12R 23^A12D@$La?p#OBA@6,k?tC<b=@rmҐZ7*ՀS@-m<&--#R?B2@(NNONA0CDD*@DAl xVAT D۾-D2RdYdMPF֫B&vUG*$"JKf 1n刮>)Cn)eT%SpQ%EP&RBI;A' (>e$)P8/^oPo2'Y;%&:S]ƮBc*{QO/d*d e.pfng/ ɯW/Q,/j2oRf?Hp+-f7ߦUu&f|gRa_F('P UsCtNgN1zf'O\TFm@hLM0sAU1TpNVL)z^gU {~_|U+E~[e/XPZ-+rige`* : ^V@\h]qlkeD_9@H eXfhL"g#[֌&"W#3hk2blm'E +$) l`?4)EiW`QRni~g6aRtuedCeN4 2WR3)"!6C2Rgb !*2Yrf)Aȃr>nX!e_t *8ir.ߑP -vtlIn9UݣHmy!dJg+OߌmVBFdCm᛻-\B6_ShkKPUd?uO±!bfni$)w$HBnr3P.sN6d@lt.NQ7b6t$.N뺮vooi帱~z"6 ov}kBowVW]S$7.%wwox"0OTbZ*Ȳ+1;o1msuŜ/81P8P/ffsw8Ʉg8 C4oPI0O&dk+N ]MMygH 1hyg /Xy}.9#)ߏgP ynu 2r|lÍ >z'G%72rs g:^:kY2Ӗ/+B[9]2fc5i6OFi.ߩfO5:8y:7#{V8:|R8ɤ33ؗ$X"e4*<_x+D*EbG9CCzu&S{ֵW;pkG{%~㻹+"+`C@ @k]*?I||N2gFw/8 P7w{w['G>싱E{>Wa>$>쁸+ycb\L8߻ɳվQ>v8O7wxO?ETgW yRy{̩[GSSF :TGOĎYYt- : $ z+@X%^?y&X,ӄć)>qcǏ!G Vkٶun\s{o^׮^o1xeP 7\p_T\"3VGA_13`um9b#a!+P1t1XZعUmf׾m0޿/nЉdoQB<mjdlO]8qO/ \l@Vtq|0~.,3fX 9m b='Q ~) (zh jFbfZc~lGG tȉ/jrǓJ1.WseQs2 )|Ntζ-m5j)@B>PA pCbF~ӼT1h)MH A1Ȟ SPE%~PUUWa"'>yhU[}t~65~BR=5Uc}'Y ܵ <1W\rݲ  Uw0vqF;lk8 % *8}Oqkj (T8V 6ia"!'Dyc`e *Vnyc!bxusܝ4ݺ| 2𖭞v~ek yg2D gNdȊ)Z wY`-XԱl^㞻nF~o6jQ v |I<~EP\PWwG?csy 2=MvqG=dcx A1`6#h@≊IF j(< RV z驷^ޠVp|E Doz%~[X?08u/%PK =p.AXBoCS ,9AuHDuPH4br(<|"θF?e,YԢEtq`bԤDA!D 9s@9z"u|я$ D21T"SHF&!HK^I$"iIJ:DpY Q RC9x-gI@4.ݒ %̋/! IY!\e4"/&6!>@_b ]g1JhRl / Y"'>3@p@4t8P%2/ KB\Fx%',z Q%%ARbQh@pvD r,) ;#R'lyiLgj xBd@'`Y @5n-& NԬgJZò-n6Ɑ:g8Ј4q%@Xr3h;ީz8Pj|>MOV|!׬g%;%u ql\<꼜ū!s Xְ43+].ڕz(!,X*LDVcmN@-0)g"'ˬ2EЄFA1Cց ; p&f3_o]Ӟ-ZQn5\^5Ks3Xl6=ؘ[gOpBjZM %m?-A mgjujcjvMAk"w#,yC~<M&~A)> !5nS _:IG04C2=|\gmЄ$,uVY^!3T'Zv,p܇'DTv#}fhmB=ʑϋ>NǤyxG>z^]/Y֣󖞔5Cϻ }}_~'̵hY/Ǎ9(߶m9|ә?>?}_A*p?xPѲʧ+c: ,)DJT\ d*٢]JF 0n'pZ- * ̂%Т(֯* "h". "3>#4p-&xJ,KaO$kЮ0!,; K&gu/tLքjIl<ֲfk L$-ł#ؒۜ 6'f !D#7!MsB%牚mRGl\w~22x$ :n!],h ( @N N.6/.L r0"00Ce0Hiv. ϒ.QgnMR(-gHI w‡i5[O5O. 7n)9s3ύ$,:N:;H:<<:Ǔ=)==pֳ=ӏs37aBO O044@-O?I8SO-/BBAOI&}HD ` og&t 4CAT!h6J.(G2` t X:70Z0Y$%UH(HBW ^e0-D-|`J!LʪJ-\Ia0,vLP%jpn0FuqebAeq2@H1 K#(Sc5^k-J P pEV *G ^-bk:"n!AشT U3 JJ>pOCcsxUQ>qOY;ƪq3>;HRb1G0uʏY َ K&]$)}p Z$W[Bm SAW5ˀbbh` ʦVu}LFVTG4c= TSY9R!]E֑[Y[S\aMvAx`XLLyy^5x=[B5p@ ;':Cb)6\z+A LޯOɆbٹe0>e`Q,z!bBA$`f)e_% h :!H R>f1Ch-higi>" R!W8~ӷaļl*-Sn6+Mخ!@Mk (F2[+)u)m5?mͱQcÁa__U~W2%_7vq,y u.n3f1]7K19i[CW٪L6e_,Hy ϽZ!x| ؿ!^ <0… :|1ĉ+Z$"#%W,Q8E|jʈ!,Z?n1DJ!;W 4СD=4ҌL4jЗ u#{*5رd˚=lӦiۺ ܹoڽ7޽fC >x faȋ!g0|1aʐ9l1cɍ)75 3L1կ |{uݼw <ċ?<̛;Dԫ[=ܻ{>Yw%I%5jǏ> $>}!LJ! ҟ R} "|| " `RH}$Zh"b** <&+wJأ(T!05FXDX$WB"ORy&@LgrIgvމgzg~ 蟲tChh.h> iNJ)\7߀8cz{G# ‡2j2b$+ !2Ȯ22,$R쪌: "k Z< ȷ"H>[- ɺBoZkȷo[-H[m[, ,#""bǃHBk tBMtF= 8J/tN? uROMuV_uZ[NS9#zwH#(m+¶"!#b^ I#ӭHuN{'?"x Gn7$k;v7ܧw!"(k׾x{}=)M>ݻG]C! ,go`z*\XoA0bBn vˢriNJw ޾%Biڼ9΁8 'Ѣ9}*7~L]jUR&t5ъP> [Pc`*pՎ)?y;],SPjer}իGKaLt|?|\bOjuά9ی 5 !, {go`z-xq`[ʽWΪn}ԥҟ?Y|%͘6aR'ϛ;s֜f 询 1aĉYXSLzC!, go`z[ L~%6@k{"U-xϢ.|*W2&K0̚:y̹P=\T ,`…v (~.fWSL o=zѳ_@!, go`z[ L~%6@k{"U-xDgQ>V|_L\”M:kޜ $Q{fAX Qb?]د,SPj=zѳ_@!,] H*\ȰÇ#J,دŋ3jȱǏ CIɓ(S\ɒd?0cײ͛8sɳϟ@mfУH*]ʴӧP % hԫXjʵ׏SZJٳhӪVصpʝK.϶E˷߿LÈ ǐ#O\V˘3塞ϠrM8G^ͺk_˞M{uڸs|{^^9+7dXμУKN}׫kνwËaӫ_Ͼ˟OCϿ ` F!qGfv ($h ^H(f.0(4h8<@XJ/DiH&L6PF)T˕X^/s 2(ӌ3`>(^&Yl&wfz g,:'~H衈&袌6*(>"餔Vj饘f馜v駠*jliꩨꪬ꫰s*무*0z (̘Lgށj:6>+ƮlF{>d+k覫fyʮ+k&#p3HC5!7,k]H*\ȰÇ#JHŋ3jȱǏ CI1ɓ(S\ɲ˗0cʜI͛8sɳϟ@ Jѣ8K(]ʴӧPJJիXjʵׯ`ÊKٳhӪ]۷pʝKݻx˷߿ LÈ+^̸ǀIL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw砇.褗n騧ꬷ.n/o'7G/Wogw/o觯/o HL:'HAaHC ʢ)(ND! EBЃ- ;CЄT ]CІ?aCuCчGbA"шODb8E&>ЉMbE*vъ8F.ы 5: DC@! ,^ H*\ȰÇ!,:'`,P B:40"C^Ԙ?{8T r'/LȲJ)a!,^H*\ȰÇ!2,^ (П*\ȰÇ#Jŋ ȱǏ 9bĨq`ȓ(SLFKDHfʛx(? $3@4-_ Br᜺v}2>LLleG, Aqٺk78݈Zo)S1uV/.6=Ѽ+r #)[Z4iy =,$ AG,zDR ɐUDZ1)b FBzE' =hde)rk@$;*k<{Qb q-C/ D}Awd,kϽnSoBZMb*0^ "Ā1OvФXpMJHdUZaCU'*b $1R?NdLE+bZxKavg!$ !Ә"cCNG b-?m!`}EcDq1=ش &heK[)jKATʅȁ!T3$A@,.eEA0Dв"ĥ(JD'bb-T\xAxi)4`-Yf"iG0,`q ĩjBh'"4@pV$T,ňjN UUAw*51">QJf=QH;X洛 +,/qk6س$ Cz'H8hғ @ o@78NP%* \ji0)td-\Zw 8U 7~z@10$ @B[ d9 s' @ 7) R_藿%+.BX$6_++ث,Lǿ ,W$;H,x?>Jd%^|"#5ro)!O2`sHP̉d6+o< 7LxγcnπMBЈNF;ѐ'MJ[Ҙδ7N{Ӡ>CMRԨNWVհ^cMZָεw^{z־MbȮ5f;Ў_i[ζ}jsMG;'NvMzη~N[Gf+~%~sC53?rw񒛜'︵Am05cNi"NiO<zrz̕^l#HW]WozΟ{Y/y5Nˢ_O;ǞqMݏ=ptz(4m~fGI= /~t<-h~AZ.Q f ݏaӢ7}k? }c7M#G}=>={_/?џ~t#t?1 ~>!y/{zG|zwy7~Ih7'W|`} xhg}X{gz{.zz7}3X,rVw7|B8 4hVxz=?hyK؄z|:HׁS YH}.2Ȅ5z} `bxmo6(hQ}6Vvyh{aC +Xwygz0hghܷN}(hx>wh(8hȉ89؇؋h{9wW (؊y~WxwhHhxzzhwx8xu'7 x`ؘ'؍wyQ()jXXzxyG)iGuh-ْ8x֏Xhד IV7`N W ;wf hhو`_ HfhY*X*hG̗Nzh|L鐇Cɋ|Yh^g9 <)w"7Ni}ӈNi 8}gI{~w6)٘7`H|N:9 'y`9 |`לkxƜΙ}'ׇډ睝H|ɞy`IߙziImɌ⹈yy}É) ymjjh֢tzi(Mj2h?kAڣx?JiIjB{ ֤&(ïKڥouV*kegg^zDrcehFfƥrljsm8ʧz`f槀7Zzک*ʨq:-'ڪ::pJi mi{zڨ J#gúCupʬjn:qѪsZFZ鬨rfWK:Zzگ+:{ˮ Z P jK۱ $#[&+fq*Я38:<= Bۯ,[D˱q_PK۴7+O5;EZ\@h`agc[^e g k{ he&h6G iUK˷뮃۸hm+kKf[ gekh۳u  1P4 0  2OPhp @Ȱ+e {7˻8u_0 kP eql[me!Pgt븛eK g  n  @b@@MP c P\ 2k|µ \. 6k\ P [F{캾Kܶ-u+hv[x @0@ рp [@ qP[Rks\w [Wk-PY쮗ĚśTLNL+ŠKe[kkƁfd{ e pXP`{0 Ȃl1\Pfȃ,=\*KeaΝ-Jʟ ő\ŸOl_b<` j\ pL ff ; l]%M 5e1 6Λ,JϣLR\"K`a|l s2e̠ lp ,T m]OX!]e}im_fadr tmxQ:GEvn+h+ٛ@ٚ} hvf0hQҐ e " 9`  o-+&cۿ  dP n]ݿuKӰ =E KYl }A ηku p : )2>CKE[ZtjsD>R㡗\ENHnlONu:FupKa\ҦQ<^V~X@u`k tng&zw|6nـg8m.v u+j=ulй_zxJhg (nroڳ]&ɫ~ԁni.;(8{v뒞hX^# Α FNk@0q T~yw9gF[iN̾pNkѶ~Ɖ~ΚXwIrNj _k@p鹞7Fh繠! Y_(>\͹VdžFZjh4SVw:OvL=:hðqZSU5:Ё wbȏSJuj)j _*BNaojyn**!Q_Lh9~Yй~ ٮ#id>K^Sj.If@qЃw&7ng Pտ ׯ+hw>,O^.h\wɁ|hW^6 $~n7B%NXE5nG$Y$@4 D9PH8sa mqdL! &Ibtϊ zϢCi;pX~gvaYw_=SGp&A&\aP/ز)!_Ts˛20h3M=Sf\iQ @ U)3+W瑩ކ'wa?uQ7a侣uٵ6;Vo?Px FX3!3_V,v֊-@t%GQK6Q_{Y.XYnSfs6e9؟[Џ {-uAzg*h?:խ5{l7U>[Um&{m#[ͻll,6oµ.|gvs^Ld-Q|H|HCzWT>}UUUt[縿F v)ZZ8Qکl]tWbuSbw羚~HdWkCAjnaٝx'99ݦͨC62:S^u-с撿 {rK6Q M*3‰q^p|Xβ %Im[l.MX<4̋"`3|h&ѩ}) N% N&[HR#$ b̋Y.(SR? d83 !*:өF<4ckl7)Y1nDC烫D~0 ?^%dʁt#D gBE.!pȇAT.ǽ @H^ Ghc$b"4Q$'_k۔RQj{@E7d %icn΅=DH!4hie dAh)mI宄/TMVFjRhT"EtNSG5R#.95}QϹU􆵉1^@htQYϊִ.b-i[0H q sIMWe-E顚KsGU- abi_\Ɏ(Odo%laj3,+& {4있, ĉͯ좔ƴMqQKa'Vk{56mmg[YBMm},-:&dUlfwQ}*srkn!kHbGPXJ:^@i N#sG~a)m $xHj^qr= _>x*|Rߕy1}xc ],$,/IlGqvȄV( ąpRdLfK]Y"WchQ2=6o,_e.b@ܪ1 )GJu9'C~7G'Eq.Б3o w>;M;@P:lD(>9 ?[PQq+!e echG2#NυW (vYjF7/,#!gF̹t~i aBʘ=*&?1jCwSfB; >P<2}aXaX_JFLr+PKMXvg2UfMJW镓͛t{{P?쭣K5KS*.rm e񺴛Ul]8b3`E61Iaӓ;f5g]xNѯV\Byh4Nߚgh^o+ﴠ4 iKv˽em- لOxQs|qB^{#եD,]kqu cΪyݤWiv~E0l,Þm&J|KDΩOF} wQUĿq7b8@/gW+H#xVi1 G[  k69}>Zۍ%C!'[5-[)2z.!0 Z2"BB"%&z"+It@"L3\#[&lj @#B#S):FCGAhV(|04 K$xJ\5$5KT+Q /WS5![C\˶0Í@|QA*t'`BAS&a#6|-iA+ ('7zz6rڒsS07/A7C?DBʧ-{Dݒ)PsRY@NC2a(lP,è\$@x*B PQ)}`P"]88a0LTxʓ > Snp*Ǫ9 O:E1) +ZhtI2&wĘݫ; HD<ǻ3jI1ϣ;O:;j: ʝ!-ɗ| ;ʾcJJ@̙J=JJ#.=.Qu0i K68;{//h@KP>IC IC/࣊ې |(+˦[ K 0a#K>hD1>+#YK 1Y#ȫL0JF^t@8Mh2Q@&32s]C#5ǘǏ3!ChM4O"5:O%#G4ƅpA*B=*u5}AK͌;C3AMGG]ݍ{lcڌ֛۬M\rQL J\bȚ?$BYV-,E`|V9ӞdjSDj2 ,k;E $0$8܋kDaX"D"Z,134$4?=l8}T?*=⑊Ž ~BJXþ۱)CG:`7dNդM\;&-%WKQ Y̒\F,y &ZD=̋=] 6gfĘUl2k(fTMt7E^EȀ55LګDIFڅ<*FTj[Q2== )xR^$݄zt_@u\Qq`4\ԕe,Td*L5 RO:x| UhX ~+L SH2ߍT-Ut0ۛ/\a^]I+~{A1?H~I{?GvL.MFNOI>ecWx~P һ.vA)UX!)z7 c$`5)IMu[^cmO^f V̈́>/2P \ԄdܘYYRMف@?P?K`]fE1SpgKZΣ%[<2ETۣja }|ioVhdh P3p M@hR<x`A=UL4Ytшˬ\9x0$nipf> =Y`]s($I K0S[hХ>5U=WCZfQܰYI}0ckd ^kS̨7aȀsa1^'-Eu Ɉ\?|UpFUUUDjpը+U:^ofRV2F WJ,89H#nsc?Ij%k;le~|hqs7ve H!_L}4y$%ٳY~]RX+XrifCs_{p,fk^l^nf 2q3'q.x]sBY{lgV眥M RM6hFڇTڅ8 U ? pUwp}NW`XD @$i*;[,KdhCsi!ƈ]#Eu^%XVu|1QR4= )j)E^x-[u IwՕPjrwkZQC.sRS]>%7>)E$E=cyQN7t^WChNvP)9ބo.l}ȇww%*}.k/!nM^Se<b`pQPn;n vn|FǍpr4CjyDxF={K{Zo|ᘣmTTKIO7db'.+(YR,⏿6lcZ#/0rWOq70vm"y,@qA)d$/̗*W+}}C}};Q}?q#.H6~Ćw)Nd_M!qy)ԨRRj*֬r@ (Q@\K0CDlt׼T A"ŋwnL< canjXraAN_KF)_zFݯزgӮm`ۺ}@7Zn A L wݵ5D2ײ͐ taliҁ &-? U|GA\\ )\^ŅŜ]f Y6ɃH&TGv B}@9V}H֒=4;)GSCP?Gͨ_nx*$dmp $%Vzȕ"DueBys(A% O<eOi{Dޜg*(O٨p'BVե]_RJSe_k#JIPXasYQzMuB~(#=@eϯ,ZU@ִfv}a U%_^PD^fB3>>m20$jG=MK<ҳI㏻ҭ2Ԕ;<=;1ź=[S@00amܱY`V&gڕv}-#$%Dvjs\><4Ewѳ!=;X) ,fI[}5X5V[75;j? LnOq ܶ>u7 x\8qxA/*9 y^pB={>嘇蓋 VBԃi-?{Ni(R*4 ,yu:gsvvq gԙԓG Uᅨ|.pm3C7Dnl^nG: ItK(3$'>qvIYD]p#bqD2űYu 3."_ZAYbK2l3!R5#5dRvVPwsǯaP#$\ uB1du84rKwdt'l)F1zDE ~$X|!;i.iHzPmC\PBD+tZFDñ!lR@:HF5r t9Hѣ"M i#G'J`@d&PIKϔl,j:Z74=TĪz`R"}Q%#3s2!Iz c)MpRl _TT*{ V)6sh'}J"A|}aQ?P@č"řd~i.KZ^0oV*t]"!6R/K?FK0|`q?gmHuLt (#(=@ӺQ SByaj $h{},d!YRUSNⳬ@$>~02̃]PunkW֖z5n m-Fr=.o5JO'r YZk:˲bGU=C~)]#HʥB~[R  3Xe͋w5e&>S`o' x*ԇbQ=aq}v,$Gy (0Jfq8<’6@B緭~45( g=CNТaB4+VHiKmԲ+V4gIlcGUH>5A'gaS  epmztõM`3SduSYN=H}P9Y0n@B !q`* ,?WhJ+ZlL(h,r81Aa4klS| XV-sg'uѐbv0ƧZ ڪ|\{C:Ƈc}li}c.vfJ,f`RJVJlꎮعx=& Yk< /v3u_[Տ yΓ^kmh%_'mCTGnd?\FڲS{^vw =@ҫ'={%ը$ٍwSV/ Dͩ^|Q:.{@o&Z%`%HKVXXJcE $ DCkeP\Y[s ͆YX41JPp|YQG YY?CYBTh0pf;~HF Qu V}S Qڻm T4Ԩ:?Zs؇)1 ?HRzTU,R)]u ۻRِ$.UTDAAC/M#Ss( 0Ue0 Yi]IN]5E:`} LK‡kp2@U]m^C 䐝V1J}ѝQ^UxcheTp%UL%L a%YI-j ͆li^YY^Wݥ_N^VWZ_&D"^GacN_3T<?mccRcjy5eЗ}f~~W`&j#%zmD?hOHh&qTzXYY`Jqʏqm`%_H"+zYKVʱx`0= qeم N1\s*Ĕyl`CM"v#Ԡ=h9zƵ'5N/.νr'AQZzdRiLp4"/X9ۄD!6"r"š8FņTBp#XVfa-q"GmI[eA%ȓhMI&.&g[]~)م01~:%# <4SkGVB'5\Xf( gҪd\;#<< =~gH=VHdXP$}FVF*BEZHҍK⋾œũX-L.M.~MRYX2̠ڭL`I ۩L.Jm!M]&kFbk1(%bbu%Gje\Rg&^^kfeMf6lbd>"\U,!*fj&Cgg._TߘlSV͜+n:n^D9V̚^@-\uNmPUmrċm'z'& PmŽHE fnPl&P?g.ߌ檁cV9kYje(*h+VbYf1Nmb̅t.ĖbΩuǓ጖'"hna(ZbbfE!nV".6$6/#f+]bjbR^:E/-Q*Bї:*VDibF2/ͷ}2/zEiΊnh)4 n$12mf#*jNj8RnL AJ<ܧ.c*IKKh˱+ATMGZ%%/ɮ_md2,G?k$U++W *[*LK6LEOdzmPPFQR^+S"tFem-າ],1fI. ־JNATڰe]:u,*b2&2R.6''({rrrc2`r rWdiUx0-P˺2^iq[&Yf3lrJU  "I0'+WorT0gX s֪Y44C Os*. 㶭Y>@FPDcAb1U qt2!n'!?K4AtU)[@̭\mS޲+47mn^cR9EH u q=XoBRo#IKаHD-RH>a( !9Kc1F9;iO&_buQuK:#S7{),SC\juno%uoEm(*Z x2$Gzsb &{[{^?;5O?S|vA(v!CpC6~3#\1l9g8>;cgpǹ\X = icjʣv $[Y$3B{D1s<6DUIJ"w- sSZ=t/{q2 D^_u31ЇKmzO8b}*XKl}#͖\,\߳cxK,s^gE/^;kw濫&nT2fUk0>3xk1223;OLۣm>ffLXNжP7x8GmC9G'DTC'<3/ <׳xmO\{cGPi& 4xp? 6tbDh8Q`Ň #B"G0$iCI;t@:$wM,7l?xƮ_~lg)Mäc'>R~weMtn\sun^7ypߕyE,,0' 6P7굌P!͓sva7M WHv};S'ym:L^É7~.r)t0ySs7izƌgi;*젙:/8v@6^Z*ӭn>ht2+ 0NEry>Hd٧v(f栅ka*z\=|~yUjDj5^[e2{^ll۟ q-gy'ȅvZ1 l- r|7khS{z` Z@r/v{qeIZO7Xܸ{g:< {[?? Zj$/RU/{@]vZ5u}ѝ28 e ԠWB<+y%-GCܯ_})Bp ̑*5_fDw5˂Bz .d^ygEi\ R~b^GfXݏsZB~BF?@í@5.:-C@2fQRMvrФ@?p1fT*YFxa?TPGݑ^ Ϋt3֪X"HQN#!yKS'$˜MK<+ ¾h/QAWDԘ? 8 "rt'YEh`} 91:q,nPHI 8rP84 JP&55CŢXF?7/ i?#sg&  TbTUR?B"tZIU"E=I^3B(sxOT| iD-j[;yN@Tv`!4dS>'+4S/Hf9ۻ~ӞTUBZjj*be[[:턘!, KmGA\IB:d(q b(p#E7J )ƒ&;dIFb,ʉ6v,#ǐ!,W H*\ȰÇ#JHŋ3jȱǏ'ȁO$K$MI͛8sɳOЈ))dO(sbС6JիXj4(aׯQ˪]˶۷p;;cM߿ W*ZHN#KLmaO@Ċ{ϠCdfX}K^ͺkѴd}شVƞ8'e ".qȅKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix瑛 ~*蠄j衈&袌6裐F*餔Vj~馜v((ꪬꫬ 묘J릶Zj2ʎ?klVl>k*R+Z(vJ .t`{.2.~(*EG ܫhn"  @oT|q'jN>ؓsg<)=ʁ}4I9@<-1=(Ȃojv( Dkv} ?Y?:uS 0*?n.?PިNi٪놲~o 40,rީ/1zfI?>64?&GoHo솖On  @|P…o25ƒ3!Ur0=AWtY`7*uB %>Mnޖ' ~ⰥK x [wc>֧ #0 jg(A#X#HiJȽRi ?ղh W*RkU8n)UN)n]kZ@T'+YJ=FZv49},XBXۄ?p3bPHc8<4Dj&x%-*P uCPpK\^5$+r\"8$PעvV p>c`5J.\hk0<7>>| NY{]ϭj1 Pxdݍz~?>j7*X}-h) dT@T\W%rM`$kTU cmqZʹr`%p*kZYf8!*7cdQT7 9ע8[Dp@GM꧖zu[UtIFpv7!t06C^#8z7 O0N)†xV׼./6Q 4ζM:æ k5p4θbX#8F=+Tc5܁tă؅- CEs[ȂG,MW/>UZVsu'{g%q(||d.r uSCm,^?@sP:V ܬ?wzDP| ^A1nM:׎q4Wj@!,f H*\ȰÇ#JHŋ3jȱǏH A ȁJ `ɗ0cʜI͛8si3ɧVp y)R\ʴӧPJJcZ1|Iկ`ÊKٙd5KHKݻx󂬅,TyKÈ+^ 1F9¸˘3kv KZS@hMNxhe+-F x۸s;`b( Ikȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6*n"&Lj饘f馜v駠*ꨤjꩨꪬNZi*j+ު먹+kȶzl.ˬ>+Vk-^۪m~۪?k򚮬t`n f .ֻ*&0DJLJPo>)v<㎥3=@LO: +s0"m})K_iC@!+ D4?HZ?ðO͜LI>nó0죎| .|3mo5Zp? ;6k޹ߠ,V.霒kOo[OMngX)ʓέǹ\'o >ivz㷫ٞoR3?9?+";tRк7֧o=?!){-g{t&xpgD~wj?h~+30z,PHLb|s" g- uR-Qe4>.8*+JLFTmZo4WЈMTG%1lX){32 ^j}>J.yN7N:Q DRL*WV򕰌,gIZR̥.wI\%0JaL2f:3ό&0)M]Rļ&6nz&8lj/qS<',Y8 t' |AEQɄ| H(Ԑn(@P1SSLBЩ Wvx8q9UHUm=-e?n|^'\S 8Fa~ 9@W5N1 C?a_ܫh5,LX.K: `^v鱦_ŕ&  yi)*N7Z |_2edC ;G%4_FeNk8r?ۣ?.Ny"^.[yJ^ܳ9's>nnK*2v{„1{.`x79`N"T)~tKݓ+=\U^)lFpH&[x^ +_IJ#p@ w"8v1x`G9TB洞7NoVzv 9ƽw@юS^| KB'q-eVLe :뗲 u:osrG6CiWƇ/ olD(D 5WInP@GL1xfĂ!,u H*\ȰÇ#JHŋ3jȱǏ@ -kՒ5@-0cʜI͛8sSJE S%.{*]ʴӧPJ&1I}Hׯ`ÊK.  SPlKݻxvj͓X0 È+^x(GPr_Ƙ3k̹ZS@<iQS^ͺVZAgr]ͻb( ,۟/^μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰J&n@뮼+k&6l>+m {mm+kߞ+mr ok;oB/lSS> k<ԃ0p ,wL+# %k+? ,k]˵l! ;2& rl=S?lr Nћ#PXgR`? &`S8Ӫ631PoIr_,Q@PM?P3=ZҸƣ>N>@N6A5ȣ>밿 ێ;| wӊ7sl@@t 49<0ӸÌ^k;w0&ާM7<#O@=޿;w*4`x*^x_%oc{':|Da+l&ܑ]WȜF0O{úW nb(hFP @@(VWAW:6pq.9p|[\?F+c%>pSaԆ>Fv DV4M4R`kH"t%e~av-3[&}qHTPs.1K9x uHGZ҉"<cMoytJrWp%j%aH3{IO 2vB}.Yj6U A/ࠧC}.qø{E1xNrxZF74cUGCi0a1]ͳ8=a )P, < @ h̨AݘTgWX}T3` +v*V:Wֶ^d}k\5׎uWFqc]:X{;bXŪ౐UKZ4d/z hGKҚmRֺVmhW+ͭnC` pZ5.r\*e2ͮvr/j+Ӓq\V%㸇7@1Ө! {@y5\vu6p%LV,\زp:\&ħm/{kn?P7cs8J^8n0!v"Ngd&@(s͝!ٮdn5a Y1( 1Pc AQ b@JkԃXAiZp y#2B ?pQrl @qH0 ڡWv9ޱzTy6$W@,"?.X>vcq'epOOlVl%pVv@q@@3HY p%B gEin1ā(2!-p77G5q&/0s-GPmր iS䑏SL%@5 Pт?Nq| HnnH#er:Թ` Ē1Kcu`=̖3; |$8WVő-Js  ` FpAK2@B|t4.@r@j'U^s 2W8@dd?~K:Fo-8u: m V6e| X'JSU~ip`昽@hi&m뮴+/kޫo;p /p-? 3m<#0mW,@Krj`@Hk4m4Io;4>5\c3L;Z#лSN $&׽Z[+w@T }WwЁ5C;Ҿ0mA;; >]K>#m:#?Hks3$mX޶Cvs|x  =m@@t 5nl2:?oR?Dl9ðl;07#&ydwlv7?mK:|<}X F瑰z{ ǧz03,͙L~x%?x-"tG;kyYq?:.߶x,{,@|&?-jMeM &8g pq:\](?䭎3и6g} biЇb܄Z{?1;( \W6hBfX҅xJ2{(ki?7r[V>d76.yCAJM{Y39-ɱdc:EipyBma?ej}G1M~G%73, c>l_̘yDa|,S]JK @`4# oSPqVf8A6NΣ>&7-ZYJٌZ)e"*9;pnbƶ2zJ:2V  NWѧ@ZM(X`ڇ?R5:!6!f7{1rZeei ˚ARۮg9;[y,VhvކF D+npVesKZͮv궻 x׻M/w˫|K_粷}_w L8ZN0r`2}px/6Iqob,QC6A +`)@8g`wJp,/X(K[ia%D2_+aDbqn W ) a%n2p 3$30fv&ӹ  deB>Q $jG7\nK=o}tLzGݾk^c=,2n g Oq/.P'(4>H7:}+# 8c%Gn<??/zdiQGuShOf{R,zDu+,Wcui{͠vEpqpw\,,alv֐w Ry,!ipl, 0nl ;؃9xNmGtc7O+1W\QH^z%G.M,Dx h6psp g\]Opp'qv {Tfuxy[+ l! h rpOXަ;dh^@CpvH|VHgg`dW @8@ eQV zP ,AX\HPǰ   +qbbXhIgmTu{c_(-F-gbg҂8t,RWg Y&Icy'z)di,  *y8/9`-;y`=9c/[nP@0T0_9*)F!?, H*\ȰÇ#JHŋ3jȱǏi @H@ ɓO$͛8sɳϟ@AEQ^i% ЉI>SӫXjʵW4k(۷pʝ"lK<`E)+^̸17N)'Z2q-$'d9MpWF' bͻUUBcGZf=`УK;VTT=Y NtC+ӫ_k,PV,xW-'h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ț@(,0,4l8-'M14+PG-TW-Vg3ZuK dm]?n ]Գ<à>}߁ǭ⌷8'G>yAӁ9'g@џwJ`x̑#@9s|г\O;޻?ô;ᆵnVǎ<Pw7󵳬|#g}@ DOπ/2@sN>ؓO?0u,ȇG x#2:0ejX<Np5j ,Na+[ 3s P`v%nG:BPY㨫t͕}\U)ZM[x߆]nWe"ͨwc|V^xd˯~;:*L;'L [/7WqA,C&N`0ga1sc@2ANa&;?~,e Sq:-=D 9Z̃0HЬf/xEf>~N& d60ӑɹHG$2\n?07cs8F^8n(SYҸun:cǢ,y i*$T>?! w<##4scO(H4F2Zc8Hpz+I !yDC7A_`$7.FRm (=1 c78 XE=aP p\X +S?[b q3F zA u/ Q tc;w|#{׀ 2IS䑏SLH&@5 P#)A9P\dCŐHz߷f5?M`M5a>^ |A ̄@  E ȟg G0v   o |8c{sW^lց1V{'cD{&H2(mjpX0@}~U`# p0 p~9  ئ~f`Np s0 0x#qxPWY&#q mkЀa`J05D)xb$z=6}R{ 7`{d4t|l0}w`@}` n ; ЂїGh`Q0bp Xp_fh h >Hp D0D`ӰIXbxsL#C|@72XKVt/Og7 `u ` SnXp( q@Fv}я8`+ l0!  0d!__ `_ `ky@d P h@ 0ceЍHcI9`\M{~lF'tҐ pm#P` op P}`   eoq # 0i@p rfp1iH @n qKƎ396>Phfiy/$o׈y!&NƜt9 oؙRɝJ|% Q 2vbyc dd!:,A@V@*b0` BdM0Pŋ<pE++ c˞MoF3@SLp*HjX3cZDe-S"zA2`L9o߾rğ,Lb#\&rFA17Bj%vXV,eLbRʅ6"xT+ZL^ѢB)/.Eb<CR<${4b$8#B4Bdihlp)tix|矀*蠄j衈&袌6&: &qZ*ix.bޅب&ڦaꚱ:۬fjij+c+Y9쯩Vz"+2묫Ђ*-#`4A:k3#.KNy+?bľɻ2 /F讴/B;Sʮd1\01KN .L{03C3L>,),C>XN>(r t@[?@0јn0|rţ>꼴2u;/ 53nr$tM=7yvKT8ߌ;.}-z7Kf;8#?ü Nw<RZqg ;#d>;ǝ7ܰR{t?Oz˻QRREdaHMlNʿ}y [ˇc'AƂ] 1E, ԰6{D3#f %Y c47\ kbYxVKBesЖL@wU-+Z&\(ȇ)(+ŋ$ ;Z5=:-T&,iZJ",Z3)C+ZOrLp)QS?J]TSҩJUJr+OuITeVdYaRS+REWbauתkXںPzu]) ℯjXtmN{n1zզW҃ϓ'h '\RPUeBor&,lj5+Klk%zmi[֋ʜ{"͟h-.im&ݯJWAgUWw٪[j1qj$̂/5ڨb]WM.?fs=pICM *ddYVM +օZW1N+fM_SobX+qKnu}twb-Er|M6Wυ|SMp9 (.Vda-;9VԼd]>l?{m3 ZXf/mw5{y«jL%l-K:Δ.*/eĤ43:ɤvꦏ`,2o [QYiH?^~~G;}~lvv}V{'nTqj'9 mN{wzvytj3gs 8&g+$gΥzyp A2xSX2,+)38_6؁8XGEa=|RA/EhQq/J'B(Gx3ǒRX(x98\(VVfxF]Hl)LX2eVx.1t!GPUtXnz j&L[EThvxy,(f80''*Hułr+y舰ȊsD7{اv؄vfVU^z3I6x X4ut'owG|eQw}+Ԁ6v}׊7~ee~Yu'w}hR>vE,9[|h Hvhֶ[6} Zc8sHzssz#W'j'iy%z+a)i/Ib!Ygcy9'ƘX=9qc8ވҷG{B9R}MY}rbWf]H*w3\JGy~/fDi{7k9Pxig;rW"h%8Yr1yi Vya-~W|'$VXv] kp|ٖhH^u鏶fiI[Zy?ַl P(hBh) I`G6TiGm?3p9}or 9ɗ阛v)iɘh2ǂ ʙ bJ5*H yٚ9I|\wse))҈X١Uw(4,*%:wȜ(7Viv:E]ŏ<*icP&nYTRڝUVjFz@tj*iʒjb*k9Im w?&řh[u7ЩU ?'^㧛&DxGb49x}D>Lg\*jIJhzG'کy^j YnSYQfJ)<ʓ-6!V*魓"iG2r(d z [zϘb0}&glڨcTaә6]jU*$FfyyL9)%:z iA^ʯڧzJ|&늮&q@b*L{dz"c9 D{ڳM m˲:_:_FbfkcJCOoְ v4cJ >5Ba˷~穰v:deӪ-z[tiMkßKV;$խQ[SkUWkDF aHg__Qb *;6}/ʸ kRjKKekQv˶5RKŚ|b ʞX*!e)[˵R>ۮkfZ\&"$ ,)!w+Hkɬii ȉk$܈,Is,H| }ǧ̜^\-҈c)nmӧK@y äa%|n,uZMmˬ(ň|ȅÐ=3 >=$lP:C+DL;30 ;C 7j|nH ޜ0rb ϰ1C33<\rG[0@̎Ac>Î>fAï 5`pc=r:mÐ2˃õm:O+x#&#yk\b:l?Cv@ m;5>;C8 ëPԷ23Ǎ[ ?;Y ;k}{rNZj&:4JgzyJ%)mp'U1)p"8KVb3oۜ9)d f@#/f3H< H1خ} vo(A|d |({Cj1ˇ.di&DgEs9̙Dqdfa &E7HVl8 hbd+ّk! G;c^yl )rGk0bE8g5둏&89[@,;د/BkZҰ ~2kcw|cP+!@#ޡQ2øDn<"MEtZ>&;e’lZk9?"9~L Ǫ$tքiWM& QA(Nw=ɟ49hIT& EA(At&@C:0ɨaRzkUL5 0McӘ@=ͩL~1P*kNՉi⪪VNW U+HVt֯Jժlm+ʗGre]#5ܣ XU]kkarؗuP5`5Vb!W tgAT6 9h%@!pD>*2IPm  6-i+ZĶ@(m3[f hnJ2K T@a.YJ+=w'\-mdn³ ?;ݮȗhrЀzĦ4|\_*=q@.:[$"]A` X2L$8}0Qr&>A퍽pI,\X9|kښ74F.]n9me˼2ow"\ؼ @9Hmv#{:U3Mrs6g=Dl#4 ɺ5hZLMgg,⫎=4$g+{7qE*m,Dn{d&.^ 65^ ;H-]Q%L-W wDE;l;l;0)jvm!kwbx䞶ߺ ZҔg ,K4sA*uzn>uڦwT! |wpx~qE d{okn̐ڦݴhe[yp σ񙼺/I֛s[y?rt|ö.RU?`ǩ=αljW>[G.d ~B !-7!]Ǻ> #d'{سryr<^p`į|LJhWǵ=@`Z_.3̦YͻU2柫H=/yJiW9SE&|? ?'߄ٷ}<[y5tBg[Dw}B6WiuRwVTvW6.6_tDzv8_j'gwy&x)lcw|w.'(ix #wodxy5nfՁ7~'؄Aց{+o({]}ehrO(F7iV"N'$Uu8wrhuW\0!jHZ5gV8_!h8cHVh^Gg^VVb0~!S@ulHz[uXw@kVUf7@Pv8w6X,h`JXU02*A{\U8C'y?h>Hy[hd=u"Ƅ8u옋?񥅹ƨnag!h*7|fHed|'}`GtppHux5ׇv}f5$S2 z$;i%35"o~+=3ju$L&gWV^Y=<3v,riQk-Q2dr9uyTR[◛)W)G菱g%&yNO ,!=er$3UFiYi(ᘱ|U$=IVɚPv(i$|I%d[yXTbb *Agɜ+9Q9)$j96yvם9.b ?'h&)Yyr st:'ffyHjwFGqwGo{!xZ'v<(bWJH"j&w%]vU-w0Hlv!UȠnx{m/X>yɨy`֗"EK긣K6):$[gx\mʥc|\W}pkI1:jIi,YGyA9 suJ/9=戩Hا#$U@) x]_%:¨ 0z_!'4(L&3V8" ʊAzGE3afZ5ZT4AZz'gtT!k lo:Ƿ3UBR[aypڒZgZz+JY{h UZF矒hacvs U^tt&`ډeZUjjܥ13{\j/z.{l*xQ˴FgzʞB:ZEyZY:< ,Rj>ˏLys+>WXq[ur@l$zVZJF+7}vZxf[ 穓j ˨Yyk H#{R z*x#:u4}X3ckz JQ([N9USK[^{mK'ዃzb;P5 <r +T t;\]?Rx9ke# UD+M<{آWzkK6jSV{xuB#zV雾_Jj=ee{\gy$O jyV{#K ;{u }{p7\r& (}¿+L"$ɫlq|XX*\q̩ U9F;t1L\Y[K+X̝)i;gŽhX_Kͬ狎pȦz՚Ŭ[\|sL}\UKn,; PkL{چ ɯ?2Lё%\lm* TḺ Z Z8lػ}w{%#-D̡tż-SQQj^HKvלd .ngXhaK,n| %WrשPM2KYhTB km̅bЕlL';!q'="$ʫ]q ˞ۭQҠRی#=%+ Lڸ$RӮ}GG=Vlĺ]KkՆ=֌w۝*_dݽ6(=rmsȾz-ߣǿ=j8]_Vlo*gL) Kʬ%!.'S}uu1Z' *EGnBc٘9_s =mpa6۞ni<ۡۄ~}̪"'.qOީ8͵C껫A 䏮<_LݳU~)U>J*U\濎oc][g|iN;Χ-+ᨾp]/o!|,Nl4(2!~)?)t ފ^IWuQ^ykHmj+U6ch~n mvwaU%+u_moNOW_~1e?a]G w< &/)Zˀ=$Xd@C%NXŠ5nGAj4RH)U ,K1)IeM4q4xOA s'Q5&e%RKkBuRjUY+Ry5&W%[˱/ϖ%֭K ;wڌ@:@P/_ F Dv@ Do!^|,ٲF s,p̗@;:pesP=01T clw poݡI/1 [:ΰ߻wiw48ΰlZ4w >}>u*;暓/:C "%n%o !k@@D2Lm>LMFȜOtn `OSk6|ژt2 ݬĒő ̡03rE  9ʦKsOӦA 5>W4!2, H*\ȰÇ#JHŋ3jȱǏki@@)PXʗ0cʜI͛8si 7DBIKQY"\ʴӧPJJբ33kW`ÊKٳ0[X(j=c+ڻx˷/SNzeG\ ̱뷱ǐ#K @ifɠCMz4-eLҰc˞Mi#&:a8k Nqb0@ܸ7?NسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,ln&,G,Wlgw ,$/p('2-,1l8<\s@s(MFt1?,-T\'uZoq%;S> p<0ࣶlmqOG| vk`@8,80.8_7 /88ף;&s0ty(C kxSP? -&c.AQ@1}<`8N>ؓ50hN>p:c=_ #أ?錄 LG§~v8<A !q@ *,KMԃh(V?Ե-MC{2F6vA<,gp@;7xc؇7t`TA>HV o "q.Oo;†EHCd'q+7 v%m;x@-+@9#G:=zrD|݂I1Loh ʂPsLg*y1]5ҁ&3x\!&ljaN|꡻bW|X>/"En2&@=LiJ>̥ 5hO2zp0E((L? HԹ;47Q^8J't)$[ IY҈ iDxCm(Ҷ` H5q|0ꕯ;;g D1>#tWG}@a5 TЅu>{>sb =6?Нs Cڶcp 0.l5/&95fЅ\n;r,"HN&+N0)8㸇7@1! G@yeAsBTγ+yp %&[X>; +i421+QgsyYVq 7@pX9 +?z  X:Ұ4`򥃽|iqgD/lё~h+  HOLlSa Y1X 1Pc~BAϬc8Jpz+XI !yDC7A``%7.VRm,)=1 cЁ?D4(OyB0ٚfKmD8'6p~mG9q얯xW"n F }D0Vp 3~ b%fdPAl_l 8v 30G> CTP'Oy =w;Z0LoskP ;q̿xZ@w? qb%p y4~%_0^ PC>H\? ejS^fɷto|stcyc`v 7 +‡`W' `0ޗ ݐnj p  `x+x8WZ8 @F8GyFvtL'_10zL'{ X{  Wf| w`w|` 'o ; n`Q+1p8 `W@ +1{-p8yRhtGSm>F_zJXy-tM kRg7 ǐu O Vg'oXP  q@vv+`+ lp!  wx p)׉-g?DF|HIOnH>x2ƅ6nҐ n+` _pp P|`  {H p q + i@p qF ؔ&*GMn8bSmWilgWP`Pd10t _g NpgaGsiM, 9tidw9dgy_nP@HpcQHIM!, H*\ȰÇ#JHŋ3jȱǏQ9HN0H0cʜI͛8s&-Y@er \axҳӧPJJUj+ELfP>iqٳhӪ]6f֬Grh=)+ c˷߿;U`\D!+ǐ#K- YOb$V:(Mo)t Rj MPk#-OdŢ1ȓ+XG0pسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw , &,0,4l8<& DF'=3J7m3NG-TWmTC@k^tbmh5j= rwðG>^Vl]}#eG> ؾPf+=䱲őCG*M~&T H. cf>հdk IGPe:˜ oGa|v4qD\? v〄{cp! ?Ҩ(p ߸’/#eXڑ}`@r2?ڑ ˇ"b̛F1O^<ָ we{>H -<C,gɲ9zq@#7K2C3ϐ('v |=<6JЈ*#h~d՟>>unŝ\h@gw C0QɖD acU Qxm5,ZW ` •g@H[]nIےiy2#6e(*kKǹҜu#?j x˶mu\wYf Լ|K_z֗g5[~ӖpT@@1N  'L [ΰ7ؿGa >/V8qs>r,"{xx #;P.qa"SV8 #2lZHlcV-S8P=! 0J0LBˆRg,d^0Y҉pMvLbq F,c0H^ g H:Бăδbb8v?rlU9ѥt6?-h/ >?! w<##4s#L!H4Fu Qz c#i11hȺ,Hʱ9 Lf(xy9ޱzT#y6`W@,"?oc\y]Mܴ V+Bp%tOg[ p>c`8L.h\h -`18#Y=ĠTe?{#[`:1f`|@?׀ H2IS䑏SLM&@5 P#т?Nq| rЃ:mNr'=Q 1ԉ#Vٱ_<@ $s+8-Fr  GpG~3x j4p ': @g7 '{pp `<|:wv||)cK:h2/i%iҹ II OI}9VSvu9 oІ"aYi"P HQ 7vjb  dYjd e!, H*\ȰÇ#JHŋ3jȱǏkja@X R!J)@ -8sɳϟ@  \ax%L-(CtSJE Sׯ`ÊKV,3EH _a`ݻx RVưu[֓|uI Đ#KL2HS"!)&L9@85OPZ^ͺwe1*V$QNQ0UX܅2p) kνpZ EcnS\)io+-X `꽾Ɏ:a)^Ġ߃F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-wԽ v|߀.n'7v Wg>8wn8瞇.褗n餃ꐫ䮿y8;=/|Ox+=L>To:={_+AI@ ~#P?&7@գz?ر hqq7XqPp?мnbY 4Z.؞;| [AvXay># "EAnW7[(qG -[!U< hn>fȺ!Ro7"?Ըzc hv\MCE'<#!jo= ʺQ`L-鱙i}EB3|y-V@NX;ѷvHFQnH?̿n QKavF? ͊΢ @FS7L^ ;Mx#-)$II{s8NuK?1S#y9kim$.5vt13HPѪ^Ԫ{i'5^ )N=},+ ɩɃsxԭ\ WLE\&7я/5p"S.Fu|<%dJYǝ[fͪFnb< ڻ]7Qap^INm׾񣘢(/Q{NL>O6c`NL.\h۝[C,~0PAs=7 Զ=`ҧ-ݷ?HO~m_r5/qDƼnk8_ 6;-߼G/7 K?7ⷝAy/@w7շ}= 0ԓ=sa(m4~o`@X_>Be!Eȶ d@ :(= T@ ap{G>a|ح @,>xC[:$vGx@vCn^ǘ9~4of[ 6ʐ,q3Cya0ψY<$H-Ѐl;͒z"Dz,\ WJqmd4ct4x^m$!tx7x&#Mb<6wc{0T :Uv enb1KYq@y>t`s{u!4&M*n d Ź#r;iE3чn4'MJ[Ҙ~[7eIs̞4C=8 u65lZʣl.4 G;p!Q. Mqv۠i:乶afl0+n^USgy8˘)@X$c.0aVCN9 S /ͶoS)BWPɕp3b@Hc8FHVP͠Ezeu@֐= REH^WeQ0pf t"@|،r7DXdT~V VZpSMFj. y`0 zY ` sX0PrҐ 0se хup PP @ p XXdHP@  FbH43p ,v7>FQ7~qs>rGQVsxz6醔OrsYg iٚN& rd ovwmFɒYf LQ v)٘թfĹi)j!, H*\ȰÇ#JHŋ3jȱǏ'ȁO$˗0cʜI͛8s &O& N2;*]ʴӧPJX0(2ׯ`ÊKeZWf`LٷpʝKndzi, LNX_>˰ǐ#KXŰ&k̹gd]J^ͺ IYͻ Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmn&l`-dmhlp-toux筷w7}-ځn''^xxxON_w9.ݣzo^?{n030_dzO=^Ï[>.ē^^'0Odx6 0 p7mh=I@v nb  T?;w.ðG>Vjmp}kG>l@l=!aК>7*Zn"r5 h@k\܄E7 ~͌Z0lY$|MI?ࡵzc D㏅a1MC7Z"ƻd-zm#(0и5Vf P#vTMpG7t]7яAkÄ7~h2ɶZ08IPzaå' (9Ɉ7VvуJrfn:0A|0'D_"3xN=g $K>aL&waLpzd.$5*w ;GZRvzҍ/H .<֔ixqô A|Ĩ~W )(6-cXVUv'ŴsQ7a?C;9LP_RHŰ;z$Q,V';BZq @(YE hOTrהfmE \);#*|"Fn1c0o~B ޣ.,[E 0`mwڸa{"zhPwMz8i[Nܯc oѣ&/n\#Q>SQx`h.$;{NgEfZǶi`nqiH;: ) n2p 3&iyMc}v{~r:`bk2pα֐;@9q'$@-1T`6hF=职̦?P}\#>P PIX&@X-[b q3f zA "? p&j^وb 8;kn6)@X)>(ٴG N:?5@:f6 ンCӿP x7l50po@ 0fрp 7 cL}&  t@pj7 .#gGy > gv~=5T:h5w跅[Ӆxp 7  c!Xk8' `#% p l:p g t @706txpn!{P}QuP^&Wk@ ^h7Z7抆wËd(]  cas  Rbxipsь: 8pc "0|hq&gI@IPM eH~V>zgv5RYH~u qx`0 x9 `0аx&w ӅTm,0 c+ l0! 0p |pPAb_ `_`cM|^P|V@ q 0e gyc _6pw7vpҐ pc sp P0`   s/q jA0  c`ci. @gq w uyF֐AcȞ)hp5F0b4W v9Mnd @W:vf* bn KQ fv$Ze&z*+d j!,  H*\ȰÇ#JHŋ3jȱǏ@ -kՒ5ʗ*Y͛8sɳϟ@9T20kA!13DK:JիXjZ&5I}H#u+Bdi]˶۷pzR/eyŦ[|LÈmRIUnZk̹*Ai,.㖆5Yװc˞Q([\ݼwM[i!+U23سkg +BI=zַ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngw褗n騧ꬷ.n O7GW;}o觿}?>>L=3 G=F~s>:|W NPFA ςDYWA .# ^h?8?ر p8`1~Pw3uؠ?p$nb,< Q4'X+~GA| H]AȈ@|ptЇ>1t#l|"A:080xy|N?, 2:4C<D6#z}[ |4&h$ZW~?"zcKcvd`?h vC{c@:y~f>~@>9?'B)S%>W)AT@@@,i>x\nT# (p>NEԭt_IHJ3u=6u|)CAÎ(tp/֚.=&m=?CӇ4G8Jn?6Ftv@P  .Es VaH>v"<!_cf$];FpwW9;b|麉yC!SM,K 0` ,V K )F>5JM1ke"\ps,С9k6Jߨǂr":ytsӷuѐ'MJ[Ҙδ7N{g ]pFMRGN D`VջQuY Zָεw^E-bإ&6}ke3ٺv6Mm\+n[-q> <ƺMz'u}vc௖8aX0`7q zCr ~?y70sSnnwcs<> k_, NT8H:Бa7n2p 3 ;أ=b'GĜiw{] 5dg`74<@qy9n&Pu Qz ci11h_-#C?ƨuQ@hnʱիUԣ&6P:d|p 9MmJ)apxg}R?ߍTa@ıT0㫭F\@M w  c Gb@ h ! q` 2TF0P V\  0I0 oP ȰZp u헅V~ZD:_a(w%K񅛐mׅl(wsP `x&tq@ q vu@ mрp sjO ׀V  Q>&  r> '0 @k`@om\؅Pwz6cnj:װqXPjX' `$9  k0j Pذn  F{wcna`J5P]׌0ImبP0ǐ6ivrh(k؍nؓs( zX jo`` v ;  QjrP0jPl &9m^ij  h `Ep DD`ӠQl3lx\q:yo&w~pXfH8 `0 I׎,O`4zq čTu j4 ` 6 ` x pp @f_fE^0V@p 0e0jnj4qouv@ :j( @~8@ f_W P Е@ p  *fV u ns Q   &1~ٞ `@C |VVRr=9?׆n'u)ؘ pz}rI;*v8  oکt: OQ vl ꌵ loo!, H*\ȰÇ#JHŋ3jȱǏkՒ5@-iX @ʗ0cʜI͛8siS$&_Ҡ"(ϣH*]ʴӧP1&(JVDʵׯ`ÊSPl2dʝKݻ v+7NÈ+^ӔXꯖ3k̹33,YU~=^ͺ띥%U,7ͻ c ( b+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,4l8<@-DmH'L7PG-TWmXg\w`-dmhlp-tmx|߀.n'7G.Wngm&|.褗n騧ꬷ.nz.<o77|>}_o}:?|ow~?{S> y:ѿcX]W>9g(7 "?Ay] O7;n0Rvw:qu?`$nb+4 Q,!X+~0ѽ#ðG>PW2zn}Ct?FsHDn`":5C<76ԣ#z}[ x4e h!eZWG$7Q~ #|kDmvroa? }QtT"mL}ÆG0x$PuH=`|h <}s0L?dI$Y}X3%-U|~G08:B#&ܱet8jBC ЇF}Cu =:u3CGڏ(tDQ @Tv``*> Յ.;}b 5yՊpoGO9w䥢V#CM.S#<O>6 iPT®BHh.M%QSwO=%CӈNt+(D(\Jڴno(zmU+1?wF_,Pm9:R%dIMWWG AZ{(1ql r=}NdG K:u䔮!Nz.a运Ԯ pKρ|ȁ9@ \R!|«nqn0 hI4G ҁ}V؇qb6$ f!Q-iL:θk<7nr|AvA Ƴ:7|3K@J[ҡQ7`ӠJ8iOԖ&MVհgMZՔwPum_Nf;~{iSϮ6n{]-jm>7ӽ8 v7AmqKԐ |ce>Q@0(;ᓆx7 :⟳y`x%jOP/`p4˘)̰X$c_Iց4$ ,ԭ:?ujUw5?9S ­|*߸1}'V5dg`%4<@qy| J&PuX Qz c+i11h'1-Jʱ< 4/CP?1aMu?wpyKqu!M @ʏTa@ıT04pVp 3 b% c + Z DWwjonՀ0;q2TFw(kۗOA`|ηczD8xwv{iy atC&D{C}cnzf`C h@|9N|(7OS}\ϖ?!zc0ٗ?nm(1؏>n $hFƅ(_>SNT>|Vھx3rPG30e%>IwȀn?}3P|H?1UD#I u[)@2lNϮi N%R՘g|N&1яRRU l/T-qT=i/ok XTf௷=ٗZoub0PƊK*dU5ƣtn" fY>-J>δ-rkvfg_~ #݄=աSMTVƍuǏ7}CKOԗû $p8N $&.˙~R'>/PpYֲ>)wM_.b"1@q2HcIp zC5]l;86s /[ }|J5-^z88 XNa"HHt,i͛NN:i|'6J Edp3b0Hc8tBЁ?D4׫Uԣ&6̽P:d|p #:obE7(#x n  Wkg \ 00 c # Z DHlonՀ0;0Fǧr  @k5o$q`  p GՀ #p ǐ5@po#q[pEcxxx8O[6tgk <@ pFu0w@ nрp 8kLp D| 2'#q@ P{ p$ 0l0Do0nsHlcXx;fc78>(ux`vpX0@U@# p0 0D9  VkNp~0$Q$QZ8 xc0#Q U~X&qX$t#@xs~7c ( X$0`@` y ; GXkQ`0nfz "9$ih Kp DD`PU`mHIWyI#僈 `0 `IO0gQw CdTv%8 k+ l0}! | p စp  0Yk_ `_kWp[^W@ #q 0LQyfYzƠ|swAIzg ( @78@ fdW P P@ p g%GkHPǰv 0I"A &1Y{ݐo0w p P٧ll9^kєp/o_,P~<hX'HAUK  ~sDXacⱏz8 ֡{z |`=>T QE8D$1A^h0׫ !Cc7:!C|W$6jonpcAG1W?1|=A7s;>PtG67@drԙ|H)R(p$͏2O *e7|`RD? :+iF7}Hoҫh)׉€:o>J.F:.:洕F?Ҳϣ@ S-H:Rĕs9N*BIu?1#MyشzVU$ڎҫlVJZC"Ԯ\LwBsf:ӝ~s7@<2B/D{`hPk=֮|}p3bHc8<D#1Y8PqĠ2VC 0?n/?1F `V$߾|W1XE=aH E|扠0I Rxi`lZɕVYG Av)v#if'*qI@I0 E ;֓tHt}ƙbZ}׈hwlB `/ x}XC q@nЂIm4 ` Yi pf_fɅq P h@ ؐcPen [^@0yMy(Ym' @8@ fpaW P ހ@ p `l&f DjH 3p 0A&1 @Z P~:喠ZJtc1 &rtd>!H@zM$(!T)u(6({XQ$t#/^G.8Y:=l%4uHSc&LJ@@Hi0 a1|G1푏->QMCPG ӑw; {̣0)É $>CyԳ=*YCLRoh!^SY~BRⴅ::nyÉIuj>#vg CJT ?QQP/>xGOFU/}`*Xzrӿ"V}b|`=ePx,3z݄;QCp VSCrղ;ܤ Z㮑+na~_ZMq șv@h,_ ]N֨&J\24=|{C ogư-d աieXzND 8ܿ@ `q@, JXel1[r6ks`Nv7;aۼ:?tӝ8 P j>Ah1v"n'v}1f0B͛0?d*.ae[ !-t}%_8Nhq?1SpO}&OPh_wK+q @6W}D> ʓ,h0p0rLAѠP 0pP +-p 0 p'؁ QPPq$h`0 :Hw}A*iD&:⢃2 ("Ϭ3ТlΡ oBцJ@t,ɦ'#Pv0"`*P@ (+'ϛZ!ƥ~ D~"j<@ -?12K˟RбCtpKp#P<;L[vB}l?@*U?ɿ3>d]>lk mot(d2y;tɠv?aO覷.64|>+> ִ(*/S@OPOhWEVA YulzXF{DL Edx~Ui3* h;x=)K;t?Ճ'L [7=]څq*0U7Dݫ@)_Ja?eӳfsM6+,9|ٚl Mt`0y]cMΓSrOYb#.MV[o3aEcζԣEL:,P9RY ǏO$(L@~20!5{e)|6 linCIkEYj+dQ2kӢw x|"X)$l/ul/ИӸZ[֚i sw,KP(ӓ (*G9j8"cӎxQKGSC:xzcV)R{W9C:G:7|XPY5:g4DJ-;4+,(鐀}+|xQl@T,m6x*>i*D}G$I&zD(|HMjɂn)jz+id(Df*v6t7Ifc8Aid^S8&wrOJ[FÈ@)|j몞 01elBRD *[iy|J!6!٣ќWYgo8v GwXiqkmX}ةqHHu\r1ן [+sRh2Xh'&]r{5e{`v\g^^9k_p瑢vً/ZwI;J`;ˣ{}VADÈxu(IaTzUd@ ED2Xz:0,ڭɘi3i :XsCD㛱&i_ {ʕKj;$+ʒg[V0]#A'ԧ2[˲曩=zy.xJ(g,G.Bf g BZ'~\r4 H뷜AXoyN˗7DG^ OM!,q(YY(2kZz%#t=bRܚ08V|WX!ŷ;Hl \*˄d0;mq%Xxwշa@ Y7RFc,yp(-y)ZQr-GIN{uh40UXke*j++uwu7Fk+vk0ڸzY\?**;8xk7Wy/[d+"c#p7TR7AAil {I#{w,D7;éJ.jebHĽ`@(Ej{hͩl3z7"}3ȝLgJ̪GHӔ'(VF:L(;\S`ŀ2L4Oa4x-H(pW=b0` (]ڤܢ>4N+Nd}h:{fiL;~ ЬB(1m2޻}Hd2Zv/{S1  ѩn|'69Dswt5%|cf/}79MF=ݤcB(CbrAo?9!ӒjTMEN`աo7ܘ,=i ,I) q͙sOu׺Md;u,_ ɕ/WYZvHH2Hu> )+'r;Oւ_7?1fL :2mM "˟qƟ1qß c.QBK4@NAށP\"$ Ɲ}tqI&MK1L  I n1 pB R Ng T)K<\-)Œ)zKσ$pN1jqI <{ 鯽64@c>;iAJ= <ɓ? 4=Dvnĝ *@D3Ll;+i =,3>6$Lʯ@N?s³Ͼp:{n@< 꺌/  <]OP.A&TÆ Θ6@:+;Q{0QP&؀@sv9L_<SAC]Ҍ"nw;y++4.i`@D0{~j0<7<@74rA$ i*ˬߔ0ƎZgm;+9IC軱@j+o?#; 4s wH^v$eT-KN@=IRL*WV& RK1q{쥎Y7aꨑz1mTe∓t4IjZ̦6MYfsn (8# 11::C3np<( hr2X˔>株 恏S]ebh3th;bbƔ,Z8꒛D}ã=NFҖ0LgJSm~5:ՙ Q=> -jPNt8 *J'Vծz` XswR"e%iέc 'eZM0j 8(H40?0h  !Y6.fL?=MG ^V2@0&0ΥtvP*Q=-\2prQ͞hQoΛc67)H*z\Mit]^Y Bw`:xl8/z@ L)-Y &1r+W%,ZN:tFYFk(ʴ(mR꘭@pV`p+W@f{%]YFNru]R/A+츷K};"hN6IRa AJ|jo,ǗWC*x3K&x+t;xy9ъ& gXap슣e&N̶cCCp!S$jJWH4Z {VQmPNx=f5 ex6_7*|-4+j1*Y(,4(JWL(η~DΑTAugJMwdA{iE{ibIZĔ>> ԼeǦ0aҚ&̮}E>vCC5v?s`{L6^5F,AIw1;ַ{`ZKy;AP3m+P;X`~fǫ OR₨<GڍyJ!5[_SY G n SWJ*^iro[WSbgH]gefSEPoJa4wjKz T7&eۘtvt DOcnavqgX1(Sx7K|7[QxDO@U,瀍GEy2TGBg\1 cuz_zL 8{P{(eT!A+]g|gD:|@W[1}$f}:v76F>(~@~3Gf~iwTXVxXZFgfBfehfSO h+FhqvhHAQHB'O.wrÇibSzx4)*{D0sTĈ[8{Ad{7+vRHd|b?fHF^56(m53fMnnUu@p۵ʸ،oхva75xwvSXzhD7S8؁!.7e(;h{H'/|8b>DM.aRh;͖QtUeニ֐$I!yC"9$Y&oVdxA{4 flgoHQ/PQR>ޘ~Pn!t('r%G!y{s%f("x9:r:#fȂ.:a&"l 逿g"tCtY\|]l2}>VLǓЕw06~&tuRuw'wf) &+yh-8A=6 7).5;ə6bl0X JgU5N)jQeYY7&FF43tcq)*Ňb:^i3&@t'|Ywʩ <9ߙ깞ٞ$(p_- -g؆zlR)+ zo,-;Xiy%й S  21_3+]8+54 (\'ҏ(ukx=L7 *hKI0b%u~YD4n@ @P٥^`/8' sٟ€WJ)ٞ l>*7W{zx3 z%"ʝ%J<': ~C2i<=,aJhmàa 4gUbڪ*p7Ȋ"o/3dF @`Kj}V'DNLium9kSO|X: С4ak8,޼Ͽ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj)lQvP<i@t`*A$7&ìdD + K@ ȓ MK@^Z;;+P&j`?ӏ -bmK. [q*O?l7o-B ܫ?_Wk^iR"\?rs;8L>PP uS׬vt@$R†k\8LWny}w#CCTM9.zpø:ί.P"P1?L=yA`sOx ԏ<[;y!3@@@3;< 3> q:Kgc7Bc[־ $f)0{qw4뀰@yk羇Ѓ@ÿMj H>"!K#}=\\Zػ"nAx`k?⡏^ #"iF"x!2{<}`>C\=1\ˣ Iޜa+"FIsEt$֡{1ڙ$BVJ`:' dA<Hn-* fX6 !6l^Y h"4ym6GW1@Vl3 #l)LWb'H-vLl)`}yhYe S/u1Qk݄ t'=Qlж%}V lQ_Ha^:ΑbV"cU%s20hʃըK=STd{<<Z?T1WK,ь9&J7)`ָ$;kR>qxo;N|bLC-Qp~&2x!JJW/^D_zieqcjuPav ջ`#i"r!5J5{U[;dZC:mj?-A]a\2m ¦]ɦ!Ӟ=i{tܸ1wuDA1f" O"k2zhi}k: pugM O}Wջ{mxba赭 t[w%{U*FZ<9Ď+^E7~o?\ eT,@?hx{Pwt\%8{i{Z/.EC&g G wqg2!1JwC#1)/`}m<5倕*TnQtG\/Je"|$$/j&j~RؒVc@ڂ42 E5l$/dqB5De1m?vhQm?AdE6QVR7n R5@Pfn7;vے0=FMQovp98 @yw(#؉&%:1j׀.r;RWwW fv1z}Us7>vħ%x"tCt>%HwYKyZ6arub=1mmX`pX##assԇ6o5e*Bg~}ƈ#FʖIY,by"iw7M\6'RrEĆ#<8s=ֳs%ŌG?IYLI!UZx\_u#x)["\e?;Z/Z!=w!]ox j!yRWĐ^GJ!ywFG8z#SprrZvz "xJ /=C-:|C J01+G*!*yWw-RWK@⩥a:c+qjɊädo.{0Ӂ~䙣ƦkMpEZЈ2NkRN ivR7RPA7dٖ k-!c?}4Lߺ::c1m`Ӈ'ddaRǃlY6:څ,u'ǰqFzx7y34eSح٭ pJG[وA:Y<@1B ]qpd|iYw L+ BWRr(sы,JX5"#?ez?JlZw7č;uux]%5eX>74zZ5LC|w*]RXxť}`0@^)AgsEVG{Ȼtۼ;za;AO7}ji/H8iL)Е76:d~[9<u )Դ/tqnD*:h{E2S8l;H͚O7E 3g)Zk:26)~—):X %l OAAI-@2>NX 'AC*4J, QƩp;%y; [Yqp=sD38=Ԓ7rP$'9p sSJl+ܼ>ȐɒDKF;YH״jVb5r렅-K!^[C47Z*L"!nKF7uvFZRwh(Khxk-l*0UZyw]PʼH.*Q!KuxYx[z^pXAy\!cyfʑj}-&]B=-[ѤѧNqD؋۽B)|08A/UI-Ҙ_e"aQkILЪ|37 |.J-fn䫻YbwmzhIJ9u+3ҧbh4 " kŗ'ci9I(j2):h ث6b݅G`?7~G wXoZ|J^)+?ͩ7#:,[й֯UrxAbn;ܪ.{6 J,I&.}uؽ]<ɰɠЛ 4m` ~5ۨxgB>_%v⏫u)i|{.!2.N⣻4N\NG4ԧ.7wŏ[ۢyr+l`cF[u*9~J('?FB+%LRM>t ,L |Bby\$,D0k@sqGap 0b -HztI(rJ*J,rK.Y±K0sL2gL4TsM!,YW H*\ȰÇ#JHŋ3jxT  HR$*ɒ`- EI͛8sIX0< 7D"jOBJJիX 20#IEíjy5˶۷p1q%.^+^))'Z2cȓ+M4MY jCiVڤM@1jլ]ͻoƀiZڐ]+qpSdNbZ ȊEc#&`:91vܽ[_ϾQ't,'h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*j?jBc0 zjJɭkʫ?A~@t= cjI:!A믺ZP"PO?(l? dO>AO s=FKmqA S?t3; > :u?K@o@|ۏ>$/$@#P?1m;{@lrɛt2;> l.sȴl{+v[;w]/AT|Օ Vj 7sCƣC)+m}Mr4=0Csߣʫ |An;:&G/=N~+Txn?J>[:Cן:l@D@tpmN=H=r7- Adx A2`@WۼŎt%tH%- "\AU@pԇ>n+vv Y 79po!nȀ0~Bn ȇ%ed NbeX,l&:S>Frm4$"97Ή-LCGT`"A h@z&8~\JVdDL%/iL֑ ,z`N [X-D*8O%XfiGK T@'mwdY3?ҁ}W4!YJRe͔&\`?#X @ My֙І:}I{^Wu|oEKHV İP& X>vcIEG*H:'_Dn(gR(Ƀkqj@;ͫ^ڙxZ1s1 f 0B2C& ֆMbf41,h#UzҲ dV\1^Ic:XMl< Z$;rM]\~T:P(GIȣ MD h2hĆ٩_`o["e!S+d,lXYV)p/gLa1KCGfM l&7;D-mQ96"{}M<@ȉF,uu*=$&NOxZĒ7,RGLc(5@7-}?u}qlU-Kx&$ S ЭBȫ{̣ja_Bw6{ˁr |Vz9rJaYR0eH<5g9y,sZh~(Cv !}J>)Xpܡ ")Ob=2),{X8E.q4$ꏏ ޲Vc_+cY\ ZT._u YW'xRXq~0of}•b@6ֱly]:WCQ+-뭁FyW% |f& =3rf󩝑`/gڴh߬ BepZ )Β 6ߢmwWr'Ψ{j5Ak#HAϷM@`tV|yS ![gVrs/6zBG7)5նAo?^Wxp eGf7&b Pddƀ2=Q 2 p05V07vC:V0@ evft@S/JBr-сHGIF?5V CBJ+.ULg\+mM U>luv 5TguvCGƄ{fEdNX G4eF54_wkF6,Li^DVr+peb\S3 _'JgxfIISP r+@5fc\qu8{LV=uFL bSVSLhdYBywl\L^ow8mcE "/V/G{~*GaplH(nJxxvOgV :4{ByC7TetඑZ;(u+YuWinuW4IWeWw"ʢBw!c*I4/1C.Gה%~h&6eɊE}t+zTլ{YWL Ƕ|ĆXPԗ^XU97G 28w>W њ` a㑸Jzc #Ɖ!; x7G嚦Lǁ$[phIѩg O 7fqB/'tY0KFTAzdH_*;|gFMȠ֪๶sGy]I~!}hy/ g*ʡhkjhXKH[1U{RO1j$AC; .9|ʧ]Z; =JS[!/`mJ{lNvX MZf6$Yڻk 8;"qhdK0Ǟj5aׂ#{Q*т3kA5{2Prr xBI4ZdT^9kJM*- '* 3.Isf<gmkrG栴Q3S33ىKJ΁ă]-]׍GV7yr. VmI.ݵNk/ޝ,fҿ<, qSz9,9}.T;ӁΨs:"e>z+Pn%g:>~Na]cq K}-~&1kys(Trt + ٴ%>aKNܪ^]c0W(yb6۩lۺ5. "删3{SLܠEj֛ս3nITEmWD3ۋܻHZ"i "Ȕg8fyl Ȝ׷h~cpɔ k%|쬁a¢)qDKA j P>bG {!m|Ғ(iLx'B{ʇȠl$I(?*m.*j "&~Aj(g={lJ|~saGlJ()ASP0 ßTGw2K+LȞ}jZ&$U QqPV[ŏSC1<E6 <݉Q"O}'f'TWPDc- =p؜PY*{ٵjZމ]iㅒZX,m,>bRThy4|xMxixTU^^cꂳ^Hʊ]e\=6y)NهRѽ羊sCg Xg6hVzP'Hzjjzk/dlvGj{lS2-! $  {8a<߮'3aj;nMB0 &5ԯu04rة¼& 'C9R4\=PJqnH E&0Lc # P ||@@ЏS#B:˓V B >PLY'ҩ>aWUV*5`@?~'?Y,` ~Ce5kZ:ε-1!c/pwxc 6Y-`kpcI@C?:ʆeJH DQ~tk=Z2)ZCrA@=QEk] )@߁\G*~܂ & 0 wC.IV\3vCq|jS5=E( *| &wQmpQ`@)lSc G( r2|\/z, u#H3ю{d $;(` gC$1p7nz@8 YgB-k\gQ}iLgZӛ>ӪiPsM& <jT?) !,(W H*\ȰÇ#JHŋ3jȑ)H!*(Q(ɲ˗0cʜIfLZ2͒d %ϣH*]ʴSzR^Qʵׯ`kFEeɃ Z=c$ڷpʝ'X kPmsLk}4pIjL˘dPLrU'ĵd۸a0khK;ȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`~&fO?d 4L=3@cg?tމ'Cf>с$(eZ(A_ìS3&;3̜:' hu@h& AO`ðfN:9lm"42KԧkA a&۬=j.&l4;.[-r6jk 4-p;Wn:mOn0;/{[-O( @+AcA6i֋,{'jhh@ƻϜ4\ 91kܵЦMtHl+0&Ѓ'fy3ݭ3ē]14 αNxe@,ɪkkzJc'//^'DSAsO?pXZ;jyDa<6 $XײZB[`4O !/.|ҷAb ?ցV;'Z؎^ kH*kgA[JH qE B  "DBq 0X3Y>DTw{ 2+<g2LnOW@qEPTpBr}޼(GIʒ+*WV:t++8jLGxIkr$YQԾ(edRt<~mԥ.Kd@01+ۢvyY^'E00M1/) i}*я]j a3S.@j%_LZAtYR=b bn4)mTJf([nLz"W1푎}ԡ|mk(nꔜq(cȭ]lTqGS+TynM֣*N;:aVJFK:zӗnvEg5*טXdS^+Q.tJOJG>GLNicq:u]kAKBh )q"-dr_>7/#i?1uI9Uq k՗@N &H;ت^NJ* ¿}qЇ@t$wDK0KVLTߘEхcEwNbȑ>ǷE An9$ {,FMb+$˜VS29F6t}A:݉ Ї=(\:ԩ~3f"j *CI$@R"4E1|cҲ&=8z"վB9ęXIi5فxιs<6uaЇr U?L=]ks_ qM\fn.\GQV;m*N} f?#i2/3|OX<渿]makn>K|˞9GeW :.8 :'䷃.0$Ճix“h"- mWqd)cavv=uv,x*WAr8r厔HeXY0./[ϾÓ{/Y~&05Q@'vFWtt5MF(X1uuv8x}Ɓf'-3QB6>ceS6w!^vW^?-^7a|KF&_x(T_ dxuxAq8s('CB> vy[y3dV!vJVn(=?t`b?Ibڇ{ѸCHfѱbyca}h7e{u$dx4fh1@pȌ˱|4QH$I' &R^ vNKUB*4&PgsTxXe'KoC0QFuI5lQO]|^uޘwX|Jwm^'B>EAx(#Qy+W7U334 y2 i9 uzEgc(&hq 3oԢ6Eӑ̷s|y#|0Yרe}CYbg}Hiv Q9zdq~~\髡TheSzhiyk|+YTzo}ɀYj&oiHngTvZYh#XmR0}TMDlPxcb_ j y+Ѧ% 61'dr~d0x*Vj  n_^53ȅȢ;V}U.:m'opm®"w7`ߊd9ۇSea!rr) GR'xF$% v=X,9zzՊJg0"z+ @'[2J4zgڭȣw|s⢣ LFC>v>Gܨx?4jQ:2*V:xy_ȥD_3uO}#BB΁ I|tWwqAsujBYz &?}ʺwQDb %jӋڒW1=]dA|} *}4:4𽌛X QK^/7RѴ(fy+jy2li2c2k.diWKd{JP'#&t2 >w"-Hi?EQj2dĈ!}mKp n,jܼF<-*_)&7`(.bhdzP{2`A(Do,@ٴܫ]]!YʬavQX|̟frtnL3@p)qeZu{{', ~<+|ƌ~6Ky裛 COvw7K^s h01XZxxym"B'Aiz)VCtڏב|LW,<֑㛨廨ܨk1αړ>UǼrk(N&ӡCɿWIlKV,\,Ҹ h(κH5r0C%(274%86c?jT{PDĴƁLH4G[MM%ſU,$}/i dLa߶R)OȟovHgSdbڈ-)0?Jڔ<Ȗ.R[pdaEjա|uO{p)D}riQ)n ij`3jY|3+eKwZ u]b7mLl㝌,v?IBmޜCw7}wդm^UζH}+hyМI|S5 * = }[wxtE{4!þB{,Ң2|ͻ۟Aӱg+؝T}h~fFlln^[qE~'rR ןȪn8*xi{#}5-4U-x][lQȕ.M1H{֭- +ٲ ymDmf_-ڲ"V'K 0a8s7}1ò]:y|]آ.ЄIBa50NLuLs17}W-5a=e(d+kҎ Y9dsZØnޢM͡LPq>5$([m)+bOӬ,/L2^dBFۘ\k1t!Nώlu]R6>X,.{ǻy-W0 m{ѭveiDN{Gz=UQҾҙzAE<>ٿ@aKg-r_*"́ O5E_4M_}t b@q3O8S8؟_οCq(/&$XA .dC%NX"A71/$Ik![!ys S&M&E/jC'+B͘3Tߓ~QFthѣ>j8NjoϽ[U jUR|| }a7ꃁc˞Xn^B;2m{[e̙5o<@6zΩKkL~'P6MP1Sg^d>!P 'P7֯cV?V\+~O?cϽ pSN -9|jPmC;C4FD DJFx$gxl1~#erGiQ[|1 <2%=j Ʌs!~~h~j2zW8$)4 KK$AX+RLďDRF1GҨ wpĢOJ5#x2JU?(UD%ˌh%S0 0ϟ*X ~NN >sg֙nqß4d|t_~UӔ5_Fǀ"hX Q]L[0 =8* 6cZY1Ʉv5۬ʚ8NSS4]2]d Ɲ}t!j()`7gc) ~2l) RZm{3l֪o@Ԛlh hπ/3v6,sEu%߻oNg T)#l62^x0Ewj&eqt⩪볧<{yy e~G|O}Y -gd`G9TkwOF:ހHK@"~+߇{ 0@@ LxL&Q! 9D 6CP4ta}C 1k|TFDDx$ QSbh7#p-vqk`NDLqE8Q&uFbI͛8s3%(4bD Ť*RzάEF,W(JիXj-F?ZtbbEfz¬۷pʝ{@VBqS&)݆_0È+jW)N8YC`AS"!˲ϠCPj-XbMW ;lhTS1+ҒUVgL.2@lhZ ȊEcD'Y3q$ B{4POϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6hJ?$O>*03@ O?ZҊAs^H:= 0)<:?^K@ݖ-Al: nˊO+^jx@*܎na|꾳 @,<:2.0'<@ ԁTs?@>O\',ڳX4=n:q=0c6rZ.=GN`ܾ+gL'Sn2H{NBtk^Ay )`Y=lěÎ N=:nmOe@N xi$W;sƽt<M8j_3H"> P zHm!d /4^2V{,yի\-g8x@!lvؿt @B6 `|!<#WAl]ֿm0@!fҀ$V*}peEQa21^ ?QQGe!`6CP rn)dX$V@(R1(uXƯtYԠ&?#' 7!2`m4I͙̦6!&pS1U?4BЄ b򐆏{ysc+Z|ak7Rbǎ |zV% pK]>="H{FMaIh6`O5m=k"n/G_fY)yL%sLB 6sS!lHK#4_M!K_z#lf ~buXDZf͠BR9?EeѮK^hgMr=>NOʰ)lhdIcVv?SUa?C:^ bu =tqe5][W'|LykPdXM wL:'Zx j{ 6 rxf%(8jwɷlZ\ +OjW8 fINůDz3Umog›pI6X'-<:~!u tjs9^v6PazVVg>Dh'}+TӒT C*w';wsȈ< O}-n@#lwc#Ge {:ģ<@~\<'f#sX'&SIwY=#Oe|qH^1qsEYZvbkns. H[չ 3gd*q- h8XWBii"x Xv 8_RSy+Vr~jpjB7[r^PvF F2VPrQkÀx2l%WkȶC=9sS&0uV6eUy<!C 3(l mn3Gn-vWX7R#,hmЅzO0H5ۆ5]e?bC6Ɓ$@Vxpq73fuq!W7Wtq72r'qc /=rrsHZC<8ZCZsm|7 {r.2=iBu3u۷ybw.)337q&v(y|wvvx]o$)4E4dzwvg_U73狧S3M66dhnG}Yy%}ߓy6yha'CW)Ytt Fvb{}:c26*1F^ʳG۸{vqhxtwF4yHdѓHGy^}b;ib7t}*,ą ~斔gshpXtYvI! hxN(jNW7j8p+jO"87$8&P(XP*-pUEa2=SrQ4p?q@DX%HRKRȘ8R=Uh0wݶT/^ybX|egTZnMn1*I pu5z(ևa5m7;9W&ㅆhV/Ȕ|ٟi:jXqr:3::W$hs;=s@p<\#R.`1׌R'@8p(Z7yY`׍dG@XuSYSe>ؚ녟EhX_Y-t**R.bNɐC4pywzç,)ؑ%g`&8DCc/;ã){:+}t|e(9|)IXU6_ze2KQ2,٣qJgwSiɛk; @-zMZzتm"cqgumBR!(7#OPx钙|oڙn) I.RQQV/8C30iG8-In+%1詘;:2.GYn9͹ILrNU'H8 ݩh\%|o癜GV prxXC{?~UzX\۵MWvsVx*.+)jzs)e.È.UD? RzA] A⓸tDC A>jK(^Zޢd*x9x6XeFZ90¹-V+摂 ;=زMSQу {LBzy6|C@=B.qIcVjj8Y3@:l-*K!gjcb[u)Ţwê@ꑤ­*jaj6QJPzP26*/(07 *F;hi^԰߳liD 1iXm"x n&za19x/;m3~29 9yس^~ Vžuňp(8)E(! ɞ  YܒmT m=7:ՐsAW/[?GtƧ^`*F3 >r:F9E_3/"Jt?Գ2,8:dDz ʲKj,+h(,E/u5\=?`7kQ -g︷|~ױRhH.0.ȋ/8v](co8,5Sz)[CLu{d:u>CTsM6ۤ́L03MT =tO@ϗN|OAuQ(p>YrsYjLHkRK1ZAG4ԟU{N? u'0_uZ?dglVtZiTHE!5zQS@'ne8aFq=PA&! n䵟vy9e~ߥ@~N9&Vݔ%8MuI\[n2y2ɇQF l fi~dY`\9RksLyٟ'q*i:X =PgUe%~pw8g`sQ|0G ێovMSO|~`+%4Ǔn4|sn{ pĹ')v$p s7WsDa*;~ށqg]dj:vnugwPܾ x:v `AmGWlУh 6f#| p$Љb.A R:E?ƀ dBgmV+_}Jnx'#S(@x@8Ž1IFc0^ǵn h9C PG=D2 HC<1QarQ$M긣𰐋dd#d-#H"9G*r37td'=IH= eF ORn !,*W H*\ȰÇ#JHŋ3jQH),ɲ˗0cʜIKPhĈ\i#- JdZPѣH*]ʴ)ZPtZQTTjʵמPkIUTP<(˶۷p3Lbr߿ ~ujZ' \xaǐ#7kpXLnH̹獴dI%K0bTװ@g n Nȓ+_μУKNسkνËOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf&@ĥ8S> 3SϙOm2L>%} &t@t`'A@jp3&sf?90s ԏs@( A@\\~*= 'H:=q)첺籣–jA AUxjW=kn; 6kF i \K[N첛 * oNܬ돶1 +|O:˫ gϝY'֬,Ưiq&(Ocn&A0n^ڰv3B5sl>hЈs[3pJu(m&eu;q_wv_Q]oΙϣEq=x.l38d@zƪ[k"ƺ]p%;3=?I=Ǎ?@\Oֵdx<g0j5tD-ٟĠG@j|Y~m%t2a0gs:MtTxoe?v0\* KHEy A%.g@|x H`${tA N?1,ţi_7,P@!O%?qOL{CũhN&7IQ](GIRwI4eA] Ї=4 kK*@U $@.wC(brb&(%\V,KcvpaRiV&%эd⯄0;ERV?nΒt5iyZ_$H4]L8:0Qdm:w24+X>FKXFz2 Ċ;< h=p,Mk?3zB]JJuT 50ѥ~l[pyю[hVgov쫁_")8|#>!*3]nثΕ&"Keuz\AKҚZZv!kRֹ=v?ݺAp3@pmPU Mjt.L{[Bu KHixc(e)?e tz_Z׌{E%ctC8xmy|d!9&R q$PۖW8α>).@l 2 ga%Aڴ)XrtL^"ꗄ20>dKYjNeaJSxzf4KRd*[d7 M]t]BJ!vc9a77$5H=d*<3X,nT%+[C;D(G?%Ŭv-[OC+壗h0/dz*ff?%ձqf!3RƬo|fyVfHJnz-i_?|֥mmYv̭47NJm#T?PY,aq}I%5)k|f]JՅ ϏhCNJUHnO^'d,S 3ykcm#@{{ɇp7i!+?PS1̩ h'-nW ݕ;U;ƀ䠗&µ|ĵݡn:t_vU;hx [в h԰@8F8? 9q_ŋl#QC|W+OH7 9:+oYdN0G2=/bsHsK2۽ n{rzoLΨsz &v,\FȒmIDsJPVy{Rgph_OgnuTiriӃvGTj1jK%&~0o'6dUq{#=Ʒok7w0%SpSQ'\"375li=E|o`FTL'KE5\b5I(=m'USzAc6Vc%nh]$Mq37Fo?hd8ohhzHmsT39prpC$] N5'k;q'Yqqe(}1r8Xrsx|,4sD6CG!\vte{-t\wv&FӉE@\wFڥFaj^ɘzER*lCwy(_zQzy'*{1~b?`Ex`a4t,ggwHrwEKFy٘yKky(&F7 &)wwHfFCH)D{c灚6h}|{294|4y8}:iH,J2c }K(s~8('Le&@fW2fx)`w&Mo'z&k,#K3>5ȀfHO'Zi"P&\ Pv_䄌P.Y|/Vg@1i3v4H%'2 ZGow)vy/R+&S%&唘w5ɦPUXG4l35qBm34$G9k4舙cQ8Ax6jnqA)ija5yW vUnZ!pq"9)#DG\Fg޶X88;ȗqh- @Г 5! ъqZ|h&ssT>E7{8JwHƸ\PwG`_Č uЈ]]7AXAsgi-v5 Fwi,w$=(B%W+5AvƥEg3xᐳwaamD'&G9ydbuX{,W){{-ٟgJzZaYd}qKw&AJD2\2L4e!%GkUPHWtNQNԡ wix }y-Ǫ?42whx-#(%XgU CkdVjj!9FJ8R*]ҮG4?%f֛%Jli 1;GpU2czIȪcU¹YfqxQQVwz[z(ĚLss2Xt GIp.7XP;T[VX;Z[| EK'HOhztzעIw\o'Q+ˣҸ@y{rE:p3%4kw6hy_f[q#IZF6yӷΈv*> o5&!I{%.6*٨,9:eK۽A9'*~ǔB~c~Ҫ'j6q5ld)ɗƬm /uzG/brT6M+f:9I2+Da/C 0(c8WF]Âqk)jyȶ7VBsUʲUQ9̸c#CoA7f789ũ8wU,63pYp:sMʿFW\.JŨ\w;y{+`g7'HA{++25ʶx}̆+{k|pZ' TT&I\r܄@ϱa }*ƼzG||ʻѼȅDJc4, =TQbE@He1R컔@ "0LL-[дS[ylÊG!NSE0I%ujO2Drip\ؘEml)e0AE~e'Q%ӹZnRd%]Tr)mľY^K(]%Ko6usԳe`\nx@ZSJp6/mxj *lRZ1|8 9=||c+ȕu-LK]ݞ֝]rl-yKsbq!ǵkQ],sktx;|˄uBj6z7؜^xwYDKEۜD;', M]Vϴl)ȱ)7⺍# ߽LP._smVg jiAi-Y;^Vj?XfN]L] U%fFxEH>7p5rt>9N@]")@#raUwf>=CߡnL'@{?Wm~g:P tNQ]]p5W$̻2%' j.u{ÜOb p%gu4REo=M0 |y\7B`W`&qjRsLh޴O>1ޕpP]P+g$(s5YA>M6\SmocX+FSSV@/mJH'@tN35.Gz<%/~09'o'Ћ>9Fy>ձ[]C>Kń:@~B.:ЌZ%# e_mo `?_jB/\R7[ȇݞIw('ozydѵ\O f  $XA7 LC%NXE5nǎo)O<ӧH& w” W4&a/Q˷J> ksn(k C3Š7km+ʛ0 :CC?AZşpX",AkM xd!:O=VqI&t2^|P.>9i3j:g8f2L *R N'O@;Ҭc;g2 PgdAW:3A)6ҟ\}ORbC2PZk]qW`V"XUvYfuְ0uBHڢ%R5dgw\T0\D` sExㅗ6y%^|uRȈ_ W_ 6"xރ>b3xc?#n</&cSVIjycyf&eqP9`U|d6^}&wV+EtdqzlS}PY n&Noʦx%~LX;yj|-9jCkAr" \X!~~d?q{rGxc᧟7(wt~>~Nw~` `m'w8g70{P x='z$`JGYCu߳[a T }~[–wG܂#$`ic Bjh[-|   s{3!ؠG)@ l\*QϹ0c$*p vCn F(1,;s8Gy@8|?Z:1!W* Lkj01.  叕Pdܔ/*O8MՠC^`-6@ɁM0s><8nCՇߣꧭa|W?+lwCNkAM:&SOCTсh!$]J pAqML]`0I@BH (p, Ďe47 _r1~)@hBQLZ[;l12]l7>V,@ `@}0(@}dLB(D' 1aUEь\z-$¦(i` [X0U,w4 u̷e_WG+?^Pf'g[FJ$DLрTXc.}&Af{6V})haJ $4=ӉW`Ie/yr*s DR%=Nj㋬ȡƁ;?&hYɨŌ猬cUӘB*8FzH -ᘤkrp.e/hwTzvw|G@@2@.sx0CAI︐47d1$r0C75YF``Br*&E7VcX{@w7Ra/FrScobviMc:HRM@?s$mIdUXbIԦʗ}M &5Do*jZؗq%Y2g4XhtÊF(;N"cn&=ꧽ؄=j}4L;)9{*I˙yNȮkg2YA)녻/Hm j13;5Un , 1sY2TA3ʚk{CdwUx;-*eC*Vqi JocC4eYr-WK rU40 ~Rq$ss DzLKt{ctcw2WY)BW'E(KZ 2S.f{kw#wΥ~ $@&%DG[~lz`nh<(brfwJ84GKz*<(r^bN̔̚]6BĖٚ-jcLFWL)MЉm(bl0d n'Yh Sm#(3ꉳz|. k*wW+k̢ЙgLo8ٜ9L'gd{Ǖ{¶LWXhqov{Ĩmc}Yʘ8<;e^^,î{㛢^mG\FR[ޛ >N-.3'1Gǧb5My"(&V'D.L䅃8s1DnN~0S>:` ^r.]U;^ #O SfƸmSb=e7n1ԻUtS3C C0sob> r1r]|gܕVMG82m 4)5K37ˇQyb.;TcVdIu~R_c{]Y{VCF*C.-BaDU͟ʹ`Gێ'ʤ &,[7ۅV0cI֦{cm,4Zu1F745^lG/8C_8Վ"n'@ԷK t1/ix1Ӻ I3xC C):cAo.03:m9.U}>`|SOD@Cݥ'1Ni7Yr8sVp.eMtœÄbN!!$x l]@bUkܡߎa1/O E͎_"m|jG1D> >2~6 .\ޞ?nx~30r #\=1h<-DEC1I~ã2%2 Gϟ?xSwpS?m:bM5V1#G8$FUdK1eΤYM9uOAWn7Eo]x0=߰ b]K:kAXiuhŤIKkRŒy_&\aDn{^Juk4XVM"Lvne#QZ r5bܹu~b2 Ϭ̞AH:wPFYyկge"[ /]ӇuP->|i -P+l/O3=;CC3ֺ'aᆩgzԊ4Ӷzlg~DF꧝'>жc(J,rK6|r/sL24L0(M8sN:E<1GDLOH0A٬PDUtQFuQH#tRJ+҃b)H4jS$tTRK5&OUTT5TWOuVZk][cuW^{%sH|Q+[$6džБ2a(!{H|[pukG!NPȞRK;b!$px:辚ˬu̔YȺ Xb-*%xc;nP㬻PM.Dxfgaa!5FY#˪6N (5yiwuG ,5\(g{o)CV{mK[\vi+? mAKrɢfpW|qwq#Ox 5\r3V;WAB=tK7TsJCtcl0ܗhtܖ灙FvgIwG *v=狜>&߁Ix^%{ٞuAYy&Fq"hF=职#8>`?Zp y#2 G<KVaXE=a /tK]! ΄x=dO  '0?`, Ab~ Ux\AqcFq;@z-bЏ)QA40 _(g?x;38d"σ aR~䃈 *rKX×ьbOHlHaFZғ6t\Q`.xVիO3T{ُ4?*$D,LEU={@c Pv++8CF+"DA!Qnem@a@ Doүc3@BqJ<е˛q,.+fC[|1C&A ,N?DA?== 3$=_짽o/70@n2$z<.r=ݭ| SF{cA2 dG _2&dJ q~toi0RfBCW|cG౏CQX:ze&{! mb®h=2Û?7 V/,LZ}n7cǷ&G;88<"}Q9RTrXa|#8B%:-񃍍{Vfcu "25&2}2#cYnr~#q6Xӥ)OJz@05uۧ@JP@h,BІTs(AOtby@lqTIWպ/r\*J8C+L?@CWos[({љ8&- >}|)O8/dg)GALcC3ؽ/R U YU =jkc^j/ʅl}MӪ_W ֬|J#>ʧ2+yܼO>V'X6fnNGFr[TV$K揸I7tX8l%&1rNm%[ l@{^,a8~Frl[XNx]25-ͯ~[<TJs+J{5]Hr`}d}Z4`*ݔi^: 4}D*la"WL *,xQT1!4&*3}s aGĚ[@ ݗI!W+?N+8D92Kl0ȰaLrS~3OMzb2B&LQJls4AT8zfGQK7842 󠍉JFa$,H/wҔ۝qČ^KmfVkC}SBS'dAJV:R.z,Lzs?fJ5З\H1Yj*3h3)Hc?T׀pH ?xz "|8әyHOﲳ4wypW'Nw 7{|E EQ068RgG~l5)P 2 ardHvvDxV^L &Hc̅q렪ݎVW-ػ0. ;nXu AʧE(qc+s5EUu͂ɏ_YóUwݖ>t<] ljt#vmaNڙ}<*{AK^uiɵdnVWy@bk( oH 9Ͼ;w{N&Oa\n8O0 !B~ =P7yosEW/IG'iP/gU@}'CԒ2ddJAAHB%%0MqrQBeYc_04&C( ayNeVDGfDNdwofhDg\/$uEf~D9K96IphplfG'g{75$~H,g8rFjwBj0rPkRg$KDIDE_IqKVl6JtD_j&hbZW$4GKI0XƁ݆r$6G$MXn% 6$|SM$|DN$O%gp4rP;gcw~x׃q؍!WX&7wnՍ..;2g.52$7L?&'tBtSZg8LhԶ@cRwv}|WU U/ H<~E[eWrWVAW,EBCS4TDA_Tww x{r=#k8ZfX>ه[rsyq}\NZDT$dxX{bEGx{3ygy;u$K8CD冔:\4ga5@gX|@f:s1KU|~Ǔ;t|;788ٙ}9& &%gQ#sd}GTR#&GefSI wh^#Ԑ)EAHCGo#HBLf{ł\Qe#4J=DC6XU(Dcf=n@fB(E`qFHW,}&3yFEZxj]}`bZS[I,$ԑkFT'tcI~kNcfu4qhf&Y90 W"mljATom̄TzFnZq nQE9$ds‹ 1봌Xpf|󒛩٦n,r:tPXl2>Z 47vsXR!R(.2W%SnK{:4-'vfcuWL3|*sqWu;8$;tdEXd\&ؗlatVlSRF4j;4OWj;;ei8X,AY%`LYG\锚7Z4I2 5 I[w٘U:`RI7%rK$Ga)zeW{*`}{ztBu%唘TBc瘵p^;I_Gx:$*Y(*-ù9-ӧ#X׳1]$J?3©;[&2c֩5YO8adȨd(z8SVePE::/wUbF;HfAHD$:gj2kVh$FCdX]UbYϥ z%jCƉݪءshF *I JcKmi0)J%fIJHJJ4 lqqyGlgzŵWGqඊMp{{@nM2{\:[^ZwO7fI/@ ;[r;!= d4۴Ǎ5[Hs߂% f\=pqgITZ?H \v6UIzcܙ$YJ:)TVa{⢒ȳ|/Ӿy6G!&\Ѩ2$-˓5j<76cKB¢AA,Eu$z&<h?AAecĈ!`{rۛ8nI$FBzDcYl@lV2[S}r>`,?t-Ff9PɃHnVбA5:o,'t2h=42%]2ot|W)s, HVW(٫B2-:M%MʥjPۥ:uyOlA)c2 P%-m;v+LT&T'n\w7Ht?:A`tb= ?IA~iԮyD+qN7M>%]IdBaf]?n?/H,GWUcmMJ YKH*%s]pAG>27n/8BnB ^:*o,cf|Kq8׸^vyu,nغ)M"fRFXF۽Q|q~ٳŠK6ۄCa~[q"B*+Xifs?q܀CcV |z-L4|L5 PdVuAvkW[ֹd&Y@BH)J Mm 57 S{qoOlvV+ L;x uN<, i $I6 srhrF skE^5]J3B?QfV O>?sX]5=Y?jl>ѻb1#c<:m;0W9>[(Ԕu ϱ)_?} 6 O& OA{kg0>3O߰3I)UdK1eΤYM9u"ž?wD‡ =y  CNM9^a :7lɃ FX1լ`Ivv`}@]7?~ +w{.fcȑ%P/O6)bzFiԩUfkرeϦ]mܹu۷ʻd/gsѥO^uٵow1فEx[w>{7*}Jnb'R%o>  TwР h@ pD *)N$Mw{&sTq,MJ~ƈK'Jw5)݊Q9p>%"'r"*x PPS#ddlyYY:Ej$]abx??4 ns4(P8TF8z ` /jB$,ɚrD]S"Dutlef 7~%?4! o-EAay3zߟ(ulړҷ~yhVQb!FP-F1cʖXDu&y](\qz؛*?CrXO?ȧD$J$WX!5]Jɭ|L UP # L"PKhTe5ĕ j Ѿ!\j$b+Ùz+'F>A_viiO;]ɶtdKB° mP'yvT,5P&h'CW2шfTP1CRnT+eiK]Rl";O;ͨ{RD+)O^f+2E=jS#1*zଞBϮHpG:z=)}1Fr}bI&Yn1ѩsM+CZ !z@9X3 U: d\A O9Tԇ&GU])uZq(z$T*& ®ónV MaIV}E[.Ya?Ҷ '[vj)Y(=7H;b|v̢[[\ ovKݕU&DY _බ-=某ʈ9fZ24#!ٕ{(yzǑƩ%/&,_-NCYA*aebXy'Nzc G6r¹%C R@Sr|e,g6]"l &Lryyl`Nlf8{l&KgqqjRتㅫ].'Vgۻp!bާli;JЯ&6nzKe]&F&(cbg6|[?MnE + K }ׯw{t&"t Jbax'4%m[>Sk {sp΢!'9ޔ\r+ EP_)\ьfT\"PI-ss3'zFn< Eg:Nl7~< %A>׼% ؇8@X&j Mu&:>w e ukψ?w`Ȃ8?&PuQonb8  ר=ġ' yA{DDSVL~"8J"p0i@"]@H:<~"40pSPCh <[,~m쇔;~JʭJʰK;9/~0/4Byh/8F+lR@R8~T2J:$O>*03@pO?zzB@tp@Ï"(zZ'׭>NKiN+v-ݲ[iln?ණۻ0ʭu Z.Nl".Ȳjukj?烏>0{ys<qR'L@iֳ=V|>:v'Vh۬YmFOhp 3ƭ= #=rO vVxe0J@@EUs:~k:kS&!iB>Pe@34O_kh#/*SoB,Pp&.|*v^a 4=A -'{Oڻ>iT^žǵ)gEa+p<(BcpRЕ5Z"H9nˀt( d Xa=^! NX!ZH2ЁZ b!ć9,?tDcTcJ!+|=x151c`)rt\,ÂMP{LmNȇ䎣} lE;3@2=N& ZLeFHU򕰌%~"O2Hd-o)Hʫe~]2.R`$T OκTv) dSODEN &Ye˔؈:XgT,pJEmˌ…1Ϟš9CKs/ˑ BO76ԡ=D).f6ʔn`2RX/TfV ,MKӨ̹]@ J$VR9͖zMԣkrl$:V`ՒֲhEW?VP6Vm!le[c8uq89 s&M C]^aB;U~cѹO<@a8n%xԜ2G Jҵ6E&񬅸pf2o[~~Hk n"îbkaֶsK |>b> ?ի:cUy5&&뛣4↰wӝ tyKW-h "oѤ8EOr ܞ/1bexL:ٕ\1A<+d|/w`:OlDYIQ 3diTCR뛌PlrZa+wXZꈌ &׹NUМֶVϒI/,uSUkSa4\E6^QRմOZl KuCI9TG⾩` g@Ew̢sFژzS4-զ5}.A2[?c7/)xw7;Eruv`+wi%=QuLNmFC<+6%Z,?z[m0+Y{S@ T +=Q˖kЕ.}a71vðJYGc2}7q[hz~zt90*AD/]0Qߋf]02bک'^'/oǷ8 32jsT2H^ ˑs3R$ԕ}an/tBvhĬ~ 6H+1D~1Wzeh&`( I5&n6شi܄vtfuf2/vNk0^CkWӥ@'"mlEnTiPkFvS0v*&rS (;ȄE1ÆRBsn$m`P2noDž8EoSS7zW&?1pI3mTPU TEUZKHǑq8XrprrsvXj~rX3sCX8sX&4}GFEI'Zu|RwZptBh~3[uq]S4}Laxvkve|wG[wwەUY!xBxBVB㍸w~GyHvA_M&'W.w|v Vzz;=N6 tEHg |[t7xB&WTGtwGw6}z;)g'Rsp7IBU.rd~gf7'P|RYVyaXZi\IWX[a)BeH̱LՁפiiic(͘0ԡjI҂O6|Ikk>؅&XdHT̆'ֆKCmvQKQb٘u!фnggn qUaN(o93rxo?us{h~4spPpU#qY<וٝ@!9pIpa1&C'Wr VFA=958!!r9c1TX#trHPub|!3 8NXp={^=T'+?Aਈ8hww5@a3s:Ҏv^EB)uF By>*3v7z8J]'?6"Zj4Za^ae))v!drŇ:Sڔ404c+Yu0|:ʦ;g'[GH/})ٞPFA)I {EwdK)'y*Tګ_YiYKـc(NJ^.'prtx!,#<s)Nj O6O4x6Ok leA.C9sb/9Rb퉚$Ijx))Ea8wBhSf0Geќ( xY7J8۝<۳>[}]cuÕJ RE̷u H{\jzD jG;I%3%xҵKKvm58Ȫ23[kf;^_c 3'3 ҷl>Bw *'+0mR)t >0Fc))pꂗ"]ϣ[tXw\ed* ,(B/aU0&Ue2@*13y₻)*ȼ9,ٮYr!'2څ*KHhtRJ';-fY 3Z?++pR 5Ezv^hP0CUB+R xs~ۥ+TB&N+Z>Ƥ2gLmrewL$²p2&G;mSqhot \%sxaKb)l0$p01DL~øUX(,'c|^4/IJs%Up]Bffٱ*lZ3+0cA;l+1ͣʅڜpY'[D,3A8Y 'mۗ<,2W{7grBP/'+pMS-ӄ'kM)˓ UuJc 9Q+.*`Ղ71j|(M52xu['O,k ܒC]WV BT@{**(Kgok GXƖ(mOxZŝJE nȷ Sչv(e{3(՞TL0b Sd yuh k͹n(3yB@lQ]}TB=eV98}UlemV=BӐȥ)"DgqħeoBțy.+mأoۯ,ˇ˞{'xԸ]8zeiI,\-_}<]vF zg3My6Z}g-hp0ѶKk)( Z*mk-7͂˃&9ͅ j2^?,%5:+c^R),)g61T\M3G$%ȧ'P!ÍB2A>1j2HR(PӒ+'Dݏ|M,TCF_*~ˋk'-QPLˊY, gs~nIJ^Vs|D=5ΤlvrJl.||.k7 ԑ -1}y:hk2,)ۢy4~|ѣ ;)q.46V.0})2K¢40ŋ֮Mj"N;ܫ*ADm4\SM&K/@,`8S]Q A\m_Mޕ@>*|{OH0LԪ૨fkرeՅsw5Qђo䅍e{A\/z4&~n #կg~ϧ_}0^{@xȣtA#pB +B 3pC;OSP1QDC[t1BI:WQE{t)țvH$'3 J;z2ʁ*2"yN#rM%t͕ 'PsH,?ydq\dS.9Wecyfkfsn)G{RrwQu6:eC ZS*hc6Wj5g|{Ƞ݄" z}it3}rх-Ѳ;-v%&u5N,z`)s 1*k, vl~i[ЅI{s~:tFG+mSڳݾJ -D|1~|ZGv˻zxj8y~M|z:PW ykzGUzxLH3|cSNd " `,Tu_R=0URBF,cAɊЂ[~uCh $"{5c $/^D&r0H  \4X!] `PǙy4"ϊC7^jsC%㌱1bw7lx`E)،xbpdŖ/(OR2%(H~MA.3I,ʛrt|K_D$ D``S1fRS0j^s.f7́,(>q% 7YLoBw8@D)d~4@gPPF*nY\8ʀ'bGIV =?L~X͇VqNTE>!-G ϡOzܠ5#|?\pի#dɚ0Ge]vP]rgƂxg`rӨB%(b}˚*E?NYu pYdҳ0)gcnsH*AGMXVja[E5YfԬtA*Rniv5 Lp>ta[׽ޭ{_ehj-*/|0Dvx]5R.eV(H nc@E?aejXmo ܂Pd%01dxGM"m?Y&u@t`'A4&`m?qci:O>f*0SgIz9@h2Z@?b*ssn{G +P:w,\V̓) g䃦4q+oAC DE=,e;2KB:-ql?wEw\6C'U=m+C=t:2=jP[Nuhas d_[ܳ=6= N?sZ+ 71Lӟ֕4<c*_u4ZOR`1]LOp+ +u 0 C b DH1jB O79%K|KV<^ M0t`<|Eaq7 AȠc^B<q+=G1NOg޻$&U=A (WRHαoL*W u퓬5zKMכH12lԽI(CmQr@sىmД&ƍ]A*nVvzTd쁿 Q Gyt5&sMp֤p׵e' Ri <iKҽPjOvne?iPB +`'\iv0X3~rt;FCmc]}W WEt|blJ<Ӣ O8&ү)'EuV5 V_U_q,%9 0ܦS_6F3q]` 9oF2{ZkaKԅduk^;. HKwnw޺Ň o_܅wF3NbρE \Qw|tΗa}nF3-٣*m,ҡi/2ЁJUxADd+6)tZ "VKP <HTW޻Ѯt6zyG̒Y|xSM 8 ;K4& 4@V9|HG r?d9r.KpL,.vm#Ĭuij{lțP~ 1;'NrFML%FgsUcu4<,M~N)7ki4 S< U{=Q.׆ԤV퐹HH74к0d:9}@v.vSP@ӳ5FmiMHRKUksbU wDJ~d[ 5!P\P6[G a[!%;nT hHմہ÷b?pn qf{eIޕAR؇;JuY~vqdӂ>j3ځ\@@4ϗtPԵT\w zBu=̅X':wa7u I;b՗f╟j~_ ci}+JMpc*MBo1WH߫[Zx:~؈!Ix(ffX_DgI G! d2_%ۜN;uSﷄd)9y0؃wuwO&ܵò4 z))u>b- U[6] /hI)Tu&ma9j 9ԎEKpL[-ÐWpA:)lĔZ'`xr˲ܵvv`üXt jWNTmQ˿l[.L@˳1lܯ[>X˕mܜ̥ͥ|B aV ͟GE Z ֜KY'EGQFx@&&.DfX7cǣǛ < <دkÈ&=~LFIّbp )rO;XIbS`ֽuJojsu,-IAtLu̚jkhs^ ň, ]2fH:O̤yMBJx EgwVJ)%˴ܼ] յyp cԬ͡-ڞ.r,`V"uDl41l- -=qJ220Oz|];V} :,. ?d4~\BM~J}ߵu_m4._\nMN q+. DUC Q׭ךf(ω O# Kp彟-k*.!MwDڍ5`{B  ug'E|B]˕ ,."52V{D޴V_Jo]dNƌ>Z&418XAKl !ܵ ;ĠBxa+9$wl(9+R Cq,8FIrBUCU m̊I渽[9Խ 9 j[Y@N#hb'ڛPaEv=T&NԬ8,lo/1NlT& ש-I~2Ow:mJpf3~_&]Mionʫ7*jkrp5)9'}k㌼[eC&pJhd9OMɨ,K@&ٺ, QfNә8aW}G }5ny Qc0hu.Q(.i;8y3I)^%KK΁ɕc~z.,}-yc0O|?k||k+Zt1.J8)3]ӗo˰G@ 8ԺR__J.;y~eXƃy*f ~/}= o?xmo?z ݻwp`>ɣG Q!I!UdK1eΤYM9uOA}z׏d>~hH{T)ӁMݧNtN~DIVHcS e[qΥ[.L쌞*+LP NǿR'qȲ%%e̙5osϼ{ 2‚ Aشk! ;,e&ko&_i$z1bU;2jo wUz'_>|7}Yj>mOx2~n"N< 4@}5^b062ǹM|aه}ln[tE0FkF;1G{G b.t H$TrI&tI(rJ*1*vlIK)*s̕.+rH L2㔓̾)MsO>aqƆGgBgǫ PAoPDSt%D }R!9H:O^{md UINFq+B" " k,؎-V,dZTZ[nTKj Wz 8yll[ 1TG:(eۍpv&/j N?̵wdg2ٟzXxMxEdo!fus137Edn Qj=He;e$,?yaf7 ;>㕨Kiv#ɝcmHt%Lᛯ{͢ocjfYr.w~1tne{XeKRq!Ǡ4J?]ԂuTCv~rV<1sH^A5{~7|33{ֲeI?,NZPI2D=$m/I MľF|Z V`d'"d =xB>jQgiQNҐ 6aNnC8M"bcۮf9kvAad! ^BpB;Ѯ+_8>0zJvv2bd6%%CN6Ƴh/QIb"gV}chF@*g88.!E;ǴE8㙉~h@fGh,I"7'll6Las#&5JA.^%)Q'f(-عk V Iƕdf׺@r!"#]F:1\,<QoIǩfsOTg;NwyOy@'>#< s٧N O2 Jя+K*&T 2zяECі&(= (90e0b =jKI&fɀM4'5dg@-1T`@DWq_F=sЧ,szU^`Q~[_ kXq4Ub7T#H@}n`Aq@-!57ҪO.HE-|\9v{ElJ;w-nbX@#G< x$)KcE?>pBIւsUF?ZUyB?LW~j-I+\5=s ݱH$5)|w&T-bT'.q*9U"0 q|;\%IBr*mX5,Cn?Λ^}ZC?c*x1sxxm,`71 ?+@nB b6$ƌA;hݧ1h3|AC?Sx \/xsFp湃3k\dYnځPUGVY[p> wĥưU2TpBL}Dհs[+8nu"55 o<_&@TF <cf8nuDŽ^E?pC:>8Lb 7sMޙӥ;Y]~!2,I8VR0 V-#J8є T#UCIɓ(S\ɲ˗0!za(TAP#LZ2@Td)ӧPJJ3}:t#*8#֢aEêhӪ]˶VD`\wi0h È+^,^qwkϦ@27NӨSd4 *e-.< [ n6ag}9fVLn8سO=bUiۨ\)_2`)*c0@]pxNP,$@b'Vhfv ($h(,0(4h8<@[KA7d+V)9IRVjUtevYN9RRm&y^NSfHmfSI饟. =")9(Aږ2F) ϧ!iO?,Ijzԩv^0N%?L+IJ)J$Bd0)Q-] ˚xz&0L F0IB4 >P+P=O{{ns=ŧ[(ݛILoAR o;ړOH4q&,9/{jO>t\1?Fj猱ԯ?S,}*Ҟrʹ@C>ms\oϯ\vnrnl DlٳO3sw*[5ڞTolqV;zO.lk;źK};ظrNYcˠ絲gÞr;{=.&%oҧ=ƙ};҄MlbJ?A;b/X"!EQ xARa1 NhƔM W1Z?'5Nݫ"0Ck^/9aHt}Tls6A e1ucVFqv󊨰^u|: n|}d*UyjU~ETSZb\"W֩5dj[V`UEr*QQռ|: ɀ   @`c!KR] f7 Ci>+@ SuzS8@j+ۈd $h ,iֿ鑸-c+ oˎt ;[v$ߕHxoZZ 򯼚p.WM\K]We{궻x# ͬy^6AiHL1"ԴQl af ؽAuA7\M*LGbK>7"ER5^@LȺ̀ab&'ص8$GӋcqʒk3_BUcd$@p2c,oaYTzۛ}IcZ{#nvp]gVɜk--gab5pH" @G@2 V@3f(2`sn PQ ֚t.#tcYVZkU15LϮvWBȆk]Y(_P Fw"^wn7fpaU۳N]ĶxiYŭ0te<"y'w^|X4a L\/sY~yL$1M}Y2޹ˋiWAq>#\i/r݂94y=s<"m7SŸsGdP/I vlw14cnݸjtEowk@ {p;[1uM*ylޞ__ثai o.Ve-  ܦtYOؔez֫ԮҼbX!BYX*oq 뎮N_>=Tm[{WW%f%`o^b[Va)wvqiuO%``pu'qHp6,'aSnWVUZ҇~Gfb)v}W~1t6Fl9fuG'tws07h"vdOdKfpXVeMu@Xe̗%$v&xd0x|{gQMf"fwx(g qOr~jhhRbVWk]fw%uiC;9 wwKvkFjrjRgx|'kYukk"gUyvȇ$mg{?nmT)xlfzXm8GUyr#Wxn,hDRQ}&3"ghHGp-S}e'wڷ!paH((#Gsexhct/n/7F7i~ %=Wqnt@h8s"yRu|%QtYe`v-XOO'׏h-Uafx 9#qtGxOpQQwh%VhV_Y"ȓهxחo2 fymY2QhѸոؗz藊QW'Z2{Y{Y))XX9jwd700)yɒrYUx%/IٍV_8j&kBs$ˆ~YXxDdv[I'JɊ HgTIk)QهS鐌w`d@0 Y#x[h-ͅ-$9dٜQ%vbɃ؛e%csPIN/ٟSȆV[yix*\^M ;9gHhjkb' vQv$aɇ~FyYhwhmءhz9x8>P{XG_khjW)ƤjȚҊs-(z\:ņb_勔iӈ~SԘzy|V|yUHpgGHgɢt9Jo-Dz~@ɉe9]ٞ"Ly"HvtNiAJZZ"V>'ّP.r,s)>MIy֊-Z T_6:EJ'rh9lW Q,Z' •[Zyh:cwozd[:"JN#uoɖڞesu !)٘z{ٲ (Jꌑ׌2ۧ!g!YwQG;Rk[Ij_S~)S7%[A Zi ,s ;:z/AHX}{lKOYsGqӪSw9[7z,d zU".zufnH C؅fG,Vud 2ZhېOjڙwxkBjkg{d[;ho+V:biMzxȉ(UjhJo zÆImzoꦭ{#̸VҨL>9+m: L/en1$l#č-;ga |]ڮN[U {iR(j1duz!rPQx^欹;⭩ʺۭ(t\rj@GϪg,6#\œ8 +$^<`\uéah*|D:%6l+:<버 6[8{̋/<L7۳) ̲ rGXK |MkX!ôiY(VzDL!kElTEeK[ p,k'i?5e:kŻai giIۀ `\<УsY<ѱV8Dƹ8k a; =~{uv A(t |ǘȈԺ[A+B= I=Ӻ*a[Sʬ9jф {\Mʙb{Ӹi֊>+}{78\ۿ [=h_Jazg#Y՝U0jYwPU̼ɖa"H<Ќ̓ڿ,,̵ ۾=92\+ǃ=ɠlHdϬJ{vx"/1މ-ƛ(bl3m!|k-_ ]5}!*:ȉ2ȹb| ݋=[kV^?J"ˍj %GT-lóm»-9L*ڊ*4lPHJHlOˍ㭙-Ս7Dԗľz 9N]!" ?"m.vX{|Yq\" ctVJMwn7Mlߎ~Y)rk`'jȿ!\xOClZ:<>!>@]}WnnQNދy+LY~".Rd,)R&Nl5 p,k#.ޭ ᱾gюp<野,I2>y̼N~C~]l_ >4?"O.Er">|*^滛~N..2퇬fR*&>.m V~XJ{ݞߞ;y }ύ">_]6+N'f}I&6O[𣏮"OtȪ$.]Rΐ-e"9_{>o )KO[ *[9N)j'B̟$R6^>)C$XA$dHpSC%F\8E5nC!vRI$Qdْ˄&ar )sJ7uԘM}~ rhQIu T)B>JjҨ,^]ZŬ_ ` 7v+˞M;Эĸ't0 \/!HtSJ][ļ"'ܐdc[ Rs\nd=z]ӑeL?ۤFtag Z oxp'_!uL{L7\H陫sW3n=<{Фۏ9dۭ3(jt?~ B3' ;P8ϟk: wTlC\Q8-6#o.sA:; rH&*,.#1K LlM܄097b:3=3;g=)C@;OuQHJl˿wTGܺtˬASKD G UH}u4U1. TrVg[M-\Q*GfMd XpOSp.\3JlX76}o\v3?x5vJ7S\ ǽ)Oh`U%6R!j6dԵ\ROw axy)e\edƘ%OYU\^>9T$eJ+$ U$Ty' Dk R34kOBh>;vyl2++NFhƘ=JZ%4` UV<~~6B"'/h nYoP_Z% |UkP[|o-O r{˕\e3zuc8GsaC>-4 wWgki~!_7 f1c=i_Ь$pBB\d+ei\ӖqlpBWzm,tRZM7~RAC/q J iķ-#VP *ėibX$aS@+1-vku)r7 cTjX| "=FW㨺7+qx<\l${=-b#HN6HYk .DP ҏU+-)Mf,Aŝ1$\Jc,)qq tFH+J#J HCu֫(\'N)PG|)&oBȶ({HC\(=$T")N#3ѢK4c*Y%htcR]ֵЃ|OqVĮ\fK7LИ&V̙empRBfuM#:IVrV6rdhdP޳j (jbm-Ib&GN mÔOCyŇΉb˫\m"0 pP$u) wS9vDvnx+b%,ļaa'+%nw[7[вW}.z \$ y .8dz/Es9ڤk#lҰzݪxě(1f^\_l/0:OMj5~&(l1Op4on`N.7aPWa[<9]q1f,1^vK9\wW:_ea)mq{ l)V!^$'cH|Ӝ)  }ly-UZ;~:A3y$eF9nyD4ff*`BkJc>0x)]Ȳ/]{-K{Ð4 `|Vΰ9%hIe$|%H[:Cmssw@#$Giv+p\CW'܎+x !,I7VQ8*\P 3jȱǏ CIɓiZ)KDA`-&TBϟ@ JTaZJxMM 9DѫXjZGr !+ȸ)ó۷pʵy4V9c{=x NK#pSVBeˆRҘӨSUL髵,Rӕ\he AӸsYX'`D^μУKNسkνËOӫ_Ͼ˟OMdǿPngHru"ti j=QIH!f2$!mPY yB&*Ds"Q'"}81_ь1ϊ͵ ɡH.giM*=n2c?\j)OOB\3T"CԳ'aG&)Bu#G}>'a?üQwr&S0Sf}Av g? Ϩ s=& eO> *j0*zlB&I<裎Гi,)An ox?m?['C8<@:߭Yh p&to3q>΋.F\^\"291b0Lo̱#?c. C oE(~O켤<3*)FCWmdt2l;Vc>St<-?nj =kG}_іZ8I6 )>޲Y&ǒ~&sǽ,}==-WM%<+ΩԨ yު]v<yĺy{_ üCAn;z/i'%ţ/.4ݸ_]Ѫ?LuwG<N c;W= aA2S`ղT;ESpY[1[s:X  Sr2eqeG?D85~M}oK0sZ$UE/J:>w~+Z 3• ʈ.L^ <|x*lJ(#Q P)юiP$4ܩG:* '92]ғ(;;BO޸eDn,嗧R9rЎ( 2&uSyS&>ACüN3-kr#6+Mo/%iivED:iwA<]cS'bMRG!5 Zy:ӟdh$MSAa MhAPS %AM:P^JK!G1h9@i@7E@N1p$Cif$VVf0m;6U*:K A̓&bHR:$RAw*[gG ]i*M*)QiCuBиն4Y) ˞pяW;K-6Btl+ ^^zXN@-.AV4dw[.|tňY򵶊i:"dtiZmh`UնE,q7[ء7ٮ06TQ]~_R-Vki;f2m].:- S`x}ˇ#,ĦӣbiB]Ldq0]\$oT9l\X 1=N;DŽzb_v=iBd0N @`U=sߌud}2W*`*5sV&5`+gٮx}s࿺WO2,@9V>'meˋFG2p,k@HB-W[|_?~kk x4B~]ZW7qe?7!n6 m.e]i" B V4J6<{ؤN^L2WM#FsWsvoNtLg9ioQ{i _x˶ e*O>i! (:"yB~hy"y.Jq?zW<3Oq+z5gG}=C/RT997pqeLk?J163VYQu.Ӊl,~y9*Dܐyw[4VאpO헿ӺmںHس5/tu ֹ<".lfvwn\V=QpS\%#漆|^+ v:%{;''sp_ozĉ(XnO#cAs5{+tE;f7?Vt%ŀ=&'3G&IFd u%eWuU~=eT@e_fHK%fg%]mfwsv]B^gnEзwhyu{~̷hzO~QT%ywYhkllij6-w!kVzF[@zSY|mwl}ao7zі{Gg&m]f gw Q|wk|Dhfn_ob艱vof}<聺}v=hUG`pvOwWqxe0br"7S6pǁGrs+qh2ǍAVCF&(*D@[Gtzt7h7u/XxJx~uuL;o?fM86cjh\!jv赊7x~sDՆ%iq{|Helgxycxzhi(.9}g_OGTX\{։PY\'?~}GHwn([8+Y~]~x_i9kow:XMyǘǔ(q#Ur䘁RIs\tss{فyR渍yRYfsdfe&(o.8\e"WlhUcgVwuwgHyWy|ؖ]Ya(o{顇g(5yk7i<>Aj8Y4jV>)AvXXFvwȎߦdY镀y z]Jsxy2nY}ɢwz]xii!(:( >hB׋p, 99I/ٌ!~-c9y<$(NWzYeڀg !Bڕ8 u5mJiʧkZJhXÏ6Řw'Hu9AY|J ;9WYmD9&"֢U(Wrʇ\"x= ZSiFj]<)I͚֡X٠K ćz lڇנlj~ɭ*|B|)扅٧"aNؒbISYG@j)Z\~4尽;ai"qu oq:Y:)yj{j){i%\-1K[35 ˚R0B9;:{e8b14X-`ZoιZjA(z]ڙo֝X>:n8뉣'ʑcfHnz=J mJ뚡j*6I۷'k$: lJXZJK(1VSKwfK^V[{:k7n;XoA'Y h_;DqAkE{mHqץ&r=+?ȫ۪h˲ s/k7+zѻ{Kfk'#kK뚨wx[G{ ` ٭vYUAZ)YQL،gL/͇e챻~ٻTDp HŤr)# l붴[Z s,6|ʮGCɪ, ̽,SmIE,O=Q-L4MoYZ\9Ve$&fxF Ԭw}z=:mܞ҅=uk#40zqkΛmYZ $qgUKܸ[jj˥'Xܹ=Km:YdfŒ ѳ\{K#̻D#ҁm +Ӽ D'Y>m}c_[KM]}| NaMWcgg] k ׯ oʹ,QX̡}|X+n][;]ݳ['|Ym#WΟᎍڔ+ޔ}KjFڈvHeh۲WۜУˉ=8n'h7U=jEn-yYKф]v} 8]Wcng=P=[8\<酑;J߄*>k@KBȪָLZqM+וΈ^J+=/=^r'MGW{ڂ+ϮNEI<%WQ!Xuh.k O䀎)v3z -T+^w{p.Ao{iƥ?=>Ҷ9'Oθ>.G/I+OSOKϗ W߬U?C[e:ɞf@=>׸Ƭ2 &_?j[l@z|񟎓Ns=,޸X/b^dNzo=96΢s~jYy%/JѮ9hg/o13Oo蝌?On൯oa/x_M$XAܴC%NXqaC -ncAEZ H)UexY>ӒZSR)F n& U 5ןՎexcj66PtS҈r!?iWrJ1@\Ɋ2xm :TX̸+bKu]A:uo$IݴM nQw ;%{m'_/ҢR`]ؿj|xK73B"P`r 礳N:$K& $ .%/LZ(c(k: Kƀ-%"ߋI +* G4<ʨ-ԾtEL2P#z*L<3ύs= A[\ACI3T !QJ!L;L?pDPOIR#U.bD>1cʪ՘•/:]}' ʋQKe$TK-::f۱cJvUP]]h4pŝ^|HtRu7$غϱM\5_k6̆4.c n>ˆ/blLE(SPӓL7f\TbaeKH^MV15ip JLWI)9%5+V=;7d͵0̿aM8X=|S;gC-̅KUiϏ=FtOG2)fD_+v۽{Y֦ Z^g3خ ec{le:[Wݝ5Jml|zr-37mTq]í ށ^[>kf)P%gCI"/Pgi8 eqtQWO6H.FcD^ gG)LB)ڕ*3C6M~"䜲%rme#"dI;"ǚ5pVR).ebm~pK#@xCIqc\g!ȍ1] %!HEry I0Rl%1@r3'JJs4e~GJ)^yt`Ex=WLlvaE L[ 7o{Yl>zvMp'LP&}^akRHWvLUl`)f螸T|Ì1 i:Ͼ4 nV2hyCFl,;ذu0* Mx3Mg!,I7VkRa@Zժ%k#JH@<բXCIɓ(S\ɲ˗0RPԂ2 B!0f$Z)X0<ɴӧPJu *OZ@$!MϘ Q$!3 N]˶۷p#VZɃO{<gy n@z>Z2 @UE(Vhfv ($h(,0(4h80&!8JB>eIF$~OyRME! YɝRO\beđD_dfcF ӛY$(کgR  噛Dj)cCOD:)iLlڒ(*QkDRhH8!Q0DO=u*CQ.*E[F 0&E ѭ/!{.yNd^>=3 >j&.0DsO d=jڰ? ? 3lO>Ó&3ȓ&D\ glRHSp;FO>R1F3KNBco+D p '>#oJO;i:vggj;<0;2,;?fg r?-4;LLu(W&LMO8j<~SOX+?\lȓ5F DxC:I3,8Qj|ij{ɛ0pˬ;ʫ̮:iCi͟Î몛m]>j;^$9.kT6F55,R dU=i}*r%;1K=j^1zZGBUyOT0H@X 0`ȷ70bPB-܃}R7C:]η[({\yҳRn>m?7}ݧOWZv_CWԓ~Rߘn1hkHm}s{oUYU3DyckǑk\l0Yn[ b٭gFTϭu3Y7D-]~W:sG. yRpc ]+d$ex7q)wҒjbZ;Fq,{M#IbXfgVEFv_cׂ dl9y7xbWMYW\f.dx-dWTW9x_qbe(n+wRY3B|^HAǗ{Pq ;&yggysp8 N{7mHwz6TՈhiV((HhRX%&rkG=uT@||}MkZRK_*l%llIOKh[5~fX~ˇ@Wsg{2qV"H(7e}Hnsr8VȊ'I" XEs(qؗ/_(p6n,hCkU&qErH87:7;%ʨa׎N7q0h"Dws9sd!9kZ%Ԉ Ix!u!v:O5cH `ZǏ^i[v]w-iYAY_gh*FȆ a&;$xZzx wyȇlIߢZcDoًFUX~{iNEYz{n9ggz {G"jfSgekLg(Xe@a5}}oZ}W֙?hy^Y w!=FR8hy}`H@P чV9wl5ϹBp ɎYch:#0Q8Y '*/ݕbF '#c\T*FGwIvbxȡ>Y_ !\xhYO֛I9W٢)ojP#xoBryo*9_fx"ɘVJRmUw5Ql QijkzNJ'"k\e#:eԧ*}gyMʚI|mUI7 9 Ԗj*c9.~)wı1ZuRʗ%Z'7,޹*opʟ:wt xt\"ɋUf'J&]aNJ+홧]ꬼjo/&q;vqiޚ"5 Ժt$պ <)G)$Z9vo'Gf-+JuTb5:f}ʩM͹ӱ/9;DJġ]֖%P Rfj&<]jjM"_:ꙏY5hdʵ z)&V;{ g;JOEQϊI˨z_9Z*4~wkr$8y_!" ˯Q͹ ($ȬVxj9ڠݺXm{r 쉻'ʠëu?Kz>_̪t& !\ۻ=:ݖv+Rl;-˺پ{_7c9!oMB'X욡XZc{!b +K W{gRpUkh/§(Zr TtK(~⶷~;7V_θ蹪ѩ "KN ŢMLEKyؾXl^NTk>`t`{\4l{&Ҭ}b-=ٿڈ:7lPöit+*^N?(c-{ކvr!^m0^wތ /.Qu Ε5 5o^"eIֳ)Q!zqnuqo*__> Zhg˼!O9E*֑xv >k\L[ yjgMbDO9?¥vq6#XA .dp`C%NXB!>ѣČ9~$qdI)!N0`P@ @̈!nyrOH К fT?F P%EK NLⲣ3MO/ uT6ըSR/4Xu^-KY'"PkEuLM XzWb"dw5fm;B&-KZ(h"@d4R٬PQ-,ˀ@kjKǍ[3 zjkMv=7ףʂllM@Kσފ3붤{1uSOI(>K[eN;6M-MT R(=;c=`%0:(1TvU/pe'H=„N("q†- ]4JӞACjU x̑FA<;&Unn רiެKެ#vr "s-M 0ZVt* 24=9vqClBaBTQFJ7}luoV5uxZ"eOi}wQ헟$'?UH$zjFfjҢ4t|?Aͬp%e) ^W]G` H+_l .ֺ)`BK3tIdh;F810!\9dwP%&6C**cl]^3݆jD Π#Y`i"ц7%>kdg"e=@xOjhéu~5k^Ahc菵r&2J MշYmrwL;ˠm$Yd>qj"on4_dXt7 Yr&54BH0u.i:ikZ,w. 1N4_5bz|:MM(zZu{zG( Νq B.9 M9 JTEQC*ϣ0I1YK4U-ݕ yk8J(MgBhDLbEE^Wعԅ,W?ŐSNKۡ 0@)4)VY\/ qЛPQDu4Jw֓%S4.k_96Jg3iM񩌭&3H2'Zl&Vv\{xI˯ɬ:VWRB{NFͺPH"rJӪ]"mեKH0\it\m{kfu\[yiv}x2;-ޑfRTuzhUSxn@ Zk o祔|=n5JQDA cˉ3 uq؝5pʦi=uaQE¤Zv] NtU*F. P38wk Q,QNscE\_q1P^nVdyl[q"'=~ҳJmMZEϘqO$')M~2hJTqsYo6;ohlmBJ̵;[*Ӝ+gr {9͢hE6vIa]I2vin5gFDN +?O^?oFaooOdIYi v?u1Np_AWMkQw8[C{lRཧ$+N*QV5tΪtf3N1_f_E6ۊ  WqU ^Jc:A,8%iLLKID>~Ehэ B͐64Z@]xQDX ."klq ;k]kg-=z1)dܴ#؋Yܥ.Ax큟YY{oSulv'r߿gN`^׷S `~dz%ng+/`Q~u:&_ߟ?S ӿ ÿ @&є k1L@0Z@Q^j>& 2&{xt6Ĉ  A6AshZ AA%L$BڀxH@OC)@  "l 1| 2l=$AK&@+7 g B 4,4D#CCC`Êr+B@L( ,<h hr V0 AxC0 "h9Hŋ@ -@ Ɠ(S\ɲ˗0cʜI&FPhɤ*R& N26 9T20xJXjʵWnve?'&ZWtpdx˷ŰY EM֒`L.  0 @ x˹Ϡ6x N YYcZ$'Z2#Pk'^mk)4 k7qf.oK1VS@5 JKVXY1Ox ~ԊLŁa,|VhJp!Ha,jBRĠ<_,:,fh8<@)DiH&L6PF)TViXf\v`fo\8eՙY!Vpz&|uwXٞ |$h_vw(w*Ӣ{5IKep,uէdjWjhfiO?PN?+FZOl",jR?XĬR[,EISEV4LQ{Яyw ӸnE^4J -J&0+\Mԯkp.ZEҩ.D,3=l= < O=ð)O>$l*GV4.){>sP?NԉtO><ÀMQ>ub}нl]v= O; +Onk< 3>R3???;6,̸A8|コ,c5E?9;[c:x+3w֬>&>b=\?&N/7kβãkΝB֬ 0bAmT0w#Oטh֩rS#, GÒЧ?ҋi+7&-bf:lX Yhb :$x$7( wkUn׋ żlYR$1bbEXqLVW񊜋'>`=CDe!U3dD`L~{M\m ٰ@+YSpaDszp:d Wb=͍҃nꨑKkc˽cPG\=r,4 ^/uYp'k-U5}r YHCF}lj- [RCL}c[cކ*<`/l/(i|+M&UUGu X*Mʙɬ,AWd 5U3U]фWu&w_T 6&aK-%cBM%eپz06΂}hUԺ*1-W`(Vpzm׮Bkq[\7)rCu\<w*.Eb%=w "5H LCQ/K @]V?饑}؞֔JA"P`!uK.'jVPUB B` D"+6* y!21H#KFF~a1q4˔v.'9&2-e#d.p yl't˫10h\䊔|^2\ O/uo{9DPvp4D%9zɰiRC3>/S2^#!?.qz#k ,i:m`HaJBHVbY.00Cڬl# D6w/]]&NkUqM{PѶކ[wf197dtfF^o8l{׾Qa:w酰E/e3"&rK7WAZ3;!Ϭ&7.vvлr>gihw_IvwkwiRYT<^5{xxv(FFhx{5\!V e~OzؐV_H{Q Xe^tԨ8X~ƙ'fI-؎ɘ~w@F~vH '^WT_0ĈgYgUi~.ebၶXHrjIht(Y5w)Xۙo1yq>wsEb:V/9g0Aۅ(1 {߉ـ C9eٜ ]jj^_t+b#ǐ21c]ѡ_t((xZ*i9$ڠ3.3ʝ&ssxz= )auews(h~P9yϙtwLZٞ™5`(V]JY"6`d{*F$꧙t5ŧQLW)~:]SRpZzpWY#{IH9V㉟F&#ǦazI7eY5ʑXHJ;:f0(G2Bɠ4)V/2⥭;עʚ]3٬Nj[ꥶʅ jevjZ)vyŇ*&kxz= hDq*?I2a ˣ+Z? cE:Y#4|+ث8jSthya(KZq6!8K6yfZh >Ko7('V|ɚ} )z˕YX!":cʵ,q`\t;✯`7XEw$˫X{+6im$檫*ҚJϺʭG؟X׸ ٮngxw*+v&n:D񦪽,+Yۺ**zڱ:겢jZaʫk.k>@Jz*GZy|[Q* g#+3Vs,!gHkJ~+HZkj̩_{.^%jYސ@a)΃.qmꫭyJegN,m-(Kqld;AG q?1pxa)$*Ij>4%~unl~Գ. &럮[ԅ\m_>OY&F ^ڞ_ddI;SöM|Ύ}t kU<lmn[<L`I_npN oy@ }Wz቎١ $pA °@C@@j$LR{fTaŎ鏨@ Ӗ" hȠSn]VڪX0/VYīG:\8`}jV,2aYϦMrW_Z!\ 8FHÐ=PB""1#zQN룱P|r+Fdht =1 slpAQ'nQm)ӄ0 M9"T >ЀtBRQ@1"3\dNp,VTs2blO,!lԪҾNn\\s+M﷌wv=HR`-ub_CvЖ%FK3U䃷E8c'w$}SwQE/guAVN ]7=qZMHlbDLTQpQ{6:M&SM4QM) ps4<,đ;qWתqDf!yn';k0_d vK>x"2E}4~p!8y̿? LvS9! I)Iw0XD:2ALv0 hC. Hf<|a|#1F>CB*h`u#a)X5Aj3ZEnE ;H!]?T(W:iQcOH>fi[ۙI?r0I"_e9E j$HG$38-j{HNd P4nRlQl3Ϥ\IdM8X0.Y2$Ң+ȼaSK FT+2A2D9Tcc8%)J3]FqB_8yrj@lc(+_@-i6qS a&'"'cࡦBrO!C+?ZesC{ψ mH)N>t2fBWJ!Lt%҃>YD^Gu*Q:P?3pFHD9eNQFtSYH0ysof&I>ҭkR+Y8WnpkmŽ}*X,eԧV2e]QXMtBd-ab]N4o5Lb,sJf0}%rCύ&g4 Cբ*_i^)Ԥ KQga)C/(Yۗݗ-'O }U)[`&^*2upq:^enK*>L`!Ejh=+#jo _ƯpZWHaDd|"\%&OEk`e]yJY#aOiɱC%&CJ9|6xME[ZdzM.g;/ -޳FrHPI,^vU|~zZQ> Mkۮ36WF$R#eV .,E]l~l¿%-IRG]ORٞ6/& vEMƈ}]նRug՝᳣ܸg7Puy.%f>R!5BHaF,JǏgCyɽr-9'T0~( m:qBt0Q@Zzi#]e0Z@A ;WC1=압z|ͩTsDPd^dvԍN@^X_l&:4~{t(Hq{I4Wg;@0 k99-<[ !,I7V9O@-ki@@)#J8T!))Iɓ(S\ɲ˗0cF^i% L4IUɴӧPJuZIR& +e`?'&]˶۷^.Ŕ"d/7e]̸ab=DW&z0}3ꔘj :d ȨS^R.VVTMC!L̺ߐ]%+mJpFУҒuu(#&`:Yf2>0B+SJ_>% ãIȧ +Rtހh& 6F(Vhfv ($h(,8&)0b6D#; XRɒ@HFRؤJK&I`=)(Q)%{ZJ%_э QId:Ǧ?j2Hoۛs*Duɟ;BcOdh?5П}ƴg=i`?H6 LBI.T*h*iҨi-+JѬRZ"-ث;ƣ>@;Nn2= Q:䃭 nr+;ѹ2 @z;LL09(<QBN>S0B.o\OȆ= ﺪ0no;Ҏl*6*(< O'A 3/]ҟ2HiǐxȮ ?)3BN?s=Muۓc'j?/Ǽm.̖q Qb.,e Y$QlF1Rj*k3c7@EHmokIVJfJḊA큌\j2d-q*v"2qO\ew]fS]eҤ!-" y%]3T%Inikvoo(.ɺ iX`zIYS@~4TAu-ZN,'ªX*,^P_4~4;eX7<]$!jke-g){pqt\'¾-p<6.Y!{np'-7V3\Ւ 4i&КAg Yl|ϴn{𔿦b@WcHKh_0YYpLZk0tZBK$yn#<Y>^`dxjű:t5[kWnuV!Dݷk̚f*m=^҂VIj]#!uݽ3MetnvpzxsY^t ~X\c=4;r9yHnr/UzoÙDs8/PY͓%8z"8_V/%7Ín{nqQjo~˘|8շ}mv`xؓN4_/i"[~"2ݗj#\?>3/<޵f/I7d[9QC#g4̣t6wi/l37xy6@0w̧4q]wZUF#ru\[,rDPCdggVp`~q6\v#ihGWvp&Spi{f(oX7  剋tkYmu\|Sa$\bxy)HX]WQ(}7ȋu'svb(hr N*i1((08@0$B)NwA8P҄&z(V|8Ux 8%68sփxGh ~hU'wwr,pqHT5HdÈm+&9x`Ԙlx\(y2|4 YnZzWf}%iؖpvxh"d46稁Ł鸕$#eg(1yYtT֏){&#"AN _ ֐XZh_gaNxkm(p('q6I]专YYmcP)>iQLXEY UIꙊ y9`9zވx UXi+p)rIxeXs—(ThAب,%旁%Y&^Gع+8:M~4N!)9Q Ii]x(g:JoX9B f E+-ɝ [][_ :m:I<ɝU 5^ZOh L`ٔA&)cU`П$w 9h^Ĩy<Ʃ*AF%%Jgw"HG6_Ip.H\I~7JS ىCɚcIIDڸEʖbʛVj{r*GDf-cegꟵHyzɹ9Y9tIɞդyjinڭ\6, zSjJ/1+ t5  w;kwZyqz;ꫫS2U9zT)(>:@<ʵJH:#۲ rY}Y" n:83F _{˕ rp|J۝2rj%ihkLY9kʱq!k*|,˷.{@ 8aٳw)K껥ʻ*HEdud@ [*"ৃA%'IZUQe*"tq}Eyqx2|6'{ 0, "DߧIHNj"\ }v (|y#Q ugz}ZM!Bsjky$+0!ȻIv) ˜F: j0+4 U,jX5f¼ ,VKJ{Č`+W|Ǻྕ~iƆ^K+ǹ}e^ ,lɣ~JE#sPkR9Ȗe ; tkU2ióʎq˸,|x]߻KZf|d|VLTlӼxX߼Z, lL[v̘vuǏU{~Lɥ]cfol i5W&AK cӑ,"~1y燋$B|]}pTJ%hZL2a-+3 NINn|J7lNZnʽݿYYc6&~*O6Q}cYLl2ݎQo/הn^º];G®G-.L( ~I9 qK'-Z .=oo?J =!mo)}!+O.l PHlgQAM6'|tǜ&]ps/+TQE_V{PO&y%X8@^/D(S䘳`! 2X(p /̐[[pDQ<kB6 ˽X4żJT0sD6T4HwT>{;qɂ 3+4F qlR=/D-ϛnAګz43S(!슜Ϻք39 J-L C=t6GA2-RJ}BR&], !,I7V)@Z=@ Z #JHb--%Jx1Ɗ CIɓ(S\ɲ˗䜂U*I>S ̄^i% PD\ʴӧP> (bJٳhR֒`VD`VÈ'j͓XBrBSNzeGD͜=+Miq XY_&ak}ߥN5?i;!sKqs0Oj(Fjd? r $= 0'>w;mDj-0spG3jK7v` whôφѲf-=A,kjR6b;Hs-ca_ԝ.R~|cs:pD~:~y>99u9 ͛pnR?dl1+ZowD?wl;΢ڧ1j`k^10I ^{?zm{!K;ؑntN"?#`aE(jPCMA0 _⑐zn˜1PZ1à Jg"bH쑐t$03pK!Eˍ]{g3-֐T= 8)MThi1aKu7\B"2aE-_dѯ~r>ը} `Ѫ>!acr/vm\>:]&_(G)Ird^.[tUv͘G*IlD%##)P7D`†I%$$rd`r:4dpǑZלD?Y rɡ(I챏zt%3H$ϓꧠHR=G#ՒF{STTA-5 HӐtL+eRndMi7yL1jֈԦ2URԪZDPuTwzU4SB՟U:%I˄ִiEj+XZ%U1Y\tWզcek_JWu0р`er$ebؒGERPPֲi#dYVv$haf5 TJT{.6!QEZ@.tkh$Qp0\Ըo;\פ*YnD] X׹ͮV[0Ectkv UyYr[]coR\|W 2 vRQ S2Ӿ7oY*Zl6_5U,#j`zbu&nqTR<5 VPRWW縰^:+[$~a.$2H{6z-Kib\*rHPe'ˀk{3W"!3]wI\c8ONx~͐r*g+Iv hD4(Cls/4̉ݒ`.-z|^tD\'+y^u][@&aFy h7;g{m.[ּ4s}pf?TWdYwwԠ-*XpNlSZ^/>'džnmx">>;fѓد|Be8 Ok[J'uaʧ=.q۟Ogcԯ>skϺ}8I?ؙ''M>?^N4p)gwwV{%wqNrx‡wpfy!*8Kqsb wyXq xw%C#7qvWg*g Sp*Tgzk怍26zeVsns($*{zU~FkQX}օٗ~}dVwS~}l؆৆fxi8Wk7n''eon\KDŽkW1d'Sxxayy"i}GzH+h/rÇqXBr<mH'G)H&W8zℴ:AxBy48IHF؊<884%@g{҈{ŇkZ(P$M1thjlxuǎivHhal8x8}F7d6 ah'A+㐬W՘rHKXoDxl(b 8xrh$ȂGA(5 iV3q-&^OXc9I)|U&Tc>H{26Hy)N`E(UiNe d_֕ZǏS'g&wI'χiׇCag9ݨ|W٘nNj84QyS)nGZĉVـșyM곒n,ȍy2˘4UىxK\VǚӂÌLɖy-b|fI㨛NؐJ|ɁIvi~uIbz9ڏuXjdy/97H|)f` 7)z:aީٞvA)@Δ/,yK:qB893=ɉbTG;zXÈ[9v8-JORx`JJ9Cn%_I*~* jy k>:irspuZuɇy u{ڎwc}mZ*ck zm|ny1ٙ8LQI[ g#j!J˩y(A٪yTlX8(WoÊB8'*~q3%'1Znƫ Hx馓*P:W~(jC v:a@NzeaE`a` z!U{Тw  !K&"/{+%. ɺ '" ptfbi@^@гGQ _U2\1s ZX!QyU`? )i!k˶#ۮ R;i|"{˷^ hnRK&5['FA+P@pKJ';p+[+kc / ŭݚZ[|gZ6e]m6uyO׶g+eGt4{Q[緅kT۰ʽWGhThyt \렛u_P(4^8n֝&s<~-#e߄&K+GMޕl$vh谋身Wb9..sF]ӛnLn^n^gG.]7]p7ma>ԶN!&N٭njN53kjXs.uޒ#qz^a^O9P.?e[ FOo)!~͎."M'A)E;^־Xhw(%>@]?TP S_%e/_>G{TO?mOd/ovbnRlRy>V4|6lg:6͇[]؃l /phx5}o(Oڎ_>/+?K(OROU2Xe!@b|t.]@(0O QK A$dC%NXE2lрM 0cō9~ȁ%OΤYM:p41HŌh2'Ý.}})ˣQN*Gx2(ԪnʺeQeELt1Lqr}x['Trݓ~-0_\ٲúm^F9fΡESt7Ofzfj/î)!,I7Vժ%kZ)Z #JHq"*1w1#CIɓ(S\ɲ˗0ւB`B9`@&?ZСE}*]ʴӧPƦW(W zٳhӪ((6VuI )Ɂ0o LaUԂ_,Uk;0V9}+_n|ϠMrc\ y]s Mmg Z+6ie 2IP#fLXəُIjΚ&)Q?PfIgbYSJfDgKRf8 JHrFDgETh}ָH8iB~Jߨ)e)I: h**E&sf?03sϫ Ov)h(";>H$-<&裏:#O &ɢ&Tm; ?nz .HK09lO=:'&:̠F³0ñ?ofc,gԲs2SΙL#MvB#Y#u?*?CÛgV Y^wsYh‡eɤȞ ގC&Jgc};bC3cu$N,ߏi^y[7n';ww{|4|'O=Ryq?i~vށ=q(y#'K q"R@o>q;x%<Zd'(%$]F #Bxa᭘%/˫D8'%j+"IJ t,⇆X7-xb1/~( B}8lp\zCx(XE+!T[h ^./QP>.o\ĬPQq={20 (6*-l.R Df5c.E>)&I>qRi07ao64Ғ9o"si'r$=]b{EgKςB@YBЃ: J QH? ]IC+꓋'*(GaQ4%"#4IQҗtMR$5)Jz$#D4`axAEy+0թ@*K5( T !XeLg-ī`}jI QjBGkkBzTT;F> @C4X v~5S2G b'ò@,d#;TCȱfZUF% vbY;ؖ( 5[;˒7½5TmK:1*tQKe xWwizWeyw-;_FuZk6$CVUc%oC"?x$ ^0~[떬+J8WRE%l7K`jT*Y[ˮ8-gA+ϸ":c=|NȞ1c`m8%֎%n!j\#Srt._X$.( `j\h}7,<|N'ztЄsDym {2XD~~sd6vɳsU:~qe_ZFᖭ;$igPMiW;b\r{Ssi9؎fn-|{n>7zxpj\n!m߃pۓޔ(-q[T^7K\oa889j,sc\6fomnQX;x-cwI}kFQ.zlg;_^tG|W?Otow]Jo:bxSw_E]e@:lmm~q|7}ɉ7y|f_ۿ??'$'wgR8zTv|&Qy6~,rOqrreGkUzw՗׷u灇u{b Xx}'}B{ȂP'|CAWt2m$|Vr&h}}GuV|fz ]i_'v+ ~N^h>Nghi$kHhmOo8ie^q%sUwoy{-؅tĵ~#z*A8~_$}uȈvjH({0B{1~{9؉]uu'u^(mT(|vwxqLhS~WvQ" 9wbx׋HxH{(lH8{wwژq؎%HK7XXWGusH۴HS8W|Il46}HG|_L'X9[hSzȐ 萗7ȑ1yʨy6)\[8,{QiIMKiHSSQ WYTYvO)U6_ L~X|hnǓ'1efؐLjuKH/^ XWj9SWc k W8$P|!xuYwyuvɌ}(HWȁm燯irgii ՕwF68)Pi|i˩)2(FIyHI%rm"՝)F8IRY%фڹ)8%LƉ 3~Iփy@Xfy:칠)ib+qkƅٞT*TM_'aiw-+ʔ/:p):`3Z"ʟ7jSre0 bJNho5R5v=J&bHH)W@`ub_&1DjWt#[]#)X9x!k::y N6X  'C*9_NZ<~ʃ #\udJvZXjy%:fgS@p(:YCQzws?oL SiS㊆ẛʆz皛@]R@I{3Mf$$4Ny%V 49kӄ" kK>{PAW P)y)u*kI,k[N!AWC[g&:7<%ZH&grxtȶz趴`گ8׉՘^Lk-( {V tM+# g}[=K+*۴E:T{% 2<j6Z8[|tP*ފ.:0 2*HfOHPA{wHk* sTj_&YqՏV KsZy˸Bc ,e: éuZ<5jŪ(сKїiw)ґB~[ Mcl+~ɂUgVJMZʴ\ҪˮZ L%KU~@`,֫|۵ݛݶ - S}M͢ѻRB"AK|ǥвY~0Է M ;-!K݂uݽiT-!}^-]=̌ـM Ѭ<!UɏT]^M=-޽KN&UWNRY·[N_M~Okm2.8"qI!m֍g ۤލvO 睰JB( YM#퍄ߝ,-`ΔpZ5n~%*.ʪ!'#>un1h$/~19#?9;ά{ڽzWk#wm # x5'•n^B#GZ]LROP_-oWY PO?d2n!,I7V@* DȰÇkja@XjRQJ- CIɓ(S\ɲ˗iPEL>¬EF,W ğe`*]ʴӧP:aUV2^UL'-kXhӪ]˶mC H3\0daX_Lߌ:%fċ?VjJѢĨCMՏxZ,LbFD(ͻoħ*p@CLnNXePrS )X4FFLO˟o2 (Ah߹.rP?g00nF(Vhfv ($h(,0(4h8 TS=H؏N"M)d[H2dM.jEԔ'Z TJK\KavԘ-9",i&Slfq40ՙҝxIv8IϢ-ڏCD ;DiC 6j>$iI"*ChB="hQSiCje$O:ԫsjbZʪ6Ь#}j*>tlCѾDl߮-IF[.C֢'n2%n>& D>㱺.f0ks0D乬P?@OC갛+ O=&oO>~9>#\H2L{qݕPO<R󲔆됰: }7H#O;r3Ч|o˟ cϰ>/?{!Ncun+'>e]C=vVQ yC <6 aW\,s0|` [F}$=_M =4c 8Ya*pCa Fr+ S$?#G@AP -" z$JTRF/ڔ>$C@Qm4K'-iR*&TP.]SL_JӚht©Mw !$OT!EQT.zjO_"UUu,ՔpE_Ij"5[:SZʽ"HgU&ZI §:5$B$j}.lgNx[F`R7slCY$-.xwRMk+>D7H";pWDQie>fn:6Ezӷ\!nbqQyΕ{w>wzz[s:KUOM>etz뗟OYC!ʿxzA7?D~Tцc{Wbm6%XmHm؀ǀ(vU~!}7vi7sC}_wꇂy+%tlp,(7F}7qZ"Gi=G{2y灹W}@w_4|X&|rS/|g'}TXiϗ|(s%ug8H:h~]u}`7`~Iu5fr8 kw7w~hSXn(w؀iXwshxxXFax!yyORth^1 zyq=hh;pHzzngCjizJjҙVUh퉜y I9Jiyxɉ鉨y#:UYw'Z/)*%*1:+Z#4yv7 ס >ږIi _թH:'a >(5Q:Ii⹟ wrdz|ɓniVb:ɐ jtm:ZQ:OzuM*etX:;IxWBڦ9!٢w+i%ŪJ( Y a'ڣkj a'ƜZZy ׹ ٬RZ{oڄqIꉭGڥ4bq~.^^} MӨG>X^| i<ь^Ʉߗ䢽Y1I+K/k,*4 6,)F3579;u~mĽE^OO܏NUhR>߄ &Z^b`.J8Rv=mYmsl,VN]7n"?qڜ0Q#"Tr>"* U-Xt 1 bs&9*; !>tPl(oI}Kɞex??) KV?rY [@5M!V&j)^FLeG_!i{x1!s8R+sT&T7_y!Tv,SBAhe/oJ1L!Q/}[/Z/!b/@E*( (&B*!,I7VQGrNPV#>@ xC0š?BPɓ(S\ɲ˗0cʜI&-YB1 c& N2TPE Z4鱦իXjʵʆJxE4(⏖J٪^˷ߓ kQlPd5PdܔA@"˹Ϡ6U`G`cBr")N8YCQ P/Eq64B#رSfat WnD%ճ_>oC9cֺy''Z,B+SN R\%.5tCH,Am$C`(,0(4h8<@)DiH&L6PF) f&TfY*a0r`(i ylɞ&)Yx雞砞 Cn衋hpLZ?gO>VUi>@j*Ij)DjAzR?2:0I ܦ+'&+ZҰ)O$mK8kIlWvgh׶k:㎗.A 3>N;=ī+:ę/ȣp*lJ\?'ÍL,h;0AA4*B+ >c><Ï?o8 4`|4bS&أ (Q3AWgXzhb7iϪ;ϰ Qjdٚ:9AǮ:B %ʣ&](O<-iAH:葺ms=mB;JzճuI 2_+`$$%D%Q~t\5J [TÚĤ@0[Y>7ͩdZ+Tg ׸*ծt j!li[ymR*1nv̚uYʕn#&e ]%qH.x$*b^ 5Q(vO )UҖRF5iEZ־1}-tF"ض ngդ>WNծV vPdun,M 6nJ 7(&j;w_QAo fR-E3:L~tx#m)h|WK'g_n3KMeNg£riA#Ӿ{i=⺺S=3୊X xC TdO\jr MmQޞ4MnH돿}%liHfQ2lbɗv-m~^H{wpuId9F á܇huWk9"Z巛jB%Moj7܍67m,61s~t=>믫izk5:wgLJ uz"S<"U8Ƚ~,jGﺲkf3=_-G ꓜfwEA{v/<1"<⁣x{HlMew\pri[VcݞQo׍.Kj|U`g9rݲ:#rw{Z{ŧ S}pJ߻J?L|+^{uV/8{ްgA?kamGw!w5w,7&umȧzErVW}}&؁ } "8\QxByX"*6k\iX~z~7\e~3(IU2({Fk7H9wl{q/(|MHuY|w\hb(XWqhXjD㥂Ad6dW(|W|w@3|%hŃׄ(A؅G8bJr&ga|+2uՈV(VXȉnX}pxц؊-񊰸HOrn-q㒁PH~@Y58u4eSezQlfaV(z(g#'Uȍh'eufHy&@}xfh}\#tXWv腓&zKŌHew%γkh{t؀#Ȏ _eh'y8Q6Y*$ZIs,1Ë$^HtO z9e=XZW)7Hȑ%<$^a ’hŖg Ő%)~1ɇ?ٓ5ٗ9lXihFysEXu\N#1x`FaTI_Q&ie W8$iE-b+ۈ _))%94wY(紜8 O#SYLa'љYIb-fXTiTYfٛyY-496ɠ34:e 8VPvyW7y(:ږ*p7:9ڑ  hTDZMyߔJZzOZN#ՙZYm9w)&ȸzu!jI-z?^ L/n2ٕusʣA*ؤȤQ:cMyA.U :x!?X%Eu@.z`+n"K=3E!Y0és rj:+詹`'ʪrЙ7(EJ'׊jY@6)*jȹX!,I7Vkja@XPX#J(@s€Z(Iɓ(S\ɲ˗0cEF,W%,]d>LAQӧPJJU*33XWBACnT]˶۷p)~ Gr8[KV3kÈ3%bYcW,&ϠOb$V:"T8oMm MTc "_qȓGX4F'3mOËO9!V, ւϿ(h& 6F(Vhfv !)mb!((b("-XҌH4H2ӏJг&AIzhR?R$}n* ՚%:ߛh #ycA%\ѠJy(%V%"yJj.?z*IB:ϋ裏:O>@*/"ϲ##Mkb?|JR?  s=D]όRTF[.K/H.lZoapg?0z;" =*O>(ӏ?Zo>KdnRs0?Y7ƻCLLw"|CM?&&Cð}&3:>]d'D:[,?d#?CyDk^Uk9n;>ͩ,s_ <.g{|?_';x 9E(jg/V<[jbs6jnߥFG7A܋h7f- _Ȫ> O{ t:-r$FͩX^lh<=!B}$Ro!!2{\kP! "Q}ck&G?P%G R+ @(6|װRrS4Q(8J_rg$;5,bV2%}a!n$,74?1o)gԉN5]Flgi3<\P>),zvӟt=+π *І:C =PDږȢ FьJ,bG)ut<>UR@/miLbZ#ʔ*c2ρjVB*7.uMRHWRe29`">$@hmP2`Lx: 3"]MjUM I^P=CW +U/Wn X,~ !"ݔRK֩@*LfV{cgi$ Q];4 *INV0Yy{ӗд?ǥZsI EwuMZf7խ Zw)OϋԸەxv[ף̭ixWQ m'Gd5keK$u6$GV!{% &_xA6ɉ]\%VΊdپ"鬉>8A`-ɏ#>=ϐd,jkn7_XbSɅ0jɫ %Z˟-l[Y?wD|$%9iO Pv8,I bB3zCeyt>LV5"V`%eV8͡JI'kHWXOm--g#8ɸC\T<dG+]{¾Ffwݓu$e1a,dlPjl UY_vlq"Vh}4[(|O=t@eI^h~M{@~*`P9/,W rk޳1C>NN9\<>}t{Ǽ>Nic\"`V.=st_ԾK?qw;z-9W̪vSc';Kɣ|җ;>k^_{ʭ~.[QyxźR׺.smإlߓa6g@o>bڃ={'$쇘su˿2Wx0HM] h  Og*hb7w|qz}7p7"zrvxzz/7{1j gy& W:gk9;ȁ={D|F|QQcW~3hxG}P.E'm'sfwmGz88%xnrwx.gx to}+|F68+zx~wh{V_W|I~ȈCTq%}qJv0(Liwko07jGcW脆slj-x𷉺؉Zׄe||Hc$g}6nW|?mtՆ lHes؂ȁuvhfqՇ׈v"qLJXi xf X׎^hnr<H$ܨ,Ŋz8cmeq((up8:< wYxe&HH/o]w'yiaхAxwevy^8g'aUP IY{vvxz{}חuGgYw9lI HckEYQiTjWU!x&閞AɅ d8sI]rII}>ɕM6h((9 H9gD[x%baՆHyX|mYu)uM|iטoy )}Ix   ayO8ϙ 9qYʑɑ5haiw4Sx[2VQ#G}IY!ٜPWXE8:xd`YBG|z vºZ󶧅}u  gZQ}ʀ p&!xM*dگ *Praa:?KJlZًZ:W๣czMɱغHsUt/0I&=ZՊv+[RJZ`*Dڞqy jyxX+e庮.E7%kFapp +%JszڰҊ B{Kdw [+om@{%K9[7b𨅑K6vvG3t+k1{Z֩udh&V1CGU\Ҵf ݊˟WkƼahm ]mKG˽n{suu+ɥ+ 뷼ˡQ|{YIۿ.ˋkẹ۹AH  ̸1QܻDڳ+kuZ*L'Kkx;t ;o[?=ܟCwGw;^K 1r!\&:+ڷb e";8|n I\oYL9*ھɁ1[Y'sIjj`*ondU@s|lNN6v7Y`gQJ~⏵ۤQnJ79~刾%%1>T7h^gk.L\[qڔ.1.T޵p!,A?V=@ c`J-0 C3jܨQ BHI8\ɲ˗0cʜI͛8s"Le2@SN9`@$YXujʵׯ`ê?Zsb"^_a`BҊEx˷Z @(2n p[k"ɠ~3k̹3ZHNw N`Tk,UkBf)1xͻO@&lآb_-F9ѢK;8,hղEb) R>j4ZL.2u!-Yol%jOKP%0@F-$R\I,1(@O @1,0(4h8<@)DiH&L6PF)TVi\Ҙ%N[v)_hXMgfzktN'Ms֩gowΔ瞀r֧Ljh_T(lN?6ٓO2Q?Dg)MjN(Lg6:jKjc$i-*꠭JndkKm 0zJrz,3 SzJN6䓏;-I:L>`I<2[? .Fs0 /BtϾh޺e#_O<M (k 6;_n£Ï".0|R>N?&` >?'4B27 4/[u_ O',5BKOG=5Ք=&c* 3B5K67:OT#,}r9'ɓgTxX~>q*NFcz3:cs&gIȩKJ;O͓܎iCyZonzkz<=o}?SOkB 1;}'5#  W!Mt\e 4LhBJwĢ.@hJB0)!åK"D UN 4J9](LuLh;RJVċSQ/zԤ SJcĨ-BjPMA[UՒȪSʀдk߄`S)0Iz+ hX:. 'cqX%AZKetYH6t(hg)zŰX&KXvӥTj][LԣJJWR*h ܪ?-:*gָ0)kS}ˑʅnFTG]HjsaDt%/+UW, `f0.Giur#]FLhaV{*-VBm:ºnXYFԶGMqE"ԤW-W_X6Sn^UXQSӫV6LPw[$Nqt$oEu$:9x[׷bu7`|7pv-An&|h$ZU6tDIKҖTfگ;t ja:-K7=d%@md$VnlfWזrIg~m`ʶW=i=;X~/LF?zH 3[FhqJ~7q+ox˸cT6RYUhw,MםY䚔RoWC#4Kӽuu`7U\ _ָfT&VtMg!`z|'_U{Cgk9rt KRnn39Kt=cQ뭦7]F/y ?qÿ*?O3z% ؤirmd?}(?x:ni7x#K w(;c<ҫŸ_|{ģCR2 HINWKSF Z%]ɟ,qegb~gT昃9Q nB'BvN?Fry'D3?Q=(=T2Uh?N$yTD{ħH?:v0>,(SFZCR鉵FJꡉd&YR0O003 D 3>N"Dj5n,ڭ?Jˢ=\ OD3ϳN / @nْjڹϻ#. N8JP?B P<vk:ó˛ˎ>v<&u^[yJC_3C^jnNh}3/?J(X߻,OSbW޷> _le!o~Ga4M}?;ek{Z_d/uk+H*Ů0S[\ǣpJȩq(!#P"Z$"Ab0Q=6BT>5,Nn"qBt)Iɾj q.$?og@ΈwK YFtՑP}tcErG2;厢 QqߥA} eDW)UԢ HJA#MJmTR"tmhE7 Ә䤶ijjSgW24ݭr2;u,o46EL ]%` \|gvN ]5\3x3T74Z/+r&Rm*[:>wJ .$X"]>x]Wz% "`#+$x z8E L|x@lg!Z;jƷ1Z=lK2cfS vmsX@Y7 *~5-nuX])0 p>9W |ٜl?ӈ@;-U75tC}GDk/L‘X|  5GM kZu+f?䯁cZR[HbOcǛ2l{ҦF7qk5'i.ѽu7mp79qO5 >!V=B4pmWΔv Yhr K7vS;s/goؒxt6 3Ȍr/:款i o"3B:td/zX~y Mv,tf6䫣w3'-f$p36 Ϫ-Ҕ'CKɚ7D9yNfaj'DYbxyVR(m9Jr؅_Ya9;jةکk%zyUO9-YTzVg|I-ʛ"xW ey* C*sw;,q Par{Ezi)I :Vj z ԨVE٩IbjM٥8ʤl6*udq*ڠX{VʩMeƊ Ďo(.z8xGut}:sኋɠQojJZ(%jzZzbح jVQ2*$J?fJ0jxitZ*:QRz{:E%;m u)KnɊS YuZhʭGCǯdq ڮhza_[Zzh .B;+Kr auK$:;Ϙ{KlƸ7'{;[x#˱۹=KpfdE+n fG w ?n9빳 kKIO+xy\^Rk˫r ћMks9ۻʶ~_诨{xۨڷJKi,* a `[{tf۵6kv$&B YѲi k S64hkuK+{[ӊb[ dkk%{隵ϻ'x j븮׾ڼ R3Imm+TDULm6ٿLIK@ZfUcv*!j vlǫ77*4۬@Ǿ*w +|l3kd2J+z vƍYĿ{󤨟ٽN Ʃ(M7=lmgKP5Ka0誣2bW=P !=.  q,@D,qyRm U$Qev@0v}2߼(.œ] a'P!6"@_fRAn'0FY=>$ r./@4^V>hΧr2͉wY]I: n}ޯ!+,I7V)@Z=@ Z #JHH%u@Ɗ CIɓ(S\ɲ˗ 圂U*I>S ̄^i% ZAɴӧPJZ&!Q3nuٳhӪ]KK4 +t,È+NK՚'BrBSNze?̚9{^L*F9" XZ_hf {M"kXba2ZkO[iOz7 +XLŢP8߂ 6F(Vhfv ($h(,0(4 m6o>>5$bE&vd%-iZM9IdHV#iT}X0yk fBjKmJfZq^YZstSy?iRf?):ճH?HIJϧ09ZҦ )HdO>*RZQfQ-)DXR?TҦ lH櫱Dώ$lEÞvK6YKKjڭDf+~ێ려OB~Z$S<+I 3003 F>Ѫ0&'N>0 ;o>p1Sl1J>D0to<>⻉0K χ>Լ<'d(?üӏ4& $ Ϥ#2ht?DTlҊ;l:Yl#7~<=l/wQ=h'&`T3|XO,O>iڳpcwCpf9TVu% `+;">ӰlA+u6pc)l^r6cm,/- h'jņCGټ5Il .MAz(Qr]~O ;?wsMgJQcqYs\-YlԓӉ6oZcvTu9ZR]%s?9] nېG(VW>>&KhNO\cN=QƱƫ+_WS:sd xPc.ԥJovgtÈv<@R&Y%1x?wɃ0ĸ}%/jeٖ\Hahyg8q$DՆcYz'hY葧xrit#n9}t@In5%ɘvhEfś9Wơ$jD{ *8z=8ezZ|[Չ(|Yxy9sz)ȤH)(|y498٤~HjEB5UY"4{فI&mS&Qi17 @Ik/?ᘹH$jhMʹֻ\fu}kܬ}Ԭ˕,}΀l,[J̜RL ܰWK4l7݋|N׭k|+o@M=- 룔Ǎ˘ٛIr Љ֩}lZҕt ]ʴ "ͪ6 ˝] eAfߩܱB,yZ U<ZKLվ=*]L\p}mՉ7=բ'-|,Z?띵t ؗͶg+%> ],k=T}1.&:ڬ4.6k(}ӱDdwk>mDm.ĺLqNt=}6d z{>_![d\u.mWíu;s>d% M* ?ޥ^ݶ ,X旼=9M׉F$ۋR%Yr.=ނ ݝ /FoO#bp+s[d\M+9[._}g$!̙N>|oZ^~dn|߾؆Ͽ(O /,o)?m~(x.Qj.!>?a/ܴULHJO>_ǼzlD^]?~SfUx'_O  $X` .dؐM@@tXEfQᦌ2nXI@. D"ɊQ@͕4u^'Ȋ@ pO@j0cφ2f8BWK*UkC_+zjYdV SZm|;Y4%(W޲~[ت` sD wƉ%1h/g-f.+)iЩ٪V\1DؙQ5PA3Otwo r폱{߽Ȼ0 #68{ˡ>t8x^/n}nݡ77>-C ̋=͢D.8ì;(,r@JPAKM(xp2 ([04P87:Q7w[hы9o-*ǝ#{R􈔱C-,&u Ȁ+J,Y+J+;3|ڜlN$Ol͙ !2,I7VaZ*\ȰÆJ `Ë3jȱǏ CIG&TBP$F9`@ƥ͛8sɳBZZrbg-00ɴӧP2d 7e e\*L:yћ,>$%D8%צFk %剙$CjaFM>ISFH{:$sꏡn"O3003 |hO>4jB裏:ʪʺf&O= g>|(;E~? $;jBqB3;TZ[H03@Φ#ChyAW? _ࠢh<7}wfr:g[Iڽ36*xkZP27yM/ڳh?$N^*&U'jyB>M=~pno+?_4=Cn2NoYym)7< =O |>Ft;3\풄Ns_v*S;I`f:4<2Y$ؐx~Urf6GD2߹U|M{?@))~j3P'tdjX= KaY?zyj Y NP!Ś08<3TH,}L,C۞0 Tb,PR&mڢǪ'MW% C9F2 xpd93)MꇜacNJ)QE*#Ro̓Һ\x;_\t(} ,xJXlt&(xN&3S"7}B#X8,[ә' #St N$ވO#FiyԎ;wISs>%tNazPME4 B+…b<:$G'RQiIYzR+ͧDyQ2(JO_S>7-*eT :jHZ&OqH:! ()O)  1 +P s'JRP CXuJ 4N& W54>d!ߤh7"0D@+]u ytT/y) @"PRLa\Zׇd @kV2{EVlac-f!\辶aC"*$:yѢ{6&#vgTv /i3 zӋ\j$HH\m2Œ@~_Eug%`x*dyWݻ)ZRA6]?Zl$1;Uֶ&tD }xzJ&^i_uS,iz,6׿:^lw/۷ey-iln96Q.QW9[o qRm|SnK;.zNjqW/}=vkth%9?۫o$ݥu=q:7O|=t|!)< QpnF:-,Ok?4gS#}x1y/=czik[e=kݜԿ!kX{D]߿>>Nroz5252YYj=?ڗk>%ij{*߄Iszw):/뢟OGxjgzy uzl'n8wh7k_ Ȁm`}&WvEtv'lw VZ" Kbb@xf~~mn}4yg[%3vNQHa7IHcOx7wzP8jX~>Մy[(qSkV9y;h_b׆gRxKp-wt{8{9ZUXw%Nhx}svf47?XUxYwPR=aL%\؈v&]NVu Z9qxKR9(j#/j!i٣É ZXsȝE]y煓9T&PIɊt:zj;\Z!rw^zuy-mj\IZv'TjNʧ wxR)H_aYK-Z멢u':Zك)]1*٨@J Y$=As:jf9va(rH ʭO+ZqpWZo}Y긒jZ ,Ǧ!q[ֺӺ!&#:Y*Zjj v&˱ 63I5頠)˪٦ g*OJ Ѫ>)9;o'.r ۱GڬIZ=*H8Zؤ犤mkbڵSqy2KxyY2`:fh "}y5٩¦7Iyg9ɫ⪹f9[ju[!GNI먚6J6+{j{+Z뎦Xފht^U$ˑ{7J8Ii{rZ;[yYKK|*K̿~{pll*Wp ,_f#^kշf[ٺ۽z+ks7ܾF"q;D|F \ <õȲ+ŭdUJL,ўiEfziLb+#Jmc,f՚ʃ+Peg{ǖ: 渊ܷz#I,{Ln\>1XkA<i=Q»aAY.f)7VV ák= ?+ĆvǺHL>ų;PŽSܼg6\|YΕQλ<̜=F}|vΞŜ 8 Kyהּ!nޮ.=Ryn(. ڎlڱD㍽:8N&N ޴R" |l":~q[乬n=#aϮ(T#}-"̺}4|W h Q%/x\ nO[ND ξnm:놹9Y1~^?ޖ6^n0밽?۹MϪJoUn ^?ͭ~]_~j_!9!PkҾ!GmEI /"ƾ֙5m?}vO4= ,E{=;k,|(3?t><ܺIZCOҫ/G>^72QS^{!wx|mPO=' 4pA$Ч&p.O09 r0 Gl<\P"C`F%¡jCh$Pq7uE"2njvdL)%2x%@r1ZL",[T谮jdK\rL9lRGtN!K(Ν^ҲN';)5Sllt1AtD7Ӌ(6@,.}1MY1 $7m+2@QFo@؄ud RMU8s=a%:S7K+kg1Yevg_ 6S{V3P >Lu+jwp^嶿| W!,A?V9a@@-PX‡#J81ȱǏ CIɓ(S iɚ)KDTPE A@ JѣWR^eg-'&jʵׯ:mHEYEM`ʝKnҥdc)N8YCÈ, N ˘3+!Y ]"VͨS*g9QEB+SJͻZp h|l1J9УKNسkνËOӫ_Ͼ˟On ?t`~BT-QA 6G!G֗Dҷa 7$:D!·bQ&gc}QD#?@>N?m=~ԣ$D3R9ҒC(CXBIr8I YardfDU^I!dr$gP^tg|ܚ%%ݩhvDv2gQFS! f?<4 > Q<XY*BR 9+I ɓLv#X>`? Ds=BtfyO k>ܺU B=#O0by'--B,%K+;ON%擽"쏛'X"jc>6;ð?C\<"d?2B,C4L:LIF$j.c~moG*R6Mwz^>6U'S%A\%vpA.T1Y {=10ڋ`ӆRudVx{KX4a|׬zc?ੑn:-p? DC"V=:CeQiLd+)I2TJ6S -O28_31DPԎdǘ43#hjf5M Us̑2rF7v'.Z;sqg|O>Q (uA*g C;]O(` \FZgH:9 X 4h*8=< &@LF`" `vd nQy65LDfZӟ0`GȪ/jv4ԯRdsEiYs /:zNPDT@@`N$4k. S>dTYfVHgJaA  hgcWf/t~j{֟ |ہ%nq*g*w m.5 ۖǡ(z6QZ(YlA1/uҘns NKZ2bZT#QjUcSժD,xU:Vyj%ikW׋J<K'N4jV[,aU᫨Xz֧~H9\?ѣd,1"j|WevmZ9y/lSH,q[ -2{ވ~7%*lyW78v}#Rg@4=)Hp,?gy]m=DѦ^C@NW4;bWi9视m t$nu#sն u_mXGyrH:9Bs5Vqѽoީx$ݑ_:28.{k>{=\ $r&ns1sԎ!Z5qW⁽2yATݗߤ7 t|}K7~+)y]WyMj;S:csXYxd^~W%f_XztxorM pڅy|bG^zܱ#׀~$'wyކzz*'#2&{w~g|v;GoQ|ijՇu0|(؃[k8YEt:<Eᗃٗ}*gmE H!hqrP ,erxo$n7~(s8 hV[g|H xl56~RxyjO!Xt&,y8A_FNznGvNJs`a}j6|сOv|||uø^X{'7}(]χ}GhgXo$w1'ฃw h؇(w&UX%ŏ#hO8X!ABaS^{  HxQ(aWu肙rnh{oHTBm[E2Y,u'vHzGXkFuCָؘ1ܘ/]$t8W$W8]8ȇkɖiI؈Hh9$GgY}ua);d؜RڠKY!5RKΦ֎xֹA:pCڝYPM[ܙ4zaQ pW9豞bZb_A"_j^rE+(`%`Z*^j-0 燦^XZ K 14"= ~p}_=Rx NM$a E'_*͞Ҥ&-M[!,I7Vk9a@@Z*\Ȱ!Á&<(k3jȱǏ CIɓkB#ƠD+[X /Qɳϟ@rt'љI}HSӧPJϣkMS`ÊKvUEkUARkβpʝ{ϳ疮߿'۳ag(^,JǐҒET;kϠCE,<٫װc˞M۸sͻ Nȓ+_μУKNؓ(iv=~W>^xcx럾_|y~`n5c6to ږO BVlt_&!n֡N!5bڈ(X։CF`Oh;6rĢA*dcEcFIF5S.*4 Ft #FMSGԤL)GϚ]V9#XCune}lW2fO:$pvh}:%O>X5Pd30=9Q&ԥ(>P?ڎ24 ÜN>*<Ы.; B*ꩼyyʚв cϵZB{M;맡nT> N?wPr&9'<|Fq"̎v 1 OB&\)<$ Փ.nl ۆ)׸rB;\˰|*,/̴]\Yd?kdf'JR:}_P? 3G33כx/n yҪ]gރC]0媖MmŎ'*^_ mɸuHl7<ݥ:N̊$cEwXs[1I|(O={W ,+{?[Ԟ.{ݭŵ3h5'٠3ɶ?D;S64UF#-~k 9\n_vɃm6ť''`kݫ4zP TR:~ɆJLe;`?ҁSjS<"l~C,"=)qJ=k0]F!םXDl#yd$m*Ud걏':]ǗHvr#v>db] !E}kV٧MC.# @y]qS,jd"ILjm76,e"%,Ҏ"i&}}a4L@eTF-gTй8jn9˙srǛ1'yP|bh!(` FŠɨF-PX*ݨHG҅QJcҹ)CҎT(!eiGPFtNiPrZ¥M T(5lh?S45(Fɉ% @B4`uU"P[J8+κfĮNZa T !oE+l ;B N4@H> +2ʐᶬkl[!ApkBۍQjZܖv >6UY/D?/tm) >&[f!-}K*dqe3My T4f{FB7غ&   F0 5ğ9q{JSuE_1~d㢄;jB p\qLmdXdE4b/7!*oh>[$@i{XHirX3?!_&mdcƯ~ѫ5AX:oy/{[j} >zˆ^kh5ELfy%3 8@cyќwҲudj o4Iuߚ,^y6oLlcg;*r?-i`F3T|i#{.wQ3;Ac8VisߵfßUҵX8+c9olͤ{e@!Le[{`iERxF2yH$;\Ӽ'|91ln{'NqeeQ7s筣}ɮށe&qjenu'YU{+|zݛl۽ޢ3==>l?f{j ;neioݞ s`XtuA_l/Cr2~7Yk5h}y !pn^/R񰶶4\?0$3Gm+$ MOZ>{=x!|y'(UtfZ}N_y\gjh~ avV*Evv  (wvqcwgm%|Ub~8w6R@,B(`6zac7_ק<~@nց6pG0|Tׅ:N|gUtUq8vd}"Χ!{!gIeq UOq/D}"OXiarfgx|[fsTH3WG ZVwVrǀL^dauPR\ƸzhȇTi'ET(vAd_Qv&Vfw5LQ!2Xw@px_͘GZxъw(bXXgwhwel8F!a'Չuy݁uUa2H^if{sir%{Հ7;1}{ʗo:ioj{ׄ'ы8Yy8cvhs自TFi I%w XX_)/~sUedyA_+rA>G(H?xY^6 QUvwg9>6Hq!Zbu yY0iy#ؗjݘh8޸ ic)(}wa/Hh8@P#8\~hI`qm8Y6 )`9!ؙ _eY5‘՚m9.Y隘E~ꦌiT3KPRٓh$R< O@ H9E -"0 p Gp㹕ѕ`Ia*h؉sVXof*ushA`$YQѐ8lHiQI9"v,:١c)ٙȄ)g׎E٥b^Ѹoӛ YnF*(֙89nݩgl! oe,I. sIalZu<* Ѩ LxMcږx|DŪže^  Qaיf2: _b*«CXz:@9 BXT0h読I0 "Y#i 9ZPpPל*KMl&{AfîRjmZ^YivVs³Je( caS[W4Z|nڠ?;|_|GzIyc;NYbz\)*X;YɰzT.1Z^[X犳>ql:ʗH;ACRJ%[}z1{vB갵km+EHሲP^ۦŋpZ#;v'K{+z;KѺ<ۮu*l Oa|jIm+5F X"ɴʖjnQ{*Yx'Ѩ@iKpˠm zg !̻([^#_/Z)Z/ X8=̭ܣKBJIL% xػJS uU:D#ٰq^;vɍyċd+ǵ[!$KjlŴH<ٹ ̜E**KL˶ēʑ޹ yx,:$4!Ъcz _nRU, l ܆7Mܿ;<s6$q>ܴ'\$<.Q|@  9,ZEXf)` XΟq΃\Pi?}j}K]D|h Wx_}k-e} Nc>~)ͼ |j;֏<>e&`_}._=-rޫ6~~!-Hgy.ЮJ }Q֬iWbӞs ]XcnߧF}Z>bgC>whҖZl~e d.w셎` b&pΡq.^JoNn>eqXh vB~L_upbd1>>i*#NB,W/rK|dEj/VBtp&=RD^qlYum.\/5iȯo.UH86_}fo!//}C￲$P2@ThA00?ۣ 7˰1# DLJk1P5FPtCz *SpJHIT( [ R@'ȳdI,,5;鴐$|ҥ3=&!/C}l) [M ѭ@+7l"D@TG(-D }ӾBuTQ4Xb4k,9Q-ZU{y[pVM}uU؆opnq]vfIˢpow=M?,|dIJ)^wvo}Y=C.~uЂO?nLɟU罏_TqTӍXhKT({w _wGtdqYQͩ^7e0\p^jX%ŇB~ADo3C1|k߹0E ` rC+lcN66UPr"w=RC^Ei:Qf];%*AJXr/!,B>Vk 寠S-)0ˠÇ#J''jȱǏ CIɓ(f,HF,W 3sɳϟ@! t' r3ӧPJq/.YatiS`ÊK֡ՂDCVW+ʝKȳ0*L೨`pLrOCi)x"+Aib*˭ӨSĜq4Pvcոsͻ Nȓ+_μУKNسkνË ǃ=o2}]$ٟ>|yA'c葀`O y桷T ~ UjT!aN҆uhwN萉82vD<&?>t_?HDd/ d!oCCLi?mϕ5NCCh0Y&P:oQhɓ`D:Rs*ɦlS3LGeI!.y0蓏AsϣY03yjΣ)<mj[ri6Y8**lg>NW3-;-qM{6DՖ6S+%|c35 <Әh:ٙr75HZ!솫ʡ跥΋9c?j:S"ƓV4MJhP());.N:1%j:Ji)OY(@NKO1LRdP3wL2~lI /iMqLgMu=|'4ݩ"xRg=)O%S0Kg> :7JM|6-Q6d.iTˉy xDL6)M]j*i=7EԤ@CP4DeO O)F[QK:<=)T ( |5@i*9Ak%9JU)s@H T]l`Ȋ}5_R M'ΔS"5W 5Vl6;ق*wSV9JmAVz L' -jR@h)(61RUQ+]ʅ=R̬fbV^_nwӈֶ}R thd.jӕ׻̀[T*0G9ѲH eX}(G=T,&qCa0=)uӫ^T,ULk!Ap` Pdkۦ`IUjJU9@XVjU蝮ʞ6inn{WB7m+C$4ȱc򍝋޶$.NK*`N"iN?v}4l&ڨongQ$UgT Vj'VYkMj9)pZ֬A=i6eUڢj2juuI;ύ}vɍݜfw-3rmK= r{\ۦ7vj>vP 2y$A<'3U^\(0W<W4 e_]Q_T'zsU eA}[qfLwG)q/ qmkdv@HrNpF5oA<𬦕m7lKV|V/& ?ϵy/v(Kż㝢m#ܥm/|S><@Z{U3\DZw싶pM/{NzF<VT俻בژ59irw@?Ch+GtEGst"t"fsC)I瀤/s LwtxTt_Ca7&u*urȶJFu'SDYGw9u3S]җ}FfS}l|evufUietU2gh$|n:8V}gFxax9Bk[25lyBVWpXpv gWg[}hW~WI${kvVX{cL8vq:Th̆AmSͶT̑T^fW`!{džm}g~iqfn_n{hge*Ã'qh^7p{{&Mvgw9gq':q'rqg:Wsbhtǀ( !OցHhs.vItI=_%c7TxP_Odgh J3 8qjTǸuI33LE$)rhoy{~x܆VD xը7qh$JFCbZM9 dtXiEIEx٨nLjȈ(lc{ jq>XWbiXXYu_6XU<9z#RmI^HhI}D9(كYBu^В!}I1&WITuɐP6ȎBF) ɕtIَřYɹ&_86uF5D h0)@XPxyfQa~AKv;GI&IHӅW5{}V晉9gvlJa%Wvl՗$ Ŗ܇nyzXÈ&0zI*)gTQAHz.zln/פWh@9q$x9pw4jj:pH-x o$W(ȣI٨9wYsiʩjJs'x?&x}()i٪i?#i1JPTe頹1HqJj!YĦ9%ZG9Uk.%(S)kXʡmCXz# @BꔆR㳗ky٫י**PfR99::=XYuym7`:'; ,)*[yj|:Bbs9ڏ: L멤sIMOQCWZ R+T~yy:<ق4x9+JJlJ`RD9)Ȭr;8 k $fN|+Zǔ#p![#Z OѮqK򺷨4qUwV/ꯪ"[j EFڦ8G ;{+vU\_ŋZi1MSn ~@t;4Yaʹ8+맱q #x3ˊU+ʜ9]{ax4H+kjtq;&VYʒʫ3TzJʸbڱ*:<8ZFˆ=J庰~ٺB< U;ъjs9 żv[>ZĜ{z\I d|zz E|&8PRjTjxi컼|o[x*@[B;ʭK,7| \INe{L̼d"vLɖlkg(\ 'pVLYZ, uS(hcf rkWf5n+w19Uej'd2 k۴NU+Ca'"ߴ{.7սaw_5>N+>rZG;g K\uIˀmтTN <[g>i maKq=iu=m^on[18.f31@mͫ_N~țG&ۈ 1RH_sJm! ݣ.ݦnؽg{(.gq&޿T­(fOzwd9vnAqn9Ht!^$>K@El]'*No3)Wq?n!#L>?O++[o(*V~+F>e.5_k=T3E`aloO #oSM .dC%"`! p`Gd0PFFK-R %) fП:;~YeBieŅnvhI)D% J%A^%[BiAU τK @@֤@%ͻAJ@"0аA&/iu2Lw_;P$@.Ro৅t!u_oz2]I-+bU^^i*h8s͗ r5>_ pRɡ S=(ob[J; .@9 q ʦS!V<.*!1 ȥ1<  ;P@D-@(*%JˌL5t38Qν$Nf 6[BhՆ,`ɖuv 6+-Ȳ E69}^_%[&ٖN?0F\ BOwbq0yɬ,[D}a@Yoғ &"zT4//xVTL12]? 3-EJِʢ*"L2xvpHA6dKZ_>`jc4DG4AO&. '_ÝfG<lk*nKX%DA<Rv) ;+A&kJ.b _1z&HW"$\-@`6C@+򍊇O=mr_L8'NoSx2:9&> <eLmrT5xCTwF4 ,a ƂE^vٔ'@W"6$, ’5ro%+cXT(Yz,K 7r;1#SQ'|EjƩj"-ͮ`*E5勫|:2Ƭh1@ f:}Ei%pď3"HH(B{cP`WTU$crRn>BF m+ΔʪY,CBo/n eR* EgɰoN4M.Ϋ'Oɨ 'v16e޵xY]K]s1oě>Uzu~&p}l, O'}E8 [!S$iW*H8PRJ\*TBG "SUٳPilĆ't pJXU"6cAh)vBsWO׾&hZ. RׂxeL/\!"j'  +H "֐!}6/ \m,z> 6VI^qx}kgcNz!搆g%ZmrY Ŷ/zSx). ](~7ic.v=*foט/ҷ9#:/*3r |oN$y1]bcZoeyC d'wddB&{. H ˀfvJB Y| F7K j' xInd!q 9sŞ/C'q3@-|~=D`k'K 2Rub@~l#߄'Ku l)9[17|Qrs>$I~Rt!}^(so'z?5%3o3!!,I7V@**\pajOX 3jȱǏ CIɓ(7Ҡ"eĔ DHF,Wɳϟ@ UH ‡=&d`CJJՅ44Qf&LdaճhӪ]ͨSbIՔ;d˷_2kA7,LbǐBD0Oz@ϠCU,7 'b!#c0@'Y#up+_μУKNسkνËOӫ_Ͼ˟|m(?Pw&X})8UA"IZGaHFա_YG#^'zbU%~bG/TZ3rtT1Z;FAcwCjTdJKZdFMu$wO6e&j֕m"fPUP?h8&JSf? avVxfTY'^"4 Jcm4h)C`<$i B.drYR 6(A3 =3LBsϬ O>ڊ;9:&Knjm^# SϷϺVa:uJr+ J(>="ZͱN欸(*'Bm /--2OS۬sT53-.Xi_< b rl_Β*nҩ(*0c BV_~fȕ\(Mtzc^7O{~.o׆r߳&& %9LP= 吒z虗ʛy:f|N5)ؒ*c~nɭ\ط7%]Bt> T'nrqB ( a wZ Gm"\!D [HD!#` I$JCQ0zj#A(ZaQzdS 4PhTC%PN2ҏ:s; ml A)Mszf"])?cNZPLS;NVz v|4PULWNVr;U5-LZ֞̕EiEQӽ.5M}P)r5 I awrWu:d]׿\V: a5`A!5-T0[*$$@!ofE@X-Ro["2u am.ziG6QnsjD:׽dn5PWG-""! /CnϵہTR@@00"Eq`4@xa*O|c',bQb]8@E>2  [Wxy_L?AZ._B ! )󙗌җ(n˛ֹwj+DΔK1Oݽ2a(AB%M+! !})hG:(@`\^aHr3 zF0ol^9P48 ; 9‘ -\uzY›C +d;;{jmo{0xO΍V~'qw;ZV| ڶ//C/7.\so8(EƮ?Rz#qq"GS/yKIͦAƉ^xT^wxX.:O(qhٳn47E>I[%ءO*ܤಗ\_|Sьc==zt}@~̾xC*mӡr3n.j<%8Cd& FZ1b zq+%J+L,^*c[D%'_){{=أ@ߩGh-6ѷ@ojG.&즶G쪴~{^[OlZ" \r , b6ۺ;#AazV_Ȩk;m?s۩uƹ³8D4̷ {h[>/Ekŷ]׸7̄^nX;8T 붠&lܯǛ뮧żk<뺖컘,[W<\ț ʬ 뼌 LɎQJ>x<ȇbz~q2̐LR@1 魫<ԬxS9?+y)tw˃ $ ܵgjgQ'U{(W5y}_8-jd0v٢l=;QW?{c*l 1pf p)])쪳n@,(W6܁M}t-4*}iڲ( fi \ a}ܰ-ч-ǬgAD Z}Mߩ ƦV\fH; -LRZy$ǥjZ\>m}B=F]_#͟L^-l 8]iZ=eIBh<.ҥK! *e.ӳ= kQ=̭(#R(>Ty2ۍ_цL},LpF˒sЗ.undlܕYwH}2\ä߲"b` V3LRrke x,M䎑~~W8ظٰsjɊ&,쿌jNZQ.cnnPNC[Ԍ-ﱼi]"txm [.4!_ ƺy*^KI6.ғEņ虫i j YN'銗m=EAf lm5?^G@XƺB }^ܜ hHa__|j<ͬotߪ̊(E־ (m*nn>mQ\7N?I?<j{9L.ID Wls $/f+#oa7.??ٯ| 6#XP? Tذ!C%NbEp1M xqɏXȇ)eΤI0!XIQ$ L b idPGeġR~L;dbը[fUpi*a+-]'My/ń$YWYlnܯ%xg[ysCFx-\ )-˚ d6֯%&k*žO9_Cn?E˻4~=O[^Sz_-3|ꯉc}O?O ALнJ#\P9 mӏ;\n:#7DR4D^3; wk6xrH kH?T'm* K;S6dL @b(k5*Ol,60m"4o6*T&8Sӥ( s3C+[<~ڬQM)ɜbTB̬*='+8Y3)5P+:U,UUKv;Zz3+S  Ucoe;SgT DچG8nB!t׹d*eW<xMM/%tBvcuu#&Ƙfb8׾dQ\bAd7SV9Kn㙹bƍ1{{tK2}h+r=xɧ1]IY7.*ʲXR.<3MάJЎn^fŪ\ZUGhSt֖ZLm:R)'lҀf qD]<g վA꫰|3医N׋UlKUK3\MvgL_K8?=-PځfnE77~ Av^-|:}ٯ4/$qȝ<=׭\h͂6$ p9&qosXP* !0  X8C,2BόFGK]uijPc5'N _f%o+1m S2a/T[V5^o{ܬXD-Zĕ(!ᰊa zG0x꣛792Nykڑӵ|e)a;6&nvh 6ܙ$waH2xwi5-yP޶7=,(R$;E&*]Ub'1t*E}ZGLZ  ÄLPC;d !:A7Ae%%4]& ;@yY٢|.Q ydsaktZ5wίUM["1D^DR-,Bҏ[,D24Ict$uЖB!:8P#y3JSSr{Se: Qhb7gM,i~aiwt)x:ʰRbUڳVvүq_rfZ5 m%ϚF/ZƊ<4|M )y5L@ljؙlP{3h[t9J\ϰ=ȅlu\G2倸G]fy{RaW[˾f.HzTVJ Y셙Jqj*IW]c[)bQ xk_%-_M*uUoD b YTM[V?7EZ:뭘ug7LմvOyj_8&_;rD]dbFVEDc:fСg\H&(m+y0V myM)[)mpʖn =tm{ \F6Y{&bJewgDkOxsXd/{VA)8Kwwo1M:$ZFN,Eqpһfmsˀ e\w֌m\K?ź~19Ix©ElR5\n1y12Lo#68g}1QLZu,sco^߉.U튚Iggg(3Sn]`Ua@=^z RfB$ͤ|Lwn͢~h(VQ^SDa)kJR=;,,LVro/z[>>t0?藱+ě4~a@T @ p (|© +C"t `2C(f$,3t Pc@ţô = ۄ=Լ0ýAQií+<:A yC@ C; 2/,;SNDREQND!,I8Vժ%kZj@@#JHb,LAXǏ CIɓ(S\q  za(T,=229 JѣEk&fBgDJPNL ʵׯ`'VD`RVBqSAػx Zfp+=:d #K\Ҕf`\C%KӐXZTε>s۸`HɅV~^μ݀֊#[y$ѹËOӫ_Ͼ˟OϿ(h d _ `AMWDYziHJšP!5"^%~hR_^*D#W2tV9~cxT) i] DJIMVQ.PAMY9iy@#E ^?l8&pGl?p @9I=S! ӏoXEɉX:?L)Jf)XwhEv䨦 JJJ0FUyB00땎NhO>Q<DC0FN>c+3&3DJK+ݚFtu?vi?zQZ0^ /'&ԯ#m= oɿ Hn'> ϲ'-OPpÎĸ> -;ɦ,c3Ù.,q&|W+BlDF^k䮈iacIJ;p%2gG=&4 jFlnW$:)=s |2EitܴH)y,̛+!A{Jl4N3RD"8dJ(81}G\Y(Sڼ%($JQ$tE0LsӒy4IchԏNL %ApzcIJ$AFH, "BWRBJH#ukغȮ1k׵^;WѵCMb3XRO]lRK"ʢHle5{YV-< Gˆi%miERHEm[e[Wo2hm[0ݶyiϞDP (`!#t @D݈d5&D5oY3TPyŏD]y) *BWȤމ.+0CR%@@Br)D~D'x/G,O%C,D^3k> ! ҫ jycyG&NxHo @WQ;n(o {?47֌k|C#GyM xy>z{$}Դa ÿ^)?[(CWt->mi7='qO*_e]Z]d^5a iVpnuNjqN%O$ű_ϒ? D}Р?GGhV/G7 %FϝPy_y{R[9%kʇzs=g6OE!5G9^\:pBGe@]1^#6^5b hb Gyw__E.~`Tv`1e6f6f#鷂*v7vLT''hJvҖ5p}f`Y8uZ6՗׷|wK(b熛ddbwiW e@|"zw' xJD~聗g^u@gRHVgiu^}gw`DljjgzW{i7kfwjkyickFTǶ}7wJ!i=etvҘmuhy}IlXW08gm׆[Xf|XwvuOvw$qn„0HoRo o o^hCpG*QwՀW"q(ҁ3)s92P⓿t; h#hEsĥ-Q ~IdT)V9,YhV'!uׄY)dvYtc`I~i91dCcEֆRbl w츗'whHmmxLvzUyeS鉐Wf7m3zy9R{Wzy\Xih9fcYF ٍx'$tfg}}}}U9w %i旐攍 7bi(ѕWȕXi@9s&(9Bi h[CH)qG6 [Yq8&DY )/\P]48oͩkؕу5:^y@yIQbה4y4&akN+nٝ^I)Ip+5WwZ8c=:W,QgFɆdֈheX6n(ccV~Qxɜkfnpm(Ghg~fpn׋]ʂyÈQlf*j畨xZɇR 0k$}h)걍9҉'uڌlf]yywpvQnpoő2o`g{칠H-ɠ!QKYګ1“J %ڟI:-YE5>Oz')+tJX* b uV e|oieߖ[Jv'uHj%ZOyZ:_\ꬆ9f7b甔 {xL{ |HHM[&2h٧J+s9j_ˮT{g궩l˲Yz<&񳡸 ;mʅ$J1}Ъ6·'g&ڐ9ft,~p `!sIVۺ%('!{Iyדˢ˰+ 77ء]]z^>^{o[|S+$'$۔4{^fӛ(cJ;&a( Atk`NJfِgRj^ȹٸ뷃%gbJv)ʌ9j˵YiHgZ4.Pz]J+zdò隖&Kkq*쥥ڛw yƸJM֥ʖ<Klʊ~K\y L[ʭZ #ߪF y",{ZKZ ۻ˯Lʠܠʇ (hBs<'ly<%ZɟWe.y̩l.)eC Q,3{^p\"qơ*{LiX\̟^ZT$,b ,a]+ ܿ?+Pzp;ro{ ($Ԍzm|F㬗|}L(qH:Pֽhӛ8KlEb#˥"2բ,j|+ɛԸ֯u"!*4ڼ+wۑ,@\LhDmx8_ aDڊ:{kXl߭ #6q}M%-ll,5ۘTG.3|\54|oФс]a*ݳuɛz >m-u>#ߡёkiMK>n>6f.׬LFfINCn" ?nYQ嫎uw >k4>Ow.tn ^;m>>o.Onn(^zm"^š.8SuyH?sJ/Y&o]2;5 bNR,VΜ aM>Cf?6hM?XOvOVO⊑N.? rZm\]R N=?﮼_>.QN qm; r_^?Ò|//Ot$!#%oc+91_5|mXOφB_>t7O_vL?˿_m$8@A  4pSÅ#NLxP 5nÏ5xQB '7Zҟˉ$K"4b,gd(Sϝk ZhK0)ʜK!*]t' ؤK?ĪXA* źvJ +6? rƸ%.qMYd +g煘V(fҩI~l(kǮ;V];2²w;3o) $pogBw,9gp 28LK. Bär2 S,/>Đ+ŤB$jM6˧ϰA*ƄQ͊5E*tI+/@MRKO{W;fDUõCZ{]-|5IE68eG;Y3c-֒eZld6[rrԒ \C}OFUH]PerQˊ*TXE(LA(8WO| qCwIb.^s}8tW3#sT3"k%:`ckxB ^o<2I4 ޗfNu&YYen7^E0N ![i[YfaV[ݼb?n)rmC=׶Sv^}7 ݹ%)p=B7.7S-;T<$XX߈?Toflm^|,YmnZnHlyoq.(~wv(hex]3M}2gQR24MMhH[Ț@ *j~Yyk:8xt%@P[w $ m@̇a1$\ > 2(#ֵ'-12vINjckQ{U[F7~9CޱWT%NS=zђA4 v{#Hؖx!qy`l0A) )C,' 0dc )i2GE "5|?De&%3/ LIID` Aer'R&YDNVQ3G0Z%5bLmMT?KeQas +ҥSK3mFo^H#7E.!SZ=oZsKaJS6UNKR@}'Q*LMLhF) y8ȱ+ǛIC{8ܹV[NIB6ԅԄkzԌV#mJyLB) IN1t bK4/8=lZ k^$G|J=eɃ"VUl ѓQ6>3L?\Z9U?R;&bYf?qY:?'vɠѠeF) #=@$0B:0Nq)jꩨFQ٨?*җ[JkRrsֹkNg?{ylJ=khN(fꤕRki~;k覻`KfYkY/ g~" h̒+N{zmZrk .VlgqW 를z{sir(I,,Lpp.lBLmH'MnLr`R'첾t;;p6ο- +<+p-Llm?7X,:˦u8:3Nvۮvs/ݮ{S3ϲCzS˚kG}\GI`+ǪE.h GHbx?ҖkG`(tmi"7DW#Ç-T?Y{![ SDIʓ@ZXbZBX4a ,"ɆFD#4Ѝk(vҢ>CBqjG"d#*Jz R&%Nz̐ 2Ttd$CNE| a0K2Qu&^\(_WAR*!JVZʕ%#e4[ZZ"/nz00:<#3EbKe&.ɕ]̧>ٔq3hLfU, Zyjͪg=IъZtٳsAE΄M/8T*Dz.Bĩ傪?,8"*bUj\Ѱ# ( !,I8VQ8*\p)jHŋ3jȱǏ CHKIY"HYYI͛8sܩR^TϣH*]ʴOGrLI'jʵׄOc35gK&L9@۷p?>3Z \x!߿>ŮΧ̸c5/*We |z̹g7Ry n~^ͺװc˞M۸sͻ Nȓ+_μУKN4vۻcYx>{-O?p{bz_Ch`S2T &dO?ܔB "Ʌ6[ԳP?#uPx0ܧ0#FbD003whaُ;IrO3L>L"4=hх8>$eB?~AOC=eO3ta?υؓd< 3>lv߁%4j AZeBz);3}ٌ埄 9_ZhfZ^?P劣"룜泉>z=$)엸kHl? :kdB;&`k?t&=+:Ce}Hl ʐ~OJΤ:/g[nA303{im&B53BUd>U҉$7=?Jq>KO|L-COjbpP;-ުӷBjcЋxT߄ ~j nN'8vhBY7$9WN{9tn:7:E:.{벻N{{|Էpƻ|=.ϼ?`H}^k`}vyzE=D`9ۺ^ƒvE@T= @pGM1>F(Ʃip:;`F(.rNH}ˆA]ؘp#! )6ċ(K!c.E󓟭px \``!(C'/t"—1|Sb`@9vvX=q:~og4fQIy8cOHc?22'kqH̨ A,J BDl%Mƈ/l.]Hl20b6ĊX_Kf3!S6њ#8q:us|WYUp\!Eyfج R$L4+ K8 B\1M|' ?ql_CPn % V= a}@q\&#c:ŞИ DfE<Ԅ53m)XF|Qg&?F|SHq'Xw#ֱ榬f ZZu6n}kK}4.}6a?әܢNz1ԣ} G*WfP[\Jٷ6l[8;XsHDS[TBXpv-^iۚĵ-p;#TN<2DxlJrk(TτuWDbw2Q (h>4BVYegExTR*\)~%J3qě4#]&,|Jf]uxZp(.uڐb/]WҸ˽q[sc1'!kZuoWӆ7/Ǝy`Vɠ۰q-Sby+-8 Y2-p?fx38+yZ."bxy3]vӫFFVE3ǎ~t#-i"SҭilRw-NdGE}k؍n"{.p/<8—be"igϮ./][ ۹ޣ͵m`|5IR3[AqO˗3TfBM^nGHmp|)ts[ ԣSݕp*\띖.QtW{CީZE'Rsn$cyߓo]j]3˺\ᬻ'͆v̷;28mnwcE7h݂;Mt3zmù?܃8?~GN/="tޅ.՗Nn=`e /z\̏3yWv!3w>뿟x]wmFq}h|׀ĀI8R[eSvw}vҧs w ٷe}|~$~G~.h~~H`u7g!zl%ٖzPV~1@WHم{8,!^o_؅d|fwU$0T}cx8)(h$IHs~X)E7MdkfifyY>yȂU(%~`GjX(p`x)3u(J\؊=|cps Wtȃ wk&{Ĉf%4'H7h駃ViGTmˆ|8VH؂9~zH9YTctxb؍8BxcXc؏eVȋ8OhE(T1x3hr{؈Is萒h" g$NI+IXؐ1):t w蓨(gHdhTGmȇh[GؑiZ \!Y᧍Bxcf䈖18%G؎fk^([HhOǗȔoljQDhq6I%9)rxIlYugjYs/I9Y9xyszvٗ؇0X9; ƘH hʇǧǜL׋&Xsi諾+w6؉|ӸlyL& (i#,ɝ.YIAMY։IH ȏ Z뙠{hЩٔr9l9ye9Lؕ)%e)袦՚HwgBUMء0I9>@uOuSBjSUWʄ=F^: h\p#cJaFAHe3=TozIAX)cZJyjsJp! ť5%DwxuJDp!РApکJevtJ!f* A%aʫ$šڪ :sꪜjC{ʦ&W$Hbzh3kJg!p[V !,I8Vkja@X)@Z #J(Q $O$ɓ(S\ɲ˗0cʜIZ$hrIB9`@&&(4b2&Ť*R"& NXjʵׯ/WI ^a`2ӍR IZ(߿ fE'+ c"vIБT۷"LTxe5H<ϠC4%"R Bn#`ꄓ5Er" )Xb@[+ʑYײ' bνhUcƝ]~O_Z ȊEcVZ>D,nb =? f߅f(@*8_LpfZyldR$$8<@)DiH&L6PF)TViXf\v`)昁`&I]9߹6I0* (w(E)5'2zfꏤyj&yLfuz$1 EҔ?֚Z 'D3 3?3>0箳>ϝZJD mD h?ƣ>Dd? ϲ,"+, Οh:l=:  0@K49 t< ϱ@ 4V2,3Nϊ&D[إM/ü۶PTC7;;3s-r<Ii[7HDx<|O5c7U,k q?O:#.<RHcn$JL(5ENvǓ^$WWM+ne"7dc[v%d%z5v$ЌɕgFsdo@##wp&L>;߉)rΏDWO)S>qT1' xZ%C HS/ؑ1rn 2M‘@EOb.f/D0&ǐ$@L)2N///K1IL!Ȥ2T [:miSqL*ӟ0m,#A"%8$SJbshM9ӏ~*&ԴӉ@k_6 ͎JoINeؓSb"EDzs;'و&$$r@Y>nԌks46G ?o+ !!Yq\2ܙљnt,M*t ]huS>6Ja3{JVds!ݿ4guu*V2]_qǩK&)!> 0h~!^ӯmW]sX,ms`HWámTq,becقA6;\,6pM'a |f jJRY~)rHXs}gSw"=o6abҿGsRR1^\WfdHZ[ Xj^31b\ -cZϋ,X0*JHk֮V͟δdeX{S,5J*;DT="ڽm_eϐݶ Mco4wm&Wy.]F2n}3x~3"w-n̚U iJ: 7qJ@;龴7}oO5r~at/'ƷٮD;YÃ+-ewpGPq7Je h[tyGKgyKiր'jwFpW Xl1G&v^esylir%~vƃ['Eg@ƄMt7o5(dG|Ve̷ev{4R%o(u&yg>~'kgUxsqOU_q8M_ysUv%x^W%87WgXr{G+kazgXǀmdQhFb{?s\~u||y8<=WG#XO̘xnȀTne~h`dӥ&GNXMh8U72qXHCFx}_ʘH  hhaYt~ȏ5-xdjh!)rwؐ)+88ȍe46/5m̈}Q8Y>YD&6 0Y9&n懍sa[8l䅨6t'Ifg{jlX$H+QT9x|(_~htXF7?^珊HsVvjnIzǍxFVHpfg$KhX9ɕ+Qil4Y3X|d;,Yt=)o98ٓY)Q'H ,quegLyrNzfqFhHw ʙ]YiǙch8EjǖXKx|WydEycWmU3!Ɛi'ZَYW8{ sfs^{uYٚ%y51Uy6iU)Kك6Y(J'Ya}Ue9e؅Ź9If8fv9矇 ֩^ډjYiYhk999vyvlֈOjɗ5YjcyP7X9S ,866g=tڋzD/٢ 9X&ZZ:n2:W4!8JQ*%r9CZEꪯX&٤`)՝yؖ|] scz[2ѦYIʠ'!WYxH XƮvh@ʨ: @ȩ: $ ׈P3 ůfǪz}y͉Й⚧(کFeyIUjKZ iie qڧ!ۭruպh:Zv*x zNy~*ܺEiD~ mY`ʱnk+pI k$Y6jwGS{#DʆrY縿rx_t&`Xj'+>@;=;VfHpizb[Vozp\^`\j{d{q{Zu[p[6x~m{A{wrpYYĩ˶]ף+J(]ǫٵ2p(/;93kxYjH*RK۹$W Jr\>`zɻ?)˹׼[f:ɽ} ;ZYL|uZ ۾w<] T10\ܘ.KjRjWʬ-Ԫ8|JCk[p\#,9Q -F Xx:̼*rlSla:`**NOC} ˫\DW<VYlIڻuƷ*&+V̙kg\Hex su|y,{9LȦkU W| {l4ȋk4Β5Z|I܄-iʯ+jm=MmݱȒ]2^T xaȂ+(*iB3FҀq,!4m0U2*RD FM2)m]*#*e\q՛՛*!ZSћ]2;1(gi` 1[=ձ~C)apVUM-9{p؋QpM<-?;/3f*T.])~=-4 !M^ h!,I8VRZkՒ5‚#J(Q S+(Iɓ(S\ɲ˗0cEA,S $CASJE ӧPJ UTI}HSZnJ| ճhӪ]VUT <(((6]c~ bjKÈgR`˔ W#̽b RIĠC@D@10Ҹs N\W|5~bХFLORdkiO_^.A6P8+ҔaIV%i_n9b*)bHfJhf)=; ?z©' 9LSD| (ѡ3B`"Z0da`~>aϟ`"E@Lȡvn ԐYZ*zG?>Iǀ$MգNh(DK ]( qXݐa >рs*atd" D(Q]DbaP0щHcDOAt]\@t_w7>6{*D$H@ ## X2K(7@60Q7"$"X XTM,D, <1d1?*p EzU[k>nKTlTוmW,{pɈc>ù7}?2nwͫU=g7ǺF{vO'O7>־bŸ6yM;~_x%[GRD~mE7Q9U|yummTwn xuҗz%n|ᧁ noѷu5m w}_n|GL{q18si~wvqG|/{A!{c\,gXuZ0m(LfƗ_?2W6{ළ;tE7S}%uEihX}v/KbgLf7whPP]7yy(8b(CxwRx`H`8HQ7SxcR~fׁ~kv-X@h}}v{7|x÷e}W=h{cRX|G]LkgaXzB׌,|h3k}hu(H|8uzWvz~((`Sx_yT wD Ɉ_ (m怉uABXRhnwt/8c p}8#"X$=pChWR6qJ\(r@`xdEXnj'7шB'BOx͇Uu蓄eՃxeft\֋w()#6i[r8~tXkɏ'i.hyOgO wtFaPixp e ``Y`IWI`99s'5ul}z# %9xjm *$ n76.XDR}8}9}ӨV^Hĩɚ5IrٚǝfwIIIQȞ﹐&GfZyBC6Nt)!8zXi! y\8ՃI_(; kB6e)))N(qhGtp

rPJ癠 ~?ٟv |x֟קiaV ڨlb\HvUmsm'fjXuKPc>ߵVX#uAdlDlɡ̅:Z WpqSe 얢EZ5IٓI*$ gff.E]TIHfr+ \Zp+wFJFhjmPʡRjZk(GNbhThz_Z,u6W)7GhZj:^ndzoWju$:PRky*;G闢{znJ"uM Q/&J"E4VgIF`zjӚM;hnZNWK-G;1JJe`e㕬:Gekm68J{!$Z{`gMԭoBNk]{@Mj# Zg @'%Wmچ %WZj#t6Vu\۶k E+5KXy9pVԱPLhW2K1 %ԋVl8k+سFlAKXCKJ&ֆ F;SOkZ4S+*9G˒]šzj`+SXQ+ʓ-ڛcopqkuAEb ̛KLr:|;GF[XZ-YzsG-RZK[NfԪue8:7hF,]`ڝۣ I,GK*l: ^ġKļ uʲ}$[xxLvx{k,=IL\'V%l}q %]&/_:F_ܜ/Kތg|q8J:R,TLNc8K\&QİbLn_{ m~Ʒ ݼ%\glђڍ =կ=Kcm'FҔ{0ة^ &Ӥjc@iC}/46o#VP͢SjF*$*¨rnjDU VCwVsos)t;OQZ)NTKAU~;{`CXV<*ŠYMXZߟ{FZl&z֓2<)g& j׮[bZS. ϩNjmilUv٦8n<p|j J.C>Eޞ]쵍>}Ƹ=ҺܝͳXNꎩǽ-a۽8 m|nޡpneN=&>N}{Nޥ+mՕ VA}&d̔ UQrN O-[ j'|ZeSꮽsP<O;n"O?*j< 3>c?*?C?ڋUN0nn+-Lg|n)n㌇?J =:.'.ϙ?#m̵:? rzv&;?%J3+kr;1j6ÔZK)(=سt\*74I2( (, _dv܋AN=O.;>ϯVk;'k><'s؄K*t캺kt? 伩{nO?V\>պcO3xr_veK|ys|^|5d_{i?US@pL*`T@#)* l JPGt//E٠GHM0&",NE,| _hd4$ [h,Aĕq*JD)1%Ll"u$,2YA4`$.VÆFJmiIxh qwI_w*6Np "I& 1@"Ei"A& S%Rz(`/%YSĒȤKҐ[fDKF^g*-">I#e'qdO90/H ! rIg~OkYd51U!?!*+SKTcNS$t"lfs,Irֲ`?Ϲ΃d@p@ Jj @`Жѡdf/%#t9z) c*Ҵ:)NӝN.I%5|4$T/Pzss\k`^ĪU;տέtylz%Mv2k׶7Tt'jU}E=ѹTL=/z_g1흭K!O20YĞ2B V5aN@E.H!l5&%%PR+ui~V jT5i!_Crv(q iN81uQ *EÒʕ&0W_.--ճ<#.hZLu{Wt9%oz"iclo2U'7<^So|1yc~؋!|[huzyzG~zdgx>rVfG{O'W9V{w׀5|cEQ||R!u)eO~eyw'~@Xw7 x}FRD!Lh{-E{Qd·Cwwx)xW24xawh!ei(y rk(mH%ql-R WNqPcUpx@DǃwEq8zH؉lj8N8XtӶuxg@outx׈H~VrGeE,upVz]h{wsx{H$8\䔇#B|H1xv0QH~ƂWx6X]8Hx؉KXxvOHXz8|X~O;ȋ |87Ć8)yx/i2z%kgXX!;D~'BŅ>i|~hՃm .\ bdYNJ'xSْ3x5ZȑTItOs 'wzuZ}5׌}x6qhsXn YSxx=YHO+ȗbd8TYД󷔺h&5hqɋVvXYfyzg:6myz%ę7@`m"F$JTmٔsbhxw%r7neZW뵛D6o6E8p hp|[fQ \uҝ2qfuW F%IrrTڍJFO[6=>!ߘ{~Ƣ6V"X\! G$]nwAtB:B^gL%kyDBknjR؛ɐvhlZbmrJҜxU#fQ]1t^vkⶊ_Mo/?vrE**I%D 1VᶏʡZƥ @ 9Y:ɞjJxIjz\v=u+s %I{)UTJs$8ڣ_ΚMКd9ݵ>i\b:*{re^L!^hYU/u &ɹ $װu p~giEҙm a}cjgXygyWjX*eǩ;iQr5*OU,`ٝ jz^:i*8fkfme9Tj&J*Mtl:V5r o~K:݈UI cwsRj鎈jXnƯ_[;dj[j%;K+n:"akTkeZHtt@Z_Y[g:f9dћHGpMJUX>栴ٟ*q]z r;+hȺzL@g t帞x::pS+yrʸcK̾]Zka糳Zh n{*y:̰9Rh%xz¶MT[{u.%[i΋jk۳_~g\N56[YF[Ku4 eo 25;Ǽ_{W!囸 nmW =gOMrC} .^ir'NCwbp2$Np5UJJGT?^gCN侬JnüT@f( 澉-Ākh檛TjFp'@o\?ۦ; P'@`78O <\|+'pZKIP!͓~%^7xFYNAΕ}l|.@QRuPzxיʁkq` `'. 7ާ핾W6Axv2uR D޶5^ejE7ݞyF EB!|Ε|?~.@h桾Z"v:!,I7V9O@-ki@@)#J8Q BHG(Iɓ(S\ɲ˗0c"F0xJ*圂U*Td)ʴӧPJ}ZI+ L8Z:ٳhӪXUt]@  DYKÈz VLhK՚'uJ5CMZe۷YhS5UXҸsN|+-knv ڵͼsd]] XNLJ8U,7?_Ͼ=J8W+tܕ +;ӎD03LDO0j<IoL3L*0F6j+D۾;j(< $< ϛඛ#?&Z϶һ%U{j9)ç:.]Nf<8@jS/ᳲ@Pk9\i˃k, 219=ޙ(<:+) h9DN3znM;=H3mD[$=NT{J*sl0?HJD46!( 2 7 %毄& Sc.|b(CBѰh!Ťf(bU*1h?@G$8]g+"*#$IK4RAQ$H&Ё#eQDC@#xF46TRyԁ8u h)!qMHA(bx<Ԟ˜#2"t IѓD!ErD+*a!,{$Yި.s9]2FebH|0%D"zR&\eVh$hjZB|$e r7yvչ h\3˔E'!IH|c,7MQ(EIOF tbQӢ!H)ґ(&EcIS"C.}ZN>CbSRUL6Ӡ)НM]tAЏuԨMţ8*O-MF!:=,jVDv'ZNJKdS౧(I&:M~Z=%MijΒQL̕2C}=+ EK,f24v9X7{B4TfNXI6M6jRjUE*DQ>ʸ`7}[ڸ&e]06n!|e-]\z6m;˲77}V5+_Mѷ/~CD D ]N%$ L"@G`!Y aA ^hH#8x*NˇC(@4:f1!^Mvxo[$e"i2% |dLe(T &Le~,^lDmF{=۵~/=A0=4Th8v .%-@D.,' 4eRfH٠#Q7pt1è;FnSob3hcQ%ec (O#'wuK3lOg9"=0ݑ24+y7> @q{V2 +7a _x"FkoȪM \K\lv=\d8Cn0Hl8b;9綒h)z3[.yͲ勺VdzOA,pJi Spvӷ5sl;yuu+Yts=3wrMFȖlgK^^u7ʅwc^$by;{>dt v o;DOG|롷;qۻﵞ5oz7V}=_Yv)_V=q/?֌g<>Qvugf}8Ag{ E {*|6|giwz||pw6wȗ|҇qԧwI7ub4}ucr+G~,xYyGswj;{?y Y[1XH(ƍBՈ5\(u@P\!c%TF򥊬sPyT\hgIXI{9R^9N~X&鍪x F>ə Iy*.NW՘,yV阁I7[HEP$)AG7Jنby㉚{9fyYxPL䦑ِB\DɖtcY_{O^\pՉXHI{%ILIyu5ڐ7u9;Gd(i+Zmy*YSCFp٤,)9ԥ7Szݙ^iojl 3Z{Y?uvs=] sٔI[ze;thZ"J QTE蟙[Z]B2ꤻ5\婦*ڥlz`*:y^.Z٧2쉦ڡA'f4Њ!e;'0hoغڭzHE `֭':& $UK6)LONXTTWfI&K٥J[ϙ#YҙL$I%TôIQ?r'Ev9^JTKe} <Θ-3=Ht=HN>B( 3>hBlNBCk?z觼JJܙlϯ$Ï?<: 9c).9kByOOΙPk->-Kfzba~<) 03qCIJkly?Ko ꜭFD|JTqͽqҋf p(w i #p⾫>@}4ou=S= #?0jK'.{0'$D<'N麛q` ngsmh>0n=03jDJv,Qף)ϕ_>8Ȏ.O>-#Lt& /`'1%I;_&ٳO=W&q;UAO~/hLHzLw@o!jKI%`.ؒ jpCd?d$ UVh)i 'Cpр\0u'! $(l8D B8A1Z*bfJl^  5F]<Y6N bEh qB@h%$B#qt=1bTjGI%IaRs'IPh4e29pTxVo*kH2<x) &1 iL 3+KRBS/yIӖf* 짗dFSE|PNyF=M# *3ON =8b(qņљhqVdF ѢjiFE 7Ʊj(DYZ|)BiZ@2'|NyJ3(Q OC-|:sZ.JX̒!ah͜jE7=H*5k-+Iҙ0s* ׿V#NjnMjU{ضuNl[̙@ fю4 MiS[ղv6}hb+ۨUs`3U*6* A7S),Jh]obӊjGaTgr\F.[fN*]N*xr#8io]z+6t4/Z֧ů~[$)%%z]V(ކ-" N 3$rx*IWUh5]kPWÆ&;n~[G+7aC/񬎇u'㌣9Gvf̒ٲJ3E& }h]32}ґ9^Keܭ*Mzzc3ޗXR]zH[՜ 7e^4LlΖ3iW֞L1Bڸ6l(c^w :so 쾩{fmW;ssoϛuf9-26l8B.@\P:9ʭϚƸn/:.?-Ϲ֯]eesH>tUuo&0co;Z꩎/f3l'ש沮B۬cin}m{nm۸7n\tܹz^f#^p)r{Lp7NWs?챆)~Ngozn@~otEC"`ľR#| S@(~Ѧx%$󗛁KĐWKSO_eu/ \WcEh_1dZ} xePGAG97ZWϧhcU{F||{}'悛F"| pVmy}t[q7 VH(F877$EOX+W m%WHmݷFRxm%z'88|mX|Ҷ/rȆvkǃ>h,d8mGuƄJUxzwhH7LXxKhfH|}HrhF7芭kȊQr養IvU^x]1Q8ǃ^%Ũ~0qRu{іRh\Gy4L.!lXR([]xZe,6sՎY@Px}؄ąQ$HZ`P?X atXi{iu^ YbmiX&.ըxM.؏e 'cx]Z'OȍHHPGwc%GhHA :iX؇HTidYv ɇi8v)C4\9gw gyif{e}ie\pqSj؋t\y+?@И[p9}Qd1idCEEiZX#ɈAdy(BG]U9QUq!xȏYz%u{r9)9aYdcIcݹb)bZNj*QyĘْ] ٜWwW9W,NKiYyjYYà Z[iY*y^#e!#Wz xq'W)ZTYנ5xz |)फ़cF*}8oING/*V7*qoVjG P ^UFC)ZV8X,r:XXZpxfzڥl:Vfs9b6Z{I Mƣ_yL\aꠂ2YH!*,?ZfV`2*g&&Yʳ;_?vJ1"e zm*:(<b"ګ֩=aꚩ:!,hV%kZiX@#JX"‡ XK HM"S- (0K`,L!I͛8sɳϟ@F4ZzQŦk=VP| X0<Ȥ*R]˶۷pʥHCiXiߺw/:8gE |-e*:11˘3kH(6k`@@ a+]"00/_YaPdܔAȓsVoF3@ j̝o<DW&zhJq7u˟O)g巑omT $ LJ :[EgwC ?r(Xˁ ^EVdrY\,eBO=& t$B(,0YbJZ<):Q,F@Frdh`:&rР?/)E_dj衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j+mb뮼D*FZ,D&,>Ԯ@V)=㮱kO?/f4̾NO=lSj0f/S0N'L#P?>O? ;b{D <003LOO= DC~? ů@س4Ig >O;g3/9kSKl5IoBuD>yKw6{ ֔ޖ^1ՓKNy藏v wygm<#?xzD#>3'Z.<$oj*]ԓM.PţOW[vg~cvGv/yF=A -8a=$q x ,YA> "]ORxG[Z9iLuBJ,()ZBU-z8]31q.e<FGps9ڑ&u='y)H;r<$"ETLR4:`@dH8 HȤ?LJUV$=RX@&o-]@')ZR @(@&L9su}4* Z ֗mR?2`bJla,cev|7)oJi)ӟz։\-倄.t E>Id;@>+Q0#I^xIQ*Qq"ӥ'e 4|AXʄ"25ݨ&a:њԦi:BB㽒)xQ'3Tdv5wl*pjs@`NZJU** @M4FZUXL  wʊʷN3 s\pB,m<ɬJ)KNjŢ$%2OR~Gۛ ۲%lLٜ5Ef3).kҶX89.?y|(V9\qSԗr(2 J:-;>4s3Ujբ*Uy&-k^CHMy%;=YD8ʯv;fVGrEWdVTsن 8nepI׹2DvūN9 (q{řz4%qӽu[Y~wfT\iLjvN6\oi5|ߗc*83AG՛P/pZ" ##1sFz'ˁ _EZQ筻R;ڿ0;.qQK9Tc{Gvz-K Њ7ؽfӎ44g&a,PSƫ1 R=N\L<_4Vg*WXҤ汅e3ܞNVS{Bul)28*xr|X.؁(wp(V|s p'dpB^'eu{de w[tuc2zsdzfr8W(|&]UrOFɧrրs4s5]Utԅ?s6kJ({"r~GpwlrXg=Ƃ rtƁX-"xh)؈FrftUvWWxJN6Nxǀ_(7GWr0IWT^&Ixi"wy:d]t~swhEH\ghorOh5H&M؂Qx{LIB{ZX||͗(}3i4>c6c}cQXh●ҨN%R~t}LdT~x(ƆzȤll@lv(mE` <2$y!yb*isؒ’0^)96A,[7vxZ7hp4cU g[;p)t/9l[q.I{ro&G.YLדjȄSsżi.shH!XHW?(jv8ZaFx(|(Q9h\+2YH*\v5Tqww4Cfe7YK8HpJyfXyGm}SHUIOzϸz(hWbҕ?vƍS%H)+vˉ֎:L"{(tI깏 ٙPm䗛kl~k_T3Zijq mWw< 0z0yܒ:JX<ڣ@ *4:Q6:&& GCBwGŸf\oI`ZHho* i!lɅn):TNɗ~*!lD(X:Yɘ;ه@i8Z*Hکen:^WZ): J(MZ[Yŷ HZT" e#Mt܇Rt,zh> r|o9RקcB{q{z[j>rT@8 iʭQVqF* rU ( X>d+)Zq[rѱ  kj( #Q:-/K yKwvbqڬ)W\y't \hgSH(sI+#jjOkJ.=FL #ZثzG;+WgeKGr˧S[DJx+w2~ %몒5k(-13H6;y8y[CGgɩaRw ~׷rٴG(J%ɦZ([˹RJwlr1RgFm똢+IK[;՛aؼk[w'˛;X٫9{ںg(+aV[嶚&kG#;j ۥ˳ \k-\#ljKkpڿ[614G|G:6*@:X[kX [l/,yhȗ+Ĵ*Y)(z0V%#T\ܖaLcLmL_;sklG>!̨#J\k`Hk@,?i ɑÒ\,ɗ ə[+ ql`HM OI‘,ʏ:˹IL>?[Pۦ:Le\ghAk4ơ˽| +ƒǿ,;j˶(Z\C|Û β\;I&{ϻM:G\ʂ=.>.cO?r.Scmsrp ~)t< ̵M P2ԡ;:JdRlld։Uh\H 28 s*U+Rҵnm`])b?17qq+(;1PG<">c=t٣s^*y>,Y{1`e%hACi9mi^0zvsC =QZV~ˠi>`?:׏wCSf=A zZƄTw9h_ р eHJ7!a2P#2 RޕpVΎQlxgNe1SNJA.zc}[(:Gcqf]GOʉ>A"{`T)9-s =şu*֑w+vwqʅ(pܡMrbsNHsDϽs?ks;.84 Ыw2P vW{[clW>kpV[0xlYz ;G6`ꜻ馥'7YOp[aL Bn8Z-G#ڻ?y鷁NlB?ҁ6eO]kv+dܦmi% G.l7܄PRI.n#ߞ0 5@Lwo472Z5۬&B^-'vE4iMWMo $|n{ f8.ϡcn+zEhT7R<LlMl0Q#-IxL {7sTyUI Շ}?o=Ċck|OI֧iB'Y^W?Mr<ҷ[wGQ+kqeYKGBZsx炈mnQضdI=^@toxwg4E}Ck } z9}MC݆+7`_J_Dr L ]ð]l6;G]Xj$`3|̗?]A{4 F$*6adaFUCWV(bp*fO85fkfR3|B7sXtn4ЇidLqebUEpIF~y؈> Aq<Q!f8x]tugq>xh~8ChfRhC8D7hG:ֲ~u8Kt$];xO6k#<ăjoaͳ NASvCi*VUA:q݃DTfUAP8A=`:gmL?1?8!eSrWs{p~]1&^b_^`'g(Uz,uzVM\z\9UwxWUu?]k>*ZtctVK7ZUɖ%+lO3} VP)}<'[Y ESUW#wgG[_[̷cxcAy3Z'~yTsLVz$V뽐;*cIfF^cq͋%x:3jJ7 ",o T`?KE?c5F):ÅrBfXJیG˳$INr4YxO@|q5UKKH8_i{{?>g5cVPn EK^9uHgJdo9vu{vwہfNvcvkM`9sdT$5kұGetj[1EDIQxKKQ_+ɷzĴ)z*V)՗GU-E&)V?xhT 9?ETQbfKgI)sE@:#FeZvkWlir@]cG VDiL:XZTk5 ClZCԝV$=G^7]i,g@U _&Jܳ3D8SC6K 6/@<|;BŘiHRr0sҥ6عD$r>7md *֍6oG焿&5r+vĘrvd>mOiNC7S+)o_y2]w_g7{qZJ;x|p3ʕ[ׁוNˁfSm+u%Jvc oٙZJT+X9{=~7#ڻEɽ!*{~r^JP2Rnj2m:3Vbdwdad?3 ?xϠџ/C׿b8ȠʩIh9Qnͥs-^6mWP Aa~oEVG!E$YI)"@!@ G@lLA Om \`phAANZhυs߻|z5a~i38 _a a KX1Cb /!Vj-J,O>umѢü{=7o۸m/vah{EVnMi//zDo;".4. j t4kpѧsEctȹͩ +F'"0hnR#Ҥ‡P\ȼhqL "Ol/!P/3(~ k8bˌ|H>#4$} wrRJ+5Ɨ:P&@4Лt\IڤS2RZ<̫r6/ܤEaH-L X^ 輕R \ =S oL4ӴH zvh!M˳Z㕷RLc!  `(8 Ibbի|筵JR\.M+ 5/Z:x BKς/B-;yقƔ!} 1QtKK=p%6h%#R 2 aծR$uj#i ֢ZvVtJVr=B'y'ϲ˧!٫~ҁ(K{!'ZPĿ\Euvh;kCG ӥ/*&M7@ԥ ' 8jՔOw(J*1ʠɸ@дʭ+zYmk ~}#+!w1?K- MEz +wcu|!@:+8 +sd!hHAP+da B(Cif9P;a}(n&"=/qAZO(qב~xE,fQ[bE0Qc$cxF4YYP\7Qsիj"uB&ȣ1Vc /R )1b|) b@$F> F\J* q_shC䎪ʣGx64D SyK)9IAd'y^˗+/Tr @U!jњXzx&kiO-Ur MV&q"%V Bр,aOPШEI|; B$HGi;EAl7)^]+◿揨9`OSuQ:,V@-Ѩ,Y5Q dRY!c+!Z?0{UZs#=_{tr%ќfܶm4} Mĸg$[2r`HInnՎ |"}W&ZvxCDY%vޗ,uYK]Dv/QoLT$ڂa}KVMSi?7aezk,, S~#u%&qwЀ ShJm:f_A#H:YCJ5f3 j }hD/tnBhHGZ+/*R6c'iPZԣ&uM}jTZ22iFjճ5D74fYc[.(1ȈEr$#YO2lN(gLj=P$MaO"&6ę9fOyI(9I/ R ȵ9N+YWѢWXtRDz'yCY;2RK4hf"y>Ɯ*gTrȆFO PY=Mw%u0qt$dC*cTH? O49C<&  xe\t C&.JGeP{`RjHE 3PÒ %>Q1k#VLXf3bC!xEX|'zb m_>tz/aLB ՠj 9JXB%my`-\f!iEe͵DES,湅30~&ᓘb-Bb{ *$́}ҦR8NMXf m^ӰߕO!6zEpouNo-N'Ϙ(`~[Z४Pb.ȑ*)YE*M+~x{LSޣ9PIIq- !ل"ڛn$*,Qx::-ل%Qt?q8v-'S㑙Q+7Ι.<B?spA=-$He!<>GiUT-*?wA)yʚaaWt?e?7 W6Xs%eT[.}"`BT$CrmZf^aټFg]esR V?*%IV|1s^v2&ĪuCל6whfsm1ihc`QfWg-~UX>U V!ﭜֹ~i;z6 xW+xfNOy YKjrO7Fy,]3yyyyW}5-z%ɢZ툤_zɕ@Z'1zRl۫GZ}Rxɦzl&K`[.loϫ&[v-J\nXL[ EPaF|tӼߍۢNT^1/M:s_:W}ogNټt_3|FQ %́/I{+k*yw!A_ D- ap@ 7lu?Sx1턷dKEjNA0ؔH'Ʊ.{TMy閣ϓ.ѡ *ה띸? rY@$ }8d/=dK5wi<״1Ab&f!u5G<cHO?wZ>9z,>IK˚rNȚB% lrP&v}_MnҼDeSIWU%E":NDWY:Zf4eTPuB?dn;Am-o3l8s!oS&kN%a)cZr! Q"GdRx$i |:cJi%2iQzZo8gBzrh| b̻\Sc񔇏]!*XP,3;$Ht+bQ!)$fI`l6*K I(D !3A%B-Q:Af/bR$d$`qe>u&թ3uhnڠ6=szXmқ1LhsR.5NNt"J&a|Գ2XA!jIԥ Wդ8H$*SխGiճ> Sj\J"zUU*׹ҵv+^׽ABu%NF4g1Z+H#ћt~ w$:C8gle&//KI46l5u6mxs RuŒN i(-yF"Ȝ(EяF1ciF ]EjaH&Erpt>.@⿚iJR2Iť3 dΩN9-= P/Hxƍ.pڼFj;S'd;su+m0WZ Wlq;/?PgZ_PL/-lr_d0ܙg+R2 Bf\(K O{?!-qoQE {4,hegt5)j>>i-_o FYcxApIN ZQD [Db>H|uX`+>HKLJIJ`nvND_PaDّ)9YI5LQa61`lP)`6EPNM!J5P!aع`P\\qH PPDDP gEmMUAaFAUU`jK[Zr U@C=4LP\ "8OH"S#v!l$eğp|*y"iVTĒx;$8 AhGH,ʍ,B!M[Ĥʥ3mxfDg?0F3[(ăX\9}!:u'<-c(=HB&NGU 'mЄ\?C֔HS^!D>AN@I# lҵŔMؔe$OOJa= RMBaFxER¤TSʓ\UQ-G4C} T^y8XY}Vޭ KՈX=qVܝX%^^%__ Yp_&9@a5 AVVjA9fk¤efΤlX&`j%czA!21iM}ؘ`^a^_ Yf0~̄?ٓ^Hx hS \NA K:` }b}g؎Ai% ֟͠]gC,zKiJ<.^ ]6]VRuzNҝ"م@OA //&./6>/FN/oPV/fjnv? ni6a)K򖓺%Jƥxћ)^N(ɆlVR[.Lo.⑬nfRMg aPq;.vp}zZmg9&pXn"1X@ 0&*2pI1qn`bJ1%Vh1ms-mUm5qK$ԁHq±Eq22rl+!S"cJ#w loB &<2hrprNŎA(D|J%.la2x*o-s-. DHUEh]%srr3rYXs+/s0Ws\֙ӃXhn6\ĕCN"2nBTDp%_45w c`?neC Z@@.ԢBNt X!` MB\PAp'L CR (RQ 9)b׮ٯkơh &ǹ@N@2΁`~яM?8h2p#>6FE ~  G*-8Nˀ<5/ 3e)ȶkˀ?Jpۄ&'E?n~|Dr tv'Fa~ϕvx"f:\I|xe:%,Dwcǔ{\F@౏a c갵j77]kY  ^`uLaC`[,wɡ8/(|ԙŘn}φw]㬖geZ^\&l{+ @QpxMܾx qZܤָǓk|{.t@Cͫen{cG~igHmw{EvzB(uBo})U:7AZNZ!k#θְdMKa?⡏QCp:~tϸwXmI=Oj oR?}Xz ~P; Ͻݏիt2H)> O2By>EH/w\Wq:8eG.Xq5h{KHwj߷8$X&x″z(8`mfϷPGi`l2/xqvZ JteO9uegF'1hnQpy͆6 @CtE(&gAW96 P~5Pwqv%iiiW]8 ЅyO4w|{5  p6G?i7qhu.-gt83@r7ez mv_Wp@i%pcpG̦Z7x xipPCy`'qH{o؀vHkPH~ꈇ>5 0h5oZpiq 2wsHwG{d =8 fIwzLg!kuPPsaTgP~vK47b7p?{q 9eKfPm7 _X5jG},-Mrܧ0T W9#7DDxkGۆiWvjmVm(< tw(&Zso\iu@P7rVyxy(sxypc)mV9Vl^vtgܧF&x6i@@YrAZS)H{h|Psh 9 peG虄K؄OjHh &2х_faȣVVZDZ)Es("yLцf QoiǷ 7xmCXOƈ6yfKv{|ɣ:|duciƌ47y򰞽oƊȤ~iGV׋2ɥ8vuɸ·pKhhn۸ ݨs )Ysmn9 鰍b}oXY٧fypj4ftF(g8g ym:G y؏B`v18g.'GjZ~$>m =9R.gfhfG˨xsf> ׸l/YۘsI6pjMƝq&9TiXi%[keD60ofL֯j)B;g8y5:tivxctI+q6yMdP .:KFc_;IgژتyF)H۬yc@۷Ӈi8 )Y&f9돃iyWGz`;knireVk@P{h ؙ<; hH=5v<*5|]1plޚi'}Zs .왞 I,x!Ȕ'fJXSp93 עˠ7«6_8~<ڡBfnHiڳ$|8:<,d.-7oiJĕQ,OKW(_<5KRk@%aX H^v[ NhJ>Ŧoö)ׇ5%wzh|^=ƙiX[qڔr;dnMz*ԪFXSyh8h[n5[L5lqC9nxXHҸ籥7_ PgY8M # $8'<׬k h=ZVՕ~~ ij)g )$ &)ʡ651本5iR :nϙ*F뤯n(Jd+^^^k] uw`xPXZâKImZtvΊxÐ&wܔ:{ḤowVӵBMr:;y'Jـ3g9c(6e ФƫxHr+С,ZNֺWytsJd K Y| Y<8y-q8xک&jeYpP,Jʑ{Wqfe5ʺjѦج=+HgfmȌXü ύmmZT~ܮާ;w4@ $HΦcmfg2lR̳ S/]&]}Ge*˲~46=Σ.8Zy'] P>vzy;\f͵ZK\*]Kb~NMHt9OVR3*p.湦z\-^k_>%isHmt[9Y8yi،0m_>kh ǻyyyr'H_t5{hhəcڦ WۃܫR+㩱b53tKΣk+ݞBwY|@-ܒ-9b* m?_ Q 1(Sjo8hKܣgȉς+M*[˄~sVr"e& 1j\]iy+n;0ȃH7‘tبna6cwPBF<bE+J8Cr1I)UdK1eΤbƐLa =kM D @ngt@&NZe~7? qX֊ ;a… SY&r޽~`^d'$cٕ"7~:r˖ZgС9z2? s20haӣ K|`bɏc̪^? 'U!zSy:hfR׬bSN3 `*$,ꨠ@bw *3+>.+*0H}ҹ(0gHNzDݬӏ)|O rʚ$2$  !Lb#t-;6yxj-Čk.G тzT3;t%ɚϽMN;m4L#3+:tLOxLǟ!;ЁY :m\(E$g&jK+ڒV1(Ւ+2 -mR$_5\%\ Я1Z 0p Ќ[t5,h}ܹ-a1ȥɧ2xyRg7R̼cV&,}X}vv]V܅~s&f_3@ PZ=hiҠwM5Y7zl6l>Bp?Yln5T˞}ꡓE)n/2?4|r+r3|s;sC}t5}zJwucoM9lizxxo;+ZgSR%eW^o_*KzwYD@姢Q|l{,5[o5zd%I =RY"װ! DRu:rR+X'{DLDǑ}W&9;O"o]`E `R: ኟYP+8ZD,! T\"aV<5 1a!?D9h7AbSX1\GlJS CNY M2HW̚vl@9iy49^Hُu |Tq>C*mzitA"5t6(dR1V]EQ'OyI0Ax#tqڱRqx"09L`KZ⒗&% >Sn.i@86]Ѫ37.bT =sD'K0WiP1Qԅҁԇ|Xle΂-@C"w=>3ssv  z"OHϪXme_ Ksǃtl\Av./?uL?Kõև;$uq+hcUmFy6מ0r5AfSNBMɀB0p/ɗt6k=r:)sfpÈG/ҧoKd}6ss}c.SRu YjUȀҰV.;DͶϳR9X/;m +#G(ޱud_K[9fw(ղnILB=lŤ)6P8i'!-)p^ BO#un TF7_ɒ@)Ex:UZͭVXIxշ_AUЏ,vV)mctu}B=/wީ]+/2)4&cragF$; N\8٤C_} 38˝{\ Tt s ;5<'0A3+1#>鱸! ˟! à 70){ Ȳ 0 ao93K͚5 9r'Pڄa{ȡ!Ʃ2yBtI2@- (&z"|!3l*5"62I%04L2HÔ4\4+5C^Բm#l =#?ҊTA:5KLER |y$OD[02 0)/6$Q g۔ňXƷ6^iz\=:kGht4 )9:ܕ;L3"J,={7sF@IAЁF? N.%+;HKE\4` z/] x;܌48:Ad)mztk=s3mgLdT7C "_K 9F)L$GN"s蘎,; 7M4VҪ;[X9IqCKs%K,CdRHp{ȷyfg7Hr&oɠ\鸼ds¼WՠD!U92 ٝ9䨊VqYku3{Xa0 9^q9֊5VWXɩ):Rc˱{ G8Z˖&KKLʏǺG)(EI2ZNKɏ[CWEe+0ż@E7Eº$飒S{ݭ(`ώ R Ϸ YK\h^aO m; $/^A_^}___3A$_%DQ10kц_NԍA=@;RHR!pRԋ[Mv`N4-<‚$2AC1[Q@@cSCS9%ߔ^S8=>V2HlĊHNf #`TxKɝlISa=)UX]L-»m4x%Wy*a8ƁH$'bUV@F|]mn42L&"0ENǼXGeVYVA9!djå9*ˊ0u%weOTH&) 8ȓl:SDhyV6)`6>T #Udd!>atH3)4i%N?q0] SӉR  N2jU9]7] !VNr>ܸ&!@ ֺqD0$z9Ԉ Q)2EMUZmʼnfQʹ_n]49ㄝix}K޵aQ0֎h~qW<چ~hSGjmuٶns\%rjZ#vm5cf;{%ih&ө>訕pFtx_wګOImp~qVyyyy nZy_㎉f}nVu(n omQR R "F*~aXmoo`oІg +eas- :S~2?=5e,9ܠ\{va {@zv!4-\FԡġdhqND2EKE pcO4 RqI ^%HՅAf:dctd$/cFBzѷ%FN>N e#&Y/%hUL3gY"-e\h[}Ԥ_{sWg:B„ 2l!Ĉ'R|aC/MBLQaa"5fBw/%OdI m"yx CدH?qɮO{FkW&='aW+ذbǒ-k,ڴ_yIgH .P vծuBD0b@{(cOT eMI2`0(CKOMONW5uVM#|‡/n8YN? ϑ ]tuPN0N-16I,^Gvv /dxøđg5 KJy!zء}]g45Rv%] ݇5;NM scK 6L>>c>$=4FӏУBOiK@**&D:쳾Z{-j-z-;.{.kY*;/D(!-4̝'R<*?:p {`r)@Mځ!t; 'X7-dL5ߒ>2hO7սΚl/[+*'"?`& 1s>]d%ȾL)E@ L1/"{r™OՍ)DX'[˂\re 21eq2W}]/3vcOf k2' +@'B'3|ct<ԣ|9#CD~P"Èccu%MI=$~1NR4E(BL"mIBӏz(5-U e}$8H|,JP e!JQdT-3a̘$C}uS:% &0ͱ`MAr-{AJv-3j1qtbݥB0ϋ hfnj g:Z2ql))2v)+O T!* #"H@EZA6G;Q2p# 4J)q$VRrŴ&SɦAz-N{v60 vn2KVHsǧJ7-yɜnjN@ &.KX@geؾ.S83S'8KtzϝNNk|a#-K*4. ݘ2)D5_)yxaߤ۷IFMa~ϞVA5qRdtWjF9y~7L$MZYa#7wc*zn~:B-'C5y+(ԎwWpK\GGxΏ<5=dK6BFHv]y769А 5# N]S7!"CLvΎywv6]LK|>)?t9mY^Í-Oxыdr@d1@=QFe?&<WhB@SFhaو$z[=l!xyX7ɌGQ`~ SFLBx%Z7 6H#RQ&eZx1))Men^+qZSU/Ep0S8S SP 1M1@ Y)DubIb%"* fuGʿ,œF$SYqD(,!.R/"11#2&2.#3MN54ޓUDɥܒ`LDM3JD4N#X c\:zH5R <6]xW%8B0S#s$%Qk}>WIDdjiQ1[\.H=UBU??rq֋ș N~P^MC?puMڿ0N`_K\6=D_.&fffn&gvg~&h椄&i&g*S H`h&l AkƦmM&aYDmEV>dC_qL\XC0?tcVH63Ċ=PWcoKP^8CtZ*yy.Dz^'uEDnŒIU Zei;HU YCc{KNO2DNNăJgOc֣p&{XL͇EDF`%G(fAēSV`l!輈QĄn]$f ${^ Lm~|GڋC.i->)X)%ڰdihuJ%]mXbv#~(c#_V)BbX ҚMʟʝ+nJQLʢʠ6 0vñY4hp m**fꨲ&ƪ**檮*v*R+h&.+6[*F+Rki"k.ef.B ̠8Tbe7+괶+`#Skmf8p n.4J«#`knk淖f ~lL%;HT0"Ȏh,hѬbbrSH$Ϡl,Nl˚lVHH0C2C%$VՊe Z4;nf +JK,`znGAJP夽%bQZNgkbf] ;HF ,q-lP̢-S^$M[eeևmme`^_沔 fW QxV/­ɲ2&ξl@JAd&kn*B…~Ү\Fq_^+%*&"/neDZmFJ .K0ꎄ[)%ҚeH0;+e1kί]kN jt`*暭!3 co?+-0NGr1¶iDb&hb.D g1s,I H,2R2-ⲳڪ@.-0.Kr11/+/2S b0OSg&b3 t7t7{s8c9S@!B,^ o*\!A #JHŋ%>=I$FCDie.cR$H*?NySNs63BGʲ(SLg>tI? Qkׅ<2uSVdU;`Y @vй`u.[sanmK|d˷n? }Xٗm:1eL 깴Nz'ktT^Jnǫ=L7lռ;F3lʮ2iqޗkK83m؍n-0悗[2+|nc:a͝OϿC^j!, c /3逡 DB *  vhD (T(ȑ!8,c -i0 PA  $aDŽy@ƀ!(,l(0 !,"c ` C:da‰  !,*`  #8`A!4`BBLHB  !,2c)X0?U@H"@0B $' 2` !,:c"e@` ? )c>C()hA ja=B 0,AX6y@|)\a MC !M}gCv?~MψfX@ &a=L0Pv f8k|} X>*6y1lu\#Ö2 tb3)6%͓mD2cC_pEN@ Bi%}x:]Ηs\&6Y0>&;e2s16'JNRkߢ?R~{eGqbR!a<\crh{ۑ:ql͙a?KV-[?͎&DJg;i9J2lH_ڷ# h@%JQ|c MԇEec5*6ѣXH1)RmO4JϙRjq\dX]w*Sm]?z2;MP:z!_)Ak@:QF+2kf[чOg,N@@Vmvo};>6< 7g{?(ã0걏 d,E71{lds{ݜhMϼ0eb ROlcmkОibo6;bˣ=;8unpQ7Ϭ "ƷA܇a'[=}032:!5~ȍgc#96Ȏ *&4O9FdpsasGXA\0$gAQ?lfd BGUڶv \#?S -F`!lG86ڑ$1ȁђ{V{_J~oh˂ę EA#"c\g̡ui  -1WfA=Mk"Kl?dV{!S \FOULV[Ҏ=y]k#ۻt\byYsX44+:ݑ;D>no@| >8q 3ݩ2[*lh s}#=vk;ɗ%WNu4Ul7"#׵NhXyΠ"3i}|~WYH{֪ ?@(uy-%kS8;peoy]?o jDe~js& sۛ=?xU>Bl}ծ|P=C-2#$33UrztKA[¿og `Op 1iWihiiijQ~+Ezsw{7nd>MvjshKo4q'==j-O'%ky?8makvPo&k%Gq44VxP'uM^NcllneMB&y@<.n(04?_H ak͇to>OG(5#~3S1GAjn=nTfi|Efֈvp6|(<('rm|hoTC(x7S4-Plt:GgFwJ5Bd5Vdڳ/ w$y#Y(y'm^Vvc04Y6y8(kw$Axe\wvg?idlnWZSI3L9W?wy{HwDGuR 3{^6{'kdobeuKm{@cG|{ {e7ostTsPmwjމt46K@82i{^^YrdԵDtdsi>*FFg({UP2b[H{uOh`7j6˧zxtlv4x+SA8|lL? Ik$tX lϬĊ$|j\Ŗe褧7WTrCù'3^kj6DKOpw D얺 Ҽbzy0OKUKHF 4k!]B3Ҵa$3(ic@Ҋ:)=4]63;kcz $ܖlJ+Ӈp}gU` zQ~Lį1AlO<D'iW̰Y\¹t- J+DZBrCi\k{,_d?k6O٢]Mײ/Kk4Zk<{{ijr\-d^$y溧Q2wmpr>ӋAKKI%˓d[U4MB>!2.Zy!YR>Y=Ke=Wr@ d̤1<&\ނA[\)֡f꧎[JnMxęN܉iSu#I]& 6L_ďa 3Xț ҠL6W|S'O+p?;x5|.ʲa*O`vM_Ν)o_&\ذP@ %xaIYe5o漙~bREs0$QCoػ~Akv)-_ױW:R!S^8l[\?{,B- >'2?߮4>t:ϧ_>ƋE|`&Ȳ ` t?4xCH*(ܯb#m# -. bG<(B ʞ}PZPēriP jŨtI(|A*sl--; rL2qg$@ 0zBPJ ƶ&;hi%D3""r%>)=<~rjI~ ҢAE:SC#SPQR$  U *3qj8=;5Z}%rҟJ"YU.uTzD)jKςVtӵԂ}T, @]| 'ДSM63à`ʐ h*2&b܊Chj~\=n l2̡u%:$;wcz=aI|xm4B $YF)jzŤ]P6](i;$ - !-zK#]i*)|%'[ {BhkY)}(!Ę?LO(T- *thI1,W/}-?=<25Lec(4s& ?$O_X/FWcQ zDwgaYdz Ae^Ga?ܙTzPbh |`J DkXհ˼{c+TBҍhѸщP q\zUdNsVUUc%kYzxqa钷Z@?#4#9 0qq<L $$+@l8H4)K0 ,-.k]z!0YT@3l۽5;4S59c3r173.3Cp4f2 y#e9Or6?C"*l; P/Q R?T;!V[jYS5_6 \$b+c+d`é+8pBO>Nk=l®F63{rѧ3.JĿ77ʷ~ෆ7QĐʴgl q٨ )#j•8:A'q D4ãq8B8js,B9Fݢ:Uº9KC #1 !ےFʨ4ѩmٺ !/T!q3[;ϡG\IlI|ɹx+ IIII$!z;# J\yTġFI-|{wDk3,QzJ!ʣhT :xJOa3$,xC 84+sGP"2/ ڏ?j?!Oۿ/HL̽@!K߹_@ʬ L%{7 {A$V,t8#A0:S tA;AA AҤmM5☉8L(ґ1=x̢1OA ҙDћ#LL鹇[LyY 0mIID0ȐTȑ3 Im7r4HTNTOC껜 QUS=UTMUU]UT,JȬdUZ|WEPtՒP U3UqSÂ)I`Vى ʿHK#0'R/!$:!pVV78DNL1YM`S|* ;=?]}ݳW^&2 Ew ygb! rcDa①CщX E&?"~]eZax %FUޖ]656P[ 8F'OlFi8 8HPCcP-5i]pĔ\s{X٢dEERUҠeRxdd f֌ֳ&k]m>2̶,^8^T^*ɮ݄͇;"Ȧ;z^fL "%_s ͌=<ÖUwp' , ҰcN vЇU*͒nN.` 4.8 g nnB Fl:N k'N/.Mbfk*+"Ko_1OSbsb13>O؉}΋I؃>Pj7ccr!rPBL1iic6CFǬPgdbQbdlPg.eekSXCL9 W&bO_qSY}e\.ܬeLrYfR~/[je|fS .8.syF[g$qfruzpg^Ɂڅ)lhkG,驠)+k߅3CW*?yvDՓɝȁTijdOve_v=ꂋgאijgvlvmvnY3ngL_$6I-Èwܸ\PU{& sL"bwx `sMx}ʀ?lb"r%VbCm`~_/x7%I7~Ȗ !n cU..$Ty8Ʀri2|? !aY7 hBhw1pw-p_.z{㰪~ A< A.VnOkuFT ?G=;JF}_bپ~{w23gEEe^@sa";fd D e:Wt9Ƅ:#f%jq S[ =8"S]! SRҭHëts|K؂b.V|֣a*2f@293h7>}˗ϝچ&.a k~ÆwwaP+|>IfOa˛+=qÃ߱?4( .O^BnV~O=57AĎ>z? WPTmGpp6Y`o[)BI5W?8݉)އ=}O3Wè0( :gmUeLCRL>9pU(c^>w[iy"b*vOy݇.Q\SBܒ:zhryiK&bK8]zfamMBI $s}(']OuUcI}5t%ZwcZB,ZR&ݖdT Ion+d6A>:l"J$Ϛk]:\E0ŅI5}ԕ;,؜;9fkF08! bړڽS4>@s̓Z1Q[<%^wDD>qJ\t vwdfYtdʹe]_Գ=5F00^wāg7]ӬB3=ćxFsOW{.`A9{OЪ:_q~;bZ{pҢm+}>??ן??~ x@w| #J >p 4C->p|)! c(Cyp6^ oؾ~4z(T!B$N!8? @(( SXE)Fh!>s#(rqSq|@/5dg t4<@qyp Ө7 51thF=职ǐ`(i8F>j0ϩQT?`Neu|b^:0pW5]2MU;$; |pAI)-I$86h2(+cݠ5) pN04te!, _,я7=oCUq >>qrV\#t O{9!=NN0ǔQ F#~W{Uw~C?6@1p~80U\)5a2׷Y,&iV2%zdrV < ^WBC? '#R؁8]H (O54z@u|/]hЏ[DpA&]lpo+~ՉKNs_`\0G>Fqj 'NqeHvcx 9Rn,@7^l7h6Ѝ~ "pi;ߙB׺浯3PlУh 6Bw~( A1]e.HGx/y}j{>7|wOsC9AW,@ !xnx xG~//ȼѓaeD`8y y2!& zK֞Mgn ltW-Sh}#G?hzP7󣎐?U&#˭ptǢpF7f{q R@?P <؃r%VA9_m=;4. D7^^ęP͗DUAd$DBB$_Ud`Q_ԞV@?MV>d.i_ Wyޞ` DՠJ]A!SA?BB?eV9(TrOHCԡAm ¡\QAVA@a*.*?(@+".`$*$a? -͞ߞ%B|!,B4bAh V#8!$":FFC$i`&;Чsͻ_Ln~IgRջ!FLOk9{_ЈO.ݸ֍~]Ͽ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜2N?CC&ZЩJQJ*ڑ받 O= 4L? nҏ<ZÏk> N?RK-A*= l; >NÏ+i#?Vk.sj?ı@*K+b,Ɛlϻ+/A(,,̂:3*.Ύ1! ;2<#T& ;"T/N"|<B|3٦ۏcmģ#в5m'Z,>ro2=꯭ckt=[> ӵޑn\yƺ/o7yBT4C&73q E/_Oy/i,0`NL<0Ç܆6t$Ü~V0nc k}L[@:\\Aվ`/Ö48;Vsƭ=ǩ,mqs E,[ |Y}LbJ# Lp VʗkliGFw@+#E.{2NU:صXEc u5 5-b|6fd^RHO|&0MВ.;#wd d-]8R$By%5M͎.ã|rGoCTQW0a9Fw0Y\ejEr)B6m p[ V̑*wpkz# i{l?f}lYՕ,BsV> ̗b:յ]45_UF%rvַuKm 9P55H'< |ä딥L6\X$"l|@@X aū T<>JK2Gl$&Y3oDôZ.䡵rm@%Hakfcv]樵ܲͅ@.Y-'_br5oI(&m tV}QsnR k:g-wfnmŪg4OÞ@ Şmjp5?]]tkg7x4F[n hl"lFѲ(\і6B&SXB`H7r7bslho3Cg9g\IFXcojnQAlhvUmR9&a@Ȑ&dR3rW t_9fFrq@ q)I@0@ \Il@*B5Y@PA@P!shM9KsSG;}]8jDh9XqEC)paGyӖA(7>YG1i6;U[d9#)5#+ t)AY[u* ,-{-EyEฎi36)q9GM%U,\O1HIgkW[ZFxg6i*@GB,E}&c0iyHmȇ gɝJ8@ 5h\t-#lU~Z!h֟n  b H9*KXp1e&pf9Bdr@Bʖ@2ɔ:GxaL$QZU$W:3[Zfztb6/'TQ}dVp:Iu =]<(TZ 2Pxl<^Yy)cI^}<`TrZTUʩ]:5[բ RM@PtaOG.txAY4ssuHIɫ:zQW'2stTӬz u6W"Na043C651xFx䌚*DLî3x70ZAh䬩xYwHTha&E()ު@ѡ+MiKŚߘjy Qy?^g'$)E+Keg}c=wVzJDp]$HÛNQIBdKQ8%46FdHH/kS|Y[{\ka:|ĵ&RU`A}ҷ4:wjSD}] m4 wKL7l3j˅K|{W)r{6I`4SKڷ7SNLKSG+m;nN8Q32NaIf+6wԔlk6\(B#LZ09 Ga 1.تUЏ^u*;-)T%5łd˘β@qXD?jJBI(#hl_r \fVljVyЙ*,2L5\P'3ťO;IZX%hh[=Mx.JX֯ð0bĘYvfL8U\6Is2(A+I֩n(}\;{M9VǙ7fK*EȮvjoxأȖȡ7HSQsisɬ 6~Lp?]~X̍va .v)a뼴Ԩi<Â|GnS9 J9?6CuBܣ9pdKȄ<΅ld<̽&"YQq-\76Ck8s8+ :EݚJq<,g-%*LJ:jg E WTzAD'AZWKySu*Bk$<46DҶj$Z@c\nPLH[3D'3w`Y5w +iՆ7¢IEz'5x{LXk3GT0z˳5G@ԉ6x=Ls|1 ʂmmSHյK7[[_嶾|-բI@+M˝PGS0 _Kڰ~{{ᗹ0HMOB3=LC[[8Evb٣T۵;6ky6NG˼N&x@\,,5CK䕁f1,@ 1Ϳ(8;&=$.̪z6-^02>4^6^)}F".:^$hDj@2K9RqA xLR>T^V~aaEé$9Ȍr֚ Ш=ng t^13&B>ݰb lp,D:]t0Wp0ے{?WJ6iYmLz a ըGw&鍨,_GqG+b OF ^aIƕUkOћƝ,ana݌V8ܳI,L?_ξ]?H86ƋRO|6M=FAo ㍫{8/&Cs[a̳yI@Ţ7PdaWs=ľͿ/ŮΣ`刟#2 S'_X4)薿*rZoÀN\ƧP1}raT{,Ig>{'m[\MJ4/;(ƍoZtlX5NOO=9K}|LPBC5P`gÆvTʟMEt,W`y+oxrdpV@*VLJ6YV6NG.*4"dW Ȋ#3ZD>hw+*\L _a;ocKkYDqTäI H5j-`]003R!vߓ+7`kfmX= av RGܔf=2%[M7,;V\-]~ܦ[R#+CV)#6.",*")裤+G}S3(#ԌҰhԛn]c^mQ) jm={tw#blPY, 7F}ʤ$ ,Gɧ#]W,+}Fc+11֌J{|7|J0o>tH \Po/P$ NP(!<)`t.-xD0O1AD@EVTI K4R7ibQ z<,SQBC %#T1`I8‘H[Pvlꈻ bؓ@n#KǸ"| P[F6j,VA"i{M8nj nb@qHjɣi6)D&d}d%SFdq:,FG[s$'j%Fu"j)/ mkTHQI``i$t)BLmCtdjr/X9LIS>y$"6(5) 9vAjڙ$F$bߊVTRGrj2yUd╎UFznZ"xmYuφkTCxMϬуKg<ӛpGa~\ε{r$ַ45xH|HHTȋ\HHlJ I PE4À Ie }\>4/~ɚ|4ʢ䋛Iɞ ?Sʘ |JT3~Yx8ZPtJsxUj0@kz@8(_OX` ˲3=#mtk:h[?ႻmO>[ދ0dO>C<>0n+/0 n(O;r,P?쬬*;lK2Ȳ2- ԱC{* #?>溜?4Ծ#tAŃ5PW󼬺OlojCvgM:.9 q.sʧ6h w;O:|D~-+C: l?~#Zq#$6#зzSs{?[8˞;MM|ʥl?L<Ч?=nX^ =I ]z&3mlB-l9s>l^,&, {:p0uGc'!$Bﶲ2N'H|H*Z1Lȩ-T"8daVF.I2#W1!adأMHZÖ})[z&yKV"IG"L6,?FlbG6ZJ|lƐ汤dOFj,h,_[^Ӟ5P Z& 7Trvcʼխ}camBxۙ~.yN^FُSbsϬkٌ76o&4{|T_8qFK?Q3zÝ_bha>6L=n"aJgK,^"};Z ʐ66Zη-nie% N9([XrNxTyV5,BZ%Vm%"惐%hG֌798Q/1{x>Qʝ!~LtL[+u6{U=Kr%N!睚x{R9w;ogM:mllkdFWP[ڗgOMRdPI͖UJa#Ͻ|VsMWiɾptX[pnl 5󥯠 ֹVMfq k-oNc,U(5c_i~~pCu֒փ=&adFfqt)c7b}.* u$~eTTsx9IT@{*]7VcV_u7Jcdm%|~[dX{^%`X2ydj8"9z+!GiVzfȆaurTg`@(Q@xu~x@HxX@PM@PgTGv}h< 'F'Z`xd[}؉H8H<CJJ8C>KWj@*OZŋՋ'vX]& x (T 3E&BG8]mw]؎)88MgO~Dc#I@^pLot~>(X2He珲6WE60U-)iF|1i3H6(PG6 e5<,>rcUt:=|s/Q,FaiXxxUdY@n9ѳPvQZG\hM@@􈙚@hAytO #NQx{pbx)z[d0zIX~z͉Frc֜ ln$]9Aל[Y)zuy7E`hHhDdeDgq|1Yuhml06iAɷ,f*4Ih isIOJ';l9/WI3JAbbrIl0L\1A\@ElvɅ}CTJNwl7=K 1[J}O ]v,ϖ95P7Yeeor(d7G1^n\DJ{Eʧ#^]r"R n}^53-`:*:?iJ(O$8zCVㄾr\PspPOBn'y8|,Cz8b32O'Iw\?ipȦjx2"#!d8SLpaK 5Fl3ĵGԵr;ʿDK/ jldʤ eF23^pHG\nփ4kHme<v6*Pj4<~X*؍lcb#4ôR|O*9,p:|[v,g!Tm(ͱGQ<[{ ^*sla54֪9Hi m)2'Dhi Z n }|CP ̃tחUE2/jBúk?r`-Rª~B[B8 o!+tMfwpE~ZY/&vcW؀،؎ؐ22ͮ)0"C#Zٙ"sM#"뤥=#% ڮڰ۲=`+d||xL ۡkU)igu)\ťFkǷY6 VyܾǚF=ge]٨F *V"͂:/z.ᇢh80PsVtǣ[˛NIù\f`º4H^Bfcuμlkhkх\YlRU3/ûc{utAEDnD<P3ynr3gYB X,s5NC_n+&yF^Oƾ!71k+7+aStwm<0^.>Z5adnSZ JN*6&(lUdGq8cQ8l3rB5P<>N*¢T+("9ZA}ըFRh]yT1ž$>wJibm̵L(4bp>ļVn}( N$?>^E^EƝk*>ZfNqd\7Qi iG4 c|[O q|N|:\Z0\~K;!Xum%6a (C**\[Xr3ehI;^Z?4jx38fO-ӗ}/ Q՗aa̐l6a(+L@-=:_L{SCv@\D||)(Xjoz/ҖAy ~S&X]/sݧ.L/  J `2V<12.sz-2yR!^˷D0"SLDM3ar97la6m:o߰ax>z :(qŌ>LoÈG4Xѥ<,80a;Q%a$ZQI.eSQNZ*Ņ7)fM1mj1ubj(}Yʥϭ\&R˶H?d |.Svj1A@MgСE&]ixvϵ\~1l`)9ovԲXa5,[EI#S`3CWۏ2jկg߾걲f]MПy*TՁ'N\suW^{W`vXb5XdU6W9*ZiMКvDm[pw\r5\tUw]vvN Iܵ^|хyS/x`~Q+0va qU&2OWEb2HJqdçwxfkϐN#0Rȫڡ]qvBh!xjӹP-"k,-ahȣ6㤛K0:Z3kvwSӍlT>~Z+|n9w\oǹfkYoqK_6)R+ BR,4.kȳܟ_RtFE> 1O]nWQRQg~{{|٥Vj۶|w}~C[ة ]5mWjo^\ %W?NK+ȓ(9)$6X+L`rБt GAӠ3*`6VEPpґ|,:?Vf(d.8J9]({rs>+d#!Ρ([Do+ c Їߠ&6 "B\B`?}=&?vhj>Ph'5AFr2HGGc%i-{9c)1E$6(j\,  ,KLZ_&h ȴ`'IeQޫ?5D,o.'d\ffL9ʥ; Ќd9 0/,T&'igR\1I )GP ;p.ĕ$";^"5be,'2OeVH E/@n^ $qB* tɏ`, ,\ r&*.j@GJEӠ%d9̂D[Le5@ԘC!dH'(ghڄt*s,|}bю A0Ә҄XYŒlg=YІjݢ*n)mk]ZVMAՒHG1!m}k"*RO[uiY/&UQ.s p.weA`P)e/ԇ7UdI9 k^)Qj zV$I)BW RP{` ձ8c]&róHjD.Wrj#26S*;4iI"3SbD(Q¿#&O2ƗOA?knE2z~%ZWc,c7ݜMOc*/Y;Ro{&S$b Gs'{..[)̶ 2I--^*4A28dδPG"yEMZA3iIyh|dLpI(PQފ!JLfi, Qk(T(kaɺ]I fA4Mez:^QEgb}nowfvXe i2:wo5krH{7V(nnqr4_qΐF 4#Pd* /jr\<|| ^ׅnDV?"KBNJV_?с]qZdRmBԄʓH;DOOѳГU䢜;zuW :D;(ho4Vk6rC,07/*:,?\! A74+AL}<2-AA""{.*{=t* BM+BAXB&-"9[ 1K#0 /"J B()-1#="0` @ +#C yy C *>'3A˥ ʻ:a +#1 )_;';JAML 3%'4Ƙ2@6Y-3/g5 Jˍ;c<Ÿ$PDۄE*>Y3Fˈ5K)4P>jDp)ś *B !d*] ?^w.g6ieGpjH$YL@ZlIPC6Dz\ɚ;IɪP,J4JDʞlJP7Jt9~^1׀psoet (JЇL˥K8/8J^1/~KP}1DˁLl˷t˸˧K˼ˁ_1¬\P 4̥ˤLp,'&׈JiHzp88yhJkwxioX J,M`z# u@YJUx dNSsxUj0Xq@`'x`tO4tρ(wpm4 ZV&~_~$e1T t Tp}.rTJ(~2" jOd(x~p.npL,-LʔR*R<~0PXp}@[Yi臲DO|R16~=͇S?@ԁЂ~8cȇQtK1P|e_~h$$8#X\$O3OPTR̃(ρUYa8| R@t8?iVbE gl~ rt-uvS~7Nk8֢ȁhpnXN,X8X |$]~x%pO4d]V|WV2Sku{~ptUYأxQY7-K} IiP-R0Ux(HY54Pyf(U8KWXH~"["p~U\`V[[u-NYoW~ 6 HۺuW2WRܲЅ5~0x݇]`~R8`Q 0pS`܋m[(lR@R~x1پI/~0/V^`^^mL\:n-\JCFNd !j,(QW H*\ȰÇ#JHŋ3jȑ0<Ÿ#:v 0XK HX 9sѣH*]ʴӧA#r! \axT.; 7D'AKݻx k10#Iɾҳ@gh:F\ԇ4q`ܓϠC}QZ_0fi (#.ZPl2ӈ=ȓ+ a-S"`Q P^ Z^Ͼ}',Lbb @=h8 zq( UhUA`@jdk b@)1$J8Y8"_uDO ##R*Qma,@h瘓PJIdifp(A4Z1 \P @qٓi@{袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ꫰*무j뭸뮼+k&6F+Vkfv+k覫+k,l' 7G,Wlgw ,$l(,0,3A|;V=tC<M?0$CLӼ StAOBWB\vAV J[囼<DtΌk03@39]~=Üw[Q 3&w|Gy,8 V[ 톑 ~Vߊ4 d{^u-t5£hGrt?;Ή{G^AkI"Ea{a3Qφ4ZٶznF5^h9?MgDkٮ8c^.\F~C;zc vHD"1z\_+Wx@$d!Ww4)lL_~I'nPv}pmҍy Ai#`Glrf[6ϑ'Aܡ?hqTy9xwfs~8+UhjS'9|jճ*RU;XܑQr'яer (%ئHRqrxmF=Ah* aE=wd:A=qQY͍o@X-UuhHY%"Odv"n}+C^8q/UY־ZF>:#n GHR#$B $CD(ؼX֢Ų$Zv1Et+VA8*Am78H9E6wUrssRgT@/}^`=N[C!]n{Izwmn}(όtX)׿u>op׻2\Op.?OkbڏQr_;?UibUשe>gg"ÞtC!IoxCZƯSTӿ9@u愷"IMZܥsRzwn|'qhkM< p==ūtGR]ċ }KѾر);w59W-_ϔ߉dB}l~7\hgPx8x\ekKÀ 8,({ݧ8#ڃ``O(xuEkTD3<'a^:ca` a3aCœaٳa&*US46"v>$vYuQ'?3TdgTbdNwA'cvfwcVc'f+fO*phGStvևMgADWj5XDhN%o r`jnF :st;3v&:wF4Vͤl (o6r{Eto*=tJdE'WZ}$XK.'3Vhr6GFZV47(*ee:GF<7@Fd;]~R@a'sOHaTΦt5geIUv|yG|vwvՉ)Qu>7 :xE_gN1U^$U7g5{xz7UzX%ʷ22249Z6y&VA~WCIȓHJҁYrE9%Ȕ巓QZ\$N[UiY[wŕvCh!(8`M%KP]#VkETW:D9P%Ga(|9{-Pѓ;UT=gAx]GeJ_n=6~CstmzmScV@TMFAc?=2%46y9[VWd~q.V;S¥dIe6B`v)f,g HIJu6}7<&18@uH?釬y@%8(~f9slET0eIuY8<[smu#_)4g+ZsfnyGlRckwL8o *(O8L9}DS]類pcSAy&j)lEgt:r%"鍞tQsn䝫MAGNdVIaPu846Hc4ty{9s'ݘEh\0/WuW6Q wCZG;H{"5z_x~y Oy:EYQu5yàPisJI/ōz'#VYN 6p2Q~zWFiWBڭդ}clו!5Zgʋ6fp|f[SI[% Hy~*ڮn)"85|J9=&`93I7FȃIؒLJN9mSbl):mAI3ycg?9CWДcz(cZo `{|Y0Wf]VvzsTudlfؚC@HƮPjN4qPLFԟԆ}DhN$v +:; \&FW9砉 j*zB7GIZZ94phȴ^+ۥTrߵ A%rJ׽FG44#7;JETԼo㹠;Ƽj4?4Zzl'Jۈ[*k'okC7Eׅj_lZDW3$P ̏ySA7hgeu+u:Ww]*s>ApGFJvx  '1̩u{m;. xfZe\?z.zIj|L+ޫ^{㪹,yܒ*a jɒ0l6jAvE9:ϫۊ[Dyɨʪ/rye1⛁#)@9@q*\z x˸5@3@P 0Μp; ])m=Wc9K8?<͕b;bU5s@@&#&yWӪcwITLN=>|4 <=m)roݷ֌ْ=٫tL [J}y$>jxJ  2 17 Bڰdکٟ]ٱ5Ml0̏b܃g|,_#jVTʸ ݷД4݌cc5@b_VBe4HH6 L)$i9;@AQy.Ty|~2Nݷ c?3Ѝ ~GmnY8R臭-׻'(NyUNH#21^_<=al޽pZ~H< >(KЇGpLӿj wyشA .dC%3xpx(qS W|;oX~,"y͊6s3y3IJT'ϝ.eSQNZU.܊Hjpfeۖ޾|^Hsw_'S~dy{2 {7!Πe9-cgСE&]"8Z5hHA6֪W꾎'^qɕ/gpa5O^uٵO^H>yկg{ϧ_}F/M'DK0ʒ *p? +A⧞61P*cD"pŸL$/Q  o$џ tC3\(IP )%t*; Kͫ a'wѧ2G$/L{҉2Tz Zҟ"M'R2$ P84/@(PDjKV5r`L ȉ q :jŐwZ)Dy")Њ}15QGEN= ߩYfe !_9a۠wF2R)G 鯄̪!`b>J0z>:kOz ?]"'ܚQߪi"H{K%_5hd@0挷ĭ=d˦M(1jNjx R\T鸄S$ej?71B/F r Rt } '5HA ~ lل ԉf _<ШaਐjP7#c迳bl0*ӑ5HQA|x$HsA!pР9yji x}+=Ap #(AȽ R8Z6)qҊܒY!- 2ܜ(;BaBŐ: ?ŻF: KAhHFpG˿ l;ğġ4\Ei$̟ƝݧY9J `[(&a!朡~50M LːYM͕AUUي]kD\':TNkLʕ)k:ʛ͕զ Ƈ*@Xm)UR@v,/u`b!cź"΅E:%\'֊؝8=Fq Ǚqc| 1tוZ\;9iܚ^U*38>+2eT^pYZ٬pҐeY"Ve\e]eSCcHHeb]NZ=6y1e,| >QIVi9}yӖ7lfga*@DdpmB{iVȄg}[oR{ޘzgJTud`cKT d .sI(¥c[>"2\pB>hK))b^UfyP $sPV aUσЖ{++X$-֭1%۳1f/-'vX r:B묃 32u@ T^-P )DXk+%C..QʦŤF8EM%j]1ՈHȞ U Wקg3` }k]!_ 0JXxX9oo^3`No^onoavr(fI-u ev Ih%ounqnB3gO v^hAt`R؄@!D܊`7NKHL٬T^,W+ojӊ"ɝ`HyP%(\&V`ƌ ^)A' ܗ)|p8/kMhE>K#RO>J.DRNCV>t_ECEU bkֈk+|p1=5>W~% DF *jx>9aUBIJO_O^lxQ@lYQ&2 l͚-w'РB-j(ҤJ2mN \R*֬$7 Nw0'×0}gj&YsGoaO4eLӰ`/2n1Ȓ'S P3ТG.m4ԪWn5زgv-8ۃk7‡/n8ʗ3o9tѻOO7ڷs?wynI]+͐!5]?5[OBS`_3GzN6Fs@wǿ */G=\| @QP  =^.0,aD T [<n3 7/rC` %x&q}(??P\p!HC#0 |{G|!?;vF 6:HhBА{|XAH~0%t!g>NJ0N6<%*TɡVLIҕ4[-C[G !,Q7o0S<0TF9#I&3 )H-OƄrcĉ&cCQ!7,h H*\ȰÇ#JHŋ3jȱǏ CПɓ'I\ɲ˗0cʜIM(s tB *pw`1E>@ VI<*իXm|NTJ+v ^M "c̘x( $@T*^̸ĭ]_| Kr,сg|+8"\*3 /myӊ|d|B:/;Zd' '@<w-T!@2hv{DuwD5|- ,@XB%h`18F pC $@`qL+FX 4h@/jȡ J$ ӂ峂)`^D^ܓPFp^e4@?T!P,C B,@Yʬc^)Zre?bi?3ڥ@<|a389@HE"Zꧼnj?DP) 35BtC SRvQ)`7h?H`O4C/I@;c n9B)+PЏy* P2DA png#{3q 8hMEr8a@${l̲@/K ?mh'=p$D2܂\$nq.3u `0' #@8Mg?1h#B*1utۍ<3s}w ptNjιM_w t1< @g43BG@NzCoܥPF8{z=gK5X@DO=Ȳq D)bU9AEfdWi"f<0!0)6u n0!3x߁GHʸ!*N.P!R ! bBP`a?\X2$42 h01"+3PG*g}W2@61+L-b n(E?j%N9 \? '7Q $FCq6$%- -v񋑜d%/*OzUa3ɘCx ,*XO @/phJPjr4%*UJA(_<  3A":8`>+zUb\Ć, H*LP(04`# E+`7`A@LY)> H9@d(ytJ= HNp(9-#JRB $10JғT,5Kc:S4 a"P Q"8 nhI"3.x8@op,Vr Lcf0׆U!^@bH><5d=H`JZv$;_W'|ef!kg\p2r+|HCF;Vͭnw;:-"+]\ୡepAH~tZnezZ# w/qK׾뽯~_淿ۜN;'L [ΰ7{ GLaNqP\^{Z+g|X}1w{Prt"EE2pdVI L6ge8NeTY_nL}C.&cmf1gg3m|宕Yx^Isgoȟg}9#&HDdh (MWќ"ch$>W邬ֽȭRSuB]*x@nR=is3v)GΆ\=A㶥H'aw*ģi:Y 0={ 9wmrS{oD8@1o 97t7\f:  @O;q iHQ6ă*ԤH)PȔD-Q|gZ_z t@ Kan(F9*钒,e, kTRW p|aBnt+]F@pAQ"T[g:AL_}j V!; ,ywS+0CbG]y$v5a„Og}?ƐO?%)~O{Di@N&T,aYGOOdT0hUQ9UyDT&tVj4\5Gzї\AvyQ(%xP* x񘑹'6kI)i1q 84A9 ٙ{HgZh^f™ke&ab65-ũVI^ֹٜYg\cYkѹ5Fby虞깞ٞٞIk9 9:Zz"Vy™/1 :dZ:Y8vvʙb 9AV/v(Z*$13ʘ.9_vY!ɆBZhB1lOFQ : Q EfHJz~a1kcVi* Ep@xw"Q*BIcjljhjtJp^vJ *Xq' _ŕRBwr0r#5&To' rlWpm`sgq Nr-pm n wpF.7$K$ !N2&L @w`bSM* :X UjpC$ 7rw*bŨ[FI{wvSzyW&euJuGyb7! s-ٲ-WzOwv ڲ P biaj OMQ2-S4 ~*5 BP~1W(}AgZm!rWs|Kvq~+X70 ىVHV p EPR˹kӄX@e$:hȂ}Zȅ_[SXU8lqY[c 1{8ɫ\%b3sк)%Э{ m =yC|fmͯZ}he>ʤQ!1.V .KL Z̘ܡ.KJe*n,;E:6MI1 _ N}[WR֊z,KK-mMՌ:A1Jz …z̽خj#Rƻګz:V7ʊsj nJa}r#:J ڰ}nqپoJZ Izpu2Y)}G, [L[[wwToyNL7=s7yi] ׳ز߰=,;>lfw.:K*+w?C;kMWAN &n !2<#4[k^bK+ ˶綆U0WUB嵰]AFn;۵1L~W~7S^9}H˸i-~X񹙻)p-~ -T ;\5 3Q(7MkQ>x8T퀭-CBހ>_L+&H&k!~m^<(p웾C?H b[|Z|+;]QlȊ!þM h\uZL5O`пҏkυ ]Iܯ2 ҸI $XA .dذ@%NE/4j,G!E$YI)UZnλQ90޾8Xp^yK6kZܜٳşM*/AҦ.x愸g^9 kز#_JY/;Zd77M.5 ̡j)k1JΡK'諆 :ySŃ@,`p0Q ָ6 2A>o@@/;hrh3ܰÁ9yL`e26G-ǐt9 WfG h1""Dr6-V*/a zQf;,&#h2n'Zs~!2:*TOa}xeFnd s'~<Uԁ0"y cj Yr׉vu VIVtqbMXdeVjhTysf)F%(٧ˮ E51@ȉ/*ہMT߁!~TYQ7! 6v (ą8Ą^~ ;( `Ye%Hf^J)BZ hfp֙gZff u'MuCe gX0޺$wSSzo3R ry5E 뙺ꁚJ~ ?iDpl{&Hh\$ ehٟ97ԍf@|pL0e $NHuh ~7 ]eixYMv~kHq5<բƀB?ofg!IYjֿP@B37ceR 0-:L pw7aV`?iXڶN .V*8DM :E?ġݱk`8+LF  XF?=5эV`jSL cCw~Dr$/h g N!u0`|3(!A94H+cItT@=7st%,e9oHxBzL}o]ќf54`# E?2~h2^dĈh81c> 2iX eHЏ<68( θF?e T%iIbRPT4*őE"؍t D9TshZ괧" jNR$,agNiS*CZU-*FU/$]ʚ.QIg;*nXMr֥+z5de%rY B؟ȵ*e]Z0lYLZVZŰuc+hp=.$Pyn< 88NrԧD}wg A* Wnz%ȄF9B IpW<~A⍐+NT$h @.hE-zB^ DX"ɈF6:-ѝTEe@ )I~pKTNMpt;iO^|5ĹÈZnHL BLl'Mo(U/2#8ApQ{@ 0:X)z2T* VpK=Ed! ЋJV<\IxkqAUW~_= ͌m,ђF. +\b!2TVݏQ(.AP8;tngf&_Y*--nPZ?aMkf5q-mkôxȭp5ic ``݃~!@ pF&W56DJvpYsK\gсYcnZ~ 42֮[F黣RB˾Fz@v!@ %}>MK?UFkYW?^R)@2p%E`@ ,X~@oW V>~ +@P@SYkBor:t$ג2A@zR׬xF!)A$IZDUCK\M}Z(A=f[îMe} ›+d -d/$e+(|[=_Q\*\ͤTčdc\w4\YEJܦ Cu(ǝԼˌO:\uWEiɘp0~%Xy({ {]]u^ZтUl] ]Ɓ=28tPzH0فxUZFy-yT$ߪ Oz.@_^V5hX7:Y5`` { .ʅ)2^mP=OA!E*E PSx P|e V̌kLCXt;MqYNaꍉv] "jЂY1 c]TYO'NLbM&.n/0]p%|y@&Ђ~ 7.F?9 Rܱ:Ӕ`;96 T)d>Hd F>EojZ8/҉~崅 [ P ԃ8[= =jWS# %RVmeֵe0ׁ056s{$}6x0LSvv8aa:=ׄ@@dKقp{YYqg2Z= { f v"Xxogh%敧\)h%gY-݁:5˜imf[ CNꐠi jbiꦞDifꨨjrj@ej/j'C vf$k*؅ݔ݂xO]fMXks^pli9pgC:mhhZ_\jop.7~ _(SpvC6 \. 'i38 Ng^ɀJi>faT!)2ÌaHт&"+ȘZ ' &Rpg0$hh⡆-F4MbWNtIWk7 HVNdFo.^pl@1yZh8oѠ㡾cQL{c37z7jz8'mc1x>F_d&R1R8%S:~ S'8qН w2x5 dV]妒ghf%7jV=n۔'e` 3W tFgvHG9Xvx`tlp_x6H}~gw-x(ߗ^{~@`?fRx}F_G fD8vJAx()v`( `c2i@Nvtabj2lur",tObzWdvPۚ5yw{WwN JۀT'z xm|jɁ3O6n fk_xw_x(W8XzSx<,ywFaWTɅkEمx4"/  (~e6yuy}M7klc1 thokԍ~xoF}-8mHqH_{4"I~pDs!'0{p!/ xb` IWf'ԆD̷ʂy-A}nȏ || tR ]ib%oBoΐ]s}{~o}vO*:}yLtXhz@Wnkф0Q#H@^~($lÄm8̡*) ~ܘ@aĔ*Wl%̘2gҬi&Μ,3)gT?*4!9ʊЯ?f ]9`&ϥbmbڏk?F_e0lq޲zTB gT?wʩ5!a+^엱ݼF x,̚7s,5F$ұ6`j1xp 1ALv?iնuېQ&!0૲6~LJhe9~h5F`\D#.nh~ѧWO];= `= h <%r9-x`HaBc;=x Pp"c∶Oq/ l$ -OB#PP RRO$p+$c# Y)&mfo}/:OrEg?z'rZ/-dώߐu) k؟uQJV@ hA DyBa_oTVXB~ iG's еLw)[B&hXD7 QCno$ I(<b F*V@~P =Q@P BaHH,rJ-%$ FH<@9"!~ЊXbBpzCx i W股 ]E.t ]QÒ#~B62E$Wr]@!sxK@4ҌR _CFWR| 8sts`yǞ+Gб|(jQ٘ ɚf mŸx?8~%O g A@0&2/"!  (Y\6~ HA"Lc^) ldSp X>Ht,HF#咒 )ڏd8(:Ƅ01q("S|PQj`ˀ;Iw&5) 3TaԊkn Δ(9΁tIqF}W{5w? P m`nw۳hur$zCBR6cFkicf"St Y؏ $Сx^ϼ׈@4|pFvF͘-Dltc:!5Hc0}`<]F\g[Kmﱏ dVJU#2Ld?6ʢ A9!2,ٔUXLp9bD$B[")"!B"*BL!"-nYbЙlb+"XfZDT 06c%F aD4jZ e86(DCʩ*J9:jگMN#8 [?Z@=C !cBO,ϿKB (BB@ϗ[yýy[Ca:1NũIùyI Y D3-C:V8A< H$ўuObIYMGJҤU?PşB*W]?]BeYUQ±O$])ePT  XZ"2Z"<^K$D9@C.<_E%̌f%&eeol2$ATc6>܀| >:5'_`ua/ЀHD>V<X!l!{.ងJTb؄ >4P ^J}$Fɖ1)ɢƙ(e)#XBʛRbNg8&S"b.G. ̕Jbb*h֞=ꢂYĦD~3b,:P5nō5RZ&8dj%籔㧊*D.<ΩD́=kC$+ IAVH*v%DO.@ (D@lO$!G[E`YH"fbRf-=DpMN] eNO\UړP ʡvkChA<:C-QN\A,q4ekk2c&NíUD#)meBxaJ^߽]A-.@?xڙ*e\bE`~],2WR3`*yt&59mS.2gfBtmӵJBd?@dh[vٺE'PC YrZfK .QMmUW`_DܗKH.Zn3 Rds.vjw閊,FέC*.' _`dJhGV`?oKojg30cAV_% (o^/:Є`DH<7.Í(p "'- vD~W X}կg/4C?xWA[p*p!aS< 8Y6D-LqfCt\ 1F*d蜯i"6p1na'O1M[bL)ؤFk!/1#OYVdGdYwKhY;Q5y_V?\`D6'h} ~bfNChDSO7:6/<HD C^{0es} ;{aW!%(& LF W:hhDӨuz&_IpC|uLPqD;P8;0A4ˋd*= US2$;l$k;Xo%%i&~ q,3Sʳq<Ǔq *+0Ϳb$> `F(|缤i[)X-wBP2rgƨy6[4S|H}hsc}s׏E=ү=3'mRaMk{ hxO+DC>d[@+H봮L[D~E۽}oKcfFKJ}(5Ͽ%SK\D` >QɒPjoTQ[u>~'Zy5|Oթ'J8~ޯe=d6nfonQ%)%q7mӹRh j%kk'/DdN^.w6׊U?^4lbˆ)`~ЃxF Eܘ@E Ι*G$JI6!#ZĨ/ B3\TgV[vlXcɖ5Yk -شlw B,DW:npÇk⭽pHp&LADr j`ѥӉ(/g ׄ@QՊ-W+vzt!V~lrK1xq ^c^|J~1Q"BmQW 2Ê~`.&#Ȁ(Ĩ[Yti(@!`C‰xQ!~Vbν}H }e{lH$d1v`ǝ$@@4򱳆 B6LX:PA#$(%(@~ΉҐ9Tҩ аg3\u]e!0aɼ-x@ v]Xz88"Z(}eKZj]>7c[Mv wٍW^e+p){\nP^-ފޅu0ʷ}헯 ᢫d=XM޶ᓯKaK!qUufpNx#{.oFci]khE$*Q魵ka,h"lvjj븧 _80{  >'O}ȵWгj[u.YYP׹K,v] vAoӦh~KEvDt_/FOVg2DrN qB B+h ‰ >QO8{0@[e#"3A ҏ%6ɂ!(l"Npql)Rъ9a0`nc/:#dQBjAaR|@]pDJ8 q|d$'B1x ˶"@?8 L{ h%OR̲yf'_@/}2]5@f!2b-MҐcsZ!%L:2 !7Mٱl#eDpr$9<0a^%D i`$ pP," mCa"2,hF7ћĠd"%VΈPڱ xC7iy'gfM?4|f!MD3z@*&5l$r~\jD~l&ь D@Y!LEHSٴmi޼ӡF$4GaXP>;ti'@*PT!9E0:~C\ m! QC ,D0sTZ"ִ֒U0Hmoz|E_&%Yױf.%HJV:D wlN M_d7WJiNSԧ?jP9U ! eP-DEPZ L4`# n8U\Tn05  KJ!b, +ed-Y`"P V1:9NuZM*C\1B]J*D iVs,=eu ]hc-YȢg>CY M8{fJ\hG?:i&!FKә]"DP[ԕ-gB"sfmjeI=Bno˯Hq y9TfΖ2i:vn=:Qd׼~k7rߔ.熈;."o2׼bv|\*z^?me ok o5h k×(`b2~$ؠ F"P>9 qPp@{7 Xh6, da,ȪA=G?%o*B$b?x`D$raD(EX+f+x4jI=4ҡ۱*] { hF4d7!o vDG/2CO e .t$$% |@0(EIt~ҩ,[v;"D;Wb14"md{$1ez%o Dx_3o%7%OʷNV `Nv~bC= r|/Op#V*z,Z +aNJw'On5O0J8ʣBJI5L& "V]Jo-]i""c/.H.ߔ53<@+ "JL b @PT6| A54+ oˮ"B 'Z !E!J&ڮM.E@H+mM?L`&&Raf2g:=X2':&`М)R1M*riB(c+W&+reR&)-i,Of-U&pRaR$"r---_,,۶ "!`ۺ02GMosP EP2a,2SG؍:HVj6`X1UF/"'{ 6."~h @`Bc*tszZN44}D:"Qbn3h1+ DGtԈ"&GP310-] " &j0`RM\Z8k"ógGsD/EjEݣEE4OB AU.L?p3 ЫM9LF&b^c #N߰JJ#K)4'Pa <ʹ"11B%q"h ?5rѸAaRi˶`OUtq;.Gw` AaYJiXe}$fgfqza\w6sNHRYO-4+=iwgx9gjV"XylG77?B7OR. & 9]""d"o}ٔW=)Br.w=nYYhYs?7t#.rtfu#T#šeuiO+rL-)if:]x#B fG2WHw+xmLHKɥk}E|р|W$~J?){+Úwj+Hz" Ӻ{ ,9 X$+gڇ"7k+HK'1,1fkGOT_8sSx[ ԋypYWy+(ŤX)-Mfzm E㉣xȌ &[e7bxљh[^ۣ_'yٹ37=f"۱cUW ۔;[eX + j}Iw "ې0I!ƺ2C|"hvu+]z;K\l"bhj= w~!Bh.Ɓ%'b n`FܽM\ S71j&Z %V@Ƒ # @ S HN" 929CM \TlZ ZI|Q\EEo ηZ<"5bh` @AGb`\O  "?#I_݇=34r<"-HЇ 7d!bj(a0`"Fn#ڧu (< T:(IS2]O)\dO9$|p@ a ^( !E,y.A9'; z@7@zICCKyz/9t@%hG!NA "బᮈ!y非I C"p˞P}~#bJT~]$\^FEQ%|1Tq+"Sj P~QFO)'M)?$R=?d*}~cW~Tq`t&" Y MlSZ}/ '+R%:%Y]vk˴o>rL ]96 =N!-!]gBe"~ /„:|1ĉ+Z1ƍ;z2ȑ$K"\P X&z4WVyٵ~(D i=4ҥL:}hч8ZXUbV.81TW˚=6ڵl!<,^ H*\ȰÇ!<,^H*\ȰÇ!;,^ H*\ȰÇ!<,^H*\ȰÇ!<,^ H*\ȰÇ!<,^H*\ȰÇ!<,^ H*\ȰÇ!,^H*\ȰÇ;pspg-0.9.3/src/000077500000000000000000000000001324002717400132635ustar00rootroot00000000000000pspg-0.9.3/src/print.c000066400000000000000000000542611324002717400145730ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * print.c * themes initialization * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/print.c * *------------------------------------------------------------------------- */ #include #include #include #include #include "pspg.h" #include "unicode.h" void window_fill(int window_identifier, int srcy, int srcx, /* offset to displayed data */ int cursor_row, /* row of row cursor */ DataDesc *desc, ScrDesc *scrdesc, Options *opts) { int maxy, maxx; int row; LineBuffer *lnb = &desc->rows; int lnb_row; attr_t active_attr; int srcy_bak = srcy; char *free_row; WINDOW *win; Theme *t; bool is_footer = window_identifier == WINDOW_FOOTER; bool is_fix_rows = window_identifier == WINDOW_LUC || window_identifier == WINDOW_FIX_ROWS; int positions[100][2]; int npositions; win = scrdesc->wins[window_identifier]; t = &scrdesc->themes[window_identifier]; /* when we want to detect expanded records titles */ if (desc->is_expanded_mode) { scrdesc->first_rec_title_y = -1; scrdesc->last_rec_title_y = -1; } /* fast leaving */ if (win == NULL) return; /* skip first x LineBuffers */ while (srcy > 1000) { lnb = lnb->next; srcy -= 1000; } lnb_row = srcy; row = 0; getmaxyx(win, maxy, maxx); while (row < maxy ) { int bytes; char *ptr; char *rowstr; LineInfo *lineinfo = NULL; bool is_bookmark_row = false; bool is_cursor_row = false; bool is_found_row = false; bool is_pattern_row = false; is_cursor_row = row == cursor_row; if (lnb_row == 1000) { lnb = lnb->next; lnb_row = 0; } if (lnb != NULL && lnb_row < lnb->nrows) { rowstr = lnb->rows[lnb_row]; if (lnb->lineinfo != NULL) lineinfo = &lnb->lineinfo[lnb_row]; else lineinfo = NULL; lnb_row += 1; } else rowstr = NULL; is_bookmark_row = (lineinfo != NULL && (lineinfo->mask & LINEINFO_BOOKMARK) != 0) ? true : false; if (!is_fix_rows && *scrdesc->searchterm != '\0' && lnb != NULL && rowstr != NULL && !opts->no_highlight_search) { if (lineinfo == NULL) { int i; lnb->lineinfo = malloc(1000 * sizeof(LineInfo)); if (lnb->lineinfo == NULL) { endwin(); fprintf(stderr, "out of memory"); exit(1); } memset(lnb->lineinfo, 0, 1000 * sizeof(LineInfo)); for (i = 0; i < lnb->nrows; i++) lnb->lineinfo[i].mask = LINEINFO_UNKNOWN; lineinfo = &lnb->lineinfo[lnb_row - 1]; } if (lineinfo->mask & LINEINFO_UNKNOWN) { const char *str = rowstr; lineinfo->mask ^= LINEINFO_UNKNOWN; lineinfo->mask &= ~(LINEINFO_FOUNDSTR | LINEINFO_FOUNDSTR_MULTI); while (str != NULL) { /* * When we would to ignore case or lower case (in this case, we know, so * pattern has not any upper char, then we have to use slower case insensitive * searching. */ if (opts->ignore_case || (opts->ignore_lower_case && !scrdesc->has_upperchr)) str = utf8_nstrstr(str, scrdesc->searchterm); else if (opts->ignore_lower_case && scrdesc->has_upperchr) str = utf8_nstrstr_ignore_lower_case(str, scrdesc->searchterm); else /* we can use case sensitive searching (binary comparation) */ str = strstr(str, scrdesc->searchterm); if (str != NULL) { if (lineinfo->mask & LINEINFO_FOUNDSTR) { /* When we detect multi occurrence, then stop searching */ lineinfo->mask |= LINEINFO_FOUNDSTR_MULTI; break; } else { lineinfo->mask |= LINEINFO_FOUNDSTR; lineinfo->start_char = utf8len_start_stop(rowstr, str); } str += scrdesc->searchterm_size; } } } } is_pattern_row = (lineinfo != NULL && (lineinfo->mask & LINEINFO_FOUNDSTR) != 0) ? true : false; /* prepare position cache, when first occurrence is visible */ if (lineinfo != NULL && (lineinfo->mask & LINEINFO_FOUNDSTR_MULTI) != 0 && srcx + maxx > lineinfo->start_char && *scrdesc->searchterm != '\0') { const char *str = rowstr; npositions = 0; while (str != NULL && npositions < 100) { if (opts->ignore_case || (opts->ignore_lower_case && !scrdesc->has_upperchr)) str = utf8_nstrstr(str, scrdesc->searchterm); else if (opts->ignore_lower_case && scrdesc->has_upperchr) str = utf8_nstrstr_ignore_lower_case(str, scrdesc->searchterm); else /* we can use case sensitive searching (binary comparation) */ str = strstr(str, scrdesc->searchterm); if (str != NULL) { positions[npositions][0] = utf8len_start_stop(rowstr, str); positions[npositions][1] = positions[npositions][0] + scrdesc->searchterm_char_size; /* don't search more if we are over visible part */ if (positions[npositions][1] > srcx + maxx) { npositions += 1; break; } str += scrdesc->searchterm_size; npositions += 1; } } } if (is_bookmark_row) { if (!is_footer) { if (desc->border_type == 2) active_attr = is_cursor_row ? t->cursor_bookmark_attr : t->bookmark_line_attr; else active_attr = is_cursor_row ? t->cursor_bookmark_attr : t->bookmark_data_attr; } else active_attr = is_cursor_row ? t->cursor_bookmark_attr : t->bookmark_data_attr; } else if (is_pattern_row) { if (!is_footer) { if (desc->border_type == 2) active_attr = is_cursor_row ? t->cursor_line_attr : t->pattern_line_attr; else active_attr = is_cursor_row ? t->cursor_data_attr : t->pattern_data_attr; } else active_attr = is_cursor_row ? t->cursor_data_attr : t->pattern_data_attr; } else { if (!is_footer) { if (desc->border_type == 2) active_attr = is_cursor_row ? t->cursor_line_attr : t->line_attr; else active_attr = is_cursor_row ? t->cursor_data_attr : t->data_attr; } else active_attr = is_cursor_row ? t->cursor_data_attr : t->data_attr; } wattron(win, active_attr); wmove(win, row++, 0); if (rowstr != NULL) { int i; int effective_row = row + srcy_bak - 1; /* row was incremented before, should be reduced */ bool fix_line_attr_style; bool is_expand_head; int ei_min, ei_max; int left_spaces; /* aux left spaces */ is_found_row = scrdesc->found && scrdesc->found_row == effective_row; if (desc->is_expanded_mode) { fix_line_attr_style = effective_row >= desc->border_bottom_row; is_expand_head = is_expanded_header(rowstr, &ei_min, &ei_max); if (is_expand_head) { if (scrdesc->first_rec_title_y == -1) scrdesc->first_rec_title_y = row - 1; else scrdesc->last_rec_title_y = row - 1; } } else { if (!is_footer) { fix_line_attr_style = effective_row == desc->border_top_row || effective_row == desc->border_head_row || effective_row == desc->border_bottom_row; } else fix_line_attr_style = false; is_expand_head = false; } /* skip first srcx chars */ i = srcx; left_spaces = 0; while(i > 0) { if (*rowstr != '\0' && *rowstr != '\n') { i -= utf_dsplen(rowstr); rowstr += utf8charlen(*rowstr); if (i < 0) left_spaces = -i; } else break; } /* Fix too hungry cutting when some multichar char is removed */ if (left_spaces > 0) { char *p; int aux_left_spaces = left_spaces; free_row = malloc(left_spaces + strlen(rowstr) + 1); p = free_row; while (aux_left_spaces-- > 0) { *p++ = ' '; } strcpy(p, rowstr); rowstr = free_row; } else free_row = NULL; ptr = rowstr; bytes = 0; /* find length of maxx characters */ if (*ptr != '\0') { i = 0; while (i < maxx) { if (is_expand_head && !is_pattern_row && !is_bookmark_row) { int pos = srcx + i; int new_attr; if (is_cursor_row) new_attr = pos >= ei_min && pos <= ei_max ? t->cursor_expi_attr : t->cursor_line_attr; else new_attr = pos >= ei_min && pos <= ei_max ? t->expi_attr : t->line_attr; if (new_attr != active_attr) { if (bytes > 0) { waddnstr(win, rowstr, bytes); rowstr += bytes; bytes = 0; } /* disable current style */ wattroff(win, active_attr); /* active new style */ active_attr = new_attr; wattron(win, active_attr); } } else if (!fix_line_attr_style) { int htrpos = srcx + i; int new_attr = active_attr; char unicode_border[10]; int unicode_border_bytes = 0; char column_format; column_format = desc->headline_transl != NULL ? desc->headline_transl[htrpos] : ' '; if (opts->force_uniborder && desc->linestyle == 'a') { if (*(rowstr + left_spaces + bytes) == '|' && (column_format == 'L' || column_format == 'R' || column_format == 'I')) { strncpy(unicode_border, "\342\224\202", 3); /* │ */ unicode_border_bytes = 3; } else unicode_border_bytes = 0; } if (is_bookmark_row) { if (!is_cursor_row ) new_attr = column_format == 'd' ? t->bookmark_data_attr : t->bookmark_line_attr; else new_attr = t->cursor_bookmark_attr; } else if (is_pattern_row && !is_cursor_row) { if (is_footer) new_attr = t->pattern_data_attr; else if (htrpos < desc->headline_char_size) new_attr = column_format == 'd' ? t->pattern_data_attr : t->pattern_line_attr; if (new_attr == t->pattern_data_attr && htrpos >= lineinfo->start_char) { if ((lineinfo->mask & LINEINFO_FOUNDSTR_MULTI) != 0) { int i; for (i = 0; i < npositions; i++) { if (htrpos >= positions[i][0] && htrpos < positions[i][1]) { new_attr = t->found_str_attr; break; } } } else { if (htrpos < lineinfo->start_char + scrdesc->searchterm_char_size) new_attr = t->found_str_attr; } } } else if (is_footer) new_attr = is_cursor_row ? t->cursor_data_attr : t->data_attr; else if (htrpos < desc->headline_char_size) { if (is_cursor_row ) new_attr = column_format == 'd' ? t->cursor_data_attr : t->cursor_line_attr; else new_attr = column_format == 'd' ? t->data_attr : t->line_attr; } if (is_cursor_row) { if (is_found_row && htrpos >= scrdesc->found_start_x && htrpos < scrdesc->found_start_x + scrdesc->searchterm_char_size) new_attr = new_attr | A_REVERSE; else if (is_pattern_row && htrpos >= lineinfo->start_char) { if ((lineinfo->mask & LINEINFO_FOUNDSTR_MULTI) != 0) { int i; for (i = 0; i < npositions; i++) { if (htrpos >= positions[i][0] && htrpos < positions[i][1]) { new_attr = t->cursor_pattern_attr; break; } } } else { if (htrpos < lineinfo->start_char + scrdesc->searchterm_char_size) new_attr = t->cursor_pattern_attr; } } } if (unicode_border_bytes > 0 && bytes > 0) { waddnstr(win, rowstr, bytes); rowstr += bytes; bytes = 0; } if (new_attr != active_attr) { if (bytes > 0) { waddnstr(win, rowstr, bytes); rowstr += bytes; bytes = 0; } /* disable current style */ wattroff(win, active_attr); /* active new style */ active_attr = new_attr; wattron(win, active_attr); } if (unicode_border_bytes > 0) { waddnstr(win, unicode_border, unicode_border_bytes); bytes = 0; rowstr += 1; } } else { if (!is_footer) { int new_attr; if (is_cursor_row) new_attr = t->cursor_line_attr; else new_attr = t->line_attr; if (new_attr != active_attr) { if (bytes > 0) { waddnstr(win, rowstr, bytes); rowstr += bytes; bytes = 0; } /* disable current style */ wattroff(win, active_attr); /* active new style */ active_attr = new_attr; wattron(win, active_attr); } } } if (*ptr != '\0') { int len = utf8charlen(*ptr); i += utf_dsplen(ptr); ptr += len; /* suboptimal logic */ if (i <= maxx && rowstr < ptr) bytes += len; } else { break; } } /* end while */ } else if (is_cursor_row) /* in this case i is not valid, but it is necessary for cursor line printing */ i = 1; if (bytes > 0) { if (!fix_line_attr_style || !(desc->linestyle == 'a' && opts->force_uniborder)) waddnstr(win, rowstr, bytes); else { int i = 0; while (bytes > 0) { int htrpos = srcx + i; int column_format = desc->headline_transl[htrpos]; bool is_top_row = effective_row == desc->border_top_row; bool is_head_row = effective_row == desc->border_head_row; bool is_bottom_row = effective_row == desc->border_bottom_row; if (column_format == 'd' && *rowstr == '-') { waddnstr(win, "\342\224\200", 3); rowstr += 1; bytes -= 1; } else if (column_format == 'L' && (*rowstr == '+' || *rowstr == '|')) { if (is_head_row) waddnstr(win, "\342\224\234", 3); else if (is_top_row) waddnstr(win, "\342\224\214", 3); else /* bottom row */ waddnstr(win, "\342\224\224", 3); rowstr += 1; bytes -= 1; } else if (column_format == 'I' && *rowstr == '+') { if (is_head_row) waddnstr(win, "\342\224\274", 3); else if (is_top_row) waddnstr(win, "\342\224\254", 3); else /* bottom row */ waddnstr(win, "\342\224\264", 3); rowstr += 1; bytes -= 1; } else if (column_format == 'R' && (*rowstr == '+' || *rowstr == '|')) { if (is_head_row) waddnstr(win, "\342\224\244", 3); else if (is_top_row) waddnstr(win, "\342\224\220", 3); else /* bottom row */ waddnstr(win, "\342\224\230", 3); rowstr += 1; bytes -= 1; } else { int len = utf8charlen(*rowstr); waddnstr(win, rowstr, len); rowstr +=len; bytes -= len; } i += 1; } } } /* clean other chars on line */ if (i < maxx) wclrtoeol(win); /* draw cursor or bookmark line to screen end of line */ if (i < maxx) { if (is_cursor_row && !is_bookmark_row) mvwchgat(win, row - 1, i, -1, 0, PAIR_NUMBER(t->cursor_data_attr), 0); else if (!is_cursor_row && is_bookmark_row) mvwchgat(win, row - 1, i, -1, 0, PAIR_NUMBER(t->bookmark_data_attr), 0); else if (is_cursor_row && is_bookmark_row) mvwchgat(win, row - 1, i, -1, t->cursor_bookmark_attr, PAIR_NUMBER(t->cursor_bookmark_attr), 0); else if (!is_cursor_row && is_pattern_row) mvwchgat(win, row - 1, i, -1, 0, PAIR_NUMBER(t->pattern_data_attr), 0); } if (free_row != NULL) { free(free_row); free_row = NULL; } } else { wclrtobot(win); break; } wattroff(win, active_attr); } } #ifdef COLORIZED_NO_ALTERNATE_SCREEN static void ansi_colors(int pairno, short int *fc, short int *bc) { pair_content(pairno, fc, bc); *fc = *fc != -1 ? *fc + 30 : 39; *bc = *bc != -1 ? *bc + 40 : 49; } #endif static char * ansi_attr(attr_t attr) { #ifndef COLORIZED_NO_ALTERNATE_SCREEN return ""; #else static char result[20]; int pairno; short int fc, bc; pairno = PAIR_NUMBER(attr); ansi_colors(pairno, &fc, &bc); if ((attr & A_BOLD) != 0) { snprintf(result, 20, "\e[1;%d;%dm", fc, bc); } else snprintf(result, 20, "\e[0;%d;%dm", fc, bc); return result; #endif } /* * Print data to primary screen without ncurses */ static void draw_rectange(int offsety, int offsetx, /* y, x offset on screen */ int maxy, int maxx, /* size of visible rectangle */ int srcy, int srcx, /* offset to displayed data */ DataDesc *desc, attr_t data_attr, /* colors for data (alphanums) */ attr_t line_attr, /* colors for borders */ attr_t expi_attr, /* colors for expanded headers */ bool clreoln) /* force clear to eoln */ { int row; LineBuffer *lnb = &desc->rows; int lnb_row; attr_t active_attr; int srcy_bak = srcy; /* skip first x LineBuffers */ while (srcy > 1000) { lnb = lnb->next; srcy -= 1000; } lnb_row = srcy; row = 0; if (offsety) printf("\e[%dB", offsety); while (row < maxy) { int bytes; char *ptr; char *rowstr; if (lnb_row == 1000) { lnb = lnb->next; lnb_row = 0; } if (lnb != NULL && lnb_row < lnb->nrows) rowstr = lnb->rows[lnb_row++]; else rowstr = NULL; active_attr = line_attr; printf("%s", ansi_attr(active_attr)); row += 1; if (rowstr != NULL) { int i; int effective_row = row + srcy_bak - 1; /* row was incremented before, should be reduced */ bool fix_line_attr_style; bool is_expand_head; int ei_min, ei_max; int left_spaces; char *free_row; if (desc->is_expanded_mode) { fix_line_attr_style = effective_row >= desc->border_bottom_row; is_expand_head = is_expanded_header(rowstr, &ei_min, &ei_max); } else { fix_line_attr_style = effective_row == desc->border_top_row || effective_row == desc->border_head_row || effective_row >= desc->border_bottom_row; is_expand_head = false; } if (offsetx != 0) printf("\e[%dC", offsetx); /* skip first srcx chars */ i = srcx; left_spaces = 0; while(i > 0) { if (*rowstr != '\0' && *rowstr != '\n') { i -= utf_dsplen(rowstr); rowstr += utf8charlen(*rowstr); if (i < 0) left_spaces = -i; } else break; } /* Fix too hungry cutting when some multichar char is removed */ if (left_spaces > 0) { char *p; free_row = malloc(left_spaces + strlen(rowstr) + 1); p = free_row; while (left_spaces-- > 0) { *p++ = ' '; } strcpy(p, rowstr); rowstr = free_row; } else free_row = NULL; ptr = rowstr; bytes = 0; /* find length of maxx characters */ if (*ptr != '\0' && *ptr != '\n') { i = 0; while (i < maxx) { if (is_expand_head) { int pos = srcx + i; int new_attr; new_attr = pos >= ei_min && pos <= ei_max ? expi_attr : line_attr; if (new_attr != active_attr) { if (bytes > 0) { printf("%.*s", bytes, rowstr); rowstr += bytes; bytes = 0; } /* active new style */ active_attr = new_attr; printf("%s", ansi_attr(active_attr)); } } else if (!fix_line_attr_style && desc->headline_transl != NULL) { int htrpos = srcx + i; if (htrpos < desc->headline_char_size) { int new_attr; new_attr = desc->headline_transl[htrpos] == 'd' ? data_attr : line_attr; if (new_attr != active_attr) { if (bytes > 0) { //waddnstr(win, rowstr, bytes); printf("%.*s", bytes, rowstr); rowstr += bytes; bytes = 0; } /* active new style */ active_attr = new_attr; printf("%s", ansi_attr(active_attr)); } } } if (*ptr != '\0' && *ptr != '\n') { int len = utf8charlen(*ptr); i += utf_dsplen(ptr); ptr += len; bytes += len; } else break; } } if (bytes > 0) { printf("%.*s", bytes, rowstr); if (clreoln) printf("\e[K"); printf("\n"); } if (free_row != NULL) { free(free_row); free_row = NULL; } } else break; } } void draw_data(Options *opts, ScrDesc *scrdesc, DataDesc *desc, int first_data_row, int first_row, int cursor_col, int footer_cursor_col, int fix_rows_offset) { struct winsize size; int i; if (ioctl(0, TIOCGWINSZ, (char *) &size) >= 0) { for (i = 0; i < min_int(size.ws_row - 1 - scrdesc->top_bar_rows, desc->last_row + 1); i++) printf("\eD"); /* Go wit cursor to up */ printf("\e[%dA", min_int(size.ws_row - 1 - scrdesc->top_bar_rows, desc->last_row + 1)); /* Save cursor */ printf("\e[s"); if (scrdesc->fix_cols_cols > 0) { draw_rectange(scrdesc->fix_rows_rows, 0, scrdesc->rows_rows , scrdesc->fix_cols_cols, first_data_row + first_row - fix_rows_offset, 0, desc, COLOR_PAIR(4) | A_BOLD, 0, COLOR_PAIR(8) | A_BOLD, false); } if (scrdesc->fix_rows_rows > 0) { /* Go to saved position */ printf("\e[u\e[s"); draw_rectange(0, scrdesc->fix_cols_cols, scrdesc->fix_rows_rows, size.ws_col - scrdesc->fix_cols_cols, desc->title_rows + fix_rows_offset, scrdesc->fix_cols_cols + cursor_col, desc, COLOR_PAIR(4) | A_BOLD, 0, COLOR_PAIR(8) | A_BOLD, true); } if (scrdesc->fix_rows_rows > 0 && scrdesc->fix_cols_cols > 0) { /* Go to saved position */ printf("\e[u\e[s"); draw_rectange(0, 0, scrdesc->fix_rows_rows, scrdesc->fix_cols_cols, desc->title_rows + fix_rows_offset, 0, desc, COLOR_PAIR(4) | A_BOLD, 0, COLOR_PAIR(8) | A_BOLD, false); } if (scrdesc->rows_rows > 0 ) { /* Go to saved position */ printf("\e[u\e[s"); draw_rectange(scrdesc->fix_rows_rows, scrdesc->fix_cols_cols, scrdesc->rows_rows, size.ws_col - scrdesc->fix_cols_cols, first_data_row + first_row - fix_rows_offset, scrdesc->fix_cols_cols + cursor_col, desc, opts->theme == 2 ? 0 | A_BOLD : 0, opts->theme == 2 && (desc->headline_transl == NULL) ? A_BOLD : 0, COLOR_PAIR(8) | A_BOLD, true); } if (w_footer(scrdesc) != NULL) { /* Go to saved position */ printf("\e[u\e[s"); draw_rectange(scrdesc->fix_rows_rows + scrdesc->rows_rows, 0, scrdesc->footer_rows, scrdesc->maxx, first_data_row + first_row + scrdesc->rows_rows - fix_rows_offset, footer_cursor_col, desc, COLOR_PAIR(9), 0, 0, true); } /* reset */ printf("\e[0m\r"); } } pspg-0.9.3/src/pspg.c000066400000000000000000002011471324002717400144050ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * pspg.c * a terminal pager designed for usage from psql * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/pspg.c * *------------------------------------------------------------------------- */ #include #include #include #include #include #include #include #include #include #include #include #include #include "pspg.h" #include "unicode.h" #include "themes.h" #define PSPG_VERSION "0.9.3" /* GNU Hurd does not define MAXPATHLEN */ #ifndef MAXPATHLEN #define MAXPATHLEN 4096 #endif #define MAX_STYLE 14 #define UNUSED(expr) do { (void)(expr); } while (0) int min_int(int a, int b) { if (a < b) return a; else return b; } /* * Translate from UTF8 to semantic characters. */ static bool translate_headline(DataDesc *desc) { char *srcptr; char *destptr; char *last_black_char = NULL; bool broken_format = false; int processed_chars = 0; bool is_expanded_info = false; srcptr = desc->headline; destptr = malloc(desc->headline_size + 1); memset(destptr, 0, desc->headline_size + 1); desc->headline_transl = destptr; desc->linestyle = 'a'; desc->border_type = 0; desc->expanded_info_minx = -1; while (*srcptr != '\0' && *srcptr != '\n' && *srcptr != '\r') { /* only spaces can be after known right border */ if (last_black_char != NULL && *last_black_char == 'R') { if (*srcptr != ' ') { broken_format = true; break; } } if (*srcptr != ' ') last_black_char = destptr; if (desc->is_expanded_mode && *srcptr == '[') { if (desc->expanded_info_minx != -1) { broken_format = true; break; } /* entry to expanded info mode */ is_expanded_info = true; desc->expanded_info_minx = processed_chars; *destptr++ = 'd'; srcptr += utf8charlen(*srcptr); } else if (is_expanded_info) { if (*srcptr == ']') { is_expanded_info = false; } *destptr++ = 'd'; srcptr += utf8charlen(*srcptr); } else if (strncmp(srcptr, "\342\224\214", 3) == 0 || /* ┌ */ strncmp(srcptr, "\342\225\224", 3) == 0) /* ╔ */ { /* should be expanded mode */ if (processed_chars > 0 || !desc->is_expanded_mode) { broken_format = true; break; } desc->linestyle = 'u'; desc->border_type = 2; *destptr++ = 'L'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\220", 3) == 0 || /* ┐ */ strncmp(srcptr, "\342\225\227", 3) == 0) /* ╗ */ { if (desc->linestyle != 'u' || desc->border_type != 2 || !desc->is_expanded_mode) { broken_format = true; break; } *destptr++ = 'R'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\254", 3) == 0 || /* ┬╤ */ strncmp(srcptr, "\342\225\244", 3) == 0 || strncmp(srcptr, "\342\225\245", 3) == 0 || /* ╥╦ */ strncmp(srcptr, "\342\225\246", 3) == 0) { if (desc->linestyle != 'u' || !desc->is_expanded_mode) { broken_format = true; break; } if (desc->border_type == 0) desc->border_type = 1; *destptr++ = 'I'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\234", 3) == 0 || /* ├╟ */ strncmp(srcptr, "\342\225\237", 3) == 0 || strncmp(srcptr, "\342\225\236", 3) == 0 || /* ╞╠ */ strncmp(srcptr, "\342\225\240", 3) == 0) { if (processed_chars > 0) { broken_format = true; break; } desc->linestyle = 'u'; desc->border_type = 2; *destptr++ = 'L'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\244", 3) == 0 || /* ┤╢ */ strncmp(srcptr, "\342\225\242", 3) == 0 || strncmp(srcptr, "\342\225\241", 3) == 0 || /* ╡╣ */ strncmp(srcptr, "\342\225\243", 3) == 0) { if (desc->linestyle != 'u' || desc->border_type != 2) { broken_format = true; break; } *destptr++ = 'R'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\274", 3) == 0 || /* ┼╪ */ strncmp(srcptr, "\342\225\252", 3) == 0 || strncmp(srcptr, "\342\225\253", 3) == 0 || /* ╫╬ */ strncmp(srcptr, "\342\225\254", 3) == 0) { if (desc->linestyle != 'u') { broken_format = true; break; } if (desc->border_type == 0) desc->border_type = 1; *destptr++ = 'I'; srcptr += 3; } else if (strncmp(srcptr, "\342\224\200", 3) == 0 || /* ─ */ strncmp(srcptr, "\342\225\220", 3) == 0) /* ═ */ { if (processed_chars == 0) { desc->linestyle = 'u'; } else if (desc->linestyle != 'u') { broken_format = true; break; } *destptr++ = 'd'; srcptr += 3; } else if (*srcptr == '+') { if (processed_chars == 0) { *destptr++ = 'L'; desc->linestyle = 'a'; desc->border_type = 2; } else { if (desc->linestyle != 'a') { broken_format = true; break; } if (desc->border_type == 0) desc->border_type = 1; *destptr++ = (srcptr[1] == '-') ? 'I' : 'R'; } srcptr += 1; } else if (*srcptr == '-') { if (processed_chars == 0) { desc->linestyle = 'a'; } else if (desc->linestyle != 'a') { broken_format = true; break; } *destptr++ = 'd'; srcptr += 1; } else if (*srcptr == '|') { if (processed_chars == 0 && srcptr[1] == '-') { *destptr++ = 'L'; desc->linestyle = 'a'; desc->border_type = 2; desc->is_pgcli_fmt = true; } else if (processed_chars > 0 && desc->is_pgcli_fmt && srcptr[-1] == '-') { *destptr++ = 'R'; } else { broken_format = true; break; } srcptr += 1; } else if (*srcptr == ' ') { if (desc->border_type != 0) { broken_format = true; break; } *destptr++ = 'I'; srcptr += 1; } else { broken_format = true; break; } processed_chars += 1; } /* should not be - unclosed header */ if (is_expanded_info) broken_format = true; else if (desc->is_expanded_mode && desc->expanded_info_minx == -1) broken_format = true; /* trim ending spaces */ if (!broken_format && last_black_char != 0) { last_black_char[1] = '\0'; desc->headline_char_size = strlen(desc->headline_transl); return true; } free(desc->headline_transl); desc->headline_transl = NULL; return false; } /* * Trim footer rows - We should to trim footer rows and calculate footer_char_size */ static void trim_footer_rows(DataDesc *desc) { if (desc->headline_transl != NULL && desc->footer_row != -1) { LineBuffer *rows = &desc->rows; int rowidx = 0; int rownum; desc->footer_char_size = 0; for (rownum = 0, rowidx = 0; rownum < desc->footer_row; rownum++, rowidx++) { if (rowidx == 1000) { rows = rows->next; rowidx = 0; } } while (rows != NULL && rowidx < rows->nrows) { char *line; char *endptr; int len; if (rowidx == 1000) { rows = rows->next; rowidx = 0; continue; } line = rows->rows[rowidx++]; endptr = line + strlen(line) - 1; while (endptr > line) { if (*endptr != ' ') { endptr[1] = '\0'; break; } endptr -= 1; } len = utf8len(line); if (len > desc->footer_char_size) desc->footer_char_size = len; } } else desc->footer_char_size = desc->maxx; } /* * Returns true when char is left upper corner */ static bool isTopLeftChar(char *str) { const char *u1 = "\342\224\214"; const char *u2 = "\342\225\224"; if (str[0] == '+') return true; if (strncmp(str, u1, 3) == 0) return true; if (strncmp(str, u2, 3) == 0) return true; return false; } /* * Returns true when char is top left header char */ static bool isHeadLeftChar(char *str) { const char *u1 = "\342\224\200"; const char *u2 = "\342\225\220"; const char *u3 = "\342\225\236"; const char *u4 = "\342\224\234"; const char *u5 = "\342\225\240"; const char *u6 = "\342\225\237"; /* ascii */ if ((str[0] == '+' || str[0] == '-') && str[1] == '-') return true; /* pgcli fmt */ if (str[0] == '|' && str[1] == '-') return true; /* expanded border 1 */ if (str[0] == '-' && str[1] == '[') return true; if (strncmp(str, u1, 3) == 0) return true; if (strncmp(str, u2, 3) == 0) return true; if (strncmp(str, u3, 3) == 0) return true; if (strncmp(str, u4, 3) == 0) return true; if (strncmp(str, u5, 3) == 0) return true; if (strncmp(str, u6, 3) == 0) return true; return false; } /* * Returns true when char is bottom left corner */ static bool isBottomLeftChar(char *str) { const char *u1 = "\342\224\224"; const char *u2 = "\342\225\232"; if (str[0] == '+') return true; if (strncmp(str, u1, 3) == 0) return true; if (strncmp(str, u2, 3) == 0) return true; return false; } /* * detect different faces of headline in extended mode */ bool is_expanded_header(char *str, int *ei_minx, int *ei_maxx) { int pos = 0; if (*str == '+') { str += 1; pos += 1; } else if (strncmp(str, "\342\224\214", 3) == 0 || /* ┌ */ strncmp(str, "\342\225\224", 3) == 0 || /* ╔ */ strncmp(str, "\342\224\234", 3) == 0 || /* ├╟ */ strncmp(str, "\342\225\237", 3) == 0 || strncmp(str, "\342\225\236", 3) == 0 || /* ╞╠ */ strncmp(str, "\342\225\240", 3) == 0) { str += 3; pos += 1; } if (*str == '-') { str += 1; pos += 1; } else if (strncmp(str, "\342\224\200", 3) == 0 || /* ─ */ strncmp(str, "\342\225\220", 3) == 0) /* ═ */ { str += 3; pos += 1; } if (strncmp(str, "[ ", 2) != 0) return false; if (ei_minx != NULL && ei_maxx != NULL) { pos += 2; str += 2; *ei_minx = pos - 1; while (*str != ']' && *str != '\0') { pos += 1; str += utf8charlen(*str); } *ei_maxx = pos - 1; } return true; } /* * Copy trimmed string */ static void strncpytrim(char *dest, const char *src, size_t ndest, size_t nsrc) { const char *endptr; endptr = src + nsrc - 1; /* skip trailing spaces */ while (*src == ' ') { if (nsrc-- <= 0) break; src++; } /* skip ending spaces */ while (*endptr == ' ') { if (nsrc-- <= 0) break; endptr--; } while(nsrc > 0) { int clen; if (*src == '\0') break; clen = utf8charlen(*src); if (clen <= ndest && clen <= nsrc) { int i; for (i = 0; i < clen; i++) { *dest++ = *src++; ndest--; nsrc--; } } else break; } *dest = '\0'; } /* * Read data from file and fill DataDesc. */ static int readfile(FILE *fp, DataDesc *desc) { char *line = NULL; size_t len; ssize_t read; int nrows = 0; LineBuffer *rows; /* safe reset */ desc->filename[0] = '\0'; if (fp != NULL) { int fno; char proclnk[MAXPATHLEN + 1]; char path[MAXPATHLEN + 1]; ssize_t r; fno = fileno(fp); sprintf(proclnk, "/proc/self/fd/%d", fno); r = readlink(proclnk, path, MAXPATHLEN); if (r > 0) { char *name; path[r] = '\0'; name = basename(path); strncpy(desc->filename, name, 64); desc->filename[64] = '\0'; } } else fp = stdin; desc->title[0] = '\0'; desc->title_rows = 0; desc->border_top_row = -1; desc->border_head_row = -1; desc->border_bottom_row = -1; desc->first_data_row = -1; desc->last_data_row = -1; desc->is_expanded_mode = false; desc->headline_transl = NULL; desc->footer_row = -1; desc->alt_footer_row = -1; desc->is_pgcli_fmt = false; desc->maxbytes = -1; desc->maxx = -1; memset(&desc->rows, 0, sizeof(LineBuffer)); rows = &desc->rows; desc->rows.prev = NULL; errno = 0; while (( read = getline(&line, &len, fp)) != -1) { int clen; if (line[read - 1] == '\n') { line[read - 1] = '\0'; read -= 1; } clen = utf8len(line); if (rows->nrows == 1000) { LineBuffer *newrows = malloc(sizeof(LineBuffer)); memset(newrows, 0, sizeof(LineBuffer)); rows->next = newrows; newrows->prev = rows; rows = newrows; } rows->rows[rows->nrows++] = line; /* save possible table name */ if (nrows == 0 && !isTopLeftChar(line)) { strncpytrim(desc->title, line, 63, read); desc->title_rows = 1; } if (desc->border_head_row == -1 && desc->border_top_row == -1 && isTopLeftChar(line)) { desc->border_top_row = nrows; desc->is_expanded_mode = is_expanded_header(line, NULL, NULL); } else if (desc->border_head_row == -1 && isHeadLeftChar(line)) { desc->border_head_row = nrows; if (!desc->is_expanded_mode) desc->is_expanded_mode = is_expanded_header(line, NULL, NULL); /* title surely doesn't it there */ if ((!desc->is_expanded_mode && nrows == 1) || (desc->is_expanded_mode && nrows == 0)) { desc->title[0] = '\0'; desc->title_rows = 0; } } else if (!desc->is_expanded_mode && desc->border_bottom_row == -1 && isBottomLeftChar(line)) { desc->border_bottom_row = nrows; desc->last_data_row = nrows - 1; } else if (!desc->is_expanded_mode && desc->border_bottom_row != -1 && desc->footer_row == -1) { desc->footer_row = nrows; } else if (desc->is_expanded_mode && isBottomLeftChar(line)) { /* Outer border is repeated in expanded mode, use last detected row */ desc->border_bottom_row = nrows; desc->last_data_row = nrows - 1; } if (!desc->is_expanded_mode && desc->border_head_row != -1 && desc->border_head_row < nrows && desc->alt_footer_row == -1) { if (*line != '\0' && *line != ' ') desc->alt_footer_row = nrows; } if ((int) len > desc->maxbytes) desc->maxbytes = (int) len; if ((int) clen > desc->maxx + 1) desc->maxx = clen - 1; if ((int) clen > 1 || (clen == 1 && *line != '\n')) desc->last_row = nrows; nrows += 1; line = NULL; } if (errno != 0) { fprintf(stderr, "cannot to read file: %s\n", strerror(errno)); exit(1); } if (desc->last_row != -1) desc->maxy = desc->last_row; desc->headline_char_size = 0; if (desc->border_head_row != -1) { desc->headline = desc->rows.rows[desc->border_head_row]; desc->headline_size = strlen(desc->headline); if (desc->last_data_row == -1) desc->last_data_row = desc->last_row - 1; } else if (desc->is_expanded_mode && desc->border_top_row != -1) { desc->headline = desc->rows.rows[desc->border_top_row]; desc->headline_size = strlen(desc->headline); } else { desc->headline = NULL; desc->headline_size = 0; desc->headline_char_size = 0; /* there are not a data set */ desc->last_data_row = desc->last_row; desc->title_rows = 0; desc->title[0] = '\0'; } return 0; } /* * Prepare dimensions of windows layout */ static void create_layout_dimensions(ScrDesc *scrdesc, DataDesc *desc, int fixCols, int fixRows, int maxy, int maxx) { scrdesc->maxy = maxy; scrdesc->maxx = maxx; scrdesc->fix_cols_cols = 0; if (fixCols == -1) fixCols = 1; /* search end of fixCol'th column */ if (desc->headline_transl != NULL && fixCols > 0) { char *c = desc->headline_transl; while (*c != 0) { if (*c == 'I' && --fixCols == 0) { scrdesc->fix_cols_cols = c - desc->headline_transl + 1; break; } c += 1; } } scrdesc->fix_rows_rows = 0; scrdesc->footer_rows = 0; if (fixRows != -1) { scrdesc->fix_rows_rows = fixRows; } else if (!desc->is_expanded_mode && desc->border_head_row != -1 && desc->headline_transl != NULL) { scrdesc->fix_rows_rows = desc->border_head_row + 1 - desc->title_rows; } /* disable fixed parts when is not possible draw in screen */ if (scrdesc->fix_cols_cols > maxx) scrdesc->fix_cols_cols = 0; if (scrdesc->fix_rows_rows > maxy) scrdesc->fix_rows_rows = 0; if (scrdesc->fix_rows_rows == 0 && !desc->is_expanded_mode) { desc->title_rows = 0; desc->title[0] = '\0'; } desc->fixed_rows = scrdesc->fix_rows_rows; } static void create_layout(ScrDesc *scrdesc, DataDesc *desc, int first_data_row, int first_row) { if (w_luc(scrdesc) != NULL) { delwin(w_luc(scrdesc)); w_luc(scrdesc) = NULL; } if (w_fix_rows(scrdesc) != NULL) { delwin(w_fix_rows(scrdesc)); w_fix_rows(scrdesc) = NULL; } if (w_fix_cols(scrdesc) != NULL) { delwin(w_fix_cols(scrdesc)); w_fix_cols(scrdesc) = NULL; } if (w_rows(scrdesc) != NULL) { delwin(w_rows(scrdesc)); w_rows(scrdesc) = NULL; } if (w_footer(scrdesc) != NULL) { delwin(w_footer(scrdesc)); w_footer(scrdesc) = NULL; } if (desc->headline_transl != NULL && desc->footer_row > 0) { int rows_rows = desc->footer_row - first_row - first_data_row; int data_rows; /* desc->footer_row == desc->first_data_row when result is empty */ if (rows_rows > 0 || desc->footer_row == desc->first_data_row) { data_rows = scrdesc->main_maxy - desc->fixed_rows; scrdesc->rows_rows = min_int(rows_rows, data_rows); } else { int new_fix_rows_rows = scrdesc->fix_rows_rows + rows_rows - 1; scrdesc->fix_rows_rows = new_fix_rows_rows > 0 ? new_fix_rows_rows : 0; scrdesc->rows_rows = new_fix_rows_rows >= 0 ? 1 : 0; data_rows = scrdesc->main_maxy - scrdesc->fix_rows_rows; } scrdesc->footer_rows = min_int(data_rows - scrdesc->rows_rows, desc->last_row - desc->footer_row + 1); if (scrdesc->footer_rows > 0) { w_footer(scrdesc) = newwin(scrdesc->footer_rows, scrdesc->maxx, scrdesc->main_start_y + scrdesc->fix_rows_rows + scrdesc->rows_rows, 0); } } else if (desc->headline_transl != NULL) { scrdesc->rows_rows = min_int(scrdesc->main_maxy - scrdesc->fix_rows_rows, desc->last_row - desc->first_data_row + 1); } else { scrdesc->rows_rows = 0; scrdesc->fix_rows_rows = 0; scrdesc->footer_rows = min_int(scrdesc->main_maxy, desc->last_row + 1); w_footer(scrdesc) = newwin(scrdesc->footer_rows, scrdesc->main_maxx, scrdesc->main_start_y, 0); } if (scrdesc->fix_rows_rows > 0) { w_fix_rows(scrdesc) = newwin(scrdesc->fix_rows_rows, min_int(scrdesc->maxx - scrdesc->fix_cols_cols, scrdesc->maxx - scrdesc->fix_cols_cols + 1), scrdesc->main_start_y, scrdesc->fix_cols_cols); } if (scrdesc->fix_cols_cols > 0 && scrdesc->rows_rows > 0) { w_fix_cols(scrdesc) = newwin(scrdesc->rows_rows, scrdesc->fix_cols_cols, scrdesc->fix_rows_rows + scrdesc->main_start_y, 0); } if (scrdesc->fix_rows_rows > 0 && scrdesc->fix_cols_cols > 0) { w_luc(scrdesc) = newwin(scrdesc->fix_rows_rows, scrdesc->fix_cols_cols, scrdesc->main_start_y, 0); } if (scrdesc->rows_rows > 0) { w_rows(scrdesc) = newwin(scrdesc->rows_rows, min_int(scrdesc->maxx - scrdesc->fix_cols_cols, scrdesc->maxx - scrdesc->fix_cols_cols + 1), scrdesc->fix_rows_rows + scrdesc->main_start_y, scrdesc->fix_cols_cols); } } /* * Refresh aux windows like top bar or bottom bar. */ static void refresh_aux_windows(Options *opts, ScrDesc *scrdesc, DataDesc *desc) { int maxy, maxx; WINDOW *top_bar = w_top_bar(scrdesc); WINDOW *bottom_bar = w_bottom_bar(scrdesc); Theme *bottom_bar_theme = &scrdesc->themes[WINDOW_BOTTOM_BAR]; refresh(); getmaxyx(stdscr, maxy, maxx); if (top_bar != NULL) { delwin(top_bar); top_bar = NULL; w_top_bar(scrdesc) = NULL; } if (opts->less_status_bar) scrdesc->top_bar_rows = 0; else { scrdesc->top_bar_rows = 1; top_bar = newwin(1, 0, 0, 0); wbkgd(top_bar, COLOR_PAIR(2)); wrefresh(top_bar); w_top_bar(scrdesc) = top_bar; } if (bottom_bar != NULL) { delwin(bottom_bar); bottom_bar = NULL; w_bottom_bar(scrdesc) = NULL; } bottom_bar = newwin(1, 0, maxy - 1, 0); w_bottom_bar(scrdesc) = bottom_bar; if (!opts->less_status_bar > 0) { wattron(bottom_bar, bottom_bar_theme->bottom_light_attr); mvwaddstr(bottom_bar, 0, 1, "Q"); wattroff(bottom_bar, bottom_bar_theme->bottom_light_attr); wattron(bottom_bar, bottom_bar_theme->bottom_attr); mvwprintw(bottom_bar, 0, 2, "%-4s", "uit"); wattroff(bottom_bar, bottom_bar_theme->bottom_attr); wrefresh(bottom_bar); if (desc->headline_transl != NULL) { wattron(bottom_bar, bottom_bar_theme->bottom_light_attr); mvwaddstr(bottom_bar, 0, 7, "0..4"); wattroff(bottom_bar, bottom_bar_theme->bottom_light_attr); wattron(bottom_bar, bottom_bar_theme->bottom_attr); mvwprintw(bottom_bar, 0, 11, "%s", " Col.Freeze "); wattroff(bottom_bar, bottom_bar_theme->bottom_attr); wrefresh(bottom_bar); } } scrdesc->main_maxy = maxy; scrdesc->main_maxx = maxx; scrdesc->main_start_y = 0; scrdesc->main_start_x = 0; if (top_bar != NULL) { scrdesc->main_maxy -= 1; scrdesc->main_start_y = 1; } if (bottom_bar != NULL) { scrdesc->main_maxy -= 1; } } static int number_width(int num) { if (num < 10) return 1; if (num < 100) return 2; if (num < 1000) return 3; if (num < 10000) return 4; if (num < 100000) return 5; if (num < 1000000) return 6; if (num < 10000000) return 7; return 8; } /* * returns true when cursor is on footer window */ static bool is_footer_cursor(int cursor_row, ScrDesc *scrdesc, DataDesc *desc) { if (w_footer(scrdesc) == NULL) return false; else if (scrdesc->rows_rows == 0) return true; return cursor_row + scrdesc->fix_rows_rows + desc->title_rows + 1 > desc->footer_row; } static void print_status(Options *opts, ScrDesc *scrdesc, DataDesc *desc, int cursor_row, int cursor_col, int first_row, int fix_rows_offset) { int maxy, maxx; int smaxy, smaxx; char buffer[200]; WINDOW *top_bar = w_top_bar(scrdesc); WINDOW *bottom_bar = w_bottom_bar(scrdesc); Theme *top_bar_theme = &scrdesc->themes[WINDOW_TOP_BAR]; Theme *bottom_bar_theme = &scrdesc->themes[WINDOW_BOTTOM_BAR]; /* do nothing when there are not top status bar */ if (scrdesc->top_bar_rows > 0) { getmaxyx(top_bar, maxy, maxx); getmaxyx(stdscr, smaxy, smaxx); (void) maxy; wattron(top_bar, top_bar_theme->title_attr); if (desc->title[0] != '\0' && desc->title_rows > 0) mvwprintw(top_bar, 0, 0, "%s", desc->title); else if (desc->filename[0] != '\0') mvwprintw(top_bar, 0, 0, "%s", desc->filename); wattroff(top_bar, top_bar_theme->title_attr); if (desc->headline_transl) { snprintf(buffer, 199, "FC:%*d C:%*d..%*d/%*d L:[%*d + %*d %*d/%*d] %3.0f%%", number_width(desc->headline_char_size), scrdesc->fix_cols_cols, number_width(desc->headline_char_size), cursor_col + scrdesc->fix_cols_cols + 1, number_width(desc->headline_char_size), min_int(smaxx + cursor_col, desc->headline_char_size), number_width(desc->headline_char_size), desc->headline_char_size, number_width(desc->maxy - desc->fixed_rows), first_row + 1 - fix_rows_offset, number_width(smaxy), cursor_row - first_row + fix_rows_offset, number_width(desc->maxy - desc->fixed_rows - desc->title_rows), cursor_row + 1, number_width(desc->maxy - desc->fixed_rows - desc->title_rows), desc->maxy + 1 - desc->fixed_rows - desc->title_rows, (cursor_row + 1) / ((double) (desc->maxy + 1 - desc->fixed_rows - desc->title_rows)) * 100.0); } else { snprintf(buffer, 199, "C:%*d..%*d/%*d L:[%*d + %*d %*d/%*d] %3.0f%%", number_width(desc->maxx), cursor_col + scrdesc->fix_cols_cols + 1, number_width(desc->maxx), min_int(smaxx + cursor_col, desc->maxx), number_width(desc->maxx), desc->maxx, number_width(desc->maxy - scrdesc->fix_rows_rows), first_row + 1, number_width(smaxy), cursor_row - first_row, number_width(desc->last_row), cursor_row + 1, number_width(desc->last_row), desc->last_row + 1, ((cursor_row + 1) / ((double) (desc->last_row + 1))) * 100.0); } mvwprintw(top_bar, 0, maxx - strlen(buffer), "%s", buffer); wrefresh(top_bar); } else { /* less-status-bar */ char title[65]; char *str; int bytes = sizeof(title) - 2; char *ptr = title; if (desc->title_rows > 0 && desc->title[0] != '\0') str = desc->title; else if (desc->filename[0] != '\0') str = desc->filename; else str = ""; while (bytes > 0 && *str != '\0') { size_t sz = utf8len(str); if (sz > bytes) break; memcpy(ptr, str, sz); ptr += sz; str += sz; bytes -= sz; } if (ptr != title) *ptr++ = ' '; *ptr = '\0'; wattron(bottom_bar, bottom_bar_theme->prompt_attr); if (desc->headline_transl) { snprintf(buffer, 199, "%slines %d-%d/%d %.0f%% ", title, first_row + 1 - fix_rows_offset, first_row + 1 - fix_rows_offset + scrdesc->rows_rows, desc->maxy + 1 - desc->fixed_rows - desc->title_rows, (cursor_row + 1) / ((double) (desc->maxy + 1 - desc->fixed_rows - desc->title_rows)) * 100.0); } else { snprintf(buffer, 199, "%slines %d-%d/%d %.0f%% ", title, first_row + 1, first_row + 1 + scrdesc->footer_rows, desc->last_row + 1, ((cursor_row + 1) / ((double) (desc->last_row + 1))) * 100.0); } mvwprintw(bottom_bar, 0, 0, "%s", buffer); wclrtoeol(bottom_bar); wrefresh(bottom_bar); wattroff(bottom_bar, bottom_bar_theme->prompt_attr); } } static void make_beep(Options *opts) { if (!opts->no_sound) beep(); } /* * It is used for result of action info */ static int show_info_wait(Options *opts, ScrDesc *scrdesc, char *fmt, char *par, bool beep, bool refresh_first) { int c; WINDOW *bottom_bar = w_bottom_bar(scrdesc); Theme *t = &scrdesc->themes[WINDOW_BOTTOM_BAR]; /* * When refresh is required first, then store params and quit immediately. * Only once can be info moved after refresh */ if (refresh_first && scrdesc->fmt == NULL) { if (fmt != NULL) scrdesc->fmt = strdup(fmt); else scrdesc->fmt = NULL; if (par != NULL) scrdesc->par = strdup(par); else scrdesc->par = NULL; scrdesc->beep = beep; return 0; } wattron(bottom_bar, t->bottom_light_attr); if (par != NULL) mvwprintw(bottom_bar, 0, 0, fmt, par); else mvwprintw(bottom_bar, 0, 0, "%s", fmt); wclrtoeol(bottom_bar); wattroff(bottom_bar, t->bottom_light_attr); wrefresh(bottom_bar); refresh(); if (beep) make_beep(opts); timeout(2000); c = getch(); timeout(-1); return c == ERR ? 0 : c; } static void get_string(ScrDesc *scrdesc, char *prompt, char *buffer, int maxsize) { WINDOW *bottom_bar = w_bottom_bar(scrdesc); mvwprintw(bottom_bar, 0, 0, "%s", prompt); wclrtoeol(bottom_bar); curs_set(1); echo(); wgetnstr(bottom_bar, buffer, maxsize); curs_set(0); noecho(); } #define SEARCH_FORWARD 1 #define SEARCH_BACKWARD 2 static bool has_upperchr(char *str) { while (*str != '\0') { if (utf8_isupper(str)) return true; str += utf8charlen(*str); } return false; } static void reset_searching_lineinfo(LineBuffer *lnb) { while (lnb != NULL) { if (lnb->lineinfo != NULL) { int i; for (i = 0; i < lnb->nrows; i++) { lnb->lineinfo[i].mask |= LINEINFO_UNKNOWN; lnb->lineinfo[i].mask &= ~(LINEINFO_FOUNDSTR | LINEINFO_FOUNDSTR_MULTI); } } lnb = lnb->next; } } int main(int argc, char *argv[]) { int maxx, maxy; int c; int c2 = 0; int c3 = 0; int cursor_row = 0; int cursor_col = 0; int footer_cursor_col = 0; int first_row = 0; int prev_first_row; int first_data_row; int i; DataDesc desc; ScrDesc scrdesc; Options opts; int _columns = -1; /* default will be 1 if screen width will be enough */ int fixedRows = -1; /* detect automatically (not yet implemented option) */ FILE *fp = NULL; bool detected_format = false; bool no_alternate_screen = false; int fix_rows_offset = 0; int opt; int option_index = 0; bool use_mouse = true; mmask_t prev_mousemask = 0; bool quit_if_one_screen = false; int search_direction = SEARCH_FORWARD; bool redirect_mode; bool noatty; /* true, when cannot to get keys from stdin */ bool fresh_found = false; int fresh_found_cursor_col = -1; static struct option long_options[] = { /* These options set a flag. */ {"force-uniborder", no_argument, 0, 5}, {"help", no_argument, 0, 1}, {"hlite-search", no_argument, 0, 'g'}, {"HILITE-SEARCH", no_argument, 0, 'G'}, {"ignore-case", no_argument, 0, 'i'}, {"IGNORE-CASE", no_argument, 0, 'I'}, {"no-mouse", no_argument, 0, 2}, {"no-sound", no_argument, 0, 3}, {"less-status-bar", no_argument, 0, 4}, {"quit-if-one-screen", no_argument, 0, 'F'}, {"version", no_argument, 0, 'V'}, {0, 0, 0, 0} }; opts.ignore_case = false; opts.ignore_lower_case = false; opts.no_sound = false; opts.less_status_bar = false; opts.no_highlight_search = false; opts.force_uniborder = false; opts.theme = 1; while ((opt = getopt_long(argc, argv, "bs:c:f:XVFgGiI", long_options, &option_index)) != -1) { int n; switch (opt) { case 1: fprintf(stderr, "pspg is a Unix pager optimized for table browsing.\n\n"); fprintf(stderr, "Usage:\n"); fprintf(stderr, " %s [OPTION]\n\n", argv[0]); fprintf(stderr, "Options:\n"); fprintf(stderr, " -b black-white style\n"); fprintf(stderr, " -s N set color style number (1..%d)\n", MAX_STYLE); fprintf(stderr, " -c N fix N columns (1..4)\n"); fprintf(stderr, " -f file open file\n"); fprintf(stderr, " -X don't use alternate screen\n"); fprintf(stderr, " --help show this help\n"); fprintf(stderr, " --force-uniborder\n"); fprintf(stderr, " replace ascii borders by unicode borders\n"); fprintf(stderr, " -g --hlite-search\n"); fprintf(stderr, " -G --HILITE-SEARCH\n"); fprintf(stderr, " don't highlight lines for searches\n"); fprintf(stderr, " -i --ignore-case\n"); fprintf(stderr, " ignore case in searches that do not contain uppercase\n"); fprintf(stderr, " -I --IGNORE-CASE\n"); fprintf(stderr, " ignore case in all searches\n"); fprintf(stderr, " --less-status-bar\n"); fprintf(stderr, " status bar like less pager\n"); fprintf(stderr, " --no-mouse don't use own mouse handling\n"); fprintf(stderr, " --no-sound don't use beep when scroll is not possible\n"); fprintf(stderr, " -F, --quit-if-one-screen\n"); fprintf(stderr, " quit if content is one screen\n"); fprintf(stderr, " -V, --version show version\n\n"); fprintf(stderr, "pspg shares lot of key commands with less pager or vi editor.\n"); exit(0); case 'I': opts.ignore_case = true; break; case 'i': opts.ignore_lower_case = true; break; case 2: use_mouse = false; break; case 3: opts.no_sound = true; break; case 4: opts.less_status_bar = true; break; case 5: opts.force_uniborder = true; break; case 'V': fprintf(stdout, "pspg-%s\n", PSPG_VERSION); exit(0); case 'X': no_alternate_screen = true; break; case 'b': opts.theme = 0; break; case 's': n = atoi(optarg); if (n < 0 || n > MAX_STYLE) { fprintf(stderr, "only color schemas 0 .. %d are supported.\n", MAX_STYLE); exit(EXIT_FAILURE); } opts.theme = n; break; case 'c': n = atoi(optarg); if (n < 0 || n > 4) { fprintf(stderr, "fixed columns should be between 0 and 4.\n"); exit(EXIT_FAILURE); } _columns = n; break; case 'f': fp = fopen(optarg, "r"); if (fp == NULL) { fprintf(stderr, "cannot to read file: %s\n", optarg); exit(1); } break; case 'F': quit_if_one_screen = true; break; case 'g': opts.no_highlight_lines = true; break; case 'G': opts.no_highlight_search = true; break; default: fprintf(stderr, "Try %s --help\n", argv[0]); exit(EXIT_FAILURE); } } setlocale(LC_ALL, ""); readfile(fp, &desc); if (fp != NULL) { fclose(fp); fp = NULL; } if (!isatty(fileno(stdin))) { if (freopen("/dev/tty", "r", stdin) != NULL) noatty = false; else if (freopen(ttyname(fileno(stdout)), "r", stdin) != NULL) noatty = false; else { /* * cannot to reopen terminal device. See discussion to issue #35 * fallback solution - read keys directly from stderr. Just check * it it is possible. */ if (!isatty(fileno(stderr))) { fprintf(stderr, "missing a access to terminal device\n"); exit(1); } noatty = true; fclose(stdin); } } else noatty = false; if (noatty) /* use stderr like stdin. This is fallback solution used by less */ newterm(termname(), stdout, stderr); else initscr(); if(!has_colors()) { endwin(); fprintf(stderr, "your terminal does not support color\n"); exit(1); } start_color(); initialize_color_pairs(opts.theme); clear(); cbreak(); keypad(stdscr, TRUE); curs_set(0); noecho(); set_escdelay(25); if (use_mouse) { #if NCURSES_MOUSE_VERSION > 1 mousemask(BUTTON1_CLICKED | BUTTON4_PRESSED | BUTTON5_PRESSED | BUTTON_ALT | BUTTON1_DOUBLE_CLICKED, NULL); #else mousemask(BUTTON1_CLICKED, NULL); #endif } if (desc.headline != NULL) detected_format = translate_headline(&desc); if (desc.headline_transl != NULL && !desc.is_expanded_mode) desc.first_data_row = desc.border_head_row + 1; else if (desc.title_rows > 0 && desc.is_expanded_mode) desc.first_data_row = desc.title_rows; else { desc.first_data_row = 0; desc.last_data_row = desc.last_row; desc.title_rows = 0; desc.title[0] = '\0'; } first_data_row = desc.first_data_row; trim_footer_rows(&desc); memset(&scrdesc, 0, sizeof(ScrDesc)); initialize_theme(opts.theme, WINDOW_TOP_BAR, desc.headline_transl != NULL, false, &scrdesc.themes[WINDOW_TOP_BAR]); initialize_theme(opts.theme, WINDOW_BOTTOM_BAR, desc.headline_transl != NULL, false, &scrdesc.themes[WINDOW_BOTTOM_BAR]); refresh_aux_windows(&opts, &scrdesc, &desc); getmaxyx(stdscr, maxy, maxx); if (quit_if_one_screen) { /* the content can be displayed in one screen */ if (maxy >= desc.last_row && maxx >= desc.maxx) { LineBuffer *lnb = &desc.rows; int lnb_row = 0; endwin(); while (lnb_row < lnb->nrows) printf("%s\n", lnb->rows[lnb_row++]); return 0; } } /* some corrections */ if (detected_format) { if (desc.is_expanded_mode) { if (strchr(desc.headline_transl,'I') == NULL) { char *str = desc.rows.rows[desc.title_rows + 1]; int pos = 0; /* fallback point, didn't find separator already */ while (pos < 40) { if ((desc.linestyle == 'a' && *str == '|' && pos > 1) || (desc.linestyle == 'u' && pos > 1 && (strncmp(str, /* │ */ "\342\224\202", 3) == 0 || strncmp(str, /* ║ */ "\342\225\221", 3) == 0))) { desc.headline_transl[pos] = 'I'; break; } pos += 1; str += utf8charlen(*str); } } } else { if (desc.border_type != 2) { if (desc.border_bottom_row == -1 && desc.footer_row == -1) { if (desc.alt_footer_row != -1 && desc.border_type == 1) { desc.footer_row = desc.alt_footer_row; desc.last_data_row = desc.footer_row - 1; } else { /* fallback */ desc.last_data_row = desc.last_row - 1; desc.footer_row = desc.last_row; } } trim_footer_rows(&desc); } } } create_layout_dimensions(&scrdesc, &desc, _columns, fixedRows, maxy, maxx); create_layout(&scrdesc, &desc, first_data_row, first_row); initialize_theme(opts.theme, WINDOW_LUC, desc.headline_transl != NULL, opts.no_highlight_lines, &scrdesc.themes[WINDOW_LUC]); initialize_theme(opts.theme, WINDOW_FIX_ROWS, desc.headline_transl != NULL, opts.no_highlight_lines, &scrdesc.themes[WINDOW_FIX_ROWS]); initialize_theme(opts.theme, WINDOW_FIX_COLS, desc.headline_transl != NULL, opts.no_highlight_lines, &scrdesc.themes[WINDOW_FIX_COLS]); initialize_theme(opts.theme, WINDOW_ROWS, desc.headline_transl != NULL, opts.no_highlight_lines, &scrdesc.themes[WINDOW_ROWS]); initialize_theme(opts.theme, WINDOW_FOOTER, desc.headline_transl != NULL, opts.no_highlight_lines, &scrdesc.themes[WINDOW_FOOTER]); print_status(&opts, &scrdesc, &desc, cursor_row, cursor_col, first_row, 0); while (true) { bool refresh_scr = false; bool resize_scr = false; fix_rows_offset = desc.fixed_rows - scrdesc.fix_rows_rows; /* * Draw windows, only when function (key) redirect was not forced. * Redirect emmit immediate redraw. */ if (c2 == 0) { window_fill(WINDOW_LUC, desc.title_rows + desc.fixed_rows - scrdesc.fix_rows_rows, 0, -1, &desc, &scrdesc, &opts); window_fill(WINDOW_ROWS, first_data_row + first_row - fix_rows_offset, scrdesc.fix_cols_cols + cursor_col, cursor_row - first_row + fix_rows_offset, &desc, &scrdesc, &opts); window_fill(WINDOW_FIX_COLS, first_data_row + first_row - fix_rows_offset, 0, cursor_row - first_row + fix_rows_offset, &desc, &scrdesc, &opts); window_fill(WINDOW_FIX_ROWS, desc.title_rows + desc.fixed_rows - scrdesc.fix_rows_rows, scrdesc.fix_cols_cols + cursor_col, -1, &desc, &scrdesc, &opts); window_fill(WINDOW_FOOTER, first_data_row + first_row + scrdesc.rows_rows - fix_rows_offset, footer_cursor_col, cursor_row - first_row - scrdesc.rows_rows + fix_rows_offset, &desc, &scrdesc, &opts); if (w_luc(&scrdesc) != NULL) wnoutrefresh(w_luc(&scrdesc)); if (w_rows(&scrdesc) != NULL) wnoutrefresh(w_rows(&scrdesc)); if (w_fix_cols(&scrdesc) != NULL) wnoutrefresh(w_fix_cols(&scrdesc)); if (w_fix_rows(&scrdesc) != NULL) wnoutrefresh(w_fix_rows(&scrdesc)); if (w_footer(&scrdesc) != NULL) wnoutrefresh(w_footer(&scrdesc)); doupdate(); if (scrdesc.fmt != NULL) { c2 = show_info_wait(&opts, &scrdesc, scrdesc.fmt, scrdesc.par, scrdesc.beep, false); if (scrdesc.fmt != NULL) { free(scrdesc.fmt); scrdesc.fmt = NULL; } if (scrdesc.par != NULL) { free(scrdesc.par); scrdesc.par = NULL; } refresh_aux_windows(&opts, &scrdesc, &desc); continue; } c = getch(); redirect_mode = false; } else { c = c2; c2 = 0; redirect_mode = true; } if (c == 'q' || c == KEY_F(10) || c == ERR) break; prev_first_row = first_row; switch (c) { case 27: { int second_char; if (c3 != 0) { second_char = c3; c3 = 0; } else second_char = getch(); if (second_char == 'm') /* ALT m */ { if (use_mouse) { mousemask(0, &prev_mousemask); use_mouse = false; } else { mousemask(prev_mousemask, NULL); use_mouse = true; } c2 = show_info_wait(&opts, &scrdesc, " mouse handling: %s ", use_mouse ? "on" : "off", false, false); refresh_scr = true; } if (second_char == 'k') /* ALT k - (un)set bookmark */ { LineBuffer *lnb = &desc.rows; int _cursor_row = cursor_row + scrdesc.fix_rows_rows + desc.title_rows + fix_rows_offset; /* skip first x LineBuffers */ while (_cursor_row > 1000) { lnb = lnb->next; _cursor_row -= 1000; } if (lnb->lineinfo == NULL) { lnb->lineinfo = malloc(1000 * sizeof(LineInfo)); if (lnb->lineinfo == NULL) { endwin(); fprintf(stderr, "out of memory"); exit(1); } memset(lnb->lineinfo, 0, 1000 * sizeof(LineInfo)); } lnb->lineinfo[_cursor_row].mask ^= LINEINFO_BOOKMARK; } else if (second_char == 'i') /* ALT i - prev bookmark */ { LineBuffer *lnb = &desc.rows; int rownum_cursor_row; int rownum = 0; bool found = false; rownum_cursor_row = cursor_row + scrdesc.fix_rows_rows + desc.title_rows + fix_rows_offset - 1; if (rownum_cursor_row >= 0) { /* skip first x LineBuffers */ while (rownum_cursor_row > 1000 && lnb != NULL) { lnb = lnb->next; rownum_cursor_row -= 1000; rownum += 1000; } rownum += rownum_cursor_row; while (lnb != NULL) { if (lnb->lineinfo != NULL) { if (rownum_cursor_row < 0) rownum_cursor_row = lnb->nrows - 1; while (rownum_cursor_row >= 0) { if ((lnb->lineinfo[rownum_cursor_row].mask & LINEINFO_BOOKMARK) != 0) { found = true; goto exit_search_prev_bookmark; } rownum -= 1; rownum_cursor_row -= 1; } } else rownum -= 1000; lnb = lnb->prev; } } exit_search_prev_bookmark: if (found) { cursor_row = rownum - scrdesc.fix_rows_rows - desc.title_rows - fix_rows_offset; if (cursor_row < first_row) first_row = cursor_row; } else make_beep(&opts); break; } else if (second_char == 'j') /* ALT j - next bookmark */ { LineBuffer *lnb = &desc.rows; int rownum_cursor_row; int rownum = 0; bool found = false; rownum_cursor_row = cursor_row + scrdesc.fix_rows_rows + desc.title_rows + fix_rows_offset + 1; /* skip first x LineBuffers */ while (rownum_cursor_row > 1000 && lnb != NULL) { lnb = lnb->next; rownum_cursor_row -= 1000; rownum += 1000; } rownum += rownum_cursor_row; while (lnb != NULL) { if (lnb->lineinfo != NULL) { while (rownum_cursor_row < lnb->nrows) { if ((lnb->lineinfo[rownum_cursor_row].mask & LINEINFO_BOOKMARK) != 0) { found = true; goto exit_search_next_bookmark; } rownum += 1; rownum_cursor_row += 1; } } else rownum += 1000; rownum_cursor_row = 0; lnb = lnb->next; } exit_search_next_bookmark: if (found) { int max_first_row; cursor_row = rownum - scrdesc.fix_rows_rows - desc.title_rows - fix_rows_offset; if (cursor_row - first_row > maxy - scrdesc.fix_rows_rows - fix_rows_offset - 3) first_row = cursor_row - maxy + scrdesc.fix_rows_rows + fix_rows_offset + 3; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (first_row > max_first_row) first_row = max_first_row; } else make_beep(&opts); break; } else if (second_char == 27 || second_char == '0') c2 = 'q'; } break; case KEY_UP: case 'k': if (cursor_row > 0) { /* * When we are on data position, and we are going up, and a fixed rows are hidden, * then unhide fixed rows first (by decreasing first_row) */ if (fix_rows_offset > 0 && !is_footer_cursor(cursor_row, &scrdesc, &desc)) first_row -= 1; else cursor_row -= 1; /* * When fixed rows are hidden, then gap between first row and cursor row * can be bigger (about fix_rows_offset. */ if (cursor_row + fix_rows_offset < first_row) first_row = cursor_row + fix_rows_offset; } else make_beep(&opts); break; case '0': case '1': case '2': case '3': case '4': _columns = c - '0'; cursor_col = 0; refresh_scr = true; break; case KEY_DOWN: case 'j': { int max_cursor_row; int max_first_row; max_cursor_row = desc.last_row - desc.first_data_row; if (++cursor_row > max_cursor_row) { cursor_row = max_cursor_row; make_beep(&opts); } if (cursor_row - first_row > scrdesc.main_maxy - scrdesc.fix_rows_rows - fix_rows_offset - 1) first_row += 1; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (first_row > max_first_row) first_row = max_first_row; } break; case 4: /* CTRL D - forward half win */ { int offset = ((maxy - scrdesc.fix_rows_rows + desc.title_rows - 3) >> 1); int max_cursor_row; int max_first_row; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; max_cursor_row = desc.last_row - desc.first_data_row; if (first_row + offset <= max_first_row) { first_row += offset; cursor_row += offset; } else if (cursor_row + offset <= max_cursor_row) { cursor_row += offset; first_row = max_first_row; } else { cursor_row = max_cursor_row; first_row = max_first_row; } } break; case 21: /* CTRL U - backward half win */ { int offset = ((maxy - scrdesc.fix_rows_rows + desc.title_rows - 3) >> 1); if (first_row - offset > 0) { first_row -= offset; cursor_row -= offset; } else if (cursor_row - offset > 0) { first_row = 0; cursor_row -= offset; } else { first_row = 0; cursor_row = 0; } } break; case 5: /* CTRL E */ { int max_cursor_row; int max_first_row; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; max_cursor_row = desc.last_row - desc.first_data_row; if (first_row < max_first_row) { first_row += 1; cursor_row += 1; } else if (cursor_row < max_cursor_row) { cursor_row += 1; } } break; case 25: /* CTRL Y */ if (first_row > 0) { first_row -= 1; cursor_row -= 1; } else if (cursor_row > 0) cursor_row -= 1; break; case KEY_LEFT: case 'h': { bool _is_footer_cursor = is_footer_cursor(cursor_row, &scrdesc, &desc); int recheck_count = 0; recheck_left: if (++recheck_count > 2) break; if (_is_footer_cursor) { if (footer_cursor_col > 0) footer_cursor_col -= 1; else if (scrdesc.rows_rows >= 0) { _is_footer_cursor = false; footer_cursor_col = 0; goto recheck_left; } } else { int move_left = 30; if (cursor_col == 0 && scrdesc.footer_rows > 0) { _is_footer_cursor = true; goto recheck_left; } if (desc.headline_transl != NULL) { int i; for (i = 1; i <= 30; i++) { int pos = scrdesc.fix_cols_cols + cursor_col - i; if (pos < 0) break; if (desc.headline_transl[i] == 'I') { move_left = i; break; } } } cursor_col -= move_left; if (cursor_col < 3) cursor_col = 0; } } break; case KEY_RIGHT: case 'l': { bool _is_footer_cursor = is_footer_cursor(cursor_row, &scrdesc, &desc); int recheck_count = 0; recheck_right: if (++recheck_count > 2) break; if (_is_footer_cursor) { int max_footer_cursor_col = desc.footer_char_size - maxx; if (footer_cursor_col + 1 >= max_footer_cursor_col && scrdesc.rows_rows >= 0) { _is_footer_cursor = false; footer_cursor_col = max_footer_cursor_col; goto recheck_right; } else footer_cursor_col += 1; if (footer_cursor_col > max_footer_cursor_col) footer_cursor_col = max_footer_cursor_col; } else { int move_right = 30; int max_cursor_col; int new_cursor_col = cursor_col; if (desc.headline_transl != NULL) { int i; char *str = &desc.headline_transl[scrdesc.fix_cols_cols + cursor_col]; for (i = 1; i <= 30; i++) { if (str[i] == 'I') { move_right = i + 1; break; } } } new_cursor_col += move_right; if (desc.headline_transl != NULL) max_cursor_col = desc.headline_char_size - maxx; else max_cursor_col = desc.maxx - maxx - 1; max_cursor_col = max_cursor_col > 0 ? max_cursor_col : 0; if (new_cursor_col > max_cursor_col) new_cursor_col = max_cursor_col; if (new_cursor_col == cursor_col && scrdesc.footer_rows > 0) { _is_footer_cursor = true; goto recheck_right; } cursor_col = new_cursor_col; } } break; case 538: /* CTRL HOME */ case 'g': cursor_row = 0; first_row = 0; break; case 533: /* CTRL END */ case 'G': cursor_row = desc.last_row - desc.first_data_row; first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; break; case 'H': cursor_row = first_row; break; case 'L': cursor_row = first_row + maxy - scrdesc.fix_rows_rows + desc.title_rows - 3; break; case 'M': cursor_row = first_row + ((maxy - scrdesc.fix_rows_rows + desc.title_rows - 3) >> 1); break; case KEY_PPAGE: case 2: /* CTRL B */ { int offset; if (desc.is_expanded_mode && scrdesc.first_rec_title_y != -1 && scrdesc.last_rec_title_y != -1) offset = scrdesc.last_rec_title_y - scrdesc.first_rec_title_y; else offset = scrdesc.main_maxy - scrdesc.fix_rows_rows; if (first_row > 0) { first_row -= offset; if (first_row < 0) first_row = 0; } if (cursor_row > 0) { cursor_row -= offset; if (cursor_row < 0) cursor_row = 0; } else make_beep(&opts); } break; case KEY_NPAGE: case ' ': case 6: /* CTRL F */ { int max_cursor_row; int max_first_row; int offset; if (desc.is_expanded_mode && scrdesc.first_rec_title_y != -1 && scrdesc.last_rec_title_y != -1) offset = scrdesc.last_rec_title_y - scrdesc.first_rec_title_y; else offset = scrdesc.main_maxy - scrdesc.fix_rows_rows; first_row += offset; cursor_row += offset; max_cursor_row = desc.last_row - desc.first_data_row; if (cursor_row > max_cursor_row) { cursor_row = max_cursor_row; make_beep(&opts); } if (cursor_row - first_row > scrdesc.main_maxy - scrdesc.fix_rows_rows - fix_rows_offset - 1) first_row += 1; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (first_row > max_first_row) first_row = max_first_row; } break; case KEY_RESIZE: refresh_scr = true; resize_scr = true; break; case KEY_HOME: case '^': { bool _is_footer_cursor = is_footer_cursor(cursor_row, &scrdesc, &desc); int recheck_count = 0; recheck_home: if (++recheck_count > 2) break; if (_is_footer_cursor) { if (footer_cursor_col > 0) footer_cursor_col = 0; else if (scrdesc.rows_rows > 0) { footer_cursor_col = 0; _is_footer_cursor = false; goto recheck_home; } } else { if (cursor_col > 0) cursor_col = 0; else if (scrdesc.footer_rows > 0) { cursor_col = 0; _is_footer_cursor = true; goto recheck_home; } } break; } case KEY_END: case '$': { bool _is_footer_cursor = is_footer_cursor(cursor_row, &scrdesc, &desc); int recheck_count = 0; recheck_end: if (++recheck_count > 2) break; if (_is_footer_cursor) { if (footer_cursor_col < desc.footer_char_size - maxx) footer_cursor_col = desc.footer_char_size - maxx; else if (scrdesc.rows_rows > 0) { footer_cursor_col = desc.footer_char_size - maxx; _is_footer_cursor = false; goto recheck_end; } } else { int new_cursor_col; if (desc.headline != NULL) new_cursor_col = desc.headline_char_size - maxx; else new_cursor_col = desc.maxx - maxx - 1; new_cursor_col = new_cursor_col > 0 ? new_cursor_col : 0; if (new_cursor_col > cursor_col) cursor_col = new_cursor_col; else if (scrdesc.footer_rows > 0) { _is_footer_cursor = true; cursor_col = new_cursor_col; goto recheck_end; } } break; } case 's': { char buffer[1024]; FILE *fp; bool ok = false; get_string(&scrdesc, "log file: ", buffer, sizeof(buffer) - 1); fp = fopen(buffer, "w"); if (fp != NULL) { LineBuffer *lnb = &desc.rows; ok = true; while (lnb != NULL) { for (i = 0; i < lnb->nrows; i++) { fprintf(fp, "%s", lnb->rows[i]); if (errno != 0) { ok = false; goto exit; } } lnb = lnb->next; } fclose(fp); } exit: if (!ok) c2 = show_info_wait(&opts, &scrdesc, " Cannot write to %s ", buffer, true, false); refresh_scr = true; break; } case '/': { char locsearchterm[256]; get_string(&scrdesc, "/", locsearchterm, sizeof(locsearchterm) - 1); if (locsearchterm[0] != '\0') { LineBuffer *lnb = &desc.rows; strncpy(scrdesc.searchterm, locsearchterm, sizeof(scrdesc.searchterm) - 1); scrdesc.has_upperchr = has_upperchr(scrdesc.searchterm); scrdesc.searchterm_size = strlen(scrdesc.searchterm); scrdesc.searchterm_char_size = utf8len(scrdesc.searchterm); reset_searching_lineinfo(&desc.rows); } search_direction = SEARCH_FORWARD; /* continue to find next: */ } case 'n': { int rownum_cursor_row; int rownum = 0; int skip_bytes = 0; LineBuffer *lnb = &desc.rows; /* call inverse command when search direction is SEARCH_BACKWARD */ if (c == 'n' && search_direction == SEARCH_BACKWARD && !redirect_mode) { c2 = 'N'; break; } rownum_cursor_row = cursor_row + scrdesc.fix_rows_rows + desc.title_rows + fix_rows_offset; if (scrdesc.found && rownum_cursor_row == scrdesc.found_row) skip_bytes = scrdesc.found_start_bytes + scrdesc.searchterm_size; scrdesc.found = false; /* skip first x LineBuffers */ while (rownum_cursor_row > 1000 && lnb != NULL) { lnb = lnb->next; rownum_cursor_row -= 1000; rownum += 1000; } rownum += rownum_cursor_row; while (lnb != NULL) { while (rownum_cursor_row < lnb->nrows) { const char *str; if (opts.ignore_case || (opts.ignore_lower_case && !scrdesc.has_upperchr)) str = utf8_nstrstr(lnb->rows[rownum_cursor_row] + skip_bytes, scrdesc.searchterm); else if (opts.ignore_lower_case && scrdesc.has_upperchr) str = utf8_nstrstr_ignore_lower_case(lnb->rows[rownum_cursor_row] + skip_bytes, scrdesc.searchterm); else str = str = strstr(lnb->rows[rownum_cursor_row] + skip_bytes, scrdesc.searchterm); if (str != NULL) { scrdesc.found_start_x = utf8len_start_stop(lnb->rows[rownum_cursor_row], str); scrdesc.found_start_bytes = str - lnb->rows[rownum_cursor_row]; scrdesc.found = true; goto found_next_pattern; } rownum += 1; rownum_cursor_row += 1; skip_bytes = 0; } rownum_cursor_row = 0; lnb = lnb->next; } found_next_pattern: if (scrdesc.found) { int max_first_row; cursor_row = rownum - scrdesc.fix_rows_rows - desc.title_rows - fix_rows_offset; scrdesc.found_row = rownum; fresh_found = true; fresh_found_cursor_col = -1; if (cursor_row - first_row > maxy - scrdesc.fix_rows_rows - fix_rows_offset - 3) first_row = cursor_row - maxy + scrdesc.fix_rows_rows + fix_rows_offset + 3; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (first_row > max_first_row) first_row = max_first_row; } else c2 = show_info_wait(&opts, &scrdesc, " Not found ", NULL, true, true); refresh_scr = true; } break; case '?': { char locsearchterm[256]; get_string(&scrdesc, "?", locsearchterm, sizeof(locsearchterm) - 1); if (locsearchterm[0] != '\0') { strncpy(scrdesc.searchterm, locsearchterm, sizeof(scrdesc.searchterm) - 1); scrdesc.has_upperchr = has_upperchr(scrdesc.searchterm); scrdesc.searchterm_size = strlen(scrdesc.searchterm); scrdesc.searchterm_char_size = utf8len(scrdesc.searchterm); reset_searching_lineinfo(&desc.rows); } search_direction = SEARCH_BACKWARD; /* continue to find next: */ } case 'N': { int rowidx; int search_row; LineBuffer *rows = &desc.rows; int cut_bytes = 0; /* call inverse command when search direction is SEARCH_BACKWARD */ if (c == 'N' && search_direction == SEARCH_BACKWARD && !redirect_mode) { c2 = 'n'; break; } rowidx = cursor_row + scrdesc.fix_rows_rows + desc.title_rows; search_row = cursor_row; /* * when we can search on found line, the use it, * else try start searching from previous row. */ if (scrdesc.found && rowidx == scrdesc.found_row && scrdesc.found_start_bytes > 0) cut_bytes = scrdesc.found_start_bytes; else { rowidx -= 1; search_row -= 1; } scrdesc.found = false; while (rowidx > 1000) { rows = rows->next; rowidx -= 1000; } while (search_row >= 0) { const char *str; char *row; bool free_row; if (rowidx < 0) { rows = rows->prev; rowidx = 1000; continue; } if (cut_bytes != 0) { row = malloc(strlen(rows->rows[rowidx]) + 1); if (row == NULL) { endwin(); fprintf(stderr, "out of memory"); exit(1); } strcpy(row, rows->rows[rowidx]); row[cut_bytes] = '\0'; free_row = true; } else { row = rows->rows[rowidx]; free_row = false; } str = row; /* try to find most right pattern */ while (str != NULL) { if (opts.ignore_case || (opts.ignore_lower_case && !scrdesc.has_upperchr)) str = utf8_nstrstr(str, scrdesc.searchterm); else if (opts.ignore_lower_case && scrdesc.has_upperchr) str = utf8_nstrstr_ignore_lower_case(str, scrdesc.searchterm); else str = str = strstr(str, scrdesc.searchterm); if (str != NULL) { cursor_row = search_row; if (first_row > cursor_row) first_row = cursor_row; scrdesc.found_start_x = utf8len_start_stop(row, str); scrdesc.found_start_bytes = str - row; scrdesc.found_row = cursor_row + scrdesc.fix_rows_rows + desc.title_rows + fix_rows_offset; scrdesc.found = true; fresh_found = true; fresh_found_cursor_col = -1; str += scrdesc.searchterm_size; } } if (free_row) free(row); if (scrdesc.found) break; rowidx -= 1; search_row -= 1; cut_bytes = 0; } if (!scrdesc.found) c2 = show_info_wait(&opts, &scrdesc, " Not found ", NULL, true, true); refresh_scr = true; } break; case KEY_MOUSE: { MEVENT event; if (getmouse(&event) == OK) { #if NCURSES_MOUSE_VERSION > 1 if (event.bstate & BUTTON_ALT && event.bstate & BUTTON5_PRESSED) { c2 = 'l'; break; } if (event.bstate & BUTTON_ALT && event.bstate & BUTTON4_PRESSED) { c2 = 'h'; break; } if (event.bstate & BUTTON5_PRESSED) { int max_cursor_row; int max_first_row; int offset = 1; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (desc.headline_transl != NULL) offset = (scrdesc.main_maxy - scrdesc.fix_rows_rows) / 3; if (first_row + offset > max_first_row) offset = 1; first_row += offset; cursor_row += offset; max_cursor_row = desc.last_row - desc.first_data_row; if (cursor_row > max_cursor_row) { cursor_row = max_cursor_row; make_beep(&opts); } if (cursor_row - first_row > scrdesc.main_maxy - scrdesc.fix_rows_rows - fix_rows_offset - 1) first_row += 1; if (first_row > max_first_row) first_row = max_first_row; } else if (event.bstate & BUTTON4_PRESSED) { int offset = 1; if (desc.headline_transl != NULL) offset = (scrdesc.main_maxy - scrdesc.fix_rows_rows) / 3; if (first_row <= offset) offset = 1; if (first_row > 0) { first_row -= offset; if (first_row < 0) first_row = 0; } if (cursor_row > 0) { cursor_row -= offset; if (cursor_row < 0) cursor_row = 0; } else make_beep(&opts); } else #endif if (event.bstate & BUTTON1_CLICKED || event.bstate & BUTTON1_DOUBLE_CLICKED) { int max_cursor_row; int max_first_row; cursor_row = event.y - scrdesc.fix_rows_rows - 1 + first_row - fix_rows_offset; if (cursor_row < 0) cursor_row = 0; if (cursor_row + fix_rows_offset < first_row) first_row = cursor_row + fix_rows_offset; max_cursor_row = desc.last_row - desc.first_data_row; if (cursor_row > max_cursor_row) cursor_row = max_cursor_row; if (cursor_row - first_row > scrdesc.main_maxy - scrdesc.fix_rows_rows + desc.title_rows - fix_rows_offset) first_row += 1; max_first_row = desc.last_row - desc.title_rows - scrdesc.main_maxy + 1; if (max_first_row < 0) max_first_row = 0; if (first_row > max_first_row) first_row = max_first_row; if (event.bstate & BUTTON_ALT && event.bstate & BUTTON1_DOUBLE_CLICKED) { c2 = 27; c3 = 'k'; } } } } break; } /* end switch */ if (fresh_found && scrdesc.found) { int maxy, maxx; bool _is_footer_cursor = is_footer_cursor(cursor_row, &scrdesc, &desc); UNUSED(maxy); if (fresh_found && w_fix_cols(&scrdesc) != NULL) { getmaxyx(w_fix_cols(&scrdesc), maxy, maxx); if (scrdesc.found_start_x + scrdesc.searchterm_char_size <= maxx) fresh_found = false; } if (fresh_found && !_is_footer_cursor && w_rows(&scrdesc) != NULL) { getmaxyx(w_rows(&scrdesc), maxy, maxx); if (cursor_col + scrdesc.fix_cols_cols <= scrdesc.found_start_x && cursor_col + scrdesc.fix_cols_cols + maxx >= scrdesc.found_start_x + scrdesc.searchterm_char_size) { fresh_found = false; } else { /* we would to move cursor_col to left or right to be partially visible */ if (cursor_col + scrdesc.fix_cols_cols > scrdesc.found_start_x) c2 = KEY_LEFT; else if (cursor_col + scrdesc.fix_cols_cols + maxx < scrdesc.found_start_x + scrdesc.searchterm_char_size) c2 = KEY_RIGHT; } } if (fresh_found && _is_footer_cursor && w_footer(&scrdesc) != NULL) { getmaxyx(w_footer(&scrdesc), maxy, maxx); if (footer_cursor_col + scrdesc.fix_cols_cols <= scrdesc.found_start_x && footer_cursor_col + maxx >= scrdesc.found_start_x + scrdesc.searchterm_char_size) { fresh_found = false; } else { /* we would to move cursor_col to left or right to be partially visible */ if (footer_cursor_col > scrdesc.found_start_x) c2 = KEY_LEFT; else if (footer_cursor_col + maxx < scrdesc.found_start_x + scrdesc.searchterm_char_size) c2 = KEY_RIGHT; } } if (c2 != 0) { /* protect agains infinity loop */ if (fresh_found_cursor_col != -1) { /* the direction should not be changed */ if (_is_footer_cursor) { if ((fresh_found_cursor_col > footer_cursor_col && c2 == KEY_RIGHT) || (fresh_found_cursor_col < footer_cursor_col && c2 == KEY_LEFT) || (fresh_found_cursor_col == footer_cursor_col)) { c2 = 0; fresh_found = false; } } else { if ((fresh_found_cursor_col > cursor_col && c2 == KEY_RIGHT) || (fresh_found_cursor_col < cursor_col && c2 == KEY_LEFT) || (fresh_found_cursor_col == cursor_col)) { c2 = 0; fresh_found = false; } } } else fresh_found_cursor_col = _is_footer_cursor? footer_cursor_col : cursor_col; } else fresh_found = false; } print_status(&opts, &scrdesc, &desc, cursor_row, cursor_col, first_row, fix_rows_offset); if (first_row != prev_first_row) { /* now, maybe more/less rows from footer should be displayed */ if (desc.headline_transl != NULL && desc.footer_row > 0) { int rows_rows; rows_rows = min_int(desc.footer_row - scrdesc.fix_rows_rows - first_row - desc.title_rows, scrdesc.main_maxy - scrdesc.fix_rows_rows); rows_rows = rows_rows > 0 ? rows_rows : 0; if (!refresh_scr) { refresh_scr = scrdesc.rows_rows != rows_rows; } } } if (refresh_scr) { if (resize_scr) { struct winsize size; /* * Workaround - the variables COLS, LINES are not refreshed * when pager is resized and executed inside psql. */ if (ioctl(0, TIOCGWINSZ, (char *) &size) >= 0) { resize_term(size.ws_row, size.ws_col); clear(); } resize_scr = false; } getmaxyx(stdscr, maxy, maxx); refresh_aux_windows(&opts, &scrdesc, &desc); create_layout_dimensions(&scrdesc, &desc, _columns, fixedRows, maxy, maxx); create_layout(&scrdesc, &desc, first_data_row, first_row); print_status(&opts, &scrdesc, &desc, cursor_row, cursor_col, first_row, fix_rows_offset); refresh_scr = false; } } endwin(); if (no_alternate_screen) { draw_data(&opts, &scrdesc, &desc, first_data_row, first_row, cursor_col, footer_cursor_col, fix_rows_offset); } return 0; } pspg-0.9.3/src/pspg.h000066400000000000000000000124001324002717400144020ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * pspg.h * themes initialization * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/pspg.h * *------------------------------------------------------------------------- */ #ifndef PSPG_PSPG_H #define PSPG_PSPG_H #include "themes.h" #define LINEINFO_NONE 0 #define LINEINFO_BOOKMARK 1 #define LINEINFO_FOUNDSTR 2 #define LINEINFO_FOUNDSTR_MULTI 4 #define LINEINFO_UNKNOWN 8 #define MAX_STYLE 14 typedef struct LineInfo { char mask; short int start_char; } LineInfo; typedef struct LineBuffer { int first_row; int nrows; char *rows[1000]; LineInfo *lineinfo; struct LineBuffer *next; struct LineBuffer *prev; } LineBuffer; /* * Available formats of headline chars * * L, R .. outer border * I .. inner border * d .. data */ /* * This structure should be immutable */ typedef struct { int border_top_row; /* nrow of bottom outer border or -1 */ int border_head_row; /* nrow of head outer (required) */ int border_bottom_row; /* nrow of bottom outer border or -1 */ int border_type; /* detected type of border: 0, 1, 2 */ char linestyle; /* detected linestyle: a, u */ bool is_expanded_mode; /* true when data are in expanded mode */ bool is_pgcli_fmt; /* table was generated by pgcli */ int expanded_info_minx; /* begin of info in \x mode .. RECORD x */ char title[65]; /* detected title (trimmed) or NULL */ int title_rows; /* number of rows used as table title (skipped later) */ char filename[65]; /* filename (printed on top bar) */ LineBuffer rows; /* list of rows buffers */ int maxy; /* maxy of used pad area with data */ int maxx; /* maxx of used pad area with data */ int maxbytes; /* max length of line in bytes */ char *headline; /* header separator line */ int headline_size; /* size of headerline in bytes */ char *headline_transl; /* translated headline */ int headline_char_size; /* size of headerline in chars */ int first_data_row; /* fist data row line (starts by zero) */ int last_data_row; /* last line of data row */ int footer_row; /* nrow of first footer row or -1 */ int alt_footer_row; /* alternative footer row (used when border = 1) */ int footer_char_size; /* width of footer */ int last_row; /* last not empty row */ int fixed_rows; /* number of fixed rows */ int fixed_columns; /* number of fixed columns */ int data_rows; /* number of data rows */ int footer_rows; /* number of footer rows */ } DataDesc; typedef struct { bool ignore_case; bool ignore_lower_case; bool no_sound; bool less_status_bar; bool no_highlight_search; bool no_highlight_lines; bool force_uniborder; int theme; } Options; /* * This structure can be mutable - depends on displayed data */ typedef struct { int fix_rows_rows; /* current number of fixed rows in window rows */ int fix_cols_cols; /* current number of fixed columns in window rows */ int rows_rows; /* current number of data rows */ int footer_rows; /* current number of footer rows */ int maxy; /* max y size of screen */ int maxx; /* max x size of screen */ int main_maxy; /* max y size of main place (fixed + data + footer rows) */ int main_maxx; /* max x size of main place (should be same like maxx) */ int main_start_y; /* y position of first row of main place */ int main_start_x; /* x position of first row of main place */ int top_bar_rows; /* 1 or 0 when top bar is not used */ WINDOW *wins[7]; Theme themes[7]; char searchterm[256]; /* currently active search input */ int searchterm_char_size; /* size of searchterm in chars */ int searchterm_size; /* size of searchterm in bytes */ bool has_upperchr; /* true, when search term has upper char */ bool found; /* true, when last search was successfull */ int found_start_x; /* x position of found pattern */ int found_start_bytes; /* bytes position of found pattern */ int found_row; /* row of found pattern */ int first_rec_title_y; /* y of first displayed record title in expanded mode */ int last_rec_title_y; /* y of last displayed record title in expanded mode */ char *fmt; /* format string for info when refresh first is required */ char *par; /* parameter for info when refresh first is required */ bool beep; /* beep for info when refresh is required */ } ScrDesc; #define w_luc(scrdesc) ((scrdesc)->wins[WINDOW_LUC]) #define w_fix_rows(scrdesc) ((scrdesc)->wins[WINDOW_FIX_ROWS]) #define w_fix_cols(scrdesc) ((scrdesc)->wins[WINDOW_FIX_COLS]) #define w_rows(scrdesc) ((scrdesc)->wins[WINDOW_ROWS]) #define w_footer(scrdesc) ((scrdesc)->wins[WINDOW_FOOTER]) #define w_top_bar(scrdesc) ((scrdesc)->wins[WINDOW_TOP_BAR]) #define w_bottom_bar(scrdesc) ((scrdesc)->wins[WINDOW_BOTTOM_BAR]) /* from print.c */ void window_fill(int window_identifier, int srcy, int srcx, int cursor_row, DataDesc *desc, ScrDesc *scrdesc, Options *opts); void draw_data(Options *opts, ScrDesc *scrdesc, DataDesc *desc, int first_data_row, int first_row, int cursor_col, int footer_cursor_col, int fix_rows_offset); /* from pspg.c */ bool is_expanded_header(char *str, int *ei_minx, int *ei_maxx); int min_int(int a, int b); #endifpspg-0.9.3/src/themes.c000066400000000000000000000453471324002717400147310ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * themes.c * themes initialization * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/themes.c * *------------------------------------------------------------------------- */ #include "themes.h" #include static int if_in_int(int v, const int *s, int v1, int v2) { while(*s != -1) { if (v == *s) return v1; s += 1; } return v2; } static int if_notin_int(int v, const int *s, int v1, int v2) { while(*s != -1) { if (v == *s) return v2; s += 1; } return v1; } /* * Set color pairs based on style */ void initialize_color_pairs(int theme) { switch (theme) { case 0: use_default_colors(); init_pair(2, COLOR_BLACK, COLOR_WHITE); /* top bar colors */ init_pair(3, -1, -1); /* data alphanumeric */ init_pair(4, -1, -1); /* fix rows, columns */ init_pair(5, COLOR_BLACK, COLOR_WHITE); /* active cursor over fixed cols */ init_pair(6, COLOR_BLACK, COLOR_WHITE); /* active cursor */ init_pair(7, COLOR_BLACK, COLOR_WHITE); /* title color */ init_pair(8, COLOR_BLACK, COLOR_WHITE); /* expanded header */ init_pair(9, -1, -1); /* footer */ init_pair(10, COLOR_BLACK, COLOR_WHITE); /* footer cursor */ init_pair(11, COLOR_BLACK, COLOR_WHITE); /* cursor over decoration */ init_pair(12, COLOR_BLACK, COLOR_WHITE); /* bottom bar colors */ init_pair(13, COLOR_BLACK, COLOR_WHITE); /* light bottom bar colors */ init_pair(14, COLOR_BLACK, COLOR_WHITE); /* color of bookmark lines */ init_pair(15, COLOR_WHITE, COLOR_BLACK); /* color of marked search pattern */ init_pair(16, -1, -1); /* color of line with pattern */ init_pair(17, -1, -1); /* color of line art with pattern */ init_pair(18, -1, -1); /* color of marked search pattern in no-hl line mode */ init_pair(19, -1, -1); /* color of marked search pattern in cursor */ break; case 1: assume_default_colors(COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_BLACK, COLOR_CYAN); init_pair(3, COLOR_WHITE, COLOR_BLUE); init_pair(4, COLOR_YELLOW, COLOR_BLUE); init_pair(5, COLOR_YELLOW, COLOR_CYAN); init_pair(6, COLOR_WHITE, COLOR_CYAN); init_pair(7, COLOR_BLACK, COLOR_CYAN); init_pair(8, COLOR_RED, COLOR_BLUE); init_pair(9, COLOR_CYAN, COLOR_BLUE); init_pair(10, COLOR_WHITE, COLOR_CYAN); init_pair(11, COLOR_WHITE, COLOR_CYAN); init_pair(12, COLOR_WHITE, COLOR_CYAN); init_pair(13, COLOR_YELLOW, COLOR_CYAN); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_GREEN, COLOR_BLUE); init_pair(19, COLOR_YELLOW, COLOR_CYAN); init_pair(20, COLOR_WHITE, COLOR_CYAN); break; case 2: assume_default_colors(COLOR_WHITE, COLOR_CYAN); init_pair(2, COLOR_BLACK, COLOR_WHITE); init_pair(3, COLOR_WHITE, COLOR_CYAN); init_pair(4, COLOR_WHITE, COLOR_CYAN); init_pair(5, COLOR_WHITE, COLOR_BLUE); init_pair(6, COLOR_WHITE, COLOR_BLUE); init_pair(7, COLOR_YELLOW, COLOR_WHITE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_BLUE, COLOR_CYAN); init_pair(10, COLOR_WHITE, COLOR_BLUE); init_pair(11, COLOR_WHITE, COLOR_BLUE); init_pair(12, COLOR_WHITE, COLOR_BLUE); init_pair(13, COLOR_WHITE, COLOR_BLUE); init_pair(14, COLOR_WHITE, COLOR_MAGENTA); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_GREEN); init_pair(19, COLOR_YELLOW, COLOR_BLUE); init_pair(20, COLOR_YELLOW, COLOR_BLUE); break; case 3: assume_default_colors(COLOR_BLACK, COLOR_CYAN); init_pair(2, COLOR_BLACK, COLOR_WHITE); init_pair(3, COLOR_BLACK, COLOR_CYAN); init_pair(4, COLOR_WHITE, COLOR_CYAN); init_pair(5, COLOR_WHITE, COLOR_BLACK); init_pair(6, COLOR_CYAN, COLOR_BLACK); init_pair(7, COLOR_BLACK, COLOR_WHITE); init_pair(8, COLOR_WHITE, COLOR_CYAN); init_pair(9, COLOR_BLACK, COLOR_CYAN); init_pair(10, COLOR_CYAN, COLOR_BLACK); init_pair(11, COLOR_CYAN, COLOR_BLACK); init_pair(12, COLOR_CYAN, COLOR_BLACK); init_pair(13, COLOR_WHITE, COLOR_BLACK); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_WHITE, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_BLACK, COLOR_GREEN); init_pair(18, COLOR_WHITE, COLOR_GREEN); init_pair(19, COLOR_YELLOW, COLOR_BLACK); init_pair(20, COLOR_YELLOW, COLOR_BLACK); break; case 4: assume_default_colors(COLOR_BLACK, COLOR_WHITE); init_pair(2, COLOR_BLACK, COLOR_CYAN); init_pair(3, COLOR_BLACK, COLOR_WHITE); init_pair(4, COLOR_BLACK, COLOR_WHITE); init_pair(5, COLOR_WHITE, COLOR_BLUE); init_pair(6, COLOR_WHITE, COLOR_BLUE); init_pair(7, COLOR_BLACK, COLOR_CYAN); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_BLACK, COLOR_WHITE); init_pair(10, COLOR_WHITE, COLOR_BLUE); init_pair(11, COLOR_WHITE, COLOR_BLUE); init_pair(12, COLOR_WHITE, COLOR_BLUE); init_pair(13, COLOR_WHITE, COLOR_BLUE); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_BLACK, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_GREEN); init_pair(19, COLOR_YELLOW, COLOR_CYAN); init_pair(20, COLOR_WHITE, COLOR_CYAN); break; case 5: use_default_colors(); init_pair(2, COLOR_GREEN, COLOR_BLUE); init_pair(3, -1, -1); init_pair(4, COLOR_CYAN, -1); init_pair(5, COLOR_BLACK, COLOR_CYAN); init_pair(6, COLOR_BLACK, COLOR_CYAN); init_pair(7, COLOR_GREEN, COLOR_BLUE); init_pair(8, COLOR_BLACK, COLOR_BLUE); init_pair(9, COLOR_BLACK, COLOR_CYAN); init_pair(10, COLOR_BLACK, COLOR_CYAN); init_pair(11, -1, COLOR_CYAN); init_pair(12, COLOR_BLACK, COLOR_CYAN); init_pair(13, COLOR_BLACK, COLOR_CYAN); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, -1, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_GREEN); init_pair(19, COLOR_YELLOW, COLOR_CYAN); init_pair(20, COLOR_WHITE, COLOR_CYAN); break; case 6: assume_default_colors(COLOR_WHITE, COLOR_BLACK); init_pair(2, COLOR_BLACK, COLOR_CYAN); init_pair(3, COLOR_WHITE, COLOR_BLACK); init_pair(4, COLOR_CYAN, COLOR_BLACK); init_pair(5, COLOR_WHITE, COLOR_BLUE); init_pair(6, COLOR_WHITE, COLOR_BLUE); init_pair(7, COLOR_BLACK, COLOR_CYAN); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_CYAN, COLOR_BLACK); init_pair(10, COLOR_WHITE, COLOR_BLUE); init_pair(11, COLOR_WHITE, COLOR_BLUE); init_pair(12, COLOR_WHITE, COLOR_BLUE); init_pair(13, COLOR_WHITE, COLOR_BLUE); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_BLACK); init_pair(19, COLOR_CYAN, COLOR_BLUE); init_pair(20, COLOR_CYAN, COLOR_BLUE); break; case 7: assume_default_colors(COLOR_GREEN, COLOR_BLACK); init_pair(2, COLOR_CYAN, COLOR_BLACK); init_pair(3, COLOR_GREEN, COLOR_BLACK); init_pair(4, COLOR_GREEN, COLOR_BLACK); init_pair(5, COLOR_WHITE, COLOR_GREEN); init_pair(6, COLOR_WHITE, COLOR_GREEN); init_pair(7, COLOR_CYAN, COLOR_BLACK); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_CYAN, COLOR_BLACK); init_pair(10, COLOR_WHITE, COLOR_GREEN); init_pair(11, COLOR_WHITE, COLOR_GREEN); init_pair(12, COLOR_WHITE, COLOR_GREEN); init_pair(13, COLOR_WHITE, COLOR_GREEN); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_WHITE, COLOR_CYAN); init_pair(16, COLOR_BLACK, COLOR_CYAN); init_pair(17, COLOR_GREEN, COLOR_CYAN); init_pair(18, COLOR_CYAN, COLOR_BLACK); init_pair(19, COLOR_CYAN, COLOR_GREEN); init_pair(20, COLOR_CYAN, COLOR_GREEN); break; case 8: assume_default_colors(COLOR_CYAN, COLOR_BLUE); init_pair(2, COLOR_WHITE, COLOR_BLUE); init_pair(3, COLOR_WHITE, COLOR_BLUE); init_pair(4, COLOR_WHITE, COLOR_BLUE); init_pair(5, COLOR_WHITE, COLOR_CYAN); init_pair(6, COLOR_WHITE, COLOR_CYAN); init_pair(7, COLOR_WHITE, COLOR_BLUE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_WHITE, COLOR_BLUE); init_pair(10, COLOR_WHITE, COLOR_CYAN); init_pair(11, COLOR_BLUE, COLOR_CYAN); init_pair(12, COLOR_WHITE, COLOR_CYAN); init_pair(13, COLOR_WHITE, COLOR_CYAN); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_CYAN, COLOR_GREEN); init_pair(18, COLOR_CYAN, COLOR_BLUE); init_pair(19, COLOR_YELLOW, COLOR_CYAN); init_pair(20, COLOR_YELLOW, COLOR_CYAN); break; case 9: assume_default_colors(COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_BLACK, COLOR_WHITE); init_pair(3, COLOR_WHITE, COLOR_BLUE); init_pair(4, COLOR_CYAN, COLOR_BLUE); init_pair(5, COLOR_WHITE, COLOR_CYAN); init_pair(6, COLOR_WHITE, COLOR_CYAN); init_pair(7, COLOR_BLACK, COLOR_WHITE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_WHITE, COLOR_BLUE); init_pair(10, COLOR_WHITE, COLOR_CYAN); init_pair(11, COLOR_WHITE, COLOR_CYAN); init_pair(12, COLOR_WHITE, COLOR_CYAN); init_pair(13, COLOR_WHITE, COLOR_CYAN); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_BLUE); init_pair(19, COLOR_YELLOW, COLOR_CYAN); init_pair(20, COLOR_YELLOW, COLOR_CYAN); break; case 10: assume_default_colors(COLOR_BLUE, COLOR_CYAN); init_pair(2, COLOR_BLUE, COLOR_CYAN); init_pair(3, COLOR_BLUE, COLOR_CYAN); init_pair(4, COLOR_WHITE, COLOR_CYAN); init_pair(5, COLOR_WHITE, COLOR_BLUE); init_pair(6, COLOR_WHITE, COLOR_BLUE); init_pair(7, COLOR_BLUE, COLOR_CYAN); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_BLUE, COLOR_CYAN); init_pair(10, COLOR_WHITE, COLOR_BLUE); init_pair(11, COLOR_CYAN, COLOR_BLUE); init_pair(12, COLOR_WHITE, COLOR_BLUE); init_pair(13, COLOR_WHITE, COLOR_BLUE); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_BLUE, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_CYAN); init_pair(19, COLOR_YELLOW, COLOR_BLUE); init_pair(20, COLOR_YELLOW, COLOR_BLUE); break; case 11: assume_default_colors(COLOR_CYAN, COLOR_BLACK); init_pair(2, COLOR_WHITE, COLOR_BLUE); init_pair(3, COLOR_CYAN, COLOR_BLACK); init_pair(4, COLOR_CYAN, COLOR_BLACK); init_pair(5, COLOR_WHITE, COLOR_MAGENTA); init_pair(6, COLOR_WHITE, COLOR_MAGENTA); init_pair(7, COLOR_WHITE, COLOR_BLUE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_WHITE, COLOR_BLACK); init_pair(10, COLOR_WHITE, COLOR_MAGENTA); init_pair(11, COLOR_WHITE, COLOR_MAGENTA); init_pair(12, COLOR_WHITE, COLOR_MAGENTA); init_pair(13, COLOR_WHITE, COLOR_MAGENTA); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_CYAN, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_BLACK); init_pair(19, COLOR_CYAN, COLOR_MAGENTA); init_pair(20, COLOR_CYAN, COLOR_MAGENTA); break; case 12: assume_default_colors(COLOR_BLUE, COLOR_CYAN); init_pair(2, COLOR_BLUE, COLOR_CYAN); init_pair(3, COLOR_WHITE, COLOR_CYAN); init_pair(4, COLOR_BLUE, COLOR_CYAN); init_pair(5, COLOR_WHITE, COLOR_BLUE); init_pair(6, COLOR_WHITE, COLOR_BLUE); init_pair(7, COLOR_BLUE, COLOR_CYAN); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_BLUE, COLOR_CYAN); init_pair(10, COLOR_WHITE, COLOR_BLUE); init_pair(11, COLOR_CYAN, COLOR_BLUE); init_pair(12, COLOR_WHITE, COLOR_BLUE); init_pair(13, COLOR_WHITE, COLOR_BLUE); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_BLUE, COLOR_GREEN); init_pair(18, COLOR_YELLOW, COLOR_CYAN); init_pair(19, COLOR_CYAN, COLOR_BLUE); init_pair(20, COLOR_CYAN, COLOR_BLUE); break; case 13: assume_default_colors(COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_WHITE, COLOR_BLUE); init_pair(3, COLOR_WHITE, COLOR_BLUE); init_pair(4, COLOR_WHITE, COLOR_BLUE); init_pair(5, COLOR_BLACK, COLOR_CYAN); init_pair(6, COLOR_BLACK, COLOR_CYAN); init_pair(7, COLOR_WHITE, COLOR_BLUE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_WHITE, COLOR_BLUE); init_pair(10, COLOR_BLACK, COLOR_CYAN); init_pair(11, COLOR_WHITE, COLOR_CYAN); init_pair(12, COLOR_WHITE, COLOR_BLACK); init_pair(13, COLOR_WHITE, COLOR_BLACK); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_CYAN, COLOR_BLUE); init_pair(19, COLOR_WHITE, COLOR_CYAN); init_pair(20, COLOR_WHITE, COLOR_CYAN); break; case 14: assume_default_colors(COLOR_WHITE, COLOR_BLUE); init_pair(2, COLOR_WHITE, COLOR_BLUE); init_pair(3, COLOR_WHITE, COLOR_BLUE); init_pair(4, COLOR_MAGENTA, COLOR_BLUE); init_pair(5, COLOR_BLACK, COLOR_CYAN); init_pair(6, COLOR_BLACK, COLOR_CYAN); init_pair(7, COLOR_WHITE, COLOR_BLUE); init_pair(8, COLOR_WHITE, COLOR_BLUE); init_pair(9, COLOR_WHITE, COLOR_BLUE); init_pair(10, COLOR_BLACK, COLOR_CYAN); init_pair(11, COLOR_WHITE, COLOR_CYAN); init_pair(12, COLOR_WHITE, COLOR_BLACK); init_pair(13, COLOR_WHITE, COLOR_BLACK); init_pair(14, COLOR_WHITE, COLOR_RED); init_pair(15, COLOR_YELLOW, COLOR_GREEN); init_pair(16, COLOR_BLACK, COLOR_GREEN); init_pair(17, COLOR_WHITE, COLOR_GREEN); init_pair(18, COLOR_CYAN, COLOR_BLUE); init_pair(19, COLOR_WHITE, COLOR_CYAN); init_pair(20, COLOR_WHITE, COLOR_CYAN); break; } } #define _in if_in_int #define _notin if_notin_int void initialize_theme(int theme, int window_identifier, bool is_tabular_fmt, bool no_highlight_lines, Theme *t) { memset(t, 0, sizeof(Theme)); switch (window_identifier) { case WINDOW_LUC: case WINDOW_FIX_ROWS: t->data_attr = COLOR_PAIR(4); t->data_attr |= _notin(theme, (int[]) {12, -1}, A_BOLD, 0); break; case WINDOW_TOP_BAR: t->title_attr = COLOR_PAIR(7); t->title_attr |= _in(theme, (int[]) {2, -1}, A_BOLD, 0); break; case WINDOW_BOTTOM_BAR: t->prompt_attr = _in(theme, (int[]) {0, 1, -1}, COLOR_PAIR(2), COLOR_PAIR(13)); t->bottom_attr = COLOR_PAIR(12); t->bottom_light_attr = COLOR_PAIR(13); t->prompt_attr |= _notin(theme, (int[]) {0, 1, -1}, A_BOLD, 0); t->bottom_attr |= _notin(theme, (int[]) {13, 14, -1}, A_BOLD, 0); t->bottom_light_attr |= A_BOLD; break; case WINDOW_FIX_COLS: t->data_attr = COLOR_PAIR(4); t->line_attr = 0; t->expi_attr = COLOR_PAIR(8); t->cursor_data_attr = COLOR_PAIR(5); t->cursor_line_attr = COLOR_PAIR(11); t->cursor_expi_attr = COLOR_PAIR(6); t->cursor_pattern_attr = COLOR_PAIR(20); t->bookmark_data_attr = COLOR_PAIR(14); t->bookmark_line_attr = COLOR_PAIR(14); t->cursor_bookmark_attr = COLOR_PAIR(14); t->found_str_attr = !no_highlight_lines ? COLOR_PAIR(15) : COLOR_PAIR(18); t->pattern_data_attr = COLOR_PAIR(16); t->pattern_line_attr = COLOR_PAIR(17); t->data_attr |= _notin(theme, (int[]) { 12, -1}, A_BOLD, 0); t->line_attr |= 0; t->expi_attr |= A_BOLD; t->cursor_data_attr |= _notin(theme, (int[]) { 13, 14, -1}, A_BOLD, 0); t->cursor_line_attr |= 0; t->cursor_expi_attr |= A_BOLD; t->cursor_pattern_attr |= A_BOLD; t->bookmark_data_attr |= A_BOLD; t->bookmark_line_attr |= 0; t->cursor_bookmark_attr |= A_REVERSE | A_BOLD; t->found_str_attr |= no_highlight_lines ? (_in(theme, (int[]){0, -1}, A_REVERSE, A_BOLD)) : A_BOLD; t->pattern_data_attr |= _in(theme, (int[]) {0, -1}, A_REVERSE, 0); t->pattern_line_attr |= _in(theme, (int[]) {11, 7, 8, -1}, A_BOLD, 0) | _in(theme, (int[]) {0, -1}, A_REVERSE, 0); break; case WINDOW_ROWS: t->data_attr = COLOR_PAIR(3); t->line_attr = 0; t->expi_attr = COLOR_PAIR(8); t->cursor_data_attr = COLOR_PAIR(6); t->cursor_line_attr = COLOR_PAIR(11); t->cursor_expi_attr = COLOR_PAIR(6); t->cursor_pattern_attr = COLOR_PAIR(19); t->bookmark_data_attr = COLOR_PAIR(14); t->bookmark_line_attr = COLOR_PAIR(14); t->cursor_bookmark_attr = COLOR_PAIR(14); t->found_str_attr = !no_highlight_lines ? COLOR_PAIR(15) : COLOR_PAIR(18); t->pattern_data_attr = COLOR_PAIR(16); t->pattern_line_attr = COLOR_PAIR(17); t->data_attr |= _in(theme, (int[]) { 2, 12, 13, 14, -1}, A_BOLD, 0); t->line_attr |= !is_tabular_fmt ? (_in(theme, (int[]) { 2, -1}, A_BOLD, 0)) : 0; t->expi_attr |= A_BOLD; t->cursor_data_attr |= _notin(theme, (int[]) { 13, 14, -1}, A_BOLD, 0); t->cursor_line_attr |= !is_tabular_fmt ? A_BOLD : 0; t->cursor_expi_attr |= A_BOLD; t->cursor_pattern_attr |= A_BOLD; t->bookmark_data_attr |= A_BOLD; t->bookmark_line_attr |= 0; t->cursor_bookmark_attr |= A_REVERSE | A_BOLD; t->found_str_attr |= no_highlight_lines ? (_in(theme, (int[]){0, -1}, A_REVERSE, A_BOLD)) : A_BOLD; t->pattern_data_attr |= _in(theme, (int[]) {0, -1}, A_REVERSE, 0); t->pattern_line_attr |= _in(theme, (int[]) {11, 7, 8, -1}, A_BOLD, 0) | _in(theme, (int[]) {0, -1}, A_REVERSE, 0); break; case WINDOW_FOOTER: t->data_attr = is_tabular_fmt ? COLOR_PAIR(9) : COLOR_PAIR(3); t->line_attr = 0; t->expi_attr = 0; t->cursor_data_attr = COLOR_PAIR(10); t->cursor_line_attr = 0; t->cursor_expi_attr = 0; t->cursor_pattern_attr = COLOR_PAIR(19); t->bookmark_data_attr = COLOR_PAIR(14); t->bookmark_line_attr = COLOR_PAIR(14); t->cursor_bookmark_attr = COLOR_PAIR(14); t->found_str_attr = !no_highlight_lines ? COLOR_PAIR(15) : COLOR_PAIR(18); t->pattern_data_attr = COLOR_PAIR(16); t->pattern_line_attr = COLOR_PAIR(17); t->data_attr |= !is_tabular_fmt ? (_in(theme, (int[]) { 2, 12, 13, 14, -1}, A_BOLD, 0)) : 0; t->line_attr |= 0, t->expi_attr |= 0; t->cursor_data_attr |= _notin(theme, (int[]) { 13, 14, -1}, A_BOLD, 0); t->cursor_line_attr |= 0; t->cursor_expi_attr |= 0; t->cursor_pattern_attr |= A_BOLD; t->bookmark_data_attr |= A_BOLD; t->bookmark_line_attr |= 0; t->cursor_bookmark_attr |= A_BOLD | A_REVERSE; t->found_str_attr |= no_highlight_lines ? (_in(theme, (int[]){0, -1}, A_REVERSE, A_BOLD)) : A_BOLD; t->pattern_data_attr |= 0; t->pattern_line_attr |= 0; break; } if (no_highlight_lines) { t->pattern_data_attr = t->data_attr; t->pattern_line_attr = t->line_attr; } } pspg-0.9.3/src/themes.h000066400000000000000000000033121324002717400147200ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * themes.h * themes initialization * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/themes.h * *------------------------------------------------------------------------- */ #ifndef PSPG_THEMES_H #define PSPG_THEMES_H #include typedef struct { attr_t data_attr; /* colors for data (alphanums) */ attr_t line_attr; /* colors for borders */ attr_t expi_attr; /* colors for expanded headers */ attr_t cursor_data_attr; /* colors for cursor on data positions */ attr_t cursor_line_attr; /* colors for cursor on border position */ attr_t cursor_expi_attr; /* colors for cursor on expanded headers */ attr_t bookmark_data_attr; /* colors for bookmark */ attr_t bookmark_line_attr; attr_t cursor_bookmark_attr; /* colors for cursor on bookmark line */ attr_t found_str_attr; /* colors for marked string */ attr_t pattern_data_attr; /* colors for pattern line data */ attr_t pattern_line_attr; /* colors for pattern lide art */ attr_t cursor_pattern_attr; /* colors for pattern on cursor line */ attr_t title_attr; /* colors for title window */ attr_t bottom_attr; /* colors for bottom text */ attr_t bottom_light_attr; /* colors for lighter bottom text */ attr_t prompt_attr; /* less prompt color */ } Theme; #define WINDOW_LUC 0 #define WINDOW_FIX_ROWS 1 #define WINDOW_FIX_COLS 2 #define WINDOW_ROWS 3 #define WINDOW_FOOTER 4 #define WINDOW_TOP_BAR 5 #define WINDOW_BOTTOM_BAR 6 void initialize_color_pairs(int theme); void initialize_theme(int theme, int window_identifier, bool is_tabular_fmt, bool no_highlight_lines, Theme *t); #endifpspg-0.9.3/src/unicode.c000066400000000000000000000434321324002717400150630ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * unicode.c * unicode and wide chars routines * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/unicode.c * *------------------------------------------------------------------------- */ #include "unicode.h" #include "string.h" /* * Returns length of utf8 string in chars. */ size_t utf8len(char *s) { size_t len = 0; for (; *s; ++s) if ((*s & 0xC0) != 0x80) ++len; return len; } /* * Returns length of utf8 string in chars. */ size_t utf8len_start_stop(const char *start, const char *stop) { size_t len = 0; for (; *start && start < stop ; ++start) if ((*start & 0xC0) != 0x80) ++len; return len; } /* * Returns length of utf8 char in bytes */ int utf8charlen(char ch) { if ((ch & 0xF0) == 0xF0) return 4; if ((ch & 0xE0) == 0xE0) return 3; if ((ch & 0xC0) == 0xC0) return 2; return 1; } /* * This is an implementation of wcwidth() and wcswidth() as defined in * "The Single UNIX Specification, Version 2, The Open Group, 1997" * * * Markus Kuhn -- 2001-09-08 -- public domain * * customised for PostgreSQL * * original available at : http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c */ struct mbinterval { unsigned short first; unsigned short last; }; /* auxiliary function for binary search in interval table */ static int mbbisearch(wchar_t ucs, const struct mbinterval *table, int max) { int min = 0; int mid; if (ucs < table[0].first || ucs > table[max].last) return 0; while (max >= min) { mid = (min + max) / 2; if (ucs > table[mid].last) min = mid + 1; else if (ucs < table[mid].first) max = mid - 1; else return 1; } return 0; } /* The following functions define the column width of an ISO 10646 * character as follows: * * - The null character (U+0000) has a column width of 0. * * - Other C0/C1 control characters and DEL will lead to a return * value of -1. * * - Non-spacing and enclosing combining characters (general * category code Mn or Me in the Unicode database) have a * column width of 0. * * - Other format characters (general category code Cf in the Unicode * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0. * * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) * have a column width of 0. * * - Spacing characters in the East Asian Wide (W) or East Asian * FullWidth (F) category as defined in Unicode Technical * Report #11 have a column width of 2. * * - All remaining characters (including all printable * ISO 8859-1 and WGL4 characters, Unicode control characters, * etc.) have a column width of 1. * * This implementation assumes that wchar_t characters are encoded * in ISO 10646. */ static int ucs_wcwidth(wchar_t ucs) { /* sorted list of non-overlapping intervals of non-spacing characters */ static const struct mbinterval combining[] = { {0x0300, 0x034E}, {0x0360, 0x0362}, {0x0483, 0x0486}, {0x0488, 0x0489}, {0x0591, 0x05A1}, {0x05A3, 0x05B9}, {0x05BB, 0x05BD}, {0x05BF, 0x05BF}, {0x05C1, 0x05C2}, {0x05C4, 0x05C4}, {0x064B, 0x0655}, {0x0670, 0x0670}, {0x06D6, 0x06E4}, {0x06E7, 0x06E8}, {0x06EA, 0x06ED}, {0x070F, 0x070F}, {0x0711, 0x0711}, {0x0730, 0x074A}, {0x07A6, 0x07B0}, {0x0901, 0x0902}, {0x093C, 0x093C}, {0x0941, 0x0948}, {0x094D, 0x094D}, {0x0951, 0x0954}, {0x0962, 0x0963}, {0x0981, 0x0981}, {0x09BC, 0x09BC}, {0x09C1, 0x09C4}, {0x09CD, 0x09CD}, {0x09E2, 0x09E3}, {0x0A02, 0x0A02}, {0x0A3C, 0x0A3C}, {0x0A41, 0x0A42}, {0x0A47, 0x0A48}, {0x0A4B, 0x0A4D}, {0x0A70, 0x0A71}, {0x0A81, 0x0A82}, {0x0ABC, 0x0ABC}, {0x0AC1, 0x0AC5}, {0x0AC7, 0x0AC8}, {0x0ACD, 0x0ACD}, {0x0B01, 0x0B01}, {0x0B3C, 0x0B3C}, {0x0B3F, 0x0B3F}, {0x0B41, 0x0B43}, {0x0B4D, 0x0B4D}, {0x0B56, 0x0B56}, {0x0B82, 0x0B82}, {0x0BC0, 0x0BC0}, {0x0BCD, 0x0BCD}, {0x0C3E, 0x0C40}, {0x0C46, 0x0C48}, {0x0C4A, 0x0C4D}, {0x0C55, 0x0C56}, {0x0CBF, 0x0CBF}, {0x0CC6, 0x0CC6}, {0x0CCC, 0x0CCD}, {0x0D41, 0x0D43}, {0x0D4D, 0x0D4D}, {0x0DCA, 0x0DCA}, {0x0DD2, 0x0DD4}, {0x0DD6, 0x0DD6}, {0x0E31, 0x0E31}, {0x0E34, 0x0E3A}, {0x0E47, 0x0E4E}, {0x0EB1, 0x0EB1}, {0x0EB4, 0x0EB9}, {0x0EBB, 0x0EBC}, {0x0EC8, 0x0ECD}, {0x0F18, 0x0F19}, {0x0F35, 0x0F35}, {0x0F37, 0x0F37}, {0x0F39, 0x0F39}, {0x0F71, 0x0F7E}, {0x0F80, 0x0F84}, {0x0F86, 0x0F87}, {0x0F90, 0x0F97}, {0x0F99, 0x0FBC}, {0x0FC6, 0x0FC6}, {0x102D, 0x1030}, {0x1032, 0x1032}, {0x1036, 0x1037}, {0x1039, 0x1039}, {0x1058, 0x1059}, {0x1160, 0x11FF}, {0x17B7, 0x17BD}, {0x17C6, 0x17C6}, {0x17C9, 0x17D3}, {0x180B, 0x180E}, {0x18A9, 0x18A9}, {0x200B, 0x200F}, {0x202A, 0x202E}, {0x206A, 0x206F}, {0x20D0, 0x20E3}, {0x302A, 0x302F}, {0x3099, 0x309A}, {0xFB1E, 0xFB1E}, {0xFE20, 0xFE23}, {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB} }; /* test for 8-bit control characters */ if (ucs == 0) return 0; if (ucs < 0x20 || (ucs >= 0x7f && ucs < 0xa0) || ucs > 0x0010ffff) return -1; /* binary search in table of non-spacing characters */ if (mbbisearch(ucs, combining, sizeof(combining) / sizeof(struct mbinterval) - 1)) return 0; /* * if we arrive here, ucs is not a combining or C0/C1 control character */ return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ (ucs >= 0x2e80 && ucs <= 0xa4cf && (ucs & ~0x0011) != 0x300a && ucs != 0x303f) || /* CJK ... Yi */ (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility * Ideographs */ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ (ucs >= 0xff00 && ucs <= 0xff5f) || /* Fullwidth Forms */ (ucs >= 0xffe0 && ucs <= 0xffe6) || (ucs >= 0x20000 && ucs <= 0x2ffff))); } /* * Convert a UTF-8 character to a Unicode code point. * This is a one-character version of pg_utf2wchar_with_len. * * No error checks here, c must point to a long-enough string. */ wchar_t utf8_to_unicode(const unsigned char *c) { if ((*c & 0x80) == 0) return (wchar_t) c[0]; else if ((*c & 0xe0) == 0xc0) return (wchar_t) (((c[0] & 0x1f) << 6) | (c[1] & 0x3f)); else if ((*c & 0xf0) == 0xe0) return (wchar_t) (((c[0] & 0x0f) << 12) | ((c[1] & 0x3f) << 6) | (c[2] & 0x3f)); else if ((*c & 0xf8) == 0xf0) return (wchar_t) (((c[0] & 0x07) << 18) | ((c[1] & 0x3f) << 12) | ((c[2] & 0x3f) << 6) | (c[3] & 0x3f)); else /* that is an invalid code on purpose */ return 0xffffffff; } int utf_dsplen(const char *s) { return ucs_wcwidth(utf8_to_unicode((const unsigned char *) s)); } /* * following code is taken from starwing/luautf8 library. * */ typedef struct conv_table { unsigned int first; unsigned int last; int step; int offset; } conv_table; typedef struct range_table { unsigned int first; unsigned int last; int step; } range_table; static int convert_char(conv_table *t, size_t size, wchar_t ucs) { size_t begin, end; begin = 0; end = size; while (begin < end) { int mid = (begin + end) / 2; if (t[mid].last < ucs) begin = mid + 1; else if (t[mid].first > ucs) end = mid; else if ((ucs - t[mid].first) % t[mid].step == 0) return ucs + t[mid].offset; else return ucs; } return ucs; } static int find_in_range(range_table *t, size_t size, wchar_t ucs) { size_t begin, end; begin = 0; end = size; while (begin < end) { int mid = (begin + end) / 2; if (t[mid].last < ucs) begin = mid + 1; else if (t[mid].first > ucs) end = mid; else return (ucs - t[mid].first) % t[mid].step == 0; } return 0; } #define table_size(t) (sizeof(t)/sizeof((t)[0])) static int utf8_tofold(const char *s) { static struct conv_table tofold_table[] = { { 0x41, 0x5A, 1, 32 }, { 0xB5, 0xB5, 1, 775 }, { 0xC0, 0xD6, 1, 32 }, { 0xD8, 0xDE, 1, 32 }, { 0x100, 0x12E, 2, 1 }, { 0x132, 0x136, 2, 1 }, { 0x139, 0x147, 2, 1 }, { 0x14A, 0x176, 2, 1 }, { 0x178, 0x178, 1, -121 }, { 0x179, 0x17D, 2, 1 }, { 0x17F, 0x17F, 1, -268 }, { 0x181, 0x181, 1, 210 }, { 0x182, 0x184, 2, 1 }, { 0x186, 0x186, 1, 206 }, { 0x187, 0x187, 1, 1 }, { 0x189, 0x18A, 1, 205 }, { 0x18B, 0x18B, 1, 1 }, { 0x18E, 0x18E, 1, 79 }, { 0x18F, 0x18F, 1, 202 }, { 0x190, 0x190, 1, 203 }, { 0x191, 0x191, 1, 1 }, { 0x193, 0x193, 1, 205 }, { 0x194, 0x194, 1, 207 }, { 0x196, 0x196, 1, 211 }, { 0x197, 0x197, 1, 209 }, { 0x198, 0x198, 1, 1 }, { 0x19C, 0x19C, 1, 211 }, { 0x19D, 0x19D, 1, 213 }, { 0x19F, 0x19F, 1, 214 }, { 0x1A0, 0x1A4, 2, 1 }, { 0x1A6, 0x1A6, 1, 218 }, { 0x1A7, 0x1A7, 1, 1 }, { 0x1A9, 0x1A9, 1, 218 }, { 0x1AC, 0x1AC, 1, 1 }, { 0x1AE, 0x1AE, 1, 218 }, { 0x1AF, 0x1AF, 1, 1 }, { 0x1B1, 0x1B2, 1, 217 }, { 0x1B3, 0x1B5, 2, 1 }, { 0x1B7, 0x1B7, 1, 219 }, { 0x1B8, 0x1BC, 4, 1 }, { 0x1C4, 0x1C4, 1, 2 }, { 0x1C5, 0x1C5, 1, 1 }, { 0x1C7, 0x1C7, 1, 2 }, { 0x1C8, 0x1C8, 1, 1 }, { 0x1CA, 0x1CA, 1, 2 }, { 0x1CB, 0x1DB, 2, 1 }, { 0x1DE, 0x1EE, 2, 1 }, { 0x1F1, 0x1F1, 1, 2 }, { 0x1F2, 0x1F4, 2, 1 }, { 0x1F6, 0x1F6, 1, -97 }, { 0x1F7, 0x1F7, 1, -56 }, { 0x1F8, 0x21E, 2, 1 }, { 0x220, 0x220, 1, -130 }, { 0x222, 0x232, 2, 1 }, { 0x23A, 0x23A, 1, 10795 }, { 0x23B, 0x23B, 1, 1 }, { 0x23D, 0x23D, 1, -163 }, { 0x23E, 0x23E, 1, 10792 }, { 0x241, 0x241, 1, 1 }, { 0x243, 0x243, 1, -195 }, { 0x244, 0x244, 1, 69 }, { 0x245, 0x245, 1, 71 }, { 0x246, 0x24E, 2, 1 }, { 0x345, 0x345, 1, 116 }, { 0x370, 0x372, 2, 1 }, { 0x376, 0x376, 1, 1 }, { 0x37F, 0x37F, 1, 116 }, { 0x386, 0x386, 1, 38 }, { 0x388, 0x38A, 1, 37 }, { 0x38C, 0x38C, 1, 64 }, { 0x38E, 0x38F, 1, 63 }, { 0x391, 0x3A1, 1, 32 }, { 0x3A3, 0x3AB, 1, 32 }, { 0x3C2, 0x3C2, 1, 1 }, { 0x3CF, 0x3CF, 1, 8 }, { 0x3D0, 0x3D0, 1, -30 }, { 0x3D1, 0x3D1, 1, -25 }, { 0x3D5, 0x3D5, 1, -15 }, { 0x3D6, 0x3D6, 1, -22 }, { 0x3D8, 0x3EE, 2, 1 }, { 0x3F0, 0x3F0, 1, -54 }, { 0x3F1, 0x3F1, 1, -48 }, { 0x3F4, 0x3F4, 1, -60 }, { 0x3F5, 0x3F5, 1, -64 }, { 0x3F7, 0x3F7, 1, 1 }, { 0x3F9, 0x3F9, 1, -7 }, { 0x3FA, 0x3FA, 1, 1 }, { 0x3FD, 0x3FF, 1, -130 }, { 0x400, 0x40F, 1, 80 }, { 0x410, 0x42F, 1, 32 }, { 0x460, 0x480, 2, 1 }, { 0x48A, 0x4BE, 2, 1 }, { 0x4C0, 0x4C0, 1, 15 }, { 0x4C1, 0x4CD, 2, 1 }, { 0x4D0, 0x52E, 2, 1 }, { 0x531, 0x556, 1, 48 }, { 0x10A0, 0x10C5, 1, 7264 }, { 0x10C7, 0x10CD, 6, 7264 }, { 0x13F8, 0x13FD, 1, -8 }, { 0x1E00, 0x1E94, 2, 1 }, { 0x1E9B, 0x1E9B, 1, -58 }, { 0x1E9E, 0x1E9E, 1, -7615 }, { 0x1EA0, 0x1EFE, 2, 1 }, { 0x1F08, 0x1F0F, 1, -8 }, { 0x1F18, 0x1F1D, 1, -8 }, { 0x1F28, 0x1F2F, 1, -8 }, { 0x1F38, 0x1F3F, 1, -8 }, { 0x1F48, 0x1F4D, 1, -8 }, { 0x1F59, 0x1F5F, 2, -8 }, { 0x1F68, 0x1F6F, 1, -8 }, { 0x1F88, 0x1F8F, 1, -8 }, { 0x1F98, 0x1F9F, 1, -8 }, { 0x1FA8, 0x1FAF, 1, -8 }, { 0x1FB8, 0x1FB9, 1, -8 }, { 0x1FBA, 0x1FBB, 1, -74 }, { 0x1FBC, 0x1FBC, 1, -9 }, { 0x1FBE, 0x1FBE, 1, -7173 }, { 0x1FC8, 0x1FCB, 1, -86 }, { 0x1FCC, 0x1FCC, 1, -9 }, { 0x1FD8, 0x1FD9, 1, -8 }, { 0x1FDA, 0x1FDB, 1, -100 }, { 0x1FE8, 0x1FE9, 1, -8 }, { 0x1FEA, 0x1FEB, 1, -112 }, { 0x1FEC, 0x1FEC, 1, -7 }, { 0x1FF8, 0x1FF9, 1, -128 }, { 0x1FFA, 0x1FFB, 1, -126 }, { 0x1FFC, 0x1FFC, 1, -9 },{ 0x2126, 0x2126, 1, -7517 }, { 0x212A, 0x212A, 1, -8383 }, { 0x212B, 0x212B, 1, -8262 }, { 0x2132, 0x2132, 1, 28 }, { 0x2160, 0x216F, 1, 16 }, { 0x2183, 0x2183, 1, 1 }, { 0x24B6, 0x24CF, 1, 26 }, { 0x2C00, 0x2C2E, 1, 48 }, { 0x2C60, 0x2C60, 1, 1 }, { 0x2C62, 0x2C62, 1, -10743 }, { 0x2C63, 0x2C63, 1, -3814 }, { 0x2C64, 0x2C64, 1, -10727 }, { 0x2C67, 0x2C6B, 2, 1 }, { 0x2C6D, 0x2C6D, 1, -10780 }, { 0x2C6E, 0x2C6E, 1, -10749 }, { 0x2C6F, 0x2C6F, 1, -10783 }, { 0x2C70, 0x2C70, 1, -10782 }, { 0x2C72, 0x2C75, 3, 1 },{ 0x2C7E, 0x2C7F, 1, -10815 }, { 0x2C80, 0x2CE2, 2, 1 }, { 0x2CEB, 0x2CED, 2, 1 }, { 0x2CF2, 0xA640, 31054, 1 }, { 0xA642, 0xA66C, 2, 1 }, { 0xA680, 0xA69A, 2, 1 }, { 0xA722, 0xA72E, 2, 1 }, { 0xA732, 0xA76E, 2, 1 }, { 0xA779, 0xA77B, 2, 1 }, { 0xA77D, 0xA77D, 1, -35332 }, { 0xA77E, 0xA786, 2, 1 }, { 0xA78B, 0xA78B, 1, 1 }, { 0xA78D, 0xA78D, 1, -42280 }, { 0xA790, 0xA792, 2, 1 }, { 0xA796, 0xA7A8, 2, 1 }, { 0xA7AA, 0xA7AA, 1, -42308 }, { 0xA7AB, 0xA7AB, 1, -42319 }, { 0xA7AC, 0xA7AC, 1, -42315 },{ 0xA7AD, 0xA7AD, 1, -42305 }, { 0xA7B0, 0xA7B0, 1, -42258 }, { 0xA7B1, 0xA7B1, 1, -42282 }, { 0xA7B2, 0xA7B2, 1, -42261 }, { 0xA7B3, 0xA7B3, 1, 928 }, { 0xA7B4, 0xA7B6, 2, 1 }, { 0xAB70, 0xABBF, 1, -38864 }, { 0xFF21, 0xFF3A, 1, 32 }, { 0x10400, 0x10427, 1, 40 }, { 0x10C80, 0x10CB2, 1, 64 }, { 0x118A0, 0x118BF, 1, 32 } }; return convert_char(tofold_table, table_size(tofold_table), utf8_to_unicode((const unsigned char *) s)); } const char * utf8_nstrstr(const char *haystack, const char *needle) { const char *haystack_cur, *needle_cur, *needle_prev; int f1 = 0, f2 = 0; int needle_char_len; needle_cur = needle; needle_prev = NULL; haystack_cur = haystack; while (*needle_cur != '\0') { if (*haystack_cur == '\0') return NULL; if (needle_prev != needle_cur) { needle_prev = needle_cur; needle_char_len = utf8charlen(*needle_cur); f1 = utf8_tofold(needle_cur); } f2 = utf8_tofold(haystack_cur); if (f1 == f2) { needle_cur += needle_char_len; haystack_cur += utf8charlen(*haystack_cur); } else { needle_cur = needle; haystack_cur = haystack += utf8charlen(*haystack); } } return haystack; } /* * Special string searching, lower chars are case insensitive, * upper chars are case sensitive. */ const char * utf8_nstrstr_ignore_lower_case(const char *haystack, const char *needle) { const char *haystack_cur, *needle_cur, *needle_prev; int f1 = 0, f2 = 0; bool eq; needle_cur = needle; needle_prev = NULL; haystack_cur = haystack; while (*needle_cur != '\0') { int needle_char_len; int haystack_char_len; bool needle_char_is_upper; if (*haystack_cur == '\0') return NULL; haystack_char_len = utf8charlen(*haystack_cur); if (needle_prev != needle_cur) { needle_prev = needle_cur; needle_char_len = utf8charlen(*needle_cur); needle_char_is_upper = utf8_isupper(needle_cur); f1 = utf8_tofold(needle_cur); } if (needle_char_is_upper) { /* case sensitive */ if (needle_char_len == haystack_char_len) eq = memcmp(haystack_cur, needle_cur, needle_char_len) == 0; else eq = false; } else { /* case insensitive */ f2 = utf8_tofold(haystack_cur); eq = f1 == f2; } if (eq) { needle_cur += needle_char_len; haystack_cur += haystack_char_len; } else { needle_cur = needle; haystack_cur = haystack += utf8charlen(*haystack); } } return haystack; } bool utf8_isupper(const char *s) { static struct range_table upper_table[] = { { 0x41, 0x5A, 1 }, { 0xC0, 0xD6, 1 }, { 0xD8, 0xDE, 1 }, { 0x100, 0x136, 2 }, { 0x139, 0x147, 2 }, { 0x14A, 0x178, 2 }, { 0x179, 0x17D, 2 }, { 0x181, 0x182, 1 }, { 0x184, 0x186, 2 }, { 0x187, 0x189, 2 }, { 0x18A, 0x18B, 1 }, { 0x18E, 0x191, 1 }, { 0x193, 0x194, 1 }, { 0x196, 0x198, 1 }, { 0x19C, 0x19D, 1 }, { 0x19F, 0x1A0, 1 }, { 0x1A2, 0x1A6, 2 }, { 0x1A7, 0x1A9, 2 }, { 0x1AC, 0x1AE, 2 }, { 0x1AF, 0x1B1, 2 }, { 0x1B2, 0x1B3, 1 }, { 0x1B5, 0x1B7, 2 }, { 0x1B8, 0x1BC, 4 }, { 0x1C4, 0x1CD, 3 }, { 0x1CF, 0x1DB, 2 }, { 0x1DE, 0x1EE, 2 }, { 0x1F1, 0x1F4, 3 }, { 0x1F6, 0x1F8, 1 }, { 0x1FA, 0x232, 2 }, { 0x23A, 0x23B, 1 }, { 0x23D, 0x23E, 1 }, { 0x241, 0x243, 2 }, { 0x244, 0x246, 1 }, { 0x248, 0x24E, 2 }, { 0x370, 0x372, 2 }, { 0x376, 0x37F, 9 }, { 0x386, 0x388, 2 }, { 0x389, 0x38A, 1 }, { 0x38C, 0x38E, 2 }, { 0x38F, 0x391, 2 }, { 0x392, 0x3A1, 1 }, { 0x3A3, 0x3AB, 1 }, { 0x3CF, 0x3D2, 3 }, { 0x3D3, 0x3D4, 1 }, { 0x3D8, 0x3EE, 2 }, { 0x3F4, 0x3F7, 3 }, { 0x3F9, 0x3FA, 1 }, { 0x3FD, 0x42F, 1 }, { 0x460, 0x480, 2 }, { 0x48A, 0x4C0, 2 }, { 0x4C1, 0x4CD, 2 }, { 0x4D0, 0x52E, 2 }, { 0x531, 0x556, 1 }, { 0x10A0, 0x10C5, 1 }, { 0x10C7, 0x10CD, 6 }, { 0x13A0, 0x13F5, 1 }, { 0x1E00, 0x1E94, 2 }, { 0x1E9E, 0x1EFE, 2 }, { 0x1F08, 0x1F0F, 1 }, { 0x1F18, 0x1F1D, 1 }, { 0x1F28, 0x1F2F, 1 }, { 0x1F38, 0x1F3F, 1 }, { 0x1F48, 0x1F4D, 1 }, { 0x1F59, 0x1F5F, 2 }, { 0x1F68, 0x1F6F, 1 }, { 0x1FB8, 0x1FBB, 1 }, { 0x1FC8, 0x1FCB, 1 }, { 0x1FD8, 0x1FDB, 1 }, { 0x1FE8, 0x1FEC, 1 }, { 0x1FF8, 0x1FFB, 1 }, { 0x2102, 0x2107, 5 }, { 0x210B, 0x210D, 1 }, { 0x2110, 0x2112, 1 }, { 0x2115, 0x2119, 4 }, { 0x211A, 0x211D, 1 }, { 0x2124, 0x212A, 2 }, { 0x212B, 0x212D, 1 }, { 0x2130, 0x2133, 1 }, { 0x213E, 0x213F, 1 }, { 0x2145, 0x2160, 27 }, { 0x2161, 0x216F, 1 }, { 0x2183, 0x24B6, 819 }, { 0x24B7, 0x24CF, 1 }, { 0x2C00, 0x2C2E, 1 }, { 0x2C60, 0x2C62, 2 }, { 0x2C63, 0x2C64, 1 }, { 0x2C67, 0x2C6D, 2 }, { 0x2C6E, 0x2C70, 1 }, { 0x2C72, 0x2C75, 3 }, { 0x2C7E, 0x2C80, 1 }, { 0x2C82, 0x2CE2, 2 }, { 0x2CEB, 0x2CED, 2 }, { 0x2CF2, 0xA640, 31054 }, { 0xA642, 0xA66C, 2 }, { 0xA680, 0xA69A, 2 }, { 0xA722, 0xA72E, 2 }, { 0xA732, 0xA76E, 2 }, { 0xA779, 0xA77D, 2 }, { 0xA77E, 0xA786, 2 }, { 0xA78B, 0xA78D, 2 }, { 0xA790, 0xA792, 2 }, { 0xA796, 0xA7AA, 2 }, { 0xA7AB, 0xA7AD, 1 }, { 0xA7B0, 0xA7B4, 1 }, { 0xA7B6, 0xFF21, 22379 }, { 0xFF22, 0xFF3A, 1 }, { 0x10400, 0x10427, 1 }, { 0x10C80, 0x10CB2, 1 }, { 0x118A0, 0x118BF, 1 }, { 0x1D400, 0x1D419, 1 }, { 0x1D434, 0x1D44D, 1 }, { 0x1D468, 0x1D481, 1 }, { 0x1D49C, 0x1D49E, 2 }, { 0x1D49F, 0x1D4A5, 3 }, { 0x1D4A6, 0x1D4A9, 3 }, { 0x1D4AA, 0x1D4AC, 1 }, { 0x1D4AE, 0x1D4B5, 1 }, { 0x1D4D0, 0x1D4E9, 1 }, { 0x1D504, 0x1D505, 1 }, { 0x1D507, 0x1D50A, 1 }, { 0x1D50D, 0x1D514, 1 }, { 0x1D516, 0x1D51C, 1 }, { 0x1D538, 0x1D539, 1 }, { 0x1D53B, 0x1D53E, 1 }, { 0x1D540, 0x1D544, 1 }, { 0x1D546, 0x1D54A, 4 }, { 0x1D54B, 0x1D550, 1 }, { 0x1D56C, 0x1D585, 1 }, { 0x1D5A0, 0x1D5B9, 1 }, { 0x1D5D4, 0x1D5ED, 1 }, { 0x1D608, 0x1D621, 1 }, { 0x1D63C, 0x1D655, 1 }, { 0x1D670, 0x1D689, 1 }, { 0x1D6A8, 0x1D6C0, 1 }, { 0x1D6E2, 0x1D6FA, 1 }, { 0x1D71C, 0x1D734, 1 }, { 0x1D756, 0x1D76E, 1 }, { 0x1D790, 0x1D7A8, 1 }, { 0x1D7CA, 0x1F130, 6502 }, { 0x1F131, 0x1F149, 1 }, { 0x1F150, 0x1F169, 1 }, { 0x1F170, 0x1F189, 1 }, }; return find_in_range(upper_table, table_size(upper_table), utf8_to_unicode((const unsigned char *) s)) != 0; } pspg-0.9.3/src/unicode.h000066400000000000000000000014231324002717400150620ustar00rootroot00000000000000/*------------------------------------------------------------------------- * * unicode.h * unicode and wide chars routines * * Portions Copyright (c) 2017-2018 Pavel Stehule * * IDENTIFICATION * src/unicode.h * *------------------------------------------------------------------------- */ #ifndef PSPG_UNICODE_H #define PSPG_UNICODE_H #include #include extern size_t utf8len(char *s); extern size_t utf8len_start_stop(const char *start, const char *stop); extern int utf8charlen(char ch); extern int utf_dsplen(const char *s); extern const char *utf8_nstrstr(const char *haystack, const char *needle); extern const char *utf8_nstrstr_ignore_lower_case(const char *haystack, const char *needle); extern bool utf8_isupper(const char *s); #endif pspg-0.9.3/tools/000077500000000000000000000000001324002717400136345ustar00rootroot00000000000000pspg-0.9.3/tools/ax_debug_cflags.m4000066400000000000000000000020661324002717400171770ustar00rootroot00000000000000# gcc default/debug CFLAGS handling respecting user's CFLAGS # avoid AC_PROG_CC setting -O2 CFLAGS which will override DEBUG_CFLAGS' -O0 # must be used right after AC_INIT AC_DEFUN([AX_DEBUG_CFLAGS], [ # ensure CFLAGS are set AS_IF([test "${CFLAGS+set}"], [ USE_DEFAULT_CFLAGS=false ], [ USE_DEFAULT_CFLAGS=true CFLAGS="" ]) AC_PROG_CC # add --enable-debug arg AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [enable debug build]), [], []) AS_IF([test "$enable_debug" = "yes"], [ # add the DEBUG pre-processor define AC_DEFINE([DEBUG], [1], [debug build]) # gcc/gdb debug options AS_IF([test "$GCC" = "yes"], [ DEBUG_CFLAGS="-ggdb -O0" ], [ ACX_DEBUG_CFLAGS_G ]) ], [ # what AC_PROG_CC would have done if CFLAGS were not set AS_IF([$USE_DEFAULT_CFLAGS], [ ACX_DEBUG_CFLAGS_G AS_IF([test "$GCC" = "yes"], [ DEBUG_CFLAGS="$DEBUG_CFLAGS -O2" ]) ]) ]) AC_SUBST([DEBUG_CFLAGS], [$DEBUG_CFLAGS]) ]) AC_DEFUN([ACX_DEBUG_CFLAGS_G], [ # default to -g AS_IF([test "$ac_cv_prog_cc_g" = "yes"], [ DEBUG_CFLAGS="-g" ], [ DEBUG_CFLAGS="" ]) ]) pspg-0.9.3/tools/ax_require_defined.m4000066400000000000000000000023011324002717400177140ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_require_defined.html # =========================================================================== # # SYNOPSIS # # AX_REQUIRE_DEFINED(MACRO) # # DESCRIPTION # # AX_REQUIRE_DEFINED is a simple helper for making sure other macros have # been defined and thus are available for use. This avoids random issues # where a macro isn't expanded. Instead the configure script emits a # non-fatal: # # ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found # # It's like AC_REQUIRE except it doesn't expand the required macro. # # Here's an example: # # AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) # # LICENSE # # Copyright (c) 2014 Mike Frysinger # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 1 AC_DEFUN([AX_REQUIRE_DEFINED], [dnl m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) ])dnl AX_REQUIRE_DEFINED pspg-0.9.3/tools/ax_with_curses.m4000066400000000000000000000664231324002717400171400ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_with_curses.html # =========================================================================== # # SYNOPSIS # # AX_WITH_CURSES # # DESCRIPTION # # This macro checks whether a SysV or X/Open-compatible Curses library is # present, along with the associated header file. The NcursesW # (wide-character) library is searched for first, followed by Ncurses, # then the system-default plain Curses. The first library found is the # one returned. Finding libraries will first be attempted by using # pkg-config, and should the pkg-config files not be available, will # fallback to combinations of known flags itself. # # The following options are understood: --with-ncursesw, --with-ncurses, # --without-ncursesw, --without-ncurses. The "--with" options force the # macro to use that particular library, terminating with an error if not # found. The "--without" options simply skip the check for that library. # The effect on the search pattern is: # # (no options) - NcursesW, Ncurses, Curses # --with-ncurses --with-ncursesw - NcursesW only [*] # --without-ncurses --with-ncursesw - NcursesW only [*] # --with-ncursesw - NcursesW only [*] # --with-ncurses --without-ncursesw - Ncurses only [*] # --with-ncurses - NcursesW, Ncurses [**] # --without-ncurses --without-ncursesw - Curses only # --without-ncursesw - Ncurses, Curses # --without-ncurses - NcursesW, Curses # # [*] If the library is not found, abort the configure script. # # [**] If the second library (Ncurses) is not found, abort configure. # # The following preprocessor symbols may be defined by this macro if the # appropriate conditions are met: # # HAVE_CURSES - if any SysV or X/Open Curses library found # HAVE_CURSES_ENHANCED - if library supports X/Open Enhanced functions # HAVE_CURSES_COLOR - if library supports color (enhanced functions) # HAVE_CURSES_OBSOLETE - if library supports certain obsolete features # HAVE_NCURSESW - if NcursesW (wide char) library is to be used # HAVE_NCURSES - if the Ncurses library is to be used # # HAVE_CURSES_H - if is present and should be used # HAVE_NCURSESW_H - if should be used # HAVE_NCURSES_H - if should be used # HAVE_NCURSESW_CURSES_H - if should be used # HAVE_NCURSES_CURSES_H - if should be used # # (These preprocessor symbols are discussed later in this document.) # # The following output variables are defined by this macro; they are # precious and may be overridden on the ./configure command line: # # CURSES_LIBS - library to add to xxx_LDADD # CURSES_CFLAGS - include paths to add to xxx_CPPFLAGS # # In previous versions of this macro, the flags CURSES_LIB and # CURSES_CPPFLAGS were defined. These have been renamed, in keeping with # AX_WITH_CURSES's close bigger brother, PKG_CHECK_MODULES, which should # eventually supersede the use of AX_WITH_CURSES. Neither the library # listed in CURSES_LIBS, nor the flags in CURSES_CFLAGS are added to LIBS, # respectively CPPFLAGS, by default. You need to add both to the # appropriate xxx_LDADD/xxx_CPPFLAGS line in your Makefile.am. For # example: # # prog_LDADD = @CURSES_LIBS@ # prog_CPPFLAGS = @CURSES_CFLAGS@ # # If CURSES_LIBS is set on the configure command line (such as by running # "./configure CURSES_LIBS=-lmycurses"), then the only header searched for # is . If the user needs to specify an alternative path for a # library (such as for a non-standard NcurseW), the user should use the # LDFLAGS variable. # # The following shell variables may be defined by this macro: # # ax_cv_curses - set to "yes" if any Curses library found # ax_cv_curses_enhanced - set to "yes" if Enhanced functions present # ax_cv_curses_color - set to "yes" if color functions present # ax_cv_curses_obsolete - set to "yes" if obsolete features present # # ax_cv_ncursesw - set to "yes" if NcursesW library found # ax_cv_ncurses - set to "yes" if Ncurses library found # ax_cv_plaincurses - set to "yes" if plain Curses library found # ax_cv_curses_which - set to "ncursesw", "ncurses", "plaincurses" or "no" # # These variables can be used in your configure.ac to determine the level # of support you need from the Curses library. For example, if you must # have either Ncurses or NcursesW, you could include: # # AX_WITH_CURSES # if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; then # AC_MSG_ERROR([requires either NcursesW or Ncurses library]) # fi # # If any Curses library will do (but one must be present and must support # color), you could use: # # AX_WITH_CURSES # if test "x$ax_cv_curses" != xyes || test "x$ax_cv_curses_color" != xyes; then # AC_MSG_ERROR([requires an X/Open-compatible Curses library with color]) # fi # # Certain preprocessor symbols and shell variables defined by this macro # can be used to determine various features of the Curses library. In # particular, HAVE_CURSES and ax_cv_curses are defined if the Curses # library found conforms to the traditional SysV and/or X/Open Base Curses # definition. Any working Curses library conforms to this level. # # HAVE_CURSES_ENHANCED and ax_cv_curses_enhanced are defined if the # library supports the X/Open Enhanced Curses definition. In particular, # the wide-character types attr_t, cchar_t and wint_t, the functions # wattr_set() and wget_wch() and the macros WA_NORMAL and _XOPEN_CURSES # are checked. The Ncurses library does NOT conform to this definition, # although NcursesW does. # # HAVE_CURSES_COLOR and ax_cv_curses_color are defined if the library # supports color functions and macros such as COLOR_PAIR, A_COLOR, # COLOR_WHITE, COLOR_RED and init_pair(). These are NOT part of the # X/Open Base Curses definition, but are part of the Enhanced set of # functions. The Ncurses library DOES support these functions, as does # NcursesW. # # HAVE_CURSES_OBSOLETE and ax_cv_curses_obsolete are defined if the # library supports certain features present in SysV and BSD Curses but not # defined in the X/Open definition. In particular, the functions # getattrs(), getcurx() and getmaxx() are checked. # # To use the HAVE_xxx_H preprocessor symbols, insert the following into # your system.h (or equivalent) header file: # # #if defined HAVE_NCURSESW_CURSES_H # # include # #elif defined HAVE_NCURSESW_H # # include # #elif defined HAVE_NCURSES_CURSES_H # # include # #elif defined HAVE_NCURSES_H # # include # #elif defined HAVE_CURSES_H # # include # #else # # error "SysV or X/Open-compatible Curses header file required" # #endif # # For previous users of this macro: you should not need to change anything # in your configure.ac or Makefile.am, as the previous (serial 10) # semantics are still valid. However, you should update your system.h (or # equivalent) header file to the fragment shown above. You are encouraged # also to make use of the extended functionality provided by this version # of AX_WITH_CURSES, as well as in the additional macros # AX_WITH_CURSES_PANEL, AX_WITH_CURSES_MENU and AX_WITH_CURSES_FORM. # # LICENSE # # Copyright (c) 2009 Mark Pulford # Copyright (c) 2009 Damian Pietras # Copyright (c) 2012 Reuben Thomas # Copyright (c) 2011 John Zaitseff # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 17 # internal function to factorize common code that is used by both ncurses # and ncursesw AC_DEFUN([_FIND_CURSES_FLAGS], [ AC_MSG_CHECKING([for $1 via pkg-config]) AX_REQUIRE_DEFINED([PKG_CHECK_EXISTS]) _PKG_CONFIG([_ax_cv_$1_libs], [libs], [$1]) _PKG_CONFIG([_ax_cv_$1_cppflags], [cflags], [$1]) AS_IF([test "x$pkg_failed" = "xyes" || test "x$pkg_failed" = "xuntried"],[ AC_MSG_RESULT([no]) # No suitable .pc file found, have to find flags via fallback AC_CACHE_CHECK([for $1 via fallback], [ax_cv_$1], [ AS_ECHO() pkg_cv__ax_cv_$1_libs="-l$1" pkg_cv__ax_cv_$1_cppflags="-D_GNU_SOURCE $CURSES_CFLAGS" LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags" AC_MSG_CHECKING([for initscr() with $pkg_cv__ax_cv_$1_libs]) AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], [ AC_MSG_RESULT([yes]) AC_MSG_CHECKING([for nodelay() with $pkg_cv__ax_cv_$1_libs]) AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[ ax_cv_$1=yes ],[ AC_MSG_RESULT([no]) m4_if( [$1],[ncursesw],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfow"], [$1],[ncurses],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfo"] ) LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" AC_MSG_CHECKING([for nodelay() with $pkg_cv__ax_cv_$1_libs]) AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[ ax_cv_$1=yes ],[ ax_cv_$1=no ]) ]) ],[ ax_cv_$1=no ]) ]) ],[ AC_MSG_RESULT([yes]) # Found .pc file, using its information LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs" CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags" ax_cv_$1=yes ]) ]) AU_ALIAS([MP_WITH_CURSES], [AX_WITH_CURSES]) AC_DEFUN([AX_WITH_CURSES], [ AC_ARG_VAR([CURSES_LIBS], [linker library for Curses, e.g. -lcurses]) AC_ARG_VAR([CURSES_CFLAGS], [preprocessor flags for Curses, e.g. -I/usr/include/ncursesw]) AC_ARG_WITH([ncurses], [AS_HELP_STRING([--with-ncurses], [force the use of Ncurses or NcursesW])], [], [with_ncurses=check]) AC_ARG_WITH([ncursesw], [AS_HELP_STRING([--without-ncursesw], [do not use NcursesW (wide character support)])], [], [with_ncursesw=check]) ax_saved_LIBS=$LIBS ax_saved_CPPFLAGS=$CPPFLAGS AS_IF([test "x$with_ncurses" = xyes || test "x$with_ncursesw" = xyes], [ax_with_plaincurses=no], [ax_with_plaincurses=check]) ax_cv_curses_which=no # Test for NcursesW AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncursesw" != xno], [ _FIND_CURSES_FLAGS([ncursesw]) AS_IF([test "x$ax_cv_ncursesw" = xno && test "x$with_ncursesw" = xyes], [ AC_MSG_ERROR([--with-ncursesw specified but could not find NcursesW library]) ]) AS_IF([test "x$ax_cv_ncursesw" = xyes], [ ax_cv_curses=yes ax_cv_curses_which=ncursesw CURSES_LIBS="$pkg_cv__ax_cv_ncursesw_libs" CURSES_CFLAGS="$pkg_cv__ax_cv_ncursesw_cppflags" AC_DEFINE([HAVE_NCURSESW], [1], [Define to 1 if the NcursesW library is present]) AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) AC_CACHE_CHECK([for working ncursesw/curses.h], [ax_cv_header_ncursesw_curses_h], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@define _XOPEN_SOURCE_EXTENDED 1 @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ]])], [ax_cv_header_ncursesw_curses_h=yes], [ax_cv_header_ncursesw_curses_h=no]) ]) AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xyes], [ ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) AC_DEFINE([HAVE_NCURSESW_CURSES_H], [1], [Define to 1 if is present]) ]) AC_CACHE_CHECK([for working ncursesw.h], [ax_cv_header_ncursesw_h], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@define _XOPEN_SOURCE_EXTENDED 1 @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ]])], [ax_cv_header_ncursesw_h=yes], [ax_cv_header_ncursesw_h=no]) ]) AS_IF([test "x$ax_cv_header_ncursesw_h" = xyes], [ ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) AC_DEFINE([HAVE_NCURSESW_H], [1], [Define to 1 if is present]) ]) AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h_with_ncursesw], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@define _XOPEN_SOURCE_EXTENDED 1 @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ]])], [ax_cv_header_ncurses_h_with_ncursesw=yes], [ax_cv_header_ncurses_h_with_ncursesw=no]) ]) AS_IF([test "x$ax_cv_header_ncurses_h_with_ncursesw" = xyes], [ ax_cv_curses_enhanced=yes ax_cv_curses_color=yes ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) AC_DEFINE([HAVE_NCURSES_H], [1], [Define to 1 if is present]) ]) AS_IF([test "x$ax_cv_header_ncursesw_curses_h" = xno && test "x$ax_cv_header_ncursesw_h" = xno && test "x$ax_cv_header_ncurses_h_with_ncursesw" = xno], [ AC_MSG_WARN([could not find a working ncursesw/curses.h, ncursesw.h or ncurses.h]) ]) ]) ]) unset pkg_cv__ax_cv_ncursesw_libs unset pkg_cv__ax_cv_ncursesw_cppflags # Test for Ncurses AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncurses" != xno && test "x$ax_cv_curses_which" = xno], [ _FIND_CURSES_FLAGS([ncurses]) AS_IF([test "x$ax_cv_ncurses" = xno && test "x$with_ncurses" = xyes], [ AC_MSG_ERROR([--with-ncurses specified but could not find Ncurses library]) ]) AS_IF([test "x$ax_cv_ncurses" = xyes], [ ax_cv_curses=yes ax_cv_curses_which=ncurses CURSES_LIBS="$pkg_cv__ax_cv_ncurses_libs" CURSES_CFLAGS="$pkg_cv__ax_cv_ncurses_cppflags" AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if the Ncurses library is present]) AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) AC_CACHE_CHECK([for working ncurses/curses.h], [ax_cv_header_ncurses_curses_h], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ]])], [ax_cv_header_ncurses_curses_h=yes], [ax_cv_header_ncurses_curses_h=no]) ]) AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xyes], [ ax_cv_curses_color=yes ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) AC_DEFINE([HAVE_NCURSES_CURSES_H], [1], [Define to 1 if is present]) ]) AC_CACHE_CHECK([for working ncurses.h], [ax_cv_header_ncurses_h], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ]])], [ax_cv_header_ncurses_h=yes], [ax_cv_header_ncurses_h=no]) ]) AS_IF([test "x$ax_cv_header_ncurses_h" = xyes], [ ax_cv_curses_color=yes ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) AC_DEFINE([HAVE_NCURSES_H], [1], [Define to 1 if is present]) ]) AS_IF([test "x$ax_cv_header_ncurses_curses_h" = xno && test "x$ax_cv_header_ncurses_h" = xno], [ AC_MSG_WARN([could not find a working ncurses/curses.h or ncurses.h]) ]) ]) ]) unset pkg_cv__ax_cv_ncurses_libs unset pkg_cv__ax_cv_ncurses_cppflags # Test for plain Curses (or if CURSES_LIBS was set by user) AS_IF([test "x$with_plaincurses" != xno && test "x$ax_cv_curses_which" = xno], [ AS_IF([test "x$CURSES_LIBS" != x], [ LIBS="$ax_saved_LIBS $CURSES_LIBS" ], [ LIBS="$ax_saved_LIBS -lcurses" ]) AC_CACHE_CHECK([for Curses library], [ax_cv_plaincurses], [ AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])], [ax_cv_plaincurses=yes], [ax_cv_plaincurses=no]) ]) AS_IF([test "x$ax_cv_plaincurses" = xyes], [ ax_cv_curses=yes ax_cv_curses_which=plaincurses AS_IF([test "x$CURSES_LIBS" = x], [ CURSES_LIBS="-lcurses" ]) AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present]) # Check for base conformance (and header file) AC_CACHE_CHECK([for working curses.h], [ax_cv_header_curses_h], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; initscr(); ]])], [ax_cv_header_curses_h=yes], [ax_cv_header_curses_h=no]) ]) AS_IF([test "x$ax_cv_header_curses_h" = xyes], [ AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if is present]) # Check for X/Open Enhanced conformance AC_CACHE_CHECK([for X/Open Enhanced Curses conformance], [ax_cv_plaincurses_enhanced], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@define _XOPEN_SOURCE_EXTENDED 1 @%:@include @%:@ifndef _XOPEN_CURSES @%:@error "this Curses library is not enhanced" "this Curses library is not enhanced" @%:@endif ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; attr_t d = WA_NORMAL; cchar_t e; wint_t f; initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); wattr_set(stdscr, d, 0, NULL); wget_wch(stdscr, &f); ]])], [ax_cv_plaincurses_enhanced=yes], [ax_cv_plaincurses_enhanced=no]) ]) AS_IF([test "x$ax_cv_plaincurses_enhanced" = xyes], [ ax_cv_curses_enhanced=yes ax_cv_curses_color=yes AC_DEFINE([HAVE_CURSES_ENHANCED], [1], [Define to 1 if library supports X/Open Enhanced functions]) AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) ]) # Check for color functions AC_CACHE_CHECK([for Curses color functions], [ax_cv_plaincurses_color], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@define _XOPEN_SOURCE_EXTENDED 1 @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; chtype c = COLOR_PAIR(1) & A_COLOR; initscr(); init_pair(1, COLOR_WHITE, COLOR_RED); ]])], [ax_cv_plaincurses_color=yes], [ax_cv_plaincurses_color=no]) ]) AS_IF([test "x$ax_cv_plaincurses_color" = xyes], [ ax_cv_curses_color=yes AC_DEFINE([HAVE_CURSES_COLOR], [1], [Define to 1 if library supports color (enhanced functions)]) ]) # Check for obsolete functions AC_CACHE_CHECK([for obsolete Curses functions], [ax_cv_plaincurses_obsolete], [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ chtype a = A_BOLD; int b = KEY_LEFT; int g = getattrs(stdscr); int h = getcurx(stdscr) + getmaxx(stdscr); initscr(); ]])], [ax_cv_plaincurses_obsolete=yes], [ax_cv_plaincurses_obsolete=no]) ]) AS_IF([test "x$ax_cv_plaincurses_obsolete" = xyes], [ ax_cv_curses_obsolete=yes AC_DEFINE([HAVE_CURSES_OBSOLETE], [1], [Define to 1 if library supports certain obsolete features]) ]) ]) AS_IF([test "x$ax_cv_header_curses_h" = xno], [ AC_MSG_WARN([could not find a working curses.h]) ]) ]) ]) AS_IF([test "x$ax_cv_curses" != xyes], [ax_cv_curses=no]) AS_IF([test "x$ax_cv_curses_enhanced" != xyes], [ax_cv_curses_enhanced=no]) AS_IF([test "x$ax_cv_curses_color" != xyes], [ax_cv_curses_color=no]) AS_IF([test "x$ax_cv_curses_obsolete" != xyes], [ax_cv_curses_obsolete=no]) LIBS=$ax_saved_LIBS CPPFLAGS=$ax_saved_CPPFLAGS unset ax_saved_LIBS unset ax_saved_CPPFLAGS ])dnl pspg-0.9.3/tools/install.sh000077500000000000000000000020411324002717400156360ustar00rootroot00000000000000#!/bin/sh # # Install data or executable file. # # Usage: $0 {data|bin} src dest # # Copyright (c) 2014 Jonas Fonseca # # 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. set -e data="$1" src="$2" dest="$3" mode=0755 trash= case "$data" in data) mode=0644 esac install -d "$dest" if [ "$V" = "@" ]; then echo "$src -> $dest" fi # Replace fake /etc-path case "$src" in doc/*) dest="$dest/$(basename "$src")" sed "s#++SYSCONFDIR++#${sysconfdir}#" < "$src" > "$src+" trash="$src+" src="$src+" esac install -p -m "$mode" "$src" "$dest" if [ -n "$trash" ]; then rm -f "$trash" fi