libnbcompat-20180822/0000755000175000017500000000000013355271171014511 5ustar jgoerzenjgoerzenlibnbcompat-20180822/warn.c0000644000175000017500000000614713355271171015634 0ustar jgoerzenjgoerzen/* $NetBSD: warn.c,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /* * Copyright 1997-2000 Luke Mewburn . * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: warn.c,v 1.1 2004/08/23 03:32:13 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #ifndef __NO_NAMESPACE_H /* XXX */ #if 0 #include "namespace.h" #endif #endif #include #if HAVE_STDARG_H #include #endif #if 0 #ifdef __weak_alias __weak_alias(warn, _warn) #endif #endif void warn(const char *fmt, ...) { va_list ap; int sverrno; sverrno = errno; (void)fprintf(stderr, "%s: ", getprogname()); va_start(ap, fmt); if (fmt != NULL) { (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, ": "); } va_end(ap); (void)fprintf(stderr, "%s\n", strerror(sverrno)); } void warnx(const char *fmt, ...) { va_list ap; (void)fprintf(stderr, "%s: ", getprogname()); va_start(ap, fmt); if (fmt != NULL) (void)vfprintf(stderr, fmt, ap); va_end(ap); (void)fprintf(stderr, "\n"); } void vwarn(fmt, ap) const char *fmt; va_list ap; { int sverrno; sverrno = errno; (void)fprintf(stderr, "%s: ", getprogname()); if (fmt != NULL) { (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, ": "); } (void)fprintf(stderr, "%s\n", strerror(sverrno)); } void vwarnx(fmt, ap) const char *fmt; va_list ap; { (void)fprintf(stderr, "%s: ", getprogname()); if (fmt != NULL) (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, "\n"); } libnbcompat-20180822/pwcache.c0000644000175000017500000003772013355271171016300 0ustar jgoerzenjgoerzen/* $NetBSD: pwcache.c,v 1.10 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 1992 Keith Muller. * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Keith Muller of the University of California, San Diego. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" /* * XXX Undefine the renames of these functions so that we don't * XXX rename the versions found in the host's by mistake! */ #undef group_from_gid #undef user_from_uid #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)cache.c 8.1 (Berkeley) 5/31/93"; #else __RCSID("$NetBSD: pwcache.c,v 1.10 2008/04/29 05:46:08 martin Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #include #include #include #include #if HAVE_NBTOOL_CONFIG_H /* XXX Now, re-apply the renaming that we undid above. */ #define group_from_gid __nbcompat_group_from_gid #define user_from_uid __nbcompat_user_from_uid #endif #if 0 #ifdef __weak_alias __weak_alias(user_from_uid,_user_from_uid) __weak_alias(group_from_gid,_group_from_gid) __weak_alias(pwcache_userdb,_pwcache_userdb) __weak_alias(pwcache_groupdb,_pwcache_groupdb) #endif #endif #if !HAVE_PWCACHE_USERDB || HAVE_NBTOOL_CONFIG_H #include "private/pwcache.h" /* * routines that control user, group, uid and gid caches (for the archive * member print routine). * IMPORTANT: * these routines cache BOTH hits and misses, a major performance improvement */ /* * function pointers to various name lookup routines. * these may be changed as necessary. */ static int (*_pwcache_setgroupent)(int) = setgroupent; static void (*_pwcache_endgrent)(void) = endgrent; static struct group * (*_pwcache_getgrnam)(const char *) = getgrnam; static struct group * (*_pwcache_getgrgid)(gid_t) = getgrgid; static int (*_pwcache_setpassent)(int) = setpassent; static void (*_pwcache_endpwent)(void) = endpwent; static struct passwd * (*_pwcache_getpwnam)(const char *) = getpwnam; static struct passwd * (*_pwcache_getpwuid)(uid_t) = getpwuid; /* * internal state */ static int pwopn; /* is password file open */ static int gropn; /* is group file open */ static UIDC **uidtb; /* uid to name cache */ static GIDC **gidtb; /* gid to name cache */ static UIDC **usrtb; /* user name to uid cache */ static GIDC **grptb; /* group name to gid cache */ static int uidtb_fail; /* uidtb_start() failed ? */ static int gidtb_fail; /* gidtb_start() failed ? */ static int usrtb_fail; /* usrtb_start() failed ? */ static int grptb_fail; /* grptb_start() failed ? */ static unsigned int st_hash(const char *, size_t, int); static int uidtb_start(void); static int gidtb_start(void); static int usrtb_start(void); static int grptb_start(void); static unsigned int st_hash(const char *name, size_t len, int tabsz) { unsigned int key = 0; _DIAGASSERT(name != NULL); while (len--) { key += *name++; key = (key << 8) | (key >> 24); } return (key % tabsz); } /* * uidtb_start * creates an an empty uidtb * Return: * 0 if ok, -1 otherwise */ static int uidtb_start(void) { if (uidtb != NULL) return (0); if (uidtb_fail) return (-1); if ((uidtb = (UIDC **)calloc(UID_SZ, sizeof(UIDC *))) == NULL) { ++uidtb_fail; return (-1); } return (0); } /* * gidtb_start * creates an an empty gidtb * Return: * 0 if ok, -1 otherwise */ static int gidtb_start(void) { if (gidtb != NULL) return (0); if (gidtb_fail) return (-1); if ((gidtb = (GIDC **)calloc(GID_SZ, sizeof(GIDC *))) == NULL) { ++gidtb_fail; return (-1); } return (0); } /* * usrtb_start * creates an an empty usrtb * Return: * 0 if ok, -1 otherwise */ static int usrtb_start(void) { if (usrtb != NULL) return (0); if (usrtb_fail) return (-1); if ((usrtb = (UIDC **)calloc(UNM_SZ, sizeof(UIDC *))) == NULL) { ++usrtb_fail; return (-1); } return (0); } /* * grptb_start * creates an an empty grptb * Return: * 0 if ok, -1 otherwise */ static int grptb_start(void) { if (grptb != NULL) return (0); if (grptb_fail) return (-1); if ((grptb = (GIDC **)calloc(GNM_SZ, sizeof(GIDC *))) == NULL) { ++grptb_fail; return (-1); } return (0); } /* * user_from_uid() * caches the name (if any) for the uid. If noname clear, we always * return the stored name (if valid or invalid match). * We use a simple hash table. * Return * Pointer to stored name (or a empty string) */ #if !HAVE_USER_FROM_UID const char * user_from_uid(uid_t uid, int noname) { struct passwd *pw; UIDC *ptr, **pptr; if ((uidtb == NULL) && (uidtb_start() < 0)) return (NULL); /* * see if we have this uid cached */ pptr = uidtb + (uid % UID_SZ); ptr = *pptr; if ((ptr != NULL) && (ptr->valid > 0) && (ptr->uid == uid)) { /* * have an entry for this uid */ if (!noname || (ptr->valid == VALID)) return (ptr->name); return (NULL); } /* * No entry for this uid, we will add it */ if (!pwopn) { if (_pwcache_setpassent != NULL) (*_pwcache_setpassent)(1); ++pwopn; } if (ptr == NULL) *pptr = ptr = (UIDC *)malloc(sizeof(UIDC)); if ((pw = (*_pwcache_getpwuid)(uid)) == NULL) { /* * no match for this uid in the local password file * a string that is the uid in numeric format */ if (ptr == NULL) return (NULL); ptr->uid = uid; (void)snprintf(ptr->name, UNMLEN, "%lu", (long) uid); ptr->valid = INVALID; if (noname) return (NULL); } else { /* * there is an entry for this uid in the password file */ if (ptr == NULL) return (pw->pw_name); ptr->uid = uid; (void)strlcpy(ptr->name, pw->pw_name, UNMLEN); ptr->valid = VALID; } return (ptr->name); } #endif /* !HAVE_USER_FROM_UID */ /* * group_from_gid() * caches the name (if any) for the gid. If noname clear, we always * return the stored name (if valid or invalid match). * We use a simple hash table. * Return * Pointer to stored name (or a empty string) */ #if !HAVE_GROUP_FROM_GID const char * group_from_gid(gid_t gid, int noname) { struct group *gr; GIDC *ptr, **pptr; if ((gidtb == NULL) && (gidtb_start() < 0)) return (NULL); /* * see if we have this gid cached */ pptr = gidtb + (gid % GID_SZ); ptr = *pptr; if ((ptr != NULL) && (ptr->valid > 0) && (ptr->gid == gid)) { /* * have an entry for this gid */ if (!noname || (ptr->valid == VALID)) return (ptr->name); return (NULL); } /* * No entry for this gid, we will add it */ if (!gropn) { if (_pwcache_setgroupent != NULL) (*_pwcache_setgroupent)(1); ++gropn; } if (ptr == NULL) *pptr = ptr = (GIDC *)malloc(sizeof(GIDC)); if ((gr = (*_pwcache_getgrgid)(gid)) == NULL) { /* * no match for this gid in the local group file, put in * a string that is the gid in numberic format */ if (ptr == NULL) return (NULL); ptr->gid = gid; (void)snprintf(ptr->name, GNMLEN, "%lu", (long) gid); ptr->valid = INVALID; if (noname) return (NULL); } else { /* * there is an entry for this group in the group file */ if (ptr == NULL) return (gr->gr_name); ptr->gid = gid; (void)strlcpy(ptr->name, gr->gr_name, GNMLEN); ptr->valid = VALID; } return (ptr->name); } #endif /* !HAVE_GROUP_FROM_GID */ /* * uid_from_user() * caches the uid for a given user name. We use a simple hash table. * Return * the uid (if any) for a user name, or a -1 if no match can be found */ #if !HAVE_UID_FROM_USER int uid_from_user(const char *name, uid_t *uid) { struct passwd *pw; UIDC *ptr, **pptr; size_t namelen; /* * return -1 for mangled names */ if (name == NULL || ((namelen = strlen(name)) == 0)) return (-1); if ((usrtb == NULL) && (usrtb_start() < 0)) return (-1); /* * look up in hash table, if found and valid return the uid, * if found and invalid, return a -1 */ pptr = usrtb + st_hash(name, namelen, UNM_SZ); ptr = *pptr; if ((ptr != NULL) && (ptr->valid > 0) && !strcmp(name, ptr->name)) { if (ptr->valid == INVALID) return (-1); *uid = ptr->uid; return (0); } if (!pwopn) { if (_pwcache_setpassent != NULL) (*_pwcache_setpassent)(1); ++pwopn; } if (ptr == NULL) *pptr = ptr = (UIDC *)malloc(sizeof(UIDC)); /* * no match, look it up, if no match store it as an invalid entry, * or store the matching uid */ if (ptr == NULL) { if ((pw = (*_pwcache_getpwnam)(name)) == NULL) return (-1); *uid = pw->pw_uid; return (0); } (void)strlcpy(ptr->name, name, UNMLEN); if ((pw = (*_pwcache_getpwnam)(name)) == NULL) { ptr->valid = INVALID; return (-1); } ptr->valid = VALID; *uid = ptr->uid = pw->pw_uid; return (0); } #endif /* !HAVE_UID_FROM_USER */ /* * gid_from_group() * caches the gid for a given group name. We use a simple hash table. * Return * the gid (if any) for a group name, or a -1 if no match can be found */ #if !HAVE_GID_FROM_GROUP int gid_from_group(const char *name, gid_t *gid) { struct group *gr; GIDC *ptr, **pptr; size_t namelen; /* * return -1 for mangled names */ if (name == NULL || ((namelen = strlen(name)) == 0)) return (-1); if ((grptb == NULL) && (grptb_start() < 0)) return (-1); /* * look up in hash table, if found and valid return the uid, * if found and invalid, return a -1 */ pptr = grptb + st_hash(name, namelen, GID_SZ); ptr = *pptr; if ((ptr != NULL) && (ptr->valid > 0) && !strcmp(name, ptr->name)) { if (ptr->valid == INVALID) return (-1); *gid = ptr->gid; return (0); } if (!gropn) { if (_pwcache_setgroupent != NULL) (*_pwcache_setgroupent)(1); ++gropn; } if (ptr == NULL) *pptr = ptr = (GIDC *)malloc(sizeof(GIDC)); /* * no match, look it up, if no match store it as an invalid entry, * or store the matching gid */ if (ptr == NULL) { if ((gr = (*_pwcache_getgrnam)(name)) == NULL) return (-1); *gid = gr->gr_gid; return (0); } (void)strlcpy(ptr->name, name, GNMLEN); if ((gr = (*_pwcache_getgrnam)(name)) == NULL) { ptr->valid = INVALID; return (-1); } ptr->valid = VALID; *gid = ptr->gid = gr->gr_gid; return (0); } #endif /* !HAVE_GID_FROM_GROUP */ #define FLUSHTB(arr, len, fail) \ do { \ if (arr != NULL) { \ for (i = 0; i < len; i++) \ if (arr[i] != NULL) \ free(arr[i]); \ arr = NULL; \ } \ fail = 0; \ } while (/* CONSTCOND */0); #if !HAVE_PWCACHE_USERDB int pwcache_userdb( int (*a_setpassent)(int), void (*a_endpwent)(void), struct passwd * (*a_getpwnam)(const char *), struct passwd * (*a_getpwuid)(uid_t)) { int i; /* a_setpassent and a_endpwent may be NULL */ if (a_getpwnam == NULL || a_getpwuid == NULL) return (-1); if (_pwcache_endpwent != NULL) (*_pwcache_endpwent)(); FLUSHTB(uidtb, UID_SZ, uidtb_fail); FLUSHTB(usrtb, UNM_SZ, usrtb_fail); pwopn = 0; _pwcache_setpassent = a_setpassent; _pwcache_endpwent = a_endpwent; _pwcache_getpwnam = a_getpwnam; _pwcache_getpwuid = a_getpwuid; return (0); } #endif /* !HAVE_PWCACHE_USERDB */ #if !HAVE_PWCACHE_GROUPDB int pwcache_groupdb( int (*a_setgroupent)(int), void (*a_endgrent)(void), struct group * (*a_getgrnam)(const char *), struct group * (*a_getgrgid)(gid_t)) { int i; /* a_setgroupent and a_endgrent may be NULL */ if (a_getgrnam == NULL || a_getgrgid == NULL) return (-1); if (_pwcache_endgrent != NULL) (*_pwcache_endgrent)(); FLUSHTB(gidtb, GID_SZ, gidtb_fail); FLUSHTB(grptb, GNM_SZ, grptb_fail); gropn = 0; _pwcache_setgroupent = a_setgroupent; _pwcache_endgrent = a_endgrent; _pwcache_getgrnam = a_getgrnam; _pwcache_getgrgid = a_getgrgid; return (0); } #endif /* !HAVE_PWCACHE_GROUPDB */ #ifdef TEST_PWCACHE struct passwd * test_getpwnam(const char *name) { static struct passwd foo; memset(&foo, 0, sizeof(foo)); if (strcmp(name, "toor") == 0) { foo.pw_uid = 666; return &foo; } return (getpwnam(name)); } int main(int argc, char *argv[]) { uid_t u; int r, i; printf("pass 1 (default userdb)\n"); for (i = 1; i < argc; i++) { printf("i: %d, pwopn %d usrtb_fail %d usrtb %p\n", i, pwopn, usrtb_fail, usrtb); r = uid_from_user(argv[i], &u); if (r == -1) printf(" uid_from_user %s: failed\n", argv[i]); else printf(" uid_from_user %s: %d\n", argv[i], u); } printf("pass 1 finish: pwopn %d usrtb_fail %d usrtb %p\n", pwopn, usrtb_fail, usrtb); puts(""); printf("pass 2 (replacement userdb)\n"); printf("pwcache_userdb returned %d\n", pwcache_userdb(setpassent, test_getpwnam, getpwuid)); printf("pwopn %d usrtb_fail %d usrtb %p\n", pwopn, usrtb_fail, usrtb); for (i = 1; i < argc; i++) { printf("i: %d, pwopn %d usrtb_fail %d usrtb %p\n", i, pwopn, usrtb_fail, usrtb); u = -1; r = uid_from_user(argv[i], &u); if (r == -1) printf(" uid_from_user %s: failed\n", argv[i]); else printf(" uid_from_user %s: %d\n", argv[i], u); } printf("pass 2 finish: pwopn %d usrtb_fail %d usrtb %p\n", pwopn, usrtb_fail, usrtb); puts(""); printf("pass 3 (null pointers)\n"); printf("pwcache_userdb returned %d\n", pwcache_userdb(NULL, NULL, NULL)); return (0); } #endif /* TEST_PWCACHE */ #endif /* !HAVE_PWCACHE_USERDB */ libnbcompat-20180822/__glob13.c0000644000175000017500000005655713355271171016264 0ustar jgoerzenjgoerzen/* $NetBSD: __glob13.c,v 1.4 2014/03/14 22:08:17 ryoon Exp $ */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Guido van Rossum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; #else __RCSID("$NetBSD: __glob13.c,v 1.4 2014/03/14 22:08:17 ryoon Exp $"); #endif #endif /* LIBC_SCCS and not lint */ /* * SCO OpenServer 5.0.7/3.2 has no MAXPATHLEN, but it has PATH_MAX (256). * in limits.h. But it is not usable under ordinal condition. */ #if !defined(MAXPATHLEN) #if defined(_SCO_DS) #define MAXPATHLEN 1024 #endif #endif /* * glob(3) -- a superset of the one defined in POSIX 1003.2. * * The [!...] convention to negate a range is supported (SysV, Posix, ksh). * * Optional extra services, controlled by flags not defined by POSIX: * * GLOB_MAGCHAR: * Set in gl_flags if pattern contained a globbing character. * GLOB_NOMAGIC: * Same as GLOB_NOCHECK, but it will only append pattern if it did * not contain any magic characters. [Used in csh style globbing] * GLOB_ALTDIRFUNC: * Use alternately specified directory access functions. * GLOB_TILDE: * expand ~user/foo to the /home/dir/of/user/foo * GLOB_BRACE: * expand {1,2}{a,b} to 1a 1b 2a 2b * gl_matchc: * Number of matches in the current invocation of glob. */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #if HAVE_ERRNO_H #include #endif #include #include #include #include #include #include #if 0 #ifdef __weak_alias #ifdef __LIBC12_SOURCE__ __weak_alias(glob,_glob) __weak_alias(globfree,_globfree) #endif /* __LIBC12_SOURCE__ */ #endif /* __weak_alias */ #endif /* * XXX: For NetBSD 1.4.x compatibility. (kill me l8r) */ #ifndef _DIAGASSERT #define _DIAGASSERT(a) #endif #ifdef __LIBC12_SOURCE__ __warn_references(glob, "warning: reference to compatibility glob(); include for correct reference") __warn_references(globfree, "warning: reference to compatibility globfree(); include for correct reference") #endif #define DOLLAR '$' #define DOT '.' #define EOS '\0' #define LBRACKET '[' #define NOT '!' #define QUESTION '?' #define QUOTE '\\' #define RANGE '-' #define RBRACKET ']' #define SEP '/' #define STAR '*' #define TILDE '~' #define UNDERSCORE '_' #define LBRACE '{' #define RBRACE '}' #define SLASH '/' #define COMMA ',' #ifndef DEBUG #define M_QUOTE 0x8000 #define M_PROTECT 0x4000 #define M_MASK 0xffff #define M_ASCII 0x00ff typedef unsigned short Char; #else #define M_QUOTE 0x80 #define M_PROTECT 0x40 #define M_MASK 0xff #define M_ASCII 0x7f typedef char Char; #endif #define CHAR(c) ((Char)((c)&M_ASCII)) #define META(c) ((Char)((c)|M_QUOTE)) #define M_ALL META('*') #define M_END META(']') #define M_NOT META('!') #define M_ONE META('?') #define M_RNG META('-') #define M_SET META('[') #define ismeta(c) (((c)&M_QUOTE) != 0) static int compare __P((const void *, const void *)); static int g_Ctoc __P((const Char *, char *, size_t)); static int g_lstat __P((Char *, struct stat *, glob_t *)); static DIR *g_opendir __P((Char *, glob_t *)); static Char *g_strchr __P((const Char *, int)); static int g_stat __P((Char *, struct stat *, glob_t *)); static int glob0 __P((const Char *, glob_t *)); static int glob1 __P((Char *, glob_t *, size_t *)); static int glob2 __P((Char *, Char *, Char *, Char *, glob_t *, size_t *)); static int glob3 __P((Char *, Char *, Char *, Char *, Char *, glob_t *, size_t *)); static int globextend __P((const Char *, glob_t *, size_t *)); static const Char *globtilde __P((const Char *, Char *, size_t, glob_t *)); static int globexp1 __P((const Char *, glob_t *)); static int globexp2 __P((const Char *, const Char *, glob_t *, int *)); static int match __P((Char *, Char *, Char *)); #ifdef DEBUG static void qprintf __P((const char *, Char *)); #endif int glob(pattern, flags, errfunc, pglob) const char *pattern; int flags, (*errfunc) __P((const char *, int)); glob_t *pglob; { const unsigned char *patnext; int c; Char *bufnext, *bufend, patbuf[MAXPATHLEN+1]; _DIAGASSERT(pattern != NULL); patnext = (const unsigned char *) pattern; if (!(flags & GLOB_APPEND)) { pglob->gl_pathc = 0; pglob->gl_pathv = NULL; if (!(flags & GLOB_DOOFFS)) pglob->gl_offs = 0; } pglob->gl_flags = flags & ~GLOB_MAGCHAR; pglob->gl_errfunc = errfunc; pglob->gl_matchc = 0; bufnext = patbuf; bufend = bufnext + MAXPATHLEN; if (flags & GLOB_NOESCAPE) { while (bufnext < bufend && (c = *patnext++) != EOS) *bufnext++ = c; } else { /* Protect the quoted characters. */ while (bufnext < bufend && (c = *patnext++) != EOS) if (c == QUOTE) { if ((c = *patnext++) == EOS) { c = QUOTE; --patnext; } *bufnext++ = c | M_PROTECT; } else *bufnext++ = c; } *bufnext = EOS; if (flags & GLOB_BRACE) return globexp1(patbuf, pglob); else return glob0(patbuf, pglob); } /* * Expand recursively a glob {} pattern. When there is no more expansion * invoke the standard globbing routine to glob the rest of the magic * characters */ static int globexp1(pattern, pglob) const Char *pattern; glob_t *pglob; { const Char* ptr = pattern; int rv; _DIAGASSERT(pattern != NULL); _DIAGASSERT(pglob != NULL); /* Protect a single {}, for find(1), like csh */ if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) return glob0(pattern, pglob); while ((ptr = (const Char *) g_strchr(ptr, LBRACE)) != NULL) if (!globexp2(ptr, pattern, pglob, &rv)) return rv; return glob0(pattern, pglob); } /* * Recursive brace globbing helper. Tries to expand a single brace. * If it succeeds then it invokes globexp1 with the new pattern. * If it fails then it tries to glob the rest of the pattern and returns. */ static int globexp2(ptr, pattern, pglob, rv) const Char *ptr, *pattern; glob_t *pglob; int *rv; { int i; Char *lm, *ls; const Char *pe, *pm, *pl; Char patbuf[MAXPATHLEN + 1]; _DIAGASSERT(ptr != NULL); _DIAGASSERT(pattern != NULL); _DIAGASSERT(pglob != NULL); _DIAGASSERT(rv != NULL); /* copy part up to the brace */ for (lm = patbuf, pm = pattern; pm != ptr; *lm++ = *pm++) continue; ls = lm; /* Find the balanced brace */ for (i = 0, pe = ++ptr; *pe; pe++) if (*pe == LBRACKET) { /* Ignore everything between [] */ for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) continue; if (*pe == EOS) { /* * We could not find a matching RBRACKET. * Ignore and just look for RBRACE */ pe = pm; } } else if (*pe == LBRACE) i++; else if (*pe == RBRACE) { if (i == 0) break; i--; } /* Non matching braces; just glob the pattern */ if (i != 0 || *pe == EOS) { /* * we use `pattern', not `patbuf' here so that that * unbalanced braces are passed to the match */ *rv = glob0(pattern, pglob); return 0; } for (i = 0, pl = pm = ptr; pm <= pe; pm++) { switch (*pm) { case LBRACKET: /* Ignore everything between [] */ for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++) continue; if (*pm == EOS) { /* * We could not find a matching RBRACKET. * Ignore and just look for RBRACE */ pm = pl; } break; case LBRACE: i++; break; case RBRACE: if (i) { i--; break; } /* FALLTHROUGH */ case COMMA: if (i && *pm == COMMA) break; else { /* Append the current string */ for (lm = ls; (pl < pm); *lm++ = *pl++) continue; /* * Append the rest of the pattern after the * closing brace */ for (pl = pe + 1; (*lm++ = *pl++) != EOS;) continue; /* Expand the current pattern */ #ifdef DEBUG qprintf("globexp2:", patbuf); #endif *rv = globexp1(patbuf, pglob); /* move after the comma, to the next string */ pl = pm + 1; } break; default: break; } } *rv = 0; return 0; } /* * expand tilde from the passwd file. */ static const Char * globtilde(pattern, patbuf, patsize, pglob) const Char *pattern; Char *patbuf; size_t patsize; glob_t *pglob; { struct passwd *pwd; const char *h; const Char *p; Char *b; char *d; Char *pend = &patbuf[patsize / sizeof(Char)]; pend--; _DIAGASSERT(pattern != NULL); _DIAGASSERT(patbuf != NULL); _DIAGASSERT(pglob != NULL); if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) return pattern; /* Copy up to the end of the string or / */ for (p = pattern + 1, d = (char *)(void *)patbuf; d < (char *)(void *)pend && *p && *p != SLASH; *d++ = *p++) continue; if (d == (char *)(void *)pend) return NULL; *d = EOS; d = (char *)(void *)patbuf; if (*d == EOS) { /* * handle a plain ~ or ~/ by expanding $HOME * first and then trying the password file */ if ((h = getenv("HOME")) == NULL) { if ((pwd = getpwuid(getuid())) == NULL) return pattern; else h = pwd->pw_dir; } } else { /* * Expand a ~user */ if ((pwd = getpwnam(d)) == NULL) return pattern; else h = pwd->pw_dir; } /* Copy the home directory */ for (b = patbuf; b < pend && *h; *b++ = *h++) continue; if (b == pend) return NULL; /* Append the rest of the pattern */ while (b < pend && (*b++ = *p++) != EOS) continue; if (b == pend) return NULL; return patbuf; } /* * The main glob() routine: compiles the pattern (optionally processing * quotes), calls glob1() to do the real pattern matching, and finally * sorts the list (unless unsorted operation is requested). Returns 0 * if things went well, nonzero if errors occurred. It is not an error * to find no matches. */ static int glob0(pattern, pglob) const Char *pattern; glob_t *pglob; { const Char *qpatnext; int c, error, oldpathc; Char *bufnext, patbuf[MAXPATHLEN+1]; size_t limit = 0; _DIAGASSERT(pattern != NULL); _DIAGASSERT(pglob != NULL); if ((qpatnext = globtilde(pattern, patbuf, sizeof(patbuf), pglob)) == NULL) return GLOB_ABEND; oldpathc = pglob->gl_pathc; bufnext = patbuf; /* We don't need to check for buffer overflow any more. */ while ((c = *qpatnext++) != EOS) { switch (c) { case LBRACKET: c = *qpatnext; if (c == NOT) ++qpatnext; if (*qpatnext == EOS || g_strchr(qpatnext+1, RBRACKET) == NULL) { *bufnext++ = LBRACKET; if (c == NOT) --qpatnext; break; } *bufnext++ = M_SET; if (c == NOT) *bufnext++ = M_NOT; c = *qpatnext++; do { *bufnext++ = CHAR(c); if (*qpatnext == RANGE && (c = qpatnext[1]) != RBRACKET) { *bufnext++ = M_RNG; *bufnext++ = CHAR(c); qpatnext += 2; } } while ((c = *qpatnext++) != RBRACKET); pglob->gl_flags |= GLOB_MAGCHAR; *bufnext++ = M_END; break; case QUESTION: pglob->gl_flags |= GLOB_MAGCHAR; *bufnext++ = M_ONE; break; case STAR: pglob->gl_flags |= GLOB_MAGCHAR; /* collapse adjacent stars to one, * to avoid exponential behavior */ if (bufnext == patbuf || bufnext[-1] != M_ALL) *bufnext++ = M_ALL; break; default: *bufnext++ = CHAR(c); break; } } *bufnext = EOS; #ifdef DEBUG qprintf("glob0:", patbuf); #endif if ((error = glob1(patbuf, pglob, &limit)) != 0) return(error); if (pglob->gl_pathc == oldpathc) { /* * If there was no match we are going to append the pattern * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was * specified and the pattern did not contain any magic * characters GLOB_NOMAGIC is there just for compatibility * with csh. */ if ((pglob->gl_flags & GLOB_NOCHECK) || ((pglob->gl_flags & (GLOB_NOMAGIC|GLOB_MAGCHAR)) == GLOB_NOMAGIC)) { return globextend(pattern, pglob, &limit); } else { return (GLOB_NOMATCH); } } else if (!(pglob->gl_flags & GLOB_NOSORT)) { qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, (size_t)pglob->gl_pathc - oldpathc, sizeof(char *), compare); } return(0); } static int compare(p, q) const void *p, *q; { _DIAGASSERT(p != NULL); _DIAGASSERT(q != NULL); return(strcoll(*(const char * const *)p, *(const char * const *)q)); } static int glob1(pattern, pglob, limit) Char *pattern; glob_t *pglob; size_t *limit; { Char pathbuf[MAXPATHLEN+1]; _DIAGASSERT(pattern != NULL); _DIAGASSERT(pglob != NULL); /* A null pathname is invalid -- POSIX 1003.1 sect. 2.4. */ if (*pattern == EOS) return(0); /* * we save one character so that we can use ptr >= limit, * in the general case when we are appending non nul chars only. */ return(glob2(pathbuf, pathbuf, pathbuf + sizeof(pathbuf) - 1, pattern, pglob, limit)); } /* * The functions glob2 and glob3 are mutually recursive; there is one level * of recursion for each segment in the pattern that contains one or more * meta characters. */ static int glob2(pathbuf, pathend, pathlim, pattern, pglob, limit) Char *pathbuf, *pathend, *pathlim, *pattern; glob_t *pglob; size_t *limit; { struct stat sb; Char *p, *q; int anymeta; _DIAGASSERT(pathbuf != NULL); _DIAGASSERT(pathend != NULL); _DIAGASSERT(pattern != NULL); _DIAGASSERT(pglob != NULL); /* * Loop over pattern segments until end of pattern or until * segment with meta character found. */ for (anymeta = 0;;) { if (*pattern == EOS) { /* End of pattern? */ *pathend = EOS; if (g_lstat(pathbuf, &sb, pglob)) return(0); if (((pglob->gl_flags & GLOB_MARK) && pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) || (S_ISLNK(sb.st_mode) && (g_stat(pathbuf, &sb, pglob) == 0) && S_ISDIR(sb.st_mode)))) { if (pathend >= pathlim) return (GLOB_ABORTED); *pathend++ = SEP; *pathend = EOS; } ++pglob->gl_matchc; return(globextend(pathbuf, pglob, limit)); } /* Find end of next segment, copy tentatively to pathend. */ q = pathend; p = pattern; while (*p != EOS && *p != SEP) { if (ismeta(*p)) anymeta = 1; if (q >= pathlim) return GLOB_ABORTED; *q++ = *p++; } if (!anymeta) { /* No expansion, do next segment. */ pathend = q; pattern = p; while (*pattern == SEP) { if (pathend >= pathlim) return GLOB_ABORTED; *pathend++ = *pattern++; } } else /* Need expansion, recurse. */ return(glob3(pathbuf, pathend, pathlim, pattern, p, pglob, limit)); } /* NOTREACHED */ } static int glob3(pathbuf, pathend, pathlim, pattern, restpattern, pglob, limit) Char *pathbuf, *pathend, *pathlim, *pattern, *restpattern; glob_t *pglob; size_t *limit; { struct dirent *dp; DIR *dirp; int error; char buf[MAXPATHLEN]; /* * The readdirfunc declaration can't be prototyped, because it is * assigned, below, to two functions which are prototyped in glob.h * and dirent.h as taking pointers to differently typed opaque * structures. */ struct dirent *(*readdirfunc) __P((void *)); _DIAGASSERT(pathbuf != NULL); _DIAGASSERT(pathend != NULL); _DIAGASSERT(pattern != NULL); _DIAGASSERT(restpattern != NULL); _DIAGASSERT(pglob != NULL); *pathend = EOS; errno = 0; if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { if (pglob->gl_errfunc) { if (g_Ctoc(pathbuf, buf, sizeof(buf))) return (GLOB_ABORTED); if (pglob->gl_errfunc(buf, errno) || pglob->gl_flags & GLOB_ERR) return (GLOB_ABORTED); } /* * Posix/XOpen: glob should return when it encounters a * directory that it cannot open or read * XXX: Should we ignore ENOTDIR and ENOENT though? * I think that Posix had in mind EPERM... */ if (pglob->gl_flags & GLOB_ERR) return (GLOB_ABORTED); return(0); } error = 0; /* Search directory for matching names. */ if (pglob->gl_flags & GLOB_ALTDIRFUNC) readdirfunc = pglob->gl_readdir; else readdirfunc = (struct dirent *(*)__P((void *))) readdir; while ((dp = (*readdirfunc)(dirp)) != NULL) { unsigned char *sc; Char *dc; /* Initial DOT must be matched literally. */ if (dp->d_name[0] == DOT && *pattern != DOT) continue; /* * The resulting string contains EOS, so we can * use the pathlim character, if it is the nul */ for (sc = (unsigned char *) dp->d_name, dc = pathend; dc <= pathlim && (*dc++ = *sc++) != EOS;) continue; /* * Have we filled the buffer without seeing EOS? */ if (dc > pathlim && *pathlim != EOS) { /* * Abort when requested by caller, otherwise * reset pathend back to last SEP and continue * with next dir entry. */ if (pglob->gl_flags & GLOB_ERR) { error = GLOB_ABORTED; break; } else { *pathend = EOS; continue; } } if (!match(pathend, pattern, restpattern)) { *pathend = EOS; continue; } error = glob2(pathbuf, --dc, pathlim, restpattern, pglob, limit); if (error) break; } if (pglob->gl_flags & GLOB_ALTDIRFUNC) (*pglob->gl_closedir)(dirp); else closedir(dirp); /* * Again Posix X/Open issue with regards to error handling. */ if ((error || errno) && (pglob->gl_flags & GLOB_ERR)) return (GLOB_ABORTED); return(error); } /* * Extend the gl_pathv member of a glob_t structure to accomodate a new item, * add the new item, and update gl_pathc. * * This assumes the BSD realloc, which only copies the block when its size * crosses a power-of-two boundary; for v7 realloc, this would cause quadratic * behavior. * * Return 0 if new item added, error code if memory couldn't be allocated. * * Invariant of the glob_t structure: * Either gl_pathc is zero and gl_pathv is NULL; or gl_pathc > 0 and * gl_pathv points to (gl_offs + gl_pathc + 1) items. */ static int globextend(path, pglob, limit) const Char *path; glob_t *pglob; size_t *limit; { char **pathv; int i; size_t newsize, len; char *copy; const Char *p; _DIAGASSERT(path != NULL); _DIAGASSERT(pglob != NULL); newsize = sizeof(*pathv) * (2 + pglob->gl_pathc + pglob->gl_offs); pathv = pglob->gl_pathv ? realloc(pglob->gl_pathv, newsize) : malloc(newsize); if (pathv == NULL) return(GLOB_NOSPACE); if (pglob->gl_pathv == NULL && pglob->gl_offs > 0) { /* first time around -- clear initial gl_offs items */ pathv += pglob->gl_offs; for (i = pglob->gl_offs; --i >= 0; ) *--pathv = NULL; } pglob->gl_pathv = pathv; for (p = path; *p++;) continue; len = (size_t)(p - path); *limit += len; if ((copy = malloc(len)) != NULL) { if (g_Ctoc(path, copy, len)) { free(copy); return(GLOB_ABORTED); } pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; } pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; if ((pglob->gl_flags & GLOB_LIMIT) && (newsize + *limit) >= ARG_MAX) { errno = 0; return(GLOB_NOSPACE); } return(copy == NULL ? GLOB_NOSPACE : 0); } /* * pattern matching function for filenames. Each occurrence of the * * pattern causes a recursion level. */ static int match(name, pat, patend) Char *name, *pat, *patend; { int ok, negate_range; Char c, k; _DIAGASSERT(name != NULL); _DIAGASSERT(pat != NULL); _DIAGASSERT(patend != NULL); while (pat < patend) { c = *pat++; switch (c & M_MASK) { case M_ALL: if (pat == patend) return(1); do if (match(name, pat, patend)) return(1); while (*name++ != EOS); return(0); case M_ONE: if (*name++ == EOS) return(0); break; case M_SET: ok = 0; if ((k = *name++) == EOS) return(0); if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) ++pat; while (((c = *pat++) & M_MASK) != M_END) if ((*pat & M_MASK) == M_RNG) { if (c <= k && k <= pat[1]) ok = 1; pat += 2; } else if (c == k) ok = 1; if (ok == negate_range) return(0); break; default: if (*name++ != c) return(0); break; } } return(*name == EOS); } /* Free allocated data belonging to a glob_t structure. */ void globfree(pglob) glob_t *pglob; { int i; char **pp; _DIAGASSERT(pglob != NULL); if (pglob->gl_pathv != NULL) { pp = pglob->gl_pathv + pglob->gl_offs; for (i = pglob->gl_pathc; i--; ++pp) if (*pp) free(*pp); free(pglob->gl_pathv); pglob->gl_pathv = NULL; pglob->gl_pathc = 0; } } static DIR * g_opendir(str, pglob) Char *str; glob_t *pglob; { char buf[MAXPATHLEN]; _DIAGASSERT(str != NULL); _DIAGASSERT(pglob != NULL); if (!*str) (void)strlcpy(buf, ".", sizeof(buf)); else { if (g_Ctoc(str, buf, sizeof(buf))) return NULL; } if (pglob->gl_flags & GLOB_ALTDIRFUNC) return((*pglob->gl_opendir)(buf)); return(opendir(buf)); } static int g_lstat(fn, sb, pglob) Char *fn; struct stat *sb; glob_t *pglob; { char buf[MAXPATHLEN]; _DIAGASSERT(fn != NULL); _DIAGASSERT(sb != NULL); _DIAGASSERT(pglob != NULL); if (g_Ctoc(fn, buf, sizeof(buf))) return -1; if (pglob->gl_flags & GLOB_ALTDIRFUNC) return((*pglob->gl_lstat)(buf, sb)); return(lstat(buf, sb)); } static int g_stat(fn, sb, pglob) Char *fn; struct stat *sb; glob_t *pglob; { char buf[MAXPATHLEN]; _DIAGASSERT(fn != NULL); _DIAGASSERT(sb != NULL); _DIAGASSERT(pglob != NULL); if (g_Ctoc(fn, buf, sizeof(buf))) return -1; if (pglob->gl_flags & GLOB_ALTDIRFUNC) return((*pglob->gl_stat)(buf, sb)); return(stat(buf, sb)); } static Char * g_strchr(str, ch) const Char *str; int ch; { _DIAGASSERT(str != NULL); do { if (*str == ch) /* LINTED this is libc's definition! */ return (Char *)str; } while (*str++); return NULL; } static int g_Ctoc(str, buf, len) const Char *str; char *buf; size_t len; { char *dc; _DIAGASSERT(str != NULL); _DIAGASSERT(buf != NULL); if (len == 0) return 1; for (dc = buf; len && (*dc++ = *str++) != EOS; len--) continue; return len == 0; } #ifdef DEBUG static void qprintf(str, s) const char *str; Char *s; { Char *p; _DIAGASSERT(str != NULL); _DIAGASSERT(s != NULL); (void)printf("%s:\n", str); for (p = s; *p; p++) (void)printf("%c", CHAR(*p)); (void)printf("\n"); for (p = s; *p; p++) (void)printf("%c", *p & M_PROTECT ? '"' : ' '); (void)printf("\n"); for (p = s; *p; p++) (void)printf("%c", ismeta(*p) ? '_' : ' '); (void)printf("\n"); } #endif libnbcompat-20180822/sha1.c0000644000175000017500000002302613355271171015514 0ustar jgoerzenjgoerzen/* $NetBSD: sha1.c,v 1.8 2008/10/06 12:36:20 joerg Exp $ */ /* $OpenBSD: sha1.c,v 1.9 1997/07/23 21:12:32 kstailey Exp $ */ /* * SHA-1 in C * By Steve Reid * 100% Public Domain * * Test Vectors (from FIPS PUB 180-1) * "abc" * A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" * 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 * A million repetitions of "a" * 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F */ #define SHA1HANDSOFF /* Copies data before messing with it. */ #if defined(_KERNEL) || defined(_STANDALONE) #include #include #include #define _DIAGASSERT(x) (void)0 #else #if 0 #include "namespace.h" #endif #include #include #include #include #include #endif #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_SHA1_H /* * XXX Kludge until there is resolution regarding mem*() functions * XXX in the kernel. */ #if defined(_KERNEL) || defined(_STANDALONE) #define memcpy(s, d, l) bcopy((d), (s), (l)) #endif #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) /* * blk0() and blk() perform the initial expand. * I got the idea of expanding during the round function from SSLeay */ #if BYTE_ORDER == LITTLE_ENDIAN # define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ |(rol(block->l[i],8)&0x00FF00FF)) #else # define blk0(i) block->l[i] #endif #define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ ^block->l[(i+2)&15]^block->l[i&15],1)) /* * (R0+R1), R2, R3, R4 are the different operations (rounds) used in SHA1 */ #define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); #define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); #define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); #define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); #define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); #if 0 #if !defined(_KERNEL) && defined(__weak_alias) __weak_alias(SHA1Transform,_SHA1Transform) __weak_alias(SHA1Init,_SHA1Init) __weak_alias(SHA1Update,_SHA1Update) __weak_alias(SHA1Final,_SHA1Final) #endif #endif typedef union { unsigned char c[64]; unsigned int l[16]; } CHAR64LONG16; /* old sparc64 gcc could not compile this */ #undef SPARC64_GCC_WORKAROUND #if defined(__sparc64__) && defined(__GNUC__) && __GNUC__ < 3 #define SPARC64_GCC_WORKAROUND #endif #ifdef SPARC64_GCC_WORKAROUND void do_R01(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *); void do_R2(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *); void do_R3(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *); void do_R4(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *); #define nR0(v,w,x,y,z,i) R0(*v,*w,*x,*y,*z,i) #define nR1(v,w,x,y,z,i) R1(*v,*w,*x,*y,*z,i) #define nR2(v,w,x,y,z,i) R2(*v,*w,*x,*y,*z,i) #define nR3(v,w,x,y,z,i) R3(*v,*w,*x,*y,*z,i) #define nR4(v,w,x,y,z,i) R4(*v,*w,*x,*y,*z,i) void do_R01(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block) { nR0(a,b,c,d,e, 0); nR0(e,a,b,c,d, 1); nR0(d,e,a,b,c, 2); nR0(c,d,e,a,b, 3); nR0(b,c,d,e,a, 4); nR0(a,b,c,d,e, 5); nR0(e,a,b,c,d, 6); nR0(d,e,a,b,c, 7); nR0(c,d,e,a,b, 8); nR0(b,c,d,e,a, 9); nR0(a,b,c,d,e,10); nR0(e,a,b,c,d,11); nR0(d,e,a,b,c,12); nR0(c,d,e,a,b,13); nR0(b,c,d,e,a,14); nR0(a,b,c,d,e,15); nR1(e,a,b,c,d,16); nR1(d,e,a,b,c,17); nR1(c,d,e,a,b,18); nR1(b,c,d,e,a,19); } void do_R2(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block) { nR2(a,b,c,d,e,20); nR2(e,a,b,c,d,21); nR2(d,e,a,b,c,22); nR2(c,d,e,a,b,23); nR2(b,c,d,e,a,24); nR2(a,b,c,d,e,25); nR2(e,a,b,c,d,26); nR2(d,e,a,b,c,27); nR2(c,d,e,a,b,28); nR2(b,c,d,e,a,29); nR2(a,b,c,d,e,30); nR2(e,a,b,c,d,31); nR2(d,e,a,b,c,32); nR2(c,d,e,a,b,33); nR2(b,c,d,e,a,34); nR2(a,b,c,d,e,35); nR2(e,a,b,c,d,36); nR2(d,e,a,b,c,37); nR2(c,d,e,a,b,38); nR2(b,c,d,e,a,39); } void do_R3(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block) { nR3(a,b,c,d,e,40); nR3(e,a,b,c,d,41); nR3(d,e,a,b,c,42); nR3(c,d,e,a,b,43); nR3(b,c,d,e,a,44); nR3(a,b,c,d,e,45); nR3(e,a,b,c,d,46); nR3(d,e,a,b,c,47); nR3(c,d,e,a,b,48); nR3(b,c,d,e,a,49); nR3(a,b,c,d,e,50); nR3(e,a,b,c,d,51); nR3(d,e,a,b,c,52); nR3(c,d,e,a,b,53); nR3(b,c,d,e,a,54); nR3(a,b,c,d,e,55); nR3(e,a,b,c,d,56); nR3(d,e,a,b,c,57); nR3(c,d,e,a,b,58); nR3(b,c,d,e,a,59); } void do_R4(uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d, uint32_t *e, CHAR64LONG16 *block) { nR4(a,b,c,d,e,60); nR4(e,a,b,c,d,61); nR4(d,e,a,b,c,62); nR4(c,d,e,a,b,63); nR4(b,c,d,e,a,64); nR4(a,b,c,d,e,65); nR4(e,a,b,c,d,66); nR4(d,e,a,b,c,67); nR4(c,d,e,a,b,68); nR4(b,c,d,e,a,69); nR4(a,b,c,d,e,70); nR4(e,a,b,c,d,71); nR4(d,e,a,b,c,72); nR4(c,d,e,a,b,73); nR4(b,c,d,e,a,74); nR4(a,b,c,d,e,75); nR4(e,a,b,c,d,76); nR4(d,e,a,b,c,77); nR4(c,d,e,a,b,78); nR4(b,c,d,e,a,79); } #endif /* * Hash a single 512-bit block. This is the core of the algorithm. */ void SHA1Transform(state, buffer) uint32_t state[5]; const unsigned char buffer[64]; { uint32_t a, b, c, d, e; CHAR64LONG16 *block; #ifdef SHA1HANDSOFF CHAR64LONG16 workspace; #endif _DIAGASSERT(buffer != 0); _DIAGASSERT(state != 0); #ifdef SHA1HANDSOFF block = &workspace; (void)memcpy(block, buffer, 64); #else block = (CHAR64LONG16 *)(void *)buffer; #endif /* Copy context->state[] to working vars */ a = state[0]; b = state[1]; c = state[2]; d = state[3]; e = state[4]; #ifdef SPARC64_GCC_WORKAROUND do_R01(&a, &b, &c, &d, &e, block); do_R2(&a, &b, &c, &d, &e, block); do_R3(&a, &b, &c, &d, &e, block); do_R4(&a, &b, &c, &d, &e, block); #else /* 4 rounds of 20 operations each. Loop unrolled. */ R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3); R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7); R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11); R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15); R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19); R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23); R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27); R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31); R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35); R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39); R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43); R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47); R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51); R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55); R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59); R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63); R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67); R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71); R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75); R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79); #endif /* Add the working vars back into context.state[] */ state[0] += a; state[1] += b; state[2] += c; state[3] += d; state[4] += e; /* Wipe variables */ a = b = c = d = e = 0; } /* * SHA1Init - Initialize new context */ void SHA1Init(context) SHA1_CTX *context; { _DIAGASSERT(context != 0); /* SHA1 initialization constants */ context->state[0] = 0x67452301; context->state[1] = 0xEFCDAB89; context->state[2] = 0x98BADCFE; context->state[3] = 0x10325476; context->state[4] = 0xC3D2E1F0; context->count[0] = context->count[1] = 0; } /* * Run your data through this. */ void SHA1Update(context, data, len) SHA1_CTX *context; const unsigned char *data; unsigned int len; { unsigned int i, j; _DIAGASSERT(context != 0); _DIAGASSERT(data != 0); j = context->count[0]; if ((context->count[0] += len << 3) < j) context->count[1] += (len>>29)+1; j = (j >> 3) & 63; if ((j + len) > 63) { (void)memcpy(&context->buffer[j], data, (i = 64-j)); SHA1Transform(context->state, context->buffer); for ( ; i + 63 < len; i += 64) SHA1Transform(context->state, &data[i]); j = 0; } else { i = 0; } (void)memcpy(&context->buffer[j], &data[i], len - i); } /* * Add padding and return the message digest. */ void SHA1Final(digest, context) unsigned char digest[20]; SHA1_CTX* context; { unsigned int i; unsigned char finalcount[8]; _DIAGASSERT(digest != 0); _DIAGASSERT(context != 0); for (i = 0; i < 8; i++) { finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)] >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */ } SHA1Update(context, (unsigned char *)"\200", 1); while ((context->count[0] & 504) != 448) SHA1Update(context, (unsigned char *)"\0", 1); SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */ if (digest) { for (i = 0; i < 20; i++) digest[i] = (unsigned char) ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255); } } #endif /* HAVE_SHA1_H */ libnbcompat-20180822/regfree.c0000644000175000017500000001147013355271171016277 0ustar jgoerzenjgoerzen/* $NetBSD: regfree.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regfree.c 8.3 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regfree.c 8.3 (Berkeley) 3/20/94 */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regfree.c 8.3 (Berkeley) 3/20/94"; #else __RCSID("$NetBSD: regfree.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(regfree,_regfree) #endif #endif #include "private/utils.h" #include "private/regex2.h" /* - regfree - free everything = extern void regfree(regex_t *); */ void regfree(preg) regex_t *preg; { struct re_guts *g; _DIAGASSERT(preg != NULL); _DIAGASSERT(preg->re_magic == MAGIC1); if (preg->re_magic != MAGIC1) /* oops */ return; /* nice to complain, but hard */ g = preg->re_g; if (g == NULL || g->magic != MAGIC2) /* oops again */ return; preg->re_magic = 0; /* mark it invalid */ g->magic = 0; /* mark it invalid */ if (g->strip != NULL) free(g->strip); if (g->sets != NULL) free(g->sets); if (g->setbits != NULL) free(g->setbits); if (g->must != NULL) free(g->must); free(g); } libnbcompat-20180822/mdXhl.c0000644000175000017500000000410213355271171015726 0ustar jgoerzenjgoerzen/* $NetBSD: mdXhl.c,v 1.2 2008/10/06 12:36:20 joerg Exp $ */ /* * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * * from FreeBSD Id: mdXhl.c,v 1.8 1996/10/25 06:48:12 bde Exp */ /* * Modifed April 29, 1997 by Jason R. Thorpe */ #include #include #include #if HAVE_FCNTL_H #include #endif #if HAVE_ERRNO_H #include #endif #include #include #include #define CONCAT(x,y) __CONCAT(x,y) #define MDNAME(x) CONCAT(MDALGORITHM,x) char * MDNAME(End)(ctx, buf) MDNAME(_CTX) *ctx; char *buf; { int i; unsigned char digest[16]; static const char hex[]="0123456789abcdef"; _DIAGASSERT(ctx != 0); if (buf == NULL) buf = malloc(33); if (buf == NULL) return (NULL); MDNAME(Final)(digest, ctx); for (i = 0; i < 16; i++) { buf[i+i] = hex[(uint32_t)digest[i] >> 4]; buf[i+i+1] = hex[digest[i] & 0x0f]; } buf[i+i] = '\0'; return (buf); } char * MDNAME(File)(filename, buf) const char *filename; char *buf; { unsigned char buffer[BUFSIZ]; MDNAME(_CTX) ctx; int f, i, j; _DIAGASSERT(filename != 0); /* buf may be NULL */ MDNAME(Init)(&ctx); f = open(filename, O_RDONLY, 0666); if (f < 0) return NULL; while ((i = read(f, buffer, sizeof(buffer))) > 0) MDNAME(Update)(&ctx, buffer, (unsigned int)i); j = errno; close(f); errno = j; if (i < 0) return NULL; return (MDNAME(End)(&ctx, buf)); } char * MDNAME(Data)(data, len, buf) const unsigned char *data; unsigned int len; char *buf; { MDNAME(_CTX) ctx; _DIAGASSERT(data != 0); MDNAME(Init)(&ctx); MDNAME(Update)(&ctx, data, len); return (MDNAME(End)(&ctx, buf)); } libnbcompat-20180822/aclocal.m40000644000175000017500000001040313355271171016347 0ustar jgoerzenjgoerzendnl $NetBSD: aclocal.m4,v 1.4 2006/03/01 16:47:54 joerg Exp $ dnl dnl dnl AC_MSG_TRY_COMPILE dnl dnl Written by Luke Mewburn dnl dnl Usage: dnl AC_MSG_TRY_COMPILE(Message, CacheVar, Includes, Code, dnl ActionPass [,ActionFail] ) dnl dnl effectively does: dnl AC_CACHE_CHECK(Message, CacheVar, dnl AC_TRY_COMPILE(Includes, Code, CacheVar = yes, CacheVar = no) dnl if CacheVar == yes dnl AC_MESSAGE_RESULT(yes) dnl ActionPass dnl else dnl AC_MESSAGE_RESULT(no) dnl ActionFail dnl ) dnl AC_DEFUN(AC_MSG_TRY_COMPILE, [ AC_CACHE_CHECK($1, $2, [ AC_TRY_COMPILE([ $3 ], [ $4; ], [ $2=yes ], [ $2=no ]) ]) if test "x[$]$2" = "xyes"; then $5 else $6 : fi ]) dnl dnl AC_MSG_TRY_LINK dnl dnl Usage: dnl AC_MSG_TRY_LINK(Message, CacheVar, Includes, Code, dnl ActionPass [,ActionFail] ) dnl dnl as AC_MSG_TRY_COMPILE, but uses AC_TRY_LINK instead of AC_TRY_COMPILE dnl AC_DEFUN(AC_MSG_TRY_LINK, [ AC_CACHE_CHECK($1, $2, [ AC_TRY_LINK([ $3 ], [ $4; ], [ $2=yes ], [ $2=no ]) ]) if test "x[$]$2" = "xyes"; then $5 else $6 : fi ]) dnl dnl AC_LIBRARY_NET: #Id: net.m4,v 1.5 1997/11/09 21:36:54 jhawk Exp # dnl dnl Written by John Hawkinson . This code is in the Public dnl Domain. dnl dnl This test is for network applications that need socket() and dnl gethostbyname() -ish functions. Under Solaris, those applications need to dnl link with "-lsocket -lnsl". Under IRIX, they should *not* link with dnl "-lsocket" because libsocket.a breaks a number of things (for instance: dnl gethostbyname() under IRIX 5.2, and snoop sockets under most versions of dnl IRIX). dnl dnl Unfortunately, many application developers are not aware of this, and dnl mistakenly write tests that cause -lsocket to be used under IRIX. It is dnl also easy to write tests that cause -lnsl to be used under operating dnl systems where neither are necessary (or useful), such as SunOS 4.1.4, which dnl uses -lnsl for TLI. dnl dnl This test exists so that every application developer does not test this in dnl a different, and subtly broken fashion. dnl dnl It has been argued that this test should be broken up into two separate dnl tests, one for the resolver libraries, and one for the libraries necessary dnl for using Sockets API. Unfortunately, the two are carefully intertwined and dnl allowing the autoconf user to use them independently potentially results in dnl unfortunate ordering dependencies -- as such, such component macros would dnl have to carefully use indirection and be aware if the other components were dnl executed. Since other autoconf macros do not go to this trouble, and almost dnl no applications use sockets without the resolver, this complexity has not dnl been implemented. dnl dnl The check for libresolv is in case you are attempting to link statically dnl and happen to have a libresolv.a lying around (and no libnsl.a). dnl AC_DEFUN(AC_LIBRARY_NET, [ # Most operating systems have gethostbyname() in the default searched # libraries (i.e. libc): AC_CHECK_FUNC(gethostbyname, , # Some OSes (eg. Solaris) place it in libnsl: AC_CHECK_LIB(nsl, gethostbyname, , # Some strange OSes (SINIX) have it in libsocket: AC_CHECK_LIB(socket, gethostbyname, , # Unfortunately libsocket sometimes depends on libnsl. # AC_CHECK_LIB's API is essentially broken so the following # ugliness is necessary: AC_CHECK_LIB(socket, gethostbyname, LIBS="-lsocket -lnsl $LIBS", AC_CHECK_LIB(resolv, gethostbyname), -lnsl) ) ) ) AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) ]) dnl From heimdal sources dnl Id: c-attribute.m4,v 1.5 2004/08/26 12:35:41 joda Exp dnl dnl dnl Test for __attribute__ dnl AC_DEFUN([AC_C___ATTRIBUTE__], [ AC_MSG_CHECKING(for __attribute__) AC_CACHE_VAL(ac_cv___attribute__, [ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include static void foo(void) __attribute__ ((noreturn)); static void foo(void) { exit(1); } ]])], [ac_cv___attribute__=yes], [ac_cv___attribute__=no])]) if test "$ac_cv___attribute__" = "yes"; then AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__]) fi AC_MSG_RESULT($ac_cv___attribute__) ]) libnbcompat-20180822/unvis.c0000644000175000017500000001614313355271171016026 0ustar jgoerzenjgoerzen/* $NetBSD: unvis.c,v 1.13 2015/09/03 09:05:54 joerg Exp $ */ /*- * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: unvis.c,v 1.13 2015/09/03 09:05:54 joerg Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #define __LIBC12_SOURCE__ #endif #if 0 #include "namespace.h" #endif #include #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(strunvis,_strunvis) __weak_alias(unvis,_unvis) #endif #endif #if 0 #ifdef __warn_references __warn_references(unvis, "warning: reference to compatibility unvis(); include for correct reference") #endif #endif /* * decode driven by state machine */ #define S_GROUND 0 /* haven't seen escape char */ #define S_START 1 /* start decoding special sequence */ #define S_META 2 /* metachar started (M) */ #define S_META1 3 /* metachar more, regular char (-) */ #define S_CTRL 4 /* control char started (^) */ #define S_OCTAL2 5 /* octal digit 2 */ #define S_OCTAL3 6 /* octal digit 3 */ #define S_HEX1 7 /* hex digit */ #define S_HEX2 8 /* hex digit 2 */ #define isoctal(c) (((unsigned char)(c)) >= '0' && ((unsigned char)(c)) <= '7') #define xtod(c) (isdigit(c) ? (c - '0') : ((tolower(c) - 'a') + 10)) /* * unvis - decode characters previously encoded by vis */ static int __nbcompat_unvis13(char *cp, int c, int *astate, int flag) { _DIAGASSERT(cp != NULL); _DIAGASSERT(astate != NULL); if (flag & UNVIS_END) { if (*astate == S_OCTAL2 || *astate == S_OCTAL3 || *astate == S_HEX2) { *astate = S_GROUND; return (UNVIS_VALID); } return (*astate == S_GROUND ? UNVIS_NOCHAR : UNVIS_SYNBAD); } switch (*astate) { case S_GROUND: *cp = 0; if (c == '\\') { *astate = S_START; return (0); } if ((flag & VIS_HTTPSTYLE) && c == '%') { *astate = S_HEX1; return (0); } *cp = c; return (UNVIS_VALID); case S_START: switch(c) { case '\\': *cp = c; *astate = S_GROUND; return (UNVIS_VALID); case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': *cp = (c - '0'); *astate = S_OCTAL2; return (0); case 'M': *cp = (char)0200; *astate = S_META; return (0); case '^': *astate = S_CTRL; return (0); case 'n': *cp = '\n'; *astate = S_GROUND; return (UNVIS_VALID); case 'r': *cp = '\r'; *astate = S_GROUND; return (UNVIS_VALID); case 'b': *cp = '\b'; *astate = S_GROUND; return (UNVIS_VALID); case 'a': *cp = '\007'; *astate = S_GROUND; return (UNVIS_VALID); case 'v': *cp = '\v'; *astate = S_GROUND; return (UNVIS_VALID); case 't': *cp = '\t'; *astate = S_GROUND; return (UNVIS_VALID); case 'f': *cp = '\f'; *astate = S_GROUND; return (UNVIS_VALID); case 's': *cp = ' '; *astate = S_GROUND; return (UNVIS_VALID); case 'E': *cp = '\033'; *astate = S_GROUND; return (UNVIS_VALID); case '\n': /* * hidden newline */ *astate = S_GROUND; return (UNVIS_NOCHAR); case '$': /* * hidden marker */ *astate = S_GROUND; return (UNVIS_NOCHAR); } *astate = S_GROUND; return (UNVIS_SYNBAD); case S_META: if (c == '-') *astate = S_META1; else if (c == '^') *astate = S_CTRL; else { *astate = S_GROUND; return (UNVIS_SYNBAD); } return (0); case S_META1: *astate = S_GROUND; *cp |= c; return (UNVIS_VALID); case S_CTRL: if (c == '?') *cp |= 0177; else *cp |= c & 037; *astate = S_GROUND; return (UNVIS_VALID); case S_OCTAL2: /* second possible octal digit */ if (isoctal(c)) { /* * yes - and maybe a third */ *cp = (*cp << 3) + (c - '0'); *astate = S_OCTAL3; return (0); } /* * no - done with current sequence, push back passed char */ *astate = S_GROUND; return (UNVIS_VALIDPUSH); case S_OCTAL3: /* third possible octal digit */ *astate = S_GROUND; if (isoctal(c)) { *cp = (*cp << 3) + (c - '0'); return (UNVIS_VALID); } /* * we were done, push back passed char */ return (UNVIS_VALIDPUSH); case S_HEX1: if (isxdigit(c)) { *cp = xtod(c); *astate = S_HEX2; return (0); } /* * no - done with current sequence, push back passed char */ *astate = S_GROUND; return (UNVIS_VALIDPUSH); case S_HEX2: *astate = S_GROUND; if (isxdigit(c)) { *cp = xtod(c) | (*cp << 4); return (UNVIS_VALID); } return (UNVIS_VALIDPUSH); default: /* * decoder in unknown state - (probably uninitialized) */ *astate = S_GROUND; return (UNVIS_SYNBAD); } } int unvis(char *cp, int c, int *astate, int flag) { return __nbcompat_unvis13(cp, (int)c, astate, flag); } /* * strunvis - decode src into dst * * Number of chars decoded into dst is returned, -1 on error. * Dst is null terminated. */ int strunvisx(char *dst, const char *src, int flag) { char c; char *start = dst; int state = 0; _DIAGASSERT(src != NULL); _DIAGASSERT(dst != NULL); while ((c = *src++) != '\0') { again: switch (__nbcompat_unvis13(dst, c, &state, flag)) { case UNVIS_VALID: dst++; break; case UNVIS_VALIDPUSH: dst++; goto again; case 0: case UNVIS_NOCHAR: break; default: return (-1); } } if (__nbcompat_unvis13(dst, c, &state, UNVIS_END) == UNVIS_VALID) dst++; *dst = '\0'; return (dst - start); } int strunvis(char *dst, const char *src) { return strunvisx(dst, src, 0); } libnbcompat-20180822/config.guess0000755000175000017500000012763713355271171017051 0ustar jgoerzenjgoerzen#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. timestamp='2009-12-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libnbcompat-20180822/db/0000755000175000017500000000000013355271171015076 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/mpool/0000755000175000017500000000000013355271171016224 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/mpool/mpool.c0000644000175000017500000002554413355271171017530 0ustar jgoerzenjgoerzen/* $NetBSD: mpool.c,v 1.6 2013/09/08 16:24:43 ryoon Exp $ */ /* NetBSD: mpool.c,v 1.18 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: mpool.c,v 1.6 2013/09/08 16:24:43 ryoon Exp $"); #include #include #include #include #include #include #include #include #define __MPOOLINTERFACE_PRIVATE #include #ifndef EFTYPE #define EFTYPE EINVAL #endif #if 0 #ifdef __weak_alias __weak_alias(mpool_close,_mpool_close) __weak_alias(mpool_filter,_mpool_filter) __weak_alias(mpool_get,_mpool_get) __weak_alias(mpool_new,_mpool_new) __weak_alias(mpool_open,_mpool_open) __weak_alias(mpool_put,_mpool_put) __weak_alias(mpool_sync,_mpool_sync) #endif #endif static BKT *mpool_bkt(MPOOL *); static BKT *mpool_look(MPOOL *, pgno_t); static int mpool_write(MPOOL *, BKT *); #ifdef BROKEN_PREAD #include "../pread.c" #endif #ifdef BROKEN_PWRITE #include "../pwrite.c" #endif /* * mpool_open -- * Initialize a memory pool. */ /*ARGSUSED*/ MPOOL * mpool_open(void *key, int fd, pgno_t pagesize, pgno_t maxcache) { struct stat sb; MPOOL *mp; int entry; /* * Get information about the file. * * XXX * We don't currently handle pipes, although we should. */ if (fstat(fd, &sb)) return (NULL); if (!S_ISREG(sb.st_mode)) { #if defined(__MINT__) errno = EACCES; #else errno = ESPIPE; #endif return (NULL); } /* Allocate and initialize the MPOOL cookie. */ if ((mp = (MPOOL *)calloc(1, sizeof(MPOOL))) == NULL) return (NULL); CIRCLEQ_INIT(&mp->lqh); for (entry = 0; entry < HASHSIZE; ++entry) CIRCLEQ_INIT(&mp->hqh[entry]); mp->maxcache = maxcache; mp->npages = (pgno_t)(sb.st_size / pagesize); mp->pagesize = pagesize; mp->fd = fd; return (mp); } /* * mpool_filter -- * Initialize input/output filters. */ void mpool_filter(MPOOL *mp, void (*pgin)(void *, pgno_t, void *), void (*pgout)(void *, pgno_t, void *), void *pgcookie) { mp->pgin = pgin; mp->pgout = pgout; mp->pgcookie = pgcookie; } /* * mpool_new -- * Get a new page of memory. */ void * mpool_new( MPOOL *mp, pgno_t *pgnoaddr) { struct _hqh *head; BKT *bp; if (mp->npages == MAX_PAGE_NUMBER) { (void)fprintf(stderr, "mpool_new: page allocation overflow.\n"); abort(); } #ifdef STATISTICS ++mp->pagenew; #endif /* * Get a BKT from the cache. Assign a new page number, attach * it to the head of the hash chain, the tail of the lru chain, * and return. */ if ((bp = mpool_bkt(mp)) == NULL) return (NULL); *pgnoaddr = bp->pgno = mp->npages++; bp->flags = MPOOL_PINNED; head = &mp->hqh[HASHKEY(bp->pgno)]; CIRCLEQ_INSERT_HEAD(head, bp, hq); CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q); return (bp->page); } /* * mpool_get * Get a page. */ /*ARGSUSED*/ void * mpool_get(MPOOL *mp, pgno_t pgno, u_int flags) { struct _hqh *head; BKT *bp; off_t off; ssize_t nr; /* Check for attempt to retrieve a non-existent page. */ if (pgno >= mp->npages) { errno = EINVAL; return (NULL); } #ifdef STATISTICS ++mp->pageget; #endif /* Check for a page that is cached. */ if ((bp = mpool_look(mp, pgno)) != NULL) { #ifdef DEBUG if (bp->flags & MPOOL_PINNED) { (void)fprintf(stderr, "mpool_get: page %d already pinned\n", bp->pgno); abort(); } #endif /* * Move the page to the head of the hash chain and the tail * of the lru chain. */ head = &mp->hqh[HASHKEY(bp->pgno)]; CIRCLEQ_REMOVE(head, bp, hq); CIRCLEQ_INSERT_HEAD(head, bp, hq); CIRCLEQ_REMOVE(&mp->lqh, bp, q); CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q); /* Return a pinned page. */ bp->flags |= MPOOL_PINNED; return (bp->page); } /* Get a page from the cache. */ if ((bp = mpool_bkt(mp)) == NULL) return (NULL); /* Read in the contents. */ #ifdef STATISTICS ++mp->pageread; #endif off = mp->pagesize * pgno; if ((nr = pread(mp->fd, bp->page, (size_t)mp->pagesize, off)) != (int)mp->pagesize) { if (nr >= 0) errno = EFTYPE; return (NULL); } /* Set the page number, pin the page. */ bp->pgno = pgno; bp->flags = MPOOL_PINNED; /* * Add the page to the head of the hash chain and the tail * of the lru chain. */ head = &mp->hqh[HASHKEY(bp->pgno)]; CIRCLEQ_INSERT_HEAD(head, bp, hq); CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q); /* Run through the user's filter. */ if (mp->pgin != NULL) (mp->pgin)(mp->pgcookie, bp->pgno, bp->page); return (bp->page); } /* * mpool_put * Return a page. */ /*ARGSUSED*/ int mpool_put(MPOOL *mp, void *page, u_int flags) { BKT *bp; #ifdef STATISTICS ++mp->pageput; #endif bp = (BKT *)(void *)((char *)page - sizeof(BKT)); #ifdef DEBUG if (!(bp->flags & MPOOL_PINNED)) { (void)fprintf(stderr, "mpool_put: page %d not pinned\n", bp->pgno); abort(); } #endif bp->flags &= ~MPOOL_PINNED; bp->flags |= flags & MPOOL_DIRTY; return (RET_SUCCESS); } /* * mpool_close * Close the buffer pool. */ int mpool_close(MPOOL *mp) { BKT *bp; /* Free up any space allocated to the lru pages. */ while ((bp = mp->lqh.cqh_first) != (void *)&mp->lqh) { CIRCLEQ_REMOVE(&mp->lqh, mp->lqh.cqh_first, q); free(bp); } /* Free the MPOOL cookie. */ free(mp); return (RET_SUCCESS); } /* * mpool_sync * Sync the pool to disk. */ int mpool_sync(MPOOL *mp) { BKT *bp; /* Walk the lru chain, flushing any dirty pages to disk. */ for (bp = mp->lqh.cqh_first; bp != (void *)&mp->lqh; bp = bp->q.cqe_next) if (bp->flags & MPOOL_DIRTY && mpool_write(mp, bp) == RET_ERROR) return (RET_ERROR); /* Sync the file descriptor. */ return (fsync(mp->fd) ? RET_ERROR : RET_SUCCESS); } /* * mpool_bkt * Get a page from the cache (or create one). */ static BKT * mpool_bkt(MPOOL *mp) { struct _hqh *head; BKT *bp; /* If under the max cached, always create a new page. */ if (mp->curcache < mp->maxcache) goto new; /* * If the cache is max'd out, walk the lru list for a buffer we * can flush. If we find one, write it (if necessary) and take it * off any lists. If we don't find anything we grow the cache anyway. * The cache never shrinks. */ for (bp = mp->lqh.cqh_first; bp != (void *)&mp->lqh; bp = bp->q.cqe_next) if (!(bp->flags & MPOOL_PINNED)) { /* Flush if dirty. */ if (bp->flags & MPOOL_DIRTY && mpool_write(mp, bp) == RET_ERROR) return (NULL); #ifdef STATISTICS ++mp->pageflush; #endif /* Remove from the hash and lru queues. */ head = &mp->hqh[HASHKEY(bp->pgno)]; CIRCLEQ_REMOVE(head, bp, hq); CIRCLEQ_REMOVE(&mp->lqh, bp, q); #ifdef DEBUG { void *spage = bp->page; (void)memset(bp, 0xff, (size_t)(sizeof(BKT) + mp->pagesize)); bp->page = spage; } #endif return (bp); } new: if ((bp = (BKT *)malloc((size_t)(sizeof(BKT) + mp->pagesize))) == NULL) return (NULL); #ifdef STATISTICS ++mp->pagealloc; #endif #if defined(DEBUG) || defined(PURIFY) (void)memset(bp, 0xff, (size_t)(sizeof(BKT) + mp->pagesize)); #endif bp->page = (char *)(void *)bp + sizeof(BKT); ++mp->curcache; return (bp); } /* * mpool_write * Write a page to disk. */ static int mpool_write(MPOOL *mp, BKT *bp) { off_t off; #ifdef STATISTICS ++mp->pagewrite; #endif /* Run through the user's filter. */ if (mp->pgout) (mp->pgout)(mp->pgcookie, bp->pgno, bp->page); off = mp->pagesize * bp->pgno; if (pwrite(mp->fd, bp->page, (size_t)mp->pagesize, off) != (int)mp->pagesize) return (RET_ERROR); /* * Re-run through the input filter since this page may soon be * accessed via the cache, and whatever the user's output filter * did may screw things up if we don't let the input filter * restore the in-core copy. */ if (mp->pgin) (mp->pgin)(mp->pgcookie, bp->pgno, bp->page); bp->flags &= ~MPOOL_DIRTY; return (RET_SUCCESS); } /* * mpool_look * Lookup a page in the cache. */ static BKT * mpool_look(MPOOL *mp, pgno_t pgno) { struct _hqh *head; BKT *bp; head = &mp->hqh[HASHKEY(pgno)]; for (bp = head->cqh_first; bp != (void *)head; bp = bp->hq.cqe_next) if (bp->pgno == pgno) { #ifdef STATISTICS ++mp->cachehit; #endif return (bp); } #ifdef STATISTICS ++mp->cachemiss; #endif return (NULL); } #ifdef STATISTICS /* * mpool_stat * Print out cache statistics. */ void mpool_stat(mp) MPOOL *mp; { BKT *bp; int cnt; const char *sep; (void)fprintf(stderr, "%lu pages in the file\n", (u_long)mp->npages); (void)fprintf(stderr, "page size %lu, cacheing %lu pages of %lu page max cache\n", (u_long)mp->pagesize, (u_long)mp->curcache, (u_long)mp->maxcache); (void)fprintf(stderr, "%lu page puts, %lu page gets, %lu page new\n", mp->pageput, mp->pageget, mp->pagenew); (void)fprintf(stderr, "%lu page allocs, %lu page flushes\n", mp->pagealloc, mp->pageflush); if (mp->cachehit + mp->cachemiss) (void)fprintf(stderr, "%.0f%% cache hit rate (%lu hits, %lu misses)\n", ((double)mp->cachehit / (mp->cachehit + mp->cachemiss)) * 100, mp->cachehit, mp->cachemiss); (void)fprintf(stderr, "%lu page reads, %lu page writes\n", mp->pageread, mp->pagewrite); sep = ""; cnt = 0; for (bp = mp->lqh.cqh_first; bp != (void *)&mp->lqh; bp = bp->q.cqe_next) { (void)fprintf(stderr, "%s%d", sep, bp->pgno); if (bp->flags & MPOOL_DIRTY) (void)fprintf(stderr, "d"); if (bp->flags & MPOOL_PINNED) (void)fprintf(stderr, "P"); if (++cnt == 10) { sep = "\n"; cnt = 0; } else sep = ", "; } (void)fprintf(stderr, "\n"); } #endif libnbcompat-20180822/db/hash/0000755000175000017500000000000013355271171016021 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/hash/hash.h0000644000175000017500000002412113355271171017115 0ustar jgoerzenjgoerzen/* $NetBSD: hash.h,v 1.3 2010/02/27 16:27:00 joerg Exp $ */ /* NetBSD: hash.h,v 1.15 2008/08/26 21:18:38 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)hash.h 8.3 (Berkeley) 5/31/94 */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif /* Operations */ typedef enum { HASH_GET, HASH_PUT, HASH_PUTNEW, HASH_DELETE, HASH_FIRST, HASH_NEXT } ACTION; /* Buffer Management structures */ typedef struct _bufhead BUFHEAD; struct _bufhead { BUFHEAD *prev; /* LRU links */ BUFHEAD *next; /* LRU links */ BUFHEAD *ovfl; /* Overflow page buffer header */ uint32_t addr; /* Address of this page */ char *page; /* Actual page data */ char flags; #define BUF_MOD 0x0001 #define BUF_DISK 0x0002 #define BUF_BUCKET 0x0004 #define BUF_PIN 0x0008 }; #define IS_BUCKET(X) ((X) & BUF_BUCKET) typedef BUFHEAD **SEGMENT; /* Hash Table Information */ typedef struct hashhdr { /* Disk resident portion */ int32_t magic; /* Magic NO for hash tables */ int32_t version; /* Version ID */ uint32_t lorder; /* Byte Order */ int32_t bsize; /* Bucket/Page Size */ int32_t bshift; /* Bucket shift */ int32_t dsize; /* Directory Size */ int32_t ssize; /* Segment Size */ int32_t sshift; /* Segment shift */ int32_t ovfl_point; /* Where overflow pages are being * allocated */ int32_t last_freed; /* Last overflow page freed */ int32_t max_bucket; /* ID of Maximum bucket in use */ int32_t high_mask; /* Mask to modulo into entire table */ int32_t low_mask; /* Mask to modulo into lower half of * table */ int32_t ffactor; /* Fill factor */ int32_t nkeys; /* Number of keys in hash table */ int32_t hdrpages; /* Size of table header */ int32_t h_charkey; /* value of hash(CHARKEY) */ #define NCACHED 32 /* number of bit maps and spare * points */ int32_t spares[NCACHED];/* spare pages for overflow */ uint16_t bitmaps[NCACHED]; /* address of overflow page * bitmaps */ } HASHHDR; typedef struct htab { /* Memory resident data structure */ HASHHDR hdr; /* Header */ int nsegs; /* Number of allocated segments */ int exsegs; /* Number of extra allocated * segments */ uint32_t (*hash)(const void *, size_t); /* Hash function */ int flags; /* Flag values */ int fp; /* File pointer */ char *tmp_buf; /* Temporary Buffer for BIG data */ char *tmp_key; /* Temporary Buffer for BIG keys */ BUFHEAD *cpage; /* Current page */ int cbucket; /* Current bucket */ int cndx; /* Index of next item on cpage */ int err; /* Error Number -- for DBM * compatibility */ int new_file; /* Indicates if fd is backing store * or no */ int save_file; /* Indicates whether we need to flush * file at * exit */ uint32_t *mapp[NCACHED]; /* Pointers to page maps */ int nmaps; /* Initial number of bitmaps */ int nbufs; /* Number of buffers left to * allocate */ BUFHEAD bufhead; /* Header of buffer lru list */ SEGMENT *dir; /* Hash Bucket directory */ } HTAB; /* * Constants */ #define MAX_BSIZE 65536 /* 2^16 */ #define MIN_BUFFERS 6 #define MINHDRSIZE 512 #define DEF_BUFSIZE 65536 /* 64 K */ #define DEF_BUCKET_SIZE 4096 #define DEF_BUCKET_SHIFT 12 /* log2(BUCKET) */ #define DEF_SEGSIZE 256 #define DEF_SEGSIZE_SHIFT 8 /* log2(SEGSIZE) */ #define DEF_DIRSIZE 256 #define DEF_FFACTOR 65536 #define MIN_FFACTOR 4 #define SPLTMAX 8 #define CHARKEY "%$sniglet^&" #define NUMKEY 1038583 #define BYTE_SHIFT 3 #define INT_TO_BYTE 2 #define INT_BYTE_SHIFT 5 #define ALL_SET ((uint32_t)0xFFFFFFFF) #define ALL_CLEAR 0 #define PTROF(X) ((BUFHEAD *)(void *)((u_long)(X)&~0x3)) #define ISMOD(X) ((uint32_t)(u_long)(X)&0x1) #define DOMOD(X) ((X) = (char *)(void *)((u_long)(X)|0x1)) #define ISDISK(X) ((uint32_t)(u_long)(X)&0x2) #define DODISK(X) ((X) = (char *)(void *)((u_long)(X)|0x2)) #define BITS_PER_MAP 32 /* Given the address of the beginning of a big map, clear/set the nth bit */ #define CLRBIT(A, N) ((A)[(N)/BITS_PER_MAP] &= ~(1<<((N)%BITS_PER_MAP))) #define SETBIT(A, N) ((A)[(N)/BITS_PER_MAP] |= (1<<((N)%BITS_PER_MAP))) #define ISSET(A, N) ((A)[(N)/BITS_PER_MAP] & (1<<((N)%BITS_PER_MAP))) /* Overflow management */ /* * Overflow page numbers are allocated per split point. At each doubling of * the table, we can allocate extra pages. So, an overflow page number has * the top 5 bits indicate which split point and the lower 11 bits indicate * which page at that split point is indicated (pages within split points are * numberered starting with 1). */ #define SPLITSHIFT 11 #define SPLITMASK 0x7FF #define SPLITNUM(N) (((uint32_t)(N)) >> SPLITSHIFT) #define OPAGENUM(N) ((N) & SPLITMASK) #define OADDR_OF(S,O) ((uint32_t)((uint32_t)(S) << SPLITSHIFT) + (O)) #define BUCKET_TO_PAGE(B) \ (B) + hashp->HDRPAGES + \ ((B) ? hashp->SPARES[__log2((uint32_t)((B)+1))-1] : 0) #define OADDR_TO_PAGE(B) \ BUCKET_TO_PAGE ( (1 << SPLITNUM((B))) -1 ) + OPAGENUM((B)); /* * page.h contains a detailed description of the page format. * * Normally, keys and data are accessed from offset tables in the top of * each page which point to the beginning of the key and data. There are * four flag values which may be stored in these offset tables which indicate * the following: * * * OVFLPAGE Rather than a key data pair, this pair contains * the address of an overflow page. The format of * the pair is: * OVERFLOW_PAGE_NUMBER OVFLPAGE * * PARTIAL_KEY This must be the first key/data pair on a page * and implies that page contains only a partial key. * That is, the key is too big to fit on a single page * so it starts on this page and continues on the next. * The format of the page is: * KEY_OFF PARTIAL_KEY OVFL_PAGENO OVFLPAGE * * KEY_OFF -- offset of the beginning of the key * PARTIAL_KEY -- 1 * OVFL_PAGENO - page number of the next overflow page * OVFLPAGE -- 0 * * FULL_KEY This must be the first key/data pair on the page. It * is used in two cases. * * Case 1: * There is a complete key on the page but no data * (because it wouldn't fit). The next page contains * the data. * * Page format it: * KEY_OFF FULL_KEY OVFL_PAGENO OVFL_PAGE * * KEY_OFF -- offset of the beginning of the key * FULL_KEY -- 2 * OVFL_PAGENO - page number of the next overflow page * OVFLPAGE -- 0 * * Case 2: * This page contains no key, but part of a large * data field, which is continued on the next page. * * Page format it: * DATA_OFF FULL_KEY OVFL_PAGENO OVFL_PAGE * * KEY_OFF -- offset of the beginning of the data on * this page * FULL_KEY -- 2 * OVFL_PAGENO - page number of the next overflow page * OVFLPAGE -- 0 * * FULL_KEY_DATA * This must be the first key/data pair on the page. * There are two cases: * * Case 1: * This page contains a key and the beginning of the * data field, but the data field is continued on the * next page. * * Page format is: * KEY_OFF FULL_KEY_DATA OVFL_PAGENO DATA_OFF * * KEY_OFF -- offset of the beginning of the key * FULL_KEY_DATA -- 3 * OVFL_PAGENO - page number of the next overflow page * DATA_OFF -- offset of the beginning of the data * * Case 2: * This page contains the last page of a big data pair. * There is no key, only the tail end of the data * on this page. * * Page format is: * DATA_OFF FULL_KEY_DATA * * DATA_OFF -- offset of the beginning of the data on * this page * FULL_KEY_DATA -- 3 * OVFL_PAGENO - page number of the next overflow page * OVFLPAGE -- 0 * * OVFL_PAGENO and OVFLPAGE are optional (they are * not present if there is no next page). */ #define OVFLPAGE 0 #define PARTIAL_KEY 1 #define FULL_KEY 2 #define FULL_KEY_DATA 3 #define REAL_KEY 4 /* Short hands for accessing structure */ #undef BSIZE #undef BSHIFT #define BSIZE hdr.bsize #define BSHIFT hdr.bshift #define DSIZE hdr.dsize #define SGSIZE hdr.ssize #define SSHIFT hdr.sshift #define LORDER hdr.lorder #define OVFL_POINT hdr.ovfl_point #define LAST_FREED hdr.last_freed #define MAX_BUCKET hdr.max_bucket #define FFACTOR hdr.ffactor #define HIGH_MASK hdr.high_mask #define LOW_MASK hdr.low_mask #define NKEYS hdr.nkeys #define HDRPAGES hdr.hdrpages #define SPARES hdr.spares #define BITMAPS hdr.bitmaps #define VERSION hdr.version #define MAGIC hdr.magic #define NEXT_FREE hdr.next_free #define H_CHARKEY hdr.h_charkey #include #ifndef EFTYPE #define EFTYPE EINVAL #endif libnbcompat-20180822/db/hash/hash_func.c0000644000175000017500000001165213355271171020130 0ustar jgoerzenjgoerzen/* $NetBSD: hash_func.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: hash_func.c,v 1.13 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash_func.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include "hash.h" #include "page.h" #include "extern.h" #if 0 static uint32_t hash1(const void *, size_t) __attribute__((__unused__)); static uint32_t hash2(const void *, size_t) __attribute__((__unused__)); static uint32_t hash3(const void *, size_t) __attribute__((__unused__)); #endif static uint32_t hash4(const void *, size_t) __attribute__((__unused__)); /* Global default hash function */ uint32_t (*__default_hash)(const void *, size_t) = hash4; #if 0 /* * HASH FUNCTIONS * * Assume that we've already split the bucket to which this key hashes, * calculate that bucket, and check that in fact we did already split it. * * This came from ejb's hsearch. */ #define PRIME1 37 #define PRIME2 1048583 static uint32_t hash1(const void *keyarg, size_t len) { const uint8_t *key; uint32_t h; /* Convert string to integer */ for (key = keyarg, h = 0; len--;) h = h * PRIME1 ^ (*key++ - ' '); h %= PRIME2; return (h); } /* * Phong's linear congruential hash */ #define dcharhash(h, c) ((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c)) static uint32_t hash2(const void *keyarg, size_t len) { const uint8_t *e, *key; uint32_t h; uint8_t c; key = keyarg; e = key + len; for (h = 0; key != e;) { c = *key++; if (!c && key > e) break; dcharhash(h, c); } return (h); } /* * This is INCREDIBLY ugly, but fast. We break the string up into 8 byte * units. On the first time through the loop we get the "leftover bytes" * (strlen % 8). On every other iteration, we perform 8 HASHC's so we handle * all 8 bytes. Essentially, this saves us 7 cmp & branch instructions. If * this routine is heavily used enough, it's worth the ugly coding. * * OZ's original sdbm hash */ static uint32_t hash3(const void *keyarg, size_t len) { const uint8_t *key; size_t loop; uint32_t h; #define HASHC h = *key++ + 65599 * h h = 0; key = keyarg; if (len > 0) { loop = (len + 8 - 1) >> 3; switch (len & (8 - 1)) { case 0: do { HASHC; /* FALLTHROUGH */ case 7: HASHC; /* FALLTHROUGH */ case 6: HASHC; /* FALLTHROUGH */ case 5: HASHC; /* FALLTHROUGH */ case 4: HASHC; /* FALLTHROUGH */ case 3: HASHC; /* FALLTHROUGH */ case 2: HASHC; /* FALLTHROUGH */ case 1: HASHC; } while (--loop); } } return (h); } #endif /* Hash function from Chris Torek. */ static uint32_t hash4(const void *keyarg, size_t len) { const uint8_t *key; size_t loop; uint32_t h; #define HASH4a h = (h << 5) - h + *key++; #define HASH4b h = (h << 5) + h + *key++; #define HASH4 HASH4b h = 0; key = keyarg; if (len > 0) { loop = (len + 8 - 1) >> 3; switch (len & (8 - 1)) { case 0: do { HASH4; /* FALLTHROUGH */ case 7: HASH4; /* FALLTHROUGH */ case 6: HASH4; /* FALLTHROUGH */ case 5: HASH4; /* FALLTHROUGH */ case 4: HASH4; /* FALLTHROUGH */ case 3: HASH4; /* FALLTHROUGH */ case 2: HASH4; /* FALLTHROUGH */ case 1: HASH4; } while (--loop); } } return (h); } libnbcompat-20180822/db/hash/ndbmdatum.c0000644000175000017500000000743213355271171020146 0ustar jgoerzenjgoerzen/* $NetBSD: ndbmdatum.c,v 1.2 2008/10/29 11:23:17 joerg Exp $ */ /* NetBSD: ndbmdatum.c,v 1.4 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: ndbmdatum.c,v 1.2 2008/10/29 11:23:17 joerg Exp $"); /* * This package provides a dbm compatible interface to the new hashing * package described in db(3). */ #include #include #include #include #include #include "hash.h" /* * Returns: * DATUM on success * NULL on failure */ datum dbm_fetch(DBM *db, datum key) { datum retdata; int status; DBT dbtkey, dbtretdata; dbtkey.data = key.dptr; dbtkey.size = key.dsize; status = (db->get)(db, &dbtkey, &dbtretdata, 0); if (status) { dbtretdata.data = NULL; dbtretdata.size = 0; } retdata.dptr = dbtretdata.data; retdata.dsize = dbtretdata.size; return (retdata); } /* * Returns: * DATUM on success * NULL on failure */ datum dbm_firstkey(DBM *db) { int status; datum retkey; DBT dbtretkey, dbtretdata; status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST); if (status) dbtretkey.data = NULL; retkey.dptr = dbtretkey.data; retkey.dsize = dbtretkey.size; return (retkey); } /* * Returns: * DATUM on success * NULL on failure */ datum dbm_nextkey(DBM *db) { int status; datum retkey; DBT dbtretkey, dbtretdata; status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT); if (status) dbtretkey.data = NULL; retkey.dptr = dbtretkey.data; retkey.dsize = dbtretkey.size; return (retkey); } /* * Returns: * 0 on success * <0 failure */ int dbm_delete(DBM *db, datum key) { int status; DBT dbtkey; dbtkey.data = key.dptr; dbtkey.size = key.dsize; status = (db->del)(db, &dbtkey, 0); if (status) return (-1); else return (0); } /* * Returns: * 0 on success * <0 failure * 1 if DBM_INSERT and entry exists */ int dbm_store(DBM *db, datum key, datum data, int flags) { DBT dbtkey, dbtdata; dbtkey.data = key.dptr; dbtkey.size = key.dsize; dbtdata.data = data.dptr; dbtdata.size = data.dsize; return ((db->put)(db, &dbtkey, &dbtdata, (u_int)((flags == DBM_INSERT) ? R_NOOVERWRITE : 0))); } libnbcompat-20180822/db/hash/ndbm.c0000644000175000017500000000566213355271171017116 0ustar jgoerzenjgoerzen/* $NetBSD: ndbm.c,v 1.2 2008/10/29 11:23:17 joerg Exp $ */ /* NetBSD: ndbm.c,v 1.23 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: ndbm.c,v 1.2 2008/10/29 11:23:17 joerg Exp $"); /* * This package provides a dbm compatible interface to the new hashing * package described in db(3). */ #include #include #include #include #include #include "hash.h" /* * Returns: * *DBM on success * NULL on failure */ DBM * dbm_open(const char *file, int flags, mode_t mode) { HASHINFO info; char path[MAXPATHLEN]; info.bsize = 4096; info.ffactor = 40; info.nelem = 1; info.cachesize = 0; info.hash = NULL; info.lorder = 0; (void)strncpy(path, file, sizeof(path) - 1); (void)strncat(path, DBM_SUFFIX, sizeof(path) - strlen(path) - 1); if ((flags & O_ACCMODE) == O_WRONLY) { flags &= ~O_WRONLY; flags |= O_RDWR; } return ((DBM *)__hash_open(path, flags, mode, &info, 0)); } void dbm_close(DBM *db) { (void)(db->close)(db); } int dbm_error(DBM *db) { HTAB *hp; hp = db->internal; return (hp->err); } int dbm_clearerr(DBM *db) { HTAB *hp; hp = db->internal; hp->err = 0; return (0); } int dbm_dirfno(DBM *db) { HTAB *hp; hp = db->internal; return hp->fp; } libnbcompat-20180822/db/hash/extern.h0000644000175000017500000000571213355271171017504 0ustar jgoerzenjgoerzen/* $NetBSD: extern.h,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: extern.h,v 1.9 2008/08/26 21:18:38 joerg Exp */ /*- * Copyright (c) 1991, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)extern.h 8.4 (Berkeley) 6/16/94 */ BUFHEAD *__add_ovflpage(HTAB *, BUFHEAD *); int __addel(HTAB *, BUFHEAD *, const DBT *, const DBT *); int __big_delete(HTAB *, BUFHEAD *); int __big_insert(HTAB *, BUFHEAD *, const DBT *, const DBT *); int __big_keydata(HTAB *, BUFHEAD *, DBT *, DBT *, int); int __big_return(HTAB *, BUFHEAD *, int, DBT *, int); int __big_split(HTAB *, BUFHEAD *, BUFHEAD *, BUFHEAD *, int, uint32_t, SPLIT_RETURN *); int __buf_free(HTAB *, int, int); void __buf_init(HTAB *, u_int); uint32_t __call_hash(HTAB *, char *, int); int __delpair(HTAB *, BUFHEAD *, int); int __expand_table(HTAB *); int __find_bigpair(HTAB *, BUFHEAD *, int, char *, int); uint16_t __find_last_page(HTAB *, BUFHEAD **); void __free_ovflpage(HTAB *, BUFHEAD *); BUFHEAD *__get_buf(HTAB *, uint32_t, BUFHEAD *, int); int __get_page(HTAB *, char *, uint32_t, int, int, int); int __ibitmap(HTAB *, int, int, int); uint32_t __log2(uint32_t); int __put_page(HTAB *, char *, uint32_t, int, int); void __reclaim_buf(HTAB *, BUFHEAD *); int __split_page(HTAB *, uint32_t, uint32_t); /* Default hash routine. */ extern uint32_t (*__default_hash)(const void *, size_t); #ifdef HASH_STATISTICS extern int hash_accesses, hash_collisions, hash_expansions, hash_overflows; #endif libnbcompat-20180822/db/hash/hash_log2.c0000644000175000017500000000426513355271171020042 0ustar jgoerzenjgoerzen/* $NetBSD: hash_log2.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: hash_log2.c,v 1.13 2008/09/11 12:33:55 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash_log2.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include "hash.h" #include "page.h" #include "extern.h" uint32_t __log2(uint32_t num) { uint32_t i, limit; if (num == 0) return 0; --num; limit = 0; for (i = 0; limit < num; limit = limit * 2 + 1, i++) continue; return (i); } libnbcompat-20180822/db/hash/hash.c0000644000175000017500000005703013355271171017115 0ustar jgoerzenjgoerzen/* $NetBSD: hash.c,v 1.4 2012/05/15 16:45:45 christos Exp $ */ /* NetBSD: hash.c,v 1.30 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash.c,v 1.4 2012/05/15 16:45:45 christos Exp $"); #include #include #include #include #include #include #include #include #include #include #include "hash.h" #include "page.h" #include "extern.h" #ifdef BROKEN_PWRITE #include "../pwrite.c" #endif #ifndef __UNCONST #define __UNCONST(a) ((void *)(size_t)(const void *)(a)) #endif static int alloc_segs(HTAB *, int); static int flush_meta(HTAB *); static int hash_access(HTAB *, ACTION, DBT *, DBT *); static int hash_close(DB *); static int hash_delete(const DB *, const DBT *, uint32_t); static int hash_fd(const DB *); static int hash_get(const DB *, const DBT *, DBT *, uint32_t); static int hash_put(const DB *, DBT *, const DBT *, uint32_t); static void *hash_realloc(SEGMENT **, size_t, size_t); static int hash_seq(const DB *, DBT *, DBT *, uint32_t); static int hash_sync(const DB *, uint32_t); static int hdestroy(HTAB *); static HTAB *init_hash(HTAB *, const char *, const HASHINFO *); static int init_htab(HTAB *, size_t); #if BYTE_ORDER == LITTLE_ENDIAN static void swap_header(HTAB *); static void swap_header_copy(HASHHDR *, HASHHDR *); #endif /* Fast arithmetic, relying on powers of 2, */ #define MOD(x, y) ((x) & ((y) - 1)) #define RETURN_ERROR(ERR, LOC) { save_errno = ERR; goto LOC; } /* Return values */ #define SUCCESS (0) #define ERROR (-1) #define ABNORMAL (1) #ifdef HASH_STATISTICS int hash_accesses, hash_collisions, hash_expansions, hash_overflows; #endif /************************** INTERFACE ROUTINES ***************************/ /* OPEN/CLOSE */ /* ARGSUSED */ DB * __hash_open(const char *file, int flags, mode_t mode, const HASHINFO *info, int dflags) { HTAB *hashp; struct stat statbuf; DB *dbp; int bpages, new_table, nsegs, save_errno; ssize_t hdrsize; if ((flags & O_ACCMODE) == O_WRONLY) { errno = EINVAL; return (NULL); } if (!(hashp = calloc(1, sizeof(HTAB)))) return (NULL); hashp->fp = -1; /* * Even if user wants write only, we need to be able to read * the actual file, so we need to open it read/write. But, the * field in the hashp structure needs to be accurate so that * we can check accesses. */ hashp->flags = flags; new_table = 0; if (!file || (flags & O_TRUNC) || (stat(file, &statbuf) && (errno == ENOENT))) { if (errno == ENOENT) errno = 0; /* Just in case someone looks at errno */ new_table = 1; } if (file) { if ((hashp->fp = open(file, flags, mode)) == -1) RETURN_ERROR(errno, error0); if (fcntl(hashp->fp, F_SETFD, FD_CLOEXEC) == -1) RETURN_ERROR(errno, error1); if (fstat(hashp->fp, &statbuf) == -1) RETURN_ERROR(errno, error1); new_table |= statbuf.st_size == 0; } if (new_table) { if (!(hashp = init_hash(hashp, file, info))) RETURN_ERROR(errno, error1); } else { /* Table already exists */ if (info && info->hash) hashp->hash = info->hash; else hashp->hash = __default_hash; hdrsize = read(hashp->fp, &hashp->hdr, sizeof(HASHHDR)); #if BYTE_ORDER == LITTLE_ENDIAN swap_header(hashp); #endif if (hdrsize == -1) RETURN_ERROR(errno, error1); if (hdrsize != sizeof(HASHHDR)) RETURN_ERROR(EFTYPE, error1); /* Verify file type, versions and hash function */ if (hashp->MAGIC != HASHMAGIC) RETURN_ERROR(EFTYPE, error1); #define OLDHASHVERSION 1 if (hashp->VERSION != HASHVERSION && hashp->VERSION != OLDHASHVERSION) RETURN_ERROR(EFTYPE, error1); if (hashp->hash(CHARKEY, sizeof(CHARKEY)) != hashp->H_CHARKEY) RETURN_ERROR(EFTYPE, error1); /* * Figure out how many segments we need. Max_Bucket is the * maximum bucket number, so the number of buckets is * max_bucket + 1. */ nsegs = (hashp->MAX_BUCKET + 1 + hashp->SGSIZE - 1) / hashp->SGSIZE; hashp->nsegs = 0; if (alloc_segs(hashp, nsegs)) /* * If alloc_segs fails, table will have been destroyed * and errno will have been set. */ return (NULL); /* Read in bitmaps */ bpages = (hashp->SPARES[hashp->OVFL_POINT] + (unsigned int)(hashp->BSIZE << BYTE_SHIFT) - 1) >> (hashp->BSHIFT + BYTE_SHIFT); hashp->nmaps = bpages; (void)memset(&hashp->mapp[0], 0, bpages * sizeof(uint32_t *)); } /* Initialize Buffer Manager */ if (info && info->cachesize) __buf_init(hashp, info->cachesize); else __buf_init(hashp, DEF_BUFSIZE); hashp->new_file = new_table; hashp->save_file = file && (hashp->flags & O_RDWR); hashp->cbucket = -1; if (!(dbp = malloc(sizeof(DB)))) { save_errno = errno; hdestroy(hashp); errno = save_errno; return (NULL); } dbp->internal = hashp; dbp->close = hash_close; dbp->del = hash_delete; dbp->fd = hash_fd; dbp->get = hash_get; dbp->put = hash_put; dbp->seq = hash_seq; dbp->sync = hash_sync; dbp->type = DB_HASH; #ifdef DEBUG (void)fprintf(stderr, "%s\n%s%p\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%x\n%s%x\n%s%d\n%s%d\n", "init_htab:", "TABLE POINTER ", hashp, "BUCKET SIZE ", hashp->BSIZE, "BUCKET SHIFT ", hashp->BSHIFT, "DIRECTORY SIZE ", hashp->DSIZE, "SEGMENT SIZE ", hashp->SGSIZE, "SEGMENT SHIFT ", hashp->SSHIFT, "FILL FACTOR ", hashp->FFACTOR, "MAX BUCKET ", hashp->MAX_BUCKET, "OVFL POINT ", hashp->OVFL_POINT, "LAST FREED ", hashp->LAST_FREED, "HIGH MASK ", hashp->HIGH_MASK, "LOW MASK ", hashp->LOW_MASK, "NSEGS ", hashp->nsegs, "NKEYS ", hashp->NKEYS); #endif #ifdef HASH_STATISTICS hash_overflows = hash_accesses = hash_collisions = hash_expansions = 0; #endif return (dbp); error1: if (hashp != NULL) (void)close(hashp->fp); error0: free(hashp); errno = save_errno; return (NULL); } static int hash_close(DB *dbp) { HTAB *hashp; int retval; if (!dbp) return (ERROR); hashp = dbp->internal; retval = hdestroy(hashp); free(dbp); return (retval); } static int hash_fd(const DB *dbp) { HTAB *hashp; if (!dbp) return (ERROR); hashp = dbp->internal; if (hashp->fp == -1) { errno = ENOENT; return (-1); } return (hashp->fp); } /************************** LOCAL CREATION ROUTINES **********************/ static HTAB * init_hash(HTAB *hashp, const char *file, const HASHINFO *info) { struct stat statbuf; int nelem; nelem = 1; hashp->NKEYS = 0; hashp->LORDER = BYTE_ORDER; hashp->BSIZE = DEF_BUCKET_SIZE; hashp->BSHIFT = DEF_BUCKET_SHIFT; hashp->SGSIZE = DEF_SEGSIZE; hashp->SSHIFT = DEF_SEGSIZE_SHIFT; hashp->DSIZE = DEF_DIRSIZE; hashp->FFACTOR = DEF_FFACTOR; hashp->hash = __default_hash; memset(hashp->SPARES, 0, sizeof(hashp->SPARES)); memset(hashp->BITMAPS, 0, sizeof (hashp->BITMAPS)); /* Fix bucket size to be optimal for file system */ if (file != NULL) { if (stat(file, &statbuf)) return (NULL); hashp->BSIZE = MIN(statbuf.st_blksize, MAX_BSIZE); hashp->BSHIFT = __log2((uint32_t)hashp->BSIZE); } if (info) { if (info->bsize) { /* Round pagesize up to power of 2 */ hashp->BSHIFT = __log2(info->bsize); hashp->BSIZE = 1 << hashp->BSHIFT; if (hashp->BSIZE > MAX_BSIZE) { errno = EINVAL; return (NULL); } } if (info->ffactor) hashp->FFACTOR = info->ffactor; if (info->hash) hashp->hash = info->hash; if (info->nelem) nelem = info->nelem; if (info->lorder) { if (info->lorder != BIG_ENDIAN && info->lorder != LITTLE_ENDIAN) { errno = EINVAL; return (NULL); } hashp->LORDER = info->lorder; } } /* init_htab should destroy the table and set errno if it fails */ if (init_htab(hashp, (size_t)nelem)) return (NULL); else return (hashp); } /* * This calls alloc_segs which may run out of memory. Alloc_segs will destroy * the table and set errno, so we just pass the error information along. * * Returns 0 on No Error */ static int init_htab(HTAB *hashp, size_t nelem) { int nbuckets; uint32_t nsegs; int l2; /* * Divide number of elements by the fill factor and determine a * desired number of buckets. Allocate space for the next greater * power of two number of buckets. */ nelem = (nelem - 1) / hashp->FFACTOR + 1; _DBFIT(nelem, uint32_t); l2 = __log2(MAX((uint32_t)nelem, 2)); nbuckets = 1 << l2; hashp->SPARES[l2] = l2 + 1; hashp->SPARES[l2 + 1] = l2 + 1; hashp->OVFL_POINT = l2; hashp->LAST_FREED = 2; /* First bitmap page is at: splitpoint l2 page offset 1 */ if (__ibitmap(hashp, (int)OADDR_OF(l2, 1), l2 + 1, 0)) return (-1); hashp->MAX_BUCKET = hashp->LOW_MASK = nbuckets - 1; hashp->HIGH_MASK = (nbuckets << 1) - 1; /* LINTED constant in conditional context */ hashp->HDRPAGES = ((MAX(sizeof(HASHHDR), MINHDRSIZE) - 1) >> hashp->BSHIFT) + 1; nsegs = (nbuckets - 1) / hashp->SGSIZE + 1; nsegs = 1 << __log2(nsegs); if (nsegs > hashp->DSIZE) hashp->DSIZE = nsegs; return (alloc_segs(hashp, (int)nsegs)); } /********************** DESTROY/CLOSE ROUTINES ************************/ /* * Flushes any changes to the file if necessary and destroys the hashp * structure, freeing all allocated space. */ static int hdestroy(HTAB *hashp) { int i, save_errno; save_errno = 0; #ifdef HASH_STATISTICS (void)fprintf(stderr, "hdestroy: accesses %d collisions %d\n", hash_accesses, hash_collisions); (void)fprintf(stderr, "hdestroy: expansions %d\n", hash_expansions); (void)fprintf(stderr, "hdestroy: overflows %d\n", hash_overflows); (void)fprintf(stderr, "keys %d maxp %d segmentcount %d\n", hashp->NKEYS, hashp->MAX_BUCKET, hashp->nsegs); for (i = 0; i < NCACHED; i++) (void)fprintf(stderr, "spares[%d] = %d\n", i, hashp->SPARES[i]); #endif /* * Call on buffer manager to free buffers, and if required, * write them to disk. */ if (__buf_free(hashp, 1, hashp->save_file)) save_errno = errno; if (hashp->dir) { free(*hashp->dir); /* Free initial segments */ /* Free extra segments */ while (hashp->exsegs--) free(hashp->dir[--hashp->nsegs]); free(hashp->dir); } if (flush_meta(hashp) && !save_errno) save_errno = errno; /* Free Bigmaps */ for (i = 0; i < hashp->nmaps; i++) if (hashp->mapp[i]) free(hashp->mapp[i]); if (hashp->fp != -1) (void)close(hashp->fp); free(hashp); if (save_errno) { errno = save_errno; return (ERROR); } return (SUCCESS); } /* * Write modified pages to disk * * Returns: * 0 == OK * -1 ERROR */ static int hash_sync(const DB *dbp, uint32_t flags) { HTAB *hashp; if (flags != 0) { errno = EINVAL; return (ERROR); } if (!dbp) return (ERROR); hashp = dbp->internal; if (!hashp->save_file) return (0); if (__buf_free(hashp, 0, 1) || flush_meta(hashp)) return (ERROR); hashp->new_file = 0; return (0); } /* * Returns: * 0 == OK * -1 indicates that errno should be set */ static int flush_meta(HTAB *hashp) { HASHHDR *whdrp; #if BYTE_ORDER == LITTLE_ENDIAN HASHHDR whdr; #endif int fp, i; ssize_t wsize; if (!hashp->save_file) return (0); hashp->MAGIC = HASHMAGIC; hashp->VERSION = HASHVERSION; hashp->H_CHARKEY = hashp->hash(CHARKEY, sizeof(CHARKEY)); fp = hashp->fp; whdrp = &hashp->hdr; #if BYTE_ORDER == LITTLE_ENDIAN whdrp = &whdr; swap_header_copy(&hashp->hdr, whdrp); #endif if ((wsize = pwrite(fp, whdrp, sizeof(HASHHDR), (off_t)0)) == -1) return (-1); else if (wsize != sizeof(HASHHDR)) { errno = EFTYPE; hashp->err = errno; return (-1); } for (i = 0; i < NCACHED; i++) if (hashp->mapp[i]) if (__put_page(hashp, (char *)(void *)hashp->mapp[i], (u_int)hashp->BITMAPS[i], 0, 1)) return (-1); return (0); } /*******************************SEARCH ROUTINES *****************************/ /* * All the access routines return * * Returns: * 0 on SUCCESS * 1 to indicate an external ERROR (i.e. key not found, etc) * -1 to indicate an internal ERROR (i.e. out of memory, etc) */ static int hash_get(const DB *dbp, const DBT *key, DBT *data, uint32_t flag) { HTAB *hashp; hashp = dbp->internal; if (flag) { hashp->err = errno = EINVAL; return (ERROR); } return (hash_access(hashp, HASH_GET, __UNCONST(key), data)); } static int hash_put(const DB *dbp, DBT *key, const DBT *data, uint32_t flag) { HTAB *hashp; hashp = dbp->internal; if (flag && flag != R_NOOVERWRITE) { hashp->err = errno = EINVAL; return (ERROR); } if ((hashp->flags & O_ACCMODE) == O_RDONLY) { hashp->err = errno = EPERM; return (ERROR); } /* LINTED const castaway */ return (hash_access(hashp, flag == R_NOOVERWRITE ? HASH_PUTNEW : HASH_PUT, __UNCONST(key), __UNCONST(data))); } static int hash_delete(const DB *dbp, const DBT *key, uint32_t flag) { HTAB *hashp; hashp = dbp->internal; if (flag && flag != R_CURSOR) { hashp->err = errno = EINVAL; return (ERROR); } if ((hashp->flags & O_ACCMODE) == O_RDONLY) { hashp->err = errno = EPERM; return (ERROR); } return hash_access(hashp, HASH_DELETE, __UNCONST(key), NULL); } /* * Assume that hashp has been set in wrapper routine. */ static int hash_access(HTAB *hashp, ACTION action, DBT *key, DBT *val) { BUFHEAD *rbufp; BUFHEAD *bufp, *save_bufp; uint16_t *bp; int n, ndx, off; size_t size; char *kp; uint16_t pageno; #ifdef HASH_STATISTICS hash_accesses++; #endif off = hashp->BSIZE; size = key->size; kp = (char *)key->data; rbufp = __get_buf(hashp, __call_hash(hashp, kp, (int)size), NULL, 0); if (!rbufp) return (ERROR); save_bufp = rbufp; /* Pin the bucket chain */ rbufp->flags |= BUF_PIN; for (bp = (uint16_t *)(void *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) if (bp[1] >= REAL_KEY) { /* Real key/data pair */ if (size == off - *bp && memcmp(kp, rbufp->page + *bp, size) == 0) goto found; off = bp[1]; #ifdef HASH_STATISTICS hash_collisions++; #endif bp += 2; ndx += 2; } else if (bp[1] == OVFLPAGE) { rbufp = __get_buf(hashp, (uint32_t)*bp, rbufp, 0); if (!rbufp) { save_bufp->flags &= ~BUF_PIN; return (ERROR); } /* FOR LOOP INIT */ bp = (uint16_t *)(void *)rbufp->page; n = *bp++; ndx = 1; off = hashp->BSIZE; } else if (bp[1] < REAL_KEY) { if ((ndx = __find_bigpair(hashp, rbufp, ndx, kp, (int)size)) > 0) goto found; if (ndx == -2) { bufp = rbufp; if (!(pageno = __find_last_page(hashp, &bufp))) { ndx = 0; rbufp = bufp; break; /* FOR */ } rbufp = __get_buf(hashp, (uint32_t)pageno, bufp, 0); if (!rbufp) { save_bufp->flags &= ~BUF_PIN; return (ERROR); } /* FOR LOOP INIT */ bp = (uint16_t *)(void *)rbufp->page; n = *bp++; ndx = 1; off = hashp->BSIZE; } else { save_bufp->flags &= ~BUF_PIN; return (ERROR); } } /* Not found */ switch (action) { case HASH_PUT: case HASH_PUTNEW: if (__addel(hashp, rbufp, key, val)) { save_bufp->flags &= ~BUF_PIN; return (ERROR); } else { save_bufp->flags &= ~BUF_PIN; return (SUCCESS); } case HASH_GET: case HASH_DELETE: default: save_bufp->flags &= ~BUF_PIN; return (ABNORMAL); } found: switch (action) { case HASH_PUTNEW: save_bufp->flags &= ~BUF_PIN; return (ABNORMAL); case HASH_GET: bp = (uint16_t *)(void *)rbufp->page; if (bp[ndx + 1] < REAL_KEY) { if (__big_return(hashp, rbufp, ndx, val, 0)) return (ERROR); } else { val->data = (uint8_t *)rbufp->page + (int)bp[ndx + 1]; val->size = bp[ndx] - bp[ndx + 1]; } break; case HASH_PUT: if ((__delpair(hashp, rbufp, ndx)) || (__addel(hashp, rbufp, key, val))) { save_bufp->flags &= ~BUF_PIN; return (ERROR); } break; case HASH_DELETE: if (__delpair(hashp, rbufp, ndx)) return (ERROR); break; default: abort(); } save_bufp->flags &= ~BUF_PIN; return (SUCCESS); } static int hash_seq(const DB *dbp, DBT *key, DBT *data, uint32_t flag) { uint32_t bucket; BUFHEAD *bufp = NULL; /* XXX: gcc */ HTAB *hashp; uint16_t *bp, ndx; hashp = dbp->internal; if (flag && flag != R_FIRST && flag != R_NEXT) { hashp->err = errno = EINVAL; return (ERROR); } #ifdef HASH_STATISTICS hash_accesses++; #endif if ((hashp->cbucket < 0) || (flag == R_FIRST)) { hashp->cbucket = 0; hashp->cndx = 1; hashp->cpage = NULL; } for (bp = NULL; !bp || !bp[0]; ) { if (!(bufp = hashp->cpage)) { for (bucket = hashp->cbucket; bucket <= hashp->MAX_BUCKET; bucket++, hashp->cndx = 1) { bufp = __get_buf(hashp, bucket, NULL, 0); if (!bufp) return (ERROR); hashp->cpage = bufp; bp = (uint16_t *)(void *)bufp->page; if (bp[0]) break; } hashp->cbucket = bucket; if (hashp->cbucket > hashp->MAX_BUCKET) { hashp->cbucket = -1; return (ABNORMAL); } } else bp = (uint16_t *)(void *)hashp->cpage->page; _DIAGASSERT(bp != NULL); _DIAGASSERT(bufp != NULL); while (bp[hashp->cndx + 1] == OVFLPAGE) { bufp = hashp->cpage = __get_buf(hashp, (uint32_t)bp[hashp->cndx], bufp, 0); if (!bufp) return (ERROR); bp = (uint16_t *)(void *)(bufp->page); hashp->cndx = 1; } if (!bp[0]) { hashp->cpage = NULL; ++hashp->cbucket; } } ndx = hashp->cndx; if (bp[ndx + 1] < REAL_KEY) { if (__big_keydata(hashp, bufp, key, data, 1)) return (ERROR); } else { if (hashp->cpage == NULL) return (ERROR); key->data = (uint8_t *)hashp->cpage->page + bp[ndx]; key->size = (ndx > 1 ? bp[ndx - 1] : hashp->BSIZE) - bp[ndx]; data->data = (uint8_t *)hashp->cpage->page + bp[ndx + 1]; data->size = bp[ndx] - bp[ndx + 1]; ndx += 2; if (ndx > bp[0]) { hashp->cpage = NULL; hashp->cbucket++; hashp->cndx = 1; } else hashp->cndx = ndx; } return (SUCCESS); } /********************************* UTILITIES ************************/ /* * Returns: * 0 ==> OK * -1 ==> Error */ int __expand_table(HTAB *hashp) { uint32_t old_bucket, new_bucket; int new_segnum, spare_ndx; size_t dirsize; #ifdef HASH_STATISTICS hash_expansions++; #endif new_bucket = ++hashp->MAX_BUCKET; old_bucket = (hashp->MAX_BUCKET & hashp->LOW_MASK); new_segnum = new_bucket >> hashp->SSHIFT; /* Check if we need a new segment */ if (new_segnum >= hashp->nsegs) { /* Check if we need to expand directory */ if (new_segnum >= hashp->DSIZE) { /* Reallocate directory */ dirsize = hashp->DSIZE * sizeof(SEGMENT *); if (!hash_realloc(&hashp->dir, dirsize, dirsize << 1)) return (-1); hashp->DSIZE = dirsize << 1; } if ((hashp->dir[new_segnum] = calloc((size_t)hashp->SGSIZE, sizeof(SEGMENT))) == NULL) return (-1); hashp->exsegs++; hashp->nsegs++; } /* * If the split point is increasing (MAX_BUCKET's log base 2 * * increases), we need to copy the current contents of the spare * split bucket to the next bucket. */ spare_ndx = __log2((uint32_t)(hashp->MAX_BUCKET + 1)); if (spare_ndx > hashp->OVFL_POINT) { hashp->SPARES[spare_ndx] = hashp->SPARES[hashp->OVFL_POINT]; hashp->OVFL_POINT = spare_ndx; } if (new_bucket > hashp->HIGH_MASK) { /* Starting a new doubling */ hashp->LOW_MASK = hashp->HIGH_MASK; hashp->HIGH_MASK = new_bucket | hashp->LOW_MASK; } /* Relocate records to the new bucket */ return (__split_page(hashp, old_bucket, new_bucket)); } /* * If realloc guarantees that the pointer is not destroyed if the realloc * fails, then this routine can go away. */ static void * hash_realloc(SEGMENT **p_ptr, size_t oldsize, size_t newsize) { void *p; if ((p = malloc(newsize)) != NULL) { memmove(p, *p_ptr, oldsize); memset((char *)p + oldsize, 0, newsize - oldsize); free(*p_ptr); *p_ptr = p; } return (p); } uint32_t __call_hash(HTAB *hashp, char *k, int len) { int n, bucket; n = hashp->hash(k, (size_t)len); bucket = n & hashp->HIGH_MASK; if (bucket > hashp->MAX_BUCKET) bucket = bucket & hashp->LOW_MASK; return (bucket); } /* * Allocate segment table. On error, destroy the table and set errno. * * Returns 0 on success */ static int alloc_segs(HTAB *hashp, int nsegs) { int i; SEGMENT store; int save_errno; hashp->dir = calloc((size_t)hashp->DSIZE, sizeof(SEGMENT *)); if (hashp->dir == NULL) { save_errno = errno; (void)hdestroy(hashp); errno = save_errno; return (-1); } hashp->nsegs = nsegs; if (nsegs == 0) return 0; /* Allocate segments */ store = calloc((size_t)(nsegs << hashp->SSHIFT), sizeof(SEGMENT)); if (store == NULL) { save_errno = errno; (void)hdestroy(hashp); errno = save_errno; return (-1); } for (i = 0; i < nsegs; i++) hashp->dir[i] = &store[i << hashp->SSHIFT]; return (0); } #if BYTE_ORDER == LITTLE_ENDIAN /* * Hashp->hdr needs to be byteswapped. */ static void swap_header_copy(HASHHDR *srcp, HASHHDR *destp) { size_t i; P_32_COPY(srcp->magic, destp->magic); P_32_COPY(srcp->version, destp->version); P_32_COPY(srcp->lorder, destp->lorder); P_32_COPY(srcp->bsize, destp->bsize); P_32_COPY(srcp->bshift, destp->bshift); P_32_COPY(srcp->dsize, destp->dsize); P_32_COPY(srcp->ssize, destp->ssize); P_32_COPY(srcp->sshift, destp->sshift); P_32_COPY(srcp->ovfl_point, destp->ovfl_point); P_32_COPY(srcp->last_freed, destp->last_freed); P_32_COPY(srcp->max_bucket, destp->max_bucket); P_32_COPY(srcp->high_mask, destp->high_mask); P_32_COPY(srcp->low_mask, destp->low_mask); P_32_COPY(srcp->ffactor, destp->ffactor); P_32_COPY(srcp->nkeys, destp->nkeys); P_32_COPY(srcp->hdrpages, destp->hdrpages); P_32_COPY(srcp->h_charkey, destp->h_charkey); for (i = 0; i < NCACHED; i++) { P_32_COPY(srcp->spares[i], destp->spares[i]); P_16_COPY(srcp->bitmaps[i], destp->bitmaps[i]); } } static void swap_header(HTAB *hashp) { HASHHDR *hdrp; size_t i; hdrp = &hashp->hdr; M_32_SWAP(hdrp->magic); M_32_SWAP(hdrp->version); M_32_SWAP(hdrp->lorder); M_32_SWAP(hdrp->bsize); M_32_SWAP(hdrp->bshift); M_32_SWAP(hdrp->dsize); M_32_SWAP(hdrp->ssize); M_32_SWAP(hdrp->sshift); M_32_SWAP(hdrp->ovfl_point); M_32_SWAP(hdrp->last_freed); M_32_SWAP(hdrp->max_bucket); M_32_SWAP(hdrp->high_mask); M_32_SWAP(hdrp->low_mask); M_32_SWAP(hdrp->ffactor); M_32_SWAP(hdrp->nkeys); M_32_SWAP(hdrp->hdrpages); M_32_SWAP(hdrp->h_charkey); for (i = 0; i < NCACHED; i++) { M_32_SWAP(hdrp->spares[i]); M_16_SWAP(hdrp->bitmaps[i]); } } #endif libnbcompat-20180822/db/hash/page.h0000644000175000017500000000666113355271171017117 0ustar jgoerzenjgoerzen/* $NetBSD: page.h,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: page.h,v 1.8 2008/08/26 21:18:38 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)page.h 8.2 (Berkeley) 5/31/94 */ /* * Definitions for hashing page file format. */ /* * routines dealing with a data page * * page format: * +------------------------------+ * p | n | keyoff | datoff | keyoff | * +------------+--------+--------+ * | datoff | free | ptr | --> | * +--------+---------------------+ * | F R E E A R E A | * +--------------+---------------+ * | <---- - - - | data | * +--------+-----+----+----------+ * | key | data | key | * +--------+----------+----------+ * * Pointer to the free space is always: p[p[0] + 2] * Amount of free space on the page is: p[p[0] + 1] */ /* * How many bytes required for this pair? * 2 shorts in the table at the top of the page + room for the * key and room for the data * * We prohibit entering a pair on a page unless there is also room to append * an overflow page. The reason for this it that you can get in a situation * where a single key/data pair fits on a page, but you can't append an * overflow page and later you'd have to split the key/data and handle like * a big pair. * You might as well do this up front. */ #define PAIRSIZE(K,D) (2*sizeof(uint16_t) + (K)->size + (D)->size) #define BIGOVERHEAD (4*sizeof(uint16_t)) #define KEYSIZE(K) (4*sizeof(uint16_t) + (K)->size); #define OVFLSIZE (2*sizeof(uint16_t)) #define FREESPACE(P) ((P)[(P)[0]+1]) #define OFFSET(P) ((P)[(P)[0]+2]) #define PAIRFITS(P,K,D) \ (((P)[2] >= REAL_KEY) && \ (PAIRSIZE((K),(D)) + OVFLSIZE) <= FREESPACE((P))) #define PAGE_META(N) (((N)+3) * sizeof(uint16_t)) typedef struct { BUFHEAD *newp; BUFHEAD *oldp; BUFHEAD *nextp; uint16_t next_addr; } SPLIT_RETURN; libnbcompat-20180822/db/hash/hash_bigkey.c0000644000175000017500000004124213355271171020445 0ustar jgoerzenjgoerzen/* $NetBSD: hash_bigkey.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: hash_bigkey.c,v 1.22 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash_bigkey.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); /* * PACKAGE: hash * DESCRIPTION: * Big key/data handling for the hashing package. * * ROUTINES: * External * __big_keydata * __big_split * __big_insert * __big_return * __big_delete * __find_last_page * Internal * collect_key * collect_data */ #include #include #include #include #include #include #include #include "hash.h" #include "page.h" #include "extern.h" static int collect_key(HTAB *, BUFHEAD *, int, DBT *, int); static int collect_data(HTAB *, BUFHEAD *, int, int); /* * Big_insert * * You need to do an insert and the key/data pair is too big * * Returns: * 0 ==> OK *-1 ==> ERROR */ int __big_insert(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const DBT *val) { uint16_t *p; int key_size, n, val_size; uint16_t space, move_bytes, off; char *cp, *key_data, *val_data; size_t temp; cp = bufp->page; /* Character pointer of p. */ p = (uint16_t *)(void *)cp; key_data = (char *)key->data; _DBFIT(key->size, int); key_size = (int)key->size; val_data = (char *)val->data; _DBFIT(val->size, int); val_size = (int)val->size; /* First move the Key */ temp = FREESPACE(p) - BIGOVERHEAD; _DBFIT(temp, uint16_t); space = (uint16_t)temp; while (key_size) { move_bytes = MIN(space, key_size); off = OFFSET(p) - move_bytes; memmove(cp + off, key_data, (size_t)move_bytes); key_size -= move_bytes; key_data += move_bytes; n = p[0]; p[++n] = off; p[0] = ++n; temp = off - PAGE_META(n); _DBFIT(temp, uint16_t); FREESPACE(p) = (uint16_t)temp; OFFSET(p) = off; p[n] = PARTIAL_KEY; bufp = __add_ovflpage(hashp, bufp); if (!bufp) return (-1); n = p[0]; if (!key_size) { space = FREESPACE(p); if (space) { move_bytes = MIN(space, val_size); /* * If the data would fit exactly in the * remaining space, we must overflow it to the * next page; otherwise the invariant that the * data must end on a page with FREESPACE * non-zero would fail. */ if (space == val_size && val_size == val->size) goto toolarge; off = OFFSET(p) - move_bytes; memmove(cp + off, val_data, (size_t)move_bytes); val_data += move_bytes; val_size -= move_bytes; p[n] = off; p[n - 2] = FULL_KEY_DATA; FREESPACE(p) = FREESPACE(p) - move_bytes; OFFSET(p) = off; } else { toolarge: p[n - 2] = FULL_KEY; } } p = (uint16_t *)(void *)bufp->page; cp = bufp->page; bufp->flags |= BUF_MOD; temp = FREESPACE(p) - BIGOVERHEAD; _DBFIT(temp, uint16_t); space = (uint16_t)temp; } /* Now move the data */ temp = FREESPACE(p) - BIGOVERHEAD; _DBFIT(temp, uint16_t); space = (uint16_t)temp; while (val_size) { move_bytes = MIN(space, val_size); /* * Here's the hack to make sure that if the data ends on the * same page as the key ends, FREESPACE is at least one. */ if (space == val_size && val_size == val->size) move_bytes--; off = OFFSET(p) - move_bytes; memmove(cp + off, val_data, (size_t)move_bytes); val_size -= move_bytes; val_data += move_bytes; n = p[0]; p[++n] = off; p[0] = ++n; temp = off - PAGE_META(n); _DBFIT(temp, uint16_t); FREESPACE(p) = (uint16_t)temp; OFFSET(p) = off; if (val_size) { p[n] = FULL_KEY; bufp = __add_ovflpage(hashp, bufp); if (!bufp) return (-1); cp = bufp->page; p = (uint16_t *)(void *)cp; } else p[n] = FULL_KEY_DATA; bufp->flags |= BUF_MOD; temp = FREESPACE(p) - BIGOVERHEAD; _DBFIT(temp, uint16_t); space = (uint16_t)temp; } return (0); } /* * Called when bufp's page contains a partial key (index should be 1) * * All pages in the big key/data pair except bufp are freed. We cannot * free bufp because the page pointing to it is lost and we can't get rid * of its pointer. * * Returns: * 0 => OK *-1 => ERROR */ int __big_delete(HTAB *hashp, BUFHEAD *bufp) { BUFHEAD *last_bfp, *rbufp; uint16_t *bp, pageno; int key_done, n; size_t temp; rbufp = bufp; last_bfp = NULL; bp = (uint16_t *)(void *)bufp->page; pageno = 0; key_done = 0; while (!key_done || (bp[2] != FULL_KEY_DATA)) { if (bp[2] == FULL_KEY || bp[2] == FULL_KEY_DATA) key_done = 1; /* * If there is freespace left on a FULL_KEY_DATA page, then * the data is short and fits entirely on this page, and this * is the last page. */ if (bp[2] == FULL_KEY_DATA && FREESPACE(bp)) break; pageno = bp[bp[0] - 1]; rbufp->flags |= BUF_MOD; rbufp = __get_buf(hashp, (uint32_t)pageno, rbufp, 0); if (last_bfp) __free_ovflpage(hashp, last_bfp); last_bfp = rbufp; if (!rbufp) return (-1); /* Error. */ bp = (uint16_t *)(void *)rbufp->page; } /* * If we get here then rbufp points to the last page of the big * key/data pair. Bufp points to the first one -- it should now be * empty pointing to the next page after this pair. Can't free it * because we don't have the page pointing to it. */ /* This is information from the last page of the pair. */ n = bp[0]; pageno = bp[n - 1]; /* Now, bp is the first page of the pair. */ bp = (uint16_t *)(void *)bufp->page; if (n > 2) { /* There is an overflow page. */ bp[1] = pageno; bp[2] = OVFLPAGE; bufp->ovfl = rbufp->ovfl; } else /* This is the last page. */ bufp->ovfl = NULL; n -= 2; bp[0] = n; temp = hashp->BSIZE - PAGE_META(n); _DBFIT(temp, uint16_t); FREESPACE(bp) = (uint16_t)temp; OFFSET(bp) = hashp->BSIZE; bufp->flags |= BUF_MOD; if (rbufp) __free_ovflpage(hashp, rbufp); if (last_bfp && last_bfp != rbufp) __free_ovflpage(hashp, last_bfp); hashp->NKEYS--; return (0); } /* * Returns: * 0 = key not found * -1 = get next overflow page * -2 means key not found and this is big key/data * -3 error */ int __find_bigpair(HTAB *hashp, BUFHEAD *bufp, int ndx, char *key, int size) { uint16_t *bp; char *p; int ksize; uint16_t bytes; char *kkey; bp = (uint16_t *)(void *)bufp->page; p = bufp->page; ksize = size; kkey = key; for (bytes = hashp->BSIZE - bp[ndx]; bytes <= size && bp[ndx + 1] == PARTIAL_KEY; bytes = hashp->BSIZE - bp[ndx]) { if (memcmp(p + bp[ndx], kkey, (size_t)bytes)) return (-2); kkey += bytes; ksize -= bytes; bufp = __get_buf(hashp, (uint32_t)bp[ndx + 2], bufp, 0); if (!bufp) return (-3); p = bufp->page; bp = (uint16_t *)(void *)p; ndx = 1; } if (bytes != ksize || memcmp(p + bp[ndx], kkey, (size_t)bytes)) { #ifdef HASH_STATISTICS ++hash_collisions; #endif return (-2); } else return (ndx); } /* * Given the buffer pointer of the first overflow page of a big pair, * find the end of the big pair * * This will set bpp to the buffer header of the last page of the big pair. * It will return the pageno of the overflow page following the last page * of the pair; 0 if there isn't any (i.e. big pair is the last key in the * bucket) */ uint16_t __find_last_page(HTAB *hashp, BUFHEAD **bpp) { BUFHEAD *bufp; uint16_t *bp, pageno; int n; bufp = *bpp; bp = (uint16_t *)(void *)bufp->page; for (;;) { n = bp[0]; /* * This is the last page if: the tag is FULL_KEY_DATA and * either only 2 entries OVFLPAGE marker is explicit there * is freespace on the page. */ if (bp[2] == FULL_KEY_DATA && ((n == 2) || (bp[n] == OVFLPAGE) || (FREESPACE(bp)))) break; pageno = bp[n - 1]; bufp = __get_buf(hashp, (uint32_t)pageno, bufp, 0); if (!bufp) return (0); /* Need to indicate an error! */ bp = (uint16_t *)(void *)bufp->page; } *bpp = bufp; if (bp[0] > 2) return (bp[3]); else return (0); } /* * Return the data for the key/data pair that begins on this page at this * index (index should always be 1). */ int __big_return(HTAB *hashp, BUFHEAD *bufp, int ndx, DBT *val, int set_current) { BUFHEAD *save_p; uint16_t *bp, len, off, save_addr; char *tp; bp = (uint16_t *)(void *)bufp->page; while (bp[ndx + 1] == PARTIAL_KEY) { bufp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!bufp) return (-1); bp = (uint16_t *)(void *)bufp->page; ndx = 1; } if (bp[ndx + 1] == FULL_KEY) { bufp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!bufp) return (-1); bp = (uint16_t *)(void *)bufp->page; save_p = bufp; save_addr = save_p->addr; off = bp[1]; len = 0; } else if (!FREESPACE(bp)) { /* * This is a hack. We can't distinguish between * FULL_KEY_DATA that contains complete data or * incomplete data, so we require that if the data * is complete, there is at least 1 byte of free * space left. */ off = bp[bp[0]]; len = bp[1] - off; save_p = bufp; save_addr = bufp->addr; bufp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!bufp) return (-1); bp = (uint16_t *)(void *)bufp->page; } else { /* The data is all on one page. */ tp = (char *)(void *)bp; off = bp[bp[0]]; val->data = (uint8_t *)tp + off; val->size = bp[1] - off; if (set_current) { if (bp[0] == 2) { /* No more buckets in * chain */ hashp->cpage = NULL; hashp->cbucket++; hashp->cndx = 1; } else { hashp->cpage = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!hashp->cpage) return (-1); hashp->cndx = 1; if (!((uint16_t *)(void *) hashp->cpage->page)[0]) { hashp->cbucket++; hashp->cpage = NULL; } } } return (0); } val->size = collect_data(hashp, bufp, (int)len, set_current); if (val->size == (size_t)-1) return (-1); if (save_p->addr != save_addr) { /* We are pretty short on buffers. */ errno = EINVAL; /* OUT OF BUFFERS */ return (-1); } memmove(hashp->tmp_buf, (save_p->page) + off, (size_t)len); val->data = (uint8_t *)hashp->tmp_buf; return (0); } /* * Count how big the total datasize is by recursing through the pages. Then * allocate a buffer and copy the data as you recurse up. */ static int collect_data(HTAB *hashp, BUFHEAD *bufp, int len, int set) { uint16_t *bp; char *p; BUFHEAD *xbp; uint16_t save_addr; int mylen, totlen; p = bufp->page; bp = (uint16_t *)(void *)p; mylen = hashp->BSIZE - bp[1]; save_addr = bufp->addr; if (bp[2] == FULL_KEY_DATA) { /* End of Data */ totlen = len + mylen; if (hashp->tmp_buf) free(hashp->tmp_buf); if ((hashp->tmp_buf = calloc(1, (size_t)totlen)) == NULL) return (-1); if (set) { hashp->cndx = 1; if (bp[0] == 2) { /* No more buckets in chain */ hashp->cpage = NULL; hashp->cbucket++; } else { hashp->cpage = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!hashp->cpage) return (-1); else if (!((uint16_t *)(void *)hashp->cpage->page)[0]) { hashp->cbucket++; hashp->cpage = NULL; } } } } else { xbp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!xbp || ((totlen = collect_data(hashp, xbp, len + mylen, set)) < 1)) return (-1); } if (bufp->addr != save_addr) { errno = EINVAL; /* Out of buffers. */ return (-1); } memmove(&hashp->tmp_buf[len], (bufp->page) + bp[1], (size_t)mylen); return (totlen); } /* * Fill in the key and data for this big pair. */ int __big_keydata(HTAB *hashp, BUFHEAD *bufp, DBT *key, DBT *val, int set) { key->size = collect_key(hashp, bufp, 0, val, set); if (key->size == (size_t)-1) return (-1); key->data = (uint8_t *)hashp->tmp_key; return (0); } /* * Count how big the total key size is by recursing through the pages. Then * collect the data, allocate a buffer and copy the key as you recurse up. */ static int collect_key(HTAB *hashp, BUFHEAD *bufp, int len, DBT *val, int set) { BUFHEAD *xbp; char *p; int mylen, totlen; uint16_t *bp, save_addr; p = bufp->page; bp = (uint16_t *)(void *)p; mylen = hashp->BSIZE - bp[1]; save_addr = bufp->addr; totlen = len + mylen; if (bp[2] == FULL_KEY || bp[2] == FULL_KEY_DATA) { /* End of Key. */ if (hashp->tmp_key != NULL) free(hashp->tmp_key); if ((hashp->tmp_key = calloc(1, (size_t)totlen)) == NULL) return (-1); if (__big_return(hashp, bufp, 1, val, set)) return (-1); } else { xbp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!xbp || ((totlen = collect_key(hashp, xbp, totlen, val, set)) < 1)) return (-1); } if (bufp->addr != save_addr) { errno = EINVAL; /* MIS -- OUT OF BUFFERS */ return (-1); } memmove(&hashp->tmp_key[len], (bufp->page) + bp[1], (size_t)mylen); return (totlen); } /* * Returns: * 0 => OK * -1 => error */ int __big_split( HTAB *hashp, BUFHEAD *op, /* Pointer to where to put keys that go in old bucket */ BUFHEAD *np, /* Pointer to new bucket page */ /* Pointer to first page containing the big key/data */ BUFHEAD *big_keyp, int addr, /* Address of big_keyp */ uint32_t obucket,/* Old Bucket */ SPLIT_RETURN *ret ) { BUFHEAD *tmpp; uint16_t *tp; BUFHEAD *bp; DBT key, val; uint32_t change; uint16_t free_space, n, off; size_t temp; bp = big_keyp; /* Now figure out where the big key/data goes */ if (__big_keydata(hashp, big_keyp, &key, &val, 0)) return (-1); change = (__call_hash(hashp, key.data, (int)key.size) != obucket); if ((ret->next_addr = __find_last_page(hashp, &big_keyp)) != 0) { if (!(ret->nextp = __get_buf(hashp, (uint32_t)ret->next_addr, big_keyp, 0))) return (-1); } else ret->nextp = NULL; /* Now make one of np/op point to the big key/data pair */ _DIAGASSERT(np->ovfl == NULL); if (change) tmpp = np; else tmpp = op; tmpp->flags |= BUF_MOD; #ifdef DEBUG1 (void)fprintf(stderr, "BIG_SPLIT: %d->ovfl was %d is now %d\n", tmpp->addr, (tmpp->ovfl ? tmpp->ovfl->addr : 0), (bp ? bp->addr : 0)); #endif tmpp->ovfl = bp; /* one of op/np point to big_keyp */ tp = (uint16_t *)(void *)tmpp->page; _DIAGASSERT(FREESPACE(tp) >= OVFLSIZE); n = tp[0]; off = OFFSET(tp); free_space = FREESPACE(tp); tp[++n] = (uint16_t)addr; tp[++n] = OVFLPAGE; tp[0] = n; OFFSET(tp) = off; temp = free_space - OVFLSIZE; _DBFIT(temp, uint16_t); FREESPACE(tp) = (uint16_t)temp; /* * Finally, set the new and old return values. BIG_KEYP contains a * pointer to the last page of the big key_data pair. Make sure that * big_keyp has no following page (2 elements) or create an empty * following page. */ ret->newp = np; ret->oldp = op; tp = (uint16_t *)(void *)big_keyp->page; big_keyp->flags |= BUF_MOD; if (tp[0] > 2) { /* * There may be either one or two offsets on this page. If * there is one, then the overflow page is linked on normally * and tp[4] is OVFLPAGE. If there are two, tp[4] contains * the second offset and needs to get stuffed in after the * next overflow page is added. */ n = tp[4]; free_space = FREESPACE(tp); off = OFFSET(tp); tp[0] -= 2; temp = free_space + OVFLSIZE; _DBFIT(temp, uint16_t); FREESPACE(tp) = (uint16_t)temp; OFFSET(tp) = off; tmpp = __add_ovflpage(hashp, big_keyp); if (!tmpp) return (-1); tp[4] = n; } else tmpp = big_keyp; if (change) ret->newp = tmpp; else ret->oldp = tmpp; return (0); } libnbcompat-20180822/db/hash/hash_buf.c0000644000175000017500000002121013355271171017740 0ustar jgoerzenjgoerzen/* $NetBSD: hash_buf.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: hash_buf.c,v 1.14 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash_buf.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); /* * PACKAGE: hash * * DESCRIPTION: * Contains buffer management * * ROUTINES: * External * __buf_init * __get_buf * __buf_free * __reclaim_buf * Internal * newbuf */ #include #include #include #include #include #include #include #include "hash.h" #include "page.h" #include "extern.h" static BUFHEAD *newbuf(HTAB *, uint32_t, BUFHEAD *); /* Unlink B from its place in the lru */ #define BUF_REMOVE(B) { \ (B)->prev->next = (B)->next; \ (B)->next->prev = (B)->prev; \ } /* Insert B after P */ #define BUF_INSERT(B, P) { \ (B)->next = (P)->next; \ (B)->prev = (P); \ (P)->next = (B); \ (B)->next->prev = (B); \ } #define MRU hashp->bufhead.next #define LRU hashp->bufhead.prev #define MRU_INSERT(B) BUF_INSERT((B), &hashp->bufhead) #define LRU_INSERT(B) BUF_INSERT((B), LRU) /* * We are looking for a buffer with address "addr". If prev_bp is NULL, then * address is a bucket index. If prev_bp is not NULL, then it points to the * page previous to an overflow page that we are trying to find. * * CAVEAT: The buffer header accessed via prev_bp's ovfl field may no longer * be valid. Therefore, you must always verify that its address matches the * address you are seeking. */ BUFHEAD * __get_buf( HTAB *hashp, uint32_t addr, BUFHEAD *prev_bp, int newpage /* If prev_bp set, indicates a new overflow page. */ ) { BUFHEAD *bp; uint32_t is_disk_mask; int is_disk, segment_ndx = 0; /* pacify gcc */ SEGMENT segp = NULL; /* pacify gcc */ is_disk = 0; is_disk_mask = 0; if (prev_bp) { bp = prev_bp->ovfl; if (!bp || (bp->addr != addr)) bp = NULL; if (!newpage) is_disk = BUF_DISK; } else { /* Grab buffer out of directory */ segment_ndx = addr & (hashp->SGSIZE - 1); /* valid segment ensured by __call_hash() */ segp = hashp->dir[addr >> hashp->SSHIFT]; _DIAGASSERT(segp != NULL); bp = PTROF(segp[segment_ndx]); is_disk_mask = ISDISK(segp[segment_ndx]); is_disk = is_disk_mask || !hashp->new_file; } if (!bp) { bp = newbuf(hashp, addr, prev_bp); if (!bp || __get_page(hashp, bp->page, addr, !prev_bp, is_disk, 0)) return (NULL); if (!prev_bp) segp[segment_ndx] = (BUFHEAD *)(void *)((u_long)bp | is_disk_mask); } else { BUF_REMOVE(bp); MRU_INSERT(bp); } return (bp); } /* * We need a buffer for this page. Either allocate one, or evict a resident * one (if we have as many buffers as we're allowed) and put this one in. * * If newbuf finds an error (returning NULL), it also sets errno. */ static BUFHEAD * newbuf(HTAB *hashp, uint32_t addr, BUFHEAD *prev_bp) { BUFHEAD *bp; /* The buffer we're going to use */ BUFHEAD *xbp; /* Temp pointer */ BUFHEAD *next_xbp; SEGMENT segp; int segment_ndx; uint16_t oaddr, *shortp; oaddr = 0; bp = LRU; /* * If LRU buffer is pinned, the buffer pool is too small. We need to * allocate more buffers. */ if (hashp->nbufs || (bp->flags & BUF_PIN)) { /* Allocate a new one */ if ((bp = calloc(1, sizeof(BUFHEAD))) == NULL) return (NULL); if ((bp->page = calloc(1, (size_t)hashp->BSIZE)) == NULL) { free(bp); return (NULL); } if (hashp->nbufs) hashp->nbufs--; } else { /* Kick someone out */ BUF_REMOVE(bp); /* * If this is an overflow page with addr 0, it's already been * flushed back in an overflow chain and initialized. */ if ((bp->addr != 0) || (bp->flags & BUF_BUCKET)) { /* * Set oaddr before __put_page so that you get it * before bytes are swapped. */ shortp = (uint16_t *)(void *)bp->page; if (shortp[0]) oaddr = shortp[shortp[0] - 1]; if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page, bp->addr, (int)IS_BUCKET(bp->flags), 0)) return (NULL); /* * Update the pointer to this page (i.e. invalidate it). * * If this is a new file (i.e. we created it at open * time), make sure that we mark pages which have been * written to disk so we retrieve them from disk later, * rather than allocating new pages. */ if (IS_BUCKET(bp->flags)) { segment_ndx = bp->addr & (hashp->SGSIZE - 1); segp = hashp->dir[bp->addr >> hashp->SSHIFT]; _DIAGASSERT(segp != NULL); if (hashp->new_file && ((bp->flags & BUF_MOD) || ISDISK(segp[segment_ndx]))) segp[segment_ndx] = (BUFHEAD *)BUF_DISK; else segp[segment_ndx] = NULL; } /* * Since overflow pages can only be access by means of * their bucket, free overflow pages associated with * this bucket. */ for (xbp = bp; xbp->ovfl;) { next_xbp = xbp->ovfl; xbp->ovfl = 0; xbp = next_xbp; /* Check that ovfl pointer is up date. */ if (IS_BUCKET(xbp->flags) || (oaddr != xbp->addr)) break; shortp = (uint16_t *)(void *)xbp->page; if (shortp[0]) /* set before __put_page */ oaddr = shortp[shortp[0] - 1]; if ((xbp->flags & BUF_MOD) && __put_page(hashp, xbp->page, xbp->addr, 0, 0)) return (NULL); xbp->addr = 0; xbp->flags = 0; BUF_REMOVE(xbp); LRU_INSERT(xbp); } } } /* Now assign this buffer */ bp->addr = addr; #ifdef DEBUG1 (void)fprintf(stderr, "NEWBUF1: %d->ovfl was %d is now %d\n", bp->addr, (bp->ovfl ? bp->ovfl->addr : 0), 0); #endif bp->ovfl = NULL; if (prev_bp) { /* * If prev_bp is set, this is an overflow page, hook it in to * the buffer overflow links. */ #ifdef DEBUG1 (void)fprintf(stderr, "NEWBUF2: %d->ovfl was %d is now %d\n", prev_bp->addr, (prev_bp->ovfl ? prev_bp->ovfl->addr : 0), (bp ? bp->addr : 0)); #endif prev_bp->ovfl = bp; bp->flags = 0; } else bp->flags = BUF_BUCKET; MRU_INSERT(bp); return (bp); } void __buf_init(HTAB *hashp, u_int nbytes) { BUFHEAD *bfp; int npages; bfp = &(hashp->bufhead); npages = (unsigned int)(nbytes + hashp->BSIZE - 1) >> hashp->BSHIFT; npages = MAX(npages, MIN_BUFFERS); hashp->nbufs = npages; bfp->next = bfp; bfp->prev = bfp; /* * This space is calloc'd so these are already null. * * bfp->ovfl = NULL; * bfp->flags = 0; * bfp->page = NULL; * bfp->addr = 0; */ } int __buf_free(HTAB *hashp, int do_free, int to_disk) { BUFHEAD *bp; /* Need to make sure that buffer manager has been initialized */ if (!LRU) return (0); for (bp = LRU; bp != &hashp->bufhead;) { /* Check that the buffer is valid */ if (bp->addr || IS_BUCKET(bp->flags)) { if (to_disk && (bp->flags & BUF_MOD) && __put_page(hashp, bp->page, bp->addr, IS_BUCKET(bp->flags), 0)) return (-1); } /* Check if we are freeing stuff */ if (do_free) { if (bp->page) free(bp->page); BUF_REMOVE(bp); free(bp); bp = LRU; } else bp = bp->prev; } return (0); } void __reclaim_buf(HTAB *hashp, BUFHEAD *bp) { bp->ovfl = 0; bp->addr = 0; bp->flags = 0; BUF_REMOVE(bp); LRU_INSERT(bp); } libnbcompat-20180822/db/hash/hash_page.c0000644000175000017500000005754613355271171020125 0ustar jgoerzenjgoerzen/* $NetBSD: hash_page.c,v 1.6 2010/04/20 00:32:23 joerg Exp $ */ /* NetBSD: hash_page.c,v 1.23 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: hash_page.c,v 1.6 2010/04/20 00:32:23 joerg Exp $"); /* * PACKAGE: hashing * * DESCRIPTION: * Page manipulation for hashing package. * * ROUTINES: * * External * __get_page * __add_ovflpage * Internal * overflow_page * open_temp */ #include #include #include #include #include #include #include #include #include #include #include #include "hash.h" #include "page.h" #include "extern.h" #ifdef BROKEN_PREAD #include "../pread.c" #endif #ifdef BROKEN_PWRITE #include "../pwrite.c" #endif static uint32_t *fetch_bitmap(HTAB *, int); static uint32_t first_free(uint32_t); static int open_temp(HTAB *); static uint16_t overflow_page(HTAB *); static void putpair(char *, const DBT *, const DBT *); static void squeeze_key(uint16_t *, const DBT *, const DBT *); static int ugly_split(HTAB *, uint32_t, BUFHEAD *, BUFHEAD *, int, int); #define PAGE_INIT(P) { \ ((uint16_t *)(void *)(P))[0] = 0; \ temp = 3 * sizeof(uint16_t); \ _DIAGASSERT(hashp->BSIZE >= temp); \ ((uint16_t *)(void *)(P))[1] = (uint16_t)(hashp->BSIZE - temp); \ ((uint16_t *)(void *)(P))[2] = hashp->BSIZE; \ } /* * This is called AFTER we have verified that there is room on the page for * the pair (PAIRFITS has returned true) so we go right ahead and start moving * stuff on. */ static void putpair(char *p, const DBT *key, const DBT *val) { uint16_t *bp, n, off; size_t temp; bp = (uint16_t *)(void *)p; /* Enter the key first. */ n = bp[0]; temp = OFFSET(bp); _DIAGASSERT(temp >= key->size); off = (uint16_t)(temp - key->size); memmove(p + off, key->data, key->size); bp[++n] = off; /* Now the data. */ _DIAGASSERT(off >= val->size); off -= (uint16_t)val->size; memmove(p + off, val->data, val->size); bp[++n] = off; /* Adjust page info. */ bp[0] = n; temp = (n + 3) * sizeof(uint16_t); _DIAGASSERT(off >= temp); bp[n + 1] = (uint16_t)(off - temp); bp[n + 2] = off; } /* * Returns: * 0 OK * -1 error */ int __delpair(HTAB *hashp, BUFHEAD *bufp, int ndx) { uint16_t *bp, newoff; int n; uint16_t pairlen; size_t temp; bp = (uint16_t *)(void *)bufp->page; n = bp[0]; if (bp[ndx + 1] < REAL_KEY) return (__big_delete(hashp, bufp)); if (ndx != 1) newoff = bp[ndx - 1]; else newoff = hashp->BSIZE; pairlen = newoff - bp[ndx + 1]; if (ndx != (n - 1)) { /* Hard Case -- need to shuffle keys */ int i; char *src = bufp->page + (int)OFFSET(bp); char *dst = src + (int)pairlen; memmove(dst, src, (size_t)(bp[ndx + 1] - OFFSET(bp))); /* Now adjust the pointers */ for (i = ndx + 2; i <= n; i += 2) { if (bp[i + 1] == OVFLPAGE) { bp[i - 2] = bp[i]; bp[i - 1] = bp[i + 1]; } else { bp[i - 2] = bp[i] + pairlen; bp[i - 1] = bp[i + 1] + pairlen; } } } /* Finally adjust the page data */ bp[n] = OFFSET(bp) + pairlen; temp = bp[n + 1] + pairlen + 2 * sizeof(uint16_t); _DIAGASSERT(temp <= 0xffff); bp[n - 1] = (uint16_t)temp; bp[0] = n - 2; hashp->NKEYS--; bufp->flags |= BUF_MOD; return (0); } /* * Returns: * 0 ==> OK * -1 ==> Error */ int __split_page(HTAB *hashp, uint32_t obucket, uint32_t nbucket) { BUFHEAD *new_bufp, *old_bufp; uint16_t *ino; char *np; DBT key, val; int n, ndx, retval; uint16_t copyto, diff, off, moved; char *op; size_t temp; copyto = (uint16_t)hashp->BSIZE; off = (uint16_t)hashp->BSIZE; old_bufp = __get_buf(hashp, obucket, NULL, 0); if (old_bufp == NULL) return (-1); new_bufp = __get_buf(hashp, nbucket, NULL, 0); if (new_bufp == NULL) return (-1); old_bufp->flags |= (BUF_MOD | BUF_PIN); new_bufp->flags |= (BUF_MOD | BUF_PIN); ino = (uint16_t *)(void *)(op = old_bufp->page); np = new_bufp->page; moved = 0; for (n = 1, ndx = 1; n < ino[0]; n += 2) { if (ino[n + 1] < REAL_KEY) { retval = ugly_split(hashp, obucket, old_bufp, new_bufp, (int)copyto, (int)moved); old_bufp->flags &= ~BUF_PIN; new_bufp->flags &= ~BUF_PIN; return (retval); } key.data = (uint8_t *)op + ino[n]; key.size = off - ino[n]; if (__call_hash(hashp, key.data, (int)key.size) == obucket) { /* Don't switch page */ diff = copyto - off; if (diff) { copyto = ino[n + 1] + diff; memmove(op + copyto, op + ino[n + 1], (size_t)(off - ino[n + 1])); ino[ndx] = copyto + ino[n] - ino[n + 1]; ino[ndx + 1] = copyto; } else copyto = ino[n + 1]; ndx += 2; } else { /* Switch page */ val.data = (uint8_t *)op + ino[n + 1]; val.size = ino[n] - ino[n + 1]; putpair(np, &key, &val); moved += 2; } off = ino[n + 1]; } /* Now clean up the page */ ino[0] -= moved; temp = sizeof(uint16_t) * (ino[0] + 3); _DIAGASSERT(copyto >= temp); FREESPACE(ino) = (uint16_t)(copyto - temp); OFFSET(ino) = copyto; #ifdef DEBUG3 (void)fprintf(stderr, "split %d/%d\n", ((uint16_t *)np)[0] / 2, ((uint16_t *)op)[0] / 2); #endif /* unpin both pages */ old_bufp->flags &= ~BUF_PIN; new_bufp->flags &= ~BUF_PIN; return (0); } /* * Called when we encounter an overflow or big key/data page during split * handling. This is special cased since we have to begin checking whether * the key/data pairs fit on their respective pages and because we may need * overflow pages for both the old and new pages. * * The first page might be a page with regular key/data pairs in which case * we have a regular overflow condition and just need to go on to the next * page or it might be a big key/data pair in which case we need to fix the * big key/data pair. * * Returns: * 0 ==> success * -1 ==> failure */ static int ugly_split( HTAB *hashp, uint32_t obucket, /* Same as __split_page. */ BUFHEAD *old_bufp, BUFHEAD *new_bufp, int copyto, /* First byte on page which contains key/data values. */ int moved /* Number of pairs moved to new page. */ ) { BUFHEAD *bufp; /* Buffer header for ino */ uint16_t *ino; /* Page keys come off of */ uint16_t *np; /* New page */ uint16_t *op; /* Page keys go on to if they aren't moving */ size_t temp; BUFHEAD *last_bfp; /* Last buf header OVFL needing to be freed */ DBT key, val; SPLIT_RETURN ret; uint16_t n, off, ov_addr, scopyto; char *cino; /* Character value of ino */ bufp = old_bufp; ino = (uint16_t *)(void *)old_bufp->page; np = (uint16_t *)(void *)new_bufp->page; op = (uint16_t *)(void *)old_bufp->page; last_bfp = NULL; scopyto = (uint16_t)copyto; /* ANSI */ n = ino[0] - 1; while (n < ino[0]) { if (ino[2] < REAL_KEY && ino[2] != OVFLPAGE) { if (__big_split(hashp, old_bufp, new_bufp, bufp, (int)bufp->addr, obucket, &ret)) return (-1); old_bufp = ret.oldp; if (!old_bufp) return (-1); op = (uint16_t *)(void *)old_bufp->page; new_bufp = ret.newp; if (!new_bufp) return (-1); np = (uint16_t *)(void *)new_bufp->page; bufp = ret.nextp; if (!bufp) return (0); cino = (char *)bufp->page; ino = (uint16_t *)(void *)cino; last_bfp = ret.nextp; } else if (ino[n + 1] == OVFLPAGE) { ov_addr = ino[n]; /* * Fix up the old page -- the extra 2 are the fields * which contained the overflow information. */ ino[0] -= (moved + 2); temp = sizeof(uint16_t) * (ino[0] + 3); _DIAGASSERT(scopyto >= temp); FREESPACE(ino) = (uint16_t)(scopyto - temp); OFFSET(ino) = scopyto; bufp = __get_buf(hashp, (uint32_t)ov_addr, bufp, 0); if (!bufp) return (-1); ino = (uint16_t *)(void *)bufp->page; n = 1; scopyto = hashp->BSIZE; moved = 0; if (last_bfp) __free_ovflpage(hashp, last_bfp); last_bfp = bufp; } /* Move regular sized pairs of there are any */ off = hashp->BSIZE; for (n = 1; (n < ino[0]) && (ino[n + 1] >= REAL_KEY); n += 2) { cino = (char *)(void *)ino; key.data = (uint8_t *)cino + ino[n]; key.size = off - ino[n]; val.data = (uint8_t *)cino + ino[n + 1]; val.size = ino[n] - ino[n + 1]; off = ino[n + 1]; if (__call_hash(hashp, key.data, (int)key.size) == obucket) { /* Keep on old page */ if (PAIRFITS(op, (&key), (&val))) putpair((char *)(void *)op, &key, &val); else { old_bufp = __add_ovflpage(hashp, old_bufp); if (!old_bufp) return (-1); op = (uint16_t *)(void *)old_bufp->page; putpair((char *)(void *)op, &key, &val); } old_bufp->flags |= BUF_MOD; } else { /* Move to new page */ if (PAIRFITS(np, (&key), (&val))) putpair((char *)(void *)np, &key, &val); else { new_bufp = __add_ovflpage(hashp, new_bufp); if (!new_bufp) return (-1); np = (uint16_t *)(void *)new_bufp->page; putpair((char *)(void *)np, &key, &val); } new_bufp->flags |= BUF_MOD; } } } if (last_bfp) __free_ovflpage(hashp, last_bfp); return (0); } /* * Add the given pair to the page * * Returns: * 0 ==> OK * 1 ==> failure */ int __addel(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const DBT *val) { uint16_t *bp, *sop; int do_expand; bp = (uint16_t *)(void *)bufp->page; do_expand = 0; while (bp[0] && (bp[2] < REAL_KEY || bp[bp[0]] < REAL_KEY)) /* Exception case */ if (bp[2] == FULL_KEY_DATA && bp[0] == 2) /* This is the last page of a big key/data pair and we need to add another page */ break; else if (bp[2] < REAL_KEY && bp[bp[0]] != OVFLPAGE) { bufp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!bufp) return (-1); bp = (uint16_t *)(void *)bufp->page; } else if (bp[bp[0]] != OVFLPAGE) { /* Short key/data pairs, no more pages */ break; } else { /* Try to squeeze key on this page */ if (bp[2] >= REAL_KEY && FREESPACE(bp) >= PAIRSIZE(key, val)) { squeeze_key(bp, key, val); goto stats; } else { bufp = __get_buf(hashp, (uint32_t)bp[bp[0] - 1], bufp, 0); if (!bufp) return (-1); bp = (uint16_t *)(void *)bufp->page; } } if (PAIRFITS(bp, key, val)) putpair(bufp->page, key, val); else { do_expand = 1; bufp = __add_ovflpage(hashp, bufp); if (!bufp) return (-1); sop = (uint16_t *)(void *)bufp->page; if (PAIRFITS(sop, key, val)) putpair((char *)(void *)sop, key, val); else if (__big_insert(hashp, bufp, key, val)) return (-1); } stats: bufp->flags |= BUF_MOD; /* * If the average number of keys per bucket exceeds the fill factor, * expand the table. */ hashp->NKEYS++; if (do_expand || (hashp->NKEYS / (hashp->MAX_BUCKET + 1) > hashp->FFACTOR)) return (__expand_table(hashp)); return (0); } /* * * Returns: * pointer on success * NULL on error */ BUFHEAD * __add_ovflpage(HTAB *hashp, BUFHEAD *bufp) { uint16_t *sp; uint16_t ndx, ovfl_num; size_t temp; #ifdef DEBUG1 int tmp1, tmp2; #endif sp = (uint16_t *)(void *)bufp->page; /* Check if we are dynamically determining the fill factor */ if (hashp->FFACTOR == DEF_FFACTOR) { hashp->FFACTOR = (uint32_t)sp[0] >> 1; if (hashp->FFACTOR < MIN_FFACTOR) hashp->FFACTOR = MIN_FFACTOR; } bufp->flags |= BUF_MOD; ovfl_num = overflow_page(hashp); #ifdef DEBUG1 tmp1 = bufp->addr; tmp2 = bufp->ovfl ? bufp->ovfl->addr : 0; #endif if (!ovfl_num || !(bufp->ovfl = __get_buf(hashp, (uint32_t)ovfl_num, bufp, 1))) return (NULL); bufp->ovfl->flags |= BUF_MOD; #ifdef DEBUG1 (void)fprintf(stderr, "ADDOVFLPAGE: %d->ovfl was %d is now %d\n", tmp1, tmp2, bufp->ovfl->addr); #endif ndx = sp[0]; /* * Since a pair is allocated on a page only if there's room to add * an overflow page, we know that the OVFL information will fit on * the page. */ sp[ndx + 4] = OFFSET(sp); temp = FREESPACE(sp); _DIAGASSERT(temp >= OVFLSIZE); sp[ndx + 3] = (uint16_t)(temp - OVFLSIZE); sp[ndx + 1] = ovfl_num; sp[ndx + 2] = OVFLPAGE; sp[0] = ndx + 2; #ifdef HASH_STATISTICS hash_overflows++; #endif return (bufp->ovfl); } /* * Returns: * 0 indicates SUCCESS * -1 indicates FAILURE */ int __get_page(HTAB *hashp, char *p, uint32_t bucket, int is_bucket, int is_disk, int is_bitmap) { int fd, page, size; ssize_t rsize; uint16_t *bp; size_t temp; fd = hashp->fp; size = hashp->BSIZE; if ((fd == -1) || !is_disk) { PAGE_INIT(p); return (0); } if (is_bucket) page = BUCKET_TO_PAGE(bucket); else page = OADDR_TO_PAGE(bucket); if ((rsize = pread(fd, p, (size_t)size, (off_t)page << hashp->BSHIFT)) == -1) return (-1); bp = (uint16_t *)(void *)p; if (!rsize) bp[0] = 0; /* We hit the EOF, so initialize a new page */ else if (rsize != size) { errno = EFTYPE; return (-1); } if (!is_bitmap && !bp[0]) { PAGE_INIT(p); } else if (hashp->LORDER != BYTE_ORDER) { int i, max; if (is_bitmap) { max = (uint32_t)hashp->BSIZE >> 2; /* divide by 4 */ for (i = 0; i < max; i++) M_32_SWAP(((int *)(void *)p)[i]); } else { M_16_SWAP(bp[0]); max = bp[0] + 2; for (i = 1; i <= max; i++) M_16_SWAP(bp[i]); } } return (0); } /* * Write page p to disk * * Returns: * 0 ==> OK * -1 ==>failure */ int __put_page(HTAB *hashp, char *p, uint32_t bucket, int is_bucket, int is_bitmap) { int fd, page, size; ssize_t wsize; size = hashp->BSIZE; if ((hashp->fp == -1) && open_temp(hashp)) return (-1); fd = hashp->fp; if (hashp->LORDER != BYTE_ORDER) { int i; int max; if (is_bitmap) { max = (uint32_t)hashp->BSIZE >> 2; /* divide by 4 */ for (i = 0; i < max; i++) M_32_SWAP(((int *)(void *)p)[i]); } else { max = ((uint16_t *)(void *)p)[0] + 2; for (i = 0; i <= max; i++) M_16_SWAP(((uint16_t *)(void *)p)[i]); } } if (is_bucket) page = BUCKET_TO_PAGE(bucket); else page = OADDR_TO_PAGE(bucket); if ((wsize = pwrite(fd, p, (size_t)size, (off_t)page << hashp->BSHIFT)) == -1) /* Errno is set */ return (-1); if (wsize != size) { errno = EFTYPE; return (-1); } return (0); } #define BYTE_MASK ((1 << INT_BYTE_SHIFT) -1) /* * Initialize a new bitmap page. Bitmap pages are left in memory * once they are read in. */ int __ibitmap(HTAB *hashp, int pnum, int nbits, int ndx) { uint32_t *ip; int clearbytes, clearints; if ((ip = malloc((size_t)hashp->BSIZE)) == NULL) return (1); hashp->nmaps++; clearints = ((uint32_t)(nbits - 1) >> INT_BYTE_SHIFT) + 1; clearbytes = clearints << INT_TO_BYTE; (void)memset(ip, 0, (size_t)clearbytes); (void)memset(((char *)(void *)ip) + clearbytes, 0xFF, (size_t)(hashp->BSIZE - clearbytes)); ip[clearints - 1] = ALL_SET << (nbits & BYTE_MASK); SETBIT(ip, 0); hashp->BITMAPS[ndx] = (uint16_t)pnum; hashp->mapp[ndx] = ip; return (0); } static uint32_t first_free(uint32_t map) { uint32_t i, mask; mask = 0x1; for (i = 0; i < BITS_PER_MAP; i++) { if (!(mask & map)) return (i); mask = mask << 1; } return (i); } static uint16_t overflow_page(HTAB *hashp) { uint32_t *freep = NULL; int max_free, offset, splitnum; uint16_t addr; int bit, first_page, free_bit, free_page, i, in_use_bits, j; #ifdef DEBUG2 int tmp1, tmp2; #endif splitnum = hashp->OVFL_POINT; max_free = hashp->SPARES[splitnum]; free_page = (uint32_t)(max_free - 1) >> (hashp->BSHIFT + BYTE_SHIFT); free_bit = (max_free - 1) & ((hashp->BSIZE << BYTE_SHIFT) - 1); /* Look through all the free maps to find the first free block */ first_page = (uint32_t)hashp->LAST_FREED >>(hashp->BSHIFT + BYTE_SHIFT); for ( i = first_page; i <= free_page; i++ ) { if (!(freep = (uint32_t *)hashp->mapp[i]) && !(freep = fetch_bitmap(hashp, i))) return (0); if (i == free_page) in_use_bits = free_bit; else in_use_bits = (hashp->BSIZE << BYTE_SHIFT) - 1; if (i == first_page) { bit = hashp->LAST_FREED & ((hashp->BSIZE << BYTE_SHIFT) - 1); j = bit / BITS_PER_MAP; bit = bit & ~(BITS_PER_MAP - 1); } else { bit = 0; j = 0; } for (; bit <= in_use_bits; j++, bit += BITS_PER_MAP) if (freep[j] != ALL_SET) goto found; } /* No Free Page Found */ hashp->LAST_FREED = hashp->SPARES[splitnum]; hashp->SPARES[splitnum]++; offset = hashp->SPARES[splitnum] - (splitnum ? hashp->SPARES[splitnum - 1] : 0); #define OVMSG "HASH: Out of overflow pages. Increase page size\n" if (offset > SPLITMASK) { if (++splitnum >= NCACHED) { (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); errno = EFBIG; return (0); } hashp->OVFL_POINT = splitnum; hashp->SPARES[splitnum] = hashp->SPARES[splitnum-1]; hashp->SPARES[splitnum-1]--; offset = 1; } /* Check if we need to allocate a new bitmap page */ if (free_bit == (hashp->BSIZE << BYTE_SHIFT) - 1) { free_page++; if (free_page >= NCACHED) { (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); errno = EFBIG; return (0); } /* * This is tricky. The 1 indicates that you want the new page * allocated with 1 clear bit. Actually, you are going to * allocate 2 pages from this map. The first is going to be * the map page, the second is the overflow page we were * looking for. The init_bitmap routine automatically, sets * the first bit of itself to indicate that the bitmap itself * is in use. We would explicitly set the second bit, but * don't have to if we tell init_bitmap not to leave it clear * in the first place. */ if (__ibitmap(hashp, (int)OADDR_OF(splitnum, offset), 1, free_page)) return (0); hashp->SPARES[splitnum]++; #ifdef DEBUG2 free_bit = 2; #endif offset++; if (offset > SPLITMASK) { if (++splitnum >= NCACHED) { (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); errno = EFBIG; return (0); } hashp->OVFL_POINT = splitnum; hashp->SPARES[splitnum] = hashp->SPARES[splitnum-1]; hashp->SPARES[splitnum-1]--; offset = 0; } } else { /* * Free_bit addresses the last used bit. Bump it to address * the first available bit. */ free_bit++; SETBIT(freep, free_bit); } /* Calculate address of the new overflow page */ addr = OADDR_OF(splitnum, offset); #ifdef DEBUG2 (void)fprintf(stderr, "OVERFLOW_PAGE: ADDR: %d BIT: %d PAGE %d\n", addr, free_bit, free_page); #endif return (addr); found: bit = bit + first_free(freep[j]); SETBIT(freep, bit); #ifdef DEBUG2 tmp1 = bit; tmp2 = i; #endif /* * Bits are addressed starting with 0, but overflow pages are addressed * beginning at 1. Bit is a bit addressnumber, so we need to increment * it to convert it to a page number. */ bit = 1 + bit + (i * (hashp->BSIZE << BYTE_SHIFT)); if (bit >= hashp->LAST_FREED) hashp->LAST_FREED = bit - 1; /* Calculate the split number for this page */ for (i = 0; (i < splitnum) && (bit > hashp->SPARES[i]); i++); offset = (i ? bit - hashp->SPARES[i - 1] : bit); if (offset >= SPLITMASK) { (void)write(STDERR_FILENO, OVMSG, sizeof(OVMSG) - 1); errno = EFBIG; return (0); /* Out of overflow pages */ } addr = OADDR_OF(i, offset); #ifdef DEBUG2 (void)fprintf(stderr, "OVERFLOW_PAGE: ADDR: %d BIT: %d PAGE %d\n", addr, tmp1, tmp2); #endif /* Allocate and return the overflow page */ return (addr); } /* * Mark this overflow page as free. */ void __free_ovflpage(HTAB *hashp, BUFHEAD *obufp) { uint16_t addr; uint32_t *freep; int bit_address, free_page, free_bit; uint16_t ndx; addr = obufp->addr; #ifdef DEBUG1 (void)fprintf(stderr, "Freeing %d\n", addr); #endif ndx = (((uint32_t)addr) >> SPLITSHIFT); bit_address = (ndx ? hashp->SPARES[ndx - 1] : 0) + (addr & SPLITMASK) - 1; if (bit_address < hashp->LAST_FREED) hashp->LAST_FREED = bit_address; free_page = ((uint32_t)bit_address >> (hashp->BSHIFT + BYTE_SHIFT)); free_bit = bit_address & ((hashp->BSIZE << BYTE_SHIFT) - 1); if (!(freep = hashp->mapp[free_page])) freep = fetch_bitmap(hashp, free_page); /* * This had better never happen. It means we tried to read a bitmap * that has already had overflow pages allocated off it, and we * failed to read it from the file. */ _DIAGASSERT(freep != NULL); CLRBIT(freep, free_bit); #ifdef DEBUG2 (void)fprintf(stderr, "FREE_OVFLPAGE: ADDR: %d BIT: %d PAGE %d\n", obufp->addr, free_bit, free_page); #endif __reclaim_buf(hashp, obufp); } /* * Returns: * 0 success * -1 failure */ static int open_temp(HTAB *hashp) { sigset_t set, oset; char *envtmp; #ifdef PATH_MAX char namestr[PATH_MAX]; #else char namestr[MAXPATHLEN]; #endif #if HAVE_ISSETUGID if (issetugid()) envtmp = NULL; else #endif envtmp = getenv("TMPDIR"); if (-1 == snprintf(namestr, sizeof(namestr), "%s/_hashXXXXXX", envtmp ? envtmp : _PATH_TMP)) return -1; /* Block signals; make sure file goes away at process exit. */ (void)sigfillset(&set); (void)sigprocmask(SIG_BLOCK, &set, &oset); if ((hashp->fp = mkstemp(namestr)) != -1) { (void)unlink(namestr); (void)fcntl(hashp->fp, F_SETFD, FD_CLOEXEC); } (void)sigprocmask(SIG_SETMASK, &oset, (sigset_t *)NULL); return (hashp->fp != -1 ? 0 : -1); } /* * We have to know that the key will fit, but the last entry on the page is * an overflow pair, so we need to shift things. */ static void squeeze_key(uint16_t *sp, const DBT *key, const DBT *val) { char *p; uint16_t free_space, n, off, pageno; size_t temp; p = (char *)(void *)sp; n = sp[0]; free_space = FREESPACE(sp); off = OFFSET(sp); pageno = sp[n - 1]; _DIAGASSERT(off >= key->size); off -= (uint16_t)key->size; sp[n - 1] = off; memmove(p + off, key->data, key->size); _DIAGASSERT(off >= val->size); off -= (uint16_t)val->size; sp[n] = off; memmove(p + off, val->data, val->size); sp[0] = n + 2; sp[n + 1] = pageno; sp[n + 2] = OVFLPAGE; temp = PAIRSIZE(key, val); _DIAGASSERT(free_space >= temp); FREESPACE(sp) = (uint16_t)(free_space - temp); OFFSET(sp) = off; } static uint32_t * fetch_bitmap(HTAB *hashp, int ndx) { if (ndx >= hashp->nmaps) return (NULL); if ((hashp->mapp[ndx] = malloc((size_t)hashp->BSIZE)) == NULL) return (NULL); if (__get_page(hashp, (char *)(void *)hashp->mapp[ndx], (uint32_t)hashp->BITMAPS[ndx], 0, 1, 1)) { free(hashp->mapp[ndx]); return (NULL); } return (hashp->mapp[ndx]); } #ifdef DEBUG4 void print_chain(HTAB *, uint32_t); void print_chain(HTAB *hashp, uint32_t addr) { BUFHEAD *bufp; uint16_t *bp, oaddr; (void)fprintf(stderr, "%d ", addr); bufp = __get_buf(hashp, addr, NULL, 0); bp = (uint16_t *)bufp->page; while (bp[0] && ((bp[bp[0]] == OVFLPAGE) || ((bp[0] > 2) && bp[2] < REAL_KEY))) { oaddr = bp[bp[0] - 1]; (void)fprintf(stderr, "%d ", (int)oaddr); bufp = __get_buf(hashp, (uint32_t)oaddr, bufp, 0); bp = (uint16_t *)bufp->page; } (void)fprintf(stderr, "\n"); } #endif libnbcompat-20180822/db/recno/0000755000175000017500000000000013355271171016204 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/recno/rec_search.c0000644000175000017500000000727613355271171020462 0ustar jgoerzenjgoerzen/* $NetBSD: rec_search.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_search.c,v 1.14 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_search.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include "recno.h" /* * __REC_SEARCH -- Search a btree for a key. * * Parameters: * t: tree to search * recno: key to find * op: search operation * * Returns: * EPG for matching record, if any, or the EPG for the location of the * key, if it were inserted into the tree. * * Returns: * The EPG for matching record, if any, or the EPG for the location * of the key, if it were inserted into the tree, is entered into * the bt_cur field of the tree. A pointer to the field is returned. */ EPG * __rec_search(BTREE *t, recno_t recno, enum SRCHOP op) { indx_t idx; PAGE *h; EPGNO *parent; RINTERNAL *r; pgno_t pg; indx_t top; recno_t total; int sverrno; BT_CLR(t); for (pg = P_ROOT, total = 0;;) { if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) goto err; if (h->flags & P_RLEAF) { t->bt_cur.page = h; t->bt_cur.index = recno - total; return (&t->bt_cur); } for (idx = 0, top = NEXTINDEX(h);;) { r = GETRINTERNAL(h, idx); if (++idx == top || total + r->nrecs > recno) break; total += r->nrecs; } BT_PUSH(t, pg, idx - 1); pg = r->pgno; switch (op) { case SDELETE: --GETRINTERNAL(h, (idx - 1))->nrecs; mpool_put(t->bt_mp, h, MPOOL_DIRTY); break; case SINSERT: ++GETRINTERNAL(h, (idx - 1))->nrecs; mpool_put(t->bt_mp, h, MPOOL_DIRTY); break; case SEARCH: mpool_put(t->bt_mp, h, 0); break; } } /* Try and recover the tree. */ err: sverrno = errno; if (op != SEARCH) while ((parent = BT_POP(t)) != NULL) { if ((h = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) break; if (op == SINSERT) --GETRINTERNAL(h, parent->index)->nrecs; else ++GETRINTERNAL(h, parent->index)->nrecs; mpool_put(t->bt_mp, h, MPOOL_DIRTY); } errno = sverrno; return (NULL); } libnbcompat-20180822/db/recno/rec_get.c0000644000175000017500000001603313355271171017763 0ustar jgoerzenjgoerzen/* $NetBSD: rec_get.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_get.c,v 1.16 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_get.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include #include #include #include #include "recno.h" /* * __REC_GET -- Get a record from the btree. * * Parameters: * dbp: pointer to access method * key: key to find * data: data to return * flag: currently unused * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. */ int __rec_get(const DB *dbp, const DBT *key, DBT *data, u_int flags) { BTREE *t; EPG *e; recno_t nrec; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Get currently doesn't take any flags, and keys of 0 are illegal. */ if (flags || (nrec = *(recno_t *)key->data) == 0) { errno = EINVAL; return (RET_ERROR); } /* * If we haven't seen this record yet, try to find it in the * original file. */ if (nrec > t->bt_nrecs) { if (F_ISSET(t, R_EOF | R_INMEM)) return (RET_SPECIAL); if ((status = t->bt_irec(t, nrec)) != RET_SUCCESS) return (status); } --nrec; if ((e = __rec_search(t, nrec, SEARCH)) == NULL) return (RET_ERROR); status = __rec_ret(t, e, 0, NULL, data); if (F_ISSET(t, B_DB_LOCK)) mpool_put(t->bt_mp, e->page, 0); else t->bt_pinned = e->page; return (status); } /* * __REC_FPIPE -- Get fixed length records from a pipe. * * Parameters: * t: tree * cnt: records to read * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_fpipe(BTREE *t, recno_t top) { DBT data; recno_t nrec; size_t len; int ch; uint8_t *p; if (t->bt_rdata.size < t->bt_reclen) { t->bt_rdata.data = t->bt_rdata.data == NULL ? malloc(t->bt_reclen) : realloc(t->bt_rdata.data, t->bt_reclen); if (t->bt_rdata.data == NULL) return (RET_ERROR); t->bt_rdata.size = t->bt_reclen; } data.data = t->bt_rdata.data; data.size = t->bt_reclen; for (nrec = t->bt_nrecs; nrec < top;) { len = t->bt_reclen; for (p = t->bt_rdata.data;; *p++ = ch) if ((ch = getc(t->bt_rfp)) == EOF || !--len) { if (ch != EOF) *p = ch; if (len != 0) memset(p, t->bt_bval, len); if (__rec_iput(t, nrec, &data, 0) != RET_SUCCESS) return (RET_ERROR); ++nrec; break; } if (ch == EOF) break; } if (nrec < top) { F_SET(t, R_EOF); return (RET_SPECIAL); } return (RET_SUCCESS); } /* * __REC_VPIPE -- Get variable length records from a pipe. * * Parameters: * t: tree * cnt: records to read * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_vpipe(BTREE *t, recno_t top) { DBT data; recno_t nrec; ptrdiff_t len; size_t sz; int bval, ch; uint8_t *p; bval = t->bt_bval; for (nrec = t->bt_nrecs; nrec < top; ++nrec) { for (p = t->bt_rdata.data, sz = t->bt_rdata.size;; *p++ = ch, --sz) { if ((ch = getc(t->bt_rfp)) == EOF || ch == bval) { data.data = t->bt_rdata.data; data.size = p - (uint8_t *)t->bt_rdata.data; if (ch == EOF && data.size == 0) break; if (__rec_iput(t, nrec, &data, 0) != RET_SUCCESS) return (RET_ERROR); break; } if (sz == 0) { len = p - (uint8_t *)t->bt_rdata.data; t->bt_rdata.size += (sz = 256); t->bt_rdata.data = t->bt_rdata.data == NULL ? malloc(t->bt_rdata.size) : realloc(t->bt_rdata.data, t->bt_rdata.size); if (t->bt_rdata.data == NULL) return (RET_ERROR); p = (uint8_t *)t->bt_rdata.data + len; } } if (ch == EOF) break; } if (nrec < top) { F_SET(t, R_EOF); return (RET_SPECIAL); } return (RET_SUCCESS); } /* * __REC_FMAP -- Get fixed length records from a file. * * Parameters: * t: tree * cnt: records to read * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_fmap(BTREE *t, recno_t top) { DBT data; recno_t nrec; uint8_t *sp, *ep, *p; size_t len; if (t->bt_rdata.size < t->bt_reclen) { t->bt_rdata.data = t->bt_rdata.data == NULL ? malloc(t->bt_reclen) : realloc(t->bt_rdata.data, t->bt_reclen); if (t->bt_rdata.data == NULL) return (RET_ERROR); t->bt_rdata.size = t->bt_reclen; } data.data = t->bt_rdata.data; data.size = t->bt_reclen; sp = (uint8_t *)t->bt_cmap; ep = (uint8_t *)t->bt_emap; for (nrec = t->bt_nrecs; nrec < top; ++nrec) { if (sp >= ep) { F_SET(t, R_EOF); return (RET_SPECIAL); } len = t->bt_reclen; for (p = t->bt_rdata.data; sp < ep && len > 0; *p++ = *sp++, --len); if (len != 0) memset(p, t->bt_bval, len); if (__rec_iput(t, nrec, &data, 0) != RET_SUCCESS) return (RET_ERROR); } t->bt_cmap = (caddr_t)sp; return (RET_SUCCESS); } /* * __REC_VMAP -- Get variable length records from a file. * * Parameters: * t: tree * cnt: records to read * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_vmap(BTREE *t, recno_t top) { DBT data; uint8_t *sp, *ep; recno_t nrec; int bval; sp = (uint8_t *)t->bt_cmap; ep = (uint8_t *)t->bt_emap; bval = t->bt_bval; for (nrec = t->bt_nrecs; nrec < top; ++nrec) { if (sp >= ep) { F_SET(t, R_EOF); return (RET_SPECIAL); } for (data.data = sp; sp < ep && *sp != bval; ++sp); data.size = sp - (uint8_t *)data.data; if (__rec_iput(t, nrec, &data, 0) != RET_SUCCESS) return (RET_ERROR); ++sp; } t->bt_cmap = (caddr_t)sp; return (RET_SUCCESS); } libnbcompat-20180822/db/recno/rec_delete.c0000644000175000017500000001256513355271171020454 0ustar jgoerzenjgoerzen/* $NetBSD: rec_delete.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_delete.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_delete.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include #include "recno.h" static int rec_rdelete(BTREE *, recno_t); /* * __REC_DELETE -- Delete the item(s) referenced by a key. * * Parameters: * dbp: pointer to access method * key: key to delete * flags: R_CURSOR if deleting what the cursor references * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. */ int __rec_delete(const DB *dbp, const DBT *key, u_int flags) { BTREE *t; recno_t nrec; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } switch(flags) { case 0: if ((nrec = *(recno_t *)key->data) == 0) goto einval; if (nrec > t->bt_nrecs) return (RET_SPECIAL); --nrec; status = rec_rdelete(t, nrec); break; case R_CURSOR: if (!F_ISSET(&t->bt_cursor, CURS_INIT)) goto einval; if (t->bt_nrecs == 0) return (RET_SPECIAL); status = rec_rdelete(t, t->bt_cursor.rcursor - 1); if (status == RET_SUCCESS) --t->bt_cursor.rcursor; break; default: einval: errno = EINVAL; return (RET_ERROR); } if (status == RET_SUCCESS) F_SET(t, B_MODIFIED | R_MODIFIED); return (status); } /* * REC_RDELETE -- Delete the data matching the specified key. * * Parameters: * tree: tree * nrec: record to delete * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. */ static int rec_rdelete(BTREE *t, recno_t nrec) { EPG *e; PAGE *h; int status; /* Find the record; __rec_search pins the page. */ if ((e = __rec_search(t, nrec, SDELETE)) == NULL) return (RET_ERROR); /* Delete the record. */ h = e->page; status = __rec_dleaf(t, h, (uint32_t)e->index); if (status != RET_SUCCESS) { mpool_put(t->bt_mp, h, 0); return (status); } mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } /* * __REC_DLEAF -- Delete a single record from a recno leaf page. * * Parameters: * t: tree * index: index on current page to delete * * Returns: * RET_SUCCESS, RET_ERROR. */ int __rec_dleaf(BTREE *t, PAGE *h, uint32_t idx) { RLEAF *rl; indx_t *ip, cnt, offset; uint32_t nbytes; char *from; void *to; size_t temp; /* * Delete a record from a recno leaf page. Internal records are never * deleted from internal pages, regardless of the records that caused * them to be added being deleted. Pages made empty by deletion are * not reclaimed. They are, however, made available for reuse. * * Pack the remaining entries at the end of the page, shift the indices * down, overwriting the deleted record and its index. If the record * uses overflow pages, make them available for reuse. */ to = rl = GETRLEAF(h, idx); if (rl->flags & P_BIGDATA && __ovfl_delete(t, rl->bytes) == RET_ERROR) return (RET_ERROR); nbytes = NRLEAF(rl); /* * Compress the key/data pairs. Compress and adjust the [BR]LEAF * offsets. Reset the headers. */ from = (char *)(void *)h + h->upper; memmove(from + nbytes, from, (size_t)((char *)to - from)); h->upper += nbytes; offset = h->linp[idx]; temp = &h->linp[idx] - (ip = &h->linp[0]); _DBFIT(temp, uint16_t); for (cnt = (uint16_t)temp; cnt--; ++ip) if (ip[0] < offset) ip[0] += nbytes; temp = &h->linp[NEXTINDEX(h)] - ip; _DBFIT(temp, uint16_t); for (cnt = (uint16_t)temp; --cnt; ++ip) ip[0] = ip[1] < offset ? ip[1] + nbytes : ip[1]; h->lower -= sizeof(indx_t); --t->bt_nrecs; return (RET_SUCCESS); } libnbcompat-20180822/db/recno/extern.h0000644000175000017500000000467113355271171017672 0ustar jgoerzenjgoerzen/* $NetBSD: extern.h,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: extern.h,v 1.8 2008/08/26 21:18:38 joerg Exp */ /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)extern.h 8.3 (Berkeley) 6/4/94 */ #include "../btree/extern.h" int __rec_close(DB *); int __rec_delete(const DB *, const DBT *, u_int); int __rec_dleaf(BTREE *, PAGE *, uint32_t); int __rec_fd(const DB *); int __rec_fmap(BTREE *, recno_t); int __rec_fout(BTREE *); int __rec_fpipe(BTREE *, recno_t); int __rec_get(const DB *, const DBT *, DBT *, u_int); int __rec_iput(BTREE *, recno_t, const DBT *, u_int); int __rec_put(const DB *dbp, DBT *, const DBT *, u_int); int __rec_ret(BTREE *, EPG *, recno_t, DBT *, DBT *); EPG *__rec_search(BTREE *, recno_t, enum SRCHOP); int __rec_seq(const DB *, DBT *, DBT *, u_int); int __rec_sync(const DB *, u_int); int __rec_vmap(BTREE *, recno_t); int __rec_vout(BTREE *); int __rec_vpipe(BTREE *, recno_t); libnbcompat-20180822/db/recno/rec_utils.c0000644000175000017500000000734113355271171020346 0ustar jgoerzenjgoerzen/* $NetBSD: rec_utils.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_utils.c,v 1.12 2008/09/10 17:52:36 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_utils.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include #include "recno.h" /* * __rec_ret -- * Build return data. * * Parameters: * t: tree * e: key/data pair to be returned * nrec: record number * key: user's key structure * data: user's data structure * * Returns: * RET_SUCCESS, RET_ERROR. */ int __rec_ret(BTREE *t, EPG *e, recno_t nrec, DBT *key, DBT *data) { RLEAF *rl; void *p; if (key == NULL) goto dataonly; /* We have to copy the key, it's not on the page. */ if (sizeof(recno_t) > t->bt_rkey.size) { p = (void *)(t->bt_rkey.data == NULL ? malloc(sizeof(recno_t)) : realloc(t->bt_rkey.data, sizeof(recno_t))); if (p == NULL) return (RET_ERROR); t->bt_rkey.data = p; t->bt_rkey.size = sizeof(recno_t); } memmove(t->bt_rkey.data, &nrec, sizeof(recno_t)); key->size = sizeof(recno_t); key->data = t->bt_rkey.data; dataonly: if (data == NULL) return (RET_SUCCESS); /* * We must copy big keys/data to make them contigous. Otherwise, * leave the page pinned and don't copy unless the user specified * concurrent access. */ rl = GETRLEAF(e->page, e->index); if (rl->flags & P_BIGDATA) { if (__ovfl_get(t, rl->bytes, &data->size, &t->bt_rdata.data, &t->bt_rdata.size)) return (RET_ERROR); data->data = t->bt_rdata.data; } else if (F_ISSET(t, B_DB_LOCK)) { /* Use +1 in case the first record retrieved is 0 length. */ if (rl->dsize + 1 > t->bt_rdata.size) { p = (void *)(t->bt_rdata.data == NULL ? malloc(rl->dsize + 1) : realloc(t->bt_rdata.data, rl->dsize + 1)); if (p == NULL) return (RET_ERROR); t->bt_rdata.data = p; t->bt_rdata.size = rl->dsize + 1; } memmove(t->bt_rdata.data, rl->bytes, rl->dsize); data->size = rl->dsize; data->data = t->bt_rdata.data; } else { data->size = rl->dsize; data->data = rl->bytes; } return (RET_SUCCESS); } libnbcompat-20180822/db/recno/rec_close.c0000644000175000017500000001154113355271171020310 0ustar jgoerzenjgoerzen/* $NetBSD: rec_close.c,v 1.2 2013/09/08 16:24:43 ryoon Exp $ */ /* NetBSD: rec_close.c,v 1.15 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_close.c,v 1.2 2013/09/08 16:24:43 ryoon Exp $"); #include #include #if HAVE_SYS_MMAN_H #include #endif #include #include #include #include #include #include #include "recno.h" /* * __REC_CLOSE -- Close a recno tree. * * Parameters: * dbp: pointer to access method * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_close(DB *dbp) { BTREE *t; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } if (__rec_sync(dbp, 0) == RET_ERROR) return (RET_ERROR); /* Committed to closing. */ status = RET_SUCCESS; #if !defined(__MINT__) if (F_ISSET(t, R_MEMMAPPED) && munmap(t->bt_smap, t->bt_msize)) status = RET_ERROR; #endif if (!F_ISSET(t, R_INMEM)) { if (F_ISSET(t, R_CLOSEFP)) { if (fclose(t->bt_rfp)) status = RET_ERROR; } else { if (close(t->bt_rfd)) status = RET_ERROR; } } if (__bt_close(dbp) == RET_ERROR) status = RET_ERROR; return (status); } /* * __REC_SYNC -- sync the recno tree to disk. * * Parameters: * dbp: pointer to access method * * Returns: * RET_SUCCESS, RET_ERROR. */ int __rec_sync(const DB *dbp, u_int flags) { struct iovec iov[2]; BTREE *t; DBT data, key; off_t off; recno_t scursor, trec; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } if (flags == R_RECNOSYNC) return (__bt_sync(dbp, 0)); if (F_ISSET(t, R_RDONLY | R_INMEM) || !F_ISSET(t, R_MODIFIED)) return (RET_SUCCESS); /* Read any remaining records into the tree. */ if (!F_ISSET(t, R_EOF) && t->bt_irec(t, MAX_REC_NUMBER) == RET_ERROR) return (RET_ERROR); /* Rewind the file descriptor. */ if (lseek(t->bt_rfd, (off_t)0, SEEK_SET) != 0) return (RET_ERROR); /* Save the cursor. */ scursor = t->bt_cursor.rcursor; key.size = sizeof(recno_t); key.data = &trec; if (F_ISSET(t, R_FIXLEN)) { /* * We assume that fixed length records are all fixed length. * Any that aren't are either EINVAL'd or corrected by the * record put code. */ status = (dbp->seq)(dbp, &key, &data, R_FIRST); while (status == RET_SUCCESS) { if (write(t->bt_rfd, data.data, data.size) != (ssize_t) data.size) return (RET_ERROR); status = (dbp->seq)(dbp, &key, &data, R_NEXT); } } else { iov[1].iov_base = &t->bt_bval; iov[1].iov_len = 1; status = (dbp->seq)(dbp, &key, &data, R_FIRST); while (status == RET_SUCCESS) { iov[0].iov_base = data.data; iov[0].iov_len = data.size; if (writev(t->bt_rfd, iov, 2) != (ssize_t) (data.size + 1)) return (RET_ERROR); status = (dbp->seq)(dbp, &key, &data, R_NEXT); } } /* Restore the cursor. */ t->bt_cursor.rcursor = scursor; if (status == RET_ERROR) return (RET_ERROR); if ((off = lseek(t->bt_rfd, (off_t)0, SEEK_CUR)) == -1) return (RET_ERROR); if (ftruncate(t->bt_rfd, off)) return (RET_ERROR); F_CLR(t, R_MODIFIED); return (RET_SUCCESS); } libnbcompat-20180822/db/recno/rec_seq.c0000644000175000017500000000730613355271171017777 0ustar jgoerzenjgoerzen/* $NetBSD: rec_seq.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_seq.c,v 1.14 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1991, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_seq.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include #include #include "recno.h" /* * __REC_SEQ -- Recno sequential scan interface. * * Parameters: * dbp: pointer to access method * key: key for positioning and return value * data: data return value * flags: R_CURSOR, R_FIRST, R_LAST, R_NEXT, R_PREV. * * Returns: * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. */ int __rec_seq(const DB *dbp, DBT *key, DBT *data, u_int flags) { BTREE *t; EPG *e; recno_t nrec; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } switch(flags) { case R_CURSOR: if ((nrec = *(recno_t *)key->data) == 0) goto einval; break; case R_NEXT: if (F_ISSET(&t->bt_cursor, CURS_INIT)) { nrec = t->bt_cursor.rcursor + 1; break; } /* FALLTHROUGH */ case R_FIRST: nrec = 1; break; case R_PREV: if (F_ISSET(&t->bt_cursor, CURS_INIT)) { if ((nrec = t->bt_cursor.rcursor - 1) == 0) return (RET_SPECIAL); break; } /* FALLTHROUGH */ case R_LAST: if (!F_ISSET(t, R_EOF | R_INMEM) && t->bt_irec(t, MAX_REC_NUMBER) == RET_ERROR) return (RET_ERROR); nrec = t->bt_nrecs; break; default: einval: errno = EINVAL; return (RET_ERROR); } if (t->bt_nrecs == 0 || nrec > t->bt_nrecs) { if (!F_ISSET(t, R_EOF | R_INMEM) && (status = t->bt_irec(t, nrec)) != RET_SUCCESS) return (status); if (t->bt_nrecs == 0 || nrec > t->bt_nrecs) return (RET_SPECIAL); } if ((e = __rec_search(t, nrec - 1, SEARCH)) == NULL) return (RET_ERROR); F_SET(&t->bt_cursor, CURS_INIT); t->bt_cursor.rcursor = nrec; status = __rec_ret(t, e, nrec, key, data); if (F_ISSET(t, B_DB_LOCK)) mpool_put(t->bt_mp, e->page, 0); else t->bt_pinned = e->page; return (status); } libnbcompat-20180822/db/recno/rec_open.c0000644000175000017500000001542213355271171020146 0ustar jgoerzenjgoerzen/* $NetBSD: rec_open.c,v 1.3 2013/09/08 16:24:43 ryoon Exp $ */ /* NetBSD: rec_open.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_open.c,v 1.3 2013/09/08 16:24:43 ryoon Exp $"); #include #if HAVE_SYS_MMAN_H #include #endif #include #include #include #include #include #include #include #include #include #include "recno.h" DB * __rec_open(const char *fname, int flags, mode_t mode, const RECNOINFO *openinfo, int dflags) { BTREE *t; BTREEINFO btopeninfo; DB *dbp; PAGE *h; struct stat sb; int rfd = -1; /* pacify gcc */ int sverrno; dbp = NULL; /* Open the user's file -- if this fails, we're done. */ if (fname != NULL) { if ((rfd = open(fname, flags, mode)) == -1) return (NULL); if (fcntl(rfd, F_SETFD, FD_CLOEXEC) == -1) goto err; } /* Create a btree in memory (backed by disk). */ if (openinfo) { if (openinfo->flags & ~(R_FIXEDLEN | R_NOKEY | R_SNAPSHOT)) goto einval; btopeninfo.flags = 0; btopeninfo.cachesize = openinfo->cachesize; btopeninfo.maxkeypage = 0; btopeninfo.minkeypage = 0; btopeninfo.psize = openinfo->psize; btopeninfo.compare = NULL; btopeninfo.prefix = NULL; btopeninfo.lorder = openinfo->lorder; dbp = __bt_open(openinfo->bfname, O_RDWR, S_IRUSR | S_IWUSR, &btopeninfo, dflags); } else dbp = __bt_open(NULL, O_RDWR, S_IRUSR | S_IWUSR, NULL, dflags); if (dbp == NULL) goto err; /* * Some fields in the tree structure are recno specific. Fill them * in and make the btree structure look like a recno structure. We * don't change the bt_ovflsize value, it's close enough and slightly * bigger. */ t = dbp->internal; if (openinfo) { if (openinfo->flags & R_FIXEDLEN) { F_SET(t, R_FIXLEN); t->bt_reclen = openinfo->reclen; if (t->bt_reclen == 0) goto einval; } t->bt_bval = openinfo->bval; } else t->bt_bval = '\n'; F_SET(t, R_RECNO); if (fname == NULL) F_SET(t, R_EOF | R_INMEM); else t->bt_rfd = rfd; if (fname != NULL) { /* * In 4.4BSD, stat(2) returns true for ISSOCK on pipes. * Unfortunately, that's not portable, so we use lseek * and check the errno values. */ errno = 0; #if defined(__MINT__) (void) lseek (rfd, (off_t) 0, SEEK_CUR); if (0) { /* ESPIPE cannot happen with MiNT. */ #else if (lseek(rfd, (off_t)0, SEEK_CUR) == -1 && errno == ESPIPE) { #endif switch (flags & O_ACCMODE) { case O_RDONLY: F_SET(t, R_RDONLY); break; default: goto einval; } slow: if ((t->bt_rfp = fdopen(rfd, "r")) == NULL) goto err; F_SET(t, R_CLOSEFP); t->bt_irec = F_ISSET(t, R_FIXLEN) ? __rec_fpipe : __rec_vpipe; } else { switch (flags & O_ACCMODE) { case O_RDONLY: F_SET(t, R_RDONLY); break; case O_RDWR: break; default: goto einval; } if (fstat(rfd, &sb)) goto err; /* * Kluge -- we'd like to test to see if the file is too * big to mmap. Since, we don't know what size or type * off_t's or size_t's are, what the largest unsigned * integral type is, or what random insanity the local * C compiler will perpetrate, doing the comparison in * a portable way is flatly impossible. Hope that mmap * fails if the file is too large. */ if (sb.st_size == 0) F_SET(t, R_EOF); else { #if !defined(MMAP_NOT_AVAILABLE) && 0 /* * XXX * Mmap doesn't work correctly on many current * systems. In particular, it can fail subtly, * with cache coherency problems. Don't use it * for now. */ t->bt_msize = sb.st_size; if ((t->bt_smap = mmap(NULL, t->bt_msize, PROT_READ, MAP_FILE | MAP_PRIVATE, rfd, (off_t)0)) == (caddr_t)-1) goto slow; t->bt_cmap = t->bt_smap; t->bt_emap = t->bt_smap + sb.st_size; t->bt_irec = F_ISSET(t, R_FIXLEN) ? __rec_fmap : __rec_vmap; F_SET(t, R_MEMMAPPED); #else goto slow; #endif } } } /* Use the recno routines. */ dbp->close = __rec_close; dbp->del = __rec_delete; dbp->fd = __rec_fd; dbp->get = __rec_get; dbp->put = __rec_put; dbp->seq = __rec_seq; dbp->sync = __rec_sync; /* If the root page was created, reset the flags. */ if ((h = mpool_get(t->bt_mp, P_ROOT, 0)) == NULL) goto err; if ((h->flags & P_TYPE) == P_BLEAF) { F_CLR(h, P_TYPE); F_SET(h, P_RLEAF); mpool_put(t->bt_mp, h, MPOOL_DIRTY); } else mpool_put(t->bt_mp, h, 0); if (openinfo && openinfo->flags & R_SNAPSHOT && !F_ISSET(t, R_EOF | R_INMEM) && t->bt_irec(t, MAX_REC_NUMBER) == RET_ERROR) goto err; return (dbp); einval: errno = EINVAL; err: sverrno = errno; if (dbp != NULL) (void)__bt_close(dbp); if (fname != NULL) (void)close(rfd); errno = sverrno; return (NULL); } int __rec_fd(const DB *dbp) { BTREE *t; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* In-memory database can't have a file descriptor. */ if (F_ISSET(t, R_INMEM)) { errno = ENOENT; return (-1); } return (t->bt_rfd); } libnbcompat-20180822/db/recno/recno.h0000644000175000017500000000352113355271171017464 0ustar jgoerzenjgoerzen/* $NetBSD: recno.h,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: recno.h,v 1.6 2003/08/07 16:42:44 agc Exp */ /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)recno.h 8.1 (Berkeley) 6/4/93 */ enum SRCHOP { SDELETE, SINSERT, SEARCH}; /* Rec_search operation. */ #include "../btree/btree.h" #include "extern.h" libnbcompat-20180822/db/recno/rec_put.c0000644000175000017500000001630513355271171020016 0ustar jgoerzenjgoerzen/* $NetBSD: rec_put.c,v 1.1 2008/10/10 00:21:44 joerg Exp $ */ /* NetBSD: rec_put.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: rec_put.c,v 1.1 2008/10/10 00:21:44 joerg Exp $"); #include #include #include #include #include #include #include #include "recno.h" /* * __REC_PUT -- Add a recno item to the tree. * * Parameters: * dbp: pointer to access method * key: key * data: data * flag: R_CURSOR, R_IAFTER, R_IBEFORE, R_NOOVERWRITE * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key is * already in the tree and R_NOOVERWRITE specified. */ int __rec_put(const DB *dbp, DBT *key, const DBT *data, u_int flags) { BTREE *t; DBT fdata, tdata; recno_t nrec; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* * If using fixed-length records, and the record is long, return * EINVAL. If it's short, pad it out. Use the record data return * memory, it's only short-term. */ if (F_ISSET(t, R_FIXLEN) && data->size != t->bt_reclen) { if (data->size > t->bt_reclen) goto einval; if (t->bt_rdata.size < t->bt_reclen) { t->bt_rdata.data = t->bt_rdata.data == NULL ? malloc(t->bt_reclen) : realloc(t->bt_rdata.data, t->bt_reclen); if (t->bt_rdata.data == NULL) return (RET_ERROR); t->bt_rdata.size = t->bt_reclen; } memmove(t->bt_rdata.data, data->data, data->size); memset((char *)t->bt_rdata.data + data->size, t->bt_bval, t->bt_reclen - data->size); fdata.data = t->bt_rdata.data; fdata.size = t->bt_reclen; } else { fdata.data = data->data; fdata.size = data->size; } switch (flags) { case R_CURSOR: if (!F_ISSET(&t->bt_cursor, CURS_INIT)) goto einval; nrec = t->bt_cursor.rcursor; break; case R_SETCURSOR: if ((nrec = *(recno_t *)key->data) == 0) goto einval; break; case R_IAFTER: if ((nrec = *(recno_t *)key->data) == 0) { nrec = 1; flags = R_IBEFORE; } break; case 0: case R_IBEFORE: if ((nrec = *(recno_t *)key->data) == 0) goto einval; break; case R_NOOVERWRITE: if ((nrec = *(recno_t *)key->data) == 0) goto einval; if (nrec <= t->bt_nrecs) return (RET_SPECIAL); break; default: einval: errno = EINVAL; return (RET_ERROR); } /* * Make sure that records up to and including the put record are * already in the database. If skipping records, create empty ones. */ if (nrec > t->bt_nrecs) { if (!F_ISSET(t, R_EOF | R_INMEM) && t->bt_irec(t, nrec) == RET_ERROR) return (RET_ERROR); if (nrec > t->bt_nrecs + 1) { if (F_ISSET(t, R_FIXLEN)) { if ((tdata.data = (void *)malloc(t->bt_reclen)) == NULL) return (RET_ERROR); tdata.size = t->bt_reclen; memset(tdata.data, t->bt_bval, tdata.size); } else { tdata.data = NULL; tdata.size = 0; } while (nrec > t->bt_nrecs + 1) if (__rec_iput(t, t->bt_nrecs, &tdata, 0) != RET_SUCCESS) return (RET_ERROR); if (F_ISSET(t, R_FIXLEN)) free(tdata.data); } } if ((status = __rec_iput(t, nrec - 1, &fdata, flags)) != RET_SUCCESS) return (status); if (flags == R_SETCURSOR) t->bt_cursor.rcursor = nrec; F_SET(t, R_MODIFIED); return (__rec_ret(t, NULL, nrec, key, NULL)); } /* * __REC_IPUT -- Add a recno item to the tree. * * Parameters: * t: tree * nrec: record number * data: data * * Returns: * RET_ERROR, RET_SUCCESS */ int __rec_iput(BTREE *t, recno_t nrec, const DBT *data, u_int flags) { DBT tdata; EPG *e; PAGE *h; indx_t idx, nxtindex; pgno_t pg; uint32_t nbytes; int dflags, status; char *dest, db[NOVFLSIZE]; /* * If the data won't fit on a page, store it on indirect pages. * * XXX * If the insert fails later on, these pages aren't recovered. */ if (data->size > t->bt_ovflsize) { if (__ovfl_put(t, data, &pg) == RET_ERROR) return (RET_ERROR); tdata.data = db; tdata.size = NOVFLSIZE; *(pgno_t *)(void *)db = pg; _DBFIT(data->size, uint32_t); *(uint32_t *)(void *)(db + sizeof(pgno_t)) = (uint32_t)data->size; dflags = P_BIGDATA; data = &tdata; } else dflags = 0; /* __rec_search pins the returned page. */ if ((e = __rec_search(t, nrec, nrec > t->bt_nrecs || flags == R_IAFTER || flags == R_IBEFORE ? SINSERT : SEARCH)) == NULL) return (RET_ERROR); h = e->page; idx = e->index; /* * Add the specified key/data pair to the tree. The R_IAFTER and * R_IBEFORE flags insert the key after/before the specified key. * * Pages are split as required. */ switch (flags) { case R_IAFTER: ++idx; break; case R_IBEFORE: break; default: if (nrec < t->bt_nrecs && __rec_dleaf(t, h, (uint32_t)idx) == RET_ERROR) { mpool_put(t->bt_mp, h, 0); return (RET_ERROR); } break; } /* * If not enough room, split the page. The split code will insert * the key and data and unpin the current page. If inserting into * the offset array, shift the pointers up. */ nbytes = NRLEAFDBT(data->size); if ((uint32_t) (h->upper - h->lower) < nbytes + sizeof(indx_t)) { status = __bt_split(t, h, NULL, data, dflags, nbytes, (uint32_t)idx); if (status == RET_SUCCESS) ++t->bt_nrecs; return (status); } if (idx < (nxtindex = NEXTINDEX(h))) memmove(h->linp + idx + 1, h->linp + idx, (nxtindex - idx) * sizeof(indx_t)); h->lower += sizeof(indx_t); h->linp[idx] = h->upper -= nbytes; dest = (char *)(void *)h + h->upper; WR_RLEAF(dest, data, dflags); ++t->bt_nrecs; F_SET(t, B_MODIFIED); mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } libnbcompat-20180822/db/db/0000755000175000017500000000000013355271171015463 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/db/db.c0000644000175000017500000000664613355271171016230 0ustar jgoerzenjgoerzen/* $NetBSD: db.c,v 1.3 2010/01/24 12:29:48 obache Exp $ */ /* NetBSD: db.c,v 1.16 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: db.c,v 1.3 2010/01/24 12:29:48 obache Exp $"); #include #include #include #include #include #include static int __dberr(void); #if 0 #ifdef __weak_alias __weak_alias(dbopen,_dbopen) #endif #endif DB * dbopen(const char *fname, int flags, mode_t mode, DBTYPE type, const void *openinfo) { #ifndef O_EXLOCK #define O_EXLOCK 0 #endif #ifndef O_SHLOCK #define O_SHLOCK 0 #endif #define DB_FLAGS (DB_LOCK | DB_SHMEM | DB_TXN) #define USE_OPEN_FLAGS \ (O_CREAT | O_EXCL | O_EXLOCK | O_NONBLOCK | O_RDONLY | \ O_RDWR | O_SHLOCK | O_TRUNC) if ((flags & ~(USE_OPEN_FLAGS | DB_FLAGS)) == 0) switch (type) { case DB_BTREE: return (__bt_open(fname, flags & USE_OPEN_FLAGS, mode, openinfo, (int)(flags & DB_FLAGS))); case DB_HASH: return (__hash_open(fname, flags & USE_OPEN_FLAGS, mode, openinfo, (int)(flags & DB_FLAGS))); case DB_RECNO: return (__rec_open(fname, flags & USE_OPEN_FLAGS, mode, openinfo, (int)(flags & DB_FLAGS))); } errno = EINVAL; return (NULL); } static int __dberr(void) { return (RET_ERROR); } /* * __DBPANIC -- Stop. * * Parameters: * dbp: pointer to the DB structure. */ void __dbpanic(DB *dbp) { /* The only thing that can succeed is a close. */ dbp->del = (int (*)(const struct __db *, const DBT*, u_int))__dberr; dbp->fd = (int (*)(const struct __db *))__dberr; dbp->get = (int (*)(const struct __db *, const DBT*, DBT *, u_int))__dberr; dbp->put = (int (*)(const struct __db *, DBT *, const DBT *, u_int))__dberr; dbp->seq = (int (*)(const struct __db *, DBT *, DBT *, u_int))__dberr; dbp->sync = (int (*)(const struct __db *, u_int))__dberr; } libnbcompat-20180822/db/pwrite.c0000644000175000017500000000047613355271171016563 0ustar jgoerzenjgoerzen/* $NetBSD: pwrite.c,v 1.1 2010/04/20 00:32:23 joerg Exp $ */ static ssize_t working_pwrite(int fd, const void *buf, size_t nbytes, off_t off) { if (lseek(fd, off, SEEK_SET) == -1) return -1; return write(fd, buf, nbytes); } #undef pwrite #define pwrite(fd, buf, nbytes, off) working_pwrite(fd, buf, nbytes,off) libnbcompat-20180822/db/btree/0000755000175000017500000000000013355271171016177 5ustar jgoerzenjgoerzenlibnbcompat-20180822/db/btree/bt_get.c0000644000175000017500000000606213355271171017613 0ustar jgoerzenjgoerzen/* $NetBSD: bt_get.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_get.c,v 1.13 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_get.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include "btree.h" /* * __BT_GET -- Get a record from the btree. * * Parameters: * dbp: pointer to access method * key: key to find * data: data to return * flag: currently unused * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. */ int __bt_get(const DB *dbp, const DBT *key, DBT *data, u_int flags) { BTREE *t; EPG *e; int exact, status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Get currently doesn't take any flags. */ if (flags) { errno = EINVAL; return (RET_ERROR); } if ((e = __bt_search(t, key, &exact)) == NULL) return (RET_ERROR); if (!exact) { mpool_put(t->bt_mp, e->page, 0); return (RET_SPECIAL); } status = __bt_ret(t, e, NULL, NULL, data, &t->bt_rdata, 0); /* * If the user is doing concurrent access, we copied the * key/data, toss the page. */ if (F_ISSET(t, B_DB_LOCK)) mpool_put(t->bt_mp, e->page, 0); else t->bt_pinned = e->page; return (status); } libnbcompat-20180822/db/btree/bt_close.c0000644000175000017500000001041513355271171020136 0ustar jgoerzenjgoerzen/* $NetBSD: bt_close.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_close.c,v 1.14 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_close.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include #include "btree.h" static int bt_meta(BTREE *); /* * BT_CLOSE -- Close a btree. * * Parameters: * dbp: pointer to access method * * Returns: * RET_ERROR, RET_SUCCESS */ int __bt_close(DB *dbp) { BTREE *t; int fd; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Sync the tree. */ if (__bt_sync(dbp, 0) == RET_ERROR) return (RET_ERROR); /* Close the memory pool. */ if (mpool_close(t->bt_mp) == RET_ERROR) return (RET_ERROR); /* Free random memory. */ if (t->bt_cursor.key.data != NULL) { free(t->bt_cursor.key.data); t->bt_cursor.key.size = 0; t->bt_cursor.key.data = NULL; } if (t->bt_rkey.data) { free(t->bt_rkey.data); t->bt_rkey.size = 0; t->bt_rkey.data = NULL; } if (t->bt_rdata.data) { free(t->bt_rdata.data); t->bt_rdata.size = 0; t->bt_rdata.data = NULL; } fd = t->bt_fd; free(t); free(dbp); return (close(fd) ? RET_ERROR : RET_SUCCESS); } /* * BT_SYNC -- sync the btree to disk. * * Parameters: * dbp: pointer to access method * * Returns: * RET_SUCCESS, RET_ERROR. */ int __bt_sync(const DB *dbp, u_int flags) { BTREE *t; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Sync doesn't currently take any flags. */ if (flags != 0) { errno = EINVAL; return (RET_ERROR); } if (F_ISSET(t, B_INMEM | B_RDONLY) || !F_ISSET(t, B_MODIFIED)) return (RET_SUCCESS); if (F_ISSET(t, B_METADIRTY) && bt_meta(t) == RET_ERROR) return (RET_ERROR); if ((status = mpool_sync(t->bt_mp)) == RET_SUCCESS) F_CLR(t, B_MODIFIED); return (status); } /* * BT_META -- write the tree meta data to disk. * * Parameters: * t: tree * * Returns: * RET_ERROR, RET_SUCCESS */ static int bt_meta(BTREE *t) { BTMETA m; void *p; if ((p = mpool_get(t->bt_mp, P_META, 0)) == NULL) return (RET_ERROR); /* Fill in metadata. */ m.magic = BTREEMAGIC; m.version = BTREEVERSION; m.psize = t->bt_psize; m.free = t->bt_free; m.nrecs = t->bt_nrecs; m.flags = F_ISSET(t, SAVEMETA); memmove(p, &m, sizeof(BTMETA)); mpool_put(t->bt_mp, p, MPOOL_DIRTY); return (RET_SUCCESS); } libnbcompat-20180822/db/btree/bt_search.c0000644000175000017500000001310513355271171020275 0ustar jgoerzenjgoerzen/* $NetBSD: bt_search.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_search.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_search.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include "btree.h" static int __bt_snext(BTREE *, PAGE *, const DBT *, int *); static int __bt_sprev(BTREE *, PAGE *, const DBT *, int *); /* * __bt_search -- * Search a btree for a key. * * Parameters: * t: tree to search * key: key to find * exactp: pointer to exact match flag * * Returns: * The EPG for matching record, if any, or the EPG for the location * of the key, if it were inserted into the tree, is entered into * the bt_cur field of the tree. A pointer to the field is returned. */ EPG * __bt_search(BTREE *t, const DBT *key, int *exactp) { PAGE *h; indx_t base, idx, lim; pgno_t pg; int cmp; BT_CLR(t); for (pg = P_ROOT;;) { if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (NULL); /* Do a binary search on the current page. */ t->bt_cur.page = h; for (base = 0, lim = NEXTINDEX(h); lim; lim >>= 1) { t->bt_cur.index = idx = base + ((uint32_t)lim >> 1); if ((cmp = __bt_cmp(t, key, &t->bt_cur)) == 0) { if (h->flags & P_BLEAF) { *exactp = 1; return (&t->bt_cur); } goto next; } if (cmp > 0) { base = idx + 1; --lim; } } /* * If it's a leaf page, we're almost done. If no duplicates * are allowed, or we have an exact match, we're done. Else, * it's possible that there were matching keys on this page, * which later deleted, and we're on a page with no matches * while there are matches on other pages. If at the start or * end of a page, check the adjacent page. */ if (h->flags & P_BLEAF) { if (!F_ISSET(t, B_NODUPS)) { if (base == 0 && h->prevpg != P_INVALID && __bt_sprev(t, h, key, exactp)) return (&t->bt_cur); if (base == NEXTINDEX(h) && h->nextpg != P_INVALID && __bt_snext(t, h, key, exactp)) return (&t->bt_cur); } *exactp = 0; t->bt_cur.index = base; return (&t->bt_cur); } /* * No match found. Base is the smallest index greater than * key and may be zero or a last + 1 index. If it's non-zero, * decrement by one, and record the internal page which should * be a parent page for the key. If a split later occurs, the * inserted page will be to the right of the saved page. */ idx = base ? base - 1 : base; next: BT_PUSH(t, h->pgno, idx); pg = GETBINTERNAL(h, idx)->pgno; mpool_put(t->bt_mp, h, 0); } } /* * __bt_snext -- * Check for an exact match after the key. * * Parameters: * t: tree * h: current page * key: key * exactp: pointer to exact match flag * * Returns: * If an exact match found. */ static int __bt_snext(BTREE *t, PAGE *h, const DBT *key, int *exactp) { EPG e; /* * Get the next page. The key is either an exact * match, or not as good as the one we already have. */ if ((e.page = mpool_get(t->bt_mp, h->nextpg, 0)) == NULL) return (0); e.index = 0; if (__bt_cmp(t, key, &e) == 0) { mpool_put(t->bt_mp, h, 0); t->bt_cur = e; *exactp = 1; return (1); } mpool_put(t->bt_mp, e.page, 0); return (0); } /* * __bt_sprev -- * Check for an exact match before the key. * * Parameters: * t: tree * h: current page * key: key * exactp: pointer to exact match flag * * Returns: * If an exact match found. */ static int __bt_sprev(BTREE *t, PAGE *h, const DBT *key, int *exactp) { EPG e; /* * Get the previous page. The key is either an exact * match, or not as good as the one we already have. */ if ((e.page = mpool_get(t->bt_mp, h->prevpg, 0)) == NULL) return (0); e.index = NEXTINDEX(e.page) - 1; if (__bt_cmp(t, key, &e) == 0) { mpool_put(t->bt_mp, h, 0); t->bt_cur = e; *exactp = 1; return (1); } mpool_put(t->bt_mp, e.page, 0); return (0); } libnbcompat-20180822/db/btree/bt_conv.c0000644000175000017500000001222713355271171020001 0ustar jgoerzenjgoerzen/* $NetBSD: bt_conv.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_conv.c,v 1.14 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_conv.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include "btree.h" static void mswap(PAGE *); /* * __BT_BPGIN, __BT_BPGOUT -- * Convert host-specific number layout to/from the host-independent * format stored on disk. * * Parameters: * t: tree * pg: page number * h: page to convert */ void __bt_pgin(void *t, pgno_t pg, void *pp) { PAGE *h; indx_t i, top; uint8_t flags; char *p; if (!F_ISSET(((BTREE *)t), B_NEEDSWAP)) return; if (pg == P_META) { mswap(pp); return; } h = pp; M_32_SWAP(h->pgno); M_32_SWAP(h->prevpg); M_32_SWAP(h->nextpg); M_32_SWAP(h->flags); M_16_SWAP(h->lower); M_16_SWAP(h->upper); top = NEXTINDEX(h); if ((h->flags & P_TYPE) == P_BINTERNAL) for (i = 0; i < top; i++) { M_16_SWAP(h->linp[i]); p = (char *)(void *)GETBINTERNAL(h, i); P_32_SWAP(p); p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(pgno_t); if (*(uint8_t *)p & P_BIGKEY) { p += sizeof(uint8_t); P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } } else if ((h->flags & P_TYPE) == P_BLEAF) for (i = 0; i < top; i++) { M_16_SWAP(h->linp[i]); p = (char *)(void *)GETBLEAF(h, i); P_32_SWAP(p); p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(uint32_t); flags = *(uint8_t *)p; if (flags & (P_BIGKEY | P_BIGDATA)) { p += sizeof(uint8_t); if (flags & P_BIGKEY) { P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } if (flags & P_BIGDATA) { p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } } } } void __bt_pgout(void *t, pgno_t pg, void *pp) { PAGE *h; indx_t i, top; uint8_t flags; char *p; if (!F_ISSET(((BTREE *)t), B_NEEDSWAP)) return; if (pg == P_META) { mswap(pp); return; } h = pp; top = NEXTINDEX(h); if ((h->flags & P_TYPE) == P_BINTERNAL) for (i = 0; i < top; i++) { p = (char *)(void *)GETBINTERNAL(h, i); P_32_SWAP(p); p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(pgno_t); if (*(uint8_t *)p & P_BIGKEY) { p += sizeof(uint8_t); P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } M_16_SWAP(h->linp[i]); } else if ((h->flags & P_TYPE) == P_BLEAF) for (i = 0; i < top; i++) { p = (char *)(void *)GETBLEAF(h, i); P_32_SWAP(p); p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(uint32_t); flags = *(uint8_t *)p; if (flags & (P_BIGKEY | P_BIGDATA)) { p += sizeof(uint8_t); if (flags & P_BIGKEY) { P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } if (flags & P_BIGDATA) { p += sizeof(uint32_t); P_32_SWAP(p); p += sizeof(pgno_t); P_32_SWAP(p); } } M_16_SWAP(h->linp[i]); } M_32_SWAP(h->pgno); M_32_SWAP(h->prevpg); M_32_SWAP(h->nextpg); M_32_SWAP(h->flags); M_16_SWAP(h->lower); M_16_SWAP(h->upper); } /* * MSWAP -- Actually swap the bytes on the meta page. * * Parameters: * p: page to convert */ static void mswap(PAGE *pg) { char *p; p = (char *)(void *)pg; P_32_SWAP(p); /* magic */ p += sizeof(uint32_t); P_32_SWAP(p); /* version */ p += sizeof(uint32_t); P_32_SWAP(p); /* psize */ p += sizeof(uint32_t); P_32_SWAP(p); /* free */ p += sizeof(uint32_t); P_32_SWAP(p); /* nrecs */ p += sizeof(uint32_t); P_32_SWAP(p); /* flags */ p += sizeof(uint32_t); } libnbcompat-20180822/db/btree/bt_debug.c0000644000175000017500000002115113355271171020116 0ustar jgoerzenjgoerzen/* $NetBSD: bt_debug.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_debug.c,v 1.15 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_debug.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include "btree.h" #ifdef DEBUG /* * BT_DUMP -- Dump the tree * * Parameters: * dbp: pointer to the DB */ void __bt_dump(DB *dbp) { BTREE *t; PAGE *h; pgno_t i; const char *sep; t = dbp->internal; (void)fprintf(stderr, "%s: pgsz %d", F_ISSET(t, B_INMEM) ? "memory" : "disk", t->bt_psize); if (F_ISSET(t, R_RECNO)) (void)fprintf(stderr, " keys %lu", (unsigned long) t->bt_nrecs); #undef X #define X(flag, name) \ if (F_ISSET(t, flag)) { \ (void)fprintf(stderr, "%s%s", sep, name); \ sep = ", "; \ } if (t->flags != 0) { sep = " flags ("; X(R_FIXLEN, "FIXLEN"); X(B_INMEM, "INMEM"); X(B_NODUPS, "NODUPS"); X(B_RDONLY, "RDONLY"); X(R_RECNO, "RECNO"); X(B_METADIRTY,"METADIRTY"); (void)fprintf(stderr, ")\n"); } #undef X for (i = P_ROOT; (h = mpool_get(t->bt_mp, i, 0)) != NULL; ++i) { __bt_dpage(h); (void)mpool_put(t->bt_mp, h, 0); } } /* * BT_DMPAGE -- Dump the meta page * * Parameters: * h: pointer to the PAGE */ void __bt_dmpage(PAGE *h) { BTMETA *m; const char *sep; m = (BTMETA *)(void *)h; (void)fprintf(stderr, "magic %lx\n", (unsigned long) m->magic); (void)fprintf(stderr, "version %lu\n", (unsigned long) m->version); (void)fprintf(stderr, "psize %lu\n", (unsigned long) m->psize); (void)fprintf(stderr, "free %lu\n", (unsigned long) m->free); (void)fprintf(stderr, "nrecs %lu\n", (unsigned long) m->nrecs); (void)fprintf(stderr, "flags %lu", (unsigned long) m->flags); #undef X #define X(flag, name) \ if (m->flags & flag) { \ (void)fprintf(stderr, "%s%s", sep, name); \ sep = ", "; \ } if (m->flags) { sep = " ("; X(B_NODUPS, "NODUPS"); X(R_RECNO, "RECNO"); (void)fprintf(stderr, ")"); } } /* * BT_DNPAGE -- Dump the page * * Parameters: * n: page number to dump. */ void __bt_dnpage(DB *dbp, pgno_t pgno) { BTREE *t; PAGE *h; t = dbp->internal; if ((h = mpool_get(t->bt_mp, pgno, 0)) != NULL) { __bt_dpage(h); (void)mpool_put(t->bt_mp, h, 0); } } /* * BT_DPAGE -- Dump the page * * Parameters: * h: pointer to the PAGE */ void __bt_dpage(PAGE *h) { BINTERNAL *bi; BLEAF *bl; RINTERNAL *ri; RLEAF *rl; indx_t cur, top; const char *sep; (void)fprintf(stderr, " page %d: (", h->pgno); #undef X #define X(flag, name) \ if (h->flags & flag) { \ (void)fprintf(stderr, "%s%s", sep, name); \ sep = ", "; \ } sep = ""; X(P_BINTERNAL, "BINTERNAL") /* types */ X(P_BLEAF, "BLEAF") X(P_RINTERNAL, "RINTERNAL") /* types */ X(P_RLEAF, "RLEAF") X(P_OVERFLOW, "OVERFLOW") X(P_PRESERVE, "PRESERVE"); (void)fprintf(stderr, ")\n"); #undef X (void)fprintf(stderr, "\tprev %2d next %2d", h->prevpg, h->nextpg); if (h->flags & P_OVERFLOW) return; top = NEXTINDEX(h); (void)fprintf(stderr, " lower %3d upper %3d nextind %d\n", h->lower, h->upper, top); for (cur = 0; cur < top; cur++) { (void)fprintf(stderr, "\t[%03d] %4d ", cur, h->linp[cur]); switch (h->flags & P_TYPE) { case P_BINTERNAL: bi = GETBINTERNAL(h, cur); (void)fprintf(stderr, "size %03d pgno %03d", bi->ksize, bi->pgno); if (bi->flags & P_BIGKEY) (void)fprintf(stderr, " (indirect)"); else if (bi->ksize) (void)fprintf(stderr, " {%.*s}", (int)bi->ksize, bi->bytes); break; case P_RINTERNAL: ri = GETRINTERNAL(h, cur); (void)fprintf(stderr, "entries %03d pgno %03d", ri->nrecs, ri->pgno); break; case P_BLEAF: bl = GETBLEAF(h, cur); if (bl->flags & P_BIGKEY) (void)fprintf(stderr, "big key page %lu size %u/", (unsigned long) *(pgno_t *)(void *)bl->bytes, *(uint32_t *)(void *)(bl->bytes + sizeof(pgno_t))); else if (bl->ksize) (void)fprintf(stderr, "%s/", bl->bytes); if (bl->flags & P_BIGDATA) (void)fprintf(stderr, "big data page %lu size %u", (unsigned long) *(pgno_t *)(void *)(bl->bytes + bl->ksize), *(uint32_t *)(void *)(bl->bytes + bl->ksize + sizeof(pgno_t))); else if (bl->dsize) (void)fprintf(stderr, "%.*s", (int)bl->dsize, bl->bytes + bl->ksize); break; case P_RLEAF: rl = GETRLEAF(h, cur); if (rl->flags & P_BIGDATA) (void)fprintf(stderr, "big data page %lu size %u", (unsigned long) *(pgno_t *)(void *)rl->bytes, *(uint32_t *)(void *)(rl->bytes + sizeof(pgno_t))); else if (rl->dsize) (void)fprintf(stderr, "%.*s", (int)rl->dsize, rl->bytes); break; } (void)fprintf(stderr, "\n"); } } #endif #ifdef STATISTICS /* * BT_STAT -- Gather/print the tree statistics * * Parameters: * dbp: pointer to the DB */ void __bt_stat(DB *dbp) { extern unsigned long bt_cache_hit, bt_cache_miss, bt_pfxsaved, bt_rootsplit; extern unsigned long bt_sortsplit, bt_split; BTREE *t; PAGE *h; pgno_t i, pcont, pinternal, pleaf; unsigned long ifree, lfree, nkeys; int levels; t = dbp->internal; pcont = pinternal = pleaf = 0; nkeys = ifree = lfree = 0; for (i = P_ROOT; (h = mpool_get(t->bt_mp, i, 0)) != NULL; ++i) { switch (h->flags & P_TYPE) { case P_BINTERNAL: case P_RINTERNAL: ++pinternal; ifree += h->upper - h->lower; break; case P_BLEAF: case P_RLEAF: ++pleaf; lfree += h->upper - h->lower; nkeys += NEXTINDEX(h); break; case P_OVERFLOW: ++pcont; break; } (void)mpool_put(t->bt_mp, h, 0); } /* Count the levels of the tree. */ for (i = P_ROOT, levels = 0 ;; ++levels) { h = mpool_get(t->bt_mp, i, 0); if (h->flags & (P_BLEAF|P_RLEAF)) { if (levels == 0) levels = 1; (void)mpool_put(t->bt_mp, h, 0); break; } i = F_ISSET(t, R_RECNO) ? GETRINTERNAL(h, 0)->pgno : GETBINTERNAL(h, 0)->pgno; (void)mpool_put(t->bt_mp, h, 0); } (void)fprintf(stderr, "%d level%s with %ld keys", levels, levels == 1 ? "" : "s", nkeys); if (F_ISSET(t, R_RECNO)) (void)fprintf(stderr, " (%ld header count)", (long)t->bt_nrecs); (void)fprintf(stderr, "\n%lu pages (leaf %ld, internal %ld, overflow %ld)\n", (long)pinternal + pleaf + pcont, (long)pleaf, (long)pinternal, (long)pcont); (void)fprintf(stderr, "%ld cache hits, %ld cache misses\n", bt_cache_hit, bt_cache_miss); (void)fprintf(stderr, "%ld splits (%ld root splits, %ld sort splits)\n", bt_split, bt_rootsplit, bt_sortsplit); pleaf *= t->bt_psize - BTDATAOFF; if (pleaf) (void)fprintf(stderr, "%.0f%% leaf fill (%ld bytes used, %ld bytes free)\n", ((double)(pleaf - lfree) / pleaf) * 100, pleaf - lfree, lfree); pinternal *= t->bt_psize - BTDATAOFF; if (pinternal) (void)fprintf(stderr, "%.0f%% internal fill (%ld bytes used, %ld bytes free\n", ((double)(pinternal - ifree) / pinternal) * 100, pinternal - ifree, ifree); if (bt_pfxsaved) (void)fprintf(stderr, "prefix checking removed %lu bytes.\n", bt_pfxsaved); } #endif libnbcompat-20180822/db/btree/bt_split.c0000644000175000017500000005450613355271171020175 0ustar jgoerzenjgoerzen/* $NetBSD: bt_split.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_split.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_split.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include #include "btree.h" static int bt_broot(BTREE *, PAGE *, PAGE *, PAGE *); static PAGE *bt_page(BTREE *, PAGE *, PAGE **, PAGE **, indx_t *, size_t); static int bt_preserve(BTREE *, pgno_t); static PAGE *bt_psplit(BTREE *, PAGE *, PAGE *, PAGE *, indx_t *, size_t); static PAGE *bt_root(BTREE *, PAGE *, PAGE **, PAGE **, indx_t *, size_t); static int bt_rroot(BTREE *, PAGE *, PAGE *, PAGE *); static recno_t rec_total(PAGE *); #ifdef STATISTICS unsigned long bt_rootsplit, bt_split, bt_sortsplit, bt_pfxsaved; #endif /* * __BT_SPLIT -- Split the tree. * * Parameters: * t: tree * sp: page to split * key: key to insert * data: data to insert * flags: BIGKEY/BIGDATA flags * ilen: insert length * skip: index to leave open * * Returns: * RET_ERROR, RET_SUCCESS */ int __bt_split(BTREE *t, PAGE *sp, const DBT *key, const DBT *data, int flags, size_t ilen, uint32_t argskip) { BINTERNAL *bi = NULL; /* pacify gcc */ BLEAF *bl = NULL, *tbl; /* pacify gcc */ DBT a, b; EPGNO *parent; PAGE *h, *l, *r, *lchild, *rchild; indx_t nxtindex; uint16_t skip; uint32_t n, nbytes, nksize = 0; /* pacify gcc */ int parentsplit; char *dest; /* * Split the page into two pages, l and r. The split routines return * a pointer to the page into which the key should be inserted and with * skip set to the offset which should be used. Additionally, l and r * are pinned. */ skip = argskip; h = sp->pgno == P_ROOT ? bt_root(t, sp, &l, &r, &skip, ilen) : bt_page(t, sp, &l, &r, &skip, ilen); if (h == NULL) return (RET_ERROR); /* * Insert the new key/data pair into the leaf page. (Key inserts * always cause a leaf page to split first.) */ _DBFIT(ilen, indx_t); h->upper -= (indx_t)ilen; h->linp[skip] = h->upper; dest = (char *)(void *)h + h->upper; if (F_ISSET(t, R_RECNO)) WR_RLEAF(dest, data, flags); else WR_BLEAF(dest, key, data, flags); /* If the root page was split, make it look right. */ if (sp->pgno == P_ROOT && (F_ISSET(t, R_RECNO) ? bt_rroot(t, sp, l, r) : bt_broot(t, sp, l, r)) == RET_ERROR) goto err2; /* * Now we walk the parent page stack -- a LIFO stack of the pages that * were traversed when we searched for the page that split. Each stack * entry is a page number and a page index offset. The offset is for * the page traversed on the search. We've just split a page, so we * have to insert a new key into the parent page. * * If the insert into the parent page causes it to split, may have to * continue splitting all the way up the tree. We stop if the root * splits or the page inserted into didn't have to split to hold the * new key. Some algorithms replace the key for the old page as well * as the new page. We don't, as there's no reason to believe that the * first key on the old page is any better than the key we have, and, * in the case of a key being placed at index 0 causing the split, the * key is unavailable. * * There are a maximum of 5 pages pinned at any time. We keep the left * and right pages pinned while working on the parent. The 5 are the * two children, left parent and right parent (when the parent splits) * and the root page or the overflow key page when calling bt_preserve. * This code must make sure that all pins are released other than the * root page or overflow page which is unlocked elsewhere. */ while ((parent = BT_POP(t)) != NULL) { lchild = l; rchild = r; /* Get the parent page. */ if ((h = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) goto err2; /* * The new key goes ONE AFTER the index, because the split * was to the right. */ skip = parent->index + 1; /* * Calculate the space needed on the parent page. * * Prefix trees: space hack when inserting into BINTERNAL * pages. Retain only what's needed to distinguish between * the new entry and the LAST entry on the page to its left. * If the keys compare equal, retain the entire key. Note, * we don't touch overflow keys, and the entire key must be * retained for the next-to-left most key on the leftmost * page of each level, or the search will fail. Applicable * ONLY to internal pages that have leaf pages as children. * Further reduction of the key between pairs of internal * pages loses too much information. */ switch (rchild->flags & P_TYPE) { case P_BINTERNAL: bi = GETBINTERNAL(rchild, 0); nbytes = NBINTERNAL(bi->ksize); break; case P_BLEAF: bl = GETBLEAF(rchild, 0); nbytes = NBINTERNAL(bl->ksize); if (t->bt_pfx && !(bl->flags & P_BIGKEY) && (h->prevpg != P_INVALID || skip > 1)) { size_t temp; tbl = GETBLEAF(lchild, NEXTINDEX(lchild) - 1); a.size = tbl->ksize; a.data = tbl->bytes; b.size = bl->ksize; b.data = bl->bytes; temp = t->bt_pfx(&a, &b); _DBFIT(temp, uint32_t); nksize = (uint32_t)temp; n = NBINTERNAL(nksize); if (n < nbytes) { #ifdef STATISTICS bt_pfxsaved += nbytes - n; #endif nbytes = n; } else nksize = 0; } else nksize = 0; break; case P_RINTERNAL: case P_RLEAF: nbytes = NRINTERNAL; break; default: abort(); } /* Split the parent page if necessary or shift the indices. */ if (h->upper - h->lower < nbytes + sizeof(indx_t)) { sp = h; h = h->pgno == P_ROOT ? bt_root(t, h, &l, &r, &skip, nbytes) : bt_page(t, h, &l, &r, &skip, nbytes); if (h == NULL) goto err1; parentsplit = 1; } else { if (skip < (nxtindex = NEXTINDEX(h))) memmove(h->linp + skip + 1, h->linp + skip, (nxtindex - skip) * sizeof(indx_t)); h->lower += sizeof(indx_t); parentsplit = 0; } /* Insert the key into the parent page. */ switch (rchild->flags & P_TYPE) { case P_BINTERNAL: h->linp[skip] = h->upper -= nbytes; dest = (char *)(void *)h + h->linp[skip]; memmove(dest, bi, nbytes); ((BINTERNAL *)(void *)dest)->pgno = rchild->pgno; break; case P_BLEAF: h->linp[skip] = h->upper -= nbytes; dest = (char *)(void *)h + h->linp[skip]; WR_BINTERNAL(dest, nksize ? nksize : bl->ksize, rchild->pgno, bl->flags & P_BIGKEY); memmove(dest, bl->bytes, nksize ? nksize : bl->ksize); if (bl->flags & P_BIGKEY && bt_preserve(t, *(pgno_t *)(void *)bl->bytes) == RET_ERROR) goto err1; break; case P_RINTERNAL: /* * Update the left page count. If split * added at index 0, fix the correct page. */ if (skip > 0) dest = (char *)(void *)h + h->linp[skip - 1]; else dest = (char *)(void *)l + l->linp[NEXTINDEX(l) - 1]; ((RINTERNAL *)(void *)dest)->nrecs = rec_total(lchild); ((RINTERNAL *)(void *)dest)->pgno = lchild->pgno; /* Update the right page count. */ h->linp[skip] = h->upper -= nbytes; dest = (char *)(void *)h + h->linp[skip]; ((RINTERNAL *)(void *)dest)->nrecs = rec_total(rchild); ((RINTERNAL *)(void *)dest)->pgno = rchild->pgno; break; case P_RLEAF: /* * Update the left page count. If split * added at index 0, fix the correct page. */ if (skip > 0) dest = (char *)(void *)h + h->linp[skip - 1]; else dest = (char *)(void *)l + l->linp[NEXTINDEX(l) - 1]; ((RINTERNAL *)(void *)dest)->nrecs = NEXTINDEX(lchild); ((RINTERNAL *)(void *)dest)->pgno = lchild->pgno; /* Update the right page count. */ h->linp[skip] = h->upper -= nbytes; dest = (char *)(void *)h + h->linp[skip]; ((RINTERNAL *)(void *)dest)->nrecs = NEXTINDEX(rchild); ((RINTERNAL *)(void *)dest)->pgno = rchild->pgno; break; default: abort(); } /* Unpin the held pages. */ if (!parentsplit) { mpool_put(t->bt_mp, h, MPOOL_DIRTY); break; } /* If the root page was split, make it look right. */ if (sp->pgno == P_ROOT && (F_ISSET(t, R_RECNO) ? bt_rroot(t, sp, l, r) : bt_broot(t, sp, l, r)) == RET_ERROR) goto err1; mpool_put(t->bt_mp, lchild, MPOOL_DIRTY); mpool_put(t->bt_mp, rchild, MPOOL_DIRTY); } /* Unpin the held pages. */ mpool_put(t->bt_mp, l, MPOOL_DIRTY); mpool_put(t->bt_mp, r, MPOOL_DIRTY); /* Clear any pages left on the stack. */ return (RET_SUCCESS); /* * If something fails in the above loop we were already walking back * up the tree and the tree is now inconsistent. Nothing much we can * do about it but release any memory we're holding. */ err1: mpool_put(t->bt_mp, lchild, MPOOL_DIRTY); mpool_put(t->bt_mp, rchild, MPOOL_DIRTY); err2: mpool_put(t->bt_mp, l, 0); mpool_put(t->bt_mp, r, 0); __dbpanic(t->bt_dbp); return (RET_ERROR); } /* * BT_PAGE -- Split a non-root page of a btree. * * Parameters: * t: tree * h: root page * lp: pointer to left page pointer * rp: pointer to right page pointer * skip: pointer to index to leave open * ilen: insert length * * Returns: * Pointer to page in which to insert or NULL on error. */ static PAGE * bt_page(BTREE *t, PAGE *h, PAGE **lp, PAGE **rp, indx_t *skip, size_t ilen) { PAGE *l, *r, *tp; pgno_t npg; #ifdef STATISTICS ++bt_split; #endif /* Put the new right page for the split into place. */ if ((r = __bt_new(t, &npg)) == NULL) return (NULL); r->pgno = npg; r->lower = BTDATAOFF; r->upper = t->bt_psize; r->nextpg = h->nextpg; r->prevpg = h->pgno; r->flags = h->flags & P_TYPE; /* * If we're splitting the last page on a level because we're appending * a key to it (skip is NEXTINDEX()), it's likely that the data is * sorted. Adding an empty page on the side of the level is less work * and can push the fill factor much higher than normal. If we're * wrong it's no big deal, we'll just do the split the right way next * time. It may look like it's equally easy to do a similar hack for * reverse sorted data, that is, split the tree left, but it's not. * Don't even try. */ if (h->nextpg == P_INVALID && *skip == NEXTINDEX(h)) { #ifdef STATISTICS ++bt_sortsplit; #endif h->nextpg = r->pgno; r->lower = BTDATAOFF + sizeof(indx_t); *skip = 0; *lp = h; *rp = r; return (r); } /* Put the new left page for the split into place. */ if ((l = (PAGE *)malloc(t->bt_psize)) == NULL) { mpool_put(t->bt_mp, r, 0); return (NULL); } #ifdef PURIFY memset(l, 0xff, t->bt_psize); #endif l->pgno = h->pgno; l->nextpg = r->pgno; l->prevpg = h->prevpg; l->lower = BTDATAOFF; l->upper = t->bt_psize; l->flags = h->flags & P_TYPE; /* Fix up the previous pointer of the page after the split page. */ if (h->nextpg != P_INVALID) { if ((tp = mpool_get(t->bt_mp, h->nextpg, 0)) == NULL) { free(l); /* XXX mpool_free(t->bt_mp, r->pgno); */ return (NULL); } tp->prevpg = r->pgno; mpool_put(t->bt_mp, tp, MPOOL_DIRTY); } /* * Split right. The key/data pairs aren't sorted in the btree page so * it's simpler to copy the data from the split page onto two new pages * instead of copying half the data to the right page and compacting * the left page in place. Since the left page can't change, we have * to swap the original and the allocated left page after the split. */ tp = bt_psplit(t, h, l, r, skip, ilen); /* Move the new left page onto the old left page. */ memmove(h, l, t->bt_psize); if (tp == l) tp = h; free(l); *lp = h; *rp = r; return (tp); } /* * BT_ROOT -- Split the root page of a btree. * * Parameters: * t: tree * h: root page * lp: pointer to left page pointer * rp: pointer to right page pointer * skip: pointer to index to leave open * ilen: insert length * * Returns: * Pointer to page in which to insert or NULL on error. */ static PAGE * bt_root(BTREE *t, PAGE *h, PAGE **lp, PAGE **rp, indx_t *skip, size_t ilen) { PAGE *l, *r, *tp; pgno_t lnpg, rnpg; #ifdef STATISTICS ++bt_split; ++bt_rootsplit; #endif /* Put the new left and right pages for the split into place. */ if ((l = __bt_new(t, &lnpg)) == NULL || (r = __bt_new(t, &rnpg)) == NULL) return (NULL); l->pgno = lnpg; r->pgno = rnpg; l->nextpg = r->pgno; r->prevpg = l->pgno; l->prevpg = r->nextpg = P_INVALID; l->lower = r->lower = BTDATAOFF; l->upper = r->upper = t->bt_psize; l->flags = r->flags = h->flags & P_TYPE; /* Split the root page. */ tp = bt_psplit(t, h, l, r, skip, ilen); *lp = l; *rp = r; return (tp); } /* * BT_RROOT -- Fix up the recno root page after it has been split. * * Parameters: * t: tree * h: root page * l: left page * r: right page * * Returns: * RET_ERROR, RET_SUCCESS */ static int bt_rroot(BTREE *t, PAGE *h, PAGE *l, PAGE *r) { char *dest; uint32_t sz; size_t temp; temp = t->bt_psize - NRINTERNAL; _DBFIT(temp, uint32_t); sz = (uint32_t)temp; /* Insert the left and right keys, set the header information. */ _DBFIT(sz, indx_t); h->linp[0] = h->upper = (indx_t)sz; dest = (char *)(void *)h + h->upper; WR_RINTERNAL(dest, l->flags & P_RLEAF ? NEXTINDEX(l) : rec_total(l), l->pgno); h->linp[1] = h->upper -= NRINTERNAL; dest = (char *)(void *)h + h->upper; WR_RINTERNAL(dest, r->flags & P_RLEAF ? NEXTINDEX(r) : rec_total(r), r->pgno); h->lower = BTDATAOFF + 2 * sizeof(indx_t); /* Unpin the root page, set to recno internal page. */ h->flags &= ~P_TYPE; h->flags |= P_RINTERNAL; mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } /* * BT_BROOT -- Fix up the btree root page after it has been split. * * Parameters: * t: tree * h: root page * l: left page * r: right page * * Returns: * RET_ERROR, RET_SUCCESS */ static int bt_broot(BTREE *t, PAGE *h, PAGE *l, PAGE *r) { BINTERNAL *bi = NULL; /* pacify gcc */ BLEAF *bl; uint32_t nbytes; char *dest; /* * If the root page was a leaf page, change it into an internal page. * We copy the key we split on (but not the key's data, in the case of * a leaf page) to the new root page. * * The btree comparison code guarantees that the left-most key on any * level of the tree is never used, so it doesn't need to be filled in. */ nbytes = NBINTERNAL(0); h->linp[0] = h->upper = t->bt_psize - nbytes; dest = (char *)(void *)h + h->upper; WR_BINTERNAL(dest, 0, l->pgno, 0); switch (h->flags & P_TYPE) { case P_BLEAF: bl = GETBLEAF(r, 0); nbytes = NBINTERNAL(bl->ksize); h->linp[1] = h->upper -= nbytes; dest = (char *)(void *)h + h->upper; WR_BINTERNAL(dest, bl->ksize, r->pgno, 0); memmove(dest, bl->bytes, bl->ksize); /* * If the key is on an overflow page, mark the overflow chain * so it isn't deleted when the leaf copy of the key is deleted. */ if (bl->flags & P_BIGKEY && bt_preserve(t, *(pgno_t *)(void *)bl->bytes) == RET_ERROR) return (RET_ERROR); break; case P_BINTERNAL: bi = GETBINTERNAL(r, 0); nbytes = NBINTERNAL(bi->ksize); h->linp[1] = h->upper -= nbytes; dest = (char *)(void *)h + h->upper; memmove(dest, bi, nbytes); ((BINTERNAL *)(void *)dest)->pgno = r->pgno; break; default: abort(); } /* There are two keys on the page. */ h->lower = BTDATAOFF + 2 * sizeof(indx_t); /* Unpin the root page, set to btree internal page. */ h->flags &= ~P_TYPE; h->flags |= P_BINTERNAL; mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } /* * BT_PSPLIT -- Do the real work of splitting the page. * * Parameters: * t: tree * h: page to be split * l: page to put lower half of data * r: page to put upper half of data * pskip: pointer to index to leave open * ilen: insert length * * Returns: * Pointer to page in which to insert. */ static PAGE * bt_psplit(BTREE *t, PAGE *h, PAGE *l, PAGE *r, indx_t *pskip, size_t ilen) { BINTERNAL *bi; BLEAF *bl; CURSOR *c; RLEAF *rl; PAGE *rval; void *src = NULL; /* pacify gcc */ indx_t full, half, nxt, off, skip, top, used; uint32_t nbytes; size_t temp; int bigkeycnt, isbigkey; /* * Split the data to the left and right pages. Leave the skip index * open. Additionally, make some effort not to split on an overflow * key. This makes internal page processing faster and can save * space as overflow keys used by internal pages are never deleted. */ bigkeycnt = 0; skip = *pskip; temp = t->bt_psize - BTDATAOFF; _DBFIT(temp, indx_t); full = (indx_t)temp; half = full / 2; used = 0; for (nxt = off = 0, top = NEXTINDEX(h); nxt < top; ++off) { if (skip == off) { _DBFIT(ilen, uint32_t); nbytes = (uint32_t)ilen; isbigkey = 0; /* XXX: not really known. */ } else switch (h->flags & P_TYPE) { case P_BINTERNAL: src = bi = GETBINTERNAL(h, nxt); nbytes = NBINTERNAL(bi->ksize); isbigkey = bi->flags & P_BIGKEY; break; case P_BLEAF: src = bl = GETBLEAF(h, nxt); nbytes = NBLEAF(bl); isbigkey = bl->flags & P_BIGKEY; break; case P_RINTERNAL: src = GETRINTERNAL(h, nxt); nbytes = NRINTERNAL; isbigkey = 0; break; case P_RLEAF: src = rl = GETRLEAF(h, nxt); nbytes = NRLEAF(rl); isbigkey = 0; break; default: abort(); } /* * If the key/data pairs are substantial fractions of the max * possible size for the page, it's possible to get situations * where we decide to try and copy too much onto the left page. * Make sure that doesn't happen. */ if ((skip <= off && used + nbytes + sizeof(indx_t) >= full) || nxt == top - 1) { --off; break; } /* Copy the key/data pair, if not the skipped index. */ if (skip != off) { ++nxt; l->linp[off] = l->upper -= nbytes; memmove((char *)(void *)l + l->upper, src, nbytes); } temp = nbytes + sizeof(indx_t); _DBFIT(temp, indx_t); used += (indx_t)temp; if (used >= half) { if (!isbigkey || bigkeycnt == 3) break; else ++bigkeycnt; } } /* * Off is the last offset that's valid for the left page. * Nxt is the first offset to be placed on the right page. */ temp = (off + 1) * sizeof(indx_t); _DBFIT(temp, indx_t); l->lower += (indx_t)temp; /* * If splitting the page that the cursor was on, the cursor has to be * adjusted to point to the same record as before the split. If the * cursor is at or past the skipped slot, the cursor is incremented by * one. If the cursor is on the right page, it is decremented by the * number of records split to the left page. */ c = &t->bt_cursor; if (F_ISSET(c, CURS_INIT) && c->pg.pgno == h->pgno) { if (c->pg.index >= skip) ++c->pg.index; if (c->pg.index < nxt) /* Left page. */ c->pg.pgno = l->pgno; else { /* Right page. */ c->pg.pgno = r->pgno; c->pg.index -= nxt; } } /* * If the skipped index was on the left page, just return that page. * Otherwise, adjust the skip index to reflect the new position on * the right page. */ if (skip <= off) { skip = MAX_PAGE_OFFSET; rval = l; } else { rval = r; *pskip -= nxt; } for (off = 0; nxt < top; ++off) { if (skip == nxt) { ++off; skip = MAX_PAGE_OFFSET; } switch (h->flags & P_TYPE) { case P_BINTERNAL: src = bi = GETBINTERNAL(h, nxt); nbytes = NBINTERNAL(bi->ksize); break; case P_BLEAF: src = bl = GETBLEAF(h, nxt); nbytes = NBLEAF(bl); break; case P_RINTERNAL: src = GETRINTERNAL(h, nxt); nbytes = NRINTERNAL; break; case P_RLEAF: src = rl = GETRLEAF(h, nxt); nbytes = NRLEAF(rl); break; default: abort(); } ++nxt; r->linp[off] = r->upper -= nbytes; memmove((char *)(void *)r + r->upper, src, nbytes); } temp = off * sizeof(indx_t); _DBFIT(temp, indx_t); r->lower += (indx_t)temp; /* If the key is being appended to the page, adjust the index. */ if (skip == top) r->lower += sizeof(indx_t); return (rval); } /* * BT_PRESERVE -- Mark a chain of pages as used by an internal node. * * Chains of indirect blocks pointed to by leaf nodes get reclaimed when the * record that references them gets deleted. Chains pointed to by internal * pages never get deleted. This routine marks a chain as pointed to by an * internal page. * * Parameters: * t: tree * pg: page number of first page in the chain. * * Returns: * RET_SUCCESS, RET_ERROR. */ static int bt_preserve(BTREE *t, pgno_t pg) { PAGE *h; if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); h->flags |= P_PRESERVE; mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } /* * REC_TOTAL -- Return the number of recno entries below a page. * * Parameters: * h: page * * Returns: * The number of recno entries below a page. * * XXX * These values could be set by the bt_psplit routine. The problem is that the * entry has to be popped off of the stack etc. or the values have to be passed * all the way back to bt_split/bt_rroot and it's not very clean. */ static recno_t rec_total(PAGE *h) { recno_t recs; indx_t nxt, top; for (recs = 0, nxt = 0, top = NEXTINDEX(h); nxt < top; ++nxt) recs += GETRINTERNAL(h, nxt)->nrecs; return (recs); } libnbcompat-20180822/db/btree/bt_delete.c0000644000175000017500000003771713355271171020311 0ustar jgoerzenjgoerzen/* $NetBSD: bt_delete.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_delete.c,v 1.16 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_delete.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include "btree.h" static int __bt_bdelete(BTREE *, const DBT *); static int __bt_curdel(BTREE *, const DBT *, PAGE *, u_int); static int __bt_pdelete(BTREE *, PAGE *); static int __bt_relink(BTREE *, PAGE *); static int __bt_stkacq(BTREE *, PAGE **, CURSOR *); /* * __bt_delete * Delete the item(s) referenced by a key. * * Return RET_SPECIAL if the key is not found. */ int __bt_delete(const DB *dbp, const DBT *key, u_int flags) { BTREE *t; CURSOR *c; PAGE *h; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Check for change to a read-only tree. */ if (F_ISSET(t, B_RDONLY)) { errno = EPERM; return (RET_ERROR); } switch (flags) { case 0: status = __bt_bdelete(t, key); break; case R_CURSOR: /* * If flags is R_CURSOR, delete the cursor. Must already * have started a scan and not have already deleted it. */ c = &t->bt_cursor; if (F_ISSET(c, CURS_INIT)) { if (F_ISSET(c, CURS_ACQUIRE | CURS_AFTER | CURS_BEFORE)) return (RET_SPECIAL); if ((h = mpool_get(t->bt_mp, c->pg.pgno, 0)) == NULL) return (RET_ERROR); /* * If the page is about to be emptied, we'll need to * delete it, which means we have to acquire a stack. */ if (NEXTINDEX(h) == 1) if (__bt_stkacq(t, &h, &t->bt_cursor)) return (RET_ERROR); status = __bt_dleaf(t, NULL, h, (u_int)c->pg.index); if (NEXTINDEX(h) == 0 && status == RET_SUCCESS) { if (__bt_pdelete(t, h)) return (RET_ERROR); } else mpool_put(t->bt_mp, h, (u_int)(status == RET_SUCCESS ? MPOOL_DIRTY : 0)); break; } /* FALLTHROUGH */ default: errno = EINVAL; return (RET_ERROR); } if (status == RET_SUCCESS) F_SET(t, B_MODIFIED); return (status); } /* * __bt_stkacq -- * Acquire a stack so we can delete a cursor entry. * * Parameters: * t: tree * hp: pointer to current, pinned PAGE pointer * c: pointer to the cursor * * Returns: * 0 on success, 1 on failure */ static int __bt_stkacq(BTREE *t, PAGE **hp, CURSOR *c) { BINTERNAL *bi; EPG *e; EPGNO *parent; PAGE *h; indx_t idx = 0; /* Pacify gcc */ pgno_t pgno; recno_t nextpg, prevpg; int exact, level; /* * Find the first occurrence of the key in the tree. Toss the * currently locked page so we don't hit an already-locked page. */ h = *hp; mpool_put(t->bt_mp, h, 0); if ((e = __bt_search(t, &c->key, &exact)) == NULL) return (1); h = e->page; /* See if we got it in one shot. */ if (h->pgno == c->pg.pgno) goto ret; /* * Move right, looking for the page. At each move we have to move * up the stack until we don't have to move to the next page. If * we have to change pages at an internal level, we have to fix the * stack back up. */ while (h->pgno != c->pg.pgno) { if ((nextpg = h->nextpg) == P_INVALID) break; mpool_put(t->bt_mp, h, 0); /* Move up the stack. */ for (level = 0; (parent = BT_POP(t)) != NULL; ++level) { /* Get the parent page. */ if ((h = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) return (1); /* Move to the next index. */ if (parent->index != NEXTINDEX(h) - 1) { idx = parent->index + 1; BT_PUSH(t, h->pgno, idx); break; } mpool_put(t->bt_mp, h, 0); } /* Restore the stack. */ while (level--) { /* Push the next level down onto the stack. */ bi = GETBINTERNAL(h, idx); pgno = bi->pgno; BT_PUSH(t, pgno, 0); /* Lose the currently pinned page. */ mpool_put(t->bt_mp, h, 0); /* Get the next level down. */ if ((h = mpool_get(t->bt_mp, pgno, 0)) == NULL) return (1); idx = 0; } mpool_put(t->bt_mp, h, 0); if ((h = mpool_get(t->bt_mp, nextpg, 0)) == NULL) return (1); } if (h->pgno == c->pg.pgno) goto ret; /* Reacquire the original stack. */ mpool_put(t->bt_mp, h, 0); if ((e = __bt_search(t, &c->key, &exact)) == NULL) return (1); h = e->page; /* * Move left, looking for the page. At each move we have to move * up the stack until we don't have to change pages to move to the * next page. If we have to change pages at an internal level, we * have to fix the stack back up. */ while (h->pgno != c->pg.pgno) { if ((prevpg = h->prevpg) == P_INVALID) break; mpool_put(t->bt_mp, h, 0); /* Move up the stack. */ for (level = 0; (parent = BT_POP(t)) != NULL; ++level) { /* Get the parent page. */ if ((h = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) return (1); /* Move to the next index. */ if (parent->index != 0) { idx = parent->index - 1; BT_PUSH(t, h->pgno, idx); break; } mpool_put(t->bt_mp, h, 0); } /* Restore the stack. */ while (level--) { /* Push the next level down onto the stack. */ bi = GETBINTERNAL(h, idx); pgno = bi->pgno; /* Lose the currently pinned page. */ mpool_put(t->bt_mp, h, 0); /* Get the next level down. */ if ((h = mpool_get(t->bt_mp, pgno, 0)) == NULL) return (1); idx = NEXTINDEX(h) - 1; BT_PUSH(t, pgno, idx); } mpool_put(t->bt_mp, h, 0); if ((h = mpool_get(t->bt_mp, prevpg, 0)) == NULL) return (1); } ret: mpool_put(t->bt_mp, h, 0); return ((*hp = mpool_get(t->bt_mp, c->pg.pgno, 0)) == NULL); } /* * __bt_bdelete -- * Delete all key/data pairs matching the specified key. * * Parameters: * t: tree * key: key to delete * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key not found. */ static int __bt_bdelete(BTREE *t, const DBT *key) { EPG *e; PAGE *h; int deleted, exact, redo; deleted = 0; /* Find any matching record; __bt_search pins the page. */ loop: if ((e = __bt_search(t, key, &exact)) == NULL) return (deleted ? RET_SUCCESS : RET_ERROR); if (!exact) { mpool_put(t->bt_mp, e->page, 0); return (deleted ? RET_SUCCESS : RET_SPECIAL); } /* * Delete forward, then delete backward, from the found key. If * there are duplicates and we reach either side of the page, do * the key search again, so that we get them all. */ redo = 0; h = e->page; do { if (__bt_dleaf(t, key, h, (u_int)e->index)) { mpool_put(t->bt_mp, h, 0); return (RET_ERROR); } if (F_ISSET(t, B_NODUPS)) { if (NEXTINDEX(h) == 0) { if (__bt_pdelete(t, h)) return (RET_ERROR); } else mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } deleted = 1; } while (e->index < NEXTINDEX(h) && __bt_cmp(t, key, e) == 0); /* Check for right-hand edge of the page. */ if (e->index == NEXTINDEX(h)) redo = 1; /* Delete from the key to the beginning of the page. */ while (e->index-- > 0) { if (__bt_cmp(t, key, e) != 0) break; if (__bt_dleaf(t, key, h, (u_int)e->index) == RET_ERROR) { mpool_put(t->bt_mp, h, 0); return (RET_ERROR); } if (e->index == 0) redo = 1; } /* Check for an empty page. */ if (NEXTINDEX(h) == 0) { if (__bt_pdelete(t, h)) return (RET_ERROR); goto loop; } /* Put the page. */ mpool_put(t->bt_mp, h, MPOOL_DIRTY); if (redo) goto loop; return (RET_SUCCESS); } /* * __bt_pdelete -- * Delete a single page from the tree. * * Parameters: * t: tree * h: leaf page * * Returns: * RET_SUCCESS, RET_ERROR. * * Side-effects: * mpool_put's the page */ static int __bt_pdelete(BTREE *t, PAGE *h) { BINTERNAL *bi; PAGE *pg; EPGNO *parent; indx_t cnt, idx, *ip, offset; uint32_t nksize; char *from; /* * Walk the parent page stack -- a LIFO stack of the pages that were * traversed when we searched for the page where the delete occurred. * Each stack entry is a page number and a page index offset. The * offset is for the page traversed on the search. We've just deleted * a page, so we have to delete the key from the parent page. * * If the delete from the parent page makes it empty, this process may * continue all the way up the tree. We stop if we reach the root page * (which is never deleted, it's just not worth the effort) or if the * delete does not empty the page. */ while ((parent = BT_POP(t)) != NULL) { /* Get the parent page. */ if ((pg = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL) return (RET_ERROR); idx = parent->index; bi = GETBINTERNAL(pg, idx); /* Free any overflow pages. */ if (bi->flags & P_BIGKEY && __ovfl_delete(t, bi->bytes) == RET_ERROR) { mpool_put(t->bt_mp, pg, 0); return (RET_ERROR); } /* * Free the parent if it has only the one key and it's not the * root page. If it's the rootpage, turn it back into an empty * leaf page. */ if (NEXTINDEX(pg) == 1) { if (pg->pgno == P_ROOT) { pg->lower = BTDATAOFF; pg->upper = t->bt_psize; pg->flags = P_BLEAF; } else { if (__bt_relink(t, pg) || __bt_free(t, pg)) return (RET_ERROR); continue; } } else { /* Pack remaining key items at the end of the page. */ nksize = NBINTERNAL(bi->ksize); from = (char *)(void *)pg + pg->upper; memmove(from + nksize, from, (size_t)((char *)(void *)bi - from)); pg->upper += nksize; /* Adjust indices' offsets, shift the indices down. */ offset = pg->linp[idx]; for (cnt = idx, ip = &pg->linp[0]; cnt--; ++ip) if (ip[0] < offset) ip[0] += nksize; for (cnt = NEXTINDEX(pg) - idx; --cnt; ++ip) ip[0] = ip[1] < offset ? ip[1] + nksize : ip[1]; pg->lower -= sizeof(indx_t); } mpool_put(t->bt_mp, pg, MPOOL_DIRTY); break; } /* Free the leaf page, as long as it wasn't the root. */ if (h->pgno == P_ROOT) { mpool_put(t->bt_mp, h, MPOOL_DIRTY); return (RET_SUCCESS); } return (__bt_relink(t, h) || __bt_free(t, h)); } /* * __bt_dleaf -- * Delete a single record from a leaf page. * * Parameters: * t: tree * key: referenced key * h: page * idx: index on page to delete * * Returns: * RET_SUCCESS, RET_ERROR. */ int __bt_dleaf(BTREE *t, const DBT *key, PAGE *h, u_int idx) { BLEAF *bl; indx_t cnt, *ip, offset; uint32_t nbytes; void *to; char *from; /* If this record is referenced by the cursor, delete the cursor. */ if (F_ISSET(&t->bt_cursor, CURS_INIT) && !F_ISSET(&t->bt_cursor, CURS_ACQUIRE) && t->bt_cursor.pg.pgno == h->pgno && t->bt_cursor.pg.index == idx && __bt_curdel(t, key, h, idx)) return (RET_ERROR); /* If the entry uses overflow pages, make them available for reuse. */ to = bl = GETBLEAF(h, idx); if (bl->flags & P_BIGKEY && __ovfl_delete(t, bl->bytes) == RET_ERROR) return (RET_ERROR); if (bl->flags & P_BIGDATA && __ovfl_delete(t, bl->bytes + bl->ksize) == RET_ERROR) return (RET_ERROR); /* Pack the remaining key/data items at the end of the page. */ nbytes = NBLEAF(bl); from = (char *)(void *)h + h->upper; memmove(from + nbytes, from, (size_t)((char *)(void *)to - from)); h->upper += nbytes; /* Adjust the indices' offsets, shift the indices down. */ offset = h->linp[idx]; for (cnt = idx, ip = &h->linp[0]; cnt--; ++ip) if (ip[0] < offset) ip[0] += nbytes; for (cnt = NEXTINDEX(h) - idx; --cnt; ++ip) ip[0] = ip[1] < offset ? ip[1] + nbytes : ip[1]; h->lower -= sizeof(indx_t); /* If the cursor is on this page, adjust it as necessary. */ if (F_ISSET(&t->bt_cursor, CURS_INIT) && !F_ISSET(&t->bt_cursor, CURS_ACQUIRE) && t->bt_cursor.pg.pgno == h->pgno && t->bt_cursor.pg.index > idx) --t->bt_cursor.pg.index; return (RET_SUCCESS); } /* * __bt_curdel -- * Delete the cursor. * * Parameters: * t: tree * key: referenced key (or NULL) * h: page * idx: index on page to delete * * Returns: * RET_SUCCESS, RET_ERROR. */ static int __bt_curdel(BTREE *t, const DBT *key, PAGE *h, u_int idx) { CURSOR *c; EPG e; PAGE *pg; int curcopy, status; /* * If there are duplicates, move forward or backward to one. * Otherwise, copy the key into the cursor area. */ c = &t->bt_cursor; F_CLR(c, CURS_AFTER | CURS_BEFORE | CURS_ACQUIRE); curcopy = 0; if (!F_ISSET(t, B_NODUPS)) { /* * We're going to have to do comparisons. If we weren't * provided a copy of the key, i.e. the user is deleting * the current cursor position, get one. */ if (key == NULL) { e.page = h; e.index = idx; if ((status = __bt_ret(t, &e, &c->key, &c->key, NULL, NULL, 1)) != RET_SUCCESS) return (status); curcopy = 1; key = &c->key; } /* Check previous key, if not at the beginning of the page. */ if (idx > 0) { e.page = h; e.index = idx - 1; if (__bt_cmp(t, key, &e) == 0) { F_SET(c, CURS_BEFORE); goto dup2; } } /* Check next key, if not at the end of the page. */ if (idx < NEXTINDEX(h) - 1) { e.page = h; e.index = idx + 1; if (__bt_cmp(t, key, &e) == 0) { F_SET(c, CURS_AFTER); goto dup2; } } /* Check previous key if at the beginning of the page. */ if (idx == 0 && h->prevpg != P_INVALID) { if ((pg = mpool_get(t->bt_mp, h->prevpg, 0)) == NULL) return (RET_ERROR); e.page = pg; e.index = NEXTINDEX(pg) - 1; if (__bt_cmp(t, key, &e) == 0) { F_SET(c, CURS_BEFORE); goto dup1; } mpool_put(t->bt_mp, pg, 0); } /* Check next key if at the end of the page. */ if (idx == NEXTINDEX(h) - 1 && h->nextpg != P_INVALID) { if ((pg = mpool_get(t->bt_mp, h->nextpg, 0)) == NULL) return (RET_ERROR); e.page = pg; e.index = 0; if (__bt_cmp(t, key, &e) == 0) { F_SET(c, CURS_AFTER); dup1: mpool_put(t->bt_mp, pg, 0); dup2: c->pg.pgno = e.page->pgno; c->pg.index = e.index; return (RET_SUCCESS); } mpool_put(t->bt_mp, pg, 0); } } e.page = h; e.index = idx; if (curcopy || (status = __bt_ret(t, &e, &c->key, &c->key, NULL, NULL, 1)) == RET_SUCCESS) { F_SET(c, CURS_ACQUIRE); return (RET_SUCCESS); } return (status); } /* * __bt_relink -- * Link around a deleted page. * * Parameters: * t: tree * h: page to be deleted */ static int __bt_relink(BTREE *t, PAGE *h) { PAGE *pg; if (h->nextpg != P_INVALID) { if ((pg = mpool_get(t->bt_mp, h->nextpg, 0)) == NULL) return (RET_ERROR); pg->prevpg = h->prevpg; mpool_put(t->bt_mp, pg, MPOOL_DIRTY); } if (h->prevpg != P_INVALID) { if ((pg = mpool_get(t->bt_mp, h->prevpg, 0)) == NULL) return (RET_ERROR); pg->nextpg = h->nextpg; mpool_put(t->bt_mp, pg, MPOOL_DIRTY); } return (0); } libnbcompat-20180822/db/btree/extern.h0000644000175000017500000000615213355271171017661 0ustar jgoerzenjgoerzen/* $NetBSD: extern.h,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: extern.h,v 1.12 2008/09/26 11:41:06 tsutsui Exp */ /*- * Copyright (c) 1991, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)extern.h 8.10 (Berkeley) 7/20/94 */ #ifndef _BTREE_EXTERN_H_ #define _BTREE_EXTERN_H_ int __bt_close(DB *); int __bt_cmp(BTREE *, const DBT *, EPG *); int __bt_crsrdel(BTREE *, EPGNO *); int __bt_defcmp(const DBT *, const DBT *); size_t __bt_defpfx(const DBT *, const DBT *); int __bt_delete(const DB *, const DBT *, unsigned int); int __bt_dleaf(BTREE *, const DBT *, PAGE *, unsigned int); int __bt_fd(const DB *); int __bt_free(BTREE *, PAGE *); int __bt_get(const DB *, const DBT *, DBT *, unsigned int); PAGE *__bt_new(BTREE *, pgno_t *); void __bt_pgin(void *, pgno_t, void *); void __bt_pgout(void *, pgno_t, void *); int __bt_push(BTREE *, pgno_t, int); int __bt_put(const DB *dbp, DBT *, const DBT *, unsigned int); int __bt_ret(BTREE *, EPG *, DBT *, DBT *, DBT *, DBT *, int); EPG *__bt_search(BTREE *, const DBT *, int *); int __bt_seq(const DB *, DBT *, DBT *, unsigned int); void __bt_setcur(BTREE *, pgno_t, unsigned int); int __bt_split(BTREE *, PAGE *, const DBT *, const DBT *, int, size_t, uint32_t); int __bt_sync(const DB *, unsigned int); int __ovfl_delete(BTREE *, void *); int __ovfl_get(BTREE *, void *, size_t *, void **, size_t *); int __ovfl_put(BTREE *, const DBT *, pgno_t *); #ifdef DEBUG void __bt_dmpage(PAGE *); void __bt_dnpage(DB *, pgno_t); void __bt_dpage(PAGE *); void __bt_dump(DB *); #endif #ifdef STATISTICS void __bt_stat(DB *); #endif #endif /* _BTREE_EXTERN_H_ */ libnbcompat-20180822/db/btree/btree.h0000644000175000017500000003674013355271171017463 0ustar jgoerzenjgoerzen/* $NetBSD: btree.h,v 1.4 2013/09/08 12:02:03 ryoon Exp $ */ /* NetBSD: btree.h,v 1.16 2008/08/26 21:18:38 joerg Exp */ /*- * Copyright (c) 1991, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)btree.h 8.11 (Berkeley) 8/17/94 */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif /* Macros to set/clear/test flags. */ #define F_SET(p, f) (p)->flags |= (f) #define F_CLR(p, f) (p)->flags &= ~(f) #define F_ISSET(p, f) ((p)->flags & (f)) #include #define DEFMINKEYPAGE (2) /* Minimum keys per page */ #define MINCACHE (5) /* Minimum cached pages */ #define MINPSIZE (512) /* Minimum page size */ /* * Page 0 of a btree file contains a copy of the meta-data. This page is also * used as an out-of-band page, i.e. page pointers that point to nowhere point * to page 0. Page 1 is the root of the btree. */ #define P_INVALID 0 /* Invalid tree page number. */ #define P_META 0 /* Tree metadata page number. */ #define P_ROOT 1 /* Tree root page number. */ /* * There are five page layouts in the btree: btree internal pages (BINTERNAL), * btree leaf pages (BLEAF), recno internal pages (RINTERNAL), recno leaf pages * (RLEAF) and overflow pages. All five page types have a page header (PAGE). * This implementation requires that values within structures NOT be padded. * (ANSI C permits random padding.) If your compiler pads randomly you'll have * to do some work to get this package to run. */ typedef struct _page { pgno_t pgno; /* this page's page number */ pgno_t prevpg; /* left sibling */ pgno_t nextpg; /* right sibling */ #define P_BINTERNAL 0x01 /* btree internal page */ #define P_BLEAF 0x02 /* leaf page */ #define P_OVERFLOW 0x04 /* overflow page */ #define P_RINTERNAL 0x08 /* recno internal page */ #define P_RLEAF 0x10 /* leaf page */ #define P_TYPE 0x1f /* type mask */ #define P_PRESERVE 0x20 /* never delete this chain of pages */ uint32_t flags; indx_t lower; /* lower bound of free space on page */ indx_t upper; /* upper bound of free space on page */ indx_t linp[1]; /* indx_t-aligned VAR. LENGTH DATA */ } PAGE; /* First and next index. */ #define BTDATAOFF \ (sizeof(pgno_t) + sizeof(pgno_t) + sizeof(pgno_t) + \ sizeof(uint32_t) + sizeof(indx_t) + sizeof(indx_t)) #define _NEXTINDEX(p) (((p)->lower - BTDATAOFF) / sizeof(indx_t)) #ifdef _DIAGNOSTIC static __inline indx_t NEXTINDEX(const PAGE *p) { size_t x = _NEXTINDEX(p); _DBFIT(x, indx_t); return (indx_t)x; } #else #define NEXTINDEX(p) (indx_t)_NEXTINDEX(p) #endif /* * For pages other than overflow pages, there is an array of offsets into the * rest of the page immediately following the page header. Each offset is to * an item which is unique to the type of page. The h_lower offset is just * past the last filled-in index. The h_upper offset is the first item on the * page. Offsets are from the beginning of the page. * * If an item is too big to store on a single page, a flag is set and the item * is a { page, size } pair such that the page is the first page of an overflow * chain with size bytes of item. Overflow pages are simply bytes without any * external structure. * * The page number and size fields in the items are pgno_t-aligned so they can * be manipulated without copying. (This presumes that 32 bit items can be * manipulated on this system.) */ #define BTLALIGN(n) (((n) + sizeof(pgno_t) - 1) & ~(sizeof(pgno_t) - 1)) #define NOVFLSIZE (sizeof(pgno_t) + sizeof(uint32_t)) /* * For the btree internal pages, the item is a key. BINTERNALs are {key, pgno} * pairs, such that the key compares less than or equal to all of the records * on that page. For a tree without duplicate keys, an internal page with two * consecutive keys, a and b, will have all records greater than or equal to a * and less than b stored on the page associated with a. Duplicate keys are * somewhat special and can cause duplicate internal and leaf page records and * some minor modifications of the above rule. */ typedef struct _binternal { uint32_t ksize; /* key size */ pgno_t pgno; /* page number stored on */ #define P_BIGDATA 0x01 /* overflow data */ #define P_BIGKEY 0x02 /* overflow key */ uint8_t flags; char bytes[1]; /* data */ } BINTERNAL; /* Get the page's BINTERNAL structure at index indx. */ #define GETBINTERNAL(pg, indx) \ ((BINTERNAL *)(void *)((char *)(void *)(pg) + (pg)->linp[indx])) /* Get the number of bytes in the entry. */ #define _NBINTERNAL(len) \ BTLALIGN(sizeof(uint32_t) + sizeof(pgno_t) + sizeof(uint8_t) + (len)) #ifdef _DIAGNOSTIC static __inline uint32_t NBINTERNAL(uint32_t len) { size_t x = _NBINTERNAL(len); _DBFIT(x, uint32_t); return (uint32_t)x; } #else #define NBINTERNAL(len) (uint32_t)_NBINTERNAL(len) #endif /* Copy a BINTERNAL entry to the page. */ #define WR_BINTERNAL(p, size, pgno, flags) do { \ _DBFIT(size, uint32_t); \ *(uint32_t *)(void *)p = (uint32_t)size; \ p += sizeof(uint32_t); \ *(pgno_t *)(void *)p = pgno; \ p += sizeof(pgno_t); \ *(uint8_t *)(void *)p = flags; \ p += sizeof(uint8_t); \ } while (/*CONSTCOND*/0) /* * For the recno internal pages, the item is a page number with the number of * keys found on that page and below. */ typedef struct _rinternal { recno_t nrecs; /* number of records */ pgno_t pgno; /* page number stored below */ } RINTERNAL; /* Get the page's RINTERNAL structure at index indx. */ #define GETRINTERNAL(pg, indx) \ ((RINTERNAL *)(void *)((char *)(void *)(pg) + (pg)->linp[indx])) /* Get the number of bytes in the entry. */ #define NRINTERNAL \ BTLALIGN(sizeof(recno_t) + sizeof(pgno_t)) /* Copy a RINTERNAL entry to the page. */ #define WR_RINTERNAL(p, nrecs, pgno) do { \ *(recno_t *)(void *)p = nrecs; \ p += sizeof(recno_t); \ *(pgno_t *)(void *)p = pgno; \ } while (/*CONSTCOND*/0) /* For the btree leaf pages, the item is a key and data pair. */ typedef struct _bleaf { uint32_t ksize; /* size of key */ uint32_t dsize; /* size of data */ uint8_t flags; /* P_BIGDATA, P_BIGKEY */ char bytes[1]; /* data */ } BLEAF; /* Get the page's BLEAF structure at index indx. */ #define GETBLEAF(pg, indx) \ ((BLEAF *)(void *)((char *)(void *)(pg) + (pg)->linp[indx])) /* Get the number of bytes in the user's key/data pair. */ #define _NBLEAFDBT(ksize, dsize) \ BTLALIGN(sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint8_t) + \ (ksize) + (dsize)) #ifdef _DIAGNOSTIC static __inline uint32_t NBLEAFDBT(size_t k, size_t d) { size_t x = _NBLEAFDBT(k, d); _DBFIT(x, uint32_t); return (uint32_t)x; } #else #define NBLEAFDBT(p, q) (uint32_t)_NBLEAFDBT(p, q) #endif /* Get the number of bytes in the entry. */ #define NBLEAF(p) NBLEAFDBT((p)->ksize, (p)->dsize) /* Copy a BLEAF entry to the page. */ #define WR_BLEAF(p, key, data, flags) do { \ _DBFIT(key->size, uint32_t); \ *(uint32_t *)(void *)p = (uint32_t)key->size; \ p += sizeof(uint32_t); \ _DBFIT(data->size, uint32_t); \ *(uint32_t *)(void *)p = (uint32_t)data->size; \ p += sizeof(uint32_t); \ *(uint8_t *)(void *)p = flags; \ p += sizeof(uint8_t); \ (void)memmove(p, key->data, key->size); \ p += key->size; \ (void)memmove(p, data->data, data->size); \ } while (/*CONSTCOND*/0) /* For the recno leaf pages, the item is a data entry. */ typedef struct _rleaf { uint32_t dsize; /* size of data */ uint8_t flags; /* P_BIGDATA */ char bytes[1]; } RLEAF; /* Get the page's RLEAF structure at index indx. */ #define GETRLEAF(pg, indx) \ ((RLEAF *)(void *)((char *)(void *)(pg) + (pg)->linp[indx])) #define _NRLEAFDBT(dsize) \ BTLALIGN(sizeof(uint32_t) + sizeof(uint8_t) + (dsize)) #ifdef _DIAGNOSTIC static __inline uint32_t NRLEAFDBT(size_t d) { size_t x = _NRLEAFDBT(d); _DBFIT(x, uint32_t); return (uint32_t)x; } #else #define NRLEAFDBT(d) (uint32_t)_NRLEAFDBT(d) #endif /* Get the number of bytes in the entry. */ #define NRLEAF(p) NRLEAFDBT((p)->dsize) /* Get the number of bytes from the user's data. */ /* Copy a RLEAF entry to the page. */ #define WR_RLEAF(p, data, flags) do { \ _DBFIT(data->size, uint32_t); \ *(uint32_t *)(void *)p = (uint32_t)data->size; \ p += sizeof(uint32_t); \ *(uint8_t *)(void *)p = flags; \ p += sizeof(uint8_t); \ memmove(p, data->data, data->size); \ } while (/*CONSTCOND*/0) /* * A record in the tree is either a pointer to a page and an index in the page * or a page number and an index. These structures are used as a cursor, stack * entry and search returns as well as to pass records to other routines. * * One comment about searches. Internal page searches must find the largest * record less than key in the tree so that descents work. Leaf page searches * must find the smallest record greater than key so that the returned index * is the record's correct position for insertion. */ typedef struct _epgno { pgno_t pgno; /* the page number */ indx_t index; /* the index on the page */ } EPGNO; typedef struct _epg { PAGE *page; /* the (pinned) page */ indx_t index; /* the index on the page */ } EPG; /* * About cursors. The cursor (and the page that contained the key/data pair * that it referenced) can be deleted, which makes things a bit tricky. If * there are no duplicates of the cursor key in the tree (i.e. B_NODUPS is set * or there simply aren't any duplicates of the key) we copy the key that it * referenced when it's deleted, and reacquire a new cursor key if the cursor * is used again. If there are duplicates keys, we move to the next/previous * key, and set a flag so that we know what happened. NOTE: if duplicate (to * the cursor) keys are added to the tree during this process, it is undefined * if they will be returned or not in a cursor scan. * * The flags determine the possible states of the cursor: * * CURS_INIT The cursor references *something*. * CURS_ACQUIRE The cursor was deleted, and a key has been saved so that * we can reacquire the right position in the tree. * CURS_AFTER, CURS_BEFORE * The cursor was deleted, and now references a key/data pair * that has not yet been returned, either before or after the * deleted key/data pair. * XXX * This structure is broken out so that we can eventually offer multiple * cursors as part of the DB interface. */ typedef struct _cursor { EPGNO pg; /* B: Saved tree reference. */ DBT key; /* B: Saved key, or key.data == NULL. */ recno_t rcursor; /* R: recno cursor (1-based) */ #define CURS_ACQUIRE 0x01 /* B: Cursor needs to be reacquired. */ #define CURS_AFTER 0x02 /* B: Unreturned cursor after key. */ #define CURS_BEFORE 0x04 /* B: Unreturned cursor before key. */ #define CURS_INIT 0x08 /* RB: Cursor initialized. */ uint8_t flags; } CURSOR; /* * The metadata of the tree. The nrecs field is used only by the RECNO code. * This is because the btree doesn't really need it and it requires that every * put or delete call modify the metadata. */ typedef struct _btmeta { uint32_t magic; /* magic number */ uint32_t version; /* version */ uint32_t psize; /* page size */ uint32_t free; /* page number of first free page */ uint32_t nrecs; /* R: number of records */ #define SAVEMETA (B_NODUPS | R_RECNO) uint32_t flags; /* bt_flags & SAVEMETA */ } BTMETA; /* The in-memory btree/recno data structure. */ typedef struct _btree { MPOOL *bt_mp; /* memory pool cookie */ DB *bt_dbp; /* pointer to enclosing DB */ EPG bt_cur; /* current (pinned) page */ PAGE *bt_pinned; /* page pinned across calls */ CURSOR bt_cursor; /* cursor */ #define BT_PUSH(t, p, i) { \ t->bt_sp->pgno = p; \ t->bt_sp->index = i; \ ++t->bt_sp; \ } #define BT_POP(t) (t->bt_sp == t->bt_stack ? NULL : --t->bt_sp) #define BT_CLR(t) (t->bt_sp = t->bt_stack) EPGNO bt_stack[50]; /* stack of parent pages */ EPGNO *bt_sp; /* current stack pointer */ DBT bt_rkey; /* returned key */ DBT bt_rdata; /* returned data */ int bt_fd; /* tree file descriptor */ pgno_t bt_free; /* next free page */ uint32_t bt_psize; /* page size */ indx_t bt_ovflsize; /* cut-off for key/data overflow */ int bt_lorder; /* byte order */ /* sorted order */ enum { NOT, BACK, FORWARD } bt_order; EPGNO bt_last; /* last insert */ /* B: key comparison function */ int (*bt_cmp)(const DBT *, const DBT *); /* B: prefix comparison function */ size_t (*bt_pfx)(const DBT *, const DBT *); /* R: recno input function */ int (*bt_irec)(struct _btree *, recno_t); FILE *bt_rfp; /* R: record FILE pointer */ int bt_rfd; /* R: record file descriptor */ caddr_t bt_cmap; /* R: current point in mapped space */ caddr_t bt_smap; /* R: start of mapped space */ caddr_t bt_emap; /* R: end of mapped space */ size_t bt_msize; /* R: size of mapped region. */ recno_t bt_nrecs; /* R: number of records */ size_t bt_reclen; /* R: fixed record length */ uint8_t bt_bval; /* R: delimiting byte/pad character */ /* * NB: * B_NODUPS and R_RECNO are stored on disk, and may not be changed. */ #define B_INMEM 0x00001 /* in-memory tree */ #define B_METADIRTY 0x00002 /* need to write metadata */ #define B_MODIFIED 0x00004 /* tree modified */ #define B_NEEDSWAP 0x00008 /* if byte order requires swapping */ #define B_RDONLY 0x00010 /* read-only tree */ #define B_NODUPS 0x00020 /* no duplicate keys permitted */ #define R_RECNO 0x00080 /* record oriented tree */ #define R_CLOSEFP 0x00040 /* opened a file pointer */ #define R_EOF 0x00100 /* end of input file reached. */ #define R_FIXLEN 0x00200 /* fixed length records */ #define R_MEMMAPPED 0x00400 /* memory mapped file. */ #define R_INMEM 0x00800 /* in-memory file */ #define R_MODIFIED 0x01000 /* modified file */ #define R_RDONLY 0x02000 /* read-only file */ #define B_DB_LOCK 0x04000 /* DB_LOCK specified. */ #define B_DB_SHMEM 0x08000 /* DB_SHMEM specified. */ #define B_DB_TXN 0x10000 /* DB_TXN specified. */ uint32_t flags; } BTREE; #include #ifndef EFTYPE #define EFTYPE EINVAL #endif #include "extern.h" libnbcompat-20180822/db/btree/bt_seq.c0000644000175000017500000002611313355271171017623 0ustar jgoerzenjgoerzen/* $NetBSD: bt_seq.c,v 1.2 2013/09/08 12:02:03 ryoon Exp $ */ /* NetBSD: bt_seq.c,v 1.17 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_seq.c,v 1.2 2013/09/08 12:02:03 ryoon Exp $"); #include #include #include #include #include #include #include #include "btree.h" static int __bt_first(BTREE *, const DBT *, EPG *, int *); static int __bt_seqadv(BTREE *, EPG *, int); static int __bt_seqset(BTREE *, EPG *, DBT *, int); /* * Sequential scan support. * * The tree can be scanned sequentially, starting from either end of the * tree or from any specific key. A scan request before any scanning is * done is initialized as starting from the least node. */ /* * __bt_seq -- * Btree sequential scan interface. * * Parameters: * dbp: pointer to access method * key: key for positioning and return value * data: data return value * flags: R_CURSOR, R_FIRST, R_LAST, R_NEXT, R_PREV. * * Returns: * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. */ int __bt_seq(const DB *dbp, DBT *key, DBT *data, u_int flags) { BTREE *t; EPG e; int status; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* * If scan uninitialized as yet, or starting at a specific record, set * the scan to a specific key. Both __bt_seqset and __bt_seqadv pin * the page the cursor references if they're successful. */ switch (flags) { case R_NEXT: case R_PREV: if (F_ISSET(&t->bt_cursor, CURS_INIT)) { status = __bt_seqadv(t, &e, (int)flags); break; } /* FALLTHROUGH */ case R_FIRST: case R_LAST: case R_CURSOR: status = __bt_seqset(t, &e, key, (int)flags); break; default: errno = EINVAL; return (RET_ERROR); } if (status == RET_SUCCESS) { __bt_setcur(t, e.page->pgno, (u_int)e.index); status = __bt_ret(t, &e, key, &t->bt_rkey, data, &t->bt_rdata, 0); /* * If the user is doing concurrent access, we copied the * key/data, toss the page. */ if (F_ISSET(t, B_DB_LOCK)) mpool_put(t->bt_mp, e.page, 0); else t->bt_pinned = e.page; } return (status); } /* * __bt_seqset -- * Set the sequential scan to a specific key. * * Parameters: * t: tree * ep: storage for returned key * key: key for initial scan position * flags: R_CURSOR, R_FIRST, R_LAST, R_NEXT, R_PREV * * Side effects: * Pins the page the cursor references. * * Returns: * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. */ static int __bt_seqset(BTREE *t, EPG *ep, DBT *key, int flags) { PAGE *h; pgno_t pg; int exact; /* * Find the first, last or specific key in the tree and point the * cursor at it. The cursor may not be moved until a new key has * been found. */ switch (flags) { case R_CURSOR: /* Keyed scan. */ /* * Find the first instance of the key or the smallest key * which is greater than or equal to the specified key. */ if (key->data == NULL || key->size == 0) { errno = EINVAL; return (RET_ERROR); } return (__bt_first(t, key, ep, &exact)); case R_FIRST: /* First record. */ case R_NEXT: /* Walk down the left-hand side of the tree. */ for (pg = P_ROOT;;) { if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); /* Check for an empty tree. */ if (NEXTINDEX(h) == 0) { mpool_put(t->bt_mp, h, 0); return (RET_SPECIAL); } if (h->flags & (P_BLEAF | P_RLEAF)) break; pg = GETBINTERNAL(h, 0)->pgno; mpool_put(t->bt_mp, h, 0); } ep->page = h; ep->index = 0; break; case R_LAST: /* Last record. */ case R_PREV: /* Walk down the right-hand side of the tree. */ for (pg = P_ROOT;;) { if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); /* Check for an empty tree. */ if (NEXTINDEX(h) == 0) { mpool_put(t->bt_mp, h, 0); return (RET_SPECIAL); } if (h->flags & (P_BLEAF | P_RLEAF)) break; pg = GETBINTERNAL(h, NEXTINDEX(h) - 1)->pgno; mpool_put(t->bt_mp, h, 0); } ep->page = h; ep->index = NEXTINDEX(h) - 1; break; } return (RET_SUCCESS); } /* * __bt_seqadvance -- * Advance the sequential scan. * * Parameters: * t: tree * flags: R_NEXT, R_PREV * * Side effects: * Pins the page the new key/data record is on. * * Returns: * RET_ERROR, RET_SUCCESS or RET_SPECIAL if there's no next key. */ static int __bt_seqadv(BTREE *t, EPG *ep, int flags) { CURSOR *c; PAGE *h; indx_t idx = 0; /* pacify gcc */ pgno_t pg; int exact; /* * There are a couple of states that we can be in. The cursor has * been initialized by the time we get here, but that's all we know. */ c = &t->bt_cursor; /* * The cursor was deleted where there weren't any duplicate records, * so the key was saved. Find out where that key would go in the * current tree. It doesn't matter if the returned key is an exact * match or not -- if it's an exact match, the record was added after * the delete so we can just return it. If not, as long as there's * a record there, return it. */ if (F_ISSET(c, CURS_ACQUIRE)) return (__bt_first(t, &c->key, ep, &exact)); /* Get the page referenced by the cursor. */ if ((h = mpool_get(t->bt_mp, c->pg.pgno, 0)) == NULL) return (RET_ERROR); /* * Find the next/previous record in the tree and point the cursor at * it. The cursor may not be moved until a new key has been found. */ switch (flags) { case R_NEXT: /* Next record. */ /* * The cursor was deleted in duplicate records, and moved * forward to a record that has yet to be returned. Clear * that flag, and return the record. */ if (F_ISSET(c, CURS_AFTER)) goto usecurrent; idx = c->pg.index; if (++idx == NEXTINDEX(h)) { pg = h->nextpg; mpool_put(t->bt_mp, h, 0); if (pg == P_INVALID) return (RET_SPECIAL); if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); idx = 0; } break; case R_PREV: /* Previous record. */ /* * The cursor was deleted in duplicate records, and moved * backward to a record that has yet to be returned. Clear * that flag, and return the record. */ if (F_ISSET(c, CURS_BEFORE)) { usecurrent: F_CLR(c, CURS_AFTER | CURS_BEFORE); ep->page = h; ep->index = c->pg.index; return (RET_SUCCESS); } idx = c->pg.index; if (idx == 0) { pg = h->prevpg; mpool_put(t->bt_mp, h, 0); if (pg == P_INVALID) return (RET_SPECIAL); if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); idx = NEXTINDEX(h) - 1; } else --idx; break; } ep->page = h; ep->index = idx; return (RET_SUCCESS); } /* * __bt_first -- * Find the first entry. * * Parameters: * t: the tree * key: the key * erval: return EPG * exactp: pointer to exact match flag * * Returns: * The first entry in the tree greater than or equal to key, * or RET_SPECIAL if no such key exists. */ static int __bt_first(BTREE *t, const DBT *key, EPG *erval, int *exactp) { PAGE *h; EPG *ep, save; pgno_t pg; /* * Find any matching record; __bt_search pins the page. * * If it's an exact match and duplicates are possible, walk backwards * in the tree until we find the first one. Otherwise, make sure it's * a valid key (__bt_search may return an index just past the end of a * page) and return it. */ if ((ep = __bt_search(t, key, exactp)) == NULL) return (0); if (*exactp) { if (F_ISSET(t, B_NODUPS)) { *erval = *ep; return (RET_SUCCESS); } /* * Walk backwards, as long as the entry matches and there are * keys left in the tree. Save a copy of each match in case * we go too far. */ save = *ep; h = ep->page; do { if (save.page->pgno != ep->page->pgno) { mpool_put(t->bt_mp, save.page, 0); save = *ep; } else save.index = ep->index; /* * Don't unpin the page the last (or original) match * was on, but make sure it's unpinned if an error * occurs. */ if (ep->index == 0) { if (h->prevpg == P_INVALID) break; if (h->pgno != save.page->pgno) mpool_put(t->bt_mp, h, 0); if ((h = mpool_get(t->bt_mp, h->prevpg, 0)) == NULL) return (RET_ERROR); ep->page = h; ep->index = NEXTINDEX(h); } --ep->index; } while (__bt_cmp(t, key, ep) == 0); /* * Reach here with the last page that was looked at pinned, * which may or may not be the same as the last (or original) * match page. If it's not useful, release it. */ if (h->pgno != save.page->pgno) mpool_put(t->bt_mp, h, 0); *erval = save; return (RET_SUCCESS); } /* If at the end of a page, find the next entry. */ if (ep->index == NEXTINDEX(ep->page)) { h = ep->page; pg = h->nextpg; mpool_put(t->bt_mp, h, 0); if (pg == P_INVALID) return (RET_SPECIAL); if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); ep->index = 0; ep->page = h; } *erval = *ep; return (RET_SUCCESS); } /* * __bt_setcur -- * Set the cursor to an entry in the tree. * * Parameters: * t: the tree * pgno: page number * idx: page index */ void __bt_setcur(BTREE *t, pgno_t pgno, u_int idx) { /* Lose any already deleted key. */ if (t->bt_cursor.key.data != NULL) { free(t->bt_cursor.key.data); t->bt_cursor.key.size = 0; t->bt_cursor.key.data = NULL; } F_CLR(&t->bt_cursor, CURS_ACQUIRE | CURS_AFTER | CURS_BEFORE); /* Update the cursor. */ t->bt_cursor.pg.pgno = pgno; t->bt_cursor.pg.index = idx; F_SET(&t->bt_cursor, CURS_INIT); } libnbcompat-20180822/db/btree/bt_put.c0000644000175000017500000002066513355271171017651 0ustar jgoerzenjgoerzen/* $NetBSD: bt_put.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_put.c,v 1.18 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_put.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include #include "btree.h" static EPG *bt_fast(BTREE *, const DBT *, const DBT *, int *); /* * __BT_PUT -- Add a btree item to the tree. * * Parameters: * dbp: pointer to access method * key: key * data: data * flag: R_NOOVERWRITE * * Returns: * RET_ERROR, RET_SUCCESS and RET_SPECIAL if the key is already in the * tree and R_NOOVERWRITE specified. */ int __bt_put(const DB *dbp, DBT *key, const DBT *data, u_int flags) { BTREE *t; DBT tkey, tdata; EPG *e = NULL; /* pacify gcc */ PAGE *h; indx_t idx, nxtindex; pgno_t pg; uint32_t nbytes, temp; int dflags, exact, status; char *dest, db[NOVFLSIZE], kb[NOVFLSIZE]; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* Check for change to a read-only tree. */ if (F_ISSET(t, B_RDONLY)) { errno = EPERM; return (RET_ERROR); } switch (flags) { case 0: case R_NOOVERWRITE: break; case R_CURSOR: /* * If flags is R_CURSOR, put the cursor. Must already * have started a scan and not have already deleted it. */ if (F_ISSET(&t->bt_cursor, CURS_INIT) && !F_ISSET(&t->bt_cursor, CURS_ACQUIRE | CURS_AFTER | CURS_BEFORE)) break; /* FALLTHROUGH */ default: errno = EINVAL; return (RET_ERROR); } /* * If the key/data pair won't fit on a page, store it on overflow * pages. Only put the key on the overflow page if the pair are * still too big after moving the data to an overflow page. * * XXX * If the insert fails later on, the overflow pages aren't recovered. */ dflags = 0; if (key->size + data->size > t->bt_ovflsize) { if (key->size > t->bt_ovflsize) { storekey: if (__ovfl_put(t, key, &pg) == RET_ERROR) return (RET_ERROR); tkey.data = kb; tkey.size = NOVFLSIZE; memmove(kb, &pg, sizeof(pgno_t)); memmove(kb + sizeof(pgno_t), &key->size, sizeof(uint32_t)); dflags |= P_BIGKEY; key = &tkey; } if (key->size + data->size > t->bt_ovflsize) { if (__ovfl_put(t, data, &pg) == RET_ERROR) return (RET_ERROR); tdata.data = db; tdata.size = NOVFLSIZE; memmove(db, &pg, sizeof(pgno_t)); _DBFIT(data->size, uint32_t); temp = (uint32_t)data->size; (void)memmove(db + sizeof(pgno_t), &temp, sizeof(uint32_t)); dflags |= P_BIGDATA; data = &tdata; } if (key->size + data->size > t->bt_ovflsize) goto storekey; } /* Replace the cursor. */ if (flags == R_CURSOR) { if ((h = mpool_get(t->bt_mp, t->bt_cursor.pg.pgno, 0)) == NULL) return (RET_ERROR); idx = t->bt_cursor.pg.index; goto delete; } /* * Find the key to delete, or, the location at which to insert. * Bt_fast and __bt_search both pin the returned page. */ if (t->bt_order == NOT || (e = bt_fast(t, key, data, &exact)) == NULL) if ((e = __bt_search(t, key, &exact)) == NULL) return (RET_ERROR); h = e->page; idx = e->index; /* * Add the key/data pair to the tree. If an identical key is already * in the tree, and R_NOOVERWRITE is set, an error is returned. If * R_NOOVERWRITE is not set, the key is either added (if duplicates are * permitted) or an error is returned. */ switch (flags) { case R_NOOVERWRITE: if (!exact) break; mpool_put(t->bt_mp, h, 0); return (RET_SPECIAL); default: if (!exact || !F_ISSET(t, B_NODUPS)) break; /* * !!! * Note, the delete may empty the page, so we need to put a * new entry into the page immediately. */ delete: if (__bt_dleaf(t, key, h, (u_int)idx) == RET_ERROR) { mpool_put(t->bt_mp, h, 0); return (RET_ERROR); } break; } /* * If not enough room, or the user has put a ceiling on the number of * keys permitted in the page, split the page. The split code will * insert the key and data and unpin the current page. If inserting * into the offset array, shift the pointers up. */ nbytes = NBLEAFDBT(key->size, data->size); if (h->upper - h->lower < nbytes + sizeof(indx_t)) { if ((status = __bt_split(t, h, key, data, dflags, nbytes, (u_int)idx)) != RET_SUCCESS) return (status); goto success; } if (idx < (nxtindex = NEXTINDEX(h))) memmove(h->linp + idx + 1, h->linp + idx, (nxtindex - idx) * sizeof(indx_t)); h->lower += sizeof(indx_t); h->linp[idx] = h->upper -= nbytes; dest = (char *)(void *)h + h->upper; WR_BLEAF(dest, key, data, dflags); /* If the cursor is on this page, adjust it as necessary. */ if (F_ISSET(&t->bt_cursor, CURS_INIT) && !F_ISSET(&t->bt_cursor, CURS_ACQUIRE) && t->bt_cursor.pg.pgno == h->pgno && t->bt_cursor.pg.index >= idx) ++t->bt_cursor.pg.index; if (t->bt_order == NOT) { if (h->nextpg == P_INVALID) { if (idx == NEXTINDEX(h) - 1) { t->bt_order = FORWARD; t->bt_last.index = idx; t->bt_last.pgno = h->pgno; } } else if (h->prevpg == P_INVALID) { if (idx == 0) { t->bt_order = BACK; t->bt_last.index = 0; t->bt_last.pgno = h->pgno; } } } mpool_put(t->bt_mp, h, MPOOL_DIRTY); success: if (flags == R_SETCURSOR) __bt_setcur(t, e->page->pgno, (u_int)e->index); F_SET(t, B_MODIFIED); return (RET_SUCCESS); } #ifdef STATISTICS unsigned long bt_cache_hit, bt_cache_miss; #endif /* * BT_FAST -- Do a quick check for sorted data. * * Parameters: * t: tree * key: key to insert * * Returns: * EPG for new record or NULL if not found. */ static EPG * bt_fast(BTREE *t, const DBT *key, const DBT *data, int *exactp) { PAGE *h; uint32_t nbytes; int cmp; if ((h = mpool_get(t->bt_mp, t->bt_last.pgno, 0)) == NULL) { t->bt_order = NOT; return (NULL); } t->bt_cur.page = h; t->bt_cur.index = t->bt_last.index; /* * If won't fit in this page or have too many keys in this page, * have to search to get split stack. */ nbytes = NBLEAFDBT(key->size, data->size); if (h->upper - h->lower < nbytes + sizeof(indx_t)) goto miss; if (t->bt_order == FORWARD) { if (t->bt_cur.page->nextpg != P_INVALID) goto miss; if (t->bt_cur.index != NEXTINDEX(h) - 1) goto miss; if ((cmp = __bt_cmp(t, key, &t->bt_cur)) < 0) goto miss; t->bt_last.index = cmp ? ++t->bt_cur.index : t->bt_cur.index; } else { if (t->bt_cur.page->prevpg != P_INVALID) goto miss; if (t->bt_cur.index != 0) goto miss; if ((cmp = __bt_cmp(t, key, &t->bt_cur)) > 0) goto miss; t->bt_last.index = 0; } *exactp = cmp == 0; #ifdef STATISTICS ++bt_cache_hit; #endif return (&t->bt_cur); miss: #ifdef STATISTICS ++bt_cache_miss; #endif t->bt_order = NOT; mpool_put(t->bt_mp, h, 0); return (NULL); } libnbcompat-20180822/db/btree/bt_overflow.c0000644000175000017500000001363713355271171020705 0ustar jgoerzenjgoerzen/* $NetBSD: bt_overflow.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_overflow.c,v 1.16 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_overflow.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include #include #include "btree.h" /* * Big key/data code. * * Big key and data entries are stored on linked lists of pages. The initial * reference is byte string stored with the key or data and is the page number * and size. The actual record is stored in a chain of pages linked by the * nextpg field of the PAGE header. * * The first page of the chain has a special property. If the record is used * by an internal page, it cannot be deleted and the P_PRESERVE bit will be set * in the header. * * XXX * A single DBT is written to each chain, so a lot of space on the last page * is wasted. This is a fairly major bug for some data sets. */ /* * __OVFL_GET -- Get an overflow key/data item. * * Parameters: * t: tree * p: pointer to { pgno_t, uint32_t } * buf: storage address * bufsz: storage size * * Returns: * RET_ERROR, RET_SUCCESS */ int __ovfl_get(BTREE *t, void *p, size_t *ssz, void **buf, size_t *bufsz) { PAGE *h; pgno_t pg; uint32_t sz, nb, plen; size_t temp; memmove(&pg, p, sizeof(pgno_t)); memmove(&sz, (char *)p + sizeof(pgno_t), sizeof(uint32_t)); *ssz = sz; #ifdef DEBUG if (pg == P_INVALID || sz == 0) abort(); #endif /* Make the buffer bigger as necessary. */ if (*bufsz < sz) { *buf = (char *)(*buf == NULL ? malloc(sz) : realloc(*buf, sz)); if (*buf == NULL) return (RET_ERROR); *bufsz = sz; } /* * Step through the linked list of pages, copying the data on each one * into the buffer. Never copy more than the data's length. */ temp = t->bt_psize - BTDATAOFF; _DBFIT(temp, uint32_t); plen = (uint32_t)temp; for (p = *buf;; p = (char *)p + nb, pg = h->nextpg) { if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); nb = MIN(sz, plen); memmove(p, (char *)(void *)h + BTDATAOFF, nb); mpool_put(t->bt_mp, h, 0); if ((sz -= nb) == 0) break; } return (RET_SUCCESS); } /* * __OVFL_PUT -- Store an overflow key/data item. * * Parameters: * t: tree * data: DBT to store * pgno: storage page number * * Returns: * RET_ERROR, RET_SUCCESS */ int __ovfl_put(BTREE *t, const DBT *dbt, pgno_t *pg) { PAGE *h, *last; void *p; pgno_t npg; uint32_t sz, nb, plen; size_t temp; /* * Allocate pages and copy the key/data record into them. Store the * number of the first page in the chain. */ temp = t->bt_psize - BTDATAOFF; _DBFIT(temp, uint32_t); plen = (uint32_t)temp; last = NULL; p = dbt->data; temp = dbt->size; _DBFIT(temp, uint32_t); sz = temp; for (;; p = (char *)p + plen, last = h) { if ((h = __bt_new(t, &npg)) == NULL) return (RET_ERROR); h->pgno = npg; h->nextpg = h->prevpg = P_INVALID; h->flags = P_OVERFLOW; h->lower = h->upper = 0; nb = MIN(sz, plen); (void)memmove((char *)(void *)h + BTDATAOFF, p, (size_t)nb); if (last) { last->nextpg = h->pgno; mpool_put(t->bt_mp, last, MPOOL_DIRTY); } else *pg = h->pgno; if ((sz -= nb) == 0) { mpool_put(t->bt_mp, h, MPOOL_DIRTY); break; } } return (RET_SUCCESS); } /* * __OVFL_DELETE -- Delete an overflow chain. * * Parameters: * t: tree * p: pointer to { pgno_t, uint32_t } * * Returns: * RET_ERROR, RET_SUCCESS */ int __ovfl_delete(BTREE *t, void *p) { PAGE *h; pgno_t pg; uint32_t sz, plen; size_t temp; (void)memmove(&pg, p, sizeof(pgno_t)); (void)memmove(&sz, (char *)p + sizeof(pgno_t), sizeof(uint32_t)); #ifdef DEBUG if (pg == P_INVALID || sz == 0) abort(); #endif if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); /* Don't delete chains used by internal pages. */ if (h->flags & P_PRESERVE) { mpool_put(t->bt_mp, h, 0); return (RET_SUCCESS); } /* Step through the chain, calling the free routine for each page. */ temp = t->bt_psize - BTDATAOFF; _DBFIT(temp, uint32_t); plen = (uint32_t)temp; for (;; sz -= plen) { pg = h->nextpg; __bt_free(t, h); if (sz <= plen) break; if ((h = mpool_get(t->bt_mp, pg, 0)) == NULL) return (RET_ERROR); } return (RET_SUCCESS); } libnbcompat-20180822/db/btree/bt_page.c0000644000175000017500000000547613355271171017760 0ustar jgoerzenjgoerzen/* $NetBSD: bt_page.c,v 1.1 2008/10/10 00:21:43 joerg Exp $ */ /* NetBSD: bt_page.c,v 1.13 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_page.c,v 1.1 2008/10/10 00:21:43 joerg Exp $"); #include #include #include #include #include "btree.h" /* * __bt_free -- * Put a page on the freelist. * * Parameters: * t: tree * h: page to free * * Returns: * RET_ERROR, RET_SUCCESS * * Side-effect: * mpool_put's the page. */ int __bt_free(BTREE *t, PAGE *h) { /* Insert the page at the head of the free list. */ h->prevpg = P_INVALID; h->nextpg = t->bt_free; t->bt_free = h->pgno; F_SET(t, B_METADIRTY); /* Make sure the page gets written back. */ return (mpool_put(t->bt_mp, h, MPOOL_DIRTY)); } /* * __bt_new -- * Get a new page, preferably from the freelist. * * Parameters: * t: tree * npg: storage for page number. * * Returns: * Pointer to a page, NULL on error. */ PAGE * __bt_new(BTREE *t, pgno_t *npg) { PAGE *h; if (t->bt_free != P_INVALID && (h = mpool_get(t->bt_mp, t->bt_free, 0)) != NULL) { *npg = t->bt_free; t->bt_free = h->nextpg; F_SET(t, B_METADIRTY); return (h); } return (mpool_new(t->bt_mp, npg)); } libnbcompat-20180822/db/btree/bt_utils.c0000644000175000017500000001476713355271171020207 0ustar jgoerzenjgoerzen/* $NetBSD: bt_utils.c,v 1.2 2013/09/08 12:02:03 ryoon Exp $ */ /* NetBSD: bt_utils.c,v 1.13 2008/09/10 17:52:35 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_utils.c,v 1.2 2013/09/08 12:02:03 ryoon Exp $"); #include #include #include #include #include #include #include "btree.h" /* * __bt_ret -- * Build return key/data pair. * * Parameters: * t: tree * e: key/data pair to be returned * key: user's key structure (NULL if not to be filled in) * rkey: memory area to hold key * data: user's data structure (NULL if not to be filled in) * rdata: memory area to hold data * copy: always copy the key/data item * * Returns: * RET_SUCCESS, RET_ERROR. */ int __bt_ret(BTREE *t, EPG *e, DBT *key, DBT *rkey, DBT *data, DBT *rdata, int copy) { BLEAF *bl; void *p; bl = GETBLEAF(e->page, e->index); /* * We must copy big keys/data to make them contiguous. Otherwise, * leave the page pinned and don't copy unless the user specified * concurrent access. */ if (key == NULL) goto dataonly; if (bl->flags & P_BIGKEY) { if (__ovfl_get(t, bl->bytes, &key->size, &rkey->data, &rkey->size)) return (RET_ERROR); key->data = rkey->data; } else if (copy || F_ISSET(t, B_DB_LOCK)) { if (bl->ksize > rkey->size) { p = (void *)(rkey->data == NULL ? malloc(bl->ksize) : realloc(rkey->data, bl->ksize)); if (p == NULL) return (RET_ERROR); rkey->data = p; rkey->size = bl->ksize; } memmove(rkey->data, bl->bytes, bl->ksize); key->size = bl->ksize; key->data = rkey->data; } else { key->size = bl->ksize; key->data = bl->bytes; } dataonly: if (data == NULL) return (RET_SUCCESS); if (bl->flags & P_BIGDATA) { if (__ovfl_get(t, bl->bytes + bl->ksize, &data->size, &rdata->data, &rdata->size)) return (RET_ERROR); data->data = rdata->data; } else if (copy || F_ISSET(t, B_DB_LOCK)) { /* Use +1 in case the first record retrieved is 0 length. */ if (bl->dsize + 1 > rdata->size) { p = (void *)(rdata->data == NULL ? malloc(bl->dsize + 1) : realloc(rdata->data, bl->dsize + 1)); if (p == NULL) return (RET_ERROR); rdata->data = p; rdata->size = bl->dsize + 1; } memmove(rdata->data, bl->bytes + bl->ksize, bl->dsize); data->size = bl->dsize; data->data = rdata->data; } else { data->size = bl->dsize; data->data = bl->bytes + bl->ksize; } return (RET_SUCCESS); } /* * __BT_CMP -- Compare a key to a given record. * * Parameters: * t: tree * k1: DBT pointer of first arg to comparison * e: pointer to EPG for comparison * * Returns: * < 0 if k1 is < record * = 0 if k1 is = record * > 0 if k1 is > record */ int __bt_cmp(BTREE *t, const DBT *k1, EPG *e) { BINTERNAL *bi; BLEAF *bl; DBT k2; PAGE *h; void *bigkey; /* * The left-most key on internal pages, at any level of the tree, is * guaranteed by the following code to be less than any user key. * This saves us from having to update the leftmost key on an internal * page when the user inserts a new key in the tree smaller than * anything we've yet seen. */ h = e->page; if (e->index == 0 && h->prevpg == P_INVALID && !(h->flags & P_BLEAF)) return (1); bigkey = NULL; if (h->flags & P_BLEAF) { bl = GETBLEAF(h, e->index); if (bl->flags & P_BIGKEY) bigkey = bl->bytes; else { k2.data = bl->bytes; k2.size = bl->ksize; } } else { bi = GETBINTERNAL(h, e->index); if (bi->flags & P_BIGKEY) bigkey = bi->bytes; else { k2.data = bi->bytes; k2.size = bi->ksize; } } if (bigkey) { if (__ovfl_get(t, bigkey, &k2.size, &t->bt_rdata.data, &t->bt_rdata.size)) return (RET_ERROR); k2.data = t->bt_rdata.data; } return ((*t->bt_cmp)(k1, &k2)); } /* * __BT_DEFCMP -- Default comparison routine. * * Parameters: * a: DBT #1 * b: DBT #2 * * Returns: * < 0 if a is < b * = 0 if a is = b * > 0 if a is > b */ int __bt_defcmp(const DBT *a, const DBT *b) { size_t len; uint8_t *p1, *p2; /* * XXX * If a size_t doesn't fit in an int, this routine can lose. * What we need is a integral type which is guaranteed to be * larger than a size_t, and there is no such thing. */ len = MIN(a->size, b->size); for (p1 = a->data, p2 = b->data; len--; ++p1, ++p2) if (*p1 != *p2) return ((int)*p1 - (int)*p2); return ((int)a->size - (int)b->size); } /* * __BT_DEFPFX -- Default prefix routine. * * Parameters: * a: DBT #1 * b: DBT #2 * * Returns: * Number of bytes needed to distinguish b from a. */ size_t __bt_defpfx(const DBT *a, const DBT *b) { uint8_t *p1, *p2; size_t cnt, len; cnt = 1; len = MIN(a->size, b->size); for (p1 = a->data, p2 = b->data; len--; ++p1, ++p2, ++cnt) if (*p1 != *p2) return (cnt); /* a->size must be <= b->size, or they wouldn't be in this order. */ return (a->size < b->size ? a->size + 1 : a->size); } libnbcompat-20180822/db/btree/bt_open.c0000644000175000017500000002622613355271171020001 0ustar jgoerzenjgoerzen/* $NetBSD: bt_open.c,v 1.5 2009/05/07 00:23:45 schmonz Exp $ */ /* NetBSD: bt_open.c,v 1.24 2008/09/11 12:58:00 joerg Exp */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Mike Olson. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include __RCSID("$NetBSD: bt_open.c,v 1.5 2009/05/07 00:23:45 schmonz Exp $"); /* * Implementation of btree access method for 4.4BSD. * * The design here was originally based on that of the btree access method * used in the Postgres database system at UC Berkeley. This implementation * is wholly independent of the Postgres code. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "btree.h" #ifdef DEBUG #undef MINPSIZE #define MINPSIZE 128 #endif static int byteorder(void); static int nroot(BTREE *); static int tmp(void); /* * __BT_OPEN -- Open a btree. * * Creates and fills a DB struct, and calls the routine that actually * opens the btree. * * Parameters: * fname: filename (NULL for in-memory trees) * flags: open flag bits * mode: open permission bits * b: BTREEINFO pointer * * Returns: * NULL on failure, pointer to DB on success. * */ DB * __bt_open(const char *fname, int flags, mode_t mode, const BTREEINFO *openinfo, int dflags) { struct stat sb; BTMETA m; BTREE *t; BTREEINFO b; DB *dbp; pgno_t ncache; ssize_t nr; size_t temp; int machine_lorder; t = NULL; /* * Intention is to make sure all of the user's selections are okay * here and then use them without checking. Can't be complete, since * we don't know the right page size, lorder or flags until the backing * file is opened. Also, the file's page size can cause the cachesize * to change. */ machine_lorder = byteorder(); if (openinfo) { b = *openinfo; /* Flags: R_DUP. */ if (b.flags & ~(R_DUP)) goto einval; /* * Page size must be indx_t aligned and >= MINPSIZE. Default * page size is set farther on, based on the underlying file * transfer size. */ if (b.psize && (b.psize < MINPSIZE || b.psize > MAX_PAGE_OFFSET + 1 || b.psize & (sizeof(indx_t) - 1))) goto einval; /* Minimum number of keys per page; absolute minimum is 2. */ if (b.minkeypage) { if (b.minkeypage < 2) goto einval; } else b.minkeypage = DEFMINKEYPAGE; /* If no comparison, use default comparison and prefix. */ if (b.compare == NULL) { b.compare = __bt_defcmp; if (b.prefix == NULL) b.prefix = __bt_defpfx; } if (b.lorder == 0) b.lorder = machine_lorder; } else { b.compare = __bt_defcmp; b.cachesize = 0; b.flags = 0; b.lorder = machine_lorder; b.minkeypage = DEFMINKEYPAGE; b.prefix = __bt_defpfx; b.psize = 0; } /* Check for the ubiquitous PDP-11. */ if (b.lorder != BIG_ENDIAN && b.lorder != LITTLE_ENDIAN) goto einval; /* Allocate and initialize DB and BTREE structures. */ if ((t = (BTREE *)malloc(sizeof(BTREE))) == NULL) goto err; memset(t, 0, sizeof(BTREE)); t->bt_fd = -1; /* Don't close unopened fd on error. */ t->bt_lorder = b.lorder; t->bt_order = NOT; t->bt_cmp = b.compare; t->bt_pfx = b.prefix; t->bt_rfd = -1; if ((t->bt_dbp = dbp = (DB *)malloc(sizeof(DB))) == NULL) goto err; memset(t->bt_dbp, 0, sizeof(DB)); if (t->bt_lorder != machine_lorder) F_SET(t, B_NEEDSWAP); dbp->type = DB_BTREE; dbp->internal = t; dbp->close = __bt_close; dbp->del = __bt_delete; dbp->fd = __bt_fd; dbp->get = __bt_get; dbp->put = __bt_put; dbp->seq = __bt_seq; dbp->sync = __bt_sync; /* * If no file name was supplied, this is an in-memory btree and we * open a backing temporary file. Otherwise, it's a disk-based tree. */ if (fname) { switch (flags & O_ACCMODE) { case O_RDONLY: F_SET(t, B_RDONLY); break; case O_RDWR: break; case O_WRONLY: default: goto einval; } if ((t->bt_fd = open(fname, flags, mode)) == -1) goto err; if (fcntl(t->bt_fd, F_SETFD, FD_CLOEXEC) == -1) goto err; } else { if ((flags & O_ACCMODE) != O_RDWR) goto einval; if ((t->bt_fd = tmp()) == -1) goto err; F_SET(t, B_INMEM); } if (fcntl(t->bt_fd, F_SETFD, FD_CLOEXEC) == -1) goto err; if (fstat(t->bt_fd, &sb)) goto err; if (sb.st_size) { if ((nr = read(t->bt_fd, &m, sizeof(BTMETA))) < 0) goto err; if (nr != sizeof(BTMETA)) goto eftype; /* * Read in the meta-data. This can change the notion of what * the lorder, page size and flags are, and, when the page size * changes, the cachesize value can change too. If the user * specified the wrong byte order for an existing database, we * don't bother to return an error, we just clear the NEEDSWAP * bit. */ if (m.magic == BTREEMAGIC) F_CLR(t, B_NEEDSWAP); else { F_SET(t, B_NEEDSWAP); M_32_SWAP(m.magic); M_32_SWAP(m.version); M_32_SWAP(m.psize); M_32_SWAP(m.free); M_32_SWAP(m.nrecs); M_32_SWAP(m.flags); } if (m.magic != BTREEMAGIC || m.version != BTREEVERSION) goto eftype; if (m.psize < MINPSIZE || m.psize > MAX_PAGE_OFFSET + 1 || m.psize & (sizeof(indx_t) - 1)) goto eftype; if (m.flags & ~SAVEMETA) goto eftype; b.psize = m.psize; F_SET(t, m.flags); t->bt_free = m.free; t->bt_nrecs = m.nrecs; } else { /* * Set the page size to the best value for I/O to this file. * Don't overflow the page offset type. */ if (b.psize == 0) { b.psize = sb.st_blksize; if (b.psize < MINPSIZE) b.psize = MINPSIZE; if (b.psize > MAX_PAGE_OFFSET + 1) b.psize = MAX_PAGE_OFFSET + 1; } /* Set flag if duplicates permitted. */ if (!(b.flags & R_DUP)) F_SET(t, B_NODUPS); t->bt_free = P_INVALID; t->bt_nrecs = 0; F_SET(t, B_METADIRTY); } t->bt_psize = b.psize; /* Set the cache size; must be a multiple of the page size. */ if (b.cachesize && b.cachesize & (b.psize - 1)) b.cachesize += (~b.cachesize & (b.psize - 1)) + 1; if (b.cachesize < b.psize * MINCACHE) b.cachesize = b.psize * MINCACHE; /* Calculate number of pages to cache. */ ncache = (b.cachesize + t->bt_psize - 1) / t->bt_psize; /* * The btree data structure requires that at least two keys can fit on * a page, but other than that there's no fixed requirement. The user * specified a minimum number per page, and we translated that into the * number of bytes a key/data pair can use before being placed on an * overflow page. This calculation includes the page header, the size * of the index referencing the leaf item and the size of the leaf item * structure. Also, don't let the user specify a minkeypage such that * a key/data pair won't fit even if both key and data are on overflow * pages. */ temp = (t->bt_psize - BTDATAOFF) / b.minkeypage - (sizeof(indx_t) + NBLEAFDBT(0, 0)); _DBFIT(temp, indx_t); t->bt_ovflsize = (indx_t)temp; if (t->bt_ovflsize < NBLEAFDBT(NOVFLSIZE, NOVFLSIZE) + sizeof(indx_t)) t->bt_ovflsize = NBLEAFDBT(NOVFLSIZE, NOVFLSIZE) + sizeof(indx_t); /* Initialize the buffer pool. */ if ((t->bt_mp = mpool_open(NULL, t->bt_fd, t->bt_psize, ncache)) == NULL) goto err; if (!F_ISSET(t, B_INMEM)) mpool_filter(t->bt_mp, __bt_pgin, __bt_pgout, t); /* Create a root page if new tree. */ if (nroot(t) == RET_ERROR) goto err; /* Global flags. */ if (dflags & DB_LOCK) F_SET(t, B_DB_LOCK); if (dflags & DB_SHMEM) F_SET(t, B_DB_SHMEM); if (dflags & DB_TXN) F_SET(t, B_DB_TXN); return (dbp); einval: errno = EINVAL; goto err; eftype: errno = EFTYPE; goto err; err: if (t) { if (t->bt_dbp) free(t->bt_dbp); if (t->bt_fd != -1) (void)close(t->bt_fd); free(t); } return (NULL); } /* * NROOT -- Create the root of a new tree. * * Parameters: * t: tree * * Returns: * RET_ERROR, RET_SUCCESS */ static int nroot(BTREE *t) { PAGE *meta, *root; pgno_t npg; if ((meta = mpool_get(t->bt_mp, 0, 0)) != NULL) { mpool_put(t->bt_mp, meta, 0); return (RET_SUCCESS); } if (errno != EINVAL) /* It's OK to not exist. */ return (RET_ERROR); errno = 0; if ((meta = mpool_new(t->bt_mp, &npg)) == NULL) return (RET_ERROR); if ((root = mpool_new(t->bt_mp, &npg)) == NULL) return (RET_ERROR); if (npg != P_ROOT) return (RET_ERROR); root->pgno = npg; root->prevpg = root->nextpg = P_INVALID; root->lower = BTDATAOFF; root->upper = t->bt_psize; root->flags = P_BLEAF; memset(meta, 0, t->bt_psize); mpool_put(t->bt_mp, meta, MPOOL_DIRTY); mpool_put(t->bt_mp, root, MPOOL_DIRTY); return (RET_SUCCESS); } static int tmp(void) { sigset_t set, oset; size_t len; int fd; char *envtmp; #ifdef PATH_MAX char path[PATH_MAX]; #else char path[MAXPATHLEN]; #endif #if HAVE_ISSETUGID if (issetugid()) envtmp = NULL; else #endif envtmp = getenv("TMPDIR"); len = snprintf(path, sizeof(path), "%s/bt.XXXXXX", envtmp ? envtmp : _PATH_TMP); if (len >= sizeof(path)) return -1; (void)sigfillset(&set); (void)sigprocmask(SIG_BLOCK, &set, &oset); if ((fd = mkstemp(path)) != -1) { (void)unlink(path); (void)fcntl(fd, F_SETFD, FD_CLOEXEC); } (void)sigprocmask(SIG_SETMASK, &oset, NULL); return(fd); } static int byteorder(void) { uint32_t x; uint8_t *p; x = 0x01020304; p = (uint8_t *)(void *)&x; switch (*p) { case 1: return (BIG_ENDIAN); case 4: return (LITTLE_ENDIAN); default: return (0); } } int __bt_fd(const DB *dbp) { BTREE *t; t = dbp->internal; /* Toss any page pinned across calls. */ if (t->bt_pinned != NULL) { mpool_put(t->bt_mp, t->bt_pinned, 0); t->bt_pinned = NULL; } /* In-memory database can't have a file descriptor. */ if (F_ISSET(t, B_INMEM)) { errno = ENOENT; return (-1); } return (t->bt_fd); } libnbcompat-20180822/db/pread.c0000644000175000017500000000046213355271171016337 0ustar jgoerzenjgoerzen/* $NetBSD: pread.c,v 1.1 2010/04/20 00:32:22 joerg Exp $ */ static ssize_t working_pread(int fd, void *buf, size_t nbytes, off_t off) { if (lseek(fd, off, SEEK_SET) == -1) return -1; return read(fd, buf, nbytes); } #undef pread #define pread(fd, buf, nbytes, off) working_pread(fd, buf, nbytes,off) libnbcompat-20180822/db/Makefile.inc0000644000175000017500000000111013355271171017277 0ustar jgoerzenjgoerzen# $NetBSD: Makefile.inc,v 1.1 2008/10/10 00:21:43 joerg Exp $ .PATH: ${.PARSEDIR}/btree ${.PARSEDIR}/db ${.PARSEDIR}/hash \ ${.PARSEDIR}/mpool ${.PARSEDIR}/recno CPPFLAGS+=-D__DBINTERFACE_PRIVATE OBJS+= bt_close.o bt_conv.o bt_debug.o bt_delete.o bt_get.o bt_open.o \ bt_overflow.o bt_page.o bt_put.o bt_search.o bt_seq.o bt_split.o \ bt_utils.o \ db.o \ hash.o hash_bigkey.o hash_buf.o hash_func.o hash_log2.o hash_page.o \ ndbm.o ndbmdatum.o \ mpool.o rec_close.o rec_delete.o rec_get.o rec_open.o rec_put.o \ rec_search.o rec_seq.o rec_utils.o INCS+= nbcompat/db.h libnbcompat-20180822/unsetenv.c0000644000175000017500000000033213355271171016522 0ustar jgoerzenjgoerzen/* $NetBSD: unsetenv.c,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /* * Written by Klaus Klein , April 1, 2003. * Public domain. */ #if 0 #define __LIBC12_SOURCE__ #endif #include "__unsetenv13.c" libnbcompat-20180822/snprintf.c0000644000175000017500000000445713355271171016532 0ustar jgoerzenjgoerzen/* $NetBSD: snprintf.c,v 1.7 2008/06/19 17:28:09 joerg Exp $ */ /*- * Copyright (c) 2007 Tobias Nygren * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 AUTHOR 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 AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #if HAVE_STDARG_H #include #endif #ifdef MIN #undef MIN #endif #define MIN(a, b) ((a)<(b)?(a):(b)) int snprintf(char *str, size_t size, const char *format, ...) { va_list ap; int len; va_start(ap, format); len = vsnprintf(str, size, format, ap); va_end(ap); return len; } int vsnprintf(char *str, size_t size, const char *format, va_list ap) { int len; char buf[129]; char *p = buf; static FILE *devnull = 0; if (devnull == NULL) { devnull = fopen("/dev/null", "w"); if (devnull == NULL) return -1; } len = vfprintf(devnull, format, ap); if (len < 0) return len; if (len > 128) { p = malloc(len + 1); if (p == NULL) return -1; } vsprintf(p, format, ap); if (size > 0) { memcpy(str, p, MIN(len, size)); str[MIN(len, size - 1)] = 0; } if (p != buf) free(p); return len; } libnbcompat-20180822/err.c0000644000175000017500000000632713355271171015455 0ustar jgoerzenjgoerzen/* $NetBSD: err.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright 1997-2000 Luke Mewburn . * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)err.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: err.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #ifndef __NO_NAMESPACE_H /* XXX */ #if 0 #include "namespace.h" #endif #endif #include #if HAVE_STDARG_H #include #endif #if 0 #ifdef __weak_alias __weak_alias(err, _err) #endif #endif void err(int eval, const char *fmt, ...) { va_list ap; int sverrno; sverrno = errno; (void)fprintf(stderr, "%s: ", getprogname()); va_start(ap, fmt); if (fmt != NULL) { (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, ": "); } va_end(ap); (void)fprintf(stderr, "%s\n", strerror(sverrno)); exit(eval); } void errx(int eval, const char *fmt, ...) { va_list ap; (void)fprintf(stderr, "%s: ", getprogname()); va_start(ap, fmt); if (fmt != NULL) (void)vfprintf(stderr, fmt, ap); va_end(ap); (void)fprintf(stderr, "\n"); exit(eval); } void verr(eval, fmt, ap) int eval; const char *fmt; va_list ap; { int sverrno; sverrno = errno; (void)fprintf(stderr, "%s: ", getprogname()); if (fmt != NULL) { (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, ": "); } (void)fprintf(stderr, "%s\n", strerror(sverrno)); exit(eval); } void verrx(eval, fmt, ap) int eval; const char *fmt; va_list ap; { (void)fprintf(stderr, "%s: ", getprogname()); if (fmt != NULL) (void)vfprintf(stderr, fmt, ap); (void)fprintf(stderr, "\n"); exit(eval); } libnbcompat-20180822/md5hl.c0000644000175000017500000000055713355271171015675 0ustar jgoerzenjgoerzen/* $NetBSD: md5hl.c,v 1.7 2004/08/23 03:32:12 jlam Exp $ */ /* * Written by Jason R. Thorpe , April 29, 1997. * Public domain. */ #define MDALGORITHM MD5 #if 0 #include "namespace.h" #endif #include #include #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_MD5_H #include "mdXhl.c" #endif libnbcompat-20180822/poll.c0000644000175000017500000000554613355271171015635 0ustar jgoerzenjgoerzen/* $NetBSD: poll.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Charles Blundell. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include int poll(struct pollfd *p, nfds_t nfds, int timout) { fd_set read, write, except; struct timeval tv; nfds_t i; int highfd, rval; /* * select cannot tell us much wrt POLL*BAND, POLLPRI, POLLHUP or * POLLNVAL. */ FD_ZERO(&read); FD_ZERO(&write); FD_ZERO(&except); highfd = -1; for (i = 0; i < nfds; i++) { if (p[i].fd < 0) continue; if (p[i].fd >= FD_SETSIZE) { errno = EINVAL; return -1; } if (p[i].fd > highfd) highfd = p[i].fd; if (p[i].events & (POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI)) FD_SET(p[i].fd, &read); if (p[i].events & (POLLOUT|POLLWRNORM|POLLWRBAND)) FD_SET(p[i].fd, &write); FD_SET(p[i].fd, &except); } tv.tv_sec = timout / 1000; tv.tv_usec = (timout % 1000) * 1000; rval = select(highfd + 1, &read, &write, &except, timout == -1 ? NULL : &tv); if (rval <= 0) return rval; rval = 0; for (i = 0; i < nfds; i++) { p[i].revents = 0; if (FD_ISSET(p[i].fd, &read)) p[i].revents |= POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI; if (FD_ISSET(p[i].fd, &write)) p[i].revents |= POLLOUT|POLLWRNORM|POLLWRBAND; if (FD_ISSET(p[i].fd, &except)) p[i].revents |= POLLERR; /* XXX: POLLHUP/POLLNVAL? */ if (p[i].revents != 0) rval++; } return rval; } libnbcompat-20180822/install-sh0000755000175000017500000001273613355271171016526 0ustar jgoerzenjgoerzen#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 libnbcompat-20180822/isblank.c0000644000175000017500000000446413355271171016310 0ustar jgoerzenjgoerzen/* $NetBSD: isblank.c,v 1.5 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1989 The Regents of the University of California. * All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)isctype.c 5.2 (Berkeley) 6/1/90"; #else __RCSID("$NetBSD: isblank.c,v 1.5 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #define _ANSI_LIBRARY #endif #include int isblank(c) int c; { return(c == ' ' || c == '\t'); } libnbcompat-20180822/setmode.c0000644000175000017500000002661313355271171016325 0ustar jgoerzenjgoerzen/* $NetBSD: setmode.c,v 1.10 2007/07/31 13:17:33 joerg Exp $ */ /* * Copyright (c) 1989, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Dave Borman at Cray Research, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)setmode.c 8.2 (Berkeley) 3/25/94"; #else __RCSID("$NetBSD: setmode.c,v 1.10 2007/07/31 13:17:33 joerg Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #if HAVE_ERRNO_H #include #endif #if HAVE_SIGNAL_H #include #endif #include #include #ifdef SETMODE_DEBUG #include #endif #if 0 #ifdef __weak_alias __weak_alias(getmode,_getmode) __weak_alias(setmode,_setmode) #endif #endif #define SET_LEN 6 /* initial # of bitcmd struct to malloc */ #define SET_LEN_INCR 4 /* # of bitcmd structs to add as needed */ typedef struct bitcmd { char cmd; char cmd2; mode_t bits; } BITCMD; #define CMD2_CLR 0x01 #define CMD2_SET 0x02 #define CMD2_GBITS 0x04 #define CMD2_OBITS 0x08 #define CMD2_UBITS 0x10 static BITCMD *addcmd __P((BITCMD *, int, int, int, unsigned int)); static void compress_mode __P((BITCMD *)); #ifdef SETMODE_DEBUG static void dumpmode __P((BITCMD *)); #endif #if !HAVE_GETMODE /* * Given the old mode and an array of bitcmd structures, apply the operations * described in the bitcmd structures to the old mode, and return the new mode. * Note that there is no '=' command; a strict assignment is just a '-' (clear * bits) followed by a '+' (set bits). */ mode_t getmode(bbox, omode) const void *bbox; mode_t omode; { const BITCMD *set; mode_t clrval, newmode, value; _DIAGASSERT(bbox != NULL); set = (const BITCMD *)bbox; newmode = omode; for (value = 0;; set++) switch(set->cmd) { /* * When copying the user, group or other bits around, we "know" * where the bits are in the mode so that we can do shifts to * copy them around. If we don't use shifts, it gets real * grundgy with lots of single bit checks and bit sets. */ case 'u': value = (newmode & S_IRWXU) >> 6; goto common; case 'g': value = (newmode & S_IRWXG) >> 3; goto common; case 'o': value = newmode & S_IRWXO; common: if (set->cmd2 & CMD2_CLR) { clrval = (set->cmd2 & CMD2_SET) ? S_IRWXO : value; if (set->cmd2 & CMD2_UBITS) newmode &= ~((clrval<<6) & set->bits); if (set->cmd2 & CMD2_GBITS) newmode &= ~((clrval<<3) & set->bits); if (set->cmd2 & CMD2_OBITS) newmode &= ~(clrval & set->bits); } if (set->cmd2 & CMD2_SET) { if (set->cmd2 & CMD2_UBITS) newmode |= (value<<6) & set->bits; if (set->cmd2 & CMD2_GBITS) newmode |= (value<<3) & set->bits; if (set->cmd2 & CMD2_OBITS) newmode |= value & set->bits; } break; case '+': newmode |= set->bits; break; case '-': newmode &= ~set->bits; break; case 'X': if (omode & (S_IFDIR|S_IXUSR|S_IXGRP|S_IXOTH)) newmode |= set->bits; break; case '\0': default: #ifdef SETMODE_DEBUG (void)printf("getmode:%04o -> %04o\n", omode, newmode); #endif return (newmode); } } #endif /* !HAVE_GETMODE */ #define ADDCMD(a, b, c, d) do { \ if (set >= endset) { \ BITCMD *newset; \ setlen += SET_LEN_INCR; \ newset = realloc(saveset, sizeof(BITCMD) * setlen); \ if (newset == NULL) { \ free(saveset); \ return (NULL); \ } \ set = newset + (set - saveset); \ saveset = newset; \ endset = newset + (setlen - 2); \ } \ set = addcmd(set, (a), (b), (c), (d)); \ } while (/*CONSTCOND*/0) #define STANDARD_BITS (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) #if !HAVE_SETMODE void * setmode(p) const char *p; { int perm, who; char op, *ep; BITCMD *set, *saveset, *endset; sigset_t signset, sigoset; mode_t mask; int equalopdone = 0; /* pacify gcc */ int permXbits, setlen; if (!*p) return (NULL); /* * Get a copy of the mask for the permissions that are mask relative. * Flip the bits, we want what's not set. Since it's possible that * the caller is opening files inside a signal handler, protect them * as best we can. */ sigfillset(&signset); (void)sigprocmask(SIG_BLOCK, &signset, &sigoset); (void)umask(mask = umask(0)); mask = ~mask; (void)sigprocmask(SIG_SETMASK, &sigoset, NULL); setlen = SET_LEN + 2; if ((set = malloc((unsigned int)(sizeof(BITCMD) * setlen))) == NULL) return (NULL); saveset = set; endset = set + (setlen - 2); /* * If an absolute number, get it and return; disallow non-octal digits * or illegal bits. */ if (isdigit((unsigned char)*p)) { perm = (mode_t)strtol(p, &ep, 8); if (*ep || perm & ~(STANDARD_BITS|S_ISTXT)) { free(saveset); return (NULL); } ADDCMD('=', (STANDARD_BITS|S_ISTXT), perm, mask); set->cmd = 0; return (saveset); } /* * Build list of structures to set/clear/copy bits as described by * each clause of the symbolic mode. */ for (;;) { /* First, find out which bits might be modified. */ for (who = 0;; ++p) { switch (*p) { case 'a': who |= STANDARD_BITS; break; case 'u': who |= S_ISUID|S_IRWXU; break; case 'g': who |= S_ISGID|S_IRWXG; break; case 'o': who |= S_IRWXO; break; default: goto getop; } } getop: if ((op = *p++) != '+' && op != '-' && op != '=') { free(saveset); return (NULL); } if (op == '=') equalopdone = 0; who &= ~S_ISTXT; for (perm = 0, permXbits = 0;; ++p) { switch (*p) { case 'r': perm |= S_IRUSR|S_IRGRP|S_IROTH; break; case 's': /* * If specific bits where requested and * only "other" bits ignore set-id. */ if (who == 0 || (who & ~S_IRWXO)) perm |= S_ISUID|S_ISGID; break; case 't': /* * If specific bits where requested and * only "other" bits ignore set-id. */ if (who == 0 || (who & ~S_IRWXO)) { who |= S_ISTXT; perm |= S_ISTXT; } break; case 'w': perm |= S_IWUSR|S_IWGRP|S_IWOTH; break; case 'X': permXbits = S_IXUSR|S_IXGRP|S_IXOTH; break; case 'x': perm |= S_IXUSR|S_IXGRP|S_IXOTH; break; case 'u': case 'g': case 'o': /* * When ever we hit 'u', 'g', or 'o', we have * to flush out any partial mode that we have, * and then do the copying of the mode bits. */ if (perm) { ADDCMD(op, who, perm, mask); perm = 0; } if (op == '=') equalopdone = 1; if (op == '+' && permXbits) { ADDCMD('X', who, permXbits, mask); permXbits = 0; } ADDCMD(*p, who, op, mask); break; default: /* * Add any permissions that we haven't already * done. */ if (perm || (op == '=' && !equalopdone)) { if (op == '=') equalopdone = 1; ADDCMD(op, who, perm, mask); perm = 0; } if (permXbits) { ADDCMD('X', who, permXbits, mask); permXbits = 0; } goto apply; } } apply: if (!*p) break; if (*p != ',') goto getop; ++p; } set->cmd = 0; #ifdef SETMODE_DEBUG (void)printf("Before compress_mode()\n"); dumpmode(saveset); #endif compress_mode(saveset); #ifdef SETMODE_DEBUG (void)printf("After compress_mode()\n"); dumpmode(saveset); #endif return (saveset); } #endif /* !HAVE_SETMODE */ static BITCMD * addcmd(set, op, who, oparg, mask) BITCMD *set; int oparg, who; int op; unsigned int mask; { _DIAGASSERT(set != NULL); switch (op) { case '=': set->cmd = '-'; set->bits = who ? who : STANDARD_BITS; set++; op = '+'; /* FALLTHROUGH */ case '+': case '-': case 'X': set->cmd = op; set->bits = (who ? who : mask) & oparg; break; case 'u': case 'g': case 'o': set->cmd = op; if (who) { set->cmd2 = ((who & S_IRUSR) ? CMD2_UBITS : 0) | ((who & S_IRGRP) ? CMD2_GBITS : 0) | ((who & S_IROTH) ? CMD2_OBITS : 0); set->bits = (mode_t)~0; } else { set->cmd2 = CMD2_UBITS | CMD2_GBITS | CMD2_OBITS; set->bits = mask; } if (oparg == '+') set->cmd2 |= CMD2_SET; else if (oparg == '-') set->cmd2 |= CMD2_CLR; else if (oparg == '=') set->cmd2 |= CMD2_SET|CMD2_CLR; break; } return (set + 1); } #ifdef SETMODE_DEBUG static void dumpmode(set) BITCMD *set; { _DIAGASSERT(set != NULL); for (; set->cmd; ++set) (void)printf("cmd: '%c' bits %04o%s%s%s%s%s%s\n", set->cmd, set->bits, set->cmd2 ? " cmd2:" : "", set->cmd2 & CMD2_CLR ? " CLR" : "", set->cmd2 & CMD2_SET ? " SET" : "", set->cmd2 & CMD2_UBITS ? " UBITS" : "", set->cmd2 & CMD2_GBITS ? " GBITS" : "", set->cmd2 & CMD2_OBITS ? " OBITS" : ""); } #endif /* * Given an array of bitcmd structures, compress by compacting consecutive * '+', '-' and 'X' commands into at most 3 commands, one of each. The 'u', * 'g' and 'o' commands continue to be separate. They could probably be * compacted, but it's not worth the effort. */ static void compress_mode(set) BITCMD *set; { BITCMD *nset; int setbits, clrbits, Xbits, op; _DIAGASSERT(set != NULL); for (nset = set;;) { /* Copy over any 'u', 'g' and 'o' commands. */ while ((op = nset->cmd) != '+' && op != '-' && op != 'X') { *set++ = *nset++; if (!op) return; } for (setbits = clrbits = Xbits = 0;; nset++) { if ((op = nset->cmd) == '-') { clrbits |= nset->bits; setbits &= ~nset->bits; Xbits &= ~nset->bits; } else if (op == '+') { setbits |= nset->bits; clrbits &= ~nset->bits; Xbits &= ~nset->bits; } else if (op == 'X') Xbits |= nset->bits & ~setbits; else break; } if (clrbits) { set->cmd = '-'; set->cmd2 = 0; set->bits = clrbits; set++; } if (setbits) { set->cmd = '+'; set->cmd2 = 0; set->bits = setbits; set++; } if (Xbits) { set->cmd = 'X'; set->cmd2 = 0; set->bits = Xbits; set++; } } } libnbcompat-20180822/fgetln.c0000644000175000017500000000475213355271171016144 0ustar jgoerzenjgoerzen/* $NetBSD: fgetln.c,v 1.5 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Christos Zoulas. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include /* * XXX: This implementation doesn't quite conform to the specification * in the man page, in that it only manages one buffer at all, not one * per stdio stream. Since the previous implementation did the same, * this won't break anything new. */ char * fgetln(fp, len) FILE *fp; size_t *len; { static char *buf = NULL; static size_t bufsiz = 0; static size_t buflen = 0; int c; if (buf == NULL) { bufsiz = BUFSIZ; if ((buf = malloc(bufsiz)) == NULL) return NULL; } buflen = 0; while ((c = fgetc(fp)) != EOF) { if (buflen >= bufsiz) { size_t nbufsiz = bufsiz + BUFSIZ; char *nbuf = realloc(buf, nbufsiz); if (nbuf == NULL) { int oerrno = errno; free(buf); errno = oerrno; buf = NULL; return NULL; } buf = nbuf; bufsiz = nbufsiz; } buf[buflen++] = c; if (c == '\n') break; } *len = buflen; return buflen == 0 ? NULL : buf; } libnbcompat-20180822/findenv.c0000644000175000017500000000556013355271171016314 0ustar jgoerzenjgoerzen/* $NetBSD: findenv.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: findenv.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if HAVE_ERRNO_H #include #endif #include #include #if 0 #include "local.h" #include "reentrant.h" #endif #if 0 #ifdef _REENTRANT rwlock_t __environ_lock = RWLOCK_INITIALIZER; #endif #endif extern char **environ; /* * __findenv -- * Returns pointer to value associated with name, if any, else NULL. * Sets offset to be the offset of the name/value combination in the * environmental array, for use by setenv(3) and unsetenv(3). * Explicitly removes '=' in argument name. * * This routine *should* be a static; don't use it. */ char * __findenv(name, offset) const char *name; int *offset; { size_t len; const char *np; char **p, *c; if (name == NULL || environ == NULL) return (NULL); for (np = name; *np && *np != '='; ++np) continue; len = np - name; for (p = environ; (c = *p) != NULL; ++p) if (strncmp(c, name, len) == 0 && c[len] == '=') { *offset = p - environ; return (c + len + 1); } return (NULL); } libnbcompat-20180822/sha2.c0000644000175000017500000007124013355271171015516 0ustar jgoerzenjgoerzen/* $NetBSD: sha2.c,v 1.8 2011/11/08 18:20:03 joerg Exp $ */ /* $KAME: sha2.c,v 1.9 2003/07/20 00:28:38 itojun Exp $ */ /* * sha2.c * * Version 1.0.0beta1 * * Written by Aaron D. Gifford * * Copyright 2000 Aaron D. Gifford. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the copyright holder nor the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``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 AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #include #include #include #include /* * ASSERT NOTE: * Some sanity checking code is included using assert(). On my FreeBSD * system, this additional code can be removed by compiling with NDEBUG * defined. Check your own systems manpage on assert() to see how to * compile WITHOUT the sanity checking code on your system. * * UNROLLED TRANSFORM LOOP NOTE: * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform * loop version for the hash transform rounds (defined using macros * later in this file). Either define on the command line, for example: * * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c * * or define below: * * #define SHA2_UNROLL_TRANSFORM * */ /*** SHA-256/384/512 Machine Architecture Definitions *****************/ /* * BYTE_ORDER NOTE: * * Please make sure that your system defines BYTE_ORDER. If your * architecture is little-endian, make sure it also defines * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are * equivilent. * * If your system does not define the above, then you can do so by * hand like this: * * #define LITTLE_ENDIAN 1234 * #define BIG_ENDIAN 4321 * * And for little-endian machines, add: * * #define BYTE_ORDER LITTLE_ENDIAN * * Or for big-endian machines: * * #define BYTE_ORDER BIG_ENDIAN * * The FreeBSD machine this was written on defines BYTE_ORDER * appropriately by including (which in turn includes * where the appropriate definitions are actually * made). */ #if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN) #error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN #endif typedef uint8_t sha2_byte; /* Exactly 1 byte */ typedef uint32_t sha2_word32; /* Exactly 4 bytes */ typedef uint64_t sha2_word64; /* Exactly 8 bytes */ /*** SHA-256/384/512 Various Length Definitions ***********************/ /* NOTE: Most of these are in sha2.h */ #define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8) #define SHA384_SHORT_BLOCK_LENGTH (SHA384_BLOCK_LENGTH - 16) #define SHA512_SHORT_BLOCK_LENGTH (SHA512_BLOCK_LENGTH - 16) /*** ENDIAN REVERSAL MACROS *******************************************/ #if BYTE_ORDER == LITTLE_ENDIAN #define REVERSE32(w,x) { \ sha2_word32 tmp = (w); \ tmp = (tmp >> 16) | (tmp << 16); \ (x) = (sha2_word32)(((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8)); \ } #define REVERSE64(w,x) { \ sha2_word64 tmp = (w); \ tmp = (tmp >> 32) | (tmp << 32); \ tmp = (sha2_word64)(((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \ ((tmp & 0x00ff00ff00ff00ffULL) << 8)); \ (x) = (sha2_word64)(((tmp & 0xffff0000ffff0000ULL) >> 16) | \ ((tmp & 0x0000ffff0000ffffULL) << 16)); \ } #endif /* BYTE_ORDER == LITTLE_ENDIAN */ /* * Macro for incrementally adding the unsigned 64-bit integer n to the * unsigned 128-bit integer (represented using a two-element array of * 64-bit words): */ #define ADDINC128(w,n) { \ (w)[0] += (sha2_word64)(n); \ if ((w)[0] < (n)) { \ (w)[1]++; \ } \ } /*** THE SIX LOGICAL FUNCTIONS ****************************************/ /* * Bit shifting and rotation (used by the six SHA-XYZ logical functions: * * NOTE: The naming of R and S appears backwards here (R is a SHIFT and * S is a ROTATION) because the SHA-256/384/512 description document * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this * same "backwards" definition. */ /* Shift-right (used in SHA-256, SHA-384, and SHA-512): */ #define R(b,x) ((x) >> (b)) /* 32-bit Rotate-right (used in SHA-256): */ #define S32(b,x) (((x) >> (b)) | ((x) << (32 - (b)))) /* 64-bit Rotate-right (used in SHA-384 and SHA-512): */ #define S64(b,x) (((x) >> (b)) | ((x) << (64 - (b)))) /* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */ #define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z))) #define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) /* Four of six logical functions used in SHA-256: */ #define Sigma0_256(x) (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x))) #define Sigma1_256(x) (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x))) #define sigma0_256(x) (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x))) #define sigma1_256(x) (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x))) /* Four of six logical functions used in SHA-384 and SHA-512: */ #define Sigma0_512(x) (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x))) #define Sigma1_512(x) (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x))) #define sigma0_512(x) (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x))) #define sigma1_512(x) (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x))) /*** INTERNAL FUNCTION PROTOTYPES *************************************/ /* NOTE: These should not be accessed directly from outside this * library -- they are intended for private internal visibility/use * only. */ static void SHA512_Last(SHA512_CTX*); static void SHA256_Transform(SHA256_CTX*, const sha2_word32*); static void SHA384_Transform(SHA384_CTX*, const sha2_word64*); static void SHA512_Transform(SHA512_CTX*, const sha2_word64*); /*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/ /* Hash constant words K for SHA-256: */ static const sha2_word32 K256[64] = { 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL }; /* Initial hash value H for SHA-256: */ static const sha2_word32 sha256_initial_hash_value[8] = { 0x6a09e667UL, 0xbb67ae85UL, 0x3c6ef372UL, 0xa54ff53aUL, 0x510e527fUL, 0x9b05688cUL, 0x1f83d9abUL, 0x5be0cd19UL }; /* Hash constant words K for SHA-384 and SHA-512: */ static const sha2_word64 K512[80] = { 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL }; /* Initial hash value H for SHA-384 */ static const sha2_word64 sha384_initial_hash_value[8] = { 0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL, 0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL, 0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL, 0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL }; /* Initial hash value H for SHA-512 */ static const sha2_word64 sha512_initial_hash_value[8] = { 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL }; /*** SHA-256: *********************************************************/ void SHA256_Init(SHA256_CTX* context) { if (context == (SHA256_CTX*)0) { return; } memcpy(context->state, sha256_initial_hash_value, (size_t)(SHA256_DIGEST_LENGTH)); memset(context->buffer, 0, (size_t)(SHA256_BLOCK_LENGTH)); context->bitcount = 0; } #ifdef SHA2_UNROLL_TRANSFORM /* Unrolled SHA-256 round macros: */ #if BYTE_ORDER == LITTLE_ENDIAN #define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \ REVERSE32(*data++, W256[j]); \ T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \ K256[j] + W256[j]; \ (d) += T1; \ (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ j++ #else /* BYTE_ORDER == LITTLE_ENDIAN */ #define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) \ T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \ K256[j] + (W256[j] = *data++); \ (d) += T1; \ (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ j++ #endif /* BYTE_ORDER == LITTLE_ENDIAN */ #define ROUND256(a,b,c,d,e,f,g,h) \ s0 = W256[(j+1)&0x0f]; \ s0 = sigma0_256(s0); \ s1 = W256[(j+14)&0x0f]; \ s1 = sigma1_256(s1); \ T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + K256[j] + \ (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); \ (d) += T1; \ (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \ j++ void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) { sha2_word32 a, b, c, d, e, f, g, h, s0, s1; sha2_word32 T1, *W256; int j; W256 = (sha2_word32*)context->buffer; /* Initialize registers with the prev. intermediate value */ a = context->state[0]; b = context->state[1]; c = context->state[2]; d = context->state[3]; e = context->state[4]; f = context->state[5]; g = context->state[6]; h = context->state[7]; j = 0; do { /* Rounds 0 to 15 (unrolled): */ ROUND256_0_TO_15(a,b,c,d,e,f,g,h); ROUND256_0_TO_15(h,a,b,c,d,e,f,g); ROUND256_0_TO_15(g,h,a,b,c,d,e,f); ROUND256_0_TO_15(f,g,h,a,b,c,d,e); ROUND256_0_TO_15(e,f,g,h,a,b,c,d); ROUND256_0_TO_15(d,e,f,g,h,a,b,c); ROUND256_0_TO_15(c,d,e,f,g,h,a,b); ROUND256_0_TO_15(b,c,d,e,f,g,h,a); } while (j < 16); /* Now for the remaining rounds to 64: */ do { ROUND256(a,b,c,d,e,f,g,h); ROUND256(h,a,b,c,d,e,f,g); ROUND256(g,h,a,b,c,d,e,f); ROUND256(f,g,h,a,b,c,d,e); ROUND256(e,f,g,h,a,b,c,d); ROUND256(d,e,f,g,h,a,b,c); ROUND256(c,d,e,f,g,h,a,b); ROUND256(b,c,d,e,f,g,h,a); } while (j < 64); /* Compute the current intermediate hash value */ context->state[0] += a; context->state[1] += b; context->state[2] += c; context->state[3] += d; context->state[4] += e; context->state[5] += f; context->state[6] += g; context->state[7] += h; /* Clean up */ a = b = c = d = e = f = g = h = T1 = 0; } #else /* SHA2_UNROLL_TRANSFORM */ void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) { sha2_word32 a, b, c, d, e, f, g, h, s0, s1; sha2_word32 T1, T2, *W256; int j; W256 = (sha2_word32*)(void *)context->buffer; /* Initialize registers with the prev. intermediate value */ a = context->state[0]; b = context->state[1]; c = context->state[2]; d = context->state[3]; e = context->state[4]; f = context->state[5]; g = context->state[6]; h = context->state[7]; j = 0; do { #if BYTE_ORDER == LITTLE_ENDIAN /* Copy data while converting to host byte order */ REVERSE32(*data++,W256[j]); /* Apply the SHA-256 compression function to update a..h */ T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j]; #else /* BYTE_ORDER == LITTLE_ENDIAN */ /* Apply the SHA-256 compression function to update a..h with copy */ T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j] = *data++); #endif /* BYTE_ORDER == LITTLE_ENDIAN */ T2 = Sigma0_256(a) + Maj(a, b, c); h = g; g = f; f = e; e = d + T1; d = c; c = b; b = a; a = T1 + T2; j++; } while (j < 16); do { /* Part of the message block expansion: */ s0 = W256[(j+1)&0x0f]; s0 = sigma0_256(s0); s1 = W256[(j+14)&0x0f]; s1 = sigma1_256(s1); /* Apply the SHA-256 compression function to update a..h */ T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); T2 = Sigma0_256(a) + Maj(a, b, c); h = g; g = f; f = e; e = d + T1; d = c; c = b; b = a; a = T1 + T2; j++; } while (j < 64); /* Compute the current intermediate hash value */ context->state[0] += a; context->state[1] += b; context->state[2] += c; context->state[3] += d; context->state[4] += e; context->state[5] += f; context->state[6] += g; context->state[7] += h; /* Clean up */ a = b = c = d = e = f = g = h = T1 = T2 = 0; } #endif /* SHA2_UNROLL_TRANSFORM */ void SHA256_Update(SHA256_CTX* context, const sha2_byte *data, size_t len) { unsigned int freespace, usedspace; if (len == 0) { /* Calling with no data is valid - we do nothing */ return; } /* Sanity check: */ assert(context != (SHA256_CTX*)0 && data != (sha2_byte*)0); usedspace = (unsigned int)((context->bitcount >> 3) % SHA256_BLOCK_LENGTH); if (usedspace > 0) { /* Calculate how much free space is available in the buffer */ freespace = SHA256_BLOCK_LENGTH - usedspace; if (len >= freespace) { /* Fill the buffer completely and process it */ memcpy(&context->buffer[usedspace], data, (size_t)(freespace)); context->bitcount += freespace << 3; len -= freespace; data += freespace; SHA256_Transform(context, (sha2_word32*)(void *)context->buffer); } else { /* The buffer is not yet full */ memcpy(&context->buffer[usedspace], data, len); context->bitcount += len << 3; /* Clean up: */ usedspace = freespace = 0; return; } } /* * Process as many complete blocks as possible. * * Check alignment of the data pointer. If it is 32bit aligned, * SHA256_Transform can be called directly on the data stream, * otherwise enforce the alignment by copy into the buffer. */ if ((uintptr_t)data % 4 == 0) { while (len >= SHA256_BLOCK_LENGTH) { SHA256_Transform(context, (const sha2_word32 *)(const void *)data); context->bitcount += SHA256_BLOCK_LENGTH << 3; len -= SHA256_BLOCK_LENGTH; data += SHA256_BLOCK_LENGTH; } } else { while (len >= SHA256_BLOCK_LENGTH) { memcpy(context->buffer, data, SHA256_BLOCK_LENGTH); SHA256_Transform(context, (const sha2_word32 *)(const void *)context->buffer); context->bitcount += SHA256_BLOCK_LENGTH << 3; len -= SHA256_BLOCK_LENGTH; data += SHA256_BLOCK_LENGTH; } } if (len > 0) { /* There's left-overs, so save 'em */ memcpy(context->buffer, data, len); context->bitcount += len << 3; } /* Clean up: */ usedspace = freespace = 0; } void SHA256_Final(sha2_byte digest[], SHA256_CTX* context) { sha2_word32 *d = (void *)digest; unsigned int usedspace; /* Sanity check: */ assert(context != (SHA256_CTX*)0); /* If no digest buffer is passed, we don't bother doing this: */ if (digest != (sha2_byte*)0) { usedspace = (unsigned int)((context->bitcount >> 3) % SHA256_BLOCK_LENGTH); #if BYTE_ORDER == LITTLE_ENDIAN /* Convert FROM host byte order */ REVERSE64(context->bitcount,context->bitcount); #endif if (usedspace > 0) { /* Begin padding with a 1 bit: */ context->buffer[usedspace++] = 0x80; if (usedspace <= SHA256_SHORT_BLOCK_LENGTH) { /* Set-up for the last transform: */ memset(&context->buffer[usedspace], 0, (size_t)(SHA256_SHORT_BLOCK_LENGTH - usedspace)); } else { if (usedspace < SHA256_BLOCK_LENGTH) { memset(&context->buffer[usedspace], 0, (size_t)(SHA256_BLOCK_LENGTH - usedspace)); } /* Do second-to-last transform: */ SHA256_Transform(context, (sha2_word32*)(void *)context->buffer); /* And set-up for the last transform: */ memset(context->buffer, 0, (size_t)(SHA256_SHORT_BLOCK_LENGTH)); } } else { /* Set-up for the last transform: */ memset(context->buffer, 0, (size_t)(SHA256_SHORT_BLOCK_LENGTH)); /* Begin padding with a 1 bit: */ *context->buffer = 0x80; } /* Set the bit count: */ *(sha2_word64*)(void *)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount; /* Final transform: */ SHA256_Transform(context, (sha2_word32*)(void *)context->buffer); #if BYTE_ORDER == LITTLE_ENDIAN { /* Convert TO host byte order */ int j; for (j = 0; j < 8; j++) { REVERSE32(context->state[j],context->state[j]); *d++ = context->state[j]; } } #else memcpy(d, context->state, SHA256_DIGEST_LENGTH); #endif } /* Clean up state data: */ memset(context, 0, sizeof(*context)); usedspace = 0; } /*** SHA-512: *********************************************************/ void SHA512_Init(SHA512_CTX* context) { if (context == (SHA512_CTX*)0) { return; } memcpy(context->state, sha512_initial_hash_value, (size_t)(SHA512_DIGEST_LENGTH)); memset(context->buffer, 0, (size_t)(SHA512_BLOCK_LENGTH)); context->bitcount[0] = context->bitcount[1] = 0; } #ifdef SHA2_UNROLL_TRANSFORM /* Unrolled SHA-512 round macros: */ #if BYTE_ORDER == LITTLE_ENDIAN #define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \ REVERSE64(*data++, W512[j]); \ T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \ K512[j] + W512[j]; \ (d) += T1, \ (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)), \ j++ #else /* BYTE_ORDER == LITTLE_ENDIAN */ #define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \ T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \ K512[j] + (W512[j] = *data++); \ (d) += T1; \ (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \ j++ #endif /* BYTE_ORDER == LITTLE_ENDIAN */ #define ROUND512(a,b,c,d,e,f,g,h) \ s0 = W512[(j+1)&0x0f]; \ s0 = sigma0_512(s0); \ s1 = W512[(j+14)&0x0f]; \ s1 = sigma1_512(s1); \ T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[j] + \ (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); \ (d) += T1; \ (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \ j++ void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) { sha2_word64 a, b, c, d, e, f, g, h, s0, s1; sha2_word64 T1, *W512 = (sha2_word64*)context->buffer; int j; /* Initialize registers with the prev. intermediate value */ a = context->state[0]; b = context->state[1]; c = context->state[2]; d = context->state[3]; e = context->state[4]; f = context->state[5]; g = context->state[6]; h = context->state[7]; j = 0; do { ROUND512_0_TO_15(a,b,c,d,e,f,g,h); ROUND512_0_TO_15(h,a,b,c,d,e,f,g); ROUND512_0_TO_15(g,h,a,b,c,d,e,f); ROUND512_0_TO_15(f,g,h,a,b,c,d,e); ROUND512_0_TO_15(e,f,g,h,a,b,c,d); ROUND512_0_TO_15(d,e,f,g,h,a,b,c); ROUND512_0_TO_15(c,d,e,f,g,h,a,b); ROUND512_0_TO_15(b,c,d,e,f,g,h,a); } while (j < 16); /* Now for the remaining rounds up to 79: */ do { ROUND512(a,b,c,d,e,f,g,h); ROUND512(h,a,b,c,d,e,f,g); ROUND512(g,h,a,b,c,d,e,f); ROUND512(f,g,h,a,b,c,d,e); ROUND512(e,f,g,h,a,b,c,d); ROUND512(d,e,f,g,h,a,b,c); ROUND512(c,d,e,f,g,h,a,b); ROUND512(b,c,d,e,f,g,h,a); } while (j < 80); /* Compute the current intermediate hash value */ context->state[0] += a; context->state[1] += b; context->state[2] += c; context->state[3] += d; context->state[4] += e; context->state[5] += f; context->state[6] += g; context->state[7] += h; /* Clean up */ a = b = c = d = e = f = g = h = T1 = 0; } #else /* SHA2_UNROLL_TRANSFORM */ void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) { sha2_word64 a, b, c, d, e, f, g, h, s0, s1; sha2_word64 T1, T2, *W512 = (void *)context->buffer; int j; /* Initialize registers with the prev. intermediate value */ a = context->state[0]; b = context->state[1]; c = context->state[2]; d = context->state[3]; e = context->state[4]; f = context->state[5]; g = context->state[6]; h = context->state[7]; j = 0; do { #if BYTE_ORDER == LITTLE_ENDIAN /* Convert TO host byte order */ REVERSE64(*data++, W512[j]); /* Apply the SHA-512 compression function to update a..h */ T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j]; #else /* BYTE_ORDER == LITTLE_ENDIAN */ /* Apply the SHA-512 compression function to update a..h with copy */ T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j] = *data++); #endif /* BYTE_ORDER == LITTLE_ENDIAN */ T2 = Sigma0_512(a) + Maj(a, b, c); h = g; g = f; f = e; e = d + T1; d = c; c = b; b = a; a = T1 + T2; j++; } while (j < 16); do { /* Part of the message block expansion: */ s0 = W512[(j+1)&0x0f]; s0 = sigma0_512(s0); s1 = W512[(j+14)&0x0f]; s1 = sigma1_512(s1); /* Apply the SHA-512 compression function to update a..h */ T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); T2 = Sigma0_512(a) + Maj(a, b, c); h = g; g = f; f = e; e = d + T1; d = c; c = b; b = a; a = T1 + T2; j++; } while (j < 80); /* Compute the current intermediate hash value */ context->state[0] += a; context->state[1] += b; context->state[2] += c; context->state[3] += d; context->state[4] += e; context->state[5] += f; context->state[6] += g; context->state[7] += h; /* Clean up */ a = b = c = d = e = f = g = h = T1 = T2 = 0; } #endif /* SHA2_UNROLL_TRANSFORM */ void SHA512_Update(SHA512_CTX* context, const sha2_byte *data, size_t len) { unsigned int freespace, usedspace; if (len == 0) { /* Calling with no data is valid - we do nothing */ return; } /* Sanity check: */ assert(context != (SHA512_CTX*)0 && data != (sha2_byte*)0); usedspace = (unsigned int)((context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH); if (usedspace > 0) { /* Calculate how much free space is available in the buffer */ freespace = SHA512_BLOCK_LENGTH - usedspace; if (len >= freespace) { /* Fill the buffer completely and process it */ memcpy(&context->buffer[usedspace], data, (size_t)(freespace)); ADDINC128(context->bitcount, freespace << 3); len -= freespace; data += freespace; SHA512_Transform(context, (sha2_word64*)(void *)context->buffer); } else { /* The buffer is not yet full */ memcpy(&context->buffer[usedspace], data, len); ADDINC128(context->bitcount, len << 3); /* Clean up: */ usedspace = freespace = 0; return; } } /* * Process as many complete blocks as possible. * * Check alignment of the data pointer. If it is 64bit aligned, * SHA512_Transform can be called directly on the data stream, * otherwise enforce the alignment by copy into the buffer. */ if ((uintptr_t)data % 8 == 0) { while (len >= SHA512_BLOCK_LENGTH) { SHA512_Transform(context, (const sha2_word64 *)(const void *)data); ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3); len -= SHA512_BLOCK_LENGTH; data += SHA512_BLOCK_LENGTH; } } else { while (len >= SHA512_BLOCK_LENGTH) { memcpy(context->buffer, data, SHA512_BLOCK_LENGTH); SHA512_Transform(context, (const sha2_word64 *)(void *)context->buffer); ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3); len -= SHA512_BLOCK_LENGTH; data += SHA512_BLOCK_LENGTH; } } if (len > 0) { /* There's left-overs, so save 'em */ memcpy(context->buffer, data, len); ADDINC128(context->bitcount, len << 3); } /* Clean up: */ usedspace = freespace = 0; } static void SHA512_Last(SHA512_CTX* context) { unsigned int usedspace; usedspace = (unsigned int)((context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH); #if BYTE_ORDER == LITTLE_ENDIAN /* Convert FROM host byte order */ REVERSE64(context->bitcount[0],context->bitcount[0]); REVERSE64(context->bitcount[1],context->bitcount[1]); #endif if (usedspace > 0) { /* Begin padding with a 1 bit: */ context->buffer[usedspace++] = 0x80; if (usedspace <= SHA512_SHORT_BLOCK_LENGTH) { /* Set-up for the last transform: */ memset(&context->buffer[usedspace], 0, (size_t)(SHA512_SHORT_BLOCK_LENGTH - usedspace)); } else { if (usedspace < SHA512_BLOCK_LENGTH) { memset(&context->buffer[usedspace], 0, (size_t)(SHA512_BLOCK_LENGTH - usedspace)); } /* Do second-to-last transform: */ SHA512_Transform(context, (sha2_word64*)(void *)context->buffer); /* And set-up for the last transform: */ memset(context->buffer, 0, (size_t)(SHA512_BLOCK_LENGTH - 2)); } } else { /* Prepare for final transform: */ memset(context->buffer, 0, (size_t)(SHA512_SHORT_BLOCK_LENGTH)); /* Begin padding with a 1 bit: */ *context->buffer = 0x80; } /* Store the length of input data (in bits): */ *(sha2_word64*)(void *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1]; *(sha2_word64*)(void *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0]; /* Final transform: */ SHA512_Transform(context, (sha2_word64*)(void *)context->buffer); } void SHA512_Final(sha2_byte digest[], SHA512_CTX* context) { sha2_word64 *d = (void *)digest; /* Sanity check: */ assert(context != (SHA512_CTX*)0); /* If no digest buffer is passed, we don't bother doing this: */ if (digest != (sha2_byte*)0) { SHA512_Last(context); /* Save the hash data for output: */ #if BYTE_ORDER == LITTLE_ENDIAN { /* Convert TO host byte order */ int j; for (j = 0; j < 8; j++) { REVERSE64(context->state[j],context->state[j]); *d++ = context->state[j]; } } #else memcpy(d, context->state, SHA512_DIGEST_LENGTH); #endif } /* Zero out state data */ memset(context, 0, sizeof(*context)); } /*** SHA-384: *********************************************************/ void SHA384_Init(SHA384_CTX* context) { if (context == (SHA384_CTX*)0) { return; } memcpy(context->state, sha384_initial_hash_value, (size_t)(SHA512_DIGEST_LENGTH)); memset(context->buffer, 0, (size_t)(SHA384_BLOCK_LENGTH)); context->bitcount[0] = context->bitcount[1] = 0; } void SHA384_Update(SHA384_CTX* context, const sha2_byte* data, size_t len) { SHA512_Update((SHA512_CTX*)context, data, len); } void SHA384_Transform(SHA512_CTX* context, const sha2_word64* data) { SHA512_Transform((SHA512_CTX*)context, data); } void SHA384_Final(sha2_byte digest[], SHA384_CTX* context) { sha2_word64 *d = (void *)digest; /* Sanity check: */ assert(context != (SHA384_CTX*)0); /* If no digest buffer is passed, we don't bother doing this: */ if (digest != (sha2_byte*)0) { SHA512_Last((SHA512_CTX*)context); /* Save the hash data for output: */ #if BYTE_ORDER == LITTLE_ENDIAN { /* Convert TO host byte order */ int j; for (j = 0; j < 6; j++) { REVERSE64(context->state[j],context->state[j]); *d++ = context->state[j]; } } #else memcpy(d, context->state, SHA384_DIGEST_LENGTH); #endif } /* Zero out state data */ memset(context, 0, sizeof(*context)); } libnbcompat-20180822/strdup.c0000644000175000017500000000451013355271171016176 0ustar jgoerzenjgoerzen/* $NetBSD: strdup.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1988, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)strdup.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: strdup.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #if HAVE_ERRNO_H #include #endif #include #include #if 0 #ifdef __weak_alias __weak_alias(strdup,_strdup) #endif #endif char * strdup(str) const char *str; { size_t len; char *copy; _DIAGASSERT(str != NULL); len = strlen(str) + 1; if (!(copy = malloc(len))) return (NULL); memcpy(copy, str, len); return (copy); } libnbcompat-20180822/__unsetenv13.c0000644000175000017500000000637213355271171017176 0ustar jgoerzenjgoerzen/* $NetBSD: __unsetenv13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "from: @(#)setenv.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: __unsetenv13.c,v 1.1 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #if HAVE_ERRNO_H #include #endif #include #include #if 0 #include "local.h" #include "reentrant.h" #endif char *__findenv __P((const char *, int *)); #if 0 #ifdef __weak_alias #ifdef __LIBC12_SOURCE__ __weak_alias(unsetenv,_unsetenv) #endif #endif #endif #if 0 #ifdef _REENTRANT extern rwlock_t __environ_lock; #endif #endif #if 0 #ifdef __LIBC12_SOURCE__ __warn_references(unsetenv, "warning: reference to compatibility unsetenv();" " include for correct reference") #endif #endif extern char **environ; #ifndef rwlock_wrlock #define rwlock_wrlock(lock) ((void)0) #endif #ifndef rwlock_unlock #define rwlock_unlock(lock) ((void)0) #endif /* * unsetenv(name) -- * Delete environmental variable "name". */ #ifdef __LIBC12_SOURCE__ void #else int #endif unsetenv(name) const char *name; { char **p; int offset; _DIAGASSERT(name != NULL); #ifndef __LIBC12_SOURCE__ if (name == NULL || *name == '\0' || strchr(name, '=') != NULL) { errno = EINVAL; return (-1); } #endif rwlock_wrlock(&__environ_lock); while (__findenv(name, &offset)) /* if set multiple times */ for (p = &environ[offset];; ++p) if (!(*p = *(p + 1))) break; rwlock_unlock(&__environ_lock); #ifndef __LIBC12_SOURCE__ return (0); #endif } libnbcompat-20180822/sha2hl.c0000644000175000017500000001442613355271171016045 0ustar jgoerzenjgoerzen/* $NetBSD: sha2hl.c,v 1.8 2011/11/08 18:20:03 joerg Exp $ */ /* * sha2hl.c * This code includes some functions taken from sha2.c, hence the * following licence reproduction. * * This code is not a verbatim copy, since some routines have been added, * and some bugs have been fixed. * * Version 1.0.0beta1 * * Written by Aaron D. Gifford * * Copyright 2000 Aaron D. Gifford. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the copyright holder nor the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``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 AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #include #include #ifdef HAVE_ERRNO_H #include #endif #ifdef HAVE_FCNTL_H #include #endif #include #include #include #include #include #ifndef _DIAGASSERT #define _DIAGASSERT(cond) assert(cond) #endif #ifndef MEMSET_BZERO #define MEMSET_BZERO(p,l) memset((p), 0, (l)) #endif /* * Constant used by SHA256/384/512_End() functions for converting the * digest to a readable hexadecimal character string: */ static const char sha2_hex_digits[] = "0123456789abcdef"; char * SHA256_File(char *filename, char *buf) { unsigned char buffer[BUFSIZ * 20]; SHA256_CTX ctx; int fd, num, oerrno; _DIAGASSERT(filename != NULL); /* XXX: buf may be NULL ? */ SHA256_Init(&ctx); if ((fd = open(filename, O_RDONLY)) < 0) return (0); while ((num = read(fd, buffer, sizeof(buffer))) > 0) SHA256_Update(&ctx, buffer, (size_t) num); oerrno = errno; close(fd); errno = oerrno; return (num < 0 ? 0 : SHA256_End(&ctx, buf)); } char * SHA256_End(SHA256_CTX *ctx, char buffer[]) { unsigned char digest[SHA256_DIGEST_LENGTH], *d = digest; unsigned char *ret; int i; /* Sanity check: */ assert(ctx != NULL); if ((ret = buffer) != NULL) { SHA256_Final(digest, ctx); for (i = 0; i < SHA256_DIGEST_LENGTH; i++) { *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; *buffer++ = sha2_hex_digits[*d & 0x0f]; d++; } *buffer = (char) 0; } else { (void) MEMSET_BZERO(ctx, sizeof(SHA256_CTX)); } (void) MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH); return ret; } char * SHA256_Data(const uint8_t * data, size_t len, unsigned char *digest) { SHA256_CTX ctx; SHA256_Init(&ctx); SHA256_Update(&ctx, data, len); return SHA256_End(&ctx, digest); } char * SHA384_File(char *filename, char *buf) { SHA384_CTX ctx; unsigned char buffer[BUFSIZ * 20]; int fd, num, oerrno; _DIAGASSERT(filename != NULL); /* XXX: buf may be NULL ? */ SHA384_Init(&ctx); if ((fd = open(filename, O_RDONLY)) < 0) return (0); while ((num = read(fd, buffer, sizeof(buffer))) > 0) SHA384_Update(&ctx, buffer, (size_t) num); oerrno = errno; close(fd); errno = oerrno; return (num < 0 ? 0 : SHA384_End(&ctx, buf)); } char * SHA384_End(SHA384_CTX * ctx, char buffer[]) { unsigned char digest[SHA384_DIGEST_LENGTH], *d = digest; unsigned char *ret; int i; /* Sanity check: */ assert(ctx != NULL); if ((ret = buffer) != NULL) { SHA384_Final(digest, ctx); for (i = 0; i < SHA384_DIGEST_LENGTH; i++) { *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; *buffer++ = sha2_hex_digits[*d & 0x0f]; d++; } *buffer = (char) 0; } else { (void) MEMSET_BZERO(ctx, sizeof(SHA384_CTX)); } (void) MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH); return ret; } char * SHA384_Data(const uint8_t* data, size_t len, char digest[SHA384_DIGEST_STRING_LENGTH]) { SHA384_CTX ctx; SHA384_Init(&ctx); SHA384_Update(&ctx, data, len); return SHA384_End(&ctx, digest); } char * SHA512_File(char *filename, char *buf) { SHA512_CTX ctx; unsigned char buffer[BUFSIZ * 20]; int fd, num, oerrno; _DIAGASSERT(filename != NULL); /* XXX: buf may be NULL ? */ SHA512_Init(&ctx); if ((fd = open(filename, O_RDONLY)) < 0) return (0); while ((num = read(fd, buffer, sizeof(buffer))) > 0) SHA512_Update(&ctx, buffer, (size_t) num); oerrno = errno; close(fd); errno = oerrno; return (num < 0 ? 0 : SHA512_End(&ctx, buf)); } char * SHA512_End(SHA512_CTX * ctx, char buffer[]) { unsigned char digest[SHA512_DIGEST_LENGTH], *d = digest; unsigned char *ret; int i; /* Sanity check: */ assert(ctx != NULL); if ((ret = buffer) != NULL) { SHA512_Final(digest, ctx); for (i = 0; i < SHA512_DIGEST_LENGTH; i++) { *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4]; *buffer++ = sha2_hex_digits[*d & 0x0f]; d++; } *buffer = (char) 0; } else { (void) MEMSET_BZERO(ctx, sizeof(SHA512_CTX)); } (void) MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH); return ret; } char * SHA512_Data(const uint8_t * data, size_t len, char *digest) { SHA512_CTX ctx; SHA512_Init(&ctx); SHA512_Update(&ctx, data, len); return SHA512_End(&ctx, digest); } libnbcompat-20180822/strlcpy.c0000644000175000017500000000431113355271171016354 0ustar jgoerzenjgoerzen/* $NetBSD: strlcpy.c,v 1.5 2004/08/31 17:55:17 jlam Exp $ */ /* $OpenBSD: strlcpy.c,v 1.7 2003/04/12 21:56:39 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: strlcpy.c,v 1.5 2004/08/31 17:55:17 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ #ifdef _LIBC #undef _LIBC #endif #ifdef _LIBC #include "namespace.h" #endif #include #include #include #ifdef _LIBC # ifdef __weak_alias __weak_alias(strlcpy, _strlcpy) # endif #endif #if !HAVE_STRLCPY /* * Copy src to string dst of size siz. At most siz-1 characters * will be copied. Always NUL terminates (unless siz == 0). * Returns strlen(src); if retval >= siz, truncation occurred. */ size_t #ifdef _LIBC _strlcpy(dst, src, siz) #else strlcpy(dst, src, siz) #endif char *dst; const char *src; size_t siz; { char *d = dst; const char *s = src; size_t n = siz; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); /* Copy as many bytes as will fit */ if (n != 0 && --n != 0) { do { if ((*d++ = *s++) == 0) break; } while (--n != 0); } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) *d = '\0'; /* NUL-terminate dst */ while (*s++) ; } return(s - src - 1); /* count does not include NUL */ } #endif libnbcompat-20180822/setpassent.c0000644000175000017500000000323113355271171017045 0ustar jgoerzenjgoerzen/* $NetBSD: setpassent.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include int setpassent(int stayopen) { #if HAVE_SETPWENT setpwent(); #endif return 1; } libnbcompat-20180822/getopt_long.c0000644000175000017500000003102713355271171017201 0ustar jgoerzenjgoerzen/* $NetBSD: getopt_long.c,v 1.11 2009/04/14 17:34:41 joerg Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Dieter Baron and Thomas Klausner. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include __RCSID("$NetBSD: getopt_long.c,v 1.11 2009/04/14 17:34:41 joerg Exp $"); #if 0 #include "namespace.h" #endif #include #include #include #if HAVE_NBTOOL_CONFIG_H #include "compat_getopt.h" #else #include #endif #include #include #undef __UNCONST #define __UNCONST(a) ((void *)(size_t)(const void *)(a)) #if HAVE_NBTOOL_CONFIG_H && !HAVE_GETOPT_LONG && !HAVE_DECL_OPTIND #define REPLACE_GETOPT #endif #ifdef REPLACE_GETOPT #ifdef __weak_alias __weak_alias(getopt,_getopt) #endif int opterr = 1; /* if error message should be printed */ int optind = 1; /* index into parent argv vector */ int optopt = '?'; /* character checked for validity */ char *optarg; /* argument associated with option */ #endif #if !HAVE_DECL_OPTRESET int optreset; /* reset getopt */ #endif #if 0 #ifdef __weak_alias __weak_alias(getopt_long,_getopt_long) #endif #endif #define IGNORE_FIRST (*options == '-' || *options == '+') #define PRINT_ERROR ((opterr) && ((*options != ':') \ || (IGNORE_FIRST && options[1] != ':'))) #define IS_POSIXLY_CORRECT (getenv("POSIXLY_CORRECT") != NULL) #define PERMUTE (!IS_POSIXLY_CORRECT && !IGNORE_FIRST) /* XXX: GNU ignores PC if *options == '-' */ #define IN_ORDER (!IS_POSIXLY_CORRECT && *options == '-') /* return values */ #define BADCH (int)'?' #define BADARG ((IGNORE_FIRST && options[1] == ':') \ || (*options == ':') ? (int)':' : (int)'?') #define INORDER (int)1 #define EMSG "" static int getopt_internal(int, char **, const char *); static int gcd(int, int); static void permute_args(int, int, int, char **); static const char *place = EMSG; /* option letter processing */ /* XXX: set optreset to 1 rather than these two */ static int nonopt_start = -1; /* first non option argument (for permute) */ static int nonopt_end = -1; /* first option after non options (for permute) */ /* Error messages */ static const char recargchar[] = "option requires an argument -- %c"; static const char recargstring[] = "option requires an argument -- %s"; static const char ambig[] = "ambiguous option -- %.*s"; static const char noarg[] = "option doesn't take an argument -- %.*s"; static const char illoptchar[] = "unknown option -- %c"; static const char illoptstring[] = "unknown option -- %s"; /* * Compute the greatest common divisor of a and b. */ static int gcd(int a, int b) { int c; c = a % b; while (c != 0) { a = b; b = c; c = a % b; } return b; } /* * Exchange the block from nonopt_start to nonopt_end with the block * from nonopt_end to opt_end (keeping the same order of arguments * in each block). */ static void permute_args(int panonopt_start, int panonopt_end, int opt_end, char **nargv) { int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; char *swap; _DIAGASSERT(nargv != NULL); /* * compute lengths of blocks and number and size of cycles */ nnonopts = panonopt_end - panonopt_start; nopts = opt_end - panonopt_end; ncycle = gcd(nnonopts, nopts); cyclelen = (opt_end - panonopt_start) / ncycle; for (i = 0; i < ncycle; i++) { cstart = panonopt_end+i; pos = cstart; for (j = 0; j < cyclelen; j++) { if (pos >= panonopt_end) pos -= nnonopts; else pos += nopts; swap = nargv[pos]; nargv[pos] = nargv[cstart]; nargv[cstart] = swap; } } } /* * getopt_internal -- * Parse argc/argv argument vector. Called by user level routines. * Returns -2 if -- is found (can be long option or end of options marker). */ static int getopt_internal(int nargc, char **nargv, const char *options) { char *oli; /* option letter list index */ int optchar; _DIAGASSERT(nargv != NULL); _DIAGASSERT(options != NULL); optarg = NULL; /* * XXX Some programs (like rsyncd) expect to be able to * XXX re-initialize optind to 0 and have getopt_long(3) * XXX properly function again. Work around this braindamage. */ if (optind == 0) optind = 1; if (optreset) nonopt_start = nonopt_end = -1; start: if (optreset || !*place) { /* update scanning pointer */ optreset = 0; if (optind >= nargc) { /* end of argument vector */ place = EMSG; if (nonopt_end != -1) { /* do permutation, if we have to */ permute_args(nonopt_start, nonopt_end, optind, nargv); optind -= nonopt_end - nonopt_start; } else if (nonopt_start != -1) { /* * If we skipped non-options, set optind * to the first of them. */ optind = nonopt_start; } nonopt_start = nonopt_end = -1; return -1; } if ((*(place = nargv[optind]) != '-') || (place[1] == '\0')) { /* found non-option */ place = EMSG; if (IN_ORDER) { /* * GNU extension: * return non-option as argument to option 1 */ optarg = nargv[optind++]; return INORDER; } if (!PERMUTE) { /* * if no permutation wanted, stop parsing * at first non-option */ return -1; } /* do permutation */ if (nonopt_start == -1) nonopt_start = optind; else if (nonopt_end != -1) { permute_args(nonopt_start, nonopt_end, optind, nargv); nonopt_start = optind - (nonopt_end - nonopt_start); nonopt_end = -1; } optind++; /* process next argument */ goto start; } if (nonopt_start != -1 && nonopt_end == -1) nonopt_end = optind; if (place[1] && *++place == '-') { /* found "--" */ place++; return -2; } } if ((optchar = (int)*place++) == (int)':' || (oli = strchr(options + (IGNORE_FIRST ? 1 : 0), optchar)) == NULL) { /* option letter unknown or ':' */ if (!*place) ++optind; if (PRINT_ERROR) warnx(illoptchar, optchar); optopt = optchar; return BADCH; } if (optchar == 'W' && oli[1] == ';') { /* -W long-option */ /* XXX: what if no long options provided (called by getopt)? */ if (*place) return -2; if (++optind >= nargc) { /* no arg */ place = EMSG; if (PRINT_ERROR) warnx(recargchar, optchar); optopt = optchar; return BADARG; } else /* white space */ place = nargv[optind]; /* * Handle -W arg the same as --arg (which causes getopt to * stop parsing). */ return -2; } if (*++oli != ':') { /* doesn't take argument */ if (!*place) ++optind; } else { /* takes (optional) argument */ optarg = NULL; if (*place) /* no white space */ optarg = __UNCONST(place); /* XXX: disable test for :: if PC? (GNU doesn't) */ else if (oli[1] != ':') { /* arg not optional */ if (++optind >= nargc) { /* no arg */ place = EMSG; if (PRINT_ERROR) warnx(recargchar, optchar); optopt = optchar; return BADARG; } else optarg = nargv[optind]; } place = EMSG; ++optind; } /* dump back option letter */ return optchar; } #ifdef REPLACE_GETOPT /* * getopt -- * Parse argc/argv argument vector. * * [eventually this will replace the real getopt] */ int getopt(nargc, nargv, options) int nargc; char * const *nargv; const char *options; { int retval; _DIAGASSERT(nargv != NULL); _DIAGASSERT(options != NULL); retval = getopt_internal(nargc, __UNCONST(nargv), options); if (retval == -2) { ++optind; /* * We found an option (--), so if we skipped non-options, * we have to permute. */ if (nonopt_end != -1) { permute_args(nonopt_start, nonopt_end, optind, nargv); optind -= nonopt_end - nonopt_start; } nonopt_start = nonopt_end = -1; retval = -1; } return retval; } #endif /* * getopt_long -- * Parse argc/argv argument vector. */ int getopt_long(int nargc, char * const *nargv, const char *options, const struct option *long_options, int *idx) { int retval; #define IDENTICAL_INTERPRETATION(_x, _y) \ (long_options[(_x)].has_arg == long_options[(_y)].has_arg && \ long_options[(_x)].flag == long_options[(_y)].flag && \ long_options[(_x)].val == long_options[(_y)].val) _DIAGASSERT(nargv != NULL); _DIAGASSERT(options != NULL); _DIAGASSERT(long_options != NULL); /* idx may be NULL */ retval = getopt_internal(nargc, __UNCONST(nargv), options); if (retval == -2) { char *current_argv, *has_equal; size_t current_argv_len; int i, ambiguous, match; current_argv = __UNCONST(place); match = -1; ambiguous = 0; optind++; place = EMSG; if (*current_argv == '\0') { /* found "--" */ /* * We found an option (--), so if we skipped * non-options, we have to permute. */ if (nonopt_end != -1) { permute_args(nonopt_start, nonopt_end, optind, __UNCONST(nargv)); optind -= nonopt_end - nonopt_start; } nonopt_start = nonopt_end = -1; return -1; } if ((has_equal = strchr(current_argv, '=')) != NULL) { /* argument found (--option=arg) */ current_argv_len = has_equal - current_argv; has_equal++; } else current_argv_len = strlen(current_argv); for (i = 0; long_options[i].name; i++) { /* find matching long option */ if (strncmp(current_argv, long_options[i].name, current_argv_len)) continue; if (strlen(long_options[i].name) == (unsigned)current_argv_len) { /* exact match */ match = i; ambiguous = 0; break; } if (match == -1) /* partial match */ match = i; else if (!IDENTICAL_INTERPRETATION(i, match)) ambiguous = 1; } if (ambiguous) { /* ambiguous abbreviation */ if (PRINT_ERROR) warnx(ambig, (int)current_argv_len, current_argv); optopt = 0; return BADCH; } if (match != -1) { /* option found */ if (long_options[match].has_arg == no_argument && has_equal) { if (PRINT_ERROR) warnx(noarg, (int)current_argv_len, current_argv); /* * XXX: GNU sets optopt to val regardless of * flag */ if (long_options[match].flag == NULL) optopt = long_options[match].val; else optopt = 0; return BADARG; } if (long_options[match].has_arg == required_argument || long_options[match].has_arg == optional_argument) { if (has_equal) optarg = has_equal; else if (long_options[match].has_arg == required_argument) { /* * optional argument doesn't use * next nargv */ optarg = nargv[optind++]; } } if ((long_options[match].has_arg == required_argument) && (optarg == NULL)) { /* * Missing argument; leading ':' * indicates no error should be generated */ if (PRINT_ERROR) warnx(recargstring, current_argv); /* * XXX: GNU sets optopt to val regardless * of flag */ if (long_options[match].flag == NULL) optopt = long_options[match].val; else optopt = 0; --optind; return BADARG; } } else { /* unknown option */ if (PRINT_ERROR) warnx(illoptstring, current_argv); optopt = 0; return BADCH; } if (long_options[match].flag) { *long_options[match].flag = long_options[match].val; retval = 0; } else retval = long_options[match].val; if (idx) *idx = match; } return retval; #undef IDENTICAL_INTERPRETATION } libnbcompat-20180822/strtoll.c0000644000175000017500000001211713355271171016362 0ustar jgoerzenjgoerzen/* $NetBSD: strtoll.c,v 1.7 2004/08/31 17:55:17 jlam Exp $ */ /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "from: @(#)strtoq.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: strtoll.c,v 1.7 2004/08/31 17:55:17 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #ifdef _LIBC #undef _LIBC #endif #ifdef _LIBC #include "namespace.h" #endif #include #include #if HAVE_ERRNO_H #include #endif #include #include #ifdef _LIBC #ifdef __weak_alias __weak_alias(strtoll, _strtoll) #endif #endif #if !HAVE_STRTOLL /* * Convert a string to a long long integer. * * Ignores `locale' stuff. Assumes that the upper and lower case * alphabets and digits are each contiguous. */ /* LONGLONG */ long long int #ifdef _LIBC _strtoll(nptr, endptr, base) #else strtoll(nptr, endptr, base) #endif const char *nptr; char **endptr; int base; { const char *s; /* LONGLONG */ long long int acc, cutoff; int c; int neg, any, cutlim; _DIAGASSERT(nptr != NULL); /* endptr may be NULL */ #ifdef __GNUC__ /* This outrageous construct just to shut up a GCC warning. */ (void) &acc; (void) &cutoff; #endif /* * Skip white space and pick up leading +/- sign if any. * If base is 0, allow 0x for hex and 0 for octal, else * assume decimal; if base is already 16, allow 0x. */ s = nptr; do { c = (unsigned char) *s++; } while (isspace(c)); if (c == '-') { neg = 1; c = *s++; } else { neg = 0; if (c == '+') c = *s++; } if ((base == 0 || base == 16) && c == '0' && (*s == 'x' || *s == 'X')) { c = s[1]; s += 2; base = 16; } if (base == 0) base = c == '0' ? 8 : 10; /* * Compute the cutoff value between legal numbers and illegal * numbers. That is the largest legal value, divided by the * base. An input number that is greater than this value, if * followed by a legal input character, is too big. One that * is equal to this value may be valid or not; the limit * between valid and invalid numbers is then based on the last * digit. For instance, if the range for long longs is * [-9223372036854775808..9223372036854775807] and the input base * is 10, cutoff will be set to 922337203685477580 and cutlim to * either 7 (neg==0) or 8 (neg==1), meaning that if we have * accumulated a value > 922337203685477580, or equal but the * next digit is > 7 (or 8), the number is too big, and we will * return a range error. * * Set any if any `digits' consumed; make it negative to indicate * overflow. */ cutoff = neg ? LLONG_MIN : LLONG_MAX; cutlim = (int)(cutoff % base); cutoff /= base; if (neg) { if (cutlim > 0) { cutlim -= base; cutoff += 1; } cutlim = -cutlim; } for (acc = 0, any = 0;; c = (unsigned char) *s++) { if (isdigit(c)) c -= '0'; else if (isalpha(c)) c -= isupper(c) ? 'A' - 10 : 'a' - 10; else break; if (c >= base) break; if (any < 0) continue; if (neg) { if (acc < cutoff || (acc == cutoff && c > cutlim)) { any = -1; acc = LLONG_MIN; errno = ERANGE; } else { any = 1; acc *= base; acc -= c; } } else { if (acc > cutoff || (acc == cutoff && c > cutlim)) { any = -1; acc = LLONG_MAX; errno = ERANGE; } else { any = 1; acc *= base; acc += c; } } } if (endptr != 0) /* LINTED interface specification */ *endptr = (char *)(any ? s - 1 : nptr); return (acc); } #endif libnbcompat-20180822/md5c.c0000644000175000017500000002476113355271171015517 0ustar jgoerzenjgoerzen/* $NetBSD: md5c.c,v 1.8 2015/06/08 00:44:46 joerg Exp $ */ /* * This file is derived from the RSA Data Security, Inc. MD5 Message-Digest * Algorithm and has been modified by Jason R. Thorpe * for portability and formatting. */ /* * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All * rights reserved. * * License to copy and use this software is granted provided that it * is identified as the "RSA Data Security, Inc. MD5 Message-Digest * Algorithm" in all material mentioning or referencing this software * or this function. * * License is also granted to make and use derivative works provided * that such works are identified as "derived from the RSA Data * Security, Inc. MD5 Message-Digest Algorithm" in all material * mentioning or referencing the derived work. * * RSA Data Security, Inc. makes no representations concerning either * the merchantability of this software or the suitability of this * software for any particular purpose. It is provided "as is" * without express or implied warranty of any kind. * * These notices must be retained in any copies of any part of this * documentation and/or software. */ #if defined(_KERNEL) || defined(_STANDALONE) #include #include #include #define _DIAGASSERT(x) (void)0 #else #if 0 #include "namespace.h" #endif #include #include #include #include #include #endif /* _KERNEL || _STANDALONE */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_MD5_H #define ZEROIZE(d, l) memset((d), 0, (l)) typedef unsigned char *POINTER; typedef uint16_t UINT2; typedef uint32_t UINT4; /* * Constants for MD5Transform routine. */ #define S11 7 #define S12 12 #define S13 17 #define S14 22 #define S21 5 #define S22 9 #define S23 14 #define S24 20 #define S31 4 #define S32 11 #define S33 16 #define S34 23 #define S41 6 #define S42 10 #define S43 15 #define S44 21 #if 0 #if !defined(_KERNEL) && !defined(_STANDALONE) && defined(__weak_alias) __weak_alias(MD5Init,_MD5Init) __weak_alias(MD5Update,_MD5Update) __weak_alias(MD5Final,_MD5Final) #endif #endif static void MD5Transform __P((UINT4 [4], const unsigned char [64])); static void Encode __P((unsigned char *, UINT4 *, unsigned int)); static void Decode __P((UINT4 *, const unsigned char *, unsigned int)); /* * Encodes input (UINT4) into output (unsigned char). Assumes len is * a multiple of 4. */ static void Encode (output, input, len) unsigned char *output; UINT4 *input; unsigned int len; { unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) { output[j] = (unsigned char)(input[i] & 0xff); output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); output[j+3] = (unsigned char)((input[i] >> 24) & 0xff); } } /* * Decodes input (unsigned char) into output (UINT4). Assumes len is * a multiple of 4. */ static void Decode (output, input, len) UINT4 *output; const unsigned char *input; unsigned int len; { unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); } static const unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /* * F, G, H and I are basic MD5 functions. */ #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) /* * ROTATE_LEFT rotates x left n bits. */ #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) /* * FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. * Rotation is separate from addition to prevent recomputation. */ #define FF(a, b, c, d, x, s, ac) { \ (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define GG(a, b, c, d, x, s, ac) { \ (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define HH(a, b, c, d, x, s, ac) { \ (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define II(a, b, c, d, x, s, ac) { \ (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } /* * MD5 initialization. Begins an MD5 operation, writing a new context. */ void MD5Init(context) MD5_CTX *context; /* context */ { _DIAGASSERT(context != 0); context->count[0] = context->count[1] = 0; /* Load magic initialization constants. */ context->state[0] = 0x67452301; context->state[1] = 0xefcdab89; context->state[2] = 0x98badcfe; context->state[3] = 0x10325476; } /* * MD5 block update operation. Continues an MD5 message-digest * operation, processing another message block, and updating the * context. */ void MD5Update(context, input, inputLen) MD5_CTX *context; /* context */ const unsigned char *input; /* input block */ unsigned int inputLen; /* length of input block */ { unsigned int i, idx, partLen; _DIAGASSERT(context != 0); _DIAGASSERT(input != 0); /* Compute number of bytes mod 64 */ idx = (unsigned int)((context->count[0] >> 3) & 0x3F); /* Update number of bits */ if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3)) context->count[1]++; context->count[1] += ((UINT4)inputLen >> 29); partLen = 64 - idx; /* Transform as many times as possible. */ if (inputLen >= partLen) { /* LINTED const castaway ok */ memcpy((POINTER)&context->buffer[idx], (POINTER)input, partLen); MD5Transform(context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64) MD5Transform(context->state, &input[i]); idx = 0; } else i = 0; /* Buffer remaining input */ /* LINTED const castaway ok */ memcpy((POINTER)&context->buffer[idx], (POINTER)&input[i], inputLen - i); } /* * MD5 finalization. Ends an MD5 message-digest operation, writing the * message digest and zeroing the context. */ void MD5Final(digest, context) unsigned char digest[16]; /* message digest */ MD5_CTX *context; /* context */ { unsigned char bits[8]; unsigned int idx, padLen; _DIAGASSERT(digest != 0); _DIAGASSERT(context != 0); /* Save number of bits */ Encode(bits, context->count, 8); /* Pad out to 56 mod 64. */ idx = (unsigned int)((context->count[0] >> 3) & 0x3f); padLen = (idx < 56) ? (56 - idx) : (120 - idx); MD5Update (context, PADDING, padLen); /* Append length (before padding) */ MD5Update(context, bits, 8); /* Store state in digest */ Encode(digest, context->state, 16); /* Zeroize sensitive information. */ ZEROIZE((POINTER)(void *)context, sizeof(*context)); } /* * MD5 basic transformation. Transforms state based on block. */ static void MD5Transform(state, block) UINT4 state[4]; const unsigned char block[64]; { UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; Decode(x, block, 64); /* Round 1 */ FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ /* Round 2 */ GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ /* Round 3 */ HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ /* Round 4 */ II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ state[0] += a; state[1] += b; state[2] += c; state[3] += d; /* Zeroize sensitive information. */ ZEROIZE((POINTER)(void *)x, sizeof (x)); } #endif /* HAVE_MD5_H */ libnbcompat-20180822/gettemp.c0000644000175000017500000001075213355271171016327 0ustar jgoerzenjgoerzen/* $NetBSD: gettemp.c,v 1.2 2007/07/31 13:17:33 joerg Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP || !HAVE_MKDTEMP #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: gettemp.c,v 1.2 2007/07/31 13:17:33 joerg Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #include #include #include #include #if HAVE_ERRNO_H #include #endif #if HAVE_FCNTL_H #include #endif #include #include #include #if HAVE_NBTOOL_CONFIG_H #define GETTEMP gettemp #else #if 0 #include "reentrant.h" #include "local.h" #define GETTEMP __gettemp #else #define GETTEMP gettemp #endif #endif int GETTEMP(path, doopen, domkdir) char *path; int *doopen; int domkdir; { char *start, *trv; struct stat sbuf; unsigned int pid; /* To guarantee multiple calls generate unique names even if the file is not created. 676 different possibilities with 7 or more X's, 26 with 6 or less. */ static char xtra[2] = "aa"; int xcnt = 0; _DIAGASSERT(path != NULL); /* doopen may be NULL */ pid = getpid(); /* Move to end of path and count trailing X's. */ for (trv = path; *trv; ++trv) if (*trv == 'X') xcnt++; else xcnt = 0; /* Use at least one from xtra. Use 2 if more than 6 X's. */ if (*(trv - 1) == 'X') *--trv = xtra[0]; if (xcnt > 6 && *(trv - 1) == 'X') *--trv = xtra[1]; /* Set remaining X's to pid digits with 0's to the left. */ while (*--trv == 'X') { *trv = (pid % 10) + '0'; pid /= 10; } /* update xtra for next call. */ if (xtra[0] != 'z') xtra[0]++; else { xtra[0] = 'a'; if (xtra[1] != 'z') xtra[1]++; else xtra[1] = 'a'; } /* * check the target directory; if you have six X's and it * doesn't exist this runs for a *very* long time. */ for (start = trv + 1;; --trv) { if (trv <= path) break; if (*trv == '/') { *trv = '\0'; if (stat(path, &sbuf)) return (0); if (!S_ISDIR(sbuf.st_mode)) { errno = ENOTDIR; return (0); } *trv = '/'; break; } } for (;;) { if (doopen) { if ((*doopen = open(path, O_CREAT | O_EXCL | O_RDWR, 0600)) >= 0) return (1); if (errno != EEXIST) return (0); } else if (domkdir) { if (mkdir(path, 0700) >= 0) return (1); if (errno != EEXIST) return (0); } else if (lstat(path, &sbuf)) return (errno == ENOENT ? 1 : 0); /* tricky little algorithm for backward compatibility */ for (trv = start;;) { if (!*trv) return (0); if (*trv == 'z') *trv++ = 'a'; else { if (isdigit((unsigned char)*trv)) *trv = 'a'; else ++*trv; break; } } } /*NOTREACHED*/ } #endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP || !HAVE_MKDTEMP */ libnbcompat-20180822/src2nbcompat0000755000175000017500000001137013355271171017036 0ustar jgoerzenjgoerzen#!/bin/sh # # $NetBSD: src2nbcompat,v 1.11 2018/08/22 20:48:38 maya Exp $ # # Copyright (c) 2003 The NetBSD Foundation, Inc. # All rights reserved. # # This code is derived from software contributed to The NetBSD Foundation # by Johnny C. Lam. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. # if [ $# -lt 2 ]; then echo "src2nbcompat src dest"; exit 1; fi src=$1 dest=$2 case $src in /*) ;; *) src=`pwd`/$src ;; esac case $dest in /*) ;; *) dest=`pwd`/$dest ;; esac make_dir() { _d="$1" _destdir="$2" _newd=${3-`echo $_d | sed 's,^\./,,'`} case $_newd in *CVS) ;; .) ;; *) mkdir -p $_destdir/$_newd ;; esac } copy_file() { _f="$1" _destdir="$2" _newf=${3-`echo $_f | sed 's,^\./,,'`} case $_newf in *CVS/*) # Skip copying over any CVS information. ;; *Makefile|*Makefile.inc) # Skip copying over the Makefiles since we'll be using # a GNU autoconf-based build infrastructure. ;; *.sh) # Assume shell scripts will require variable substitution # by the GNU configure script. # cp $_f $_destdir/$_newf.in ;; *.[ch]) # Add "#include " before the first system # header inclusion. Protect all system headers with # "#if HAVE_FOO_H ... #endif" guards. # awk ' \ BEGIN { config = 0; nbcompat = 0 } \ /^#[ ]*if[ ]+HAVE_NBTOOL_CONFIG_H/ { \ if (config == 0) { \ print "#if HAVE_CONFIG_H"; \ print "#include \"config.h\""; \ print "#endif"; \ config = 1; \ } \ } \ /^#[ ]*include[ ]+/ { \ if (config == 0) { \ print "#if HAVE_CONFIG_H"; \ print "#include \"config.h\""; \ print "#endif"; \ config = 1; \ } \ } \ /^#[ ]*include[ ]+<[^ ]*>/ { \ guard = $0; \ sub("#[ ]*include[ ]+<", "HAVE_", guard); \ sub(">.*", "", guard); \ gsub("[-/.]", "_", guard); \ guard = toupper(guard); \ if (nbcompat == 0) { \ print "#include "; \ nbcompat = 1; \ }; \ print "#if " guard; \ print $0; \ print "#endif"; \ next; \ } \ { print } \ ' $_f > $_destdir/$_newf.tmp if [ -f $_destdir/$_newf ] && \ diff -q -I "\$Net""BSD.*\$" $_destdir/$_newf $_destdir/$_newf.tmp >/dev/null; then rm -f $_destdir/$_newf.tmp else rm -f $_destdir/$_newf mv $_destdir/$_newf.tmp $_destdir/$_newf fi ;; *.[1-9]) # Copy the manpage over, and generate the catpage. cp $_newf $_destdir/$_newf.tmp if [ -f $_destdir/$_newf ] && \ diff -q -I "\$Net""BSD.*\$" $_destdir/$_newf $_destdir/$_newf.tmp >/dev/null; then rm -f $_destdir/$_newf.tmp else mv -f $_destdir/$_newf.tmp $_destdir/$_newf _catf=`echo $_newf | sed 's,\.\([1-9]\),.cat\1,'` nroff -mandoc $_newf > $_destdir/$_catf fi ;; *) # Everything else just gets copied verbatim. cp $_newf $_destdir/$_newf.tmp if [ -f $_destdir/$_newf ] && \ diff -q -I "\$Net""BSD.*\$" $_destdir/$_newf $_destdir/$_newf.tmp >/dev/null; then rm -f $_destdir/$_newf.tmp else mv -f $_destdir/$_newf.tmp $_destdir/$_newf fi ;; esac } if [ -f "$src" ]; then srcdir=`dirname $src` destdir=`dirname $dest` else srcdir="$src" destdir="$dest" fi echo "Preparing directory $destdir" mkdir -p $destdir if [ -f "$src" ]; then echo "Copying $src to $dest" cd $srcdir copy_file `basename $src` $destdir `basename $dest` else echo "Copying files and directories to $destdir" cd $srcdir find . -type d -print | while read d; do make_dir $d $destdir done find . \! -type d -print | while read f; do copy_file $f $destdir done fi libnbcompat-20180822/lchflags.c0000644000175000017500000000364113355271171016444 0ustar jgoerzenjgoerzen/* $NetBSD: lchflags.c,v 1.4 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Luke Mewburn. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ /* Emulate lchflags(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chflags(2) */ #include #include #include int lchflags(const char *path, unsigned long flags) { struct stat psb; if (lstat(path, &psb) == -1) return -1; if (S_ISLNK(psb.st_mode)) { return 0; } return (chflags(path, flags)); } libnbcompat-20180822/README0000644000175000017500000001131113355271171015366 0ustar jgoerzenjgoerzen$NetBSD: README,v 1.23 2018/04/30 10:41:35 wiz Exp $ 0 Introduction ============== libnbcompat builds and installs a portable NetBSD-compatibility library that supplies routines missing on operating systems that are used by the family of pkgsrc bootstrap tools. Note that libnbcompat is very much a work-in-progress. Only the functions that are directly used by the bootstrap tools are implemented in the library. At the moment, this includes the following packages: archivers/pax pkgtools/mtree pkgtools/pkg_install textproc/nbsed A script, src2nbcompat, is also included in the sources that simplifies importing software from the NetBSD src module into pkgsrc. 1 Updating this package ======================= Please take care when updating this package. Do *not* simply commit changes to this package and ask for testers. This package is too fundamental to the proper bootstrapping of pkgsrc to let accidental breakage seep in. Proper methodology for updating this package is: (1) Post a tarball at a publicly accessible URL containing the pkgtools/libnbcompat directory. (2) Ask on the tech-pkg@NetBSD.org mailing list for testers. (3) Fix any breakage on non-NetBSD operating systems before committing. 2 Tested operating systems ========================== *NOTE* *NOTE* This section should be kept up-to-date with the results for *NOTE* the most recent libnbcompat. *NOTE* libnbcompat-20040911 has been tested to build and install correctly on the following operating systems: FreeBSD-4.8/i386 NetBSD-1.6.2/i386 Solaris 9/sparc libnbcompat-20041024 has been tested to build and install correctly on the following operating systems: FreeBSD-4.11/i386 FreeBSD-6.1/amd64 Darwin-8.3/powerpc IRIX-5.3/mipseb IRIX-6.5/mipseb Linux/i386 RHEL4 Linux 2.6/i386 Tru64 UNIX 5.1B-2/alpha libnbcompat-20070507 has been tested to build and install correctly on the following operating systems: - libnbcompat-20070531 has been tested to build and install correctly on the following operating systems: SunOS-5.10-sparc NetBSD-3.0-i386 IRIX-6.5-mips libnbcompat-20070721 has been tested to build and install correctly on the following operating systems: HPUX-11.11-hppa Interix-3.5-i586 libnbcompat-20130908 has been tested to build and install correctly on the following operating systems: Debian GNU/kFreeBSD/amd64 7.1 Sun Solaris/amd64 10u8 NetBSD/amd64 6.99.23 FreeBSD/amd64 9.1 OpenBSD/amd64 5.3 DragonFly/amd64 3.4.1 Debian GNU/Linux/amd64 7.1 CentOS Linux/amd64 6.5 OpenBSD/sparc64 5.5 libnbcompat-20140725 has been tested to build and install correctly on the following operating systems: Ubuntu GNU/Linux/amd64 12.04 CentOS Linux/amd64 6.5 CentOS Linux/amd64 6.6 CentOS Linux/amd64 7.0 OpenBSD/sparc64 5.5 OpenBSD/sparc64 5.6 FreeBSD/amd64 10.1 libnbcompat-20150419 has been tested to build and install correctly on the following operating systems: NetBSD/i386 5.2.3 HP-UX/hppa 11.11 3 Usage ======= This library is intended to simplify porting NetBSD software. To that end, the changes to NetBSD sources to use libnbcompat are minor. The procedure is: (1) Add #include at the top of the source files that include system headers, but below the inclusion of any "config.h". (2) Surround each system header file included in the source file with #if HAVE__H ... #endif. You may need to add additional headers present on other operating systems that define any system-supplied functions, e.g. . The src2nbcompat script included in the libncompat sources can be used to automate this process to some extent. It is intended to import sources from a NetBSD src checkout into pkgsrc. It will copy the sources from a directory and automatically insert the proper lines into the files. For example, to import the pkg_install sources into pkgsrc, run: src2nbcompat \ /usr/src/usr.sbin/pkg_install \ /usr/pkgsrc/pkgtools/pkg_install/files You will need to run a "cvs diff" on the imported files to check that any local changes are preserved across imports. libnbcompat-20180822/nbcompat/0000755000175000017500000000000013355271171016314 5ustar jgoerzenjgoerzenlibnbcompat-20180822/nbcompat/sha2.h0000644000175000017500000001076413355271171017332 0ustar jgoerzenjgoerzen/* * sha2.h * * Version 1.0.0beta1 * * Written by Aaron D. Gifford * * Copyright 2000 Aaron D. Gifford. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the copyright holder nor the names of contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``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 AUTHOR(S) OR CONTRIBUTOR(S) 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. * */ #ifndef NBCOMPAT_SHA2_H_ #define NBCOMPAT_SHA2_H_ #include #if defined(HAVE_NBCOMPAT_SHA2) #ifdef __cplusplus extern "C" { #endif /*** SHA-256/384/512 Various Length Definitions ***********************/ #define SHA256_BLOCK_LENGTH 64 #define SHA256_DIGEST_LENGTH 32 #define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1) #define SHA384_BLOCK_LENGTH 128 #define SHA384_DIGEST_LENGTH 48 #define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1) #define SHA512_BLOCK_LENGTH 128 #define SHA512_DIGEST_LENGTH 64 #define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) /*** SHA-256/384/512 Context Structures *******************************/ typedef struct _SHA256_CTX { uint32_t state[8]; uint64_t bitcount; uint8_t buffer[SHA256_BLOCK_LENGTH]; } SHA256_CTX; typedef struct _SHA512_CTX { uint64_t state[8]; uint64_t bitcount[2]; uint8_t buffer[SHA512_BLOCK_LENGTH]; } SHA512_CTX; typedef SHA512_CTX SHA384_CTX; /*** SHA-256/384/512 Function Prototypes ******************************/ #define SHA256_Init nbcompat_SHA256_Init #define SHA256_Update nbcompat_SHA256_Update #define SHA256_Final nbcompat_SHA256_Final #define SHA256_End nbcompat_SHA256_End #define SHA256_Data nbcompat_SHA256_Data #define SHA256_File nbcompat_SHA256_File void SHA256_Init(SHA256_CTX *); void SHA256_Update(SHA256_CTX*, const uint8_t*, size_t); void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*); char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]); char* SHA256_Data(const uint8_t*, size_t, uint8_t *); char *SHA256_File(char *, char *); #define SHA384_Init nbcompat_SHA384_Init #define SHA384_Update nbcompat_SHA384_Update #define SHA384_Final nbcompat_SHA384_Final #define SHA384_End nbcompat_SHA384_End #define SHA384_Data nbcompat_SHA384_Data #define SHA384_File nbcompat_SHA384_File void SHA384_Init(SHA384_CTX*); void SHA384_Update(SHA384_CTX*, const uint8_t*, size_t); void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*); char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]); char* SHA384_Data(const uint8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]); char *SHA384_File(char *, char *); #define SHA512_Init nbcompat_SHA512_Init #define SHA512_Update nbcompat_SHA512_Update #define SHA512_Final nbcompat_SHA512_Final #define SHA512_End nbcompat_SHA512_End #define SHA512_Data nbcompat_SHA512_Data #define SHA512_File nbcompat_SHA512_File void SHA512_Init(SHA512_CTX*); void SHA512_Update(SHA512_CTX*, const uint8_t*, size_t); void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*); char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]); char* SHA512_Data(const uint8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]); char *SHA512_File(char *, char *); #ifdef __cplusplus } #endif /* __cplusplus */ #else /* HAVE_NBCOMPAT_SHA2 */ #include #endif /* HAVE_NBCOMPAT_SHA2 */ #endif /* NBCOMPAT_SHA2_H_ */ libnbcompat-20180822/nbcompat/ctype.h0000644000175000017500000000342013355271171017610 0ustar jgoerzenjgoerzen/* $NetBSD: ctype.h,v 1.3 2015/06/08 00:44:46 joerg Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_CTYPE_H_ #define _NBCOMPAT_CTYPE_H_ #if HAVE_CTYPE_H # include #endif /* * Declare macros and functions that may be missing in . */ #if !HAVE_DECL_ISBLANK int isblank(int); #endif #endif /* !_NBCOMPAT_CTYPE_H_ */ libnbcompat-20180822/nbcompat/fts.h0000644000175000017500000001233213355271171017262 0ustar jgoerzenjgoerzen/* $NetBSD: fts.h,v 1.7 2012/03/01 16:18:51 hans Exp $ */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)fts.h 8.3 (Berkeley) 8/14/94 */ #ifndef _NBCOMPAT_FTS_H_ #define _NBCOMPAT_FTS_H_ typedef struct { struct _ftsent *fts_cur; /* current node */ struct _ftsent *fts_child; /* linked list of children */ struct _ftsent **fts_array; /* sort array */ dev_t fts_dev; /* starting device # */ char *fts_path; /* path for this descent */ int fts_rfd; /* fd for root */ unsigned int fts_pathlen; /* sizeof(path) */ unsigned int fts_nitems; /* elements in the sort array */ int (*fts_compar) /* compare function */ (const struct _ftsent **, const struct _ftsent **); #define FTS_COMFOLLOW 0x001 /* follow command line symlinks */ #define FTS_LOGICAL 0x002 /* logical walk */ #define FTS_NOCHDIR 0x004 /* don't change directories */ #define FTS_NOSTAT 0x008 /* don't get stat info */ #define FTS_PHYSICAL 0x010 /* physical walk */ #define FTS_SEEDOT 0x020 /* return dot and dot-dot */ #define FTS_XDEV 0x040 /* don't cross devices */ #define FTS_WHITEOUT 0x080 /* return whiteout information */ #define FTS_OPTIONMASK 0x0ff /* valid user option mask */ #define FTS_NAMEONLY 0x100 /* (private) child names only */ #define FTS_STOP 0x200 /* (private) unrecoverable error */ int fts_options; /* fts_open options, global flags */ } FTS; typedef struct _ftsent { struct _ftsent *fts_cycle; /* cycle node */ struct _ftsent *fts_parent; /* parent directory */ struct _ftsent *fts_link; /* next file in directory */ long fts_number; /* local numeric value */ void *fts_pointer; /* local address value */ char *fts_accpath; /* access path */ char *fts_path; /* root path */ int fts_errno; /* errno for this node */ int fts_symfd; /* fd for symlink */ unsigned short fts_pathlen; /* strlen(fts_path) */ unsigned short fts_namelen; /* strlen(fts_name) */ ino_t fts_ino; /* inode */ dev_t fts_dev; /* device */ #ifdef __LIBC12_SOURCE__ uint16_t fts_nlink; /* link count */ #else nlink_t fts_nlink; /* link count */ #endif #define FTS_ROOTPARENTLEVEL -1 #define FTS_ROOTLEVEL 0 short fts_level; /* depth (-1 to N) */ #define FTS_D 1 /* preorder directory */ #define FTS_DC 2 /* directory that causes cycles */ #define FTS_DEFAULT 3 /* none of the above */ #define FTS_DNR 4 /* unreadable directory */ #define FTS_DOT 5 /* dot or dot-dot */ #define FTS_DP 6 /* postorder directory */ #define FTS_ERR 7 /* error; errno is set */ #define FTS_F 8 /* regular file */ #define FTS_INIT 9 /* initialized only */ #define FTS_NS 10 /* stat(2) failed */ #define FTS_NSOK 11 /* no stat(2) requested */ #define FTS_SL 12 /* symbolic link */ #define FTS_SLNONE 13 /* symbolic link without target */ #define FTS_W 14 /* whiteout object */ unsigned short fts_info; /* user flags for FTSENT structure */ #define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */ #define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */ #define FTS_ISW 0x04 /* this is a whiteout object */ unsigned short fts_flags; /* private flags for FTSENT structure */ #define FTS_AGAIN 1 /* read node again */ #define FTS_FOLLOW 2 /* follow symbolic link */ #define FTS_NOINSTR 3 /* no instructions */ #define FTS_SKIP 4 /* discard node */ unsigned short fts_instr; /* fts_set() instructions */ struct stat *fts_statp; /* stat(2) information */ char fts_name[1]; /* file name */ } FTSENT; #include __BEGIN_DECLS FTSENT *fts_children (FTS *, int); int fts_close (FTS *); FTS *fts_open (char * const *, int, int (*)(const FTSENT **, const FTSENT **)); FTSENT *fts_read (FTS *); int fts_set (FTS *, FTSENT *, int); __END_DECLS #endif /* !_NBCOMPAT_FTS_H_ */ libnbcompat-20180822/nbcompat/md5.h0000644000175000017500000000353113355271171017154 0ustar jgoerzenjgoerzen/* $NetBSD: md5.h,v 1.5 2008/10/08 14:28:14 joerg Exp $ */ /* * This file is derived from the RSA Data Security, Inc. MD5 Message-Digest * Algorithm and has been modified by Jason R. Thorpe * for portability and formatting. */ /* * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All * rights reserved. * * License to copy and use this software is granted provided that it * is identified as the "RSA Data Security, Inc. MD5 Message-Digest * Algorithm" in all material mentioning or referencing this software * or this function. * * License is also granted to make and use derivative works provided * that such works are identified as "derived from the RSA Data * Security, Inc. MD5 Message-Digest Algorithm" in all material * mentioning or referencing the derived work. * * RSA Data Security, Inc. makes no representations concerning either * the merchantability of this software or the suitability of this * software for any particular purpose. It is provided "as is" * without express or implied warranty of any kind. * * These notices must be retained in any copies of any part of this * documentation and/or software. */ #ifndef _NBCOMPAT_SYS_MD5_H_ #define _NBCOMPAT_SYS_MD5_H_ #include #define MD5_DIGEST_LENGTH 16 #define MD5_DIGEST_STRING_LENGTH 33 /* MD5 context. */ typedef struct MD5Context { uint32_t state[4]; /* state (ABCD) */ uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ unsigned char buffer[64]; /* input buffer */ } MD5_CTX; __BEGIN_DECLS void MD5Init(MD5_CTX *); void MD5Update(MD5_CTX *, const unsigned char *, unsigned int); void MD5Final(unsigned char[16], MD5_CTX *); char *MD5End(MD5_CTX *, char *); char *MD5File(const char *, char *); char *MD5Data(const unsigned char *, unsigned int, char *); __END_DECLS #endif /* !_NBCOMPAT_SYS_MD5_H_ */ libnbcompat-20180822/nbcompat/mpool.h0000644000175000017500000000760113355271171017617 0ustar jgoerzenjgoerzen/* $NetBSD: mpool.h,v 1.1 2008/10/26 12:52:00 joerg Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)mpool.h 8.2 (Berkeley) 7/14/94 */ #ifndef _NBCOMPAT_MPOOL_H_ #define _NBCOMPAT_MPOOL_H_ #include #include /* * The memory pool scheme is a simple one. Each in-memory page is referenced * by a bucket which is threaded in up to two of three ways. All active pages * are threaded on a hash chain (hashed by page number) and an lru chain. * Inactive pages are threaded on a free chain. Each reference to a memory * pool is handed an opaque MPOOL cookie which stores all of this information. */ #define HASHSIZE 128 #define HASHKEY(pgno) ((pgno - 1) % HASHSIZE) /* The BKT structures are the elements of the queues. */ typedef struct _bkt { CIRCLEQ_ENTRY(_bkt) hq; /* hash queue */ CIRCLEQ_ENTRY(_bkt) q; /* lru queue */ void *page; /* page */ pgno_t pgno; /* page number */ #define MPOOL_DIRTY 0x01 /* page needs to be written */ #define MPOOL_PINNED 0x02 /* page is pinned into memory */ uint8_t flags; /* flags */ } BKT; typedef struct MPOOL { CIRCLEQ_HEAD(_lqh, _bkt) lqh; /* lru queue head */ /* hash queue array */ CIRCLEQ_HEAD(_hqh, _bkt) hqh[HASHSIZE]; pgno_t curcache; /* current number of cached pages */ pgno_t maxcache; /* max number of cached pages */ pgno_t npages; /* number of pages in the file */ unsigned long pagesize; /* file page size */ int fd; /* file descriptor */ /* page in conversion routine */ void (*pgin)(void *, pgno_t, void *); /* page out conversion routine */ void (*pgout)(void *, pgno_t, void *); void *pgcookie; /* cookie for page in/out routines */ #ifdef STATISTICS unsigned long cachehit; unsigned long cachemiss; unsigned long pagealloc; unsigned long pageflush; unsigned long pageget; unsigned long pagenew; unsigned long pageput; unsigned long pageread; unsigned long pagewrite; #endif } MPOOL; __BEGIN_DECLS MPOOL *mpool_open(void *, int, pgno_t, pgno_t); void mpool_filter(MPOOL *, void (*)(void *, pgno_t, void *), void (*)(void *, pgno_t, void *), void *); void *mpool_new(MPOOL *, pgno_t *); void *mpool_get(MPOOL *, pgno_t, unsigned int); int mpool_put(MPOOL *, void *, unsigned int); int mpool_sync(MPOOL *); int mpool_close(MPOOL *); #ifdef STATISTICS void mpool_stat(MPOOL *); #endif __END_DECLS #endif /* _MPOOL_H_ */ libnbcompat-20180822/nbcompat/fnmatch.h0000644000175000017500000000443513355271171020113 0ustar jgoerzenjgoerzen/* $NetBSD: fnmatch.h,v 1.2 2004/08/10 18:47:55 jlam Exp $ */ /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 */ #ifndef _NBCOMPAT_FNMATCH_H_ #define _NBCOMPAT_FNMATCH_H_ #if HAVE_FNMATCH_H # include #endif #if !HAVE_FNMATCH #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOSYS 2 /* Function not implemented. */ #define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ #define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ #define FNM_PERIOD 0x04 /* Period must be matched by period. */ #define FNM_CASEFOLD 0x08 /* Pattern is matched case-insensitive */ #define FNM_LEADING_DIR 0x10 /* Ignore / after Imatch. */ int fnmatch(const char *, const char *, int); #endif #endif /* !_NBCOMPAT_FNMATCH_H_ */ libnbcompat-20180822/nbcompat/tzfile.h0000644000175000017500000000421713355271171017766 0ustar jgoerzenjgoerzen/* $NetBSD: tzfile.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_TZFILE_H_ #define _NBCOMPAT_TZFILE_H_ #if HAVE_TZFILE_H # include #endif /* * Declare functions and macros that may be missing in . */ #ifndef DAYSPERNYEAR # define DAYSPERNYEAR 365 #endif #ifndef EPOCH_YEAR # define EPOCH_YEAR 1970 #endif #ifndef HOURSPERDAY # define HOURSPERDAY 24 #endif #ifndef MINSPERHOUR # define MINSPERHOUR 60 #endif #ifndef SECSPERHOUR # define SECSPERHOUR 3600 #endif #ifndef SECSPERMIN # define SECSPERMIN 60 #endif #ifndef SECSPERDAY # define SECSPERDAY 86400 #endif #ifndef TM_YEAR_BASE # define TM_YEAR_BASE 1900 #endif #endif /* !_NBCOMPAT_TZFILE_H_ */ libnbcompat-20180822/nbcompat/stdbool.h0000644000175000017500000000331513355271171020135 0ustar jgoerzenjgoerzen/* $NetBSD: stdbool.h,v 1.1 2009/06/05 19:58:04 joerg Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STDBOOL_H_ #define _NBCOMPAT_STDBOOL_H_ #if HAVE_STDBOOL_H # include #else # if !HAVE__BOOL typedef int _Bool; # endif # define bool _Bool # define true 1 # define false 0 # define __bool_true_false_are_defined 1 #endif #endif /* _NBCOMPAT_STDBOOL_H_ */ libnbcompat-20180822/nbcompat/assert.h0000644000175000017500000000345213355271171017772 0ustar jgoerzenjgoerzen/* $NetBSD: assert.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_ASSERT_H_ #define _NBCOMPAT_ASSERT_H_ #if HAVE_ASSERT_H # include #endif /* * Declare macros and functions that may be missing in . */ #ifndef _DIAGASSERT #define _DIAGASSERT(cond) assert(cond) #endif #endif /* !_NBCOMPAT_ASSERT_H_ */ libnbcompat-20180822/nbcompat/endian.h0000644000175000017500000000447613355271171017736 0ustar jgoerzenjgoerzen/* $NetBSD: endian.h,v 1.3 2010/01/24 12:41:21 obache Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_ENDIAN_H_ #define _NBCOMPAT_ENDIAN_H_ #if HAVE_ENDIAN_H # include #endif #if HAVE_SYS_ENDIAN_H # include #endif #if HAVE_MACHINE_ENDIAN_H # include #endif #if HAVE_SYS_BYTEORDER_H # include #endif /* * Declare macros that may be missing in , , * and */ #ifndef LITTLE_ENDIAN # define LITTLE_ENDIAN 1234 #endif #ifndef BIG_ENDIAN # define BIG_ENDIAN 4321 #endif #ifndef BYTE_ORDER # if defined(_BIG_ENDIAN) # define BYTE_ORDER BIG_ENDIAN # elif defined(_LITTE_ENDIAN) # define BYTE_ORDER LITTLE_ENDIAN # elif defined(WORDS_BIGENDIAN) # define BYTE_ORDER BIG_ENDIAN # else # define BYTE_ORDER LITTLE_ENDIAN # endif #endif #endif /* !_NBCOMPAT_ENDIAN_H_ */ libnbcompat-20180822/nbcompat/cdefs.h0000644000175000017500000000554313355271171017560 0ustar jgoerzenjgoerzen/* $NetBSD: cdefs.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_SYS_CDEFS_H_ #define _NBCOMPAT_SYS_CDEFS_H_ #if HAVE_SYS_CDEFS_H # include #endif /* * Declare macros and functions that may be missing in . */ #ifndef __IDSTRING # define __IDSTRING(name,string) \ static const char name[] __attribute__((__unused__)) = string #endif #ifndef __COPYRIGHT # define __COPYRIGHT(_s) __IDSTRING(copyright,_s) #endif #ifndef __RCSID # define __RCSID(_s) __IDSTRING(rcsid,_s) #endif #ifndef __P # if defined(__STDC__) || defined(__cplusplus) # define __P(protos) protos /* full-blown ANSI C */ # else # define __P(protos) () /* traditional C preprocessor */ # endif #endif #ifndef __CONCAT # if defined(__STDC__) || defined(__cplusplus) # define __CONCAT(x,y) x ## y # else # define __CONCAT(x,y) x/**/y # endif #endif #ifndef __BEGIN_DECLS # if defined(__cplusplus) # define __BEGIN_DECLS extern "C" { # else # define __BEGIN_DECLS # endif #endif #ifndef __END_DECLS # if defined(__cplusplus) # define __END_DECLS }; # else # define __END_DECLS # endif #endif #ifndef __restrict /* * C99 defines the restrict type qualifier keyword, which was made available * in GCC 2.92. */ # if __STDC_VERSION__ >= 199901L # define __restrict restrict # else # define __restrict /* delete __restrict when not supported */ # endif #endif #endif /* !_NBCOMPAT_SYS_CDEFS_H_ */ libnbcompat-20180822/nbcompat/vis.h0000644000175000017500000000723113355271171017271 0ustar jgoerzenjgoerzen/* $NetBSD: vis.h,v 1.3 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)vis.h 8.1 (Berkeley) 6/2/93 */ #ifndef _NBCOMPAT_VIS_H_ #define _NBCOMPAT_VIS_H_ #include /* * to select alternate encoding format */ #define VIS_OCTAL 0x01 /* use octal \ddd format */ #define VIS_CSTYLE 0x02 /* use \[nrft0..] where appropiate */ /* * to alter set of characters encoded (default is to encode all * non-graphic except space, tab, and newline). */ #define VIS_SP 0x04 /* also encode space */ #define VIS_TAB 0x08 /* also encode tab */ #define VIS_NL 0x10 /* also encode newline */ #define VIS_WHITE (VIS_SP | VIS_TAB | VIS_NL) #define VIS_SAFE 0x20 /* only encode "unsafe" characters */ /* * other */ #define VIS_NOSLASH 0x40 /* inhibit printing '\' */ #define VIS_HTTPSTYLE 0x80 /* http-style escape % HEX HEX */ /* * unvis return codes */ #define UNVIS_VALID 1 /* character valid */ #define UNVIS_VALIDPUSH 2 /* character valid, push back passed char */ #define UNVIS_NOCHAR 3 /* valid sequence, no character produced */ #define UNVIS_SYNBAD -1 /* unrecognized escape sequence */ #define UNVIS_ERROR -2 /* decoder in unknown state (unrecoverable) */ /* * unvis flags */ #define UNVIS_END 1 /* no more characters */ #include __BEGIN_DECLS char *vis (char *, int, int, int); char *svis (char *, int, int, int, const char *); int strvis (char *, const char *, int); int strsvis (char *, const char *, int, const char *); int strvisx (char *, const char *, size_t, int); int strsvisx (char *, const char *, size_t, int, const char *); int strunvis (char *, const char *); int strunvisx (char *, const char *, int); #if defined(__LIBC12_SOURCE__) || !defined(__NetBSD__) int unvis (char *, int, int *, int); int __unvis13 (char *, int, int *, int); #else int unvis (char *, int, int *, int) __RENAME(__unvis13); #endif __END_DECLS #endif /* !_NBCOMPAT_VIS_H_ */ libnbcompat-20180822/nbcompat/dirent.h0000644000175000017500000000377513355271171017766 0ustar jgoerzenjgoerzen/* $NetBSD: dirent.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_DIRENT_H_ #define _NBCOMPAT_DIRENT_H_ #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif /* * Declare functions and macros that may be missing in . */ #if !defined(HAVE_DIRFD) && defined(HAVE_DIR_DD_FD) #define dirfd(dirp) ((dirp)->dd_fd) #endif #endif /* !_NBCOMPAT_DIRENT_H_ */ libnbcompat-20180822/nbcompat/sha1.h0000644000175000017500000000150013355271171017315 0ustar jgoerzenjgoerzen/* $NetBSD: sha1.h,v 1.6 2008/10/08 14:28:14 joerg Exp $ */ /* * SHA-1 in C * By Steve Reid * 100% Public Domain */ #ifndef _NBCOMPAT_SYS_SHA1_H_ #define _NBCOMPAT_SYS_SHA1_H_ #include #define SHA1_DIGEST_LENGTH 20 #define SHA1_DIGEST_STRING_LENGTH 41 typedef struct { uint32_t state[5]; uint32_t count[2]; unsigned char buffer[64]; } SHA1_CTX; __BEGIN_DECLS void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]); void SHA1Init(SHA1_CTX *context); void SHA1Update(SHA1_CTX *context, const unsigned char *data, unsigned int len); void SHA1Final(unsigned char digest[20], SHA1_CTX *context); char *SHA1End(SHA1_CTX *, char *); char *SHA1File(char *, char *); char *SHA1Data(const unsigned char *, size_t, char *); __END_DECLS #endif /* _NBCOMPAT_SYS_SHA1_H_ */ libnbcompat-20180822/nbcompat/statvfs.h0000644000175000017500000000776713355271171020200 0ustar jgoerzenjgoerzen/* $NetBSD: statvfs.h,v 1.6 2015/12/11 23:28:10 ryoon Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Christos Zoulas. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STATVFS_H_ #define _NBCOMPAT_STATVFS_H_ #if HAVE_SYS_STATVFS_H # include #endif #if !HAVE_STATVFS #include #include #if HAVE_SYS_MOUNT_H #include #endif #if HAVE_SYS_STATFS_H #include #endif #if HAVE_SYS_VFS_H #include #endif #if HAVE_STDINT_H #include #endif #define VFS_NAMELEN 32 #define VFS_MNAMELEN 1024 #if !defined(fsblkcnt_t) typedef uint64_t fsblkcnt_t; /* fs block count (statvfs) */ #endif #if !defined(fsfilcnt_t) typedef uint64_t fsfilcnt_t; /* fs file count */ #endif #if !HAVE_FSID_T typedef struct { int32_t val[2]; } fsid_t; #endif struct statvfs { unsigned long f_flag; /* copy of mount exported flags */ unsigned long f_bsize; /* system block size */ unsigned long f_frsize; /* system fragment size */ unsigned long f_iosize; /* optimal file system block size */ fsblkcnt_t f_blocks; /* number of blocks in file system */ fsblkcnt_t f_bfree; /* free blocks avail in file system */ fsblkcnt_t f_bavail; /* free blocks avail to non-root */ fsblkcnt_t f_bresvd; /* blocks reserved for root */ fsfilcnt_t f_files; /* total file nodes in file system */ fsfilcnt_t f_ffree; /* free file nodes in file system */ fsfilcnt_t f_favail; /* free file nodes avail to non-root */ fsfilcnt_t f_fresvd; /* file nodes reserved for root */ uint64_t f_syncreads; /* count of sync reads since mount */ uint64_t f_syncwrites; /* count of sync writes since mount */ uint64_t f_asyncreads; /* count of async reads since mount */ uint64_t f_asyncwrites; /* count of async writes since mount */ fsid_t f_fsidx; /* NetBSD compatible fsid */ unsigned long f_fsid; /* Posix compatible fsid */ unsigned long f_namemax; /* maximum filename length */ uint32_t f_owner; /* user that mounted the file system */ uint32_t f_spare[4]; /* spare space */ char f_fstypename[VFS_NAMELEN]; /* fs type name */ char f_mntonname[VFS_MNAMELEN]; /* directory on which mounted */ char f_mntfromname[VFS_MNAMELEN]; /* mounted file system */ }; #ifndef MNT_RDONLY #define MNT_RDONLY 0x00000001 /* read only filesystem */ #endif #ifndef ST_RDONLY #define ST_RDONLY MNT_RDONLY #endif #ifndef MNT_NOSUID #define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ #endif #ifndef ST_NOSUID #define ST_NOSUID MNT_NOSUID #endif int statvfs(const char *path, struct statvfs *vfs); int fstatvfs(int fd, struct statvfs *vfs); #endif /* !HAVE_STATVFS */ #endif /* !_NBCOMPAT_STATVFS_H_ */ libnbcompat-20180822/nbcompat/rmd160.h0000644000175000017500000000261313355271171017500 0ustar jgoerzenjgoerzen/* $NetBSD: rmd160.h,v 1.5 2008/10/06 12:36:20 joerg Exp $ */ /********************************************************************\ * * FILE: rmd160.h * * CONTENTS: Header file for a sample C-implementation of the * RIPEMD-160 hash-function. * TARGET: any computer with an ANSI C compiler * * AUTHOR: Antoon Bosselaers, ESAT-COSIC * DATE: 1 March 1996 * VERSION: 1.0 * * Copyright (c) Katholieke Universiteit Leuven * 1996, All Rights Reserved * \********************************************************************/ /* * from OpenBSD: rmd160.h,v 1.4 1999/08/16 09:59:04 millert Exp */ #ifndef _NBCOMPAT_RMD160_H_ #define _NBCOMPAT_RMD160_H_ #define RMD160_DIGEST_LENGTH 20 #define RMD160_DIGEST_STRING_LENGTH 41 typedef struct { uint32_t state[5]; /* state (ABCDE) */ uint32_t length[2]; /* number of bits */ unsigned char bbuffer[64]; /* overflow buffer */ uint32_t buflen; /* number of chars in bbuffer */ } RMD160_CTX; __BEGIN_DECLS void RMD160Init(RMD160_CTX *); void RMD160Transform(uint32_t[5], const uint32_t[16]); void RMD160Update(RMD160_CTX *, const unsigned char *, uint32_t); void RMD160Final(unsigned char[20], RMD160_CTX *); char *RMD160End(RMD160_CTX *, char *); char *RMD160File(char *, char *); char *RMD160Data(const unsigned char *, size_t, char *); __END_DECLS #endif /* !_NBCOMPAT_RMD160_H_ */ libnbcompat-20180822/nbcompat/regex.h0000644000175000017500000001300513355271171017576 0ustar jgoerzenjgoerzen/* $NetBSD: regex.h,v 1.2 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer of the University of Toronto. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regex.h 8.2 (Berkeley) 1/3/94 */ /*- * Copyright (c) 1992 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer of the University of Toronto. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regex.h 8.2 (Berkeley) 1/3/94 */ #ifndef _NBCOMPAT_REGEX_H_ #define _NBCOMPAT_REGEX_H_ #include #include /* types */ #if 1 /* __LIBC12_SOURCE__ - should go away */ typedef off_t regoff_t; #else typedef size_t regoff_t; #endif typedef struct { int re_magic; size_t re_nsub; /* number of parenthesized subexpressions */ const char *re_endp; /* end pointer for REG_PEND */ struct re_guts *re_g; /* none of your business :-) */ } regex_t; typedef struct { regoff_t rm_so; /* start of match */ regoff_t rm_eo; /* end of match */ } regmatch_t; /* regcomp() flags */ #define REG_BASIC 0000 #define REG_EXTENDED 0001 #define REG_ICASE 0002 #define REG_NOSUB 0004 #define REG_NEWLINE 0010 #define REG_NOSPEC 0020 #define REG_PEND 0040 #define REG_DUMP 0200 /* regerror() flags */ #define REG_NOMATCH 1 #define REG_BADPAT 2 #define REG_ECOLLATE 3 #define REG_ECTYPE 4 #define REG_EESCAPE 5 #define REG_ESUBREG 6 #define REG_EBRACK 7 #define REG_EPAREN 8 #define REG_EBRACE 9 #define REG_BADBR 10 #define REG_ERANGE 11 #define REG_ESPACE 12 #define REG_BADRPT 13 #define REG_EMPTY 14 #define REG_ASSERT 15 #define REG_INVARG 16 #define REG_ENOSYS 17 #define REG_ATOI 255 /* convert name to number (!) */ #define REG_ITOA 0400 /* convert number to name (!) */ /* regexec() flags */ #define REG_NOTBOL 00001 #define REG_NOTEOL 00002 #define REG_STARTEND 00004 #define REG_TRACE 00400 /* tracing of execution */ #define REG_LARGE 01000 /* force large representation */ #define REG_BACKR 02000 /* force use of backref code */ __BEGIN_DECLS int regcomp __P((regex_t * __restrict, const char * __restrict, int)); size_t regerror __P((int, const regex_t * __restrict, char * __restrict, size_t)); int regexec __P((const regex_t * __restrict, const char * __restrict, size_t, regmatch_t [], int)); void regfree __P((regex_t *)); __END_DECLS #endif /* !_NBCOMPAT_REGEX_H_ */ libnbcompat-20180822/nbcompat/netdb.h0000644000175000017500000001244513355271171017567 0ustar jgoerzenjgoerzen/* $Id: netdb.h,v 1.1 2008/10/06 12:36:20 joerg Exp $ */ /* * Copyright (C) 2000-2003 Damien Miller. All rights reserved. * Copyright (C) 1999 WIDE Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the project nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. */ /* * Pseudo-implementation of RFC2553 name / address resolution functions * * But these functions are not implemented correctly. The minimum subset * is implemented for ssh use only. For example, this routine assumes * that ai_family is AF_INET. Don't use it for another purpose. */ #ifndef _NBCOMPAT_NETDB_H #define _NBCOMPAT_NETDB_H #include #if defined(HAVE_NETDB_H) # include #endif #if defined(HAVE_SYS_SOCKET_H) # include #endif /* * First, socket and INET6 related definitions */ #ifndef HAVE_STRUCT_SOCKADDR_STORAGE # define _SS_MAXSIZE 128 /* Implementation specific max size */ # define _SS_PADSIZE (_SS_MAXSIZE - sizeof (struct sockaddr)) struct sockaddr_storage { struct sockaddr ss_sa; char __ss_pad2[_SS_PADSIZE]; }; # define ss_family ss_sa.sa_family #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */ #ifndef IN6_IS_ADDR_LOOPBACK # define IN6_IS_ADDR_LOOPBACK(a) \ (((uint32_t *)(a))[0] == 0 && ((uint32_t *)(a))[1] == 0 && \ ((uint32_t *)(a))[2] == 0 && ((uint32_t *)(a))[3] == htonl(1)) #endif /* !IN6_IS_ADDR_LOOPBACK */ #ifndef IN6_IS_ADDR_V4MAPPED #define IN6_IS_ADDR_V4MAPPED(a) \ (((uint32_t *)(a))[0] == 0 && ((uint32_t *)(a))[1] == 0 && \ ((uint32_t *)(a))[2] == ntohl(0x0000ffff)) #endif #ifndef INET6_ADDRSTRLEN #define INET6_ADDRSTRLEN 46 #endif #ifndef HAVE_SOCKLEN_T typedef unsigned int socklen_t; #endif #ifndef HAVE_STRUCT_IN6_ADDR struct in6_addr { uint8_t s6_addr[16]; }; #endif /* !HAVE_STRUCT_IN6_ADDR */ #ifndef HAVE_STRUCT_SOCKADDR_IN6 struct sockaddr_in6 { unsigned short sin6_family; uint16_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; uint32_t sin6_scope_id; }; #endif /* !HAVE_STRUCT_SOCKADDR_IN6 */ #ifndef AF_INET6 /* Define it to something that should never appear */ #define AF_INET6 AF_MAX #endif /* * Next, RFC2553 name / address resolution API */ #ifndef NI_NUMERICHOST # define NI_NUMERICHOST (1) #endif #ifndef NI_NAMEREQD # define NI_NAMEREQD (1<<1) #endif #ifndef NI_NUMERICSERV # define NI_NUMERICSERV (1<<2) #endif #ifndef AI_PASSIVE # define AI_PASSIVE (1) #endif #ifndef AI_CANONNAME # define AI_CANONNAME (1<<1) #endif #ifndef AI_NUMERICHOST # define AI_NUMERICHOST (1<<2) #endif #ifndef NI_MAXSERV # define NI_MAXSERV 32 #endif /* !NI_MAXSERV */ #ifndef NI_MAXHOST # define NI_MAXHOST 1025 #endif /* !NI_MAXHOST */ #ifndef EAI_NODATA # define EAI_NODATA (INT_MAX - 1) #endif #ifndef EAI_MEMORY # define EAI_MEMORY (INT_MAX - 2) #endif #ifndef EAI_NONAME # define EAI_NONAME (INT_MAX - 3) #endif #ifndef EAI_SYSTEM # define EAI_SYSTEM (INT_MAX - 4) #endif #ifndef EAI_FAMILY # define EAI_FAMILY (INT_MAX - 5) #endif #ifndef EAI_AGAIN # define EAI_AGAIN (INT_MAX - 6) #endif #ifndef EAI_FAIL # define EAI_FAIL (INT_MAX - 7) #endif #ifndef HAVE_STRUCT_ADDRINFO struct addrinfo { int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ int ai_family; /* PF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ size_t ai_addrlen; /* length of ai_addr */ char *ai_canonname; /* canonical name for hostname */ struct sockaddr *ai_addr; /* binary address */ struct addrinfo *ai_next; /* next structure in linked list */ }; #endif /* !HAVE_STRUCT_ADDRINFO */ #ifndef HAVE_GETADDRINFO void freeaddrinfo(struct addrinfo *); int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **); #endif /* !HAVE_GETADDRINFO */ #if !defined(HAVE_GAI_STRERROR) char *gai_strerror(int); #endif /* !HAVE_GAI_STRERROR */ #ifndef HAVE_GETNAMEINFO int getnameinfo(const struct sockaddr *, size_t, char *, size_t, char *, size_t, int); #endif /* !HAVE_GETNAMEINFO */ #endif /* !_FAKE_RFC2553_H */ libnbcompat-20180822/nbcompat/stdio.h0000644000175000017500000000447013355271171017614 0ustar jgoerzenjgoerzen/* $NetBSD: stdio.h,v 1.7 2015/06/08 00:44:46 joerg Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STDIO_H_ #define _NBCOMPAT_STDIO_H_ #if HAVE_STDARG_H # include #endif #if HAVE_STDIO_H # include #endif /* * Declare functions and macros that may be missing in . */ #if !HAVE_FCLOSE_D int fclose(FILE *); #endif #if !HAVE_PCLOSE_D int pclose(FILE *); #endif #if !HAVE_FGETLN char *fgetln(FILE *, size_t *); #endif #if !HAVE_GETDELIM ssize_t getdelim(char **, size_t *, int, FILE *); #endif #if !HAVE_GETLINE ssize_t getline(char **, size_t *, FILE *); #endif #if !HAVE_DECL_SNPRINTF int snprintf(char *, size_t, const char *, ...); int vsnprintf(char *, size_t, const char *, va_list); #endif #if !HAVE_DECL_ASPRINTF int asprintf(char **, const char *, ...); int vasprintf(char **, const char *, va_list); #endif #endif /* !_NBCOMPAT_STDIO_H_ */ libnbcompat-20180822/nbcompat/stdlib.h0000644000175000017500000000450213355271171017747 0ustar jgoerzenjgoerzen/* $NetBSD: stdlib.h,v 1.5 2015/04/14 09:23:48 jperkin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STDLIB_H_ #define _NBCOMPAT_STDLIB_H_ #if HAVE_STDLIB_H # include #endif #if HAVE_ALLOCA_H # include #endif /* * Declare functions and macros that may be missing in and * . */ #if !HAVE_SETENV int setenv(const char *, const char *, int); #endif #if !HAVE_MKSTEMP int mkstemp(char *); #endif #if !HAVE_MKDTEMP char *mkdtemp(char *); #endif #if !HAVE_SETPROGNAME const char *getprogname(void); void setprogname(const char *); #endif #if HAVE_WORKING_LONG_LONG # if !defined(HAVE_STRTOLL) && defined(HAVE_LONG_LONG) long long strtoll(const char *, char **, int); # endif #else # define NO_LONG_LONG 1 #endif /* ! HAVE_WORKING_LONG_LONG */ #if !HAVE_SHQUOTE size_t shquote(const char *, char *, size_t); #endif #endif /* !_NBCOMPAT_STDLIB_H_ */ libnbcompat-20180822/nbcompat/db.h0000644000175000017500000002051013355271171017050 0ustar jgoerzenjgoerzen/* $NetBSD: db.h,v 1.4 2014/03/14 22:08:18 ryoon Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)db.h 8.7 (Berkeley) 6/16/94 */ #ifndef _NBCOMPAT_DB_H_ #define _NBCOMPAT_DB_H_ #include #include #include #define RET_ERROR -1 /* Return values. */ #define RET_SUCCESS 0 #define RET_SPECIAL 1 /* * XXX * SGI/IRIX already has a pgno_t. */ #ifdef __sgi #define pgno_t db_pgno_t #endif /* * SCO OpenServer 5.0.7/3.2 has no MAXPATHLEN, but it has PATH_MAX (256). * in limits.h. But it is not usable under ordinal condition. */ #if !defined(MAXPATHLEN) #if defined(_SCO_DS) #define MAXPATHLEN 1024 #endif #endif #define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ typedef uint32_t pgno_t; #define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */ typedef uint16_t indx_t; #define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */ typedef uint32_t recno_t; /* Key/data structure -- a Data-Base Thang. */ typedef struct { void *data; /* data */ size_t size; /* data length */ } DBT; /* Routine flags. */ #define R_CURSOR 1 /* del, put, seq */ #define __R_UNUSED 2 /* UNUSED */ #define R_FIRST 3 /* seq */ #define R_IAFTER 4 /* put (RECNO) */ #define R_IBEFORE 5 /* put (RECNO) */ #define R_LAST 6 /* seq (BTREE, RECNO) */ #define R_NEXT 7 /* seq */ #define R_NOOVERWRITE 8 /* put */ #define R_PREV 9 /* seq (BTREE, RECNO) */ #define R_SETCURSOR 10 /* put (RECNO) */ #define R_RECNOSYNC 11 /* sync (RECNO) */ typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; /* * !!! * The following flags are included in the dbopen(3) call as part of the * open(2) flags. In order to avoid conflicts with the open flags, start * at the top of the 16 or 32-bit number space and work our way down. If * the open flags were significantly expanded in the future, it could be * a problem. Wish I'd left another flags word in the dbopen call. * * !!! * None of this stuff is implemented yet. The only reason that it's here * is so that the access methods can skip copying the key/data pair when * the DB_LOCK flag isn't set. */ #if UINT_MAX > 65535 #define DB_LOCK 0x20000000 /* Do locking. */ #define DB_SHMEM 0x40000000 /* Use shared memory. */ #define DB_TXN 0x80000000 /* Do transactions. */ #else #define DB_LOCK 0x2000 /* Do locking. */ #define DB_SHMEM 0x4000 /* Use shared memory. */ #define DB_TXN 0x8000 /* Do transactions. */ #endif /* Access method description structure. */ typedef struct __db { DBTYPE type; /* Underlying db type. */ int (*close) (struct __db *); int (*del) (const struct __db *, const DBT *, unsigned int); int (*get) (const struct __db *, const DBT *, DBT *, unsigned int); int (*put) (const struct __db *, DBT *, const DBT *, unsigned int); int (*seq) (const struct __db *, DBT *, DBT *, unsigned int); int (*sync) (const struct __db *, unsigned int); void *internal; /* Access method private. */ int (*fd) (const struct __db *); } DB; #define BTREEMAGIC 0x053162 #define BTREEVERSION 3 /* Structure used to pass parameters to the btree routines. */ typedef struct { #define R_DUP 0x01 /* duplicate keys */ unsigned long flags; unsigned int cachesize; /* bytes to cache */ int maxkeypage; /* maximum keys per page */ int minkeypage; /* minimum keys per page */ unsigned int psize; /* page size */ int (*compare) /* comparison function */ (const DBT *, const DBT *); size_t (*prefix) /* prefix function */ (const DBT *, const DBT *); int lorder; /* byte order */ } BTREEINFO; #define HASHMAGIC 0x061561 #define HASHVERSION 2 /* Structure used to pass parameters to the hashing routines. */ typedef struct { unsigned int bsize; /* bucket size */ unsigned int ffactor; /* fill factor */ unsigned int nelem; /* number of elements */ unsigned int cachesize; /* bytes to cache */ uint32_t /* hash function */ (*hash)(const void *, size_t); int lorder; /* byte order */ } HASHINFO; /* Structure used to pass parameters to the record routines. */ typedef struct { #define R_FIXEDLEN 0x01 /* fixed-length records */ #define R_NOKEY 0x02 /* key not required */ #define R_SNAPSHOT 0x04 /* snapshot the input */ unsigned long flags; unsigned int cachesize; /* bytes to cache */ unsigned int psize; /* page size */ int lorder; /* byte order */ size_t reclen; /* record length (fixed-length records) */ uint8_t bval; /* delimiting byte (variable-length records */ char *bfname; /* btree file name */ } RECNOINFO; #ifdef __DBINTERFACE_PRIVATE /* * Little endian <==> big endian 32-bit swap macros. * M_32_SWAP swap a memory location * P_32_SWAP swap a referenced memory location * P_32_COPY swap from one location to another */ #define M_32_SWAP(a) { \ uint32_t _tmp = a; \ ((char *)(void *)&a)[0] = ((char *)(void *)&_tmp)[3]; \ ((char *)(void *)&a)[1] = ((char *)(void *)&_tmp)[2]; \ ((char *)(void *)&a)[2] = ((char *)(void *)&_tmp)[1]; \ ((char *)(void *)&a)[3] = ((char *)(void *)&_tmp)[0]; \ } #define P_32_SWAP(a) { \ char _tmp[4]; \ _tmp[0] = ((char *)(void *)a)[0]; \ _tmp[1] = ((char *)(void *)a)[1]; \ _tmp[2] = ((char *)(void *)a)[2]; \ _tmp[3] = ((char *)(void *)a)[3]; \ ((char *)(void *)a)[0] = _tmp[3]; \ ((char *)(void *)a)[1] = _tmp[2]; \ ((char *)(void *)a)[2] = _tmp[1]; \ ((char *)(void *)a)[3] = _tmp[0]; \ } #define P_32_COPY(a, b) { \ ((char *)(void *)&(b))[0] = ((char *)(void *)&(a))[3]; \ ((char *)(void *)&(b))[1] = ((char *)(void *)&(a))[2]; \ ((char *)(void *)&(b))[2] = ((char *)(void *)&(a))[1]; \ ((char *)(void *)&(b))[3] = ((char *)(void *)&(a))[0]; \ } /* * Little endian <==> big endian 16-bit swap macros. * M_16_SWAP swap a memory location * P_16_SWAP swap a referenced memory location * P_16_COPY swap from one location to another */ #define M_16_SWAP(a) { \ uint16_t _tmp = a; \ ((char *)(void *)&a)[0] = ((char *)(void *)&_tmp)[1]; \ ((char *)(void *)&a)[1] = ((char *)(void *)&_tmp)[0]; \ } #define P_16_SWAP(a) { \ char _tmp[2]; \ _tmp[0] = ((char *)(void *)a)[0]; \ _tmp[1] = ((char *)(void *)a)[1]; \ ((char *)(void *)a)[0] = _tmp[1]; \ ((char *)(void *)a)[1] = _tmp[0]; \ } #define P_16_COPY(a, b) { \ ((char *)(void *)&(b))[0] = ((char *)(void *)&(a))[1]; \ ((char *)(void *)&(b))[1] = ((char *)(void *)&(a))[0]; \ } #endif __BEGIN_DECLS DB *dbopen(const char *, int, mode_t, DBTYPE, const void *); #ifdef __DBINTERFACE_PRIVATE #ifndef NBBY #define NBBY 8 #endif #define _DBMASK(a) (~((1ULL << (sizeof(a) * NBBY)) - 1)) #define _DBFIT(a, t) _DIAGASSERT(((a) & _DBMASK(t)) == 0) DB *__bt_open(const char *, int, mode_t, const BTREEINFO *, int); DB *__hash_open(const char *, int, mode_t, const HASHINFO *, int); DB *__rec_open(const char *, int, mode_t, const RECNOINFO *, int); void __dbpanic(DB *); #endif __END_DECLS #endif /* !_DB_H_ */ libnbcompat-20180822/nbcompat/getopt.h0000644000175000017500000000444013355271171017771 0ustar jgoerzenjgoerzen/* $NetBSD: getopt.h,v 1.5 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Dieter Baron and Thomas Klausner. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_GETOPT_H_ #define _NBCOMPAT_GETOPT_H_ #include #include /* * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { /* name of long option */ const char *name; /* * one of no_argument, required_argument, and optional_argument: * whether option takes an argument */ int has_arg; /* if not NULL, set *flag to val when option found */ int *flag; /* if flag not NULL, value to set *flag to; else return value */ int val; }; __BEGIN_DECLS int getopt_long (int, char * const *, const char *, const struct option *, int *); __END_DECLS #endif /* !_NBCOMPAT_GETOPT_H_ */ libnbcompat-20180822/nbcompat/time.h0000644000175000017500000000442413355271171017427 0ustar jgoerzenjgoerzen/* $NetBSD: time.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_TIME_H_ #define _NBCOMPAT_TIME_H_ #if TIME_WITH_SYS_TIME # include # include #else # if HAVE_SYS_TIME_H # include # else # include # endif #endif /* * Declare functions and macros that may be missing in or * . */ #if !defined(timersub) # define timersub(tvp, uvp, vvp) \ do { \ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ if ((vvp)->tv_usec < 0) { \ (vvp)->tv_sec--; \ (vvp)->tv_usec += 1000000; \ } \ } while (0) #endif #if !HAVE_UTIMES int utimes(const char *, const struct timeval *); #endif #if !HAVE_TIMEGM time_t timegm(struct tm *); #endif #endif /* !_NBCOMPAT_TIME_H_ */ libnbcompat-20180822/nbcompat/util.h0000644000175000017500000000411113355271171017437 0ustar jgoerzenjgoerzen/* $NetBSD: util.h,v 1.3 2014/07/25 13:26:24 jperkin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_UTIL_H_ #define _NBCOMPAT_UTIL_H_ #if HAVE_UTIL_H # include #endif #if HAVE_BSD_LIBUTIL_H # include #elif HAVE_LIBUTIL_H # include #endif /* * Declare functions and macros that may be missing in or * . */ #if !HAVE_FPARSELN #define FPARSELN_UNESCESC 0x01 #define FPARSELN_UNESCCONT 0x02 #define FPARSELN_UNESCCOMM 0x04 #define FPARSELN_UNESCREST 0x08 #define FPARSELN_UNESCALL 0x0f char *fparseln(FILE *, size_t *, size_t *, const char[3], int); #endif #endif /* !_NBCOMPAT_UTIL_H_ */ libnbcompat-20180822/nbcompat/poll.h0000644000175000017500000000431413355271171017435 0ustar jgoerzenjgoerzen/* $NetBSD: poll.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Charles M. Hannum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_POLL_H_ #define _NBCOMPAT_POLL_H_ typedef unsigned int nfds_t; struct pollfd { int fd; /* file descriptor */ short events; /* events to look for */ short revents; /* events returned */ }; /* * Testable events (may be specified in events field). */ #define POLLIN 0x0001 #define POLLPRI 0x0002 #define POLLOUT 0x0004 #define POLLRDNORM 0x0040 #define POLLWRNORM POLLOUT #define POLLRDBAND 0x0080 #define POLLWRBAND 0x0100 /* * Non-testable events (may not be specified in events field). */ #define POLLERR 0x0008 #define POLLHUP 0x0010 #define POLLNVAL 0x0020 __BEGIN_DECLS int poll (struct pollfd *, nfds_t, int); __END_DECLS #endif /* !_NBCOMPAT_POLL_H_ */ libnbcompat-20180822/nbcompat/types.h0000644000175000017500000000413313355271171017632 0ustar jgoerzenjgoerzen/* $NetBSD: types.h,v 1.4 2008/12/14 07:50:49 obache Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_SYS_TYPES_H_ #define _NBCOMPAT_SYS_TYPES_H_ #if HAVE_SYS_TYPES_H # include #endif /* * BSD code generally assumes that this types are present, so pull this in * here for platforms like Mac OS X. */ #if HAVE_INTTYPES_H #include #endif #if HAVE_STDINT_H #include #endif /* * Declare macros and functions that may be missing in . */ #if !defined(makedev) # if HAVE_SYS_MKDEV_H # include # if defined(mkdev) # define makedev mkdev # endif # endif #endif #endif /* !_NBCOMPAT_SYS_TYPES_H_ */ libnbcompat-20180822/nbcompat/param.h0000644000175000017500000000400713355271171017566 0ustar jgoerzenjgoerzen/* $NetBSD: param.h,v 1.3 2009/02/19 00:51:12 abs Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_SYS_PARAM_H_ #define _NBCOMPAT_SYS_PARAM_H_ #if HAVE_SYS_PARAM_H # include #endif /* * Declare macros and functions that may be missing in . */ #if !defined(MIN) # define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #if !defined(MAX) # define MAX(a, b) ((a) < (b) ? (b) : (a)) #endif /* At least Ubuntu 8.10 jumps through hoops to *undefine* ARG_MAX */ #if !defined(ARG_MAX) # define ARG_MAX sysconf(_SC_ARG_MAX) #endif #endif /* !_NBCOMPAT_SYS_PARAM_H_ */ libnbcompat-20180822/nbcompat/grp.h0000644000175000017500000000370413355271171017261 0ustar jgoerzenjgoerzen/* $NetBSD: grp.h,v 1.3 2008/09/08 20:20:23 joerg Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_GRP_H_ #define _NBCOMPAT_GRP_H_ #if HAVE_GRP_H # include #endif /* * Declare functions that may be missing in . */ #if !HAVE_SETGROUPENT int setgroupent(int); #endif #if !HAVE_GROUP_FROM_GID const char *group_from_gid(gid_t, int); #endif #if !HAVE_GID_FROM_GROUP int gid_from_group(const char *, gid_t *); #endif #if !HAVE_DECL_ENDGRENT void endgrent(void); #endif #endif /* !_NBCOMPAT_GRP_H_ */ libnbcompat-20180822/nbcompat/termcap.h0000644000175000017500000000401513355271171020120 0ustar jgoerzenjgoerzen/* $NetBSD: termcap.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_TERMCAP_H_ #define _NBCOMPAT_TERMCAP_H_ #if HAVE_TERMCAP_H # include #endif /* * Declare macros and functions that may be missing in . */ #if !HAVE_TERMCAP_H int tgetent __P((char *, const char *)); char *tgetstr __P((const char *, char **)); int tgetflag __P((const char *)); int tgetnum __P((const char *)); char *tgoto __P((const char *, int, int)); void tputs __P((const char *, int, int (*)(int))); #endif #endif /* !_NBCOMPAT_TERMCAP_H_ */ libnbcompat-20180822/nbcompat/limits.h0000644000175000017500000000455713355271171020001 0ustar jgoerzenjgoerzen/* $NetBSD: limits.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_LIMITS_H_ #define _NBCOMPAT_LIMITS_H_ #if HAVE_LIMITS_H # include #endif /* * Declare functions and macros that may be missing in . */ #ifndef UINT_MAX # define UINT_MAX 4294967295U #endif #if !defined(LLONG_MAX) # if defined(LONG_LONG_MAX) # define LLONG_MAX LONG_LONG_MAX # else # define LLONG_MAX (0x7fffffffffffffffLL) # endif #endif #if !defined(LLONG_MIN) # if defined(LONG_LONG_MIN) # define LLONG_MIN LONG_LONG_MIN # else # define LLONG_MIN (-0x7fffffffffffffffLL-1) # endif #endif #if !defined(ULLONG_MAX) # define ULLONG_MAX (0xffffffffffffffffULL) /* max unsigned long long */ #endif #ifndef GID_MAX # define GID_MAX 2147483647U /* max value for a gid_t (2^31-2) */ #endif #ifndef UID_MAX # define UID_MAX 2147483647U /* max value for a uid_t (2^31-2) */ #endif #endif /* !_NBCOMPAT_LIMITS_H_ */ libnbcompat-20180822/nbcompat/pwd.h0000644000175000017500000000373013355271171017262 0ustar jgoerzenjgoerzen/* $NetBSD: pwd.h,v 1.4 2013/02/10 12:38:52 obache Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_PWD_H_ #define _NBCOMPAT_PWD_H_ #if HAVE_PWD_H # include #endif /* * Declare functions that may be missing in . */ #if !HAVE_SETPASSENT || !HAVE_DECL_SETPASSENT int setpassent(int); #endif #if !HAVE_USER_FROM_UID const char *user_from_uid(uid_t, int); #endif #if !HAVE_UID_FROM_USER int uid_from_user(const char *, uid_t *); #endif #if !HAVE_DECL_ENDPWENT void endpwent(void); #endif #endif /* !_NBCOMPAT_PWD_H_ */ libnbcompat-20180822/nbcompat/glob.h0000644000175000017500000000755513355271171017424 0ustar jgoerzenjgoerzen/* $Id: glob.h,v 1.3 2004/08/16 17:24:57 jlam Exp $ */ /* from NetBSD: glob.h,v 1.13 2001/03/16 21:02:42 christos Exp */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Guido van Rossum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)glob.h 8.1 (Berkeley) 6/2/93 */ #ifndef _NBCOMPAT_GLOB_H_ #define _NBCOMPAT_GLOB_H_ typedef struct { int gl_pathc; /* Count of total paths so far. */ int gl_matchc; /* Count of paths matching pattern. */ int gl_offs; /* Reserved at beginning of gl_pathv. */ int gl_flags; /* Copy of flags parameter to glob. */ char **gl_pathv; /* List of paths matching pattern. */ /* Copy of errfunc parameter to glob. */ int (*gl_errfunc)(const char *, int); /* * Alternate filesystem access methods for glob; replacement * versions of closedir(3), readdir(3), opendir(3), stat(2) * and lstat(2). */ void (*gl_closedir)(void *); struct dirent *(*gl_readdir)(void *); void *(*gl_opendir)(const char *); int (*gl_lstat)(const char *, struct stat *); int (*gl_stat)(const char *, struct stat *); } glob_t; #define GLOB_APPEND 0x0001 /* Append to output from previous call. */ #define GLOB_DOOFFS 0x0002 /* Use gl_offs. */ #define GLOB_ERR 0x0004 /* Return on error. */ #define GLOB_MARK 0x0008 /* Append / to matching directories. */ #define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ #define GLOB_NOSORT 0x0020 /* Don't sort. */ #define GLOB_NOESCAPE 0x1000 /* Disable backslash escaping. */ #define GLOB_NOSPACE (-1) /* Malloc call failed. */ #define GLOB_ABORTED (-2) /* Unignored error. */ #define GLOB_NOMATCH (-3) /* No match, and GLOB_NOCHECK was not set. */ #define GLOB_NOSYS (-4) /* Implementation does not support function. */ #define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ #define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ #define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */ #define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ #define GLOB_LIMIT 0x0400 /* Limit memory used by matches to ARG_MAX */ #define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ #define GLOB_QUOTE 0 /* source compatibility */ #define GLOB_ABEND GLOB_ABORTED /* source compatibility */ int glob(const char *, int, int (*)(const char *, int), glob_t *); void globfree(glob_t *); #endif /* !_NBCOMPAT_GLOB_H_ */ libnbcompat-20180822/nbcompat/err.h0000644000175000017500000000457213355271171017265 0ustar jgoerzenjgoerzen/* $NetBSD: err.h,v 1.4 2004/08/23 03:32:13 jlam Exp $ */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)fts.h 8.3 (Berkeley) 8/14/94 */ #ifndef _NBCOMPAT_ERR_H_ #define _NBCOMPAT_ERR_H_ #if HAVE_ERR_H # include #endif #if !HAVE_ERR void err __P((int, const char *, ...)); void errx __P((int, const char *, ...)); void verr __P((int, const char *, va_list)); void verrx __P((int, const char *, va_list)); #endif #if !HAVE_WARN void warn __P((const char *, ...)); void warnx __P((const char *, ...)); void vwarn __P((const char *, va_list)); void vwarnx __P((const char *, va_list)); #endif #endif /* !_NBCOMPAT_ERR_H_ */ libnbcompat-20180822/nbcompat/unistd.h0000644000175000017500000000451213355271171017775 0ustar jgoerzenjgoerzen/* $NetBSD: unistd.h,v 1.4 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_UNISTD_H_ #define _NBCOMPAT_UNISTD_H_ #if HAVE_UNISTD_H # include #endif /* * Declare functions and macros that may be missing in . */ #if !HAVE_DECL_OPTARG extern char *optarg; #endif #if !HAVE_DECL_OPTIND extern int optind; #endif #if !HAVE_DECL_OPTRESET extern int optreset; #endif #if !HAVE_GETPASS_D char *getpass(const char *); #endif /* * If getpassphrase() exists, then use it in place of getpass(). */ #if HAVE_GETPASSPHRASE # ifndef getpass # define getpass getpassphrase # endif #endif #if !HAVE_LCHOWN int lchown(const char *, uid_t, gid_t); #endif #if !HAVE_GETMODE mode_t getmode(const void *, mode_t); #endif #if !HAVE_SETMODE void *setmode(const char *); #endif #if !HAVE_STRMODE void strmode(mode_t, char *); #endif #endif /* !_NBCOMPAT_UNISTD_H_ */ libnbcompat-20180822/nbcompat/string.h0000644000175000017500000000405213355271171017774 0ustar jgoerzenjgoerzen/* $NetBSD: string.h,v 1.3 2015/06/08 00:44:46 joerg Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STRING_H_ #define _NBCOMPAT_STRING_H_ #if HAVE_STRING_H # include #endif /* * Declare functions and macros that may be missing in . */ #if !HAVE_DECL_STRDUP char *strdup(const char *); #endif #if !HAVE_STRERROR char *strerror(int); #endif #if !HAVE_STRLCAT size_t strlcat(char *, const char *, size_t); #endif #if !HAVE_STRLCPY size_t strlcpy(char *, const char *, size_t); #endif #if !HAVE_STRSEP char *strsep(char **stringp, const char *delim); #endif #endif /* !_NBCOMPAT_STRING_H_ */ libnbcompat-20180822/nbcompat/config.h.in0000644000175000017500000004514113355271171020344 0ustar jgoerzenjgoerzen/* nbcompat/config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Define to 1 if the `pread' function is broken. */ #undef BROKEN_PREAD /* Define to 1 if the `pwrite' function is broken. */ #undef BROKEN_PWRITE /* Define to 1 if the `getpgrp' function requires zero arguments. */ #undef GETPGRP_VOID /* Define to 1 if you have the header file. */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the header file. */ #undef HAVE_BSD_LIBUTIL_H /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the declaration of `asprintf(char **, const char *, ...)', and to 0 if you don't. */ #undef HAVE_DECL_ASPRINTF /* Define to 1 if you have the declaration of `endgrent', and to 0 if you don't. */ #undef HAVE_DECL_ENDGRENT /* Define to 1 if you have the declaration of `endpwent', and to 0 if you don't. */ #undef HAVE_DECL_ENDPWENT /* Define to 1 if you have the declaration of `isblank(int)', and to 0 if you don't. */ #undef HAVE_DECL_ISBLANK /* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. */ #undef HAVE_DECL_OPTARG /* Define to 1 if you have the declaration of `optind', and to 0 if you don't. */ #undef HAVE_DECL_OPTIND /* Define to 1 if you have the declaration of `optreset', and to 0 if you don't. */ #undef HAVE_DECL_OPTRESET /* Define to 1 if you have the declaration of `setpassent', and to 0 if you don't. */ #undef HAVE_DECL_SETPASSENT /* Define to 1 if you have the declaration of `snprintf(char *, size_t, const char *, ...)', and to 0 if you don't. */ #undef HAVE_DECL_SNPRINTF /* Define to 1 if you have the declaration of `strdup(const char *)', and to 0 if you don't. */ #undef HAVE_DECL_STRDUP /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define if dirfd is either a function or a macro. */ #undef HAVE_DIRFD /* Define to 1 if `dd_fd' is a member of `DIR'. */ #undef HAVE_DIR_DD_FD /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H /* Define to 1 if you have the `err' function. */ #undef HAVE_ERR /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_ERR_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fgetln' function. */ #undef HAVE_FGETLN /* Define to 1 if you have the `fnmatch' function. */ #undef HAVE_FNMATCH /* Define to 1 if you have the header file. */ #undef HAVE_FNMATCH_H /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK /* Define to 1 if you have the `fparseln' function. */ #undef HAVE_FPARSELN /* Define to 1 if the system has the type `fsid_t'. */ #undef HAVE_FSID_T /* Define to 1 if you have the header file. */ #undef HAVE_FTS_H /* Define to 1 if you have the `gai_strerror' function. */ #undef HAVE_GAI_STRERROR /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO /* Define to 1 if you have the `getdelim' function. */ #undef HAVE_GETDELIM /* Define to 1 if you have the `getenv' function. */ #undef HAVE_GETENV /* Define to 1 if you have the `getline' function. */ #undef HAVE_GETLINE /* Define to 1 if you have the `getmode' function. */ #undef HAVE_GETMODE /* Define to 1 if you have the `getnameinfo' function. */ #undef HAVE_GETNAMEINFO /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getpassphrase' function. */ #undef HAVE_GETPASSPHRASE /* Define to 1 if you have the `getpgrp' function. */ #undef HAVE_GETPGRP /* Define to 1 if you have the `gid_from_group' function. */ #undef HAVE_GID_FROM_GROUP /* Define to 1 if you have the header file. */ #undef HAVE_GLOB_H /* Define to 1 if you have the `group_from_gid' function. */ #undef HAVE_GROUP_FROM_GID /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `issetugid' function. */ #undef HAVE_ISSETUGID /* Define to 1 if you have the `lchflags' function. */ #undef HAVE_LCHFLAGS /* Define to 1 if you have the `lchmod' function. */ #undef HAVE_LCHMOD /* Define to 1 if you have the `lchown' function. */ #undef HAVE_LCHOWN /* Define to 1 if you have the `nsl' library (-lnsl). */ #undef HAVE_LIBNSL /* Define to 1 if you have the `util' library (-lutil). */ #undef HAVE_LIBUTIL /* Define to 1 if you have the header file. */ #undef HAVE_LIBUTIL_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if the system has the type `long double'. */ #undef HAVE_LONG_DOUBLE /* Define to 1 if the system has the type `long long'. */ #undef HAVE_LONG_LONG /* Define to 1 if you have the `lutimes' function. */ #undef HAVE_LUTIMES /* Define to 1 if you have the header file. */ #undef HAVE_MACHINE_ENDIAN_H /* Define to 1 if you have the header file. */ #undef HAVE_MD5_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mkdtemp' function. */ #undef HAVE_MKDTEMP /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP /* Define to 1 if the `fts_*' functions are built into the library. */ #undef HAVE_NBCOMPAT_FTS /* Define to 1 if the `glob' function is built into the library. */ #undef HAVE_NBCOMPAT_GLOB /* Define to 1 if the `MD5*' functions are built into the library. */ #undef HAVE_NBCOMPAT_MD5 /* Define to 1 if the `MD5Init' function is built into the library. */ #undef HAVE_NBCOMPAT_MD5INIT /* Define to 1 if the `poll' function is built into the library. */ #undef HAVE_NBCOMPAT_POLL /* Define to 1 if the `queue' macros are supplied by the library. */ #undef HAVE_NBCOMPAT_QUEUE /* Define to 1 if the `regex' functions are built into the library. */ #undef HAVE_NBCOMPAT_REGEX /* Define to 1 if the `RMD160*' functions are built into the library. */ #undef HAVE_NBCOMPAT_RMD160 /* Define to 1 if the `SHA1*' functions are built into the library. */ #undef HAVE_NBCOMPAT_SHA1 /* Define to 1 if the `SHA2*' functions are built into the library. */ #undef HAVE_NBCOMPAT_SHA2 /* Define to 1 if the `vis' function is built into the library. */ #undef HAVE_NBCOMPAT_VIS /* Define to 1 if you have the header file. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_PATHS_H /* Define to 1 if you have the header file. */ #undef HAVE_POLL_H /* Define to 1 if *printf() uses %qd to print `long long' (otherwise uses %lld). */ #undef HAVE_PRINTF_QD /* Define to 1 if you have the `pwcache_groupdb' function. */ #undef HAVE_PWCACHE_GROUPDB /* Define to 1 if you have the `pwcache_userdb' function. */ #undef HAVE_PWCACHE_USERDB /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* Define to 1 if you have the header file. */ #undef HAVE_RMD160_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setgroupent' function. */ #undef HAVE_SETGROUPENT /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `setmode' function. */ #undef HAVE_SETMODE /* Define to 1 if you have the `setpassent' function. */ #undef HAVE_SETPASSENT /* Define to 1 if you have the `setprogname' function. */ #undef HAVE_SETPROGNAME /* Define to 1 if you have the header file. */ #undef HAVE_SHA1_H /* Define to 1 if you have the header file. */ #undef HAVE_SHA2_H /* Define to 1 if you have the `shquote' function. */ #undef HAVE_SHQUOTE /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Define to 1 if the system has the type `socklen_t'. */ #undef HAVE_SOCKLEN_T /* Define to 1 if you have the `statvfs' function. */ #undef HAVE_STATVFS /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strlcat' function. */ #undef HAVE_STRLCAT /* Define to 1 if you have the `strlcpy' function. */ #undef HAVE_STRLCPY /* Define to 1 if you have the `strmode' function. */ #undef HAVE_STRMODE /* Define to 1 if you have the `strsep' function. */ #undef HAVE_STRSEP /* Define to 1 if you have the `strsvis' function. */ #undef HAVE_STRSVIS /* Define to 1 if you have the `strtoll' function. */ #undef HAVE_STRTOLL /* Define to 1 if the system has the type `struct addrinfo'. */ #undef HAVE_STRUCT_ADDRINFO /* Define to 1 if `d_namlen' is a member of `struct dirent'. */ #undef HAVE_STRUCT_DIRENT_D_NAMLEN /* Define to 1 if the system has the type `struct in6_addr'. */ #undef HAVE_STRUCT_IN6_ADDR /* Define to 1 if the system has the type `struct option'. */ #undef HAVE_STRUCT_OPTION /* Define to 1 if the system has the type `struct sockaddr_in6'. */ #undef HAVE_STRUCT_SOCKADDR_IN6 /* Define to 1 if the system has the type `struct sockaddr_storage'. */ #undef HAVE_STRUCT_SOCKADDR_STORAGE /* Define to 1 if `f_flags' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FLAGS /* Define to 1 if `f_fsize' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSIZE /* Define to 1 if `f_iosize' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_IOSIZE /* Define to 1 if you have the `strunvis' function. */ #undef HAVE_STRUNVIS /* Define to 1 if you have the `strvis' function. */ #undef HAVE_STRVIS /* Define to 1 if you have the `svis' function. */ #undef HAVE_SVIS /* Define to 1 if you have the header file. */ #undef HAVE_SYSEXITS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BYTEORDER_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CDEFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_ENDIAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MKDEV_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MOUNT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_POLL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_QUEUE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATVFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TTYCOM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UIO_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMCAP_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_TZFILE_H /* Define to 1 if you have the `uid_from_user' function. */ #undef HAVE_UID_FROM_USER /* Define to 1 if the system has the type `uintptr_t'. */ #undef HAVE_UINTPTR_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `unsetenv' function. */ #undef HAVE_UNSETENV /* Define to 1 if you have the `unvis' function. */ #undef HAVE_UNVIS /* Define to 1 if you have the `user_from_uid' function. */ #undef HAVE_USER_FROM_UID /* Define to 1 if you have the `usleep' function. */ #undef HAVE_USLEEP /* Define to 1 if you have the header file. */ #undef HAVE_UTIL_H /* Define to 1 if you have the `utimes' function. */ #undef HAVE_UTIMES /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H /* Define to 1 if the `va_copy' function is supported. */ #undef HAVE_VA_COPY /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Define to 1 if you have the header file. */ #undef HAVE_VFORK_H /* Define to 1 if you have the `vis' function. */ #undef HAVE_VIS /* Define to 1 if you have the header file. */ #undef HAVE_VIS_H /* Define to 1 if you have the `warn' function. */ #undef HAVE_WARN /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK /* Define to 1 if `long long' is supported and sizeof(off_t) >= 8. */ #undef HAVE_WORKING_LONG_LONG /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* define if your compiler has __attribute__ */ #undef HAVE___ATTRIBUTE__ /* Define to 1 if the `__builtin_va_copy' function is supported. */ #undef HAVE___BUILTIN_VA_COPY /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT32_T /* Define for Solaris 2.5.1 so the uint64_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT64_T /* Define for Solaris 2.5.1 so the uint8_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT8_T /* Define to the type of a signed integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef int16_t /* Define to the type of a signed integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef int32_t /* Define to the type of a signed integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef int64_t /* Define to the type of a signed integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef int8_t /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef uint16_t /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef uint32_t /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t /* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef uint8_t /* Define to the type of an unsigned integer type wide enough to hold a pointer, if such a type exists, and if the system does not define it. */ #undef uintptr_t /* Define as `fork' if `vfork' does not work. */ #undef vfork /* NBCOMPAT template section follows. */ #ifndef HAVE___ATTRIBUTE__ # define __attribute__(x) #endif libnbcompat-20180822/nbcompat/paths.h0000644000175000017500000000376213355271171017614 0ustar jgoerzenjgoerzen/* $NetBSD: paths.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_PATHS_H_ #define _NBCOMPAT_PATHS_H_ #if HAVE_PATHS_H # include #endif /* * Declare functions and macros that may be missing in . */ #ifndef _PATH_BSHELL #define _PATH_BSHELL "/bin/sh" #endif #ifndef _PATH_TMP #define _PATH_TMP "/tmp/" #endif #ifndef _PATH_DEFTAPE # ifdef DEFTAPE # define _PATH_DEFTAPE DEFTAPE # else # define _PATH_DEFTAPE "/dev/tape" # endif /* DEFTAPE */ #endif /* _PATH_DEFTAPE */ #endif /* !_NBCOMPAT_PATHS_H_ */ libnbcompat-20180822/nbcompat/stat.h0000644000175000017500000000415713355271171017447 0ustar jgoerzenjgoerzen/* $NetBSD: stat.h,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ #ifndef _NBCOMPAT_STAT_H_ #define _NBCOMPAT_STAT_H_ #if HAVE_SYS_STAT_H # include #endif /* * Declare functions and macros that may be missing in . */ #if !HAVE_LCHMOD int lchmod(const char *, mode_t); #endif #if !defined(S_ISLNK) # define S_ISLNK(m) ((m & S_IFMT) == S_IFLNK) #endif #if !defined(S_ISTXT) # define S_ISTXT S_ISVTX #endif #if !defined(ALLPERMS) # define ALLPERMS (S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO) #endif #if !defined(DEFFILEMODE) # define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) #endif #endif /* !_NBCOMPAT_STAT_H_ */ libnbcompat-20180822/nbcompat/ndbm.h0000644000175000017500000000517213355271171017412 0ustar jgoerzenjgoerzen/* $NetBSD: ndbm.h,v 1.2 2008/10/29 16:39:03 joerg Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Margo Seltzer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)ndbm.h 8.1 (Berkeley) 6/2/93 */ #ifndef _NBCOMPAT_NDBM_H_ #define _NBCOMPAT_NDBM_H_ #include #include /* Map dbm interface onto db(3). */ #define DBM_RDONLY O_RDONLY /* Flags to dbm_store(). */ #define DBM_INSERT 0 #define DBM_REPLACE 1 /* * The db(3) support for ndbm(3) always appends this suffix to the * file name to avoid overwriting the user's original database. */ #define DBM_SUFFIX ".db" typedef struct { void *dptr; size_t dsize; /* XPG4.2 */ } datum; typedef DB DBM; #define dbm_pagfno(a) DBM_PAGFNO_NOT_AVAILABLE __BEGIN_DECLS void dbm_close(DBM *); DBM *dbm_open(const char *, int, mode_t); int dbm_error(DBM *); int dbm_clearerr(DBM *); int dbm_dirfno(DBM *); int dbm_delete(DBM *, datum); datum dbm_fetch(DBM *, datum); datum dbm_firstkey(DBM *); datum dbm_nextkey(DBM *); int dbm_store(DBM *, datum, datum, int); __END_DECLS #endif /* !_NDBM_H_ */ libnbcompat-20180822/nbcompat/queue.h0000644000175000017500000003307313355271171017617 0ustar jgoerzenjgoerzen/* $NetBSD: queue.h,v 1.9 2015/12/13 21:56:27 joerg Exp $ */ /* * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)queue.h 8.5 (Berkeley) 8/20/94 */ #ifndef _NBCOMPAT_QUEUE_H #define _NBCOMPAT_QUEUE_H #if HAVE_SYS_QUEUE_H # include #endif /* * Provide any macros missing from . */ #ifndef LIST_HEAD #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #endif #ifndef LIST_HEAD_INITIALIZER #define LIST_HEAD_INITIALIZER(head) \ { NULL } #endif #ifndef LIST_ENTRY #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } #endif #ifndef LIST_INIT #define LIST_INIT(head) do { \ (head)->lh_first = NULL; \ } while (/*CONSTCOND*/0) #endif #ifndef LIST_INSERT_AFTER #define LIST_INSERT_AFTER(listelm, elm, field) do { \ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ (listelm)->field.le_next->field.le_prev = \ &(elm)->field.le_next; \ (listelm)->field.le_next = (elm); \ (elm)->field.le_prev = &(listelm)->field.le_next; \ } while (/*CONSTCOND*/0) #endif #ifndef LIST_INSERT_BEFORE #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ QUEUEDEBUG_LIST_OP((listelm), field) \ (elm)->field.le_prev = (listelm)->field.le_prev; \ (elm)->field.le_next = (listelm); \ *(listelm)->field.le_prev = (elm); \ (listelm)->field.le_prev = &(elm)->field.le_next; \ } while (/*CONSTCOND*/0) #endif #ifndef LIST_INSERT_HEAD #define LIST_INSERT_HEAD(head, elm, field) do { \ if (((elm)->field.le_next = (head)->lh_first) != NULL) \ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ (head)->lh_first = (elm); \ (elm)->field.le_prev = &(head)->lh_first; \ } while (/*CONSTCOND*/0) #endif #ifndef LIST_REMOVE #define LIST_REMOVE(elm, field) do { \ if ((elm)->field.le_next != NULL) \ (elm)->field.le_next->field.le_prev = \ (elm)->field.le_prev; \ *(elm)->field.le_prev = (elm)->field.le_next; \ } while (/*CONSTCOND*/0) #endif #ifndef LIST_FOREACH #define LIST_FOREACH(var, head, field) \ for ((var) = ((head)->lh_first); \ (var); \ (var) = ((var)->field.le_next)) #endif #ifndef LIST_EMPTY #define LIST_EMPTY(head) ((head)->lh_first == NULL) #endif #ifndef LIST_FIRST #define LIST_FIRST(head) ((head)->lh_first) #endif #ifndef LIST_NEXT #define LIST_NEXT(elm, field) ((elm)->field.le_next) #endif #ifndef SLIST_HEAD #define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ } #endif #ifndef SLIST_HEAD_INITIALIZER #define SLIST_HEAD_INITIALIZER(head) \ { NULL } #endif #ifndef SLIST_ENTRY #define SLIST_ENTRY(type) \ struct { \ struct type *sle_next; /* next element */ \ } #endif #ifndef SLIST_INIT #define SLIST_INIT(head) do { \ (head)->slh_first = NULL; \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_INSERT_AFTER #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ (elm)->field.sle_next = (slistelm)->field.sle_next; \ (slistelm)->field.sle_next = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_INSERT_HEAD #define SLIST_INSERT_HEAD(head, elm, field) do { \ (elm)->field.sle_next = (head)->slh_first; \ (head)->slh_first = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_REMOVE_HEAD #define SLIST_REMOVE_HEAD(head, field) do { \ (head)->slh_first = (head)->slh_first->field.sle_next; \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_REMOVE #define SLIST_REMOVE(head, elm, type, field) do { \ if ((head)->slh_first == (elm)) { \ SLIST_REMOVE_HEAD((head), field); \ } \ else { \ struct type *curelm = (head)->slh_first; \ while(curelm->field.sle_next != (elm)) \ curelm = curelm->field.sle_next; \ curelm->field.sle_next = \ curelm->field.sle_next->field.sle_next; \ } \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_REMOVE_AFTER #define SLIST_REMOVE_AFTER(slistelm, field) do { \ (slistelm)->field.sle_next = \ SLIST_NEXT(SLIST_NEXT((slistelm), field), field); \ } while (/*CONSTCOND*/0) #endif #ifndef SLIST_FOREACH #define SLIST_FOREACH(var, head, field) \ for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) #endif #ifndef SLIST_EMPTY #define SLIST_EMPTY(head) ((head)->slh_first == NULL) #endif #ifndef SLIST_FIRST #define SLIST_FIRST(head) ((head)->slh_first) #endif #ifndef SLIST_NEXT #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) #endif #ifndef TAILQ_HEAD #define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ struct type **tqh_last; /* addr of last next element */ \ } #endif #ifndef TAILQ_HEAD_INITIALIZER #define TAILQ_HEAD_INITIALIZER(head) \ { NULL, &(head).tqh_first } #endif #ifndef TAILQ_ENTRY #define TAILQ_ENTRY(type) \ struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* address of previous next element */ \ } #endif #ifndef TAILQ_INIT #define TAILQ_INIT(head) do { \ (head)->tqh_first = NULL; \ (head)->tqh_last = &(head)->tqh_first; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_INSERT_HEAD #define TAILQ_INSERT_HEAD(head, elm, field) do { \ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ (head)->tqh_first->field.tqe_prev = \ &(elm)->field.tqe_next; \ else \ (head)->tqh_last = &(elm)->field.tqe_next; \ (head)->tqh_first = (elm); \ (elm)->field.tqe_prev = &(head)->tqh_first; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_INSERT_TAIL #define TAILQ_INSERT_TAIL(head, elm, field) do { \ (elm)->field.tqe_next = NULL; \ (elm)->field.tqe_prev = (head)->tqh_last; \ *(head)->tqh_last = (elm); \ (head)->tqh_last = &(elm)->field.tqe_next; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_INSERT_AFTER #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ (elm)->field.tqe_next->field.tqe_prev = \ &(elm)->field.tqe_next; \ else \ (head)->tqh_last = &(elm)->field.tqe_next; \ (listelm)->field.tqe_next = (elm); \ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_INSERT_BEFORE #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ (elm)->field.tqe_next = (listelm); \ *(listelm)->field.tqe_prev = (elm); \ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_REMOVE #define TAILQ_REMOVE(head, elm, field) do { \ if (((elm)->field.tqe_next) != NULL) \ (elm)->field.tqe_next->field.tqe_prev = \ (elm)->field.tqe_prev; \ else \ (head)->tqh_last = (elm)->field.tqe_prev; \ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ } while (/*CONSTCOND*/0) #endif #ifndef TAILQ_FOREACH #define TAILQ_FOREACH(var, head, field) \ for ((var) = ((head)->tqh_first); \ (var); \ (var) = ((var)->field.tqe_next)) #endif #ifndef TAILQ_FOREACH_SAFE #define TAILQ_FOREACH_SAFE(var, head, field, next) \ for ((var) = ((head)->tqh_first); \ (var) != NULL && ((next) = TAILQ_NEXT(var, field), 1); \ (var) = (next)) #endif #undef TAILQ_FOREACH_REVERSE #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ (var); \ (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) #ifndef TAILQ_EMPTY #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) #endif #ifndef TAILQ_FIRST #define TAILQ_FIRST(head) ((head)->tqh_first) #endif #ifndef TAILQ_NEXT #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) #endif #ifndef TAILQ_LAST #define TAILQ_LAST(head, headname) \ (*(((struct headname *)((head)->tqh_last))->tqh_last)) #endif #ifndef CIRCLEQ_HEAD #define CIRCLEQ_HEAD(name, type) \ struct name { \ struct type *cqh_first; /* first element */ \ struct type *cqh_last; /* last element */ \ } #endif #ifndef CIRCLEQ_HEAD_INITIALIZER #define CIRCLEQ_HEAD_INITIALIZER(head) \ { (void *)&head, (void *)&head } #endif #ifndef CIRCLEQ_ENTRY #define CIRCLEQ_ENTRY(type) \ struct { \ struct type *cqe_next; /* next element */ \ struct type *cqe_prev; /* previous element */ \ } #endif /* * Circular queue functions. */ #ifndef CIRCLEQ_INIT #define CIRCLEQ_INIT(head) do { \ (head)->cqh_first = (void *)(head); \ (head)->cqh_last = (void *)(head); \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_INSERT_AFTER #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ (elm)->field.cqe_next = (listelm)->field.cqe_next; \ (elm)->field.cqe_prev = (listelm); \ if ((listelm)->field.cqe_next == (void *)(head)) \ (head)->cqh_last = (elm); \ else \ (listelm)->field.cqe_next->field.cqe_prev = (elm); \ (listelm)->field.cqe_next = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_INSERT_BEFORE #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ (elm)->field.cqe_next = (listelm); \ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ if ((listelm)->field.cqe_prev == (void *)(head)) \ (head)->cqh_first = (elm); \ else \ (listelm)->field.cqe_prev->field.cqe_next = (elm); \ (listelm)->field.cqe_prev = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_INSERT_HEAD #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ (elm)->field.cqe_next = (head)->cqh_first; \ (elm)->field.cqe_prev = (void *)(head); \ if ((head)->cqh_last == (void *)(head)) \ (head)->cqh_last = (elm); \ else \ (head)->cqh_first->field.cqe_prev = (elm); \ (head)->cqh_first = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_INSERT_TAIL #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ (elm)->field.cqe_next = (void *)(head); \ (elm)->field.cqe_prev = (head)->cqh_last; \ if ((head)->cqh_first == (void *)(head)) \ (head)->cqh_first = (elm); \ else \ (head)->cqh_last->field.cqe_next = (elm); \ (head)->cqh_last = (elm); \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_REMOVE #define CIRCLEQ_REMOVE(head, elm, field) do { \ if ((elm)->field.cqe_next == (void *)(head)) \ (head)->cqh_last = (elm)->field.cqe_prev; \ else \ (elm)->field.cqe_next->field.cqe_prev = \ (elm)->field.cqe_prev; \ if ((elm)->field.cqe_prev == (void *)(head)) \ (head)->cqh_first = (elm)->field.cqe_next; \ else \ (elm)->field.cqe_prev->field.cqe_next = \ (elm)->field.cqe_next; \ } while (/*CONSTCOND*/0) #endif #ifndef CIRCLEQ_FOREACH #define CIRCLEQ_FOREACH(var, head, field) \ for ((var) = ((head)->cqh_first); \ (var) != (const void *)(head); \ (var) = ((var)->field.cqe_next)) #endif #ifndef CIRCLEQ_FOREACH_REVERSE #define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ for ((var) = ((head)->cqh_last); \ (var) != (const void *)(head); \ (var) = ((var)->field.cqe_prev)) #endif #ifndef CIRCLEQ_EMPTY #define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) #endif #ifndef CIRCLEQ_FIRST #define CIRCLEQ_FIRST(head) ((head)->cqh_first) #endif #ifndef CIRCLEQ_LAST #define CIRCLEQ_LAST(head) ((head)->cqh_last) #endif #ifndef CIRCLEQ_NEXT #define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) #endif #ifndef CIRCLEQ_PREV #define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) #endif #ifndef CIRCLEQ_LOOP_NEXT #define CIRCLEQ_LOOP_NEXT(head, elm, field) \ (((elm)->field.cqe_next == (void *)(head)) \ ? ((head)->cqh_first) \ : (elm->field.cqe_next)) #endif #ifndef CIRCLEQ_LOOP_PREV #define CIRCLEQ_LOOP_PREV(head, elm, field) \ (((elm)->field.cqe_prev == (void *)(head)) \ ? ((head)->cqh_last) \ : (elm->field.cqe_prev)) #endif #endif /* !_NBCOMPAT_QUEUE_H */ libnbcompat-20180822/configure0000755000175000017500000072703113355271171016432 0ustar jgoerzenjgoerzen#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for libnbcompat 20150419. # # 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 joerg@NetBSD.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: 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='libnbcompat' PACKAGE_TARNAME='libnbcompat' PACKAGE_VERSION='20150419' PACKAGE_STRING='libnbcompat 20150419' PACKAGE_BUGREPORT='joerg@NetBSD.org' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS WITH_DB LIBOBJS AUTOHEADER AUTOCONF AR AWK RANLIB LN_S INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM SET_MAKE INCLUDES CANONICAL_HOST EGREP GREP CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build 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_db enable_bsd_getopt ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures libnbcompat 20150419 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/libnbcompat] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of libnbcompat 20150419:";; 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-db include DB implementation --enable-bsd-getopt force use of BSDish getopt implementation 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 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 libnbcompat configure 20150419 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_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------- ## ## Report this to joerg@NetBSD.org ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_find_intX_t LINENO BITS VAR # ----------------------------------- # Finds a signed integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_intX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in int$2_t 'int' 'long int' \ 'long long int' 'short int' 'signed char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else case $ac_type in #( int$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_intX_t # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" 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 eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member 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 libnbcompat $as_me 20150419, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers nbcompat/config.h" test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac 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 # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h CANONICAL_HOST=$host # Checks for programs. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi 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 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi AUTOCONF=${AUTOCONF-"$srcdir/missing --run autoconf"} AUTOHEADER=${AUTOHEADER-"$srcdir/missing --run autoheader"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fparseln in -lutil" >&5 $as_echo_n "checking for fparseln in -lutil... " >&6; } if ${ac_cv_lib_util_fparseln+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char fparseln (); int main () { return fparseln (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_util_fparseln=yes else ac_cv_lib_util_fparseln=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_fparseln" >&5 $as_echo "$ac_cv_lib_util_fparseln" >&6; } if test "x$ac_cv_lib_util_fparseln" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBUTIL 1 _ACEOF LIBS="-lutil $LIBS" fi { $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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi for ac_header in alloca.h assert.h bsd/libutil.h ctype.h dirent.h endian.h \ err.h errno.h fcntl.h fnmatch.h fts.h grp.h inttypes.h libutil.h \ limits.h machine/endian.h ndir.h netdb.h paths.h pwd.h signal.h \ stdarg.h stddef.h stdint.h stdio.h \ stdlib.h string.h sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h \ sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/socket.h sys/stat.h \ sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ sys/uio.h sys/vfs.h sysexits.h termcap.h time.h tzfile.h unistd.h \ util.h utime.h sys/mman.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/mount.h do : ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" " $ac_includes_default #ifdef HAVE_SYS_PARAM_H #include #endif " if test "x$ac_cv_header_sys_mount_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_MOUNT_H 1 _ACEOF : else : fi done for ac_header in glob.h do : ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" if test "x$ac_cv_header_glob_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GLOB_H 1 _ACEOF fi done $as_echo "#define HAVE_NBCOMPAT_GLOB 1" >>confdefs.h case " $LIBOBJS " in *" glob.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS glob.$ac_objext" ;; esac for ac_header in sys/queue.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/queue.h" "ac_cv_header_sys_queue_h" "$ac_includes_default" if test "x$ac_cv_header_sys_queue_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_QUEUE_H 1 _ACEOF fi done $as_echo "#define HAVE_NBCOMPAT_QUEUE 1" >>confdefs.h for ac_header in regex.h do : ac_fn_c_check_header_mongrel "$LINENO" "regex.h" "ac_cv_header_regex_h" "$ac_includes_default" if test "x$ac_cv_header_regex_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_REGEX_H 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "regexec" "ac_cv_func_regexec" if test "x$ac_cv_func_regexec" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_REGEX 1" >>confdefs.h case " $LIBOBJS " in *" regcomp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS regcomp.$ac_objext" ;; esac case " $LIBOBJS " in *" regerror.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS regerror.$ac_objext" ;; esac case " $LIBOBJS " in *" regexec.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS regexec.$ac_objext" ;; esac case " $LIBOBJS " in *" regfree.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS regfree.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 $as_echo_n "checking for va_copy... " >&6; } if ${pkg_cv_have_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { va_list ap, ap2; va_copy(ap2, ap); return 0; ; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : pkg_cv_have_va_copy=yes else pkg_cv_have_va_copy=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: $pkg_cv_have_va_copy" >&5 $as_echo "$pkg_cv_have_va_copy" >&6; } if test "x$pkg_cv_have_va_copy" = "xyes"; then $as_echo "#define HAVE_VA_COPY 1" >>confdefs.h else : ] : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_va_copy" >&5 $as_echo_n "checking for __builtin_va_copy... " >&6; } if ${pkg_cv_have___builtin_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { va_list ap, ap2; __builtin_va_copy(ap2, ap); return 0; ; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : pkg_cv_have___builtin_va_copy=yes else pkg_cv_have___builtin_va_copy=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: $pkg_cv_have___builtin_va_copy" >&5 $as_echo "$pkg_cv_have___builtin_va_copy" >&6; } if test "x$pkg_cv_have___builtin_va_copy" = "xyes"; then $as_echo "#define HAVE___BUILTIN_VA_COPY 1" >>confdefs.h else : ] : fi for ac_header in md5.h do : ac_fn_c_check_header_mongrel "$LINENO" "md5.h" "ac_cv_header_md5_h" "$ac_includes_default" if test "x$ac_cv_header_md5_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MD5_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5Init in md5.h" >&5 $as_echo_n "checking for MD5Init in md5.h... " >&6; } if ${pkg_cv_have_md5init+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { MD5_CTX *f; MD5Init(f); ; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : pkg_cv_have_md5init=yes else pkg_cv_have_md5init=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkg_cv_have_md5init" >&5 $as_echo "$pkg_cv_have_md5init" >&6; } if test "x$pkg_cv_have_md5init" = "xyes"; then : else $as_echo "#define HAVE_NBCOMPAT_MD5INIT 1" >>confdefs.h : fi fi done for ac_header in md5.h rmd160.h sha1.h sha2.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "MD5File" "ac_cv_func_MD5File" if test "x$ac_cv_func_MD5File" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_MD5 1" >>confdefs.h case " $LIBOBJS " in *" md5c.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS md5c.$ac_objext" ;; esac case " $LIBOBJS " in *" md5hl.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS md5hl.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "RMD160File" "ac_cv_func_RMD160File" if test "x$ac_cv_func_RMD160File" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_RMD160 1" >>confdefs.h case " $LIBOBJS " in *" rmd160.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS rmd160.$ac_objext" ;; esac case " $LIBOBJS " in *" rmd160hl.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS rmd160hl.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "SHA1File" "ac_cv_func_SHA1File" if test "x$ac_cv_func_SHA1File" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_SHA1 1" >>confdefs.h case " $LIBOBJS " in *" sha1.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sha1.$ac_objext" ;; esac case " $LIBOBJS " in *" sha1hl.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sha1hl.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "SHA512_File" "ac_cv_func_SHA512_File" if test "x$ac_cv_func_SHA512_File" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_SHA2 1" >>confdefs.h case " $LIBOBJS " in *" sha2.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sha2.$ac_objext" ;; esac case " $LIBOBJS " in *" sha2hl.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sha2hl.$ac_objext" ;; esac fi case $host in *-*-hpux*) $as_echo "#define BROKEN_PREAD 1" >>confdefs.h $as_echo "#define BROKEN_PWRITE 1" >>confdefs.h ;; *-*-sco3.2v5*) $as_echo "#define BROKEN_PREAD 1" >>confdefs.h $as_echo "#define BROKEN_PWRITE 1" >>confdefs.h ;; esac # Check whether --enable-db was given. if test "${enable_db+set}" = set; then : enableval=$enable_db; fi WITH_DB=$enable_db for ac_func in issetugid do : ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid" if test "x$ac_cv_func_issetugid" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ISSETUGID 1 _ACEOF fi done # Check whether --enable-bsd-getopt was given. if test "${enable_bsd_getopt+set}" = set; then : enableval=$enable_bsd_getopt; fi ac_fn_c_check_decl "$LINENO" "optarg" "ac_cv_have_decl_optarg" " #include #include #include " if test "x$ac_cv_have_decl_optarg" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_OPTARG $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : : else : fi ac_fn_c_check_decl "$LINENO" "optind" "ac_cv_have_decl_optind" " #include #include #include " if test "x$ac_cv_have_decl_optind" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_OPTIND $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : : else : fi ac_fn_c_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" " #include #include #include " if test "x$ac_cv_have_decl_optreset" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_OPTRESET $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : : else : fi our_getopt_long=no for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF ac_fn_c_check_type "$LINENO" "struct option" "ac_cv_type_struct_option" "#include " if test "x$ac_cv_type_struct_option" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_OPTION 1 _ACEOF : else our_getopt_long=yes fi else our_getopt_long=yes fi done if test "$enable_bsd_getopt" = yes; then if test "$ac_cv_have_decl_optreset" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: Using included getopt and getopt_long" >&5 $as_echo "$as_me: Using included getopt and getopt_long" >&6;} case " $LIBOBJS " in *" getopt.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getopt.$ac_objext" ;; esac our_getopt_long=yes fi fi if test "$our_getopt_long" = "yes"; then case " $LIBOBJS " in *" getopt_long.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getopt_long.$ac_objext" ;; esac fi pkg_use_nbcompat_vis=yes for ac_header in vis.h do : ac_fn_c_check_header_mongrel "$LINENO" "vis.h" "ac_cv_header_vis_h" "$ac_includes_default" if test "x$ac_cv_header_vis_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VIS_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VIS_WHITE in vis.h" >&5 $as_echo_n "checking for VIS_WHITE in vis.h... " >&6; } if ${pkg_cv_have_vis_white+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int X = VIS_WHITE; ; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : pkg_cv_have_vis_white=yes else pkg_cv_have_vis_white=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkg_cv_have_vis_white" >&5 $as_echo "$pkg_cv_have_vis_white" >&6; } if test "x$pkg_cv_have_vis_white" = "xyes"; then for ac_func in strunvis strvis strsvis svis unvis vis do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in strunvis strvis strsvis svis unvis vis do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF pkg_use_nbcompat_vis=no else pkg_use_nbcompat_vis=yes; break fi done else : fi fi done if test $pkg_use_nbcompat_vis = yes; then $as_echo "#define HAVE_NBCOMPAT_VIS 1" >>confdefs.h case " $LIBOBJS " in *" vis.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS vis.$ac_objext" ;; esac case " $LIBOBJS " in *" unvis.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS unvis.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5 $as_echo_n "checking for __attribute__... " >&6; } if ${ac_cv___attribute__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include static void foo(void) __attribute__ ((noreturn)); static void foo(void) { exit(1); } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv___attribute__=yes else ac_cv___attribute__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "$ac_cv___attribute__" = "yes"; then $as_echo "#define HAVE___ATTRIBUTE__ 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv___attribute__" >&5 $as_echo "$ac_cv___attribute__" >&6; } ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" if test "x$ac_cv_type_uintptr_t" = xyes; then : $as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h else for ac_type in 'unsigned int' 'unsigned long int' \ 'unsigned long long int'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat >>confdefs.h <<_ACEOF #define uintptr_t $ac_type _ACEOF ac_type= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test -z "$ac_type" && break done fi ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t" case $ac_cv_c_int8_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int8_t $ac_cv_c_int8_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "16" "ac_cv_c_int16_t" case $ac_cv_c_int16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int16_t $ac_cv_c_int16_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" case $ac_cv_c_int32_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int32_t $ac_cv_c_int32_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" case $ac_cv_c_int64_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int64_t $ac_cv_c_int64_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "#define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "#define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) $as_echo "#define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint64_t $ac_cv_c_uint64_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "#if STDC_HEADERS #include #include #endif #if HAVE_INTTYPES_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_BITYPES_H #include #endif " if test "x$ac_cv_type_long_long" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_LONG 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "long double" "ac_cv_type_long_double" "#if STDC_HEADERS #include #include #endif #if HAVE_INTTYPES_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_BITYPES_H #include #endif " if test "x$ac_cv_type_long_double" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LONG_DOUBLE 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "fsid_t" "ac_cv_type_fsid_t" "#if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif #if HAVE_SYS_MOUNT_H #include #endif #if HAVE_SYS_VFS_H #include #endif " if test "x$ac_cv_type_fsid_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FSID_T 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes 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_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } if ${ac_cv_sizeof_off_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : else if test "$ac_cv_type_off_t" = yes; then { { $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 "cannot compute sizeof (off_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 $as_echo "$ac_cv_sizeof_off_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_OFF_T $ac_cv_sizeof_off_t _ACEOF # Checks for library functions. ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes 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_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "#define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi as_ac_Symbol=`$as_echo "ac_cv_have_decl_snprintf(char *, size_t, const char *, ...)" | $as_tr_sh` ac_fn_c_check_decl "$LINENO" "snprintf(char *, size_t, const char *, ...)" "$as_ac_Symbol" "#include " if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SNPRINTF $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else case " $LIBOBJS " in *" snprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" ;; esac fi as_ac_Symbol=`$as_echo "ac_cv_have_decl_asprintf(char **, const char *, ...)" | $as_tr_sh` ac_fn_c_check_decl "$LINENO" "asprintf(char **, const char *, ...)" "$as_ac_Symbol" "#define _GNU_SOURCE #include " if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ASPRINTF $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else case " $LIBOBJS " in *" asprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS asprintf.$ac_objext" ;; esac fi as_ac_Symbol=`$as_echo "ac_cv_have_decl_strdup(const char *)" | $as_tr_sh` ac_fn_c_check_decl "$LINENO" "strdup(const char *)" "$as_ac_Symbol" "#include " if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRDUP $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else case " $LIBOBJS " in *" strdup.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strdup.$ac_objext" ;; esac fi case $host_os in darwin*) # NetBSD PR 38488: warnx(3) escapes certain characters like \n ac_cv_func_warn=no ;; esac as_ac_Symbol=`$as_echo "ac_cv_have_decl_isblank(int)" | $as_tr_sh` ac_fn_c_check_decl "$LINENO" "isblank(int)" "$as_ac_Symbol" "#include " if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else case " $LIBOBJS " in *" isblank.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS isblank.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "err" "ac_cv_func_err" if test "x$ac_cv_func_err" = xyes; then : $as_echo "#define HAVE_ERR 1" >>confdefs.h else case " $LIBOBJS " in *" err.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS err.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "fgetln" "ac_cv_func_fgetln" if test "x$ac_cv_func_fgetln" = xyes; then : $as_echo "#define HAVE_FGETLN 1" >>confdefs.h else case " $LIBOBJS " in *" fgetln.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fgetln.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "fnmatch" "ac_cv_func_fnmatch" if test "x$ac_cv_func_fnmatch" = xyes; then : $as_echo "#define HAVE_FNMATCH 1" >>confdefs.h else case " $LIBOBJS " in *" fnmatch.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fnmatch.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "fparseln" "ac_cv_func_fparseln" if test "x$ac_cv_func_fparseln" = xyes; then : $as_echo "#define HAVE_FPARSELN 1" >>confdefs.h else case " $LIBOBJS " in *" fparseln.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fparseln.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "getdelim" "ac_cv_func_getdelim" if test "x$ac_cv_func_getdelim" = xyes; then : $as_echo "#define HAVE_GETDELIM 1" >>confdefs.h else case " $LIBOBJS " in *" getdelim.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getdelim.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "getenv" "ac_cv_func_getenv" if test "x$ac_cv_func_getenv" = xyes; then : $as_echo "#define HAVE_GETENV 1" >>confdefs.h else case " $LIBOBJS " in *" getenv.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getenv.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline" if test "x$ac_cv_func_getline" = xyes; then : $as_echo "#define HAVE_GETLINE 1" >>confdefs.h else case " $LIBOBJS " in *" getline.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getline.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" if test "x$ac_cv_func_lchflags" = xyes; then : $as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h else case " $LIBOBJS " in *" lchflags.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lchflags.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" if test "x$ac_cv_func_lchmod" = xyes; then : $as_echo "#define HAVE_LCHMOD 1" >>confdefs.h else case " $LIBOBJS " in *" lchmod.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lchmod.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown" if test "x$ac_cv_func_lchown" = xyes; then : $as_echo "#define HAVE_LCHOWN 1" >>confdefs.h else case " $LIBOBJS " in *" lchown.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lchown.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "lutimes" "ac_cv_func_lutimes" if test "x$ac_cv_func_lutimes" = xyes; then : $as_echo "#define HAVE_LUTIMES 1" >>confdefs.h else case " $LIBOBJS " in *" lutimes.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lutimes.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp" if test "x$ac_cv_func_mkdtemp" = xyes; then : $as_echo "#define HAVE_MKDTEMP 1" >>confdefs.h else case " $LIBOBJS " in *" mkdtemp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mkdtemp.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp" if test "x$ac_cv_func_mkstemp" = xyes; then : $as_echo "#define HAVE_MKSTEMP 1" >>confdefs.h else case " $LIBOBJS " in *" mkstemp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mkstemp.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv" if test "x$ac_cv_func_setenv" = xyes; then : $as_echo "#define HAVE_SETENV 1" >>confdefs.h else case " $LIBOBJS " in *" setenv.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setenv.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "setgroupent" "ac_cv_func_setgroupent" if test "x$ac_cv_func_setgroupent" = xyes; then : $as_echo "#define HAVE_SETGROUPENT 1" >>confdefs.h else case " $LIBOBJS " in *" setgroupent.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setgroupent.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "setpassent" "ac_cv_func_setpassent" if test "x$ac_cv_func_setpassent" = xyes; then : $as_echo "#define HAVE_SETPASSENT 1" >>confdefs.h else case " $LIBOBJS " in *" setpassent.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setpassent.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "setprogname" "ac_cv_func_setprogname" if test "x$ac_cv_func_setprogname" = xyes; then : $as_echo "#define HAVE_SETPROGNAME 1" >>confdefs.h else case " $LIBOBJS " in *" setprogname.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setprogname.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "shquote" "ac_cv_func_shquote" if test "x$ac_cv_func_shquote" = xyes; then : $as_echo "#define HAVE_SHQUOTE 1" >>confdefs.h else case " $LIBOBJS " in *" shquote.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS shquote.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs" if test "x$ac_cv_func_statvfs" = xyes; then : $as_echo "#define HAVE_STATVFS 1" >>confdefs.h else case " $LIBOBJS " in *" statvfs.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS statvfs.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "#define HAVE_STRERROR 1" >>confdefs.h else case " $LIBOBJS " in *" strerror.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strerror.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat" if test "x$ac_cv_func_strlcat" = xyes; then : $as_echo "#define HAVE_STRLCAT 1" >>confdefs.h else case " $LIBOBJS " in *" strlcat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strlcat.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy" if test "x$ac_cv_func_strlcpy" = xyes; then : $as_echo "#define HAVE_STRLCPY 1" >>confdefs.h else case " $LIBOBJS " in *" strlcpy.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strlcpy.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strmode" "ac_cv_func_strmode" if test "x$ac_cv_func_strmode" = xyes; then : $as_echo "#define HAVE_STRMODE 1" >>confdefs.h else case " $LIBOBJS " in *" strmode.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strmode.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep" if test "x$ac_cv_func_strsep" = xyes; then : $as_echo "#define HAVE_STRSEP 1" >>confdefs.h else case " $LIBOBJS " in *" strsep.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strsep.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll" if test "x$ac_cv_func_strtoll" = xyes; then : $as_echo "#define HAVE_STRTOLL 1" >>confdefs.h else case " $LIBOBJS " in *" strtoll.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtoll.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" if test "x$ac_cv_func_unsetenv" = xyes; then : $as_echo "#define HAVE_UNSETENV 1" >>confdefs.h else case " $LIBOBJS " in *" unsetenv.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS unsetenv.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "usleep" "ac_cv_func_usleep" if test "x$ac_cv_func_usleep" = xyes; then : $as_echo "#define HAVE_USLEEP 1" >>confdefs.h else case " $LIBOBJS " in *" usleep.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS usleep.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes" if test "x$ac_cv_func_utimes" = xyes; then : $as_echo "#define HAVE_UTIMES 1" >>confdefs.h else case " $LIBOBJS " in *" utimes.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS utimes.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "warn" "ac_cv_func_warn" if test "x$ac_cv_func_warn" = xyes; then : $as_echo "#define HAVE_WARN 1" >>confdefs.h else case " $LIBOBJS " in *" warn.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS warn.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket network; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_socket+:} false; then : break fi done if ${ac_cv_search_socket+:} false; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF LIBS="-lnsl $LIBS" fi need_getaddrinfo=no ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#ifdef HAVE_SYS_TYPES_H # include #endif #include " if test "x$ac_cv_type_socklen_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SOCKLEN_T 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "struct addrinfo" "ac_cv_type_struct_addrinfo" "#include " if test "x$ac_cv_type_struct_addrinfo" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_ADDRINFO 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "struct in6_addr" "ac_cv_type_struct_in6_addr" "#ifdef HAVE_SYS_TYPES_H # include #endif #include " if test "x$ac_cv_type_struct_in6_addr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_IN6_ADDR 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "#ifdef HAVE_SYS_TYPES_H # include #endif #include " if test "x$ac_cv_type_struct_sockaddr_in6" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_IN6 1 _ACEOF fi ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" "#ifdef HAVE_SYS_TYPES_H # include #endif #include " if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_SOCKADDR_STORAGE 1 _ACEOF fi for ac_func in getnameinfo gai_strerror getaddrinfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF : else need_getaddrinfo=yes fi done if test $need_getaddrinfo = yes; then case " $LIBOBJS " in *" getaddrinfo.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getaddrinfo.$ac_objext" ;; esac fi need_findenv=no for ac_func in getenv setenv unsetenv do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF : else need_findenv=yes fi done if test $need_findenv = yes; then case " $LIBOBJS " in *" findenv.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS findenv.$ac_objext" ;; esac fi need_gettemp=no for ac_func in mkdtemp mkstemp do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF : else need_gettemp=yes fi done if test $need_gettemp = yes; then case " $LIBOBJS " in *" gettemp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS gettemp.$ac_objext" ;; esac fi for ac_func in setlocale do : ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" if test "x$ac_cv_func_setlocale" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETLOCALE 1 _ACEOF fi done need_setmode=no for ac_func in getmode setmode do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF : else need_setmode=yes fi done if test $need_setmode = yes; then case " $LIBOBJS " in *" setmode.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setmode.$ac_objext" ;; esac fi ac_fn_c_check_decl "$LINENO" "endgrent" "ac_cv_have_decl_endgrent" "$ac_includes_default" if test "x$ac_cv_have_decl_endgrent" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ENDGRENT $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "endpwent" "ac_cv_have_decl_endpwent" "$ac_includes_default" if test "x$ac_cv_have_decl_endpwent" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ENDPWENT $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "setpassent" "ac_cv_have_decl_setpassent" "$ac_includes_default" if test "x$ac_cv_have_decl_setpassent" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SETPASSENT $ac_have_decl _ACEOF need_pwcache=no for ac_func in gid_from_group group_from_gid pwcache_groupdb \ pwcache_userdb uid_from_user user_from_uid \ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF : else need_pwcache=yes fi done if test $need_pwcache = yes; then case " $LIBOBJS " in *" pwcache.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS pwcache.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "fts_open" "ac_cv_func_fts_open" if test "x$ac_cv_func_fts_open" = xyes; then : : else $as_echo "#define HAVE_NBCOMPAT_FTS 1" >>confdefs.h case " $LIBOBJS " in *" fts.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fts.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm" if test "x$ac_cv_func_timegm" = xyes; then : : else case " $LIBOBJS " in *" timegm.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS timegm.$ac_objext" ;; esac fi # Handle Darwin 7 having a poll() compatibility function. Be # conservative -- if we don't find one of or , then # use our own poll() implementation. # pkg_cv_have_poll_h=no for ac_header in poll.h sys/poll.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in poll.h sys/poll.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF pkg_cv_have_poll_h=yes fi done pkg_use_nbcompat_poll=yes if test $pkg_cv_have_poll_h = yes; then pkg_use_nbcompat_poll=no fi if test $pkg_cv_have_poll_h = yes -o test $pkg_cv_have_sys_poll_h = yes; then ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" if test "x$ac_cv_func_poll" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if poll() is implemented natively" >&5 $as_echo_n "checking if poll() is implemented natively... " >&6; } if ${pkg_cv_native_poll+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_POLL_H #include #endif #if HAVE_SYS_POLL_H #include #endif int main () { #ifdef _POLL_EMUL_H_ #error "poll() is emulated" #endif ; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : pkg_cv_native_poll=yes else pkg_cv_native_poll=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkg_cv_native_poll" >&5 $as_echo "$pkg_cv_native_poll" >&6; } if test "x$pkg_cv_native_poll" = "xyes"; then pkg_use_nbcompat_poll=no else pkg_use_nbcompat_poll=yes : fi fi fi if test $pkg_use_nbcompat_poll = yes; then $as_echo "#define HAVE_NBCOMPAT_POLL 1" >>confdefs.h case " $LIBOBJS " in *" poll.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS poll.$ac_objext" ;; esac fi for ac_func in getpassphrase getpgrp select do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" if test "x$ac_cv_func_getpgrp" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5 $as_echo_n "checking whether getpgrp requires zero arguments... " >&6; } if ${ac_cv_func_getpgrp_void+:} false; then : $as_echo_n "(cached) " >&6 else # Use it with a single arg. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { getpgrp (0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_getpgrp_void=no else ac_cv_func_getpgrp_void=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5 $as_echo "$ac_cv_func_getpgrp_void" >&6; } if test $ac_cv_func_getpgrp_void = yes; then $as_echo "#define GETPGRP_VOID 1" >>confdefs.h fi fi ac_fn_c_check_member "$LINENO" "struct statfs" "f_flags" "ac_cv_member_struct_statfs_f_flags" " #include " if test "x$ac_cv_member_struct_statfs_f_flags" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_FLAGS 1 _ACEOF : else : fi ac_fn_c_check_member "$LINENO" "struct statfs" "f_fsize" "ac_cv_member_struct_statfs_f_fsize" " #include " if test "x$ac_cv_member_struct_statfs_f_fsize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_FSIZE 1 _ACEOF : else : fi ac_fn_c_check_member "$LINENO" "struct statfs" "f_iosize" "ac_cv_member_struct_statfs_f_iosize" " #include " if test "x$ac_cv_member_struct_statfs_f_iosize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_IOSIZE 1 _ACEOF : else : fi ac_fn_c_check_member "$LINENO" "struct dirent" "d_namlen" "ac_cv_member_struct_dirent_d_namlen" " #include #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif " if test "x$ac_cv_member_struct_dirent_d_namlen" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_DIRENT_D_NAMLEN 1 _ACEOF : else : fi ac_fn_c_check_member "$LINENO" "DIR" "dd_fd" "ac_cv_member_DIR_dd_fd" " #include #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif " if test "x$ac_cv_member_DIR_dd_fd" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DIR_DD_FD 1 _ACEOF : else : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dirfd" >&5 $as_echo_n "checking for dirfd... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif int dummy_var; int main () { dummy_var = dirfd((DIR *)0) ; 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 "#define HAVE_DIRFD 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_type_long_long = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking *printf() support for %lld" >&5 $as_echo_n "checking *printf() support for %lld... " >&6; } can_printf_longlong=no if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { char buf[100]; sprintf(buf, "%lld", 4294967300LL); return (strcmp(buf, "4294967300")); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } can_printf_longlong=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $can_printf_longlong != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking *printf() support for %qd" >&5 $as_echo_n "checking *printf() support for %qd... " >&6; } if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { char buf[100]; sprintf(buf, "%qd", 4294967300LL); return (strcmp(buf, "4294967300")); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } can_printf_longlong=yes $as_echo "#define HAVE_PRINTF_QD 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test $can_printf_longlong = yes; then $as_echo "#define HAVE_WORKING_LONG_LONG 1" >>confdefs.h ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll" if test "x$ac_cv_func_strtoll" = xyes; then : $as_echo "#define HAVE_STRTOLL 1" >>confdefs.h else case " $LIBOBJS " in *" strtoll.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtoll.$ac_objext" ;; esac fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf is standards compliant" >&5 $as_echo_n "checking if vsnprintf is standards compliant... " >&6; } have_std_vsnprintf=no if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include void dotest(char *fmt, ...) { char buf[3]; va_list ap; va_start(ap, fmt); exit(snprintf(buf, 3, fmt, ap) == 4 ? 0 : 1); } int main() { dotest("test"); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_std_vsnprintf=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $have_std_vsnprintf = no; then case " $LIBOBJS " in *" snprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" ;; esac fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${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 libnbcompat $as_me 20150419, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers 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="\\ libnbcompat config.status 20150419 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _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 "nbcompat/config.h") CONFIG_HEADERS="$CONFIG_HEADERS nbcompat/config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers 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" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; 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 libnbcompat-20180822/usleep.c0000644000175000017500000000336613355271171016162 0ustar jgoerzenjgoerzen/* $NetBSD: usleep.c,v 1.4 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 1999-2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Luke Mewburn. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include int usleep(unsigned int usec) { #if HAVE_SELECT struct timeval tv; tv.tv_sec = 0; tv.tv_usec = usec; return (select(1, NULL, NULL, NULL, &tv)); #else return (poll(NULL, 0, usec / 1000); #endif } libnbcompat-20180822/setenv.c0000644000175000017500000001035113355271171016161 0ustar jgoerzenjgoerzen/* $NetBSD: setenv.c,v 1.10 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)setenv.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: setenv.c,v 1.10 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #if HAVE_ERRNO_H #include #endif #include #include #if 0 #include "local.h" #include "reentrant.h" #endif char *__findenv __P((const char *, int *)); #if 0 #ifdef __weak_alias __weak_alias(setenv,_setenv) #endif #endif #if 0 #ifdef _REENTRANT extern rwlock_t __environ_lock; #endif #endif extern char **environ; #ifndef rwlock_wrlock #define rwlock_wrlock(lock) ((void)0) #endif #ifndef rwlock_unlock #define rwlock_unlock(lock) ((void)0) #endif /* * setenv -- * Set the value of the environmental variable "name" to be * "value". If rewrite is set, replace any current value. */ int setenv(name, value, rewrite) const char *name; const char *value; int rewrite; { static int alloced; /* if allocated space before */ char *c; const char *cc; size_t l_value; int offset; _DIAGASSERT(name != NULL); _DIAGASSERT(value != NULL); if (*value == '=') /* no `=' in value */ ++value; l_value = strlen(value); rwlock_wrlock(&__environ_lock); /* find if already exists */ if ((c = __findenv(name, &offset)) != NULL) { if (!rewrite) { rwlock_unlock(&__environ_lock); return (0); } if (strlen(c) >= l_value) { /* old larger; copy over */ while ((*c++ = *value++) != '\0'); rwlock_unlock(&__environ_lock); return (0); } } else { /* create new slot */ int cnt; char **p; for (p = environ, cnt = 0; *p; ++p, ++cnt); if (alloced) { /* just increase size */ environ = realloc(environ, (size_t)(sizeof(char *) * (cnt + 2))); if (!environ) { rwlock_unlock(&__environ_lock); return (-1); } } else { /* get new space */ alloced = 1; /* copy old entries into it */ p = malloc((size_t)(sizeof(char *) * (cnt + 2))); if (!p) { rwlock_unlock(&__environ_lock); return (-1); } memcpy(p, environ, cnt * sizeof(char *)); environ = p; } environ[cnt + 1] = NULL; offset = cnt; } for (cc = name; *cc && *cc != '='; ++cc)/* no `=' in name */ continue; if (!(environ[offset] = /* name + `=' + value */ malloc((size_t)((int)(cc - name) + l_value + 2)))) { rwlock_unlock(&__environ_lock); return (-1); } for (c = environ[offset]; (*c = *name++) && *c != '='; ++c); for (*c++ = '='; (*c++ = *value++) != '\0'; ); rwlock_unlock(&__environ_lock); return (0); } libnbcompat-20180822/getdelim.c0000644000175000017500000000471213355271171016453 0ustar jgoerzenjgoerzen/* $NetBSD: getdelim.c,v 1.2 2015/12/25 20:12:46 joerg Exp $ */ /* NetBSD-src: getline.c,v 1.2 2014/09/16 17:23:50 christos Exp */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Christos Zoulas. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #if !HAVE_GETDELIM ssize_t getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp) { char *ptr, *eptr; if (*buf == NULL || *bufsiz == 0) { *bufsiz = BUFSIZ; if ((*buf = malloc(*bufsiz)) == NULL) return -1; } for (ptr = *buf, eptr = *buf + *bufsiz;;) { int c = fgetc(fp); if (c == -1) { if (feof(fp)) { ssize_t diff = (ssize_t)(ptr - *buf); if (diff != 0) { *ptr = '\0'; return diff; } } return -1; } *ptr++ = c; if (c == delimiter) { *ptr = '\0'; return ptr - *buf; } if (ptr + 2 >= eptr) { char *nbuf; size_t nbufsiz = *bufsiz * 2; ssize_t d = ptr - *buf; if ((nbuf = realloc(*buf, nbufsiz)) == NULL) return -1; *buf = nbuf; *bufsiz = nbufsiz; eptr = nbuf + nbufsiz; ptr = nbuf + d; } } } #endif libnbcompat-20180822/config.sub0000755000175000017500000010326513355271171016503 0ustar jgoerzenjgoerzen#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. timestamp='2009-12-31' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libnbcompat-20180822/setgroupent.c0000644000175000017500000000323313355271171017235 0ustar jgoerzenjgoerzen/* $NetBSD: setgroupent.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Johnny C. Lam. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include int setgroupent(int stayopen) { #if HAVE_SETGRENT setgrent(); #endif return 1; } libnbcompat-20180822/getaddrinfo.c0000644000175000017500000001430413355271171017145 0ustar jgoerzenjgoerzen/* * Copyright (C) 2000-2003 Damien Miller. All rights reserved. * Copyright (C) 1999 WIDE Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the project nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. */ /* * Pseudo-implementation of RFC2553 name / address resolution functions * * But these functions are not implemented correctly. The minimum subset * is implemented for ssh use only. For example, this routine assumes * that ai_family is AF_INET. Don't use it for another purpose. */ #include #include #include #include #include #include #ifndef HAVE_GETNAMEINFO int getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { struct sockaddr_in *sin = (struct sockaddr_in *)sa; struct hostent *hp; char tmpserv[16]; if (sa->sa_family != AF_UNSPEC && sa->sa_family != AF_INET) return (EAI_FAMILY); if (serv != NULL) { snprintf(tmpserv, sizeof(tmpserv), "%d", ntohs(sin->sin_port)); if (strlcpy(serv, tmpserv, servlen) >= servlen) return (EAI_MEMORY); } if (host != NULL) { if (flags & NI_NUMERICHOST) { if (strlcpy(host, inet_ntoa(sin->sin_addr), hostlen) >= hostlen) return (EAI_MEMORY); else return (0); } else { hp = gethostbyaddr((char *)&sin->sin_addr, sizeof(struct in_addr), AF_INET); if (hp == NULL) return (EAI_NODATA); if (strlcpy(host, hp->h_name, hostlen) >= hostlen) return (EAI_MEMORY); else return (0); } } return (0); } #endif /* !HAVE_GETNAMEINFO */ #ifndef HAVE_GAI_STRERROR char * gai_strerror(int err) { switch (err) { case EAI_NODATA: return ("no address associated with name"); case EAI_MEMORY: return ("memory allocation failure"); case EAI_NONAME: return ("nodename nor servname provided, or not known"); case EAI_FAMILY: return ("ai_family not supported"); case EAI_AGAIN: return ("temparary failure"); case EAI_FAIL: return ("unrecoverable failure"); default: return ("unknown/invalid error"); } } #endif /* !HAVE_GAI_STRERROR */ #ifndef HAVE_GETADDRINFO void freeaddrinfo(struct addrinfo *ai) { struct addrinfo *next; for(; ai != NULL;) { next = ai->ai_next; free(ai); ai = next; } } static struct addrinfo *malloc_ai(int port, u_long addr, const struct addrinfo *hints) { struct addrinfo *ai; ai = malloc(sizeof(*ai) + sizeof(struct sockaddr_in)); if (ai == NULL) return (NULL); memset(ai, '\0', sizeof(*ai) + sizeof(struct sockaddr_in)); ai->ai_addr = (struct sockaddr *)(ai + 1); /* XXX -- ssh doesn't use sa_len */ ai->ai_addrlen = sizeof(struct sockaddr_in); ai->ai_addr->sa_family = ai->ai_family = AF_INET; ((struct sockaddr_in *)(ai)->ai_addr)->sin_port = port; ((struct sockaddr_in *)(ai)->ai_addr)->sin_addr.s_addr = addr; /* XXX: the following is not generally correct, but does what we want */ if (hints->ai_socktype) ai->ai_socktype = hints->ai_socktype; else ai->ai_socktype = SOCK_STREAM; if (hints->ai_protocol) ai->ai_protocol = hints->ai_protocol; return (ai); } int getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res) { struct hostent *hp; struct servent *sp; struct in_addr in; int i; long int port; u_long addr; port = 0; if (hints && hints->ai_family != AF_UNSPEC && hints->ai_family != AF_INET) return (EAI_FAMILY); if (servname != NULL) { char *cp; port = strtol(servname, &cp, 10); if (port > 0 && port <= 65535 && *cp == '\0') port = htons(port); else if ((sp = getservbyname(servname, NULL)) != NULL) port = sp->s_port; else port = 0; } if (hints && hints->ai_flags & AI_PASSIVE) { addr = htonl(0x00000000); if (hostname && inet_aton(hostname, &in) != 0) addr = in.s_addr; *res = malloc_ai(port, addr, hints); if (*res == NULL) return (EAI_MEMORY); return (0); } if (!hostname) { *res = malloc_ai(port, htonl(0x7f000001), hints); if (*res == NULL) return (EAI_MEMORY); return (0); } if (inet_aton(hostname, &in)) { *res = malloc_ai(port, in.s_addr, hints); if (*res == NULL) return (EAI_MEMORY); return (0); } /* Don't try DNS if AI_NUMERICHOST is set */ if (hints && hints->ai_flags & AI_NUMERICHOST) return (EAI_NONAME); hp = gethostbyname(hostname); if (hp && hp->h_name && hp->h_name[0] && hp->h_addr_list[0]) { struct addrinfo *cur, *prev; cur = prev = *res = NULL; for (i = 0; hp->h_addr_list[i]; i++) { struct in_addr *in = (struct in_addr *)hp->h_addr_list[i]; cur = malloc_ai(port, in->s_addr, hints); if (cur == NULL) { if (*res != NULL) freeaddrinfo(*res); return (EAI_MEMORY); } if (prev) prev->ai_next = cur; else *res = cur; prev = cur; } return (0); } return (EAI_NODATA); } #endif /* !HAVE_GETADDRINFO */ libnbcompat-20180822/mkstemp.c0000644000175000017500000000503513355271171016340 0ustar jgoerzenjgoerzen/* $NetBSD: mkstemp.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: mkstemp.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if HAVE_NBTOOL_CONFIG_H #define GETTEMP gettemp #else #include #if HAVE_ERRNO_H #include #endif #include #include #include #if 0 #include "reentrant.h" #include "local.h" #define GETTEMP __gettemp #else #define GETTEMP gettemp extern int gettemp __P((char *, int *, int)); #endif #endif int mkstemp(path) char *path; { int fd; _DIAGASSERT(path != NULL); return (GETTEMP(path, &fd, 0) ? fd : -1); } #endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKSTEMP */ libnbcompat-20180822/engine.c0000644000175000017500000007435013355271171016133 0ustar jgoerzenjgoerzen/* $NetBSD: engine.c,v 1.1 2004/08/16 17:24:56 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)engine.c 8.5 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)engine.c 8.5 (Berkeley) 3/20/94 */ /* * The matching engine and friends. This file is #included by regexec.c * after suitable #defines of a variety of macros used herein, so that * different state representations can be used without duplicating masses * of code. */ #ifdef SNAMES #define matcher smatcher #define fast sfast #define slow sslow #define dissect sdissect #define backref sbackref #define step sstep #define print sprint #define at sat #define match smat #define nope snope #endif #ifdef LNAMES #define matcher lmatcher #define fast lfast #define slow lslow #define dissect ldissect #define backref lbackref #define step lstep #define print lprint #define at lat #define match lmat #define nope lnope #endif /* another structure passed up and down to avoid zillions of parameters */ struct match { struct re_guts *g; int eflags; regmatch_t *pmatch; /* [nsub+1] (0 element unused) */ char *offp; /* offsets work from here */ char *beginp; /* start of string -- virtual NUL precedes */ char *endp; /* end of string -- virtual NUL here */ char *coldp; /* can be no match starting before here */ char **lastpos; /* [nplus+1] */ STATEVARS; states st; /* current states */ states fresh; /* states for a fresh start */ states tmp; /* temporary */ states empty; /* empty set of states */ }; /* ========= begin header generated by ./mkh ========= */ #ifdef __cplusplus extern "C" { #endif /* === engine.c === */ static int matcher __P((struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags)); static char *dissect __P((struct match *m, char *start, char *stop, sopno startst, sopno stopst)); static char *backref __P((struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev)); static char *fast __P((struct match *m, char *start, char *stop, sopno startst, sopno stopst)); static char *slow __P((struct match *m, char *start, char *stop, sopno startst, sopno stopst)); static states step __P((struct re_guts *g, sopno start, sopno stop, states bef, int ch, states aft)); #define BOL (OUT+1) #define EOL (BOL+1) #define BOLEOL (BOL+2) #define NOTHING (BOL+3) #define BOW (BOL+4) #define EOW (BOL+5) #define CODEMAX (BOL+5) /* highest code used */ #define NONCHAR(c) ((c) > CHAR_MAX) #define NNONCHAR (CODEMAX-CHAR_MAX) #ifdef REDEBUG static void print __P((struct match *m, char *caption, states st, int ch, FILE *d)); #endif #ifdef REDEBUG static void at __P((struct match *m, char *title, char *start, char *stop, sopno startst, sopno stopst)); #endif #ifdef REDEBUG static char *pchar __P((int ch)); #endif #ifdef __cplusplus } #endif /* ========= end header generated by ./mkh ========= */ #ifdef REDEBUG #define SP(t, s, c) print(m, t, s, c, stdout) #define AT(t, p1, p2, s1, s2) at(m, t, p1, p2, s1, s2) #define NOTE(str) { if (m->eflags®_TRACE) printf("=%s\n", (str)); } static int nope = 0; #else #define SP(t, s, c) /* nothing */ #define AT(t, p1, p2, s1, s2) /* nothing */ #define NOTE(s) /* nothing */ #endif /* - matcher - the actual matching engine == static int matcher(struct re_guts *g, char *string, \ == size_t nmatch, regmatch_t pmatch[], int eflags); */ static int /* 0 success, REG_NOMATCH failure */ matcher(g, string, nmatch, pmatch, eflags) struct re_guts *g; char *string; size_t nmatch; regmatch_t pmatch[]; int eflags; { char *endp; int i; struct match mv; struct match *m = &mv; char *dp; const sopno gf = g->firststate+1; /* +1 for OEND */ const sopno gl = g->laststate; char *start; char *stop; int error = 0; _DIAGASSERT(g != NULL); _DIAGASSERT(string != NULL); /* pmatch checked below */ /* simplify the situation where possible */ if (g->cflags®_NOSUB) nmatch = 0; if (eflags®_STARTEND) { _DIAGASSERT(pmatch != NULL); start = string + (size_t)pmatch[0].rm_so; stop = string + (size_t)pmatch[0].rm_eo; } else { start = string; stop = start + strlen(start); } if (stop < start) return(REG_INVARG); /* prescreening; this does wonders for this rather slow code */ if (g->must != NULL) { for (dp = start; dp < stop; dp++) if (*dp == g->must[0] && stop - dp >= g->mlen && memcmp(dp, g->must, (size_t)g->mlen) == 0) break; if (dp == stop) /* we didn't find g->must */ return(REG_NOMATCH); } /* match struct setup */ m->g = g; m->eflags = eflags; m->pmatch = NULL; m->lastpos = NULL; m->offp = string; m->beginp = start; m->endp = stop; STATESETUP(m, 4); SETUP(m->st); SETUP(m->fresh); SETUP(m->tmp); SETUP(m->empty); CLEAR(m->empty); /* this loop does only one repetition except for backrefs */ for (;;) { endp = fast(m, start, stop, gf, gl); if (endp == NULL) { /* a miss */ error = REG_NOMATCH; goto done; } if (nmatch == 0 && !g->backrefs) break; /* no further info needed */ /* where? */ assert(m->coldp != NULL); for (;;) { NOTE("finding start"); endp = slow(m, m->coldp, stop, gf, gl); if (endp != NULL) break; assert(m->coldp < m->endp); m->coldp++; } if (nmatch == 1 && !g->backrefs) break; /* no further info needed */ /* oh my, he wants the subexpressions... */ if (m->pmatch == NULL) m->pmatch = (regmatch_t *)malloc((m->g->nsub + 1) * sizeof(regmatch_t)); if (m->pmatch == NULL) { error = REG_ESPACE; goto done; } for (i = 1; i <= m->g->nsub; i++) m->pmatch[i].rm_so = m->pmatch[i].rm_eo = (regoff_t)-1; if (!g->backrefs && !(m->eflags®_BACKR)) { NOTE("dissecting"); dp = dissect(m, m->coldp, endp, gf, gl); } else { if (g->nplus > 0 && m->lastpos == NULL) m->lastpos = (char **)malloc((g->nplus+1) * sizeof(char *)); if (g->nplus > 0 && m->lastpos == NULL) { error = REG_ESPACE; goto done; } NOTE("backref dissect"); dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); } if (dp != NULL) break; /* uh-oh... we couldn't find a subexpression-level match */ assert(g->backrefs); /* must be back references doing it */ assert(g->nplus == 0 || m->lastpos != NULL); for (;;) { if (dp != NULL || endp <= m->coldp) break; /* defeat */ NOTE("backoff"); endp = slow(m, m->coldp, endp-1, gf, gl); if (endp == NULL) break; /* defeat */ /* try it on a shorter possibility */ #ifndef NDEBUG for (i = 1; i <= m->g->nsub; i++) { assert(m->pmatch[i].rm_so == (regoff_t)-1); assert(m->pmatch[i].rm_eo == (regoff_t)-1); } #endif NOTE("backoff dissect"); dp = backref(m, m->coldp, endp, gf, gl, (sopno)0); } assert(dp == NULL || dp == endp); if (dp != NULL) /* found a shorter one */ break; /* despite initial appearances, there is no match here */ NOTE("false alarm"); start = m->coldp + 1; /* recycle starting later */ assert(start <= stop); } /* fill in the details if requested */ if (nmatch > 0) { _DIAGASSERT(pmatch != NULL); pmatch[0].rm_so = m->coldp - m->offp; pmatch[0].rm_eo = endp - m->offp; } if (nmatch > 1) { assert(m->pmatch != NULL); for (i = 1; i < nmatch; i++) if (i <= m->g->nsub) pmatch[i] = m->pmatch[i]; else { pmatch[i].rm_so = (regoff_t)-1; pmatch[i].rm_eo = (regoff_t)-1; } } done: if (m->pmatch != NULL) { free(m->pmatch); m->pmatch = NULL; } if (m->lastpos != NULL) { free(m->lastpos); m->lastpos = NULL; } STATETEARDOWN(m); return error; } /* - dissect - figure out what matched what, no back references == static char *dissect(struct match *m, char *start, \ == char *stop, sopno startst, sopno stopst); */ static char * /* == stop (success) always */ dissect(m, start, stop, startst, stopst) struct match *m; char *start; char *stop; sopno startst; sopno stopst; { int i; sopno ss; /* start sop of current subRE */ sopno es; /* end sop of current subRE */ char *sp; /* start of string matched by it */ char *stp; /* string matched by it cannot pass here */ char *rest; /* start of rest of string */ char *tail; /* string unmatched by rest of RE */ sopno ssub; /* start sop of subsubRE */ sopno esub; /* end sop of subsubRE */ char *ssp; /* start of string matched by subsubRE */ char *sep; /* end of string matched by subsubRE */ char *oldssp; /* previous ssp */ #ifndef NDEBUG char *dp; #endif _DIAGASSERT(m != NULL); _DIAGASSERT(start != NULL); _DIAGASSERT(stop != NULL); AT("diss", start, stop, startst, stopst); sp = start; for (ss = startst; ss < stopst; ss = es) { /* identify end of subRE */ es = ss; switch (OP(m->g->strip[es])) { case OPLUS_: case OQUEST_: es += OPND(m->g->strip[es]); break; case OCH_: while (OP(m->g->strip[es]) != O_CH) es += OPND(m->g->strip[es]); break; } es++; /* figure out what it matched */ switch (OP(m->g->strip[ss])) { case OEND: assert(nope); break; case OCHAR: sp++; break; case OBOL: case OEOL: case OBOW: case OEOW: break; case OANY: case OANYOF: sp++; break; case OBACK_: case O_BACK: assert(nope); break; /* cases where length of match is hard to find */ case OQUEST_: stp = stop; for (;;) { /* how long could this one be? */ rest = slow(m, sp, stp, ss, es); assert(rest != NULL); /* it did match */ /* could the rest match the rest? */ tail = slow(m, rest, stop, es, stopst); if (tail == stop) break; /* yes! */ /* no -- try a shorter match for this one */ stp = rest - 1; assert(stp >= sp); /* it did work */ } ssub = ss + 1; esub = es - 1; /* did innards match? */ if (slow(m, sp, rest, ssub, esub) != NULL) { #ifdef NDEBUG (void) #else dp = #endif dissect(m, sp, rest, ssub, esub); assert(dp == rest); } else /* no */ assert(sp == rest); sp = rest; break; case OPLUS_: stp = stop; for (;;) { /* how long could this one be? */ rest = slow(m, sp, stp, ss, es); assert(rest != NULL); /* it did match */ /* could the rest match the rest? */ tail = slow(m, rest, stop, es, stopst); if (tail == stop) break; /* yes! */ /* no -- try a shorter match for this one */ stp = rest - 1; assert(stp >= sp); /* it did work */ } ssub = ss + 1; esub = es - 1; ssp = sp; oldssp = ssp; for (;;) { /* find last match of innards */ sep = slow(m, ssp, rest, ssub, esub); if (sep == NULL || sep == ssp) break; /* failed or matched null */ oldssp = ssp; /* on to next try */ ssp = sep; } if (sep == NULL) { /* last successful match */ sep = ssp; ssp = oldssp; } assert(sep == rest); /* must exhaust substring */ assert(slow(m, ssp, sep, ssub, esub) == rest); #ifdef NDEBUG (void) #else dp = #endif dissect(m, ssp, sep, ssub, esub); assert(dp == sep); sp = rest; break; case OCH_: stp = stop; for (;;) { /* how long could this one be? */ rest = slow(m, sp, stp, ss, es); assert(rest != NULL); /* it did match */ /* could the rest match the rest? */ tail = slow(m, rest, stop, es, stopst); if (tail == stop) break; /* yes! */ /* no -- try a shorter match for this one */ stp = rest - 1; assert(stp >= sp); /* it did work */ } ssub = ss + 1; esub = ss + OPND(m->g->strip[ss]) - 1; assert(OP(m->g->strip[esub]) == OOR1); for (;;) { /* find first matching branch */ if (slow(m, sp, rest, ssub, esub) == rest) break; /* it matched all of it */ /* that one missed, try next one */ assert(OP(m->g->strip[esub]) == OOR1); esub++; assert(OP(m->g->strip[esub]) == OOR2); ssub = esub + 1; esub += OPND(m->g->strip[esub]); if (OP(m->g->strip[esub]) == OOR2) esub--; else assert(OP(m->g->strip[esub]) == O_CH); } #ifdef NDEBUG (void) #else dp = #endif dissect(m, sp, rest, ssub, esub); assert(dp == rest); sp = rest; break; case O_PLUS: case O_QUEST: case OOR1: case OOR2: case O_CH: assert(nope); break; case OLPAREN: i = OPND(m->g->strip[ss]); assert(0 < i && i <= m->g->nsub); m->pmatch[i].rm_so = sp - m->offp; break; case ORPAREN: i = OPND(m->g->strip[ss]); assert(0 < i && i <= m->g->nsub); m->pmatch[i].rm_eo = sp - m->offp; break; default: /* uh oh */ assert(nope); break; } } assert(sp == stop); return(sp); } /* - backref - figure out what matched what, figuring in back references == static char *backref(struct match *m, char *start, \ == char *stop, sopno startst, sopno stopst, sopno lev); */ static char * /* == stop (success) or NULL (failure) */ backref(m, start, stop, startst, stopst, lev) struct match *m; char *start; char *stop; sopno startst; sopno stopst; sopno lev; /* PLUS nesting level */ { int i; sopno ss; /* start sop of current subRE */ char *sp; /* start of string matched by it */ sopno ssub; /* start sop of subsubRE */ sopno esub; /* end sop of subsubRE */ char *ssp; /* start of string matched by subsubRE */ char *dp; size_t len; int hard; sop s; regoff_t offsave; cset *cs; _DIAGASSERT(m != NULL); _DIAGASSERT(start != NULL); _DIAGASSERT(stop != NULL); AT("back", start, stop, startst, stopst); sp = start; /* get as far as we can with easy stuff */ hard = 0; for (ss = startst; !hard && ss < stopst; ss++) switch (OP(s = m->g->strip[ss])) { case OCHAR: if (sp == stop || *sp++ != (char)OPND(s)) return(NULL); break; case OANY: if (sp == stop) return(NULL); sp++; break; case OANYOF: cs = &m->g->sets[OPND(s)]; if (sp == stop || !CHIN(cs, *sp++)) return(NULL); break; case OBOL: if ( (sp == m->beginp && !(m->eflags®_NOTBOL)) || (sp < m->endp && *(sp-1) == '\n' && (m->g->cflags®_NEWLINE)) ) { /* yes */ } else return(NULL); break; case OEOL: if ( (sp == m->endp && !(m->eflags®_NOTEOL)) || (sp < m->endp && *sp == '\n' && (m->g->cflags®_NEWLINE)) ) { /* yes */ } else return(NULL); break; case OBOW: if (( (sp == m->beginp && !(m->eflags®_NOTBOL)) || (sp < m->endp && *(sp-1) == '\n' && (m->g->cflags®_NEWLINE)) || (sp > m->beginp && !ISWORD(*(sp-1))) ) && (sp < m->endp && ISWORD(*sp)) ) { /* yes */ } else return(NULL); break; case OEOW: if (( (sp == m->endp && !(m->eflags®_NOTEOL)) || (sp < m->endp && *sp == '\n' && (m->g->cflags®_NEWLINE)) || (sp < m->endp && !ISWORD(*sp)) ) && (sp > m->beginp && ISWORD(*(sp-1))) ) { /* yes */ } else return(NULL); break; case O_QUEST: break; case OOR1: /* matches null but needs to skip */ ss++; s = m->g->strip[ss]; do { assert(OP(s) == OOR2); ss += OPND(s); } while (OP(s = m->g->strip[ss]) != O_CH); /* note that the ss++ gets us past the O_CH */ break; default: /* have to make a choice */ hard = 1; break; } if (!hard) { /* that was it! */ if (sp != stop) return(NULL); return(sp); } ss--; /* adjust for the for's final increment */ /* the hard stuff */ AT("hard", sp, stop, ss, stopst); s = m->g->strip[ss]; switch (OP(s)) { case OBACK_: /* the vilest depths */ i = OPND(s); assert(0 < i && i <= m->g->nsub); if (m->pmatch[i].rm_eo == (regoff_t)-1) return(NULL); assert(m->pmatch[i].rm_so != (regoff_t)-1); len = (size_t)(m->pmatch[i].rm_eo - m->pmatch[i].rm_so); if (len == 0) return(NULL); assert(stop - m->beginp >= len); if (sp > stop - len) return(NULL); /* not enough left to match */ ssp = m->offp + (size_t)m->pmatch[i].rm_so; if (memcmp(sp, ssp, len) != 0) return(NULL); while (m->g->strip[ss] != SOP(O_BACK, i)) ss++; return(backref(m, sp+len, stop, ss+1, stopst, lev)); case OQUEST_: /* to null or not */ dp = backref(m, sp, stop, ss+1, stopst, lev); if (dp != NULL) return(dp); /* not */ return(backref(m, sp, stop, ss+OPND(s)+1, stopst, lev)); case OPLUS_: assert(m->lastpos != NULL); assert(lev+1 <= m->g->nplus); m->lastpos[lev+1] = sp; return(backref(m, sp, stop, ss+1, stopst, lev+1)); case O_PLUS: if (sp == m->lastpos[lev]) /* last pass matched null */ return(backref(m, sp, stop, ss+1, stopst, lev-1)); /* try another pass */ m->lastpos[lev] = sp; dp = backref(m, sp, stop, ss-OPND(s)+1, stopst, lev); if (dp == NULL) dp = backref(m, sp, stop, ss+1, stopst, lev-1); return(dp); case OCH_: /* find the right one, if any */ ssub = ss + 1; esub = ss + OPND(s) - 1; assert(OP(m->g->strip[esub]) == OOR1); for (;;) { /* find first matching branch */ dp = backref(m, sp, stop, ssub, esub, lev); if (dp != NULL) return(dp); /* that one missed, try next one */ if (OP(m->g->strip[esub]) == O_CH) return(NULL); /* there is none */ esub++; assert(OP(m->g->strip[esub]) == OOR2); ssub = esub + 1; esub += OPND(m->g->strip[esub]); if (OP(m->g->strip[esub]) == OOR2) esub--; else assert(OP(m->g->strip[esub]) == O_CH); } case OLPAREN: /* must undo assignment if rest fails */ i = OPND(s); assert(0 < i && i <= m->g->nsub); offsave = m->pmatch[i].rm_so; m->pmatch[i].rm_so = sp - m->offp; dp = backref(m, sp, stop, ss+1, stopst, lev); if (dp != NULL) return(dp); m->pmatch[i].rm_so = offsave; return(NULL); case ORPAREN: /* must undo assignment if rest fails */ i = OPND(s); assert(0 < i && i <= m->g->nsub); offsave = m->pmatch[i].rm_eo; m->pmatch[i].rm_eo = sp - m->offp; dp = backref(m, sp, stop, ss+1, stopst, lev); if (dp != NULL) return(dp); m->pmatch[i].rm_eo = offsave; return(NULL); default: /* uh oh */ assert(nope); break; } /* "can't happen" */ assert(nope); /* NOTREACHED */ return NULL; } /* - fast - step through the string at top speed == static char *fast(struct match *m, char *start, \ == char *stop, sopno startst, sopno stopst); */ static char * /* where tentative match ended, or NULL */ fast(m, start, stop, startst, stopst) struct match *m; char *start; char *stop; sopno startst; sopno stopst; { states st = m->st; states fresh = m->fresh; states tmp = m->tmp; char *p = start; int c = (start == m->beginp) ? OUT : *(start-1); int lastc; /* previous c */ int flagch; int i; char *coldp; /* last p after which no match was underway */ _DIAGASSERT(m != NULL); _DIAGASSERT(start != NULL); _DIAGASSERT(stop != NULL); CLEAR(st); SET1(st, startst); st = step(m->g, startst, stopst, st, NOTHING, st); ASSIGN(fresh, st); SP("start", st, *p); coldp = NULL; for (;;) { /* next character */ lastc = c; c = (p == m->endp) ? OUT : *p; if (EQ(st, fresh)) coldp = p; /* is there an EOL and/or BOL between lastc and c? */ flagch = '\0'; i = 0; if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || (lastc == OUT && !(m->eflags®_NOTBOL)) ) { flagch = BOL; i = m->g->nbol; } if ( (c == '\n' && m->g->cflags®_NEWLINE) || (c == OUT && !(m->eflags®_NOTEOL)) ) { flagch = (flagch == BOL) ? BOLEOL : EOL; i += m->g->neol; } if (i != 0) { for (; i > 0; i--) st = step(m->g, startst, stopst, st, flagch, st); SP("boleol", st, c); } /* how about a word boundary? */ if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && (c != OUT && ISWORD(c)) ) { flagch = BOW; } if ( (lastc != OUT && ISWORD(lastc)) && (flagch == EOL || (c != OUT && !ISWORD(c))) ) { flagch = EOW; } if (flagch == BOW || flagch == EOW) { st = step(m->g, startst, stopst, st, flagch, st); SP("boweow", st, c); } /* are we done? */ if (ISSET(st, stopst) || p == stop) break; /* NOTE BREAK OUT */ /* no, we must deal with this character */ ASSIGN(tmp, st); ASSIGN(st, fresh); assert(c != OUT); st = step(m->g, startst, stopst, tmp, c, st); SP("aft", st, c); assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); p++; } assert(coldp != NULL); m->coldp = coldp; if (ISSET(st, stopst)) return(p+1); else return(NULL); } /* - slow - step through the string more deliberately == static char *slow(struct match *m, char *start, \ == char *stop, sopno startst, sopno stopst); */ static char * /* where it ended */ slow(m, start, stop, startst, stopst) struct match *m; char *start; char *stop; sopno startst; sopno stopst; { states st = m->st; states empty = m->empty; states tmp = m->tmp; char *p = start; int c = (start == m->beginp) ? OUT : *(start-1); int lastc; /* previous c */ int flagch; int i; char *matchp; /* last p at which a match ended */ _DIAGASSERT(m != NULL); _DIAGASSERT(start != NULL); _DIAGASSERT(stop != NULL); AT("slow", start, stop, startst, stopst); CLEAR(st); SET1(st, startst); SP("sstart", st, *p); st = step(m->g, startst, stopst, st, NOTHING, st); matchp = NULL; for (;;) { /* next character */ lastc = c; c = (p == m->endp) ? OUT : *p; /* is there an EOL and/or BOL between lastc and c? */ flagch = '\0'; i = 0; if ( (lastc == '\n' && m->g->cflags®_NEWLINE) || (lastc == OUT && !(m->eflags®_NOTBOL)) ) { flagch = BOL; i = m->g->nbol; } if ( (c == '\n' && m->g->cflags®_NEWLINE) || (c == OUT && !(m->eflags®_NOTEOL)) ) { flagch = (flagch == BOL) ? BOLEOL : EOL; i += m->g->neol; } if (i != 0) { for (; i > 0; i--) st = step(m->g, startst, stopst, st, flagch, st); SP("sboleol", st, c); } /* how about a word boundary? */ if ( (flagch == BOL || (lastc != OUT && !ISWORD(lastc))) && (c != OUT && ISWORD(c)) ) { flagch = BOW; } if ( (lastc != OUT && ISWORD(lastc)) && (flagch == EOL || (c != OUT && !ISWORD(c))) ) { flagch = EOW; } if (flagch == BOW || flagch == EOW) { st = step(m->g, startst, stopst, st, flagch, st); SP("sboweow", st, c); } /* are we done? */ if (ISSET(st, stopst)) matchp = p; if (EQ(st, empty) || p == stop) break; /* NOTE BREAK OUT */ /* no, we must deal with this character */ ASSIGN(tmp, st); ASSIGN(st, empty); assert(c != OUT); st = step(m->g, startst, stopst, tmp, c, st); SP("saft", st, c); assert(EQ(step(m->g, startst, stopst, st, NOTHING, st), st)); p++; } return(matchp); } /* - step - map set of states reachable before char to set reachable after == static states step(struct re_guts *g, sopno start, sopno stop, \ == states bef, int ch, states aft); == #define BOL (OUT+1) == #define EOL (BOL+1) == #define BOLEOL (BOL+2) == #define NOTHING (BOL+3) == #define BOW (BOL+4) == #define EOW (BOL+5) == #define CODEMAX (BOL+5) // highest code used == #define NONCHAR(c) ((c) > CHAR_MAX) == #define NNONCHAR (CODEMAX-CHAR_MAX) */ static states step(g, start, stop, bef, ch, aft) struct re_guts *g; sopno start; /* start state within strip */ sopno stop; /* state after stop state within strip */ states bef; /* states reachable before */ int ch; /* character or NONCHAR code */ states aft; /* states already known reachable after */ { cset *cs; sop s; sopno pc; onestate here; /* note, macros know this name */ sopno look; int i; _DIAGASSERT(g != NULL); for (pc = start, INIT(here, pc); pc != stop; pc++, INC(here)) { s = g->strip[pc]; switch (OP(s)) { case OEND: assert(pc == stop-1); break; case OCHAR: /* only characters can match */ assert(!NONCHAR(ch) || ch != (char)OPND(s)); if (ch == (char)OPND(s)) FWD(aft, bef, 1); break; case OBOL: if (ch == BOL || ch == BOLEOL) FWD(aft, bef, 1); break; case OEOL: if (ch == EOL || ch == BOLEOL) FWD(aft, bef, 1); break; case OBOW: if (ch == BOW) FWD(aft, bef, 1); break; case OEOW: if (ch == EOW) FWD(aft, bef, 1); break; case OANY: if (!NONCHAR(ch)) FWD(aft, bef, 1); break; case OANYOF: cs = &g->sets[OPND(s)]; if (!NONCHAR(ch) && CHIN(cs, ch)) FWD(aft, bef, 1); break; case OBACK_: /* ignored here */ case O_BACK: FWD(aft, aft, 1); break; case OPLUS_: /* forward, this is just an empty */ FWD(aft, aft, 1); break; case O_PLUS: /* both forward and back */ FWD(aft, aft, 1); i = ISSETBACK(aft, OPND(s)); BACK(aft, aft, OPND(s)); if (!i && ISSETBACK(aft, OPND(s))) { /* oho, must reconsider loop body */ pc -= OPND(s) + 1; INIT(here, pc); } break; case OQUEST_: /* two branches, both forward */ FWD(aft, aft, 1); FWD(aft, aft, OPND(s)); break; case O_QUEST: /* just an empty */ FWD(aft, aft, 1); break; case OLPAREN: /* not significant here */ case ORPAREN: FWD(aft, aft, 1); break; case OCH_: /* mark the first two branches */ FWD(aft, aft, 1); assert(OP(g->strip[pc+OPND(s)]) == OOR2); FWD(aft, aft, OPND(s)); break; case OOR1: /* done a branch, find the O_CH */ if (ISSTATEIN(aft, here)) { for (look = 1; OP(s = g->strip[pc+look]) != O_CH; look += OPND(s)) assert(OP(s) == OOR2); FWD(aft, aft, look); } break; case OOR2: /* propagate OCH_'s marking */ FWD(aft, aft, 1); if (OP(g->strip[pc+OPND(s)]) != O_CH) { assert(OP(g->strip[pc+OPND(s)]) == OOR2); FWD(aft, aft, OPND(s)); } break; case O_CH: /* just empty */ FWD(aft, aft, 1); break; default: /* ooooops... */ assert(nope); break; } } return(aft); } #ifdef REDEBUG /* - print - print a set of states == #ifdef REDEBUG == static void print(struct match *m, char *caption, states st, \ == int ch, FILE *d); == #endif */ static void print(m, caption, st, ch, d) struct match *m; char *caption; states st; int ch; FILE *d; { struct re_guts *g = m->g; int i; int first = 1; _DIAGASSERT(m != NULL); _DIAGASSERT(caption != NULL); if (!(m->eflags®_TRACE)) return; _DIAGASSERT(d != NULL); fprintf(d, "%s", caption); if (ch != '\0') fprintf(d, " %s", pchar(ch)); for (i = 0; i < g->nstates; i++) if (ISSET(st, i)) { fprintf(d, "%s%d", (first) ? "\t" : ", ", i); first = 0; } fprintf(d, "\n"); } /* - at - print current situation == #ifdef REDEBUG == static void at(struct match *m, char *title, char *start, char *stop, \ == sopno startst, sopno stopst); == #endif */ static void at(m, title, start, stop, startst, stopst) struct match *m; char *title; char *start; char *stop; sopno startst; sopno stopst; { _DIAGASSERT(m != NULL); _DIAGASSERT(title != NULL); _DIAGASSERT(start != NULL); _DIAGASSERT(stop != NULL); if (!(m->eflags®_TRACE)) return; printf("%s %s-", title, pchar(*start)); printf("%s ", pchar(*stop)); printf("%ld-%ld\n", (long)startst, (long)stopst); } #ifndef PCHARDONE #define PCHARDONE /* never again */ /* - pchar - make a character printable == #ifdef REDEBUG == static char *pchar(int ch); == #endif * * Is this identical to regchar() over in debug.c? Well, yes. But a * duplicate here avoids having a debugging-capable regexec.o tied to * a matching debug.o, and this is convenient. It all disappears in * the non-debug compilation anyway, so it doesn't matter much. */ static char * /* -> representation */ pchar(ch) int ch; { static char pbuf[10]; if (isprint(ch) || ch == ' ') (void)snprintf(pbuf, sizeof pbuf, "%c", ch); else (void)snprintf(pbuf, sizeof pbuf, "\\%o", ch); return(pbuf); } #endif #endif #undef matcher #undef fast #undef slow #undef dissect #undef backref #undef step #undef print #undef at #undef match #undef nope libnbcompat-20180822/fparseln.c0000644000175000017500000001316513355271171016475 0ustar jgoerzenjgoerzen/* $NetBSD: fparseln.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1997 Christos Zoulas. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Christos Zoulas. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: fparseln.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #if HAVE_ERRNO_H #include #endif #include #include #include #if 0 #ifdef __weak_alias __weak_alias(fparseln,_fparseln) #endif #endif #if ! HAVE_FPARSELN #if 0 #ifndef HAVE_NBTOOL_CONFIG_H #include "reentrant.h" #include "local.h" #else #define FLOCKFILE(fp) #define FUNLOCKFILE(fp) #endif #endif #if 0 #if defined(_REENTRANT) && !HAVE_NBTOOL_CONFIG_H #define __fgetln(f, l) __fgetstr(f, l, '\n') #else #define __fgetln(f, l) fgetln(f, l) #endif #endif static int isescaped(const char *, const char *, int); /* isescaped(): * Return true if the character in *p that belongs to a string * that starts in *sp, is escaped by the escape character esc. */ static int isescaped(const char *sp, const char *p, int esc) { const char *cp; size_t ne; /* No escape character */ if (esc == '\0') return 1; /* Count the number of escape characters that precede ours */ for (ne = 0, cp = p; --cp >= sp && *cp == esc; ne++) continue; /* Return true if odd number of escape characters */ return (ne & 1) != 0; } /* fparseln(): * Read a line from a file parsing continuations ending in \ * and eliminating trailing newlines, or comments starting with * the comment char. */ char * fparseln(FILE *fp, size_t *size, size_t *lineno, const char str[3], int flags) { static const char dstr[3] = { '\\', '\\', '#' }; size_t s, len; char *buf; char *ptr, *cp; int cnt; char esc, con, nl, com; len = 0; buf = NULL; cnt = 1; if (str == NULL) str = dstr; esc = str[0]; con = str[1]; com = str[2]; /* * XXX: it would be cool to be able to specify the newline character, * but unfortunately, fgetln does not let us */ nl = '\n'; while (cnt) { cnt = 0; if (lineno) (*lineno)++; if ((ptr = fgetln(fp, &s)) == NULL) break; if (s && com) { /* Check and eliminate comments */ for (cp = ptr; cp < ptr + s; cp++) if (*cp == com && !isescaped(ptr, cp, esc)) { s = cp - ptr; cnt = s == 0 && buf == NULL; break; } } if (s && nl) { /* Check and eliminate newlines */ cp = &ptr[s - 1]; if (*cp == nl) s--; /* forget newline */ } if (s && con) { /* Check and eliminate continuations */ cp = &ptr[s - 1]; if (*cp == con && !isescaped(ptr, cp, esc)) { s--; /* forget escape */ cnt = 1; } } if (s == 0 && buf != NULL) continue; if ((cp = realloc(buf, len + s + 1)) == NULL) { free(buf); return NULL; } buf = cp; (void) memcpy(buf + len, ptr, s); len += s; buf[len] = '\0'; } if ((flags & FPARSELN_UNESCALL) != 0 && esc && buf != NULL && strchr(buf, esc) != NULL) { ptr = cp = buf; while (cp[0] != '\0') { int skipesc; while (cp[0] != '\0' && cp[0] != esc) *ptr++ = *cp++; if (cp[0] == '\0' || cp[1] == '\0') break; skipesc = 0; if (cp[1] == com) skipesc += (flags & FPARSELN_UNESCCOMM); if (cp[1] == con) skipesc += (flags & FPARSELN_UNESCCONT); if (cp[1] == esc) skipesc += (flags & FPARSELN_UNESCESC); if (cp[1] != com && cp[1] != con && cp[1] != esc) skipesc = (flags & FPARSELN_UNESCREST); if (skipesc) cp++; else *ptr++ = *cp++; *ptr++ = *cp++; } *ptr = '\0'; len = strlen(buf); } if (size) *size = len; return buf; } #ifdef TEST int main(int, char *[]); int main(int argc, char *argv[]) { char *ptr; size_t size, line; line = 0; while ((ptr = fparseln(stdin, &size, &line, NULL, FPARSELN_UNESCALL)) != NULL) printf("line %d (%d) |%s|\n", line, size, ptr); return 0; } /* # This is a test line 1 line 2 \ line 3 # Comment line 4 \# Not comment \\\\ # And a comment \ line 5 \\\ line 6 */ #endif /* TEST */ #endif /* ! HAVE_FPARSELN */ libnbcompat-20180822/getenv.c0000644000175000017500000000656213355271171016156 0ustar jgoerzenjgoerzen/* $NetBSD: getenv.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: getenv.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #include #if HAVE_ERRNO_H #include #endif #include #include #if 0 #include "local.h" #include "reentrant.h" #endif char *__findenv __P((const char *, int *)); #if 0 #ifdef _REENTRANT rwlock_t __environ_lock = RWLOCK_INITIALIZER; #endif #endif extern char **environ; #ifndef rwlock_rdlock #define rwlock_rdlock(lock) ((void)0) #endif #ifndef rwlock_unlock #define rwlock_unlock(lock) ((void)0) #endif /* * getenv -- * Returns ptr to value associated with name, if any, else NULL. */ char * getenv(name) const char *name; { int offset; char *result; _DIAGASSERT(name != NULL); rwlock_rdlock(&__environ_lock); result = __findenv(name, &offset); rwlock_unlock(&__environ_lock); return (result); } /* * __findenv -- * Returns pointer to value associated with name, if any, else NULL. * Sets offset to be the offset of the name/value combination in the * environmental array, for use by setenv(3) and unsetenv(3). * Explicitly removes '=' in argument name. * * This routine *should* be a static; don't use it. */ char * __findenv(name, offset) const char *name; int *offset; { size_t len; const char *np; char **p, *c; if (name == NULL || environ == NULL) return (NULL); for (np = name; *np && *np != '='; ++np) continue; len = np - name; for (p = environ; (c = *p) != NULL; ++p) if (strncmp(c, name, len) == 0 && c[len] == '=') { *offset = p - environ; return (c + len + 1); } return (NULL); } libnbcompat-20180822/getline.c0000644000175000017500000000341013355271171016302 0ustar jgoerzenjgoerzen/* $NetBSD: getline.c,v 1.2 2015/12/25 20:12:46 joerg Exp $ */ /* NetBSD-src: getline.c,v 1.2 2014/09/16 17:23:50 christos Exp */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Christos Zoulas. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #if !HAVE_GETLINE ssize_t getline(char **buf, size_t *bufsiz, FILE *fp) { return getdelim(buf, bufsiz, '\n', fp); } #endif libnbcompat-20180822/setprogname.c0000644000175000017500000000527313355271171017210 0ustar jgoerzenjgoerzen/* $NetBSD: setprogname.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 2001 Christopher G. Demetriou * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed for the * NetBSD Project. See http://www.NetBSD.org/ for * information about NetBSD. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * <> */ #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: setprogname.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ /* In NetBSD, the program name is set by crt0. It can't be overridden. */ #undef REALLY_SET_PROGNAME #define REALLY_SET_PROGNAME #if 0 #include "namespace.h" #endif #include #ifdef REALLY_SET_PROGNAME #include static const char *__progname = ""; #endif #if 0 #ifdef __weak_alias __weak_alias(getprogname,_getprogname) #endif #endif /*ARGSUSED*/ void setprogname(const char *progname) { #ifdef REALLY_SET_PROGNAME __progname = strrchr(progname, '/'); if (__progname == NULL) __progname = progname; else __progname++; #endif } const char * getprogname(void) { return (__progname); } libnbcompat-20180822/strsep.c0000644000175000017500000000571313355271171016203 0ustar jgoerzenjgoerzen/* $NetBSD: strsep.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)strsep.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: strsep.c,v 1.4 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #if 0 #ifdef __weak_alias __weak_alias(strsep,_strsep) #endif #endif #if !HAVE_STRSEP /* * Get next token from string *stringp, where tokens are possibly-empty * strings separated by characters from delim. * * Writes NULs into the string at *stringp to end tokens. * delim need not remain constant from call to call. * On return, *stringp points past the last NUL written (if there might * be further tokens), or is NULL (if there are definitely no more tokens). * * If *stringp is NULL, strsep returns NULL. */ char * strsep(stringp, delim) char **stringp; const char *delim; { char *s; const char *spanp; int c, sc; char *tok; _DIAGASSERT(stringp != NULL); _DIAGASSERT(delim != NULL); if ((s = *stringp) == NULL) return (NULL); for (tok = s;;) { c = *s++; spanp = delim; do { if ((sc = *spanp++) == c) { if (c == 0) s = NULL; else s[-1] = 0; *stringp = s; return (tok); } } while (sc != 0); } /* NOTREACHED */ } #endif libnbcompat-20180822/strlcat.c0000644000175000017500000000447113355271171016337 0ustar jgoerzenjgoerzen/* $NetBSD: strlcat.c,v 1.5 2004/08/31 17:55:17 jlam Exp $ */ /* $OpenBSD: strlcat.c,v 1.10 2003/04/12 21:56:39 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: strlcat.c,v 1.5 2004/08/31 17:55:17 jlam Exp $"); #endif /* LIBC_SCCS and not lint */ #ifdef _LIBC #undef _LIBC #endif #ifdef _LIBC #include "namespace.h" #endif #include #include #include #ifdef _LIBC # ifdef __weak_alias __weak_alias(strlcat, _strlcat) # endif #endif #if !HAVE_STRLCAT /* * Appends src to string dst of size siz (unlike strncat, siz is the * full size of dst, not space left). At most siz-1 characters * will be copied. Always NUL terminates (unless siz <= strlen(dst)). * Returns strlen(src) + MIN(siz, strlen(initial dst)). * If retval >= siz, truncation occurred. */ size_t #ifdef _LIBC _strlcat(dst, src, siz) #else strlcat(dst, src, siz) #endif char *dst; const char *src; size_t siz; { char *d = dst; const char *s = src; size_t n = siz; size_t dlen; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); /* Find the end of dst and adjust bytes left but don't go past end */ while (n-- != 0 && *d != '\0') d++; dlen = d - dst; n = siz - dlen; if (n == 0) return(dlen + strlen(s)); while (*s != '\0') { if (n != 1) { *d++ = *s; n--; } s++; } *d = '\0'; return(dlen + (s - src)); /* count does not include NUL */ } #endif libnbcompat-20180822/fnmatch.c0000644000175000017500000001336213355271171016302 0ustar jgoerzenjgoerzen/* $NetBSD: fnmatch.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1989, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Guido van Rossum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; #else __RCSID("$NetBSD: fnmatch.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ /* * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6. * Compares a filename or pathname to a pattern. */ #if 0 #include "namespace.h" #endif #include #include #include #include #define EOS '\0' static const char *rangematch(const char *, int, int); static int foldcase(int ch, int flags) { if ((flags & FNM_CASEFOLD) != 0 && isupper(ch)) return (tolower(ch)); return (ch); } #define FOLDCASE(ch, flags) foldcase((unsigned char)(ch), (flags)) int fnmatch(pattern, string, flags) const char *pattern, *string; int flags; { const char *stringstart; char c, test; _DIAGASSERT(pattern != NULL); _DIAGASSERT(string != NULL); for (stringstart = string;;) switch (c = FOLDCASE(*pattern++, flags)) { case EOS: if ((flags & FNM_LEADING_DIR) && *string == '/') return (0); return (*string == EOS ? 0 : FNM_NOMATCH); case '?': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && (flags & FNM_PATHNAME)) return (FNM_NOMATCH); if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); ++string; break; case '*': c = FOLDCASE(*pattern, flags); /* Collapse multiple stars. */ while (c == '*') c = FOLDCASE(*++pattern, flags); if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); /* Optimize for pattern with * at end or before /. */ if (c == EOS) { if (flags & FNM_PATHNAME) return ((flags & FNM_LEADING_DIR) || strchr(string, '/') == NULL ? 0 : FNM_NOMATCH); else return (0); } else if (c == '/' && flags & FNM_PATHNAME) { if ((string = strchr(string, '/')) == NULL) return (FNM_NOMATCH); break; } /* General case, use recursion. */ while ((test = FOLDCASE(*string, flags)) != EOS) { if (!fnmatch(pattern, string, flags & ~FNM_PERIOD)) return (0); if (test == '/' && flags & FNM_PATHNAME) break; ++string; } return (FNM_NOMATCH); case '[': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && flags & FNM_PATHNAME) return (FNM_NOMATCH); if ((pattern = rangematch(pattern, FOLDCASE(*string, flags), flags)) == NULL) return (FNM_NOMATCH); ++string; break; case '\\': if (!(flags & FNM_NOESCAPE)) { if ((c = FOLDCASE(*pattern++, flags)) == EOS) { c = '\\'; --pattern; } } /* FALLTHROUGH */ default: if (c != FOLDCASE(*string++, flags)) return (FNM_NOMATCH); break; } /* NOTREACHED */ } static const char * rangematch(pattern, test, flags) const char *pattern; int test, flags; { int negate, ok; char c, c2; _DIAGASSERT(pattern != NULL); /* * A bracket expression starting with an unquoted circumflex * character produces unspecified results (IEEE 1003.2-1992, * 3.13.2). This implementation treats it like '!', for * consistency with the regular expression syntax. * J.T. Conklin (conklin@ngai.kaleida.com) */ if ((negate = (*pattern == '!' || *pattern == '^')) != 0) ++pattern; for (ok = 0; (c = FOLDCASE(*pattern++, flags)) != ']';) { if (c == '\\' && !(flags & FNM_NOESCAPE)) c = FOLDCASE(*pattern++, flags); if (c == EOS) return (NULL); if (*pattern == '-' && (c2 = FOLDCASE(*(pattern+1), flags)) != EOS && c2 != ']') { pattern += 2; if (c2 == '\\' && !(flags & FNM_NOESCAPE)) c2 = FOLDCASE(*pattern++, flags); if (c2 == EOS) return (NULL); if (c <= test && test <= c2) ok = 1; } else if (c == test) ok = 1; } return (ok == negate ? NULL : pattern); } libnbcompat-20180822/lutimes.c0000644000175000017500000000364413355271171016346 0ustar jgoerzenjgoerzen/* $NetBSD: lutimes.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Grant Beattie. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ /* Emulate lutimes(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chmod(2) */ #include #include #include int lutimes(const char *path, const struct timeval *times) { struct stat psb; if (lstat(path, &psb) == -1) return -1; if (S_ISLNK(psb.st_mode)) { return 0; } return (utimes(path, times)); } libnbcompat-20180822/fts.c0000644000175000017500000000033013355271171015445 0ustar jgoerzenjgoerzen/* $NetBSD: fts.c,v 1.1 2004/08/23 03:32:12 jlam Exp $ */ /* * Written by Jason R. Thorpe , October 21, 1997. * Public domain. */ #if 0 #define __LIBC12_SOURCE__ #endif #include "__fts13.c" libnbcompat-20180822/sha1hl.c0000644000175000017500000000506113355271171016037 0ustar jgoerzenjgoerzen/* $NetBSD: sha1hl.c,v 1.8 2008/10/06 12:36:20 joerg Exp $ */ /* sha1hl.c * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- */ #if 0 #include "namespace.h" #endif #include #include #if HAVE_SYS_FILE_H #include #endif #include #if HAVE_SYS_UIO_H #include #endif #include #if HAVE_ERRNO_H #include #endif #if HAVE_FCNTL_H #include #endif #include #include #include #include #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_SHA1_H #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: sha1hl.c,v 1.8 2008/10/06 12:36:20 joerg Exp $"); #endif /* LIBC_SCCS and not lint */ #if 0 #if defined(__weak_alias) __weak_alias(SHA1End,_SHA1End) __weak_alias(SHA1File,_SHA1File) __weak_alias(SHA1Data,_SHA1Data) #endif #endif /* ARGSUSED */ char * SHA1End(ctx, buf) SHA1_CTX *ctx; char *buf; { int i; char *p = buf; unsigned char digest[20]; static const char hex[]="0123456789abcdef"; _DIAGASSERT(ctx != NULL); /* buf may be NULL */ if (p == NULL && (p = malloc(41)) == NULL) return 0; SHA1Final(digest,ctx); for (i = 0; i < 20; i++) { p[i + i] = hex[((uint32_t)digest[i]) >> 4]; p[i + i + 1] = hex[digest[i] & 0x0f]; } p[i + i] = '\0'; return(p); } char * SHA1File (filename, buf) char *filename; char *buf; { unsigned char buffer[BUFSIZ]; SHA1_CTX ctx; int fd, num, oerrno; _DIAGASSERT(filename != NULL); /* XXX: buf may be NULL ? */ SHA1Init(&ctx); if ((fd = open(filename,O_RDONLY)) < 0) return(0); while ((num = read(fd, buffer, sizeof(buffer))) > 0) SHA1Update(&ctx, buffer, (size_t)num); oerrno = errno; close(fd); errno = oerrno; return(num < 0 ? 0 : SHA1End(&ctx, buf)); } char * SHA1Data (data, len, buf) const unsigned char *data; size_t len; char *buf; { SHA1_CTX ctx; _DIAGASSERT(data != NULL); /* XXX: buf may be NULL ? */ SHA1Init(&ctx); SHA1Update(&ctx, data, len); return(SHA1End(&ctx, buf)); } #endif /* HAVE_SHA1_H */ libnbcompat-20180822/lchown.c0000644000175000017500000000364313355271171016155 0ustar jgoerzenjgoerzen/* $NetBSD: lchown.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Luke Mewburn. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ /* Emulate lchown(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chown(2) */ #include #include #include int lchown(const char *path, uid_t owner, gid_t group) { struct stat psb; if (lstat(path, &psb) == -1) return -1; if (S_ISLNK(psb.st_mode)) { return 0; } return (chown(path, owner, group)); } libnbcompat-20180822/lchmod.c0000644000175000017500000000361613355271171016131 0ustar jgoerzenjgoerzen/* $NetBSD: lchmod.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Luke Mewburn. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ /* Emulate lchmod(2), checking path with lstat(2) first to ensure that * it's not a symlink, and then call chmod(2) */ #include #include #include int lchmod(const char *path, mode_t mode) { struct stat psb; if (lstat(path, &psb) == -1) return -1; if (S_ISLNK(psb.st_mode)) { return 0; } return (chmod(path, mode)); } libnbcompat-20180822/nbcompat.h0000644000175000017500000000633413355271171016473 0ustar jgoerzenjgoerzen/* $NetBSD: nbcompat.h,v 1.43 2009/04/13 11:30:46 joerg Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include #include #if HAVE_ERRNO_H #include #endif #if HAVE_STDARG_H #include #endif #if HAVE_STDDEF_H #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if HAVE_NBCOMPAT_POLL # if HAVE_POLL_H # undef HAVE_POLL_H # endif # if HAVE_SYS_POLL_H # undef HAVE_SYS_POLL_H # endif # include #endif #if HAVE_NBCOMPAT_FTS # if HAVE_FTS_H # undef HAVE_FTS_H # endif # include #endif #if HAVE_NBCOMPAT_GLOB # if HAVE_GLOB_H # undef HAVE_GLOB_H # endif # include #endif #if HAVE_NBCOMPAT_REGEX # if HAVE_REGEX_H # undef HAVE_REGEX_H # endif # include #endif #if HAVE_NBCOMPAT_MD5INIT # if HAVE_MD5_H # undef HAVE_MD5_H # endif #endif #if HAVE_NBCOMPAT_MD5 # if HAVE_MD5_H # undef HAVE_MD5_H # endif #endif #if HAVE_NBCOMPAT_RMD160 # if HAVE_RMD160_H # undef HAVE_RMD160_H # endif #endif #if HAVE_NBCOMPAT_SHA1 # if HAVE_SHA1_H # undef HAVE_SHA1_H # endif #endif #if HAVE_NBCOMPAT_VIS # if HAVE_VIS_H # undef HAVE_VIS_H # endif # include #endif #if !HAVE_GETOPT_H || !HAVE_STRUCT_OPTION # undef HAVE_GETOPT_H # include #endif libnbcompat-20180822/asprintf.c0000644000175000017500000000535713355271171016515 0ustar jgoerzenjgoerzen/* $NetBSD: asprintf.c,v 1.3 2012/07/02 16:02:53 joerg Exp $ */ /*- * Copyright (c) 2007 Joerg Sonnenberger . * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #include #ifdef HAVE_STDARG_H #include #endif int asprintf(char **ret, const char *fmt, ...) { va_list ap; int retval; va_start(ap, fmt); retval = vasprintf(ret, fmt, ap); va_end(ap); return retval; } int vasprintf(char **ret, const char *fmt, va_list ap) { char *buf, *new_buf; size_t len; int retval; va_list ap2; len = 128; buf = malloc(len); if (buf == NULL) { *ret = NULL; return -1; } #if defined(HAVE_VA_COPY) va_copy(ap2, ap); #define my_va_end(ap2) va_end(ap2) #elif defined(HAVE___BUILTIN_VA_COPY) __builtin_va_copy(ap2, ap); #define my_va_end(ap2) __builtin_va_end(ap2) #else ap2 = ap; #define my_va_end(ap2) do {} while (0) #endif retval = vsnprintf(buf, len, fmt, ap); if (retval < 0) { free(buf); *ret = NULL; va_end(ap2); return -1; } if (retval < len) { new_buf = realloc(buf, retval + 1); if (new_buf == NULL) *ret = buf; else *ret = new_buf; my_va_end(ap2); return retval; } len = (size_t)retval + 1; free(buf); buf = malloc(len); if (buf == NULL) { *ret = NULL; my_va_end(ap2); return -1; } retval = vsnprintf(buf, len, fmt, ap2); my_va_end(ap2); if (retval != len - 1) { free(buf); *ret = NULL; return -1; } *ret = buf; return retval; } libnbcompat-20180822/regcomp.c0000644000175000017500000012552713355271171016325 0ustar jgoerzenjgoerzen/* $NetBSD: regcomp.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regcomp.c 8.5 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regcomp.c 8.5 (Berkeley) 3/20/94 */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regcomp.c 8.5 (Berkeley) 3/20/94"; #else __RCSID("$NetBSD: regcomp.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(regcomp,_regcomp) #endif #endif #include "private/utils.h" #include "private/regex2.h" #include "private/cclass.h" #include "private/cname.h" /* * parse structure, passed up and down to avoid global variables and * other clumsinesses */ struct parse { char *next; /* next character in RE */ char *end; /* end of string (-> NUL normally) */ int error; /* has an error been seen? */ sop *strip; /* malloced strip */ sopno ssize; /* malloced strip size (allocated) */ sopno slen; /* malloced strip length (used) */ int ncsalloc; /* number of csets allocated */ struct re_guts *g; # define NPAREN 10 /* we need to remember () 1-9 for back refs */ sopno pbegin[NPAREN]; /* -> ( ([0] unused) */ sopno pend[NPAREN]; /* -> ) ([0] unused) */ }; /* ========= begin header generated by ./mkh ========= */ #ifdef __cplusplus extern "C" { #endif /* === regcomp.c === */ static void p_ere __P((struct parse *p, int stop)); static void p_ere_exp __P((struct parse *p)); static void p_str __P((struct parse *p)); static void p_bre __P((struct parse *p, int end1, int end2)); static int p_simp_re __P((struct parse *p, int starordinary)); static int p_count __P((struct parse *p)); static void p_bracket __P((struct parse *p)); static void p_b_term __P((struct parse *p, cset *cs)); static void p_b_cclass __P((struct parse *p, cset *cs)); static void p_b_eclass __P((struct parse *p, cset *cs)); static char p_b_symbol __P((struct parse *p)); static char p_b_coll_elem __P((struct parse *p, int endc)); static char othercase __P((int ch)); static void bothcases __P((struct parse *p, int ch)); static void ordinary __P((struct parse *p, int ch)); static void nonnewline __P((struct parse *p)); static void repeat __P((struct parse *p, sopno start, int from, int to)); static int seterr __P((struct parse *p, int e)); static cset *allocset __P((struct parse *p)); static void freeset __P((struct parse *p, cset *cs)); static int freezeset __P((struct parse *p, cset *cs)); static int firstch __P((struct parse *p, cset *cs)); static int nch __P((struct parse *p, cset *cs)); static void mcadd __P((struct parse *p, cset *cs, const char *cp)); #if 0 static void mcsub __P((cset *cs, char *cp)); static int mcin __P((cset *cs, char *cp)); static char *mcfind __P((cset *cs, char *cp)); #endif static void mcinvert __P((struct parse *p, cset *cs)); static void mccase __P((struct parse *p, cset *cs)); static int isinsets __P((struct re_guts *g, int c)); static int samesets __P((struct re_guts *g, int c1, int c2)); static void categorize __P((struct parse *p, struct re_guts *g)); static sopno dupl __P((struct parse *p, sopno start, sopno finish)); static void doemit __P((struct parse *p, sop op, sopno opnd)); static void doinsert __P((struct parse *p, sop op, sopno opnd, sopno pos)); static void dofwd __P((struct parse *p, sopno pos, sopno value)); static void enlarge __P((struct parse *p, sopno size)); static void stripsnug __P((struct parse *p, struct re_guts *g)); static void findmust __P((struct parse *p, struct re_guts *g)); static sopno pluscount __P((struct parse *p, struct re_guts *g)); #ifdef __cplusplus } #endif /* ========= end header generated by ./mkh ========= */ static char nuls[10]; /* place to point scanner in event of error */ /* * macros for use with parse structure * BEWARE: these know that the parse structure is named `p' !!! */ #define PEEK() (*p->next) #define PEEK2() (*(p->next+1)) #define MORE() (p->next < p->end) #define MORE2() (p->next+1 < p->end) #define SEE(c) (MORE() && PEEK() == (c)) #define SEETWO(a, b) (MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b)) #define EAT(c) ((SEE(c)) ? (NEXT(), 1) : 0) #define EATTWO(a, b) ((SEETWO(a, b)) ? (NEXT2(), 1) : 0) #define NEXT() (p->next++) #define NEXT2() (p->next += 2) #define NEXTn(n) (p->next += (n)) #define GETNEXT() (*p->next++) #define SETERROR(e) seterr(p, (e)) #define REQUIRE(co, e) (void) ((co) || SETERROR(e)) #define MUSTSEE(c, e) (REQUIRE(MORE() && PEEK() == (c), e)) #define MUSTEAT(c, e) (void) (REQUIRE(MORE() && GETNEXT() == (c), e)) #define MUSTNOTSEE(c, e) (REQUIRE(!MORE() || PEEK() != (c), e)) #define EMIT(op, sopnd) doemit(p, (sop)(op), sopnd) #define INSERT(op, pos) doinsert(p, (sop)(op), HERE()-(pos)+1, pos) #define AHEAD(pos) dofwd(p, pos, HERE()-(pos)) #define ASTERN(sop, pos) EMIT(sop, HERE()-pos) #define HERE() (p->slen) #define THERE() (p->slen - 1) #define THERETHERE() (p->slen - 2) #define DROP(n) (p->slen -= (n)) #ifndef NDEBUG static int never = 0; /* for use in asserts; shuts lint up */ #else #define never 0 /* some s have bugs too */ #endif /* - regcomp - interface for parser and compilation = extern int regcomp(regex_t *, const char *, int); = #define REG_BASIC 0000 = #define REG_EXTENDED 0001 = #define REG_ICASE 0002 = #define REG_NOSUB 0004 = #define REG_NEWLINE 0010 = #define REG_NOSPEC 0020 = #define REG_PEND 0040 = #define REG_DUMP 0200 */ int /* 0 success, otherwise REG_something */ regcomp(preg, pattern, cflags) regex_t *preg; const char *pattern; int cflags; { struct parse pa; struct re_guts *g; struct parse *p = &pa; int i; size_t len; #ifdef REDEBUG # define GOODFLAGS(f) (f) #else # define GOODFLAGS(f) ((f)&~REG_DUMP) #endif _DIAGASSERT(preg != NULL); _DIAGASSERT(pattern != NULL); cflags = GOODFLAGS(cflags); if ((cflags®_EXTENDED) && (cflags®_NOSPEC)) return(REG_INVARG); if (cflags®_PEND) { if (preg->re_endp < pattern) return(REG_INVARG); len = preg->re_endp - pattern; } else len = strlen(pattern); /* do the mallocs early so failure handling is easy */ g = (struct re_guts *)malloc(sizeof(struct re_guts) + (NC-1)*sizeof(cat_t)); if (g == NULL) return(REG_ESPACE); p->ssize = len/(size_t)2*(size_t)3 + (size_t)1; /* ugh */ p->strip = (sop *)malloc(p->ssize * sizeof(sop)); p->slen = 0; if (p->strip == NULL) { free(g); return(REG_ESPACE); } /* set things up */ p->g = g; /* LINTED convenience; we do not modify it */ p->next = (char *)pattern; p->end = p->next + len; p->error = 0; p->ncsalloc = 0; for (i = 0; i < NPAREN; i++) { p->pbegin[i] = 0; p->pend[i] = 0; } g->csetsize = NC; g->sets = NULL; g->setbits = NULL; g->ncsets = 0; g->cflags = cflags; g->iflags = 0; g->nbol = 0; g->neol = 0; g->must = NULL; g->mlen = 0; g->nsub = 0; g->ncategories = 1; /* category 0 is "everything else" */ g->categories = &g->catspace[-(CHAR_MIN)]; (void) memset((char *)g->catspace, 0, NC*sizeof(cat_t)); g->backrefs = 0; /* do it */ EMIT(OEND, 0); g->firststate = THERE(); if (cflags®_EXTENDED) p_ere(p, OUT); else if (cflags®_NOSPEC) p_str(p); else p_bre(p, OUT, OUT); EMIT(OEND, 0); g->laststate = THERE(); /* tidy up loose ends and fill things in */ categorize(p, g); stripsnug(p, g); findmust(p, g); g->nplus = pluscount(p, g); g->magic = MAGIC2; preg->re_nsub = g->nsub; preg->re_g = g; preg->re_magic = MAGIC1; #ifndef REDEBUG /* not debugging, so can't rely on the assert() in regexec() */ if (g->iflags&BAD) SETERROR(REG_ASSERT); #endif /* win or lose, we're done */ if (p->error != 0) /* lose */ regfree(preg); return(p->error); } /* - p_ere - ERE parser top level, concatenation and alternation == static void p_ere(struct parse *p, int stop); */ static void p_ere(p, stop) struct parse *p; int stop; /* character this ERE should end at */ { char c; sopno prevback = 0; /* pacify gcc */ sopno prevfwd = 0; /* pacify gcc */ sopno conc; int first = 1; /* is this the first alternative? */ _DIAGASSERT(p != NULL); for (;;) { /* do a bunch of concatenated expressions */ conc = HERE(); while (MORE() && (c = PEEK()) != '|' && c != stop) p_ere_exp(p); REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */ if (!EAT('|')) break; /* NOTE BREAK OUT */ if (first) { INSERT(OCH_, conc); /* offset is wrong */ prevfwd = conc; prevback = conc; first = 0; } ASTERN(OOR1, prevback); prevback = THERE(); AHEAD(prevfwd); /* fix previous offset */ prevfwd = HERE(); EMIT(OOR2, 0); /* offset is very wrong */ } if (!first) { /* tail-end fixups */ AHEAD(prevfwd); ASTERN(O_CH, prevback); } assert(!MORE() || SEE(stop)); } /* - p_ere_exp - parse one subERE, an atom possibly followed by a repetition op == static void p_ere_exp(struct parse *p); */ static void p_ere_exp(p) struct parse *p; { char c; sopno pos; int count; int count2; sopno subno; int wascaret = 0; _DIAGASSERT(p != NULL); assert(MORE()); /* caller should have ensured this */ c = GETNEXT(); pos = HERE(); switch (c) { case '(': REQUIRE(MORE(), REG_EPAREN); p->g->nsub++; subno = p->g->nsub; if (subno < NPAREN) p->pbegin[subno] = HERE(); EMIT(OLPAREN, subno); if (!SEE(')')) p_ere(p, ')'); if (subno < NPAREN) { p->pend[subno] = HERE(); assert(p->pend[subno] != 0); } EMIT(ORPAREN, subno); MUSTEAT(')', REG_EPAREN); break; #ifndef POSIX_MISTAKE case ')': /* happens only if no current unmatched ( */ /* * You may ask, why the ifndef? Because I didn't notice * this until slightly too late for 1003.2, and none of the * other 1003.2 regular-expression reviewers noticed it at * all. So an unmatched ) is legal POSIX, at least until * we can get it fixed. */ SETERROR(REG_EPAREN); break; #endif case '^': EMIT(OBOL, 0); p->g->iflags |= USEBOL; p->g->nbol++; wascaret = 1; break; case '$': EMIT(OEOL, 0); p->g->iflags |= USEEOL; p->g->neol++; break; case '|': SETERROR(REG_EMPTY); break; case '*': case '+': case '?': SETERROR(REG_BADRPT); break; case '.': if (p->g->cflags®_NEWLINE) nonnewline(p); else EMIT(OANY, 0); break; case '[': p_bracket(p); break; case '\\': REQUIRE(MORE(), REG_EESCAPE); c = GETNEXT(); ordinary(p, c); break; case '{': /* okay as ordinary except if digit follows */ REQUIRE(!MORE() || !isdigit((unsigned char)PEEK()), REG_BADRPT); /* FALLTHROUGH */ default: ordinary(p, c); break; } if (!MORE()) return; c = PEEK(); /* we call { a repetition if followed by a digit */ if (!( c == '*' || c == '+' || c == '?' || (c == '{' && MORE2() && isdigit((unsigned char)PEEK2())) )) return; /* no repetition, we're done */ NEXT(); REQUIRE(!wascaret, REG_BADRPT); switch (c) { case '*': /* implemented as +? */ /* this case does not require the (y|) trick, noKLUDGE */ INSERT(OPLUS_, pos); ASTERN(O_PLUS, pos); INSERT(OQUEST_, pos); ASTERN(O_QUEST, pos); break; case '+': INSERT(OPLUS_, pos); ASTERN(O_PLUS, pos); break; case '?': /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ INSERT(OCH_, pos); /* offset slightly wrong */ ASTERN(OOR1, pos); /* this one's right */ AHEAD(pos); /* fix the OCH_ */ EMIT(OOR2, 0); /* offset very wrong... */ AHEAD(THERE()); /* ...so fix it */ ASTERN(O_CH, THERETHERE()); break; case '{': count = p_count(p); if (EAT(',')) { if (isdigit((unsigned char)PEEK())) { count2 = p_count(p); REQUIRE(count <= count2, REG_BADBR); } else /* single number with comma */ count2 = INFINITY; } else /* just a single number */ count2 = count; repeat(p, pos, count, count2); if (!EAT('}')) { /* error heuristics */ while (MORE() && PEEK() != '}') NEXT(); REQUIRE(MORE(), REG_EBRACE); SETERROR(REG_BADBR); } break; } if (!MORE()) return; c = PEEK(); if (!( c == '*' || c == '+' || c == '?' || (c == '{' && MORE2() && isdigit((unsigned char)PEEK2())) ) ) return; SETERROR(REG_BADRPT); } /* - p_str - string (no metacharacters) "parser" == static void p_str(struct parse *p); */ static void p_str(p) struct parse *p; { _DIAGASSERT(p != NULL); REQUIRE(MORE(), REG_EMPTY); while (MORE()) ordinary(p, GETNEXT()); } /* - p_bre - BRE parser top level, anchoring and concatenation == static void p_bre(struct parse *p, int end1, \ == int end2); * Giving end1 as OUT essentially eliminates the end1/end2 check. * * This implementation is a bit of a kludge, in that a trailing $ is first * taken as an ordinary character and then revised to be an anchor. The * only undesirable side effect is that '$' gets included as a character * category in such cases. This is fairly harmless; not worth fixing. * The amount of lookahead needed to avoid this kludge is excessive. */ static void p_bre(p, end1, end2) struct parse *p; int end1; /* first terminating character */ int end2; /* second terminating character */ { sopno start; int first = 1; /* first subexpression? */ int wasdollar = 0; _DIAGASSERT(p != NULL); start = HERE(); if (EAT('^')) { EMIT(OBOL, 0); p->g->iflags |= USEBOL; p->g->nbol++; } while (MORE() && !SEETWO(end1, end2)) { wasdollar = p_simp_re(p, first); first = 0; } if (wasdollar) { /* oops, that was a trailing anchor */ DROP(1); EMIT(OEOL, 0); p->g->iflags |= USEEOL; p->g->neol++; } REQUIRE(HERE() != start, REG_EMPTY); /* require nonempty */ } /* - p_simp_re - parse a simple RE, an atom possibly followed by a repetition == static int p_simp_re(struct parse *p, int starordinary); */ static int /* was the simple RE an unbackslashed $? */ p_simp_re(p, starordinary) struct parse *p; int starordinary; /* is a leading * an ordinary character? */ { int c; int count; int count2; sopno pos; int i; sopno subno; # define BACKSL (1<g->cflags®_NEWLINE) nonnewline(p); else EMIT(OANY, 0); break; case '[': p_bracket(p); break; case BACKSL|'{': SETERROR(REG_BADRPT); break; case BACKSL|'(': p->g->nsub++; subno = p->g->nsub; if (subno < NPAREN) p->pbegin[subno] = HERE(); EMIT(OLPAREN, subno); /* the MORE here is an error heuristic */ if (MORE() && !SEETWO('\\', ')')) p_bre(p, '\\', ')'); if (subno < NPAREN) { p->pend[subno] = HERE(); assert(p->pend[subno] != 0); } EMIT(ORPAREN, subno); REQUIRE(EATTWO('\\', ')'), REG_EPAREN); break; case BACKSL|')': /* should not get here -- must be user */ case BACKSL|'}': SETERROR(REG_EPAREN); break; case BACKSL|'1': case BACKSL|'2': case BACKSL|'3': case BACKSL|'4': case BACKSL|'5': case BACKSL|'6': case BACKSL|'7': case BACKSL|'8': case BACKSL|'9': i = (c&~BACKSL) - '0'; assert(i < NPAREN); if (p->pend[i] != 0) { assert(i <= p->g->nsub); EMIT(OBACK_, i); assert(p->pbegin[i] != 0); assert(OP(p->strip[p->pbegin[i]]) == OLPAREN); assert(OP(p->strip[p->pend[i]]) == ORPAREN); (void) dupl(p, p->pbegin[i]+1, p->pend[i]); EMIT(O_BACK, i); } else SETERROR(REG_ESUBREG); p->g->backrefs = 1; break; case '*': REQUIRE(starordinary, REG_BADRPT); /* FALLTHROUGH */ default: ordinary(p, c &~ BACKSL); break; } if (EAT('*')) { /* implemented as +? */ /* this case does not require the (y|) trick, noKLUDGE */ INSERT(OPLUS_, pos); ASTERN(O_PLUS, pos); INSERT(OQUEST_, pos); ASTERN(O_QUEST, pos); } else if (EATTWO('\\', '{')) { count = p_count(p); if (EAT(',')) { if (MORE() && isdigit((unsigned char)PEEK())) { count2 = p_count(p); REQUIRE(count <= count2, REG_BADBR); } else /* single number with comma */ count2 = INFINITY; } else /* just a single number */ count2 = count; repeat(p, pos, count, count2); if (!EATTWO('\\', '}')) { /* error heuristics */ while (MORE() && !SEETWO('\\', '}')) NEXT(); REQUIRE(MORE(), REG_EBRACE); SETERROR(REG_BADBR); } } else if (c == (unsigned char)'$') /* $ (but not \$) ends it */ return(1); return(0); } /* - p_count - parse a repetition count == static int p_count(struct parse *p); */ static int /* the value */ p_count(p) struct parse *p; { int count = 0; int ndigits = 0; _DIAGASSERT(p != NULL); while (MORE() && isdigit((unsigned char)PEEK()) && count <= DUPMAX) { count = count*10 + (GETNEXT() - '0'); ndigits++; } REQUIRE(ndigits > 0 && count <= DUPMAX, REG_BADBR); return(count); } /* - p_bracket - parse a bracketed character list == static void p_bracket(struct parse *p); * * Note a significant property of this code: if the allocset() did SETERROR, * no set operations are done. */ static void p_bracket(p) struct parse *p; { cset *cs; int invert = 0; _DIAGASSERT(p != NULL); cs = allocset(p); /* Dept of Truly Sickening Special-Case Kludges */ if (p->next + 5 < p->end && strncmp(p->next, "[:<:]]", (size_t)6) == 0) { EMIT(OBOW, 0); NEXTn(6); return; } if (p->next + 5 < p->end && strncmp(p->next, "[:>:]]", (size_t)6) == 0) { EMIT(OEOW, 0); NEXTn(6); return; } if (EAT('^')) invert++; /* make note to invert set at end */ if (EAT(']')) CHadd(cs, ']'); else if (EAT('-')) CHadd(cs, '-'); while (MORE() && PEEK() != ']' && !SEETWO('-', ']')) p_b_term(p, cs); if (EAT('-')) CHadd(cs, '-'); MUSTEAT(']', REG_EBRACK); if (p->error != 0) /* don't mess things up further */ return; if (p->g->cflags®_ICASE) { int i; int ci; for (i = p->g->csetsize - 1; i >= 0; i--) if (CHIN(cs, i) && isalpha(i)) { ci = othercase(i); if (ci != i) CHadd(cs, ci); } if (cs->multis != NULL) mccase(p, cs); } if (invert) { int i; for (i = p->g->csetsize - 1; i >= 0; i--) if (CHIN(cs, i)) CHsub(cs, i); else CHadd(cs, i); if (p->g->cflags®_NEWLINE) CHsub(cs, '\n'); if (cs->multis != NULL) mcinvert(p, cs); } assert(cs->multis == NULL); /* xxx */ if (nch(p, cs) == 1) { /* optimize singleton sets */ ordinary(p, firstch(p, cs)); freeset(p, cs); } else EMIT(OANYOF, freezeset(p, cs)); } /* - p_b_term - parse one term of a bracketed character list == static void p_b_term(struct parse *p, cset *cs); */ static void p_b_term(p, cs) struct parse *p; cset *cs; { char c; char start, finish; int i; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); /* classify what we've got */ switch ((MORE()) ? PEEK() : '\0') { case '[': c = (MORE2()) ? PEEK2() : '\0'; break; case '-': SETERROR(REG_ERANGE); return; /* NOTE RETURN */ default: c = '\0'; break; } switch (c) { case ':': /* character class */ NEXT2(); REQUIRE(MORE(), REG_EBRACK); c = PEEK(); REQUIRE(c != '-' && c != ']', REG_ECTYPE); p_b_cclass(p, cs); REQUIRE(MORE(), REG_EBRACK); REQUIRE(EATTWO(':', ']'), REG_ECTYPE); break; case '=': /* equivalence class */ NEXT2(); REQUIRE(MORE(), REG_EBRACK); c = PEEK(); REQUIRE(c != '-' && c != ']', REG_ECOLLATE); p_b_eclass(p, cs); REQUIRE(MORE(), REG_EBRACK); REQUIRE(EATTWO('=', ']'), REG_ECOLLATE); break; default: /* symbol, ordinary character, or range */ /* xxx revision needed for multichar stuff */ start = p_b_symbol(p); if (SEE('-') && MORE2() && PEEK2() != ']') { /* range */ NEXT(); if (EAT('-')) finish = '-'; else finish = p_b_symbol(p); } else finish = start; /* xxx what about signed chars here... */ REQUIRE(start <= finish, REG_ERANGE); for (i = start; i <= finish; i++) CHadd(cs, i); break; } } /* - p_b_cclass - parse a character-class name and deal with it == static void p_b_cclass(struct parse *p, cset *cs); */ static void p_b_cclass(p, cs) struct parse *p; cset *cs; { char *sp; const struct cclass *cp; size_t len; const char *u; char c; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); sp = p->next; while (MORE() && isalpha((unsigned char)PEEK())) NEXT(); len = p->next - sp; for (cp = cclasses; cp->name != NULL; cp++) if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') break; if (cp->name == NULL) { /* oops, didn't find it */ SETERROR(REG_ECTYPE); return; } u = cp->chars; while ((c = *u++) != '\0') CHadd(cs, c); for (u = cp->multis; *u != '\0'; u += strlen(u) + 1) MCadd(p, cs, u); } /* - p_b_eclass - parse an equivalence-class name and deal with it == static void p_b_eclass(struct parse *p, cset *cs); * * This implementation is incomplete. xxx */ static void p_b_eclass(p, cs) struct parse *p; cset *cs; { char c; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); c = p_b_coll_elem(p, '='); CHadd(cs, c); } /* - p_b_symbol - parse a character or [..]ed multicharacter collating symbol == static char p_b_symbol(struct parse *p); */ static char /* value of symbol */ p_b_symbol(p) struct parse *p; { char value; _DIAGASSERT(p != NULL); REQUIRE(MORE(), REG_EBRACK); if (!EATTWO('[', '.')) return(GETNEXT()); /* collating symbol */ value = p_b_coll_elem(p, '.'); REQUIRE(EATTWO('.', ']'), REG_ECOLLATE); return(value); } /* - p_b_coll_elem - parse a collating-element name and look it up == static char p_b_coll_elem(struct parse *p, int endc); */ static char /* value of collating element */ p_b_coll_elem(p, endc) struct parse *p; int endc; /* name ended by endc,']' */ { char *sp; const struct cname *cp; size_t len; _DIAGASSERT(p != NULL); sp = p->next; while (MORE() && !SEETWO(endc, ']')) NEXT(); if (!MORE()) { SETERROR(REG_EBRACK); return(0); } len = p->next - sp; for (cp = cnames; cp->name != NULL; cp++) if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') return(cp->code); /* known name */ if (len == 1) return(*sp); /* single character */ SETERROR(REG_ECOLLATE); /* neither */ return(0); } /* - othercase - return the case counterpart of an alphabetic == static char othercase(int ch); */ static char /* if no counterpart, return ch */ othercase(ch) int ch; { assert(isalpha(ch)); if (isupper(ch)) return(tolower(ch)); else if (islower(ch)) return(toupper(ch)); else /* peculiar, but could happen */ return(ch); } /* - bothcases - emit a dualcase version of a two-case character == static void bothcases(struct parse *p, int ch); * * Boy, is this implementation ever a kludge... */ static void bothcases(p, ch) struct parse *p; int ch; { char *oldnext; char *oldend; char bracket[3]; _DIAGASSERT(p != NULL); oldnext = p->next; oldend = p->end; assert(othercase(ch) != ch); /* p_bracket() would recurse */ p->next = bracket; p->end = bracket+2; bracket[0] = ch; bracket[1] = ']'; bracket[2] = '\0'; p_bracket(p); assert(p->next == bracket+2); p->next = oldnext; p->end = oldend; } /* - ordinary - emit an ordinary character == static void ordinary(struct parse *p, int ch); */ static void ordinary(p, ch) struct parse *p; int ch; { cat_t *cap; _DIAGASSERT(p != NULL); cap = p->g->categories; if ((p->g->cflags®_ICASE) && isalpha((unsigned char) ch) && othercase((unsigned char) ch) != (unsigned char) ch) bothcases(p, (unsigned char) ch); else { EMIT(OCHAR, (unsigned char)ch); if (cap[ch] == 0) cap[ch] = p->g->ncategories++; } } /* - nonnewline - emit REG_NEWLINE version of OANY == static void nonnewline(struct parse *p); * * Boy, is this implementation ever a kludge... */ static void nonnewline(p) struct parse *p; { char *oldnext; char *oldend; char bracket[4]; _DIAGASSERT(p != NULL); oldnext = p->next; oldend = p->end; p->next = bracket; p->end = bracket+3; bracket[0] = '^'; bracket[1] = '\n'; bracket[2] = ']'; bracket[3] = '\0'; p_bracket(p); assert(p->next == bracket+3); p->next = oldnext; p->end = oldend; } /* - repeat - generate code for a bounded repetition, recursively if needed == static void repeat(struct parse *p, sopno start, int from, int to); */ static void repeat(p, start, from, to) struct parse *p; sopno start; /* operand from here to end of strip */ int from; /* repeated from this number */ int to; /* to this number of times (maybe INFINITY) */ { sopno finish; # define N 2 # define INF 3 # define REP(f, t) ((f)*8 + (t)) # define MAP(n) (((n) <= 1) ? (n) : ((n) == INFINITY) ? INF : N) sopno copy; _DIAGASSERT(p != NULL); finish = HERE(); if (p->error != 0) /* head off possible runaway recursion */ return; assert(from <= to); switch (REP(MAP(from), MAP(to))) { case REP(0, 0): /* must be user doing this */ DROP(finish-start); /* drop the operand */ break; case REP(0, 1): /* as x{1,1}? */ case REP(0, N): /* as x{1,n}? */ case REP(0, INF): /* as x{1,}? */ /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ INSERT(OCH_, start); /* offset is wrong... */ repeat(p, start+1, 1, to); ASTERN(OOR1, start); AHEAD(start); /* ... fix it */ EMIT(OOR2, 0); AHEAD(THERE()); ASTERN(O_CH, THERETHERE()); break; case REP(1, 1): /* trivial case */ /* done */ break; case REP(1, N): /* as x?x{1,n-1} */ /* KLUDGE: emit y? as (y|) until subtle bug gets fixed */ INSERT(OCH_, start); ASTERN(OOR1, start); AHEAD(start); EMIT(OOR2, 0); /* offset very wrong... */ AHEAD(THERE()); /* ...so fix it */ ASTERN(O_CH, THERETHERE()); copy = dupl(p, start+1, finish+1); assert(copy == finish+4); repeat(p, copy, 1, to-1); break; case REP(1, INF): /* as x+ */ INSERT(OPLUS_, start); ASTERN(O_PLUS, start); break; case REP(N, N): /* as xx{m-1,n-1} */ copy = dupl(p, start, finish); repeat(p, copy, from-1, to-1); break; case REP(N, INF): /* as xx{n-1,INF} */ copy = dupl(p, start, finish); repeat(p, copy, from-1, to); break; default: /* "can't happen" */ SETERROR(REG_ASSERT); /* just in case */ break; } } /* - seterr - set an error condition == static int seterr(struct parse *p, int e); */ static int /* useless but makes type checking happy */ seterr(p, e) struct parse *p; int e; { _DIAGASSERT(p != NULL); if (p->error == 0) /* keep earliest error condition */ p->error = e; p->next = nuls; /* try to bring things to a halt */ p->end = nuls; return(0); /* make the return value well-defined */ } /* - allocset - allocate a set of characters for [] == static cset *allocset(struct parse *p); */ static cset * allocset(p) struct parse *p; { int no; size_t nc; size_t nbytes; cset *cs; size_t css; int i; _DIAGASSERT(p != NULL); no = p->g->ncsets++; css = (size_t)p->g->csetsize; if (no >= p->ncsalloc) { /* need another column of space */ p->ncsalloc += CHAR_BIT; nc = p->ncsalloc; assert(nc % CHAR_BIT == 0); nbytes = nc / CHAR_BIT * css; if (p->g->sets == NULL) p->g->sets = malloc(nc * sizeof(cset)); else p->g->sets = realloc(p->g->sets, nc * sizeof(cset)); if (p->g->setbits == NULL) p->g->setbits = malloc(nbytes); else { p->g->setbits = realloc(p->g->setbits, nbytes); /* xxx this isn't right if setbits is now NULL */ for (i = 0; i < no; i++) p->g->sets[i].ptr = p->g->setbits + css*(i/CHAR_BIT); } if (p->g->sets != NULL && p->g->setbits != NULL) (void) memset((char *)p->g->setbits + (nbytes - css), 0, css); else { no = 0; SETERROR(REG_ESPACE); /* caller's responsibility not to do set ops */ } } assert(p->g->sets != NULL); /* xxx */ cs = &p->g->sets[no]; cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); cs->mask = 1 << ((no) % CHAR_BIT); cs->hash = 0; cs->smultis = 0; cs->multis = NULL; return(cs); } /* - freeset - free a now-unused set == static void freeset(struct parse *p, cset *cs); */ static void freeset(p, cs) struct parse *p; cset *cs; { int i; cset *top; size_t css; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); top = &p->g->sets[p->g->ncsets]; css = (size_t)p->g->csetsize; for (i = 0; i < css; i++) CHsub(cs, i); if (cs == top-1) /* recover only the easy case */ p->g->ncsets--; } /* - freezeset - final processing on a set of characters == static int freezeset(struct parse *p, cset *cs); * * The main task here is merging identical sets. This is usually a waste * of time (although the hash code minimizes the overhead), but can win * big if REG_ICASE is being used. REG_ICASE, by the way, is why the hash * is done using addition rather than xor -- all ASCII [aA] sets xor to * the same value! */ static int /* set number */ freezeset(p, cs) struct parse *p; cset *cs; { uch h; int i; cset *top; cset *cs2; size_t css; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); h = cs->hash; top = &p->g->sets[p->g->ncsets]; css = (size_t)p->g->csetsize; /* look for an earlier one which is the same */ for (cs2 = &p->g->sets[0]; cs2 < top; cs2++) if (cs2->hash == h && cs2 != cs) { /* maybe */ for (i = 0; i < css; i++) if (!!CHIN(cs2, i) != !!CHIN(cs, i)) break; /* no */ if (i == css) break; /* yes */ } if (cs2 < top) { /* found one */ freeset(p, cs); cs = cs2; } return((int)(cs - p->g->sets)); } /* - firstch - return first character in a set (which must have at least one) == static int firstch(struct parse *p, cset *cs); */ static int /* character; there is no "none" value */ firstch(p, cs) struct parse *p; cset *cs; { int i; size_t css; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); css = (size_t)p->g->csetsize; for (i = 0; i < css; i++) if (CHIN(cs, i)) return((char)i); assert(never); return(0); /* arbitrary */ } /* - nch - number of characters in a set == static int nch(struct parse *p, cset *cs); */ static int nch(p, cs) struct parse *p; cset *cs; { int i; size_t css; int n = 0; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); css = (size_t)p->g->csetsize; for (i = 0; i < css; i++) if (CHIN(cs, i)) n++; return(n); } /* - mcadd - add a collating element to a cset == static void mcadd(struct parse *p, cset *cs, \ == char *cp); */ static void mcadd(p, cs, cp) struct parse *p; cset *cs; const char *cp; { size_t oldend; _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); _DIAGASSERT(cp != NULL); oldend = cs->smultis; cs->smultis += strlen(cp) + 1; if (cs->multis == NULL) cs->multis = malloc(cs->smultis); else cs->multis = realloc(cs->multis, cs->smultis); if (cs->multis == NULL) { SETERROR(REG_ESPACE); return; } (void) strcpy(cs->multis + oldend - 1, cp); cs->multis[cs->smultis - 1] = '\0'; } #if 0 /* - mcsub - subtract a collating element from a cset == static void mcsub(cset *cs, char *cp); */ static void mcsub(cs, cp) cset *cs; char *cp; { char *fp; size_t len; _DIAGASSERT(cs != NULL); _DIAGASSERT(cp != NULL); fp = mcfind(cs, cp); len = strlen(fp); assert(fp != NULL); (void) memmove(fp, fp + len + 1, cs->smultis - (fp + len + 1 - cs->multis)); cs->smultis -= len; if (cs->smultis == 0) { free(cs->multis); cs->multis = NULL; return; } cs->multis = realloc(cs->multis, cs->smultis); assert(cs->multis != NULL); } /* - mcin - is a collating element in a cset? == static int mcin(cset *cs, char *cp); */ static int mcin(cs, cp) cset *cs; char *cp; { _DIAGASSERT(cs != NULL); _DIAGASSERT(cp != NULL); return(mcfind(cs, cp) != NULL); } /* - mcfind - find a collating element in a cset == static char *mcfind(cset *cs, char *cp); */ static char * mcfind(cs, cp) cset *cs; char *cp; { char *p; _DIAGASSERT(cs != NULL); _DIAGASSERT(cp != NULL); if (cs->multis == NULL) return(NULL); for (p = cs->multis; *p != '\0'; p += strlen(p) + 1) if (strcmp(cp, p) == 0) return(p); return(NULL); } #endif /* - mcinvert - invert the list of collating elements in a cset == static void mcinvert(struct parse *p, cset *cs); * * This would have to know the set of possibilities. Implementation * is deferred. */ /* ARGSUSED */ static void mcinvert(p, cs) struct parse *p; cset *cs; { _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); assert(cs->multis == NULL); /* xxx */ } /* - mccase - add case counterparts of the list of collating elements in a cset == static void mccase(struct parse *p, cset *cs); * * This would have to know the set of possibilities. Implementation * is deferred. */ /* ARGSUSED */ static void mccase(p, cs) struct parse *p; cset *cs; { _DIAGASSERT(p != NULL); _DIAGASSERT(cs != NULL); assert(cs->multis == NULL); /* xxx */ } /* - isinsets - is this character in any sets? == static int isinsets(struct re_guts *g, int c); */ static int /* predicate */ isinsets(g, c) struct re_guts *g; int c; { uch *col; int i; int ncols; unsigned uc = (unsigned char)c; _DIAGASSERT(g != NULL); ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) if (col[uc] != 0) return(1); return(0); } /* - samesets - are these two characters in exactly the same sets? == static int samesets(struct re_guts *g, int c1, int c2); */ static int /* predicate */ samesets(g, c1, c2) struct re_guts *g; int c1; int c2; { uch *col; int i; int ncols; unsigned uc1 = (unsigned char)c1; unsigned uc2 = (unsigned char)c2; _DIAGASSERT(g != NULL); ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT; for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize) if (col[uc1] != col[uc2]) return(0); return(1); } /* - categorize - sort out character categories == static void categorize(struct parse *p, struct re_guts *g); */ static void categorize(p, g) struct parse *p; struct re_guts *g; { cat_t *cats; int c; int c2; cat_t cat; _DIAGASSERT(p != NULL); _DIAGASSERT(g != NULL); cats = g->categories; /* avoid making error situations worse */ if (p->error != 0) return; for (c = CHAR_MIN; c <= CHAR_MAX; c++) if (cats[c] == 0 && isinsets(g, c)) { cat = g->ncategories++; cats[c] = cat; for (c2 = c+1; c2 <= CHAR_MAX; c2++) if (cats[c2] == 0 && samesets(g, c, c2)) cats[c2] = cat; } } /* - dupl - emit a duplicate of a bunch of sops == static sopno dupl(struct parse *p, sopno start, sopno finish); */ static sopno /* start of duplicate */ dupl(p, start, finish) struct parse *p; sopno start; /* from here */ sopno finish; /* to this less one */ { sopno ret; sopno len = finish - start; _DIAGASSERT(p != NULL); ret = HERE(); assert(finish >= start); if (len == 0) return(ret); enlarge(p, p->ssize + len); /* this many unexpected additions */ assert(p->ssize >= p->slen + len); (void)memcpy(p->strip + p->slen, p->strip + start, (size_t)len * sizeof(sop)); p->slen += len; return(ret); } /* - doemit - emit a strip operator == static void doemit(struct parse *p, sop op, size_t opnd); * * It might seem better to implement this as a macro with a function as * hard-case backup, but it's just too big and messy unless there are * some changes to the data structures. Maybe later. */ static void doemit(p, op, opnd) struct parse *p; sop op; sopno opnd; { _DIAGASSERT(p != NULL); /* avoid making error situations worse */ if (p->error != 0) return; /* deal with oversize operands ("can't happen", more or less) */ assert(opnd < 1<slen >= p->ssize) enlarge(p, (p->ssize+1) / 2 * 3); /* +50% */ assert(p->slen < p->ssize); /* finally, it's all reduced to the easy case */ p->strip[p->slen++] = SOP(op, opnd); } /* - doinsert - insert a sop into the strip == static void doinsert(struct parse *p, sop op, size_t opnd, sopno pos); */ static void doinsert(p, op, opnd, pos) struct parse *p; sop op; sopno opnd; sopno pos; { sopno sn; sop s; int i; _DIAGASSERT(p != NULL); /* avoid making error situations worse */ if (p->error != 0) return; sn = HERE(); EMIT(op, opnd); /* do checks, ensure space */ assert(HERE() == sn+1); s = p->strip[sn]; /* adjust paren pointers */ assert(pos > 0); for (i = 1; i < NPAREN; i++) { if (p->pbegin[i] >= pos) { p->pbegin[i]++; } if (p->pend[i] >= pos) { p->pend[i]++; } } memmove(&p->strip[pos+1], &p->strip[pos], (HERE()-pos-1)*sizeof(sop)); p->strip[pos] = s; } /* - dofwd - complete a forward reference == static void dofwd(struct parse *p, sopno pos, sop value); */ static void dofwd(p, pos, value) struct parse *p; sopno pos; sopno value; { _DIAGASSERT(p != NULL); /* avoid making error situations worse */ if (p->error != 0) return; assert(value < 1<strip[pos] = OP(p->strip[pos]) | value; } /* - enlarge - enlarge the strip == static void enlarge(struct parse *p, sopno size); */ static void enlarge(p, size) struct parse *p; sopno size; { sop *sp; _DIAGASSERT(p != NULL); if (p->ssize >= size) return; sp = (sop *)realloc(p->strip, size*sizeof(sop)); if (sp == NULL) { SETERROR(REG_ESPACE); return; } p->strip = sp; p->ssize = size; } /* - stripsnug - compact the strip == static void stripsnug(struct parse *p, struct re_guts *g); */ static void stripsnug(p, g) struct parse *p; struct re_guts *g; { _DIAGASSERT(p != NULL); _DIAGASSERT(g != NULL); g->nstates = p->slen; g->strip = realloc(p->strip, p->slen * sizeof(sop)); if (g->strip == NULL) { SETERROR(REG_ESPACE); g->strip = p->strip; } } /* - findmust - fill in must and mlen with longest mandatory literal string == static void findmust(struct parse *p, struct re_guts *g); * * This algorithm could do fancy things like analyzing the operands of | * for common subsequences. Someday. This code is simple and finds most * of the interesting cases. * * Note that must and mlen got initialized during setup. */ static void findmust(p, g) struct parse *p; struct re_guts *g; { sop *scan; sop *start = NULL; sop *newstart = NULL; sopno newlen; sop s; char *cp; sopno i; _DIAGASSERT(p != NULL); _DIAGASSERT(g != NULL); /* avoid making error situations worse */ if (p->error != 0) return; /* find the longest OCHAR sequence in strip */ newlen = 0; scan = g->strip + 1; do { s = *scan++; switch (OP(s)) { case OCHAR: /* sequence member */ if (newlen == 0) /* new sequence */ newstart = scan - 1; newlen++; break; case OPLUS_: /* things that don't break one */ case OLPAREN: case ORPAREN: break; case OQUEST_: /* things that must be skipped */ case OCH_: scan--; do { scan += OPND(s); s = *scan; /* assert() interferes w debug printouts */ if (OP(s) != O_QUEST && OP(s) != O_CH && OP(s) != OOR2) { g->iflags |= BAD; return; } } while (OP(s) != O_QUEST && OP(s) != O_CH); /* FALLTHROUGH */ default: /* things that break a sequence */ if (newlen > g->mlen) { /* ends one */ start = newstart; g->mlen = newlen; } newlen = 0; break; } } while (OP(s) != OEND); if (g->mlen == 0) /* there isn't one */ return; /* turn it into a character string */ g->must = malloc((size_t)g->mlen + 1); if (g->must == NULL) { /* argh; just forget it */ g->mlen = 0; return; } cp = g->must; scan = start; for (i = g->mlen; i > 0; i--) { while (OP(s = *scan++) != OCHAR) continue; assert(cp < g->must + g->mlen); *cp++ = (char)OPND(s); } assert(cp == g->must + g->mlen); *cp++ = '\0'; /* just on general principles */ } /* - pluscount - count + nesting == static sopno pluscount(struct parse *p, struct re_guts *g); */ static sopno /* nesting depth */ pluscount(p, g) struct parse *p; struct re_guts *g; { sop *scan; sop s; sopno plusnest = 0; sopno maxnest = 0; _DIAGASSERT(p != NULL); _DIAGASSERT(g != NULL); if (p->error != 0) return(0); /* there may not be an OEND */ scan = g->strip + 1; do { s = *scan++; switch (OP(s)) { case OPLUS_: plusnest++; break; case O_PLUS: if (plusnest > maxnest) maxnest = plusnest; plusnest--; break; } } while (OP(s) != OEND); if (plusnest != 0) g->iflags |= BAD; return(maxnest); } libnbcompat-20180822/regexec.c0000644000175000017500000002067013355271171016304 0ustar jgoerzenjgoerzen/* $NetBSD: regexec.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regexec.c 8.3 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regexec.c 8.3 (Berkeley) 3/20/94 */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regexec.c 8.3 (Berkeley) 3/20/94"; #else __RCSID("$NetBSD: regexec.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ /* * the outer shell of regexec() * * This file includes engine.c *twice*, after muchos fiddling with the * macros that code uses. This lets the same code operate on two different * representations for state sets. */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(regexec,_regexec) #endif #endif #include "private/utils.h" #include "private/regex2.h" /* macros for manipulating states, small version */ #define states unsigned long #define states1 unsigned long /* for later use in regexec() decision */ #define CLEAR(v) ((v) = 0) #define SET0(v, n) ((v) &= ~((unsigned long)1 << (n))) #define SET1(v, n) ((v) |= (unsigned long)1 << (n)) #define ISSET(v, n) (((v) & ((unsigned long)1 << (n))) != 0) #define ASSIGN(d, s) ((d) = (s)) #define EQ(a, b) ((a) == (b)) #define STATEVARS int dummy /* dummy version */ #define STATESETUP(m, n) /* nothing */ #define STATETEARDOWN(m) /* nothing */ #define SETUP(v) ((v) = 0) #define onestate unsigned long #define INIT(o, n) ((o) = (unsigned long)1 << (n)) #define INC(o) ((o) <<= 1) #define ISSTATEIN(v, o) (((v) & (o)) != 0) /* some abbreviations; note that some of these know variable names! */ /* do "if I'm here, I can also be there" etc without branches */ #define FWD(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) << (n)) #define BACK(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) >> (n)) #define ISSETBACK(v, n) (((v) & ((unsigned long)here >> (n))) != 0) /* function names */ #define SNAMES /* engine.c looks after details */ #include "engine.c" /* now undo things */ #undef states #undef CLEAR #undef SET0 #undef SET1 #undef ISSET #undef ASSIGN #undef EQ #undef STATEVARS #undef STATESETUP #undef STATETEARDOWN #undef SETUP #undef onestate #undef INIT #undef INC #undef ISSTATEIN #undef FWD #undef BACK #undef ISSETBACK #undef SNAMES /* macros for manipulating states, large version */ #define states char * #define CLEAR(v) memset(v, 0, (size_t)m->g->nstates) #define SET0(v, n) ((v)[n] = 0) #define SET1(v, n) ((v)[n] = 1) #define ISSET(v, n) ((v)[n]) #define ASSIGN(d, s) memcpy(d, s, (size_t)m->g->nstates) #define EQ(a, b) (memcmp(a, b, (size_t)m->g->nstates) == 0) #define STATEVARS int vn; char *space #define STATESETUP(m, nv) \ if (((m)->space = malloc((size_t)((nv)*(m)->g->nstates))) == NULL) \ return(REG_ESPACE); \ else \ (m)->vn = 0 #define STATETEARDOWN(m) { free((m)->space); m->space = NULL; } #define SETUP(v) ((v) = &m->space[(size_t)(m->vn++ * m->g->nstates)]) #define onestate int #define INIT(o, n) ((o) = (n)) #define INC(o) ((o)++) #define ISSTATEIN(v, o) ((v)[o]) /* some abbreviations; note that some of these know variable names! */ /* do "if I'm here, I can also be there" etc without branches */ #define FWD(dst, src, n) ((dst)[here+(n)] |= (src)[here]) #define BACK(dst, src, n) ((dst)[here-(n)] |= (src)[here]) #define ISSETBACK(v, n) ((v)[here - (n)]) /* function names */ #define LNAMES /* flag */ #include "engine.c" /* - regexec - interface for matching = extern int regexec(const regex_t *, const char *, size_t, \ = regmatch_t [], int); = #define REG_NOTBOL 00001 = #define REG_NOTEOL 00002 = #define REG_STARTEND 00004 = #define REG_TRACE 00400 // tracing of execution = #define REG_LARGE 01000 // force large representation = #define REG_BACKR 02000 // force use of backref code * * We put this here so we can exploit knowledge of the state representation * when choosing which matcher to call. Also, by this point the matchers * have been prototyped. */ int /* 0 success, REG_NOMATCH failure */ regexec(preg, string, nmatch, pmatch, eflags) const regex_t *preg; const char *string; size_t nmatch; regmatch_t pmatch[]; int eflags; { struct re_guts *g = preg->re_g; char *s; #ifdef REDEBUG # define GOODFLAGS(f) (f) #else # define GOODFLAGS(f) ((f)&(REG_NOTBOL|REG_NOTEOL|REG_STARTEND)) #endif _DIAGASSERT(preg != NULL); _DIAGASSERT(string != NULL); if (preg->re_magic != MAGIC1 || g->magic != MAGIC2) return(REG_BADPAT); assert(!(g->iflags&BAD)); if (g->iflags&BAD) /* backstop for no-debug case */ return(REG_BADPAT); eflags = GOODFLAGS(eflags); /* LINTED we believe that the regex routines do not change the string */ s = (char *)string; if (g->nstates <= CHAR_BIT*sizeof(states1) && !(eflags®_LARGE)) return(smatcher(g, s, nmatch, pmatch, eflags)); else return(lmatcher(g, s, nmatch, pmatch, eflags)); } libnbcompat-20180822/rmd160.c0000644000175000017500000003543313355271171015676 0ustar jgoerzenjgoerzen/* $NetBSD: rmd160.c,v 1.9 2015/06/08 00:44:46 joerg Exp $ */ /********************************************************************\ * * FILE: rmd160.c * * CONTENTS: A sample C-implementation of the RIPEMD-160 * hash-function. * TARGET: any computer with an ANSI C compiler * * AUTHOR: Antoon Bosselaers, ESAT-COSIC * (Arranged for libc by Todd C. Miller) * DATE: 1 March 1996 * VERSION: 1.0 * * Copyright (c) Katholieke Universiteit Leuven * 1996, All Rights Reserved * \********************************************************************/ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #ifndef lint __RCSID("$NetBSD: rmd160.c,v 1.9 2015/06/08 00:44:46 joerg Exp $"); #endif /* not lint */ /* header files */ #include #include #if 0 #include "namespace.h" #endif #include #include #include #include #include #if !HAVE_RMD160_H #if 0 #if !defined(_KERNEL) && defined(__weak_alias) __weak_alias(RMD160Transform,_RMD160Transform) __weak_alias(RMD160Init,_RMD160Init) __weak_alias(RMD160Update,_RMD160Update) __weak_alias(RMD160Final,_RMD160Final) #endif #endif #define ZEROIZE(d, l) memset((d), 0, (l)) /********************************************************************/ /* macro definitions */ /* collect four bytes into one word: */ #define BYTES_TO_DWORD(strptr) \ (((uint32_t) *((strptr)+3) << 24) | \ ((uint32_t) *((strptr)+2) << 16) | \ ((uint32_t) *((strptr)+1) << 8) | \ ((uint32_t) *(strptr))) /* ROL(x, n) cyclically rotates x over n bits to the left */ /* x must be of an unsigned 32 bits type and 0 <= n < 32. */ #define ROL(x, n) (((x) << (n)) | ((x) >> (32-(n)))) /* the three basic functions F(), G() and H() */ #define F(x, y, z) ((x) ^ (y) ^ (z)) #define G(x, y, z) (((x) & (y)) | (~(x) & (z))) #define H(x, y, z) (((x) | ~(y)) ^ (z)) #define I(x, y, z) (((x) & (z)) | ((y) & ~(z))) #define J(x, y, z) ((x) ^ ((y) | ~(z))) /* the eight basic operations FF() through III() */ #define FF(a, b, c, d, e, x, s) { \ (a) += F((b), (c), (d)) + (x); \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define GG(a, b, c, d, e, x, s) { \ (a) += G((b), (c), (d)) + (x) + 0x5a827999U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define HH(a, b, c, d, e, x, s) { \ (a) += H((b), (c), (d)) + (x) + 0x6ed9eba1U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define II(a, b, c, d, e, x, s) { \ (a) += I((b), (c), (d)) + (x) + 0x8f1bbcdcU; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define JJ(a, b, c, d, e, x, s) { \ (a) += J((b), (c), (d)) + (x) + 0xa953fd4eU; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define FFF(a, b, c, d, e, x, s) { \ (a) += F((b), (c), (d)) + (x); \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define GGG(a, b, c, d, e, x, s) { \ (a) += G((b), (c), (d)) + (x) + 0x7a6d76e9U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define HHH(a, b, c, d, e, x, s) { \ (a) += H((b), (c), (d)) + (x) + 0x6d703ef3U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define III(a, b, c, d, e, x, s) { \ (a) += I((b), (c), (d)) + (x) + 0x5c4dd124U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } #define JJJ(a, b, c, d, e, x, s) { \ (a) += J((b), (c), (d)) + (x) + 0x50a28be6U; \ (a) = ROL((a), (s)) + (e); \ (c) = ROL((c), 10); \ } /********************************************************************/ void RMD160Init(RMD160_CTX *context) { _DIAGASSERT(context != NULL); /* ripemd-160 initialization constants */ context->state[0] = 0x67452301U; context->state[1] = 0xefcdab89U; context->state[2] = 0x98badcfeU; context->state[3] = 0x10325476U; context->state[4] = 0xc3d2e1f0U; context->length[0] = context->length[1] = 0; context->buflen = 0; } /********************************************************************/ void RMD160Transform(uint32_t state[5], const uint32_t block[16]) { uint32_t aa, bb, cc, dd, ee; uint32_t aaa, bbb, ccc, ddd, eee; _DIAGASSERT(state != NULL); _DIAGASSERT(block != NULL); aa = aaa = state[0]; bb = bbb = state[1]; cc = ccc = state[2]; dd = ddd = state[3]; ee = eee = state[4]; /* round 1 */ FF(aa, bb, cc, dd, ee, block[ 0], 11); FF(ee, aa, bb, cc, dd, block[ 1], 14); FF(dd, ee, aa, bb, cc, block[ 2], 15); FF(cc, dd, ee, aa, bb, block[ 3], 12); FF(bb, cc, dd, ee, aa, block[ 4], 5); FF(aa, bb, cc, dd, ee, block[ 5], 8); FF(ee, aa, bb, cc, dd, block[ 6], 7); FF(dd, ee, aa, bb, cc, block[ 7], 9); FF(cc, dd, ee, aa, bb, block[ 8], 11); FF(bb, cc, dd, ee, aa, block[ 9], 13); FF(aa, bb, cc, dd, ee, block[10], 14); FF(ee, aa, bb, cc, dd, block[11], 15); FF(dd, ee, aa, bb, cc, block[12], 6); FF(cc, dd, ee, aa, bb, block[13], 7); FF(bb, cc, dd, ee, aa, block[14], 9); FF(aa, bb, cc, dd, ee, block[15], 8); /* round 2 */ GG(ee, aa, bb, cc, dd, block[ 7], 7); GG(dd, ee, aa, bb, cc, block[ 4], 6); GG(cc, dd, ee, aa, bb, block[13], 8); GG(bb, cc, dd, ee, aa, block[ 1], 13); GG(aa, bb, cc, dd, ee, block[10], 11); GG(ee, aa, bb, cc, dd, block[ 6], 9); GG(dd, ee, aa, bb, cc, block[15], 7); GG(cc, dd, ee, aa, bb, block[ 3], 15); GG(bb, cc, dd, ee, aa, block[12], 7); GG(aa, bb, cc, dd, ee, block[ 0], 12); GG(ee, aa, bb, cc, dd, block[ 9], 15); GG(dd, ee, aa, bb, cc, block[ 5], 9); GG(cc, dd, ee, aa, bb, block[ 2], 11); GG(bb, cc, dd, ee, aa, block[14], 7); GG(aa, bb, cc, dd, ee, block[11], 13); GG(ee, aa, bb, cc, dd, block[ 8], 12); /* round 3 */ HH(dd, ee, aa, bb, cc, block[ 3], 11); HH(cc, dd, ee, aa, bb, block[10], 13); HH(bb, cc, dd, ee, aa, block[14], 6); HH(aa, bb, cc, dd, ee, block[ 4], 7); HH(ee, aa, bb, cc, dd, block[ 9], 14); HH(dd, ee, aa, bb, cc, block[15], 9); HH(cc, dd, ee, aa, bb, block[ 8], 13); HH(bb, cc, dd, ee, aa, block[ 1], 15); HH(aa, bb, cc, dd, ee, block[ 2], 14); HH(ee, aa, bb, cc, dd, block[ 7], 8); HH(dd, ee, aa, bb, cc, block[ 0], 13); HH(cc, dd, ee, aa, bb, block[ 6], 6); HH(bb, cc, dd, ee, aa, block[13], 5); HH(aa, bb, cc, dd, ee, block[11], 12); HH(ee, aa, bb, cc, dd, block[ 5], 7); HH(dd, ee, aa, bb, cc, block[12], 5); /* round 4 */ II(cc, dd, ee, aa, bb, block[ 1], 11); II(bb, cc, dd, ee, aa, block[ 9], 12); II(aa, bb, cc, dd, ee, block[11], 14); II(ee, aa, bb, cc, dd, block[10], 15); II(dd, ee, aa, bb, cc, block[ 0], 14); II(cc, dd, ee, aa, bb, block[ 8], 15); II(bb, cc, dd, ee, aa, block[12], 9); II(aa, bb, cc, dd, ee, block[ 4], 8); II(ee, aa, bb, cc, dd, block[13], 9); II(dd, ee, aa, bb, cc, block[ 3], 14); II(cc, dd, ee, aa, bb, block[ 7], 5); II(bb, cc, dd, ee, aa, block[15], 6); II(aa, bb, cc, dd, ee, block[14], 8); II(ee, aa, bb, cc, dd, block[ 5], 6); II(dd, ee, aa, bb, cc, block[ 6], 5); II(cc, dd, ee, aa, bb, block[ 2], 12); /* round 5 */ JJ(bb, cc, dd, ee, aa, block[ 4], 9); JJ(aa, bb, cc, dd, ee, block[ 0], 15); JJ(ee, aa, bb, cc, dd, block[ 5], 5); JJ(dd, ee, aa, bb, cc, block[ 9], 11); JJ(cc, dd, ee, aa, bb, block[ 7], 6); JJ(bb, cc, dd, ee, aa, block[12], 8); JJ(aa, bb, cc, dd, ee, block[ 2], 13); JJ(ee, aa, bb, cc, dd, block[10], 12); JJ(dd, ee, aa, bb, cc, block[14], 5); JJ(cc, dd, ee, aa, bb, block[ 1], 12); JJ(bb, cc, dd, ee, aa, block[ 3], 13); JJ(aa, bb, cc, dd, ee, block[ 8], 14); JJ(ee, aa, bb, cc, dd, block[11], 11); JJ(dd, ee, aa, bb, cc, block[ 6], 8); JJ(cc, dd, ee, aa, bb, block[15], 5); JJ(bb, cc, dd, ee, aa, block[13], 6); /* parallel round 1 */ JJJ(aaa, bbb, ccc, ddd, eee, block[ 5], 8); JJJ(eee, aaa, bbb, ccc, ddd, block[14], 9); JJJ(ddd, eee, aaa, bbb, ccc, block[ 7], 9); JJJ(ccc, ddd, eee, aaa, bbb, block[ 0], 11); JJJ(bbb, ccc, ddd, eee, aaa, block[ 9], 13); JJJ(aaa, bbb, ccc, ddd, eee, block[ 2], 15); JJJ(eee, aaa, bbb, ccc, ddd, block[11], 15); JJJ(ddd, eee, aaa, bbb, ccc, block[ 4], 5); JJJ(ccc, ddd, eee, aaa, bbb, block[13], 7); JJJ(bbb, ccc, ddd, eee, aaa, block[ 6], 7); JJJ(aaa, bbb, ccc, ddd, eee, block[15], 8); JJJ(eee, aaa, bbb, ccc, ddd, block[ 8], 11); JJJ(ddd, eee, aaa, bbb, ccc, block[ 1], 14); JJJ(ccc, ddd, eee, aaa, bbb, block[10], 14); JJJ(bbb, ccc, ddd, eee, aaa, block[ 3], 12); JJJ(aaa, bbb, ccc, ddd, eee, block[12], 6); /* parallel round 2 */ III(eee, aaa, bbb, ccc, ddd, block[ 6], 9); III(ddd, eee, aaa, bbb, ccc, block[11], 13); III(ccc, ddd, eee, aaa, bbb, block[ 3], 15); III(bbb, ccc, ddd, eee, aaa, block[ 7], 7); III(aaa, bbb, ccc, ddd, eee, block[ 0], 12); III(eee, aaa, bbb, ccc, ddd, block[13], 8); III(ddd, eee, aaa, bbb, ccc, block[ 5], 9); III(ccc, ddd, eee, aaa, bbb, block[10], 11); III(bbb, ccc, ddd, eee, aaa, block[14], 7); III(aaa, bbb, ccc, ddd, eee, block[15], 7); III(eee, aaa, bbb, ccc, ddd, block[ 8], 12); III(ddd, eee, aaa, bbb, ccc, block[12], 7); III(ccc, ddd, eee, aaa, bbb, block[ 4], 6); III(bbb, ccc, ddd, eee, aaa, block[ 9], 15); III(aaa, bbb, ccc, ddd, eee, block[ 1], 13); III(eee, aaa, bbb, ccc, ddd, block[ 2], 11); /* parallel round 3 */ HHH(ddd, eee, aaa, bbb, ccc, block[15], 9); HHH(ccc, ddd, eee, aaa, bbb, block[ 5], 7); HHH(bbb, ccc, ddd, eee, aaa, block[ 1], 15); HHH(aaa, bbb, ccc, ddd, eee, block[ 3], 11); HHH(eee, aaa, bbb, ccc, ddd, block[ 7], 8); HHH(ddd, eee, aaa, bbb, ccc, block[14], 6); HHH(ccc, ddd, eee, aaa, bbb, block[ 6], 6); HHH(bbb, ccc, ddd, eee, aaa, block[ 9], 14); HHH(aaa, bbb, ccc, ddd, eee, block[11], 12); HHH(eee, aaa, bbb, ccc, ddd, block[ 8], 13); HHH(ddd, eee, aaa, bbb, ccc, block[12], 5); HHH(ccc, ddd, eee, aaa, bbb, block[ 2], 14); HHH(bbb, ccc, ddd, eee, aaa, block[10], 13); HHH(aaa, bbb, ccc, ddd, eee, block[ 0], 13); HHH(eee, aaa, bbb, ccc, ddd, block[ 4], 7); HHH(ddd, eee, aaa, bbb, ccc, block[13], 5); /* parallel round 4 */ GGG(ccc, ddd, eee, aaa, bbb, block[ 8], 15); GGG(bbb, ccc, ddd, eee, aaa, block[ 6], 5); GGG(aaa, bbb, ccc, ddd, eee, block[ 4], 8); GGG(eee, aaa, bbb, ccc, ddd, block[ 1], 11); GGG(ddd, eee, aaa, bbb, ccc, block[ 3], 14); GGG(ccc, ddd, eee, aaa, bbb, block[11], 14); GGG(bbb, ccc, ddd, eee, aaa, block[15], 6); GGG(aaa, bbb, ccc, ddd, eee, block[ 0], 14); GGG(eee, aaa, bbb, ccc, ddd, block[ 5], 6); GGG(ddd, eee, aaa, bbb, ccc, block[12], 9); GGG(ccc, ddd, eee, aaa, bbb, block[ 2], 12); GGG(bbb, ccc, ddd, eee, aaa, block[13], 9); GGG(aaa, bbb, ccc, ddd, eee, block[ 9], 12); GGG(eee, aaa, bbb, ccc, ddd, block[ 7], 5); GGG(ddd, eee, aaa, bbb, ccc, block[10], 15); GGG(ccc, ddd, eee, aaa, bbb, block[14], 8); /* parallel round 5 */ FFF(bbb, ccc, ddd, eee, aaa, block[12] , 8); FFF(aaa, bbb, ccc, ddd, eee, block[15] , 5); FFF(eee, aaa, bbb, ccc, ddd, block[10] , 12); FFF(ddd, eee, aaa, bbb, ccc, block[ 4] , 9); FFF(ccc, ddd, eee, aaa, bbb, block[ 1] , 12); FFF(bbb, ccc, ddd, eee, aaa, block[ 5] , 5); FFF(aaa, bbb, ccc, ddd, eee, block[ 8] , 14); FFF(eee, aaa, bbb, ccc, ddd, block[ 7] , 6); FFF(ddd, eee, aaa, bbb, ccc, block[ 6] , 8); FFF(ccc, ddd, eee, aaa, bbb, block[ 2] , 13); FFF(bbb, ccc, ddd, eee, aaa, block[13] , 6); FFF(aaa, bbb, ccc, ddd, eee, block[14] , 5); FFF(eee, aaa, bbb, ccc, ddd, block[ 0] , 15); FFF(ddd, eee, aaa, bbb, ccc, block[ 3] , 13); FFF(ccc, ddd, eee, aaa, bbb, block[ 9] , 11); FFF(bbb, ccc, ddd, eee, aaa, block[11] , 11); /* combine results */ ddd += cc + state[1]; /* final result for state[0] */ state[1] = state[2] + dd + eee; state[2] = state[3] + ee + aaa; state[3] = state[4] + aa + bbb; state[4] = state[0] + bb + ccc; state[0] = ddd; } /********************************************************************/ void RMD160Update(RMD160_CTX *context, const unsigned char *data, uint32_t nbytes) { uint32_t X[16]; uint32_t ofs = 0; uint32_t i; #if BYTE_ORDER != LITTLE_ENDIAN uint32_t j; #endif _DIAGASSERT(context != NULL); _DIAGASSERT(data != NULL); /* update length[] */ if (context->length[0] + nbytes < context->length[0]) context->length[1]++; /* overflow to msb of length */ context->length[0] += nbytes; ZEROIZE(X, sizeof(X)); if ( context->buflen + nbytes < 64 ) { (void)memcpy(context->bbuffer + context->buflen, data, nbytes); context->buflen += nbytes; } else { /* process first block */ ofs = 64 - context->buflen; (void)memcpy(context->bbuffer + context->buflen, data, ofs); #if BYTE_ORDER == LITTLE_ENDIAN (void)memcpy(X, context->bbuffer, sizeof(X)); #else for (j=0; j < 16; j++) X[j] = BYTES_TO_DWORD(context->bbuffer + (4 * j)); #endif RMD160Transform(context->state, X); nbytes -= ofs; /* process remaining complete blocks */ for (i = 0; i < (nbytes >> 6); i++) { #if BYTE_ORDER == LITTLE_ENDIAN (void)memcpy(X, data + (64 * i) + ofs, sizeof(X)); #else for (j=0; j < 16; j++) X[j] = BYTES_TO_DWORD(data + (64 * i) + (4 * j) + ofs); #endif RMD160Transform(context->state, X); } /* * Put last bytes from data into context's buffer */ context->buflen = nbytes & 63; memcpy(context->bbuffer, data + (64 * i) + ofs, context->buflen); } } /********************************************************************/ void RMD160Final(unsigned char digest[20], RMD160_CTX *context) { uint32_t i; uint32_t X[16]; #if BYTE_ORDER != LITTLE_ENDIAN uint32_t j; #endif _DIAGASSERT(digest != NULL); _DIAGASSERT(context != NULL); /* append the bit m_n == 1 */ context->bbuffer[context->buflen] = (unsigned char)'\200'; ZEROIZE(context->bbuffer + context->buflen + 1, 63 - context->buflen); #if BYTE_ORDER == LITTLE_ENDIAN (void)memcpy(X, context->bbuffer, sizeof(X)); #else for (j=0; j < 16; j++) X[j] = BYTES_TO_DWORD(context->bbuffer + (4 * j)); #endif if ((context->buflen) > 55) { /* length goes to next block */ RMD160Transform(context->state, X); ZEROIZE(X, sizeof(X)); } /* append length in bits */ X[14] = context->length[0] << 3; X[15] = (context->length[0] >> 29) | (context->length[1] << 3); RMD160Transform(context->state, X); if (digest != NULL) { for (i = 0; i < 20; i += 4) { /* extracts the 8 least significant bits. */ digest[i] = context->state[i>>2]; digest[i + 1] = (context->state[i>>2] >> 8); digest[i + 2] = (context->state[i>>2] >> 16); digest[i + 3] = (context->state[i>>2] >> 24); } } } /************************ end of file rmd160.c **********************/ #endif /* HAVE_RMD160_H */ libnbcompat-20180822/timegm.c0000644000175000017500000000466013355271171016145 0ustar jgoerzenjgoerzen/* * Copyright (c) 2001-2006, NLnet Labs. All rights reserved. * * This software is open source. * * 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. * * Neither the name of the NLNET LABS nor the names of its contributors may * be used to endorse or promote products derived from this software without * specific prior written permission. * 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 REGENTS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include /* Number of days per month (except for February in leap years). */ static const int monoff[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; static int is_leap_year(int year) { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); } static int leap_days(int y1, int y2) { --y1; --y2; return (y2/4 - y1/4) - (y2/100 - y1/100) + (y2/400 - y1/400); } /* * Code adapted from Python 2.4.1 sources (Lib/calendar.py). */ time_t timegm(const struct tm *tm) { int year; time_t days; time_t hours; time_t minutes; time_t seconds; year = 1900 + tm->tm_year; days = 365 * (year - 1970) + leap_days(1970, year); days += monoff[tm->tm_mon]; if (tm->tm_mon > 1 && is_leap_year(year)) ++days; days += tm->tm_mday - 1; hours = days * 24 + tm->tm_hour; minutes = hours * 60 + tm->tm_min; seconds = minutes * 60 + tm->tm_sec; return seconds; } libnbcompat-20180822/vis.c0000644000175000017500000002637313355271171015471 0ustar jgoerzenjgoerzen/* $NetBSD: vis.c,v 1.11 2008/10/06 12:36:20 joerg Exp $ */ /*- * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: vis.c,v 1.11 2008/10/06 12:36:20 joerg Exp $"); #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(strsvis,_strsvis) __weak_alias(strsvisx,_strsvisx) __weak_alias(strvis,_strvis) __weak_alias(strvisx,_strvisx) __weak_alias(svis,_svis) __weak_alias(vis,_vis) #endif #endif #include #include #include #include #undef BELL #define BELL '\a' #define isoctal(c) (((unsigned char)(c)) >= '0' && ((unsigned char)(c)) <= '7') #define iswhite(c) (c == ' ' || c == '\t' || c == '\n') #define issafe(c) (c == '\b' || c == BELL || c == '\r') #define xtoa(c) "0123456789abcdef"[c] #define MAXEXTRAS 5 #define MAKEEXTRALIST(flag, extra, orig_str) \ do { \ const char *orig = orig_str; \ const char *o = orig; \ char *e; \ while (*o++) \ continue; \ extra = alloca((size_t)((o - orig) + MAXEXTRAS)); \ for (o = orig, e = extra; (*e++ = *o++) != '\0';) \ continue; \ e--; \ if (flag & VIS_SP) *e++ = ' '; \ if (flag & VIS_TAB) *e++ = '\t'; \ if (flag & VIS_NL) *e++ = '\n'; \ if ((flag & VIS_NOSLASH) == 0) *e++ = '\\'; \ *e = '\0'; \ } while (/*CONSTCOND*/0) /* * This is HVIS, the macro of vis used to HTTP style (RFC 1808) */ #define HVIS(dst, c, flag, nextc, extra) \ do \ if (!isascii(c) || !isalnum(c) || strchr("$-_.+!*'(),", c) != NULL) { \ *dst++ = '%'; \ *dst++ = xtoa(((unsigned int)c >> 4) & 0xf); \ *dst++ = xtoa((unsigned int)c & 0xf); \ } else { \ SVIS(dst, c, flag, nextc, extra); \ } \ while (/*CONSTCOND*/0) /* * This is SVIS, the central macro of vis. * dst: Pointer to the destination buffer * c: Character to encode * flag: Flag word * nextc: The character following 'c' * extra: Pointer to the list of extra characters to be * backslash-protected. */ #define SVIS(dst, c, flag, nextc, extra) \ do { \ int isextra; \ isextra = strchr(extra, c) != NULL; \ if (!isextra && isascii(c) && (isgraph(c) || iswhite(c) || \ ((flag & VIS_SAFE) && issafe(c)))) { \ *dst++ = c; \ break; \ } \ if (flag & VIS_CSTYLE) { \ switch (c) { \ case '\n': \ *dst++ = '\\'; *dst++ = 'n'; \ continue; \ case '\r': \ *dst++ = '\\'; *dst++ = 'r'; \ continue; \ case '\b': \ *dst++ = '\\'; *dst++ = 'b'; \ continue; \ case BELL: \ *dst++ = '\\'; *dst++ = 'a'; \ continue; \ case '\v': \ *dst++ = '\\'; *dst++ = 'v'; \ continue; \ case '\t': \ *dst++ = '\\'; *dst++ = 't'; \ continue; \ case '\f': \ *dst++ = '\\'; *dst++ = 'f'; \ continue; \ case ' ': \ *dst++ = '\\'; *dst++ = 's'; \ continue; \ case '\0': \ *dst++ = '\\'; *dst++ = '0'; \ if (isoctal(nextc)) { \ *dst++ = '0'; \ *dst++ = '0'; \ } \ continue; \ default: \ if (isgraph(c)) { \ *dst++ = '\\'; *dst++ = c; \ continue; \ } \ } \ } \ if (isextra || ((c & 0177) == ' ') || (flag & VIS_OCTAL)) { \ *dst++ = '\\'; \ *dst++ = (unsigned char)(((uint32_t)(unsigned char)c >> 6) & 03) + '0'; \ *dst++ = (unsigned char)(((uint32_t)(unsigned char)c >> 3) & 07) + '0'; \ *dst++ = (c & 07) + '0'; \ } else { \ if ((flag & VIS_NOSLASH) == 0) *dst++ = '\\'; \ if (c & 0200) { \ c &= 0177; *dst++ = 'M'; \ } \ if (iscntrl(c)) { \ *dst++ = '^'; \ if (c == 0177) \ *dst++ = '?'; \ else \ *dst++ = c + '@'; \ } else { \ *dst++ = '-'; *dst++ = c; \ } \ } \ } while (/*CONSTCOND*/0) /* * svis - visually encode characters, also encoding the characters * pointed to by `extra' */ char * svis(dst, c, flag, nextc, extra) char *dst; int c, flag, nextc; const char *extra; { char *nextra; _DIAGASSERT(dst != NULL); _DIAGASSERT(extra != NULL); MAKEEXTRALIST(flag, nextra, extra); if (flag & VIS_HTTPSTYLE) HVIS(dst, c, flag, nextc, nextra); else SVIS(dst, c, flag, nextc, nextra); *dst = '\0'; return(dst); } /* * strsvis, strsvisx - visually encode characters from src into dst * * Extra is a pointer to a \0-terminated list of characters to * be encoded, too. These functions are useful e. g. to * encode strings in such a way so that they are not interpreted * by a shell. * * Dst must be 4 times the size of src to account for possible * expansion. The length of dst, not including the trailing NULL, * is returned. * * Strsvisx encodes exactly len bytes from src into dst. * This is useful for encoding a block of data. */ int strsvis(dst, csrc, flag, extra) char *dst; const char *csrc; int flag; const char *extra; { int c; char *start; char *nextra; const unsigned char *src = (const unsigned char *)csrc; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); _DIAGASSERT(extra != NULL); MAKEEXTRALIST(flag, nextra, extra); if (flag & VIS_HTTPSTYLE) { for (start = dst; (c = *src++) != '\0'; /* empty */) HVIS(dst, c, flag, *src, nextra); } else { for (start = dst; (c = *src++) != '\0'; /* empty */) SVIS(dst, c, flag, *src, nextra); } *dst = '\0'; return (dst - start); } int strsvisx(dst, csrc, len, flag, extra) char *dst; const char *csrc; size_t len; int flag; const char *extra; { int c; char *start; char *nextra; const unsigned char *src = (const unsigned char *)csrc; _DIAGASSERT(dst != NULL); _DIAGASSERT(src != NULL); _DIAGASSERT(extra != NULL); MAKEEXTRALIST(flag, nextra, extra); if (flag & VIS_HTTPSTYLE) { for (start = dst; len > 0; len--) { c = *src++; HVIS(dst, c, flag, len ? *src : '\0', nextra); } } else { for (start = dst; len > 0; len--) { c = *src++; SVIS(dst, c, flag, len ? *src : '\0', nextra); } } *dst = '\0'; return (dst - start); } /* * vis - visually encode characters */ char * vis(dst, c, flag, nextc) char *dst; int c, flag, nextc; { char *extra; _DIAGASSERT(dst != NULL); MAKEEXTRALIST(flag, extra, ""); if (flag & VIS_HTTPSTYLE) HVIS(dst, c, flag, nextc, extra); else SVIS(dst, c, flag, nextc, extra); *dst = '\0'; return (dst); } /* * strvis, strvisx - visually encode characters from src into dst * * Dst must be 4 times the size of src to account for possible * expansion. The length of dst, not including the trailing NULL, * is returned. * * Strvisx encodes exactly len bytes from src into dst. * This is useful for encoding a block of data. */ int strvis(dst, src, flag) char *dst; const char *src; int flag; { char *extra; MAKEEXTRALIST(flag, extra, ""); return (strsvis(dst, src, flag, extra)); } int strvisx(dst, src, len, flag) char *dst; const char *src; size_t len; int flag; { char *extra; MAKEEXTRALIST(flag, extra, ""); return (strsvisx(dst, src, len, flag, extra)); } libnbcompat-20180822/configure.ac0000644000175000017500000003332113355271171017001 0ustar jgoerzenjgoerzendnl $NetBSD: configure.ac,v 1.86 2015/09/01 23:17:51 kamil Exp $ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) AC_INIT([libnbcompat], [20150419], [joerg@NetBSD.org]) AC_CONFIG_HEADER(nbcompat/config.h) AC_ARG_PROGRAM AC_CANONICAL_HOST AC_GNU_SOURCE CANONICAL_HOST=$host AC_SUBST(CANONICAL_HOST) AC_SUBST(INCLUDES) # Checks for programs. AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_RANLIB AC_PROG_AWK AC_CHECK_PROG(AR, ar, ar) AUTOCONF=${AUTOCONF-"$srcdir/missing --run autoconf"} AC_SUBST(AUTOCONF) AUTOHEADER=${AUTOHEADER-"$srcdir/missing --run autoheader"} AC_SUBST(AUTOHEADER) dnl Checks for libraries AC_CHECK_LIB(util, fparseln) dnl Checks for header files. AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_STDBOOL AC_CHECK_HEADERS([alloca.h assert.h bsd/libutil.h ctype.h dirent.h endian.h \ err.h errno.h fcntl.h fnmatch.h fts.h grp.h inttypes.h libutil.h \ limits.h machine/endian.h ndir.h netdb.h paths.h pwd.h signal.h \ stdarg.h stddef.h stdint.h stdio.h \ stdlib.h string.h sys/byteorder.h sys/cdefs.h sys/dir.h sys/endian.h \ sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/socket.h sys/stat.h \ sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ sys/uio.h sys/vfs.h sysexits.h termcap.h time.h tzfile.h unistd.h \ util.h utime.h sys/mman.h ]) AC_CHECK_HEADERS([sys/mount.h], [:], [:], [ AC_INCLUDES_DEFAULT #ifdef HAVE_SYS_PARAM_H #include #endif ]) dnl Always use our own glob(). AC_CHECK_HEADERS([glob.h]) AC_DEFINE(HAVE_NBCOMPAT_GLOB) AH_TEMPLATE([HAVE_NBCOMPAT_GLOB], [ Define to 1 if the `glob' function is built into the library. ]) AC_LIBOBJ(glob) dnl Always use our own queue(3) implementation. AC_CHECK_HEADERS([sys/queue.h]) AC_DEFINE(HAVE_NBCOMPAT_QUEUE) AH_TEMPLATE([HAVE_NBCOMPAT_QUEUE], [ Define to 1 if the `queue' macros are supplied by the library. ]) AC_CHECK_HEADERS([regex.h]) AC_CHECK_FUNC(regexec, [:], [ AC_DEFINE(HAVE_NBCOMPAT_REGEX) AH_TEMPLATE([HAVE_NBCOMPAT_REGEX], [ Define to 1 if the `regex' functions are built into the library. ]) AC_LIBOBJ(regcomp) AC_LIBOBJ(regerror) AC_LIBOBJ(regexec) AC_LIBOBJ(regfree) ]) AC_MSG_TRY_LINK([for va_copy], pkg_cv_have_va_copy, [ #include ], [ va_list ap, ap2; va_copy(ap2, ap); return 0; ], AC_DEFINE(HAVE_VA_COPY) AH_TEMPLATE([HAVE_VA_COPY], [ Define to 1 if the `va_copy' function is supported. ]), [:] ]) AC_MSG_TRY_LINK([for __builtin_va_copy], pkg_cv_have___builtin_va_copy, [ #include ], [ va_list ap, ap2; __builtin_va_copy(ap2, ap); return 0; ], AC_DEFINE(HAVE___BUILTIN_VA_COPY) AH_TEMPLATE([HAVE___BUILTIN_VA_COPY], [ Define to 1 if the `__builtin_va_copy' function is supported. ]), [:] ]) AC_CHECK_HEADERS([md5.h], [ AC_MSG_TRY_COMPILE([for MD5Init in md5.h], pkg_cv_have_md5init, [ #include #include ], [ MD5_CTX *f; MD5Init(f); ], [:], [ AC_DEFINE(HAVE_NBCOMPAT_MD5INIT) AH_TEMPLATE([HAVE_NBCOMPAT_MD5INIT], [ Define to 1 if the `MD5Init' function is built into the library. ]) ]) ]) AC_CHECK_HEADERS([md5.h rmd160.h sha1.h sha2.h]) AC_CHECK_FUNC(MD5File, [:], [ AC_DEFINE(HAVE_NBCOMPAT_MD5) AH_TEMPLATE([HAVE_NBCOMPAT_MD5], [ Define to 1 if the `MD5*' functions are built into the library. ]) AC_LIBOBJ(md5c) AC_LIBOBJ(md5hl) ]) AC_CHECK_FUNC(RMD160File, [:], [ AC_DEFINE(HAVE_NBCOMPAT_RMD160) AH_TEMPLATE([HAVE_NBCOMPAT_RMD160], [ Define to 1 if the `RMD160*' functions are built into the library. ]) AC_LIBOBJ(rmd160) AC_LIBOBJ(rmd160hl) ]) AC_CHECK_FUNC(SHA1File, [:], [ AC_DEFINE(HAVE_NBCOMPAT_SHA1) AH_TEMPLATE([HAVE_NBCOMPAT_SHA1], [ Define to 1 if the `SHA1*' functions are built into the library. ]) AC_LIBOBJ(sha1) AC_LIBOBJ(sha1hl) ]) AC_CHECK_FUNC(SHA512_File, [:], [ AC_DEFINE(HAVE_NBCOMPAT_SHA2) AH_TEMPLATE([HAVE_NBCOMPAT_SHA2], [ Define to 1 if the `SHA2*' functions are built into the library. ]) AC_LIBOBJ(sha2) AC_LIBOBJ(sha2hl) ]) case $host in *-*-hpux*) AC_DEFINE(BROKEN_PREAD) AH_TEMPLATE([BROKEN_PREAD], [ Define to 1 if the `pread' function is broken. ]) AC_DEFINE(BROKEN_PWRITE) AH_TEMPLATE([BROKEN_PWRITE], [ Define to 1 if the `pwrite' function is broken. ]) ;; *-*-sco3.2v5*) AC_DEFINE(BROKEN_PREAD) AH_TEMPLATE([BROKEN_PREAD], [ Define to 1 if the `pread' function is broken. ]) AC_DEFINE(BROKEN_PWRITE) AH_TEMPLATE([BROKEN_PWRITE], [ Define to 1 if the `pwrite' function is broken. ]) ;; esac AC_ARG_ENABLE([db], [AS_HELP_STRING([--enable-db], [include DB implementation])]) AC_SUBST(WITH_DB, $enable_db) AC_CHECK_FUNCS(issetugid) AC_ARG_ENABLE([bsd-getopt], [AS_HELP_STRING([--enable-bsd-getopt], [force use of BSDish getopt implementation])]) AC_CHECK_DECLS([optarg, optind, optreset], [:], [:], [ #include #include #include ]) our_getopt_long=no AC_CHECK_HEADERS([getopt.h], [ AC_CHECK_TYPES([struct option], [:], [ our_getopt_long=yes ], [#include ])], [ our_getopt_long=yes ] ) if test "$enable_bsd_getopt" = yes; then if test "$ac_cv_have_decl_optreset" = no; then AC_MSG_NOTICE([Using included getopt and getopt_long]) AC_LIBOBJ(getopt) our_getopt_long=yes fi fi if test "$our_getopt_long" = "yes"; then AC_LIBOBJ(getopt_long) fi dnl Check that this vis.h has *vis()-related functions because Solaris' dnl vis.h doesn't. Also, only consider the header found if it defines dnl all of the functions that we need. dnl pkg_use_nbcompat_vis=yes AC_CHECK_HEADERS([vis.h], [ AC_MSG_TRY_COMPILE([for VIS_WHITE in vis.h], pkg_cv_have_vis_white, [ #include #include ], [ int X = VIS_WHITE; ], [ AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis]) AC_CHECK_FUNCS([strunvis strvis strsvis svis unvis vis], [pkg_use_nbcompat_vis=no], [pkg_use_nbcompat_vis=yes; break]) ]) ]) if test $pkg_use_nbcompat_vis = yes; then AC_DEFINE(HAVE_NBCOMPAT_VIS) AH_TEMPLATE([HAVE_NBCOMPAT_VIS], [ Define to 1 if the `vis' function is built into the library. ]) AC_LIBOBJ(vis) AC_LIBOBJ(unvis) fi dnl Checks for typedefs, structures, and compiler characteristics. AC_C___ATTRIBUTE__ AC_TYPE_SIZE_T AC_TYPE_UINTPTR_T AC_TYPE_INT8_T AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T AC_TYPE_UINT8_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_CHECK_TYPES([long long, long double],[],[], [#if STDC_HEADERS #include #include #endif #if HAVE_INTTYPES_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_BITYPES_H #include #endif]) AC_CHECK_TYPES([fsid_t],[],[], [#if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_PARAM_H #include #endif #if HAVE_SYS_MOUNT_H #include #endif #if HAVE_SYS_VFS_H #include #endif]) AC_C_BIGENDIAN AC_CHECK_SIZEOF(off_t, 0) # Checks for library functions. AC_FUNC_STRERROR_R AC_FUNC_VFORK AC_CHECK_DECLS([snprintf(char *, size_t, const char *, ...)], [], [AC_LIBOBJ(snprintf)], [#include ]) AC_CHECK_DECLS([asprintf(char **, const char *, ...)], [], [AC_LIBOBJ(asprintf)], [#define _GNU_SOURCE #include ]) AC_CHECK_DECLS([strdup(const char *)], [], [AC_LIBOBJ(strdup)], [#include ]) case $host_os in darwin*) # NetBSD PR 38488: warnx(3) escapes certain characters like \n ac_cv_func_warn=no ;; esac AC_CHECK_DECLS([isblank(int)], [], [AC_LIBOBJ(isblank)], [#include ]) AC_REPLACE_FUNCS([err fgetln fnmatch fparseln getdelim getenv \ getline lchflags lchmod lchown lutimes mkdtemp mkstemp setenv \ setgroupent setpassent setprogname shquote statvfs \ strerror strlcat strlcpy strmode strsep strtoll unsetenv usleep \ utimes warn ]) AC_SEARCH_LIBS(socket, [socket network]) AC_CHECK_LIB(nsl, gethostbyname) need_getaddrinfo=no AC_CHECK_TYPES([socklen_t], [], [], [[#ifdef HAVE_SYS_TYPES_H # include #endif #include ]]) AC_CHECK_TYPES([struct addrinfo], [], [], [[#include ]]) AC_CHECK_TYPES([struct in6_addr], [], [], [[#ifdef HAVE_SYS_TYPES_H # include #endif #include ]]) AC_CHECK_TYPES([struct sockaddr_in6], [], [], [[#ifdef HAVE_SYS_TYPES_H # include #endif #include ]]) AC_CHECK_TYPES([struct sockaddr_storage], [], [], [[#ifdef HAVE_SYS_TYPES_H # include #endif #include ]]) dnl Assume that freeaddrinfo is only missing if getaddrinfo is also missing AC_CHECK_FUNCS([getnameinfo gai_strerror getaddrinfo], [:], [need_getaddrinfo=yes]) if test $need_getaddrinfo = yes; then AC_LIBOBJ(getaddrinfo) fi need_findenv=no AC_CHECK_FUNCS([getenv setenv unsetenv], [:], [need_findenv=yes]) if test $need_findenv = yes; then AC_LIBOBJ(findenv) fi need_gettemp=no AC_CHECK_FUNCS([mkdtemp mkstemp], [:], [ need_gettemp=yes ]) if test $need_gettemp = yes; then AC_LIBOBJ(gettemp) fi AC_CHECK_FUNCS([setlocale]) need_setmode=no AC_CHECK_FUNCS([getmode setmode], [:], [need_setmode=yes]) if test $need_setmode = yes; then AC_LIBOBJ(setmode) fi AC_CHECK_DECLS([endgrent, endpwent, setpassent]) need_pwcache=no AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \ pwcache_userdb uid_from_user user_from_uid \ ], [:], [need_pwcache=yes]) if test $need_pwcache = yes; then AC_LIBOBJ(pwcache) fi AC_CHECK_FUNC(fts_open, [:], [ AC_DEFINE(HAVE_NBCOMPAT_FTS, 1) AH_TEMPLATE([HAVE_NBCOMPAT_FTS], [ Define to 1 if the `fts_*' functions are built into the library. ]) AC_LIBOBJ(fts) ]) AC_CHECK_FUNC(timegm, [:], [AC_LIBOBJ(timegm)]) # Handle Darwin 7 having a poll() compatibility function. Be # conservative -- if we don't find one of or , then # use our own poll() implementation. # pkg_cv_have_poll_h=no AC_CHECK_HEADERS([poll.h sys/poll.h]) AC_CHECK_HEADERS([poll.h sys/poll.h], [pkg_cv_have_poll_h=yes]) pkg_use_nbcompat_poll=yes if test $pkg_cv_have_poll_h = yes; then pkg_use_nbcompat_poll=no fi if test $pkg_cv_have_poll_h = yes -o test $pkg_cv_have_sys_poll_h = yes; then AC_CHECK_FUNC(poll, [ AC_MSG_TRY_COMPILE([if poll() is implemented natively], pkg_cv_native_poll, [ #if HAVE_POLL_H #include #endif #if HAVE_SYS_POLL_H #include #endif ], [ #ifdef _POLL_EMUL_H_ #error "poll() is emulated" #endif ], [pkg_use_nbcompat_poll=no], [pkg_use_nbcompat_poll=yes]) ]) fi if test $pkg_use_nbcompat_poll = yes; then AC_DEFINE(HAVE_NBCOMPAT_POLL, 1) AH_TEMPLATE([HAVE_NBCOMPAT_POLL], [ Define to 1 if the `poll' function is built into the library. ]) AC_LIBOBJ(poll) fi AC_CHECK_FUNCS([getpassphrase getpgrp select]) AC_CHECK_FUNC(getpgrp, [AC_FUNC_GETPGRP]) AC_CHECK_MEMBERS([struct statfs.f_flags], [:], [:], [ #include ]) AC_CHECK_MEMBERS([struct statfs.f_fsize], [:], [:], [ #include ]) AC_CHECK_MEMBERS([struct statfs.f_iosize], [:], [:], [ #include ]) AC_CHECK_MEMBERS([struct dirent.d_namlen, DIR.dd_fd], [:], [:], [ #include #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif ]) AC_MSG_CHECKING([for dirfd]) AC_TRY_LINK( [ #include #if HAVE_DIRENT_H # include #else # define dirent direct # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif int dummy_var; ], [ dummy_var = dirfd((DIR *)0) ], [ AC_MSG_RESULT(yes) AC_DEFINE([HAVE_DIRFD], [1], [Define if dirfd is either a function or a macro.]) ], [ AC_MSG_RESULT(no) ] ) if test $ac_cv_type_long_long = yes; then dnl We assume that if sprintf() supports %lld or %qd, dnl then all of *printf() does. If not, disable long long dnl support because we don't know how to display it. AC_MSG_CHECKING(*printf() support for %lld) can_printf_longlong=no AC_TRY_RUN([ #include int main() { char buf[100]; sprintf(buf, "%lld", 4294967300LL); return (strcmp(buf, "4294967300")); } ], [ AC_MSG_RESULT(yes) can_printf_longlong=yes ], [ AC_MSG_RESULT(no) ], [:]) if test $can_printf_longlong != yes; then AC_MSG_CHECKING(*printf() support for %qd) AC_TRY_RUN([ #include int main() { char buf[100]; sprintf(buf, "%qd", 4294967300LL); return (strcmp(buf, "4294967300")); } ], [ AC_MSG_RESULT(yes) can_printf_longlong=yes AC_DEFINE(HAVE_PRINTF_QD, 1) AH_TEMPLATE([HAVE_PRINTF_QD], [ Define to 1 if *printf() uses %qd to print `long long' (otherwise uses %lld). ]) ], [ AC_MSG_RESULT(no) ], [:]) fi if test $can_printf_longlong = yes; then AC_DEFINE(HAVE_WORKING_LONG_LONG, 1) AH_TEMPLATE([HAVE_WORKING_LONG_LONG], [ Define to 1 if `long long' is supported and sizeof(off_t) >= 8. ]) AC_REPLACE_FUNCS(strtoll) fi fi dnl Check if vsnprintf returns the number of bytes that would have been dnl written, had the buffer been large enough. AC_MSG_CHECKING(if vsnprintf is standards compliant) have_std_vsnprintf=no AC_TRY_RUN([ #include #include #include void dotest(char *fmt, ...) { char buf[3]; va_list ap; va_start(ap, fmt); exit(snprintf(buf, 3, fmt, ap) == 4 ? 0 : 1); } int main() { dotest("test"); } ], [ AC_MSG_RESULT(yes) have_std_vsnprintf=yes ], [ AC_MSG_RESULT(no) ], [:]) if test $have_std_vsnprintf = no; then AC_LIBOBJ(snprintf) fi AH_BOTTOM([ /* NBCOMPAT template section follows. */ #ifndef HAVE___ATTRIBUTE__ # define __attribute__(x) #endif ]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT libnbcompat-20180822/statvfs.c0000644000175000017500000000670213355271171016354 0ustar jgoerzenjgoerzen/* $NetBSD: statvfs.c,v 1.6 2013/09/08 16:24:43 ryoon Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Christos Zoulas. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include #include #include static void fs2vfs(struct statvfs *vfs, const struct statfs *sfs); static void fs2vfs(struct statvfs *vfs, const struct statfs *sfs) { vfs->f_flag = 0; #if HAVE_STRUCT_STATFS_F_FLAGS if (sfs->f_flags & MNT_RDONLY) vfs->f_flag |= ST_RDONLY; if (sfs->f_flags & MNT_NOSUID) vfs->f_flag |= ST_NOSUID; #endif #if HAVE_STRUCT_STATFS_F_FSIZE vfs->f_bsize = sfs->f_fsize #else vfs->f_bsize = sfs->f_bsize; #endif vfs->f_frsize = sfs->f_bsize; #if HAVE_STRUCT_STATFS_F_IOSIZE vfs->f_iosize = sfs->f_iosize; #else vfs->f_iosize = sfs->f_bsize; #endif vfs->f_blocks = sfs->f_blocks; vfs->f_bfree = sfs->f_bfree; vfs->f_bavail = sfs->f_bavail; vfs->f_bresvd = 0; /* XXX */ vfs->f_files = sfs->f_files; vfs->f_ffree = sfs->f_ffree; /* * f_favail is supposed to only be free nodes available to non-root * but that info isn't available via statfs(). Just fudge it by * assigning it f_ffree as well, which is the total free nodes. */ vfs->f_favail = sfs->f_ffree; vfs->f_fresvd = 0; /* XXX */ vfs->f_syncreads = 0; /* XXX */ vfs->f_syncwrites= 0; /* XXX */ vfs->f_asyncreads = 0; /* XXX */ vfs->f_asyncwrites= 0; /* XXX */ (void) memcpy(&vfs->f_fsidx, &sfs->f_fsid, sizeof(fsid_t)); #if !defined(__MINT__) vfs->f_fsid = sfs->f_fsid.val[0]; #else vfs->f_fsid = sfs->f_fsid; #endif #if HAVE_STRUCT_STATFS_F_IOSIZE vfs->f_namemax = sfs->f_name_max; #else vfs->f_namemax = VFS_MNAMELEN; /* XXX */ #endif vfs->f_owner = 0; /* XXX */ vfs->f_fstypename[0] = '\0'; /* XXX */ vfs->f_mntonname[0] = '\0'; /* XXX */ vfs->f_mntfromname[0] = '\0'; /* XXX */ } int statvfs(const char *path, struct statvfs *vfs) { struct statfs sfs; if (statfs(path, &sfs) == -1) return -1; fs2vfs(vfs, &sfs); return 0; } int fstatvfs(int fd, struct statvfs *vfs) { struct statfs sfs; if (fstatfs(fd, &sfs) == -1) return -1; fs2vfs(vfs, &sfs); return 0; } libnbcompat-20180822/private/0000755000175000017500000000000013355271171016163 5ustar jgoerzenjgoerzenlibnbcompat-20180822/private/utils.h0000644000175000017500000001052413355271171017476 0ustar jgoerzenjgoerzen/* $NetBSD: utils.h,v 1.2 2005/11/28 20:47:29 schwarz Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)utils.h 8.3 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)utils.h 8.3 (Berkeley) 3/20/94 */ /* utility definitions */ #ifdef _POSIX2_RE_DUP_MAX #define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */ #else #define DUPMAX 255 /* xxx is that reasonable? */ #endif #define INFINITY (DUPMAX + 1) #define NC (CHAR_MAX - CHAR_MIN + 1) typedef unsigned char uch; /* switch off assertions (if not already off) if no REDEBUG */ #ifndef REDEBUG #ifndef NDEBUG #define NDEBUG /* no assertions please */ #endif #endif #include /* * Workaround bug in some assert.h. This is okay since we really don't * want assertions in the regex code. */ #undef assert #define assert(cond) ((void) 0) /* for old systems with bcopy() but no memmove() */ #ifdef USEBCOPY #define memmove(d, s, c) bcopy(s, d, c) #endif libnbcompat-20180822/private/regex2.h0000644000175000017500000002154013355271171017532 0ustar jgoerzenjgoerzen/* $NetBSD: regex2.h,v 1.2 2008/10/06 12:36:20 joerg Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regex2.h 8.4 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regex2.h 8.4 (Berkeley) 3/20/94 */ /* * First, the stuff that ends up in the outside-world include file = typedef off_t regoff_t; = typedef struct { = int re_magic; = size_t re_nsub; // number of parenthesized subexpressions = const char *re_endp; // end pointer for REG_PEND = struct re_guts *re_g; // none of your business :-) = } regex_t; = typedef struct { = regoff_t rm_so; // start of match = regoff_t rm_eo; // end of match = } regmatch_t; */ /* * internals of regex_t */ #define MAGIC1 ((('r'^0200)<<8) | 'e') /* * The internal representation is a *strip*, a sequence of * operators ending with an endmarker. (Some terminology etc. is a * historical relic of earlier versions which used multiple strips.) * Certain oddities in the representation are there to permit running * the machinery backwards; in particular, any deviation from sequential * flow must be marked at both its source and its destination. Some * fine points: * * - OPLUS_ and O_PLUS are *inside* the loop they create. * - OQUEST_ and O_QUEST are *outside* the bypass they create. * - OCH_ and O_CH are *outside* the multi-way branch they create, while * OOR1 and OOR2 are respectively the end and the beginning of one of * the branches. Note that there is an implicit OOR2 following OCH_ * and an implicit OOR1 preceding O_CH. * * In state representations, an operator's bit is on to signify a state * immediately *preceding* "execution" of that operator. */ typedef uint32_t sop; /* strip operator */ typedef int sopno; #define OPRMASK ((uint32_t)0xf8000000UL) #define OPDMASK ((uint32_t)0x07ffffffUL) #define OPSHIFT ((unsigned int)27) #define OP(n) ((n)&OPRMASK) #define OPND(n) ((int)((n)&OPDMASK)) #define SOP(op, opnd) ((op)|(opnd)) #define OPC(n) (((uint32_t)(n))< uch [csetsize] */ uch mask; /* bit within array */ uch hash; /* hash code */ size_t smultis; char *multis; /* -> char[smulti] ab\0cd\0ef\0\0 */ } cset; /* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */ #define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (c)) #define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c)) #define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) #define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ #define MCsub(p, cs, cp) mcsub(p, cs, cp) #define MCin(p, cs, cp) mcin(p, cs, cp) /* stuff for character categories */ typedef unsigned char cat_t; /* * main compiled-expression structure */ struct re_guts { int magic; # define MAGIC2 ((('R'^0200)<<8)|'E') sop *strip; /* malloced area for strip */ int csetsize; /* number of bits in a cset vector */ int ncsets; /* number of csets in use */ cset *sets; /* -> cset [ncsets] */ uch *setbits; /* -> uch[csetsize][ncsets/CHAR_BIT] */ int cflags; /* copy of regcomp() cflags argument */ sopno nstates; /* = number of sops */ sopno firststate; /* the initial OEND (normally 0) */ sopno laststate; /* the final OEND */ int iflags; /* internal flags */ # define USEBOL 01 /* used ^ */ # define USEEOL 02 /* used $ */ # define BAD 04 /* something wrong */ int nbol; /* number of ^ used */ int neol; /* number of $ used */ int ncategories; /* how many character categories */ cat_t *categories; /* ->catspace[-CHAR_MIN] */ char *must; /* match must contain this string */ int mlen; /* length of must */ sopno nsub; /* copy of re_nsub */ int backrefs; /* does it use back references? */ sopno nplus; /* how deep does it nest +s? */ /* catspace must be last */ cat_t catspace[1]; /* actually [NC] */ }; /* misc utilities */ #define OUT (CHAR_MAX+1) /* a non-character value */ #define ISWORD(c) (isalnum((unsigned char)c) || (c) == '_') libnbcompat-20180822/private/cclass.h0000644000175000017500000001113113355271171017601 0ustar jgoerzenjgoerzen/* $NetBSD: cclass.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)cclass.h 8.3 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)cclass.h 8.3 (Berkeley) 3/20/94 */ /* character-class table */ static const struct cclass { const char *name; const char *chars; const char *multis; } cclasses[] = { { "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ 0123456789", "" }, { "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "" }, { "blank", " \t", "" }, { "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ \25\26\27\30\31\32\33\34\35\36\37\177", "" }, { "digit", "0123456789", "" }, { "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", "" }, { "lower", "abcdefghijklmnopqrstuvwxyz", "" }, { "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", "" }, { "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", "" }, { "space", "\t\n\v\f\r ", "" }, { "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "" }, { "xdigit", "0123456789ABCDEFabcdef", "" }, { NULL, 0, "" } }; libnbcompat-20180822/private/pwcache.h0000644000175000017500000000627413355271171017757 0ustar jgoerzenjgoerzen/* $NetBSD: pwcache.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992 Keith Muller. * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Keith Muller of the University of California, San Diego. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)cache.h 8.1 (Berkeley) 5/31/93 */ /* * Constants and data structures used to implement group and password file * caches. Traditional passwd/group cache routines perform quite poorly with * archives. The chances of hitting a valid lookup with an archive is quite a * bit worse than with files already resident on the file system. These misses * create a MAJOR performance cost. To address this problem, these routines * cache both hits and misses. * * NOTE: name lengths must be as large as those stored in ANY PROTOCOL and * as stored in the passwd and group files. CACHE SIZES MUST BE PRIME */ #define UNMLEN 32 /* >= user name found in any protocol */ #define GNMLEN 32 /* >= group name found in any protocol */ #define UID_SZ 317 /* size of uid to user_name cache */ #define UNM_SZ 317 /* size of user_name to uid cache */ #define GID_SZ 251 /* size of gid to group_name cache */ #define GNM_SZ 251 /* size of group_name to gid cache */ #define VALID 1 /* entry and name are valid */ #define INVALID 2 /* entry valid, name NOT valid */ /* * Node structures used in the user, group, uid, and gid caches. */ typedef struct uidc { int valid; /* is this a valid or a miss entry */ char name[UNMLEN]; /* uid name */ uid_t uid; /* cached uid */ } UIDC; typedef struct gidc { int valid; /* is this a valid or a miss entry */ char name[GNMLEN]; /* gid name */ gid_t gid; /* cached gid */ } GIDC; libnbcompat-20180822/private/cname.h0000644000175000017500000001374113355271171017425 0ustar jgoerzenjgoerzen/* $NetBSD: cname.h,v 1.1 2004/08/23 03:32:13 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)cname.h 8.3 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)cname.h 8.3 (Berkeley) 3/20/94 */ /* character-name table */ static const struct cname { const char *name; char code; } cnames[] = { { "NUL", '\0' }, { "SOH", '\001' }, { "STX", '\002' }, { "ETX", '\003' }, { "EOT", '\004' }, { "ENQ", '\005' }, { "ACK", '\006' }, { "BEL", '\007' }, { "alert", '\007' }, { "BS", '\010' }, { "backspace", '\b' }, { "HT", '\011' }, { "tab", '\t' }, { "LF", '\012' }, { "newline", '\n' }, { "VT", '\013' }, { "vertical-tab", '\v' }, { "FF", '\014' }, { "form-feed", '\f' }, { "CR", '\015' }, { "carriage-return", '\r' }, { "SO", '\016' }, { "SI", '\017' }, { "DLE", '\020' }, { "DC1", '\021' }, { "DC2", '\022' }, { "DC3", '\023' }, { "DC4", '\024' }, { "NAK", '\025' }, { "SYN", '\026' }, { "ETB", '\027' }, { "CAN", '\030' }, { "EM", '\031' }, { "SUB", '\032' }, { "ESC", '\033' }, { "IS4", '\034' }, { "FS", '\034' }, { "IS3", '\035' }, { "GS", '\035' }, { "IS2", '\036' }, { "RS", '\036' }, { "IS1", '\037' }, { "US", '\037' }, { "space", ' ' }, { "exclamation-mark", '!' }, { "quotation-mark", '"' }, { "number-sign", '#' }, { "dollar-sign", '$' }, { "percent-sign", '%' }, { "ampersand", '&' }, { "apostrophe", '\'' }, { "left-parenthesis", '(' }, { "right-parenthesis", ')' }, { "asterisk", '*' }, { "plus-sign", '+' }, { "comma", ',' }, { "hyphen", '-' }, { "hyphen-minus", '-' }, { "period", '.' }, { "full-stop", '.' }, { "slash", '/' }, { "solidus", '/' }, { "zero", '0' }, { "one", '1' }, { "two", '2' }, { "three", '3' }, { "four", '4' }, { "five", '5' }, { "six", '6' }, { "seven", '7' }, { "eight", '8' }, { "nine", '9' }, { "colon", ':' }, { "semicolon", ';' }, { "less-than-sign", '<' }, { "equals-sign", '=' }, { "greater-than-sign", '>' }, { "question-mark", '?' }, { "commercial-at", '@' }, { "left-square-bracket", '[' }, { "backslash", '\\' }, { "reverse-solidus", '\\' }, { "right-square-bracket", ']' }, { "circumflex", '^' }, { "circumflex-accent", '^' }, { "underscore", '_' }, { "low-line", '_' }, { "grave-accent", '`' }, { "left-brace", '{' }, { "left-curly-bracket", '{' }, { "vertical-line", '|' }, { "right-brace", '}' }, { "right-curly-bracket", '}' }, { "tilde", '~' }, { "DEL", '\177' }, { NULL, 0 }, }; libnbcompat-20180822/shquote.c0000644000175000017500000001145113355271171016347 0ustar jgoerzenjgoerzen/* $NetBSD: shquote.c,v 1.1 2008/10/06 12:36:20 joerg Exp $ */ /* * Copyright (c) 2001 Christopher G. Demetriou * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed for the * NetBSD Project. See http://www.NetBSD.org/ for * information about NetBSD. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * <> */ #include /* * Define SHQUOTE_USE_MULTIBYTE if you want shquote() to handle multibyte * characters using mbrtowc(). * * Please DO NOT rip this #ifdef out of the code. It's also here to help * portability. */ #undef SHQUOTE_USE_MULTIBYTE #include #include #ifdef SHQUOTE_USE_MULTIBYTE #include #include #include #endif /* * shquote(): * * Requotes arguments so that they'll be interpreted properly by the * shell (/bin/sh). * * Wraps single quotes around the string, and replaces single quotes * in the string with the sequence: * '\'' * * Returns the number of characters required to hold the resulting quoted * argument. * * The buffer supplied is filled in and NUL-terminated. If 'bufsize' * indicates that the buffer is too short to hold the output string, the * first (bufsize - 1) bytes of quoted argument are filled in and the * buffer is NUL-terminated. * * Changes could be made to optimize the length of strings output by this * function: * * * if there are no metacharacters or whitespace in the input, * the output could be the input string. */ #ifdef SHQUOTE_USE_MULTIBYTE #define XLATE_OUTCH(x) wcrtomb(outch, (x), &mbso) #define XLATE_INCH() \ do { \ n = mbrtowc(&c, arg, MB_CUR_MAX, &mbsi); \ } while (/*LINTED const cond*/0) #else #define XLATE_OUTCH(x) (outch[0] = (x), 1) #define XLATE_INCH() \ do { \ n = ((c = *arg) != '\0') ? 1 : 0; \ } while (/*LINTED const cond*/0) #endif #define PUT(x) \ do { \ outchlen = XLATE_OUTCH(x); \ if (outchlen == (size_t)-1) \ goto bad; \ rv += outchlen; \ if (bufsize != 0) { \ if (bufsize < outchlen || \ (bufsize == outchlen && \ outch[outchlen - 1] != '\0')) { \ *buf = '\0'; \ bufsize = 0; \ } else { \ memcpy(buf, outch, outchlen); \ buf += outchlen; \ bufsize -= outchlen; \ } \ } \ } while (/*LINTED const cond*/0) size_t shquote(const char *arg, char *buf, size_t bufsize) { #ifdef SHQUOTE_USE_MULTIBYTE char outch[MB_LEN_MAX]; mbstate_t mbsi, mbso; wchar_t c, lastc; size_t outchlen; #else char outch[1]; char c, lastc; size_t outchlen; #endif size_t rv; int n; rv = 0; lastc = 0; #ifdef SHQUOTE_USE_MULTIBYTE memset(&mbsi, 0, sizeof mbsi); memset(&mbso, 0, sizeof mbso); #endif if (*arg != '\'') PUT('\''); for (;;) { XLATE_INCH(); if (n <= 0) break; arg += n; lastc = c; if (c == '\'') { if (rv != 0) PUT('\''); PUT('\\'); PUT('\''); for (;;) { XLATE_INCH(); if (n <= 0 || c != '\'') break; PUT('\\'); PUT('\''); arg += n; } if (n > 0) PUT('\''); } else PUT(c); } if (lastc != '\'') PUT('\''); /* Put multibyte or NUL terminator, but don't count the NUL. */ PUT('\0'); rv--; return rv; bad: /* A multibyte character encoding or decoding error occurred. */ return (size_t)-1; } libnbcompat-20180822/regerror.c0000644000175000017500000001677513355271171016524 0ustar jgoerzenjgoerzen/* $NetBSD: regerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regerror.c 8.4 (Berkeley) 3/20/94 */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * @(#)regerror.c 8.4 (Berkeley) 3/20/94 */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)regerror.c 8.4 (Berkeley) 3/20/94"; #else __RCSID("$NetBSD: regerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #include #include #include #include #if 0 #ifdef __weak_alias __weak_alias(regerror,_regerror) #endif #endif #include "private/utils.h" /* ========= begin header generated by ./mkh ========= */ #ifdef __cplusplus extern "C" { #endif /* === regerror.c === */ static char *regatoi __P((const regex_t *preg, char *localbuf, size_t buflen)); #ifdef __cplusplus } #endif /* ========= end header generated by ./mkh ========= */ /* = #define REG_NOMATCH 1 = #define REG_BADPAT 2 = #define REG_ECOLLATE 3 = #define REG_ECTYPE 4 = #define REG_EESCAPE 5 = #define REG_ESUBREG 6 = #define REG_EBRACK 7 = #define REG_EPAREN 8 = #define REG_EBRACE 9 = #define REG_BADBR 10 = #define REG_ERANGE 11 = #define REG_ESPACE 12 = #define REG_BADRPT 13 = #define REG_EMPTY 14 = #define REG_ASSERT 15 = #define REG_INVARG 16 = #define REG_ATOI 255 // convert name to number (!) = #define REG_ITOA 0400 // convert number to name (!) */ static const struct rerr { int code; const char *name; const char *explain; } rerrs[] = { { REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match" }, { REG_BADPAT, "REG_BADPAT", "invalid regular expression" }, { REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element" }, { REG_ECTYPE, "REG_ECTYPE", "invalid character class" }, { REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)" }, { REG_ESUBREG, "REG_ESUBREG", "invalid backreference number" }, { REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced" }, { REG_EPAREN, "REG_EPAREN", "parentheses not balanced" }, { REG_EBRACE, "REG_EBRACE", "braces not balanced" }, { REG_BADBR, "REG_BADBR", "invalid repetition count(s)" }, { REG_ERANGE, "REG_ERANGE", "invalid character range" }, { REG_ESPACE, "REG_ESPACE", "out of memory" }, { REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid" }, { REG_EMPTY, "REG_EMPTY", "empty (sub)expression" }, { REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug" }, { REG_INVARG, "REG_INVARG", "invalid argument to regex routine" }, { 0, "", "*** unknown regexp error code ***" } }; /* * regerror - the interface to error numbers * extern size_t regerror(int, const regex_t *, char *, size_t); */ /* ARGSUSED */ size_t regerror(errcode, preg, errbuf, errbuf_size) int errcode; const regex_t *preg; char *errbuf; size_t errbuf_size; { const struct rerr *r; size_t len; int target = errcode &~ REG_ITOA; const char *s; char convbuf[50]; _DIAGASSERT(errcode != REG_ATOI || preg != NULL); _DIAGASSERT(errbuf != NULL); if (errcode == REG_ATOI) s = regatoi(preg, convbuf, sizeof convbuf); else { for (r = rerrs; r->code != 0; r++) if (r->code == target) break; if (errcode & REG_ITOA) { if (r->code != 0) { (void)strlcpy(convbuf, r->name, sizeof convbuf); } else (void)snprintf(convbuf, sizeof convbuf, "REG_0x%x", target); s = convbuf; } else s = r->explain; } len = strlen(s) + 1; if (errbuf_size > 0) (void)strlcpy(errbuf, s, errbuf_size); return(len); } /* * regatoi - internal routine to implement REG_ATOI * static char *regatoi(const regex_t *preg, char *localbuf, size_t buflen); */ static char * regatoi(preg, localbuf, buflen) const regex_t *preg; char *localbuf; size_t buflen; { const struct rerr *r; for (r = rerrs; r->code != 0; r++) if (strcmp(r->name, preg->re_endp) == 0) break; if (r->code == 0) return("0"); (void)snprintf(localbuf, buflen, "%d", r->code); return(localbuf); } libnbcompat-20180822/strerror.c0000644000175000017500000000057213355271171016543 0ustar jgoerzenjgoerzen/* $NetBSD: strerror.c,v 1.2 2004/08/23 03:32:12 jlam Exp $ */ #include #include char * strerror(int n) { static char msg[] = "Unknown error (1234567890)"; extern int sys_nerr; extern char *sys_errlist[]; if (n >= sys_nerr) { snprintf(msg, sizeof(msg), "Unknown error (%d)", n); return(msg); } else { return(sys_errlist[n]); } } libnbcompat-20180822/glob.c0000644000175000017500000000033213355271171015576 0ustar jgoerzenjgoerzen/* $NetBSD: glob.c,v 1.4 2004/08/23 03:32:12 jlam Exp $ */ /* * Written by Jason R. Thorpe , October 21, 1997. * Public domain. */ #if 0 #define __LIBC12_SOURCE__ #endif #include "__glob13.c" libnbcompat-20180822/getopt.c0000644000175000017500000001040513355271171016157 0ustar jgoerzenjgoerzen/* $NetBSD: getopt.c,v 1.1 2009/03/22 22:33:13 joerg Exp $ */ /* * Copyright (c) 1987, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include __RCSID("$NetBSD: getopt.c,v 1.1 2009/03/22 22:33:13 joerg Exp $"); #if 0 #include "namespace.h" #endif #include #include #include #include #include #include #undef __UNCONST #define __UNCONST(a) ((void *)(size_t)(const void *)(a)) #if 0 #ifdef __weak_alias __weak_alias(getopt,_getopt) #endif #endif int opterr = 1, /* if error message should be printed */ optind = 1, /* index into parent argv vector */ optopt, /* character checked for validity */ optreset; /* reset getopt */ char *optarg; /* argument associated with option */ #define BADCH (int)'?' #define BADARG (int)':' #define EMSG "" /* * getopt -- * Parse argc/argv argument vector. */ int getopt(int nargc, char * const nargv[], const char *ostr) { static const char *place = EMSG; /* option letter processing */ char *oli; /* option letter list index */ _DIAGASSERT(nargv != NULL); _DIAGASSERT(ostr != NULL); if (optreset || *place == 0) { /* update scanning pointer */ optreset = 0; place = nargv[optind]; if (optind >= nargc || *place++ != '-') { /* Argument is absent or is not an option */ place = EMSG; return (-1); } optopt = *place++; if (optopt == '-' && *place == 0) { /* "--" => end of options */ ++optind; place = EMSG; return (-1); } if (optopt == 0) { /* Solitary '-', treat as a '-' option if the program (eg su) is looking for it. */ place = EMSG; if (strchr(ostr, '-') == NULL) return -1; optopt = '-'; } } else optopt = *place++; /* See if option letter is one the caller wanted... */ if (optopt == ':' || (oli = strchr(ostr, optopt)) == NULL) { if (*place == 0) ++optind; if (opterr && *ostr != ':') (void)fprintf(stderr, "%s: unknown option -- %c\n", getprogname(), optopt); return (BADCH); } /* Does this option need an argument? */ if (oli[1] != ':') { /* don't need argument */ optarg = NULL; if (*place == 0) ++optind; } else { /* Option-argument is either the rest of this argument or the entire next argument. */ if (*place) optarg = __UNCONST(place); else if (nargc > ++optind) optarg = nargv[optind]; else { /* option-argument absent */ place = EMSG; if (*ostr == ':') return (BADARG); if (opterr) (void)fprintf(stderr, "%s: option requires an argument -- %c\n", getprogname(), optopt); return (BADCH); } place = EMSG; ++optind; } return (optopt); /* return option letter */ } libnbcompat-20180822/nbcompat.awk0000644000175000017500000000057313355271171017025 0ustar jgoerzenjgoerzenBEGIN { process = 1 } /NBCOMPAT template section follows\./ { process = 0 } /^\#[ ]*define[ ]+PACKAGE_.*/ { if (process == 1) { print "/* " $0 " */"; next; } } /^\#[ ]*define[ ]+/ { if (process == 1) { guard = $0; sub("^#[ ]*define[ ]+", "", guard); sub("[ ]+.*", "", guard); print "#ifndef " guard; print $0; print "#endif"; next; } } { print } libnbcompat-20180822/.git/0000755000175000017500000000000013355271446015357 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/description0000644000175000017500000000011113355270234017610 0ustar jgoerzenjgoerzenUnnamed repository; edit this file 'description' to name the repository. libnbcompat-20180822/.git/index0000644000175000017500000003122613355271446016415 0ustar jgoerzenjgoerzenDIRC [µry5{t¬[µry5{t¬. !¤èè~šÊq Šecóɇ¢yXý« Makefile.in[µry5{t¬[µry5{t¬. !¤èèÉt<$OÒÖ~‰µÐA•Á[README[µry5{t¬[µry5{t¬. !¤èèzŽ‘JFĘ%sÁ†rN¢0f 0±ƒ. __fts13.c[µry5{t¬[µry5{t¬. !¤èè]o¾Yå ò²‹7NkÿPÄ=JÄ __glob13.c[µry5{t¬[µry5{t¬. !¤èè úR}j”d¯êyRÝ–ã9]Þ-&LÈ¡__unsetenv13.c[µry5{t¬[µry5{t¬. !¤èè¾$„ ø,[<ÊnÌ(#´©ElNÛ™ aclocal.m4[µry5{t¬[µry5{t¬. ! ¤èè ï4•½®C™S µÕ ¹ŠIyT4d asprintf.c[µry5{t¬[µry5{t¬. !!íè诟Â$jOLx(ÏÄ#ŠTÏ}ƒÄô! config.guess[µry5{t¬[µry5{t¬. !"íè膵ì¡ PÎD“†fԯⵤ‘·`: config.sub[µry5{t¬[µry5{t¬. !#íè讣О@F¿RËʪÕ…tÛSÍR configure[µry5{t¬[µry5{t¬. !%¤èè6Ñ'gƒd–x/l˜ Ÿ¨Ò…ö xª configure.ac[µry5{t¬[µry5{t¬. !'¤èèHÒiœþî2òÂB=Í·ë›…ñ¢òªdb/Makefile.inc[µry5{t¬[µry5{t¬. !)¤èè »Ér Wß÷^Ns¾è]çävdb/btree/bt_close.c[µry5{t¬[µry5{t¬. !*¤èè—µ>õiã7edmzMm¤÷xsÌdb/btree/bt_conv.c[µry5{t¬[µry5{t¬. !+¤èè"i£IŽ+ww‡qu’6Cï·5zdb/btree/bt_debug.c[µry5{t¬[µry5{t¬. !,¤èè?ϧ*Æ Ð*ÖïyŽl±ÓpQgdb/btree/bt_delete.c[µry5{t¬[µry5{t¬. !-¤èè 2¸ŸÁ  Þö?›°LɈ9™+°ªÉdb/btree/bt_get.c[µry5{t¬[µry5{t¬. !.¤èè,–ñ†+.‚ôîæ+9ɶ†,|Búdb/btree/bt_open.c[µry5{t¬[µry5{t¬. !/¤èèŸ4±Ã®è)äö¬Bœ(·TÖÒdb/btree/bt_overflow.c[µry5{t¬[µry5{t¬. !0¤èè >IÒ!’}î.Å•ÇoÁð3ȶAEËdb/btree/bt_page.c[µry5{t¬[µry5{t¬. !1¤èè!µ#«Q«÷. OO³amÐ: ò—¥+db/btree/bt_put.c[µry5{t¬[µry5{t¬. !2¤èèEöò଩GáF‘L¶¨ºØ_¯Ùÿdb/btree/bt_search.c[µry5{t¬[µry5{t¬. !3¤èè,KJ9!ú¯Œj*_²‹x"²¸–¬db/btree/bt_seq.c[µry5{t¬[µry5{t¬. !4¤èèYF¿ªøy­Å-qÉž@8Ng‘db/btree/bt_split.c[µry5{t¬[µry5{t¬. !5¤èè÷D~l¶8†øžÐ=9)=R»db/btree/bt_utils.c[µry5{t¬[µry5{t¬. !6¤èè=àža'˶C]âÄó ùýЮÉdb/btree/btree.h[µry5{t¬[µry5{t¬. !7¤èè j±²,gè͇E²ˆ¹ZCéž|«?db/btree/extern.h[µry5{t¬[µry5{t¬. !9¤èè ¦zƒ¢ÍEü0L«ÏðÙyÌ1YÒ×Ý db/db/db.c[µry5{t¬[µry5{t¬. !<¤èè ÊðŽ®:„´wj¦¹;m´™ÐøîINìdb/hash/extern.h[µry5¸}[µry5¸}. !=¤èè^qã Ñ“¯&±?ü ÛÔ×­àuÑdb/hash/hash.c[µry5¸}[µry5¸}. !>¤èè(Q¬Ù–œ|¼äxKL)Cg5ïvûdb/hash/hash.h[µry5¸}[µry5¸}. !?¤èèB¢Zýš¸Kæ'ƒÏá1<PöéUcdb/hash/hash_bigkey.c[µry5¸}[µry5¸}. !`¤èè"ˆG&!X¾6ò=r†bâ]g¶Aðédb/hash/hash_buf.c[µry5¸}[µry5¸}. !a¤èèªÕïƒSgý/ÏáœTE©>Ýìdb/hash/hash_func.c[µry5¸}[µry5¸}. !b¤èèµO"×ùß,ýõã¦ÿ‘™ÊÐ|€db/hash/hash_log2.c[µry5¸}[µry5¸}. !c¤èè_fº +‹”ªä¦UA¶å¿a¼Õ¥Ydb/hash/hash_page.c[µry5¸}[µry5¸}. !d¤èè ²ÙK›0¼h£¸ÇvÿS#°ï¨% db/hash/ndbm.c[µry5¸}[µry5¸}. !e¤è耫gÓ|»9q’ë3„ETåêdb/hash/ndbmdatum.c[µry5¸}[µry5¸}. !f¤èè ±ì:Ú …SLï§,²•5ƒƒ.+%xdb/hash/page.h[µry5¸}[µry5¸}. !h¤èè+dÔ<ö®:ñ±.1•}}½ÃF=ÉH-db/mpool/mpool.c[µry5¸}[µry5¸}. !i¤èè2—PÇÜp³/¥uKžÉ^Óð db/pread.c[µry5¸}[µry5¸}. !j¤èè>ÕܽR´ô2þ?=±á °ZRˆ db/pwrite.c[µry5¸}[µry5¸}. !‚¤èè ¹²:ú…þ¬š»ÉÙU—„wNÏddb/recno/extern.h[µry5¸}[µry5¸}. !ƒ¤èèaÁž s/+ <óÀƒe˜î¦ÛUdb/recno/rec_close.c[µry5¸}[µry5¸}. !„¤èèux¬]ÖX.*@úØXÄ{ÇŽÒ‡Jdb/recno/rec_delete.c[µry5¸}[µry5¸}. !…¤èèXCX^§HLUÖ¢œª1L™„db/recno/rec_get.c[µry5¸}[µry5¸}. !†¤èè|Þ}v?+³íü ®yѳdb/recno/rec_open.c[µry5¸}[µry5¸}. !‡¤èèÅÏ p»HQ›aLÑ~f ¤¸iŽådb/recno/rec_put.c[µry5¸}[µry5¸}. !ˆ¤èè¾]Œ›)Ïþ³ÜÓˆ¬R‡Ex'db/recno/rec_search.c[µry5¸}[µry5¸}. !‰¤èèÆ3?lY£9Âð+'áÅN•^Òdb/recno/rec_seq.c[µry5¸}[µry5¸}. !ФèèáêíQÛÄ@føO&37ö ÚÀü,²db/recno/rec_utils.c[µry5¸}[µry5¸}. !‹¤èèQÒ•\ÄΖtÚzŽþ"¡ëʬwdb/recno/recno.h[µry5¸}[µry5¸}. !Œ¤èèxèL3"¸ß^X¸zšuw=Sþ =Õengine.c[µry5¸}[µry5¸}. !¤èè ×T“‰&‰÷‡@*²ì ”»<óerr.c[µry5¸}[µry5¸}. !¤èè êF˜9° ½; bÅñÉ{øÎµ”+ufgetln.c[µry5¸}[µry5¸}. !¤èè pŒ¢ìÈ+ý*«ë^»h¿  findenv.c[µry5¸}[µry5¸}. !‘¤èèò:‰r¸¥¤K^ï1‘sñÁé# fnmatch.c[µry5¸}[µry5¸}. !’¤èèu•£x1)¤C¤‡Ö%¢³yâ[ fparseln.c[µry5¸}[µry5¸}. !“¤èèØ)ý@ôgº€´4M½w—©Ó'§fts.c[µry5¸}[µry5¸}. !”¤èèÄW‘Ô.?îC¬?ëåTLK‡À getaddrinfo.c[µry5¸}[µry5¸}. !•¤èè Ê`ß~dADý%cñ–ªÅóʼn$Ü getdelim.c[µry5¸}[µry5¸}. !–¤èè rnã„ê¡ÛVb½LÕÚN;¹Hgetenv.c[µry5¸}[µry5¸}. !—¤èèÔ$a¶jþžâÊZ¹v‰ÃÂ{ getline.c[µry5¸}[µry5¸}. !˜¤èè-¸ê»ƒá›œü«=gŸ€Çq~getopt.c[µry5¸}[µry5¸}. !™¤èè2ú¹ìünS2 0|¯¬"‰“*]± getopt_long.c[µry5¸}[µry5¸}. !š¤èèêÝØØàÊ\;9 ²d3¿f' #Æ! gettemp.c[µry5¸}[µry5¸}. !ž¤èèÚ¿±ËeŠtT ´§Ï8ò1ô.P[¹glob.c[µry5¸}[µry5¸}. !ŸíèèÞéÞ#„-ÍDÒ•1)Èf±­%÷áñÙ install-sh[µry5¸}[µry5¸}. ! ¤èè 4 #Y‘&Yµo¦(O[y9ý¢Ñë0 isblank.c[µry5¸}[µry5¸}. !¡¤èè¡n½8s¨ÉšhÏÙÞr!ñ lchflags.c[µry5¸}[µry5¸}. !¢¤è莔—È£Ê#åÚO@ì×g‘$4lchmod.c[µry5¸}[µry5¸}. !£¤èè£}/ÆØ ëf¾®Ã†»o̘Êlchown.c[µry5¸}[µry5¸}. !¤¤èè¤8(­@¿’ÄVÿäïÖé+RT lutimes.c[µry5¸}[µry5¸}. !¥¤èè)ñþx-+6#2°Ñ*Vä,û$âÓ°þmd5c.c[µry5¸}[µry5¸}. !¦¤èèodؽöŽö”<)û5’-¸@Œ„×¾md5hl.c[µry5¸}[µry5¸}. !§¤èèBÍ""ü,à…¨8´…p­Ë…)mdXhl.c[µry5¸}[µry5¸}. !¨¤èè *=šz/Ð*1߇s÷mΗdªì mkdtemp.c[µry5¸}[µry5¸}. !©¤èè ÅXÖèÑ3-Ï6¤?RÂAй mkstemp.c[µry5¸}[µry5¸}. !ª¤èè{Á”f$¦ ½ºöü"èǦ°Nª nbcompat.awk[µry5¸}[µry5¸}. !«¤èè ÜÇc"ÖÚäòb;¢ûÅ!½ƒJ§ nbcompat.h[µry5õ†p[µry5õ†p. !®¤èè*(×UÄo?©‘týáˆKTÿ!nbcompat/assert.h[µry5õ†p[µry5õ†p. !¯¤èè cÛBÓìÙ˜©zÛ€Fˆ]Õ‡;ý­Önbcompat/cdefs.h[µry5õ†p[µry5õ†p. !°¤èèJaL0M[˜èu¾Ÿ¯'—1h7Ù‹nbcompat/config.h.in[µry5õ†p[µry5õ†p. !±¤èèh…µ‰Â¾[çÛHzP–±‘L¼©çnbcompat/ctype.h[µry5õ†p[µry5õ†p. !²¤èè!H))\‡ÖÜ)øÁs3±Ç ¢8D­ nbcompat/db.h[µry5õ†p[µry5õ†p. !³¤èèýªXöŽø·9u©ñìÆâ"/nbcompat/dirent.h[µry5õ†p[µry5õ†p. !´¤èè >ˆiÞ!nv.9ž¾àÆ0LùˆÕ··nbcompat/endian.h[µry5õ†p[µry5õ†p. !µ¤èè zë ¿ Bd{'Ãތ˒"_ž@nbcompat/err.h[µry5õ†p[µry5õ†p. !¶¤èè šp™%õÀ_X¶BŒ Å–%^nbcompat/fnmatch.h[µry5õ†p[µry5õ†p. !·¤èèÚL ¢kÖ§½>Ó9cËö¢“8nbcompat/fts.h[µry5õ†p[µry5õ†p. !¸¤èè _žü'IÜ'oŠÒõ†¥q:%lÀinbcompat/getopt.h[µry5õ†p[µry5õ†p. !¹¤èèmÅñ©lÈ4›ïl~y‘Õߨñ9nbcompat/glob.h[µry5õ†p[µry5õ†p. !º¤èèĬàŠY»@’0¼×°ñÑŒG‰Öãnbcompat/grp.h[µry5õ†p[µry5õ†p. !»¤èè o_)Uçòáÿ¿.a¸/%9ÿ[Úäp2nbcompat/limits.h[µry5õ†p[µry5õ†p. !¼¤èèYh/NE@„ñ7p~ÉÊß•e9o9nbcompat/md5.h[µry5õ†p[µry5õ†p. !½¤èèµK<ñŽ)¾E£Êö‹gCnbcompat/mpool.h[µry5õ†p[µry5õ†p. !¾¤èè zh"eR®¥2ú\L.øëEÄ‚…›¿nbcompat/ndbm.h[µry5õ†p[µry5õ†p. !¿¤èè%‚hè ;鯜KN£eõ²C«ónbcompat/netdb.h[µry5õ†p[µry5õ†p. !À¤èè)oæå/»4i4fî’vÏWÞDýnbcompat/param.h[µry5õ†p[µry5õ†p. !Á¤èèò²ô¨Û°8{¤öL®2å€Kæ7Ó1nbcompat/paths.h[µry5õ†p[µry5õ†p. !¤èèÌ^pkD%åd# áÆN©ÖršD߃nbcompat/poll.h[µry5õ†p[µry5õ†p. !äèèØ´:uX °XÆ BJŽ®nbcompat/pwd.h[µry5õ†p[µry5õ†p. !Ĥèè6;žÓ¿}ÜvÐDê¼7"öjð1Ønbcompat/queue.h[µry5õ†p[µry5õ†p. !ŤèèícÀã'ï#•~FÜâåTŽ+~¯xnbcompat/regex.h[µry5õ†p[µry5õ†p. !Ƥèè‹7'"1áµØs$›ÙêN^}ºÎ0nbcompat/rmd160.h[µry5õ†p[µry5õ†p. !Ǥèè@ÂVÔ4d ƒ/Ï¨Ž°±<ÁüÓnbcompat/sha1.h[µry5õ†p[µry5õ†p. !Ȥèèô¬ ]èÊdò:19è„,ænbcompat/sha2.h[µry5õ†p[µry5õ†p. !ɤèèo›Ÿö¢(¿v7 Àx`ôY#nbcompat/stat.h[µry5õ†p[µry5õ†p. !ʤèè÷½ñuô#åþŠ.ÐPµ]f‡&\¯nbcompat/statvfs.h[µry5õ†p[µry5õ†p. !ˤèèÍ! ¦Äö` ö˜k|I°à+³nbcompat/stdbool.h[µry5õ†p[µry5õ†p. !̤èè 8»=›P@’‘HöØxwctg¢™%nbcompat/stdio.h[µry5õ†p[µry5õ†p. !ͤèè Bzq¡Ò¥ì†9P2¬Û¤TdZnbcompat/stdlib.h[µry5õ†p[µry5õ†p. !Τèè*w†BS\œnbÑ]8éêdÑ)ýnbcompat/string.h[µry5õ†p[µry5õ†p. !Ϥèè µPŒ£ÌÇGí¿„h9„ÍÝþ›nbcompat/termcap.h[µry5õ†p[µry5õ†p. !Фèè ®ÐÔÆ ÀK ¿¸GìºÜ:nbcompat/time.h[µry5õ†p[µry5õ†p. !Ѥèè[2›ˆ ›·þ]†uìÙx¼à2‘önbcompat/types.h[µry5õ†p[µry5õ†p. !Ò¤èè—ŽV<†UåÀ,_ ¦Õ\¼nbcompat/tzfile.h[µry5õ†p[µry5õ†p. !Ó¤èè JÚJ“N56¼ áµ~ûßwâ‚fI—nbcompat/unistd.h[µry5õ†p[µry5õ†p. !ؤèèI)ÆÇçä΀R0T½UÝTzÔÆsnbcompat/util.h[µry5õ†p[µry5õ†p. !Ù¤èè™#aÞ@ ŒÌZ†PDÓ?Tš¤žnbcompat/vis.h[µry5õ†p[µry5õ†p. !Ú¤èè ffmzŒÓg«ŸÉb<7‡\Þ“poll.c[µry5õ†p[µry5õ†p. !ܤèèYwB£UðÝSõ™¼'XÚ‰yŠ¡]private/cclass.h[µry5õ†p[µry5õ†p. !ݤèèá±kèÓÙ1zÇ>”.ú&M© ™private/cname.h[µry5õ†p[µry5õ†p. !Þ¤èè ¼ØX,‚Ö]À÷,÷ƒm*‹kFprivate/pwcache.h[µry5õ†p[µry5õ†p. !ߤèè#`ŸggÁjÚµÍBñÌ)Ûá¡§Éprivate/regex2.h[µry5õ†p[µry5õ†p. !à¤èèT.–&a÷ë@t¢ªPOX›È“private/utils.h[µry5õ†p[µry5õ†p. !á¤èè?ÐK½\| gÈ Ønþ½lŸC9© pwcache.c[µry5õ†p[µry5õ†p. !â¤èè«W¶J…Ǫ8zj Žô5ãLùÿ\R regcomp.c[µry5õ†p[µry5õ†p. !ã¤èèýª.ry¯Ü?ŒJŽÏ¡¯¢ARúŠÿ regerror.c[µry5õ†p[µry5õ†p. !ä¤èè!¸Nì3?lÔæÔ´›­¦1¦iøÓ regexec.c[µry5õ†p[µry5õ†p. !å¤èè8˜à–'*l^À_ÜXgRI;,U’ regfree.c[µry5õ†p[µry5õ†p. !æ¤èè;ØÃ÷%$4Ò á=T„}Ú€rmd160.c[µry5õ†p[µry5õ†p. !ç¤èè ËÏÚ4†nC,þ°ØáSfÚøËõM rmd160hl.c[µry5õ†p[µry5õ†p. !è¤èèéòEÇÙ=&ÖJ)ˇž‘Jxfsetenv.c[µry5õ†p[µry5õ†p. !é¤èè›}U®a„‘žYÒg©Ÿ‚ bÈ setgroupent.c[µry5õ†p[µry5õ†p. !ê¤èè-‹&W…µþÏ.áíGÔ¤‡Òâ‘ setmode.c[µry5õ†p[µry5õ†p. !ë¤è虃ÿû3kõ¨‚‹—좕®ÆÔaÆ setpassent.c[µry5õ†p[µry5õ†p. !ì¤èè »>Á.üÛz9‰ˆH\òéïô>¤é setprogname.c[µry5õ†p[µry5õ†p. !í¤èè&ä~¼› Ä' ¨Üv4¤Ô`}0Xsha1.c[µry5õ†p[µry5õ†p. !î¤èè 1æTÝ* f‰ýG*ÿ°‚opå‘sha1hl.c[µry5õ†p[µry5õ†p. !ï¤èèr ô„ðÙ[R`–Î"ϸÑ'sçsha2.c[µry5õ†p[µry5õ†p. !ð¤èèïºß…RäQ â'¥žæìásha2hl.c[µry5õ†p[µry5õ†p. !ñ¤èè)(ðzä -)nì¬ÔÏJx«g”$û shquote.c[µry5õ†p[µry5õ†p. !ò¤èè /ã•÷Xó1 ¨ s ™Â¯r“J snprintf.c[µry62Q[µry62Q. !óíèèøvïÚØ^>B;Ç^bɳ<†¨°ùæY src2nbcompat[µry62Q[µry62Q. !ô¤èè ÂôD9qÍ6 c€×|ã²L&º‹Ò statvfs.c[µry62Q[µry62Q. !õ¤èè H§Vº,XE-­Ø¯ÌpIÀöstrdup.c[µry62Q[µry62Q. !ö¤èèz„­Òp¹Åå€Â‘®`ö 5 µÝ strerror.c[µry62Q[µry62Q. !÷¤èè 9Ý» w¡n‰ñ±y¶˜} ËcLt4 strlcat.c[µry62Q[µry62Q. !ø¤èèÉu)¶‚i.Po^@ÊþÖç' ®¬5 strlcpy.c[µry62Q[µry62Q. !ù¤èèÍ7/²í}ô‚"¯k™kO i¢e × strmode.c[µry62Q[µry62Q. !ú¤èè ËÍ^E‰D'7KGØïšÌõp,¬6ñstrsep.c[µry62Q[µry62Q. !û¤èèOyŸˆª‚8M™UÿÕ´ìïüAñ ± strtoll.c[µry62Q[µry62Q. !ü¤èè °ïd/S÷T-¹Ýôx.ïÄÜCMtimegm.c[µry62Q[µry62Q. !ý¤èèÚ¤èúÐâÆ =‰P~òpÜÀOÆ! unsetenv.c[µry62Q[µry62Q. !þ¤èècnÎ)·1ŠpH€òvº±'Bf^unvis.c[µry62Q[µry62Q. !ÿ¤èèöH?5Xn'àpþÕxTчŸ% ¶‚usleep.c[µry62Q[µry62Q. " ¤èè]Wû¹/  àl² …üÑ6v;utimes.c[µry62Q[µry62Q. "¤èè,ûp@s›_„ZY-½n?5ê¿cvis.c[µry62Q[µry62Q. "¤èè gãR,…M=£µýÂÝBRûµ9èwarn.cTREE160 3 ¹Ø£šÒì¬Ô˜Ûø«Édb41 5 i*•T ªBÔéκYrÓ‰]db1 0 Ï29éÁ¸‚«@Lÿ‹ö¤jæ<‘hash11 0 6x¿Š„6O›—Äâr+Tû×foÕÂbtree15 0 ì¶MÓ”,®ÇX…•€nœÿ{¦ñmpool1 0 íU¯Àî–­á²Ùš`™%m¨)KDrecno10 0 xe¼­‡sÜ÷’¹÷õq+bëŸprivate5 0 °¦!¥>ŽÙ§ža;T‰šþ=lnbcompat40 0 ¼%='áO+Î)½&—ÑBdD–ǘÌ?ÆìÆ”‰„ÛÀ¥_¶ Dlibnbcompat-20180822/.git/HEAD0000644000175000017500000000002713355271446016002 0ustar jgoerzenjgoerzenref: refs/heads/debian libnbcompat-20180822/.git/logs/0000755000175000017500000000000013355271171016316 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/logs/HEAD0000644000175000017500000000061513355271446016751 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 maya 1534970918 +0000 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 maya 1534970918 +0000 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 John Goerzen 1538618150 -0500 checkout: moving from master to debian libnbcompat-20180822/.git/logs/refs/0000755000175000017500000000000013355270306017254 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/logs/refs/heads/0000755000175000017500000000000013355271371020343 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/logs/refs/heads/pkgsrc-2012Q20000644000175000017500000000035213355271136022343 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 6557876a2a751036a6e1c80ae3d2c22b537019de joerg 1341244973 +0000 cvsimport 6557876a2a751036a6e1c80ae3d2c22b537019de 0711b2ad97fa633a68356f920b2e982c600fbd7f tron 1341822892 +0000 libnbcompat-20180822/.git/logs/refs/heads/debian0000644000175000017500000000024413355271371021510 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 John Goerzen 1538618105 -0500 branch: Created from master libnbcompat-20180822/.git/logs/refs/heads/origin0000644000175000017500000006360713355271171021567 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 508b62b3c33c2f6f073c1cb5cd574c67cd3e41de grant 1049086940 +0000 508b62b3c33c2f6f073c1cb5cd574c67cd3e41de 69d5f08f82a5b41f5c81d5d71de7163f4e44885c grant 1049088875 +0000 69d5f08f82a5b41f5c81d5d71de7163f4e44885c cda8b0a629507510602ed45585f3bb6218a8292b grant 1049100066 +0000 cda8b0a629507510602ed45585f3bb6218a8292b 551b4bb6133b3a83256c91b2c77f69d210097cb1 grant 1049100778 +0000 551b4bb6133b3a83256c91b2c77f69d210097cb1 fa9fdf214b69d5694fbf8e14592c9fdc84f58c3b grant 1049374126 +0000 fa9fdf214b69d5694fbf8e14592c9fdc84f58c3b 8185d5f00b9454fd1de9af3a8c17db37a7a23c22 grant 1051461749 +0000 8185d5f00b9454fd1de9af3a8c17db37a7a23c22 b97737bfff0a2ea963d14045d2ae6b420d35fa7a jschauma 1053627043 +0000 b97737bfff0a2ea963d14045d2ae6b420d35fa7a 296fc9ba7b53a1cbeb37399a9c80ed9a6d413f0c jschauma 1053888874 +0000 296fc9ba7b53a1cbeb37399a9c80ed9a6d413f0c 3ef2fcbdd9c726e9256412948e5d3efdd64207e5 grant 1055179189 +0000 3ef2fcbdd9c726e9256412948e5d3efdd64207e5 8b27e01b5608c1befa122c5679cb7863a328e9f1 grant 1055179275 +0000 8b27e01b5608c1befa122c5679cb7863a328e9f1 f632ca483f56cb20c54c1cb12b9803cea23b518c grant 1055224756 +0000 f632ca483f56cb20c54c1cb12b9803cea23b518c 8d21b2a712677b6b7a85448770aadb01fe4db8e5 grant 1055226804 +0000 8d21b2a712677b6b7a85448770aadb01fe4db8e5 24ee4574e3c73995b1d566a73e3c5c26638deda7 grant 1056367988 +0000 24ee4574e3c73995b1d566a73e3c5c26638deda7 d17d38e315d542480ba05103cd7ee8ff648b0cfb grant 1056374159 +0000 d17d38e315d542480ba05103cd7ee8ff648b0cfb 77c2e995b88b9b31da86c2dd8f3d9b5e9f547dd6 grant 1056435743 +0000 77c2e995b88b9b31da86c2dd8f3d9b5e9f547dd6 6e753a9d14e53d4a92dc6bda5ea371e65dd733eb jschauma 1056463761 +0000 6e753a9d14e53d4a92dc6bda5ea371e65dd733eb 23dc50053c84f5f5d400831ff9c322418a3c2e66 grant 1056984480 +0000 23dc50053c84f5f5d400831ff9c322418a3c2e66 0cf408005c2330d90cb2165fa730f0d3f7debdf3 grant 1056985997 +0000 0cf408005c2330d90cb2165fa730f0d3f7debdf3 7d3aad9d389cbdf0934cd557702be4f0936b8ca2 grant 1056986086 +0000 7d3aad9d389cbdf0934cd557702be4f0936b8ca2 f521e9fc42ece8437faf2022fd82c884461e5cb0 grant 1058039033 +0000 f521e9fc42ece8437faf2022fd82c884461e5cb0 252571b224c14976f7c999f11ac95a48a0e84fdd grant 1058063777 +0000 252571b224c14976f7c999f11ac95a48a0e84fdd 1a772fcecef86f99657681d59618ba7569122200 grant 1058247184 +0000 1a772fcecef86f99657681d59618ba7569122200 2f0a8e2136091ead0991b9feeb3a16b9fbe292af grant 1058247363 +0000 2f0a8e2136091ead0991b9feeb3a16b9fbe292af 9af2622e31940acb0ed08574c0d7779eedcaef2b grant 1058422952 +0000 9af2622e31940acb0ed08574c0d7779eedcaef2b d2ab650d6033723e6be9194727c891314bf2639d grant 1058470603 +0000 d2ab650d6033723e6be9194727c891314bf2639d d8334b5aef579e1cbf9e12b74b0afef4c3bf7c54 grant 1058471634 +0000 d8334b5aef579e1cbf9e12b74b0afef4c3bf7c54 b137a2c6f6ccf4c61dd16c228027432a00a31cdd grant 1058583900 +0000 b137a2c6f6ccf4c61dd16c228027432a00a31cdd d7a671e8299d83f5b4a48be5e647f0a188dea6f5 jschauma 1059691227 +0000 d7a671e8299d83f5b4a48be5e647f0a188dea6f5 87562051cf41c446c07c7337f3fae5754ac04318 jmmv 1061987140 +0000 87562051cf41c446c07c7337f3fae5754ac04318 86c8a4852c6e4602d4899c52934ee0e25c870f4f jlam 1062430275 +0000 86c8a4852c6e4602d4899c52934ee0e25c870f4f dcb1b51c7beba90960128cdf71f11bf54c73a617 jlam 1062467114 +0000 dcb1b51c7beba90960128cdf71f11bf54c73a617 73e3e8d618993bfa8cf5202057dbd2c17bb966bd jlam 1062467679 +0000 73e3e8d618993bfa8cf5202057dbd2c17bb966bd 49f9b2e693093be049623c7f102a152d50e099d4 jlam 1062468322 +0000 49f9b2e693093be049623c7f102a152d50e099d4 885cbf3e7d2c0fcf7c6d15c296a2aadc3e0ad52a jlam 1062554156 +0000 885cbf3e7d2c0fcf7c6d15c296a2aadc3e0ad52a 1a91dadb3ddc8de8a868ff55079da4dc17f983e8 jlam 1062559709 +0000 1a91dadb3ddc8de8a868ff55079da4dc17f983e8 4196f61e0cd29afd464f0251469aedd9423eff90 jlam 1062560625 +0000 4196f61e0cd29afd464f0251469aedd9423eff90 826ed1eb077ad99bc7753d0f2b0bcdf8d1b4c016 jlam 1062572825 +0000 826ed1eb077ad99bc7753d0f2b0bcdf8d1b4c016 9b3517743f0058f66adef97df886ba94fd01eb29 jlam 1062594673 +0000 9b3517743f0058f66adef97df886ba94fd01eb29 e1c84841ef269cdbfcf8c0efce8c803a832edf5b jlam 1062596145 +0000 e1c84841ef269cdbfcf8c0efce8c803a832edf5b 35931098af7a4524b3aea413266b9676a36051a6 jlam 1062607118 +0000 35931098af7a4524b3aea413266b9676a36051a6 961560749b1ce42ce0cc488510b7ba03a7f1472a jlam 1062640276 +0000 961560749b1ce42ce0cc488510b7ba03a7f1472a a702efe1344f3d6622a79e7ef7aed19c8846446e jlam 1062706808 +0000 a702efe1344f3d6622a79e7ef7aed19c8846446e 90f29627777c669f0d67a3c4c3358a7bdabc73a5 jlam 1062786958 +0000 90f29627777c669f0d67a3c4c3358a7bdabc73a5 c64d46b7eb27e75409e31a7c1722fcf3b5baebd5 jlam 1062800370 +0000 c64d46b7eb27e75409e31a7c1722fcf3b5baebd5 079e5e1bd1970d10ddee97df59769b992a15442e jlam 1062812108 +0000 079e5e1bd1970d10ddee97df59769b992a15442e a75573fb5063febe93b46479fecbeffc30901136 jlam 1062812237 +0000 a75573fb5063febe93b46479fecbeffc30901136 587ff5c9d451ac38a599eb0b2b7989361f460317 grant 1062822496 +0000 587ff5c9d451ac38a599eb0b2b7989361f460317 12fa3685988780dc4c49305ccd3764c7eb2e76e3 jlam 1062828827 +0000 12fa3685988780dc4c49305ccd3764c7eb2e76e3 cd496d9574d1d8afde6b9102354519bdb7fcbefd jlam 1062850905 +0000 cd496d9574d1d8afde6b9102354519bdb7fcbefd adf0a2b60bc0b51919326b677a64852268178062 jlam 1062852347 +0000 adf0a2b60bc0b51919326b677a64852268178062 27d6a6255f8c5f4a0728fca337a454266b098043 grant 1062889380 +0000 27d6a6255f8c5f4a0728fca337a454266b098043 7c542ba68ee7f902cd255b1ff0b2ad9b38513699 grant 1062889540 +0000 7c542ba68ee7f902cd255b1ff0b2ad9b38513699 248f89a3f9d88e5445a301f221817215ed18b7d4 grant 1063277840 +0000 248f89a3f9d88e5445a301f221817215ed18b7d4 956352a7a763d54b36e47f67ec3aa1913dfb453d grant 1063279569 +0000 956352a7a763d54b36e47f67ec3aa1913dfb453d d0950b7273eb0d824a630b66d73bf68c1b9084c4 grant 1063279658 +0000 d0950b7273eb0d824a630b66d73bf68c1b9084c4 0d504e8c20b753a7052f11bf4f8fe5a1317b0463 jlam 1063425012 +0000 0d504e8c20b753a7052f11bf4f8fe5a1317b0463 8620d44c4d2c70156a48e0c8b7b3171ac469918c jschauma 1063469860 +0000 8620d44c4d2c70156a48e0c8b7b3171ac469918c 9c9c4d39cd3441a5c24a368960d6c8901da0c327 jlam 1063472867 +0000 9c9c4d39cd3441a5c24a368960d6c8901da0c327 d91699798bcc12993a238603498e1f2c4ef5562d grant 1063517757 +0000 d91699798bcc12993a238603498e1f2c4ef5562d e9e52d87a20e8d8e2fa4248a81bb4b9053c45f3d grant 1063524973 +0000 e9e52d87a20e8d8e2fa4248a81bb4b9053c45f3d 6784bc0794f8651229fc1a80d348134900cf1a07 itohy 1063525092 +0000 6784bc0794f8651229fc1a80d348134900cf1a07 b2fe16538ed3e617fc6f4db15f62ddc4edeeaa97 grant 1063548617 +0000 b2fe16538ed3e617fc6f4db15f62ddc4edeeaa97 c2ce217aabcc3f8c7ee59462763e55639679e256 grant 1063549452 +0000 c2ce217aabcc3f8c7ee59462763e55639679e256 0ad81d0c181e0490acfc52e29a001fc8d8a9f66a grant 1063550483 +0000 0ad81d0c181e0490acfc52e29a001fc8d8a9f66a 5cb0acb81643191fb76430158406f74b675d7dcc grant 1063611574 +0000 5cb0acb81643191fb76430158406f74b675d7dcc 986d3302f5db8d89d4754854a3953104ae53cd8a grant 1063614591 +0000 986d3302f5db8d89d4754854a3953104ae53cd8a a1463842f4501d4bc055c6254aa80fbf57b5eb78 grant 1063730904 +0000 a1463842f4501d4bc055c6254aa80fbf57b5eb78 e5e29fb582311c30205847a93291063aac8f5f18 jschauma 1064282616 +0000 e5e29fb582311c30205847a93291063aac8f5f18 679bb93cbae0b8a66ca12cd2923e8f1f11e27cac grant 1065780909 +0000 679bb93cbae0b8a66ca12cd2923e8f1f11e27cac 91fe5bc3a9b8f9cdb5f980ebf1cd1ba9e394d3e7 grant 1065921470 +0000 91fe5bc3a9b8f9cdb5f980ebf1cd1ba9e394d3e7 7b328a1c9021bf926a18bd07edae987e12e0aa87 grant 1065921548 +0000 7b328a1c9021bf926a18bd07edae987e12e0aa87 baae3a498ffbc7a8e20c8258aa83e53562680bf5 jlam 1065949084 +0000 baae3a498ffbc7a8e20c8258aa83e53562680bf5 e29f5f010f0447207515457c51870abc33a41c00 erh 1070638866 +0000 e29f5f010f0447207515457c51870abc33a41c00 54a755c306948f68fc9696cfdad5d58fcb506258 erh 1070638933 +0000 54a755c306948f68fc9696cfdad5d58fcb506258 c0f81043bd57405729b58e9298576d2b4ee2c23b erh 1070638990 +0000 c0f81043bd57405729b58e9298576d2b4ee2c23b 3ef9eda06e3ae43c60f7ef1d6480f018163107cf grant 1070890751 +0000 3ef9eda06e3ae43c60f7ef1d6480f018163107cf c7f49df74682e3a88c7d76db0f48a6cba705d141 grant 1070895122 +0000 c7f49df74682e3a88c7d76db0f48a6cba705d141 034103c5082f3ed0186601f0d3bea18754e31db5 grant 1070897334 +0000 034103c5082f3ed0186601f0d3bea18754e31db5 7fa54108be099ccedb8a49354b6a01bd297ef79a grant 1071040880 +0000 7fa54108be099ccedb8a49354b6a01bd297ef79a 85c4d05a11814093249d5be268aa663bde9e78e7 grant 1071872174 +0000 85c4d05a11814093249d5be268aa663bde9e78e7 e790e10cb88b320d1216ab98caa64cf48a9b3fd8 grant 1071872580 +0000 e790e10cb88b320d1216ab98caa64cf48a9b3fd8 a491e9c8c13fc21bba0815c5057a7dec02b82edd grant 1071872806 +0000 a491e9c8c13fc21bba0815c5057a7dec02b82edd 74de70eb66bf71a54a92cda633c5b8115c5b848a grant 1071872821 +0000 74de70eb66bf71a54a92cda633c5b8115c5b848a 9379de8ce888c173df04a0d4ec9ccd1550b40b35 grant 1071873604 +0000 9379de8ce888c173df04a0d4ec9ccd1550b40b35 1877e3d3a38f650c3c4f3e83fb32442303ad75cd grant 1071873914 +0000 1877e3d3a38f650c3c4f3e83fb32442303ad75cd 59734624c3111b15577482191d8565bd95366e52 grant 1071873961 +0000 59734624c3111b15577482191d8565bd95366e52 b160b05236684498af2d16ade110e66ab6d687d3 grant 1074070721 +0000 b160b05236684498af2d16ade110e66ab6d687d3 05262011e07fb3ca23e4c4ae936e71d066633857 grant 1074070771 +0000 05262011e07fb3ca23e4c4ae936e71d066633857 936ef6a93e5738d7b42d6797c8e220145b9ba99b snj 1075594076 +0000 936ef6a93e5738d7b42d6797c8e220145b9ba99b 2e1eaf29b3583e8c28f2ae79959add3d3b695682 simonb 1076734033 +0000 2e1eaf29b3583e8c28f2ae79959add3d3b695682 ec5a4ff5e0e98d3a85d07b5fe74452a3fc512396 grant 1079011054 +0000 ec5a4ff5e0e98d3a85d07b5fe74452a3fc512396 2ca09f4dae8f805a6c522fec1cbed5513877ae00 grant 1079011725 +0000 2ca09f4dae8f805a6c522fec1cbed5513877ae00 a1670e64bf52e168b40620b7baa981aa3a4fe5f6 grant 1079014264 +0000 a1670e64bf52e168b40620b7baa981aa3a4fe5f6 1d14e1ff28af52b2f0c775ac2f19bda747ea146e sketch 1079030129 +0000 1d14e1ff28af52b2f0c775ac2f19bda747ea146e bf9d0f82fb2f9c1d7bb81515e52275835c264540 grant 1079104873 +0000 bf9d0f82fb2f9c1d7bb81515e52275835c264540 6b569d1ae0cfdada8abf3fd11993d57c1299564c bouyer 1079829114 +0000 6b569d1ae0cfdada8abf3fd11993d57c1299564c 08019d46c5fc3194aa0766c399007c44d322d16f heinz 1082159972 +0000 08019d46c5fc3194aa0766c399007c44d322d16f cf4e7177005128abeeebe46584ace2acd6d24aed heinz 1082268139 +0000 cf4e7177005128abeeebe46584ace2acd6d24aed 1560d6e4cf8cf64d2a53e332752170d932edda59 grant 1082457948 +0000 1560d6e4cf8cf64d2a53e332752170d932edda59 b064388e20dea86d7d6fa630b273e617a4975160 grant 1082463185 +0000 b064388e20dea86d7d6fa630b273e617a4975160 1c7e6b3ccd502f01f43997c934acd66fd52109da grant 1082720566 +0000 1c7e6b3ccd502f01f43997c934acd66fd52109da d9bd916f9d21af1da015fc43e1036a5f80aeff6c grant 1084398643 +0000 d9bd916f9d21af1da015fc43e1036a5f80aeff6c 38b6c39be74fb0440b6a67527bdd3887abb49853 jlam 1091811309 +0000 38b6c39be74fb0440b6a67527bdd3887abb49853 50d8aaee40cde82003c32fd795f9ced8b11b95d4 jlam 1092163675 +0000 50d8aaee40cde82003c32fd795f9ced8b11b95d4 012c574180234443c633e411940976280341c272 jlam 1092259230 +0000 012c574180234443c633e411940976280341c272 9a7029a3f40941d5b620e5912153dbd99efc6f3e jlam 1092371882 +0000 9a7029a3f40941d5b620e5912153dbd99efc6f3e 40299cdfe0af07fd0105eb145fce2e44cd483e88 jlam 1092406724 +0000 40299cdfe0af07fd0105eb145fce2e44cd483e88 7b3ab82e9e1fc8c883d11429484e7d8fce3f39e2 jlam 1092677096 +0000 7b3ab82e9e1fc8c883d11429484e7d8fce3f39e2 e6f17d16bc43b76014126919d62e5c4a72e28ab2 schmonz 1092785901 +0000 e6f17d16bc43b76014126919d62e5c4a72e28ab2 d1a057d4039947c9b27d9b62649080c884f3d167 schmonz 1092953731 +0000 d1a057d4039947c9b27d9b62649080c884f3d167 f766b121076d093ae3635761a8741dab90491e38 jlam 1093040544 +0000 f766b121076d093ae3635761a8741dab90491e38 924bc2ca2dd3311842ab1eb7f65a6af7654c8f64 jlam 1093043432 +0000 924bc2ca2dd3311842ab1eb7f65a6af7654c8f64 0769f2683213859b0743ef813d97e30080738856 schmonz 1093044630 +0000 0769f2683213859b0743ef813d97e30080738856 c4a404eb047ab03e1e40b4ed51d376daa5c14f21 jlam 1093070173 +0000 c4a404eb047ab03e1e40b4ed51d376daa5c14f21 d4033421e96fe525cb3e62a95ba15374451a9390 jlam 1093112507 +0000 d4033421e96fe525cb3e62a95ba15374451a9390 69b2410b2bbee5ffc83722548ea35e575a9ee887 jlam 1093231932 +0000 69b2410b2bbee5ffc83722548ea35e575a9ee887 871324ab45e15f86d962f4e3b3b6f1d4b1f3bf76 jlam 1093232945 +0000 871324ab45e15f86d962f4e3b3b6f1d4b1f3bf76 6c1ae02b3caf0fdc9597517edc28453ca342b0c1 jlam 1093974917 +0000 6c1ae02b3caf0fdc9597517edc28453ca342b0c1 ef864e2dc8909af950ed57f2fe3d05b56e0799d5 jlam 1094929300 +0000 ef864e2dc8909af950ed57f2fe3d05b56e0799d5 f390a593b564f40b32e4dd65405e1b75533f6e4e grant 1098616713 +0000 f390a593b564f40b32e4dd65405e1b75533f6e4e c364e0cda7c3bb3f6bcbc47ef742b69b01cbad06 grant 1102032542 +0000 c364e0cda7c3bb3f6bcbc47ef742b69b01cbad06 6f305ff285fb7fb144e1b84d16981681612a11b9 grant 1102079575 +0000 6f305ff285fb7fb144e1b84d16981681612a11b9 0c0ffd5a4807ebe644ef94372fc0033aec5c5c1e grant 1102079949 +0000 0c0ffd5a4807ebe644ef94372fc0033aec5c5c1e bc22035e69728f6ceef088c9fdc7900d580ca658 grant 1102203100 +0000 bc22035e69728f6ceef088c9fdc7900d580ca658 511c6afee338839d045707f3fea1b8a20059565c grant 1102812389 +0000 511c6afee338839d045707f3fea1b8a20059565c 1ac2d4cfcea3f3da439316b691df69cd41728a0f jlam 1107477822 +0000 1ac2d4cfcea3f3da439316b691df69cd41728a0f ad2f928e9fed3110bba46d2840ee9eb1d3e778d4 grant 1108457755 +0000 ad2f928e9fed3110bba46d2840ee9eb1d3e778d4 0fdcaeb8d55523a5d1bab04848f491f61e18aaa8 wiz 1108483482 +0000 0fdcaeb8d55523a5d1bab04848f491f61e18aaa8 87557fd70d0781a480eb623bc7301f8da2e16276 grant 1108510542 +0000 87557fd70d0781a480eb623bc7301f8da2e16276 6fe0ec505b4e1d625dd81742278b46e55c39429d grant 1108878951 +0000 6fe0ec505b4e1d625dd81742278b46e55c39429d eb08fdde20dc5d5208515d1c2ffa802057de19e1 reed 1128968888 +0000 eb08fdde20dc5d5208515d1c2ffa802057de19e1 3f7172c28103e6595c3ab7bcdc81d994c9ffdea3 grant 1132284671 +0000 3f7172c28103e6595c3ab7bcdc81d994c9ffdea3 9ebab1ca7c51dcfc5ad02eea01294128ec21bba4 grant 1132304586 +0000 9ebab1ca7c51dcfc5ad02eea01294128ec21bba4 ded138693aabce9b7c85115ad906df90ead871f0 schwarz 1133210849 +0000 ded138693aabce9b7c85115ad906df90ead871f0 0d23b0e99a366c972a8f560ef4b21ffc4ecb6d2b joerg 1141231674 +0000 0d23b0e99a366c972a8f560ef4b21ffc4ecb6d2b 8bf9afe84eed0715cf450299593ee4a08ed74b62 seb 1156627701 +0000 8bf9afe84eed0715cf450299593ee4a08ed74b62 b33386576d257d30c2972499ee43cb898d367d6e jschauma 1166383677 +0000 b33386576d257d30c2972499ee43cb898d367d6e bf25657fd3eccf4691ef896592555a8995eaeeda joerg 1173660509 +0000 bf25657fd3eccf4691ef896592555a8995eaeeda 780a1a06aa2bdf97b4c3ab3a4bfc4cef6b2830d5 joerg 1178555927 +0000 780a1a06aa2bdf97b4c3ab3a4bfc4cef6b2830d5 c07a7103e967119c9c25da822385dbed4831b3fa joerg 1178574093 +0000 c07a7103e967119c9c25da822385dbed4831b3fa 2a72572e1a0615fa89880ec8b2172e18fd230863 tnn 1179857199 +0000 2a72572e1a0615fa89880ec8b2172e18fd230863 6df5201e9cc7fbcd308c3af312d6dfe64e4e44cf rillig 1180606729 +0000 6df5201e9cc7fbcd308c3af312d6dfe64e4e44cf db2176c6951ad5a212dac9f6db901eea9e781c92 joerg 1182213913 +0000 db2176c6951ad5a212dac9f6db901eea9e781c92 bed825ed1bac6c5a93f49e204e6c9b52ce8dc758 joerg 1182807304 +0000 bed825ed1bac6c5a93f49e204e6c9b52ce8dc758 9949dd8bc91f6dd7853bc2cacd8d972276089101 dmcmahill 1182895846 +0000 9949dd8bc91f6dd7853bc2cacd8d972276089101 9e4e5a3a2ee27c0a8756a01f41f4d5505408e76f joerg 1184767795 +0000 9e4e5a3a2ee27c0a8756a01f41f4d5505408e76f 0df3ce69d37938b43baa7762149e694a789cfcd1 tnn 1184882803 +0000 0df3ce69d37938b43baa7762149e694a789cfcd1 485caab70884fc28a91b9d51e95e77dad2a0fd1d tnn 1184890206 +0000 485caab70884fc28a91b9d51e95e77dad2a0fd1d ae3bda385a1f67a8e07902324f747427dfb4ec2f tnn 1184890285 +0000 ae3bda385a1f67a8e07902324f747427dfb4ec2f c16de641aa58e0e5c0791811fb1516e967372fcc tnn 1184890862 +0000 c16de641aa58e0e5c0791811fb1516e967372fcc ebd8ff85a022d48aa293813c24abf9bea8925f06 tnn 1184891522 +0000 ebd8ff85a022d48aa293813c24abf9bea8925f06 8b775c3099fe9fe1525386ba127ac3a0896ed0d0 tnn 1185026253 +0000 8b775c3099fe9fe1525386ba127ac3a0896ed0d0 11e5f4ec8448779878f1417d19826912c7bbe819 tnn 1185028765 +0000 11e5f4ec8448779878f1417d19826912c7bbe819 2a7c40b4335dbade085b503ce704ca815259a3d5 joerg 1185887853 +0000 2a7c40b4335dbade085b503ce704ca815259a3d5 a60335f399350033eaf576c4896620770d5e5e22 obache 1188899258 +0000 a60335f399350033eaf576c4896620770d5e5e22 20a4e5793467662ca2c45664581d25cbdf714614 jlam 1189113582 +0000 20a4e5793467662ca2c45664581d25cbdf714614 a83fbee29aacb4cf9b17ecab4596490f7182f4ea joerg 1190404318 +0000 a83fbee29aacb4cf9b17ecab4596490f7182f4ea 37be90cfe5d2a9e4948dd975192313669ae1e140 joerg 1202823804 +0000 37be90cfe5d2a9e4948dd975192313669ae1e140 b73f53215ec4b0cba750ea6d9d44e89fbcb2d5c4 tnn 1203016494 +0000 b73f53215ec4b0cba750ea6d9d44e89fbcb2d5c4 dac0638e8a0d2a529e8e3dbd6be1fbb0e7965f5b tnn 1203612608 +0000 dac0638e8a0d2a529e8e3dbd6be1fbb0e7965f5b 3f217ffab581f938f050d38d32498699202ab777 joerg 1206142088 +0000 3f217ffab581f938f050d38d32498699202ab777 4ffd4350e2b1150b6e125eb99351e10c84fb471b joerg 1207322350 +0000 4ffd4350e2b1150b6e125eb99351e10c84fb471b 56ea03f4ee71cef0ae50065dfc2cce3c14c7393f joerg 1208419872 +0000 56ea03f4ee71cef0ae50065dfc2cce3c14c7393f 011bcce78833e1d10ca3a9d268ef8662df23f116 joerg 1208816683 +0000 011bcce78833e1d10ca3a9d268ef8662df23f116 750ba9f3f91fe07a1899c414c48191fb5ab4e57e martin 1209447968 +0000 750ba9f3f91fe07a1899c414c48191fb5ab4e57e 03a2ff110ffec9b31a19102495366d13112c994e joerg 1211201577 +0000 03a2ff110ffec9b31a19102495366d13112c994e 6b4613c5887e81b5f98427abc148b823fc94dffa joerg 1213896489 +0000 6b4613c5887e81b5f98427abc148b823fc94dffa 7c4692eb74337dfdcda9cffae5fa2bb6ff72a8a9 joerg 1220905222 +0000 7c4692eb74337dfdcda9cffae5fa2bb6ff72a8a9 2e8a28485722786c8d3fe21d92ab897f09a11283 joerg 1221227246 +0000 2e8a28485722786c8d3fe21d92ab897f09a11283 b0c1859453455f041d1550d5c17c4aebe44f2312 joerg 1223296579 +0000 b0c1859453455f041d1550d5c17c4aebe44f2312 29f8f1922ed1a709e323819160168d9be7bc7733 joerg 1223395390 +0000 29f8f1922ed1a709e323819160168d9be7bc7733 053d5c2824973329c550fc6a49afff35ea7ae409 joerg 1223476094 +0000 053d5c2824973329c550fc6a49afff35ea7ae409 2b1c7dae9049964e19101f70db98ca5264e5f750 joerg 1223598103 +0000 2b1c7dae9049964e19101f70db98ca5264e5f750 a7959ba602caaca8ba3643c143b3ab89cc4ba00b joerg 1224450127 +0000 a7959ba602caaca8ba3643c143b3ab89cc4ba00b 35ab5c92609d976a0dc6d8f6670b2f7428ab30e5 joerg 1225024290 +0000 35ab5c92609d976a0dc6d8f6670b2f7428ab30e5 0ec62c4350ba2909ba8c26356763dd6f00f9700f joerg 1225025519 +0000 0ec62c4350ba2909ba8c26356763dd6f00f9700f 7ccba167a4ffa91810574d62914624e76f143fb4 joerg 1225206386 +0000 7ccba167a4ffa91810574d62914624e76f143fb4 8995f8389ff4093585db594c1cf6757162890a2a joerg 1225206918 +0000 8995f8389ff4093585db594c1cf6757162890a2a fad172c46474636a8d379c42a33733b9db86c892 joerg 1225216656 +0000 fad172c46474636a8d379c42a33733b9db86c892 b1d1c4ed6f86463c78338845b0867249eca9a10d joerg 1225216866 +0000 b1d1c4ed6f86463c78338845b0867249eca9a10d 883593cecaa6cf3ea845e3ecdfe7e9b2cf67b0c7 joerg 1225279397 +0000 883593cecaa6cf3ea845e3ecdfe7e9b2cf67b0c7 a36c47c5523d5ec6097b5ae2c297d764a8ad479a joerg 1225298343 +0000 a36c47c5523d5ec6097b5ae2c297d764a8ad479a a54497706cdd9dbf44941248bd1528dd14d5fb2e joerg 1225382454 +0000 a54497706cdd9dbf44941248bd1528dd14d5fb2e 7b48c3509a8fda138731b7c15b00e0e5d838758e joerg 1225394840 +0000 7b48c3509a8fda138731b7c15b00e0e5d838758e 9b3f912d5a68226fc5555741168aba25ed7a0f71 joerg 1225931142 +0000 9b3f912d5a68226fc5555741168aba25ed7a0f71 4c625f9c7ee9e0dc4bb40fe373533cc90d94c056 joerg 1226180157 +0000 4c625f9c7ee9e0dc4bb40fe373533cc90d94c056 0b227224bd10eb283a95cd8f1b537a5e3a990819 obache 1229241049 +0000 0b227224bd10eb283a95cd8f1b537a5e3a990819 1e62472af147775e9c40e0a1e2f40ba8f09a5736 joerg 1234211721 +0000 1e62472af147775e9c40e0a1e2f40ba8f09a5736 955ca0fb0bacb5f00000cf804ef87193b05d6d8a abs 1235004672 +0000 955ca0fb0bacb5f00000cf804ef87193b05d6d8a 089bb798e49b515c85bdcc444456e020321f72c1 joerg 1235664858 +0000 089bb798e49b515c85bdcc444456e020321f72c1 1c9d0f7fb0bb4db19c3bf6281ca9cada6d64954a joerg 1236002096 +0000 1c9d0f7fb0bb4db19c3bf6281ca9cada6d64954a d7b12ebb1824220031c9edc27ffc39653477a85f joerg 1237761193 +0000 d7b12ebb1824220031c9edc27ffc39653477a85f fd3ea1296665f72950462b394c7fc2ed4bb7c5c8 joerg 1239622246 +0000 fd3ea1296665f72950462b394c7fc2ed4bb7c5c8 95ddc1d9853e3f3b7602b53ba569b9052be4743f joerg 1239730481 +0000 95ddc1d9853e3f3b7602b53ba569b9052be4743f 80b204cfc92b9b5fe58b2d882686ebb8d72a6196 joerg 1241629051 +0000 80b204cfc92b9b5fe58b2d882686ebb8d72a6196 930a642e13247cd0cdad4e54e156f3c5478273db schmonz 1241655825 +0000 930a642e13247cd0cdad4e54e156f3c5478273db 2d8842ddfe12fa2477d21285e7ad8339f2316090 joerg 1244231884 +0000 2d8842ddfe12fa2477d21285e7ad8339f2316090 aaa71ae81039f040ae2b6d6f3ddb944eadc79130 abs 1247768612 +0000 aaa71ae81039f040ae2b6d6f3ddb944eadc79130 0fef11fa4d99c3986682820a32a89325a902c0fd joerg 1264290175 +0000 0fef11fa4d99c3986682820a32a89325a902c0fd b80384c18d2e9e6b194a8a7e0433d6b8edc28b2d obache 1264323121 +0000 b80384c18d2e9e6b194a8a7e0433d6b8edc28b2d 3c56e9f84129cbd503c85683b40082bf583362bf obache 1264336188 +0000 3c56e9f84129cbd503c85683b40082bf583362bf d6284d11daec13b53f40b8158abaa56f6dc04aa9 obache 1264336881 +0000 d6284d11daec13b53f40b8158abaa56f6dc04aa9 7083dd737e137bfb775bf6e0e83f1d76b3cbbc86 joerg 1266679295 +0000 7083dd737e137bfb775bf6e0e83f1d76b3cbbc86 830e95f7baaedbbeb0c55f08e803046c50eb4f67 joerg 1267288020 +0000 830e95f7baaedbbeb0c55f08e803046c50eb4f67 b3f4b6ce5184bfa9b0a0639bb2811c7a3a574135 obache 1267596225 +0000 b3f4b6ce5184bfa9b0a0639bb2811c7a3a574135 0ed51c3d04f4d7bf4d8a6930f8ae525c6c2fe4f9 joerg 1271723542 +0000 0ed51c3d04f4d7bf4d8a6930f8ae525c6c2fe4f9 71c380e43545f2ea8d1b31d5692a9a0335b2bf20 joerg 1320776403 +0000 71c380e43545f2ea8d1b31d5692a9a0335b2bf20 af423fcb0a1b4fa663b37ab61fe4fd6736932c30 joerg 1320962323 +0000 af423fcb0a1b4fa663b37ab61fe4fd6736932c30 83f7c51c59a982d133ecd4978b781757ec5c969a joerg 1325099971 +0000 83f7c51c59a982d133ecd4978b781757ec5c969a 0d874fc8eeb4bd51415baf31e0d0dcdf13e4b52a hans 1330618731 +0000 0d874fc8eeb4bd51415baf31e0d0dcdf13e4b52a f600eccf0e71f26d2d5c5abd9a13994e9549d9c7 christos 1337100345 +0000 f600eccf0e71f26d2d5c5abd9a13994e9549d9c7 6557876a2a751036a6e1c80ae3d2c22b537019de joerg 1341244973 +0000 6557876a2a751036a6e1c80ae3d2c22b537019de a99830dd337a65650e5193d28c0380ac9f5e81b9 obache 1360499932 +0000 a99830dd337a65650e5193d28c0380ac9f5e81b9 a582c853bcab38e175dbaa118fa1e7fab18e1932 ryoon 1378641723 +0000 a582c853bcab38e175dbaa118fa1e7fab18e1932 fe17139bef49925299ee3769474ddd440069713c ryoon 1378657483 +0000 fe17139bef49925299ee3769474ddd440069713c 17962b85cdee1607f86ca828ea0d1305d36094e0 ryoon 1394834897 +0000 17962b85cdee1607f86ca828ea0d1305d36094e0 a5962b5876d0c2ef73270e1030e8c63c01e907d3 cheusov 1402168662 +0000 a5962b5876d0c2ef73270e1030e8c63c01e907d3 94d0c969683500143fe6cc399b21d8307f28c259 jperkin 1406294784 +0000 94d0c969683500143fe6cc399b21d8307f28c259 b453de3709450fcc9f5047bb14bc859427bae295 riastradh 1423898754 +0000 b453de3709450fcc9f5047bb14bc859427bae295 2191894bc7942c31d70321f473af41f8785ed43d rodent 1428203460 +0000 2191894bc7942c31d70321f473af41f8785ed43d f3c9ea6e21466bf9793f575f59ad01e0b481cad6 jperkin 1429003428 +0000 f3c9ea6e21466bf9793f575f59ad01e0b481cad6 cc02d60b06ac891068e737f7c35cb13bb80dda57 tnn 1429446134 +0000 cc02d60b06ac891068e737f7c35cb13bb80dda57 e817646e709e5bc945b1e751872ea509b247a2b9 tnn 1429446205 +0000 e817646e709e5bc945b1e751872ea509b247a2b9 73e2ac5425f90aea8e316d290c6355b726173751 tnn 1429446261 +0000 73e2ac5425f90aea8e316d290c6355b726173751 f3541a440097d40ee092095c44527f411ba12334 joerg 1430482689 +0000 f3541a440097d40ee092095c44527f411ba12334 2b039084069e761a5fea569869fa6054ae6fdd18 ryoon 1430567945 +0000 2b039084069e761a5fea569869fa6054ae6fdd18 e1ae3e7f1e6178194b1b36b46c34f974df10802d joerg 1430571179 +0000 e1ae3e7f1e6178194b1b36b46c34f974df10802d 21aa956016c6e547f7b2bae63020f50104da1921 joerg 1433724286 +0000 21aa956016c6e547f7b2bae63020f50104da1921 474ca9393fc4a9c9aaeb3122f580076cdbc748e1 kamil 1441149471 +0000 474ca9393fc4a9c9aaeb3122f580076cdbc748e1 4be02dfda6078feea57c5a1fde6d756e3b6af181 joerg 1441271154 +0000 4be02dfda6078feea57c5a1fde6d756e3b6af181 642495004865a4279447956f1b336d2560006209 ryoon 1449876490 +0000 642495004865a4279447956f1b336d2560006209 d6780e38c2536f1811eb678a29f4d1071772509f joerg 1450043787 +0000 d6780e38c2536f1811eb678a29f4d1071772509f 7418dd22603841a919593485a3671bfbf2574f83 joerg 1451074366 +0000 7418dd22603841a919593485a3671bfbf2574f83 61284d953079b3dd15e38dadb60fb5bdeab3cfae wiz 1525084895 +0000 61284d953079b3dd15e38dadb60fb5bdeab3cfae be9f9298fd165ea01a0769c4ffa29a3ec0d22023 maya 1534970918 +0000 libnbcompat-20180822/.git/logs/refs/heads/pkgsrc-2009Q10000644000175000017500000000035213355271112022342 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 95ddc1d9853e3f3b7602b53ba569b9052be4743f joerg 1239730481 +0000 cvsimport 95ddc1d9853e3f3b7602b53ba569b9052be4743f 4e68f81dc2aa546b8b098af6393c03372e0255c8 tron 1239743915 +0000 libnbcompat-20180822/.git/logs/refs/heads/TNF0000644000175000017500000000035413355270350020713 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 508b62b3c33c2f6f073c1cb5cd574c67cd3e41de grant 1049086940 +0000 cvsimport 508b62b3c33c2f6f073c1cb5cd574c67cd3e41de be4bb1bc5a146a6de67454f4ee1ac4d18ad71bd0 grant 1049086940 +0000 libnbcompat-20180822/.git/logs/refs/heads/master0000644000175000017500000000015713355271171021562 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 be9f9298fd165ea01a0769c4ffa29a3ec0d22023 maya 1534970918 +0000 libnbcompat-20180822/.git/logs/refs/heads/pkgsrc-2015Q10000644000175000017500000000036413355271161022346 0ustar jgoerzenjgoerzen0000000000000000000000000000000000000000 e1ae3e7f1e6178194b1b36b46c34f974df10802d joerg 1430571179 +0000 cvsimport e1ae3e7f1e6178194b1b36b46c34f974df10802d 92eef9ba3e5793cc69bae8df87eda47bf4445054 hiramatsu 1431109981 +0000 libnbcompat-20180822/.git/hooks/0000755000175000017500000000000013355270234016474 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/hooks/commit-msg.sample0000755000175000017500000000160013355270234021753 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit" with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, rename this file to "commit-msg". # Uncomment the below to add a Signed-off-by line to the message. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg # hook is more suited to it. # # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } libnbcompat-20180822/.git/hooks/applypatch-msg.sample0000755000175000017500000000073613355270234022641 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, rename this file to "applypatch-msg". . git-sh-setup commitmsg="$(git rev-parse --git-path hooks/commit-msg)" test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} : libnbcompat-20180822/.git/hooks/pre-applypatch.sample0000755000175000017500000000065013355270234022634 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, rename this file to "pre-applypatch". . git-sh-setup precommit="$(git rev-parse --git-path hooks/pre-commit)" test -x "$precommit" && exec "$precommit" ${1+"$@"} : libnbcompat-20180822/.git/hooks/pre-receive.sample0000755000175000017500000000104013355270234022103 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to make use of push options. # The example simply echoes all push options that start with 'echoback=' # and rejects all pushes when the "reject" push option is used. # # To enable this hook, rename this file to "pre-receive". if test -n "$GIT_PUSH_OPTION_COUNT" then i=0 while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" do eval "value=\$GIT_PUSH_OPTION_$i" case "$value" in echoback=*) echo "echo from the pre-receive-hook: ${value#*=}" >&2 ;; reject) exit 1 esac i=$((i + 1)) done fi libnbcompat-20180822/.git/hooks/pre-rebase.sample0000755000175000017500000001144213355270234021731 0ustar jgoerzenjgoerzen#!/bin/sh # # Copyright (c) 2006, 2008 Junio C Hamano # # The "pre-rebase" hook is run just before "git rebase" starts doing # its job, and can prevent the command from running by exiting with # non-zero status. # # The hook is called with the following parameters: # # $1 -- the upstream the series was forked from. # $2 -- the branch being rebased (or empty when rebasing the current branch). # # This sample shows how to prevent topic branches that are already # merged to 'next' branch from getting rebased, because allowing it # would result in rebasing already published history. publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` || exit 0 ;# we do not interrupt rebasing detached HEAD fi case "$topic" in refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Does the topic really exist? git show-ref -q "$topic" || { echo >&2 "No such branch $topic" exit 1 } # Is topic fully merged to master? not_in_master=`git rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up-to-date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` /usr/bin/perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi <<\DOC_END This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git rev-list ^master ^topic next git rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git rev-list master..topic if this is empty, it is fully merged to "master". DOC_END libnbcompat-20180822/.git/hooks/post-update.sample0000755000175000017500000000027513355270234022153 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". exec git update-server-info libnbcompat-20180822/.git/hooks/update.sample0000755000175000017500000000703213355270234021166 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to block unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git config --bool hooks.allowunannotated) allowdeletebranch=$(git config --bool hooks.allowdeletebranch) denycreatebranch=$(git config --bool hooks.denycreatebranch) allowdeletetag=$(git config --bool hooks.allowdeletetag) allowmodifytag=$(git config --bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero="0000000000000000000000000000000000000000" if [ "$newrev" = "$zero" ]; then newrev_type=delete else newrev_type=$(git cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 libnbcompat-20180822/.git/hooks/pre-commit.sample0000755000175000017500000000315213355270234021757 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git commit" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, rename this file to "pre-commit". if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 fi # If you want to allow non-ASCII filenames set this variable to true. allownonascii=$(git config --bool hooks.allownonascii) # Redirect output to stderr. exec 1>&2 # Cross platform projects tend to avoid non-ASCII filenames; prevent # them from being added to the repository. We exploit the fact that the # printable range starts at the space character and ends with tilde. if [ "$allownonascii" != "true" ] && # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. test $(git diff --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then cat <<\EOF Error: Attempt to add a non-ASCII file name. This can cause problems if you want to work with people on other platforms. To be portable it is advisable to rename the file. If you know what you are doing you can disable this check using: git config hooks.allownonascii true EOF exit 1 fi # If there are whitespace errors, print the offending file names and fail. exec git diff-index --check --cached $against -- libnbcompat-20180822/.git/hooks/prepare-commit-msg.sample0000755000175000017500000000232713355270234023416 0ustar jgoerzenjgoerzen#!/bin/sh # # An example hook script to prepare the commit log message. # Called by "git commit" with the name of the file that has the # commit message, followed by the description of the commit # message's source. The hook's purpose is to edit the commit # message file. If the hook fails with a non-zero status, # the commit is aborted. # # To enable this hook, rename this file to "prepare-commit-msg". # This hook includes three examples. The first comments out the # "Conflicts:" part of a merge commit. # # The second includes the output of "git diff --name-status -r" # into the message, just before the "git status" output. It is # commented because it doesn't cope with --amend or with squashed # commits. # # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea. case "$2,$3" in merge,) /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; # ,|template,) # /usr/bin/perl -i.bak -pe ' # print "\n" . `git diff --cached --name-status -r` # if /^#/ && $first++ == 0' "$1" ;; *) ;; esac # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" libnbcompat-20180822/.git/hooks/pre-push.sample0000755000175000017500000000250413355270234021446 0ustar jgoerzenjgoerzen#!/bin/sh # An example hook script to verify what is about to be pushed. Called by "git # push" after it has checked the remote status, but before anything has been # pushed. If this script exits with a non-zero status nothing will be pushed. # # This hook is called with the following parameters: # # $1 -- Name of the remote to which the push is being done # $2 -- URL to which the push is being done # # If pushing without using a named remote those arguments will be equal. # # Information about the commits which are being pushed is supplied as lines to # the standard input in the form: # # # # This sample shows how to prevent push of commits where the log message starts # with "WIP" (work in progress). remote="$1" url="$2" z40=0000000000000000000000000000000000000000 while read local_ref local_sha remote_ref remote_sha do if [ "$local_sha" = $z40 ] then # Handle delete : else if [ "$remote_sha" = $z40 ] then # New branch, examine all commits range="$local_sha" else # Update to existing branch, examine new commits range="$remote_sha..$local_sha" fi # Check for WIP commit commit=`git rev-list -n 1 --grep '^WIP' "$range"` if [ -n "$commit" ] then echo >&2 "Found WIP commit in $local_ref, not pushing" exit 1 fi fi done exit 0 libnbcompat-20180822/.git/info/0000755000175000017500000000000013355271171016305 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/info/exclude0000644000175000017500000000036013355270234017657 0ustar jgoerzenjgoerzen# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ libnbcompat-20180822/.git/info/refs0000644000175000017500000000562413355271171017176 0ustar jgoerzenjgoerzenbe4bb1bc5a146a6de67454f4ee1ac4d18ad71bd0 refs/heads/TNF be9f9298fd165ea01a0769c4ffa29a3ec0d22023 refs/heads/origin 4e68f81dc2aa546b8b098af6393c03372e0255c8 refs/heads/pkgsrc-2009Q1 0711b2ad97fa633a68356f920b2e982c600fbd7f refs/heads/pkgsrc-2012Q2 92eef9ba3e5793cc69bae8df87eda47bf4445054 refs/heads/pkgsrc-2015Q1 2e8a28485722786c8d3fe21d92ab897f09a11283 refs/tags/cube-native-xorg-base 6b4613c5887e81b5f98427abc148b823fc94dffa refs/tags/cwrapper-base baae3a498ffbc7a8e20c8258aa83e53562680bf5 refs/tags/pkgsrc-2003Q4-base 6b569d1ae0cfdada8abf3fd11993d57c1299564c refs/tags/pkgsrc-2004Q1-base d9bd916f9d21af1da015fc43e1036a5f80aeff6c refs/tags/pkgsrc-2004Q2-base ef864e2dc8909af950ed57f2fe3d05b56e0799d5 refs/tags/pkgsrc-2004Q3-base 511c6afee338839d045707f3fea1b8a20059565c refs/tags/pkgsrc-2004Q4-base 6fe0ec505b4e1d625dd81742278b46e55c39429d refs/tags/pkgsrc-2005Q3-base ded138693aabce9b7c85115ad906df90ead871f0 refs/tags/pkgsrc-2005Q4-base 0d23b0e99a366c972a8f560ef4b21ffc4ecb6d2b refs/tags/pkgsrc-2006Q2-base 8bf9afe84eed0715cf450299593ee4a08ed74b62 refs/tags/pkgsrc-2006Q3-base b33386576d257d30c2972499ee43cb898d367d6e refs/tags/pkgsrc-2006Q4-base bf25657fd3eccf4691ef896592555a8995eaeeda refs/tags/pkgsrc-2007Q1-base 9949dd8bc91f6dd7853bc2cacd8d972276089101 refs/tags/pkgsrc-2007Q2-base a83fbee29aacb4cf9b17ecab4596490f7182f4ea refs/tags/pkgsrc-2007Q4-base 3f217ffab581f938f050d38d32498699202ab777 refs/tags/pkgsrc-2008Q1-base 0b227224bd10eb283a95cd8f1b537a5e3a990819 refs/tags/pkgsrc-2008Q4-base d7b12ebb1824220031c9edc27ffc39653477a85f refs/tags/pkgsrc-2009Q1-base 2d8842ddfe12fa2477d21285e7ad8339f2316090 refs/tags/pkgsrc-2009Q2-base aaa71ae81039f040ae2b6d6f3ddb944eadc79130 refs/tags/pkgsrc-2009Q4-base b3f4b6ce5184bfa9b0a0639bb2811c7a3a574135 refs/tags/pkgsrc-2010Q1-base 0ed51c3d04f4d7bf4d8a6930f8ae525c6c2fe4f9 refs/tags/pkgsrc-2010Q3-base 83f7c51c59a982d133ecd4978b781757ec5c969a refs/tags/pkgsrc-2011Q4-base 0d874fc8eeb4bd51415baf31e0d0dcdf13e4b52a refs/tags/pkgsrc-2012Q1-base f600eccf0e71f26d2d5c5abd9a13994e9549d9c7 refs/tags/pkgsrc-2012Q2-base 6557876a2a751036a6e1c80ae3d2c22b537019de refs/tags/pkgsrc-2012Q3-base a99830dd337a65650e5193d28c0380ac9f5e81b9 refs/tags/pkgsrc-2013Q2-base fe17139bef49925299ee3769474ddd440069713c refs/tags/pkgsrc-2013Q3-base 17962b85cdee1607f86ca828ea0d1305d36094e0 refs/tags/pkgsrc-2014Q1-base a5962b5876d0c2ef73270e1030e8c63c01e907d3 refs/tags/pkgsrc-2014Q2-base 94d0c969683500143fe6cc399b21d8307f28c259 refs/tags/pkgsrc-2014Q4-base b453de3709450fcc9f5047bb14bc859427bae295 refs/tags/pkgsrc-2015Q1-base 21aa956016c6e547f7b2bae63020f50104da1921 refs/tags/pkgsrc-2015Q2-base 4be02dfda6078feea57c5a1fde6d756e3b6af181 refs/tags/pkgsrc-2015Q3-base 7418dd22603841a919593485a3671bfbf2574f83 refs/tags/pkgsrc-2015Q4-base 61284d953079b3dd15e38dadb60fb5bdeab3cfae refs/tags/pkgsrc-2018Q2-base be9f9298fd165ea01a0769c4ffa29a3ec0d22023 refs/tags/pkgsrc-2018Q3-base be4bb1bc5a146a6de67454f4ee1ac4d18ad71bd0 refs/tags/pkgsrc-base libnbcompat-20180822/.git/objects/0000755000175000017500000000000013355271171017003 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/objects/pack/0000755000175000017500000000000013355271171017721 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/objects/pack/pack-d3dae1fc6344f68e421608d47300985b6109d15b.pack0000444000175000017500000353040113355271171026720 0ustar jgoerzenjgoerzenPACKTŸxœ…ŽÍj1 „ï~ Ý›ïO’5”JÉ1‡6/ [ÚØdwµØN¾}½”BoB0âcfrdk¨Ã¦2+Suº§šnÑQk:²}‡Ö™Št­fŒË4,àd^b¸ø vwM/J}HPÖbb™ {bR(â\ĉóû×å6æõ;"1„ j­;È¢H É>8L€Cd¤pž‡Pls¢ûMs§ ƒ/ ežþRNŠóO‡påÒz’¼¦IiUäYRȯõå V0Òa‘ïÅÇ.¦‘üA}š÷Ζ xœ}Ž;Â0{Ÿbk(ˆ×¿5BTˆ{¬ã5D"12§''à3ͯ70Éi¯Ù0F.%¥èBN#û‘²¶„dAuç&K‡`5åŒèCVsÔÑEcɱñA§’ º` ÅÏ~­ ÞÓ+Ž º,EÛaëy“xœ…ŽA E÷œbö&† ˜£·zÊ ŠiKƒÔó[½€ó’—·ø­2ƒ$é}gbè£S1/É&’Æ£wJŽ’Vb•§d—¬}T¶ ="÷« j— ¡tèœêä.‰°´G©ð,\ï°ÿáhºµ1ÚZØÈu"–qÌ­ñßPß%Ð29†Æ×Ó .ç¤Rcžî0sÃôýX¹_ò@¯­øl B¥xœ…޽NÄ0„{?Åö È‰c !QR@­íõAgŸœÍI¼=Ñ3Í43ß w"N&ƒ K ‹Kr‹–~^­Ë^Ïj]¢2VŸÅ;UëlDo¼ÉÑ¢‘‚QZçy•Ò-1…èìJJàÁçÖá£Q?Áï=‚²Vi§ÔláN‰Ø.—ÂLÿÅ ~l[ £rEÞŽz+»2°3r‰÷Pʵ1Œ§ -Ÿ J쌑ÆR厑'x£ÖÓXäxk%Á±—zúÊ­Ó*Q.•ÒO¯ïÏùkß—\^ƒ“ xœ…P»ŽÜ0 ìýì³·°lY¶A€ÃiR&H­µVV/Hô^öï£õáê°ÎpH87J Ã*&c–Aô“6\â¸È¹Ÿ˜ZûQ1«u—eÁH€¬Íp¶ ›¶rÅÔ(zäv¹±¬_úÁtr§-ø“°\áë߀ñqœ>,¾ô­:BpDø_b÷V6„Š\¼úì‘°xù¥4+½ÉxÅ ª ¼d•U*2ƒ$ð(+u)Â÷¿'س‘„àŠª‘… =›zÁ¦×îÞjÝ‚„˲Æ»+)†çd4¤÷IŸàž‹‹dO0èü8°"Ò;xÊ*„\°~.¿§rk)ÎÍäWE°»÷mž(Ñ#·¶¥qUyo'¨ñÓAÖîh¹ÌžÏMþçæ*È{r¦Â÷ˬt¾‰?mM¢õNS…wGÛÇ[vçÉÅzîþà‚¨ñxœKn1÷>Eï"ÚŸñ¸%”Kp‚¶ÝVò˜p}¼b·ªMÕëMœø`“f‘c²è<‘׳„àÉ8ýäÓlÔƒ›Ôä2&ò4¬ Q;»ˆOÉE£s°8/&$3‘âg¿m Zá½7Î78ð´36P˜'ß8¦Ò¶®¥wù· .¼ Téqχ£p,è/á_XÆë½ÄGóÁýkù“ Û=zÚêR®§ýOê œMŽ–xœO»NÄ0ìýÛaí8qŒ%¢ãüØÈæçoŽ»¿ÇHˆš©Fó’†w" 9ZÛk3L6NÊH;IDtTVå%F­]ˆ³8» ƒì¨ü0™1bP4›^$‰=ÒÆ> $‹&öœ¶>Ï´Ÿrç_òR㨬6“†;la[×ÌLÿ ‹%ûâ[åìøAaóž„x§¯6ñ–Ëq…z«Lk…ä.ëv¡­wp^º¼¯ññO¸#p¢6R(P­n¿AHNæö“cX¶à8o¥xÍWªð£‘« þ(|€TêN|¹iiP•xœOQKÃ0|ϯø¡&i–¦0„¢…!¢c¯#M¾¬Á.)I:æ¿·‚ˆÞÓÝqw%!‚àMÝÐÞ¶ÒH¤Ê´J¥53MÃE–¯¨Æš2é„¡kZÉ{µ2‘IÚ8%V\¡¦–ÕtekI[”è¹ 1pÎñ ërLPΤ’’à ]@L<|)ø¯0!ùö©Ûo›ûí¡{}{~Ù=þ±ö¿^11YŽP"˜œ?Î +½¼I˜1d„èà¬ó”|(Ÿ¿W˜´ì†E-¿‹×ãø Î_0CcÉ%é œöãRGb€n,[æKE¾mjR“ xœ…‹K Â0÷9ÅÛ 5¿&y ‚x€.z‚ôå]´ 1¼½Á 8›ÙÌ´Ê Á)“FL‰ˆPE…¼8^1J‚YI“‘¬(±òÞ`eå•Á…W‹¨GÈl¼CëmJÉZ)ö€D<Ú#W¨Ÿœw¸üt…~Ú`l@'Ù”·íÙÿ Å-%˜ïL…÷™ë»/ã 6ƒ†×QJ®M|fŸ<ú™xœ…ÁjÃ0DïúŠ=·%•,Ë’  Iné¡M?`%­ˆÀŽŒ¼ôï+òËÀ›™Ãp#¯}NS¶:E9`F‡É˜˜Fë¼=QšRV4bÅFW4nˆÎè1hGÊš•rÙŒAuèõ ðÆ—Ú ýÖz…·‡½ƒÒÖMÆŽNóì±.Ka¦‹âgMÈ\aJK/Op,w·2'èãc?t*Ÿç]δ1=èV‚uFε-Û |÷׹̴½~>ö§ÃNüZO&™xœŽMjÃ0…÷:Å, e4²þ t““Œ¥±#Z[ÆR ¹}¹@ßæƒÇïõSfCn"ËäċϞcv8‡„äYô¢É„ ©ƒOÙ;8k}ðŽ‰½Õh;Ñ) ËÐÑlG³(þë÷zB9Ý®o~ƒ6§£!øÄ•ê¶•Þåªuú­´Vö²¤_>¹—ºC] I?¸µqòÃ\`Û·çú(û—z>"E’xœ…ANÄ0 E÷=…÷ QÒ¦ ‘{vP¹‰3ÍLšT© ôöd,XáÍ“¬¯÷m.D€Ri¥¤^OÞ8£¦ ;éah±ó(ÑP‹ÍŠ…ƒ„ k½ -};¸Öõ¶ÇÉ”1ŠL¯ªÃêwžsK¦r†Ço<ì”l•2ºƒ;Q§±yY3ýlž=Pà¹&ßq´y= ÚÇqÚCäÆßeØ`Û×5&wûFÀ32„TI nk ‰=xŒqB{…°¬‘–úrÈéµ&ýôüUmb.pn>r¹ÂtÀ­2¤óí¤6 YŽÇ Þæ¼G>|ÂË+¨^úÔ|åáxÓ•xœ1kÃ0„wýŠ·u( z’ì8:´™!í$½',ˆ­"½þ÷uº÷¦ãøîà¤2:‹Étæ0¶1{`Œƒ!äØ'í{Ô>ôAõå+/š†½Kq`.P‡»à“EÖ¤)RBË.tÆ+ÿ-S©§š›”Ç?÷ híµ¶®ƒg½IÅ2ÏY„ÿ‰«SYž*¿§¼0\¯Ÿãûy¼|@Nr«ìi…A;8/Pn#ËÛåmmÂsS2ñÉ’Ër/BØ(§Ä÷íÀ­¿iœvêÔºas›xœ…‹ËjÃ0E÷úŠÙJ$Åz@É¢i…Òm—f23¦‘dùÿAïâpçö&‘uòÖ!ÏIc`6„&øˆÎ±6GG6¢XQlR:›<šÆˆ1ÖÖ ñ1úpóAûÑ ]D…[ŸkƒË ï;OðŠNo5 ‡×Õœ—ÞåŸLý6|@ŸR_!m…úR °Ðî¾ÂR`š>.ׯŸéórþ†^!ãŸì¯ ÛŠ·»¨Ôj†ó0¼©'.tK*”xœ…‘ÍNÃ0„ïyн•·A„}äŸub”ÚÁÞÚ§ÇEÜÙËvfôIC„õÊqÏ´;Þ líúÖ›Ö0ÅT×IÓ+£kf1hß é­aš›Ök¥¤‘[m÷Øz§¶RõRXɽИ2|$ÌÜýÊ=p):Ö÷ý–Ã«×Øt<"üרLÁDSí³¦Á8çBìnáÅCÆÏ …8Àãá)”¤4õWHùôT„h§Åa“– i®÷)ÅaΆ#–¢JPƒ?¡ÔhU›¢Ã’/4/´çðõ]J%¨ sÊ„Ì FËR„Cšt®k ¢©ôvÜÀÛkã–|Aöu„3^"k8ï›:‚Ú˜xœ…ŒKj1D÷:EïCýåcð.Ë,bȶ¥nÅã4´e|}¹@ŠâÕæQC˜Áq@Ï9ÙV*O:˜X´OéèSZYÔ‚Âm@vÕçX8˜­Ï§¬QG7ål·Æ”„CòÆ…qêçÎò »¿Ùƒ±É$ë‚·ð¦×¨Òo·y þWT"xv¹ ôG#¨ëw–~á‹0ÒÇò”yð¾OóÖ6fbpe¼èM}~½6êE JœŸxœMËJÄ0Ýç+îÎ…2&iÒ¦0.g'³DÆ›äf°MI¯ý{£þ€gsœW"°! {éeðFkt¨P £ï:r 1šQY/V¬´0¸NÒhÓà)zO­gm’Žœì¤éƒ•äMê_<• Åc˜ŽüJ÷ƒ{­-ÜËÊsà¼\÷•6Híèc½.åÂwÀ•aÙ7ˆþ¢œ=L—¦ßtgÞât>½Â„7‚Ì?ƶo¿S-×:•ÖR™"ø^ÎF;£â&s\°“xœµ1kÃ0…wýŠ+4IKbI±-C)¸¡C!i;”®áblÑØ –‚É¿¯œµ­7ÜpïÝûx¡'‚”8êôPp©%25ÈM&P)ªlmtVpâZHvžºB+µZâ Xç¹\¨”rÔJÊÂɳ¤HžCãzÀƒ‡§¸žæLe\ÀC‡U®mmtÓÄ6 v5AhŽ®¶˜ÞµŒM¬Ñd`·+?÷ï_ûò»|Û–/ÛW¶ZÀÆi‚¡±UgOÚOp8lhaDm<^lWÃ@ ]weŒÇàÆ/°+6¡N[ÃXpW&ÜEªíHÏþ’ç0BòO|ïÀ_| öábÔ:›£4¸þg¹\²_mOŽ0•xœ…ÍMNÃ0†á½O1K¢òo#„„8\`ì™´I&²]U½=–|›wóH_+Ìà´EvCGܨ$ò)„8¦Îb¢hcŽÎ°Ú±ðÖ :·lœõ}& ÉsðlB7º|?ØÞQRxm“8 —oxýÍë½uf<<éc*˺έñ¿P-sÚÒÁwlÏVë¨;^Ô;Ôë¾Ki0wµQYNÓ ¾¸6&Hw¨nyÙàS,s…‡ÛÄ…ÿ´’m¹ÃMʥ¼ÁGŒ° ñãIýöÙYןxœ…±NÃ0†w?Åm€Q7I¨ K™XÐÙ>'¦‰l—¨oÓ2°q‹‡ûýýߥ@š›zk4)mŽT5m'dÓ´\Õ•’x[ ]±¹•º4‘¥”-+¡¸4m½­ …[ÝnD³A†Ç4øŸžBç窚w][U‚Ãm™‡)?M6%ú7ÈF+ÌñÓ]]–¢äu}ÏvÞ]%8F‚ž’ŸÓÇè]!Ð<¢¢iu6Ùã².à%¤¿)‚¶ÆÐzC§A{Š+kñá #X¹OZ‡Éz‹MdF H+ÈÅD¨×nv_ó0ÁOðJéy¿k²ÅבrN°?9õW²PâoxìHlÈ>{š‘2|àÇãñØÍô©»ª Ø€½óý…§ÉÞmÚ ½Ogß-ÒÍ`tøþ¹@œpr/í1C–xœ…±nÄ †wžÂ[‡VQ.É…"UnïÐ] Øî8iuo_':!alÿŸ¨™ ¶6­·hô¨;o6Ü[gûñ€ÔúÈNꆙbí†ÑtdõÐ÷Ú³wcF:2v֎̺Ãg4 ×:¥ —Dù /ûñ ‡®“­»a„ÇV–riYB­ôo£:‘t-!ØT'`aªKòÔ8ÀèáöíÐMÛ-°$îêDÀkt5¤X uËé+xò`ï{±ÜK¥e׋* =˜Ñ]C<ÃZè—fjà”âC…"ªÊ­u¯Ì¡TÀ–ÄíŸÅ™KR,ã6ûIÂ|Y¥_J¼Ð(õ1IÖfÂkٙΙJ „Xsò«û3;ã®Þ~L¬ÂÛ;|6ê…q–š xœ…Ž1Â0 ÷¼Â;Š“4%Äx„“:P  JÍÀï©ø·ÜrÃiÌDc”ìkÌ<Úى㜒¸œ¦Á—ɼ¸Ëª`=»Zm­R({d$´.ÐàcœÐ#ºBÄð[o­Ã½I¿Âé§3 CŸ(†Dp°;¦´e™Uåoh.üØôóXZ(mÝæM÷§£ù/{;I™xœ…]JÀ0„ßsŠ}TÄ’¦©ˆ xñIvÒFlRÒ¯o«p^–a¾Ù‘ ÇA»8ÚÐógíû8wC Ø®õž'kƒ™zǬvW‘…Ø=vÖi6n03,:ö êB¿ç‰Z£Ç¶7ÚZºÓ§T(Û–Dð/¨>“ÏþÄw'÷Fk«;cÔ33¹Le—T2I¡Xj9zy{MÇJ äÌèÍÒPÉ ï$ë…WÛF½ YA¡ÔŠ ´¹PËq}b„ÄgaEþ³1ýk)_›L±&d>õlŽgœxœ…ŽANÃ0E÷9ÅߢâÄq ±¨Øt…¨¦ö¸1jìÊvTŽO`6£Í{óKb 7æQÍc+mÉX¡µQ£PÎmÛ1³­n”8´ I“jPª5ÔÙ+%{-lÛ›³uƒJÈŠ–2Å„¯Èé‚—ßö !ÆF6²ÏÍZ•‰óìKá«£ƒõÉYø öeZ‚[‚)>ÄmšÉ¤¸Ã’¾ÔX _`#çðPÀß>—]u^ ÞŽ01ò!ÃÚ“³;Xv>l(ÿ‰j¼o_î~ÕmʽÀ}âPº^}¸À•|Êäød& ^ÃÁ‡mûØ=Õ8Pf‹5ÙŠ™àRœñÉpˆ‹MLK]ýÕüxÚ™xœŽMkÃ0Dïú{li›ÚŠåJP )8ýpr+í:6•%#+‡Rúßk(ôÜ9 Ìx91ƒR®")ê,W•ÑÅZI#;ªµä¨eÑVL˜8d°LZ*¦Ò¢«B³î*ò¨¸vÆ*éX“{PZà%÷1nÄ~ðÿꔥ–Ú(]ÕpS,.Žã3ÿû ÞRÌì27»ýûi÷rhÚãék³=6íís³}m›oèRã!œ!1q7¦Àžó,&{ñ`/ƒ'ˆg;Ó¼G?õW¦-Zÿ 1÷‹Ù/“ÇÜÅ4Î×Ï8„•ø`Ðh« xœ…ŠA‚0ï}ÅÞU¶mbü„/ Ý-¢¡˜ÒÆãß5úç2‡™œD±aj)xß± ŒÆq§Ý€,½ (z­R·!IÌàÑP¯‰Û^3Ö¾µºí¬éÐ;c #i&QCÉç%Áe‘4Âá«#4F¢º¯-lêÊ/ó<å,GuzD~‰a«çXd]·kq/¸Où óu?Ʋûå’¤RoÿBžxœ=rà {Nñºi$ñ'f2îsŒ|D$4[×·÷Ùj‹ÙѲFjÉXUÔVFå88«­žURn‰Áx†VRìÜQ­>9NWÄÉÎ:$¥§Å9í$ xZ­òfü[ëô{„…éëm7šgcä*µô9]ˆÐJÉcàŸ¹¨m€˜NÚïðÆ„mJÚÀISe<ŸM„>Fêû8‘;R'nƒáw.ðÓ„®—ëåÕ÷Ùº,r­ðýu¼ñA ;A%¡"môEýþ³H¹˜xœ…ŽËJ1ïùо+’žG Â:ˆx•ÙsèIwœˆÙ,1¢ŸïàX—ºÔ¡zÙMš4 yë7=9|DÃŽx#öÈ2;[VWjréÀÂ8:ãG¢-Šßlt3â|¤ÚpòZˆÅ¤}õ½6x¯ÒÞàþO€8á0¢±Üèk)¹wù7Tç+S8-a !œÖõõåñ¼>……b«Z-°K.L·ò|³]bÏõß¹ïêyY`ºS¿`ÅJG˜xœAjÃ0E÷:Åì Á’-Û‚(M^”†”‚wf4EYØ2’’’ž¾.ô}«ÏãÃ+‰:Ã}U·š´7ÄbC¾EÓtʶÚ(ç½bbß‹/ [´’°#-yÒè*ÅŒ•T¦‘ªgRÒZlÞJˆ 2…/Lßðü7ö e]+Yõ§jCPœçk)ü¯³è;È·u©€ÿmà’p);ñà¨]0•xœ…‹KNÄ0D÷>Eﵓø'!.ÁhÛÆÄ–? nO@mJõªªWf0tóDÖ¹œ×‘¬V‹r³6‚W£(Tùè`Rf'Ac%-ÙëiöÁÌ(Wib©'£~Ë>*¯—»½‚”h­±NIxÂS"ä}O½ó¿Cóqé0C¿1¤½l‰#´õv:6~†ÏÑ:´Â!­ß¿­øÛ^JajÜ`§/~xËÕԮ⸌T~xœ…ËJÅ0EçùŠ3W®yܶ)ˆ#q,"8>Í9é ¦MÉÃâ¿ôÜ“ ›µØ53ƒ?+tFMžÌ²ŒÌÞ(#G"b–~T“6|ÆA˜y¯°8­¥xœ'mýè:/­u³'7ÍRÒ`¥Ãq°[½¤ kÆnÝþÖ(%µUÚØ®dpiÛB­ü/(ÚAX\Ú}XO_¥-×kãR¾Á÷›7Ì!µKJµÔŒÔ”b9Üç"AÚÅÎïýëˆX»µ(Í] Üg\Óþ?OBü)Op¼®7ÚÓ >§ ž¼„¹S?בe#•$xœ…’ËnÖ0…×õS̲â¯ã\RKA¬Ø”=NL;ØNéÿöL¸mñ‹ñœïœ¹$"P½®ÛAuÚôÒ¨k­íëqh†±£ÞT­«ÛÞ‘Ø0Q(Й Iª±6褳F·ºo«ž¬QCÓrµnÔ(M%p/sLðmÁÞ÷;¨¤n´Òµ”ðJò&®«/…þÓ&6‹…`{šJŒK¾^üFoX DPR6RWÕ àýŒa¢ .Åž)eÃï÷A)áƒYvKàü‹¸‰Ê.¯wžÏqæ¯ÌŒ 'Ë`w:üº-´ò X)|=ÿEd&\bÀåœ}†-ÅgoÉÂx†‡4b€Ûø}÷¹\q¼›%³•µ€Â’óÁ—#ßáùø˜(—äMï Ä ÊÇÆÙǰ#Ã÷Ì` Ì‰&zÿbá/”‰ÇxÇð9øôáæî$Ä—™¥3f‰XË>Lá‘~ÄôÄŠ”È”å 1¼ââ#ÿŠÛû»×Íi¸öõЉ‹ÏTŽBuêNêOé>.˜ªÅOCå¹¼xœ…PMKÄ0½çWÌm¥¦ß)ˆàAXdeÅÑÓ’&“m MJ“îºûëMmo&‡á½¼yo&~@„¼`iÅ„¢M1OJV3Vó*Ž–yåIªÊDPJz> ñ‹‹:Bæ4Q4VYZU¥¨ÒŒ YJæIL+É }c8 'fšÿE.xÖèh^Vo=jrØÝÅ«–µô~ã”p—‰Ì$Y)’¶ÄØ¿ÆIÔ7!ŒÖwÒÜ«ÿßJ ¼ÙH×Ã"ZÛ ?õeÿéééûñëþóÇÃñ~«d4–uœ´{á•ù0âèžýb%É ñ2ŽÈq¼† 4NQ†g—HÞÁÛ­ú `®Ê” xœ…ŠK Â0@÷9ÅìÉL~.½Ç$™bÅÚ"èí­'ð-Þæ½ÑU=£—Ù)iM)Uæ¢úÈ%¸¬GÇFÁìÒõ9 G,X³%,s¦(È¥Ù¤M4sR$µ"œŒ¼ÆmëpÈ —Ÿ'@CöÙ²‡“=0u[×e ý³™ëò†ñÙ·³ù2Z™xœ…N9nÄ0 ìõ ö9@™²lAŠ Mš4y%Ñ»Bl˹…åè3Ísa´ŠvLFO>tN|?Úä1ÐÄ3. –ˆ{gÍÎU6…Çà»@‘(v³Ÿq hcècêý‰³I ßôZ*\*·ÖÓ=ƒE7áè'‡p‡ &–uͪòoмmY3/×½T…2Ã’ÃÚÀÎúÐ!Ù{`øö9,ï¢/¯ðÉ!/YOÓZ•ë s;w; zØ?/G ¥,ð– 4µÂQn5Ês-ëßÞ£ù}hacžxœ…ÍJÄ0F÷yŠ»†Ûæ¯(RQPgq7¤Ém±?¤©Å·wÆpu6ç|ðåDŠ Bç=!òVqtE+$òµv¶* ÙηN6ÛDc%Ja$¢¨”´¢ÔFm¤êŠ–såK©Q•h˜]s˜|N”z¸ÿà qK¹®4Ü]Edn†˜3ý+²úk³? $òÔÅ‘à\?¿¼]Ǧ~xº›÷æxjvðjNðçØ_Wƒ]ÀÂ7¥%N#l1–A1y°£‡nZS`S¿·Ëfç™üŽýŽôU›˜xœ…ŽKjÄ0D÷:EïÙÖϲÌ=ZRw,2’‚Ü6™ÛÇ™ ¤6Å{P2ˆÀð—VÒŒ–-{›Q]Š>å0sfÑ뢾qP0‘ôœ9£Ó>0ZŸ,NœÉeo-Ñ!OaRxÈÖŒGï Þžõ“1kðά^ô•z­E„þÕGùx”{†£å‹—€ÚYFoõï˜l(°á­Ã.('ï·§TÐ/«–ký¢W¸÷Ï’ ´“Æ^z»©_ÐS¡Ÿxœ…MjÃ0…÷:Åì f$Kv !`LÉ&´Ð6ë0’F±HbEnÒž¾n.зy›÷S23„.`°µFiëŽÐqcƒÏV“oIwX{–Å…2O”$êLƒ²q ݆Ö*KÜÔ¨0”¨=ÉNIAsS†#ã V[ƒÔZJÝéVÂ..ϱþ½÷ÐûÍënÿñ¶{^ $pi ñ0g®ÈM2xâL…aJJ§«Ÿc¼Bˆw¾‚ãÉCšÒýýé³·qšïp‹e„Í0€©Ô#k³Öª”ª–úË%§/ö`¿au‹?kñ m` –Uxœ½TMoœ0½ó+Fê±Ù] ìò¡¶R6M¤¤Ù¦JÒse`gÁ¦¶I¿Ï¶m‰Tå ¡3ïÍÌ›1V#B°yW &>O’´È£|2Ž?*Ö1KÃ2Sôc¯ç¥$_ˆqÅpÃâ„¥QÎòp“G›"Œª4ŽÊŠù‰”l£44BóŽ[3À§¿æ`QȘŸ¦ ƒ>¯P]'¬Åÿx?†¶z°¢Ø£…Qìǰ¿4KÈG¸S¨k¯ß×V©Ö¬Z‘ËœõÜf¢-¡žw÷Â% ôÄIСϼ¼„[U¢E³Úñ=:k)$¼rØ2ŒôJ=o±Xxôe§Ê¡EøÎ;Ì\ñ]8ÏÉ¡ù¶£sÍu“ñ•Û9öp䀉X±$óSøy{ÏÖÞ!‡¨¹:3ïvN·z½« žµ5±]ªvh ¯q¢:•fжáVV¢^6 ù$:VŠ"xÛ‚Êï°°0Q¿W¢rêªi@Z¨Á@ÅEK”dЪІÛy6fùåô¨”|I¹*yR.Ʋušùë÷TîL<þÙ¸¹cP:.Gè[n©ùεK· B¯i!:ó¥púª|úҎ𠕬Iç‚áj{q%ö(Kã(/Ï·Ž…ËÒ™Y£D=ͦҪ›s¦cŠ9‡‚ËCa¶¡èž{ª„m`wüíô×ÅÕöæs¼e¯®ñóaÙšžw]ãkä}ORº+zDÝ[0}K:[Ò~Öe!Ðé¯5í0… iÕäo—ô“"%×\ÿPãÒ{žÌ™xœ…;nÃ0D{žbûÆ®ÅßA‘ð³ŒÈ"AÓ…nÁËL3żÁ`æf²Ž¼HiÏ5G— IÈ7LŒ¥ kÕÃ}Â-âÂè5Zg)˜"ÁXö–K°ht[r&¯Âs®mÀo“ñŸ/ûÒ Gä>ð”Jí~¯sÊ¿ ú–Ðûv]wøœðè[0W,]ö,{ªò€ÔÆ4O´î³½òõ¼rN„=«­ÆÆñ®WõÜQ˜xœ…ŽÍjÃ0„ïz킬Ÿ*‚¦@ I[rHïe-¯mQ[2²ÜÔo_;í½s¾Ùœˆ€aœ¨Iae¶…æ¢Ö$äV×´µÎ «J,¹a& j©UJqnM¥8·‚[í”ÒÂÔª(J,„”Šá”Û˜ Í1x¸Ù#Jr}o¬ÒpÇ1ûÞçLÿ‚ìÙC9ù®‚}7%‚ï1Ì0t˜ë˜úqÃØ{K0$úòqá·ü±¼%Ý ×C%9œF‚óátŠ Õ¸ö½ CµúzÖP „™–Íû½lìàÃß?¹]ÐÝ'6WŸ[xÛ¿<}œÎ‡ËNŠ û•Yo0›xœ…OKn! ÛsŠì[=ñ>#UÝõ  O <S©·/êêMlÉŽ“Ù‰Àjc%Ei)¼’ÉÆ¥-WNPâÎúˆ‚³vª¬"‰AoR§#¡#%L”;Fií­4Â*«Ã{ž­Ã³Q?àão|‚Øßœ4n‡7¾ÀB»®<'ýkd_uÜ`ž8¡úÐjÊÇã„< tÂI<¥¶X 4ÿ¤0!åBãð»å˜ëÁ®Ÿ±ªr»$Ìeí[d¹~[)*àï\âx°_8‹X‘Ÿ xœ}Ê1Â0 @Ñ=§ÈBH±'5BÜ%N-ˆTÒª2œŸž€?üéÙ®ê±"—Â$s ¡…5‚Dª ÜpnÄÂ@“Ûê®Ã¼NPrÊZ+IãDZ¦‚Z)°`*…]ýØkݽáïÇrJ3øK8rm}¿»™þEné2ä [µ+ €o~Û×oŸÕ?Õ–>ôÏîV*:-œ xœ}Ê1! @ÑžSÐÛ$Ì8Þ%„ Ë: Þß=¿xÕßËÌ‹4‚ȵ4&ˆƒ*Øh ’I°»,›Û«Bè X´T.–)¬”´!µV wIÙÉw¿Îå÷œþ~ñðC‘$ƒ+§çq¼÷¶¿“[ö´é~¤Ï07›xœ}½nÄ „{žbËDÑI^ƒÁHQÞe%‡Ä…÷’ׯKšL1Õ|£™Ì2‘‹a×”8£G I‡èö°iôM¸Z·;uÐä.uôL–W4Ö†ì×ys[Þ<¥y fÇHÉ*zÈ}LÞáý²@³zc,joË%GkE„ÿ ©s|•ÄðÉRKçý 2 ²@üžtÅ,AÐÊvœÆAˆ @BÀŽ¿C秨·Ç À¬f1oô¸!(mµÓÉáäRÒÒI+¯ì`­tÑDOuìEq•V†V£²£ñÓ0=u* ²Ó*š¡kcÖS0]nç9W|ª_iÅó_y2z”²3ÚâA¶ˆ)_.‰™þ5%8&pÆ’üê\´T½4Ê×Ù­gÚž„x«ùšÁa#¦õzwR3g¾zD¥ï=U ð7¼çÅÕ´aDlÞ<¦ŸêJ3ÙÚà÷´„£øV¢]Ý— xœ‹1Â0 E÷œ";rR»‰%ÄÄEסÚ 4¸=E\€¿¼á½ß›ªõ*% E§~$Ï9”T’Pdžb&ÔÑ ˜Wjºu›‘†I‡ŒE„ †œf‰ÄèCNê™L:ú\›muúÞn?Þ­C= 8‚½À9#u]—ÞõÔ<ªëé–íiçeïµ½¯æÇ:ëxœ…; Ã0D{b» •¬„”î’*ÐgETØ2²ñícç™f`x3½T"j(DNXŸ3'ÁU$ ʤ R’(xÖlñæÞ9+ùžJãµÒŠ“B'“°‘KË}tY‘Åà˜÷WmжZg¸þì(Õ!áÌw±X§©ôNA6–ôm©+”ŽÚ±&·:Á¸ÿ¸—Çó´B ‹ïñEë…}“'B˜’Fxœ“MÓ0†Ï›_1Ghš8ÍG#ÄEH ŠV»p®g’šºq°Ç ù÷ØÛ–-b·],y4~æ/2ˆÀªŽ—EÂX+–l±D‘q\–bΈ(°Ã´ãmÜà@PäyY•g¼ÌÓ$+x©¨ŽYËcMž•Iºl1âŽ6Ú=ÀÛp¿ƒ4[¤cÕ’ÁëÄŸHèÝNá·èÆ)åF )¶Hð*«òf`ð§CKØB3Á¦ÆmOZ+;W²9Õ0jC¼‘JÒüE·x/­Ôƒ…Ñ“=Àu4ƒ§~ÏW|‹T—N—ås°snG#êbq’g=t²wæŒ/¤z!$æÏIñåyÈßçžob9üŸïÞl6‹üc¥[çËø•ï°¾ò\kD0_f …÷S}µo£7àäÝ®V~,>;À -ê„Õyß¿]KR¨²“þ÷Ç ª¦|þô0ûyÉsŸe 'M{¬ýi_š?*8©×C _t+´–÷ø ÿS(iã·âž¯…'ð{´^7N*’Ãúh”¬ÃlcûœE  'ðMðç¨:®TÃÅänT¸ókÌÉO" ‡PÿÒ,I¥üRN@: ~i³ [Ë¡”´­4(HM1Üm´SmX/¸¹…E^eýÚü\}•xœ…Ž;NÅ0E{¯b: Pdã|¤§'!Q@Í ÆãqbHìÈqöσ p›Óœ#ÝVE@‹qÂÎy?Í–MŒZÇ‘û‰FdË>ö£VUÉ FÃvÒÒ[×»ˆBS0Þšà†i&m­óè#jEW[K…¯"uÛî`,êy@‹žõcŠË¾§Öä_Q½•üÔà:Ò~l²?ÎPK%C¦]΃X€NH™·+,ÕÐÁG„\~«”(WUŸï¯\‚¼@¤móÄßÐ ÜΕ°[ïú¦~T¥‘xœ…ŒKNÄ0D÷>EïX uÚŸ$BšÍlAp§Ý&†L™f€ÛÁ¨E•ôôTÚD@|çÙ%”NÂÔ£ÍbÇÁ3Úè±7[l²* $ß±Mè²Ký´×Ãh1QÕ?UÚ7<ÿéãÑ„ †;½¡R]–¹wù7Tûóéë±0ìÏÇÓë;l?À’ç" tƒõ¶>nqÙMP ß>>ïa­p-[}’Eå¹­}§~ü[JŽŸxœ…=OÃ0„wÿŠÛQU‰¿êTˆua@ º°¾qÞ´¦IŒlÄ¿§AbAHÜrÒÝ£®$f¨Š{¯½o¥vµ’Fz¯cݰo6Ug\å³¶âO•NwuÝûZµFõºj]mµDÆö¶ó•&jÍå^#§n¾íµ´ÖnÙ\Wg Ç1”Âÿ‚âéÊi綸/bâƒÒt©®Vyäaø»í\$äé¢ü*רEL±`Îü“¡§1 ŸˆÈãq—(‹óÄ2ŸQ"ÞC^ÈG¥Ã<žÊkñ3×j*›xœŽÍN‡0Äï<Åý@¤-”61ž}m»Hÿ–À¢¯o‘DãͽL&ó›Ýå¤è ùAù ê¼¬¶½õ­n0dI£pCµâF‰Aù^“M'¤õ.ô­ò¦×F¹®mtco”ÒE+cR^×[kø4Ÿ»J¥¼M·ù2¨õíoÔc$©ÔЖË*w*Øï’°þ<ÖŒº½4zäòm\Ì—¥M‡xœŠ1j1{½bK›€‘ö$y!`HãÂÒ¤^í­¸Ÿ%ÎrÀ~}È2Õ0L_UApp"Æ`}á¢`’“ã¼·œT}1W½t ›Ñz)’0§ŠÊ8a¤¨9Ó¸GŽ.E÷>Õ®2-õò€×?y‡ÞżØ'Fê²Ì½ë¿fsxžKëÐ+pkç;0ä¹C-ðþu<ýæ¶ê÷\oWØ||‚wC¤íÎü³lFi’xœ…Ê»Š1€á>OqzaÉídA°ØfAÄÂNr9G#ÎŒd²øúŠ/àßüÍ× è9³f㇒%;嘴90ÚŒK$_¢*âM–’U  6ipR'4)¢ )HÔ‰ì` ‹øß¯sƒÛLíëÏ6 ´UN¿™‚•|'ò<޵wú ÅŽâžµ_a¬ËR§ ì·ÇßóßöqF¹u*P'ØÀ*ãüxweB(˜QxœT]o”@}Þù7ñÁ]–a`)Ä[ÆÄmԶɾ™.˸Àà|´î¿÷²ôck´mÊÉ0çž¹sÎá:ƒ˜ñ(Œ£«ú(FEXeQœñ¸L3!‰’‹T°AìdIU•¼ÊŽ¢Eº £"…L–Y‘…IT`œÆ¢fÒ»FpF÷ðf|¿‰Œö2žÀ«Vê®SÎá#0öÕ·­À©r‹^D©X þòhVPìà§F³a­*ú‚Xér´q²P­r;¨Õoƾ㥲J÷"¤:?älÃvã´níâ z±’[¬U‹3zxòÿáFŒ]”º¯ÕÆœÐÑÑ,÷xñ0~ƒNîG«ûM°/à´s³ š}?ñ#ü·Ë©±  TOeÑ’Íçs¶Ò•oNe‡ùŒX¬)Ùûkã*8Ùå³IûÒ`¶"#\ç¹óx çï! ÃŒdªVT÷q<9gׄ‹u—à ¦Käp«*ê wZxŽcç'Çbài.â<ŽžéØ÷û—zÇí•ÜYÒ£li¢á Ztcëõúv v©@ºlGbVРÁ× ”²éÆoés©!eÛ\)×€dŸN/î)Onh4»ä(ÿ¥½§}Ù(Úw MÁþRÑìQûÚ®µJxœ…½jÄ0„{=Åv)Ë’!*]º€» K«³‚¬5òúŽ{ûè®H›i–ùXv¸ ‚B?ê.`ãu'µÔFíåØŒ}ÀÁ(7keƒ(6[03¯ÐÊÖô}ß…¡5]£ûvVF»!¸½žçÁunöà… ü–3¼>ÆÈV™A5z”ðÜT Gë™ñ_P¼§«½íàÑ¥ú ÐÆwä“Ó4ý­°/t$3BÁ•.èaÁ‚/œÍO|OŽ½ÚŽJAÇé×È Xññùgäzé;Q>C\·„kíl9R~Pt00n‰5çó%Êwê$~™l‰›xœ…Í?OÅ ‡áOqvã …Š1Ƹ¹˜è]Ü -Z j®ß^r'7Ïr–'ï¯DðÓ jég‹Â ¶œpØÐ¶Ó Îk>6>\ Ôz`…œà9õép!÷žAæb¨ë—~¼6__Þ¡W͆±Â_tFà)® >Näãh¥” xœ…ÊË Â0@Ñ}¾"{Q&“&͈] ݈ÝKS­Ø!þ¿Áðnîæ”Ì,i‰]°¨1NLC´.9´*9Ý$K¬F±ùÌK‘à(„–7Œ2Ñ™bljÆ2 hTc‹Q ÿ)Ï5Ë×Êù!O¿¥Bm¡*²r5×yžJá¿P¼§°„Ê7_ö@ ¢KIÝ¥¿Þûî6Ä6Ú;›› xœ…‹K Â0÷9ÅÛ ’¶yi "iQüîË˯Fh+iôüR/àlf3“¢sÀ‹\ÛL—Æ•9Iis!$‘2™E²I«t)½(º1A…hˆ{Í5ž/¯¸p^•YUhŽVZEŒÞé1ExN.ö°ùi Y^ ”B¡‚Õr23 CHÉý Ù9NŸ`ÜëÃñÒµ§kSïöÝ­nB‚0Ãæ9Œýš}Ãè@Œ™$xœ}QM›@ ½ó+Þ1IÂRõC¹´—VªVªÚ2ƒiÈ šñ”M}'Òjµ§ú`ÉO~Ï~¶8fôÅçÜçµâã©hʦTjøXp­ª²ÎK®ÔQq²c#ÈùT”uAC^Öu]q£ÊŒ3ʹʬ£‡!k¨ª§„‚LÖ:÷1}D^«,+Ou7YŒDÙëU‹ð›’Ïú ßQfy•cÎZñâh°\FïÒ³‡5øÑ#iž%{œ3“—W0<‹GÛ’ˆÓ]nÛÍf%gÚ`‚ç¾uìÃ,Ûí]mXÞl`YÞ£RéhBjÝxèÂøWÏ3üd×6V©õ'Ý(ª*k"g´špe2›?V÷ÛgÁ4M·X#;šWºùF6ìH„û6ÚŒoám‰ûbÿÓØ=;¯)Ým!ï!“öÐ_µ O©¿ùôz‰ž_Y¥Ù[ü×åÞìl'LÖÞ+ 6>8ÆùñKûíü QjLσ6ÜïžG¯Ö]@‘hú—ibY@™ugºøÁ…$ùS×»â›xœ…½j1„{=Åö#íé|:77é®ÕÏÊ–±OFZÁåí£ä<Í0Ã7 "0{ò8hM1à¬i¼r£×f/'M$K6بfñ²…Vé'Dí‚’äÐ v}0±¯†ÉŽÔó,Mçmã[.pÏT®ðùoPý •šPÁ‡ì>?Ÿ‰™Þ‚âk}ü@«©VâvMR„Ä@[ª\wpJU(ôÊ…)€kéþàÖÛ¼Â÷e»q;?í[:x¾}&˜MAŸ‰3›ý¹À¸kNæR!Þi ‘iÜ1¦t“Ã/òzm¿1þâ¶tˆ\•xœ…‹Kj1÷:EïA­ßHã{èÓñ¨ƒ¤çör׿Añjv"¶8Ĭª²S&\‚ Τ¨1J!:ï«NüÄNmÂ’ŒÏÚÊ}-µ_ÎlÉh“”$É*ëIÄc޹é¯ðõ?߀JÙ ‚y"2ïû6'½=ŠK)0x'¨ÜW>“[m…ê€ÉP·lc4€\{\¹Ýž¿Ÿâ¢»DnŸ xœ…Ë Â0E÷ùŠÙ %I'MâFqYÅǺ$™‰Vh+!þ¿ÅðnÎæÖ ­w¤\¨¥Êh2a ¾KlBëÉ’9š(Šw(~~7A¾ïÔ?äØF&’ xœ…‹K Â0@÷9Åì\Òf:ù€‚]ê H2™ø6Óû[¼€oó6ïµ*.foØõÂDh“8Ùd(G]uÜ¡z‡*sç<²p†×5¸…S+>jÎÆÆŽ­ K{” ¯"õûŸÐkMÚ;¶ÝŠâ2MÏÖäo¨NeÞ4X>·Ûu¼ÏãN}*ô8Àžxœ…Kn!D÷œ¢÷‘-þ4’•EN`å|{"#Ì8×JÚ”Tªz5H‹¢Y4r¥”ɾ“…²™‹¨5%[t* ¶‡AmBY$MÙ´ÚªäP)Dm"Gë¤ö”‚‚gŽyï¾:\~í„”F:¯¼ƒ7¾ÄR¯u›“þ-²ëè¯-Ô>Ölnƒ ¬—–c…­-N ‰ <áyïßmEpý„EQxfGÝavxl±Å?ÂIrŽ‚Kf?]P•xœ…ޱª1Eû|Åô‚˜Lv’€Ø¨ (Xؼî1ff5ÂîÊÿÞÅð6—ùŭ£*XÌ)Q³´^=‰ª´XvQ²0q´.(š;ÚWhYlpÙ“žp²‚!eï1 ž“œ#嘜ág½#Ü/°üÖ ¬s³‰`¶˜bòÐu¥Vý94mK¯À/~Ãñûw8®÷À½LpÚ}¡´P¯ú†é(tåñ(ýen>™ÈBâxœ…‹;Â0D{Ÿb{Pðoý‘% %âë`“ #Ûˆëc!zF3šbÞ´#`Òœ¸UÂ{®“1šP mƒ¤`ƒÃ(„r$gO*qmà¼Çä”ó©½B‡×€^bLÆ¢F:ÏI£W›r{Žåûo@H‰Rƒ6¼‹yYæÖâ_]j„5tþIm×3ÕaÚÂ9?¨Ìº—¹Öy½ÁoàXò—w„Óƒ^u`Î~F³šxœ…ŽÁjÃ0DïúнŒV^I”BsË­$—^eíªq‰+G• Ÿ§?й æÁ´*YÜDÚY¡ˆœ¶œ Éx¡ÉgÍ5ÙÑ#«-VùiàSš#:)çpBm=±3Éï2Ò˜gR±·K©ð]¤~Áë_½cv»/zJe]—Öäß¡zg†´Ôt•üöm+µ pèë­€Ñzb¦Ηү y¹Ãñtü„¹/O¬eU'ƒ~P *Gë–xœ…ŒËjÃ0E÷úŠÙeQ(c=-(,\(”PB)d)K£Z!ŽŒ<¡ýü˜þ@ïælι܈  >ÅŽt&¥LçR¼ÃÞdge zDÝZI±„F7¤heÔÊà¤G?†>J«ŒuV¥d3bÞrÌ"Üyª .•Ú7¼üa”F¢U½…'Ü&bçÂLÿŠâDË5D‚áõóü1ÀOá †·ã×áJžrmóv”*­·ý–•ŸÅ­ÿCA xœ…ÊA‚0@Ñ}O1{2Ò–&Æ3x…¡3(©Åók¼€ó6¿UU1Z‘ž¢“q‹¨lÚŒÉyŸ5j`&«Ù\uoà<>' ˜$ÅÀ(9È0…q¤)ö4ðèP½á³Í¥Â³h}ÀõÇ ,‘GòÞ&¸à7“˶-­éßÑÜky/¢À»ÀùRXKæ¶£”µ›;ó¶§;º—xœ…N[NÄ0ûÏ)æi•g·‘ÐJ€8'˜ÌNihÚ”$Eôö.€ýa˲,·Â V2 ¨ Yb«H WƒJ+móNMr rÄN±cá­^½ó© ‘p hkHY †ÑÙ€RG›sÌåÿäJk'µÕ^ƒì”×5¶ÆÿÅë÷ž"Å–N ™i©¯§¶š·û¯­™î+þ¡g»«˜ ¤ÁD‡–+k'… .’áÑÛKpZvI'£9sæRá»`ý‚§?z!¥Rš iàw°P¶m!Âì5‡µE„ì{fwôHçŽÇ0ººž@6wG8ZE Ù´%ÓÇ'Aß Ó’1ì†{©„ü /+Þ<á:c;ʸá­×g¸®®˜aÉð~ë™ñ2°_Ý‘_™xœ…Ánà Dï|ÅÞ£F ÛTU¥~@¿!ZØ%%!`9øÐ¿/Êt.s˜§ÑLßE ,‹Å‰ÉEŸ4éÕað,$V;2³'â0³WíR; ³ì¢YÍäkÎaŠ3MžRJÖ -$zEGÿi;ÜšìWøxÙ'hc¬ó«F 'R±=¹wùTÛýzÉõÙ©”7ƒ8"ïê‹ÚÖs«T p8Ã7Ýr‡\c9XÂ/°$:J‡4†ÊTZß\øyV§HPÜ™xœ…AOÄ …ïýsó ©Ú²$Æ«§&zØ›ʰ‹R @ûïŞ˼d¾7/¯f" Ñp…r(iFЬÕ$­RӠ숚ãÔ%Ì*pe–)ÎɰæQ$¸80ÅæÍ£4I½H)D‡[½Ä ‘ò®ëçb”ó F¸ÚtK\WW+ý vG\àùN`"•pSÁu`s¡žNï\€²—ûº'*ýåJúJÞ-®úÒæ}CºFÿà,¤L¥µêሟ«™®Æ ²vÆ`~$o²·°ÄP±%Ð{{³øÍ¸p† [‡„õ/¸‡—µ§2¥˜ë•‡§LgxËñ‹|ß}Ax)—xœ…ŒKjÄ0÷:Eï¦åîYf““èÓ²`i˜¹}L.0oSotUðÎE‡–˜)0“ ª–e¹QÌžcqäy„®u@Ädñ,Ä"Ùf+‚Y’u‰ƒFe.3ÙÙ„ß±µßMû Ÿÿ¸ƒg"/ä>ðšIí8ö1ômh¾6M?P®K}îç5)´çë¼|œÓ¡fèºj…ÔjÙ×i›ö:™?ßD³•(xœ…QAnÛ0¼ë{´ÑF–(;¢Š¢@7¨/­¥@n).-Ö©’+#îëKY>äR„—!ÈÝÙ™Yòˆ y–•,S(Ó"ã…æºjª²ZçR …âÉ ÷T Îs½ög£_÷´tüÀ¾™¿pÓ™ xœŠ;à @wNá½ BŒTuª:vê Øj¤æ#BîßH½@ßò†÷zõš†È””­ONV¤ÑÖLÌÄêò2V³q“¥ƒEÌ¥ÈHä½`E[Øsª.’(Åèª:¯ˆÑðÑßkƒ™[Ÿ¸þ|t6…0¦Hp±'¦¬ó<õ.¬æÞÖ Ê‡]vðÀK…ÚÖ^Ï|¦"ËYÌ=t@i˜xœ…޽NÄ0„{?ÅöèNþ‹c¢¹'ÙlÆÄpGÎrˆ·'PÑ1Íüè+F;@ƒ•Â,žc½1äÅÇéXáœd³qǪ4$° %£Ë¬MÃ\Ä‹ ˆ‹2†ÇP èÒ:½5ôWzþµrÞæìRÊì!#ív«ªø4×:­Óo¬'om¶Ñû'sY ïT í:×v^h†\§;Ýyßz]µ¯3í럲õv¯3ˆ’6ýÚ`š.èŸuÇÙ|):WÒœxœ…N1nÃ0 Üõ nŠ”,Ùt :ö”EÅ*l)°™¦Ï¯Ú¥c y$ÄÉÎ q0£ ƒå)DÏAû ÝÄäRÖ3™XÝhç*`sNvpÈ&jí0ެãÂà4kœ½ÍÑN:*ºËÒvøh¼_áü[^AôV?xÆjnÛVDø_¡º´ú$°²ÁF²pOe¦ ”Ôûy?àQdéšãYúÊ ¤r-rœà­|õ«h9ýOîöÞÛ'ÿœÕžÿš¯ÝÃZbÝH^ ¢G«Ç“úBaËxœ…ŽA E÷œb–6&fÚ‰1ñ^ÂPkŠ ooõþÍß¼ä½V™5ᤠÁp¯-*ïûq£·8JÕbu•sЍtŒnŒŠ–L”;H&ö֌֢D7i­…{µ{©ð(\g8ÿî ånC$å>áKJKkü×ÀeXÒúäô-)Ú’xNê Ö’ o“Û8@Ép{ï| ÜÄõyDá™xœ}ÊÍJ1à}žâ.mÉäwFDB¡ w%ɽc¤d¢àÛ;âÞ³8p_«DmP.EtÆqJ¤õÚˆA…Þ[£–ƒdW)7ðV.[tš‚òíœçtì yÊXw\Ô÷:@’xœ…ÍN…0„÷}гW±-…Ûc¢BŒñ†…7®›þœB Rêû‹úÎbfßdJF„Ö¯Qjke0”uXÛJç©`’… ÙLÆTÀÈ:XD®ŒqV¸ ,;¡3V4ªІÓÏD !æ«Lk†Ïó÷¿ñŒS.y-©€+zˆ¸uYb)ø/Hæh“=ðÍ”N©¤œñ;òè=ø8â^`Æ4– <†˜p‡pœ/¾¹†¼xÖR0ÉÃ>VÁÇŽDë§þåuÐ]ÿ|¾ÜjÝÝ_¯ Ëëú­ú3¸5ùXâšÌ¼Wäß›\XŸ xœ…K 1D÷9Eïé$æâ-<@'ÓÁÑLF2ÅÛO`-Šõ zc†É:å£MÆ« ¯FƒÖR NežÆ:‰'5®È¢Ö&ë´ÁLÙ8›N>X«Ð9œ VJÐÞokƒ{¡ο¾€”>H©ÇpD¤uYæÞù&®ÃZË2Sßo@/š ÅÂ0W¨ô~Å_Ÿ;A—xœAnÄ E÷œÂËVu …HUw=GeÀLP Dà´Û—ª¨7ßOzöçF•–iEC‹u(ƒ·–ŒRÖ8壓Zœ6* .~–nÖÚ‡äðŒÔž9{´ÊLfEŒÀ“·Ú :ôÁË_¾ÂxlíºNÆÂ“#|Ý÷ÄLÿPÅ[ég#8K ŽbÀ÷ƒ^€+àgM¨µQüµQ<Žœ‹Ôªc”xœ…ŽANÅ0 D÷9…w,(_q“bGB,÷@iêþÑä+q‘âîD\€ÙÌfÞÓhpt>9GžÐÙ( ‘Lž­XœW í,ÎÜb•¬€(Óê%±÷L˜xE´`àñ±›ͳ0OÝJ…÷"õ OõÜiž¸3“ƒ{ÛcR9Ž]Uþš×’ïÎ&p¾}§-Ö¡u¿{Öá£äëĺÉô£K~hóër1/çqƒO©m/´Àh-Yrx1¿ÂáM–xœ}KjÄ0÷:Eïg£õ1„9É u·b,M+çNGQ«‚'ƒí‰¶²im7]mÁê¨V¸˜-º”3EÝypH%FNï{å…ñÖ»J66ftY§=0iÒ*O9úi ¾–ž`LòÚ¦<<ôšÂ~]§ÿ©Wër¬æ—Ççì ʼn É 2`oõüžƒÆ¨ëvžMnoQ«¢F‰xœ}ÁJÄ0E׿+ÞzBš¦!Df…ÙÈ u1«òÒ¼´'•4…ñï-è•wq¹‹s9%E«&GŠ´±Z¹`U…¶–•ñRk%„µcŸ˜) çM¦A!¥WQÚÚTu/®WGh¬l‚Ð —2NJJp·Ö=T•i„Ô²©áV¬aýt¹ÄRè_ˆm ŸRˆÃ’‰c¿»9x‡‡®=Ÿ»·ãs{j_ºv ‰È“÷óˆ’÷œ<Å+Íà–øáaJpL«+^9¼.Ã@sùÁß'ÊÃþ¯fû;ùÈcÚA¦ûƒZ¶—xœ}Š1Â0 E÷œÂ;ÅIÓ8bà&nâB‡ºUšöüTB¬üáé=é·*Öy‹ä‹¤K”FïȉC)ròÑ3"få*Ú c_¤ï9X ÙÆ„„8°—ÔGݘ³á½½— Mî'€H% ÎÁÅž3y™ç©5ù{2Ï}^áºM‹BÙÚùÍú’ &ÞÖ:i¯°é×€µÀñ«›ù½,E9˜xœ}Ž»nÃ0 Ewç> Ù–m%ºwïP™q(Cfôï+-н^\-D0Œ6vGKÁ£a_Ÿ!PÇÌÎ…ؘC˜š ‰Òà#nÄŽ§™ù`ú¡·<ÛÙösd_E=7x×K. "pªç ºÎYw0nêáÙÔ4!ßnI•þ…š'Y8ï…Z Gø M«aS”ˆ%n¯;’Ë ëÀÇ&kI¢ÜÂ;CRH[ÅïøÍà |ÉW’`\ð®{¯‚,kÉ)‚ÿ„%yñuóŠÚþ^uÜ]…Î$?m{i“¿Û/­&nÒ• xœ}Ê1!@ÑžSLob€…eHŒµ…±ó3è&+kÈXx{÷þâU_‡L”Š/l1Æ)NÎJi9ͱøZ|žœ µÍæMCºBÀX‰J²ˆ¡U”]Éä()1±'ÛØ±¡>·Ú;œvÎàÌÖc„ƒÝ3u{½Uù;™ u^tв.ý·ûê6†T]¿Gó†9°• xœ}ŒA!ï¼b¼i¼0 »‰ñhŒ¿`Ø%QÖL|¾¼À>ô¡ÒÕ½‰€aBŽ2bJLZd–²tB?ŠÐÍêÍMj²‰²ødȬ ÌDË„Öj™œ9&TüéÛÞ × —QW@tÖy=éÎzDÅýõ*½Ëß‘º•/<÷µDÖÆa©>9kãšž¥®p¼xìÒÖÃIýe>ŸŸxœ}ŽÝjÃ0 …ïý¢7û¥8iœ80öc/ ÄrmÛÁVÓן³Ž±« !8‡OâL½”ƒll×M#ŽMkkÆq@«»É˜“š”îÛIÊ^¬˜)2ŒÔ‘¶Dí0KÔƒêqÔ6JIÕIMCo^Ù¥ #¼ÕñM£;­[-Oð"k‰9…à™éßø uÁ™à°¦Š  ¬ÙG¶ða](Ô·}Š,ža³÷Ð>š «&ðØ!ƒM9ÔU¸¦Î&r¸‘Xü… ±«/?ÿ±×8ïÜ•]p©ðë·2oΗ_¨ç]–%Ý(Åà|“—xœ…ŽKNÃ0Eç^Å›#ZÛIü‘*$„„"`ÎósbÒÄ–íÒ²{àNÎäé¶B5vFuÜpI½qȃAÒãÁk#qУñ*(–]¡­µ½õÞŒhEP~W†nD‰½ñVK©7VpÁܥͩÀg¢2Áé „éµÒÚpÇ÷1Lë[£Eöoðþò(uÜ1 -Á5•Òµ•ˆ Ü9NÛú{3Ÿ] ©¬õs¬pu•Ñ-§JÆoh3Á|Q©q¯Swñ±Ýg‡‹›¨‚Û<Ê©4ˆ¼¾A^¦c§”’ö(­_„Ÿxœ…ÁNÃ0 †ïy ß8¥IG›H‰Æ ¸‰»fj’’¤“öö¤›Üð%¶ôÿßo'G"襔Æ`ß"çZ©FJQÔvØH…Ú ­Qˆ ±#ù ¦¼ku«9šG\Ôª¨zUs"TÔÉ —<†Ç@ñO—ç8—BÖ]Soà¶.ÅtpÎæLÿ Ù‹1€iŽÖ笛'reÌ6xè1‘Ò$Tùég„9†òy¦‚€< ‹×«M¿°Â@o`)°+§é¢v¨cH0Äààònÿz“ ÓÃ×B U#¬/ö¡\¼Ö¨Äþ€+¶[Ü 'ŠiMÍ&Ûû¾œ?c¾uÝÕ­cŸ”Ö=ú3§Žvš¶×È*”ÿ)Þ}˜0ÚT±78Nè¶w€½eß9°—|™xœ…ÏjÃ0 Æïy  ;t-q7 ŒJw(ŒÖm×á?râe‰­lìíçö&„Ч¢ˆ¢‘ŒkÞØ¶A…Bè¦E½kK‹¢n¹`-çª+‚Œ8ìŒUɰӺ±J^¶šKËYeò w5欵-äBƒðé1öðpkÀX[UŒwŒÃºÌQh?MŽÿge—¤%!à¤Ð4°:!í/‡$ŠnîHPŽî!y A„±OQƒñ˜æ»<:=4àK›½­÷oÇçÃÇûÓËåx>máup &9âµ’2d/Ýœ(üBa!ð¶pæú 7Ÿ’S_äᣳ¿ð3`ÖÆÛAz”=BÆ.aC~c²ÿmñãxí–xœO»nÃ0 ÜõÜ24ô€m9(:´]²thZ CÚ¢bŠdÈL‚þ}e4P.xw¼;.D`ê&ïûvЃ7ÚÚÁš¦ïrVë¥ouƒ½˜±PbÐØé¦Ó¤P¶ªñh{k%vÐj½Zï´‘¶5/<å%ÄNðø·Ÿ@)+[Ùvº‡YGŒù|Ìôªøœ29ˆaHCÎÈÀ´”lŒÚ ñ2a:ÑKH#ÝÙí+PÙ‘˜âº•Ì<øqLVð\û!‡œ¶wùJ˜ ]C¾,p¥²T¬æ½D—6 ÕÉÅú!ÄêÇSâòz§äàx„ÍwÚÀ8aÁ±ÜÁ-küœàð~øÚŠ7âçã+ÔGpÌKXvâD_— xœ}ÊA à @ѽ§˜}¡8; %УŒãH M jîßœ ñVvU@öZÉeÍ”¤ª —ŠU¼ D¸`ŽLj«9¸ë>A,1¡õš„˜$‰ …£s>†’µ,Ñcö• ŸóÝ:Ì}‡çÅ ˆ”b L nöÊHÛ¶Ïœúw2¯R€AÚy|Z…qŠèÐõh}Ž»ùÌ-:‘—xœ…Knà ÷œâíU€ÍOªºl/Ð ¼‡( c)½}¬\ ³™ÍH3:3|°Jö&{r:—¤âl4IŠ6QI{-6ì\8/Q¡´ˆšRŽæ8!M8SŽsälIûI&#ð·ÖáÞ¸/ðùÖ(å¼q³ \䉈m]Ëüo(¾ËèX Tˆ­æ²a½lã µ9ýÁïyÝWøyàÎýC¼ªEדxœ…KN1D÷>Eï‘‚Û3턲c8@·Ý†AÉxdœœ‡ P›·¨§ªÑUAˆ$8]¢Ï*,„²ÍuÅ££V/ÑÜu Õ‘§PË¢yj>¡Ö˜<%GDS"eÕ†oã«uønÚ?á寀âô’ ðdgLn×ë6†þ+šs)ðþvžïÏK\ t0\6ÙeN@jµô¦q^ïŶR1—!xœ…PËNä0¼ç+úÚÕ`'ãLFBh9pXí®„€WÇî$~Dngfçïé.œð¥ewU¹ªJF„®3vߣiU/›noÔP«¶1¶—íÁUƒ(tÛˆc5댱ö¢¬ÅZX£¬ªE§¤²ÒÔà;Q u°((+½”)e³fÖí6î@ʦ®»}{ðCð©L Á•‚ßù"0){s¹•ìâ%Á¿û?¯/O÷?¿@Ð&'p Dm! P&¬tLñÒB_È»u÷IXi»ê<.a_ÜìŠ H,a·½O£3Ñ;&¤Î2Øí?E &}Úœ1˜t`Ek3ý¬Î“3¸5G˜çÔgŒ«¬ò1½V€h×h=n2FœzRO˜OŒ8»2Á¬ÿ_ÉkèçËÇ -‘¡\âêï9y1}È)áxú±˜âw<¸(x|‚ùm¼ijq<ìªwÌɱ¥—xœ…1nÄ E{N1}vWÆÒ*Å*)¶HÒ䃂Áœ(·{‚L1iÞÿ¯Dp\ÒI*µ-ÆÉ!C*Í#—vD¤ŠKÎV ÙuÁÔ@:ЈA,©•LX«èÄ›ÔÂ% aÆ™³Ù}4Ÿ t‡…ëc?¥LÍÝ¥< }ˆÉÛZÃ0rOµ¡¶5¤¼.öl²í!!lý×m¡ƒ:ÆÃRtù=‘£"Üîïo/¯P±µþ¼À§<ƽÂOhRN罄ïqí¥û×Z‹é2¼?ï™[“xœ…Ž1n!D{NñËX‘">]¢‘ë49ÁÅkV,NäÛgå dšiÞ<Íè"afÂ䲕)Á°öÉÁ‡ a*˜5{û’Ѷ¦iAµÀK>ûßâżϛo7 è8,浯I xœ…‹; 1ûœâu‚ìÛ|6ÑÆÎ ø’¼¸A7+1"Þ^ñN3ÍL«Ì t$Ö6Æ'ÍÉrÒX+1Ä4ô¥ó6*q§Ê¥Rè£ )0É$#)é$oÆd\ˆ ‡ÞR—=Û8W¸Tú^ëŸ6€ØY¥‡AkXv_D˜§)·ÆC1Îe~V8îöÇíᯑ Ür¹ær62œ}nø\¨¾Wâ#AÞžxœ…Ž»nÄ D{¾âv[dµâi°¥ˆR§I›ðeÍz-¸–óù!_)¦é UDPF'nUpÑh/ÇAèQ&©Õ Ý„“NA§¤Kl÷ ">!*åœ'®å6©„^ç%çf4ƒ‰Ì4oO¿Âë_¿Üjk”ðÂ{XÜÖ5á?k5Ê:½{‚£aƒïÁÇ¥bÂ~+ö%¸ciG¸Â9ç8CnåBÐŽ}ß*áÔF3Â'Òû×È.Wh¬~AÀŸý™c& ¹KN¼Tìª\îpïÜýƒ\³’xœ…N»NÄ0ìýÛ#޵8‰„(%¢á¢µ½¾³.±#Çãï1HÔÌH³ÍΣfP#;Ç6oM?`oŒ’f°¡‰%ù) ä ƒØ¨pª€Cð=u#lÙt‡©Óƒ Qkb×7JtÔK.p.Ô\¿ç ¤D¥PKD¸ÃáòºÆZùßGQøþ3—+ü•|$¡åÏó‘>â.5$ZyßÈ1¸…ö Ø/h‹ié ±BÍbž“m…Õ?Ó B¼ñöˆ‹‡œ /¾myãúüþÔ:^c:n-·¸“ø«˜aœ xœ…‹AÂ0 ïyEîHÈŽ7–Iˆ =”V!E<ŸŠ°i.³£«zÖJc2 © ¥Ê)·FPBf*9¹­t}ÏFÌBNV'«£bͱ!KF>ÀP«¸²ÇÚý½—ãuùéê!À$ÅŸà˜»­Ë2¡CgóÇo]ßóº¿Îî ²85xœ…ŽKŽÃ ÷œ¢÷#Y€1Í(—˜t7M‚Æ6Ÿœ¬\ oS›*é&Ld)mYìf%%«³qäÃCôÙ9¯™LÌê‰Mμz'š^‰Ö쉉]œ%I&LÚ+œãQÜ^ÕÏ70F[â6øÒ××ã(cÈGQò_žM^¥Îþ åzƒ³KšeO±ì³ Ô~뎭ôŽÙ”ó%}”;Qy¶ñ¶,‹úQAPâœxœ…½NÄ0„{?ÅöH‘í]Û9 ]¨ix€“¯¹'>ù‡Ó½=–‚i¾f¾‘¦Wf˜QÉ€ÒÙ´,<39ŒÊ‘5Ñ*ÏHäÜìµ7_yïð$½9a0–Ò¨™b´†¤aœ1ˆÉ2±ð£_K…êëùgPJj‰Ú†'yD,eÛÖÞùߢð1½ÔO_ËØ#¤cûrû×ÚB{l¡dX²oW(;¼qy5Ñ„„RzëÕßÄ^îÆšcƒ6Ž»­¥‘óã"¾µéU]•xœ…ÍÁn… н_1Ë6m ¢ˆ$MWý‘†‰|8Fû÷õ™¦ÛÎf6÷ÞÕ‚qÊ#{?j1  ƒ3¨&ç¥"B­´5A[!›+e Ó8ôn2Â`0JW:È@½ʪ‘„6Æ«7Ž¥Â­âÙú¸Þ'tÂLc7ꮇ7q^ãÊýž˜éß`Òž˜§’¡XÊ<¿¼B8‘/¬{Ê Ûö˜\„ˆ+àoâi,Èɦ9ñ7„-_ï`7†\2=Ç8Tzl©’‡Hè©®í…Ò ¶^¹â§üg©VÀž8ÂÍ9Àìá˜]Ûü‰kÁ•xœ…ŒMjÃ0F÷:Å@–ýKºhV…Ü¡Œ¬™Ø!–‹=ÆôöqOoñÞæñÉBÄžLL)Ö¢ÙÏÑ”M.d}µ½3&XÖ}T¿¸PHQ[ã°8OÚs 5ÃŽl±%°®îx±…cP¸É0/ðxâ—~‚>g›£Ë:ÂÇù˜êçiEèM¦®¶; ;þF Ž+–'ÁÖvlBú¹,tç¶v]m8m­ÃÏíûëÚ©MIUž xœ…ŒA!ï¼b&†˜]HŒGÿÁ°CÄl&>_|}èKuõè"`ûdhMlxg'aÑ6úˆGtÚ-Ñ™=u„.uÀêí¢™E(¥I7D²Ó4$´Qð"Îm*¼Ç£ux¾Bë¯o°hoР·g=£b+%!fêž?PrwGoü’¹Â)'ˆ­îyäV/ê =¼BY´uU—ô€? údÒ£ŽS–ýœ”ˆÓó>:gÂÑíèð$"DUQ4Å}Uå_a÷ ÷n„ú ]÷Ë&ÓVšYá§,»‚ñèü3Äá(NôMX“3æÃ (Œ(#*nÙÒFç¤qÍ)è©Ø î˜P<†®_ß'#$ŽìX?[‰Frð œ3‡§É.zE]…UÄÄ[~=£- Hî³TšËse.™†6¤w£y$†Â.T{m‰)©q†Ï2/×ý¢îa=4ÍÆ " m¡;¥£í3z2òÇ@.„ÁÍFQõ t³6JÛ=D|‰“wòÆvü!{Ÿßë}s\º+¤þz‘ÒØˇEÔöûæ*¶†£xÆÀ„În£ðp´à;Æ¿ž¾Â€BQ®ÉL|™–”Ž8´Â¥˜}Y-$"Ò°{KdÝ(¤w—üó/ÔÊ‚›c"f{½'¢äÊH°$[ó®Áƒà»p!‘%QWÞ—Î{¢õFàâxj´ó ³þt‘ztËÒP%û‚—ðÏߟ¿æÔ峡¼eõ·Üì%.æŒNé^“9Ç-èqrž­úø‘†„0,ízàá5›Gè°gë·×žÚ‡Sˆ8®Æ_o‡âáRáãvÝËÚRÒ–Î ÅK+Œ³Ä(yF¡è ^§dÞ½×=ïR,Œƒ(Óª ¸(êr! žÌÈÁ޵t–ňôO÷¿™N€ýçÄcN™„·N_æûœî¹g2³×ñt.¤µnÞóÍÀpM(‚¦{s¾œîäõ“~õ‚bæNiG‘³ê-æ½Öòü2^Ú`·6%âà´â‘>#OyØ[‡Õl‚Ùš§Õä+•¦ú<û56 Ê•xœ…±nÃ0 Dw}‘5…AI´AÇþ%QˆÚX2dÈç'.º÷†ïî´‹€ hsNÎÓHÂ)2‡ì/—0-žebÊ™¢w¸˜»T…HLHfèÅ a I£M~žó-eg ?ôÖ:|ßy…ëáŸ`qñÖºg8ã[&¶u-ªòf¾Ê¤÷÷\© 7Ç.Ð2œª<õ4 …U¸î  öŸ²ýR÷RåjÓ¿¨™#=:°ñq[ó„:O>xœ…Ánà Dï|ÅÞzhUa,E=ö–Xð’PÛ`áuRÿ}±ÕTí©v´Ã†3Ô-ï;/ÛNS[UÚ7ª1Ò¨ƒ—d®ÉH*#&̤>¶¾>UWÊ4­•ú È›Ju­&%¥‘ZÓ.|M>á´ÝoPÉVI-+­àY–#\ÇÀLÿ¬‰÷ð |%¸QžCŠ—ÑSò»:¡ëñBâ>º}¸,™`v9Lü;Sü*¶…3öäÃ@3Ì©87Û #X»„Á® ‡a‹sp0L9]2Žó«8§í0¼÷ߘþñz™9ÂL¥9d‚]ô¥7`¼î¹Ä#ÂoZÿ÷ŸÜ51ý|’C\·:†©„ú_V—œœxœŒM Â0F÷9ÅìEÉ_“Ä¥÷˜ÌL´¶RSQO¯à·z<_[D@sŸ;¢³,S¢dLÌ¥°%oûΗèÈ%uÃE¦½õ™,¡evΘä-f#9–ÐaÀCç)•à®í:/p§ë8Oo8þàF÷N{œ†þNÑ<ŽCkòW¬ÎÃî7©u?N ȼ™¶`“Ë@Xë XWÌU`;ǃúœúH9–xœ…‹Ë ‚@@÷ówÄŒó†*-ƒÈM´•«sCÃGèD¿Ÿ}AgqVçĉ´1•јUÕõà÷Rº ÐkmU‚ÎsK.XÃ^8Ñáa—A$‚[¸—HÒHm@g•Xy®¼ é¾c3Nðì°‡ÍÏ[ËÀ•T2_`õØ÷mŒô'c)aŸ66ïîYyÝߊâRŠëñ|*sh˜Çž½§šfˆ AžíÒ5ûù9AP›xœ…AŽÂ0ï~ÅÜ‘Ð$žØ±„ö)ÏŒœ9f¿'û‚íCJ]‡îM,y¡ä‚’ctÖ’C+aVQËÓ¯)ŽlžÜtë ãt(hC Ã2z ‹œ1Î3%+ƒó†_ý^< ¯pùë+ ,NDpÂ#&Öuͽë?3óSJ}C¬ÏOÞn7É¿Y^\ å¢ûö®,P¼ïµ(Hn{mèÇÇýl¾AœGœ xœ‹1Â0 ÷¼Â;R;qB$ÄÎ ˜S×Q+Ô¥AB¼ž<€›n¸ëMØKÁT42apH…}P,EŠgAOjÕšgnºuÐP0NFñnŒÁ¢?ž„i ¤,>GR:ç‘L~õ¹6Øe^ëöËO®€6QbÂÉ©ëºô®Åæ^Ûc‡ºÁm;–å nàÁ|ÇØ;p› xœŒ» 1Eû|Åô‚dò`' v‚…•u63ÁE6Y²Y¿Þ-üouŠsno"àÄ{ÉsÔ>&›F¼ã˜™vÌÀj‰MJ‡a´q$#A0'JD– Žœ L9‰Í6ˆQqëÏÚ`MϹ–œ~pÔûù zŸJuž§Þå/Y=j{­P Ü…á;\Êž.mZnSÙÞ`ê H|B,™Mxœ…T[o›0~¿â¼õ²Ö!˜¦I½.•Övj»©o‘Áðjld›¦ù÷;Ð$m·‡!äÛù.ç3Þ"BVr1‹Ãyš'YRÌ¢,-#Á'y¡È“4fIˆi˜-·¨=LÃ(Ë QbÈË0)E8 g˜O¦³²À§ÓBLÓÓ4௅ߊ7ð¥ÿ~…I˜Eó$ ³9| é Ó4Ò{ü϶àg+¸GhŸ*oŒrc%sÓá–{ð¢0œ†édÊÎj®+tPZÓÀ3Z'Þ®ÇÔ…ê~ çN„º+|Ù@6­Â†„rߟ,IÉp„­¸§QãhL¨Âè=?T¨ù3‚ÑxÈ*WwW0c1Û¡(eV°%Ìêžrް!# é”— ^6D]j(8!J¿ç@#Ò– 3¤ÉJðÌUG›M =äk(Œ.eEÕé|nŒwÞòZ^C¿}pƒþôþœélA²ÿ¢°8ùu±<»½¹¼ú¶\@Qcñ´ÉÊæÀ|®V|í 2o¨ƒÜžDÿþ»ñCwû±ôïXô@oê°>¤³ê¸CÛ·îB²¼9=»½þqò°<\.–Äò½ñÒêÏ!ToeU¡¥BõlÉú.ÅĬy ¹S#ÏöS*Üî²ÀçŸ_`‘ÉaèÉÁþfƲ,SkúÏfN¥)¼J§õ [“öÜ ¬ð]îR§ èÐÃ.ײÀùùz¤Èïæ kÒ@¨›!xœ…‘ÍnÕ0…××O1K"õ_rªbˆ°(•Ø¡‰ã$¦Ž'Š'\ñöøÒVb‡^xÎ|sΘ÷ÛVN}ßù{éZgd?IÓvN»N÷“ét~T£Øp™A*íÛ³UNjc­5¾3&X¥z+ûs§4Vy}Ö^h‡Ÿ W¸»Þï@É^›³rNÃYð´®‘9üG&¶9Àö83Q*7)y¨Í20–ÒJ§LðaÁ<‡ÓN+ü {‰”Ÿë²1ûtŒ.´?Æ<îtä0nÏù†c†˜ÿ>Lžò+ú` SÌa¬E>‘ÇÔ¬¶Nü¶Äe¡#é`LÿH”çW¯¯‡PÑ11T?åwá°ÁKõ_ÇÂK¹úyêj–ìKšàßÈ –Ê 8TÐ(ª‚—¥D—+gKÈík¹âô©~óûûomãn¢q8}Fÿõ¾×E7ºqâô%ðU š®ÑO’?ÙR¨(‘ xœ…Ê91 @Ñ>§pg1“HˆÑS Ñ;‰-‚fA£pàüâU¿¯"@ʪ2ZÉÈɶ*iÌd©hdhÐÌ‹W™;ÖÈ,°T‰Ñï´‰4©1[›Õ`øÝË Ï‘'8þ<Åä%ç6øÍ”ešZïòg3wY›6©ÐÈï6VXf¸¾d>ß.[¿óûæãag>n’<¹’Xxœ…TQoÛ6~¶~Ž­ÝE¶%Yî‚©—¢ºnHZ oÆIôÃãѣܵ’µ®9x@ÞÀ:Ëò¬Êv)À¾C}$­5=<‘uÒèË}‘HݨQл$€_áž®P©€ ¨ÅQyxB5´Ìœ«FG‡K¥Ã“t¿ƒï¤ƒº ÁÑ…xß4F·ò8Z×X9Df-JÌ`Pè9gïÉœ;ÐŽúñ…–qÕ”µ§Ÿï?ÿ€"ݤs›·Bpœ#´fØÄ7o#”Otn:˜z”µTÒŸ¹ÆGJÎL¹#ïáÔ`ÓQÚÀI*õ(™ÝI²Ñ£Jõ¬Ã j`ÅçÄŠ¦Dƒ‘:8îÏ——GÝ3…ôÙ“Þ<Œš¥àÉyݸA;àµÆžÙ´{¿„M^Ôñgw kµ ]ME:ç-;kÉAp"¶ÆXy”•:ÃTÀ@mŒg8 ÆGê[?,¹3?·­ù?CNÿâA‡ügø&´9¡À³[²`\‰#.ø‹|êso,]zÝ+B=ïX%ž$Çc{êIŽǾñÙ ˜Fív¸¿ûûËíþîðñû×ýÃr*U cø çAñ&ªÌ‚³6ð̺#Á`© #9[ãX]³/1×Wòþx…ç)÷lò<ÈüZðb¨·|™ÁyÍ&H+U`V ¡0á!ñÅWŠ$õ~á˜v,RÜËwÌ©&ÒQšÙ¹(=ßžRærgôŽ·|ñ‘Ÿ8îà*O«k¹©ÊÅÔÑÕ*-Óu™`ØmØû.Î:+LÅ2°‡ª,çe[.¦ï·è6ÁßÃB´Þã QÖ©n¯éuQŒÄVZBd䃉£1Ø~è¨O6‘sÄHÒ&gä„  Ó¨÷ÞR‚Éë†'âwŸ^•Yi;ËÇ?@§pËaŸ(.065ÛÇ0ÒºY²»¶.ew]‘øàã‡ÕÈ€Nm§'ÕÕ„q=²ÚþebŽH'òÏ_ÿMêó×cx>·ÃD¢Ï=²ŽxíØ¿{—±[¿H´‘ÃÀ¶§KC/ôùfÓ§0ÆÌu¼ ÎóIaVîÞœdHï9àªæç-ò(з½MÅ·S2ðÇzN#?cãÔUò—Ëï"td8uåôý|éHQŒŽyÖ~S§ñŽy ò_t•1-~è Žžxœ…ÏJ1 ‡ï}ŠwQ‡NgÚ΂ŠŠ‡Á«¤“t·ØùCÛÁõí-¾€Ë/_>R3´-nĽêµ$–ÍÔwJ“b$ÖdE(VL<pÒôÝ0°ªY Y2M'²›Öb°º5RàVÎK‚Sºuû7î •ƒ²JjcàJÖã2M¡þ7(&übÈ[bøf öafx¹ÿxú|{=!x@Ø2ºÈ°.1îö¦5òT±„e†…_¶™®g‚Ä7˜ê©C9׿\* V• ðÕ{Œ˜Bùi„ðáÂÜ"Aåì°@dÌeÏõï ›K#~#Üh—xœ…MkÄ †ïþŠ9ni IŒù€¥§zØe ¥Ð[˜è¸‘]¢é’_wÙB{ªŠÌóÌëÄ™êFtÔÖº¼j¸hI”²ÓZªå *9Tm>¨–Ø gr Q窦JêVêºR% Nœ—(‹&W/I)Ã%Ž~†ãŒ‰Ú^G(ò¶¬j^´îó´˜ôÓdb¤ ÙÙÏŸ8ûÅ)8yk7w0qG@HŽF3kâ zq2ï í'œÏÆAÃ6{”‡·¤ÍxW@¥n𢟠Rˆ SÞþõ°ÛõÏû÷]ÿÒÃy4r˜"m)H¶K÷l¼èƒŸ~™!¬!Ò2Æœ€Öþy†¿è†?$8)ì ÊCéçO×FFf ÓÝ;¯¯%#¡JƒÒÆRH™RÜ4ŒŒ}{L xœ…ŒA Â0E÷9Å,A’iÒ¤ Þešüj¡mJñú/àß¼Í{_@E\?!3‹í8$ .³¤a䀺‘û¡Ø©tÞìÒ°)åÉ#º­ Ž“ŒFø>$/,¹ô…½ yë³6z49ªÛwr6±qð‰.ö˜Éu]gUüÍVi i%ÅKi:Î÷º,§3égθš/ =ª˜xœ…‹ÍJ1…÷yŠ»W†üLÒ ˆPqSÐnjÁÜä&N Md&c‹Ooð<›ç;_[B€(ܤ•U$Éim5EŽ´ñäl4ÚrG3I˾p ¥Ÿ¸°4¯£WÂŽˆ|gŒWÖr¾óãHJJ&2ÜÚ\˜C*?ððW ø$¥™„²pÇ{˜¯—Kj-ü{d‡âóFrêÂ:Ì"à7¦Œ.hÖyk@õZàŠKIåstµoçÃñíãuÿµ°sI·ŽÃÀöy­ÐÂÚu/©l·{8ÕŒKêf!8†ötzØ/»\[N”xœ…ŽÁ Â0Dïùн+’m›6 âÝ«"zÝ$[ ØDš(â×[ýç2ï0¦Î"À=i=DäÛΉÕä´õh­˜®¤ÖˆC£î7Z_¾^áíã¶+ç²ìgñ É›U:•xœAjÄ0ïzÅÜœ‘-Ë6,ùDr#yd‰õZBšÍ²¿!y@úÒPtÑR™aÕa ãìVHéí2óäÜœžÑ &x7O¨ U>HÛ ÙÆžµAÛ£›Ñ2k¢Là1XEw‰¹B»²ø—ß~Ó‚ê~<£|¾Ý’ÿcª>òN55ˆÔ ´´~ ¤Ú³½}‡ÖÅWhù~¿¯ TJÍ¥&ÞŸRŸñ7–~@¹n­zp9K“J¹^Ó±A>àï©S?~*\•œ xœ…‹[ Â0Eÿ³ŠÁ_¡äĽL2“6`[MS×ouÞŸÃs{cÏѨ¬ IÌÞ)W”3£4I{2¤ƒGk“xb㵃Î(Çb 9–(úì´.œUNLÎ)C@–RàÑç­ÁÔð|Ý~¸ƒ’a”Êjoá*ω¼-Kíÿ†‰ê:B©†¾A~ïÐøuÔÆ;\¾v&—è˜ñ¸™@çžxœ…ÛnÂ0 †ïû¾ Xz-âU“Ø4êQ‰ ëÛ/t»–[‰ÿï‹,òú\!‘fUZSqÝ(m S¡b]èòŒÊ°iªlÆ@£Y³&E—Æ•Øh§j£™êªÒ–lu^”—s†‹´S€GÀ”ºn幪/*ÏëBÇJ'³Ó0xúw0³(¶…e†——Ì4I”€óqî1X°-ŽЧ,;¦žlœìôå£Ðh &ŽÞÝdé8º­sÄà<Ãàcôããï|ò-VRAyr<ñÝ`¤7ØSïR0Q®qŸCçèyjoà#øÑö‹#·ì’ñ¹Û¿_~…°‚L°D‚-¹Û':æ- ïÅ÷ÞLƒì{Úþ¶ˆ(&”Yá•61SH´ŸëDøØz—xœ…ŽKNÄ0D÷>E/AÀÈœ‰%ÄžWhw:‹Ä¶ìŽ`nŨMÕâ=©¤1O6²'¾cì74;'ãŠd´rš­ªØ8 X6Œ« ƒœÏdçÕâ°ƒ¸,nqq ~š­ÂS¶ÒàÖpXoõF_ƒ6FûWxÒ#ŠÊq$þT„Bœ¾“lK‘. ëKýºõF@æ÷‹RŸ­“ÀÚÊǹKª;CÊ´Ÿ=•ü<&v†~ïÂlŒ ·Òî ê¹ïdPêaÃZ9w(>ò8™~/ê¡Öc˜xœŽ±nà †wžâöV l‚TEêRuèPuéŒáPbpáÜ&o_¢déÖ[nøþûî§‚½B:m”š„’²×Ã09®¸á¢é<7½1œ-¶`"0rÀi°Fb¯åÎëQu~ÐF»vªÍh™])ä5Î9ðtÛ{\Z*.%<ð6ÌåyŽDø(û ˜Àtǘ05=l—ºóšhöÐz,“;­þN[y;_iœX$Às¬T2TÊ Xø±%]•,Ak„¦’ç»äJþ>/MSñ4m{‰ç[ø-#¼æ’¾Ö¦‡çJÅ&ßðþËñ°í”fÃ~&vX™xœ}‹Ë E÷|{£ŒŽÿ ëXÚ\ø÷bº4‹Ì97¹­ñ`B.ŽA%Ÿ‚O“S¥&IÛ Œ‘mX(7.Œ²JHIÂM"* 5’KN&a­cøl·µðšïüÒוKáŒñZ8ËO¢‹ë²Ì­Ñß'V‡JlôÜáÌë0çÔóœ0·Çëg´Û¹·Žkœéú {g4L™“xœ…ŽÍNÄ0 „ïy ßA(i²N+-û*Èiœm¥¶)‰ËÏÛ*pbžË|3– F{º4:öÑF‹ˆ¹M Ãeô†í`µ%µSáM ÔA_º–ëzJ]4H‘ÑŒH#ö>ZE‡L¹À½P£®§ÝÎ5íµ÷t“óºÎ"üoP^èdb(üzÌ…×ïwR› ¸=º0 ä”^$o†%o÷ó¨zì{.òT¡æ•¡~VáµÂû,S«¸þi˜èí ?ð“úº©_œ› xœ…ŒA E÷œ‚½‰a€a˜Äx‚^‚ÂP›ØÖPšx|=€ñßæ¿ß›ˆ®%zv\Š“TQ8ûâGW`†ÄÉÅXˆz¥&k×Èä|°>;‘ÈG %bÀ±0º­JGlMO-Öí‹»CÞ! úbΨ¼-ËÜ»üªc= ºžŸÏm~µµÎï«úÆ:)– xœ…޽ 1„ûIxœ…ŽÁNÃ0DïùнUTÙ±ƒm !E*‚ Ú”@[䨛6‡Ø‘ã"UˆÇ-ÜÙÃìefÞÄ€¢¹bÊ  RrKÉ5º5¹æXHNW¹ÂÙ¨ºŠ eQ”R*˜í×Är4ÊK‹‚´œ´¬Èô!î}€]Ð)us~·@I¦(‡K’.3~úñ_cv5:= <”owÍó¶\4/Ûͦª_!zˆ{„Á‡$ïzók{¯êÇåú¾yªþdžzÞÍ"´>eŒÁö¶w;HSFÁb7A—–Ÿ_«åújU~|ÃÔ;ƒœHÇY9á0¡íŽ'ò<ûÜ=f•’xœ…ÝKÃ@ ÀŸ½¿"ôQ¥»ë}µ"BAa›Èø&é}ÌB׫ííAÄÿÝë6A0’ü’8:”R w…Aå+k¤Ü«B ®ye%êª,|Á%pt}-¬ÓÔ5J5^3”«ÂXTœÙ”ŒÉÙ‰ â[a7b¢nîÕ¬Ô\QWi3%&ì÷mŒîßF²ùè Ä]Û,’šÅíOqŒ¡ër,W7’\^l'ËåÓúáõsõ¸¾^Õ/_ÐöSth!xxÞÖ÷§Ê“u¡ßÁÑ´}ÌΙS)ûêap˜ .µþ9ã7ÿ~@;g`¾9½rÊÉ7,!r¥— xœ…Œ;1 ûœÂMœÝDBˆš.à8^Xi?(1·gŘæ5óF«””(”<¤î½DB&=&bˈ٠è‹dó¢*‹õ %qdìv˜3Ùˆž½õa«[—£“R ½õ¹VxTÚ^ÇßœmÀ\t{»axçQUþЦ}]á*z¾]`ØÚ÷µ”]ƒ‰TšÂ4²,MÌïÈ@…“xœ…ޱNÄ@ Dûý wPØÙ%ñJˆèhÑ{½^ˆ”Ëž#ÁßÝ0Í4ïÆ73H4ÅÊ-ÇÚî5bL–±)KÄâdE)\d³ÕÁ¦ŒF¨…¹Ä+ 4Jɬ"cÒ–Xr‰­roÿê|nrX×z‰xG¸Å#Aûù<»Û¿`ØWïðfþtz†vl¿÷ZovXÄmwXfµu·;µB›®È¥ûñz–N/¯á×–œF+Ÿxœ…ŽÍjÃ0„ïzŠ=¶ÂêǶ¥ï²²Öލ­”à·¯)ôܹ ÌÓ3LÞgÉhù¯!jò:,nÙæ¢ßœñΘ¸¨5¾w@ë4ÚuBo6˵ŸgÔF˜´_&ÇVÇ0)ýVìNëó·¾@ã¢Ñ¡÷xF­µ”Ô;ÿ;T”_t aÈu¥ {®áíH@já?L呹œO©§z¸Ñ“Ax-õC%‘ÁrûÎÒ9B8 o.õkS¦š xœ…‹Aƒ ï¼bïMd1iú—eY´iƒ¿_Ût.s™éMhòH^¬¶ÆØ8ŒÄ<†9…HDÜ …#&µQ“Ò1»)et> b)Æ„>E] Ï‘PÉ8£èèKm07º®ÇOO0u˜ÐZ7}¡¸®ë«wùª}9:P©}¹zÙ™¶W™á¤V¾Î­®0Óù¾«ùÅBœ™xœ…NÁjÂ@¼ïW¼[‚¼ÝMÖ ”B¢Òjâ­ˆ¼Ý}OÑ”¸Rú÷¦þ€s†™a&Ì€hw9óÓ ¢þ—þ®p»2ôC¤Žýæßñ´‡Nàý³m_í¦Þ-?`š}èºi·»õ þŸ¿d•Xº §¹º©[IÕœxœ…‹I Ã0ïzÅÜAû!‘ä‘mbYF þ~D>¾Õ½"&™ sN0))zDÒpyÔQªÀS²š\¾âÙ!Òd•",ÊHªf”EÇUF/ºð×?o´nÇPß…Oñ›PRþ xœ}Ê1Â0 @Ñ=§ÈŽ„œÆib !1r6ä»E‚¶ áþôüáM¿7U_Æ,Æ„,±B©µ áÀ#SJ¹˜‘Û¸éÒ½dÉ €b §0eI¡dà*12püíóÚ¼¶ÙŸvÎ>@†1ŠÑ`ÏÉú~?{׿“»\o~Q}|ü¤}Ýúýµ.ÓÑýâÝ5Z”xœ}ʱj1 €áÝO¡­C!èì³¥@(ºtêÚ­è|gHìâ*Cß¾y‚þÃ7ý>UaÍHD˜v¡•¦Äg£¼Æ½RÉf-!Š.á[¦v‡MD“¬g6Û* kÄÊ1³'Í)—X7ËAî~Œ :¸:¼¾Âñ¥söíìÞ«·Ñ¡ÊõzxýÉÁç/ø€©»Zë ÍOáÝÉBYœ xœ…ŽÍ à „ï>ÅÞ e1ºPú.«®IJ~Š1„¾}¥/Ð9̾˜ZD e+Æ.GòƒI¦ËˆÎuÚEK½."&dòêÍE¶ ¤³Ø Sð™b 6“G YǤ“ê“§ø¬Ó^`,ÜV_ Nã9/õíWókÚá*{•†æã®¾žB¬‘xœ…‹Ë Â0E÷ùŠÙ ’WóñWdf:ÑbÛ”4úýÁµgsçžÞDµ—ä™l6ÑeS"çɬvHtòCѤ6l²v1eÇ„¢)aŒÆòh³u’Š)ƈŒ¬ðÕµÁ½áQ]¾s£Ã­ñQÃI(®Ë2õ.j©o½±]éˆ6ìPZ]`{ÞoÓºwœgèæ‰~þ¬>g½Dùœxœ…MK1E÷ù¯k릓@Š Aª‚ ¸“—äeêdÊ$ñ¿Š{ïænι·ÎDàPš~£·Â“×ÒöÊzDã…íƒÓJêˆ>š=;ãL¹i’6:m¤Â+.¹6›­’Vð­Bô&ê( Ã¥§†›µ»Ö4D÷†[nᆷ0?cª•þÙRVbÊ åR LVÛM¥RS Eø^¿ý/ÏOûwHþ¤Ž±˜¾¨€[ÒgS3¸ÒòTÛ¢»À#Í4^ྃW¢+PÉoϧ¡c¿á[N‘xœP;jÅ0ìuŠíÉÑÏÒ§K‘ ¬¤ÝXáY2’ün’>S Ã|`F#‚0§Y%ö'3S ”[¯£²ä|bŽÚqpbÃFe*mŸ½žX©’Qíd4¢—ظ`(8/pKmðÕã‚ûŠðòÇ^AI«'?YeáIž±®kƒþiï­~çD°µ:êxlÔÏ­Nc­§Œ%Áç/ç½Ä‘ké EêÛã&>–|†òqFÞïéê wZ;T†u\×\5P ¼µ|ÜĈßbz”xœ…½NÄ0„{?Åv€8EN'±„(ÐP@O°Înˆ¥‹Å{x{ÌOÏ6[Ì7£Ù˜ar}=šŽšÞé©k¼i|ß#:ª›†g¦É“ÓÕŠG7tdŒn&K~(µ½mÛ¢qÖÔºE¶f¤žeN¼oX\w?ïjÝ™Þh§[¸ÕåÔ˜–%ˆð¿ Î2£ÀB¶šaÄž¡¬áÄéWë–.8ÃóÑ>Å ×7•dæm™Efá‚ï ”â•ÀŒ.¾ ¦ðQ\þN)BN Ã+Ó#ŠÊŸYxɰ—þë2„øÝ%øÃd†–‡·ãU®”òçeIÐh]¶Ô]¥¾ˆ#s¡’ xœ…ŒK!D÷œ‚½C44‰ñ.|ÕÅ|Òâ/“¹»Ä X›z‹zÕ¸éU&U¼N4‚ÆÉ›\ÈdyDª£qdĸÌMbŠ*¤H`5º Œ²Õ™hf—SáÑ® Ë ‡n~u– ¬¶`Ѓ<¨‘–iºµVþEÈY®¼´¥}Ör—µ?·Â<¼Ïû6¼÷£ø1ã=o“ xœ…‹1Â0 ÷¼";²“Öu$Ä_¬Ø†¶(J©êß©ø·Ürת™‡4Ä9ö£&Ö`ÀDÄ1D lØ=¥ÚÜ<ˆ2*dd4èH.y’`ɬ,©‰“µÝ—êoUŽëòÓÕ#P$Äaìý \^¦éÑšý ¨ú×fµvo©ó¾uŸýì¾+ù8Z™ xœ…‹InÃ0 ïzï‹2I(ú𢠱•ýŒ| s™ËLtwÀRg”ÌŒŒs“&4–†™¬V±¬CUaå‰ÒS»†æ˜Eu6+K5q§id.NÄeb™‰“þÇvvX»^×÷[?.DÃX | ÉÎÇcðaÒÖà˜¯þ©q·óXöõ¶AœÐö¿°_×BûêqK/.?Ç’xœ…ŒËŠ1E÷ùŠÚ4y·Atpé½T§*& i‰qüý þÀÜÍÙœs{c9Óœ´×acQù%š Éc‰ƒ4Ê&”âk‡E'VÞ™ “a¯æ}²´(—¼&Š–‰1Ì_=¯ ® GõýÁ”ôÆÙ`†/9&âz¿—Þù_Q§R.§ÝùxÙ~λÓJ…ºŒö)C_×BÐøc—z…Òá¹Â0òsÊ¢øf¸#‚Ÿ•ž¥³fPÙi£9QÏ6¢Æl¤3J;ý,¶Ð±2¸ÑÛ9Êq²Ù»Ai=娂—ÉX¯Œ¤ŒY9аó³uxôp®nuuÖ;5·<#b[×…ÿ•ŸÒçtä½W‚ß¶$h¨­tãJ—“ µúÁ°ÔXö„p#îK}”…øú¼_D(¯pì„PZ ¶Þ¸ñ±!]ź»Tm•xœ…ŒQj!Dÿ=E&,,êLï(,¥ÕÖ ã"=,Þ>’`맪xEIg†mqѰgŸ¢½™HˆhÉ` ÎcšÕQäͱUOê|Ì)Úä6²š]š`§Õ®Žœ a ^ãWÜ—¤è”Gë¥=Üÿì Œ¾-hQ{ =¥b«5‹ðÛ¡úN ÒYë€~8 M@ž<“P)¸>e¨º¶S $xåR`§\ @Ç?‡’C§>>¯êþ¢PÉŸ xœ…ŒKà ÷œÂûJ`L°Tõ.|L©I*Bzþ¢^ o3›™×›¤â#B ¬í´Õ¦Z ‰,¡Ç :£‘H½c“½Caã™')gc™1Z ^£ã £ÌN*‘·EÅ«/Gƒ¹ÅQ=~x‚ÑÉ:žnzLåcÛÖÞ寨ҵ½á#í\êx~Å.g‡¼Ä}–ó®¾n ;Șxœ…±nà †wžâ¶$ªÁ`¤¨R§,n;UêÖœál#ÙæñëdÊÖþû‡ïîË3Xm:ÑÉÆ]Y#œ³…2y…~mŽkYË®cœ)e°Î:å¥u^*%°v•B©«¹×®±\xäNV†aÉã4Ã0ãzux¬W÷o˜ÚÀ _‡¹)Æ3ý 2O}Hy$ˆx ±D¸â¹Ðýª9§4À=6°mÛÏãÏûÛ÷0yv*i C"ÏÐ×zø%ðSÚdñú°Ä=c¸ÀB”`J°Å´!•Ûžý™]™Ÿxœ…ÎÁjÄ Æñ»O1e9Š&V ”=•Òè Œ:75eÛ·ov_ sø`àøq#cuôS²É^ÉHÚ¹9šÙ5ŽNÚ4™4©$vl´183ʨuÐq VªWƒÚ‘ Î[?)«0h3ÏÊW^jƒË7x»ï”4“¶£3žåq"ÔR23ý“‰÷º ÔîÃi€[æ%o€°·| :#S¹ó°C>~¢Ò+øF¸>jèµÀÛÚ_¾ÜÖGðyõÔ>è·Št€y!HùçIü’ÈVø‘xœ½NÄ0„{?ÅöœÐúü“DB´ˆ¸­ãub.q"{ƒàíÉôLõôiF*3ıï8 NÂäˬ#š“Nц¤½1ȃ'µSå"€Ñ¡å~¼b蜡Ý5i’M}bGÚè. õFÑ!óVá³3+Á˽‚Fo¬zð„gÔ¸­káêêVBeºÃ~Ÿ>riBË[÷š¿!üŘËùQe™NG¾RƒHedÈ–J8w’‹¢í˜&nÂñ1ðV©È³úpù[œxœ…M[jÃ0ü×)ö¿`Ö²¬”@޲’6µŠ,{\¿j/Ðùæ%3¬nåàj½ÌÎñâ(hR°š´[¢ñ6y2ŒêI7ŒaÅè†Ç³×†ì‚ÑÚ<ÂëÓz“Œ¢K¶~Àw¥>ù3ÚÅèg 8 Rß÷"ÂÿÄÔ½Öþ†Zb‹£ò$鮓3¼Ë8ºdèÒ¾ ´S¨VÎÀ½žÞû‹A6VWû+lLy\>J Rê´MêªQ›xœ…OÁJÄ0¼ç+ÞÝEÒ¦IAXoò’÷²ÚdɾÂ~¾­àÙ¹Ì0Ì0Œtfð.&£=g$mÇQS Ãl4³Öi¶HÉG¼ºbç*¬3vDÞ²S4Ž'Ÿçd‡0Êq²†nòÝ:\:î­§_z†A;3úàì z‡Jm]‹ÿT\o[gx};½¿|V‚?½ûĹT¦är/õq+ A˰Êqóˆ_ñ®0[ ßz“&eYÕ Q±Ÿxœ…ÍNÃ0„ï~Š=‚€*vþ q@ˆ‡>¯«‰]ìMKÞžMAêl­<ßÎ %D@”®mƒeÑ7%Öº±…T²Uƒµ¶±®®tÕVM-N&a P•vº3¥ë¬ÖXWUmÊB:¥¤fHÖh¥î[[ ³Ð’aêùú¼€,šRµ]ÝtðPðCœgO„ÿ Eo†#Ä… áÙgÈRpý0BŸâ!“!—ïî??|X¾Á ï\óuÿ&òš çüGŒæŒÐGoÔ&Þ†ó6í„`á„à .q™,ôÁaàsÿäƒÅòÅá/f…è€0“æ‘FnÆÀ’‘³§›—ŸOÎ â*à÷2“§u3ôæ…CÎ1¡H8yÓOWã¦õºlKÅ»‘©¯Å'´;ñ!–˜–xœ…‹±n1{ÅöHd½>Ûg)¢§†"]´¾]Ãø"Ûü=( %¯4o4Up* mAò.ÏHA˜xJ’Kô½Gì°ˆ3Ü´ˆ‹Ÿ(s˜UcIH‹÷Ù–‚™XRv³·.¤dø>®[ƒKã×ëû°Å8O;|Í,Ûí¶Ž¡C£µß›Âé÷x:ÿœaí ZÖªkº·VèþÕýuož.eD™”xœ…KnÃ0 D÷:÷ÙÐÔ(rŠ¢µ¨L€Ü>n/ÐÙÌ[ÌÃØT”%÷N’Ñk"®5i§’JSÏ56l„ËÒ|tžzP‰k`ÌTVaï3‡(¥†µ`ðŽŸvn“Oë믮°`¢Rj <ãdìûf¦ÿÝóÑÙ^:¶q‹ŒÙ·ã6àü2Žõ—w6¹ÃTþÞìí>EðD–ž xœ…‹KÂ0 D÷9…÷lì„8¶„¸K>.tQŠÒTâøD\€ÙŒžæÍèfªªaK\[H" C ‘ÈBD¥SïÞ¹Ûk@n f_KÅIIƒçÂ)e¾Jôž…’ {—ÏñÜ;ÿBý~`-%~¬+«®=Á¶¦’:þˆrið—W¿62T9–xœ…=OÄ0 †÷þ oBBýn*!ÄÒå!V7qiPÒTµ{§ãדÞ1À„K¯?¿²,DÐëJ7”µ”kÔë!%Ì‘P¡Î¨¢^™Q“̸Ð$嵪Z¥•]ê²-ÒJkS4uQ}NMME‚«ŒaO‡¶üYZçªJÛ´‚»4F¢ƒ÷V„þK^‚±Ã"2è0 ÄÂÀdD휃…œÅÞÁúÙ‘ß¼>žeà›Ûde;}\äqÓ&à3 y¾Ræ%­!°rÐí< óê·K[FJoûòÁ2à&'ƒ‹±_d@c4‚z Ìá#/ääuŒ[<†ÕˆÃáݾ{ Я6Öâ™ËW˜bËÙ~êã¯fŒ„oævs›xœ…ÁNÄ †ï<ÅÜÝlZº´41&ô5 Ãm]Ý·wªÞå“?ß?ó­ÁäÐLØkÙû‹éÔpA«F3KÛá¨\¯‘ˆ¤È¦Pl ôä½ÂÙ]TopÐFÍ3ÙÎJ;ÍzFn3vC? ³·%x_ÍÇý}7J-µ–Ž\È%=Ι 2,ÔêÖ†;Äׄûñ:ÄYàE¸ž xœ…Ê1Â0 @Ñ=§ðŽ(ŽÓÔµ„¸KÒ¸jI«4ÜŸ20ó‡?½VUÁ;Ç+Q–â”z;Žâ™œº¤¢…2?Ô!xœ…»n1 E{};Éb-ÍÛ€‘ÂN“ÆMà $ÎŽ¼3ÒBâl°oN†U$AžK^ÎDà3øV÷•n;W£ÆÆIÔõÚzw×8"2ˆ½1ê„™"ƒëßt¶'[õÔ·¾£Ú`ïL_U£kÛZ$ë[…+O)ÃËŒ Üoÿ/0º«S=ÀO-O¹´,™¾iSÏ'Lp:8¥¹ÜÎÁF+Ã'dà•Öµj½xœ0¨À˜Ó<ÉL¦sHkQgÊ%¤rdZÒ9Ä” «ì 9†1Ìo“ö(Ø?¢³æXTZ%š6Yakt,ÌžÆÉoUÁoNݰH‹ˆ—ª½ÀñÃßß;( «¢ŠE8âÓ—“®À·ì£—fIÓ¸UÔÊaâfJÉîºÔâð€!þDDÇ+ÎóÖòZH½/ñò/{õ fN°7xœ…MJÄ@…÷9EíT”¡ÒéÁ£TWÕ˜8Dҥà ÞÝ Àoñ6ïžmª bébî>¤È¡¡ <ô”0+9¤˜’“îƒ6] 2ž\.îpù„"yØûc¢X„ GOÇŽ>m\7x¯4ÃóM_ ÇࢸÓñ:Ï“™þë^E Ÿ¡©Í«èá2N<ÂÔ ÙT+,ª¢ëíÚLç6’¬ËÁH_Ú}¿©=íýŸÛÀýß¡Ä<É~j½‚hUS9t¿¹Wp:xœ…’MoÔ0†ïùs@–nšM²ù¨¾$PDU q˜8“»ŽÙNÛâ¿3Φeá‘’C<~çyßo‰ ¥¦Ü6eS´é¦Üæ$Òz[Ô"K³MÕ%X‰ª«°m³hDKÚ–IJm²<ï²¶(ÒËšJêJ¤vS‹ªÊ‹š[‚ž°ås0“Óï vÊ4¨@ã@nDA€º©¹U8}h=‹´Ò’ðƸýw Pdù¿Úü–ùõ£@ܳè¢òäÇç/ïÞøúó|<5y7“ó\ì<*Ò/MÕáŒsí¤ÞÁiZÒ1Ó 8çΆå\¸Ð…xÙ°7c(\Å:©8݇’zÔq‡ ÖêñâC¼—š›IªºI Ï#pÇOb9§~‰é§¼bÊrf'Öƒ;8OC¸hÑJrñ3tÄ#扭âo¢ÿ¾PrÖ~žÂˆ÷kà]¯›-œ{rp&8-õÍá~ûðô²…ÙCì1'ûž°e[ƒŽä(`$nR2_Fí@×¾Ld8m¼ëìqÕ¯øÖ1öi^êü‚e!‰0 hhаËèÓzÖœñ¾cµuÇ…ðnß4ûàÀ,g>¨}Š0ÿ#´?Ž¿ IKu6ZωÁ?-4L5¡»,~›?ÄH_ñ𧶦çÈþ¶ ÇÀc&ÑÈÖEÞ«äÍå˜Yxœ…ÍJÄ0…÷yŠ»SfÒ¤MSßÀ¸IoÛÌ4IÉÏ༽q!¸ó,Îæü|%6¤d§z5,å(ì´(¥õ4ÙYêÞŠ¾G"nÙ‰B9L²ã“ÆeÄ~½‘HØwR(e&5*”Š*†µl1ÁeG/?þ WBõ\Œ žy³Ñ{W ýScŸÇŒ…ฮ%Æ=Ÿwg‚iã ”‚sɵÐ'€÷ ÃJ–=‰n.Ö 7JÙÅÀ\°{ <^]XÁ_çBþx|‚D¥¦e#°1%²n¸×vä{nµÜÒ†«™ØüCþ}ið÷æ—l7¬ß“çSLë‰}mTsúœxœ…»NÄ0E{Åt¼¤àG6q$DÃ7PG~Œ7ÇŽìÉJû÷$TtÜbª{ÏH‡*"=L¶7ƒšäÅÚ‰Kärô£èúAª#2ˆ 9ÛLÅL€Âé^÷ƒ&çmpA;ŽÁ¡vš+£•D.–™–Rá+™ÞÎû‚rà£^øæÊºF"ü§Æ>7oaû¾R)©½¦h³=Æ›! ’sŵ;€Åä+6µ¬°U¼Å²7¸am±d³K»G(9ÝÁî1ù˜¯0ÏšP]˜Úxg  åÐDm~~|baÏŽTƒSÇ?Úé%æß^»7µc?“¸n­”xœ…ŽKj1÷:EïA ¼Ì1ZÓÝö˜ÑÈh:9r€¼E­Šâéd)¶¥J>Æ ÙÕºXˆ\nMB•µ¬ŽÑcðæ‰“…ÚBr¥Ä Ö¦ErFb©…dYrÃ…¬ãæ«Á/½ ;|üòÎfŸjv1Á›}ͬ£÷M•ÿÑÌ•ð ˜ÜÇ7Ã9úëø¶ó Ÿ cÞ†‚ØÐ;ÃŽ§Â_ùÝü…CÖ’0xœ…’MoÛ0 †ïþÜ©ûÀ2%qâd¤k‡èŠ}d—] Ú¢b-²dˆrÚüûÑÎǶÓt`‘|Þ—¤S$‚Ù²0‹Ëj:SE®óÜL4޵VNq¡Ôóbif˜µÉ'XLæ¤ÇTª¢@½\–UQ̦Z™I©ÊJ›…—y¥Æó »T‡¿6ð®¿ßÃXÍ'³e>/¦ðJÉɪÐ46%úOZö£Õ˜ÚÝ6…àø³¥/¥¸Å)ÀDl*16øP£ßƒ‰¡6ÒÞ†ŽaO‘mðo³ 伄/1´Ý4UNúN˜ ?è5˜Ë—5ðHÐ1Aª þR8pæòè þö AM¨% Ö‹A+vß· m¤*…xÀµ^Ôœ#}BºPa¦P$Þ÷W“ø þ*Àc´ú<˜Á(‚^®#Ñ|àDÍÅÛ ë 6«õÝׇO·«›‡õýz³^Ý­Þ~ë[µItˆ{%z²œ.•+­û‚sýLšÖQ#¿ÂÑfÇÖoÉI[5²òcâkGÌ'2 £³¬gÇC–l*J \»Îkrnx&òÀ³³‰öiï-j¨jªvCÉIëÀC´÷ÈàC%ÂÔE2;9·{J×ßo®ÄÔoGLô˜xœ…OËjÃ0¼ë+ö^päµ¢XP ¥§B.…ôk©Õõäþ}åBè±{ØÃ<˜™ºjTF¨¡ѨÁp¡ÐâHÃA ŽãA÷›õB©‚è•´²'>TÚ!…å¸ï…TšŒQ²Vq¦×êòAGxÜþô\âþ€#îá·cSŽÑ×JÿÈØûlt%˜?/5çPvÁŸÓ¹™g]¡f@ÎÞäÀ‹ÓéBì’#\i)>§;/X›1_}º@u†¬O¾6Il¡Óóëñ ô4Q)­}¤6Âð©Ål|Í3ºR`Ípïй–|r¾@qy ¬¿ÁZ¶˜?ÉVt¡9艠|—Ý×J+u޵~GŸÖÛVŠ¥c?WÏy”xœ…O»NÄ0ìý«k#OÇ‘ÿ@‘­½ë8àØ§ØäïqN¢f‹)F3³3yc]µÜ·¤e‡ rÕƒ¢¦­‘¬”r”Ö}+Å 7jkBÒ-‘QÄ •TÖö}5Œ„™z°£jY ܳ‹|z\áåÄW¨+Ùôòx¨Ê ×uÉ™ÿ‘‰7“wôþxþ)êpu€ eÌÖãœNbcØèn_sŽÑ§ç5—W!¦i‚w·$H.îž`ã34ÅÀ°@ ÅZ¾oüƲÃPøòÂû%ÌâÊ÷˜ÙG}šŸÐNiÑžÁ1Ra _ \þJ^®â Yrvœ'xœ…QÁnÛ0 ½û+8ì­ 'Rþzwó~Í(€Y«&çÍYÈ |£W'+±,ž2ÂȺ™xœ…ŽÍJC1…÷yŠ‘.ºÊä¿* ¾€nešL¸‘ÞDn¢ÞÇ·Ä¥gq6ßÇጅd’œ;Ô¤ÉúlƒÞk2^£5I&OÚù¨Ä;-\˜ÃQ± ƒ>2šà”Ž>KT$­JCHFÐǘÚo'šápé;蔵FZ×xŽˆmžËü&ž;ÃvS2\=Ý¿<¾®ëº…Rû`JÐòª‰3üÑÑ ¶Ïóp¤Î¾&®b÷ðËoJ‡ÎZ…11\ŽPM»S©|#¾ÆíRÜ‘xœ…ŽAnà E÷œb–­*¥bÀR”Kô3ÌÐPÙP™I¤Ü¾Î úoñô_wÀĈÉg$OÙ{JaÆÙФ%r&™"‡³ùÅ]šBôâ%q˜Ò²x*˜r™uvŽLìò‰–ˆ ÞõÖwøYqƒË‹W˜lpç¼sða™Ü·­ªÊ?™ùê+îu@áÚ¡¶¼ÞYà2žãóQÆév}éoQ`)µU­½ (Ç¡¨Gñö~2|áJ`Ÿ xœ…Š[ Â0ÿsŠýS¤ÛG6ñ ža³Ùjµm¤IñúV<€ó100eQ׸NUÔzm´G®I,9b Ž‚ØØ¢$çÍ‹ D : ØWÞVX;‰=aú®jØ"^Ë=-ðy‚ó×ÀÊÖ­%KŽÕ†‘4MC)úg3×1n¿ŸbšwÆá©pÓ9¯a€œ`Í ¿æ\”ãÉ|tEAΖxœ…ޱnÄ †wžÂ[[µªRÕ—èЙ#FG•„8:ÝÛ×½áÖzðàÿ³?s'rÁj·h:tÅ Í6Ú\²ÅÓ)ÌÉdt“º¤N;Cð9$ ÎdOèµY0ʉ‰4—ì •>·?kÚà㯤½A?O«–R¹m[e¦0õMÐöõ;ÑÜ`0] ËCåXe\wà3ÁW[S¯C‚APÄ=8qÏ/op:X5aúµJv%ad§ƒÔ•Ÿ†˜îׯM,Û»úJÎZ4›)xœ…’KkÜ0…÷þ—tQH“Aã縴…i30vѺdé*V£‡±® óï{åd í¦^,{Χ#ÓŒjhûÖ4)Ù ¡zÓ}S–­é„ZÙ½QýP“œ1캦-E³U¦Þªºn•èTWU©ŒÄ¦kj©D]mw…\hŒ3ürÒÇüþ[Ñ–u%Ê®w‚ŸBEï-þGV|^ü¿qN6 ¥•Ø•Õû¢¸†½ÖàŸ4¡ŸnàaÿõûéúdÐH’I›,ºüáHƒŠÁØÇÍÆ:. ’6Øð4"h›Tä(äñsbS°ÁÄÙKâìV_”[4‚%–ϨÈymuö“¤Í¸ø&ŸrbI°$|•Ì>–Pjˆ.«{ùÙ~Éõ \€)¦ÍìÌ`e´ÚÙ(¥Þ³B/=StävWÑ9M~Aq¥ÎuB°d¬dÜ9põªHáÊš²q!‰˜LÔ‚¶yi¾K¹ÁÛ¯ßA.F:´R-ð¼<¾•’æä2qêí nÜg©žÁgÚCì­À×ñ9y®ƒøøb˹Ýÿ Õ3­2¤*>x>OOFÛºRæñ*~†8R‘ŸxœMÛjÄ |÷+Î[[º5‰I`)´r¢'KÔ Ç.ùû†mûÞa†a.œ‰`íÒ£Rvn%Éa¥k Ísg– {5ÉQ.ý,vÌfÕ¨­YŒµKgrN«õ(õе¥ÄVYçV^S†[±+Ö€pýSo d?™Ii=À«Åìº(Æ?(½‹[CêgB¯_“ TâA*bµ™²µIG'kUäk(½•èCŠ…r±â“u†¢SvV'ñÚË'Ãk¿„¨ŒÂ\µ3±ˆtðkði®î§=@IÐ+g®rJ,ÛûݘéoQ”­_˜v†:¹uþÙiíÐ:¬-ÜÖ3ïÛ÷&~ç @…xœ…ŒQŠÃ0 Dÿ} ýïRTÇŽc({I–CëWYèí›îv˜™76TÁ‡YbUòB™g™0öÌ\"rÉ™’q÷ ¡Ý Sõ³÷:s@F-¸ÄKJ)«!­ží¶n®ƒêò?pƸ„„3Nð…‡œl÷{3Ó‡®nC:Ûë¡ÏÓ ¶+ðÞnö Ô Œ½ÃßÕÏã§+­_ÁV…§‘5q4dm¿zro=3N•xœ…‹Kà ÷œÂûJ˜O‚Tõ.L’EBEž¿¨=@ßff1O:3`µÙçJ ?›¤9¡™qA›0e[æ¨ E§‹zRçSF¯ia46èh˜ŠŽÑ¤X™“%†%ƈT]²µk§ñºñ£ýâ£G¸é1•Ûqì"ü7TG{3¼äªjo~vÎ$\€rngÝ×iiðó«óDyR+WE‹œ xœ…‹K Â0EçYEæN’4ŸA*J' uå%y±ÔJˆwoqÞÉùµq“S𗨕Ö*S€hÓ!£wÚÊ„à¢`/,ô¬\¢s*GŠ”Áfï­qd2ÞJèŒõR)%Ãw—·×þ‡—€Ү± ߉m,.ó<ÕJC–Ž+~ø:Õ‘Û¡½]ÏÝe¸÷í©ëÙÊ):¦ xœ…‹A ï¼b”-¿b(ìV- ®Ï·ñÎe.3Ò‰ pdÔ~Âè§1ië˜u1x4e@¤0dk¢eµ¦N‹€E‹ÞLÖºl\ô#ûcdcRŽ˜\Hš‚ãRTz˽u˜{Ú¯ËOW0ƒuÞ'½£r{>«ý ×Ì$m•Û£-óáB/i¶V ´z¯¥.3T9«/RñAs›xœ…P;nÃ0 Ýu îm[þÈŠŽ½@O@STL@–™išÛWÉÒ±\ ¼µ2ƒ¥¥çÙ­ÁØ;VZ‘ÏËtžžƒ >˜‚•“B˜lÏç@£eâe\À`;kƒ_šÕ2ŽsÏ­Á«n¹Â¥bS½?áúnZºypÎÁKׯPÞwQ剿`åô}"xI¯žáÐ*érœ6-i¥\îPjÖ¬÷½ÿ»Ž'åºgϯikËó-ÃQvI¨'{‰B¢à™"VTÉ nXÓ# Ö«Dß6(ø˜<ìúøâMt3Ÿ¹*CkT$¶BMö•›ƒ'ó xxœ…‹KÂ0 D÷9…— ʧi q'v ‚¦(u{~ `6£§y#¨”3ÙÁõÖû`($Ël4ßÃ.}Ÿ:õÆÆU` ‡H‘\ˆ9Ñ>º.“÷àmâîË} ­ÂUsƒ{ÃýuýÕ ŒöA»¨ƒ“Þ£òÎC-xœ…ŒK D÷œb,—jeù¤ÊrãI̘,R@î/z{ÑÝ‹î× •’ÖÄrBLì˜{÷Q†Ñ[¥‚“Þi±‡B[Œ|Gh¢ÒÓˆqRÒN#cÒìM‰µG›sw ýõøÅdÇw(z ì1¯ëÒýŠ:œ†Ó×·D<\¡.[$h3ç²vDÌ•*Ô¼¼`/tÛKŽTk.U|ÖgH;˜ xœ…‹1Â0 ÷¼";‹Û©#!þ’:6t( $žOŸ喻9Ì"M²2™ X_½Ó‚†3岊ðlÃî3fìÊŒ*äìÜ @0¹WÅœ)ICÍVJhïy{Œxí¸Î?]b.U¸Ö%žà ècß·9ío|ûÄ¡¯­‡/Òd3øž xœ…‹A!ï¼bîË»‰ñ/´ë&.}¿ÆØ—J*Õ: , l«g‚u¡$ËS‚eçÌ.åÅg󦑂—¥:Fð•e™j‰¹J€øäC­É{d#/½õAëïëüÃ…œ q™™gKû)}ß7Uü ÍÀÞß ÒÛu[O7ÚÕí©åi¤2Vè‘ZWú™“ù rBl“xœŽAkÄ „ïþŠwoY6&…¥÷ú–§ïYm FÉöß7”öÞ9 ß L«ÌØê0(ò()š£$gÙŽFOFlX97˜g/ÙZåŒqÖ¡Ñ^™0’uŠmPÓL¤öK…ÝGì+Âí/½ÀpUzÒã¬xºž¾¬kjÿYoøÉ°áÎá–†’ᵦ¸/HÙ/R~‡íðè#_â31ù¹¿˜wJ=°û+¶Tò%@‹ =Ñ=Ô²Þû~~ =û|ßè2cl”xœ…Ž;N1DsŸ¢CI{Ú?¤ ѦpÛÝ‹™ñÈÛ q{Fp*yI½Ré&A"z,h}¡T^’¤"-•h¥aX¢«ÖyÊ®À62%!ëÙ»Å%,½EªERkÁ¥‚µ“?õ}Lx›ù´.¿x‹>8òÑ<àSǶuUù·h23sèÐïC ÓýVÖ¼Ü݃È_£3ôíX{íçM©kžYûØÿÔ—çW¸²ù)"I¤™xœ…ŒKjÄ0D÷:EïÙúY0ä.=êÖX`KAêdHNá ¤6W%VƒÓft¤t²!>ò–Œ¦´yo3†„‰H}bç*°Zfë‚e“‚‰Ñ=rÞc0¸´zo6b ðKöÖáÙq®îW}À¢7Á..›žQ©gáEU›ŒŸ!| Î¥ò…ZÙ¤œ &H­™W^¬*OR*Èo.ßöwÀïVhÊ×K‘Ò*¼°×RŸã¦þ· Xð›xœ…ÁjÅ E÷~ÅìûHGŸQ¥¿RFgLB y¦ðúõ•Ò}ïæpá\n;E³‘)#r2Ië)‡Ñr°6[L1Ø(vt>ê SJƒÀFGC^ç}tÑS÷mð‰8¢Îb9]m©'Ì'õÕÛ/ÞAãèîÎO!À ö¨T÷}mMþ1Ã,­íöÇ­–yPj-i»X }çu“a* çãuÿdùê}-Pb:¨ KÄk? U0ˆwtÆ êfPP‘ xœ…‹Kà ÷œ‚}7`>q¤ªw1®I‘çþz¾Í,fž›@JÀú®Ó¹ˆÇ0ãTŠ ¢¬™àvèÌACºÚš0E 5e.à8Eö\<”]`!%ydC—~öa—A÷ëùÃËz—@FíÃÝ3¼o[S•¿¡9Æ®Âji¡ÖOµÛµj;V±­ózmïæ èý>º• xœ…ŒÁ Â@ Dïû9*‚lÒf» â¿dÓlë¡VÚøÿÁ³sy ¼ßÌ –KQŒYYRCi=™õĉ+¤ÊEÃK6{:äJƒE¬œ«5A"å4­CNt”­4 òöyÝ`ÚäXݾ¸Ff¢~à—x$èº,wû+·Ý¡uõ&óeítyްÿÚ5|Ý >s— xœ…‹;! {NAŸ †µå.ƘÍûbï’ ä5S̼ÑUmÉ/rcA-Ž”}N@BÀ 12E2w=† Ú I©•$CRLÑÅE±NWkŠà²¢á{¼Ïn×Îóõüáe½Cô™ £}¸9#ç¾ocèßÐt]õ°Ü¾m¹÷k;V[y¨ù’Õ:už xœ…Iƒ0 ïy… JÈ!$ÆRÕ¿ØIhQË¢þ_Ôô4—M-9RŒVEs@Dö‘$xPăK"4ZÕìRòZ¡ç0EV!õNlÔ¬Ž³p1'–ë&ŒFÎúÚ <‹\Õý‡XôÞÛ‘ávýÐÄmYæZó_ÑHJ0ú‘õÝ´ k‚£–eK¹i;cô\v¨ôˆrg¾%?Ñxœ;nÃ0D{žb;Š\ñnr’%¹”@¢@­ ßÞJ€ôyÕo€éÌàCɆJÆJ¹Ú‰0âè’Ö f7ƒIíÔyHÑ{ëS­U“aŠÎ–5NÅ»„F;Uò¤è”¥uø>òBçJpÿKõdÃ…GøÐ*·u}Šð?uõõëƒ, óϬÛÁ²¶Â7¸ZṴ̂p礵耽=7áí¼¼`î´É§z¹…OžxœŽMJ1÷9Eï…üNÁ£ô¤;f”$C’A½½ƒàÞ·ªEQ¼5˜!ø¸+$­’Yo2¤H1nR‡Ä¨•d‚ ÈâÄÁmAPÁ‘ËRîÑ:›IGÌCRžvãÑ£6Ik×*}ÀûL¯ŠðüG/ ¤3›öÒx’÷Dêµkñ?uñJ³W†ÚÃ9úêß'O8ð×iØRáôù¾1yÕN «Ã,ׂëü ˆOíhoó!~‰T œxœ…»NÄ0E{ÅtdŠb¯ó°„h騠F~Œ7#;8¶þ‹­ÓŒ4÷Ü3%#‚ÁY.Òˆa(¹±Zœg>y;g\œBáq´Pl×c¯•w^pi&åÆIIoü‚\ŽJØ–ØEúq±gÃt-kÊpɺµ×ðaärâ³Tp?´a6m•‚ÿ‚ìšòèœjtPV„ˆèÀ·yï›!Yè(ºjÛÝ|ƒMÑÓ¥_OpP´Wd.Å»rkjx~ykжëB& ÜÝ VÌØ3ö7@…B€z4Ed¢¹‘½ò@¥A,ãg¥Œ®É<}á¦Rp"tº@@}”¼æ:Éžý]7}€šxœ…‹ÁNÃ0Dïþн‚;q"!.¨HE€P›œÐÚ^7Q‰SѿǢÀ\fÞh&E"Ú»Òx#¤j¸B´^5XÙÊrîQk­+Å–0RHPUÂ(cj!¥‘ØÈ²ªm+LiµöuëJÁy«­ —ÔOvóëöÏî@pÕJ­DYÃ%ÏbvÇ!%úwÈFÜÌK$xZo»Õók÷~uÊëͶ î„/«·LyèÈœaùan¢9œ%èñ› õ4 æã|óµÐBEQ0¦”æi<Â}ÊÍ ‘í¯û]Á~Ý*_'”xœ…ËKn!EÑ9«(ÉCGàæ'Yy#EQ¸‘Ü`Ë»O+Y@ÞäNΛÈRp&*´úÂÑ'GYÑ¢8-‰mH ²bñÄÎu%ôQ6錒VêÃãM¾ÄhµòèuÐQà>×ÖáÞñx]óJ.AI震³<&¨m[™“ÿ…‚V¬wìm¯ FÛN%'ÎãF©ÄpÃþ*VÐêãýg¾Ë€¼Wš¥Õñ)~ìpKœxœ…Œ1nÃ0 Ew‚[‡…d‰2 rÚ¤¡ŽlÈ rý½@§7ü÷¾5UÈ88ùQ4¦8¥Y3‘—a\DòBÁ{ÑÜ´äIpõ´ÒÀ8§°be ¢cÈqMš.ŽŸvßÜ÷êû?|šúŸÏ.Þ-ûãQÌô_ѵg…¾me†RÁîÚqo·›Ú'Ø|ʧ•۫Ô¶Rµ}¹7!ÌFXœ xœ…ŽK 1D÷9EïÉ¿ï’t:˜ÌôÜßà¬Mm^=JfHu¦3&k{µ“çÆ&`î¹4Ûz¶Î£>åàM èT£­Žœ#Ûc×èÈP ÔzŠHͱ7U¹ä½ð:Ê\=~õ£}Ö)% pÓ3Šöu"üT§@ŸÆ>Ÿœ¼l06XF½d,wõ‰ì<"Ÿxœ…Ê;1 Ñ>§pO〗Ø¢çΰÄ&R0œ´Øi^3>[ͬ²¤éž–SU>R¦B “ÄXYµ’ÉôãÏ1á1µ;\6®‘ù,„pÀ¡Œu5÷¶;†[77}Ál_{Ûèá¶Î)ߦ³xœ]Öy<”ëð)»Y‹:–²Ïd²Dr(i±¥!q½f3yç1ïŒí&Ž¥‰MQÔ)K%ûÁµÜIœ ¥rDH¨H¥¦ëÒÍvßaÆÔ}ÿþ~~Ïïy~¿ç÷¼X++;}/ œH¢€D Bið ¶êÚn¤\õ^u]¹žZ½Ø%†sÛ±ËË Õ…qÎqiÊnòÏD}6™ þƒ` .!!$&ŒµÆàQ÷Ýü¬MpÓI†w¾IѪ"I³ŒÈ -tQÝ ÕÑŸ¬”×8½Õ[5|Á‡ïäÎ_V,&2‰Pä¢ÄÅË ”}ˆÁ ^q82„6ölËIÒðˆ¡Ú înLÖÿf´ý!ôÈÔ¨ê¶èý"[¬`:ƒ1IH,›øL^©k¶¯bõ³Üº´}1z~6DmµµÕÇÓ …Œ!³ˆ0ŒjÞxl¼g´©^ß(ͯ#.‰?eð³ƒY¡(ÁŠ AÛRêµ7¹Áãk°Yx¢iÌh­ÑL\\/óF´ÖŒ+ãÊeËölÊÿ#fX>H¬˜0Ìæ\¦Päúí*/^ÔeíÛ]&…"€ä HiI4âtcœÿãZ,ïüQoÔÏÓƒ}ï—5H ‚*¢’ùƒ¦.¡é¸ÑC—¨=ì–Ñ&‰ZÚ4’ü!ï…(ÏóY¿·cÝ:]ͽç%\:m) '>Î3(Ö¢¾­V±ÍgÒCC‚ht&bвµ’Ò__ý}öŽ9'Aº5âÄO&¤Ad~¯ÌB¾[d•­Ž—¦^4?R!#L"•Ž Á¾>©W;:(T¬I&¹F-b„Ü*D4V´Ó˜~JU*…ö“Ø)ŒOP¨)Ì@ ‡¡Æ†Œ’Ñw=ÍÄšµ‘*J6M¿žx.ŠCCA GB)ërŒ«i¦ûƒbæò;?Z‰ˆ#YXˆgß’S{p%¬c­Öó¡ Ù ‰¢ÒˆÉXy¹íÆC£Ñþý.T/õg£ÄТ„]—¾¹¥Oá£énéŸ'h4³þL“B% ;ooZâÒˆºÀ÷_x£;Þ3fóS!*²51YÕ…];#-´h…­åU.áaQþbC° E¹AÙì÷µý÷‡µ‹éîþ¿ëÎHDˆBßjÞ×s_3¶›ÍØ^@׺œIî½»LÉcCÃY˳¯äRn©ÙW¥ÐKÚSÌÄÍM 'ˆ æt%vó_æ×°/õØð4õÉeB‘@}Á"t? ç}§5ZµÃ®™ëŒ“iÞJ«!(O£Ò&ˆ G5e6(òê¿Î¾—j-.÷.Rý†jÅ®ëé3ꨛ?s߀·&ɽpiˆˆŠ]| ¯—©34q v.$_ç€( 7G¢Æžé"ËÄßÉyºýÚVöá³C—‚ s4`Qå«oþzîy¡Úšë€£_ê•y'P# àÄ7ă§uø¸‚¹M©šç9®Ò·EˆA$ ³AP{Jk‘}ì±UêçÎOÙŽxþwá0N‚¹EN®" #¦LjÀùŒû¹Ž¼²ü¸ïi ?¨h¢°²ÞkYg°ûmwÕÕ’lÁ Ê7­. "1ˆÂ¤²^]21ƒ¥ï… 5qû-^#*kg…˜±´¼ÀUug~ûÖ3ÊlòrÜ]£vùÐOf±:úmNB®–óå}¯}IýßTÚ¿Ä{‰,ž$“n*­ÏÖ÷¸›µ³¯sÔUÝ£ICfÐXt"$œ:qÒKdÎõÀ§äÛ+sã•CÛ$¹HÂÜ¥TÏËiv`^ÚÓݼ’Ë~:Ì‘ :ÃKÁ’f¬Ã¿ÜJ<}YŸYÚ¢Þ­´üà42P…mÂ̾ˆuI=¥²÷ðäØøÔ¯Ü11 °ˆxsâßW•ø&Ê·´"m¸ÝGuã¬~‹ñÖO{Ð\Ÿ¤’:·Ç|¡<‘FWåHÌDL%Ëýý<wôÒÃŽkµ&Úòð»Äb” ãõé/Spo( ›Ü¼.-ûVðZsÙD°hLa¦ǾQ@›A‚âî÷è;ä ÙâË CËüHætÀç Øf…[¹°‚lvs㢻h  ü–å›Ð3Í‹é]‘àÈ×áú> Q]Ç.ˆ_ dX2#I©3µË!â±]º">¡WîøH¥§qýé§ËˆA` ›¸Ð¿Þ2^ï—7tI_™æ£óô}÷¾JŒ¸‰›“K¤ŸÒëî&4sJ~U¶Í­”(k7¨Ú •¥NTÄÔdÅ)·ã=™6?"z ‚Xfº5‰Œ-Øåá|Ï;“U¥Å¶$ê–­›+?ÅM%ê–…g‡ïW¤ä{%& ì–ª±Ëd«Çž¾ñ+¾Ð-‹í&$†¹4brN­+J´÷Ê>¸ð¬J0>»cB±B„„£™,|VµÆ ›}§ýÐuƒSÒјqþ€kºø2ˆÿåÅ}ÿý¯á…ÕN©>'&é÷ö·œ7XV‘áqg:}áòv‚è²R~{Oü[È‚AâbÖ{m5 “WôùgÑ~ìœMú5‰b#~,ÍÔmÎUŽªUÊê§ÌªvÚE:ŠÌÒBtøêÙänÐBó çxÛxˆÂGig™âå´A>ýFõ\óàNÜLµÃûÿŠäk1à-xœÛ&¶MLÝÐÀÀÌÄDÁ71;5-3'U/3a?#ó©Â]©ÉŸO¶/ªŒøËQ¿z£:?7•ãê=xœåþ¶’5t<$OÒÖ~‰µÐA•Á[±I <£О@F¿RËʪÕ…tÛSÍR100644 configure.ac'gƒd–x/l˜ Ÿ¨Ò…ö xª³¥R`ß~dADý%cñ–ªÅóʼn$Ü“ 5Ô$a¶jþžâÊZ¹v‰ÃÂ{³Tzd5c.cþx-+6#2°Ñ*Vä,û$âÓ°þ“ í¼%='áO+Î)½&—ÑBdD–dz ØÃ÷%$4Ò á=T„}Ú€³/ÔvïÚØ^>B;Ç^bɳ<†¨°ùæY³ €nÎ)·1ŠpH€òvº±'Bf^“« ‹~–zŒ«xœ340031QðMÌNMËÌIÕËÌKf¸”9çß;£O‡œlÏn=»õã¢OB«L €@!©¤(5•áÍ6ßËStÖheŸÚ7çõ2Éù”$†óF"–/îhZí àó¿ûÛ’¬g6!’‰Å fû»ZÌügO?ò¨H;ä÷õ´ü«‡ Ò¹ùù9 oC×x7míÃM7g%ÌTÍå_¡éíbqcAQjbŠ^2C£Äô€ãw Ä6ës,-õžw2îòv˜’ò¢Ì’T š«wömù2ÁHæŸ½íÆ‡<¢‚:$ Ö¥&çå3T¤îYÛ^|çû¤ß¿r6 i'½žÍXth¡#xœ340031QH*‰OÎÉ/NÕKfØ}²±ˆ}A¸Ìýïq~Åû^Ä>RÆbˆP•ŸWT´ÕNàkæáÅæ©)¹U¾¹Kä¿WŸA(JIM*MªZìÙ§]^Þ.ZX:ÉÌù½$ÓvÓ*dU9©% — iã¼ 5áÚûʾœ— øÓ%ÊÒSK€jvÌ?¸@áÞ7ûÙ|NòwXÎÔÞ°ê$BM~AjP‘ðǶ^m½¦/ï$Ÿi[žÜÖ¦Sãô IQYjQZN~9P¡ÉÆÃë^h>éÿ¶ÆI|ŽÆökse.!$¦ƒœåyI‘uRí;½£Sçü`|b›£ëi$E¥ g)¯\ý]OÁßsbî+NæOÓ—j#Ô§&%g•}ûô`ÍJ÷‡n}¶­Ø%t#^hýÍÿÈÊ j¼,­ïÉbÑŠßÔ]!¡´‰eÇ´5Hj r2Aöï_õ£ríQ]Ù“ ó,üÒ'Š T•–dæU¹Ôål³˜ ×öcÞ…^[IKMÛ ÝLpUE©©z óYÔ%OosŽ}tä3çO±¿,ÖÁ4µ¢$µ(¨fã&ôge™Û]7uìŒr~9¯fµ=Êrݶ xœ340031QHIÒKf¨j^tÖõÏêónVžé5Œ¼tý.Á’õ§xœ340031QH­(I-ÊÓË`øÐ·ÎªeKyÖ²Ö¹[f^øñÎÓï!DMFbq†^2CááÅœ'¯WÛhÿ‡ç6ÿ•ëk”^DV‘Á°ææ´95r{žTxû°h:§›¾/ûÍ„¤">)3=;µhTÔßY;¼Ÿ©7Ÿï}hhÃðíeh2ŠÂÒ4 *w5ň}âfŸl‹Ú’ÅJ§osüðYUZi^2PÙÕì뛃ӅþêŸ8'Ä•q¥Ý]d—Ççä§•ù+ \øy_çï×ÇËþOœyêB ²²‚ÄôT ²]¼ÚÝSV=Y&/ê¸íéþÄ=W—FB•å¥$åUÜôžÍh°'cñöãeÿƒ•7¼_¡ºIEJbI)HYÃêôË5»- '½–1–oq yúЉª lUë[\­Á>ï—ëlšjÚÜ,¬§­Zqâ¤n£xœ340031QÈ-ÈÏÏÑKf¸bómÕÇz†Skk÷v³=é¡+âÛ Øªxœ340031QH­(I-ÊÓË`Ødõ«W²õßšY»OÞ ÞR>Áï|Š!DMQjr|rN~qª^2ëÁys9YŠõµyl>hNñnÙíP$e)©9©% ukb¯Eèi9þºq¤úxß%±v/$ué©%@EìÎqbË=|Be®-š³j‚¡ÏÌ$Eù©y@U52¬R÷jËìYµ7¿ýý®ò¢ôf$U¥ £Î+ÔÈìöœès±.mÁ’™}O‘§&%gÕÅöÌÖ<ÿOxóËõkø‚Ú%]+ÔQÔsØçD.®·<ôA[ýáQ¿©q—$‘•–d敽zxûˆCÚÿz5cóoœ·üÑÙ„P–— ÕKScŽœ“šVr«J¢ïŸÒÂ×§Ö”óÌ?”ù§WxœMÔyPWp®ÊUå2´"GSÌè„$@VƒˆP†±`Q.CvC¶ä"ˆ• b@äv$‚-‡…V9l)Ž‚C‹VÁ‚ —rˆX Ú tw¡¿ß|ï»Þ#“HTªC$…b"[oç{Ã7wò÷ÕŠ—'² ‚ÂVÉï Y"˜ ûiæ‡JjS†ÓdE÷gî5^¾1€>ÅÙDˆ§Lú<²dVÒvµÞ­Gf{á6ǘø„„#maŸm:×Ñ93|0%ôRca°²v%@|Nøe90BXº#ú¤±Ë¢Â‹~;‡„ Iøû]ÞR3MOR«W[m)›,pqG È 6YШ3OJ¤•·ç«IÁgõ77cF(„ÁK™Ù&•¹pÒí—Ñœ{E.±å¾ö(`ñ¸ 1“ £RÁeüb{n¬eÄÏ~9æw/ác¶[aHŒ4&ø›ŠûïZ?ÓИ÷òu¶L¼PŠù$ÝØò·n6#nüìG‹òêDo<§ ‡}W[Ëù•ª°~ÍI=QØs«ÑÒ0!ÀàúxöÑß"’òqƒÖ°7'àÜÀ3p .´–J,!|æÍĪŠÈ¸åާ­F>y.  † ìÛ=Äß7Cë)Hý­Ûaì"¸ÆÇná ø|Lš ƒd>Zë½­*Ì8¶n„þô’ä~_D]áÅmÖïöz1ô–Q#…\&Ùo\ShNåý®ãWª 6-ã÷§+ A\dPu†¹=}j³ö s•í­€ùÛ#ÞŽXwŸ©œ¢ÈrR4¯DËm$óCÉJÃqJ¡#),ˆƒ„)¶Ê;â#×w·›jßët­?ªL‰ ‚ ƒÍ“CBöx(·¾?Ñ”úïXÒd:+°3biAÝ5óüAÚáRXkøÓ°­)}j*¤’Š+cÔ×4çþ1#y(]³/¬Ô¶Ê¸ü?¤$­£ xœ340031QHNÎI,.ÖË`(wZúánð×™{Ô#˜ouVv-Œ6„ªÉKÌM*Ù˜ýâ2óMêãüvSô~©ù®T˜) URPžœ˜œRÔx#B§éšxìï:ß›sµº³Ü ŠŠRÓS+Œ€jæ§§̺µõì§gz5o?\(³ü$TMiIfÈ9zRlÓ8ÔÅ¿¿v(Y´*À?bö‰ÉóEäá—xœ!Þÿ’’°ßÖ÷½y×€;ĤSdíÞmCé’³óZ ï0xœ›$6Il‚©Èe=ûùg ›ÊðYý#kÜæEáž'¹Ëó Õâ[xœR­ÿ’’5Ó.?Ÿ@Á™ÁV•ó'ñ^³d!±I®„¿Ä¦Ý(@bRåq"@wG‡ÆåÁ“ 5aŸ}L[z+ºÈ»‘h±:PòK³T¾¯O#*á`xœ!Þÿ’’°ÕÓöá1í³¥0R¿ôR•ë×!)ÿ ¸Åa³·äȳé)<}'ãï€hxœûÎõkB”ˆþͧÿÏ×-1z`©ßY8GÕ/1œ§c'+÷ áäxœt‹ÿ÷ ÷ Z7¨°Ùùô×"õÅœÒyKÁw@100644 ctype.h¤Ôߨ³,ÝÇôyÖõoVfûÎCt±‘•_Š`©š¨_y€É­®ƒ6a“:4÷ðÙÓúÖ‚ãîøÊïh/8¾“‚õ#’:à®IxœÛ&¶MLÝÐÀÀÌÄDÁ71;5-3'U/3Á(;&ÉVlï4¿ÓJ—y8Ÿx0Sv£:?7Šý‚à¯xœÛ&¶MLÝÐÀÀÌÄDÁ71;5-3'U/3¡ý·O`TâJî¯ÿ9æ[½s¾ú»z£:?7‘1à¯CxœÛ&¶MLÝÐÀÀÌÄDÁ71;5-3'U/3Á×ö€Ûµ››â23.Tº±çŸÝƒ?Õù¹±d¦ï=xœàÿ¶¶5´®ÁV$:,»d€q‘6™Ç—\—±Ií Ñ Åë-xœ;Äÿ¶¶°i ~ûån쾉:¦¡ï.x’ìd³}|Ùžæl®”•6“¿/R±q×iŒ‡³ )¡÷ï‚0xœàÿ÷ ÷ ZÛþK k[Öñä !ÿÿõ—…=îv±n ÌMì€$xœl“ÿ¶ë°i< ~ûån쾉:¦¡ï.x’ìd100644 configure.acȦ­uÞéªhëCzàE\[Ÿ^³¥J“$³^›GéÒÊÂ/*ù$ ½ý4…-³ )Ú[+ïá€)xœ!Þÿ÷ ÷ °&Ô´[äö¥©µÓäB¢o[Ìa¡ë³:=%Æá€+xœ{-úZtÃ:V‘òìî•ÊÖ ×EŽï·rЕ0>ôoó!VMVøu òá^xœûÎõkƒ‹ÈƒêMFþµ' Vö)=qnº\še¶9ŽE’þü ï[xœ{-úZt‚©ˆIUòEîæÊÕ¦³KÚÅÏZˆY6îØè¹ˆ ÑN óá+xœ{-úZtƒ £H«D´•M5)Ù©é?7&ÁñšÇùÍŒ“9ûŠë-xœ{„ÿëë5 r-zÑêv‡tÁÉ£Bô ¨k±I <ù~)Z5×.-d [¥F7™.ò¡100644 configure.ac @ÓþR†,6%•nƒW(þLø/³¥ ,—ür—)jö”'éE˜ #³Â)+/°èxœ8Çÿ÷ ÷ ZÎ"@çdŽáXö•¿ÏÈQ§žš”±nÔý„=hŽ9,ÏìJ%¸æ1Ê$É“V!( á€Pxœ{-úZtÃ:V‘v×w7|½´vdÄž‘ÍÊ”+ëË8ósó!VMVXûáuxœûÎõkƒ‹Hô’Ry™ìèû3Žºèm×#{í~î«ÍV,¶ŒøD¡à +xœ _ÿëëZ:ôŸ+/•GIOç·ì}ËAÓ100644 __glob13.c7å®Þ,›iÕÌëÕ O”egô½ø‘”ÕÙÌŠ£]³¥ ×DƒËý3Õl Î8;ÁqmɳÂ)ì×I'ï€\xœàÿ÷ ÷ °òHÝ¡xÄq‰ )~‚çãÙ®Ûõ±±Æ¥åâ €]xœ²Mÿëë5rç‹q=<|Fê±úì»ëq;ÚŽ·±I Yë]’ÀpB±y)mþòV&Ö‡IYËó100644 configure.ac\» —¯:¬Ç(i ØžÎ;40000 dbrñÔ<¾ã9D±±…R¬´É0ß³ÂìC© C˲Ï*{Ž( U` q³ÂäîWà1¡ÉŽtᇭߗ°Éb³ñúàéNâã¥9xœ3Ìÿ‹‹¶0Wö¤Eä_AC95å°‘¤Sšâ(ÿ«šð°âsÄ9ÌiçMÊ$é\£xœ340031QÈ-ÈÏÏÑKfènVUìýÚ¡£wÝÝ9ìE–Â9Þ&É –æ3xœ6Éÿúú7à¶ß~t˜š _&YbÖ²C´±‘K_‰ ²7îéäÈ’‚­_˜Ãa‘¾¼ªÕ°áƒxœQ®ÿ÷ ÷ Z°ÿßÇ{^YšÃ®¸¸¾õ¨‘n/°òHÝ¡xÄq‰ )~‚çãÙ®Ûõ±±-_¬ö_±Úx^Sw¿j–Np0°D³ò…È‚)á‚Uxœ{-úZtÃ:F‘gæ«?KšJo=¡®ü­Ìye`SÑÍ͇59å¹îBxœëfêfš`"ò~ÖÎsþûlx-ÂÝ7$Åö²IŠî™èq¶¥ Øì¦#xœ\£ÿ±±°Š¥PŒ3Í“ƒ”Èò‰5Àæ;’Ûà‚“ž87®ƒ]ÊO¥;Œ_pÃ;›ì£BIÚt100644 btree.hè!À®qc˜¾|ÊG3àÑÅ&¨“ $£S(ëë€Dxœ{„ÿëëöåýFuœ:ރ¾w^¯%C4°?²“ _<ܸqÙŽL¿“~VÑø’¨Öàˆ»100644 configure.ac‚küD=4‡·E6ZÛò‚@MÜâ³¥ ,è¥Ì[ŸŸLÜ£Eø° áê;³Â).8™é‚.xœ9Æÿ÷ ÷ Zʆ}.Õú¡H)Sr#À’°*0±n{XÄv'œñ¬5„5Ð76»ãü1ø³ýzÔã¢é€Rxœ9Æÿëëö4•½®C™S µÕ ¹ŠIyT4d“ ‡.Ö>¬LEÝŒ®ë —ýT7³¥F ÷Ëëxœ{„ÿëëö0qV_â”øµv†Y¬‘dÓøì „S“ _<²ÛàCzR|õ.u­ÿXW€“&9100644 configure.ac®ÖÓ'ÖˆJëeÀoðmÔU%K³¥ ×Q+"‡Y¯Ëúå³\¶¢ßrmñ³Â)ûD8¹ïxœûÎõkB”ˆŠk§!{Þªÿû ŽOþ|XRhEÑ^Åyœ¬Ý– ‘á€6xœ!Þÿëë°®§*ÎÛ÷œ Ë*ñjÁ ŽË¨3‡˜³Â) "~Sæ†Xxœ6Éÿ‹‹4ïš¹ÎO¾< 9 WG°b]¼‘H(øþL„[?¢KÑ»–§xkº’b‘„‡V‹Ýï§`xœ›Îÿ»¿-Ézf3"™‘XœÁ0=è]ùSÞØ®C¯YÖNþ¥×þ¯Ã"[ŸŸÃÀþozþ­X7ióükŠu†³Žå1oȀȥ&çå3ˆÍz¤ñõ¬ýs±<“ùÜ÷= Sç®(xœ7Èÿ——2ÒЇ/òþ;‰Y¢ØÈW ÓìÓU‘FÒ÷÷šz¸Zÿ?»±Kz¿éa$…“,kò–£xœ340031QÈ-ÈÏÏÑKfp YÇj%¢ºåƒ+㾚—¹S#Z¿ ]ï‚uxœûÎõkB”H‰ÐáÝ‘1k¸ª¦ÔõnXe4­è߯×ÝÆ¼|äl”#À“¾‡´“±ù~pRÏá€8xœ{-úZtÃ:F‘ÉÒâu¦S…]>r%÷6½°É›••°ù£&'è @¤ xœ340031QðMÌNMËÌIÕËÌKf¸”9çß;£O‡œlÏn=»õã¢OB«L €@!©¤(5•áý¬çü÷ÙðZ*„»oHŠíe“Ý‘OIbˆØ}Ǹ’ïÉôŒº¯¶êí¾…ÇŽ5C$3‹3,§úW'»‡†d­ÌX²™‘ëÛ/ˆtnA~~ÃòCo¦+ y«•/¶ÉWú¡ó¬8ˆ|Qjr^>ƒØ¬GÿWÏúпáQ1ÇË3™Ï}O&ÅOý xœ340031QHIÒKfè[¯r–-ñ‡ÚV‘O1M²Ó™î ©k p£xœ340031QÈ-ÈÏÏÑKfÐäãÑ#¸Ö[geÏ’cØ;åºF 9ëƒxœ;Äÿëë°®“~5•Dñ c‚èHw³ú6»–$ýË»±±ÆüÝ©çxxœG¸ÿëë°:ç®mn úmPÚ;ïS è100755 config.sub]ïÿe¦äÍ !Ù¼« ²† .Þ³X“ ØMCáUxœ!Þÿëë°® Í b¼ôrNl0ªŽñV÷ï×:³Â) Ú¥ëƒxœ;Âx„q‘¹;̤íl®³yäˆW~}&¸âßš Eî—xœáÿúúªf¸ëVš]]»V{ÃD?¾*¿‘¾¼ò¢¶é €Yxœ{-úZTÝÐÀÀÌÄDÁ71;5-3'U/3¡a¿Yõ¿ ŒIEÚÛ/z$Û£ãi·Q݉1òRšý RigSj{ú™ãÎ:¨þäü¼´ÌôÒ¢T½Ädƒ°>¡¯“EæðÕýÊ»¿,^ñ^O‹‰(¤$1pŸ]´çKŸ_ŽÁª>ùaßß_·Ú|ˆñ ³ˆZÒ2ÑCOC&úÈ´sJàù3ê«Ï/Ý|ˆU“üÍH©ä‚õZ ‘Î-ÈÏÏaX~(àÍtEáÃ"oµòÅ6ùJ?tž‘/JMÎËg™»ÃLÚÎæ:›Gþ‡xå×g‚+þ­›QOïœ2xœàÿ±±Í}£ Á×™Kά¼` ur·–= ±áPí¨Oàyxœ›Îè)`{ß°_*6U±uÓæCŒšœø— Ëá.xœ{-úZtƒ³HË?iëâÙW­¹î;S´[óÏÅŽ’ÖÍaÌSÙ‹à [xœ _ÿëë°in˜c¦¤U¿ØæéL»™î¿à‚Lxœ€ÿÇǰiY9ý5‹Û|ØãßoeÞn­ÅNe100644 configure.acýJ»?혼zT¹äßòzŽ8«40000 dbtû Vlˆxà–9[Œ1ë¯Ý޳ÂÈÃç@ÿ'öTõo÷FdzÆþ鳞)s:¤ xœ340031QðMÌNMËÌIÕËÌKf¸”9çß;£O‡œlÏn=»õã¢OB«L €@!©¤(5•aŸÇùß^‹.ŸIkÜ3K/»>ùî]ˆ|JCÄî;Æ• |O¦gÔ}µUo÷-³³ÚÏ—ßbýÖO;dÃæy¬š¬ØgáRxœ!ÞÿÒ Ò °=/dÎx-œí˜£”¨ðÐ)üH‚…•:³Q Ïë€1xœ;ÄÿÇǰ®ã÷x06cÌ,'æä—7ߨ"ìðñ*³ÂÈ ¿²!›Õ‹@š¡L™yDc¦ ³ž)Sm`î†txœ;Âx„qBHÿÃÖ×Ö_Š'sH\¾—\y°âÊõÕž[赎î…0xœ^¡ÿ——2Ö?˜ûCÖ¾z œ‹ÖÚ`ùõ¯£‘Fô;¯?ïu¶¹ªÑz_ÓµÙÑÏÖØH100644 ndbmdatum.c- 2 ƒ-P™*ò‚§åk ðÚ˜“u"ró+Ûlƒdxœ»Äµkƒ9ÓæH¦ŸLv‰ë‚*xœ;ÄÿÇǰ®Ùì¸'}—[‰û¥¼pC?Ëh1n³ÂÈ ¿²!›Õ‹@š¡L™yDc¦ ³ž)5¹Tî€yxœáÿÄÄQ «t­¶ÛZ{õØ£“CæóÞY,‘e_Ó Á xœ340031QHIÒKfÈ.ÓÕÛP±*Êbqû?Ÿãï³ÂÈ ¿²!›Õ‹@š¡L™yDc¦ ³ž)/{‹¤ xœ340031QðMÌNMËÌIÕËÌKf¸”9çß;£O‡œlÏn=»õã¢OB«L €@!©¤(5•!º/Øù^øò£óžë·òà©+3D>%‰K~uÉÚm·£ªù¿ÞX<ÙùÙç{‘:ÉŒÄâ ½Ç26_ׇ²øi™ž‰ÿÍ¥ü]"[ŸŸÃ°üPÀ›éŠÂ‡EÞjå‹mò•~è<+"_”šœ—Ï 2w‡™´Íu6üñʯÏWü[FP®ï°txœàÿ±±Í’?—sˆpWÀ”õáû#Õú6lX±áPí 1àƒaxœ›Î¨F¤ xœ340031QðMÌNMËÌIÕËÌKf¸”9çß;£O‡œlÏn=»õã¢OB«L €@!©¤(5•!i‚ü›Ù÷¦%TºfÑæ&}òfÑ×#ù”$.ùÕ%k·ÝŽªæÿzcñdçgŸïEê@$3‹3Ü—²*zºe§¨Õo±¿®ÿrfÎʃHçäçç0T­I<õ\ü±dÏÍ™Š»é§v;<¬ƒÈ¥&çå3ˆÌÝa&mgsÍ#ÿC¼òë3ÁÿÖäV+à‚KxœÛȲ‘eÃOF‘|ïíúÿ'ôÈÕü~jÈðû§¶Âê3“y™Tñ\ï‚Jxœ›Î¬ùþì-xœ;.ºJTÝÐÀÀÌÄDÁ71;5-3'U/3aamŒ•Õ峕ÿºê;ïw\µQ݉ѦÉaí÷{s5/Æ6ü].§òEâé6‘x¨þäü¼´ÌôÒ¢T½Äd†½“Wù3«ÎMÚöpåßó<ßçó ÉšLÖóÂ@‰L˜´uk…akÔlr¬àRÝ®Àìß‘˜«“‹§+ûúç#ûmßï|S6=Zûöˆ]oêU\„„ÐxÉ’H!è}¨@xéÛ#ƒŒNв²2UsÚ(X‚è;t^¥”.³9~PÎ=®jÝ“¶™q—+u×$Š# „Ãç¥OÌá4jÉ›(Ÿ¾_^Ùì7ÛèÑ”…K€±)Dd‘ 7Ö'èM™ØÖ ßßdXqÙÚûô¬X!.æÑÐZGüC^¦MU† ,R;¦F/&ø¢j‹••… Ó˜t""AEåõªb¬4ÍòîµÓY5æ«<¬ñ¥Cø¡„ƒcs`î`«ÂjýžëWË)o_øBñ¹ aæÄÑõ™+2:N;* µýýkñÆ$ˆPg¯'3\2|žnÖß4¬§k»ÀÓ™0ˆ¶ïai Sý<8 :ú?ÂÞW{VÉþ±Øp¹(ð;-ÐØ¨"˜Lr\mR>ª”¶¼vÛ?8 ÑA£fg†m©¢ÈN/TæÎø½£S*Ó6óņ SÑmÇŽG;{´ióŒÉ•·Á2KkuÊc åb³…¢­®zõï9îÁc«HBydüÖˆáj1â\œ_ïÌ¥H5’qŽœsN’|׆ì?¢^.? V<Æ3Žúµ8í ²§("]ûr‡QО*==…û…D‡¿œ —;¼]3äçážtsÝ*)\h~•ð&멨Èãqï^»š¯t5wŸ”6‡±a: [ݤ]?óê® ÍÎC&{ž·=l–BÈâ ¨¯»[f 9ÈÎV¡œjYG3ºhب/Fè$£¢®¬Læù)U¬Ìk³yOš z¨Ág€ #<‚Ìa¤ß0Á¬ÕåÑ’q­¬hÃä‹ñ¼ …8 -¥¬c(ÜXÉÎÝäu Êv&»ý­Ž ƒtl·`‘ ’¿LíÞ9FÛj­žþµ\}ùq©b±©¨I[šÞt©Ùp¨×Ëq”ð„NøQ¸ž,5ììXbN˜7v+¼•¡Ý(¾}¬–}_3ãv²ØðyLˆ-vÒfS‘cáTƒÿÜ îX×Èf?5±ÐOcSP“¡Q™×±#|³Û=ïni…c#Â_l¨V˜P\Ö'ÿ4i¸º÷ÎKíÂxŽ›ÿ¯ºŸ¤‚¡„Ú­"ú˜ú1m›ñ'«SfÕŽ) OnHHÀrõN„äÁ¡6‹ðˆ@DáVm}®¢èÚÇÏÃ2wseK÷¨þ¿cýÍñ®ªvIZ?³a¸lu‹ýª5ÙýIÁ!¿0ÐÓyûmïªÓޝ})ðB6„}ÒA—‹½’y/tÛo[’‚Ž÷Ÿ^(‚fW8À ¥¹ú*¿oOíÉS[u°óœ›µ‡Ä5"(…„»H+è{5z“R7<+‚2me/㈠ұnPTå–x·À&úð õÔ“V¯<þ ò‘"4HØX”¹Q%2ÏRÜRÛ²J²|¦“ç©H;Ù½£–òPçŸç‹rI¹K˜SZRDã‚XS¿™@Á²7CžÐ5}öØ™î;%F,*ÉÚ5#ÉY+jR~œêâÝò´ÛY¥–¾ÿ 3?m½äc°³éli÷ _ZïÔÊ–±ž¸BÄðÞuåÝû¯7v¹·$]ª«ºEÒ¤†Îeó9 ÌC¡NŒì¾b Ax!ðýòÒÌøXåÐ&)D/ÖûÆý‰•³Ë4Ûˆ/Þíê¬_š“ôè¥PŠ8‚,ûßÜ'˰ùñ?§fŸ)nTïÔ9.›,¬àö[ÄÏO£må?­Üô~dlb{Έ2*¸~^©ÁH9_ûY89§ónŒEÀ"1¿úi÷™èÑV fv™Ì•Ƴ9ªCB©ù¡Wù»2–pSLKmÌÕC&òCâ â‰ù* 9²Áµ~ØP0pL¡;03:L”˜#|6kxÓßу fÆðhag›[äzšüzñåE`ÉÃúêÌdÀ?kIõ ùù³õ%ÜÓnx "\Ê7’›Ð5)Šz²$ήA'Ç—ú®Ÿå*[]¬ì“*ˆ`g×§Z«‘ ÆË¢ª2b”[(<òbĉBßX·*žIôf;6Ïv½6ZQ\h%Eø´l1/3¯cPv6ÌK‘™ *>‘"Äo vh¸mqßÕ=vîþŽi¡õ¸Ôðâ *ó§¯ âm<Ïî›{\1:öÙi\± GX4ÓY¨Ñ£šûNú™ÕôMÈFÇž9Ÿ_ñÿ'Tå O?|Ù¨ b/ðþá=çÙM¯Æ“úÎĶûLŸý‡œ†}íYI±·FUCK·¨ALœïz·ƒ•Fl4À™}éמ”¹A¯J¦‰žök—Ÿ¸T9Sß·ÃçS¥íðíÉ;õïKxœ{Ëù–sB”HÞw—˜­ýß*? Ô|ÝýCòUýãW óêY¹»®§xœ]Ö{úë¬nu‘tõÔOJÈ 3j%†~±N£¶ÜøÜWë¦þSÉXR*DhIe·ÞÊ-£Ì’®ÿ‡òÅõs Ìdà š~°³•Fݳ舺Ç…‰^›æ|Óózˆ>aG2Œ—dŒ§û̵«–éeë4x~Àƒ 5«sÝ+u=,¨×Fnü>qWš½Lˆ6LG £(àœBYÛ²I»³ÃÑÓX—ôåâjÁ@@c¡heߨuÑòÙä,mdäÊõ\ñ>*×;z:Él+ÑZ%I×îZ\x^ôBg+®”E±ô#0/¦Ì©q iLÌ™sæM1˜ÊFA < ~[ð$œÚüðñzúyóM© —'ˆ¸0…w‚¤Ã2ï|]טIçv»µÏÚïÝTCÈᡨ·§G£ÿf”‡;±šî|‰a“oÝj‰#´…Qq©ê¸O¦W3³¸2J#mÜZ•– #‚a¨ÏZìpÇÿþQ²m£ªlñøó‘GX6B…8 ¥of™µ$RÊ-Zºa«È}²°c¿xÅ€¦âàF R2ÃðÆqVû\ÓG}æ|Kíµâpé¨ÉžžÓvú¦õ«Ç|d„n&awÖ"µá&*N{×AÇÖâ°£©üjZ÷¶IîÕ}¸ ØP±Ø!ÊÒ2ŸK„Ã-áS/çË»†–…†bˆƒnKCM®±´ø_Â2Sîºâë•5>q¬ÄpÜÐ]â|Õû#þæ¾õå9Þ:#ÀÞÕ öð(jÁ‚PBï1hü”ù)ÛÓö‹ëa‡:Ÿýâî&‰PGY¿Ø2:Í×t.^C:qÛóŸ8‰£có:¾ÃñžÝIò³éÈ8çn½Tf¤B†®Et v8;Ìjwk–x‡j5ûöÕc¦Ò¸ ‰q„+ÙŒEEº?}µÔ¸^¤Y¹¾tÖÿ;Á·iedD¡ëŒ½òù4ÓÍ¥â×Ò‰h'ôS!±›=ñ$`´ô9ƒÃM²{%ˆÇ…›cpvìÀÔJ>›wƒêyrEzÔ¾#߃ C+€„Áæ¤#ÉÎ>vDï;XêÑîð¤¶Åc$ÒKqï×5šFí$2ÛôzàoPÞ*wÍ3âƒLE6(ª Ús½”²#ö£ÌCc®Áÿ›Š U#t>p¢”ÄUh<õÞ”Ù^PQèúyßÔ* TTv½ÌYÛê|ÝYs¢¬ˆ\4=aú@|P‘TnÿŸ6vP´æå˜§L“еö›ãˆC'»9¡&­,øîÞ`ƒqy5(¶÷X¯ï­i?e ŠÍKMvìö¹/Í ‰öBy_;'0“’ZM¿`BÔ>Ö\Á?„M8„O[®jò®ñFQ÷´3É&ú»>Ϊ¡Ã³ñh@ÀP ”—ï·ô“ æßȯþÚ«”æ¬òíŸô]ó¥½jÑEYzg5è%À#U¢ÚÜ]ú·hÁ—O„"¡íüÚT6i#7Úçæ·®76¿”ŸsU#¬V8V¿Û5–jfUw,nƒ.»ÔíV#T$~': ÃØßfź5=òã·?òìϹ¨àûMåíWšJ 9¶yêaLþÕwD· CŠ©Ëä ÆTNwÜ4æPß;¦™D’·<]u03ø?ª$ƒŸï½h%xelü×(ïéå ­‡,U*­8^%-›; ‡ŠòƵ-·z[p‚@ 2ë@oWãئŸ÷íaRXGzÞb‹Z¼STïÀ–/õŽùúÉýaµ¶Åž¯³:Ü<0ó}¡¿È@û÷~ßI~{!­LFd…ŸÄ@"ÀW¼7¡ö{B¼Ìuž–N6÷ú…~‘ºþ É& ç ¡xœ{ËyŠsB”Hºø5÷'ÆóèmÐû½­kú÷fž‚‰yûD]f­ÙùcõJgYïŒ/‹}¹b:Ùq†ˆj‘Ì­ž—ÁoÉÝñØîqnñ1Æiû&ó3݈±›ÿØ]=0U'ds¬ÕƧóm:Ì?˜™˜(g$êe0}E—üæ+Ì’Œ"ãXÎîô xœáÿ³³|”¼$çØ†¥œgò@«I¿ékŒ‘#Ø7„é‘%xœI¶ÿþþ°‹<ÖmÔf%E´¡ñ' v` ÙÇA 7100644 configure.acˆß䢥úcP!w¢çEýoFGs³Ç·¤· 'í‘}xœ}‚ÿþþ°‹<µ“ªæC¼¾V,å\axLS-Åq100644 configure.acÚ‚$ÍqXí¨U0€  ÿ<³ÇŸ9 $üöyŠ«YoÚ~¶›³zöÑ‹@xÏA Š}:ƒï¼-u”Û³„ú¯ƒ3iá‚dxœQ®ÿÊ Ê ZiËùóì²Íìu4×r£…‡³L‡%±n%ȧ—!¥è}$5 dVÞ¯o“¦»T}¸œØy=oMÐúnKýÇ/³uUW%±á€lxœû'òOdƒ2‡È–§V¯—lȽv ñÍ£«a ~R¬›Í9Ü™"²dã.xœcœÿþþ°‹<Õ‚Ï{ôþ!,îíÛ°Dsg#100644 configure.ac;Ð¥nZ ó?ä‹€z9èÕ³Ç|,©(ÐVµ®–ü&ª°¡Öc-½ ³W'ô*bâqxœû'òOdƒ “ˆÏu‹Ië+ã…%ãÂýXŸïOewwû=Ù€é”ȼš‡WâÞÞ‹Œ~ÖûÓóÇ›%.=“ù˜—Ô¿ÓeÓx7U`Ý*Gf/¼OW¤« ÌLLr’3róSô’2k¾m\”Á(;íÜ~˜b¶ÃwjòËó€j8ÿì¾/ÝÕ§xãÜv¥$ æ ºž05¥%™¹©Å@EÿG¨}5uxô÷À·wªgÚsx³1‹c䛟EŸWè}Ðû.°9êŽyŽ¿’…‰(ä%%çç$–0,Y®·æà,Ž©ËeÚ¤Î|äø}þxÁ¨ù99@ó×9/ðéÛz?Û|š¾¾™¬ÂCfµ¯“ç°‹ô*^Ð5~’wvƒö–×GÔgDÊ>>¢¹ù1«£È)GyFWo.hžxMêQLÛÇ¿A“ùÙ-Eö¸ºœëkŸ«ÉòöP¾Löé‰{œ6ǰ‹2 Ý-M/l躬ÿz}—Îlí„;¶›[8ê-rj^äÎ4=¼˜A Íë¶cÅö»ïÓ „uÚ‹„K›Û›ÓVå·ŠoK{!9ÙšËtÀªLxœ340031QH,.N-*ÑË`(ÎcMž¡^)÷;TöïÁ$¦H Cˆšä”Ô´b ’'|ÏyäÍm”Ê,‹;äå>Ó€)ÉÏKËL×ËÐËÌcÈ>ýóó›Mgß”š\/ZÜÚ¾Ù§]¦¬¤² hÒJ³‚æÚÛq/þŸwÑäÅ9¨’”Ì¢Ô<ƒµÿ û·HbÏïâØ”`G6U&3i¨šÔ¼”ÌÄ< ­,÷Р[vÇøýì3W¸Î»ÃÏ SSTT𺞋m?·SJµúá{=§')ÅÏs‡*HËËM,IÎ*šU0SõëÞx¾ˆmN=ÜG§©ÆÉ À•€<®è2kÍΫW:{4Èzg|Y|ìËS¨‚ôÔ’üs»¾¯<Ü™¢qUðôÙF–yÖ=OÓ®ÂÔää'Uý¸2ç„Élá÷9u•¯JJÝ_ñѦ¢¨¨àšôã¹5b¶g7­_~#þöO£w§>~…*ÈÉÌÍ;Ežë&÷g-1®®ìy j»/åAÕ䦘¨ÉÜêyü÷–Üíçcœ¶ª  ±(19Jb®ÛÝ–ZLéíš·ý¯ÓÿŸIp%% kn¯Ýá/ÕvÆêÒ{¹Ëq{äm¦­qøS’Ÿ“TÁ¢=§Ûy£÷÷Í&} ùË–?)›SQžTà0c¡›Á§×®[=ªô6ÏÓþ/bUPXšZ J\œš³mÎ)îñYì9;vÏßMÇYe¡JŠRÓS+€JÞ&x¬þ^yjÛGOCú´ëÖWÀ”䦚ÕÄØÍ쮘ª²9ÖjãÓù6æ¡jŠ3 A>~©V,ýÿX¨ãâ‰í[ÏŸ•œÿÿÈW„ # Šg¥­Mæç‹¦x¥Ñ4_tŸb”LEI"(‚Íœœ¹¢§Cº~¾ðÛõÍ'úe¿_DRQÎ"©‰²æ3Ùøn;6ûTño×é…ÓàŠR2óJÎ^xkèpOd–õúF‹7ŸY;zªJr2AI%èVÁ¡Å„ä÷w<ÇÂ-ž# WS”™Ìi œ%2³vùDõ0²>©óÛ:{úV•ÉP5%©E¹É‰ $%¸?aO«Aß¡ ‡Ev}®ïÕrÜl.LQf.(~þ:»³z¶¯,é‡uxœ9ÆÿÊ Ê Z\‹*¬w o5ô¤Û‹_×ù³Õ±n  ¡'8¬$ŠÌÎðÅ^g$ Ðü³=¶<Šà€:xœ ßÿþþ°– š‹ë³Zd=p1ñŠaÏ g±“ª Ôù¾%ç€ixœg˜ÿþÚ°‹<\UÝÇ‚fçEKÜhì÷ŒÈ´)100644 configure.ac±ƒ–‡ì_/(ÎGԄ𔘋ç`³ÇŸÒôo9å 5(âÞoj™³z“± Í+:à€mxœ ßÿÊ Ê °ÿ×èÖZð¦Ô(XhÏ;N«eù“®Ëæ‚xœf™ÿþÚ°‹<Ä€ãàêïä"“–= À RÎ=`100644 configure.acçùl»ïá‘xøjÅË|¯_‘.w³ÇŸŒЦ/zMhTæø7üÃù·{гy“± Ík/Ùà€$xœ;ÅyŠsC1‹Hª¹Òñ¨ÿ¶•~‡Š¸•:\™{ÍoÅävgÝ äçƒ0xœg˜ÿþÚ°‹<¤"—í$¾Ë³&#°´¯ *¡ƒá`©100644 configure.acý˜‘Ҡ¤|ë®Øf§t³ÇŸs£µ)Q9úû\T@¡Ó‰º ³z“± Ív<.ªî€#xœ;ÅyŠsB”°åQI¦Ã/.„-+Öo{æ^kÄÉwcn, Ì- á€!xœ»%rKdƒ2‡ÈÁN5égyS¸W~~Äã+Ùã6í™Êfse&éë á.xœ»%rKdC«ˆ¢á¬°çšW ßÄæMìR»©;?vsëë8#ì€xœ\£ÿÊ Ê °Ø²Y+~‘øÁT‘]lùœ[­bm“ìß6jÚz¦®&:ÙU5k™s%%xg€£100644 sha1.h±{Ð\Úh¸ym¹î“<ÛÚã(ý³É„Ò(ôë€Fxœ{„ÿÚÚZöødÎ-à6@m®›s#E¬Íy{±n<9SõÅÕEÁ>áVý‹’²tïÓ‘100644 configure.ac^-)»]Bø¾J옔ïsÜßijÇŸ÷kS†.ã´$,¦6Ë•Sf³zà{ 6/ç€uxœ7ÈÿÊ Ê Z–˜ðÁ§·ž¹°ÀË ªׇ2‘n3²:߯ÃôtÌònZP1Œ¿^©E„±µò3«á€Pxœ»%rKdƒ7‡ˆ‰À ¦_Ï&Tͺ¤óïT¥Å™êÈÍñ¿ùÏ1á.xœ»%rKdƒ£È‚09Ç¿Âù8þ'³Wpe7HZ¤üïÏ$„ # ŠÖ'Ü­óoýì_w¥„Å«*r¡ßÍìÍÊÌ˽«2}ïƒ8xœ»%rKd‚©Hëšã·þö*T/Uk±ù¿Ñõ‰ö×k=¹û…<ã,xœcœÿÚÚ°‹•°lrY×\KliQŠRr)ºM!‘FBÞ3šcê=?Ïï9ÏóüžsˆffÖ––:Þäp€ÊÂñ ×ÎÃûôêÏhi¾œ¸~ô§Ì<{âWFrsqõvÃϪyž­i4X3>÷eñ*—ÝÚ0/!!TB´ Ppxž9OM•Ût)©xVê$rW „CWÔî¹>¯¤{šrŸŽ-Åeó×»¯*.„ŠX‘¤ØC§Â*ÞF‘†³ŸÛÁxݾ$’d SÈ i‰»¦Ÿ óÉ$È¡ê6Ô«¹ìú æŠT(ƒƒ qòüµM\–”lá1™eÊ-»N^¨6VV:¢2h@œ‚ÂëMåLHî3sïûÍ›¦üäùÊß;„Š;0µ ½¸#»eë@ó•uU‰²„ö ß).À=úò_Ûw)òñ—{%êÖ<Ù•#JjÈœôu£‚÷QŽ„žÿw‹·ªÀRäˆÆ€4}/ ]Éú§ÁõÑg¹ˆ•p@5 i£UªAmÒ6™ÖÆGÚ=Îa†…¡%GQªZþÄíKÆWƃ%×4ѯËO%Tab’9:Šv&³•êÿ(Ü<µ‰˜!Lßx£·C,2VÎ;]¹‘hT¸vwa’tÿ¶üê¨1™ L­4ÅhÉyGkŒS«±ônáQ»Ü·½Xh+#€èyÂÛKƒþ¡-^ŸøØ7¨k¨¸§‹ Ìâ„€0DCá…˜ÑÁ“#A¯âÌ{|š(t¥§Š!`²P´ W¼ÑSª140gk©™M<‹¸Õ‹!t8Qq½² Háü"W³¡¸Çv†8KØÔ j-B8dÄ#tÜ›½ü×ÞÓD£ÛÔʲms£Ó¢8 $$Cáh(ùÍzµp‘¡oP”ÝRþýq3)t*H¦ ‹Àšu–LHô:î^'×s0&ôw?³ƒbÅ„ÃPÈ<˜O—Ðʾ{]q?â.Ý>$60OXmÙŦ‘”´­ï^Õ 5”LÇ{Äc†Ëa0áa£Ë~+ç±¥VÁûŒÆÎÃÍí"ÄD_ ¦ &G¹¶¸oWÄUxOqÇ_5Îátž?f¬„¢ºò]–«¶KCù'™iòñŸ4±lÅ‚¢$ì±B‹ MpÊÁhÁ*_ðèÚ* X!¦Ï´A¥¶”ÅxñÏ„sÝû0&j˜ãÙhÓ{Æç‰O5“9æÝ3a%J«¡›ýüûxÅë¶B'ÒÚ6\JƒA¡˜É"sd^8îÆ)ª~Ѻ–FÁ¢._²£Hê/ŸÅÿwt\ºƒÃ<ûß„÷„9Åê}C6 ¯®­¥ú¬"ÜÈ¡R=)G=…gÍM'†[ó|Þ‰±`Pørå»ó¼NªÖ> ·É65µÖÒ•4øø5‹Íˆ s¿-2ë°ÅÕ÷ƒSN–Ø÷à› #,B¦Ð…÷ÞÃñEa] v͈9-}‚–x1Þ7¾_„ØM˜ ŠêkõÜk~y?IŒÐý 7D U!9ä”ê™Ös©"ß…ô9eù ;ë3a!í>xõ æ\Y±H‚ñIµOŒ¨l@˜TγìíÆ`°TkÈPM…äaoòk&†˜aDk3Ôð Ü,æÿ£^šñ­h·¢á‰ŽÅ«þß™•(ÁãLÿõB…_4YÖíöÊ7~¬ç$R¶fÜ6t 8jô{u%]ÈPRôŒ¤Š sYÄAa§Édžq¥šu4£_}lâô’;I Ñ‹$ÌýÕ‚_o€GoSøžj–ë›×,ªŠ‹Œ _ƒ5»¹²ºUÓ’ÎIM¶Ášá]Í»¾ql˜‘™Â€?Þ ,FÛ­M>¾Á}ÿÌ›©Ù ß`N&¢âµÉŸ/iæyúOœ?ÏîJ^Ös¾+…0Tßí¤|óž¤ÉÛáþºäcô1¡q¨¨ê¸å}g2ÝïšþˆÓçÊöåÚ…j¿HÑnBØóÕñ^œš>2aZö~iÍES[íXÖCæDP…«à¾ù° —ö[\JŸéxEŠÉ¹‡W;Œ+œ¬bÿF“Ú?¸áËW¨t§³Ô“ÿ¼[ ÝŽÿ÷é@|>V™-ü <'™óvÔ–9YP»Ô6¼‹´PkÇÿÏ9ôŽl‘xœ;Ź‚s'ófmæùŒ ÂçŽTxœG¸ÿîî°:5H³Ý¢PÇ’Pœñru Y¢%¿100755 config.subàq"€ñv^åþ3¤DN<ÏSB³Tš}ïVxœàÿîî5\+e×\Y6àGîÜ£öëì”LƱI¥ âPë€xœ{„ÿîî5\+e×\Y6àGîÜ£öëì”LƱI<76ѵîI Ó;­öH§µ”ô100644 configure.ac1žºd3;¤ ᕎ^ú¹³¡ŸÚó¼7“örÒ ö ç6Ñ{ D !³Tšä?3Óä“=xœ;Ź‚sB”È3¾ý/ël{:¬ÔÈ·ˆbú!w -ncÞl¦ÍÚÌó,¿~è€;xœ8ÇÿîîЕ±ºü¡ £›¾_žÔE¨ ù6Ú‘ä“ –(jÞ¦½o£É’ãY{"Õ³yuQ©—éGxœ9Æÿîî5¦%d+«Jàž0ËÈ%ׄ¬ç±I;¦=wý‰^£ ”a¼{ÀŒ—2c‰³˜VÛpë¸exœÛ̸™qÂ|~ÓéÁ'r4þ.¿Q‘%^ðN\w—žG šàoxœ{'üNxÃN‘ÅNu,Ž­éïªöüi˜Ý¶â¦e[Ìä3œJûMSà€xœ ßÿîî°¸ ÝœÁÚücx¶Áø-Nž×Z“Ì "ðÿà/xœ0Ïÿîî'100644 Makefile.in’¶9ë2²§}† ð\Æ(ʰÙϱ'Ç ´ü=àmxœ0Ïÿîî'100644 Makefile.inÑisŸÇO©ƒfÛ˜ÊÌa ʼ½±'Ç Æèþà€+xœ{'üNXÝÐÀÀÌÄDÁ71;5-3'U/3¡WÀ†aûÄsz~ǧuHÄ™±máeÚ¨~œƒàûà€hxœ{'üNXÝÐÀÀÌÄDÁ71;5-3'U/3AåU£^~{럛ª,"-)E,{g9mT?Î ”[à%xœ{'üNXÝÐÀÀÌÄDÁ71;5-3'U/3A^=^DþRÒã%"fÿìÓÃ\½Z_^ߨ~œŽßïá=xœ!Þÿîî°ßÖ›œC^ëÚÁ¡¢E¤o$‡`³óû grç/xœG¸ÿîî°:²TÜÇ[oÜŽÿÍD6ï„hD§j¨4100755 config.sub,ƒP!)C=oâÃ÷Ü×&¦®)]–³TšqÈÎàUxœ{'üNxƒ?§HüI¥º¿–'Uö¨+VÏÞòt»¸ÈädÎnùÆÄà€xœ{'üNxƒ?§HÜ}íšé‹¾Úf'^øô x±Û_UéÉÉœÝþ1Pà€.xœ{'üNxƒ?§È4£¥bÚïÌïÖr œÌ wò{Õ~·xr2g7ÞÑ Ìà€[xœ{'üNxƒ?§È¤w3Ùù…¦2¼wŒOT ¬¼µŸ{r2g7Ó˜ Dé-xœI¶ÿîî°e<³.JùY/•Þ–›®'|Ξ100644 configure.ac¯úÿ›8ð"Ñ·9¬òÐ`ü^³¡M} ä €xœ”kÿîî5³Bö}Áy;Tø¨Bé;sÂr±I‡L"Y˜™÷ЂAÙ0auËÖÿõkëÁ¨¸ì¼lsÇQ1y™yQœöP äïnî¨ ùâûæ[ïÔžÎUã"™`ðQ²©1@˜Tðͯžž¢*n±j¹ê=—{¤cX†h„4ȘcFH)»¾KÜx)ãV@SV/5Ÿ8o1 St6ÅâäìßhèðAÍQ\ZwtéŒd гڼѨªÅv¯Þêï™;ï|cnwÂÅ Lã€é­:ÿ6½DïÍó»³6Ÿc2úÑ"Œl77'Ì`3™E åû†Úü¡S‹÷œ,¦D,'qP¾ÙçÐ †Ñ{7é;Ú"#Í’¡þ­y%ú‡N§~¦<ð»Ñl¦T»ã‚W£ó.ð_í jÁ³Â‘1 ˆyZœ;j¾ªÙ¼i“ÛÂ}óÄm­>2ÂL6 bUØmºùËšçþjÂÓB[oJ¶}¸áñ0ð¦p~.Ý&Íc–ÜxCT>w¥¸mVLÁ˜©p0 I* )A¡78 Ë:*n`°0Ôy‹ž¬ú¡lGmì†ÚþÆŒî ĉxqi<\ e©~ì iãÈ󹎴jQ¼ä¬La§p(f¾ðtuëU‰hŽìµ¦;þìù£¸KKn.?B`&ßF„=-ÚR¢žpE|›ÊFØãBè˜Ö/ÞO°Ö*¤~ÿµ(ë¸Q=Z#«7Fù42BY„ñg[DF÷œ¦õÛeÅz’áé'²8l”Ñà`,Tñšša=ŪoLwt0_§÷øJdX ˆÆ”v]Óû”—‰=Ã&–­ZÚÔ&ÃVæË ÄL õ_ÜbTÙ‘€Vý  Ÿºe/7ˆPZ§Ò‚}W÷|ˆ‘\Kì O$¾¯52®ŸÍ¥‡%,ÐuÔÆ„.™©eGm&,Z¥áys°«!fÒÔ¯‰{v…þ°q·•VÚ³„ûqh.î¾S¤]îä‘â 3w­+—‘ˆ¶ÆwrÁ‚0ÒâôÛ¿BxYÁ‰ÍƒÛ”Y#¶±åLœòAC§ßßÊ'žÍÊè:z1bC‰iàìð ¡2”uí脪Aâ1¢RÒaïæÖÕF~D‚éÂáÒøÆ4a0¡ñ,C7oõÍëo6}Ù–§PêQ°öŸŽEøcÊ7Ç´KÇ$;·§)eè¹ÞåÛ¢@3ö}B¤,“y®óQuÈß[4ª}CwD9R&d¸$½œÕN`»’U cô궇Z?ÅOù .àBЖtŽLû|ãv^eN”•Ö¬ËÔ)¡ÕÍÝQþbôœÜfÞ(<¸çIrsQ}vŽBó ="C<)M‹4ر]£[%=òÕ!Å1ë™ûcyÄn9†‘Ž%!c^ÛÙµ '^C““º!ý »~6|…:LÁŽÓTÚÛmn3áÞzœDæ7¹ ­j\i@éëÒæ=³\£l¦©eåó\1|„$G (½]^“·[fØ¢×csrƒŸ@pÇÈ´»Gœ@² 3J×_äù(/Ú]¬ J¬ŸÕµÞÛ Õ}f–:%)½ûpu¥¬Ú'2N™þödˆ£L¡ø|ÛUyÆC!áŒoê-œÿyÀ2ðqÜ0yˆ€ Â| †/½jñðdׯu3U0Ÿ.Œ´Ù%‡Ø0Is''\t¹³‘QgîÒU7þðà;C9âb‹~9˜Ë¹W׃›èýö*ÏŽ…¬×< ›¾ÂñæÒÆΧ}¸$ê^›$ƒ·Êîô"Ö_M8dÑȘР¿þÏ8Rpé£JRÑ;ŠG««¦¿î ±Tˆ±7Ê“wï’FÎJN6üáG¿¬9ÜÀ\æ30}6:êÓP=IJ{’ZdRÔ9?1#ÛO( |êâG_]XãèÿÇ@c®ö·©—ÝØ_ðh|?”!]¡j£­V}ÕÕ1Þfþ´µ¹ÝÚ3Nçâ ¤Ýç{ Ò‹å¿¸f­{ÞãŠH ÀçIÉz¹Á»¯Dóد'#.ˆ6ÿ¶û×,×µã\û¹‚š´ ŠŠÚŽ^ºåq¦gœãìDB÷ìS+7 CêepU·•¬§oH§°;9}r${Â騗£qÜ‘ã`tÁ»Ü”Û_ï·‘#”&aä”ö{ÃPë¸û_nUû²½ç *冿<Êÿc™O¶ÙeVÂc1§Œ5¿#?­›—!Ê–É*;!YýõAlÐ9Á¬Tüï}/œ ¸t–èåĉÉ â9ÅsU˜ið­Ç Ÿ IÿÔ²+ºUH&¹íö‰­Áö•ƒr²¼žƒJã¹ GV¯×Mpõõ/~ êH¢df9—¤Îp}TO<ž-.îyc¶FíÅÿ%ŠÇsâ­xœ;ÅÙÍîah``fb¢œŸ—–™®—¡—™ÇÉòûØ'\Ä‹‹Ûþ°aíׄ*K-*ÒË`ˆZÃa¹óPiáâµçžöŸ|é·ÛÄ_a",o£r¶§çÝžgrgÖ»•ûS% %'§0‹.æÏ“bcú³àKgbÈ%‡cñÇóª'ŸfÔš,ÁÔ/räêûMÿ…¦‰Þå‰ÚV`]|¢ègýäÝL~ö%‰%@˦ÚÏÎ.m,b˜µ¬ôǶIKþ¸í¿uM1PEYZ1Pïñõ kb׬v;±;üŠ\Ú¹ã&g1‹\-SÞãÌ19Yø˜á« ÛŒÿe<ª&odÖ™ÌÄ¢4ÙEGD£Qáß¼3SMb5_Ëo[Yþ:|r;‹¾K¢ëÔÇö–Ë®flU[qr*ÅØ·€™áxœ!ÞÿÙÙ°`w9›ÉÎrîѼ/öµég§B­³tå¸ÇèDxœh—ÿÙ±'100644 Makefile.inO:ÁèBÅwÛ/B@É'ŸªIêë±'5ˆ<ˆ…ÈSg[ÔÔKEá’!“pt(ŽXÂÝ%ØŽ5\@¿¸çÍ”{㳘ij„Õ_*\ïwxœÛ(´Qh‚©ûß ¥ø_9\ò…Jù" ŠWÍû½ÑóÀd *á+xœ!Þÿ±±°Gõ²"8#‹ë‚fê࣢Ù/¡ë‰Q³[ÖýΛáZxœ!Þÿ±±°Gâa»æ‡í‚M”5¹Š„›<˜³³[Öîï/xœÛ(´Qh‚©ÈZߪŸÔ<Î(Ê+R­à3ù¯¯ºÑó×ì tïZxœÛ(´Qh‚©È,]3¿ Ý=¤? ¨Ø-™~Í-×k£ç Å… ò¡xœ]Ô}XK{ð=nîH(JBîvµ¶jIFÊzÒ’(y'ggg/:;gíl ½‘íá®›bÉ„¼]ª…Håå)·pÉ{7¹-E‘”˜—èžé¬qÏߟçûv¾ßƒN÷ñöv b ¾†h"„„G¿œQêtãC ËáUvóŽfÄ,F?‹ `‡‘æè¬k}©üçÓ®Úª4Úý9Ò4!¢£ù2ŒáEI«7ƾ»Ê¸ª ¯Á5½uÈBU FA¦‰½I» /ôv™pt_yô•œ{Aù.}ê ÅÉ0<Ρ¥¦|±óE ä>°jfMw¼;.f0™. ŠðEš@a©hICõ*´aGßM¶O§RÈÎ[Ÿïý£Ãä\Òô­‹&QæÍF W §æž¢¬ÉÈúAÉ¥‰VØ;¨àÈ/ÑÖ½¥Ùå§õ{”ûž(jÑÔµR§rß»k—GþŒ½íÙö)M®„ƒ¤R¼öw{²YÚP±·ær™²¨ç¸®ú-øH#¸)®§ÒÅžµëe½bÈþ˜ ³AÄ€ âhš‡åàÜ”œêÑ_‹ì™gêÏÚM]lF@ŠAßBùWmLÝûb}‚áiOöœ2Õ˜I(<„(p3(<„soxÂõ˜ä{³¸óV‡/λåd1¨D £ˆ‡M•çæ}ª<ç9èÄsJízÕk†0Ê5 Šn)iÖ¸8«Ý>Qælq¯Àγ!˜ €awLHjktUºßd×ífP®ó uSŒM]‰8"Œ H Jg{¾i ùìP¯†Áë,—°UÓ‚A!¦U¸òywKúÝ&ߪW¾¬R â÷*ߢÄ(7ieöë8ªQ¢dЩ¢A7uÞÞ<×bÐ8ӜΜXr:ì‹ÊX’~wS:=ã¶“¡ÍÁlä2‘2%KëåN´{Q7ÿ@Va"kEZŸŸÖ\·o q£µ/É»¨øm šW}F?7F·ÔlxL“À¸­†#þ†K ½—Û‚vy|!å¸Eaœè=bã.:êYzÕQø”ÉLbx2H,ÁQÆçò|—Ìœ}·$Œ (¦ ¨Á#PNIbû(jz’˰"¯ÆVY»¯r!à]I¢ Iž™5R5¿lsÊlë`;µæ›×ႨXÈp•Z_7ôšxû“ÚëEÚ>†® þÛŽˆä:ïykYþ3§Zõ6òkõ‡™åÚë‰@6õæ7œ1ÌïÿÙéiuN+UºÎ¨ÌK$‰Pá(vqãÑüTr®í¤áwµáœæN ”þ ISØœîwVwn†Ó9óG5îñ¢ñ’Šy :Èùµu'ùSdN Ïó§ÕǦ´±+ø?˜oó–>f³·ªíœ¤(>:!)|sÅ …ç'Rhv7׺*Ž_h¾(ßЭ1ÆÛ'¾ ¢üÎäÒ?Çh-2Å ¾¤±Ë™æÂ‰T„Èø¸Úš¹UßwµFèÿ8ë¤ÇÉÚíÝÄ•cRÐs` ÀÅÖm)a™ÌRµr_K[l7ØMÈ|ÓQ%Þ8üsJT×Hß臢¬hYªUß’òä¦-^¶\!\Ûg;"4÷Qq²õø”³Åà+jzZO9&ÛNNدœüï‚c9!#Ú$sc- Ó@Éäqó"ÜxEj¯]Áj%/.ôàŽï‘d#Žì O ê ·*RÌÊt®§¨V|ßÁ‚ˆ_ÈìÆst}¦^kÑe_‚i¸ô{„A¦ÂÜÙÚç• Um¡o8g—Œì¡êÉ#뿈ßùë™ÕþôÈ ÕšãXÆ“‹ $G"Ó„¨užÍœ¤ÙmÙíÝúÙ6_ ̃¡o¹XÊ–öíÝF42¹i³4Ī»rY…Ù˜_°õgR%i‰ÖÎni!ËÖêZ ‰ÆÍ„éO”v›2ä¯Mé_ *¬0¼œ|üYdë¶ 4àé‘"xœëfÁæah``fb¢œŸ—–™®—¡—™ÇPaöñÆõ„ô/6ðlœÞ-+*ùž™ ª,µ¨H/ƒáòuC‡unëW¬ø!ãl¾üû£¼óõ=Œ¢¾/»/ÕVžßn|ïcæ¥]%w¾@5¦§–ä”õZ¿—>îxk§Çí§ç·{Ͷ1‹R„©ÉÉOªX X‘d´U¡ùþUÞù÷<¥¾N`œx%HD´zû•JBwßÔí¹ô;¬|íäfÉVŒ†"WLtN…~ÕþüÐÝ4õO‰y¼¡o¸'×3úØå¦šM<$Ìü1æÇîd}öÓ˜ÏE÷Jý vg$U˜è-0¹µûyÉ”]sµG{ˆ?šs{³“7£ÈB—…š÷3J¿½fgfq@îü»cQid…üïŽxœ›(0Q`‚©È'½w“ÃÄô &KœÛî™Z ‘U%µÑó;¾ åàŽBxœ`Ÿÿ‘‘5{%ðK™`7ÐW NIf0 ôJ<‘IÌÐä©¥¯HæKÙÖí´v<%žqþ´óŸ»“}˜,EØn·é×íFL«ž{¥Uåk}|ógòL&UoË2óRKâóJò €&lÊëetŸþ{Õ:ÑÎ2•r[/S¨ÀÊ Jòó€Ê&œ6P‹ÿ4“ivó…\ÓûŸ8êƒ6ïf`4/Nzöh‘ý£½†[ŒU|¶ºì«Þ¨¹j@nŠiFPóýšÂòšƒN[l¶¬Õ’ȸŸ¶w2KPFbnjqAbrª^ƒÑ”Sß6qkMfo—šåôò­‹Ô³ß Æä%%çç$–Uí´dïS\»0ñߟݪº?7½“(31¸"† Ö|,ŒEnüý(¸¯{'ÿ’û‹dNLÞËb,«ûFLgú‰Ý"³Lê½ÂòŸowÓdVÝúÜC3 3eÞq½çø<ïTŠsÌnɦ—.ûÓ N(«{¦è.ïÌc/·lªŽ¯ñwŸÃëÛmUUœZ’šWTÓÙµÍÐuÎ;“˜$«loÙfÍÉ5¹ù)©@E‡¿\J$:çó¢§ZQ?$Ê2.½|ŒÍ=¨ÂÛè2£Ò¹Â‰å_ë=öMÐ;ôâÓ¨9¥ye™ 7\óìZkôØ«Îöå¬WŸô·Øòþ}ä3ù,‡Þd9Nu‘Þ šœ'«úÿ=j-~œøèµÒÊ'ÁÏðk„äˆ~xœT«ÿÆý'100644 config.h.inÔÊe0PW˜€ì¡Hƒa*‚–¸‘')‘u©“AJfs.h•÷Cº‰uôRfÀª*Zè“¥!ùØà†Nxœ»)pS`ƒ+‹ˆ¢p†¸'ïò3ÙÍæÄ­µ¬ß5¹aq$ À¢ â-xœbÿÙÙó<©’;n|%êà÷¯œÈ ÅŸ1'Ⱥ100644 configure.ac |;Kp|idäñäý†ýŠü´³/9ÌÊBì•tC´\aût0©5£³|ÝÝs-<àxœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3aBGëÄe_¦+ìMŸìzðv´°¢íFõ0F¯ å€Zxœ…zÿÙÙó<°É!/£˜›]ø}ÂФ¾0Þ´100644 configure.acÎY¥D–ã’q|W.½R&.{`³/7­wÂä'_9‰-õÓLÈüú`ßÖ40000 nbcompat˜ Üx­v„œU1¹(âÁÓ ž]³|Ý=S9uà‚QxœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3Á$rJÓ¾)ýWeŸ(^™äa$aϳQ=Œ¡Õ3è€QxœH·ÿÙÙó<¶šã£YnX6áVyÄ~J~û&T100644 configure.aceCð|@²t“H]›Ñ˜9ϳ/*W:ëWxœ;ÄÿÙÙ°#¯.( ÿÜ\|U>Í­~Ð?‡E³/9ß ßÒ€E6ê6@Ÿ¥–8®À¬¤³|ÝÂÖÑà„.xœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3aq•Ü3ãÄŠ9n;£ž?w÷«fÙà°Q=Œ¡™Áè€xœH·ÿÙÙóþ¿'›GL,jŒ¿sêZ’ÈÙ°õ|sx¥=žüº|2s;ÔØäü¼´ÌôÒ¢T½Äd†íš‰ûË7™]ŒLåZ›l~<ÄûT]Jinn¥^2ýGÁIR-J®Ö÷*ÝŸ}Ü•ÿËf}F1fs‘‰<šë8æ·¸¿\¿¦ó Ä:Éh+ PÈKJÎÏ-H,a0ÿöñ̼þȉ‚‹9»ŽÇÐûñgõä–‘žtŽÍú¹eåY÷gXô9¨± o~ÁÒÊ(â+–±Vއ­z¢}£Ï[Æ™ùüb“Ù¢-Ÿ†:øz¥²¼âÙ½Q}¦ÔŒ¥KB n-.)ÊI.¹ÖâÌ]}ùI¦+j≯•‘¤ÈÞ¥Ñ4Y”½A„ጷ®M†Ã}©_-ç­:½æàä•ìE“í9¤ÿæ–Áï}xœO°þص'100644 Makefile.inuÔ ŽÅÕdª})ŒX Ï:à,L‘'7•±ºü¡ £›¾_žÔE¨ ù6Ú‘r<ËÇó¢8d]x áÇûJ!‡J100644 configure.ac \ø#)_‹ÞÍTD”Û°§ŒjŸx³R7­wÂä'_9‰-õÓLÈüú`ßÖ40000 nbcompatß ßÒ€E6ê6@Ÿ¥–8®À¬¤“ŸX%DJòõÑÍO0JHÞ—2aUv{³ …`ƒÓ¿ŸÃâÏåò²yã­øYcˆ“¤[9CR$d²Š3’GŠ?„dwKŸŽ100644 strlcpy.c±ªnŠE$Æk%),b2iËmÕ“8€‰fj5íÇ?´nè…Ž.1Ý»ù“ÌŒbŽ ï ^xœŸ`ÿµµóµ âÄðþ-Cchhù9f´³/‚áVxœ!Þÿµµ°E?N¡âm6¿ª¥·ˆTç•ö0[ˆ±³YÜõ$-ê/xœ:Åÿµµó sëä׎u¦]¥o×LÆ|å݆š³a‚Ÿtš}A Þ ßïÂB—Ô³|¹JjÐà‚VxœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3áÁ‹sw>²,ËÏil›$úSø¥ìÎ+šÕÃÍë€xœ;Äÿµµ°°ÖГÃ(¼F„«ùêü³/i¸UñE|`>Ääò,PX®³YÜý–)àJxœ ßÿµµ°•ÌK-xœàÿýýU©~â?`4왕OèË\ݬä¸IŸ±iø°§ê€ xœ:Åÿµµ°h¿X¯+t9r´w©äé}WòI°|?“|XŒg<¹ƒ/mvÁ¿h8Ž@&³èMØB;æ‚5xœ6ÉÿýýU@¢BŸ 〭…ìÉoWêT2Ôɸ ‘i2¹ÉOʽ…ÿ ;²ïà5ŠÑaõ°¸‘¯Îë àExœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3¡ér S|ªã÷5‰;uŸÛsÜh£z#­!5àŽxœ0ÏÿØØ'100644 Makefile.intŒ™¶Àôçó@ÛåÚ­ô;³±'1½-…å?xœ…zÿØØó<íÑQ×@ŒC,Ôt˜Íé.Ëu¨7q100644 configure.ac£#èTfñφ¤ !¯%Ôí¯³/97Œ.—Ô¨…âÒª­Þ/sK|ˆî jª40000 nbcompat¾¹Óê‘‘ˆyåugÊtÅÉ7­%γŸ¹²€<îàSxœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3á›fDΟ¥s4¢,ËVUݘYâǼb£z#¤'øá€Pxœ»!pC`C›ˆRØÓÄë_Ó]·'˜Õ%¦'ôÊÚ-Ÿ»¹í#ø në.xœ{„ÿØØó<‹4Cfóƒ|SÊ5ž}Bå¶:ëÀJ100644 configure.acðÔ]PH&™>á„8€«ÝN°ðk¡³/\!БšŠøìÀüæbªGfÇnÓŸÆ.tF+˜”¿wÖt É SSgÓµ ³y߈ß8àƒGxœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3¡<ð£Î扥 Ú¬ÛtE46Í‹‘9hºQ=Œ•ŒÀá€Fxœ!ÞÿØØ°‹µ-àÚ¼C¿;!—PB…¿¿=ºøÔ³Ÿ¹bZîmxœáÿýýyžLSÒ~#£­:Ò…ðÜÌœÑI´‘ðì½[á\xœ!ÞÿØØ°hµaĵš:NÊjùÜÉÄ€¨ë³|Üþ·á/xœ!ÞÿØØ°lô÷µ‚ç€xœÛ °A`C‹Häzë Ÿ‹ ÚÚk–îö°Ø¨Dº÷Ëæ–-Ì÷¼íålxœ…zÿ°°ó<™)ÒxoŽ»Nƒ N)”0·dO100644 configure.ac¼÷’Q(8ãëø]fšBùc›Süêö³/97û3黾á ÙºÙúGÁP40000 nbcompatì:¾@C©Ô¸FY³+œEGÛ\³Ÿ‘úÙ9‹à„9xœûËô—IÝÐÀÀÌÄD!9?/-3]/C/3áþGɺæ®Þs¢*¿þâúíä*ļQ=ŒÀ$ á€QxœÛ °A`C7‹HžÒއ[˜ÕÖÿ¹ê²¥}a¸O }eÄæù,™÷ÝhïkxœûËô—i‚‰ÈN£ƒ1“\öÉü° ½güY;AìµôFSFá¿ Hë*xœ;Äÿ°°°_ÖgÒ^Îã7Ý0á`ré¹`€Ã?/ù³sn"¸á´&¯üÕD´‡¡WLQ?yX³Ÿ‘KòPàJxœÛ °A@ÝÐÀÀÌÄDÁ71;5-3'U/3Árgæ‡-å߬¢4Ÿ¯úU²Q“&ÏáG@ôôYiPeññi%ņÆzÉ Õ»JÛ¿lÏ|¶efùÇÓŽ6lVÛŽ2C%&çä''æèåš0,H9{Wôʳ†©l?V÷ñü=Ù<ª*)³¤X/yâÂ’X±™š—*òûvû53,ðÓœb°½7Ū(9?/-3½´(U/1™aÏ÷I_ÿˆM›åô3yvðŸWß êR‹Š€nº–~)îÜcó»Š^îLh8l¯ÿsr£ÎäÃŒª²iÅ©©Ùù@US7J_‘Ì—²­ÛiíxJ<ãüiç?w'?d´9˜yÅøkdA€JîÝ8‘6!¿¢ºo“õ˜T½A6d楖Äç•äMØ”!×Ëè>#&ü÷ªu¢e*å¶^¦P‡€•”äç•=L8m ÿ?h&Óìæ ¹¦÷?qÔm`ZÂëÐï?gZîfYyieN …òoí¿D ä%%çç$–èe0XØ/¬·1ˆÖ»`Ëî±ïçߺ7'·í31¸"†<¥·0«­ÿsÕeKûÂpŸ@ûʈÉ,Æ–N×?­õQsŸé:»ÊlZéµn ï“Ó¡6”''&g¤-èI·áØÙ¬Ÿ[vPžu†EŸƒ«ðä½,Q–z%nÚ3¦ì/¿VÂËy’388ýòV.¨îâÔ’Üü”T ÷¾¯”ïp”\¿aFÅë\¡»ÏöL^ÈZ.›Ÿ™—YTñóCLÔ[+±Kå/ªßuê¨ézõÉlšŠ`ƒJKÒ€)€ÁW,c­[õDû8FŸ·Œ3óùÅ2&7³E[> u0ðõJeyų1z£úL©K—„À\QR”“\P Ômq殾üŽ$Ó5fÜÊHRdïÒhš,ή/SP’™ r¦æ•eÎG'íQ Øí–i·mÍÿË™w'Û°›Z0œñÖµÉ`¸/õ«eã‘â¼U§×„Òšž Ôìmt™Qé\áÄò¯õž û&èzñiÎäVv?©²LÓ#ø½¬JìýydçâŒyl½k^MêÍU'è…(xœH·ÿó<¢‡Fêýëh]­à­HÐNô“G}100644 configure.ac”‰ é·¦[šAI7P”WÐJ½û³/Þœ háWxœëèØàÊ"âÆÒ»·iÛý;=JÒFµþ±:? mŽdÙ ×Ä %à-xœëèP740031QðMÌNMËÌIÕËÌc¸²Ìz{Ün½ª¤d·XQeá¾…ÏÏÚ¨þŒ‚9è100644 configure.ac¿ì8ÛÒôã¹ý2@c+³½„³R7F T½‚¶ßÜŒ"2}O],áñ40000 nbcompat’Ô4;¯wÎ:e¹´ÿò:C ³Ÿwutil.h†ÑÆóm®Ïq"[‚Zí.ƒ¥«“!HU]ï¡xœ340031QH-*ÒË`Øit0f’Ë>™v¡WâŒ?k'ˆ½–6„(H+)*pXä4_áqÃÚÖ7'óÃ_…]9¹ƒª =µ$¿ ¨¦qžOð¥:åÅk­.µ~¸sfÎEOÙ-059ùI k„OúŸÚÛúŸËzÓû¦]¿nØU‘›b T Z½ýÊ%¡¿»oêö\úV¾vr³TA^Rr~^Zfº^†^fƒòÛIOå~¤oxè3ÙóùÇ3[™î@äçäºb¢s*ìô«öç‡î¦©JÌã }à UQ”›bhfTsH˜ùcÌ+ÜÉúì¦1Ÿ‹î•úAÕg$U˜è-0¹µûyÉ”]sµG{ˆ?šs¡Â¨bÁ¿ð+¢¶wº˜Þ^|ô¯ÁÀc»D-LEIbI(ô,ºn–~_{:›»åyÍÙ˜†/ßÿ–‰CÕ”e‚,tY¨y?£äñÛkvfäο;ÂÁ®+ârxœ"Ýÿ¡ÿ¾e“‹;íá“amÒÙoßmC6é‘Òp“d=%Šá„xœ!Þÿ¯¯°EZŸº4Éð³üOûßœâR‘³YÖçÆ™â0xœbÿ¯¯óá€!xœ[/°^`ƒ+‹Èb¶Ý—{Ü´/g³¦/c§VîÕÍ‘,טí0dç.xœG¸ÿ¯¯ó)îuUå¶ ój—.Ø„¦­–VÓE}D\@ÄRv‡îWÌ=e˜ÿœµË2¶©/ŽmL;P.'k¯vž8~óéÍja|Ïßn plÅh –€„¦jÍ};ÞxUñ’¶peýt_;g5c0@ŽƒïUȃ‘W¨ »¿^ƒÅÖ†¨V ö3 Á”4ÏŠ¼¡4‹øF€]³âgƒŽ®?gІL"JÒàMá/ÌfžžÝ®ôy™eéUª5(F ‘ð¢¬Óáy0æo ? e06úNý‚*$< ;~iùkë½›ö<ª§¬öï, …  B†#Y½ãjö>EïÊéqóÖõôµ¶êÇ´Ê0¥4±iyš×Æ/ñÞe××T2³Ü¬yF?Œ Á ‚ãR–æO«ý‹¯{ß>Ä·ýC\Qúõø“‘{L0\H*tîŽg…LÑŸñÎÞ=çò¹€Ùz4‚DR1H¨½j~}èijÇ“¹öËZ—¹Ö¥#.ƒEZ£a¤I®gïXo,Û+â4v#häð­­AUTáå§Ïø½¯IíˆLå¥Ýâ¨5s£ d0H%K~#4ŸÕߤZ{4£bkpò„KS7L¶†ŠH“Å®)ìX¥\8]_x¥¼Ú#BªbNs¢.ìU繫ãW;XûÖx7DUØžÒ )DÄ4þM~¢Ü¼ø*‘½ûî–ÓÆéÌiÂaSO’öº¡Èâ—ÜÃ7öäížãYœحñüˆp%ú’§ U>OUë%l¿1;ÐP“ö%€ì D WÊòHÝpä˜ \ef>ÏjЉ…êEÂ+6Ä"Æ‚Tùz:bt®¬½ç><ßµ$EZgßqä‘ßGÄrX8]#«}uÇÓ/.`yÛäi׿ÛÿMÂPˆêÍe¥h©K™¸çÌ7·9[ãK‡7=xÕIA­º;Zêk³&{õáHç E×&ë¯fþIY%®úuqö°ò¢¹n£tYЇî,Éá0¾3 ôÕÐÔaýWs[ÖL¹`«ñnfÞÏ[þÈÀ0»ES‹UF voXsÄÐïGZáÌÍ3»õ`çö2ôžs®ï‰A%7ý²Ö›FÕ}qx—y¢çLÓ3åY;WÀŽÆz뵓£jê$7ÌÈé×1ó}Z¶ßÍ—FT* LMà^sRY9òX=0Ò â|_„ÅÓF(eÔ¸»|’J—t¯‹vÓä ŒÚW»¾U3a8¾¯§ÅHàÝHˆLÍ­¸·ÌIh1äkÍB‘Wr ½å_¸ì&çËm±[Ÿq¿ˆ;Q<“ÒMoÖDÉ//Õå¿KÔAô’K2ÿí¦CKå‹yxœ…zÿ¯¯ó‘U¼'~)_åþ™Ú)§×Ðú1®2<}⥂É)Œ¶ºåexœ…zÿ¯¯ó<¥i ¸KSPsyíQV¬iÃç׋100644 configure.acö#+HmÝ't ÔNÊ0¢³’Yr³/7ØüŽb­Äyœ­¡y’t Ö@3«40000 nbcompatG‡!mÍ;tYµÕŠçÐV;íÆï³|³8¸7§â•ixœ[ÈüŸiÂ>‘ŒùûwV*W4¼½[}—©³ZDf⥂É)Œ¶cmá€Cxœ!Þÿ¯¯°÷GuQ}Ҥ±¹H_µ¨dbæðØEX³ $fà0xœ[/°^@ÝÐÀÀÌÄDÁ71;5-3'U/3áÖ‰âÞÍÖ3°´.º›ÈwWmaÓFu¥ýˆ¥‡xœ]Ô}ô]¨[;J‰Ä!˜0µ÷¹“µå®ÑêÆ× ÐgÝÂÚ €gTÄè ÿ(AîP£n/šx1B³vdˆVÆ „yVʇ2ì"´Íž€Uýê£ÌîžßæR†HÂjÂ`EE-ÑÍØÌ;»àn´:èeÎRÿ ƒAP\!°”€ªM{ºŠZ«Ö êKÅÂÁçÿ §!„ ¡˜…žºúÍÔ²„-‡ž:a¢®Ûx·ˆrÄ0Ž`nVûTƒkÌ“¯xÚÞnº·}Û‡ ŲA–cÛ“ÂÞ9þ.ç§-çæUÙtÃϨ‹‘Ã@ÐטŒ¡ÿÍaÿ×7ù]ÇxN¿Hª+¾œ|<~† !Ž!BE-ÚQ|ÁýaÄg¦sߺøä]»ºÀ„BH&)ù®Z§Ž=Iï~¼ÈeUÛÈ*¯†LØs¤Ô ˆ˜0iV;Ök-å "vs?ŒÄŽÝÙëk0ˆ†,¼êlØù7ÚÉúôîØtnƶN¿ˆ6*\®Édi¯…¶ó‡Z4ëNdUïñÚ–6í™C×­ ZCD„ɱª/é^«^¾ù¶äzUoŒLC¯‚BìN L8¨+ôÑýƒW·bYp=¿)®Ú©Ì dA`kíëÓ)Ê ðÊ««Ý½[ÏZf²i#ÆAy%SM¥v/8~kOáî…~µ\©s ß{„Q(eã1åáÑšÿ¦ëL’#o-3Óg|J! ºBÈ‘1|Ó7äŸtTÔÚØ.vøŒe§ù#ù•Í„"D8¡þ×çc¿ùo²]Q{ŸéP¨¶‘ÙîÆ%Î{ćHX»>UY¾9z/©+&j0á¤5½t(‘½y®­dzVJÎÿ¥‹½][1ö]ßkZhD€HhmïDE°c`nÀñX,UÏAÖ·7²ÿ„dŒCR/Ó†$…úŠ­q³lÕa_GãùR*Ä<.hÉèœ1ÓW› ÚÅ®ŸDüd¨ç7K>23óV>dšå¶é/¢5q‚ÝóÍBzR £wî’;‘•ÈI,ïÒÓÇLf 'óšÁ/¬ûÊØ.Û¿yÖç«rvެV¸Y>l4 T‰HÉ©p8Ú,+¯gÒÈÆ/ÿŸº Ÿo©SµÑPðÈ|¶Nœù7£Ôe—ûRíœÈœŒ³ú@ÌÔÝÔÙßPdí— ïÃÕ³¦ã­ÃÝý Æ•#ÅþsXyÒÙ5¥_b|£ƒv®Sˆ™(è0‹å|µ`ñœþ#Gfå{ëƒÐÈa9N Ü•/–s–×¹<§ã¤ã<1¤§F0ª”ø„PÿÙÜ´­<µÜùÂZ´õ†{Ødg<¶‘V8€KÈ-j°,(,}SÚTøoösoz½äý°q¥XE>Û/Rï¾`6kšãR.—Ÿ;gºUrÄ`ˆo!?æJV|qŠéîüýKYèQß dá6¥‰“Ì‘¯úæ«;´f;Àä‘å‡%ž3#Ì7eÿ:jd¿”‘S9 {28œœ`@Ôåò—‰Y©Q³CÇ­âê±L!÷®¡ä/Aª·Û½NWé¼ú¿x»ÚÿŒõŽpƒÂ@²½ýþ.FQã·óÊCƒ%Aslõ ·(}£íÞÆÏWÜxùãý*óÏsyÞÁ"SIäVVÁtÃãM²8ö¦òpTK¬–“ãî J­pí_ï­Ïžp©ó6{££Ã¨0œ©§ÍÂàÞJŸŽM/¨¾·Ê]h7¼Œ6¸"ví@gÛïŠÊÛì–~Ÿ¸ýgvRqù1V~ÅÄeå­L3ƒ:Å—âçt¥ÑÉ×›*ÓÓsy'[¾X{¼‚Ëœ­,’ŠYbˆa´Š ×¶"Œßäº í‘p  >v˜‚Oû2nµ·;¢¹<ú Óöd©]hJÚGJ!i좂 ùWÒ3×ãÖÈ¡¿<,~êŠzX€€6/µÈ”é{ÍÄʱ&t^„ï\üHç@¹œ¨½bÈeüøí'·«øêž_/ïÿ.ЩÕ‘Ä!˜0•¾÷íÙ£•ÅŽ-áÊÚ×2ÐcõlÊ €'TÈàR3ï0^f_­f{.Dµj RF „yVÈ…R¬BÔõ®€yõŠCôöŽß§é ‘ „•„ÁòòÂëÿ±œ~jÖÝp¥ßËŒÞ%zƒ 8B`1}ëw¶å5–׬æU ù½Ïó ¦ „ð !›„¿òÕØÂ˜ûŸî?j¤¬Zw7O'¤0ˆó`"Áj|Ìw+zWšÆÍ]Óó´¹ÙxWóæŠ#dƒ Û¦'¹-œÓÜíöONO/³l‡Ÿé.F c8AK0 Mû»Íž%7¹m‡9v×Eå%‹Fߣ‚a|€#ˆPas¶åŸu~ò©ñ´·YWÏÎ2Ò!H A€˜|Wc‡Ÿ$·?žã°¼i`¹[M*ì:P¨W2DH˜¤ZómkÔ3¤1f}7ŒDÝÙå©7ˆŠ,¼ìTЙ€7êÑêäöÈdvʦF;‡2 \*ÉdI¯ùógö5¨VM+ßé¶9iÜ5ƒª[F´†“a^]оJ¹x6òMÁµ²*ωŠZ™Ð™¿W“ë¡ù™Sµt¡5·.ªÜ®H/$A` õë r?ðÒ«ó›NÍHeR$Bˆƒ2òJRÆê ­~Ì9rkgîŽÙ^•l±½¯×{„éPºÃòƒ'kŒâCoÍ 2Ѧ|¢C0@t…%¡y&¯Í>f+«´œ?׿S†•êŸøWæã  à„ú·ËÃz÷’í,As·q_ º–ÞìÄ&Î{DˆÛ?QÌxsè^\[DXoÌ1 jéP"{s])XFw-õœù¢¹E]2ô]×kJ¨€@hUçH‰¿­o¦Ï‘H—4EÇ>Æ77Òÿ‡$´ýb7ãš8™òÒ|ÃzÉòž¶†3uH.r\ØD yƒS‡Œ_mÈi:N¹h«åÖ‹>2ó–?¤›d6iÏ¡Q¼k}³Mö¹êFíÜyË;]?„–"ǰ¬óOÓé¬Ô«zƒÊ19Pö‡›¤euŒXzeÿ2¢9ûÙÆ*E%‡ 5ߎ5óf˜²èB÷EÅ#©£Q戉’êZ;£kò,¼RáݸrÒx´E°³—Þ8b 'ß{*#K<¥Â¬pÆ5Øgå8ö˜ˆ‚ö3öWræNí>8rpR¶{¾Öïe ž–âÊ\6òbñW§8­‹3ZŽÙîÅc:j(£r)Œ‹õ熺ÍʼnÅögW¡7œƒF[£±u”Â\D.HÍŒœÜœÀ7…u¹0Ÿ«<ÓÐkïçˆË… òE~žx÷½~XU•p¡èÈ´©ã¢ƒzCü¸ùç–2¢óŒwdïYðÈ??ÇÏL‹z~¯W ·,Œ¥|Ó5SÙ¢6ÙÆôÈ?D(ñRiAžé(ó×Aë´ŒÒIØ“Þþø="~òθ† … ›žÄ°)ÃæQÕX*Ÿ}WPò ÕÛ-n'Ê4î66ÝŸû¼]á}Òb[°^a ÙÞoƒ°áÛYÅþ¶¼¿i{7¹azƒ¿Û®ÁžfwÃçKo¼üé~™ég™öw"S‰eäî5&––Á4ýÃu’(æúâ`T­3 X)%ÇÝá—XâØ½&Ú]›Õ?âPånòFC…Q`8QO“™!À¾•<™œS~o¹3ßjÐ!ep)D¬ÑÞÖ¦¿d¥·™ß/Ø»åkJ\~ñtx—&Ø´Q $½¼Rsâm‚l”tº?ý?UNg¢©xœeÕy<”ùð¡RÛåŽ6­h ’r—"•S2fÆ3‡yæ™ižg¨ÙB„²¤úmdS«K˜¹¢6aW,¢Ã:¶FÖð³)ûK²ÏÓÎÓ°¿ÿ߯Ïù=ȶ¶Ž¦[é<€Å"¼õ Ùsè&{(¦åDý‰Ég³}kâÉÿ0…Àd{“ð†ËR÷_æWŹë¨U˜R³µŸ)É@,.›Ä!ÄSŸ.µÙÍÉT³ ¾C‰[“’ÿE&$ñÏCîöß$^ž(þy‘ã†_³´Ôv+ƒ‹Àh¶‘©Z1Ñkÿ¬)¯ë“+Ó[Ä·¢Â‰B1Uæb‹&Ü ê~°WÐ}bªÙÛqä(ÇûZdžƒ2^֡΃ÆÂ„o²S²ãÇsÿ:>›3Ö Û‰–^ëòºñî§¹…–ûNfÌPb@¿(>–³ƒ_OªZø:–üxˆ ^œ‘E$:“àZI¼Èhkk2ëÎß•Ñuj¤t€H„¶xkÄqêbË«–RFâËÇu©»dB@„Žó}`574H¾|EŸ²B2Ú§¥“«4,6€€§dÓo«mÇK¤v‘Qw?ò7ß%>¸ÒE0ðY…Ûky…ѲúïÊã„ñ¡ÑžCý¸‚€'@"ÏzGį7,NX¶åå™l^œŒ: 6mC‹úW—É×½®~sÿºv‘q;¤Pž$.#t\s½æG×4{?:C¶|È*¾±rüÅh' f€tˆ‡† 3¿ZNé ýjžæ'·~¹¨¯¡D “Ãélì¾ÔNœy•ÞþÂÀƹ~ÈÙµò?ËPžJñØDÓîê…oIÔáÆ2ªû d¤5Î]eÑXáEA7·N&Ž—¥·KÒmO¶É p#F¸|K–ö‘±B·ÿ~´ïùŒâîԴ)—³xÝ|´55gõÊ®µ{FY-ø]{PTêÎãDãWœAAw7›ò¿YŒJ.KòŽWtËÕË X¥Xˆ‚¸{äåkîtt~|Às¾Ý`Pë¨P ˆ’Map&É8YòM¾¢è„F¯_éÓÚ8áÂX ·¾åÙw#|Íà¬=ùkÏXï¼ìs <øØVíï$†±Á%™Þ›ŠvK"³¨Ý/q„ˆ-W¾<ŸïNhÞ&×µ„gý|#!::!‰±{¹Ç‰½s/±ÔêÎí3šTŸK(T”àŒÁð…tìÜv.6Þ–¾ÑÿRCAÐáJ^G^Ô°G©Ð88zó­Ñiˆ7b(Š‹­Åéà qƒYÀC“Ԉѿx4–&ÖáÏõÔkÍ¡Ûþš>%I¿PÜéLa˜û„ ¢KkLÔ•YÊjíŒ=òSôHŸ†›‡Rü“Fž#Õ¸–7ɧ]*ÕoH}¶ºeàôM¬ªëuèìí´åI.W ½2Äÿ ü%‡-³èO'xœ›$:QÔÇÐÀÀÌÄDÁ71;5-3'U/3Aíîq³ã6ó¬3­¯ˆ­XT¿nÚºPeññi%ņÆzÉ Õ»JÛ¿lÏ|¶efùÇÓŽ6lVÛŽ2O,2Y³™mv†ÛòðÍÓ§/Š_vqîÿ…›&îÒžÌÃhbóõñ¥¨{M±×ýúwµsggUT(œ™589?/-3½´(U/1™AðÃ©Ž…é‹n­qúÿì€ÔdÖÉ5Œ†"s‹rߟ{ØÁ!|ó†_ã„ Ïj¢XfM>È8+%=µ$5¯ è¬â%Kdíÿ&+¸JôJV™çÏJÎk¡VÕd¦•8XïÑØÕ`ñ{Óòà¿Çйù{ !”ä”èe0¼ÒN¼¨;%qδY*Õ²™ägÔšL~À$jæ^X{iÉ¡;=â·®HIzöá†kLsN~Ðø\¦‚…G,«Ô‡õ<ï™ËV¶%àÊ’ÍÚÌõŒõârUWW¸VöÄoÇ‡ÃæçþÇÄAõ榘fä5{º³àŒñÛKÝŠšgeÅ_=/¿¦$³8¨‚ñ×– •"×ÂdÍâ¹¥î÷Û’;Äa*²SJRs €Š&üÞ·BaʼÙçjÕˆ9n6H×rw4T©*†ªê˜ZÔ÷nÓ×þGlí±çDCx_N`Ÿ¬ÁjVïÐï?gZîfYyieN …òoí¿D vä%%çç$‚ÂèQÞÌ›3×=âŸS´2Ç£Ïjç‰ëa&@WÄðùç««‹’ –|yókþ]–¨A‰ÉÙñ)© 8cþ_²×³j¦½màÂÕÇ]µX¦Ïd™¼UÏ>?(VvÉæÓuv•Ù´ÒkÝÞ'§Oæd3y•½6ᆚÁ¥ßk¬>»¯¹øáœì÷퓃ØÌb,>ÖX™œ”½A`úÕÆ ·Pc‹aÉi‡ì…Û±ëòÏÚñü!Ï&½ÉGjróS@V/©æUr¼`þ8ú쿌¿…äËb&?e3‰¯½¡¥ëíwYÜÿ{ã-öï,{5Ù€ÝȬ5[KêjØÝm+Û×lÜ+"ð{¥_}ÌØŒD# ™Î>æW¯žÿã—/ÜiÛø¿çLž<ƒÝH„ëÎÒì]~²îíÏbtún< `ÌÙ5ù{¤å¢È£®îÇåög8ßU9>ó˜ÌÌ’Ä’ø´œÄôb É3åßÍ­¬›Ú­Ó¼yþ±‹?y×N.æ0´O,IÉïš·h^ÐßûÝ—úPî0­àør„9E)¥ ”#×uå Ïþåû«;v­œÍÏõÿPÚÄÉû9E\XUR$”Ÿtű}©ÞZ<9ÉàÊäN3Ëg}Ƹçg­òQ‹_îÉßnSŒ0µÑ·ß=9eËúÁøäÏù·6ðqÏÔ2´õ™|˜ÓXäšg×Z£Ç^u¶/g½ú¤¿Å–÷ï#ŸÉ\\F¦m}Î]w^ªP)º)ê­KóÒÕ‚PcË2A¾‰à;ô²*±÷ç‘‹ÿu0æ±õ®y5.vÃá×Dxœ1ÎÿýÒ‘'I"nbconfig.h.inäá\vŒð¼«–”ºf£MÞ8ò‘Ð)“?> ÆjâˆYxœbÿ‘‘ó<ªç;'P?´»ÄãÜú 9Ó“BF100644 configure.ac¾V•r-Å›@Lct肞3©³//¬~dVf¢ÕvX­Aé¹ôI`´O³rá(»áØuxœûËt‰q¢º§R^Rr~^Zfº^†^fÃO®³_jçÚFÎÏ.‘ñ9ô¹UÙØ/Ú¢nÏ‘S³rNIÛáÛxœûËt‰q¢º§R^Rr~^Zfº^†^fCºè1ŸÉûiFW Þ-ij –Rí›xAs²=£ÕÒ¨­xœeÕ{ÅϨJ‰Ìb°ìr ˜ü~~þQR6§r>eUïñ¾jþY£bOrµ‚/9øÅçôž¤g埳 vµ½ÞCbˆ&¤AlåïCþt ãÛÚì¹PÚìh˜aÆ—ý·¢âΊng,S{xÆ ¸426Ü0“ð—D…2DCíx<}ÙU߉ïx6Ì2Û›¤±û~Æ¿w’b½´þ¸)ƒwKG®ºå”¾œŠqK<h”~9 OÿHTfõÁ©¬s²CKxõ{CÅA79\Y¿Þ„þ¶MI?oHó9¿Z~Ïwfþ"äæ·É¡d½B9£ÇÛSæˆõÎY±‚%NÖçG•³rᬺ7ƒ U&§ïJ º#XoáJjë¶wzn~åÛ>KÍ­ÔáùI›Ã¢`'‰Õ¬˜žÕ+”ÑÚžÝ6-¨ýq_ ·I©Ĉ>û]ý»Ô=„Çž,yùþsáèBAŵ|´ÝBªM|™K껽ôµ›Î»ŠˆùÎb醚=ûžÕ–Ä—Uþ©ª,*qô”šM¨°w®˜b…—žÿ<ã†ËN¯RB§ *.·Í}·šÍ@â¢ñNÁlÞùªFÄ1Ÿç‡Ï\ú5w-§øa?ãS}ƒž2Ð5‰ˆ4& AóôG£­—F™­¹úqH´[o½1Ù BÕ»½7”&–Öî`7Þ·ðv…¿•̱­ÜšwணS³NTLÃÛ?Ókæ7YI DɳÆ×óÊ =š–dE®>ßÔùE±ŒðÿŽŠÛëZ¦{"c{·úægÉ ¾·n-Zà‚°Xõ+ÏåóúZ|#ï…ædˆ]:»¹Hš“ÈÅv\;±û£BÃTHCxµ’³J?Ì5ý.5è¿Í¾ör£–þ–³î¥ëÅs.Ê#l»ÃR‘lTZÅÑB…1ãȧ*¼ÖXÅ0~lˆ³±CQäm—ÁÖì™Y»—Y¾~=<)Eâ+é §¨±~(Ñ_ÖkJ5ü |š„ï–"6ö*cjö u~…ÀfýúWÚŽ³Ûì  ð‘*ÄÚ‹±7•ñŸzUêåªO,rQŠÛo K ‚°‹ðtb¨ÅFnÒìþ—óO*–ÿÈ7$ظŠ–ŠÂÀ&ÐߘX^Á|)ºA ×ÜSêÃŽ.“GÃÆÝë’xyÓ«]GmF²F§Mkl¿ $a¸0Î×Ó¤,à;RæÂRÎUöo± éN¸êI BƒÐƒëlúÀ( yxoôÁqÙãKWˆÅ?i|–7Ž„É_îÔçÏ&È0å“ËF3*NMÛ¨¡i%@ñ$®‰³*аOçNzý^k[ì4\xœ»!zCÔÇÐÀÀÌÄDÁ71;5-3'U/3Á{‘ú»…+ÍT®’æßjlzÿÔY¨²øø´’bCc½déOßœç;õÓâ?g®YÉàœ" ;ÑÇDäÇ$ÆÂPçï ›o0ß°òó-=Ñ(¦6qJ¼ÍµîY¥·´BíE•4~6Çzëî»õjhr~^ZfziQª^b2C×­ýfú.WV _ ­zÄspv½öd}Æ ‘_3s&uìßwýGù¯÷K´wž)ø±uóTFnF[îÜŸæ>xŒW(å[V2ý°°`ÿL¨Ñé©%ù%ñ9ùyé@7§dê_Ÿ(»gˆWç»?½8f¶pgÎæ»L Íßß½p(¤(0ùsÙÚˆƒ§¿’X5"7Å4#¨ybBнΗJ5öúñï Š¿¬RÈ™¼•e‘Uã¡D…¯ñ^×ï°¦ÌÑÒ:(,1 ª7/)9?· ±D/ƒAóÞ×N½kf Þô¾=–o¼vÁ¾œâÉY­E¾N‘ÛXqR^UUšsùs©¿›M7—3L~Àj.òIS9µÛls¥ÎkÏÕå¼/­èx•?Y›ÍT$óãM6 MÖM"&æ]\œ%7ÒyO.a3‹]ô5}eµŽê‹s¿rBzVûôð…A]RœZ’šWô†yÒrqþ“3ßI<» ùÆÑi5¹ù)©@EŸ'*ÿ6\˜qæyC¯–9ß…ðÉõYG'³³›‹<?^RpbÇ•â¶×Û+µÞ†®˜Ändf;ã„¿ëž¶}•¦Ëµ ‹l™µÔÖflF¢ÐÌ5}K8Üñ¸SÞÌXÍñz•ù6ÆÉ»ØD²§Î9°ù\Áy®/ÔcÞÙ®¹í’;‰#Ò†ãÛ~ë×k «Ž¯Ð-ÞtšÙrJ\&ÌÈ’Ä’ø´œÄôb Árþ°.É ü7«ÊòhîúÔ/-¯OžÊa!²b׉³B‚OÿJ¿úügn½à²?›rD3Š\ ÿÐd}fÒ“²²÷Äž÷vrúÊMà22¯µIÊÒ÷I·U°^Úëç‰ßoë1Cí,ËYöé”yn »îUÁ%½Ùx¿a þW6y;—"Õ“níá…>xœ»!zCtC-«ˆÈ~ç©·T"¶¨ßÓä^0öF‘i鿉¬î¬ò™ æà.xœ»!zCTÝÐÀÀÌÄDÁ71;5-3'U/3aǃÝO|*5ÐúÑvŒÏsÇCéê¹·ÛÚä jxœ¤[ÿØØ'100644 Makefile.inÛhVòúmÓ$¸ïm‰Þ͡ℊU‘'ÌøM³/wTÞ¾iB/g »ý-Í©ëHf‡2³ºÈõDýLöÖN²@á9|´sˆ8£µ·y“– B+2I¬á€2xœ!ÞÿØØ°}À¢¢ÅaDÐ)§˜Ïˆ Á‘­äB³‘Gá0xœažÿØØó<ˆËk…ÞH¡)“]hÊNŽ5100644 configure.acÒu“ÁâGŽJ°òD— NQyã´³/žóîò<„ý'@ ½«6êD¬³àøu(6àoxœ»!zCTÝÐÀÀÌÄDÁ71;5-3'U/3!3Tt÷ÏYD›·î6,Òµíæ{65o£úF.¥O¯èÕ²%Ý5¢#žqò\ÆæÅK–ÈÚÿMVp•蕬2ÏŸ3”œ×BOO-ÉL:ÙÁzÆ®‹ß›–ÿí8¶PÌÍßShò¦h‘\¦‚…G,«Ô‡õ<ï™ËV¶%àÊ’ÍÚÌG-mÉP)r-LÖ,ž[ê~¿-Y°CjjnvqIjnÐÜŽ€©E}ï6}íÄÖ{N4„÷åöɬ1"ÓŸ­ yÈš£iutÁÕÐMÍ›º¼­'Ï`‘ê]þ^k‹†•øÂ‹­iÓœyRæÍÜ;™“m±åìµ×“ÎZìÝ×|L”ß„Ïô­5Ô¾âÔ’Üü”T }¢•Óo-û¿¸€)eãÑ ¦ÃÑ:63Þo~ÊÄh³+ʶ¢øOÈ õÓM&(î¬Ï‚i/I,‰OËIL/šÐ2»wV¸2cÜÏÌäľKÒËOw†N.æ°‘ëºò…gÿÇòýÕ»VÎæçú(mâäý"WÊg5f$[hÈÖ°Äþú²aUjmÊäN3Ëg}Ƹçg­òQ‹_îÉßnS ·²¨$?'hßíwONÙ²~0>ùsþ­ |Ü3µ m}&æ4±Ÿ¼a¸Ã£ÿV÷ýÍ´;ÿü›ºÎn2WéŽå ½NxœÅ:ÿ’'100644 Makefile.in‘¤Ä"ˆL"žï_ÂE×X  ‘'.‘{zÑø£Ô­(F9‡$ tX÷xñ”“ 7]³€·åõ{³“ú†W ê^xœz…ÿììÏ”äKj´È¥1SW|Ù7%6KŠz«‘ã7݇X+âͱ‘ã7<â᱈ QmÆ.º ægWÕìgl¡100644 configure.ac#enS‚a鲤I·`7®éWF³V Ò2+×àoxœ{#òFDÝÐÀÀÌÄDÁ71;5-3'U/3á³GDTÍúô7uçûŽUüþ{ƒÅã`ÓFuW.Çç¤éÂ3xœI¶ÿ’’°@<ßäÒt‹ßk’¡FÇbEªéG݃É100644 configure.ac¨xpP›fqBðœöR³˜:k³| ª Ùã à xœ“lÿ’’^nÊÙQ®zÿ ›…òzÚÝuš G‘rƒä=“ݰGNÇ ¶O÷œá’ÿ,ì“ 7<'<7&,d.Šðæötç ôÈ5¢¹100644 configure.acMÆS¾/Vãþ®Õ]z?’$}¼ã³|y¢mh ƒ”–˜^õE'Á¨hÄÕj³ ‰_AWå€"xœUªÿ’’°­ÎŽ—“”Ù ê+¹"3t¹­Þ³ÁÃFWå(Ë×[F(†ÔUÇ=;TÚ½³˜öRk+È6¦"Ç 6¼!5Q³ÀÒ÷¾!Õádxœ!Þÿ’’°¬6.«½2iõÙË™Éxæ‹Êšœi³ÀÒ÷hÒá/xœ!Þÿ’’°„òzÆC¦Ç…÷9ÏŽhø‚òz-ô³˜úpâá/xœ›$:ItÃf‘½LOBï¬Wg”Îö™U_FØÊðêæ#ÌçØÛ1 Éà-xœ›$:ITÝÐÀÀÌÄDÁ71;5-3'U/3A£Æ$$ºÅÑcý‰Û¤V\IbþÞ¹Q=› „òázÑþ鿬¿XòâÁ¥¤xœeÕy<”ùð]Û9ŠH9†-+Â`†t¸F)tèB2žϘá™gÆ<ÏP³ÂP6©¶H©lŠD9")”2ÒEJi¶F2Y]~¿T~ÏÓÎÓhÿ¿_Ÿó{ÐìíNNfþ`ÄåÃ-þ³¥fþAv3âßyÑ-NåúöíÆbq1”æhË^¡hùÎèÐøê÷©Z•fA9ºÕäp„—aË9бºX:üÓ!Ù[é£'’ƒ¹“—~W°¶'àià£âî³ÔãC¥W'1ßʦh­W+6CñlýÃõªW´ŽiÚËÆTYUÆm‰wpáL§›©sEH Î­í¼¾Qعk¸…ÉèOæ1ó# œÔ‘Èšˆ?ZÔ*î¹Xt¿vˆ–ŒÒß{²òÇp¨„ Ø$­¢Zy-*;ÌÉ+¶Ú´;ó%C@HQS‹$Ôó,%Èà–^²Gÿ‰„Û?dÄ‘-Èšé›Ák÷ÓVµ\r’±¸íêŠTí ±oñ\?cøÏÛ/n—±eÏï7ì\à$‘`3‰|œ·FïÊúcŸiÇxƒø^ë*sG¬êŒBm¸#xœóK͵<_èÐSóY¹ùL÷&£Ð7òÆ‘âÊÊî®Q&ˆ+Cb=ûºI…BP”7ª&¼Û,DvÙÔ+_°wbk»b i0Q,dã%nH,r\¡@/ÜŒÜp!%EnYèû¡8°{_ïe÷‰Fýúî”âë3]7†à%CH ži/'J¡åÀËòŸb¶é°è§͸ÄÚ[WPײ𦠴€Õ‚@ Á„"‚9yëm“¼\<9iæòç¯äòq ò ‘L„ ‰Îi|q¬™VÄÜ2÷Õ•"ÝãVD¥^>A1†ç¡< Ga‘<¯…yo?Íê·ôÌìÁgd0” ƒHêh³Ø_ÇXÚÎXÔq68»ç¡©êµ‡Á#ˆ#^?´ÿEFë3;—Æ>—…U ®}%CH¯Ñ [.›Êç]îB„Òþ; î#Œ% /9½ö¬ÿÙ`yF«4Ã~÷#ei$_ÉÒ?³M§u_‰õ9œYºuaPú°ë²nÞšƒ›zåù­ž1ÖÓ…¾ù×KÊÜ£x±ä­„ÓñÍŽ¢ÿWçõ`€ô¸´`GÕ·<½ì–@„8PK›5ïb[ÇçëQ.š êýTÁƒq²4Ͳ5N•þrJU²kŒÂ·ìÁj]’ðQ"H¦[׬œšps4;øÔüý6kŽ{#EŠAb«Že¡ðô¬!æÒÒÒÈì Îç$ÂÄ„—«œuJà›´¬TN³Bu®&'ª âc‚Õæí *Æãj5ÚdôE{,P¬:O26G(®ºfæsöî¾fº²šý÷Œ:¦ÕÝj…ljb…CĹ^¯ûe‚‹êÈ‚,Ä~ßÍF¼q̶+ph¨!ë'ý;ûܰ°Ó=}o"/Úþ=V,äð <”ŽïGjb¶}Óº¼Ù¡Ï§ŒÏê_Ö;ö_ôãèÞZë´ó|´Æ'ˆ(³{)'yj$„Óöx ‡ æý%g´§Öv>ú¥.~Õ9ÃÉÆœ €¯ˆ%£BÚ·wÜtø}¶åþÀ£3ǬþÁ|[«þ'¬{ü¨pÝ­KÛVV?Hy5Y­Pòf3lG^ràèhÎn»ùåïòƒ9|ÁO5ÑÛ4g?ó™A6E©.YôÆÊßV·DiH,Œ „ÃÞÈI™ÛµŒ=rn¾UVLX_&i$!¤áb?ógÁ ÷)6g’ïù5gkN^éHÁä´@ÿØó¶‘±UmsLú ß:ÛG_OËŽèþ•ôe#ÓèÞÓ\`sDAS–K•l7íIËŒ½O[ÖúÇ,s™»‹Ìvdy´8? OŸ¸±®Nû»‡Kˆkù~ ú/qð€ $ž q—ÄÕ]×üã__±aÜÉíã~ËI6êwòÈ2JÈ=Z£`HŒÁ¸ qpbŸMüãi1ͲIaPjßsñH$Ú‚£µîY"£ûo´¨æÀbmôÅËÞÔx R7¬*—<#•ˆÂñýÞ.e’Gê: o$®˜_ƒ/Q.²°è2ñþºÀ+oFX F¡ÑÞ‹gI¶µªsÌo, Ë¢ËçnJÔLK~w{hE]*«©åB£8»/25"REˆ tÔ§— O•½µ¼_VŠH#AbøÄZœ·ôR›¯¸a²3|àÌ5¦â2YIPúVO#e4h+cXšq¤´Ã…Î6{ã÷3i0>Œ/­9]ØPñÞJ^oMü¶K±ý]cÜÈ¿èŸ4ÊÜBýžü‚/üqº9e…úM;ν=ð}ëËSÁˆU¬Y)®' ½2%ü¸ä*áŽrxœ!ÞÿÅŰ7¸‘úú¤vbøö%Hõ«>uwçv³Kús”ê0xœ;*rTDÝÐÀÀÌÄDÁ71;5-3'U/3aJÌݪéÓžZò•íd;Ÿn÷Dõs"³¹Ol1ÜÁQŸ+ è™úãòoFÙÉœŒæ6ª‡½í Ì5{¤Ÿ#Ÿ}Ôi:ÔÜäü¼´ÌôÒ¢T½Äd†ûê— •?82¿øzm±Ž£pÁuÇ ¶›kOr(£5ãá€xœ;*rTdƒ£ˆ÷Ë˺y|kJXŸY&iwÏ󾯡©‰‰šÈ„h ¤Çà»Ö „ígÞõYk6«í´þÍ|}ißÐX ÄÕn³JÕîö*Š”ížÔ¾– Jårh =:,ê:¾+oÇ¡7”àíÿyhó^1ä‡bq© Km,á-XE F °MÝL†V¯ÚFDQÍvýÉŸ÷²vºÄ{êa}º;ŠŽ ÂŒLV“äò„ø| û2ù¬œè¶¬p+3!Ïd;qmó$‘ðš°~Yf«án9˜UZ-~þ4î!Qk~8~ P0Êg“vÊ$ÿµ–“rq|¹ëaæçy*›Èa,¿ÜPóðÏÕ[nÇØÕï_¥;/#Šô@*à^•[øH–·4Ñ/tÇ–„°KA±ö5ñxè-•M÷t)Èî+"]æÕ.)m=â7‰ƒ“Äã í$«Ö›}¼ÖX;F)Q-lRû}BqJbhþÂâ qTŽö{eæ%{c «ÊfnÝlˆOƒ<>4«rÔ-o7ï:ù5½@…ÒEZ@xáˆ+>1¹¨y:¶>ó{GL™ 5¡,ãJÈî;¯ qƒÀþ,.-©v…Ó–Xëã5Þï¿ ·c·[ùâ£`ò¨FÓÚkªhdY©¡ÛV­#hÉ皉¸pã¥*ù|ËrÔÖnÇ\¾S›¥†á‡’œ¢¾Íƒ*G—ÖÜ¿H†ÏàðÅÒåÓñAõ³ºûž¤jµÐª*5? M=“cQé4èmoÏã:Ýr—œÇò9Ž9ÂÞØ±—ÙRÅæb绪¹Ú9cðBS£øØä»¯»1dr²Ôpƒ°šÔˆÔ?Äz „èéc÷ì½ê–ˆ›@„Á†°dYÙ¥ÅÍÆ RIé]×h¶yH­šKEM_TÔI@¡ÿ\-ÒqÔ<¨3üÛ·§¸ñ#£CÛt¹Óú5Ë«§W žIì´½$XøñMJ§ö½lHègÏ$ÎÒf© ³PPž¿«G/cT•±ØgJï`;œFÆ ƒYkE·5©­,N<^«ÃuÜYwã«2\0ùÄÆ&#*ÞæX”?P¿¤,ÔÎèÓ¾ó¾Ðl„Ah¹Îa°¹}×”6K­¶adÍqqó1üÚs@´-0HÅXKµñÏñÙˇÏ)3ˆ×)}OAVÎ(T.Tõ>W¾¯åZ¨¤°^?ºI°sï–(4Ó×ÂVÖFõWƒ)U¯#ÄhjY* ÍûÓÎ៊\Ž68d;ýÆùìg·–z"Ÿ¸Ô¬\QA*BCî§g>kêx¡Ó)—ß÷xÔúQƒ7õˆs/ùD™¥_žx}*¹K% gHíghj€BÊœÕ&|–+Ÿíüêuú”QŒia¾¡$ÊÉ=׬]7ùiŠÛ9ûy"‡yfvtß«¶'ÆÛðŽì¶¯ìolg`(U9K¿´Ö7­m!Ê‹ÛAÓE¦aÁŠôA©A·;[nvøSoð¨é¬y)ìüV‡IÌãúcÂö¿rR7¢ù7*ífAcpOÙÅÃ=YŠ8¤ƒ†¨pZ»Qø³g¼lan§8”rZð‹Â\AôuÖ–YÝåºóÚqçk„Ö?´ÏŒšÌ³'›È“5²W´U ?<ØüºÛè%Ô—#¬‹[¬ )wí’Þ©ûê(›ž€@Î\A Ú=„«-úãeÞv¾˜‰0°¹µ.lŽ˜Íó¡µG‰d·òˆ =s1aÊñÂ-›Lüeà³|‚"+#R ô99åÕ[}g¹…¥Øü ~Íø˜Çà 4TÙ,=WýnÙÐ8¤«ïäö®±W0„Ý£’å%Õç7ë š¾LïÚf’á=™€ D|ñ‡H‰ü”¿UÕQ&é ¡§Íƒ·¨C¼ûߎˆíÖÖ÷)ÿø  U6âzõBYÛšŽçˆ]˦ŸŽ'¦¶èæ^‰Ó·<Ô7ä~ž#5èŸÆÅ~µƒ“?õM´g†%Ûžµ-~VÃ5Y U,*ˆµaçÖ¤>³¨Âóö¼{¯skQãƹ>…¢ì+]k]Ì,Ü‹·Ï„_$V‰è2#Rc϶F¾ÁÚìqaÜÆ¼²–À•â™ëÚÛÝ¥Ša•/3Òó- Š™( ­²_Õ•)ä7xH Âeaó‹vÖûÀÖuåŽùf@êyüÍÆRù³Q³wÉv–Ù„‡m‰ìÂÆW‡‘£•ÄrN0°ŽBÛäT£÷¾òûûãÍÓq¢è4œðYÐl=Wÿ[!lh-¦ij]2þwv¤ãa°Ðy´æ(~þZX$?¨¬• x8Á*ñwšxïs9%¤<|_~Y´†ÜÆÍ;¢ç:p^YÉ!A;¹îTÝÁÄàM‘²+6¼ÿ?‹/ìêIxœû-ü[XÝÐÀÀÌÄDÁ71;5-3'U/3aýíiŸÎ^bmÝsì¹õÁ?ñÝ3OT?'ð{ò F×Õ¾kžï CÚ„$±ëñøRÓh!Q²‹ÑËó%h´(ùeiÝ_×)«ëé|Ž€¹æ‘™l ±m©¶mJì÷sëj…³ÓY§[ðu8@g {þódº¢@ ’—Ë’N+‘’Éô½´§r¤d¶XÝ[r1ZJ”Ì'•Q)QB¬7ÒJ¬»\¼£äÎZÌgc9+$$󀯣µ+“ÁEl¹äÚÂyš,Ž›…Nên8MšÐ†¥b§¸Üb­`ñ® <äªËÐ6!)D>ߨxúeÇømUP‚=yM诌e¬ ÆlÞ0ôúç½&šl¾‚¥ê©KìÑW¢LR‹# ¦TEc)G’òP ?ý;oœšE+hÊ•czä'!mp‚'çKYÂ@d1ÂuÉîêÀÃ]ÀBᾸˆ r;þIV]^ (V¦Dò]Èjîtm{>ÑǼ̥TV<¶”€6Ðí‡ål>½Ì¹9³l£š!Æòúvñëƒ €Gx®8ºs"ðpƒ¹D‚#8R7ÇJ 㘥c×ÇŒˆŒ§M";#v¡ó!…ía¹[]R­;Ü÷S‹ŽÕå.É‘jËVPîêão´â'S4ž^Íðv±pY’À%ôáe¯5c§u)Ãì8)ƒ„¹2=àc7ˆ§äÁ0¬{h[~zhÿÚï'Þ‘“âwK˾±®¦'Ò&bÏ©\êßØÈ©ÂиÝý¢^Ói›Ì‰=\ºÓé]¼¢I¶î¶>)^[o¡…_n£_@›«“CBåm‡’B«ÍýA«Ð_h‡úÃ*yÜoÕrçû3Ö^^³ñRËŒƒf1·PýŠVQ5ÿÛ.7óDÄɯ<ã8„SN ¿2ߺaŠ÷—ýÍ4*®ªÊYõ'Ê Ä¦僑%å,‹™`SD¢²TkëȵBþõ¥í$†5xœ» Ô.8AZÕØLÏÄBÏPÁÈÀÐT߈, -¬Œ­ 22‹sKŠK'šE3;û¸LìÈáñtòõwqµ·å431™ø©(&±¸8µ¨D/C!†‹“3/)9?· ±D?9%5­C°¤² ]0%³(5Cj^JfbÞäÆ3’©%)IèÒ‰@‡MVcZÈœ‘h4y“KR~~Îä‡LAl©E¹É‰“•˜U'+1‰Lvcv¯÷wò ¶åätðñt1¸¸Â=C<â]œl9 , ˜^fš‚J5”_«`k« T™Z¬Ä¥§ ™—œSš’ª ¤R­çäâT«Ÿ’¤ï›˜š–™“ª”ª¹9‹ËÇÓÏh›Š†30Ä4T4&?e¶—HÌɱ²NÐä²LS4­&'°ˆ°-OÖË·š<•¥l²5'§Œ^by6ÐÇpoMÝ4˜¿Aâ“ϲINÖgWà¬vq 9e²»¬=ØhPÌm¬2kLŠFAСšú9™I sƒý@AR2¹Ÿ]ÉÄ]ìšH¼Gì‘H<+K$^‡çäsMÛI¯Iå‰qxœ» ´[h‚Œ¨‰‚‘‰¾…¾¡‚¡…•‰¹•©éFÃp¦Ís™6³¶ö Êì Š#xœ» 4S`‚Œ¨±‚‘‰¾…¾™‚¡™•©©•åFC5F¥¼¤äüÜ‚ÄýÔ¢"½ 87-/7±$9(4¹•QU.žž“Ÿ|ͨ>y‡Œ^A~NÃÅÉ WSXšZšŠlXQnŠ¡™HÛJ&ÅÉ÷˜Ø6×2_fÒ2Æà‹'xœ» tS`‚Œ´‚‘±¾¥¾¡‰‚¡‰•‰¡•‘±BzQb^ÉF3EF¹¼¤äüÜ‚ÄýÔ¢"½ 87­¤È<ƒQ.–›b:9ŽE|²“¸\° ?'¤r2“š&\°¸$±$­Ù¼²L —‹ËßÉ+Ø–“sòIæõÊ Ž)) )¥¹¹•zù yù% %ù I©@ ©@VIbNN¥BjnAI¥ŽByFfr†B1H&'E½X!%?O½D!'3;UKEÃÇÓIÓJAEd¸&Ì@.N‡âÔÝ k…äÄâT%¨¼’Bf'g '+§–ž–æäƒ,"ÖÖ N-MN Ç M…ä"˜APÉÔâÄäÍWY´c6ÿg d¿Çjäâ&LxœUP=OÂ@N£S…ÁH[@¢ÅImtÐŃ¥w-§m¯iusqs1¹à?ðw¸gu×»RHM.÷>ÏûñÜsïÛÜ`ö©XÐêrUUkŠº¥¨5Ykl×6ÙyÑŠÂ*¼#0ð*=Ù"¾íà.C6$Ø' ¸`ƒß$€Eª 3^×Ä®oÅ"!Ï&ï±ã08®„Ä V˜ÌÜ NÛ’(ú†yÝð†QÿÖ4Ì\ 5Tž¡ C•¦Ó±Ã ÷ bIÒIëðtGwõƒ‡÷»Q•™5+˜{î9,Æ¢#å"ýaˆ8‹‹rÕa$.!¶¸" ¹ðØz<çCsؾ÷'üâñïp¼ÍŽƒ=»‚éûä³€(I=L mz™š§¹©¡M§NfÛ%dyZò’l÷4i']Û%èd-5écZ§W©ýL¦uG륯™•\’gÎÿñ£ìV%Á•rÙBlòoìAI,/ŸžíéúмîÊõz;c6¿2ùéä 5RyJ³û¬ô‘½`f$Aú)Åæ‰>xœkü'0AFÚRÁÈÀÐT߈Œ ¬LÈR!+?µ(}£ƒ;¾ý ÷ç‰mxœkü)0AFÚ\ÁÈÀÐT߈  ¬ -¬ ,²òS‹Ò7:p°Na•eWPÑðñtÒÜ\È*Æ „¿ hëBxœû)ðQ`‚Œ´…‚‘¡©¾)Z™ZZ˜*Uæççm4ç`ÝìÎjÄ  `åwxœû)ðQ`‚Œ¨™‚‘¥¾™¾©‚¡¥•©…•ÉFC>ÖÍî¬FÌÀ: ê€'xœû)pK`‚Œ¨©‚‘…¾¡)XZ™o4,dÞ¼“¹q³;«3÷: 2ç€\xœû)pE`‚Œ¨±‚‘¹¾©¾¹‚¡™•±…•‰ùDÃó¼Nž~¾þ.®ö¶œ¦¦¦›yg1²%•T¤O^Íô}òNæë“ß°‹X)ä%%çç$–èçA¤õ2&{°* cÏbÝ)l¥”YRÌÅ©§¢T¸¸@ ˆ°^2§Š†³¿o€§«¦‚І‹«[°¦‚n2’¬§Ÿ·&„Ÿ?Y†Mi²›œÔù@-Õ>žNµ “ؤ&/aÓž|“Mc27{Ääõìâ“[Ø´;̯ÙûOáWàç €]xœ»"ð‚Œ¨‰‚‘…¾¡¾™‚¡‘•±™•¡åDÃó¼>žN¾þ.®ö¶œf&&›yg1²¤–¤$m^ˤÇ4ù‹Øä?¬“õYçLÖaSà¬vq qñ ªìÍ&/Õª© R dÖ)¸t›’âÉl:H¼}lšH¼gl‘H<;vKžÄä>vÃÉ—Ø›hŠ;Âêtxœ»"°_`‚Œ”‘‚‘©¾¡)ZXYXX(¥¦¦l4×aÞ\Î|—ë gè‚)xœ»"°Z`‚Œ´¡‚‘©¾‘¾‘‚©•)*¤%æ•L4?¹™1”is9óG&fSSÓÍEl¯M èCxœ[-°\`‚Œ¨‚‘©¾‘¾¡©‚‘±•±©•‰ÑFìL*6›°3ʾ 'ëwxœ[-0I`‚´”‘¥‚‘©¾‘¾¡©‚¡™•‰•‰‘ByfÕDóèó‚Xyó’2KŠÁ„^òf6e&Ï“:ä€:xœ[-Ð)0AZÌÈBÁÈÀÀTßÀHßÐTÁÀÂÊÔˆ6®`åÍçâTÑðñôóÖTP±ÙÌÁ¦ÌA1 „ì€yxœ[-0Y`‚´´‘¹‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîDóèó‚Xyó’2KŠÁ„^òf6e&Þä‚ã Bxœ›)ð‘‚Œ´‘‚‘±¾¡‘¾¡‚¹•‘¡•‘BzQb^ÉF3+Fé’b½ …¼¤äüÜ‚ÄýôÔ’ü‚ H 'çäyŒò“2а€9•ì2Vù99ÈÊ‹rS Í  Êá¢Å‰†ÈªŠKK6;2Ý`N&-åŽ>xœ›)𛂴˜¡©‚‘±¾¥¾©‚¡…•±©•©ÅFC{Fé’b½ …¼¤äüÜ‚ÄýôÔ’ü‚ H 'çäyŒò*p©¼¤’Ê‚Ôb¨\¸ ?'g2“±pF¢²IÅ%‰%“™DÙý¼‚m†MbZ͘9Ù–¹…9ÓJaòAFáÉW˜¿0ÆL>Áâ/£œ™–—’𦠤^šX”b=YƒU™3F95/%3MÉzr«ÏäSŒÜ›W²naœ¬È. Ò4l›ô䓌ܓcؼùì±@E\Œ\è³Kòâ €`xœûÍ¿Š‚Œ¨…‚‘±¾¥¾¡±‚¡¹•¹•‰ùFÃFÞäü¼´Ìt½ ….NÎÉ9ì2“O1J ‚8yIÉù¹‰%úʼn†“Y˜®O¾ÃÔÂm¥ßœÇìÃ(¨œ™–—’𦠤^šX”bÍ9ù4‹2§rj^Jfš÷Åg³+ë^ÆÉìN“'³gx,OåvxœûÍÿš‚Œ¨™‚‘±¾¥¾™‚¡•±¹•¡ùFà Œ›™^±Äa =í)€HxœmпKÃ@pRI–¢ƒKNÔÒ"æG[C-ÖQ].É%}x?briÕ¥ÿ™ýº‰ÿŠ“ µ…äŽÏ»÷ø¾[4ßšï­Ýž‹z¶=°ì¡ÕsíŽúîÈé:mmü`è:÷|Áb,-’$æU(ä K¢°Lÿ(Ï´öE¥%qý9뎵²àt5d¡Ï+µâL”†XPªØ,¨ÓSF2RÇ„DäYA8®½ÔüGÛ®fH%–õŽÒ¦¡’,•ˆ‚§j<ª«VDž×ð5ªl’q(&+*Aù›)A ãa:Ã/)ÊR‚D– *|LQD…×é"`1%Œðb1ØÜ4n.¯nÏu½,›åƒÆý¦t”·¶öóïÆÇZÍ7ñìÑÐ;ã»ë.: +þu¶6ö|ÁC(w]G*/K3~DÓQåƒxœ[Å¿Š‚Œ¨¹‚‘±¾¥¾¡±‚±•©•¡ÑFÃNÁåÌ´¼”Ô4%…ôÒÄ¢ëɧY”9c”SóR2Ó”¬7gÙÌ~»(å“|xœ»)pC`‚Œ¨¡‚‘±¾¡‘¾…‚¡©•‘…•©ÉFÃk,›9X™»| oã”-xœ»)p\`‚´Œ¡¥‚‘±¾¥¾¡‰‚¹•±…•¡‘BfI~FåFsVäü¼´Ìt½ ._H ÿì’Gxœ{-xUp‚Œ¨±‚‘±¾¥¾±‚¡±•¡¡•¡ñFÃL&øø´’bCc½|…ôÔ’Ì ›Yœ ¤b¸89 “³ãSRË€ÜÉ;˜4X@b›0u2oîe‹c¯¥¢¾®xœµXmoÛ6þlþŠC»ka½ú%I‘Ë–t Ð%AÓ 0  $Úâ,‘I%ñ~ýޤlËŽÝm ˆ_îýž»Ü£ï®™ùéîü|º8;ÿõbøI˜¦ÆÉ$ŠÇQrIú.¿K0BÀÅSß1\ £dÑæ†KAà‡­B*ž‰,—uC d-¯ TÀ…6´ªð 4RšU |毸Yê+ª–Ä”h@·MSq¦AÉÖp/j®5sdÃêá½Ô†ÕœU ZÍ È¬3Zój rÍb®U™”FE0RV:¸–†yå~ô\ÃÃHê6/1ìG©A£ä\1mõnv>ZáÊÑ ¡àŠå¿·±ÌËí¸v‚¼n*V3a˜­’ëj€ÎŒû –V`ˆù`P\äU[0í=˪’¶ ÍtÎô;BTå%ÇàuÔÐ'2ÀÄ¿¨6бÞ{|ñµë öd0¹<™ ™œÎo̰jéª,C[Zi¹Šcµ–­ÊYWmÓâ3ìÁWØq×'936ç™’µÓñ°0Ç¢EPpadש Þ¸o ßf—}—æ.ðz¼­ÕØOº`[o%Ð>—ðVHóÖG¼̲æ†ä%s›ŒÜRpX¦zuW`ÂNY |î‹p«% b¢ ¶m´òV`u³4Ék`¢TÅ=yÎ §G2Ũ³©k°4èêÖÛ¨™)e!+9_ºXö¦‡¡ ¾OÞÀ­Ôhë¢2ì7XœBÓfÏ1mtŠ˜æv,ï?}Ä* .¼Á>búâ!.¨“ô œam¤Çƒay â¾É¡Ts¨)N9­8ÆÒ¯agaô>ð'¬òÖ¹£9!EÐAåùÔg aŒ¾sö+œ>[ÛÅsƒØqðy{}óùâm÷ÇwV37Ý KÙV¸X,Xc°æ‘Ö!ÆMé’ÆÍÐVFÛÜV&üc¾X-lkÇ„+oýµ¤q<ŽO’Jj³CðŸ Ä­ÔþFÅV)¿iHW÷ÍJx–¹Ý pص;#>:ž§V´îué=t«9 §azXêNVTa}N"ÝàÊ ¦•Üz–Y§ã—Î,IÖAkœä¶¦Û¯$§aѺ˜ŽJžS…ƒãp5ò‘©&·Iæ%®±¿¶%¯>]} &(WóF³lðM¹i8éÉíwý‘‹ö©Ë〭O—Çà! §ßNú³j§c¸¿¾ú“0ù)H#Z5%EyüwŽÀüfÛŽâI|ô2m;Wt.Ňj‰pÛ@R25ÿ§ˆF/4"w­¸¹Ã^&qÐûTñªâó½C2 ã`Õ¥}b«†¶á„ž'w”¾Pr—·÷_‚$Á ʦ¡6 ¼ïvBÆkDñ'Lmð‰kÈ®ÌNÄÉ(>‰_ ,ãTÀ/×÷Ñ¢›\?µp&XÎ¥”;ñc¡[Nd·Çƒ½²þM'6 ONÂt´_rÛ÷ úÞ+vÓ0±ð_l ûNpŽYìÀ/…ogÿ3óÍôE~ûç|­º‹÷€änÃÇÑÉË4ü>k…iŸå›¤a<ÆÕ€* .~üS.1Æ#ú¯9ïžþ{á£0þ¿ÕÜ#y(€mØ%±GÉ?7h‚ÿkO^¦AÝÌØ­‡§âÏ–Èåmpÿ%²;ܺÙ'C`÷ºÏâN®Žã;†‰Â‡ÞÑŠ%¬(ÅŠ@tÌÂÞâÒ1‚:C—Kï”_KwLEZv¶Eú,_¨¹Ê]õŒXBÄŠVíÜÒgE¯;§ës®|oÏjwüÊÆ^ö^3^uäˆ Vš¾¤P2Zà<ÄÎ ifXy§è¤´=<ÑžÄdð ïòŸ‡å«ÞÉ}×*¤ÇØMF‘¨n™tN5÷¸Ëõ5ŸÁåÙo_O½ÞWÌåý×KÃ^c%ù þ.[<à— ˜oÅ"à/··1’œ. d9LÛ;ׯîÔBd‹¨l†”ÞÝúþó £ûņO…óNQ z˜i,ph¶(iÇSŸåiûº’è:žãÍüób3h¬©#ÿ–5Ù^k „Ûpevqè9-Y™u|–öÙl^²|![³Åg¥Gî®qOv-¬)•'š><žãŒ.í°2eúD²²Dˆóà†Ö" |@^Åž¨}®0Üë7„]«O|„CP­°¾UÞ?È`µZEø©ýꌋþ³ƒ„7í{À¹ð<Š\ V0B—˜ù«üAcú³Ù«ôa[4øÉ‘¾¨~„,j*‰…Y·\=õ€:4W[ém ½ü?IIíëŒTxœ{§zRu‚¨¤±‚‘¡…¾‰¾±‚¡•‰¡•±©ByfÕF½hFÝÍë9ì¹£ bì xœ{§ºWe‚¨Œ¡‚‘¡©¾‰¾©‚±•¡¡•BQ~Jj^ÉF½%¼›Ûø2XD žéCxœ{§ºUq‚¨Œ‚‘¡‰¾¹¾‘©‚¡±•‘™•‘‰BVAjQvæFÝÃì›å8v3O¶ç˜ìÀÓ»¹•/“Л£àŽ xœ{§:Ma‚ˆ´¡¥‚‘¡±¾¥¾…‚¡™•‘‰•‰±BQe~þFÝÃì›å8v3onåËd?– «ëŽFxœ{§úKf‚ˆ˜¡…‚‘¹>*šX[Z™nÔ:ƾYŽC‰is_ è ‚åŽ|xœ{§zMf‚ˆ˜¡¹‚‘¹>(XYmÔ:ƾYŽ£™‘Ñ`r [ØäœÊ›[ù2Yˆ“þâE0%š²) cÆ ×æV¾LI­cî xœ["yIt‚¨¨¡‚‘‰¾¥¾¡¡‚¡¥•¡•‰ÁF­2VfKCÃÉ‹Y«'ÿaS›|†c²,7KqbNþf]Žr9áTxœ["Ù+1ADÖRÁÈÀÀDßÀBßÈ@ÁÈØÊØˆŠ“3róóª6ê?bܬÈÔÀÌdh2y1kµ¶KjRfbž‚Of^i…‚±ž‚Fy~~J¥&§Myf•ƒ_j‰S°‹^~Qºçä-l*“]Ùr&ÿa³e*ÏœlÏ.Ël®g<ù›Äd?v!×¼’Ô¢‚¢ÌâT˜q“²‰O>ÃÎ!o®_\X”ÌÉÉi“”Sœš\”ZìP\œR’^œ«—œŸ;ù»˜jQ~Nb^Š^fNNfºCzn…^J*ÐÒ` (ÐHKˆ “÷-³âø°¹„Ó€ØMyíƒExœ["9E|‚ˆ¨±‚‘‰¾…¾¡¡‚‘¡•‘•±ÁD­Ô'+2‰o¶dÊ`f2°œ¼˜5}27›¬²‘ž¡~¦±…§Mqj’ƒ_j‰S°‹^~Qº§gg„‚™žéäl“»ØxM , ›ÜÄâČ̢|‡òÌ”T½Ä½¬ ˆv]C=3=#°©“ùØ5umÊ3«PMö/HÍ)4Ö3†Zž’›œ 40'g²» §…ž§MriRêä}ìb\œ@Çe§–$g€¹–®.ÇßÍ%œÌ_ÀG²è‚Oxœë•è’˜ "j¡`d``¢o`¡oh©`ddehjel8Q3cãä錛µ™qÉ¿ Úíƒxœë•x&>ADÔ\ÁÈÀÀDßÀBßÈ4¶2¶°22œ¨™±qòtÆÍÚL‚,›ØÖ² ,ê9xœ{&¾I|‚ˆ”™‚‘‰¾…¾¡™‚¡¹•‘‰•©™BVNbîFÃWl›}Øg±ò¡ Õå‚xœ›"þZl‚ˆ¨‘‚‘‰¾…¾¡‚¡…•‰¹•©éFÍ}l›Ø[X´þ gá1xœ{-6Kt‚ˆ¨©‚‘‰¾…¾¡±‚¡‰•¡…•‰ÉFÍV&CãÉý¬U“ýظYŒô,8'¯a“ž¼ˆMn2;‡¼‘ž¹~qAbQ2§MRNqjrQj±CqqJIzq®^r~îfOv%Ôk2æ€xœ{-Ö-6ADÔPÁÈÀÀDßÀBßÀLÁÐÌÊÔÔÊÀr£f*+£éä~ÖªÉzlÜYÅɉ¥¹‰“ØL&Ïf³fÏ(MJ-*I›|“M†Ù\Ïxr,›ødvN^ýâ‚Ä¢dNN›âÄœüÍvìº,¡S¡å€`xœ›%úAd‚ˆ¨‰‚‘‰¾…¾¡±‚‰•±…•ÑFMu¶ÍUl ,²‰Ô¹·xœµ}ûwÚØ¹èÏðWì¸çNÀÁÏävµv“9ÄÆ gð<™¬i—+$atˆJÂŽ;“þíç{í—$ìÌœžiW Ò~~û{?6»ÿÄÅÛñù‰º¹™ùÑËý°s§Žöéêøððåüÿå‘:ü¿'‡Ç'ÇÇê6 V…ê}Y«ÿhì4›»{Mµ«ÎÒõC–ÜÎ Õ ÛêèÏ>ìà¿/éßWТ1™Çj߯«"WéLðõz•ÜÅYžøä,X$³4[%Á¾RÝÅBÑx¹Êâ<ÎîâhFÁ©Fq”äE–L7E’®T°ŠÔ&U²RyºÉ˜žL“U=(o™wÔ}RÌUšÑßtSà(Ë4JfIàd±ZÇÙ2)Š8Rë,½K"øP̃‚V:K‹ô>Yݪ0]E vÊqì·Œ‹ü|´_ZíSÖ¦´Üäl§`­8j0Mïð•€ÿVi‘„qZ$¹ZÀx8Œ–¶ç¯ & A²Œ3„‘:®.&t ¢ûŒ6°¸ÿµ(Þ¥Œ¥áf ‡èC;€óHá}¦–AgI°È-àéÀp`w´¹—û„A˜S$9NiûãÐÎâ Øêà±#zÊÁ&òtVÜñɲ0Éz<”v„ŸWéý"Žnc÷„‘8¡UØ Ø_¸ØD±SEñ]¼H×°éCÃq‹äõ6Î>Ç‹ø ˜¦`y³i–Óf_í«Aœp´U°Œkhg•Úׄså±ô^a‹Ó¡‡–ªxÁ»;Z¦E¬w–ÃF2>R3xQ 7¡$•¯ãéº&H`RЊi)ÏåаÏä}¬ÆÃ‹ÉÇàóÕhøcÿ¼w®Þ~‚—=5ê½ë &cÕœ«³á`2꿽ž Gcõ÷¿wÇÐáùs|…CuŸTï§«Qo~èýÔƒ­tGŸ:2ì¸÷ÿ®¡¼ÄÑλºï`s­'ÀGrv=ê}À Æ×oÇ“þäzÒSï†Ãó1Ã{£ûg½ñ©ºŽ b×ã^&™tizÀ¯áóÛëqŸ×Lz£ÑõÕ¤?´q ÷ÃXlzŸ‡Ú3i8ú„ã"<è :êãû<!L j]„Å w6ÁÑœ–0+ÀsâlV zï.ûõ³¾â@ûã^ެ?Æ}žùc÷íñš¶‡kãòvèHUÿBuÏìãâ¥1 ¸/H3¼À‘Æ×gïúH .ÿ LCíÎ’Ûýù>œ©÷Ý{7ãO㛳óÞÅøæ½mù—ü!?£x–ïÏß4ÿd›Ì¸´ë –ï1n ŸâNaë ÉîÐtâ1ÈA(J04¾~‡(É€ïûô»8ËVieÖ‹³ÁäÒc®ŠÅ¶9‰öü³^$ ƒäµsîà91º˜íÑ"™–@luë?Û¬@ŒFz¹êÍttч³3 NF×g Žó›A÷Ã%`ûQy77÷qðùÄYÛgx–GÇ7ãáõè¬wsÓt[µ`ý7áL—k`Ód ƒÛ­Õ>ÝážÊ"-a ªŠÐ1Ëâ°°£í´·­ƒì7.ûüÛV@øðÛ€]þmóºý¶ù±Ë¿m~Äæß6=ôø³kD™r1«hìâ€(Ï! îU«ÕnõPаIîÀ·<ùg|S´A Ôtžn%½Î(ÀlÛ»4‰´îÅ,‹cÓÕ•ÝúviàXÓš—Äí—Á— »]€KxÕ²…m}Öéý17¯l–/mªp©4¶«^ÑÿG³ä‰…» ËÓ¬¾}ÍD››|Íy.|¶¥£|³—<˜ÅÀ=‚Õ-ؘ™Š ä¸7£¥‹ 8²áýñùpÒ ÚVðó!¨%¯Õóýç¨Ê´ž?ýMýú«jÑû^ÿ­ÝnÛAÎ.G­t]À ùzï 7©ß½Vÿ¢WmgÆqo²­¹*5ÞÞô×׺­]Æ{а£€ÖæÐçÏð¸ é-iiá ×¢6v¦ Û{mï;ãÎФe‰g¶nI$éßž½ï_ž7G†4ÔŒßkR¾7n4Ž+­:Úª\-¼£^†}i: 'Ó²p…òë|rqóL•Í?lèîâã{06@¿v…½…£ûŽ•6£8Ïà ¬Âñ—ʺ?™®ð¹t¦Âà•z£ZÓv[}¯ðË }©vïl÷þÀíþ—GºÒ7,öq×Q‚f¹Y»ÙðY ¶:m6PÍ•¦ò­µ+=JtE¤T¡-¢¢_š ZC¾>¥Oôh7KÓ1ý«URÄËÜm v íŠå,Áõåå)æ:ƒþA݆!§î<¶á nB=ãžHÍØy(„Îãðó> *SË’Ö¿ †d~èŽh+X~ƒ”iXC¯?ø±{ kldq±ÉVª%c7¾òð]d£A$°ô¯²ó tÞ8Xšé€€`´%1ÝVksƒœ ÷‘Δ€k #¡¡k¦Z˜@," 2÷ÔÝ˜Âø”`þà¼Ñ[}mO––~™Þ&a°P÷Áâs®hÊt¥„ªOUþ°œ¦ à³`ûÀ{t&iªk" FË .‡ïúgÝË6n Ì!xÂfíÏ"¹€~r¨ý€Þ!ä9*‡cŽ;dqÅ«ts;G> _T ‡½Ae˜§ vðm€ðžçÔ7ßÇ·²$+ÝbHwž %,iÓ‹«îä=˜mZôm £¨N·Ÿ,"0ÍIf˜=]~6ͽ³'柭žåˆ{ñ!-ÐO ØFÃá䪋ÖÎ%Øõ—O¬§•·y%¨µð‰ÐNG( ¾ž …«/˜¼xÁ/Ýaøótõ¼P¸ö{õÏ8K÷T·p, _š€÷ŠºÈkÄo„%Ê;<ä¡,é †°$³é—ø G VØ./Fö¡æ°®™Ë¼7‡Âœ7AÊÁ+~€ÅyŸ¬f©¬ u –e‘ýløábxy9üHJÁï,].w÷È­wöw‘wöñP0ƒ…Bë=,Ò,‰]€zsòn@÷ ]ûË¡72üƒÞ™P{’åf@U8y¾Y¯IuT‘è‘•HDVÄ÷K³(ÎNÙ×}ŸÀ{·!Ò5ОTŒs4vÁZüâ,y,Q<°0FÃ5¸Bó²®9qx|ŒÃrçÌ,Ü¡v$|ë Æ ¤ùJè†ÿ·ëFmEèâ:"vËh¥•NŸiúqÙ—&B¨h³\>¨u ¬`…§½ >ÇVó(æ¸.Š×ÜÇÏïb…4 =Éç1³±†a¦1/ !ià¿q¡\@ èú%Oyp ‚ì'»ÅˆÉ†£C;á&C¤ßáñ“\%·+˜"r9¥Q¡ñoá]/]±³Éê0 òÚÁaÜR@â MX…<Ö|›S€ð,Y`#³d]`La-aœüIVù&‹Y60¤AZ¬Ô-Àn„Ÿ x|Êá‚0Ý€ä˜ÂÑ¡]ƒ‘2O—1³80Ó òÀeŠVèuA‚J&:ï38þÏ #05^pŠ Rù’’ò¨ ªfA’áXA–î:K§ @-e õà8xéÀƒqñ¥ÂaœÝÃûlCñ>xè6©%bM,{ñàì%Ýœw6‹Hœª£†7£óáàòŸø_àß-B\k&ù¿"*œ4ŒõKŒ* }a¦ _QØð³Üpf°1èÍ‘yƒKŠÏצk‰6µùÌì¸]«d’òé*ˆ¢æ†ë²® ™Õ½7ë’ Iq™‘«ØÁŸMˆá|—ä p#`‚èÌe´ ˆMÌšÆ&Æ39!2å¸r·¡X*޳^šÖêÑ ç9Ï’d€dÈA`;xÓV…J@¢Q0"¹²aiZÑ}‚Ÿ'Yepß{€Â—Ï b™ÞùxÒq›‘j ^ß>®YÉÂyÖòZ>?xÞf´éD—h¾‡k0ßÛ,Å<•æÅ‹Ñ¬Æ5\{khø{€Qx' r¶éòÍÝ£Ã0£øÎ6…/DÀöšÖ9™{¸ÿ‹Å~¤$T¢Öbºå€‹ÑÖÇ¥ƒèOÎ Y|ìXÏcm¥G"ªâþb4ºL‘¬8è+±Y‘O}HRÎfÜò&HBáì¾LˆPðÏh$÷sü ú/8î#rÌ–pœ£ìº€ÉRµ0 jÀg,h•§ÌhÉœÀgÄJ;Nh ‘sw-€•Øò7Ù¶£„ aÏZG:áG¥5+Ý;2­X†íofy73@æ&U+—vüß·[˜æ+æ)?õ”1VÖ©Ê.]߉(`àK[¦¨¬ãF´0ªQ}ª¡¯ Ch6Õ]6·“!ù,Ž/,þ¦• v‘Ó†4*Ô(¥UXâøîÄñ'›˜… L£ ²­‰Lz´Ënz@ÀP{|‹tm”DYF9ôÊÝÚõÄZºçoBÍßGÉG5qüN`ß³¹½³9Ýr6_ w´n9ïÐ|³>B4×9eÛ?0óC®€ŽÙ‚ò€øHbí²ÂµÃ}Ù£ÍoX[˜q©Šë˜a°â®Æ?ìªup¬HdŽÂ¨èEåÌ“<ª`ýN «NÅjjbþUëÆóˆ²åj[O«[%©_cRb ¡ž4EÉ?¦^(cuºÌ‰ ¶[¼x¡È`tvEÉo¨S¡\ožöãyE ʺ| ž`bìÔf˜ J/Ç#P'â«JFÖótŸ*Ê/sb=°-Ñùà`Y‡ZŒ£¥ÇÑ£‹+Ðef+ØgÅ}k)Ž#ô†ó­{ªáø ·A§” 1Ø€–‚e+ŒiŽ…f¹Gú³oÖcæ÷ó¿>w‘#C ´­îDd–%{?˜‡£{kûŒ]îÖF»ME³ÐnGrq{Œ†ê¨hG…€™FAº«·•íÇØíÓܶÊl+¼ØVè>ªÓ×Mê©õ2ëÏÚæÀ¿Õ7îáÑÁ >«Û¢QyÚÆâݦh¹DÈJãdç•¥Vs{JŒÏãßk>¨N¬å²}§Ý…ˆµôôÜuK¢_{¥‚ì–ÊÑÀÀB&ÀOŒ±Pð‘ê£VPp¤d¹^Ħtí²C½/Fœ!ƒÕbî}°*¸Â*ˆ"u»H§ÁÇÉã%¼IBrýÁª%+òk5£í~° åèi²LA†CÁFrô(‘«C£wc*£¯:|¡“˜ÖöBm á¹Îº_~gØÎZÓ ;ùÃ3ÇÑTyZò¤xïDFUú:ðDºØQŸXôi'[É»ë¹6M>|^ 0HðÍ¢'œ™ÛdŒßß– ÷;|”ÄZ{4†H0ŠtW¼\N´ë%ÒÎ8ª¹²ïÂ8@P€bMM0°•®)) .…íQ¬ˆ#1^Õ<‰³ çT',©hš‚óGÝE˜þàNâZ~Z’~àly#uŠoÕóOuÜ©3rîlȇHLj0“"Ï7Kv`JÀcj³ä‹X&’–С4‚£Dg3̹Gú¿3š\—”Àg(ªF(Ò®Ÿi`h]VÞ«Áznƒ»ã`" ì÷.I7¹ –åÅï †ÕxR}¤¯ø‡HÏÚåÔd+¯ÜW”Û¼5¹-ÐWâðí;‰•£ &vÏÛÞÅpÔ³DQsŒªgi7œ ˆØ„ƒŽÎ}AÑŠ.ï{”Äõi îYõC±oÈxX0¢ÎIHšnºN.yÇU’´BÊ•ööŠ­Ãtiw?}àô'½¿{dÞªP=+G’¬+[\N¸]¥È»k ¥: ¶Ö]ÁlÖ Hë[e¶¬ùã·Ì(î'žðÐÕ–D«ÑUª­j—Ä"†ªít=¦®3¼8÷ë4a0=jÉ3usóŽê"oð±ýòæµ:n;%MêÛBïß.|\·Q:éõàë ú3СðáÞ›(ºA™õÕ¤±³ÒDé «KE–„ŸÐ(Á£”8däÇ›¨vuvÂ.²Ha‰®úO¢8 ÑÀ  ;QMÌi*Æ*uRÐкȤ:}êר5%ÅKã2O©^:8ùB‰Ü‰Òæ¦ê|.Ù ˜¶aî ¬S°5_.á%ZA â9Û;ŒÔX §XÌãBjõQþ¨õü!79Ýpü:ì§r3ÅNc×çÚîàpÂB¢”²AñþÇ@¾@kës(QMæzµÿêíøœ ¨ü!/PnÐúÖkqšÒû$×™¥–ƒ œ|{ ¦'[²Ú,§q&ã9L OÓÃM~cüÀãÖ£^Ø…wì‘ûúðâ Lsýœ¬I¯õÁ-€Q¦…}«Óq€W(x¾k 2­h﹓ÑU]¿ "b"Zè³t³ŠÀÝ…F g€œíy|ð’•n¯KTHËfðT*ê#>äŒ9 +./º-nÌÅO·n€ˆÀ@;(ðÐP¾LÂ¥chL“fÖ!k;Æ­-°˜‡}G­8wÒ5+áaŠ›²/ƒ/”^%õ¨^ù—® ¹h ºMîßöb’§âý+µläÕ«µCÌ’ówF†TQxŠC€¸–¸Ÿg$ã}­9°¾§¢:ýŽj:M$ÇTˆ ­‡§ëêç$ l°, ϯ¯~ÅO£ÞÇþ”™†øùÜVTFõk}{¯š$ŠOÂq‹Óùp”¶’‡\nfŒd. ·£É"¡ßáƒ.‡°7%$ÀSŽ;°££. ”ÎSï]Åòu«©Cç3`Î"ŒÚ2œušç eƒˆA>ˆ‹rt§•Íïµg‚!Q<(‹–àAã°MPìE€ˆ·b=¸œ!  tzØÔ˜aÝœãFt5/:ÒovL–Ú Èôߎ|o«q¡pjûQÖ«÷ŸÆ\äi`¿â4 Ïëõ° Br€ŽÛÛ¦÷Ü;òšò‰ 5ÐàÖ–ÖÐñ¬µ£û¾Vÿ'Rˆh'ð¡ý×ÕŽeIþ2q%þ"¡¿Þ(~æ À'«ª˜˜:u@r ìŽ]Á'{›JB¼èúJÒmÄKÌyãèÿ¡¤yæ¼&AÚ>T¤PG¢«%…ãPn Íh³åsŽ·H ×¬ñ;ÉÌå¤à#¬-eD§Ãx`STÔÎJÕ‘3¡ v÷e/îb›RÏšåíY‹£4Yeäýj8%§àµL A¥çYpÞ*`•\Ë÷AñÜ ¦;¤ããô˜¢7Ý1©á:¸E#Pv«ÿIþ×Ûùz)÷,Ž3Æ5$Ê vVLÙµä$Ñz*Zòž‚Ê‹ˆ3.F(¨Ñ}@þǹ L1—ìovOh¡ÀŸ•Î’¦d%¾\!N|ô;Üf»sa×\®d™hƳ#Ï–rE,u&t{’š6å<ã´i¢´±#2(âˆ@nRªD+nÌL8Xš5²ä‘à>)AlüÝÓaÉä„\edàþÈCÛ.ˆì«G„´5§vöeš ØÙÆ–“6KcØŒºäËteè`¬ÓS"½ ­…„üè‰Ê´»ZD(òwHÊx²ZÁ‰-ÒtMN*¬©Ê¹œ…½"¹—eVf ¹º‘Ž5-D©^Fô@ †›EÀ5¯ŒÐ÷²ò‘së%.Ðð©¿bÑÚ6kÈØâá|t@ð8Èô!‰ØÄ`E’³*æ¨Ô&7ž6ã:ø‰øš:k0SÕ9„ÚŒCSÙ'óÒ(˜W ºçã0L ×îW_è*æÅŸ–µA?¢ºÎZ‰¿rYC”i'Úú•ñ> ðý~ødOjërM[1F^¨#ãa•<×1U°Am”lFmÍýÉ鹯‘Ë=L”ƒ¦ f1…ª®.¶Q‘!´BB&Ê5IR ÖG$)ç²kU…t¼6"BwE˜9«/¾KV›øÔ½W«öR#$B£ƒ M¡^¥Š3U¶•ÖÚÆÚÉ–Û#Ñ@S½y-T€À#Ò÷±P­6Ù30GŽëj¯9À™8»$P`›¢Óƒ”i&Öá±{¡”ècÊ®å>bΜô~Í`lQ–T5é>v0#c5סâVs=Ú#‘QvPJ•*w}͈oòÐñËÜâ7Û‚¨µ¦ŠÉ¸øöœCG&¯¤Þ+ú(±?IÔ’ÌS)ì²ç~Ú¬–c{ör¥š›þž6ëmXÆLÂd-BÏ'ðÞ+—ö¤düÑІôÑXÌ¥<<çãS÷>=ˆÁ^É=öú8uVhkÂÊ–­•ÓÊѰº^䜘F“³{ð1w€ûÈC>Ï^K{|]y~=øa0ü8°æ7u÷–¼üÀzïº-„¢–'å¢úGâ–†{yK>ÙÀÑ/#èd)«PZ†³=)ªjg|š:U(\û¹B&wŠÒ®ŸÊª9ù­× G‰ÔX³‰§k¤ßyfó'—&ê2ÿéŒ]P¸]¸â¼ë+ k“Ê(µÜÍøô^Ÿm) {”v»·Ç³8I}dСë9Y9® ¹M U;`FîÍv(°¥ƒF›5¥ÐÒP¨“‰ûa)îÈ+_¬SžE%|ê Å|ncd“úŒJÅá֮ŦÙT|w–Õ…ÝRu”Éc›§ _9x&!ú÷]· wÖK¹i‹@DI9$\§1vèNj§W§PëÌRåjys?V‚aO y•€M:øp-Ê IÛr]cý™ö4€À.€²Ó\ù”fÕ~”P®à$%P|â:؈*…S_J"äž"6¦RšD,¦CpíW+úž=7jÏ6±՗Π™ëçP°â>Á›¾9îÎáp |ƒô=ÖBñû³¦dâ9qÒŠÃWNDÛ`HµÆJ¤¨2Òã3}i‹©ø)iÓ•Ò»ï¹Ý–ü3uòh•¼šH%–Âvuå’¬tE]”97ChZÇOmÝ3÷Öšª¿w«·÷ê±Ä,³åúãÂÞÍâ¥l¹9D˜AOß2'÷¼¹9ÄL*Älï4KïšežÏ©ÌæFq/ï£$Q|‡fJÌy¥7è.AíD¢;ä¥ÜͧˆÓÓßVüøè œåH¾›Ü:j:ü‘«–koN "©z¿WßåS«LàHëmjá8}ˆçÞÏöè­(e¸™„ ZÂÀ†`:Ñô}[)änúÎ-ÕBè‰Ø‡O{oòâf‰Q¡× Ƽ=´8 u2®%Ôá’)*.œ›¸:Ä2œ,þÇD01›§†ud:»Q縭ݵo (Yˆ`tµI`”U¡óa-gÂ6¢ÄÚ­\³îÄë冾ö ¹“`®,.Í׉õÖO% ¡/žêí'(û —ÚFÑÏ=k›áEæ/|•ósTð§ÖQŸ<N|D²7·9äè§ž³f¬9NŽ˜J|ÛA¶¶Ÿ® ¯€ì“/ãj‰k¹RŸ˜jø.$4m°‚{S"ýb-RÌéÇ.rTt`Sqà[­³CÜ_œh’L‘*º,ºó“0‰ŒûâŒY^¤©ýU‹<æ8&_7'•~rÍ+ÿi¾.³ç:o˜¼Mc/ߢ'. döˆüÑ-yNÌ4ÍÍ¢Bê·ôݸØáã¨ù¬»'Š ³Wt†§çUÄT…»  Z¦ 1d›‚Œ¼8f^ ›Mó½,<Žou2•n”=—¾`°†oÒ“²6î‚žT7;!Wóäv®/ãkJ™à2U,ÈQm[Ò/¬àµxAðÞ…S"G¸Âµ½ôÕ¨tx7ßU®àPدðª=4o ã2/ñZ·xÊæ!ÖÀú† ÑYåçgÖuâ=—ü*M‰—ƒJ”Ø,³íZÅæ£Þ»Ç›_¸úMØ»è^_N<5ÁËç¨×2êT…úŒ GaØ äª˜o•ú¤ìÔ\s–ʜĞ'¯¬I½q=p’ñ¨þAÛyÙÞ—z¼KuI‘#4¤h$ï>:ÁJ¡¾¥Jz¹-+Hê‰OQÓ;n(ÌOB²©8IæÅ+¤ôÛ^ú&Ôd½Ÿ®ó‘•ŸõbÃ9›¯(•™ƒ¡ÚbD*g6®ÉÒÓýr©õNWÙ5綊ÓÿµÚ¿ÄŽ$”ïh†éá_ÀÒÚ¦ ŸFy͉Œe]ÕVUòa¼V4·}lüèÎÐL2DùëZÔ÷ØÀ#ÂÍ-•©€–`@\fü »¶Pˆ§¬î´ƒâ¾Å7×zwÖò0úÂZ´Ýöuüv)l°[³‰ö©ÚÛŠÂû4É!¬>ü›çsð‚)®úF[-ä­7}÷â€òˆÞ½ÆZ|MšðõÝZ¿øVÄö;t·3rÈ9 Àý½îeÿÝàí§IðÃ{Üvî–Šß^Â×9e ‘¯„ÏÓØægÍÁ:õ“\"ÄN…‹—É®UXq‰N“Â¥^)O4½˜@Çæ)ÒºôhåÙWD¿á|ƒµdÓ ;u¦˜š: –¾éœÅʲ… Á>ÑüInW$±M€ñw°Ë“JÎQ)ˆÃE±7%¿žš:ê˜Ä/j¯£„:ÆAyì^+É*ƒIN7•öIù+ö‡µa\{_[åR'Öi›|£Ú‹×u/ `‘åÔ©ª–Ë‘+¡©JQÀöY][‘<ÖìÁuÍß6MŽW0/ÒÕ­çÖµ[CàqÒ yvËKܑ߽n¯€—_šË³ÊÕôn$ª¦èÎ1<éGñÌ$¬Dkµ:ëm©½ýÎcArž©m²wàY q•;ïJ¦Ó¡}Ķº÷¨¾hXOÍ:­×AÓE…ß®·\-iÃwe5ÊgžÈŸ~úé„™¾õˆntúÞÜFe+A9·Ü j"I_䢙ýëDá+@NK9ü.ëEa™÷º>B®¶Å÷©Bv/©³b™ÑdØÞ·¾´ùÂ…z_öö ÏŒ½}yóæÈù|ì|~å|þ“Ûþ”Ù«.‡ƒw7oûP„^Û×/í/5ù­þøÊ¶úã+»/”™ ý‹[‹Ù¥Â(tÔ¯ ¾5s³"Ûk¯Y8%Ë´ÆeG-@²Ì)w$‚*äÁë¯È—¯°6çœ1.½ ³˜½8rËy®–›p®÷] *³½‡¼C·­4Éqm ”?Ç ò.$s ']ÜG_‚¡;\ÁQ“#þjàô÷läSb¿›šWŽ_  xÀô«”*7£\—o:}œÇÓ@ð‘‹è"¬ªnO±Æƒ<"z¹ÊR´‡Up ¥+7 Œ—pÍšŽc÷ùF]ß&7@bE~¹â`ø¡÷Áõ®yn8Z±øn ›iKТ^­¯´)+ÎÞ¹ÏóXe.Ð_ ¨ê¯÷û¨Mƒõ\ÎóÈ&Î’/„Ž"Á½…W}.Ce*æF!¶ž¼jÃý*q§íFeI•ä£F…≳–û»çÿu=ž{ÁL¬_üß_µ”mû!Tèož‘{E7*-_ëqHèãr)ªîÙñøfK¹¿°ííF¯ì«6}°‹¿c8Îwàà1Ý(Ê*r/dz!A“óo•Jè˹´ÿ›ïí1°«Î‚aF7ÄØ‘dÍfn¡3÷ÛØ¹Å {ÔÃäå,à·_ˆºE˜”~™¡þ—I~qm–f%=ùã´=LW¬þþQºjÌà OR’{³*£)Ÿ±æcèõŒ+ÏØf¯Í§¢1º ®” ªô6¦ÚâøXÛÆ]ÐÇÆ–†Äyñø@êàETЉ<óä;]Å8؆˜µK…S¹ëôDCÆñp¢Ku–P”5Yí×qøú+«f‘ür64ˆg]í¹g“2]ü"5:‹ˆª*qX€©NÛwµt Om P[~{¨[Áx‘L[°É,[Wl²Ò¼wätß;2ýÉÇ ¢ iHQ)•5‰Ü™î³ƒØ¹P¿Þůä*>{©$¿‰á MÞ~†„­ÿ„ñí ÏË03wöèÈÝã×âJÁ¨ò0{±,üALþoA|zcéÐxœûùñÌ7Æ R¢¦ F&úÆú†F †¦VF†V†Æ[˜6/a¾Èlš¦àáæïìïçæéïÁ¥œ™—œSš’ª ”—”œŸ[X¢bä¥e¦ëe(q)§æ¥d¦Mnc?†ÝàÉ©vBP3ƒ#ƒãƒ}ã=&/à´kZ€$â‚l©Mqe±~qIb‰^†Ô.. ìä+ú“Ù8uù Z]ƒ‚üü¦pŠ «òâÔ\ÅiZwyZI1ÈÑHv†¸øx:¡ÚX’’“™„d’â O?w4ÅE™y騇úy +–€©.ÍËšŽP=ù§“‚Áf.ÆÉ}ÜŠ›“¸Å Õ¢íÓxœûùqâWÆ RRÆ FÆú–ú† †¦VƆV†¦ Y9‰¹-ë˜6/a¾È¬“¦àáæïìïçæéïÁ¥œ™—œSš’ª ”—”œŸ—–™®—¡Ä¥œš—’™6¹ýC'gs¤O¾Ê¡7™Ói²7§Îæ*Îÿ…é†+"ìÔxœûù±é+ã))##c} }#sC#+#S+…¬Üܲ–uL›—0¯`Á£fs6_1Sq"åÔQxœûùñã7Æ Ò“96ÚóqläÐ(nK=á=‚txœ}RKkQ%QbfjUª©.>¤¤ójÒHHÚ´M &bJqå0›äâäÎ0¥ÝÜ*Z™[®eºsSÜèpÕŸÐ]{'Ó¤A7Ãåœs¿sæžï×YìÝŸØáò]QI ¼°Æ‹¤²ð ,–ÀÞ7Mò¥¸—Ð[»ívSÞl·¶;rÍ`¢žŽ MT×4 Y3I÷¸~šÍ ¢ã.{!yHTÍXŠËõ+3P^ÓQסœšøðß$þÇ+å¡0í­ c)šòa`)¶2˜cî¸Q®Yœâ8Èþ'õÒ„Õ±HÈú‡É¼ÿ–aüÉôpƘ®ëÌ5× ¬Î%mLzsH`zù°×ŽcIâà5€àçõ7ñ uóÓôõÖA>8©úWSÓQêá»ÖO·k9ßj­'¨§á zÌÀª˜ͳW+´gYÑ4ZO?—‡b˜àsëöÉ|ÿø¹¹.¬8ª•GõÝçƒrçÒ復§ìèä R‘2Wm6vZÙ¬7™R!G‘üŒœDòà÷¾û ™Ã=óè‡;xœ;óqã7Æ RRf F&úú†f †æVF&V¦f Y9‰¹MýÙdò’sJSR”ò’’ós KôAŒ¼´Ìt½ ¥É;ÙŽáÑ¿yû¦b™Þ $áˆxœ;óqï7Æ RR& FÆú–úÆ †ÆV††V†Æ Y9‰¹M½ØñHožÅžÂ´™…K€q³4·a“î„fxœëûʸê3ãii# }C}cC3++S…¬üÔ¢ôf>ìøä7ÏeŸ9›K¹L©æ …'xœëûÊøõ3ã)iK#s}K}#CCK+SC+S …¬üÔ¢ôfÞìøä7ÏeŸ9›K…qòTn1må”Դ̼TÎàÇÎâ’ÄC#.åÔœâT. ™ÍÍÜσX@ÜÍyqÝÌÖßÄw\`Öä÷9UFnîqˆœEÞ=.°v…â$k®ÉQ’›-*Ã#¡?ë€xœûú™qêgÆ R¢ Fæú@dl¨`hlehnel¼Q?»Ìæ©ì⮓|•&?ófTØìä»Y ýeá€Yxœûú™ñû'Æ RRæ F&úúFÆ ÆVÆFV†F Y9‰¹M½ÙñHožÍ~Œ1~s&¿ š/Ìk9ÉWiò3aF…ÍN¾@Á¤ØZ~ õ<‡.4 ­¿Ö xœíü8Èvaö)1y8 šIÃÑ/ùA{Ð?ŸÛÐ>Bž׺ȋ1p¯7AhÆHXø91ˆûì¢\ïÙØ;D@?÷Ƕ[Öã€>¯üs÷¢ñŠÈÇÍÜøÑÞm©è¿ÝÓŸúˆ¼ ‚0îK¡¾AHã«Þ¹ä>ž°I "7\zü>šºñbédíùëŠÖ=×óg)÷Íà8΂È÷ý“Þõ¸×[âåKñB5‡A”Y4p¿ž¢Òq…;w‘ºnxï?ˆc±õ·Æ_,´¡m·ömû•h(û&qïàÕÞw¯¶:õ¿øaêׯ¯G½qÿ´±õ§Íï–…°@qÎ䱇{$‘'E ÊV Þ"·ÔãÞP —~4FÓšˆ¿¶÷Ûßì½jй“Âxñ¶ûî²;9¿°-Š Ôõ`Û5ô‰Æá_ÿÓ"½ Ê8 À¾Ûℇ)­¹JiJ0ªÏCæJžw 9©™›¯jöH^ŸŽ¡‘[ ôjû‡_ hD>6^YbwW8"]žLýLéô HðHÈSÿlÏ>ð w4|ñþE»Ýþ€H߃A Ú<òoÀ²ÐĉnÈ èË8Aß?¦?ÁñŽÓà·–¸Mç–7\â|à€ÿ[–BÀy0àDù;³§`GCç†Ù§ÐƒFBïH:»žÀ&œæa[m d 7á5OÎXƒí‹¶CPâÇ”\ XÇͤU'pƒ!ì÷š>ØlÙÑ;·{?j)xÀ3‹£ðQ8KO¯ -³ê!D_. øæðFZ7ýþ*eÖ»é\¤Ù#ŠBðƒF«{1eüæjÀ˜ÁᄸðPàxAâ»`-˜šŠÙ*rÉ•Èiœô/Nm‚ãÿ¶Äsñ;˜çdoǸ©({óxá﬽x¶§:õüЄ…ùZ‡OÖô 8â`*q8,~×à€¸s—¦ V‹)ž‚™ F?•^ŒpWI¢?ïcöq©¥ÆP×hµµE®ÇÒqýö|K þºR[¯*.ìªêsR {£¦Ì—þ†>Ü‚(Sjô¼û“} fh0¼>7FûIÅ4f#âDzõËo#E^oî ƒM Ñ Œn6t®"ð=É)Þ…œJÐѾs{ ‹“æm¨t¯ÇëQϾ¾®›£HU‹T»µÞ1K|Ÿ;ñÉ2ùTÒ™Fw)ïQ ðÝ»wGâ ¸Šl[К´L[0 BphÛ¢q‹'N|ømb)•E§ýîYw >ÈD+^£­áXz½çxà$ÑuâÏ|8™Ìˆ:úµ[ØÌ?ºÏQ?VâVGèÍ‘âñ MðØçó·¬ +‡¿lUœòE+kf0¯j§Ã ðkµí¯¶¶ 4´ó{8††¿ïç-¨g~´'µí÷yã€æ½ÈÀ磃WÛþÁlNl÷÷¼ ¼í3lÛ5šô òƱ} £öŒ† !ßÌ[HBÓïyÓÕàÔuÙµíë 8ôciUl{2Ö¸èŽÏ‹Ëö†oßv¡©µ]×’xjŸ\åŒ}{- ÝÿíÛýý}£üá ¸îÐñu±ãmwü#ŽŸÁ?£¹;îõûؾ¿íuÔn¸Þ*Jƒ4šé¬ºèÝêÔ¥ÇVÅ*1¨Zÿcuò'õš,S9{Àè7\«Vk4pˆÕ€/% ËÊAÛ“nyØ'‰±9 ,ìEGÃN›öàTu|(t(rÇ‹BÇp`«Ž £Á™êØ-tŒm ê½Ñ¤ ?sý†$ñ/ŽÅ¾ÌŽ7¸´5>¸ h¦ëK ?÷qà‰&9Vú—n²9íæº—Å®9 ùD³äß4ø§­Ï ñ'OTSÀˆ@(/¨~¢¢¸Î k‚SkÞ\Çè2IqvÅpìÂñØ'UXb²†ÚŸÁŒ§Bû~Õ2ÏM8¨&Cq®zÒaqÒ¦¿éìç¾ú<€_ÜtôoŸaJ%¥æP˜¡çWAéäìyVƒÃyð¥Ûs+å{- –‘³ú‡q‚´þ¬¥ål†æKîÿXÓ»‰S Âì€YŠn@f?>µ(àÇÌkX-À'ÌÙ `ãnËeÞï@dÏ[µPûh­ýðƒ’Y¯òv›CÆ£ÑÄ^yv´'ÒˆôþMDªòÞO³9ÊóÔÏ|­÷زñ"L@$àH†Ê1à‰—Mh!ô²’ XV 0 ¿ Û?ãò*äË TFp‚Èa@¤Ôbm5Zâbý¼’ãø–Ô«!9Œð¯g– mñð?²ïeÎØ„wDVŒ`Àql°uŸI&¾sËtîîvh Ú¼AåDо¥FXŸV% JÛ‹OŸD™] ˆˆöºv¿Ê™Û-bÙ¯,sÛ‚Ì`«'ãY«¨(@)—.`6ØS¢L¨Öçàã6hF­FÙ[,ÉbHRØáé{”|BO‰IAÉAàÜ]pƒëMJ@¾T…¹C&…©ÀûÈÍòˆ‘1%H»‘,‹¦x>Iƾé^\LÎGë³sƃQj.‡£xL¡ž²¬k'™@vùºÈ¼òàÜ»"4W ýiϾ‡í°LeªÍ)Æ2•†n–q‡ï†qªO_ñ†äøhV§"&JhÖPR8IïÔ$Ù8Î…¨gÈ`¹±¥,îÑ– )ó(™Ú“rHÿÒ¸7µ /]3—ŒýþR+/8G{¹?²Ì]”´–ðÈ¡gW¾!“µr»Ç‚0äûõ!2~n.åÿºNгšž<¬eŠ™à¡âª‚jPÊ9pOE¸µgÐUÜõJvY°‰Ã!±l`â½øïȘß÷ðzŸòê«óá[[ŽŸ ˆ˜Ô À&8B8áã 2¥æ¨üÌî[kË¢Ômîœ4@¨yàòax xÀ?–1˜TByÃÍ|®`v_/®½ ɵ‘aBlòÐ…{_‘ÈY4¼ë¨õ×—2乄—ùFa€–ÀižSS42J’æ`k¦,3ój™™"r•2R«—Œ\•õAT*ÈX¸¡V]ùŸ/Z½n0Š$¶Aiß ynA$¯RU6ãˆnN—´€b#–e*á#–(b-H¡ÜVjµ„ Ž88ö^,)vB G9?-àY@L'/IeŸUb½Æ*J¹€&†p™Ë ¬ý½[}Ïj ˆ±)@û”°AÎüü]°«~¢£ýÓObìô“$NR»dy=,ÔuINÄÝÐ'w ³B\˜Q¯¹¸&q#šw¥\r‹i‰8ô(]»ž\®Î)+;F¥W*eú/%è4*ü¤{±ÁòJÃ%]“«[fKáôJ™äõ‰=8$¡x‹™êNUΗN8×^mgà´p0Ûä²Ã ƒfXVÀ,Œ¸Ø|ë¶yÖ8Wªh3s¬f¨án 4 ³u8@iÙÁpŠrggm@3g&­6»W:a¥q;8ÒÑwQ_¯ ³ŽÎ©íî0);÷`t»¢Ò@hï¬1CÆpþ+0•7Õ9¢†PY(?v¹ám’ñþàƒe†i:­]Âj48ëTt–®éewŽÅ¡‘þ~Ïɇ^šf”]£OÇ¢t˱†Ë»±$YªnãèOBì ¨X«ñÙ)Q†Î«é¼@ÜC±˜“Pž0ŽÀ¥®sp?rqÀAv°F á§þܹ⤞ÇJdœÔÙU‡}JÙø~÷àò”Ê *Å«ËwQ9Yf´±qoËaHé6¢a«ýªØJ*ARÉR–¢«–xI×RµJÉñ$­H×.Ꮅ†Q®¾Q&o&¸ð–/\|J¿ÜÄäñŪÖÒ4Ô<3Ë4 J^ dä¨ÀðÌ|”S‚ìœÆX+àä‰ù%GrJJ(¥ÁERFM•LNaîÚMçí’XyHª,V¤%*†6L4>™âNA ÅÇÇdå]i­p!…×ý%3¯÷›„,¿öSó¥'½sKI¢ÐÉÁ1Õ`8Ž&;t}J2sÁQéêuGËPKqCÖ¨”Åm7©ŒµŒXÔLY5cI·Y ñ>ßi¾×X¶Äöy8ê¦æz8%Ïb“ËqWp7äŠhA5š…+z™€À ֨ÖpÕçµ°¼F`ý„*å ñä¸Ñ ä⟸Óÿã›¶®ˆV!ùËsz×(ÀŠà{'Öîîšõè"…¦-Û_·uXGðå+4ÚCÒ.œ N{.v×ÇV'¡×W“ÅxCòú˜yÕ¢©²:ùÆÀY™ C¥jb„ê œn$…H©4¼]ç³-1¢²Ÿ†ddK”@®s‡,߃ü¦Ép/ÕnšWÀÞèboYb„kƒè=ºU¶¢xF_wòÛ`dMèßû!‚pMŽšPƒù(ãÔ¿Yp…vAM¥Žd80}Oz Ðϳ  *¦(ñDUÌÆõ{¶51æ‰M=³©§~‘›bé4OZñá¦(ô?’S!ôóç2OŒØ¿éâM‹ôE/ÉÝ×û ·CHˆWTþIõžP;MV;IV¨¸E°Ý«ÈS’KyI7EWÖÔUGì9%{ ëþ =#µ?:}Ä0da./Ó©Š,ÍÌ ŸæšNÛl2'o»£-éMË{Q\Uù]cû’ÞbjŒ¯ûãÓþ¨‘NÛiv½ˆ=ß2Âê¾üXèÎ6¸À°i¾ì2W¬dYf‹bÌëc%ô2€)˜Öî ˜IûTºòŠ›äQÅVƒÇäßïì”k‹:¹énmþÜôñ´’á‹:}Í*E‹Sç,J-¾óÍøT*@wM"$‹î8žÅi$@ñ§ŒA8‰abžÍÄ]Ëï¹(¶¹”’Kç«»5nCpâ%Gw:ã¤É$‡E‚UR=ˆó:™&zLâ%}µœÿwù›ˆXÒoMb~prÚ>KÖð/Š‚‚,ãÑ'í¬q´3À´Aëx_¡oÄ«ÏSÉ-}ÎÊóÄ÷ºÃÉÈî‚ïzŠK¬{)Ÿ· fÿ fž H_bøÑôpá0ÃS,¥U €G]w=¤†¾žpbЃ™TúçùnèÈxÛ¾&½Lâ,¦ò÷ützíÓuÂI¹ûÂø¯°bÃꃀ¦ k IÈŒg{Î@"O¨7”ðå¶Ì¹Eçe …2˜Æ fô2G†‡˜@ÄKçnå³é –¬Ì²(1©Ñ4È”e§yéùÿ¢é46ûó­ëš¥µä¥JºŒQ04V•ì%ÝY¾l(ÆÂº&W+5®ÂϘéEô ưÊ$T.Ð 0DiÞ6ØN{4úƒUžŒx^ìÜ{‡ïÎq•F:§‹9ûAÖ]ù‘ ‰–Ã3ó›òa È?ÆÙÈJôSP~x(½¸5f¸ào\.`ƒZÁSˆ¢ Ïøæ8~àfþƒL%PFü–ÁžbîÐ9X õ²/íÑÛv»yÿO6°¤m õPI“}ÞŒ}'3™.•®ˆ wóhfùÛŸßäZÄLËöŽª- l¬S«p6-‘Pù@e¼x Iò¢B’áR™vJ«fÏíHס”7;NøûSYIó Ãð B¦|K¼åîkï9$K*q"9ù¡>•YZ³ BI(kÜtfÈiy«ã8Ý-Œ9øã¨nedƒ¦#wŠ[ò­^Ní`”§…‡<䔼V¬žS.ƒkx?B¥c õ{mêù ÌsÙ”§n¹´¢PX¡¨<Ǹˆ˜ôâ4UÀñ]€þ\†ï#忇‚ÈÃگͥ•Å,\ ð:TP2ÅWÀèXëÛ(¼³Å[0ä}jä!àKIŸ«ÉÅb긷h[B6œ:¼Š 9ƒ¢ò«ðÕ Òä±]J®>sL¥¥Îߺ§Tº0ªr*çbaÍSÁ5$¡m˜ËšŸ¢<ü È&`*±3²¬F$¼»ë¹†3´ÙêH´8ñjfƒŸÖ’°Ïh•F3†µ@>ì<ì¹FQª]{7ÝL²®}·‡FÎJºòyOÿÆI<®ú%j©_7–.„‘nþôI,< Ïì·q±¶®–KÉè¼>Ùæ—™(¥£Œ _½’î¨×€´—CIg×!pãO`­1(«E‹¾Näyº™ùcIK«²…ï59ø¡%yÕŒ¯"ã]qÃN³ëF€H*C¦Ðw«liJÕ×'qšbi"øm~²ÏvÑœbèî$22÷ßäÐés:dGÙ«¼[9zŸT®¯n2ò@qñj=EÒŠ®'ïvj†¬C›F%Ò‡¥~ýª~tï$é*€2é»6rH§n_ºÂæ–Ü)h¤{~ôôÈ×€(ŒB z ¹³$p×uÙŠ/áe¥˜ÞÛK•k¨ÇoâOÍßÅSÓU6g€Ë.½fótpÒZ¢6ä¥çjN~iUšS*k úšß*9eñÇŸšõ 8kn*ª²e}‹eÖÞQúØÉLŠów.qÑ|þ Yíaétfå £Á™.cárnñ¨ÞÊ`«^¸ŸéåÄ.)³v%¿^¦Â‚[9ǘ‚}øó¸ ÐÏòÛ¬·0· ˆsŸÈ¥²“f©ý—tâ ¨ÐÜ=à$:”É‹nTuÚkDá0Fèä˜VewëvʯPîÆºÃPYìV6Eð\V˜û²k°Á’Âî|½߸ZZš§ò™ þ"šº|)êØüÊvõ;ÞOF¦™²µõPÿ‘ üé)âô©ß©»ò§ é+/ —pB~eÄb t…&£«)”'½,*%5n|a®ª°ÎƒQ tÈÊÉÛÏTxÅ‹ÞQ T ‚h™eŒC)Qzû‡“ŸD¦~úwwËoHxj â¦/°ˆºªz$®¤VñE&f‡dM^ó´r?C~Z žÕ»ª´üôèïÑ}…§é/Åð®#ä‹9¥9.L "O¼êî”A¼/…ïåßµ€¸e{k•m±ýož_Ê#àë?ü¤ MÿPh%í¼xœ{¿‹±{'ãiic# }C}cC3++S…¬üÔ¢ôf)ìøä'oe·Ù|•cV-3 ï ¼_xœ{¿‹ñÆNÆ ÒÒF Fæú@dl¨`hlehnel¬•ŸZ”¾Ñ,…Ÿüä­ì6›¯r´°j+§¤¦eæ¥r‡8†p—$–q)§æ§raÈl6çãgeq'{ Oƒ0DE6³ˆüUó6³ZeÊr€X ZÅI“û¤Å&ó†)o^.ˆ!:y}ø¦ÍÛ"w2$°=úè€xœ»±“qóNÆ ÒR† F&úúFÆ ÆVÆFV†F Y9‰¹ÍRØñHoÞÊ~„ƒ1~s£ÀwVÆøÉ bU@“ø|] g¥Ë? g½«¦8ãú¶ºÏxœµVasÚFý,~ņtlÉ!`ìN›˜¦S!ÎöÍ`‰J®§Í(B:Â5BbNÂŽ§éïîI`¨öC§|q·÷ö½·{wê߸¢£3ˆ¢u^ŠJäwýÓnÒ¹ƒ~·'ÇÇßöŽßôNNáøôìô䬿gñØç|cõZ­ÞQ ŽÀ)VJ~\T`&ôß¾ù¾ƒßoOqÎ|ñQäU Å*ü;ÍåP¥¬hĉ39/T.ã.€e ‘JP¢êN¤]D¡$¾HeY)9[W²È!ÎSX—de±V‰Ð#3™ÇêoYvà^V (”þ-Ö¡,‹TÎeFb%`%ÔRV•Ha¥Š;™âCµˆ+Ít^dYq/óy*iQI(´n)ª3zîwÿFMël8%EŠ‘ë²B9UŒ\ 5žw4Õ˜F øÉ‹J&¢ƒ²„ ñæ1­–·Ï “&Y,—B‘Gpò”&ÜqdCu¦k$÷ÿpZeƒ”Éz‰Å7Eëa= œW°Œ+¡dœ•Æë‚ð® -î´ ®zÍçñR<ÓNyñ8­Ë ±‘wU¨²aµŒ`&¨PG"OqNP« •eQ ¨=ÂÕ)rÄ.„9NÔ~”żºÇh°šæ‚r%j-\*©ç5U^·WY6:hMxɼóðÆöàóÄ÷®ùˆ`x‹“ |vÁÜ0Û㹡χÓÐóøðÁpÁá!M”íÞûeâ³ Ï~5sÄA`ßvC΂p×OGܽ袀ë…0æW<İÐëP>zº¼s¸b¾s‰í!óðV:ç¡KéÎ1Ÿ Û¹3Û>L¦þÄ 4éñÀÛüŠp[s»FY\ÚãñžNDÚ“9dHÑŽ5–΃2GÜgNHzŸt Ù;L˜ÃéýÂPŠíßvØ€ý<Å œ$´‘}e_ 8ó_lÁ’8SŸ]a4"˜ƒ‡ÓÁ…ç‚Bø€ù×ÜaÁÆ^ ›¬ƒIB[§G´ §ñy8 ¸6Ž»!óýé$äžkÐ¥wƒÎ YW´Éž«5£IžK¸ä‡®An.Žûä©vÍ&/tÏ m'³¢ŸáŽXpÙŘ£ë£Y€nxÀ,,(€×™oì[­qªåS±[ý¸Ó¼]Ràç`®9‘o‚±Þ4wNHÁÔ¹lܧ}€WÇK™'ÙÇòYR,WqÕ]üøÌh/Iż¬çæ¸ç2©9æC' '°àà^l†3™W–' ð{E?­—õvÛ5éË2Ló®©uü˜bb?Q~ ¢yÍÜ*¦½`Áë×ô~9Â-‹÷uCY¿jdpã‹Å,k¶M»>q¾ZÊÖluì¹MÒýl-c·9ihÐúkÃVƒ–AíZÌç¸}3¢·/ìoˆPÀ‹wàNÇckÇÔ§L ì›:ü]_¾ÔÙhàð·ãCÀÝ—,”ŽëÀá»Ck HÉЛ:ÆÝk{ŒÌ |÷\cuÍ×}Loü¹µÕØ/àÁ~WSìýB¢‹ævŸ6Ij¡–eà!†œñ_.³J®0º’ôò…†uŸ¹B. ð¯õÂ÷ƒ¼zµBW -ù…yDQGû ú–¥'Œ™Â-<زlzä)Ë2t#ýøñøý³õ­ý±³xœ½WmoÛFþlýŠ#àÄ‚¦-Çv¥ ª8J¢«ì–»ƒa+r%òLî äÒ²Pô¿÷™]Šz±ÝöÃá X¢¸3ϼ=3»«ŒÚ—Ò|쑈2‰,ÈOüê't|ttvxôúð¨KݳÞɽÓú¯–ÅŒsj·b•µìþ©^Œ?‡×Wÿ Ï¿^|ŽÍÒ¿ŠÔ©h²¤Qu/éB.&U¡èç ¿ò_”4“2t1{ߨܔb&{ü¸÷¸s!K^÷é\D‰ü. Ÿ†*ʪX–x§cé[ͽ=Â_?2©VßDYÒ­ï~|ivG^cMN§ 2[R¬eÙ>ø?ÿõ£ÎÄ6}Ûq¤‘¦w´´o׿•öD:Ýxmåjÿ9öÁxÜÿ<¯ã›ÑukÞj± ̽Y)_Ôklí­S`_¸,@áãàÓÍeçi¶}ºmíæ¢Ýõ©}lWvã¿¥ökºÃµOÞÖÇïàvó¬4Ýy­=þGàF–†öoÛwíã}$eÿ²ûoÉ$R½}Úráñ ½ÖÞ4mA÷9↗¿þ…XäÎQ>CŸ&•¡ª”vqe›RU)bÒSÚÎÜ‹u`µ¿YÝÿ­›% ?\õáÁåàºG¯†qÐÖ«QrJÝ7o~<ìvÞÐq·÷úÌŽ’D,îí(yõܨø§N}2¦1,¬ø/yjWïºNÒ’"‹ð*v—¾U“,,ÒG‹T ²·¡â{ª öo¡‹{ó9t׉0X‘1•:º—¦ã‘P±˜I“èÒL–JäïÒ2¡i¥,#Ê€èFŲ ±ÎD‘‚G,-·Ñ-°Ñ.KÕ=-R“ÐþAæŒÑA¦Êl¿^ ÿÍ8rIe¢«,¦”6?¬U-P£¾O ÷*4)¤¸/Iªò @Á;“¤jVR‡³Àt*rò$ƪñƒNP ¹ Ri=¯ÓSÖ9”èA¥ SO-«y¶äRÁ ©”0˜³>åB-7ÓC±ÄÖs ($¦£!±à'çré7¥ÈS8}/Æõ„‘¶®uñ\š”¬pÆÁ ÃCæk^ˆ’å’e_„Cažb±³ð]Í,P¹Dgç%-ÉîK26ñÄ)–ÔAÊ0­2ϧ²ŠžãJ}ÓI€=ׇv¹ÂÚÑá,s¥®GÃd®é,SöAX‡‘Äâ…¼Ú½ÍæÕ*rNQ—ŠSl‚…T¦®r51Hï¤ÐÈ3ME™jÃ>ò—Àõ‰Äª(f›Í›Æ¯š²ÈX RÍa 9DÛQ)穳û•K·OZI(7r!K!¦r~’®ú[2ÍÒ:¿njsŒª Iû߆Á.ý=áúDø@I/”…Y¤ ñ¬Ø&²L/ŽUDet¤Õ”«S0#˜XÈ¡˹ćâÄÍ5ƘIƒ"˜*3M®«µ#¤ ðˆ±WºÇspÀ´`zÔ$‰t>GèÊ k¢Bƒcœ[‹–ˆÉ~¬c`àLZH;šlÞP×K<Ül`ˆÚ»³Ð£Œ*#ã€Æ)æB-Ù„]ÛµåÑL³iWóBcøJW&‘ñD°xØk¶f {·<Ãte¶*î;8v-µÍÒò Æ,šå[ÊK9܆—óuLdtoëÏܰ€õæ ˜]êÊ–[`‹ÉçÆ–T»iŠybà"ÒçJޏ c°)kLLÕlÉÚ1C²Ã⊑&hÖ@¸¡·µ—ol¼aãXñŠ.xh6#¤ÖÚî ®÷·XN¨„ö‚к:i þy=^ãŸB¸qÞÙõÉg Öë\Ò×1ëËY°ÚÁ<šgH [w±õœJ‹°:xíÓ.49Á½4…P³••ñð[ƒ‹´w¤è­·l¸µ§fVÂÖÐVƒ¯Á¶\š4‡a×dØ Vñ[›&ÿa§³“¥éäz’ÙY˃¨ž [(Õ Œ‚ë6ƒ©·!ò7"ÛÆäÆïvN Ôæ·û;’;àŽ®;àÞŽŽ…óVïêûÅÛ Zyë?D³Üz1ÎÕ÷ŸÅxç”ǬNšô©Ð9%2ÍcÍVWEäîIħÍè]]¤8rËõ©ؓãŸϨ{Ü{}Ú;éâ {èܾ¾^ó–Å“#  0t2M#ßrHaö¯¯¯†n®aÈGêV}X·Ñ/?wžàx­æìþ½?êˆ(ŒÂ-‰¦¾ „ÃOƒÑx` Žú—ŸÃñ×›«sü¾}•º‹ ý\š$’÷-7¼èA§1BÐ~ð¶ n€…4¸v{ÞÛÖ¦J«Qiý†tóÌít!ó{ëîλó[·ÏxË·‰—–”†š×j.íg„ì5cã–aÉ‚//ýïƒíû„›Î-fúŠ70Ìq·w¥¶&Þ¶Àa”º&õõ÷9'<{‰ùcsîä ,xœkVš¤8AFÚHÁÈÀÀXßÀRßÀLÁÈØÊˆ Ò‹óJ6š»r0¦N®å¸Î˜89”Óš1qóDNiÖɬüZBŽÎñÎñññŽ!!AžN¡!®ññ“ùýÔB‚"ãý}<}\5¢¹”3ó’sJSRlŠKRr2“ô2ì¸bu¸¢'åbÒášì ÂZ™Z f‰MX ݦ)óç€xœ›¤8Aq‚Œ¤±‚‘‰¾‘¾¡‚•¹•©™Bq^ÖFsWÆÄɵ×S'‡rZ3¦nžÈÉÈ„ühê€axœ›¤8IÑ0%/GAÅ3ÅJ!19'?91G/×D§LÁP Œ ŒõÈØPÁÀÔÊÀÈÊÈh£a¢ß“ëjAxœ›¤Ø§8Ar£l©0_³¯xœµU]oÛF|–~Å PIeôÕIí$(Ež¤+hRå‘vü¤Pâɾ‚"’’›þïÝ=R2m'hP ~°O·»3³³«ó /]YN„}Q±ËUZnúkã£þ¸ÿúuãáh<¾ …áÛ³Ÿ_Ÿý2†2ÏR`íà%ôíö ÷ª =°²Ýç\ÝÜ–ÐYw±nø~Ïd~"KS™®ð(sx÷'ÝýV‘ö³üæCŸŠÍ$]\@. ™dL÷òe¬Š2W«}©7JcØT E¶Ï×R߬TåŸa“åÛ€;UÞB–ë¿Ù¾$”m«ZG„a@”KØÉ|«ÊRư˳ƒŠñPÞF%þ’ˆ“$ÙJo`¥±¢¢‚P¨n+˳ZÚ¨ÿD]Ùæ(kŘ¼/J쨌P.G«ì@¡Ú*ÁŸ4+ÕZ˜¡ H`˜u‡e!é:‰ÔVæÚ¾ñs!HØ0å([÷(îÿÑ‚¤5 eÄÙz¿•iç6À‘dÉa•2WQR Ïóé“)°úÇuÔt¯}\øLð|à ‡#"Rø¦p& à®å„6wg ¸^@0¿àfž¡ÉŸW‚7… æ[sühN¸ÃƒkM9å‹t2EJ¦p+tL¡¿ðêÐæÂrL~Áì> $vÉÜÄÜt"Õß»gM#f³g˜0kNVÑaÃ6÷™Pgõ‰€°M4¥:ˆ³8ØG†}™þu*Ø!æ` lóœa—¦¶è‘?8(+ôÙ‰GSD8€ÁÌól­X0ÿ’[Lœko=¡Ý 3'0 JA´NœÓy N&¢ê€ù~¸¸çvÑ‚+´•šXjë— ÷\Ý5æQ#Sm‡ž‡Ws†÷>ù«M3ÉæYA#í ý‚ËfŸ1×bõèŠ ÖÅñqA ¼b¾2‘6Ôkƒì´-(¯:6VÚÐã>Ó¾Dû˜Œ!x½@Þ”PDhÍëз_á*]'{|rÞ¥«u¶ÝEeÿöÃWnE«ìÛ±D­(ˆÑM,707/ÙR¶éÏ–óF fFù†‘ø6lÚmüßÑ>þé¬o£z=|ù z<ð©n6[¼è÷ûÝö—vë-õíÎÛ-,£‡ò%çm*Ê(/;ÑÎ,êbF…÷p8Ñh|í(ËPMGÐû<=¡ÞWß'òAœÖZEVû½TÞ-ñ„|…ú[.KHdú¤ƒFoc’‚(|4~‹!,Åó6Â÷sÝÁ Wèèû÷à†ŽÓ¤l‘2¨.0åØÎ«~¸×œJeÜÑSº4—ôt59=ëèøvæE•ÙÚ~^ž<w[3Î1yЏ\NBîÜm`/±u•”*]~7Ë£’&_!Û-Ú ²¶Î}ÃÊÙM.%eSü©Í þަ§ë•@˜\VƒÕZêÄŸ`¤±¨ö”YO¯ ªjU¾œn¶í‰3 u§µ»?íZ§ÚÍîƒ 7ûþ¯køMµEß5]ø ©áíï)^¡sÿ:±'üÜ|öürÇAßæˆtxœû,ú^t‚´´±‚‘¡‘¾¹¾‘‚¡™•‘•©±BV~jQúF«\ͼ ¼æ‰&xœû,:[x‚Œ¸‚‘¹>(XX˜)”äm´T`ŸœÎ:y7Gääµìü“8k'ä,²ù&‡p©N~ÀÁ?yW$½ŸSá ‰wxœû,ºEx‚´´¡‚‘¹¾™¾‘©‚‘¡•±©•‰BV~jQúF+yöÉéì¡“wsDN^ËÎ?Ùˆ³vòAN}üÔòø¤Ò4[…¢ÔÄœœüd OG!'5OÓš‹33MA®ÂVÁ/ÔÇgò.ÃÉ¡\*“pðOžÅ%Ê’Ÿ¼žKWª¨­(µ¤´(hbIYbŽ5W-q2Ô¿ùxœÍ}{CÛÆ³èßøSlZc_,?!Ä)M 8‰åგC¨‘e«È’*É€›ä»ß™Ù]½ý Í¹çÒÆàÕÎìîhvvfvvöÕ¬24¬Š7ɽbmß×§ŽÏ|›ÝÏtÏc*ÓT˶ M5™7÷à)³Ô©®@]Æmgî÷ŸmYíÍ›ú6~6è³IŸ;ô¹KŸ¯és>ßl†zµZÝÆÏ}Öé³AŸMúÜ¡Ï]ú|MŸ{ôù?kUBòÞÕuÖ·Çþ“êêì½=³FªoØÖ6ëZš’ËùÆT÷|uêì²\«—ÕB`/&†ÇƆ©3üh<æ-›Û3;sõ‘áù®1œùPÍgª5ªØ.›Ú#c<‡@ ê.ó':óuwê1{L_>œ^²º¥»@»Þlh;64Ýòt¦zÌÁo¢Øp8`Ñ@Þ2Ý€ç.{Ô]¾³ºlBàÛf¶ 8¶T»í2ÛA°"ôuÎLÕ!á½Éa;®}ïªSy8À3,B<±ÍŸ ÓdCÍ<}<3·Ô,¿w/>ž]^°öé'ö{ûü¼}zñé-Ôõ'öÌgú£Î1SÇ41ŒÉU-]à“ÎùáG€ht»Ÿ ÿì}÷â´Óï³÷gç¬Ízíó‹îáåqûœõ.Ï{gýŽÂX_×%eÇÚŽéíGº¯¦ÇÇü ^§=3Gl¢>êðZ5Ýx„~‡¯~g€C5mëžFuC¾eƘY¶¿Íž\˜&Oêmt’1·ÙN *©Öƒ DïûPÝgeöÞþ÷¦m»ÛìÀö|¬ÒÕz­V-×8Y.ûm>®6ÎQÏÑ5z¬?k:½zÙ‡ÅÃÙÆN³ŠûÁ„@U]颼B ¡ÙÐÕ‚v¾Œû™Kãbžæ =î©EŸX›µg¾µ¶iFMU˜3–fÎF4™hæî÷@®„}¡AÐl¢Fv&^.VvaFówE÷`ªª3H†¥šæœ^‡l½èÁ8°ý t ø¨gê* ótk£ôµ‰î±-—þìAÆcliªúE¤äÏ|”eQõ×{k¦Øîý/( ‚Ѩìp¢Z÷ú±}(tËwç‘Ù&(£rùê­°Ì3¦†©Â`í€ÊŠ7Bç»c¤œ7Ó4]yÛøÅq ‘"#8ðø#˜ÛØSìÕ³Õˆ«€é …Ê“AÌàGÖÂ9ƒ"ðq£(²K)DäÇ6víi  &¾ï´*•{ÃW<õQµ,u¢Šaá“>¬¼söÅ à­º?4íáÀ1«ÞŽƒ'Hž·“áþÇNû(—›êûwº6±Y~³šg_áÝXYgo[)U¶· w¹ÜÌSïõýüçÜ%þÑb›UvsÖ»èžÞærg3ß™ñaÄy–Sj%Þç»Í©^@ÉèÎ`˜ 5sgŽ.êƒà×½Vޱòd›•ËÝt˜ü¡÷À‰‚åÛˆÔ"Âb}ëãbT¦Õ(¨Bz`ª@\ZW€¸œˆÁ?"¼$~¤=YdͦCÝåÎudžI<œÝ{Ĭ’Ù—0µ’ÏåF¤%Jèa[›ÁzZº¬œm¹¥%p !÷Ï5ù%ÚMÏôòƃõTãr×  ÇÈ@Ì¡ ˜B¤>œžåä÷W¾"Ü?Yëà% íçsîœ3¤`¶B¸ÀR¸°çQöõT×CþžNñeò¢çž&(ÍiÞn¾bå{ŸUÙ[6²¡4”›5@“CfŠñæWñµ„ù¬˜.¦`Ày@†¬ÆÞ¾H$7Üc N aèY‰ÆŸ êa\#ê% )ÀÞ†® øß£€K0G#0°„! ²Þl$Ògýgö„*"*·ÂÜ?èAU—gòílÝOÔ¿_-[SܙŊ>š‘ÂV®î•ëÍ".T[|"YEÃHÔÜâ7Ðk_|ÜßÄÏ–!>$%‹iÕºƒ)êÁ[„Õ‚jä7¿ÄHô­% xŸÃï‚aèÕ·¼TK­SÝ>i•Z¥bT'þ•mYCof2(#:ØÂDzõDz±ê8&ôV½"¨,`h0œZ¶‹ð¤Â ÃËŸAE0«X©\*[º(us\ÚŽ|WÁŽ-m#`¤ŽfÇ%²lÂÂhåïÑM zDš º{,ßœ#¼ú6ᓤsü>ÚH‰=Q÷=ݱI]³ÍÙÃ?±„|#\ë&åŸ{ ° Ù,|f ‰>4LßS'Ñ×dy ~@_Ød jÞ”zÞ"ŠhtAƒPL„'îäÙºg|rÖÚÌT]0Å4äuh ƒ ‘§9N´Àtç ôÕ|RçJT^€0yÁŽyh”:Í7÷óü7®œ“'e *h<ÕÕ&ùÜFŒÏm°x€õ+ …MaäþÏ\"Wfž»´-¢7Å»ÜF&gS‹œY «êNõ!òurŸ¾–”¦²R)V'UÛ4t3¬âMÌÌ*Ãh•Œ;q$;¦žªéHæÐbd/l Ð×™ðLãô¹îÍRX Yˆ¸‡~ðn' NË€8ø$&º’¹ÃW, 㙺ˆ²>ÝK_ÆÞî×éîÞÃWËkÔ¾‰J_=àPíë£ú ÂcC³‰m&×2x}¤÷=@§°7ãÆJ$`”A€‹66¾²{WMñ/ …|ÅÙàæá™¥!›læãl4`¶¢9J~çðìý{b¡<)"T'ÏV(zŠJ€ì\ŠXŒ?£ÉËÝó(wº×ïD=ÛÛç5p¸¦§'‹A¾Aj!%%žzå}x]äÂÄ’#}hÀX>œ^V„LŒäqO·JþLÆ sÀlqMnTYüíOfÞ6) TÌ å~¦î£ý¤? Ÿ(“6-3Xat×ýOüoÄ6ólä5Acx7¦ªáf*Éà™!Œ!õ~[²šçÏMî 3¬Ùs=RI¶‹-KD,>|$݆ Ê~A ÂO¹1¹ð} Š•›òàV)U>+•Â]‚ú}é°w9¸øÔë”OÚ§—ïÛ‡—çóòoóÓÎqù¬×9o_tO?ˆ5¶Å—á3ûPð*bä¢ÑO@8ÂÅ”ÝL?*h´©„EðE¼ÿoåÍ/¶÷mó‹ù7ÓQ÷I©²Ã —ô,ŽÒ]x[2¢¾R!ÊÄè˜)¬Ê6'‰ì‡þð`‡ýÈ¢ĺk ìÛ¦1Z§‡•W"²:ŽÖ:1Ü^f‰ëhº©á®ÑÃ4ž…ý[¡j:µuÖ_(¹5¡ISj*Uœ 59\‡=ão`Ãò#¼wõé¾p7ófã[0J;JTX½Uó[jjµ5 ^R€lvˆªÓ_ÛåÀñ\œ1´| u°^ÔGÕ0I„ØÂÃÈ+5Ò².ÜÙnSx¢H=ÍPøx4wÑÛŒ›(á'ŸŸ(Å@%{F‚ydñîŒÔ¹TöÐ/ÂÃÑùn LQ’¢s^àÚ³û ù£PIª‘|‚NÆ]b\Û…ê(æšUaÞ¶{Û9Ý£ô“£& ’„²„úƒ\Ïü­³Ï[JésQ:>mW)mV>×*N ‚Þ„ªS¼½P”æ;WM¶U¯Uw›Å|È"Ò¾ÊScù@eÁêÊÎKŽÛ¢Ý ~î­Ù 5R[Öˆþ¸‡PvL{)Ðî¨Þáb0GSSp¯×„{ƒ£ÖêËÇoi—·T_1®ÝD;ÊÞá€[ÒA€ÛKµÜÁËà¯ÜÑ‹àÞ´X¾½Y>Æ71X¢Kc9-ãTy­¼0KÛy-Ú ëYŠª=¸‡Ë7ÑFa˜Õ»JÕ+q²âÅâŠcC{4ºï*`®“0I˜þ f› hU´.u“@kJåá¯<é¯ÒC¢,Zˆ@3.ÛÞ8[uŠîÆVþ¸é]]\ß‚†Å¾Ë íƒÃ£Îû»ÿùíøäô¬÷_çý‹Ë«ß¯?ýwÔ¡6ÒÇ÷ãÏsjÙÎ_®çÏŸžç“‚YÞÚø2>òù»Æì“78½ŽPRQ5A‹«%èu-P¥Œg¦Ñ„bsT®bRh‚¡±ÞY¿{ ZèKûw¤Üq×àÑh'?î^"*ŽÐ•F^¾ BœÓt;-îb/c2ÆÐõœ¶Íw‚¾ÄYeÐ ÞÍøPIžFÆÙÚ©¶Å(¾'òü†²“ ÓÔ¸WK­ËÓîõ€„ƒ«¬ø¡–†Y¨ù̽ÇfR3¹i«·ˆææÌ¾½é{·ké(*BØ^ ×ÉôÖvÉ‹pM"ë¬_i¼©F1×Õ²1œ’¢©ó]Ù$Ôß•«“(Œ8æïÇ©­§ÛhVER»‰éxÔ˜uÚèìçÝþa©USnªµú-`øŠ…®áiÆs¤4x‘î´¬‚Êc•y•Ú@e{-‰›;ë·(% yå8’þyý]µÖúØ-_^WNz=„…YÚ?߫˜cÅåÄqÔšR+OÀ\£~Ïž§ŽÇ+<ËH¼ç’@zÒí§¿÷Ozƒ£Ã²,¦Ù«>èú¯OØžÕ†òä¨ã¡¢Ž•©a²­Žê‚z÷^aí½H6”ŒRl¤êv;Jè¨ÏßmU¸š»²ã.WôÛ«¾x£…òÎ;_–¿qF4rÒdϬBV9ZîQ"`WhT­þ9° ’èÝÄ|;:ï¿ÛŽ~¦©ºò*:Mʆf–­çÝ`|ªã$¯—Z¯‘ÖÁ#Ã3LÍkœ4`c©À”õÕæ÷ÊmIX˜‘ñz3«ùQ´ÖG+A£‰j~—&JÑ&p SGŽmê¥Å-Ô¿nÙØÛ˲=smW½¼‡âgÝJ”‡²ooוžÎVÞB|l}bd \sýËSîÈcÃyœº]Zéxø‹DlÓ.=w6’ÅÄ£­tî*Ûm–‡ð€»&=Eú³Ãøè nü¡_›¼Mäk Ž{»ÍÁ8¬Ã3ö±šÂýbÐ 'Û}ð¨-rÈËny\NܰäfÞû¬Úµ+°Ûè¶!nvÑ ¯Œ1h,Ð!u:ÚmÞòÉÒí@Cî^…DYá•nŒq¡ÈÈ×½±uxxÖ»èï¯ðhÊêäÑŒál«ñ^ 1¾™ç½]¨ŸçOQ@‘â,)k}Cžùž3eWJò˜†,nóhƒ[Ì`£‚fÊžÔ9Õ’±ÆßäË$Œ»`lTÝQ$©?«š!fÈ$¼N”Œ¬ÀC’žt?,1ç"ˆƒv™ˆ]ú|Ì\$$MeÑDn|ÂDÜ0ùPê’G­üpšÝ}Pu¯ôµß,eøeäöaÒ_òÕQ-pƒ®:Sïui nßx\ 'Â]S©)òŽ cŸY¶·ràåÊ kÔRz M3À¼\>A\;a±"§XàŽ ·q± µ¿XE÷µÊÔöG Ÿêò¾»µ¹³]Ûn¿âknƒ+))‰JAþ™"@â 6ÂW'_[äላR?X5ÎÀÜ@%¿Œ¿î˜*8ó&NšØ[yÞ­›ÚmQ˜è[Õ"h ™} Ð_7W¢t›ÿ=èoÍF#wÄ£è“Uí¤Y£Yñ[HŠ­r Ÿ~Ë¿ä6Ö• #Lú !é´œ*Jé…Á†°äç­›jùÍméspgíNàá›ð„Ý¿‹5Èe%†ëFê‹Ó oÙ·¨ˆcùD;¾vÁ\iõP~´¯ñTе©¨W¦‚©ú¼ *ßVïx¯œBœ=Z€àÏö >‚.N³<Òô-Î-óU}\·B3@×*,èLK¦=XI¯+—×­×QÑ»GëAjϳç×P@_Í8L@× º€£è¼±*±:´¯ ãì´5ºŸ=Ç×ÏWìèô›¹y䉊$ç0¨ mw—gx¦BqÞéŸvúý³óý ÇŸðˆl&ª‚I4ÕööjÕ*»Åy¼¸F jä6b~’ ïoŸè\ º§íóOƒîéEçü}û°óíဠ8BÝ?sôŸƒ@‚U°ÏØVŒ:p‰¬£û2"MÏÒ'"¾Ühí¡–1Å€Ü&h/ÆÎÞîâV€ÅgÕÞ^©ud›Ø>‚å1TK€´¼:oÄcÄŸeñ!#Vž–#ÝôUPÒ¼± ˆu]n»>âh)ZƒúƒïÚ0kèAñ%<¾Êèµ/¡²Z˜fƒ'}´Iº9Ð<ªYͱ-¾^„ê^Øyàãi7©‘ õî²ÚÐZnû¤_ãøiµ»×ïZ7µú­RkÕ‹4#¡ˆÕ•ºRCã•©Á0ÌÎ/*½C,’.0Bò«0\>ŸeL;»7uÚ¼Ýc0Ü)¾ãBŒp€,þq˜¶ÄªR^"ï®( ا÷ý–övqñ3àgѧ„§XÝmFjÓ”.?³@zØí%ÃÜ 6Rº'@Ó«ˆˆ•î‚Y%ȧdN¦%û** [*¦ »]§ÍRè6yP‡¶×¨ïðÞ m±"”Åä1…p_hQtj  fk¨…tîU8Skã{PLsðµÉ-ôÿl|Át*ÿ0Ðr5p´­"=¢m‘F³±áÌ|o+Ý{„á7€ëvò¼U®ò¿…„x×P‚²4—»0nv#C_ #Y_{¸Ëë–iÕÍý›/¤6òf|W.U!½'W||ÓÜÙ½ê"Û`ØS÷(dezÐ V>ÄE‰•û‘3® Öþ |ŽâèõfQ$Œ6ŠOõ}@Ð&ú6‰qD’ëýÞ9/,?ÂCŸ16‡¨\0ðÿê•]ZsnFPüõ%DÐpêú Ž6ÉüUÊÏ–t Ç¥*ÚÍ, ¥Lø¸0¡\hcô4EF§ZH½ ,(Ì<¦™‹_uÄ^-’ÜI9îÒéüVÐ5>N°ƒ³~ņÀ/e˜V šõ®+õwÕjë@9SúJÊWB`‹ôÀY¹i4oa™ƒ¶a¨­š’ž8é%wâÀ¼$ò"dàª/À•zcv÷õ‚ì•/åè?ö.¯9û®µ+£ÜTäÞLö1¨ÐO­6jïXŒ+>öø<ãþå f,2¼HýHå‡DUK¨ÿ¹lŽOÖ{ݧC¾Áv#ß(К3È< w©êýC’*b’Æ·:²˜ òpýÁÐð½l„<€4ï‹þj„’°ñž†ÇÅÒ?;õF1 Vž–T1´ŽñP÷^{€¢Ú ºÁ^ A- Am‚F½˜ý$† ¾°±aGè¹lØøƒíÆ:^WªV^r~öÏn3 óÄ#‘G …ôã<9¯MV«*õÅ#‰Æqd=“‡SÄžùÑß0Ë'øu¡Æ„¥Öo#SƒJôæ÷ ±I€þÙåùa'Y%ê4!ªZ‹jÌ,*‘2¯ºúЉ'_RÈ×Ö >g’ øC £C€hxº fZ ,ù „wk2˜l,DÆ[D¶ H~Þ‹mp²—Ér‘Ÿ-†Š(Û fmQœšNö=¸–®­ ±õÏé¿9¾ƒT…ôØyÀþ‰ö™&ÞÂNsF= b-¨3ÓO‚,ø–ý€\ÕäóþaUÐíA˜5[ÎdÆÌþ/e‹oL:vãåÒŒÁ¿Å̤ šd. )#– "ä'Öÿ&*䣕q$÷"ßÂ¥%ÅJ¿PÇœ_ „`N”P¨MœÙs‰Î²¨2"Jœ¦“Ç„Ef‘J sÙ4:UGGÂ) ˆ¡ ’©e¢”xB̲%f|B=Êr´ì©¢TE7cK ‘Ø6㉠4)•hÚ(Yoÿ—j5¥ÞX€'ˆþÏQ›{)Æ_àÇIEüØ×…,•Ã’AXt¬”ÃǼéÕ9ænŒ=^•%ÙJvK¸²›ŒßC¯ÌwRй(B²…­6ª;Õ –Å?Ú»ÛÈZ„q‡-·!×]ô‰DÖ¸¥K܉<Œùà9¦˜WÏõ¶ÙP×Ô™XDº}P'‡»{¿1ÝumK·gž9—NtátöÝÏî_ñ`¢,ð½k¶‹)U¸«{ ¡å ?) p¸ÍÈ#hù§æ¾HŸwliæŽ!¡e._‚cÙOz="{³1¤Öáb¨'úP_Ù‡¬Ub)ˆð¾Ó/ZØ"D ^e”Š17+Sˆ4¢šŒ=XP3Üg\'1Ó‰F›~kíø-èR†eü:4©#¶öÞ»›×on£Rû–»"ŒƒU3ÁJoÞ½+µNzŠ!ÃJ @-ËÀ3uô¤gâàpäYU [qÄH‚²ŒqØÞ8‰f/‚&£éyÂ#1sœŸX{2ì6–9hù‰h©6}Hí-­ŸöW:¥•ZdžO;ç0œ²‰ãp‡µRëжõg¾×ÕèkXŠUÂÀŽZ™?§—SÈ$ÆújŒõ€†˜geîñ“ªcæiª©ºUÓ¸vÄI¡âi”(%žÄà^ZVÍÕ]Â:á(Í•Ãlì­t/†to%Ò5:ëçênž·?•>•Oz­ŞNYsÕ9p•‘.;—÷Y!5`³¢\W îAì7íòßòÃUKr,kísn#Ú bUJŸ·âÏEŒ›(„›½Pk^Y|8°²øh`%†d±]ôãÃòßT¿Ý.8ry²8ÚÂôá_µÑ¿ªÅÛðkßctLðð¬_™:±°/Àl=ÆúïüÓ&Þ7ª7ÕÚmâ<"Ÿï_§—" ï/ÿ–ë%…ðÓ}žTÎ,‰æ»ó/±ÇéQ!=;ÙÐn²ƒf<À>"<)J”oåñìOÃ÷få°Fó-ü˜¿å3eÉN5Eõ¦‹6ùÿ’>ß­ñLòòàùõˆšV(úG•ü§ªdQ ýK­¶§éÖè3ëL‡:nUV˜s4\ ŒG&°Ó¥HSñ£RÕX( ÇBÍetdæ6á‰Hø‚G{³œ‰ ¨ÙFÝCkkäëÙÂ|=ðVÃÌ^x8+ÀÊE}¼¥çBúüCìéshŸ>üÞ=]Á(ÚüþÉHz>éž~ø}äÔ°îŸõT³Oüèy£ˆ…HÄŠ°ä=–y~ #4áG4¹¨½ÞªŽ:)¨RKœð»¸œÍ€B.Ûá''ÅéûŒ“7ÁiWb¦j±¾¡Wá¾nÍ KG`¾vNv›‹XmÍºí·’cæ¢97æÎ-ˆ™<àÍ  Tñ^f1FôñA™ ó0<övã™ pA‡,#‘Ã:ÒCòΦÿ“ɺ>hf?—hš¼éÀqõr]©†gçì1k_ütÁ.aâ)aJDñòtX€"Mæ}H0^Š.—«gû,5×IÖ…¢‚ÊÉ-L¼É_YÂÃÉ<"â$L\˜ éêNæIé4ø¿=Zj}8½ ’È»Nø Þe1D½}S®€ÞÄÛ#‚~Ý[³U]Ú® ŒUJAŸlbN™MЏ »hCüë2ߪ7Þ‘¸5ÈɶýÇÍ•[ºChIdpBt£–ÿ¾-ܽ`!ÂÁg¨7'&&X½–$šg$;Æ\~QMàN†ÕWþ@G/%F©x•?€_D"+‘»êgVÁp¬ ÔBׂLSйÚÁ]üx²iu ‘ uv‹‹êìŠJ½Ã6ÖʨDž"µ^¯¬Õ¹Ú]Ø©H׋:µû:¬´WÊl³%E7ì¹Æ`ÿÍ0KzÙqGÕעð #šÄ­^,LŽiŽÏVj‘|›ïp;¿*]ì¸{p¸ŸG­Ñ è¢áeøuq\¦dÕ oãæKç0)ÅØaÑ^B¸kÓ>?tÚÝ53b+Ñ\ !xlŸn½1¬ïÌ @tuh¤½z꣋ªTläkw!‚Gy™Æ‚¥eõ>–€=6êÙð`)ðØ}Œ†ÊÝ¿~ÕÓFÝý3Yò°à¾‹8Ñ—å?|¡xØX¤Qä'{·ðnÆ m tªîx0ˆ>“ÅñÂŒ2Q”Û€Þ$s0óƸ<Èhó »ÍƒŒ6Òm,h3h¦N¿ýst™á¾£4(ϸ£ì[Qyš7¢{X‚Al7K¼`é*ÖrÔ‘«§A㌅°¸YåCÚHr2' X e a Ý+vlÛr˘QµÔlAa¹ùµ¯R«×a/D›á% «±ò¸.õ›^ûuIä`’»>©nKݤ½­Š[²‹ªò°ç ê‚zi/„ãhYô ý$u´…Ы`1½Tìeð|S«ÆlξÉn³”½œ½T&z“ï X‰ÍãÄ’ï±€<ªëÐ O‹/@ ,ÈŽ„ý¸Ú×-OýN´&=âèÓi÷ºâøÏ­¦œ‡ð…5Áv§TQò”ŒÏÀLöds€"Ë8å²ÅtÕ5ðbT~‰ÆT÷pÁš9ü²Þ!ï/­+Š©Úeꔲm9¶gøÆ£ÈÇÅMXl2´cm¼m‚ßå~?º‘£Ëþœy>ÏÓâÛ”ZY¡ëÙÜ©m†n[C‚(õÙô€ç2Q}^XâhuÓÂL¤˜¼JbHUÉÜë¯ÔÁÝ£é‰.&Uè’¾ÉQ7'vN®éÄïï ìR”Mz°sòð¨¦æ]Ïê©íÕËú4åç~]_ôË J4Ù¿8ë­œåžo;XÐÿÅ3B®ÄÀ«fàðæ&qZeàËzY:þÜÂMíºL+)k`ÞËÛtyÊcé0cž*­:þNØJG«7R¦ÞÈöFÞ'³Vr|óKöNÄê[baªå;w´©uÒÛä~*yöíÔÝÀŒŸ}÷<ú¹0-z.ã]ÂÌä‡x"ýø–‹‹[4câIUc§EgVB¯?N„ßQ½Vž·ñ® ‰=üÒ×]̪´«É%#ç˯¥Ê™ÿã„çʇ©&KͽÝR‘oãÇ< 7\„k8»æN²fékéP7u/¿NÔÝu…г|ºÅéEo:á€[Cö”€ûë2D&¸* ™_éU´¡‚¤ ^{„ÛÂÜJéJ$UÈ+–…ánÙÛ•6¼ ÇÏfÆßST+ü™Õ¯­äWz¿ç<ëtħ¨”öñ€^׳‘aìUñ-'b¶Ó|°¼ J‘üQˆá¢KaÒwÖEÈJÝîZw_ÐEÖsí ]<™5;þ:WÏýFÆÙXÐËC_õ±>†åF~ÑmdákEÖï`P\8•þó¡×“÷G­h'¢¨”Žî£Š Ù ùq[yU‚cªsæ©coÁT=o6¥áÍ©B[”ƒmebIº ôä²iЂèwОÄ}å"%)aϱfž†<Ã<=tõùh­Öª<|Ͻ—£O Ó0…å¬ákǬ ;µiìPìR 'ÐÊ»j먌8v”Fâ@íÈP‡åQjûådWd ¹ºÙ¡EÀø:ä2|ÁW»{O§ ‹f )¾žà@í¿{G®(i)ÑåHÏ\ãXÎO`ñ‚y¥Z>"*—Rx<+ó!`¿û"$€!yL¿Ø8J]Wì$P/PÑ£=Ѝòtsfð0­¢ô:§ÝË.w…rÆ:Tfw‡`޹=ÕŸ°'=æ:,¯Õùñ*P Aûõ#ò6úó ”gÀñó¹ù-Gʉr º [þªi'ªa*‡ºåÍ<åÃÙUxÎ>œà3êO–Λº™¦ÔzqÍÕ«÷˜¬ùƒîªæˆ}ÔŸtèÅýŠ—»LU÷A÷0M~Qd\¿á68 jðÓ¬CÝ âPËôg^<;Þ;Vý)„äöЍ™Íø_¼‹ž®Zã_½§‘¦Hì–UÇ—`$×ÀUà¶8{êÌT>¸Ðï_3p¦™FàL_’óBÔI¤0¢¼,µÚ•ËØù®HúÝ•WOXú“Wjv~ï—Ãë"SÒ¶æe¬c{‰+NÎQ»@éX’ü"ãÛΛaû§¾/îXA¶‡÷©X>9×1-ƦæÌ(¾8Ÿ 0â¢Wâž®GÝõ)!½`± hs8À´Ï ¯râJ·ˆÞÅ'#^nDx9œØÁ–u#T²âOCLËrÃJUÌA²$iÔ/×bWG:#§×ðâ½Z5Ö9í\/Ò-=Á-¿õ¡j­^‚á·ãTfÃoFËâø1,;TOtèú·ãr-ÕÎbTÏf&ªÒb(IÒ`Ý‹þbÃOÞ8Ùé’¿/¯“÷ò¯øo•Vk.í|¼7—¯ã²##ª=6ç/8ý2ü®N"ט¬mæ¯Ê8Ù–{áM®SEnXÄZ]Y‹Nƒ-¨t%+É›?u¢'ÃJ­ëO›Âè*)ÈŸõÔöy˜¯ˆ/ÁF¬”Mè»øÑ[¼—dq¨ e©«kö½eü­”bÕ~ù©.àS/º•ã­$I‚9çør t=MõÈiöóÏ÷+u·~ç¿.;§ƒÜ+K€cùm3É>oË^QrBb„L4è˜\Ír*Ÿ\_tOÚ×Ñól˪í&æá%Ô¹Š½Oî*Ív¹_}Ñ4‰`9<¹\Œ#²q,‚XÌJËg,?ý#dŸf¹(­ËŸ"Ô6A'nB'ÑʰÜÑÜZ8¥bhp˜xÇ`zèk¡Ê¶Ûœ9=ßi>²Ö‘•¡­Ÿf–Ì銬 •-mê€ö¡ÞÚfù«:0_½Èö÷Y/°Úȳã?דýD¼ßV`¯Å°£ø¿¾¾F“áª&£­ßQÖ»…ÍÖ7»& ’MKÐ|ЏÊEe¿ÿ ‹YöÊðŠFÔ§kF^q`vh³!„}Ð=©bñ[ÝR¯› 1ñŠÅðÔÞ¼©Vw—ãruËÎÂÊlÐlÎvÑ¿Òâk9 ¸Ž8 º„çU“6òâ«n•ħ(˦¿¦xKOÖ—{I‚Ø¥‰ûVäíƒa¶Û4m/8 5éÖ£áÚÖxYÉåxäØƒP :²3¾ù¥Ûï¡ë ËÁê·¥}‹µÉ3‡…§(jÞqõ‘êëRU-2òÃdl@Ÿ\.–âŽç«DòµÝæÈ(Ç÷,Î0År¹anwØLp®Õd‘‹Ÿ9­ÿe†‹·Ò]R‰do‰z{‹ò·ÅëEÐ-ÆFæt…kæ?Õ…N¾Ymá‹ç ø½ÕÎÈåè†rOs Çßf&^o;µ› ˜ ›¾1Q§Î6髆É1á‘£4  ›Û3 †wôvéÆuuôh E<5rx›¬i«#bÍ)hYxÂóHeɦËÜEØ£è'¿@çÛÄ÷V¥roøŠ§>ª–¥N”{k¦Øî=>éÃÊ;g_æç¶U÷‡¦=8&oÇÁ$ËÛÉpÿc§}”Ãäß µ7ˆsüfú`lH&w†Î&¬`H!Óke!Ã6s(†9çˆ!Ø1NÇ'¤5ÊEÛÀã4Ð6p´æYvrQ‚²€}Ø~„—r¹ ^wŸ‹i1Æó•O5á9¹“0nÆ]Æ‹ÂxëÁPœ@Fsì4ß%50,†Ë¨†9ÕÊtð|NêÀ\‚Û­“B•h–©½¹,†Å]yõÉxrÌ#Ÿ6þüà¶J¥T«T`TÑÉœbŒ…_?bmï÷ÿ(n=½Iœ³6®£ƒ‡†Ã?2î 9>òÀöJ¥<1<ÔÉL^Ý?;8ôÌð9qCïøM?¸£trxh A ¸ElN5µ®‹É‹d1œ5n®3l«ø„ïGz7Їê›Åß$jõ¿Ä„ó½h°ÇÅyw`{º~2ÑØ:1@>&”ÙâKwl|½³ztóÖì¾XJü`÷í÷ñ(36¤“ ,>(ç‹ÓÊ¥d"áÀȈ‰7n´r9]M‰;³å¸Ä ›=%c>=vEZÛvÇÈíÛÿû5Qåy±› _ºðflÓ³¾“=Ðq¸âöL#Üì½3á5þiLì±wŜؾ*žå F/ÆEÕÞÔì)±ccÇQ{†x0c;ó>ÌGZ#€[QÆÁ©] ƒ2²,V”ä~ðÜ0Z=5† AÙ¡²æ)cÀ þ~4¸Ó"ó‡£ü=dr¼imº™Ã:Kl†#u N¹ØW˜ ÚLOE›ã­)ñÛÒ¯2= Ôn‘»*·²’g’p(+GËåBQÆÀ=ËÎ@­;wlli_5‘†6m(Ù&£¾„2½â®ëx؇®z&á~¡Šé+ùUB¤Éd,Â\í=/cq¨×¨‚ÒÊ ,SŒ({téÕª ¯œ…Ä9ùíW@1› ÙþC¡_Q:\ Ûù즫IXþhrê¤öÞk )¤˜*š::µ~üùR!%–ô¬ÐȘvÂÕ|^"Ô,žX ­J\4$BYA¨è&Q¤Å šc+±V1ÍŒt¸ “JIç(ÑVíåx$)ÍVmî[¡p˜Îô>”F åàé·F¤î`emTšIç*ÿˆ°VÙ637ەЋÝl]_Õ¤ ŽN¼:Eþy‹´Rëì œü.v…'Gt”(jÏZÌ:ÔLôP[cNà°ATŽ:ô³Ö(’RC‰åQ*ƒ´ 'ÊãÇŠ‘IvÓŠF 0LȇfÛZ'Ì'«&FkÚÈnã;FÞ5ïãÑvˆ–1¹Ü ¾¯R?5U*WЧONŒ—Kgú`q±cqâÄø]–ÉéSgNWŠ÷4VŠÅ¾®¤»’‘Æv:ò*®Û£±øÜÝcQÂî;“ Žojh¤ö^’~—S°§ èí…K]!ªxÛk¹àÉÄ储9°7:Y`ùÅØ¹š ΂Ãksß®åÂÅ‹}ñ-(|ÔY @ÃéWÌõá•×›±XNPþD˜{£]ú`MøùÕ[ÂÛoç·4}uNµmÕÊâ±dÏT4“fjÔVæ(™×æ|¥_³ˆ6ƒÖ¯D¯ûîKÖ pª%ñÿ œ çüÎGïMêµð«ë_¬ûîˆíÉzxœ…—{LÛ×ÇeCSl(I:8äÎŒ ~a¶ƒ `Lꌃ1!%Áþa~˜_ðㇶKÖ†<M¸MJ”¤Í¶¤QµGy«ª4êh¶?¦*Ú£SµT"K+­Ýþè¶îuÓ¤n;ÇcšfCèC|Ϲçž{Ϲßë\^ß~_ÜQöu¢äÂ:aDZ&-# 'ku·Yˆ?æÚ@œ„ê1hkH^_«3ÔÀ/Ñë-µõ–3 D™pŒØ'x¢–•žúƒRãB¬cB¼U‰³4úzÁpãþ¬Ø`&=lˆ²Ädü,Ñwœ‹±ÄhÔW“Öˆ‹„«Ig Ñ× Á¨oH^Ê’‰’odßËJ~?gD$ÒÓ'¥ À§¤&‘>yXú·,±f,ÉÏÍJÎo6KKôdçN)&4T_kéâÙ0nHmQ«¤Ô7XH %Û‹2œ¸“v¢y'‹Ñ^±fúׇ°þ‘ q¼Àie‰R‘võ31á«|™h×Öáp~_^³:mÆÃŒÉ4º>V×,NO1þú ÿ‹2x>½úksÝQšƒ>²5ŸDˆýª(•ë<Êë‘9ó#ÖT¦ø3ñ¿w­B€{¤ë ºnYs‡íC•6¢œðʺ1í­N9Ò×K*1 4ž³¤øy‰RÌûi¤´>ØJ»¡_(ýpCCz^KaV&÷vº×5Z4#¼&`h‚‹=ŸB ò&àÅrð÷å@UE'0^-ÿA…Û_ÉßTöÁ’›*ÃQ BC§ n=ª"ô–Ê*%d5öT!0Œª§€«a^{ÕVœç­þУiƒ¡EMÝÖ>$:¯> à²aè®9¼“¢Ý¾ntÿiì¶×šß¬mþ¬Ö|¼®1u¯Š7î—J¦£ЇB“„ÊLæüc«)^6iaλ&Xœn6·»Í(Mšqä_fܾނF&/Yî`¶F'ðÇ{R«´bj¿³âˆ¦ÉGçš4ÙXz«)Cò]oÁìå]Eô/ÍŠÍ«¥óÒΖn9Nn9KŒÛ0³«6,É'¶9àXÛvz¶ óºÛ†»ÞdÇÓwØ]xŠöwsJÊ“ˆpCd(¥cL0ÎĸH˜D†)ã(ØŽý$š0‘+l6o{W··Õãèh““éiÊ8‹ég]Æl™&´Îu¢ÿÔ5Ñëö¨²6}9gz¾§aª·8Â16ÊM¨-ýÆÚøÚ –S/wã~­V­Ó)Ó‘/ ŽAmòü2¬b{â‡C;ÂËÓÍbgü}eféïûÏL¹k 1´%j…ÑÉì²¥ðHnàXÖ$w¥&6—Çê£ï”Ñåƒ;2)™=Ê?Ò//ã6J¨#Ô¸¶&ÏÓæh!ý^Hký<$ãUŽà.þÊ£(·Ží.Œ¡pÞC-’G÷ߎbO6 ³(j·ãmx!ß¡k ¹¨`ˆ&^¯ÃÙcïðÚº:]Ž{7•O c†y™ÝEïOl¥_LTfj«nrGiª÷助»³§¥ÇÑkŸ‘gx'߃•¬‡Rß]®N]6Nãy>;mßÚ›„þrº$3(´Gf@þ’ïÌ䋊3ÊõU[ê,ý &(mrËá¼^¥G®âŽ–žýøòsxуLfmÀÕ̳(ÇfQ»~1‹êùïY5“eîÀ}ì-:~¾}|{æðÇÇ[©êĺ!× ae¯\­©^öG5p½µðÁ"Í'QÀ¿u†_¥Xzê(ðÊ)Üö'§P.wœ®ÅV;fϽ |kî¾RßFÚ6 Ícâ¯Í£ÿŸæï¢ >RTvyü jü½3»ŸH“»OSGE E´ý¬lÜÙTÛ.¸$izfa ýl¡~_†µ1Ñq.¼ªc©Ûìƒo`!ørÊûàBãCn¦zñ8[:í^Ww—Íîvwu[¹zS}ª€©îŒŒ³QøJ°HQ@?§øžôB5°ï¾áWÏaïŸÃ‹&;?€"y^ƒUúÙ¼X|bq•x±Cº– m^ÜJï.‚áÓE°ä>¼CˆqèâM±HN—.Ð+/å'÷½¤~üáâæµ11ü©zå5\è|w]Wáû™âóוÀŸ\ÿ¢ŒáoÑé€ZÐ1m$ÐññAü[·ò?]rÏ«w²ÿ Ÿ«´ÒçŽoxœµUÝoUÏN».3­P XZÛ¡Ý•íìl»Ûîv«•.Ri¡”BI(ìNggw§ì|03­­‹M(Q¡½¨<!ñÉщJ1ê?øñä‰1Ñ&¼3…¶@(æNöÞóñ;çÜsÎ=ûíÄ/ˆ ÁúH/àX6Ú‚¿hضË%¸¶ù®yô§ÝZ³fþïµ>Žaã ÛaUy:«g†Š’FQ,•`‚×%~´$æÈS éêxN4LxEÕOB8 ª†*‹fQR a`˜Ñ1‘¢ ÑÌB&¯ê™Ñq©”K5›²–“ôýÚPÿ@Oï Ó‚§[UÉK¦0.CÓ¤*֮ʎ˼q2 MM€ž_W7ƒ¡öÙáUJÁnA ¦§! Eü´,&@àE5AÐEÞ^t&Î†Š“’ ‘ ö——å©”+oq(ÌÍK%ÑHùi‡ èéší¦ÎkÐìÇK—Éí(%A—íè\ I×´£8ïiCÁšSueSÀàO—Tѧ5ûª—ÚCwkÞ¯¦¯æ0¬óë?ôZCu/諆øÂ–ï‘ÿÙKÈ»µßúhë– tmÇúRL»$ôáýÝýéÌ`º/Ý}( )ði ³þ$˜EQA¿ìHy ¥›¯Ï¼ é{ Ë Ä ÈpŽ7yj„îÃU“y39£S8wÑx(²¡Ö¶}âXL…X²ü;sÌÎÉÅOaMSœ4ñV(©£%yIÁ_’ ´â“¨˜‹Lû'AÍá¼ÎË"ŒÐQl.¡¹Xˆ¥ÈR® a&×bx‹17\IÅ L”T¥ìdk\d£¹vA’µÒ„¨c”ƒçmxˆY®Ë±Áº¼Ó>#ô ‡=FÊêŽ÷Ò)«¶-[!N‘v á“MµSä˜aûÁ¡jº¤˜ùâñ:¶Dßî ' 9' ^ §žBÝ›ëýôîÝ™=3/îíë)w…q¿C€CçµÆmI ¼!Bv‘›;Á$É2,vI¢StÝ›&“I{‹¸ìù¦Íµmþe‚HYP×[!a#®­g4_.æ˜(u¡õ›VJâeI]|¹(²DÖÙ¾D&¼@‘y‰"ÝÞ/_ܽ5~¢Ëž:“ÛŒ6B¾#CG·´4£Ì‰nôV Öú!ÐEXý»¼„õ6³‹ú¬ÝS¹áþK+'mìuì¥}}û†Ž ·˜‹Û¢oú]kú½9}¾<}Öºqéù°üäJÃð—}uëæ•¿|ÿò´l‰xœÛ³iÇ6¦ Zõøf%/'µëxœÅ}ksÛ¸²àgëWð:¹ëXeÉzX²<Ùܹ¾™Ì9©Í«â¤ÎN%¹3Iñ5%KSùñÛIÐv’­]'%âÑÝx5  <ú7ï|&çrÝyä=O“e¸Úæ~¦‰·ó£pÁN¹çé¶áÉ ³¢ÐÀg‡<\­ ïÉóSoxu5:Ãß1ý^Ðï„~§ô{I¿3ú½:# £Á`p†¿CúÑï˜~/èwB¿Sú½¤ßý^áïp@D~Í…ðnÒeqëçÂû5Ý&œí3ïeô;"Œ…,ü8{v‚˜½á¨7žt÷Ã:”Þ2Œ„ß'aâey˜a‰S/HãŠ^¤Þõ«WÞ?Þ|ô¤J¢O˜€…I ¼téù^ìk¬  R²r»ZAÚ‚ü»yûúE… üÄ[ûÉ€ F‘é{ÞËÂ[¤BzIZxaœE‡FF2S/ÈëCÃ<õé–RÉÅ"”Eη€$zžæ^œ.Âåh@ÔœÈ!‘Ç †Ló"¹yï¶ó( ¼Wa )<_z†ÈµXxs$ƒm-òÔ!ÄçÞNäk¤“Pôμ4O " Û¹—fˆv y=x‘_”˜V±³<]å~Œ%/ ¸àvÞ:ÍTÍBùnÃ(òæÂÛJ±ÜFÈ‚ëýë凾ýøÁ»~ó›÷¯ë÷ï¯ß|øí)ÀkàyOìSÂ60”)÷“âY¯_¼þOÀ¸þ¯—¯^~ø òïýúòÛ77Þ¯oß{×Þ»ë÷^>ÿøêú½÷îãûwoo^@ÛÞ̶ÿu»¤Ö \ˆÂ#Éeþ šSB΢ðÍN@³"ÜA¾|`Ùìp› ?J“•yUUáS/\"»y·yL¼ßhMÀ®÷°3o2 ?ÙDPé7€^Ïû5\ý_£4ÍϼÿJeð¯¯À`4zÃ1öú7×\®k %™BȱØ‚š^硽8g˜i` añwÙ‘Cý¼àNªy…"H¨×ÒÅ~X‘},å¼¥Xk{×Û"E¨3êQ± ¢íB˜ž£¸_ú±(óB… ÞD‰"îV5.ƒ )¸Í Redz AÄ, E°Yµñ?9§=ôŸ«dÛOóÕ Wmç1vl*™ØT%Ë%öt.{&r#tìX*¬Õç }VâUºòDRänŒêH`‰È€‘Á’&aA NØÂ+ Ë›m†â‹êx‰Ý¨ ŠMrÊÏWÛò‚˜/—X¹Ð”aBÉg Ò(¾<‘çØE„”þ ¤0d´€VÈ)cbOý80H¡‰†Hí-ÊžÛyÆÁL™B¨Lqn˜Ф'·A Ä¢ßQ]%êJ0>J&hE-Ô¨5!ÏŠ‰–yÿXë¢È~:?_…E_ú;?Iüu_5ÞŠùùÏÙ3ÎAžúÏæQ:ÿ=‹€IŸ.u 4ÆÓõüÙ?_\ÿÒÂ$Tt*¡r¡™æ¢dFd6D¶wæ¨.‰bÊâ#]%Ôz€Ïß}¤ gž<ÈBÄìc.ŠBàIIŒüŠÒ=~&+§\Ý]ÕÝÆxù†54æØ>KÎ#Î].²4©´”Z»Ê#’Ç(3&RaóøcèS¹–‹Pt C-`7ªÛß[‚ Ýæ¥ð!БµŽê\ºx¬.$ú¥¬RàÝèº) ØÏL¥îü¢ã'ïñÀûôö݇—oß|AŽí½þK ùèxüg\¿zy}Óé<¿KX%ÐQ +o3¡@1ò' ×[Ÿy½ÞZD™§ÿ´ì€²b8ÕaB2á „G­³Gj§'© Å|¤w©*¨áï_K+=”lã¹Èm¤Î{ê? Î¬¸£>dÀ8îtE¬Wì±¥ˆñž<6jó)ÔÜhú¬åw¾_Ë' ¤s‡†OB°©ùJ¡d °uÀrU$”2PÒEHýåGNöÍÛŽÖîž’Œ!åñ¾G̓úEæxvÜù¼Ï<†.Ç|tRêvaÂÃ1v„cöýF}œ}`;‚F%: Qšáóø‘×[ÞÀ{ ‚x»°÷xdˆï+l÷Uy»è*¼SÝ3TO3í{ Äh¸|úTÑŒx»žŠlbQÁD×”âºI}ø¸Žæ ¨ Eš)••d.4•¦!× O>õæ¹ð7Ù;=zä}D-©X€TóQQȶ :(¤*t·‘£$‰R-tʇ± Ç3;DÒR ]CÔá0‡†É|‰èI«5OWÎÈuBû•Ô+I˜ÊLZ¹Ò:‹˜¡ÃMþˆš|pj—$©ÆŒÅñþãŒ:eIÜð”¨v+ØEŠCä\£Ë6|Ê êuÆ ”i·¨ z^á´„†.ÌÏß¾~‡3+äæ·7ØqôèqSnTN§¨!üû ¨eñj³©•p•¨ÐAæaÂCi¿Úø\üžJ5Œ@‡àAäDžÿ÷ç'ýîçÓÞç'Ÿþ»÷¥Û£ßϧÏ?Îa`áÚÔøÜ ë½¿’=r1ô¿í¾"³ô,BQDá<00v‚¿ØþÏ@ }ÕP¢¨nPjÍå¢kQØþ¯ðç¡Ndª}"Ó´ i1f]yÜ Ö~*1(•£žˆ©dyozIºó/CåõL=PÈÜ—að»âàoªÙ!Ö,’ ÞU ÜGŽñŸk\àOÞã –÷oÏå ÅÓèçlò~·wÞÓdD `OA5ÓyR üè‘÷J'Òb7µê£Ò“(Qp˜ ìW)ëàbÅÌÿ#6ÂH")‹|Úï6Í70æü Y[¡—É“Zp»ôƒôÔü¾€ŽžB¯!28%¹¹ ¸d°ô·QáÈò\Dém_ñ=süQOn“.pÈiçä黇=Ô#¥Ñ2òiΊ:1-Va i?Zx*±{tµ{Ôƒ2Ó‡±]OŠ¿¶@’Ü" `à#gLÆ#X…üMqö€¼{Ôƒ9*…]ŽrŒµc!¢ÂçR`pà{FÞ&ŸFã‹/šÀ”½4¦¨pÎߦÅ48ÑHJNÕϰ¨äŠ î)ˆ­ƒÝJg< rEãVRv8ëã©ÎÞP9Öaün¢òi8Sž˜à^ç•BòÑJcP™¹l+ü…¶Ë}·‹Pgg ªIHЋ4Ê€Û8­Õ:‚öŠÐ³¢é’Ç”S‚Žah‚zÈtµÂd\PY÷Lm“laÞF™ñÜlAžÎ#ÿo }~«½Æ.jj­÷æÑVàj ²D‰$Í2¤<!d†Š¼ ñs+ú„Ét²û2LÉOµï6— ¥·Ûc×’w ‚œÈ·Rñ9åN´—O#å‹9H1 B\hžJkn÷&ôÜŠ‘U„©Ž÷d7mPª 5š Ϧ=˜Áo t+©M,jãþh7ùAz5z?Hhô?]ô®¾èQ詬à+HõÝ1LwW¦ûÈû%MNhn‹+7ZÉ õ•š ÷´MvÓÿ©vk-7úzÛņè}7èê:?àõ(7 5íÙà ¹(œ «s?[[©ÿXö£CRöaô¤ ¨¬påånÚj´¡·Ho%Œ/wö †® Ì–f™,óãz‰ò¤ø4Ð= šÛx:ÛÀ :£"€ÀL@kø¿Z=UË~<ƒ9®šWtûª2ΪEUqC-ã‘÷Þ(:¨ÒD¹Ühv\p¬Ây¯ÈÚ jE8óOãÖ­i¾>i%@êÀ[!z÷@-Ú]çhx9àh:™ püêù£«rÁHŠQô(-f_JïdZº§Ÿ.˨,ð'Ÿ¦—_,"Ó Ï¸j„0 $…¾ ±éE\<ÿ>êë¼æ8@úyÌ¿ŸæÑÁNñ)ša矉ñ [Gîrþ˜Þ| ­G®àbQªqÐb8ØAØbÌŸ2N÷{X† ½—ùx@Ÿ¯g ›yøð7Ë|õö? †_”Ke\Ÿ’[•GtÂñ%„³)}®øSFg£ ü…KJź`àÀš‚O®>¤ç›(OÈïø™ÍTÛÇþþ/ ˜ãÑyЃ*~EF¿…¿R Ðzü™ ås툔’5ÐÃié&aÀZÁiPZn±½5<´!ÐWÈ'W\ÊÒW >ÐÎzÔÅÐBfod\7A&ƒ z WUZ6CéCsZîFd^‰Î릎É݈´±Ñ×ó¡Wõ6AòËáÆ«Ø`Å~|å•N• #.>¸ÆšƒãtjŽ)ÔWfP¿ìNBð£=®Â $rn§*íFÏc9tè?Eµ°¨jü‹Ö0½?²àÄË}Þ´Zû‰÷‡‚‰ŒþègÞ$ݹäp‹A^ÕÖψ-_‰ÜÅÃíûÜä.lj?HË"%Óè‡ Ê‡DLQa B-Cz´ÊÃNÔÛIÒñó %5Ôø¬ÒãçÂ%½Qÿ•+M*§H¡ì›DŠÂØKV¦yaâÈŠQ%)AãÃ4]* ÐÐè;V…cL’ÆñöAk#öìÛ`¶Žc?2·§ñ“Ï ´ ®©¡ýU²EóÁx<;4&ªpüqT€È#׫NÛBl8zA zŠ ž¢Ù§Ü‡€)W˜¬nïW¨XɵrÓ\}0À%r¸ÌýØ•IˆËS ¥Û4®_÷uøæƒþ~‡Éí6À¸ëb—;8…;:¡žóžc¹Éœ\Ý$(MB˜nµ.Oñ£J¤Ë¥Áʳµk&¦×¢jÍÄàY:W8kL@aø} xçqѳ*qçLØŒ]”òN§›9h˜®IÉdbãŸçƒ¢‡¡ŒÍ¢Ðç2zvDcZ¨n…“•–k6iWµ—$¾#÷Ó‹–ª˜^4sD¶^øw¥nWø¬úŠÕÈûêÌãy®Ö£N䎚$”o.l›[<êž;O³ˆ¬œ=ç˜ZååÌŠçwß8ùËãOhõܶô C ³ “t> ?Î44¦,‹,ÇWdz5¾rîPxz¯À÷mð{Á]\o³½:’s×QÛØ¶ÊBdm{7†ˆê8 皊6.†èN}w[ ×ÂÕ¾0 _"4ʲviáŒÒ†`ˇrݺ)$×W‰!¸Ñ¿Ð&ÕÙ¥…émN‡§ÃX¦úv‡†¦A;õ»#˜˜¼láðÚìÈ`lsp ­ç³µÏå*“Yä~á2à#YÅvšË r›8d€š@¤–J‡fT$âhê1® 9ÚÄfejÜ–ÚæŽ´Æmi5¬”.œ)±bÞžÔ…3)'––{9¾V]uÇ’!“§uy¸ÒT÷äLÓ$Mš¨þæ©¿È·IâZân\bïR ­¬ÛLŽä!ŽE‘;¶’k¢n,WŒ]ë´ê¸Vkr…Ë$ª¸Ã$Šm¼=>ëä¨ce^3M+‡,6 ÷øˆT þän|:§ ¿nìéÈ‘Ël¬ÑS]¼ðKcîÇWn9O'3ªÂˆÏg´ƒ7ÆÊÁ'l6´ßhÉX1*P犠oÏ¥ŸðJ­BæØŸ´ÇeJ"Óu#ïC,_Êš®Vr6&>lLõ‘ÅÝlÈ £ºËŒj­3ZXwþÞ±õ‡G®eÉË¢ ½3Ãè.˺_w{øï’!Ëñ`Ø[nÿ ©yC ríëtmã¡òµúÞƒ×Þö¾tðfÖÊ£Ú$D_–Ì BbßzbÀ¼.P‚ó“8tñ8^ž§®ÉXðYDæûº-LO¶º(Ò|u¸Ñ‚:³>Áë0Ì[#ýò:K›§9Ÿ²o³ÔÁªFuJhueÜý;ïrûªÁ¾òLò«u{ÇœvœSÆžÜååí~Ö„‡=^x^í¶·æç4S¸;oì«™V”ùÓmçX]Ö¹ÑFÐÛH)ð ¾Á ¯¶DvBDBøQ!r¼7n'¼×o>x/Þüâ½|ã]{Ý3KÔ.¾W­ …ìêQ«r!\X¨ÔèÅ 3Ï_âÃAŸ_ô¹6p½í‚é‹]¨«ìyB¾• ÆÉ…³å$Ë3û`C¯ Ú8EáÍ‹øRÃJ¾×Wþ Ù0 ¶ºqà`Öµ ¢Ý1'›ð5´¸Jßh›ð%·‹•ÑÌØµ¸¯š=˜ÂPdåvè „:Ø5î…ò1 ¹ØÐBe 5TN—5J:"Oki™Åíö p*©û\gx&\kU›ñ®F‚®~Dî喙ɢ­Ô-ÃŽ¼à¦ÝsûUª6TUÅÇ€¹bÔ]ÚÜø¹vêP«PÇCU†‹„ØlRCXßéÛPeá %«4ðLˆÊ‚60Áâïu“§[u‡rÄ\‘Òà6¼˜’p` À ÆE—G2¥1tn ‰7)Û`¦Ìˆê~qܪž…à‹›ñDƒbÂZ5›;vKO¾˜³þÕ «[•‘L] ­qA»gÏ×TóЏVcjr¦2j]«Þ«_ÎÞ«ÞÃ^)ò>Û±H:õLh°ØTé¢Q©s+fÎ×>”@ñûÂÏu<²p°”iãTnÂBµœ–=™.˜1}©õïêåîêÈ;!¹½ äS_½°¨U^*™þNÈü(ÖÝ‹/©çäÁ#¶õŠg =%Õ@5PÀx¯¼qðóŠù¡¬Ñ Å2öq¡‹ì§ü¹$Ú‚¹pA&#ËèP«ƒÍAebí‡nù|QVdL*üT]F.èä!^C ~HEÜ5Ý3ñû—º)¶ME¤ ëÝz¾Á ¹fÜécZàHˬ§&8µîÒà«Â²U ¾Š›OeUDï^]NÖ>š÷¸gîf³¼Z÷ê^ZÅ¿{’óíJ‰PRI8êªÚ¹TKU¸ÉLÏ»U£ò*T·ÈÇJ¿a¶Cû1îÏ84•u$î® øJéX5Q}ÒA+PÕÐ ìÝI´jO<ÞOîÑ F«ˆ£:öôØS=¶°•ðÑ¥c/½~ÃFí%Û²β4öJ “|†¼\ /,<ò[Ñv”ÑZ ±1á¥I+ï¸"ü ,ï:.o1èá-}Ö-Èì5wˆ"ÔC-ݘ4@y)H-¹ Ð2¾ÍÚô=~;CíkagbåÈÓ‘¶ ¨Š,‹n£a¿ÃEóº¥"ièÙ,ÔO'}êÀ亇!è+f¹Òõíêµæ† Ьl¯r™½jp¡ŽÔÏëõp¨vF Ê휳@ÄØqhÃQoÝÑû0ÝMz}¯TìiJpZfÊfIÓàJè9böú”(†“GǸ-þ{Úä¿W5ù¯Ùõ³Jlس¼Ÿ¢·ñ­ˆÅÒïâT¿½ÀÓ;H×Q‹æ5 ½Ä"ûÅ«¼¼kÖyÿ€ùtŽÏñ{¡ôN<õˆOy %ÄSõÝLv"Ï+F*X½QSEð¦òá+6ø‚Ë= ÎÍgNÔ ŸxÃ%¯T.’ú _ÈíVXïš—ŒvÆ¶Ü ¶y.’":àûS™ôðZ$J8…HµŽ ÂÜzÁÂ3z3’Ÿ¼»õgÕj/•ú¥–…¡bžþŲ¾I ýl-½nz’ã;ƒ!¿ªWä‡R%9®<ÍwÌSá'’2Ç8rŸª§âðíQº(iõ°i,xÚàÞ6Ã:/y w€ÓL?öh'ón|ÓÀo. õ=û™M¾=~žîðÝXz}W†«ÄÊ×;!£ü˜Ìý)àN¥Aת'œ½DìðÉ)|‰3UÙB5ýNÛjî’¯OÔ]Él ™ølëˆ=êÂ8”扑û4Ÿöµh÷ó¸Ë‡.*º„+E–ؾII'kÝQvA{:¢¾G܇s±äk^…×Å¥wýžë‘º ÏÈt{wVÝg£rSi¨{Ìt<¯†\˜âÆÓYWÝÖcdÍ-U¼¶20òœ½ú›€2©€ŒIDQñ•$|z _ÑVo^já"ôƒ¹gôŽó­z* VFt%úäioPÖé1šöƈEæâzÖ¨Š[t`‘ÑùôLÙ’]4LJì¨-ç¦%y£‚Z¥ H>ýà,¿¯i$se-/îë:j~ØšTçfˆ™—S—µsCÎcSYzt$Þìòþ•ý”Æno…Ñ­+Û¯ÝÚ»?õØt¶Ä¬3“ÅòHH×>– hVÔw½vÕ n]´9`¿º‘¬kßRÒµþ9Ô¿.¾±d*£r¯ôœ•é ++sêÙ&—ÞÃçlEÆ ¥®öÚYO’)ÛÄ7TÍ &[Õ4±–ÕbQfïé1;±²Ÿ˜à•¥Ñ¡·RÁÙÉJê›X²´vÖ Ù¾jªß]uˆ+F®Lûâ’lÎf¤.ݱkÁjÖ¯¾¡XKxêžbå5´ÏÊŒ—F°®Ü… °3‚6ÏLíùUßt Ô¥::ä2iD˰E¢1ïv­"pŽwÔ%™öóÎ,3µ¼|TÙâ÷é²0ØðûÖé*äÇ,-kHÏôæjû昵QX=Jw¤—CiíãH¤ñ•hýCM~«0¼ùj puý+­µW x£Ü@ÍE ]ihâiñ½Ow˜x^¼À\éRÆXÔ,Œº/Ë@Ð b±²ãi+ ¯{Þ¿¨À$•4h‰½\—¼«ÚÊE6ýRÙ<ÆúÏÀèYe ÷Þ€^5¬`²ÕÁôëµ¥·©Ëv‰å½ÍR.;õöiÐû¶é`IGû.ËÜ`kcÕ[]ü{ðþï±ðõëGž€)ÒOÞ±è­ÓtãÜæh;ïœS€ôNÊ7‡Oq²`|ø›?yÇæ©ág'ÇU~ü@þý§Cïߣ5 (@ê pvþµ7éùnÎ+xœÛÚË´´—iÃfÁ͇?•1ÁÚãÎExœcœþµ™ÿ§: Free Software Foundation, # Inc. timestamp='2007-01-18±ù³3³Á©‘„ Free ³« ³Ü5“#³lV“ÌV“*\“ë“©!³ “!¨“@")³u" “Ž#]“ñ#P³L$ç“?)„“Ü)l“¹*“o*%³Ø*Ÿ“~-)³µ-h \ | tron“?/“Í/“í/³ƒ0+u“qc“pG“÷4N“60³~6…c“a7r16c³8ɳ; “¸E›“ŽF9³G§b“ñ0“ [³WO@³Ñ]ÿ³bž³²d\³¥L×ës“¾$æêy̳¬¿ãÍ…Y6èùf<ãîZÐp5åY¥n" {8ßPb²nˆ1­Õ›ºÅ°ÃñÏöû¬Áf|^ŽiQ÷GEIÆ Í)†Œõ™Í;TÝPã>|®³<Çq '°><j¯§ˆjs!rÍÞFv3"±ÐÕhîKYMˆ%$Ë…2Ù–ŠÂ¦Ñ¸\Ùyäsö=srM/¶ŽR^åpäW¶’ï!]ù™ˆ<(XCd»¨À;ǃ[¶[eUŽ%“Ô„¼ù³ A^ÅW×ü‹G)çŽë\`§¢ÀÏQª&ÇŠ.a8…õŠˆy¨GF8^ð‡ /„å#dRðÃ…ÊRX«059a»rÜ®KbT&žªtD<÷-‡¼½f´š³ð¶æ,{#äÀK#è®ýÃt6\¡]( ËôW0ê a­n<¯)°ÀЩ.š˜¢²a&àñ5ƒâ{¦0ËP±Ë\À¤Íâd†éJƒoÂ%rËÒBPã§ kLY€ý67Ô†33U½•‰™Ä¼˜á}ÇSKRW½›ìÞ¶&¹ZÊéœuE‰RD‰Ë­ñ$ï„R¸qF£oêPÍÝPÞs,=UOR§¦ݳ…H[ïG;éé¿Žî ®—ƒ5éäØˆÕbKè^wºa üÅ!>˜:Çzl‘rÄP<l‡Ûc&vƒ:D‘cósVLj$:µŽsRT™”hBGž#R4³ˆÈúl‰ìhV(1°h»þ‹9ü*)# åÉ](šw“¾ù ‡³ðãê“’zè9„dxœ]RMLAΖß…B©ѲE¤´q±ínÁ4D”B ” e·t+-¡•“ ›ï¢#Ä(D™‹OãÅŸ˜h¼«1!†xÑÈÁY*ÎLfæ½÷½o^Þ7w¾3ß¾0×­¹Î:Y—ÃÁ¦‹w²w¹ÃUî*‹U‚añ5ýHOqqŽ2ÎÁ“4FÊHŠ">é‹taŸÔ/‡ÞÅ‘¤Lèp/oMÛ­ÓFÙQÞÄ£}Q´ìŸ‡Éœ³f3n™KðÁ<Ãð˜ÌŸB*+VŸ¨q D.LbþIÄÁ7¸Tô}Ö¸o- ‰9i’,‰œ²R|ñGJ’k›Ás[m~” ù¼¼c3Hon!¢^l8I‹ý7ƒÉCïÉ ®*åN/yí<•…¦š„;!0Fvk¼nÞE7O,òÙX’q¥6ˆY·¹udUfÁTgÄlÝ/žRœ,EKýHªÊ€¥ú»q£·!¶Í]Q¡ÓÞR³ÛX¼m0ÁÔxmJæ—6{È|sU‚Nu+ãˆ5°ÞÚÉôÃÂý¡^ÜnÛ‹¶¶9Œ·?%ƒ§S˜ vç@ #ï¹ÚabRUµYi@uuzq\¾QeÜ é´ZZ¨š (´tw¢õX6yvfEcáÅ>êS†„­ÓãtñB_Ü4xÑ/¢µÙˆÏçôÈïrS‰wa¸ËoÉtתÆ+`ÁdL¡*mH ËX6™òô$c­7\_Ž~ƒ¿è(Ëù'¤ˆ¬ØIg_-ƒ‡Þãä§·€I£€ƒ£½xÄ%½ÝF —•£œ’¹1)BÚv3˜|‡ËCÑí;¯¡OÇŽïÁKßML ¯Çë¹8R¢W ‚QŸ"Ë#þ$dá†,Ä%z%'%ÚTËÎ Êüýê»Ê„2¾³wXQJ­q´2èS±¾ /²K*Cí X ’Õp‰æ‰-^l„Fxœ{ÿŒñõ3Æ uœ‹-ô¹áuxœì}}cÛ¶ñðßá§@µ²TK²Ýv[í*ã8‰7'öc;mö‹R™–(™‹Lª¤ä—%ùîϽHJ~IÚd]³Õñr8€Ãáp8ÜÿBµO¨žz÷Õ“Y¦êÜïƉJ¯ÒipÖ“ ÑÒ’Ð?C² T? üi žùo‚a‘-„DA±ur¥ž<¡6gÓ¸GCµÖúË÷užD'ýølâOÕÚÊêw+ß®~E¡ðA0‰“©:™R5ÕÿŽƒdô÷çÁôáá£VœŒP6ȸO®’pt:UK[uµúý÷kMøó—e þ­ @×Ôã$Ôa<œ^øI dzhàOÃ8ZV;Q_Ã9: S…Ø…£äJûI8™*ˆbéTJo¨éi0 €…ç@’Y4ÏBlú$HÎÂ4…DlF]Vƒ0&áÉ †´;‹áðJ…S@å¾j–üS÷ïcÒ³oÓS@9œ†þ8üÕØ’¤y¥£‡Ôh>ŒgI(¦v=ç=z±¹»µy¸ÝYÝPÁ%Ñ[G©ûÔ?Ïþy¨`<„C5 Ò©jFªR}û‡O{?mîì=ÿ: ¦ï+ꫯÔRp6ãHOëêA{œ·£Ùx¬Ö|µJD‹Ôº§T– >ž¿ØÝÝzö¨ƒ ÷Õ~4¿m­©ó Ar¥*ªÿƒbu'•NÆátF#´¬¾]ýºRý{åý²º8 û§;pšøÉÚ«f©? ZJ= S¬€ö(ŒUèãBú©jŽTÍ@¬ujø[ƒTh] ƒàù^ïÉîÞÃÞ዇‡G^0NHëûi Ž— ‹jÆuh§ió± #u ò4&q^6êÔtyEª É£S!Æ R¿ï CÏóü´;5¯æIÏP„‡d #¢‚¯Æ1üàP‚Ÿ~â§§0òã1LÌTýUµgiBz‚%†-ôOãN­ûûü«™«¸î÷ÖLA>à ª¼1¤€±w2 Ç@*ŸcBc|$‘?VLø‰G‰†ãIȶ €`^ª‹pz㯟­a.¼a>xdVðûŸô´•Í‹ÿÀ¼x¸™Í‹ª5G*ªKý‹“„rW^ª™À¼Uº ÇÕ4ýYqÆO!°º-µ,¾e)%cÀÒ­x¨¾L?¨ZÐʪŔšž"š4û¦³$“΀p€Ÿ@ 3¬r@\Èq€ÃLîæ/ü«TѺŸMCX›ö7žö·÷76ödyú¢ƒ¬×Œ"7­>KÃØåþ©m¨ÇUÅ¿ŠÑ[/¬l8©ßA,ë·‚ðîtQ­ÚÒî=¯÷ÕÎãCøûs ¢ ÀµÐïËjêŸ JEãk’ý0 ưž‚XKgÀ øÿf1±²08@ `„Ìç(̓p'(ìÄg$"Œý0¢Uæù ÕׄêP®[ÚªÞæaþys÷Ÿê¡õýñPC։؂ DŒ€‹Æ³ñ¥Z‚q1(ÙrÒ!ä¤ –¬‚³ÉôŠ¥ÏV݃ÈNEU*÷ô…ÒChöÌá ¡\áwãø 6å3pN‘û\$@ST@h%V7ñA2ZÏ®€ZÎdzt…ç(-ͯºÝö놪«,¤ÓkPdêŸ=į 6…Ü~ôpÑ€œP9¦ToÊlÁ€¨l1á$Yq°Ó¢aÂ9“£]]Ñ™4‚&ãO@.%qx…]¹ƒ†× „áOaÒA‚˜ Ð.ƒ Ây}x…„¥>OfT­Žatoí={¶ùüQ À@;I(c¾Ç=D@¡kOXFA^¶»ÊšÁ—UÓ\.íÈôÎ ]â Õ25¤”)¡™‰º®‚$‰“uÀ,2­ä¤ •Ø¿ ,ø'iÙ¶$al=ÂÆµ<Á—?àÈh˜@ú8&¸€E"‡Ñy˜ÄÑ™½Ÿ&þ¥¸¥aÕ`˜kåN©08CئÂ>0€-@;7³gCÍ›=ÈË×=TI˜qîVKgýrÂ/E`ŒÉ©!–Ÿ – †5c:qA`Óíá¸#jMâW¸Ïa{‰VÅYž Û5­ ³+n5;~öa§–,ã©£²ÏaÆ¥¬ôiz 9+%`N5›ŒÄ]ÿæÛÖ7­oñ$·€ !jNÂÜÂûãð”TGM_Ì8þ>ŠfhŠAuçí3<,ɇ=ð€¢?ž èd!ºbm,JÉiˆjeÈ=™M=Æxˆý@cP4–-<BÝW:ÅÁçëN'TðÌf|Eºiê%îgèÚ¼÷OMOCÇn¸âcAb^ÀGˆrf¥½üáÊoí¡Ù›™÷Z_È€FûIµ‡@ ØfÃJrFÖ"ñXØÖîÎÖÞîÞAïñÞÁÖvG=9ØÞïííAçv{jo’GµÝlÓ•‰Ü>2IsŠfÏeàQ°Ž¦8£¢·Ì~r¥q• Ýré\©&Ÿ§‘8ß–DZÚD¦c¹l`!ƒ»,7¸’I(ÛéãiˆI;ôqqŠ'8ë$Ú;çñ. t$ß­1"¿"&Ç®¤ÇÕ½´]k;šZ­=Âswu¿fePìÖXRªf¥V•Ü5VZqò0.Àƒ(´± Á‹*îm_fÑëªöÏø_ýÒ~Ý­·ÛÀÿíFµ¦ºïTDÚBv»[Ç\‹s,ЭSbË–p ’HL«È;Ѿ T­ý‹…n·Ýµ†pµý–ðª_msøWüy¨0bä[g¿!àúu Ó6ähµ7Ô¯µcé¹â˜µdåH6Ë—ímÓlpWhd;câ}¶MÉM™Ý´¤¯«ˆ„,¦™Ùé·.›…Œ)h6`±3”ÆpÙ‚‰õxgw{!=B„`öcF2Ð@k+ Xèå:JÍX˜_XY¶ûZ­•¹øí0°¬¨Áן e*®2ðßî‹ù袔Ëy‘#WE@eôÞa%Æà  “6ܺˆ)A0àü øoD`pîCÒ(ÀB(Ö0I;<“}H‰ ˜ÄÊ©`þ¡† è2Jâ X ÐN ÀÁÎ$ ³YnRºL"Oàœ¦W“°£ã×™?H|_À³_ÜÏ ½ƒž#náÙd˜3à”ŽÚEäÓ*ê*9ôugmÃØrʧ«ksµU¬¦sè=©„ ˲þu§[Åcó÷5K¯´¨ä¯®J»”ÛÃÙ© Ú¼yð¤Õj•ö6Ê eÅÉ™¢¼gÒ k™ñf4f @‘I‚ž²Ð‰C6§b¥€v½ãøDV(Ï]ïv|nsªüsØ-‰^ˆŒ—üd4Þ@œ³¤ò ËHØO@ VÕ¥¥zPA~n÷V¹²ñf]C„²Íè °*ìëe½3§Œ ÁvÑð!à5ÍàWµz\è0„áY,…XKKí¦UÐ ÍIÛEow—2¡®ž“CWæ ˜+·-¹6G®„žv+¾™<Ù¾…ˆØ¾ƒˆr-|§™Ãl+ÒÖ©Ÿø}TžøÑ՘и~ÒS<=ìÔü“>H%£ÓðßoÆgQ<ù5I§³ó‹Ë«ÿÔ$ëîöÑÑöÁa§¶ùpëÑöã'OwþñÏÝgÏ÷öÿßÁáÑ‹Ÿ~~ù¯ÿ3YjÕ©¤êÀ‘¬ƒpN¡þ•Õµo¾ýî/ýÛ÷ˆ?ŽfgÄ®‚ ‘^Ú·'«šÛ‡ŒågŒÅ¬kvV먭ÍÑž>´#¥·“¶f¥eG„•Kf¥@pÍå ;PMï>難cœ »A ¶[êYÿ™ ݺ´úý7«ÍÕïÿö}ÕßÁ –ªô ä‡Ë–RëͺÇ#¶‰õõ„þ¶_U_scÛ¸­©2Ý­=ÎeÓ‘fùa¬}Õlë͈b”åóD~רç&6Ž'E€8‰jU«Ëk=Øju#˜QhL^ow׺«Ý5«JL³Fœ¬šù‹ëç^蟞Åõõ¥^$±¢m¤óG/Öòáîuœâ®a§Úß;Üy©ä¼ Vœ {Áa ìÃ!h¾t¡rz2Ö’@Œö(?ª Š?„W´×£UŸNJòæ}S6ĘèÐ\Ëê¯`ó#†”بÿÕ•œ’€ÌÛ“ ²°O&575Õ£ºÙÑÔ”éŸ3RÕW+¯—É$•t¸À~S„ÓmdÏR³D{'Y ‹á¾¬€ÑìÏ^Ô™¡ÎèY㢅â8N\"Ym67TN‚~Hª^X~Ð΂ŸPe\Çv·T…uIÙH"Ȥ†a*]vVcø*`¡Ò–(Ï<Û[O÷z[E¿Ïå÷HLÆõÅ“K±/¢#žfÔ¨kmç¨]^uû5̃G6ýF]ƒ©Ý«mlÜ»/Ÿˆ£ü$Û™ÅàqYKʯÕÕ£<ÙßW? Á÷·4ÙW¦Wg0œß¤¯&lµ³ 2ÄR¾h`;ã€2]¶OkA˜@Ëp ÷'ª99¨q¡y”Ê÷‘5¿°ºG†¹Ûbˆ(ðé°‰ûâÖ1Ž<÷ÒV2ŒˆLpu!éšQœ•ÎàNÎŒC…ÛÞ›ù ¨™¤£Íƒ©rBÞ©i¿YÒáÑÁÎó'N9UÌõð¤îÀ™?ÜÎ2½8ØíÔè~Écµë8T5?=© Í=QÚ§ëS8ÞRêE>9 RMüN¥ëÝ—HõC:„qëôD !ƒzºù ý¯ÃÞÑ¿ö·{O銕Î{•¶§WØ&b~ÜG ÅPU,…£­XèðèÑVïéöæ#Ü÷Ù%¦ åw"¡ A^IVÍG`dP½å`¤Þœ©ã¡ú‚Tð0ŽmÔ/êx*ólûÙÞÁ¿rµgqråÔf£‚½5l„BžÖTb¥wž•ôOMvÏÑ#(—¯f¥æxñ|ʸfQe²ÀÛ`ŒÁÔƒ%X%¬»G2I½ŸwŽžö=Ô“ÖÛ|q´Ç4¥ nl¼MÿüOï`ó9äòvŸ÷½ç0ˆvw{66ÍÇáÖÁÎþ‘ùÜ?Ø{r°ùÌ;Ü>êá4‡„­Ý¶½­Íç{Ïw¶6w{O÷¼mœXý5Å<¶_BìËmüA&3ímma1 o÷ÿnÉÏ–‡œ¯§ü{mŽ÷'3 xxõ€Y8 yø3QÈ›ú 0ØÝ9`ä|²üÄ?Ïe7à=Ú~|èáN„Tb˜…BäxÞ$¥¿ƒ!þ ÎCü9žñvr1EÇ}ü¥Aº’M€â4¥¯6Á û¼J‘êëß$ާ‚®Z”ó$$åG¼À’éG)ŽôH×Ç쟖:Y l&WäŠ9nšç»y.í0t/gBLûèZ6hy½©Q ^ùfË6"’\ð`-ŽzýÓ ¦:zp¢C'é 7¢;"žÖ‹øÔª~ÏR™v'[}ïŒ †î ¤á`†&j|=[/­¯ÿ™Éšgœ\)ÆYsÿpÚ; Æ“Žù’{6"Óa³#À6ExLÈÍ/Ħà{ñYu,Ô£ س)îà1FP`Ó(8`!¼³'½ÙHáVðìû@_ꉎ+iA¦ô¶Å=Þ|t0È͸žI¸²¸t6,Ĺ#³“._Âÿ¼P‰¦øÅÚÒÇvÇÂÄ)D\šE•]¢’]tõ™Žñá_v nú†ˆ™ò~n Ñh DR˜á© p(¦t¶W9Ãã?m‰fS¥=Œc¼‰‹;;m"™»ìÓí“É$N™ê'š d;hO¿û8n´0q¢É[ʶmÜg-¹X Íì©}JLö8)@æ»Ãéé2:"/«`Úoñ—ßïÚÀžÑ¥~FcXG@\ÁCê4DäA@"ôã´“¶úp ô“AÚª oéÔªo­¼'GšÿSJÍU!ƒ$ÕlƆ™ äˆ5Íþ0ÅÊø¾f±H» –c¦v2ȃ5—óکЕ5‹EÛI[sù¹ø1‰Ìóó¸¶!ºÞ+žù¾¦—ŠB~Œ¯é…R .”àµÆ‰âUÈJó1¼n•õA-[Ý xpJM–ÁB2D×HA?ÄÁéà¾(ÒfÎ?HíJêAÈŽ¬Z¦&]£'£}†¾Œ†èá("¯YÙá'mæ¤:ûT,Ån5«7[ÎÙZLîR¬HÈìÕt Qßu~D/Štý²è|tfõê—ÎëF‡µãµc1ÖîÔ¹N)ª2%ž‹·v28¢Í¦™±hÕ†ÑTm]¢™í¸Ìpy6ÉGn5ýQ§d8›³¥û#ßÀ&GF¦Ë'Lå) Ìf!hB: ¿u‡ÖRŠš( : žýa…³  u YÊU ®¸Ðsf'¤ò›Ã/“4’£kÍ…³  ´2@%¸Ñ*Û$M›÷é|‘ß+ gAÒùå·­ÙR/MÍÐæÌÈ}Ãg;'ƒýa…³  é€&£%Ž©Øä៵|«Pˆs´8‡“…ƒ**†³ K-“I¥Ÿ† Åù²?tkt¾bS,öiŠ•»ŸÎ—鉰ÂY°Ø*]OÖ2½è6ò¸bòÖ@ÐqnçËþ°i¤k+¡ßoJAýe…²”ÐŒù2ǘ/› ]FsgÑ“ÿ±P$g#¯á¹ëÙ¶ÏÑ@Š«&©]ÏÔäŽgqr?ž*[Wv¹æöðÔ¬ce(Ã>AµðdMa-m¿T_·{í‘Ä,fÆëþkT¼Šì¸œ*°˜sg^&‹Û®?]ˆ„MNÖ½Õ\K+Þ½pÜÕ–UM0ÖÖìÏ­€m'ŠÍ"QˆÇS.¨Cò››:œYf Ëw Œý‘…MÈŒwÎ\2ÔI¢ãܹ  é€üæäR‚ ˇ žýa…³  \¹\W&°ÌJýq‹I)EÐÒ óúÏiùyOKé¬ßbVvK†lKš¼-áÑ•mSÌw>¿ÍJd¢œ/ûà gA§¼ȯ;ÓlœxºYXÉ,²µ<æ…k5‘¹Lî§óeä eI&¤g·a±F cþì—ê2S÷ÐqZ0 6P_ ¨mÂÌ<ñ«_öfUaÃÈ/þœ"gš3ò}Ë$¦ï¤a Xá,(¡Ó¤QLôVç 1µ fá,(¡Ó´ bzŠV1º}xøC…¬€üºã'ÓCjL BúÇ šî´¬hIŸ‰¢€‹ÂYЄt@~sX AQ” ºóeXá,h ÍÓ©i@*¶&Ó®P‘yŸÎ—ýa*ãï,hB:à¶Ûªˆ›n©y9Tò¹o÷Ój?ÇØÉV8 j"Y–щ”GR&΂&¤ùfsQÝfÖH5l°Î—ýa…³`†<.bÎÊ(ÊŸš‹¤dcE—Õ°ØVX£"™J1õ¤.Súé|Ù¦cù; šP¡ºÓ­mäPÈGä¾ÝOkŒqŒl…-ŠèjJ¨¢‚\¬ôËþ°Â¹æš¢ÒZ£il¸ sßî§óe`ŠÎÁ_ëw³²scò)Mœûé|ÙV¸„‹F Ý("ZWŒ²{ÞÄæ³å¾ÝOçË¡¯A¤HcV SÁ|Єt@~ùÇ¥‹”e‚ˆš¹aAµ?¬p4!Ð òEÌ£!K!Ùï"Ù&žM›Ã‰%Ý 'Ö¦2Š›b”LJ¿ì+lz>M#”¾YÒä1çpºÐ܈ܷ]%G9_ö‡΂&dðËŽ-*³8&aÐÌâÜOçËþ°Â.ÒùåwHºÈòÈt}ÅF•Ä£¬©šÅæ³å¾ÝOç+ÎJÌ‚&¤z~¸è§‰µ×ÊMHä—\j:Û%gTü°ÂYЄt@7`îFš]´Gb e­ÈÜ·û™oµ}&nZo#aÚu]¤ÕÍv|1k!&‘QÎ9±ŸOA>¾w€Ì‹*ĆÈÜ·ûYNA©Ï¥ ˜4J0+‹,¡ Ƴbòy Jó)hŒšlËiË%å1t’ç¦,*6'~~‘ÒØyÙKâʳbÜl•Ëâ~– ׊$7>\Òæ:±¸ò /.:·à¢bs Í/RZ`^ö’Ìù¬YÈ–ÈÏ‚œEOÉl ’ šÈo®×¹”ô2<4,xö‡΂&dpçr%¸¦?'¤ò›Ã/µÐK-„rá,hB¡´Ÿ_1߯³0`AÒ é€üòîQ6©¢¸|Єt€q#,K–K­óÿb8 šȯK¦Ô± H[€²/ûà [ƒ6=É2iJ¦sm\» .vMTV“›È}»Ÿö‡΂&d•ßA]ì…®®õS£¤e‘6U­øbÖBL>¢’›Åù²?¬° Ä$˜NvÛSÒסî+£¦ͬ]NÐÔ‡±%µ$F[”šÈo‡ÄÒ‰ÙcÂgXá,hBÓdŽZ'3˜ãs>/û#ëú΂&¤ò›kiVŸ´63àkä0ÊGä¾ÝO{¤PŒl…³  še5éÆ6ÃT"4!_þqÛo› 8J°)~Xá,hB: Û`Ã/iÅ9æ{Z*X gAbÐÚ ×ZĤYgÌ…³  aà'÷,E›E¯k t˜ÄÍâà-Ζ©ÀÇɲ\ƒúO–IÅõÛž+SG}ð©rѲ3e­¿ËF}ÝrPa™ÿ+¢?vÔÇW™²·y¹ðüÒR_Ú¬òR2ƒ÷é|Ùfu»ÌN/)hB:à.8Ù Yn²še협ûv?­÷Ò>¹¼ä³K΂z²®q§ëeÓÜéró¾ÝO ޱ?¬p4!È.«XS.»nÒÈ#WˆÉG8ôâ87‹óeXá,˜3C¡HMöQê° {ˆ%ùºêgl¯æá£³¢Ø4¢&×[“€Žs“3º\Ã…ëit2~Dçèrp;5‹sç#0RÃs¸RÇÏk­¤zµÒüþ5Ò¬ñê —¯6Tý^êT¨IÄÕ*ª”od9ì•Hó|4±Òivòxçå³íuqð†’à,>gW/Ú·ú¦µÂ-/zÉùyóàùÎó'ëäïZ 0c"óôeÅæ%ËFÈÔÎØœõ(ë*^Žn´-@F“Ìbð–캲«Ñ¬ãî%fô齪¾-¾HB™¸‹Iöà¤."O¬Þâ;$¦x§Ùd7+:O¶êõÚMYñòÆž€G9r}¯}YMծܜú ëZ† íòÛzab³€ý©?¾ÑdOE.(T­Añ5•Ez+¨ÐÅÖ-~Qs Bwç憞qIÜF{J=ô¯ZúÏð{¶žüˆFIk–, Ûæ½ëÝ»§-û­}hN}âÒ[‡€XÜ=«`m<£m¦ÄWÔ•¬ÄÂb¿’ÙCÈÅbºEüƒ9Fç¨Ü\Ù#ò5M|r¹ Ò1]êlyÿÃÂ2(팳õmž/%cÞo4¹Û+I5¢®ÅÜ gƒÛw÷}õ/<òƒÃt?Õ¼­šõ°aÜehã;¼UbÕ?®›7yÍM-šxÉrk¯Û@ˆñ7d,Ô­BÚß‘ónŒ=?€2€½ß:cŽÍ¦Ô´®ñ®K¡û¤‰vo…î^ƒx‚O ŸÆâõO» Åç“$~Dæ-€uu\EÞ†/êÎäªè)æ›Z¾dñ²§ØâÕNÏ,G±¬|yàÃTá[KÕüÅçNµpý¹Su®A/k½5“Ê=j屪w_<„Í99ó¯Nè]µñ¼òìÙϪv4|6‡.õ‘Ëœ~_XÐ'œ–/» èeÕÍh%7ŃL¥ÊZql<¶%c,ï@t òbÐ9†?™sN³Ö\ È!Çè ¨s?²ŒŽ®‡Äéâ…ÏÉÍÛ0ćò̉ÎÒY‹é¬Ð¥ªÈKIú%/ñH§iÀμµiöÌ2;P懩ñIƒ¬D‹«ÐJÀRüúE¢K~r¯ün™9Žù‹™®sC÷ü¦)¬ýüãyè·”àÚFƦ¾à7Ö9O›…—ð×ß%´yŒ@iµ<ÇïXÉPäÇúnYð—x³*VSðíV«R2Wí‡Ïyî¥j)W^ª—ù…XCòY:êTtŸv{:Ë2yÂë"_’˜ZÆpþW¬ ÙäYòî“:2~˜°ÏF—eT§Šw¸Oý¯Ç™K‹KÁìcr™pènÊÖªª‹1;ÍT ùM1 ‘µf‘y⤠w©aŸI1\ŒÅ3Ü$êÔ0Ê^“§¯ø„v·ìþ/8™FŒûŸ>ÃgÔl¢ž5/Õhp‚ù·Ïü>ùæ@ñF†@Fj´ëW#ÏiÒ–ËsùT”çÌ+·¶D­·9™çyGEˤ°aíUßrþ÷øúL_{×ôÊÕÜÜôJ´:ÆÊÙ?¿%èB"t‘ʨ/i•BF/×Nô#Sì s§ƒ†^;ÉÆÇ}µw†~ÛP2ºã+N¢ýÓûöf÷†³“1ö-ÞâOéí!Z£¬§®È/i+ºåÂ.BŒ'¼P-h¿x [þUØ¢°ØÚ9Ð…†®ôJ8cò«Ì ‡,ÂÝc ÄkÏ+õ<ä*ÖºîlÃ6Ë fºKú§áJÜ&ÔLG$?¡‰usAOÍý÷Š\}8މªÎÕÃmSiÍ%õn__1ç <4¾Œ–*¶ÿ¤;72•Ê(Öµx¬\u±'ÏB˪4 ]Ö°£#õ¯xFP„Åx¾y>{BÔ1ºñåÇË Öäíb³L«$ÁÂÇ0³Xožî=Û®'y 9NÈ*í6’x¼LJW›oü!:ŸÑ~DZ¸pȈ“5(ñIY¾SõJºéÅ=ž––dV lˤ‚u3È"¦~å…¥ˆ`™RXåчy“_[&ç×MuN‘*¨•Óã7 ׺GÅà¦ü Î¼YãÀƒÅPåÜfÑxYða‹Ž!MI¯ˆ”GïºgçF6q¸´emoAØG¢2!t’™Kº¦úºp®$ŽØ(Žš£~_½²½R1 ÛßFV}Ö-HÐV‘’äoD#E½’+Ò· ÐÑäÁÞÞ×ÄáË‚.<ºµ8ˆû3óÄ•S”üdYœ§­è[› jW D® åú/0-À’…$q~Òà?·$“Ó.Ž®Á,ÁAé˱.,º¹›ÇdoËÐPÜ6ä8;Ø\!´Ã]T(-)£&é¼2"¸A¶«#ö…­Ð–I¯–Î…ˆÜª©èÞéV%…ž[%^Š"‘ Ï'–ú‡/çÀÉCe’pCh9rñŠ3`‘:EÇÄÑ\xÞ!ser +lŸT¸_ìì>"Ü2g·ÙýPÎój4!Ld(¾BŽ.X¥e¤!m²†”´óì K° m ¢ ШÐ+‚i:«ìÐ*Û-å«ì4cûÁâë;•É·u~È âHá¸"–m]Ö+¬úý}näìÑ ²Çì¦C(¨}Éð Ü4«‚} žb;çWÚÇE›-8ô²íz¼½yôâ`ÛÌf’'µÅ†N\"OŠ ª¯’Ò‰èrY>úUgóàÉkU€ó ¢Q«ùÚ.38qf™.óèaîõ?»ÌI:h²‹T*£§O{(¤õÃÃGazª$9Ã;äÝî6×ú<-ßìÑcö[R[J†Y¢ß×À ´ ,dŽýÒX|®2££7:iYáFR5w@K `4ôSÎtº”-±x:žNaLÅo¥¥ 6€°Ö‡‡:w _µ‡Í­~!’ÑшŒàŒWX^;‡ÅòK{´ôÃÈ®«­öÖ×_oJbÔŹÖìü ;NZ”ÃÜ´Oû§×‚ç´ÇÅ8Y=aã€{{ISÇOiLQ&á€ÅU˜“!îsΠfôJjëøu<œ×^HJÚe”Ã]¤á(4‹lœ‰ÓµµÒ7࢚¡WÍÚyçëZš¡ZTÞÉûÑáF%ŠÃblí {›”<ÄUý²>Á€<ÖtÞŠ“ž—õc¬{S|è'…{>>÷<À¼GÕ×O¯]®£–Óò.é<Û7oùr'½UyýhþüHë&3Ý©hƒž‰XN˜<ë5Y“˜ÕŒ¹U—Æé«k|61Ű­P­«Ç”~>Æ…ÐÎÙ ²‡”ké»_º-:Ó}÷Žôò÷Õ¦ª´Z"s€ ³a-êÈ ´ÊÐ+V(¬zÛ¯~¡£äwíVëÝh"³`åÁòºU©ÔoI6›(K-«¥YD(­’eµµ#Új–wÛíÝgÁÀiÇ+ixŽÃéÕº—CÃÅKû#.¨•‚Áö3O ‚î½¥GœÑ£Ë7‚¶Î_òÐÙt“­¬xÔHä3×"ÆŽ>§ç—AÜúu—2eHñï<<ìг¨MÆmúùœZKhYŠÉuÔqË.&RÛBÒAV.·`>@wY0%›ãnd¶ê=å×¶;8ÒPîDÛ ³P0YŒ¼8´µÚY®Q4³Ï×äa«ÌšŒ\Å/([P™RÁÌ€`^Åw­tn…©Öá.°•ŠbCš×¾†©Åï2k8¼HýÎ駯È( ¤¯èÝqî(:ÁårŽäÎ !Û#Êó«@>“ITÅ–€oËݶ žíN´Èî‚(H膈èLÜ<é¶ÖúË÷¨~Ÿ\%d.³´UÇbkêqê0N/Ë<Žg 9 …–ÕNÔoytn’Õ$Oï†x †–˶sAy#è¸dÿqx"r4‹0/õ©eT•O“ð¹ Ê4¤º"ÔÒty/ŽÌØæ?d¬îßÇäì);çUž–$/*îåûx Ì!¹êéý›<‰¹è eOL!b-láp´ÈøôrÊï`óóDø>ŸhFÑBbÖïÁí0ÊjÏÞ..}oxõnï g¯u$Q›v9åÃú·<Î}üMÈTD®Y¢“mH­ˆ×în…ì}»ÇüÓ勨 œ¡l½_š³ÛiYñS}êhÒ+ÝJwá‹ÈU+w·Rñ\E§èöà«ïyøÛn>ïdˆò¹ØXœÀð¹TÙ-î6ù/{Õ~Q¯kN.e_e¾"ÓXG nJ;=ƒI9ÌÊ|.'N·ú#ÈÈéH=òøµŽ†<+H àPhë‘!zdÐÃ]‰Ò÷Œ­EšÇþ½Ïdç´lŒYÏ©CÌ 4˜\ÑFE¾Žo÷YJœ ?]çvˆ}ð/íwª]+L9ÊâÝ˪XõˆtbXéΉ e£Ö¿^¬ íLбü€XM»ª©Áãç´‹³¸ÀZ&“ëØJÆR²måGà*PñoÃQʸT–ÇøÇBÊù'?a~ò «+œÃ\dt÷@rˆˆÅÜ‘çü®LEöŸ¯L&6O!mkX½³8‚±3£ø2õÓæ2‡-’eþC®„¯íf#ÐA@ƒØeòÝÇPØ´gÒ+ÇÆ2Vâ€~œeX‘€kDù‘â`:e{Ò@ìÌ-!hQ¡'¸C_eÜ®”$¿룾G+ªo°séµ)k@–<°]>½ŒÖ·zÕ5ºlv¹ h-„™þ‚;kѰ-%u.ŽX³Í$HѸë¶óT·Àž-MÖeà¦.ö<ß%šð•©y_íðHr¨Ê#»÷Gïö„«®ÁÈòYÿ²€|v6‡ˆš‚aÚ:UMcüeñ\a^»¯ZÙ[xÄ«~k½9Y]{ ·1Ð?e~EZQq9˜Œ\­¼'“ëÌ 6ŸÊV°ZªOw¹(‘Á Œíæ´¶»9‡GY——d!J{ùŽÇ7jƒhzÇ^çÒý`q§ë\»ÏoÔá“É5-kay_ëD·«Ëz9ü¸+/è[+‡îÚÃøG¥~¦{¥'1=èMÖ|˜ýGÏh‚scc½s}Ž” /Â…€XëQ¼.°nÜP£,ª®­Ë£m¬<¡eFÂC‹óe%I±Ïx¾(’$§ˆú@Økï? Q+ Í1Ù•×Réé5áÆ4Â$¥C§`ß4>¨g„))|QЏ!ö×ø0:“øm´úJ*Ôš¿ÎBru$G‹?Þß[Âû0äÓ€O"ÚÌ1$¹¾×ƒøpú¦xÚGª[Ù—Þ|½¹Å½ù0P[Ò›°{»)‰oò¿r*.YÈ.Ð}Z*Ðû– ?ÙÊ«ü1ñ5zÔ _Wu9¬à–ªÐ$ü×Δðz ÿß 2Ë-š€oXC‘v>‰`ýá»Qg¿Y¶“Ê+´ÐœéÆ -4ò¸“*Km¦é -¸î³Ë Û&¶¬½A.f‘«óBÜ~7¶í§ã¢F¡N‹rš¬ßN­ [kµõháÁÀx©“x«þ`¤Æ&ü®”Þ¸½ê,3I§3=Z‡,•[뜳ÚV¿98ëD•˜îŽk{48ü×3óÕ 'þßz&-Ž?”[ÞRwüh®îÎ=sü=uwÄ~ñNGAIWª¢ÃÝ»`´|†îú¹ßö°ó¿F–ø<”OF¢Ý[¥ æDqåƒUMŸB(úÍ$¢9G|$ä\g:ðd"¯Péïl1 Škóÿ¢hôçqßoj> .§–J5çFûoÈêi^–ÐOplX´E¸¯t£—ÎýÍöÎþžZÚÁ;ïj·úƒYCm3òÇWi˜¶ñòÅ™˜4Õm³6‚Å·m>qÿÉNfü¿4Wü©/ãŠ}JÌÆD—î‡hÁm” ¶B¸Ý3ØP°¾¡¿%Â߷̉io²‡˜q0DuÛ)Ú®Z›“É8¨¥-X´~Ȱ¹ÚI0Ä…·uZ ðûbÁþ™‹uH›¢\‡wŒ´4wô¯ýíå òÁÓÒÛ‡ z¸"Ca¹¨^ÑHîH7Ðÿÿq±Ì‘}>–”SÌ;óCQM–KiøŸ †ßêZ½ÌK–ý\ñð¿ìûý„ºßiºÎRÜÇļÐ$”~ôO–æv‘c gQ_s¬Ç/žo‰‘Åø•Ö–!7ß#z%øüs 0{!úQ0Ä+öÕ5òMƒVñQܟŰ®QWD°ß€©Múd° …Àßûèåš…bº_.}¼½¸¬žî7_¼T««ai‰öùðôgÈç䃃©½W]ó=¹•+ÖS-(oúkv¢Î|õhGtOÐ)ÍøJ ƒ ”Ŧ1Ýå]&±îâ4쟒*i0ûS–búø® T¼TßÐþ!0û~€¤cã·ãü4 ’)~A÷õz‡G¶z=´~g¤Ë踠Ïw¬¢²ç]ïESyº’GK¯È<)“öéØA¸wß(Y2€Þ}V’A ’îàÌ"„#TÜÓ÷ ÑåГ­­Ì’¡uÿy’NΉxa‘htô}¼²Š¾gØÅ&Ș}…—tƒU`a¼I3 Ù· ì…íM3«šdL•NÑ3‰ šýÉx–âŒeÀ[U¶*º¥VbK¼é°%—"¯¤oR&q&"ï`‡ <(BëÚ-;¢ARŒ/ü«”${(0çÿuˆ^’ðJnï6€4:óqäᕤ@oIP#z+›úÉÔÍÁxj¨Åô1;o Sr|ŠvLÛõ¨’±3ïšä"{8Q€M¼ ÔY`zß]’¥{„H7]~I¬ÿ]TA]Þ½7uÐ%Oq‰E©—XØÂ<ÜÛý oaá˜Ä­ˆl£ÊÜfàÖ”„÷o³C BçwìÄøÚ;ÙT«ÆR«Ñnkà””›¯`Ö¥öÒì¿ù£Þ®«•¯Ìç2}ª%q&~ûÕ_Ó·jck“y`pmÙÏPf(HüÀªx­±QƼ•Z¦žå„þÚÕ¬˜ˆ`64KÓœícl{þÔeߌOa/Ø| } ô ï_ö¦šQ=Ü9:¼ñ^ )¾ˆSô¯Ž"â@Ó`„‚‰¸@^„ø‹pïÂ’l?§í T]ëM¯Ù#H®ßXU¡È—f‚òtÈ~1F§À "Q13ó¹ODm§&ñ”= Ï°3t “hPäÊíÔµ35ãË]Þg£.e¹Zûs Øa¤[¬j¨©¹à¤ ºTæÏ,®Æ.l$ÌÅ¿šxIU¶üC8œß7ãhït2}ƒhvCà9*À×T[­A«êýFŽ%¢f0쓬LZH?Iü+õjr¯©†úbiEýÀž€‘uµ„ÿ²ÏU@Z=¯Ë_¨¡…ÖÔר¿Þðl+¯IÏ®e<7iããðËß–¤‘ªw¢¨wïÞÝ:cítF¶Žk·2‘èµ™MuêµÜ:§668S£ÜÕ€*ÆÖîSëÒd`hæGg6ÝÊe· øVºäâ¥ÅEºÐÍ{>EQÙåûÿêµØZÒ ‹ñìCVck9Ž…ßpEž}†KòìfkòìoQž™UÙ5ë3·N»ñÖ‚mì•ÛDþnk÷m—‹û7WÕƒxü¢—¥z=¡:õͧY—ËÙç³ üÉÅKÙµ£ûþMdðš‹o¿Üÿ ë>²7zÆy¶Œ£&ªÞ9ëGÆ@U‘k;m»À¬E&P©=_þlXÐ N-[$]C_^Ð8ÒÎWÖðßÌ{¡9ˆegƒèwÛ7›È3Qxй¬gG„1Ÿ4„ê½ÙÐã_Ÿr1w ˜°—OÁtм)î¬àïY8è¬xt¶™× 'ÿtDùí’±ODšÓ°#ˆ(se“¬F@^QJràîCœ ŽcÀhBrïÞ==pÉ”,VÍq  P²Gw„TÊQ\#[Â_»Î5UkÔJjÆ>ÔU8»'Výªo8 >ÙÌ€žAÈÚ\ý¬æÆƒO=7Æñ æFm)¥µzõ†û¾zFx\šè,ßR¸ ïŠKh^Y/™Eé§©-ëe½ `šš­aï¶I‘"E‚ÿ¹”7™'¥kɇ ®f—1Žõýúa÷àîÆ(Åû™­,n!jµºíǺÇi6~œî•ÕûN vKuؘÃo”è%ga«fóËd7'Òé ŒÉÈÂŽ‡'çŽ1h½«ÓÂXÆ [ª¥Ši¾Zº¬*:ŽG‹¹/Ô/ÄKÕ«:Á,h”úV¶TïÀg¨oxfõ✳A(í÷é !È4,¾™P ¿·»GWW¤Ö;ûàŠg¹ŠÑ‰]ºËÛ@~öè[\ |OfÉdÊAæ(©ê&]¶é™¥lñ ÿ@€§×ª&cŠÆÐbSa¨;ä§í–†u´¨öÇ1 qüú‚&ög0^"-=`ÄíäƒvoÐkªúúÁö‹æ¾knMáFKfr´ ˜†ÅQ jœœÐO‰)ÚX,œó'ìþ “.wÁƒlœå¶ÀïeFmm‹FgÁÙ l9eç¼ùäÉz¶ýìáǹWØH‡Cy,)€m­Ô#Æ]¡˜?! ËbxÍ\‚=ZÝÄÎb‘•…4ôsR V×ZÕo®·z¬~3Wuúí§3bø®\(¨®‘›çÑ(Ù Kfù€FÔ½ä£Ú^Ëúù­c„ð;¶Ll´çšÈdeñ‘­4¾ý¯Ò)Úœ4Q4HÂQk²÷)ÉeóPÜã3Ì)Yê÷Qó7˜õù‚±Få}« \ÄVªâñy™l#Aæ´PfÉôð&šwœS„`Ëóv¦ô¸´u ÉvZͤ5«—Å$J\ã¼ûNt®Ÿ¯–ÛGx) ÂÈGðÍêß==té™ðïX4‚É¡_ò<|ñ|óÙ¶ãÃD|šì‹ QðMΡñ‘²Ùê¨ã%óBŌߪŽêîÓÏäõdõ×cOÒϨ þÈe~Ç‚Ä,zÅ‘)“Øe’›•Ií2éÍÊœÛeί)ãÑg'aÔ–*]ˆ½Œ—ß…"(v¬ ÿ• ƒhëü3°0©Çü+¢¥›A0›olx¹¤2°åð` ž—íQ0M¯Rz[ÍÀ+$]G6AUÄO'• XÞ úõ½úIÒ<ÎÇ/NÇÁy0V%øIÒÍèÇ"DïøA ~:i‚Åc8€ )õσÞÎãÃNþl( ío=ínïolíð³Í©~–†R=ÒzPf †§ì›¯iϼ0CAy¥#[.кҵƨÔãKÇÌô¿ú.cöygøÂ´¶pD<Ò—÷ÄȲòêŸA0áWß<øk3X|kûpš„Ü¥9ï¼bú–÷h†å¯ÌÛµ¸Í&yòÄ­¾cp·?£®½r„¯„%´Ôg~|b }ú¤hoœþ:‹§|½ÁOF©^êÈþþ4€¾? ¦~œýþo[@¹gôHô¿5ÅR¾?Ö¯ê8y{0›ŒC rÐ4×ÒÙÇaëHH7‹_kî£VJâV)îl–N{o€Ü=¼HÛ!IX¿N`ÁØZUk<²$JÓ°ý‰èf V?ôfõÇ;é¼>ߌèÝ7’œ4êD/|]„ôáĘJOS67¤òË?bÆaéÍwYÇš  é@]4yÝZC§qûòï AT%s#Vk׺ò¯Vk*Ǩœ,Z e)rµ®µjüî`±ó`ëQ“êj tÍ ¶°ðªS8Ó‘dškgÿš&³@+°ç ŸÄS>a]¦G†päòe±ç` νüèÙ¶Ñ¡±à>î [øG?²ÇY²/´ñÀ(yÍŽ“íx7â6œðÐfEóéQ'uN‚ä$+Š6HRgİ+>ûº”§Ùs[Å.ejà¿’ «•†Õoª‚ÏÙãóžWâ˜&æ*vv(å0ãPÔ'מ²ÁãjZèÏÛ’‘ÛÙÐÛ‡BÒÆû²«óK¬nןéÞKfä¾”®ý…ÓÚ`YõÇÍ&0¸Ñx È-»+Aq]%€–¿ùžœÅç¼Âà,³/¿—׉¹³Ž_ |cŒ3«†‘x–"2ã8~£f¤?¹Ÿ9ÄKl5à ¼”hןxájBpúS6uã på›8åE)I7¹LEO “…œŸi'3¾IG¯ß<<|¤¾m­àóz-ÊÔZŽXñA jl‘†õ—ö Ed˜ÁïäYÏl†ÓžuµÈ½œLQâ˜Q‹Ž ªL6й+t ܧ{v×KºÇ’ÂEæ®óÂ>ðúÝC ‰¨‰y¥ËÞR¶®˜r¼ã|­ s‡… û.mÿÒ]zå7ÿ³Ùü¿Þk ¬4¿ï½ntëV£Ý]mO0ã±9kÕ›{Ô¤Âæž+q×Ì¡ §€;Ò&<¿7K•1±2BÖ^ÿ¼×¨ßÁõgNï§g›sM©k]Þ ÒÚÆ{Í=¬EqA {@5á/ѤnLÇðßÃÍç½Íƒ'?A2…÷^lm×µvƒÀuœ"D,'YsùÎ#XÆì”²Ç‡Ý—ˆã1êëÒ È­šîøgC™Çe]mJt•éuv°¡dþ!Ù~)bDL%ŒÊVßOzþ8𽦡‘ë …¬- ´»ÝÕC\#`“Œ½ür¸TڿܤšŽ ËPO(•ÆÉԫ߆OhF±ÇÇ1×rŠVáNor4;%"ø²­1ÿœ?] V)êöü„¥r"³Y¢Ýn_VŽËfFXB}&€1Xü#¡ˆ¸.ióï5sÃiUt_À»Î!¯Pû1ÊÍ$œÎØÿÍ|Ç»™³Ý¬/æ÷!%y Cî•÷Ž|7Üû¨=À2Ò½Ò½Hy{Ô…¹.H-Eùh/”µÕëe;ç»JüÌðG,±ÂQ„d³GëÄÛaή¬’^y~~UÐ’70£vVvý™¢`›™F½aÚÆ¡jµAÈøÇãH—-`àÕÔŠÞßJ;x‡«V¿Q«ßÉÂÍ‚’ÉÒ©emnÎ23^­Yd`98+µâyvï±oƒTíºÊbØŒ@‚cß ,d=Ú†U=E—èN¯å- ô¯µB·íÕ@ÖNÎûèWB_àw§Î8«(uX€ŒvG;ÊØßÜúçæ“íj¬ ÃíÏŠÑäÜÌ.$‰¹ °Ÿ¶wöž[À$æ.À@Ò±`qÄ]@=|ñä`{ïàÈ‚fâîðÅÁ® ¾*¶m7˜Šñ”ý£}ÞuŒÉùÆT É”Ìo"¡Â 5Q-+胄"j¡Â)^ó (0|¨î4fÓ·}¾¢“a2¤-žÓ€¦åjçùÞóm'j£œujkïùã'½Ã£mûõnvȆ» ÒÉù 5•ÚX §´ì]vËÓ ¶,{›÷ÊüD³…[«mgÖJ 6¯,V¾²\ìzhìÒ“F÷4@¹7Õ5)3;Z抯I>ÉZ…o¼‰Ç>ÙèÓ¬’Çgs–ï™nTð/òœƒëµ1ß"íT³UHéÊÚM/߸Md‹´Ž}Ô=&õäÅ ¶>¯s3ã˲4’mSõGU·”èHš?¿íÞa¼LûPãGFP,°—§•ìˆ_}ÇçØ0ÐhÉÍØv1q´\ßgŸ9ò”qŠš‚?Å‹…0fÈà˜Æ³¤Xƒi)ýD-›Þ7~vêËx®pˆÃ¢AÌJÚRêÑ?žìï«àl6öIg„§çÀ®’`1 kͼúÙÐÎi×.3|§šÅ¶´€¨Ìd³´lgTöb{+× ½å!þYòò-–-ZO0c»¹ùKÜŠ ‹K0X±ü´N£IŸLäüÀf^è† «Y*wJŲ€Ï²ó—a¤™á½ûjÑ9pÔgïÅ),/¤YÓ‚ã `Ñ”8þ 6›tÂ%{â·éRYõS©*—Eb!KvÏφW1Òˆ)oý Þ;Ek¦S?áµft÷W ûu«÷ía/Þ+ïBïöÝ¢Mò +ˆ£(NØ•é,Æ&ÍD Âó– ý¸5HëÝq×êlîòܸù¤; æíðí²ˆymºA1BôxôgI‚'Q‘Êp]€ÇµÅ²I? ³ÍJPûxö]²f‡O¬©±E¤ŠÅþq/?–d A@/t€¯îu¯åÔƒš‰Üà¿Ë®³ô¬¿¢ŠG»ªbiÝC^>àP›,RÎ&xiAZ•óÇ JgèÁÔïCøý«V&@Ýâ$WÄ(£Ã!£ëÎoCèO°¸}¥ÖÌ&—Ñy˜ÄYͰçÕ³IŸ…)Ïsô:÷±ÆƒÈèç÷Cx]£{Œ&ª°X¥SÒXÖðxº ºÇÉ™-_Öø™i:òÏñ‰Zk„bæœ÷îDKü í¯Oâ‹ò¦k²žm°|2KîôIÚœL:µêleðÏãÝÍ'‡56#" ]LÛRÍ>¤RZ–«`挦¢èÐSÊÅeWDŠ ª»æÀR<<4µÙpoÍ:"…º±ž—Ù@É)iÇ2½ÐqJ[kÆiÅó„ ‰‹‚ž¥·­ôµNœ&~”"£f§‘•ô«_¾Ê•üj£Zž»ò>Îx$–¨â6“Æ ­c´låÑIgÃÛ Ó­~•+ºŸGŒ ¶uÑÀ¡ŠšÁ‡äÕµ@$§Ë—Ë—µemJm‡j†ºÀT”€4;µ´ »ÁêëöW_µGi{ƒ .WÛíš7c›cÏÁRs睊¨rÌýíÏ.ÉÊQï’Ä\²RM“>BêP»Õr>ð[¶NF»0ä0CÁ¼›é©½·*”Œ:Zò÷ÒSs’Í‚S‰ÏQøz0ZP-¨¸õ‘*nݸâôtÇã«”a(I.Tl-D–Ū)žÕg«ò|.ß2]VY#—qäšêUW÷t·’…¡ËsŸS`»ÙžÃOËx…1Ï"ýÌl0 þ=‹Ð\3Nà{/áꜵ ,Ô¬;a#žAâ_Dì EìKÍ}ƒ&-®úŠW2=Jƒ„)c‚„÷cx¢—WE©5ELÔ¡›'QÐŒéo¢×rvmL7fÑ,`c[¬fÌr4ƒ‰ {øt{wWÙ},\“2THà#ÔÅœvFd Ið³á¥³“EÐ ùư€p @Aêu`22à’¹h“Ã7‰”—§QKæ!…ßiHU.œ…’#›„ºˆžƒò½h þ‘·×ySCµõFÙ:‡Ý¾Ä[]S«ï.ð^UŒ;·n±÷£~¿Bç¬áT?œ¹ $i•mß“Ȧ8°³³³+U‡¼\`M8 îèl@ \ço@²Í〈okëØ ÛÉlUr¬O`w(Me&@0R!Ñ z€aÕAØ›Û÷·_Bptä–Ž¢ÁzÛ3u 6ŠóP9†€âr‡ò{û¬î`žbUé§…LãŽ<âóc ºÑ1hP¥ìÁ×Ê÷'«˜Ï*2z}Vü!›#%¸ãÜp¸›ÐÉC¥DäÔ ¿-÷È[Hµö@)ì§Šçøw#%×ýîºP𘘬p¼« ]¯ßœ˜+P³”Œƒ°… Ù‚—€L܇o¼l>J„öܪ»$Û;§IèóÆòwG”1Tsl§ +È81ÑÛáÔöèÑÿn$ñÝVæûH"ßgÇÞÿ”ø>C‰ïsbèHZŸ—úì¦,dwãNýSŸ SÉ$ø7ÝÓèDñÿC° ŠM⎪S Yÿ¤ ƒÐ]ù ¼2÷í» Ê\´Ëu×çÁtl Nsr/нÆÁW'ñ(ŽŒ§?=]6æ ú¬ŒßŠ¡gz§ØÑÖír7% =ËÉ}ö~j‹?£±^ÌbÝ95>âÔ0‰ÏØì&ÍR<…iI¹§ñ"²Œ¼ã”üµ²=5šýÈ;–Å/´‰.œHeºrfG€ÞE@íØÚB}â¿ñà‡J ¨ 9?”cT2ƒÇxÆE·²8mó]úvõ뚪½¯þ½bøæxiX´*ÜH²Ô^Š€$ô>ø¸‚ü ÄN¨žw=ËAý¹ý)~&|ù û Vƒ?0ŸAJ8mÀ±¡-ŽôÃNs9QNYÎsh¬\Ëo>„Á|†åO}åçÉi\z}^ æOi驲6e,ˆï¯þ©ÚüȪM1®ÃmÍÕ‘ìŸÅµè(ÆÁ„æ¹Ú²644û³¡;\‹&· ñ9rÂ7ÿZñ%­bSn°ŽXË•j& .Z/åÎ ¥Û¶¸l sŒ'„´³Ùèx±ù“jþ*ß±»|òô®mõ¥Þjj®°‘FEÞÍL®ä’M£[Á+Èî1ÿtù:ŽÇ6Ë‹“É]ˆÉ¥eIì¸An¯šôJ·Ò]H²ª•» S×e@:œv‰³$¾é´݈Ùnæy­´½ùåü éŒ#!ë”Õ¿ëáŸ`f¼!2 Ûzyöd ¯Ä‚™ÆuåךëäÞÆeU˜ÒÔβ*M#UHî)L͵冃± “ˆG¿BR‹Ñhȃ¤Mx/Lö#¼lP|bgÎ#¾ãˆÖAfQYd. oË…‘O©ÐßÖàð_Ï K°¢÷U*ô0È•eÞD>Z´è Ä)Ú‘$ºŒ×’`äƒ<ÊñA)«=È™#Pkú£u-'Iü&ˆ2Wüì@­ë‘Väƒsâ¸H0|ØÄ¨uÁÔ~´Ób, v¼Iª‹Š9‚«Ï†QÚkIþ ¦Ù6[@²†¯~Q¯ívíXlþÕV® ,Ó„zjJáNô×o¨Ãô‡ôŸßCò›žÌò6*d –œ1(Í+µû”ª®„eSc×g{]hó-`v­Ë~<Rh:Héw@'ƒNÇA…“ùÑï™?¡_X9¸”Îóß“«º¹É.g5ÒDQù0ØU²  4™ X9I™çôvŸýáØ»Ó8r ù]‘“ÿ&ÌÐÚ¥Ý7÷Kšk­Õoä­ÜT6V,¡‹å ñð ç8Škä==–;i°‹5Æ¢˜¸¬bœ™¡¾UÁ®rõåûãí—ÛÛ/È pèJ Þ· Ç(ä7=¥ô —ÞÚ9øhWU);Π›5¤Ïõ­]!î±éÕïf?LúÀ¬¢ û‹ÒOˆ~ÀÎˈҚ;aCgù*Ò—¤Ø%È»wö!À'ž¥Þ=™¦¯ü“×Ämêè'Áhô‘Tú_¶z,«“ÙTzö®@³34Ô…’ý ÁÛAã+• à–w¶1š´XAvÈòÖî´¯ad½—ÛÛÆ³¶<à,t…1Š7¼{µU»“6£=8'ÏHtÔ“d#¤§íaô!€Ô’ܳd#æÌ¿¢á阊|Çå(<Ôaè7axí¶_{ ¢¢Û&ã°#AS»“Ÿ¶óÇøRÛU Ko#4zõ+D‡"}’ÑÇ4>h3N¯Öí#pîGS„s‘êwE´,’›f·Ã°»²ˆŒE—ö v¼ð˜u…g+Én¹Vfæg¹-"ÞóqwÚÅí˜8žÒÚ5àëz‹b{Ö*3¥Æ›Ÿxø×¿ªŠ%ÓÈ=$‘ô²‰šÞexWUÇUñe©+ëU©Û\e˜·—ԬȮßï]¨®¼G ¼“"©ÜETßrÅ¢¦L gêx™ÿÎ9B½m¬Ÿñ)óû„Ü6öw$½0-–Þõ˜º†Ø¥eòŠâ2Yî)Ã}BÙmg¨N@ÎRÇöfƒ]F˜¨]5>–çjjé"A<;ñè{®Žjýi?İǸâýitŠCš¹­«ÑE-«ãq¦Z¨Ñ’žCHÞÈ“5°Ü,…­ …ÞÐ}(Ê|ôú²º]Ÿj×7ogäöÈm÷FŸ`sTw½jšÉPº‚-P‹®ÂœE/ØüüÑ´ ÷R6ŸÉo¦>ʪUµû§ô û»î§äœýT–Hlsïá?¬}'"÷—aSåô—áÙD ÷ øà{¦Z¼¹0?¼UÀõ£ñ¹¬÷Ãaɪ׃VlõzzÞo…ŽéH8\°j IcG1sU½Á7ãÍj ïÒ€¤3Ëi 5D“L#Dö(NcçØ2²wª¹Š>È9 jÎ/frö{y„r÷ržlmÙdÂO±°ÄÒ=öôÒ©¾å½¯<:‘?`Π«6dKUó&û]·ÀBûâ~¿7º³_9jf¿wA ´7ûì´Ù‰ñäTÑÉ%û‚¼íPB·J“MjOì–“ÉÆÝ%ºúɸϲöÌ/ô`±c½{N¿Üû<UÞ-ÊÉ>uù²4§—>€›šÍa¤NzNgæòüïxÍ]Æh½Ñ•¯!Ç„³zž°½¶hó ÕÜ[sl·]V’9c¸)Ärp·ß»»÷>€;‹­éT[(«Ã=µõ·ï¯»2² èul¾ÿ·ïïÌè]0t—Y÷%ßÙùØŠt?¡&½D¹žN“YŸžèžn ¨g1ÖNwª±BöœNã14•î°lªïZE½ ?¦ÖJ¥v{2Ãm6Z‡\âžP”÷j©‘ôSÔÞ×Õ’•³±¬,tðJÖ7<ü ûä.O5µ4yo…ãy“ k 7¼·ß›¼ _#ës` Õ“Q]H}Ëè2× G¥X͹ˆt.ìê~é|y‚Ç 7À#ÂҀ`ë’ûjé¼n±æñCÚï>¦gϷГû¯ªßGå?™ÃãS­Ø+þmšš›ÏwÔ‰qfŽgdMƒDÎ"6·6Ñ«e*ùa÷ÅFR¸Ùªu/Ÿ>­©ÓàÒrC]ˆG§SzÆBÜE³¯avŽ"4ìÒön†úÓ¾Æ8¾bŸÕh)GC“ß\œ’éÇ€nªj—x@{䌫0â³ vàNñjÂøÄÆûq6=¢—›ä¨VQûÏâÞmÍÈ•4TMZY©}ÑŠ€Pþé:]HfÁ2«"ˆ)ùIâ_ªÿ ÐŒ Ý*3køà:>.곡2>ÍèNgEp¡^ÁwïIÃC(‡U¨ÍÌèàÛÀ“Geœ¿ÅùÎõ¾b€ªƒo×þ¨VÕºj®Â8ÅQ°óðì¿þB¸nî¼$2”v;wf8…q4ûHÆ3¿ŸÄjÝ ØüN4ô ݪ˜âs2<Ê:œy†<Õùxoo鲎=F¸_Žû1¸¿ÂD¿Ž¨#¡mä1/­K4—õs—4‡yb¯ª·˜¸ÔÖ9›_ßxŸ%¯ÙÉRœs`ôÄ4ŒI©¨™¨ËŠùÊR£~=;¡¿š³ɨ¿á (ø8ßÈ Rú$Q-Á Ëj…Î1üjå5=\è$¯fÉH˜¹‚˜hÆKð…»æ¯c?ÏÇàì°4X>ô#Ï‹®w¯¹ âZsÓWÍG½§û/^Ê3òˆ|ÙÇÈÞöË£íçø|ìa¯'oTêÛu²Ð˜UWx¿›DˆË—À¹¥\æ9fº å½,´•sïœÍ9ž–«TÒ0ÚßW›[½­Í­§Û½Ÿ6wE¥[Z© /y=¹ƒ_]dPp3KB9‚ՇЮ;ÖfyåÏ×–KÊj“—Éäº{^6D Ü —2R.t%‡ÆŒ ¹ „ÅA´Ê¶Xx7Îÿ;£ýc·î.ž¼/p½Å³E¾/c?ý½Ð­÷‚rŽ\_íEêæÎ2¯è!®-Ds^f¬W'Z9·ûûÖK§‰Éöhûûâ};GÁ×ÅþþÝöì6DÞ»‘·´™8µXP*v—ßïðôo̲‹ÕÄõƒª9Mü]”òÇM‰Ò‡'m RañW"Ž…ˆ¼½øû¸g–‚W`iG-ëÜ•¾¤âgŒäqîSÚý ýIõûd…®ŸÂÀ.2ü2{€ Ižòér3w­Š²É£à?ðƒõ°óAŠüà§iLñ+D¥ñáÑ£­^%.yl~™Ÿ×#VÑà2ÄýP€Vî1n†‚Å(~xV[Ûs½{<Ÿ/–Q¢Ú¸LÅÆ‡.ÿ'ñltêý€0 B ¶L0P^ÿ=œzñáU4õ/Yp® ÒtCÏØÉ6’lïûôþÊGљ݇¬Zg*ÑÙMÊx÷iPZI†ÂZõ~ï ùyz©Éd¢í¾zHfQ|N†n”»€£ Þ46”ų!G" ‹âwÜ?—yü äÔ¢% ÊϽ¯1 b\êqH ›'y‹`ˆ¿Œã}ý²0§Ö!†Èýž…û6µi™ÎúÈ&Ýs.§§¡?¾‰ˆ¼íyIA@ÏÙXÌ`ÝcÑí=@Ò %| ïh¬Ú²‚¦õö¶÷ö¶z;·w·aºùO? =cû&œL‚A+_u¸@2Ūå=Á¬Ls„FÌ].ÞA>O /U7¹D d ÝIÝH+QÞG Çióþ?ôŸ úOý'ƒþƒ3èÏê»ëÀú€)w+2`¼†Ó+¥w4xùCoïòðm4çõéæ2šÚcHÂB¬ûl^w/ïæ ùÓÓÞùè] ÷ŠÆñ,f€÷è´,ä8Íwãxâ¬RxœV(\xñ´¾"@µ8Uaj>y¾ùl»¹»sxäÑQwó8–ËBîg/'£oÛ'aôáÞÈ´Ã:ê’þÝÐûλù+ÓûUMJ×)VWµ€j{¿ÔÅ™ƽ³¥¯‚ ŠhKeç䓘`ŒÆo¡vRu)Ë#na§Öbç+ϼásÇôV”%Å_n`vòeKÖ:½°¥˜fÑ´³âߕյo¾ýî/ýÛ÷êAvù&Œ^|CÇ»—Q'SîË‚0=ÝÂÙ¹rcU¾€;™ 6ç|ÇÕ°u5õàAI¦1Î^­Q°¹$Ɖg(²Õ›5õƒ ÄnÞ‚>Ȟτa¡}6*ò¬r™s  oZÅyú JÓUÝ5êkµª/·SWa›A*ðì{YîæhÊÌ*ëó3ÿ²¹bß] a‹¡ú„ú¡Ÿ€íóóÈxàô&€Ùˆwù5ÇôA„šÒ+fQM²Eîd*""ƒ©g¬úÕ•ÆÒÚ/«+u:ðIñ0‘d˜Iøv,-”À±#ÂR©’–¯®œh¼;ÙöÉ0ò”Õ?Ž ¿V`KKªÅydêRߨ»Å…sk@ŽŠŽëÄ…¾Ùˆa²c”í5ã&,Û}ë϶ðÈw(­Oú 5íÊOìtZlU6šœô;Ë ’ꉀò,\ó·?hÑ'œ}õNQqZ[òßÔky†ÀgÍè§#Wu§¢‹ÒÔÊÃÎpÚ.—)¶ÿ7…Šà#ËÛI Ø¾¹D±ýa"Åv©L±}+¡b;ÇÞ·]±bû-WlßH°špîêI‚Øþ}DˆòAV6ÿþ RÄöo%FlßNŽ~SA‚»•—%­T¿ë%ÎBHÛ®H±]”)¶?L¨ ;­-[e~Ý Ì’sߢ¦<½t:è²[7Žé8<)Ø––؛⩀7Ç>éB;Ãu‹Xùë9nâG¸ ãå̯-ð…×igÑÞ¡ú¶u©4a`*ìXzôÇhFyœ5–IHÄGÉGWMg=cQÙ¾=:™Ú*WI¾0ÎóWUÝþiRX‚J/H,¢=×Ôðœ×ün@ÒÃ-µÖZi­)=&‹$Ås ß…¤zR|IÝOGPäãm´AŽÔN^6¿â~‡Æ¯HÓˆQûh_Ìf§èrŒ'|“°‰öŠ-ïo¦Fš³ë¿ ‹" Êp-è™¥šª©¯ÔÊåÊãÇdØ ¡µô2%ö°;‡»{?o,õëj©æƒ×Q†¥à«öŸš•ýhïÅþ¾d·Šþ¨j›5·–ð£©P]­#„º9•+Ö×åó¸¥9õ†5“…ÌP—jÿ.Ë–²¥sZq“fPÞ•¾]±ZÀ+µ ñ˽´‡E3Þ¥¥€jùbiX'/Z§ì§ÊŽÃþ”<‰ÊF_$-t¦(äÆ0ÚŠcP/"f†Íu æç)eU‡×jð|xaˆæÿ§Þ fq$ÅCžR­¶/o‡4UƒºöÆLS ×é±§ÇÉŒ:wAúáÎШƒM’(0Õ^œ½ ö­LÔUÝÊe·š+Ù¥'=Èm¦Å«‘EÛÝbX´áV+Ÿnþ´]Þ:X ÕªžjÔµì÷ÞãÉTl6LØ•ŒífŸ…QxÙ–óÓÓJŽª”ÚãÔÞéBTЦÈsŠ-ÜUëÙÎó—¶tÉú!•lý£øÊuc¿·¿w¸£ ú‹ƒ~‰U]fí&e™"xÚyÞ-ìÁ ·¥Yý„ˆQÀÒõ¹®¿s}(óvHX¨7{\¨×³ôv½Þ§óTp_饭Q«žÉ Jçêo¶KZH°â¾iqö°“ú€•j!nsÖ®k˰žÀYÌ–á)Ž«.Ì&_®ã‹“°¤Ìæîî\¦PZàÉó·+Àldÿè鬼½Ãíg›Ïv¶JàÒÒG›Ïm?›Ï·¼­Íç{Ïw¶6w{O÷:Utù…ñ¢ŸNIܡ}€‡·Ï6ÿ¹ÝÄ^ßãÅéTu«KU¿‰¯‡¹…vƒÞÙ/̸HcÀy©cÍz£ãëö¤=ÚPiûÕ/~ó?›Íÿ[i~ß{ÝîµGµc³ w;¯G1TEj½;ÿÊ8=}ûÃ]á‡O·wwaÌÒ†/=õüñxÝ»÷wVqÿýïÿòË/;BƒÖ4«¹O' ü”®¹?1ñèVÁèW«¯×Õv4 È(HX!/ºýSy^qBû±ô8ŸD8`+U©K7~,n¹Ã‚œ\xÒ>¶ÐY›}Gê&E¢X+ms:_Ì"7>,yªºœÊû¼%׻ƽ¹R‡ÛG½ÿßÞ»÷µmdÃ>ü*&Æ1“KSX·%@¾%Ài³§F¶…ÑÆ¶I†Ð„÷þ;—™Ñèf[†´yvɧÅÒh®gfΜsæ\ž¯,Îh HÍÙ+þ×k©ÍñwrˆÍÏÑb7½ùÂǧÕó…Þ¼æû óM[n1*eâê¸ä{Ûˆá‘f†ìˆ4æÄßJPƒ¾Æûm¡Š^ß~÷HJ_ÿ+ñއؽã»Ê¥Üv#މ#×c‰ˆêêßL_^šïŽH¾o½ßS|ß Å÷-!ôÿJ‚O)1eâ’‰Èa>\p¿õ'l}¡Ô~[žý²ó${ÿ+Áp+9i7D‘TøÆv aôäKPE¢"TS†ºelº¾ ¤c^HG†“Ð}ѱF-Ñv{ôWjÒöd‘çØ³ÑöІ•G¡,œ'Ú8££Ø >]8ç±ÎK‹ˆÈ$ qYݣƯí¡Õ²6™'Ï‹ØèØí€íª,÷ʽެ˜¡5}Dm w¬p´Y[މÂh·ecªqFGн+Aº½÷oÒ¸=¬jS¨(¤ç¨˜†,¤jÔ(“Û6>¥Ÿëß—Eù¦ôKQãÍÿâ£aÒ©0e³aèô1¼\A+ÅO&;£•ªM0é™^ÕýtO~&6|ú¢ûNƒÿb<£MÔ& “0QL™Žs¤s˜)øæ6æÄ(÷òÊoÓDáõm!˜ÿ=¡eA¤)æÉõ^´y×¢M©æ[(D°:‚ý›ð‡µ,3¢Ÿk«²&£¡9¼áÐ}˜{I~®Ñ]ºƒÎɹA·ÚäþÛpÞUM%_Äwi[”Á¸ñVÚrüªðÑÃcK"GgÆšÖ®^ŠÕßÄêGù.ñbF\:>£d5ÐòkœºÄ8Ñ2ÆT",$"Øi,êG´ DB:Xõ5«YÀÞ³9ÈtQ)ÚvmØ~r„ÿúÚÇrT…ÑìK]"¥ÀÌR—C#QH¯V]ÄÆ2ãbÌþ•‘ì}`±ûÀbÓ´mÓÀ~Xl.ÅÓûÀbwºéîl3ÝûÆuXì>°Xá>°Ø}`1lð>°Ø}`±ûÀb÷Åî‹Ý»,vX,”÷Åne§‹ö…CÚL=×íÒ™jõûêPôï6ÝHØè‰o[ßÏ.Ãáe{•(ï»ìͯã9#2͇ƒ—*³õ»(΀zžÃ¹a]ºN—•…(fp=Ž7ÄGà â•òn>œ\û¿‰štj²[+‚ôÐ|´F•Iå1‹¾yá9‰çÆã­K8= «ØbKTùŠÜ Ýw;Râ¼ïŽFp&:~Ç—U>æ·ý®ª½M!Eƒ1)è Fê)pÈñA /ä¬sÿÊ7kQU _97#Vàí8‚à·cÙÔÑ‹…Sئ(_J/ˬ ç¹ã‘(Bóó"úN9©­#q} Ÿ"VªŽY$¦EqxÿÚPBóíœéNª¨Æ; o÷‘ÚÚL7u˜LCÊ‚ô制ב¤‡ŠŽI/¾&}d†o«@xI&=äÍÉ×YâùÉΪ±eõSxº¬bq~.¼~Û;89ÝÚßW×¹q¯Á²üœÌÞßpÍK¸ÃŽ0ÉTßvq*®ø#¢ƒ-ºŒ~ßòÀDZ=àÊíM¤?_ÞÊkvü¾¸´Wkâ üÁ¿µwí÷5¼·B_G´Óñ%DúMŠ&‡[KUòóÆ»f³öÞõ×éWž1‹ü|xŸå”éÏÔ µå–E%rôáFzQ'Ê÷dûPGÀe] §S˜Jº{5”‘bjÁÈÂ;đڨF&¼G_£¸FäE¡'b´ßz€§d¯fjbèÈ jçøUe†ÿâyt7fPÝH8?–»`!êV–zÚÐ;üáÃ9)#Ç£]4ð{SªM÷ǵ0ÖV`WÌ,2…‘ã¨_94ÍðV* ³Êå7ð'*þšÔßÑÕ¨?öoÕ_‰þVý‘ÝqÎŽ'Þ±ÏøôÕ‘lmuµ«–Q´Ó€%è)[Ï mñÓ^…ÄHºÌE¡b¾Ÿ"ÅŒXî§H5üqðQM²Fç|T€šÊîbñltÕ=«™õ5èEòî+б9ýh]ŠaïbuÌ–W?œÊˆ§[9‰“½ƒŠª¬òøK¯@.ð_©\/ÂÐsúÁp%œ¡Ž”o!püºPþšvpá-Z\† ›ŒQ¨Öw2J˜2ZØ›HgÀar”C­hÚú 8Dôº‡½ËØ’ÎBaÉ.­þØ& &%º 0˜ôêØü©Ã·®è˜¨DX î»B¡k¢`ÅÈê|°z¶oÜZs‹,§ëX–÷ì{‰‘èó|“û…D2|í–¹4µãMIÀ´ü‹üÂjÍ0):#Î&éO¥š óS½‘ÖÞ&ýÙöHðƒTÃçKË[…!Ý ¹¶‡º4ÀËø†Êg§Ö T%ƾ„çª?nûŒ¯&¨£Æ 8ÞzMäF, ¦Ï2é¦\H){²}¼wt)ÊISKîlnEÊa‚YJ¬ÄÓÇË·Q¢ègPºnƒÜšrÿ Å{¹?lùÆe¦“ݼ…Òà/2ó+ ®È}$»c$>k¯àXų†}§}'†¶\Õ7¦›|¼u°¿÷ü4“¹¢T½dþÔÐyîu’³u’5¬2"åÿ”eGK‰¾&.‹üÇ”Z4±S*Lþû<±¤­ù@M¡ìá4Œ3?‚ù&ñ‰ ‚;³w˜€[" å¿Ç3Ólܾ5äÝHÝN³‚¸=º‰® Tkˆ¿ õ¤Ø:¨¦£öj7îÒŒÌu¤©/AQÜÎö1ñ˜uõA ðÏÿÀÿÿ›vm[¿ÿz(jIÅìÞà¯÷x<3”¬oÍ| »UŠv³=ëù±4-‹6‘i¡•µ3P›ˆ,ožíoyßÚÆ?¾‹}œ¾íôí~ÓOØô#XJßÎn?ŽnöãBæLϱՓ;ýø/Øè…­7§‡Û‡/¥ÏêqµXò½Bpàø°h#»XãÀE9xñ†‹qY_&•ñ-næw>²<ßî³`8Ón¥“²6<ð-üÞREæ×2¦xX­ÔFiNJ‹ÜÁz*Å»Ð9&%V…7¬á5ø ¦í ­~¨JÊÖ¤~¢ô>i›£Ð›Ôð”ĵóNïB†õ&L$µè¨TˆÅ&°p{ìô¼RvL),÷Æx©m4ÍþÌýêX£QÿZiKŸ³ÝXoëðÿâh©¸]TVcÔ9=“K•,EA3ǬF¨x4Aß.±*’ñ’Yò[5™‘Iê=%V¯¦ôUv³‰Ä(2´ÊRóEÍ(>egMD‡™'‡‚ãÀèÞœîí¡p„ˆl&¹—£Ý‡¥¼Ky–ò>,å¼›â>,å}XÊû°”÷a)ïÃRÞqXÊùUE0tÆ«Dƒ:ŒHɯëZ´ÝàLML’ûä¯l 9‡%¿r.ŒÑùS<™Æf¦ª”Ø&Œ*Ͷ‚:¾Tî«;'î°™Ä}ü{#å=™¼yTŽ ›³LÛ<§{¯w[¿ï¡0ï_'-|»«-„ø¶oÛuûÕ i7à’(2ˆØþqšµöäÂÓ9,ܺøû\Õó_„œàaýÏÁ¾lðcô‹(J—^ø õ™JÅùëc•ðÁšZ1A!£fú6WÕ³W»–£¯h[›Q'™ÝÎÕS* §z}†šë9:ÛjÑRÃâ-q ؃²›ÑÖÄ23 /š¨,_ÅgÑzŽËÄß@ýós€6xþf¬‰·¬w4j cë¦mo2cûOfÜ„9™³ónòষÕ}·„ÀY<d§.f•€í‡¾éÚn÷%„t´¨;D#e»Ì2ÙÎù»%6´† ñ'ö­GKýtñíË¡²ÖÔLŽÊäWƒx{8ÀþGÈž¬ˆ¢!MÙû*Q,Ë”ü @뢻…8\¢Æ÷çè¤A[’ͬí￯IÁÒóG?Öמ‹­êÚ“ê“'âÝŽÝkÅúÚÚ£÷Õ$y‰ ß R‡ëªá¾pÀ õŽ–Ô!=z·ZÌ«§hú5ä8µm$NXÛ$I¶D{LªÖ»úæ­éñLàúIÀä"FµZ¯Ó©ö†ãªëõjƒ>¾®Ž°JÛ¯!Y­×©ÖµúÓzZ­éSðQ®‡Í´Ë#üüðãfŠüÌøG'  ýX5XÁ—†ø˜žü ñ`L¦«p\£ÿûk%Wé²þJx+ = ¢o–ó'yˆôS6­¤—XÀ?hãŸþéâÿœãŸþ¹À?þyðüû“óCÿàÓÿ ñ‹Føç#=}¬l~)#(“D2Ç7A’êîLeêÂl2i,d<‰Œ@ñ´Bu|xüÚRIlŒ15(¼Y&&ë/Ì(êo=?<4ý,ÒÏäJyŒÓ¨kªøS¬»õ*²VÚORœH 0vÇBNÑ÷m/€‡¶ß Ò¦{Ä !eTdõ2ÄÏHXCxh`E`Šç ]ø=ï ,r>¤+5| =oTEë@òo"¬êèÃ.¤l a5ÝübõC ¿hE„ùFW]øë;½¡%«Pb}¤âa´üàPo¥/"™‹…¯Z°Ìcû:°]€!ß;râð™ÛÇ'sÐøŽ÷ òÓàC×¾”Ïð9J‘ϾÛù`ê%À«U¾éöðåR¿I–ƒkØëêEBQÖ0¦ñá“.jbˆ¶7èX|YWð§ìøxè ªDNÅØho0ÀÁ ]—q‰ºš¯h͘±­#ë´¤—¼ÆL,Þ‹³Bt?ÊÜwØóì¾¹3Í gè6'íM#ÐrñS³+ؤ-J¦,¹.äŒAÒ¶J\g4:361î/VJl2‚)ZMPLÓ ’@è¢h-Æ ŸZô ñ_±°£Â‚¼}fìl7jѼn½Â¦E®×Ÿ ]’ü)¨/­áy¯;±/¯ßœ"®R@ í<“íõÝöX¦¬0.#¦gÄÿ±bóŽÿåþássèÆx3pûÁóíÃ×G[§T4‰ß¥º&>|þ'B9ƒ.2¸Œ»h˜± ™½QÔcÙ%Ô¦¥ékûãØÛùçÃ(š¶¶éÓ3){›åùÏ7»ovçœ#*›2IIzvÏþ”x²Xp”<Ðt¹yv¼ûr÷m°¢cB/r‰‘Ø=üÞR‰ÉG>'»+1¢ÃÉ3DN™¡…ì}­"ŠÎ±•’%ÌÝ4¹)Ö^ÊÕV¼HŽÆš9ÛŠ–˜½)¼<Î×T¬D!‘~ßÂ|2ãK ÎÜÑõá°Ì•”>ôh ¡r’Ì4¸°°p2à4=—8¾ ñêª=D+çÕn[\¡ãoçÒV WtŸù{«ÛN:…¤ÅÆßFh”tÖM6©„î<7Ò5uD{h#Ç‡ÊÆ=§›Î7Å·ŒÎÝ0arÆv1ÊÍËíœìž¾y¹·¥G$Ñ— Ö¶ß]íÙ; &ƒòµ8ßÌ`‹l¦¡T•1aù0rƒ¦)‘NÆ<-ý!rw¨‚ý,¤±‰êÊù§ô›ÅD+ ø#ݧr5ê†K˜ºFã›q¢vv·÷[‡G§[Ç/IåBWcpSZC„~Õ“TÞWN¬3즖?|mÀR+`÷vþ2À§ˆ.„Ò@«>}màÊvþ2ð+ îØ“X¢ÕŽxýĵ;}Ÿãâ]–K\½s{s\¾ë‚s_¿ïž #ºS4ǤÖ3Çt‹jñ§–þ®5òŸÒ–OZÙ95ÊNNßlŸÒ®;<0N=Ë">¿2ÚâÄ隸"<ŠÇJ4*_(k™¸KTð•ÂÂìòÃ7>öbÃ%¹ÉÆÉèy–g²™ ?ݼ!`¦6Ïi}Šx]»ùÍ=„e,‰¬L‰Õ´þR©ÜŽ—2{ŽýCaÚØ·[Ã6;Óo]:>/­8î€ùŠc HœeÈRóâ‹ßöNîDêõüþ ©o“)rïd)÷Ð0Ϋ '˜Ëhﯔ}ÓX²o6²} ó¤¾)¾‚È[ƒ)û*Zçø&ÄÞº;“oÍ\“ïÜ1á7ÌRŒûÂ3jx‰#Oþøô‹ø ü•Q_Z)jb²J²æ‰Âé8GRråKôš•-vÆÏw)sŽõ8)qæsòvya'RÏØsrSf1›ÒU_È\/(–rÛ¢Iâ´ê¢ôË4) ¦|B0Ät³¼ÑÜ3ŠÀh!åh$ž?~®ÏiƒÛjYAà¡z¿ÝjMÕ1òfYØF2Íu¢}%ÿ)2æ/Ù»î>T¢cKKC—,ŒÐk)è"tä¡ÂþR½B±zç5õ‰4´ó‰~¾#ŸBœÒM”BÍR™mµ¶NOÑù<§š­ÌkL4a5fuY…I™Â :Ú­ ƪ´¤ŒÙ³wpztzÜJ¹7—ëWž§ÔstÎi¶l¼"§ÂiÍÂB,Y3¢žÝ…Ý}ªÉE” •»^Å/VAšÑ®t],‹KÊŽ—PÉ2¹»QI%9î š÷š¥×Þ“ïå¼"úéN,gX|z²…ê§^{ BMYãÖˆFÎV$hÖlxë¥ tÐGäÛÐË.LOð¶˜kþ™^ë8yÁ3X­*.a$•ÃBåC÷ ,eÌtòHQòS¤¶ˆÎ^L¯`Ó]’‰òOÊ/–ç‹ãƒÓÓíž´^ÙC«édr¢”(u”•Räù^z¡¶/–Eåßóºbÿðà%ý‰ÁÏ0]wÜ6aÂéÿ«3¢p›9Ù9|ó|7îš`ò´œûN7Î@è´ÛÂF™+gX+§‘Vű"Òˆ:½Èo/’Ý"sú©Wè/NövÍEá=» ü„ß?ôg È¡Ývù¢íôØ{Á N³ gÉg:-e~_ò‘jãᇡ{ÅqÉÝ´we—yèÚEiæÈèÅàÒö|«ú×)ÜcºÛÚ::Úßmmo·Z*2/¹ËŠ´n(Ì©ê…Ì(W¿àbÁ ‘¤H ›ùE=…¥>DÁ×Ý#UCû«èâGœ÷­žÏ®¥K¯°‡ìËã<Û]ú6†ÞÅÀ¿F ]èù¹.?؃Ž_-,@'1WƒžFž} O’9§ (Œc{þ±¿õò~ŽäÓþ=pàðDP8¬Ê .4 !k•t~~öT|Ÿž=m=} £Q‡ÿ>}\ÑSî‡.¢g×PNÅI ~¡(*ú"Z¨!ªOº^iÙ“º\%ñ3³£ªGm¦@qà#Ñ ì¤FBÐ.Θ…»à MŠ U Ó!Aǂּï­í˜c Ð#¹38&Æ5ž0†ã ÀÏÿuºÛ:<†ƒ˜½1W w&}ɺd䎥1é žÄRWº‹3:ûð¡Ð©{/[»;{[¡«bãóþÞé) ™>DkÉ()¥pÛí}écGz¯Žb“;¹ ¥Îèƒ|ðÄ•ðaÕàhO€è3Ëè;ltÀ)`þ+Î\–S’”Y3€ü atAŒÈ®„#V{‡ÀK¢€„°Ýüx7¢ö[ol‰+æßßÿPŽš~ÒÛ»]ùx§c,˜%»Ú«®ˆ·oyŽ_ù*û^÷iʾŽõÎý%ìñ·º [_N‚#ÓA÷ì«m°m ‹KJ¢j¿äˆR°(N9vDoŒáÚ×¢çÙ£RÌLĉsÏ _JH' p.w´–ü × ˆºµüŽã´ƒwïEƒÎ»Ïèýñ+øûÃÓ'øût÷ñcúýñiߟ<Âß~¤_t0º°¯Óq"u>ýññ6–yòø ×õä鶬›ÛøQ¶±KmpX^ÿSb‰<úWÄgªT.[=ç½ø>lÚyåo"ý²Û®Ó‰wìÙ;4˜ÝG»ôûìÉôûã“mêØ³·óû³zÊ`e¥1n¯o·xöDVö˜+£Jà}w·žÑot´\eúpÃæh¼áÂËpUXúÜun=eEX!…«0ÛÆ´»Q䂬¸°ñз‡;°µN®OR7j Ä ¢E†Y0ivÕÆ¾szÚ·w©™)mˆh#ñËq£¹b,,¤"¶…÷±(P‹Û™|ø³C_Qßù`÷ió_X£‘=\íqŠ+°ÿçÔ«½åWX÷ôVñî\›ÏpÅ*ûlAg¯lÑw‚ ’ ãúYˆˆý^Y^ÛñÝáÓÀ¶ýQ#\°r®Ægͺ©»cÑßÔiÒ÷´º§UY𚖳܈±zWYõ^¾ªÍRM)ª¿'ŸÕ9îpÓÃ~dœ”™§¨Tÿ»£„Ëo^¥È6KUùˆå`¿±Ñ{‹ðÐVxÔʰ,ÉûŠßA1îKI¥Åo-ÔmÐM*´‹NÒòƒÔ›­m)€zs°÷ÛîñÉÖ>ù!I1÷‹Öº,Û±8H)º¥ŸEQîx¹'†(˜ܾˆWÒÖŒX‚²tis… /ìþ¨hˆŸ–™2D/à*¹áƹr½0‘–j÷Ø(xu$¶ýãAq„ìAHÿqýñ“G«kuñ¼Z¯ãë~Xû±úòhšÓA²°2= bëy6’3>B¿ÏìÔY NgD?uŸJ†LßÀInÔ`¥¢ýf?Š1f¨ %¢ÅG’¥Ëš¢á¾Ï.—`y5ÏH¶xÕ-odY„df¦8ôÆÎùá˜#Ø.n $¼D(d’›g¸^µïöÊ$¢¸$´Ð~dÏHWÕJí\!d¢µ‚Æ…·Á‡ÑYJEˆñ,¬7ËÆÉÞ¿áµuøâEë4­ÁðZCY¾RPôMqîP1˜°O1ñZ‡¦¢å¥ùE>Îj’Zú¯1Þ;9=Þ=>>ÌaÌņÁ˜É-MÀåQµª+ËaMh#4”$a ‹Bg•T–V†^…ï`·Ž,¯£öì 2-ÞMÈžu€ ìò @ˆ d·“Hk/-~2㦚Y´A—í1áN3¸É{a齡Ö_}âä6¸«ÄÒJþ{‰¿À±¯² 1bùùSìÅŠŠÛÙ"‹÷uù~£«ˆ6EKšêÙtkI—¾òœÀ^Z­¯ˆbqš‹ÔÊC +¾A£ú¸%/-Ý€L˜(®q˜Î$, &(0|± lžW¨y ‹Âº$” ÔÊâÝÄ•èeÛ–ÔÀ§•ï¨³Š š÷as>"{Þdj ÂnÔŠÝp¸}vÍ9T:#˜l†Â@âÞó]@™žÄ¸ÒÍ=Ç=Œ\j±±o¹vÞ€ëǽ îªzõñZõ m,¥¨*y\­Ã¸ÔT°qTânû6 ë¯æ·ð.®wFmeªÅ³± n 6ˆœVìð˜B©˜T°›;6jÜÑí&lòáÞ¢²šŽ…haä’Èíû6ÆÓáŠ×;ª%GóÁ¡‡}÷ñš!(1Y´ª½±†É` HT5+/Hå,ú…aji‘ªMfl‘1ªG_×£¯ÌWUÁãhž'Ñ×§Ñ×;C»ÃKd``i ÇjÊàòè;—pÓâ¿r0â4@¨Å mã­fÓ·U_X^÷ ‹é¹%V€ö,>™!\póP!Àðå‹àÇõðñQøø¸° ŸŸ„ÉOÃÇ*tU¯È¨ææA(ÉV>JöŽ÷ÞŠGÕG&ÞͨމËÇ·Q•9Pó©ÆKêxŒ+POÀ‘ÝñœQàzdÈqnœ¦pTষŒ<ª–¶}ެ Crù¨öB@WxEÒ²òÕTöS*pe÷ûi6M—ÓA×ë•IÝ Ï ¢^.áX†îç¯T–Œ¤oè\’!‚Vp{øP©ÀBW&J”yêUReînÄ#®v½ÙoÈÆò@%Y$X`•uí¾3ˆ‚E§f€%,5+X`ßììî~,ª±|AâErƒÅ^&€‚iÙ ¡9²{ðÛ|à€†ò#Z 7(Pl‘€%fƒËä€688°©|ðˆ•È~ç‚òD!¢S3@–š&ûÛ¯ØOO~ ¨Ær@%¥Hn° Ün(˜– *‘ ¯SLìf4”ѹAá^  À´lPP‰ 8ü}ž3†ÊŠhœ ÎÀŽï™˜ Uffh¼9Ý{½;×Fá¦òÀ#Q"@ºxSˆJ̈.3+@^ÿºsºû:EOy*@dSy 'J䈟2@ü¼9™ ~n€ÄK䈟B{øi?'íq2/íáç¥=rƒ¢ç¹ã‘= ðв–Í™—LJoŽv²ßOj2ŒRJåÔÈòý48©ôl0é’9 t´ur27dƒù`”,”DžÛZ; #õatÙ|y°õzºÖh2'œ’¥rêâãØ â@’‰YRefΫ¾9L‹u<0ÜT®°Òñ9XÁåyŒ†Q‰™»²ÌÌ9Ý:ýíÅ<4Œl*—¼:^"/@Ø‚*ÝŒyšs˜°áÕ\@áÆòIñãErƒ¥ß±âX&f…Ëä€ÉþöÖ\ˆ—›Ê‘X‰92ºN$N–É£Í Ñu^€DJäð•qÔ*³ÂerØä¹P+7• ±¹âÛ£<0-T"4Nvç!ü¹¡|°ˆÈ ŠÀí÷° Äl`p™Ð8=ÜߟØT>xÄJäÈx˜Æ éÔ „¥f…É›ƒ¹ù!ÕX®·ä‰Æ~ߎo™–Ybf€œìïεe¸¡<ÀˆÈ ŠÙÒdÑR^ÉÒÜ‚¥Ür¥[Š•ðê? JÉ瞨@8°‘ˆeOÜyÏúR¹4‚®£ )L»ö$w_Ëeºÿ²Ñý{‹3ÍtA²›\ªxN¤“»™IÆbÒÊ“l%^no£Æ·í ­>jc.9.@Ó( |g Ù9ôxãÛÒÝŒTE]q²t9+M>8öVãž ›ÀÂí±Óœ!™LœÀmΦ¯ØµH€fÖhÔ¿Ö‘â¶VÒŸGq»¨ ¦¨s<)^=dÏŒï™VÐÒ;,ŠmXV…†v€ú£2\a<ªdWaHw¿Óòl¿Q¢¹‹g;žÝ…uº¢‘9Vû²4%ÒŒuš õ“Ôuu‘ã˜Îxe²•Æ#+•ô—½ü>všÔפR8÷fæM<{ɨ’{tDZÃ=±+x3eóVîÜÌdùs‹ç!"×@Zžh W® 1t øÅ>7Dlµ¡ /(™‡05¬Bªó¡Ôž &[ûÅL¸?VûC¿?Ÿ¦ÊB¦°î[ð¹)5$:2±Î8JU{ Ú 2÷hv&4ÐLl›Ì6«ë‰)X,u‰$í_Ò³åwNŸ…ï& ™”ew“:’ T“™7âI…Ùçõ»#=8Ù7üÊ„‡n4†¶ÝÅvÑמ»85QR7åpcß&=ɦ}$À™˜á,f/é=Œ¾(:ltÎHc'‡Û¿îï$ƒM[å)¨Å@A[ÆÇp`@ÁtÛZ7mHñÂóìôøÍöikkgçxïàÅá\Ãs†O©#©Ã3>Î9ߨ@ǃš3œ<Ýñ–o›½ƒ§Ÿ¹`ƒK;½I…O,Ã_ £hë·ƒî„ìv°ò׳zödx…™n ³YÑHVîn'§‡Ç[/ñ#c>Ð #ÞÇ]/z–£/l„žÿ‡½£…*g–t¾õVŠg‹ø\˜¨Ò¨ŠäSkL)£PŸ0\…=¼$*(±àƒTÛвÊûIW“® 7aÂe–Y'[fÏ£ó(‘:É0•¨†”2ÉRcK)*ÝÏ.’ö˜MÞϼÙ÷rNõ±d‰øôÆÝÛùݰgôB®²'´`dr¶Œ*7· òÝÓýÃí­H c f^µÐ ^(¦£&ü"dŽûU«p’YdÑÆV­Ì3몕Ùó)庎ÛáÔóLõµÐ6Ñø„µç "–ýkBìì¼uØæ}GÙ(“>0’•Dô*øJjz-bÕMÉžÚÖdì8J(Ž&hŽÒT Óç¿E†ú ñC,bwÅPÆÓ™p™<µlòNYŠ3Ð0抵°pWÃèIIJ”÷÷[¯(æo(1–h—SYœÌ 1tjAg›…>vÕ /U²ûú ÔÔ’HØ[ ¡kÆ}t>[,,³;w.X$§Å¼¾Mû|1Åç»Mö%qñšž…ႱŸÒ²5àCˆÞÀ™bA†ÎÆB …¢¤›Å(FIŠ¢‹i´ÞQªòðDJ8ŸÒp,ûÑW™ºÑ…‡íã[Ï ßîÛà˜¿1¸˜ÉÃKøv Älß\&A ÏCPÍœT[òÅŸ¶çj­Âi0c #Ȳ-ÔÄ™OÇh‘tvÈYupÕ k€õ ùê]¨¥N1¼®Æ¿´vGÁÜ3à“VÌqûníÖìÑ$±ñ|™QÃ̌ӆ½Ü==zy|Ôúíp/Å]…Â˱½9°) qÊå5°Wd}xÞŠúáúò˜²µÂL1Ú€¿gh~L®ê–·Ð§[§/NZ/ZÒ›‰ÆRš¡ÞH‘oÌôu:2Ó]€ƒ«º+p`”Þ»‡ãÎë¢êº#ˆìÞ HºŽ¼.è™5è2±è08_ËȉÖë0 ð=ð#ùx_ççÊTf&Ó0ƒ/¦ M¸¨AÑ@­ªÊ¨n ÜžªUH<^:³ð”²é­f´ÈOS×F¨·[Ú;­ƒ­×û»™kcÚÒ€zpAt[çÝøj@ ¨÷ `þ`ÀqÎ9ÇvvZ/v²QÀœ*ë0¢óî uÊ!ï‚ÝÏXPìR9¾¢(5mIÑm6’±¨déäªâéËŠ¿ñÜ&+È.?µxFۙ톨îN1ækÚLH0ô'Xf4gKKа“k•Ûê–çe)¢¹¹})“8Ø@G =~‘BªÅž¿C7Þ Ná^|=m÷8±LúŒ}wØ£?QJyQá²tg^þx4repµïúýIÛ9»Pd/t¬a‹³Roñ’²ä5w—a« )nÖÈþ6ÀF­ZXXˆ‡§^XPNß)u‘ ³"¯ÿøøÇ§?ú7LúŽIl™”=ß4Ó÷ÌŒ›fŽ]ó¶Mæ¾O'GMhý3í4Ò»í¿p»‘|ò–‹î¸,ëx#fÿPþI“O¹‡ûôýÁðŸ×²@r©¢°àM•Xîåu9XQß±†“ìûg(Áo|Ãt[ºR ÎKAx‘¤¾ÓN¤¡$ÒHxÙu±æ|pLD“G>B yiÁ`¸Ê¿”¼`É­(„8BËéøC„ÑÇ(SÁ0›ÅÏbMl ÑwSˆâdÙ"þ-Ò÷œøóαgÊ4›$Ç i÷äÐEhh>QSø«DO"QvÙéµ0vžÏæëfŠxm}°ñ©(Å ø‘uôþñ¦’.PŒVÔ‡^…a÷û‚#öqL*âK“jœ7 ÞÊ-=Ô BùW¡+ƒ‰rtI É Å®1)ÅF…ÝCáÓ‚+–¨Y7è“Q¶NÇ*ýáÛv˜V†ÖG¨L%VW9q•Õ¡’= O “BqfÏÇ}ìG¬•Ñ.96¥(Ÿ%¾ѵ;f•/¨æ °ž°mØÊøe`]C΋Þ=aw¡'@m®EÙ±*‡Päøï#ëöú)ƒ¨2äÐçTkÎl¿¯®z6á_5>(çÙT=vnñŒ8{ǜ떸¸K¾`É*©ÂqZì.ÛÙwäW¬©Öw-Ѝ¹_‘pZ¦¢Ëª ª_UcQXX›Œæ¡Žs8½Ü+ŠlnõǶ_ÕØ‰•md¸ðÁ’ÁèÇܪ‚ÆÀ%º{0kö¢ ý#+\zd€ÝC÷ kºNÝòÜ1ïS?w:J‡ žw…êÁ¡„ð2<רæ1ó›~à9Ÿ`µ¢Î>Çl¦øå°ûQ@K”bë¶qG°h ÀÂýkì7æÂ¼k.œÞ…h;aÒp%Œ‡} ¸}¥ « ôº²„ÞKø>ÿ’"‹³%šÙõŸÖűW‡¢ì×þh.½³VÿÜZýwë½|X[ý±õ~¹YiT—kÍzmT>“>YßÀS¥ýF³TâêYžAQ˜ø¶·¸DÉ˄Ƈý›e¹ÔÈè!+®Àjù<2Xt”aU¹Þª–š¤©asÕ´¾yè˜ ƒvÊ[ù½'ð—`‚ˆ<üø|ëäUkëøåoð™ž9R\…a.«kDа"Ÿ7y«÷xÕ›ì,ë1a. s2±“gKP•?²:v£,Ê›Bg=K›e·)ô„ÞBe L(–<Æâq,W="{«Ûåt2Žø«ôªëðÇm?p‚1#8`}Ñ„j¾Ù\‘§«¿É/UYƒ\ñÍÂBѯ•ke,\.×z›(Çmû …Cîx-«?ÞÓzŒ§5a[@Ö*>ÔšÍz*Z/×FEÙL8=‰ñóðÂqcüaåKcžì½%`t]‚S“Ø Šµ?fékÃì–žw9Å> ¼B…^°Ö2g¬ýµ6ÒÈœç^ß–;]lÏŒ@þh¾@¸¼û|ó S)Õ$ÿ¹Yÿƃ”;.Í/_ÄÚªU7¨kðbñFsýF–Ø€eÉbÑ^E2«ëœŸ#§@öD¶ˆ`ù©Öµ/kÃ1 o\µŠÆÝTŽ¢´Ÿ©«h†¯)ƒG4Ûx€ªeºv³@uñ¨kÑÑÆ½4Ž«&—xºy#» zýéà(t` xÌ©cÖª˜‚‘< ›¨û’]„™"H«eÀi?o`D>!—L˜«ê#µ—JâáÃ0Wü[t&*¤ý6­vÜ ¢&ÿ^òGhæ©#jQMÆxˆ§=3Ïd® xb¡«o£ö@A+@z@¶"±ÅÁáÁ.ÀRpùÌ‘ÚM-NZcßF¦ñƒ-ìO#"|>Ùùµªë4#éré3?Ý” …Ý'Õ’‹l¼Ø{ÙzEL0ÏÀ’ø zôÛ›†R=tpálhV©S:ãPûØ8ÈÎpÌúaõª8f t©4ôá”à#¡ô†<¸õ=Ûê^Cý@n÷ûv·ÊJVÌ<4€j–Þ4«µjm«n©&ÚÿÇ2gvL-GÙ!&¥èë*žQŸÖ«âȳG(dàÑììñ;"Ÿ1am¶qàâüÔ¨WëkaNªþ)ñ¦¤ï˜Vt½k¤ÈÑQœ2{rGe³Ÿª*ëg«OQÛ»"œà1›¥Ïºµ Ê5&K“ÊËPAß-³v¤bMKa«…Âþi$9Ðàßr¹ ÒÊ›“Fµa‘nЏpˆ¨na€úÆq²p ™m%WPì*LŒå‘Ìn˜ J‘F‹9f°¤hëÆjÈØí²ãÞ†\‘¡ßÍJ­h}! ÒÈ_/,>¥“W»ûû°¯_ÚCÛCår$+¸}äNŽÇÃoc&‘:Åû¦3öèÂ[ñŒÊîHl³&£'Üq0“Ÿ³î¸Ã•ksE1ÎtÛo·Ç½ŒUs¹”Ã!MÎiß%Y!ð6ö'Ç ¤b Ò¥Yó[’¯¤ùЗa “ 4d`EôÒÁ÷U†ÄMðÞ«0\vR_"ÙæÐ.‹ü'ñÓëÇÀîí AµúΟ 5ù)«€å9°°(”zî¹jk;³¾]Øy³µ¿ }i­"û¯’Ä"÷õ¯wA ˜ ,}þ7p ¿íŸìHr Ðä’´2€ì•,JÏ> ^Þìïo¿Þil$¶ú¸º..mq* pþ î? ÷¨ï´¬,/}®_,ýR¼–ùÂé\P sËäðÖš¹}«g6Üq|:ðxQÂJ$I ž¾´ñjO”uåFËD®î(‡­—û‡Ï['ožŸœFäìÄêŠUù=æ]Y¹¾ó x§ &„)¯ DMRè¯Zv¦Òûr¡¬V%LÎ0`ËAºÝàðΰç-%`'nXJ_ü jcß«µaMÊé O4ˆ!ù þ•u‹ EMûÍ]@¤ås˜ÃP&BBåDeKä›ñ“vÝH²QŒ±âY\OlZœG& j¯,?ŠE|Úm3Нþô/ªá¾@ϱÄIË}Q2öHQªaà&aãíu@¬zhÊ©ÆpF$oÕk1²¦4ɯ'Ѩ¢¦·†á—!}²ûÐËhÃçâ;ÿVÍbÍaZ³ø¥\ˆ1<Ðî­Æq§]££  ü§ÚŒîîñ9âŒW¶×v»×2 $5Ku(Ë‘2ÐÇxÞ²IŽ§Ô {ÏCàÔ‹@,ß*v<^±QDÒû–×k”êJ "…^/*…*Ên"?¡Z‚LѶd`'°Î³x¾ê2gÐ];‹ˆaôsVõHW°ˆºBõ†JðCÔcŒ3SØ«ú‚2© å‚bz¢UÉŠô²ŠU­"‹kÉ^ô¯P~í¡7Õªq…÷ùhëôUëd÷hëxëôðXOH WQ4>K˜ËÐå&þ)oŠ”T¿›‚»·‘8ÙpS&€5läªáË9E±n•7v7Ê||ïÅ üýÝ&_‚$_+˜8â<†ö•@¢q…l‡”q|»Ͳg8:mNÀŽ]BeŽÏ²|è2È|‰¤^¸ 8Ïðõ©”9[măÔÞ*4‡TÚÒÞ¹¦Eþ}kÿWq…µuˆÛanE$\!srRÛ•G0æx™¢s î '=b9è•=×,a¯V Ø(ŠbqA-P(ýmÞ¯`£TÚÃ~ßu?(á58ÒD^ÊSQ*ò3¾=²€êDG½H²^´ÎÞ¥k¼Géh~×lÖÞã5X˜ ¾«;1‹Ù€ö¯6=Eç‘Nª±búZ 7e6ê(Ó 9• ÊŠ,˜ãžÎQ+­©Lªƒú¦³cn)M´¥;hyu.I Ø©ÀÃR_Úþ >Ñãm˜Ãk,Í9Þüýt«{ûðõë­ƒ2yUd¢ŒñÏU SÛÆ;¼1¦ªÑP#!Ü<€ô àžˆÉœÂRºDŒ/¢¯ìŸ¥ïC=Jþ´)/²˜[†aµ}·?äˆr¼»N¨ Öt]b¥7$¯khÏ‘k1íV‹Ö*ý/ïáÁ\íUñv7áê£êšxóûÞ’/ôú»NÖa ²^]cªZ‹àqSGP™ïÛ>ù«.žØ=íØA°¥¾Àw Š@K奥2lØ¢ˆ¥öˆŒ‚ö›t‘žzR]¯ÖWÕb–· Dñ`ÈüÿõÖÞ>ý‘+Ü0¡üLS‰‹FƉE¨!]„T‘XRW ”§"ô˜Rn$3æÝ`AÀÑI½Q.ÁÑut²Þ(ÿDåïáFv°"†cÀAÃJ¹÷·[[ÀÎm+òšß û[/ßl½Ü5>Ȭc{W-Èþòë„>rÂß,á`ÛlÉ rP´wÌå‹ý×­;ï é¼\Ú?ÈzÈ|rñ V…M®¹Kkgz‘SÅðV°Š˲9\“Ü$îNZ„î¥Óµ»+p¸ú®âÀIÌE†Z8ÿŠ JÛvcsuU<‡àNµº—|êq85xJPÁc ¥LòX³PWBX„ó'T„KCxîLrÙPŠ¢I ÈCòWHn[ºOÁõÈZQ|[]ýuTxr!-ŠÔšå\bߢ®‰|"–¾EFÿ(º’'Kc}S7òl€s¦¾žÆÑ², ë)Gà¿„7©ŸCýƒRýûF³„{òFsµS  ²B]–ADg8\l@1À˜·Ž_V«ÕÔÙÆ%g{°'‚òl„¶2æóÜe ªðåt€r¾PJÒXPQ¯„[_ž™}žúèÄÓ¤ûJ™j(Z܃{h„Õ Æ>)–(ea‘î¤(--U*¬Øü¦9[ìJ¾úÿþ‡l 1ãÔ  @ó XY ˆóJÚìd”‘ìsé—ðfP!ž'õ³Ä„a¬]G¥,à›ËÍ%«Y)§œøEœßr#kð¯ŽE€Í^‚9†b$Úx»&I7%VÌ ücŒ€ÒXì,],é~uUÔRIÕz$'ëO°H¥V4ÛUÙêÁh_‹öAr"gðG7pf4­¹e²f㲆†ü5šV_–é”äû0shEä|€y.IxA“”D¯á í=þ¿Ü¬Ô–KeÑü‚â­Êô¶¹T«5+_p’!½j®OÝžÞ²5©á€j µ?`¦£ 7¡åÚg¼,FµÔpâçøsƒj¼Å2ð?öeÖ¼áĬ~ rTk›âcù QΫ Ó-!]yl_Ü €Ú?¶†=$Š-Òéè£ëbÏo”­vÞ…óŸýÁÐ}ôü`|yõéúϲ̺¿{zº{|Ò(o=ßÞÙ}ñòÕÞÿýºÿúàðèŸÇ'§o~ûýí¿þ­³ÊZK‘FJ‘zdÖ®Ósh­¾þèñ“§?<ûQUBê&ªŠýH\¨PØÝ~uØÚnú=¿§’»?S2ÂORHÿ «CÒ 1r”?]7;å3©Ûf_VS^(on.,ÊWVì#'!(Šé(€"¯þéº"„ìL*SR@nØ·¼Õ³gÄjÁ|lí½O«õ3ñ“ÐkNé˜Í¤ho³@Ý–-¯ËZû6¼¶/•äOÕþd«GdiCáuW%ÃÞÓ›Ô¬?ÔÌ¢r»Æó@Òà :Â$sÿH¶}‰Fþ“Q_ºÈ²ö‡bÕ7;­†”–Ÿ)} úe*Ç"ÌET‹'™>˼P\¹¢ç0]þ†ÌœæáP¼>ùПmÎŽ3n›…q”éTÃÄ0ï쪲üzEìüßË£#ñäÍ ¨ENþõmTýMY_™ïf‘=W’i7ŒéU•í ¹¸ }Ò EÅn$ï¤^>žuFbut\æBYŠÏÆÖŒ©Ã•¡Åˆ²~’ó\䞈þ0&_× +"DýÑå“ÔU[•‘Åí &¬Ã£åÚÅé/dõùº:”ÄY8gZ„¸"M¡™Ž,¼ÍöqÁíJW¼kÅȘ9(êŽRH—«,L$)_M~ÔÛ\‹»FgP@r) :Õ¤iZRü½\] h6´ZmFè>¢YæŽ|¤S>ʨr³¬‚¢µ•f#^:ˆÅ²¡,ªj1G£î$Â…FÝ,–K2wYuË/Fòp_ ªÃ„A„É|ŠW—ñ†ó¿¶¬å--€æšœcRÓé£ï&í`t‰°Ã³Ñ’‚ÀÓh#ûŒç#7xæ’kÖFKyt˜/yûáâ.òab®‰›P¡0¶L!ôE)à•Z'¡è_•$Š€Ìm®Ž¢SCsæFYgÕÑ\ˆêbµŸaàŒŽð-ZGHå²uÀž~±·Ÿ- @4uŠ A·1#]Œ óØÀÞ¸|0¢ÄP^bÔ/eÜ]”£×‹ú„XýDïiIXkÃl­O²ÌÎ÷ýFžFJ1@1˜Rš ¬Zõ°&ƒ‹ÊÔÞþɺ G*îzê={Èkiuо¹þn9JO~w¥(¿Ûô¿{÷GT[ù»Öw½r1oO´¦¾Ùÿ"Ö›ï¿&µY@`ˆ§ÀeiíÄþ)ռâ[QàÕcE,j¤ ”R§TQÒ¢ÕP ¸7®v.nW|ÿ)Þn¶NTmi‚¦Ó¶ÒtŠà[Rõ³ä¥ÄŠ2iÂ{8i¸Hl /#ÏÇ}t. šèF¹ŒÉÅÕl”ƒ0’]Á}q"ì S‰¡”UÉìÖ92AlÑä 2öa1h§}k ¡ùЬIí³ËZi}§­üpJõ7±¾V²ö¸þ£ÔLÂ"…ž©&÷òàØ.R'@->ý-¾†—nÇ’‚ºÁ‰Ò5* 42ø×ГBIaŽW»[;°ìÍ2)̳¿wðk¬J sÈ»¼#‡JB 6NNé—BÁE[Œ4Iç2Lò˜èa%züÑî¨<+Có+m¹±„E¾\,€@Áé§D¼Gw΃M7,,-kÞ'^3;‹žX·Ì’R»übÖŸµØ'­õ޾ŒÚâáz@(i«&ÛJ ±N“Cˆ@8ïžd­GR™k›…æ¯è2ë2‡8ž)\¡lŽÑâÄ툻¨@Š©ÏìN§ãzlÎçNÐâ ›ÒøÌ/X¤Ì[™7dwœs̾8Ý"Ù'¿õl³›´Ñ$·T-Þà˜6pݾ;<:Ý;Üñ³r.¡»Ÿ£‰óU½Ô»ÓV•Œ‚¯é²P²ÅבUø ˜¾\D¼5V{âã¹Î¢ÕÕÕåÆÏÒ| BhÖC%Ǻ⫕¹žd/9kDRf¥ŒÒª/ÌLÇzƒe}$ŠÀvoÑjf½‰¡Ð½³Y”.Âô7¬€I ðWÚÙ´dbMx^ä6A ÆÉ_ ü>‡úI=È_þÑ0l"6ÐÔùöE?‡úI=È_þÁ¿¿‰JBÂD*ÅM¾¡—Éóð‹zÔOêAþòOVÝ\K¬j>î¾È'õ ùÿve¥l-¢¡@§Í~¿ü£û '—ÞÌ™d `J–¶p!G{Ω“$nÊж\®$„„‘PmÝ釷ŘIvì&;ÂbE9ìE¹¨ÖDt³ƒu†‰<'¿¨Gý¤þØL©b•æ+ª"Åõxä÷N }†H:q¿‚ŒÑ‹pš¬AGw¬¼…l ¹ëåÂ)Ð[ð´&+*“áÙð`X`oÀ´rQwÚb(Ór¼ÈÚ DØGwÂG,@d$Õ}Rò—Hiž˜ä¤´ø£~Rò—L# ¬hg~£cZбLÕP:ÜxˆTfoHj(sO6©ëm%¥†«c ÁDöª5ɵƋ›ÝDˆ-ûSàYDr5è6½d‚@Ë¥xȼÿ˪%FÌ…_ô”I²8/ }T¤—<t/‘~+a÷¬•E’°”…Óû7tW¥d–ž¡þ1€B4Ãõ뇤‹nÞ5dëÍÒ2ÇpÑÏeþN×W¬Èi~V*ê—Y 4v¢zž°Ÿ66$‘*Y%IéþŦ_«ÖVk=øýøÍÚâ¢@£_x,ÕÄâbms´ù ÿ/³Ýåó÷(É;–Öf•Rj‡ã›E9-ZƒÎ=ÝóS…(]FëPÆÖ‘EZð‰mfÒ†)%hÿ·¡Œu/Š•2‡MÃîÉ2êp(j×S•ÈáÖÁg¡ÎG!:r†,#VC'\F¹hø |R{2ÄË"*熴¶TÃGÍïÀÔ¾"m^Iã]Fa¢ÁÇ®°…ÇPj^²ºv`{çV‡»‚ýŽ­'L¡‰¬ôÈΖÆËÿ Ö~ø;0ø@1ì±»ìÀà-ý+Ƭ‘I91¼4ÅÀaaB¬*õ(VKÇ[;‡¯!9ÞÞ_rÙJáfú…kú>ÕQ`Á‚œ*¬¸ uÓÇ#–Jg{‹>).ØÀrPr%,;b OYE*¨*‚Dóq Œ=;’ôé,æBIŽ.ÊÕ¨-¼Y¯Ò®dºÏk°†×[¶¯|+Ê͵ú“òm Eçºf…yp{ÐD“ºáótv¼ ë&hU·{ÃŽ‡xžð9'}²:=»!ï`ß±QÅ2m4øpáL 'Ph&g‘³´û.9þ€õ]€Àí·­Î‡jÜ{­µÎRÎÚ`ØÍR¸1¯Y–ñ<€|´®>@Pb%ÊÏw_îÀfc™tÑjzí¢¸ÒÇT —¯aÝiÖF*­ónÚ†j«Ù$ö¤lFºÒ_x„ÚYãOv«ŒNˆxUÖÐX½ ðR<Œ÷­È;\óRdü˜UÓXEÞw!‘FnÅP-Ý”¹V—k”²Ïœ¾3¨•Íb²&$íŒV`ɶVbÒLã&$O;qç±mG͵Pò,«=Ï¡Õjùò™.Ò(÷ õ`Q”u×· HÀ»›¢¬¿J ©*‰ŒçV#âù•ƒjœ)÷ea Üf©ö¶6*ŠØŒ…}‹‚>3‚¬ïAMªnJ¥…täJ8¢êpóËTŸSPÔ}y ŸD+L| ð4SÁM%: î9®0¹Ëâc[xdpo‡»Dy},\€ç©¼+ÒÕÂXïÅ÷ZaTèá‡waóÃB›Û˜ZH–À«F©GЕ îÕä­O¬«ns/&gÌè÷ÐgbU³³=r±ø¾†Xë9ÒZso åä H™øÄòÁ›†y˜KX“WQ¸†Ø¡èÒ›pÊIEœ´­¹ÞAÒ{ØŒ(TÚ Åÿ¯X€¡àØH]ö)‘`pZÛý®>š™/±q<%®ˆâ/EB®³1 –@¹Uÿö‚‹%Êø®þ¾¢ºâ µÊ¦pÄ?TÕðòý÷©q‰=mpõïœ÷*)R%¼³ä 5 #ãQ•VG"'”.帨·žH}«­ˆbQ–‡Hlú{Õ‡ïÅ#å ’^uŸ¨l¾G†ýý÷Î{•?„ßcÜ˜ÞødeuÝRÕ êú{"ÝãÜÏ-`€I9/ŸÙµ¬–PCÞÔ–Ú™DJ5K|¹)ëˆÐµ^ÑðìŽ6@ÿiDÀOÑTN$yh 9¬q<Ì3´ò6ƒY³Õ¹èx×Qdº&þ í†É£³ä=rTÊÔ)²rtrøŠz“·õ¾‹Žd—ø"±‚Üaé3¿Ü{ø ¿ü"€[÷Å"r[eúŠL]±Z\!%¸L2{a†òdn‘o|NŸ2Øq¨õ€d½ºÀnв…J¹vàu]ä=‰E¬µÅž  䬇’B¥’욈ßKY«Tø•%Ê=&R´j€—#˜ŸFPß‚x¿L] §ýTˆ â× ü¡ô?o457 ¥ÇI :IS%ü±±L5n,ãyõ‰Nnôgñ8xYÈ—N¾†êæ¿a/'ùw¬e0$Ó9*%%»O%«˜‡«R’µ ®JÖ¬H{‚Þ€Ã×$ˆ<=€”„¼éèÛ³†>I¯Œ  ä³ ᬔªgF¥åñðº]R4‚Jpè«]·Cb8ûe…Å"Úu°ôE?ò\4ñz†Ødèý¢ê y““»0¹`JèxwPL"•R©}OíToxd¤Ci[>Šš. ¹,Éð¤ÿðÜļ"ÝúAH^×BÆEÒÕÜ“Žfån,Wü:t³Z'wL8£Úžv†kdEìÈû)ËóØcü_ÕÃAȪ-(¸B Üw>ØW@ð(tíÍ%ÐÍÀH5‘ ¯«˜1ÎC¦Û\@Ò8lÒc›½W{J×ë¶<»¡}1K{¸÷qçÌ!1nŽ#$6`0 ½Ñ }ƒþúu.Ò_ÞøÈøS0Ýy^è"|ŽX­ÉDzÛö£D,V%šKÜšìr±Ü¬4—–Þý±Ty¿\iVK’ÎFíÊÖE(6׋ÍÂŽzÍGÅÚ(«2³£È:>~Í^ñµ3q£ÇlÈÛË´* ×ô;œ2gì[ºÉŽÎCg2Û¡!31_¤omî›ä5$U|FŒiC~¥Y(Öz³±ùYŠ(“°S;“˜„䃚-iúYâEýe<„‡ ¥}oÌצ,½ÿÒ,UjÂ`/šÌ_˜\…åõ€§ÄS•´×Öãæ‹Š¸‡F¨%¨¿¯3uˆ .Sa “×É"’¶çšWÄz%^šê»ÑÃ/+ø}z¶XÄŒv”õ¡Žž”S¸ þ$_U?*bUÔÕ 5°©RÍÃ,†ŒIA}}¢ó0h£ˆ*¸‡M•n*u¥ÈÓR\‘½=’ ˆù@E†ú&®Eq ì<¶´È`#š•éé.RhÝm£·B+ÈþdQdY‰ÁY-r•/$(~¨ºË=eïNʹ¾¬ÄåûÑEÊcÃ1ú:¤kwPÞË–D1UÍ%†  ðT yE)=­-¨$ìT~ ;˜úåš2¤“ãE‚ÞH”üõæÖüÙ¤s:Âû(Eü î'’U‡;šÎ°¡ ª…Øxµ€”Wq’€®y ¬Q œÀêÅîš!…o˜7Þ½xµ¿ýž4n—ý;Ã×MíÜ4ÊÔå1k²ž÷ËËÊ¿±>é7¶1!óæ ó1<¥ÜcïW+rÕÕ0yY'ËòòL³Ç(ß5ýÕØ݆Tèø¤ QP¾é:¦o:¥—©¤´Mšœ‡†Ã>õËwÇ^³‡Ö*@XQ‹,w¤µªœ$ ·X…t¥ Ãâ¼rä –¢64 ,²O@ucMÊpçŽç§ÜÊJíz¥¬N]æëÚ¨fI^ư[A&¼•{¸ a;tG™äeXÛ;‡'«~p«R—¾<ug&}žm'´`Xãa&²q]H@SÐ=a §_i§-ðÀà ˜G­ÉŠÐcÃ,’. rÄnË\¦u}·GÞòØÐ ©´ÎSÖkDû.Ö÷P¿ï<®Úw>ÅÆ8j>QÛ2Ö’Ré;—Ú|*ø ¢f ’Ë*10àM´ä¢{z_œiü\VxÞ4{YrªvuEÆßâºÆ¾²{¨¶Ýy·”×mpÞ†õ™“ÆÊÕü«-‡ÜžˆúPp•2ø¸áÙÁCl”ÃB$Ä)Ÿá¼À\/™¾üñî Û¿|Ùô¿lÈçñ¥W.,œ•#¾Õ«euú°'%žƒäÓj$òH¼O:3t»û¨Î¡9\ÞëLsvodT±IdØEq`½¦K"8I´·Ÿ•ch5tÙ)©YxLO¿ÏÌ·ŒŽ#ƒDGhÆ(j>D”¿ÜüÂ?Íe¡ª„í.iI°™[ 5¡¼2¨ûÂwd‘ñŰÌ0Ã¥Ô¯ÒÔŒ5cž_PÓÆêu}ÐlTîÂhVº´ž"ù”ºáÄX"¡¢QG>"Ýî¿£ËD ÿUúì–ÿÑ©¦ÿÉ,«˜Éø_  §õ¿Ëú_úl`fÐñŠ›1#{š]:zÙ­-lê츫¹Zþø£¾ãŽt1¼¨nT#©*@ŒP~q¢5Ôb'áÏ1d³J¾~¿|)sP•-Q¬V‹Ì ¹Õa)Eª–ñ]ÝK6( íÖÞýA.†¿ÔªÕ/=@Ï5ÙƒpWƪå-Z,Vr‚„}¥}Mk¥nGí²‘ÉÚVLê[<=:î¢ô ßùpey]‰Â–õz£ëF´_*’´îUW X,‚”U<š®´;$ì]U´¦´³ÒïXµLKƒ€Ê¦†ld…1x¤{h 8¥=EãÚQ¤ { ˆ¶/»…ÌfZ§ø7«jf‘ûí0/3ZMejO¦A'Zv2jF'Íd䊌u%‹¯x»{‘¶©ÁRš.!M縄¤“£u*K;[{ö6¾¥>’Ÿ†vÛ;©÷«Œ¥Cá>iw±ö®XžëÂáë­¨ZÝU¼Ø{ûzwCݽt>O¦HP¾”뢗}%®mËS¾Ö«O×ø ¬·…¥dün¦ú¶=¤8ZHX¨r¡fdb¢ö(iû?áÝXm„/nG?£ †~黫oëWtz@Ïe嫜À¨hЬ5`v¢YÔ¤…$ü‹ä±mÙèOfb<׎ ÝÑå/˪Ÿø¨º‰Ïa/ñMv’˜üÑCcÝÅ ÁRy»7T®;WWÞ*ƒñ©ÑDoUóúæÍÜf"_ZE<ç¡ïÃ’|zØ“ÖN*YÁýaI>©á$<,égõQÎÉÃ?Èd KŸŽÝp'äÛÃ^Y£¥ð¢ÐàøÞC‹3eš+â¬Z¦P½¤fÙaœd°Op\È.*dñG‰±K»òºž¯¾eg ¦Nü¿œè繬¾q{P³L~Ñ=x¡¤:2¿Œo#€ ÞÛZ[ýñýò/µí‚ÿå—Ÿñ˵]CfäË&Œ·3f¶¿´1¾·¼ÊÀ è>jðýº?öl)“f>†þ–žá1VP^Ic “””qc $DF\™+vש‚¦K’†Æ'^µhq«"ü²QSõÄ&î&57^%H_¾é©³ÈíÔR8‹µå¤0K,×B!ÚºCîÄÞ7µpÊItÁ7N†ô(4»µI *eHf#K¢­,GÔ¹’áÊA÷ t™œ¹!23+Á¤¡F_Q2Ù\TáPŒ6 ·^4ñ_±rÍúj¼ÇØ_4ÁÔrB”ëË@•,¿ä¸‰ÊìjMÑ;V4.k)úN—\…‚ÖùyÂK5µ <ä1Qf¼ÕȉfF(ÅuuH‡X¡íðJ¨R‰ñ´b>kª¡ö˜T¡#^ åÜ+X³˜Š#”³ïHUŠY ÆC€rÿzo«wO$õ CBZ¾Q„¼\Ó…É{êE›ÎHHVßuìŠÜHµñbŒ#À2È# 6±ÇP…Œ1CN´É$²ëøËë²q*‘Êd]Myv°¬ÞȨZeŸŸã`/1ÔY§ïú¬—BÒǶȲ©­4ñ ç’gWp|sFˆ(¾§I¹€¡8Êw@‘Ê¿Öà¤_Ù¤¡ÅÅép’½µ.”­9Í(uC·Åkœ°3ò¢Qã%ÜAº™µ´1÷HzЖ­ÒÒ_P=2AF!Ó]œ‘®ü> â‘Æì¦ûigã2ªbÖÁ;8Õ›Vòxˆ½ñÑoà mû‡Is‘Oà&SVr#wAªÄ¤Ð»¯*aÔW¾q#Їû‹¶/]Û²Ò1[tõëÞXj» í…»kà%ã+¢™ ¹M×è4Ä=¦KöÜœ²GŠ9M ¦yèêYÎOñ¥ø»ðù”IéÎ-g]HU¡jòÿAEK?±íxœÝksÛ¸ñ³ø+P'HY~äq¹¸q«m«‘%ŸD%wõyx I¬)RáÃŽÛ¹ÿÞÝ@ñ%9ée¦3½¹ˆ$°»Ø]‹}ÀŽï±çCw&½wÌü¹»HBÞ²ìæ=;n½}ÃNŽŽ_ýxxtÌN^¾;þáÝëcvg­\é_Ö칦9@á: lE,^º›»gn¼dVH“Å[‡“ØœY›QXd‡î:nií®y=ÖÇúOõ“Öë“~÷‡}£~ã¹3f«µß6Ù òrôêøG|ÿgÀÃÅßç­ \ÜZw4<ï_˜—z»§ë ÷P ÙZL{|Ã.Æí+pÚÃѰßmÌËÑÄÀ–‹áÔœŒ¦ã®®å;ß?_QŒ “igbÔó½MGØL{ú¤¡iÏXwÉí;ÐK¢¡µŠ¤Ì£ óªýA7'º‘6t»ék81ÚƒAú=š“ôcÜúô³ýé s©w?PK½=n2+ÄÀE{jŒP9ïŸÿ[½ì=BÛqÃÕE®¿`aâ§³¶÷ûF…Ó BB½’”øØElÉ-‡‡Er¯!PFE0硺<ÚˆrÖ“Øõšl¾¶Âˆ{~M B‹OhWÐ7'F¯›ù4úWz¾·3 ´ÍX¢cR¿±¼üªÕxbKú<ç¶#ÊÜ_Y±½Ä·8‚ßE¸†_ב6l¨ Ï]¹¶²ì¥ëóÃtx"yŸÇÎ ž°Â—·~pà7r¾%ID±c… lŒ‡ÏÅ‹KÜâKBÁÀÔÂÌáËct8{Œy‚Nå· "ù.ÆÇ·¬Ðøú—]«;‡ßËwƒ3h­ä{Øw;:¤¢®?¶Á¸þ¥Rɲo‡vå`ùÍ€«$cî´´Úmƒfy»ì¦I“áúfµJýߪ¯ÕŒiv¦ýÑîÔQ j‡¶J¬|µÞ kå¼v—Ö™R*îˆþ@z½ê½îû..r¦ ³j…6º¯y,O–³\Ñ€&)P7»ÆÏl~*¾p¬úUº9 Ô^Úº½\_Ðë®.¡äÈ•Š• l³Éˆ–3W)g¸Ío»´Ì•süæÄ¥u,'6 X8‡Sµ(ü.Ùw6ر” wÿZ5Ï.6,½†V’m|Õ|“xå ÓM0;„XN1ƒM•ÂN.ÛÇß$*"ì!vˆ‰ÝXH\¥)`YÂ×Ç'æ· yò¤'»…<ùBž””¶ÞŬ@QÛ?Ø?X®“/û¬{Ñ>èC ÀÛ½¢8Ù¾íNÑ:„Ø«`hÂàŽûäU õiÜ7ômcQçŽÁB7æÛG;=%9#;xÙ:¹ýÿ.+,[SY }ØîàaçÌn›Zí¦=Ã=¸† wÜ^Ôo¸oÍ<~€ýìFd½NÁ¿¾mÜfRŸúÆ¥Ùë4Ùsm:³‚}˜Ô!ä¯aá:/4,x¬ãÝ<åáj5<±m.Â9ëLzn3T±»á¨§wpRxAMO×wèrಚåü&ŒÏ mçUŒxF{ ‚Sðez¿xïUá Ë:`i¿ñ˵ŽÁK&vL¬‚8‚7­†{ý†É?òˆ!ȆEû Aä+Q4`×[°§¦”.!÷Ø{p§¸ð|­¶´ìÔAr¸í™Jˆà ^ù\ÑÑï¬O)$YtÔ¼Y¾z%ÆnQłԃmhµ¹«Áÿ PÈÐ@î)žŠ” ªADÒÜ€Z±H[Þ»˜XZÛ‡×zã äžžgÆ>ϸmႜžºÑ ¢#ðœ€Gþ‹¸Å ŽXn¾÷ˆ™ÎÈŬîf•  ÐHލC{>"2–çáBGÈÍ€ÄÝg>GÀ4tXS¥6MžôS^sÄØnøcb~º„>±‚Ï\nd>,Á}µWLT¤WŒÇûæ%ç”Éó°`@h ø÷èñÇ¡|DôÄÑÿÔŠùoP…U©ÔŸìê¥m1»—qÕ2|^…’ßKÛüPÊn÷vÅ™°¿*áRË; €—û& ¶…H©âübүɄJ`ã7i£¨à*…Ì^Z¡eÇvCìÚ"ñÚ…°m€}ïL ± íœ9éÿC7ôsÚׯ8Ó oóŸÇoòß/Oòßo^¾-|çL‹¦9ƒŒ–‚áO“~aw'`.o›7ô¿ÆwÎ0±¬6›VubäÚ(û m"…‡ø4×À i^fÀ7 á2& ˹ÝX…ÒéW#ÍÜZÖ÷—ʘƒ 3ã¼ð„•çÜ’æ¬B¹M‡F E&[«Q>ž—Ù¢ìõÛÃà¸RGçõ`>7ã&;*qäÎÚØiZöhЭÑÇãÑØ§MÏGãeÿ$ò×!Lô¼Ž[ˆíÃsÿÅq8<4b¦Z[­žê,óß …Œ¿/ 5ò^òf²*‡¶¢ÜÐûß>¦¢P{&Ž4–-¡eØW1æÆIÖõ,WO)0J*匳|(dFCŽ>¸>ÆϘ(#²ë1{ùöÕÛ·ïØƒú_0óÌ#Û‚µÌlÆ’©Á‹`Üqö+xá"áj0=Àœkž“ÍfžåßÕA}Än^Ù[D–šÎ¤Ÿ;Öá¸èêêüã!xàâx¾*0¥e2ô¶î¹+|áþ=V5§È³—sÏZDø² |`ÎÝ£rGÄVwNÌWkxFôŒRð¶ƒd þ7¶®±>&_Ã`á[+΢åç$ˆá)ê6¢ÈRnÏÏ·†žëG|ÂðœŽm¾ÆG€/”ørÄ$ò8´‹z r†:V!üDo»—¨½I]“@qâËcAx—]_XHô#¯‰êÀ¥0{Dv:XèLZŽkfä¼xå¥Yûf¬¦ ÿÝ«8©Ad;-bÁ2©B„XÆŠ¹ÂøŠŽ,ží àúoL¤ò=$È *>tý'@)qxøø_³ÅAh-ø÷e£<•TÙŠ¢69óXöPóˆNÅ ªdçWf b·Á„ê.ÝTâò%Ø…åšéËQÑ$ÙÌÒ*/xL}ÙbÉÝÄS D8Ž„†ß ›Û:Nq+«-·v…çЫx’}Ûø‘Ý^`@´ZU¼ [ÊË!RÌ\¡BÝ®ìl”¢0»m©Ì ´ áÛ¢/aÅ3¯(…'U`QvncQvX”G¬æÞehâU†õ½m |Ê÷úÁ¶ìe5ßà)ÎÃ`eÒÁèW6¸“ˆ¢Ó™¡IWMA…Ð’(|üÆÜO(?ûW-¯ÅF¥dç65ÈªÏãÈ àl{º{nLšì‰47Àìáp¬oH9À®Jeã!¹X)ö7à¢reÏØ%Dqg=òØ ‚}4@[ÃÙ[o0˺3׃!e°ÅX‡6:f<¼€{ÎPžA’ÿ ìE°j”µû RKÈÀ& '_|7Å„<ËûåÈÅRÿ3-›@ sYcÄÙfœÊ[e(ÐRÅrY•Â{즄K.GÎ/»j B6µ• ;* €ýʱòK!ŠUÇR8Pª6Úçói~½Ç‚çÿIV1‚ù“–F`×£Á¯²Ô²¿œ}Ñ*ŽN «3K'\Á1§¸ ¥_Mž)ÑètÜÛˆËW åøö´{Šî¶i¤ÔÑ–^±ˆpß–æºüuI#êI«ƒ@;ÌŽö_¥Ž±út[ˆcb½ 1̯Eˆ1ƒÇí¸l¢d¿0O$_èÆõÅø:z¥_uÄÝ麉as“–l_£¥—sÂäí±3–5Û)bðý])ºÁ÷")ï:°ÛVžK½þ¸åÀ9é즾ÉÎf¶àê”IÁÆW«î0 `îE\Èh^tÓÃŽ%jfϪ"™÷”ŵ?A•ÉÍUÄÞŠünõ¨[F¤7–¹qCº¦ ft ÔI“^ÅÑ„-©T©ÈduJ­UJ¥Òª©T«Ä.ëUtT+Vô 9˶ã?‰¾eì­ãn^1çï$«Õ£yo…§ÐDÎuÚfŽ´]¯Ãl¿qÔ`dm7Uб>™Œ:Ã\AõF)ûœÊ³t{@Z7`šh’IwÁ‚…àɤö-À/º±×‚)üÆòàBË–ÈdÝ gœêFô“3ÑÚÕjŸ8ÞNÃ;@Wɵ†º¼±?{žƒlüù³ÓhHA•|öS,"µXÎü\oǰHÇÒd´@•TÓbTêyÝùÁ[Â?°â€»ö¬GæÆ--Ulºæ÷‹,RZ¹Û–oŠ~’YÕ4kroŒ§Ãz¡”ÖMk8÷+Ëõò¿± B¹»Y2¿9>:ºÅkQ5¥hl²=r¯É^üøêÇ7?¼<: &/¡a^Ï^­%ôl¯A`¿§—¯ª–N¥$TJ¬D‚5 njÁ:H+ Ï+¨°?åÎê¯ÕïgG–¯²z¬VdI“ª,êòsµ*¿R—¨L¥˜jun×g­è®\ûCãÜü©'\•ª»l)ˆ³èªl”«ß»Ë¥ßëžo¯v®ßâ#d%£¬“›3¶ /Móaa™âbÓ´—–}‡?´9ö¾+Jôù€¸nÈ+` Ô‚HN`gh3ʾT©‰sÝÝôº»ƒ¸MŠOZòqFÏKÚ)•¥oA2D¤ÌpUŸ ˜õu20eùr`ý 1¦NI%H†4æ}¥²ÿË(66n@òèV eW’ö+Q¹#¤)qÒ¤Ý äo×rͳš$¬jb.>×(ÐÌè¼N½xœÕWksÛ6ý,ýŠÛl'‘<´I:Ó(ëìPdcF"U’²ëO*MB6k’ЀSuÓÿ¾÷‚Ô3j»ÝÙý°Mâqî¹`÷¢ñ­+ô0 àA/âL–¢[/Ðïôám¯÷}·ßÃ_èõoûƒ÷ïàg)Ô#°_Vðmã¢Ûì^4~oúûj~ïC·ß‡þÛÁwßz½ƒù4ç_6á¹Ú¨ôñIC+nCÿÇžEß™¿ïqD#|à‹GQèä4¾Î‹ôE¨2Õjq¢,]JU¤QÀÎ20x%(Q õ"’¢P¨ð)-!–‰üŸ… ,•Ì¡”Ký9R{ ­Ò‡µÆ-a(Ô³ÈÄ60MŸxY)‹-¤/’´¬f¤²€¨H`]"~k Óò‘ÚRÌK >§ú ¤2ÿåZJ.“t™ÆaX@äã=Q$Ø'È*H%—Z@¥‘>1¯Ñcëà«6”+“µpjJžSdª¢²WY¦{#‡7<€À‡w¶ÏŸg¾wËGlÃ{ìdà³kæ†ØîÏ }>œ‡žÀO?ÙNxó†ºÊvïý8óY€çŸÎ&qطݳÀî:“ùˆ»× ¸^>å! =‹âÐ×3ÁÔùÎ ¾ÚC>áá½!4æ¡KáÆφ™í‡Ü™OlfsæòñÀ™Ø|ÊFX)¸‹ÝbZÜØ“ÉQžˆt”æ!E{81X&¦9â>sBÊgÿä jÈnbA0c§ö#ÃTlÿÞªaöÃa'¡ì©}ɵþD\gî³)F!‚ù0y8\{Þ( („˜Ë|„‰Åæ³0Hh›ðˆ‚ra7>ç7Âq7d¾?Ÿ…ÜsÛtãÝ¡2HÖÆÙ##²çšœQ$Ï¿'\Òìw7 Û}ÒÔ¨f“ªç„„v0£¢žáA²à²ë GÕF½Ýñ€µqÉx@xùξ79ÎMú´XÈ­z<0¯e–øìÑ-'òõ`4BÀkÓxcB æÎM­>í<”þ–q¶Æòø÷â!–ù*Ò§OgZ»q"–%õ5 ß ø¨õê?>M_µ?FŽJ<¶Nâ ¥ yÜTê$ýº)KNÛ–Âã¶u•,1ìϤ–#¼zÐJˆÎÓ«f³¤Šc-Õ”#ž5QkúŒÁeÐ5…d.4ƒËKpHˆ B¨+Í,RX±Ê–tR5’‡Õ ±’ˆIUTBÇ¢,é {’Éî”ÕkUTã}.Ъžo=â¢×³zˆ«±U¿5¢·›ÿl6jšúc³Aì— òmh¸pùÉ/¢Œ»X eI§ÉVÑ#Ý´(°ÔF±¢æ8ʲ²CÑéZúòÆ«‡|sî|2ilä+)³Åj­ë1ù O®ƒÑôP´Fã¡Àæß*&Á¦ˆÍÙaÜE5I–Ø×BúWW°¦¨Ê(­}c[µ$™‹\âL4÷ÈëJ¿-ï¿€>Fš ð@Åc©Â?•*^«RªÎ³Øt’HGÇš-qúùqRô”é¯5ëí4ð‚P;ØÓ°êL@u>”ú³ Ô÷;Qö]x¦ñLœÝàc{,É.Õ²sßÞ>‘óñy»TÕ’.“6üc¿–08ÜC8ü·ƒ]Ü»mârëA³‹i‹â=èù¿¸›ëðÖžWçx;§ã… o|õž¶`½0û8‹Ësœ*Õºü?Úä‰eñFXáÍ4Û€Žž…!h’ܳ1¯D£Wq0G‚2îÞÚ{v{š`4}¼àAÀ–Æ;Æ‚»S6…/øä'«¬w;礆 =sè­Äwè ‰À€3$½pãÀ7`æ=ÇŽ“T¥jí¿7ó›™ßofütîùü×Åí¦Éý¹1k;í â¬ÐÎC¹°‹¥òR±ôE±´ åÏVï®Ü]‚xE!OzpS[(fàEþåOüê§_Œ7Þ+yeè9½’É|â‡í ï1¸Ç¼(=Æ ‡k>÷ýH}ìÀýõ‡†cïÙN£±n:÷džïIËn× ¥) =¿“>½¶ôaàw}qTx~”þsí^³|.ƒUf`Ç2ªNu«iÏC• ¤¤ÁTð&>¦NÍ¥M?Ó0¡¬ãЗ_µå$êb$Á<~xPäOãÂ}«`-ÇÞ©V Û®Èrf=ÖñCæ!J£n¶GÏHКS·m£•9°œ†Åno›:ÌÏC·vÝ^Vä×ö…Ãñ1ê9érÿ[¦#Âd@òšVeHIFáÏN¨›B×á;t½]rQÛËóŽÔy˜BÜéɘZreXMûX€$޼'=åü"ß þg†<£½òõö{:¬ž3•5¿{ !ýûúŒ®µ÷Ì* ÊaÄ!**bÆH.ÏçGioêAúÃôŒTøÙô-‹‹¸ßàGǬM×G‹1§–e° ðqs£ž+ܱ¾GŽ#¯ø,ññ·û1â…j§LÿœH÷€Ë(;³IéQ1ý8K¹R­9(é4+—µ±6›æÖœŽ4„ÓS˜Ô¶Ñܬ×êØ;gðéòõŰ˜ë‰®ë‡Ø¬ÄI{ü)!’ˆÕ—›ÆhÖd?*!}ô¥ïõ]É·¹ÓØ0¬ô7íNÃb'~èI¼Ž0ðoÇ~ODñ„{"YÉ¥^ÊmŒªÃì*”ÒçoœØî1“xŠÛá©Ô_Á Ïbu'úP¤šÐ-êd‡"!¹ò´ÄÃy’êJ¾kõÝ-ÃL†³€CÓpg|‰‚ó~—rrùw@ÀÂq8¢ÔÑ(& Ê}5ŽhÞ–7`>–ƒQ7®oÝöëB£õ’ì“SÞ*ôú-<¦0‹çwµP~³otÕLóX*^UãRM–Ý"´“C’'{æ8±®ÎMÿIû‚‹  O>Ê=„r‘à_–Óäùܱú³v2åñ²Ô“Q«R§=1^34«åǼ9û.gRR™íþ±T& P —ï4òhõ²UPݱt¹ýóe\̨_$\ÕaÛlKôÓÉä†VÃ_1kr¦ÿ¾óÑÁ}¼<è‡bxœ{¨¶Bm‚Œ´¡‚‘…¾¡)XZ™˜(då§¥o4ĆO~² »åäFv‘ÍsØã˜& r…oÎçúÄÿ6·ÉxœíXmSÛFþ,ÿŠ-Í4²£`^’6’Y>শäJrÓé8²t¶¯±%t†Ð–ÿÞÝ“ ›¤é$3}cËw»Ïîóìzï Ù0¹Bµ‚ö Õ ÎÒ‹íØº€Ýí]ØÛÙyÑÜÝÁoØÙ9ØÛ=x¶¿d¢{ŸÃ#£Ñ¬5ÆÞÏ*÷—ä¾ûÝÁó½ƒýç+îäîOkÐ'˯ 9ž(0ã:ì¾|¹cÑï}ýûZáD€/Æ"U%d#Pø¶ŸÊ Q”R]ÑŠMå(+RmØÓ)h¼ QŠâB$ÛˆB¡Â‰,!Îøšˆ1Ù Êl¤.£Bànª 9œ+ÜQ´DñNLÅ ¯ +ß ð¦e–.!}‘ȲòY QšÀ¼Dü!çE,ôÊP¦Qq˜â¬´àRª d…~ÍæŠPfY"G2ŽÃÊ#ÅL*Ê"/² ™P:“Hiò£l:Í.e:¦lIN%¡ßL¨zÞݾ—š–n‘“–`6/*¤"Ì•P£avA[‹j~¥™’±°Ð%›"Á܆Õôîæ„Aãi$g¢ `o= ¸¢È2ä™Ì1¹/“ T,HIÏgØOѲhM¬G†ûÌ"…MË[áuÁx•†&·¿ ®ÚöÓh&6thšÝnë2HUÞ6ZV”‹¬fö™ þѽ'Ò÷µ ¦2Ë”€J#u¯yµË^`-š Ê\ÄÔZè*©ç jª´j¯²”·žòï8<³}øÜó½×¼ÍÚÐ:ÇM>;an€í¶ÁñÜÐç­~èù¼}kèðø1m”íž{ÓóY€çïö:qطݳÀî:~›»' ¸^Þå!š…žEñhݼcè2ß9Å·v‹wxx®:æ¡KáŽ1ž =Û¹ÓïØ>ôú~Ï 4ñjóÀ騼ËÚ8)¸‹½FZœÚΞˆt‡f‹aŠv«£±t¤Ùæ>sBâsûä j˜]Ç‚ ÇNì C*¶n-`öcp“ÐÚv×>AræGdÁ’8}Ÿu)a"è·‚‡ýÁ‰çµ‚Bø€ù¯¹Ã‚CèxV¬0 ƒ„¶((nãs«p-wCæûý^È=·N@§Þ*ƒÉÚèÝÖ"{®æŒ"yþ9á’ºœ2\÷IS­šMZ¨žÚŠ%FE=òಓGÕF»ñ€Õ±d< ^E>³Ï5Ǿ¦OÅÂܪǕæµtIƒÝ~Í)ù…16BÀMãRÐwNêÓ祯eOç8¿O‡q6Ë#µ=yµaµ'bTÒ^m0ð€·Í­¿z–nÕWG%žZ÷–*‘™Ž¶!•dxÇxk¨ !¶'[µZI.†‹L&0+/£Üì!UhPÀ¦þØ­pÐêp׺y&}ŸÒÙl8ÈsIVª§7£$φ8ñ¦ÑM•5SHTv2MDŽÃ ç+aЌǃ«ÄA‡ Ç-NÑw˩Ӌ Š8qK:µ u`Pîô˜Œ<‹E4Zš,Vp6ÆUbºfÄ‹€¢çc™ššlCYÓl ðŪhäy½ö[ͨ$˜Ö Ìô=ZH¾G¹¦xœÅY{sâFÿ>E.c¯“º‹ÝÙ«:Œ8IìÚ•MP¬WIÂY'·ßýº{$$0`o.©sm­F3=ýøõcZÃi³òÕP¤]³Ótâˆéjq2k=ÀÙɼn·ÿyzÖÆÐn_¼>»øæ~ E¼õS_Uš§ÕÓfeßöoåþöw´ÿìß¾¾8ÿ¶´Ÿ¶ãþã*4¡F±»X¦Ð˜)pöÝwíýÎÿƒk)À ¤ „sHñu¸"NÜô‘fz¶çÎÃ8p퀎çóK ‰ˆ„s‚\H”µt˜…Ž|:"FÌãЇ$œ§¿Ú±ÀÕ Ýé*Å•4„®ˆï…'aúH nÜ{º—„AÎÒŽ›Èn€8°J€,WñLðÌÔ ìøPE?iÁ¯nº„0æg¸J‰‹:îÜÙÄ£¤G$bßMI‹(\‡ÔYÚ)?=/üÕ ¤­ãÒ¦„¸Ð>_¤4>;ÙR¡ËtbüU’"B©ºW{>ÐRæ b‚A˜º3ÑB „ÌC~ĦËæmê„Bgžíú"&ŒàõSEP` ‘\´ÓY¡r. ­Ì89álåc<Ù¹ÓNÑ!®ÇàÛ)†í%ðì0b\6ƒ;?¡py­¶/vDhËì7MŠ@ ã$ÓÊ·1ÎÅÇž\*¨Š¦$FéVð2yg¼²à‚$3 -ÜêRÌÅT ¯$q‹@¶Þi&˜ú•õ¡c¨€ã‘¡¿×újºw¸¨‚¡^«C˄ΰ=}hZwlé† ?ÿÜ1qÃ×_Ó±ê ï@½ªi‚n€v3hÈ¡¥©f ´ao0îkÃë ê ´ÍB2Ko‘TˆÑ;ý"ƒÊvpwŸAÖ‡l3‚¤wÄ—ð`´àÃ;ç ”Që&¢×³ˆ[‰¥"žVÉXª× Qï©´ª£š©*è2Í$MJþйcÇl>9 u“ÃRð¶Ø¥ ]A§ÿ^#å3b SË‚F¿"Næ¸÷.CŸò¥Wn0óVX¿¦³ÐìôdùvÇìéÌó„Öª“‰Ñ3µ~£ö‡OÓšrY–l'xlmÉMRÇ ŸLyît{.ƺÇjíÐÙÙ¤®MÓXˆ“eˆçhôÕîøf¦kMúã›CåG\Áˆ>«#;Ær†µ2¡ó¦âL£‹JºAJµ0dê~—1}]A"PO£ß…&R+Õß«•®e¨*4ÓËje„>€æGÑ"')¸8Ä"‰U~¶´ch&"B”*)¼Ü~ü–E¶‡d ¡Ì±Ä鼸ˆ8nA­ž\@´H~ƒºSkU+T¯&šiªV#Å›hÃõF æ ?Œkp5¬ñ÷5Ô¥ZÙ'îÅcuo…Ì« qÖk/ JÆ<ˆÅ,Aæ¯Va[}…7•ÛÆÜ³->/øøD:­* üNKûm¯'(AËø\25¾#~¸Pã÷Ï’7êC<øÛh#ã‚ä|£† ^ÆäJ»¨ÃV¥&¹´‰óü,¦‡z<2q^Š£¯w¸ ùB†,ÍÓ³ ¿Q­ÖX¬ µõP®îA@ùðúçàjh¸hÙhbèºu %¾øQz“…HÒ3>‚æ¶ …ŽƒK8:r%22’#{!Ë’|É#Z•y,‰«ð¹ZʪŽõr^a"Ù@,w'×òIj‡íäòY§,²ô"¨ éïN%Moä4 ›Ïåþ„òívuïBû4ªýã·L ìgÀv\˜ûXd$˜pRb±ÎÚ= æXÅí§õÛ9oíÏ{¯|ΩݥÁÏRñÅu!ß—uáO, k]6*B^ öæöÎÞ—¤µù1|’ûS#ÀÔÀEVþT¦2'Û¹pndGO ²#†{Ï¡ÝG á²·f¿²ñgUŒ/äeµâi©àpØ@sJ'/ö¹+“ÍF±Óš!×bÆ#p>!’³z3 £Ý…f߉켺sa…Öcî’K^ûË¿&ö³ŠóÛÆh²†#z=®)•ÊiÒÇ?é[IIÀ=kŠœ4JÛƒÛl»QÞ®c~5Ð?à|>Ì—è {}—òaí@ÙÉÄÒi¸‡ðcÅâê¯ħ”™sp:Zð¢EÞ•QhLÍQ,ÒUp2…êP½µð[I½•™°/0ðóã·~îÀ*вIÄhÃ`¡º+Û9”ˤ¬“rk>é1,Qhû’â¾ç¥áÑ‘L̽öÿXoŸ;?Aý‡ƒƒ›D¹Aô#¾üÄIœà'öl¹e»u7R%î¥à¹À¹Ê”ZkÕZÏ6–ÌžîV‡ÈÔš<õP/.3Ӈʖ–ÓÇT$’ÿ4öýe—±Wœáe¼/¨ ºXÁ´ÚÆŠµ‹Ýì|nA¼×¶"œÃÒi^æ4šÙP€qñ¾ã¢©» o„¬z+^Ö ¢íî ÙÈN®¢]#ùŒg±«ÙX¡Èó×t5!±¨pž1S”mW{Ï»šÊé)ÅŸ·áΈÐÍË!qì¬.còel˜Zó%­wÁÑz×ó 9σ†YQ6†“#ßYBsCñ݉²ŽÏ8‹Ocg|ÆÿooÄ/ ÐøÅ¿ë‰¹Ä:.°Ž½Ý…èóƒ!X·«¯ÊùúâÄ´:–fZZÏ,º6š£¦íÚ¦ âSf¶¾E„.Ÿ“Ô%ÿÃ… 1Ù¸PÁ3;UØð ]GÍìÙRL–nÚ*Þè˜_£ù§Ä~¿Äa˜&‘çR/¼[Æ’†wäÔ/s°9¦o|äÍ4=aÏ‘f“¿KŸ_-ðä# kî3SðĆÀ¾ÎœùãüZIwÕ sÂ1óǧ—=Û—ʵÀhvyGGQÉ(ÊaRóèͺÃãuÛsøàzR(u†x¥â=ÇVÂuô¤e{*0ï÷rä‡})uø›§J=q/\ey"ýÿ Âw•Ü+oy«•¢/á’\"ß%ðIÊmõ¯yÿŸ 9E²a²\Ý’q}Y >+5$‡lÜ…ŒØq­?TeíÚn}ÚŠlYࢠèî"xéWæþ»SG¢ZOäÏ_uÏáͼó––Ð#t‘ÊW¨Tm9|þàÍiƒ„-…ï0£hP¨|ó³ysº¯òsÙÿБEgWBžÃ:€lÑïyuà·ðAÄs zzSŠï )¬¨$GY%9Ê«XF@“­mêMDàS‡Lår XœÏâʳH TñgøsN$¬TÞ³ )Œjy6¡l+ üúHhm’*ai¾)ß—c%éZÔeèWWY0Ù^—W×u{^¯³œ»ž'5–-ý(*–ï|G'õ•h7œp5õ„"e¡\á8•®Sè7ñv;'ß Ê¶gíòçmÊI_jךõKlÛmښű<ÆØ¼µ[&n·²=™þ¥ƒÿ@2â'ÿÜýi³{úE=~H?mÅïjǧõÓãÚÞùdOÏÎÄÙ›ó?üé¼Ó1à| Ю‹cÑ‹¶O±·NEÃmгì´ðßèßßÈÚl-ÅDÞÉ0MD´)|‡þƒŒ?}Â'='ðWQúΉÝ D/±Ldü ½ ‚KÍÖ~"ÜÈ“þz2žXÅÑF$Ñ*}tb oÃ4ö—»Þ¤‘¸’ñ=Hö$–OHàÖ¿—b$Q¨IN¤ç'<ÃBᄞØ%@?’»Ø•ôdé‡Nü$€ÅMÒ~ºQL£]ŠT6‘ç¯|×A-|le¼ñSäbG¾‡ì¬”„_EA=úárëù8)A*8o#Ósü|vRbT§x"lvI Jà©:Ëè_)k ø/ŒRß•-* €’É—%ñŠ<Á¢nàø£ŽÄ›çŒÀ‚†F4# §·æ~^K©(y‘»Û€?9Úh§`ÞÇbã¤àNäŠ'ƒ!aS î‡1”>ÍÃ÷¡³‘Fùk2ƒŸ&¹£Eq¢¸Ú8àgý‡|O†¼“è*ÀÊ&J¥`¥%ç%}hV´”s‰d+]t-˜ê£ÏÅèT!»W’ø¹#ÏÞÙS1]Ï>t'–€ÏãÉè½Ý·úâê#¼´Ä屆³©èû¢7Î&öÕ|6šLÅßÿÞ„W¯ð’ê? ëçñÄšNÅh"ìÛñÀ:@xÒÎlkÚö°7˜÷íáMK1ÍÄÀ¾µg0l6jázHèùL1º·Ö¤÷¾v¯ì=ûH ]Û³!.w ëuŸ;™Ù½ù ;ãùd<š5”«oO{ƒ®}kõ!RØCXXXïA,1}× r¥‚˜W°Ø½-ZÄìÛ«7CyòO=Ðp7h‰éØêÙøÁúÙQº“-Evjýeƒà%Rëwo»7 \ã j“ôæëELçWÓ™=›Ï,q3õ§H ÈO­É{»gM/Ä`4%ͧV ™uiy ê‚×ðùj>µIqöpfM&óñÌ ›HèÝèh˜íÂì>)y4$™AI£ÉG¤‹ú ´Ä‡w<Ÿ NIk]ÔÅ´×›!5c$¬ úœŠ¡u3°Aë= ߎÐ{j5Ádöؼò‡îG’qN⣱€7þh8o‹L*ìkÑí¿·‘y5aj+§]#¥é¼÷Ni÷€Ò¿ù¡ì <þ.Ýh³uÒ“õÛŠ§§®'W ¾«/“ÞÔî7¾ÿv<ý¾ya.<%§éÓV2ýü¹“ž•’qFÅGIêùÏÅKä2Y¼eaô÷Ë4–òdý}½ž`ˆt!x¦b±±–,Wãj6±,qÜÂ0q¸5Ç Cy¸»‹aBåhðfÐ:þÝ-`|Åämy-žP12–Þ¿``’Þ;î?Ëál«)¸μ]ƒÆ3˜ƒôé…q?•›FÒÈZÉX†.„áå“pĽ|ʳ‚t‡Jf „ϰƒ0ù(˜Ú…»0X7lh=‰co¹-¨ æ+‰UàÜ%ÍúÖkJžô¢^Ó‚¸ð™¥[Ã'ŽºØ% _-—è¶ßÂc‡N€O¢AôIl;À? A4Çñ±ëAr‚¼Ö@’FÚ~‹â!ß]Šá|0h `¥¶ÙFQ°ØîR5fü›£[¢J®Õ ˜<þÌœôÖÒ½Çì@¸k'fP¸ãµ£0xäŸ3× {:µf¢æbÒ ›Ì m n­É-®³ahˆw£IS-š`ºkÑ`¥âd×ìíœÃ$Ö)lX ŒA²,³û 5e²`àLp¥Z lÅÖBÓë÷-áå>%‰bÀ¤[L†œE}â¹kR!`!ÆdЉëpš‰.DïÔhEÎÿ<¡™ š \±ªy d×ԙ˾¿°‡öL)­ò}·÷—9 œøE}½¸Ð_®,€C«ÙĹ +ß'ÕÆøa¹“¦‡¸í·Û»“í]¡4Å¥r©g$µÑðiW©•Hn †ì2pH¦äf›úèuò¡¤ÜJÍSðÁ”kÌ¿‘ä‘’‹NçþsçCZí ÜûžxªåZ?Ïú­ŸkâùŒÆWf¼úGëVÑJ]{…+:Hg…tP+-Ä6Yq~èÉOjb_qt$4ÅKŽKóäSeòœåmîÞëC<ÂãÏB‰¤!U»~Ý¢W˜*f•,ˆ?gãnÇ£Ñ`© ô9:­£·lT4º¸†Tmön2šß¼#[;» =77¼=|ߨñ$pµF`Òõ"‹'·£¾} I(NÓ´x<ù\@ ¶¶hcY[ë=òsô+ܼÊëµé!ÏOã 9ÆN U„åË8PJz^ÃhG_ÖÛóÚ6¢¨Î ó€KE)Þ«÷<Ù-ŒÏM¦x¥Ž€J(Ù¹®L F=Ão+ÇvTQœHZ¯@Ò4ƒÒõ6S—Á‰RË!@àñÒ%Zãq,ù¤ßÇ[…(Á•÷i‘ ßû¦ì\ ÍÇ”1OâÎuÉä)`þ!»¸ô5”ŸÒíè#–Û;…{ò“ã|tµ:… Lá}].ú1–’.«ÓÍ*8‚j®o ±ŠÄùJû€FAäÞc¡Žá‡ÍìEá+ˆÎ>„òPÇç¶1ì¤ÎQÃ!¨ تÞ@Œ•9¥‰tbwM16?åG$c1lj_=C ¸Ž„HK+¬ŸJ‰) ðz8Œ‚¤Qü¯£4GÖ5FÜP—F„Fê0)ÂæS#}ÜbÉNå:(;Šî±þ^©Ê—d¢ Öp0ÌâP#Êâw¢±ÛÒpÞ1»0õC›Æ`íÍhpMÜ^ ƒ¬Êð=€ÙBg<ì-sôÊÿ”Ù–X[m,€ˆ@æ:ù®  £d(vBP8 äÏd—ñ‚B’ÝoBÚ»s°#µšzaëÔPµ ’‚öˆhð>‚/W³Åx4n ?¨ÌìB¼~MCU´²72U–¡Y¬ÃØö5g€ê³ ¢YÓ^Væbš&½ žMøjªj¢€PþZœHÔPìùô—æ&0„ä '9¸Ý(DÎ'2I£X>S½rÒh»ët¼KÖ¹˜l/zÄ¥ä7©Ô–>scͲÙXó¾KŸe¡g†ˆZÿ™šQ’¥’*.)X0m{ØÝLÇ(Éð2çø²SdVìh@?hŠƒËép_^°°ó+B]ç|¨…šñ°Üs¨Îƒk W¿ql-DÌb¬%ÅxûÕ±¶žÕ3y¼ýU±–žc-þÿXû•±¶s(¸¶ÿ¯×ÿ]A4¢e¤¬† -÷¯ ·¼Á¾nkõ:<9?¸žÒ€ä÷+;å¢KµcTÕ¥Út”únO='uÀtà㹎»Æ¸I®Â§"`W£iw¨ô‚açøn®¬)X.¡²³U(o±Y³§Xj–‹¬R·5-w©¾Êê©b»OuƒZºþ‰¥G~®»D„À„xTaÛ/SÔSQì]˜ †û 1𸠂ztâ}í4#.(ë\ u¤þÙÛ]Th©}ø%ôÆÔçd•ó@´tbÏeV­#>ñSuä&Ùpä@Yñ'’Îa½Ý6À]ÉÇ’€”1Á³:-L|/«3™y/ÒÈ3”Ö;Ç[XUÒé/–kZ6èã-Ѷ*¥*¤5x¬±²ØF"ëä]$©¾î {ÚAŸKEêž Gýùxj6Ÿµ¦~Ó”ÙQzμîøhöó½ô³PX¤µ#~*ÆÛ£#uʱÙf:•J¨‹r#›*ãöAzwãçõv¶Òe1´ó¾!#Ÿ)ÊÚYµ7ªà„—rÖ7ò³EJµÛâ­¶@¦ÿ’8”#ò¨—»“n­±É~½o™úé(ðÑZy~v9(¶ŸJJÞãü¯š)*0ækwiIá/rKæ Ei–èV{k·•!&¼ TS<ójdUãvëóZ–æîÁ9ÅL+7¯&;…ÐÖ–«•tSž©àU •p·}w Ò*ûˆüŽÚ|åN¢êºØ…ܧ%Ž}P{´Z%XæÕv°âo°_xŸøÿqª—X£–ŒšëƒÜ—óvU­À¾qÄÀ¾©ïÆ>Kt¤Ž¹ÜIcïà5„ˆàÚñò†QÁá[• +sª†¤GA^X¼õ‹éœƒg†»ÍRÆ3ê ï–Û–ªzã8³°rÎaÄÝNf&~¯ žøI©ÐHtYÜëÔõœqš…±(s9³êÁéuãÄÆ+1SÓç”é§¼‡Õ­Ÿmaƒ¯Êp²?ÜqƇ']Á©¦í4Z´UÝNFa|G¯D„|„G³®Çyúä£Û’ 0Y{Œbu<>7ñv'tuãDÉ‹$ŸñrüÉBB±º=TFrL:X†Öùèg±ˆVÁ"½8|ù Ô‹Q„‹“ƒ0RÏÏd‰aC³>ÞËoN1c÷'d_Æ­E~€&%S#ÌNÐ}Þð1ïbhRoÃÇ2U#Èbl~^[Ä'ÕÎ83Ò§í]ÞÇ/&£ÑLçOøÔ¾‹þ„·}F××Ù«ÝvK¯Ô¹» |ê%›)^ ¬îµ‘[•“3uÕ‚J˦øå† èR=;œ°Õô†Íºæ2|Îs›ti/&0t“Ê õ”hÛ)že5µGr,ˆsE¢Ç¼4™KÑàXßlD´W*8'U×þŠeUï ­Ã/‰e0Åö¯° ÿÆb—Ê¥xB çci}”ëüí±ÝÆ•¿ÍOª}|¹-“Vöã‡ÛÅŠ>ÚÆ/áe:v¶=ËW€ŠŒhÕBQF2±·/¾V Æó| ïÛüåd_g¬*;Ëv|¶ñZ¶{£95N‚íP½+ÂÌ]÷¢cOÍñ9ÏïJ{ký|k­›Ï?J¿÷¤}\Â3²:f¤ùB˜šÆí&ø®²B•º!Jœ×T–ª,â ‘ê„ѼúDÅľVG– êÛOˆ=”bÀ‚”0(å}ûR>‚xÂ[6*²?ÎNüD+‘>™w½òƒôÊK<å{I…{æ}B?Ôøw‡†ª«7ùhs̉j’¡gj'…º´<$«šß5óŠžQÄ¡f›õ}7SN³äóÐ]‚wš ˜ß¢ÜMu)?p–ä"XÂpVPJ Ø@¥hD£CKéBP™.T$ Au¢°G„j∗†bö-1 ?3¬¼h¹z†jULdãöä—á}–Àô´ PŒ=x¶×9š•±ŒH),{ ŒcÙÚD1µê†XõBËPl]±j[ïG°=ø•£—Þî•ØµÞ]_.6I\ë¨enuçÇO¸ØÂ’†qH¥)"Q(±Èqâ§ÿÁ±ä-GàZ­Ý®€b¿¤{Áñ§ˆbF0ýF¼ P2W;äâ_]åþEñ¶óË!̼³‹Ýü¼™Ÿ]bÒøk˜–q‹÷Ô¬¤Ÿu[|v«zÙX¥ê6Š … ·F8÷ÑOd‹~mcÜ{*ÜC⎮^«î”^/zƒI~YôùíÐìâ¨r@”@ ¥:×Ôêßß<ÖeÛù*ÆKKt”å݇HÐeöØO@éÙñ4¶a £ã©Ùz6¿ç‘æ‚-~€Šùçaà°O5εJ¶Qâóïµ°%Ï5ª8Ôâ¥YË×ä yì­ þª@™"Pv,X¼÷cMç(Tx ³ç7 ô¾Êÿžq¡t1G¦ìæ"–b™úùØ8Ödu×5k¨âéŸg¬®Õ µ4œ9B{ŸTŸY|IÙ!fe;úHÏ øž¦v;u™ Mê¢Â~x“Wš¦8t2[!Ju}©…øißÕ¤ƒ"½þv‘h'½L"Ó@(ÔWØFßÎnQ å—(òîÃþvS6õ…÷·MQ”3•V®.ÿµqvø¦BÞEªtCµ‡}åòùé¼Ò±º!ø-:ÞwåéëuÜùµ.‰š<ßwò¦•ˆîJƒòã|< $®Œ‹m5ã;½Ïûì^hAø¿°9Ëa5 #!ÔÜYü5J¤<¿ úV]¯/)0ƒÀ—töÜ5ç^J›øÑ‰é<ÚÉ~ò¢z_çFêçºÍ_•ÞeU:Éó•¬a²×Í¿ÙË«œZ¢Ï.‚]¼¼Oô9ïñì‹~ßüö³üüžð×±¬)wÈ7þ åMŠóé…¥VxœUKoE Í@ìC@±ò°ÊIDf†}ÙŽ@¬e ?&Æ`9ÖzAQ2ééõ4žYõôú„?!j!œ¹ò¸páÀà ?€\¹À…k ªgÖÞ äÂe·gºê«¯¿úºæÑðoo²îYW·¸ZÙYk‚äáÉË/\8{á,®ƒˆ'\ñZXÙ‡ÙÚìÛ?Þ{òÒ©QŒþòåo>À‡4«Å—m;WL‰Dª%Eª³Ònù>x0‘rl»îÙàA´üÕ`ÍßôÛ>T« ëVM=9Ù‹:ý¦ÕωKP°0äy=®â,ÂLk5é‡6‹2ô¶›°Ý¼iµ‚Õ[­›-ÝbS¤»p3*ædžI$Óå’§ˆ«ß½Ô¶°”ÈPe­¼Z2…”^üaý0Ì„ cÇpá3Û YΡѴ- ‹8Â"xÎ(Ós‘]u)bй°¸ C­Ý ùr‘î³d¡L5™K ªKÐCn"%W™‚ÓòÛÁÎvÃ_ÝXÞt)§Z¥ Z‘܃«Ž‹­*éõW¦OüŒþ~~fø¼âcUOH>]ú¤òóê …¬5YÊ[…YwT%×§'§æ‘ù³")¨#9ÛÃEÄ»l¨¦]°lêß&ÞÔO&æ^„Ï¡¥¯M^›&¿´N ³fH˜¶’ÒúÏ‹sç•ä¼iÑ/Y‚ÎÖÄ#…™ŒôÍÚŒþèÒ{Õg¸SÛÓèçÚØc{<®·.Dunˆ42• °0v rÎdC_¤¹Ùí³]^¯nÆà¨×xà¨AØ)Žá{lÝÚÜÔSCÛÂRcÇ*Š€1bñêU@±ŽÛQÀG g]B+à ÐÎósxÕ0ióCê…iE‘4³¦»·VWých«×ϲDÿ<=©³óÖk# ”þÀÖ÷/Né/®Lèo¯\>cn|Ã\ÜGÕiÛèDC?^¼vÎÔmZæ²”îÞ7¥ß¯­mœ>‘{yÈ~DDthúÐ2eŽضàXdVJ ”W<•§([ 4…R–”90É!åû\œhh€J1 ¦äœLµË$§WÖë(™RÈ9 îõhœuS!^‡ÓÜ*lŠ€mB„‹8àIÔtŽÌîž(/’20if¦oÂDÏdµcœ’¸‰ÆÈˆt¥€`ûL$¬“pèšiˆµËAëcŠsüÞxôOsï|üß"[þíöÆÖšÛ‰]ª&úÿýÌü=÷xŠ›&<õµ(çÉ‚ýÀþâ&Ÿ^²ÃxœµVmoÛ6þ,ÿŠkV´v ø%é€Ö]È2ãs$O’“æ“+Kt¬E ‘Nk ýﻣäØIZl°¢P(ÞÝsÏ=w&Õ9¶^{BÂaæzv't;± ×îÁi·û¾Óëâèvû§½þ»3øSŠòØ·5¼¶Ž;αõãà³*ºû¡ÓëAï´ÿëû~·{MÁ}Ò€cpåz[fwK ͤ½º6=ÏÌózXÑR@ îD¡Èh|Ùƒ(U¦·´ãÆy¶e‘Åm'ÏÁà)(…åƒHÛˆB©¢e¦ ‘©ü›Š1RX”rJ.ô׸h-t™Í7-ZÂ@”÷"[˜o à*»àçJ;È@¤™ª"2Y@\¤°Qˆ_ ä¦L„Ù™gE\n)®” _3½Yš¿r£ e%Ól‘%1aØ@<Ö¢\ešX¬Kù¥DgkSüBæ¹üšwÄ6Í(H Å­„îÓº×~FÍHWs2¬6J£B:F®„Ïå™ênþ+¤Îa£J–#ÁìÓšòžr¤Ig+Q’Fpú’&æÑ­!tÁ#Ò]`>&Nqw:v˜Lƒ‰4ªkÈCwìð+6Ä“‚{˜Ø5–á¥3?©‘ž”9`HÑŒ –ɃeyÀ܈êÙ¯\T Ùm'Ìå´`Ÿ–â·v ²?¦è„FB:W΋kþƒ,Øw°+"ŒB„ÓAñh1ùþ0$(„YpÍ]~„±Ŧ!³1Iä˜ôˆ‚r¡׃iÈpÜ‹XL'÷½]ú7¨ ’u0zhDö=S3Šä·„Kz˜ØpsÉp? Mji¢znDhž˜õŒŠÆUwY}ºá!kaËxH¼Ê|ãÜš§¦|jr«–Ãk›–¿gx͉|팃òzhü B §îe­>ýðRú%+’|ƒÇãoÅ<‘«u¬ÛËóìv’T,Ù³Yà†|Ø<ú7éQëãa^µU½]‹ |¿+¼Ìž±eYȧ[J§ÈìÅ^&ŸÁ=’Ο8Íu)D{yD4i4› ¢ÙˆEpr#¡!Ƴ:‘åãÙ# Š¨Ï‘I\â1‡g¨¢{ÈJçë¾µ–Y¡éŒ”'‰PŠ®©¥LÉá^lûô ã"+Ì^ë¸ož´‹wÔ¦,h‘Çw}+Ù”%žÝù6•71¹UYÍpœýÀZb›]rº Ì{õ»„¬:ª);Þ-xolŠ´šä‹}­úØÄ£ïšáޱv¯c¤]­ˆ¬ ›ÑT­Æ_ kŒÁ±þذØdÇä!¾Å‰¶Aá´QØ}KÃ'@ð“s#Tç´ÙÁSY*º×¶°ŽïðøÏŠý8)i;‰ó\µ‰­……4õÉ9ò­]^}o:·IX«µ”ùl½ÑµÏ ‹8ô¶¡‹#hYO*Üþ^1¡Öï•O¥PÅ[ü‰ï…ágjÞ“©$0ÙÍŒ"ãÞµC€VÕPh>v©U§¡È¦@_#½q™,›¨“‘ù­Õ‚Oum?C"”W•óOË'ç¤è®òCœz8vœªí8¡#Â@¢°{VÍSÁ—Õ“p ‹.²jÐpZKóé)ë·ZÐúWŸ†æ£'3{ÂDbé PSÏ …ˆ·ÉXk}1ãaÈ"â5˜ ³±ïþÞjý«ÂE®ÄËÆ×>hßéR‰€ße·ÉxœµZ{sÛHrÿ›ücïÅ&µDÉÞË®d;Å$¡–"´­¤R<)œ@€€’uw¾Ïž_÷ÌàAR»¹¤â*Kƒžžžîžž~NyÏ\ˆy>K6A|ââìä½8ït~9íütÚù£8ûãÅOÿzñîLü9 Ò•0¿mÄG§ÍÓ£ÆáÕç¼üçSP8;gç?ý|ÑéT–Ój,?nŠ#ÑO6Ïi¸ºÏEËo‹³_~éôóÿ|Œ†{ˆI° â<ÉRäøœÆácfaþL¾…Ë$CïDˆn ¦—‰4È‚ô1Xœ€ måÞ‡™ð“E ð{¤ ±Ë4Y‹,YæO^`6ÎÓp¾Í1“'¢¤A<‹ù3¸ aGYk’“`frE˜Ä‹b›~ ’ÛÔ2c/}`qâ)ÌïE’òïd›•u²—¡ï C› ]‡9q±I“ÇpAìÜ{9 ¿L¢(y ãq»iQFThÝ:È/h|v²Ã«NñÄ*Xo³Ê=ðJT½yòHSê4ˆþÅIú ¨,="SnËâÕy¦~ä…ë %‰ó}F°aE#šȹ؂¹ÿ^„”RQZ$þv {òô¡â<̧bíå0 /ÊJÅóáª,Ü»1 B^Gó±·Xhœ”Ó| až•†–¤™âjíÁβ¶½ ^`. S+ë$„ÔQ¾c¼¬mÁŠ–2.‘mŸL KC²¹”Œ*–æ•eaiÈîåǾr¿t'¦Àx<±?[s zw˜4Åļ6G®#º£èÛ#wbõ¦®=qÄŸþÔu°àí[š"RÝÑ0¿Ž'¦ã{"¬ÛñОtG®e:†°Fýát`® *bd»bhÝZ.Ð\Û ýˆÐþJa_‰[sÒ¿Ág·g -÷Žº²Ümw…ýºbܸV:ìNÄx:ÛS#¹–Óv­[sOa°±0?C,áÜt‡Ãšœ T³g‚ÅnoÈ´xˆ9°&fß%yÊQZwCC8c³oÑÀüjB”îäÎPdóß§@Â$Qto»×®õ;jÁ‘ô§ó–†"œiÏq-wêšâÚ¶‘yÇœ|¶ú¦s)†¶Ã›:¦MÜ.o*P¦1îM‹g\s2™Ž]˵‰Ðýš³]¬°’íË %Ù“;¢Kúà30Ä—ð 锵Ö%]8Ð^ß%jLì }ºaÅȼZÐzߤY›}±³#³B°äÎ_ºw,ã”ŧÃorX1^ƒTXW¢;øló †àXÊhì+¢äLû7Jût”~c?ÚÂ=~ˆç~²ÞxùÉý§ÐS,3škÎf“¾c Z¯ÿ·±ôuû’¢![üz¥g‚¯˜çi‡èûA–‘w¿Oä6Åû“÷Ø«ŒlðNA®bgˆ'޾n6ŠàU<ò)I,cˆòP()v?*&Œ“,_!ŠŠ…—{DDdÏY¬¨LûEtÄ]âÐÖ¸'b>Ý'ÄB/èdYÍ@AâÑžþ±Ói–KýWÀ^†˜¾s(AšÆI´ôã<ªƒ¢5«ÃHcÞ^–/Âd…ó]XŠS‡mcDˆÅ ƒÿ÷ÙŽ4Åä¢Ný5ÎÉýkB^ÂÔÄÀìM¯›?l¡ÁeãÖë?Ìæø ã 4ÎÎnþ5‡Ëf“´ÏBãóçYi¥šøØKC 3JrKЍ lpèm¦pât;Âøx¬¤´%ÈËÛ­˜­Àû6ôÙ9ÇĤŠe,H -m–ßX¦f±¡¶ÿ¢Ó–[7b×é(UÈÛð2G˜ÒW“ ’÷¡ø|yßÑòoI¥­Kîò£è“ÇâèÅö?ÿ² ód›‰ñ`||v&•_SÅ«¢g]ÏLÝ,_TgæºCSM’ÂvÌ;vQ'ûˆÖ|İÇu/±çOdø€oÎJZäÓ‹”aí}OŠR=a¹uJZCXƽo!袾³ùñ'(j¹ùã³Ëê€Ý³%yé^Å’H&©dK®,}äIqNrFO ¦*`0FURÀqJ —ÇW€SÍWSkÁ“ËŸ-Š›; ô~_šPU+´Nù÷šp¯vm‘h^ÍàÂH«½ÙÈ4Η¶hÊŸ7l ½kúR9?Aú‹©\äš•Áò‡žYQiÈEõk…áË…†­‚\1ÔÐͶ€b¨¡Yð Ű€>Ç~Ƹš=°çâxËi;Ùv³‰Â`¡ºC!% •,PÕ:0ê'e•ºÊÎ L’rK dµlŠJOaFYXþ–’ØE˜=Ë%SÒFq8]“0Cþáߤ¢ª=ëöû·öÀ”Ó>ÕPöl2°Gû òb•ƒ“Ð6ûÊ9Òè‡ËêŠ/“‹C_&š”rÝ{¡‰¼h£¡üh«rÅ8ïT¹f%Ï”Öz|V rl¬RV*¬ "†`þ¯ fý¡m~5û/,¯ødf䀊`ÚRÔýøºÏ='/²ZQ«5º5oÛÊÏþó"”TÕjJ¤+«ßdóöέ&´l~’Árq•Û¥È1y ࢺ~]ñƒ”˜“·ø bÜ®öc¾þ;è%â’nz-a›`3]Í£ròŽ©’×õ:§¡œkÊþd¢›O¨ÇTƸô2F%yãâŽÏ£RŸÖr›MRdF=Õ8ÔmPã I¨'Wæþr¹j`²µû”&¸­” é )\‚Fð …7w|U£Âà‹Ndv?—Ý]()å¢Qô DñgJfý(ðdìÕT@!XO5×'ko… &Âþô¶{mõÛò2÷‡“=/Üh†ÿ‚ŸÆÄíìÝùŒ>5ù}0÷““x‚“‰}ðnj§Ÿ@æzQ;‹ª˜¯ªbR ]pRL}6'7w-QS:”‰¯ÿg™øú·3ñ·,ê§ûÙä‹rµLÄÔ65ßQÕŠº°F™%˜uÊpÕ¾ŠN×ïY#W‘¬OÞ2gëÔ–3¸¡är™%Pý2R•*SJ–K*¤H¢Ã'Ì:;×âJ÷4´Ðµ%åAù¹Z§á{KžâÞê}”"É?•âÎ /¶ˆç>·’Š·°JýñªR¹VêÖêõ²u8 ªÞáswh öϯ³:ÈlÖĽÓáCå‡Jœ¹¶™¦æ¾ðq|À—E•ìaåá&*Þ‡ +¨æõ¥{äd¾òY*Z[}uúGdžÿø-|¥éÝ]>uîl¿Û¿1wi<€£$î{‘¿¨€(ë]’‹{:LA '{G”טUm›â´ ªd|nÑ®&ÿ^–$pæ(’¨…,;ˆ¹€‡Æó§DÞ_–!®MÌt-q“¡˜f|IBÆÜB¶‘Ëæwý5šØ¶K¯PêXå{R¯‹^yª‡_Žò‹ÍxÇ)Üà³w¦ý¾é8ü`S>Œ5kof9?³P^#ލÆ2ÄMWÞN6«¢gD”)² ¯ŠÞÏZ¶~àEHAeCUâm¶U<¹G‡U¥µSáUév“'ùJw[6~©ŸaÿJ1Ÿ,TfU¥&­´´9tËMWx{YëwúME‡ëÿN¨$ãxFñjƒ6;þD'‚-ùD4( Aᣟqð-çÏjž(§N¸‡XÄŠbf»ÙðL-}Qsº¡<ž±.»~êk~‘8}ùÌoǶ=œé!DÚsñ°•|¯>7‹·^~3 WঋŸ†ÀÍËǾ(ˆÕ[÷ûä‹e?æÊÔkõ¸ëÞÌí«iþ˧<ýO þ/ òSEm„04G4¯±APÜ ‚“‘`zm 䡇˜Ú®ÂE‹C‚Ü¿xiäŠ[Ó¨ÌâÂaÜzíÞŽ¡þËä¡‚(Þ¤iÙ¢gzC†2 Ò6ÄëÉNçùÉWþ÷ÚŠè¿éÁ…˜±| ­½5‘þô±F§bŸÔIn4•„Æù¹vñ?ˆB1±Iíe-Ǻ†!|PÛ‰NæM¢peGÚbëú ÚM¹[ö%’Þ6ŽÛÈéË*{b/uäG9̰o»Î¯ŠC(?­„l±K¯[ÚÎ#½mwã¢n;}üŒñÑ†Ž‡Zño³Îyç]ç=9UÊŸ œ6Áï7´T·_6,2÷HÏ.*.¡|/!yþ}u¾þjBÍ貫ªq:RФQoõ~¯ÞÍY¨òq]>‚ךî*‡p“ŒZÕÏ2Ù„1?¢ú)ùï$ÊÄBy ‰ò»A¢Š­ƒEBqU¾ëdO7Ë‹?öñùáüÞ{¤¤‰ûí¨!ü4ÜäúÕ…ø:”¤1[E1²Í‘[V°Èzp¯„ÿïÍÿ½žWÿá¢Dxœ›9-r‚”¬©‚‘¥¾©¾¹‚•‘±•‰©BqrFn~^ÕFSCvü*67²¿PP(H,Ɉp ñˆ÷uŒˆµæRNÍ)NåâLÎH,ËmîÓàdÛœ }ä£#xœ›y7b‚”ˆ±‚‘¥¾‘¾%ielje´QÏ‚«Äæ*ö› ¢œÉ‰E ‰%ÑŽ!ñ¾Ž±Ö›i|eTäMxœ»q8b‚”¨‘‚‘…¾¡¾‘…‚¡¹•©¹•±ÙF}svì2›«Ùß+L®ÕÐܼVc3[ÙOé€ xœ»±+b‚”¨¡‚‘…¾¡)XZ™oÔ7gÇ.³¹šýãæ<Î?r“k547¯ÕØÀ ³¢,¿ùxœµWksÚÖý,ÿŠ=i§®lã¤÷Nc×¹#@¶5ƒWvü‰ tÕBÒH§¤Í¿kŸ#ñpœG“¦Ó‰ç±ö{í­ã–ñã@ÈŽß;¥‰g¢˜%ÙÛ£©ù@'G'ô¢Ýþåø¤ÿ©Ý>}qrúóKú=Åœì?rúÑh·ŒO üGC´_ŸœÐÉ‹ÓÿrÚnï@0 ¨EÝ,_ñ|!©1mÒÉ«Wm“ÿ}©þý7Œ`!Ès‘Ê’²Iü¥1D–±\óN7LâYV¤qxDd% )¼’ QŠâADG@aQÁ".išE‚ð70"šÙ’Êl&߆…Ài*‹x²’8‘uDq/±¦Éš®ã{AnRfi é‰(.õ‹8K)L#Z•ÀO¹*¦BíLâ4,Ö—¥Ioc¹ ¬P³•d”eųx2†I¬G.Še,Y‹¼ÈâˆÕY„R?Ëø:Nç¬mó£’QøÝRÈS^Ÿ=RM¹®ÒI¹`¹*%<$CèʨáQÄQ Ái&ã©0q.K€Ç0[±Ê¼} tš„ñRì#zñ¡"¸ã‘ZØ­ Ü÷Ñ…´•R”MWKäSXíñÈp^Ð2”HŒ0)·ŽWcà]3”q/h bõŽÏÓp)žÈÐ4Û«0IJÜ&ZV”•VËy&8Tî‰4™àT*ËL Ò>’’Wù£Îà «J.*s1åÔÂÓ˜s®à¤Juz•e¼MäàÊñÉw/‚[˳ ë¡çÞ8=»G;ÚäÙ—ö ðÉô¨ëÏéŒ×óé·ß,ž?ç#†²wd¿z¶ï“ë‘s=ì;À°g ÇöMrÝþ¨ç .M Ü€úεàZàš,>|Iî]Û^÷ ?­ŽÓw‚;¥Ð… XÜäY4´¼ÀéŽú–GÑ7t}…Ævõ¿Û·œk»¦pLö Ì"ÿÊê÷÷ìÒž™*Z¾ÂRr`fÏñìnÀölW]x ÚõMò‡v×á…ýƆ)–wgV°¾ý¿.áÑzÖµu ãŸq BÒyö5+ Gø£Ž8Á(°éÒu{>CÞ·½§kûgÔw}屑o›XJh¦è†Ü-"Œ'<&ÔÍo8fâØh²Ã8„k¥P]´êõû*¿yóFñ#\•ÎA½NÀ:Ô½‚[Q8]hL4Ødªù–yˆPe4 +£• ¼ÇoÌ^¤Ç®˜MŸ…q‘¬Ñè~Gì&«9D×T„’eU‡:ëÆc÷æ¢?¾´:<¤K!Ùuimó1–bY3äªGŠ’ç CžœÉ¼ÌOØi=Ÿãj)SDƒä;XÁkѯmeð´©hèßç4¡ßÿ©ˆYqÚàÛ§¨?ý«òú;eζ~Åz… :56WW+éÚxãýë`p£‘"‡ E¶škþÚáà ç˜jâe¶SÃ&g6JKÕ^– …?g;¾@q ÊA=ÄWDÁŽ ÓÍûçà1‘Îåâˆ_ÃEœPO¾FÊ9ztH€g÷â:{  ¾·­ ¶S‰ý¸ÙÓÙdp7“m?;£|ÇÙœ1* sZ¾ÖªãÂ^m,°¿Ì³L—„ÖŠsb¶›ÍÏzûé×ΠÁ©ÊJª@Ô œoÓ·¡+ª¹€R‹¹Lô¥E¾ÚÕbÁJ(!JYöðœïo²Õ˜ cîU¤÷Ô«Êoß?b²áH1™Ï}ç[¸Œ¯žLÔÈÕÅá,·µß ¿Ž©Ø![¦Â7 Ò•¥¶¢‰4+wÍwIɤ·¸¥b¶-K¥‡¦ªÒ±¸$C)ª¾Ì}Ne{5h¯Õ³*% Cû˜›7£h?Ôíx§AWQ5·ïW%ª7êdæ[X‡¯Y÷³<µÅÒ>%AÑËní=Qs¬…I•ÌÅ£zaT*Þ6ÀŸ/+3T/Çïu M9ëÒÎ ñ Öf¯.Í’p^ª}Ÿ}÷¶:@Ö# êñ*ÏÕ²ý‰ŠVåÛ¬ëú3EÍe¯³©©ê»²Ÿ=¢½¡òȘǂž¤¾nÒõÐuûc|éwJ§÷$’Rð›Ö>ÊG(C‹þÕ<ß ³ËLÏîÛøÇôÔ`¸G2U’ÿ#ƒÒ×ñ‰žV?~¾t¨yš)ösããcÍ£{_1Ü|û@ówûÞÓõˆ±¨—¥Ïe5þëÈêÏþfØû`(·ÓѦÚùNÐiù‰h|$÷ªçÃá¦úR˜bšª§™r‹pCÆ©PS¿kX½£ï9˜€u *Q†î#lbDV)q±™ùxŒ¬î•ã?2¹|ª¢ÿ<`¼¸íxœÍZmsÚÈ–þ ¿¢ãܱÁ‘mbçN͘qæbÀXu xÄNílq…X!±’°Ç{~û>çt·^ÇžšºU;™ÑÝçtŸ÷ç´|´_ú[ÏMέ֩ˆÝdNÝCǸïùŸ8®ÕNŽðÿÉ{Qûûiíä´VóÈÑþ})þVÚ?*—öËb_4ÃåCäÍoQqªâýÏ?ýlàóçþü€¥á­+îÜ ’X„3‘àç(ðîÜ(ö’iÚ¾7 £À³…hø¾`~±ˆÜØîÜé!¸ÐVÃ[/Ž*ð=u#ð˜ŠY.DÎ’{;r1$‘7Y%˜IBqîF_]ß}“bвï\qF ;v"š‘ý€“Å®9·†0Gï4p§^,y!ÖS±Š±m€V‘ãòÈÄ ìèAà䋨÷^r+ˆ¿ÃUB\ Uoæ96ñ0oéF /¡Ã-£ðΛÒ)oqÒÉ,ôýðÞ æ$ÄÔ#¢˜¸ÝÂMNéùýáÚÑX£êL¬™Å*N ¸ÄÆY‰«= ïhJ‰˜à¿ L<Ç5°šôÁØdÛ²xÅ3aSÇ·½…‘ŽÄñæA°aN#ú sºÂáþ=gRJÅi:«ÜÌÖF;‚=BÌGba'ðÛ3ųÁˆq^ îä½ÐžÂG/¦-3zÚ ipæÚÉ NJf'÷`ç†ÚÕ±XØdéÃÝŠ’ØÎ× ¼÷ÝéÜ%¾§2\<>%Ô–@>Ç_MÝŒ'üþÎõÃ%˜Y&+Îì ÛƒÁèjhö{UbtÙ¿†fpب[¬ä~e†’úƒ/Ä—ôÁ60ÄõeãÒ)k­Aº° ½æ¸åVbWès˜VôÚ® ­7Û4Û'FצծÂd¦E L¹óuã Ë8bñÉX8›|Ì9¯Á&æ…h´>›txµŽ`™ÊiúÄÉ5/•ö)P—ßz³©;—Ïí1¹0;ãK ÊL"vµ3o~x»S~‹ðôfEë‹5n¶ÚVžæ—ø!>r°&>¼ý˜'CϼÀVºæysl5›VUìîŠ7zØ÷‚¤Ê kå˜ò²#œ[;±ãÄÞô?ÿKœ‰TÞVSRúéðXTtÖªŠ“£ã¿ýüa§Ž]ýØ-ǃ¦e¶*;½ìTëZù%ŽÈ¼JN•(J‚¯ªuÇéoi;.«¯ žäaéJõ†IjÍ Û1`MR\êyqÈ¢ \cèÍÛ_K¦¾7)Ž­”´©Ú–mkµ‡Ÿú­ö¸Õ>uŠÔ^¸fÔ€ Ʀ5¼–ßJSêßüýyx³±~Ü2†…ÀÍhrc*èU!ÿ“ C›ŒÆíîÅxœ1™K—Ôw6¡,_Šõ{ˆx<¾wí¯c”B;.çTC3®§c=ëé‚«”õþ%¨tÜm÷J?–Jp/\±}ñ–ŠãÄKœÅTVP G\بø9Óõd >0‹MÒ˜híéëj!$_!Eò­\¢Ø*Ṟ=ã™Ä'%¬‹ëå'qn›ŸZõLü:7»ƒRí÷Úûâ(ŽI£ÇÅÑXX4þ¡8Þ×ã?ÇGjü}­¬Ó€±cñæLôFÝn•&é„g¢Rd\Uû+^X ŽPRæŒÁZ½NåÝ;œ¾€:·$ñÁG˜¦J†8Åt} g V†`æ6O¹Ÿ0¥9AåÀǦ¡ˆo½§IO›Óò…Ú€ÐàŒ–OÃ`/á†DR  QCmû’xbþ › ?”9u:>UÚu¾ÆªÍMH'èˆòŸŽ Þ{«½S<—´ê*Zµ»T#×7£ªøøQüX§EóÎLŽd"Åaþ‡s8ù‡°ÈaA¿^–$§X„2ŸÚòKtÖ“vGv7qÆ?¨Lm®FV©Š_…æ.NµK–žãÏ™¯Êó©ï힉?*¹Ý/¿üÄ$˜ŽÃê;¼:/ò:y5¯þs¼”6Ø<•ŸcÅJùöçTðx¦bn]þ?)~ŽÏÉkùl|¤­³`±'ˆ›¯9¯{'½.G\$Z_P\Ozþ>Á$ ã‡Ê¡+ð¹ 4hø¾Yò»3¸âo´U)Ñ«Ïô[÷@­³W~rº½n‚®B黊Î;Hf••çO¨}ÅÁGAß¿;*å§©:+¨à *V%›#µ>å w¾Øê&«ÂêH)¢h´Z°cÅ6ÄÄŽ!˜‘¿±=K¿•µÑÅÇ3º~ÀS57YÒ§¡b“Mà—”þîLä¡Y=—H2”Dæ*±}çbÄ@Úü_7œ)4QEr•¬ªu¦£ãhZU¥Ôyh¶4‹\W³ªf»¥Z“e-*N,s=¼“Bˆ/^&Ò¥3©žu¤…qœ2Ð[Ò³\.1[……¯ØU|LèáiU>¡Ây('•£}º-⣵T«æô-ycÐ3<$·Ff‹<ÚêÈo*#껣¾û` !EY!ôÊ2ÅÜ\î/YP÷FwD(¼·¡BÄa†Øw± ”ƒJ¹/•‚ÀHx‘dçyX( ;FHñFîÿ¬l?\¢ôJAx}¢7{s‡zžŠIC9 E$yÈ›}bÍê˜#¸AØÓ%ˆÆ_ÝÍÑÞtÑÊ?²«°X‚¾3¦‘ësÞ#› ß[¦ˆƒÉ=5Å÷ Ù‹¹çÅ©€#,ô‡@#4¸ ÁwâKlÉLˆÞAÐíkL¨VÞ…ÂÔtŒ¶Þ%¤Éª¸€ð -#àS‡Á邹 £™¸±†7|¼#Ö9¡K*»Rí”.dÂopqH¬ŠevÆçÝ~óŸ†ØÕæÙUöÉ(V¼–õp&äZ•¦ÕÐÊ€ÛùSÞiXÿÌŒIa’æ „5ZÒ–%²ç«TdSy.KT«i^Øt€\ðJÏKCvK¼fîHmÉ$ýÚ‚`µ˜08 À\ÖFÔéZšŽyã¡“ÀfSoï`>p/XÃc”ØL4 I¹]³@©nø]RN3Y,mSávþý´Íňï„óňT1R@BŒ’dù1¤¨ÅІZÀàd Âloè‹íü¹; ùfr·é•*z’Cß“çÊœnꋹùWìÙ˜%í?½å&{Z{—€†0ߘ†™CÛÑ\™§Ðö©ÖMÍË&QàQ»êð¾­]9ö.Ü8«Ê,Û'¶œM€$R ©\ƒ*¯üyº ²øš#á 2@]ÀF·;¼ôGKŸÜ¥Tî¾)Ÿös§>“?D% Ö’Ø•J¡•iüçy.ç“øÆ.ª2j¤’^ÄaOU$,¡KÕì®ǨUÅ£Ìt›[ŒJ“.î¼´˜®Åôâ~º¸žF+@õ(p¤> z¸yäÜùóû?æøo°V &EgŠ¡X•Ñ«Å=ÏÒ U¢ácIž#ivÏœ}g—Ç<­Î7O¹Xã󽌵—^¬•³àEx®ÚK${¡OIWrYK˜;{?8{–Ñõãqö®"ËÒ4+#»5D¦…_ÅŽ ‡ÓøÄÎUþý¯Å÷ +¡^‰ïVJ'¢µüôÂêNººóŠÕýtu?[ÍÔo8ó/3_xw©“4½þ£gÛIÔŸ'Æ®³¢k%bG6¸M"L…„£_8Òm;dÑ}òI:Ž”pËKð¡ô÷¡„ñ˜Ù\ñ s|èï̼`åЛ ‡wÛ‰+Iéh+Ÿÿ rbO|þó³2¿ã»ð€É*‘—YtÃuFêïþÜÜ.‘ï1ó޼VݶysvœÕ(`@Éðîd÷GoEÍòúÜÍs3*¡°´ÞK3ܲ—>Æ_ÜëF¡Ó›Í}¨IT`bþó•B÷¤¯ÔYÖ i†) …ª¶Q…¹—†Õ¼Õ ¶ð~÷Þy6xß<Ãùæ5œo¶ò-¾9z“CD1ðeX†áQ fxœ’ÁNÛ@†EÛ‹]õZõÖ) êXIlC+¡H¸(R€È HH­,'Ç.‰×Zo€¨B~†ªÂ½ïÐ[§;vHBRÕ(‡Ýÿ;ÿ?ßþùúëufèÊú ŠÃv݆®ð€Õ^ù ¬ª›¦¹mX¦üƒiÚ›–ýa ¾1äpnXWtC•ò'Ô[…ÜÜ1, ¬Mûã¶mš rR«Æ½¢‚5–Lx4h½X;;æ/woWVžÝ½zñûy÷†ã>Â^Üí±Qâ‹j¸¯®E˧F¯AJ5ÕóÜZ»Q×Vÿ7ÜjiWµx {é$5Ä$ÁôçHYËRÑXÞèýî{«]Á«áªŒ«SXÏ“^y ¯´Æ| sÀb!‡Q*ª²LŠ–Ïý ä©M‘Ù ÝIëÐVr¥`¹j*pQŒy\|í:ÏqÝS· ´lŸÕjN»=ý°õ±‚A€=‘X Ì1P¥!Ážî~Ž>(Š‹3ÓósPTcXZ\’’“™„ÃE“ßqhÉ#+ÍD¶l¹Áä÷œ‰›Ã¹ÂYâã4&¯å–æÉYœš¢™W¢9ù ·HFÃÉ3ÄÙ×EAKsr²Ädn19TaMkƒ7Ûòä² *‚}çîâëï⪠¥Ïµù¼0“ XX*"5ù–hcÞf±rFƼɇÅ5€äkñy0·lî’ˆàž|KWzò#åX„¨ƒÊ,N•á¿3î‚gxœûý,z‚””™‚‘±¾¥¾©‚‘‘•¡¥•±BVNbîFÓíìx¤7³sÌcœ¼šséæp®yÊPNÖê‚xœëŽþ5AJÊRÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐH!+'1w£Y ;éÍçØ‹˜ã7{pŸäR’¸ÔGåYœ?*6ï€ xœ{ý z‚”¨…‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙFý½l“ÿ±ÉNVb?‰]Å$k}-å̼äœÒ”T¥¼ÄÜÔâ‚ÄäT½ %-ýÍAŒL “çs®ÜìȵTÁ™Iê€vxœ{ý,z‚”¨‰‚‘±¾¥¾±‚¡±•¡¡•¡éFý=ìØe6q-à t¢å:ögó*nÎü±Q£ßïù÷÷8£dϘb&Â4h )~ŽBÿIĉŸ®©§ãþ4ŠCß©´‚X^±HDü$¼:J¡­ì¹Ÿ€yð¯'b”áÁ4ŽDÓôÙ‰ކiìOV)ޤ´Eü(±†ÉšÜúŒ ‰ÂL¤)9™ÓÎЎǰpR$†$[àÙa$8o÷¾áó:…8ÀÐ0Ú³ü4Ù-Š¥ÕÂAž âsO„Ž ¢ ª²ˆR£t‡¼ŒGÆ`%K‘ ’¥p‰Z¸Ô'ÎÅDªPÒ+Iü-‘íÝËèÙw-SlMã£ÞÕºÐ~ÀA LíZØ´]èÛÔÛ#Û0-øí·–… ¾ûކHTkðÚýÐÔ, ôÛa_G9(Øl l]³j :ýQW\×¥ÀÀ°¡¯ßê6N³íG‚öW‚у[ÍìÜàg«­÷uûêéö€¶ëá~-¶L[ïŒú-†#shX,ìêêV§ßÒoµ.F }€ƒöÍë¦ÕïìDI3ÛªØj÷YïƒfvuSëØd϶ÕAÔP»~ ¬¡ÖÑ©¡ÝkhJË|¨)±–öó'á Ië¶n[×h\åO`A—tF¦vK #Ö¨mÙº=²5¸6Œ®E¢P¼¥™õŽf]@ß°±‘¥Õp»ÅÛ£„ ‡±ÝY:§lÍ4GC[7UtcÜ!2¨l WwdcÀ6#H†ù@r öA în4ì7 SF­EXXˆ^Ç&i¹™¸+âi猅vÝ×õŽF£ ºÓ-­Š.Ó-š ËïZlãˆÍ'g¡n²™#o] zZÝ:)¯&#,]‘Æè‘$kÔ¹QèÓ9À¤ôºÁ Ãã‡pâF‹¥“ÖçWzÏ\OL+ÇfÇÒ»•73“¾©^ä÷MÖÉYº^ )|Ûï$˜Ìv´qFÅ®$õüý®ÀŸìöÅ w¶Øçg¿™¤±õù›r9¡˜é‚6¼†4sê$i¥m›š'5Ši”»m{ïÃS8!;Ï8ØŒÇm{¦østx®¥^Õêü< ŸÕg³YöÑÖ0[kÕ*®Ù€B>ìaÆ·oLct}êa@wVAÚÌ»E|lõ_õ ¡)ÁT¡àŒŽ2ÔÇj+ ¿Ã#êc¡Š1kéDD1E:êÃ*7žb­Ê"h (sÅ–HèÙdÉ~{x*ûHB’úxùI£ëë8S ,b±æò•#¢†EYuZÌîïïóÖø!¥˜:>–ÃÆ@÷“=eÒ€L…KÙ¤»e4@$ò( =§W‰ÿooYõq¥Ž`ô4 ¨CžŽâ‚CsLŽöœL09Z”AçMr}¯bç½†Ý¸ÛÆJµ²5³^†‹ÜóŠÞ¢µÊã•§È÷ªÛ½^q‰úJô©’–ýÒÚã,ËþeY„G2ãñ6Øb8ê:œÅâ,Ÿ¨Cu¹ ÛÛãR™£B2ÅÍÄ~ŠS’–³:@©Ž]ÌÙ±ü¢s±@©»²Ê@Z c}1(ö|u#'žnæÔ€‚=u‘«nà)<Ï}Lo8I Ж&g.‘áÄ8m‚wuÊÿ,EêL/%Y,+ÔQŒ—e6oSŸ?C…Ș•®Y”PŒç¢¥ ƒJKrûoƒË‡1$·ˆÓ+R‘"!*¨Àa 7ˆQ1¼ŸGò1PpÆî{"ÄJÜ vÊO£¡µ(=ˆ”F31~²A‘7`!{k(¿óº\Ñ«^?J*–·Zô’%“‚LlÙ[V•Þ2nª¼öB‘³WÛSŽ$ö…¬~¨¶›g]Þ/ª‚§þ\Úߊ%¢ʶÑ ­½*BVDGGG²1ˆR!ñ‘\ç7Œ,éZek®"x ùÌC™Þ‘«Cñ èÕ˜îÊç2×/ÂóÓ`RRü&í¡­^ œé†™hu…oUäÚN—aÿU¬^_rue±ø!nˆ0ZÍæGÑ‚Î8ë¿ÂÃŒEa"ÍWø•#ª¤ W‹ ’p¨x’{øT$V˜!«ÒÍ7’”…e'¿f>c壨Ï5KFQ"?$~™ ³˜Q +–4†Èu¨›’¢ð¦S¤&YÚ%ãüp‰&Ñ¢·p^ƒBW¦òVØ)0iOv1 8š!õörg”¢¨’û .ÿUÚ"|© àóžÐý²"/¤U.ðï•Éæã¬;sÌ^¬Èk.IHL«êJª*e™)¤1³ñ¯¤­ãýN×'d)PˆN¼Þ¿¾~zå"T¸þlgÊöÐBnNçpuÉØ£KÞ¾}!á¿”\·Å]Bñ)]Îhd8æK”ÞÍ•›œÿŠ”A§Ÿ«¥‚lzk½k™Ý‹ÜP€¹»ž…íI{3sy˜b×AÂw'Òq‹§?Õ±qX©v«óÓ‹5¾Zy ^Å·CÃ軺i?ÝÔ!lîÕ€È U¢HU¦¤è6Š ªæûn@Vy0‹{ãM’»5ºzO׺tÒ éRň‹òz/œbÎËnÙºe뫼 FXal'Î8î\Œç> Ý|Ñÿ7\”¿¡çO³wÀ¶=îµ,~ìÒÊ+ß}wó¸‚Ä£LÀ׈ÃOi“_Ùò~Û"rÿeø%ŒDS®¥ëjìQª¢âhAil­Bõ4—í,‚è1bAOvœÜóSjåÍ[eYØc ­U‰Ñwÿ?Ù5Kt’¤#œ CÛ(W„oòŽòádsÁ“‚wJˆDƒ +._wùˆcs{ ÙHD*|@Bì­>¤HÖ?!åÕHvzˆ,2n¾d¹ ¤ËòÊ~µ©W_ijCò]Deû%÷ï3L|ù¶ Y›”S©BÛ6ÿDL!ô<ž¯ã;'÷Kù¿þ µäxœÕWmsâFþ ¿¢³—ÚØÍÕ%øÖ)²­* œ$vןˆ@(+4”$ürWûßïéÉÈö&Î¥îªr.ˆ™ž§ßžénµjߎUÞ÷†=ZäóLérs²lÝP÷¤Ko;ÚÝþ©Óé½íö¾G¿h•®É¾ÛÑ·µ£v½}TûÕó3ÛÝ.ußöþúC¯Ó©ðy×éˆzwŸFëMNe“º?þØiñç;ùü5£ÈUk•äéåø9K¢•fQ~Ï+ƒ ŽV:M¢à„ÈŠc¼ŒR•©ôF…'@aUþ&Êh©CEøU ŒV©ÞR¦Wùm*ì&y-ö9vrM}•~V±º§Å=\EŸMâL'%¤«Â(3'"P„´Ï€ŸrŸ.•¬,¢$Hï &n³ÝFù†t*ßzŸ3ÊV‡Ñ*ZŒÑ"¶c§Òm”³»TßD!›³ rq~¥ãXßFÉš­ #>”1 ŸÛª¼ÇÏÝ“'¦Iè ›$Û}–#By[5XèÞ*²Á øKt-U Y <†9¨÷Û¥Ë8ˆ¶*åÑÛç†@a%"¥!ð3Üøÿ-d¼,B½ÜoÁ§ LZùÐØOiä Fg‡ÀK¸ê†8÷î„Æ*’s¼Ÿ[õ†&ú°-iˆòì@4f…UÛ¹9¯qt»5½§éÜLüÓÓ&»†¨4,owZÇóµÊùñÌÜîZlQ§Ù¤÷ïi<š¯¿¨! ¬¥ÖFõÔÌ3P”Òf¤AàRÄ”vÁñB$j5ƒ^„jvÍÈža¡#ŽáalòQ×íOMóTœ•³³÷Ô5öWÐu‡C >ê;8·GDÞ½çMsYq‚¨¤ $C2ðúÔ8ß)tÉ¡Íñ36£×%z‘u^îÖŠ¬²{jVÊhUÍÎù\kІ¯½,~)íb³ÎZ‹¨°_ß•ÈÇÇ&õæÔ“|pËf¢¿Á,F± VyL¼ê ˆÄ[ ®…:aòB0Ñîw1Ͻ*3Ç‘Ãô¦B¹_·Š6Á OÑÕ[["Pv Jšó¢{§1Ù,bõ01CT®ÞÃMF 3C\±Ñ¿ÝD`OÌ# F¬åfðXiôñ¬(âf$„ý‚XÓ¢”U¥:%ŠÌlÉG3ã{1Ê£”¦cS€‰¯xP„ ‡—ŸÍ<þ,˜,Âíú ŒàÍoÎçŽçÙ>“«?O†³©×¬òÉd$£×¯e‘gG@rEÇ…ý†o¬3þ`œaU¢Rö¼)˜[”æ ì«ê­Þ±'&03_4AºÖl‚pýp_:§_¿Ëläiý×q¬ËŽ¢÷Iˆ$÷ÙEÐKÒ¼©Èo ×©ŠŸ‰9ÍM‹yV¼üS¥š¤ÆNá♓†;BòD'Ç,V07TËTñ+ ÞTA8ehk:–˜ " â‚¿Bô ¯qh •y÷P/Z÷`CY¼LÄèbæzè%µä¥Ê\½²¯¯á Uv&ó‚_´¯,¸)Ä*T>ÔÍŸÌ×1œî9¨sž{5n*Ó™w)IÑy¤I6¤¿\Ø~_FÙ±5jl̦dÓfvûj›Ùp—Áæ—ú—Çà «,f“\DIÕ! V¹:Dé7'~ÜôjÕ–TYþø¨Â™yl•a ´þèV>æå嬶yyà‚!|‡Ê0‰’é¯ä›8È$c^ŠKÃäHQºE¼ÈSÑZë¿”åbĸá½ý“ºá†4KUöë¯ ÕâÙÄPÞ\I±z¸Ù|ãöyóUÕžû[|9Ô àI™xÒ€KÕ]¯ Ī­O¸È•ö%..Õÿ«ï ÿ 22^¤÷ÙŸ¦ƒþ^Bú Ámrùûó“ôß’•?âRhxœT_kÓPgˆÎ›âö°MDE$IÓv…½ØØB·ÆnÐ¥%Í@a²î¶)ë’˜ÞýÃâ7°äCø|óAðÁáƒo~ ϽI·Ù1°”&7ç÷ûs~ç¤?µïO‹*yaR¶Þ©—!¢ÝÉBvnmRz²„÷ΈºQ×+tµc(Jk“÷“/Û_s+÷îL¡ñ§ùÆ]E~›×¹‚¼¬$U TpËØp:FÍÚØ„|âÏ÷ëU*“z,€ÞÀßG( Â2$#!\6| p‹²£È•9.Î’×zÀ<*Îòr®gÈŸñUÍòºm¨LKJrXrÕ€úG‡ÐÁrZmL£H%‚œ"`°ªK¤]k ÏÃ;£Ý0[ †nD}†gkË´ ˬ5Aðö…lØ×§ Yl'ÄÓ4# ˜;Q£ãĤ] 2Z ¬ÆçÒ+ÒÐ ëñËϬ¦Q{£ÖEËW÷˜Ó=Š ¡Û§Hðô¸–y¸(2@~š!þ½ðx|„^Œ}piž%ÄÓxko™uã­ì)ºž GhöeK²§ñþ=s9!S"ççiÅ9ˆòU³ šªpÙ‹èØ=äX¹Dò§þ¬ÛN{§³)ãL¾H‡”DJü†}n+4:0Üg$Jîº# ºÑ4l£Ìåóÿ4ð;§šÊµÜq¸´²ƒÁív«Õtê[–ý.i‹NjN¤·ÌŽaÙB:—›õæVeí?”Åö—SBük…Œ¯Üœ\Q;:×ß綸,|½E”@-J¸e’îú$®|³zÜ x^I“ðiœxƒ!ådqÍoµe¦(iî4ÇÍt 8_örÁÐéS&'+wâ?™ˆ«È®vóræéÈÓ*0šš˜fä])îâûBO¯[IèpDë¦÷SÖ nùÄ––7¦2‹Bϧf¦¶Š—ÿÍ€,šÔ¥ é/òPi(ç(–Zxœm’ÍnÓ@…J‚2 $PÅ‚M/jQRcâØ¤Mch‘íLÒ‘¬™à¥BjÓÄ!–R»ŠĪ®«jG`ÇžW@¼o€´ªìæÞsÎwïhæ‡úù”×iÚ¼mÂÛ †QPªï@¯é`ÔõM­ÞÐôè†i¦Þ€4Š¿?…õ²¢¡ëðÓd6ü`䀆VoiúèMÓxfnÖa8™…I'KÊÅÙõ̥ƒ˜°DA'žG£AÆ‘ $Ö(¿è“ÿ:2 Ž?€s=ˆçÓAòíåâMy§ð¸E±X˜OÛ– ŒfHêÔÀ¢mp±}Á<žsŽŽ,„W*¹* »·ó®`*ˆ=,¿œEÝó½ãXþ.T+×X`Þ?<ƒK,ÛÅr§¸s/ïdŽ_ù˜ b¹òK±¹’w¹osA„/0tksù³¸½°*°çù½|À†\-™+—áYŽPgã!OJ͹`y„ÚÍbÙúðÚêËï¥íû‹¥çÄ&.}`Y¸õâ‹ò0 ¦áIu‘¸rVÞD2çstVÎæÑ(£?¥§´Sæ‚oxœëäëà› ¥a¤`d`hªoh¤od dZY™˜)då§¥+¸V(¨pjésékqNt´ÙXßÅ^o i»ÄxœíZmsÛÆþLýŠ«Û±)…¢$»&Rí¾@&4© _>1 xƒ%³ÿ{ŸÝ;¼‘”•¸Ét:ÓŒ#‚¸»½½Ý½gŸ½ãÉQã/C™uÝþ¹˜f%n­{qÖ~)^žž½:9ýîäô[qöòüÿ^‰t“$±°>­Ä_G''G½ƒÏþŽÑ§ßÒè³3ý·oÏOOÅO‰Loy4 Æèãq$zÉj“†·‹L4ƒCqöÝw§-úûŠÿþ=ÞB GÞÊ8S"™‹ _Çqx/SfzÓó£pž¤qè·…èD‘`yJ¤RÉô^ÎÚBSy‹P‰ ™IÏ™L!c&æi²*™g~*Ñgi8]ghÉÑ•éŒäFL7$àmx'Å(RIœ‹tä,TzDÓøñL¬äǹNÉo¦aì§—ª%Âl!’”?“uFR–É,œ‡O2Z‚ôXÉtf¤Å*Mîé³ð3^ü<‰¢ä!ŒoIÛYHƒI¡qK™ÓóY{K56щM°\« Ê|èJRýirOMÆ$ÿÅI²…0Yy$¦œ–—W× “‘.eJ6/wÁ„‹äŠ`³5”ûctz•FÒ, ÖKÄ“Ÿ;íþHÐžŠ¥Ÿ!0üH•†g‡‘àê2xq¯Úb(CGí±¿”{"4NÊfvC˜©2Ð’T­–>âLRüpìÉx†6I¡U–I&…¶Q¶¼l<‚,\B­d@¡…¡!Å\JAëðR*,Ù»¶]áŽ.½÷Çx¾qFïì¾ÕÝh´„c]YCÏa_ôFCϱ»coä¸âÇ;.¼xAM$ª3ü(¬7ŽåºbäûíÍÀ†v:C϶ܖ°‡½Á¸o¯ZRÄpä‰ýÖöÐ͵h>´;RŒ.Å[Ëé]ãk§klï#+ti{CšîóuÄMÇñìÞxÐqÄÍØ¹¹,ÖÕ·ÝÞ c¿µú@ {ˆ‰…õËîug0¨­’jËìZP±Ó°,žËìÛŽÕóh=åSVƒvƒ–po¬žMÖ Ké8[F¬ký0F'4’´~çmç ‹k>a¸¤7v¬·¤0 Ꮋ®g{cÏW£Qß%QïZÎ;»g¹b0rÙbc×ja¯ÃÓC Ì…fòǼ|rtÓ•àm±K…}):ýw6)o:#\ÛÍè’$¹ãÞµ±>í$¥?‡q­ÿˆ§A²\ùY{ñfÏÛ“`&çŠÚ&§çÚý泯̤Ï/ªóª:É6+©…—ï}…d¶¥LÓ8©¿RÙ ší¼ w»EátkŠbq³i­÷³i–JÙ^<;8P„™Ð4“ Ö9S•5»žcYâ¨E¨Xîw=úbÝ\Ñõ=·‡ÂDþì¾[vßßYÉl§³™I£`§ÊŸ×Àv`¸PD¼^­X® È1XŽ 6À-õ‰¥ªmZó§¥FXƒñ@dï$ˆ…S¹‡oJ¬½“""zú”äÂ(S‰l'uG𒄇 ý³$fFÆ!MþÚøjKJ ‘ô!(Fö6ѪœH¡jtY1µe˜H¦s?¹nüù/†Ælº:o¬îFÙÇ©ñ‰E2£XÔ9ý¡¤-V‰â¤KêQÚX§±¸÷£µdi~æŸóߦyäߪó†3”¹#§%œÉ¥í¸= :úsh}àOäw%Ó"9ZYÇò&€+Glãã¯vEÈ®Jå ›‰X~ÊØ3l:¬ó ·[3Zq+˜ BOóD«h‰õ„b‘•?<ø×AÃDbvqРX”ø¤·k…Xldâµ€¸ã7lÒØèå â/QŠ£`åß"£‡|~ÒëÁ§Ú¤_Ê7³ã7ÐÐtùÓk1‡“7–«$‰&«ufú,¡vµwKœbC45 Z^fM”bç:<ÖñVômdÖ"ƒQòé—!žÊ I1 6%Ë¡ðdA:Û;¡ jUÝÆ2 +RØ,ô¬SR9‡cD£qèæ¶‘Zs|Î×Q›FÂ` ”'Xˆ¦vY)ðÁžt0ß(¤ðí{9±]×òšÏµ™ô„-A9±‡¶w¨ÝÐN…ýª¸ó<möè9Éài*ý;zúŒÿáîKð ïÚ¯®YM£‡|©~ùMï ÒrgfA33GèÖôùìHþ:ÊHçH°ìá»y¿avd³ØE‡&&È&ùŒ¯«;KÛÁèÁN¤ƒl“«Žß¬nãŠð9”í0žÉO„Æ¥öx$NÊãÓ­Û§üEoµü•þvªeQ¼š€¥àIN¹ŠKL¥%™Á-TY\?„\7I=Sœh™m¶<ØÚÜz²б;éw'ƒQïûÃCòì¾=§mï6)šj{×éNlãÂöÚ4õyÅih w¥®÷¶¡|w‹í‡ôì¼A©€%À]¡Ô ½5çMEj@;ŒÞwƒz²é¿ºZ.ª(!çs‰Ê…» cõÄ^ÿcP¿d{XEfh…¬å€:ì߀*Š£œIa?ÉÄêÖ ¿üäÙE‰¬—a^ŽEj‰ˆr7jÅq¦*ÕT‚@‘°ŽXˆ0Vò†`Ô+ E¥"Êaâ/Ë„ Á5â#BXÄò/|Å"¦ÕÞ«Ù™ºåóA.zqü†cP<Í› ëÎ¥ø…ÖKOrËlÚ`c\Y^—+ÕagÐäÙtú¹x Ÿ ÈËdŒçµX\˜ïœ­ðâ´š=«IÙøxàïwqN'v\ÌWÿ÷ñîãšvÇâì7¸ü ŸoK®†@%UWyО| .Èø§svÇ|Û“·ŸÎÒE~ýº$j°ÿÄ”]«„µÕÃê?8™Vêùj2­§PgÄQpQM§pÊ'¤Óp¦w#…îÊGØˆÛ à`}*áz¤(‚û ~ëUě޴”Jž?E×ói-]V+¡éFoÛp)i8ö¢ iZbºÎX(,ƒ,Gmwqò'Ù‹¨Uu=ói|:Ê$ó?°úlmH z‘q™8ÃJèj@—ªKQI‘nIŠòéžCèìL¿¹8?Ó}’u4·I~nèSfÂ΀^RѼK?£ì¬½_#‹P$d{‚®_g9>¦1!ÅtÒZFÇ$éëÏèdÝŸcš¢òÓ– •Gýd®(h2ùÇ4-ªO£„jR•‡' )¢>Ó>*‡·T ~` ½NíX FûyÀóàøÍ.ÀÕü•áè¼ úZÄösYÑ? ë¡Z[—R[ð¾Ü „jtŒ6çÉ*•÷a²VÅöŒ_–Ü’-÷5üò·pKfB:! Dª™´`–l ¬awðjX5= îÁOgº6*¢Á¿ÐgÔ0-C«íEÒOõ`îH:·ª‡YeÄºD²Ò¹ì6Á4(MÍ΢„¢M»—Ï…óÍ7ÜTOC&ór"Dî$Ÿ2Þ=•‹I ".Á„×îï2ƒZŽþ}HF#_àiN²¶8ó#íø›zlþŽÎŸúÁÝËû]ërDèÇ•ŽÇŠ/'½S0Ÿê¶Þ6?©”­¨y„‘h»?g&ÊN·B‹â#´öÑ´Ï"?k9>F¯:s;ضjÕ¦º÷¯ávº¾Õ´n«è…‹Ó/ºÈ5w±|¸b’5¿’é½çJ€&Ñ[Î+õ3øJåÝC㼺N5À´È¦dFƒwÉHžZc6‚xù)T™ÚÏõj×>YíÞ‡3¥¦~´Lsÿ£W·u„RDb/õ#•ú1 ñ 6öé]y‘p?…¾«*æl”Ÿnï!#¼Í TQú÷‰Rá4ix 2.GÍ+ªFÕ‰ð¬^ ‰$&5"æñ*ÈYúwtL Ù¤‚á'0H¨yT³ª>¥[ |UC¡ÊägEe'Mb®ž|–C‹<¬‚Uá4åª<1&ùåa†öÂ^zÁÛ†ç¾b¼Ø9Žúã7OTÚǘ n|¢¸_³ò6£3ÁÌÞ’Å;4»/Îr£T¸ˆ$æÿ+þeôÙºätô£œd¢$qá,IÄÜOK€§8,C–# }Ÿ%e}N=+çßt;“wÕo¾TCƒËZº>s߸¥£Wdy}Oé Ñöu¼2Ö(jB>ulÒ¯[Òð6ŒýèP›ÃŒ£TK?9¢j¦°Z±~,—öOš&©•”©Ûú[qŒPAÙÊ‚9ÐéfO©”ÿE_cÐ-›þOJ|)ùpBäB¡=¹è±d´›ª=L0‡ œ*#·>,BÔ¥zóËUå˜Ñ½Ô.;Ž_]æ?BbÿRMË;'¹£j*3׉­êi+aKÑóÙýTÉl¶ÝÑãõ¾aD”’ ù:¢úŠn¤¥†Ÿ Gz‡_ðàARLRx Rô%&éå×!Rè5¯F&cY‹ÕÒu¹‹ ¼mÀ.-ÿb0>Æœ#N¿™7íÔcÍ­ÀE`nÁö¯;é¢{¿­›)C؉vÇ»ä×$ ðÒ0^/§25¼ Tͼæå0¹OÂÙAõ"²ä { Z_×CS:ÀM”þñ…pf›¢Âà+êú»©Ú©…ÏÒjWïs轿_åÆ½Ò¢/&´'ö‹¯ÜË›²aß…´9§È‹ˆý/u¼šQµ´}þP›Ü6`ns˜ºÝZçË—“/Þ“S°üÒì)xœ;q2b‚¤´¡‚‘…¾¡)XZ™+då§¥o4ÑgÇ'¿¹Ž½e3­û)“é==xœ•S]oÒPaéÁ:M4\Ìm/Ó¶£0.  Ã’M)Äv$èÍIÖ ¶‡©‘e¿Oü&û&þ½ò/è…×zúA³ íÍéÇó>ïûös÷ÓÖF^´=0—À%½ùÍXqžÛ¼Åï±G^åzÙs(ä Åy÷Q¬0ÿðüª»»_ ٛċõ‘ýÒ¦û’¸¿æÚÎýJH»àŒs§»å `lhuljÏ@UÁð?^}21ŸˆÅ’‡·RFBP„)8þÛ'É—Þk›öN¥ÁÈz2¼CBÏò¸Þ1̶QB‚`@’|8øóþáüO½><úÓwâï‰Ìæ¢óŠ?Ö¶÷ëûÛµMÓÿçü°x(_}ÿ磃o>N‡ù»u±-N“ô1 ç‹\4&MqøÃ-ü÷;ú÷O0¢6ZH1sçJ$3‘Ã×ë8¼“™ óG|rDá,Éâ0Ø¢E‚à)‘I%³;9Ý(¸Ôh*1I¦RÀß©ÌÆT̲d)T2ËïƒLÂÛ8ÏÂñ*‡7y"Ndv+#ù(Æà2¼•¢©$6 r*ž&±â©X)€ÈU6‘ôdÆAö(Å¥j‰û0_ˆ$£¿É*G(ËdÎÂI€0ZñHe¶ sÄ"Í’»pŠè,‚œ6?K¢(¹ã9b; q’B(8o)ó#ü|¸WBH§q",W* åàŠPƒqr‡¯ôi ø/Nòp"[0H<ã–¥íq‚E'Q.e†4¯×=ŠD`ŸÓ ÷ûà"x—Ò4™¬–ÀO9´}8ÞgbäÀA¤áéÀ°¿ ÚÜw{¢'Cš‡ïã`)+84NÜk:†0WŽÑ’Li¬–ð™Dþ!Þ“ñÞId@e™äR0òó= kXš¹„JåY ¦†Ès2UÌì¥Tèyô¾;ÃþùèC{ÐðùjÐÿ¹{Ö9'ŸàeG :ï:½ÑP´{gâ´ß º'×£þ`(þö·ö&¼z…¯T»÷It>^ :áèD÷òê¢ pð Ýu;ÖèöN/®Ïº½w-PD¯?ÝËî†ú-\­ÏýsqÙœ¾‡¯í“îEwô‰:ïŽz¸Ü9¬×WíÁ¨{z}ш«ëÁUHÐp_gÝáéE»{Ù9MÑíÁ¢ó3lK ß·/. ûH…mžtÅöÉÁ¢u`›gÝAçt„ûqŸNj€ÝEK ¯:§]üÐùØ­´ŸZì°ó×0^"´³öeûl®ñ YàHN¯KD1¼>Žº£ëQG¼ë÷φ À;ƒŸ»§á±¸è‰b×ÃN µiy€ä‚×ðùäzØ%Âu{£Î`p}5êö{Mô¾ÿ(ȶaö¹ß£=‘úƒOéAgÐÞwàùiJTk#-†@½ÓBóFª@Ï‘·YÑë¼»èÕO;ø¶€>t‡&Ywˆº¼ò‡ö'Úã5m pãó¶èHE÷\´Ï~î"òz00°«™¦ކקï5õQÀ(ý!Œ'Ñ Ôãñx’,Ó ß[¼­xº?™Ê™Âwõ››Áé°{ÖøöW[Óo›ÇþÊêQíç©dðîy Àœ•ð‰B0ªøLåÓ0Y{…ãò³ tdi »¿iqô·ã<“roñm½®PmN@¡æ5Üé8K’¼q2t:bxh¹þ6¨§á÷Ú6ÌKƒ¹Ü4ÍÿÆÓ‡›ß©ðy“;PƒTÛy-lj?Ò-Jçò¶O-jA=µí¯Ã?û: fr‚»«á‡›<Ƀ¨a‡ÀÍ€1AòÚ£.(‡Óa}«pƒ­ˆ’x^ÓˆZ–QùS’yÏÓÙƒ ÀÄ×ÿ†(œ¡¿†"sss2º‚^‰Ý]1Äñd܈=´-¹ 20u`Gú"µü¨†oñ£Jjxðhßh-|x+ð|ÆÈãøtäÁý[|>‹‚¹:ªtßý¥óiþ bô_‡‘Œj<\Àçy¾ …oÃOå‚‹$ìM$©Œ­—¯²˜ñtF7  ûƒ–À $@›I?À‘¼²™3ËÍ!©´…†<“³“‘؆=¾ãf!rF·UGKÍ\!ï–XÁËï^Ã× ›#ÊÍúÕa«¨œ{í ±=ÅÑ»¾¸8®ío‹4Ûþ(æ“ âVÛÔ>‡1‘ÓÌÆQÕHÄ0×k«w`·Spâ¾óF07‚ÿgøw²£)~¡0F³tüAá â}øoð ‘Ößi°§xü˜Kð{ã[Ü*àvp,ÖQBª0DZ€1YÐL*øR‡MÔk¨±-ÃÁ¬Dä÷ }ƒ5"r30î4$‘ÆÃÀ”¿Bj usDJFJò oé‡âH$¨èrçɸ”Ъy@ ´ˆ’ä–ãÜ=–@­‚;¶¶øÌ«ÐöYÇçà‡ ˜Åwÿy;€MÍ V²ìµÇ½ä^Ü#ÞÑ­/”lÞ ˜±É-ÜÂó¾þ®Ã&’c u νÌдJa$¶€Øà*€2ÂøG‡VÌ' ³ã%D'@DÐV‡xâ¤€ÇÆ«åx00¶åWë-Ì0 Ö!0n-‹SÂá3£?ÈW`ZþŽA-s-Ân‘eÆÇ5 EÆ ŠG/Ò,cL"=«j, Bþ0BÓ¢°R¯H`0ò ã•V9ÆÉ  X¥Îžãn€ˆI*BÇ’¬÷p®>ù­‚$̦á4~•Û­2)àÃ"‰(J'(zß°Î0Ð9ˆæ ¨‹%êê4 t6)cgÓj ÷2ŠXs(«x´r´§ ¬ßÒï2ùJA`…–€RŽBy'mV…‘‚¡õô©Úåsb Ïs2‹ ¶¨?â.[ÈL-£3*“@Q:  ac‰”¦]ÏåšßèÈðMn VË¢C,¡Ä*î‚0 Æ‘Ç #Ü™Nø!\®–¸Ö÷Z‚Ø–à:ˆv.5Un¥Lµ*žñI’ ¢ü[a&X°"Én9Mf5€Dâñ=-oE+LB†úÁÎôW  ’cw™›šŸ¢ö3G7‹–V‹fÌ‹(zÀž¦ÉöQ†‰§ZeúÈ‘åa«ŠöI°6$Ì:—ÃÇK` xXôúhåé„¢dr óQÏßãÉ+Îdl4ôFßðž¯úWé7Ú¶ ðñjìeÁ€èm­ù–¡RE›ðNækšV Í–Z,Ó$‰næöî[ Çt6g³Ð¬¾E/ªnAÊ[ó–UIóx¢ßëˆö98¡Zç‚÷(ÙT[ÆåÉh«´fbóDQíÑ”XvÄ¡Þ"O? ¢É* r•@,åÔiÚ¢n$yÀ‰W™œ…¤·Ô‘ž¸@ËB\ÂÊ ù„´“u©y.q>°õ€Ó¡IX— ÒàµI£)° ÕõÀ½„à¡fŒ’‹mŒáß‹öp¤YÄÙ™AʼnòÁصÄFv]âö„üÇ*@sëÒ³)̤֖½$—-Mn­éð ˜ÑղȸÙ, cɳyÏÆò!ßÍ“]’ßeRÔ†øŸ9¢¡Ê‘hi#Ð¥€°†ÂƼd²¨.t}S`‘ ê0žÝï]|b bÏò³Ñ°þŸBn4‹¦Ùù*#IÍ$æC1‰›X*šÃ!ß“ó­z ï°ÁBC™' …8Æ\tÀ™]˰àæÃ»Kãî[rÒÄøV£OW–[RòW7–¡ŽP®(L{×Ù§J Šwc"ŒÓÜq¸û–B$2[u{ì­€Ž#C4tr%_9*@F…Á‚|ðÅ74ÂíŽcë&95vÁ íz—ÎQk]Ýt{?·/ºgâógŽ€ÞŠÃ&Ó¨Æm.—)-WË‹›x²×ù8êöÎ:õ“¦Ø(<%ØÓ±bnq7/(¬Ð/h¯üblf”&ŒÍ„ÒxDÁ:4¶À ßëõulƒ\P®ßÙ8¶a_¸½ÆEÊÇÙ‰î±øQÄH®õlMpvé±óFêÄ6CÃìQÇ ÿ‹Ða†ä½ó^•Þ”Ùlà3²yfYÏq—W„Û VQNƒƒq’å ÚümÅüðÝy­@˜XN¤RX¢á,7¦&œ j¶–Î…w˜¦ƒ†¤`LpoÉÌÄ}š%žô‚]pØ·C×ÊQôb-26çvä6ôÆÑVâ ±´3½‡4ÀË|‚ôŒŒ7@ÁÊÙÀA:낇`%hÑl2Ø¥\.Á4t¨‹Áy`e[¢ø¬EãI¸-È]zÓDÿ¾HG¦¡7ðdñ}Åüc÷²Üߨr7Åö˜ˆÜ?ç;4Ø“£õqX<ÔFÃKÌYH8¶iL˜mà×g´úï±Ì7X]Ä»Ðâÿ“ùpäfËðµuKTÚ†*úûä"N ªàz&ÇOìôí'õ½=ÛÑ©5Ó ©‰²˜=©ìØEá:TÇ1Z'+ }À]3Þ.…+Ói!žk òB1üK²LNœ£ª 'ÌoÁf’/•bkàEÆú©”õ“9ëFÒÚ7 õê›8¥¼ûª±YõØ/œÏß|•뮩\±<ŠV:…¨9£”ŸŽrQ»˜ 5&ÃyY¿”£Ë›…bvŠ-e¾À| ÆïJšÄà$SJïS 2f˜>R®Ÿòp&åî%’m‚¾„˜Š½X UÎ)Å^ÂëQ8~ÙS.ÕM\u•# W¹ÉÕÑ&ÁI2ÌÀ¾D0³Œ œyã=úšs}ù±"ì×`ë8|Éѻ››é8 âp¢ßÁ7|\U^ûbªî˜5Ĭ-¹@Âx×ËMbšyü²"üâ¨f'â÷‹ò®ê,’~ˆc²âO½zƒ¸Èî «®·o¨Ñ—ËðWŽ®/˜Ú¬­œ@¬ˆr8œI’qשPK­&¶V¿°=Qj?f©kØà0Î+ÏS1žšÚxŽa¿vLãt^Ù€QÛÙ1 .~Y½Z¹z©GO“‰ã@ŠB%*¸2_#«@]0õÜ,]Ììf¢ïÈ\Öš–øC9LHcEÿüœ³5´‰H˜Lçl2ù³†Ëi!VóSvìéa1„+ª–\Wˆ"(P†©cªßÉÈ&›yBHÆ(캘ošGríø€†qö¶Ù„3ÅTnÞÊèÑõÑRb(äâ36¿Ø=VÄ€£–iþh¡# §¶¿“ÑÂFT©ÕIlõ4—HWŠ›fœäp¬¤ÚpÔ¦ÆcÎ1bŸvÆEÏ,Ár*tç7hƒ®H#¶ÎاïªnI÷ úS·i™½Òurpþ‚)·ñ§¨wA4s°ü:¢>OÔ¯X$›äFý£hÀZ‹”‚‡¹d¸CëblÉÐ¥{“u0K%°bˆE)ã·’ HªÄZF©˸VSÎ G$–…+bãËäNVè‰Ä$H±ÿÀ>Ö!ƒÉðÔ¢Èri‡”fÔ$ÞÑêÊrdÝÓaN…ÆËÓ’ÓIY¡Ïó_.ç‹\N¿¥÷÷s9£Pö"Ï“¿Øæß®(E¹)ä…†«à”F¯T|þ¬;ÑÖ¼×ìY÷Õ™ Èú¯&;Sa|÷4ª4S¾ck @Ñdmð•=ëµÑmö Ùó>q•í}¥JaáŽ^(ÜFº=cJÍåž³’ ±&¯À ÿM+»¯–ø£š•r’nxoìëš°]û|½Ü=¿.j‘ù‘,ùMÅ®KYýß uëz©@LeŒÝbÙsc‘XýRQ®— a%9ã~ ¥»|`éÒšëJð{^Õ/¥ŽWÊHš®û•v÷²Wìb-ŒXh ¥Jh‹ŸD!ñ{äW ⊌oSw–3®rþ6 ³§1ÌŠfMÏûÒV„¯×*¡Ç匞eò–ig*ôµðá9¹#þÛH¾{úù_‘ÚDZËÆnJæù‚~R!èìÖý_ôñW úW_šðõ­TÞA¨Lv{ ë-í_ c*ƒ¸Äæƒtž³î#eó ®EChˆžÍKp¸Í念T§?ìÊMã1SNÉ¿iT<7š…Ø K-’ó0àhZ°Œ†Úõ{À‚ø‘ÀpîC‡Y6¥‹yºè@­Î!&)¤Bo[è¸å–²!Zo¹ª]éà)¥VÔÇö ^¬<Êõð«ª8l®Û„53MÑ]¹n_jÆ2±÷ómX•¢+C½lSU»r5}£æ bkö>vu×éºñ‰ Š]°XàÉn‹º€p¨›#™Bb„©ŒdnÚøí}‚¤°Œè:ñžîøí¥jPUòÝ•¹ªN*Züž<ûð÷9û'[T^Ô¡â2 f»^YÑUu^˵c8O=«^w«µsÿ4cÊÚêWӓߨ^ÙËg:;!1LÓ/,RÙ¬}_`AMkðØ´R³!5mÁ$¥ü¬ƒÖ@[W3RyPú¿%oªÃTßš¬0á.$N«câ‚y?.šñÓëÁ°?ÛøÌžàv†Ï5컿°0¨lò„o q˜­"À ‰ÚÂ;-¼d"¯”ɨq>øF…¦tþ}‹ñc¹óu ûNûÓ)X’é,¼NÈ3goÔüH½§¹° Õ‹’ô!‘켡3ûâ5+âËKc»%á+ð>$(µb#—ˆñͱØÙ‘.£ljöañc±ÕØKꛌLsafÒÌGtª¨¢Gq'÷:lôúŸön64WÖXNÖmÞ‚$Â4F?ßÔÊöœÙö’õ.IƒIÁëÚ„½GKW¸–TVš¶-›IÂ]ëÙ ”Áa-kÐ5UK{¢w@UÔ»M×íþåãÏŸ…gÞˆïš%®¶½Š;;v .žyů>o¨\ƒ¾Û›ó-/ð Bw Êg'¼Ìü›©|AÔÌ%MßèÔ^°3ѶÄdk í ƒ¬{Á›y ÷EÚZµÖ\NÂOV™ÂŸ}B#·üG ¾¦7fSL±­€Ãtrï¡ð'­29I²© ÄÐÈ»òÇ­ 檤we©P’"¡}†VQ’°Ñ­˜dŒ‹¼v`bi{#×HÜâÐõ„¢£ïxƒ~â (w yý”á¤Pån±Á‹oüƒL kyÓíuGx9JL0vÚ3틺:îl=¿fW8œσøÔ{s\1øGRô\<¾(VÿÀXx‹zEßA9ÀiLJU󼨯毌Êâ¡BzôY“æª"-[ÜŸ¢Ã(âC'H}¼³w*¼+M Wò^9{:‹°©Ùd±ÀX„|Á/¶ÕÞu!sd<í¨ÅËöGjž»oŽ‘:#@ÞuÄ»f£ŸR\ÍÞ¥£Ò‚¼?í÷½ÄÇÃC4jÚ˜ƒÍ8a­ÿç¬Ò7{‰kö›®>çqmr¸ž¾lñŒ#õìE³5Ÿé9—i“Çô|7µ5³Ü6äÙ¬ÒÈn²± ÇíŒ5ûÅZ ä°—ÛˆìIQJßñop÷+{çšyéù>?¯7ëµÂŠëùÛ ÂTΜ :øÛtÔÅz‰9À…¨¡íE_ú9ó8™Ú4Ê)Îзz§!Ýãå{ÓþÙæGN-âDE>& ¤‚tÉÇ:õ¶‘a#5ŠÜÎxBp¹ÄY.)̺ÅEìÅb{­˜#X\ÑM¥Zÿ %K•ÝyP†`¦\-x.”ÎuÈYÙ3·ùõêæ§\pþá”~sÖûåìüçœ-÷œì›ê<…n¦!T€€<Š Èg\à1ý³võò¯Ú-ˆ³ô[¥Žý_ £̱±Îú²ÍA‹Ã²ågÐBÂÔj“¤¯ñx,…_‰—þZðµÝ·ŸxœµXmsÚHþ,ÿŠÞìVcãÜÖ%$ö/²£Z œ$âø+`€9 I% ;\6ÿýžž‘ðË:¹Ús%¶4=ót÷3=Ý=:ª¿ DÚqz-š¦“M*ý¤1«ßR³qB'ÇÍ7GÇßRó¤uŒo(Þ†a@æ—ˆ~1jGG5ã‰åÍ7Xü–×7©ùÏÖ¯'­7¿Ò¿C/Õz^Žõ‡T£nmc¹\¥T™U©ùîÝq¿Q¿ÿ†»d‹¥Ò„Â¥xòVĉL·<Òõ|¹ã@z ¢¶ï“ÂK(‰ˆożVå®dB³p.ç"Æœq¸¦$\¤w^, ÒXN7)$iHß_liºe€Ky#hè'aCÚb.½B‚/˜Ó&~ÈM<jd*/ÞL\'uº“éŠÂXý 7)£¬Ã¹\È™Çub;"¯eÊVDqx+çlÎÊK•ó‹Ð÷Ã;,ÙÚ¹äE £ðºµH[üÜlÜ3MQ—Ù¤(Xo’ ¥leToÞ²(Û ÁO¦r&ê˜Ê|à1L¡V¹·o”Î|O®EÌÑÉCC °ÄHnüœo`ÜÿÇÒ^fHóp¶Y#ž¼|ÓŽ°!ä1­½áùIA¼Ú0.»¡œ{Ó jËo-‰Ð ,ÄjdšÆIfÕÚCœ Ž{"˜C&8T`Ê:LiŽÒ{Á«øÈ#8ÃÊ‚‹’HÌ8´°TrÌÅT¯$‘E »-‡œá¹{Õ¶MÂóÈ~²zf:ךd›æÀu¨=èQw8pm«3v‡¶CüÑv°àÕ+1T{pMæç‘m: m².G} 8¶Û×2:Yƒnܳu †.õ­KËÅ4wXg} ôp% ÏéÒ´»ñÚîX}˽V[î€ÕC_›FmÛµºã~Û¦ÑØ …Æ~õ,§Ûo[—f™Â@1™Ÿà9ÛýþžŸ@Ús³cÂÄv§¯°”¸Ù³l³ë²?ÅS¬Áº~œ‘ÙµøÁül•¶}]Ï`ó_cL‚ÑzíËöœ«ƒ¤¡}͸̇ڃ:]}41n3§Šµ6sွ®Ëh¥™Ð >Ý’³40/úXïš,2Еå˜Ul™åðKk¾j_+ÇÊ}Þ,ئKÁ[W[JÖ9µ{Ÿ,6>›Œ@p¬,h†çŒäŒ»3öù (ý,ƒ™¿AzüLgá:òÒÆêì‘Ñ£Ù\,–L&v×±z•ÿs5}Q}_Öœl“£È‹½µ‚/ƽåìž=I:—áƒ!_NïÅȇ÷ðv¾Ì÷g¿˜¦±Õ ®ÑLÓdP*è+¶ÑÙHÎ¥ct#¶Gs/õ(òdœ'“[/H.FFÚ2‘EËØ[Á‰9Oƒ‰9O¼e ƯF'ØŽœ·Aq« Æ8¤rÁ• [¸¾<(Z#Vk×b¢¸ zƒWö&ðE’¨Y¼yeCÌ0àg›8FM'o6ÃÄØÏ GÑé)ñþV cÂ2¶0 ü-»Âs¦þáÙÂ÷– ½¤Ñ¤c]ün^W )édÞ.üÉìƒvž;ݦ"ùoøKh8@ßZWÞ-`í&BhéüÀÆ–mõ sŽêîV"(úpWŒÛ?âN­Ë>h°”ðÁW×s/P° ÷e(¾¯ÐtlÑÕ&By»°Â†fýÎ{žó¦‡ý1½|I+ˆcq-yd4±ŸÚ}«Ç’Ÿ*«½TÎ{V-§ÿ¦Júz›HçLË# Õ¡ÜïÄV{=˜ñtãÂÉf§¦\ªŒÝq7nNÔ25þD .%‹©ÌìÊãôqÛä³¶Éçl“OØ&ïÙ–WS…üdùTÒ¢mÓp()´ »f¥¬b–‡žmàvöÞR™q·ªRÓr¤j…H‘=ó<Ë’=±ð6~ZJT‡¸[â‰é餸s“_¦-Òo'O§7Og·i)±y:¯MK)ÍÓmºŸÌpæ|VÊbÞ^N›ªTÆÜMR.ïàbƒÅoñV‹à|-:)%«ÏŸ?«¿«ËÍC‘ð `!S>Ö:d_3"Ð\䇉Й抿’Þ $ÝWx*,cä»tqò³ JYMå/}AñȲÅΈzþa1V߃’ÍŒ?ò:KpŒ]ZƒÊ®ÿšf œæRS‰š˜±«èÑ 3œ•aææðð=½~ͬà÷I5‹^ÐD?2Q{ÁWOU–RöxÂzöÄy-Ϧæ<ˆµÑùçr¬!¹-ä—¿-ΛõT—gÝ5ðÆhÎùs*8ÜÈdES]<}ÝÕÄï‚,Z|y.ÈÆUw3|žA;÷Z÷†ño ?³o^û*óžc´ïJ’©I A½ÎO˜ݸÚjÐû!¯³7ÑÄ.ôxÃBüåôÝL€?oñÈB“û®¨Á¥dФ‚ÙŸèv†25á`ª«Ç¥hT‡ÒÑ!hXO¿N=vö‹UÐ8EP ªôABÇåÒ“Ј“ÐÐé´@ëç$ö[ŠM ^`h7†¨M§?ÚÆàqt(7Ôs(8=ï°ßx ÐL uNAq;ï±sªT(MNhp¬!š*peÔ‡<(¾¦ªÌLo™‡J­\†=>)VÑmØ¶Ó s«`}‚ý‘a„Êï÷lieäã9Uà·G(d—‡HøÐ™„º¸Ûu†x^2îï<¬ÌQ|&Q˜rêaR¯8 ±æØÓå,Û“¾)ÄæÝÃRÕ‹NÁ‰‚ؾ¼èôZøà)öeYß 6§QìêÁžâ‚,Q` òÁbPVä- °íb8V\y5°–çó¤þ(3 ^¡7ãßa&ÂÙ /û †"¼~‘‰ÿÌl;–OÌ+øy¡°=Þ ìSìV6ŒàLÓ…ÀÔ‡Xò—1EÿŒÝd5y-¬®GÄ׿Ò9P„ÏŽV7ÿ]†GÞ°ÞxœÕ[{sÛ8’ÿ[þ¨ÍÖEòÈÏdï<ñ%{zÐ6kdQKÑyÜÞ––’@™kŠÔ”_6ûÙ¯JrÆÙÔÕÕMMÅÙÝh4Ý?4ZGûßeÙ÷߈i™KyxÛ¾'‡¯ÅéñÉ«£ãŸŽÏÄÉé›cøÿ•ȳ,Îç•ø}cÿhïh¿±‹÷ä_ùø 8NáãÉ›“³7¯ÎÄß2™/ˆyù`Oì‹^¶zÌãÅm)š³–8ùùç“6þûŠþ} àV _.dZ"‹D _oÒø^æE\>â“^˜ÄQ–§qx(D'IÉ+D. ™ßËù!HÁ¡‚Û¸³l.üËdÌE”gKQdQùæÞ¦eO×%¼)3Ñ•ùL䣘>¢€ëøN /)²T‹ôå<.˜#Ë„é\¬ Ÿ‚Èu>“ôd§aþ(@ÅeÑqy+²œþfë¥,³yųe´ê±’ù2.Q‹UžÝÇsTç6,iòQ–$ÙCœ.PÛyŒLJA¾¥,ßàç“à ÕÈtJ'2Ár]”`¡2]Qj8Íîñ•Z ÿ¥YÏd(Àd ÈC1Õ°4½ºN0è, ã¥ÌÑFât[вˆVæ9_ƒrÿ;ºž¥’4Ïfë%øS¨íÖ#ƒ÷¹X†%8F˜•áiÁP°= šÜ«C1”1ñáû4\ÊšfÕkZ†¸,*GËòBiµ ÁÏ$úùžLçðN¢«€*ˬ”‚mTn8/ÙC{°’¥œK+9C×Ö}.G§JÙ½Š"®9¸rÇbì]:¾#àóÈ÷Þ»}§/ºŸà¥#|çÒcÑöEϾ۽ <,þú×Î^¾ÄW(ª3ü$œ#ß…ç ÷z4pAö;ÃÀuÆmá{ƒ›¾;¼l "†^ îµYàµq<´Í)¼ qíø½+øÚéº7øD ]¸Á‡»€ñ:bÔñ·w3èøbtã¼1IÃyõÝqoÐq¯>D w ç=LKŒ¯:ƒAmž ©6Í®*vº’EãÀ4û®ïôœOõ©Vím19=?8˜JÇÿÔVbÇΟn€^¢´~çºs “kþ†Y`Iz7¾s ƒ!Æ7Ýqà7#.=¯?FQ ~ìøïÝž3>oL»;m$èÐð ̯ás÷fì’áÜaàøþÍ(p½a ]yÀ2 l¸ûddoHs#yþ'”‹ö 5h‹W<÷ѦdµÚb Öë(Í¢„QÁž5Y1t..X½çà[}pÇN –Ì#Ë#è|¢9ÞÐôq±@7þh9o›–T¸¢Óï¢òŠaì*§ñ.PÒø¦w¥¬¯öAã?š/Z*—5ÎONDS瀖8;:ù·#ÊI¾^Ä‘¸ê¼w&Ãnàyƒ Lû½œ\Á‹t–¬!Âþ.–Y–L`«Gñâðöw{/`OǦ>qÎò¬À}^Èòh–È0?*%Ä´( Å!ñb.£8•‹ÉØ š«¶ˆZæªuðŽHÄßߊfÔ²¨z›ê_ÞŠÔÉܱ%ΦDq­½JÿO§³l¹ Ë£å æqxûnψé;×îðçÓl×hž¶ œTœÆËõRÜÉÇcŒX… iOxzÞpü¡Î1 g·˜ì€¾Ø`ÝÿD†“AHvÿ7 &Åá³cŒ±!#Å guÈs"(©è É2<˜‡%ÂÂ$þBøÏP…â3‹€`zESL2HÖñ¡¬Ë>cþEXæ¯×øƒù‡šÏ‘Šfg8vEOa=€« d¶$ /‡-ÈP‘Kæ·!ø1î§¹¦KñÝK˜ª¬Üká$òåwø}!K†«pvG“ÌD¾NÙ»p°êJI1¡9Ùk¬i6)éÏyƒ¼ Ô›ãeaû 1Ô¹¼_-}"#€ñ4Af¥òsiˆô[T–¯h>fOÜá>u¿%Gi éRB9B̃¬v1ð> ák"¬ùÅÆ^°õ8cµ·ýpƒGëqrü¤b4 >¢ŠØÄ°€‹»º0DQÏ Ÿï}|’ÒL¨>EWmBÅY®|0Sg"Lœµ¨‹§7L1%Õ0ÏCÊÆY ÂŒJÓrY˜œÈ‰y¹„“$œÏ’GëŒg^s´†°î–P)¿R*‡ÑâR.ÅÃm oáñ:]S@D ´ýÔ"4ò&¼x•¤¿ÁIe­Â‚Oâ ~„‘ÈùlA埊›w‰¥MÉ¡I‘ÌHÕ˜ž²åR>×A8Mqž–%ô™ ÒƒžÍ3ƒsõ‚ %œ*i3†àké"‘ ²„uÒçe€âpMÄEJÀê+|‰sQ¬g·UùAƒ¤j>ô$#eôj£<ŽKtz&iÓÇRŸå'\ó šw¹õQQê3l˜Rñ"‡\“T«ºN ÑÄhÄ(–ÉÜà–‡áoÂPA>ð 4% ‚8Wë$,ÕñÕ@äˆyYˆ&ƒEpÐõRçýW§`üR‚@ Uv,A´âhûÇ ÐÚ«G²¼Ëa3ETÿnÇ©qÒ”þ͇Ï+€?ôÞ_ 2?øL|kÙ;×@µ Õ6Æcp60š-úž¶É®_Ù¥Á1ÚŽs‡&Æ¡D… ¹£ã†g”£CžÍò982\Xê‚ʆ }õÚÌ׫ëg4 ŒÛ¢–¡¹†ó@¡C§œ­KD~ŠœËtX›SxŠ4Q*ˆE.±*´C]Ž,sk6SÞ|jµ•_†E‘ÍbãMýšÊB•n½=à\©p£ tt§YˆuÅjžfz<¼†ZexªÅ‰eŒ(»Æhê¨\hË×‰Ü §f˜/¨¸C?RXUÂv G{[V†©ã6÷sc…ôLÆ ƒÊ&-œ9+ŒgHQ |Î@…{ƒò…ƒA´Ô¯•3Ú¸”U€ kÞVG„ „P­!‘K'0 °ã8Ó¶*TRtÄ~«yŸÁá þ6Q?ûÁjûÿv@ä„bþÂÕ(¨ì kÈRÅ78‘ä¶R€*™u똀ó4èÙ8Îø É{tÑ‚÷,eŒ+¡”-ðRWº†_Œ–‚1϶1ŒØ4@E¼9Œ]œÁ;  Õ’‘i5Và0d­ýb­=çN†mà-<˜}Q® &ÃDÕ|Œ«ìWÖ©c†©t×û¨Wâ§·[qÝÆ‹¸!JïÐ-jÉ7µ9Û’Àl—í$FÆW]€AšGûXú àŸþþÑñVòÙuÂßL>v<1uy³PEÓˆÏ&VÞà/!VìŽt¹éH<¯Â‡BE²jÓéûìˆGÃrÈñ¿rüï 9þ7CŽÿr†Õ‘Ùh²j”y·#MËÞ}þówŸoï>Z4Þ~µ}·¯ÇÝðd³È[ž¬õü®íô-oßÀYU©jÆ"‡U¥º˜Kn[Ù™X™¹¡33 EIÖËÎŒD3ߦÑ)q#}²C› Ý:í·S+Av§U|ó씊ĻÓ)‰ùçüúŽ `+eÁxGõ5°R+jÐïÍ;åd×Ö÷eØ'qŽÕU €&Ãc|oÚÕŠª${Ç >Íwä^3+˜Ñæ^- v对·öÊνßq”“´•Tª½¨u¡Ïl¸Zr'úíÄÎÂÛ‚8è ßÈé@sðngb^^7üÏKîjTTꇆ­<Tü0&h_k)—KÀðʾ°Ld_c¦×²jÖyJ Ï…åTój??6o^#lÆfŠ•n‰­ üOÜa!Ä“¡ÕÿžÐê?Zý­U1Ô×{ÑŠ‹»ÀÀ7C`ñ¾/äù!oG «ôûÁ(g ª…8ëùÅ7ßÄ7¿߬˜ö”PSGTùŒ/;ùöÎà¬çB_Â1ðÿ{8z^yÆa¦£Žz=¹ VÕ&êËb*U'“05[Õ¬•¾òCMÌ¥æBÚ׌XŒ3×Öb¶Î‹,‡|_†³;*¢Ò2ST†ùìV°‹Hþ “ÿÒ5uQ˜s|çz~ž­Kð†B×]½¯Ö—xŠ•$l7"¡t¹êÖêoúw{OÍU=‡[r¹ŸÌVUÒ¸ÚF¤*-„´¹,fÔ ˆ—œ0ÐÀ¿ô Tx­S,Ã$‘ÔgF£Ô*zTÂʪ:%›DÎÙȪ2^•$_bóVŸñª¿ Þ3ldjØcº5l;/H<$’[¢š«8…Y¶¶nìÄó=7nOËÏîV¨+þ&šúžoÙÑʪCÎu]¸Ùt‘41.V$s™ÎPI.©«{Ïy[Ýã,Ã;*ÀÇéÝ+ðeÏî°BíF,K÷'€õMùÔ@•Ž›¾Ö¤æŽîdèõoFcua¢ö#KT7 8}IW;„ßaÓÐ72š ¸š»¼žLGâM†h=C4¸éŒº `r©|¨©kO@9)oü˜–æoMÞRŽKÞ <ññ~õïðãl]¨2J[ʼnRßéM¼wiö ¨P}®V–Fzó«ÊÔM¾}«4m™r· Ns‡fŸ¯s¾Ò£ë•l± Ž@×uœŠ¨¬ÍsärýÔÚ±`›4CÔcbŸ(Àsì‹"nvšƒó%¦Wò̬À> ¤ÛÎñF1÷nüñĺAÃrn³„…ØÇb;¹âþ¡¡ïôþtãúŽÍòn,2÷oáñT‚á½¾“ ÑM t¡0µœ‚µO˜dy¯5úEàømþÜu.<ß!yßR×ÕšT¸µ;’—½ S?‚{Úz Ú:ÕMeD·³"޵’ØÕpgkÔùãǦɦB±ðešgw’z°lD›È{Hkîxaÿî:)ãUBÉS…#Ìi«07—Éý.£pöĵ‡2DN ¬ ašVºoĘևüÕŠÀRY§µIK{‰·í!Íøí[1¼ ˜KEÎÃòIÁ£":ŠžLÃ#¡Ý)Só1s‚#÷˜-•’38íå?ó¶«<¥ºWA 7©ÙVJ^GºÿÛägïªzjv P.±Sí,ÓeãWSˆSðð0 Æzë3“îmùJþíùçVKZÕç¦Öœö§%ª÷ñÕ°‰™YJ·ÎDê;½¡G=òVËîM¾‚«ÊwóLüÁ®èhj V¸‹(yÙmaØ´C·Ø+ðáÌôïÌðš‘næMG"aôÝ·q%¾¯-—á"ž±ÇÐGB"jDÏÒs¤RŸë«ê„Z몬(°Çç|«¾Í?Ô™>Ä—.­²?ﬠ'wÞ;Ô¯Ø4i÷-[…ê©%l¢[W5·ª>ø™ÏȘø _Z¹#ÞYäU3Án‹ãÄÀà×#Ï4Ä> ¹\){³DloÉîbnD…(Àtó©"´?ÄŠ$Ö BD ¦!p&°E˜>䈨·ñÁ8’ͯ¬á‚šŠ r+¶nƒ÷†Âĵ#íè“ÑÍøªY¶ƒâ–:Ùáñ¨™.¸ßÜê5°uí\S¯4üw¢ZsuŽd³É1›ö]?ø¤8NU¤áãþ¨ÌB\uN¯ï^¸N_1¾®B÷#„ýÐqúã‘¢g0Gv01Àªx€UU½ã•¿ï JQÕ m~@OOÍ‘ìÊôºÅ:Ûh(³~Ži¥–A™ñLE>å1ì }N°Gô!aycçBMñ5³et†Æƒ6nAk¿VlŽÇÝí0+æQÛAEäC„»ïýÉ…ûqà ‰õT±²¿*Gµ|¼bÿ¸îŒFjå^+>å!j;á˜cYŽu¦x*Ç"ë£XîÓRƒhÏØ¦¯÷TSW‹«É­Åíw'¯÷ K4ƒz¦¹a.â_á,ð0b1ÑÃoq‡ÔõoñÀ£ Ž­Ö|D«¾ƒ ïÕ¯dž§þÞêEaÝ£á\àÏÌpüµÑpègAæv¡úå÷ÊâOÎþ'ÖÞëª xœ{P}¿z‚„´±‚‘…¾¡¾‘…‚¡©•™•‘™BV~jQúFã\™Í eì#ö ûì7xœ»_=¯z‚„¨‘‚‘…¾¡¾‘™‚¡‘•©¡•©åFÝ4[n¥ÔŠ’Ô¢<½ %. ) Eánxœ»_=µz‚„¨¡‚‘…¾¡)XZ™oÔ}ϾY•#Ï”[)µ¢$µ(O/C‰ e¿ ý¸ïxœµWÝrâF½fŸ¢“MjÁ…Û›d㤾ú„46ª’%¢{]Ùh0ª‰h„½¤öász$ŒíMnâ,ÍtŸîs¦§gÜ?j}ãÊjXçtŸªÞ¢{O'=ýM§ƒÁY?g'4øî|pv>øîÊ8¯H|\Ñ7­£þ«Wý£ãWtDf±Ú”éÝ¢¢ö¬C'?þ8èòçæZáB’/ïd^)*æTá5ÊÓ{Yª´Úðˆgé¼(ó4îYFIQ)•,ïeÒ ñe’ªªL§ë*-rŠó„ÖJRš“*ÖåLê‘išÇ冀·T]zH«¥þ[¬+FYI:Og1ct).%­d¹L«J&´*‹û4ÁCµˆ+é¼È²â!ÍïhVäIÊNŠQØo)«s~>餦y69ÍŠ–kUN#WF§Å=O5¢1¾ò¢Jg² ‹TQ<†Ù…Õôç„ ³,N—²dèôi"¸§È6ðLÖHî¿É…j– RRÌÖK,~¼]´>Ö£À|I˸’egj'¼^0Þ§¡ÉõtmÄ *§J‡Üùsòà\ÆÕ¥ÃËÎå¡K$T1¯°lMZZ Yeñæ€I<û#/2™ÜIÆ=¯‹8ÕYB¶ üfÙ:‘;LJä½ÌŠL7O+œvEÞ¥¡,ÿ™ÜhST:„­É¥ÒdßöÈ•©‰Ñòx)ŸÙ;y±›Ö5wˆµå ŠSÉj`Ñ ’y‚9ÉѲ¨ä–™‘ð Í1ñ¬nÍN"µ’3ÞGpMyƒ•¼ƒòz/)Õ,û„#; À»o _žÇ¾wm[¢á-&ùâR¸a@†k‘鹡o£Ðóúýw#€Ã›7<ÅP†{KâýØA@žOöÕØ±`ßpC[]²]Ó‰,Û½„ÊQH®’c_Ù!ÌB¯Ëñè©'yt%|s„Wch;vx«º°C—Ã] žAcÃm3r ŸÆ‘?öƼ,;0þz˜í"0‰kТ`d8Î#ž@zDs(¢1t4–Žš–í 3d>»'ª!;§KÁX˜6?ˆ÷T ÿ¶ÛÀâ—F˜d4˸2.A®ý²`IÌÈWœ0„¢aÚa ºô<+`(À¿¶MüDŽhÅ¢@t$4tx @.Lãy¶ÎvCáûÑ8´=·Ã@#ïÊ YÞ–Ùs5gˆäù·ŒËzè5èÒÍH`ÜgMµjk@=3d´=KD…žáYrÅ¥cCuSð¬Ç@7v :X2;`»Ž|cÜjŽ‘¦Ï‹…Üêǽâíê%%û‚ ëÚæäcB`7Eã]0R™£Fýf´þß~ÝÑ'lëÎÖö¶tèûþi_Ÿ”8N_§ó<‘sš2š¼z—4—­í;Î[†Ç&VpF+Š3´À}»Gn€hôq¥ñ¶îìí™(Öàãà¤Õ?ª;㬊3ú$Iãsèbá­#Øçtëóá×¼œWƒ^ï7z@wÂñ±BïX¥œA}hòÓ‰!ËúàXÄe<ÀªÓDƒi#N¼ÎÐLUÝ“ôAgûçE~Œ›Æjþ"?ÎäŠûM¬Ï£xÚÕm3—òìôž Æ-Nù-§Œ³á3¶F84Æf×Öï­èÐÖuØôdphÚ¤rh~3Âþjµë”è5áš'×é<ÎÚ¸`¥O5z‘g›-ú×ë\Åsùõ¾ˆ;¥õAúD× #ï­ÆKóE:M+îÕ8'Q#o>¼9ô…áx»Þï´×¢ªVǪÚd(.5‹W’¾¥‘x¯w¬sT5_nÖe®o;êQ:‘Ëà׆c[-Ò¥÷™ÝãLL^0GÈŸNŸqèÒj­4Å1M«Xñ¡ÆOq\íÜoуԱ”üs ]QHy±‡Û܇žÉ%¸u‡†Õ:®7M^ÊYq—§Á´‘d‹øÔmÏó[ÇšB"Y}3Zç|»Àµâ=Ó®1q¢ÇÓLvžè:Ïâ»ç®ÕÒ9DzÀ><¨ŽÏIJK#@ë·ûcm‰*Ä} kל±õ-qšÀ`}סŸÕFõg@@ûß¾Of2—¶;±„é»@/Œ"ùíXƒóØ’¹´Ž˜~»^Ù.„«vŸõ²M—/B¸âÕ“ðÀX WÊGû&[äÆN}Ùð ð_rS¨›IõLœãñRÀºLžõ?0z1J/½BI{2qì¡yr: ¼È7ÅdÒ¡OŸè«Ýtý/#Æu„ƒ¶KðXÓÉD›œ}ÉðµÌ”ü7˜€ó…k\‰ög\í®Ëi¿Âš1ÂVùª9Eyƒü (ž–Ãæ9Œ9xœ…‘ËNÂP†£¬Ú­nM&Èì†T\YÛàJ °qÕ@;@ÚÚžXõÜúÆ•ïáøô” -µhr’s™ÿûçÌÌ×ÙÇI,pLí‰6Ð;€+‚ËÏšKx dQTI¤ D±#KEGƒ)+j '°”.…Õ¦Kn%%µÓRspÂRø‚}ÑO¤·‡áñûkå³oM•oA]Ãà ç¸n@[P„K……;w\kÙUžÆ$@¶X•e—0`šZ¦5÷B¬ëp«ü»M= Ö-Ï $á&üœcm˜Ü"“ª ÌG“º6ìF¢è]w7{D%-Ù,ˆ'vμZŒü̆¾¸^ŽŽS‘­¦@ûއñfФ¬´´2ý`ŽO“ÆEë^Â%X–Îû»$ÿ‘’¬£×¥[œå͘r4Îp)â(°f¿ºÐt£ ú7·÷½ýL!>ïµä`3â±v­=¤äÿË?G™JNrY:É }Ú_èQ:xœ…SËnÓ@•èbØ UHH Ý*HM£ÈI“ –@‹ÛIŒ\;x& Š…ëú‘%ãâq‚Š„²à ò/°dÃð%ìú H,™ISÒG ÞŒ}ïy]Íõï‡'+•b>óÈð“:Rj@/ŒÄ^abÊ¥ÒV±T-–7 \®•«µjÞF~Ü=~ YÖ¬îùpÊ…F4$ž“„)€F\Q€üñ—op/¤àFžìôü8ùq4É{'öY—$qx0LX'‰æk2588‚Q#EÐÁ÷¯Ÿn܂铿J«§4Ž>—C¥6¶ç‰bHX‡8ŸB@˜Ð©Ò߀QLÓ“…Êýi}2FÂ<›%--¢'†Š'ÚfÇP$¬™ó6XdÉP@6 liõ6-ÄUö÷%Z[ãÝôÛâÎm^ÅfpKM-Ê“ïvÇj›HMå¥ÜÚLLëŠ^]]“꺚~^Ú¾Ë+ Ô—ÕÀš¤§?—6Wxuêk¸ƒUhš¦‚ÒÜòÖ®Xµ¬N›¬§ï–k+SlI2.bv2N,oÞã ÉÒf4 °¯¥½ôÎÍ­ñ$´‰V×t ïÙ`Žr iWjª|7Š‚ âùØF]6wÛ¶V4ÓnÙB–ÕCâÏkq´¤W*/IVÓn Y‰Û²{Æ؉»c±·#d}â…ÁE<—¸çû>ó<ºâ»}¾™Á¸|9(8ăãÆeî$ìý|„”†¤ËgZlºñt2 À!®”œÝ¦’bY„¨;ïJ’pÄû„”¡Z†ÚÑr‹%\='V^;.æÖl˜ óŒ.÷’âb¡yT.:?®½Ó*¢ò{‡£œºÞ¦%ÄgA!.ÓÅ}<`Ñ|Ÿ”çYPÎü庩¦~E•`ÃówZª Ó&Ð&Ô†k#´‘Ú¤™²gEÔ‡`ßñòú„PâÍÚö2áý"2–n°CÂW.N$ÃBÊ0§K±YTU~‰{%gŸ¿l³é«gLõ‹ºÛL°èÂS/$Þ¥6ÿOñÑ@ëTŽxœuTËnÓ@›†XbŦ 9–‹ )«º±B7¥jŒÄnì±;àŽg\Z6樺ã/XòK| fìÄqlYÝësÎܗ÷<:¼¥>·l`›æÜö°¬ã™ulFsþâû¯Ó=Xóùì÷¯ƒ½Â2ê ì ŠÑݼ6lӘϠŠ2Á! P ã]º.t?zîå9|• ÷b‚ú0acá'ý8¡H]8@›¾m»¯Sµ$M~BhÁÀÂñ„å^,epF³Å CÎßK ŠZµTËàXŠ¿#Ø‚§ámÖÇ×Ú`ôÂ#G€{»÷Æhvs©ï¿8Y–Î|€üðc´?áa†P#Q±:¸£—EWC€ÆZAßr‘²’~“à`da¢ »è ²e`’³È™Tï4§Wòµz/ÁϧÅPå2Ä:-Ǧp;ŠÏ›¼)ZgþÕ@é9xðhË“1bi%Nóó¬ŸÐPë McÌä¦éÊðghõBÈè šD.έCJÂwįçrÇôl¡ÉMó1ŽkÍNÝÓ6(ª ]Ôm ©å’øiΪܚ6±%Ä’X¸Î‡e»²ÁuºŽZ¨Æ- å·*ÏJL4\™šó¿}³W&ˆ8ÜF°òN¼³•wvºê4˜­™ªK„ò†ÖÛ`bïýÔÖ•”ãR’xœ•T¹nÛ0F–ÖÚ¡+,²àÄpb02Yq (Š"R‘ ¥_6FHÊMºðšµoѱ¯§ )Y—/¤‹D‘ßñ_Ô¿Ïo_~ŸŸ\½^Ø'ãׇ›ÓŒÇÿÎOÕÙ.ðG`ðÒE£þ`Ô-äô-˽ÿ:»L;Æ$ q²ŽXJ–`Ïü‰‹œÚœ#§{mÑXvP޶ è¡ ‰…DS×ßú誊» K¬Ù :pù_6-þ#¼„D’\@m)l¸›—&µ©dÆã}Öt˜&RF÷ìªÆºZZN.—éçÕ%Ö+ïÇ·¹ïnýû»ï­t²Gê’å¼ÂаÄиáŸá`ä•Ñ7¨€0†WD¬*X°"|'Ý¡”P~ 5žS‡X’+ƒ«#ªt]´’:$µío‚ŒpÍgDH¼ Fö¦:GfWihcЗ M½êRU8”¨a´¤Ë°kjÙ“-&]Pù¤HºÓ»fÊe{X²¼´ËZ#Í>ìÞ¨ ‡€úd2UÇ.[>¶mýZ·ŒÕwÐ"’1‰Ì!žd’Æpaþ#ð,ÇÙŽ™¢¬çM‰U×.nª‰ÎXú Ù3i$šM¼öü‰?÷üùW*jÁÜ “ !@ôŠÏ aŒ ª57ù,67’5ðˆ%?ŵõé âFÖ;¾xˆÅî –$xœÛ)|‘OP_‹SÅ/µÄ)ØÅJ¡(59/¢¹*˜¡—¡S¦`¨g¦`d``¬o`¡o`®`hfebdeb¢˜ž¼±Ð›­ª’ÓBÏPAÃ)µ(;5'µRSÁLßDßÒ˜KAKŸ‹+5¯4W!8ÈÙÃ?@¡Z!ØÅÕÇ5ÄUG!ØÓ/Ø5(ÈpuJÖZsêk)¥&ǧ&%g(ä¤%–dæçéMQÎÌKÎ)MIUPÒÓÓO*)JM‘R©©zJH’©%©Ey 1%ä?ÿá”rxœ{"r–W__‹SÅ/µÄ)ØÅJ¡¸$%)??G/C§LÁPÏPÁÈÀÀRßÀLßÀTÁÐÒÊÔÂÊÀd¢®&£åÄpë_ÿ2nÞÈbÌ\ïäïïïÏ¥œ’š–™—ªïçäìïàâ“äRÎLSðp sEr)+dæ%甦¤*ØÀ-¶ãRNÍ)NÉ¥)(‚5ă”s•T¤-j)QˆwªµªIÍKɬO2 Vs‚ÌàË"ÄJŠJS9 ü´D ùœøx¶xºx°d|bQjHdIÀ×­•½A»ÕFÇu»ŽÛs:\¯ïuúmO1OÞ¼×£íb|7 æþÄgF("©üÙpt;þÁ!3d„Éàa\o2Rq \~g^3C¨PFŒ9ƒ…Ä<Hx¥9¸ * ™ª´ÚrÒGÏxÔ„Ìs©–Úy¨ki‰³O?û/5h)H(|nšÁŠg°lZNدšÍ ¶««¤sÊ*ZSÛ ³¿æ_™£˜/köÐXªHð7Qg¦”êâ7eë«^Q9RÙ°IeØ uAù¿ô†i5Í]ÓKá¸þ¤ò¥>_»žKïš xœ{"rIØP_‹SÅ/µÄ)ØÅJ¡´$3G/C§LÁPÏPÁÈÀÀDßÀBßÐ@ÁÐÂÊÄÜÊÔT!+'1w£ñ:öúÐOŸxx.å”Դ̼T…x?'gßÇx˜ —rfš‚‡c˜+T„KY!3/9§4%UÁb—rj^JfB¥§¦âœÌ$4õ\ú““9¬ê¡¢ ùE\ ZÈêô€|}ˆÁæº8»úøÁ ˆõs v"Nƒ CÒÎþ~! y#Tùz$¾¾ &8 r `CÞÑÇ$ ôXrFb§VZAbQqjNž†›§«‚–ŽBqfUj| *+Y ?¯¸D¤#Ú8V^“͹¹¡Á Û‹‹èœ@xœ{"rKd‚„¨‘‚‘¹¾™¾‘©‚‘¡•±©•ÙF]ÎÉAœM“orvÛ &âœuxœ{"Ò ÿ$ß+Í}ù¿âiïðï…ži¦Mê¹Ëý‹É×ò‰è—ö0Áõ(euzŸÔ2zÝá9ŽïŠùq(eØÎ¦O¨ÔŠl'=j¤.|ȸí:ýæoVÇýˆ/æ^ì‚Dxœû-rFp‚¸Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFÃÃL›—²\c° Nâ‚}xœû-ò@d‚¸¨¡‚‘±¾¥¾±‚¡±•±©•©ÑFìþ>>ññ\Ê)©i™y©œ›ß±W2qCE´ô¹`'îˆ?xœ»$|R`‚¸¬±‚‘¡‰¾¹¾‘©‚¡±•‘™•‘‰BVAjQvfÞFÃýL›×³´1k;»Äûx:…†xúÄ{p)+dæ%甦¤*Ø$§èçd&•–dæèeØq)§ælÖåXÊæì‰*xœ»$ã-‰cxœ»$|PTO_‹SÅ/µÄ)ØÅJ!5/%31O/C§LÁPÏPÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐx£ÎfözW?OG¿xx.å”Դ̼T…x?'gßÇx„—rfš‚‡c˜k|pd0\œKY!3/9§4%UÁ¦¸²Xf¥—2ˆ™†¤Í×ÑÙÃÓÏC«?HonbrÐf|úAÖ:E†¸ú¹¸aÚœTY’š_”’Z49Cjr%‡|=Š{t°Ø¡Ã¥ ¥˜—‚fÈv-}°ÕyÀQðñ ñ9h/4”P„9 ŒMWÒêä鎡!Æibldˆ¢ ¬èÉx°/A~LƒjKшGhÔÊÀƒ+Gµ­>5Y3ȵ®øµ£ûÅ€p š`ˆu!È€âT"­Á䕜r¼ðŠi5ÕkîIxœ;(ºOh‚¤Œ±‚‘¡¾¡¾‘‰‚¡‘•‰¡•‘¡B~RbrFêFãýL›7²$0Oà™¬Ë!=YãºAj^Jfbž^†Ž‚Mqe±>‚Ï¥ ¥`“ Ô™™—ŠÞÌ˹…à¿!*ì‚3xœ;(Ú"4ARÆHÁÈÀÀBßÀDßÈRÁÀÔÊÄÌÊÀB!7±¨$3o£ñ~¦ÍYØýï ì‚kxœ;(ºOHP_‹SÅ/µÄ)ØÅJ¡ ±(1w£Ðyö°àÈàøÇ Gßxx.å”Դ̼T…x?'gßÇxi.åÌ4Ç0Wda.e…̼äœÒ”T›âÊb}°Ñ“×s(ò$æ¥(¤•æ%—dæçM>Ç!W–Ò˰ÓãRÐÒ‡˜¦±1EÃ×ÓOhÔ@žF¢ŽB’&§†F¢¦‚‚F’¦‚½ˆmb•¦æ¥d¦¡™ál†cªPC’À†$jjNžÆ%'€ìC³4Uè#„?xœ‘ËJÃ@…—6Ý鯅L‰‹$„\¤ÅÒŠÐK°ŠiKZ ®B:™Øf’IA7}ˆ‚ÏàNÄ'pçc95½y³9sþïü?çíài_ÓḋYsЮÁ”%„ÞiuMÍ„'†QÖªnЬÖʧµJåE{Ý» Ëî…Ûqèã€P Ýn³Õ³û¡»ý" `§1²6!¡hšùžåQ‹çÂa1È(b$¢)ô¨¿x/”æ«5Î5=•>I¶eÛ½‘ÅA«à‡a4Ã’§ŽU$ cÅ÷’4–UÉãÉ21õI° áë´oúM¼DPø~KˆÇ3¸” "Ïë¿OYŽÓs¶s8I¢D"”Éø¯[!HÉv™ÀýSä1)Pán  sÓš3ÿ êß~ñ#ÿúÎX;g§8^A”¼Œx +æ²§$”ë‹GpTÜÔº,äÚ¬£í ƒ-xœÛ'Ô.0ABÒXÁÈÀÀRßÀHßÐRÁÀÀÊÔÐÊÐH!1©x£Ñ~¦ÍX2YêõµKrR‹KB“JóJJ,ô ²Js ŠJ2ŠòKÓ32òóA¼|­Ò¼”Դ̼T ¶ ÷x_Ç-}.åÌ4EˆxŠT\“KY"WY\YœœŸ—¦ì›ÌÏ©”'4¯ì„JxœÛ'ÔÈ?ABÆHÁÈÀÀBßÀDßÈRÁÀÔÊÄÌÊÀB!7±¨$3o£Ñ~¦ÍXúXü¸ åƒ.xœ[!²J`‚¤´±‚‘¡©¾™¾…‚•‰‰•‰™BV~jQúFãýL›7²ÜffqquöÙ|#‚+jìƒpxœ[!òZ`‚¤Œ‘‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFãýL›7²”³ è Åà„)xœ[!rRPW_‹SÅ/µÄ)ØÅJ!¹¤² U/C§LÁPÏPÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐx£Þfv7çÈ×xx.å”Դ̼T…x?'gßÇx¸—rfš‚‡c˜+LˆKY!3/9§4%UÁlÍdm©ØÜÄä¢üb…ļ…´Ò¼ä’Ìü¼b…’ŒÄ…ÜÄJ…¤T…ÜÌââ̼t ^¨6½ ;=.-}ˆ Š`+<ƒ|ý¼¹2óJ83‹“ró²5€ìÉ¿9x`.i.cH`è†xœ[!r\ˆ__‹SÅ/µÄ)ØÅJ¡ ÄE°9Á®!ŽÁÁ®~!\™y% Å©%‰ÅÅ©y%@îä¢F¡Á®AñnAþ¾ñ¡ž.\ÉùyÅ% ɉE Z¥Å©EñiEù¹ñ¥™)@_¢£Õf T ÕÔ6¤¢¨OÙ °\‰‚Öäßœ \¿‚Ü ¢_Læ,‡uxœuRËJÃ@]Úĭ핸Hk›L«‚ô­-¦‹V!U„P“II“’d""%ÑŸp%ø+þˆàÆÌ$mÓ¢CÜsî9só¾÷µ_‘ ÜñmµS…ÀšbiR ¡,U ‚Ð…ŒÎâÊçÕ ª"Ï.öÆŸ§;Ѱ×ïjŠÆ 6-ƒ6h_^÷oZCmÉð‚e î{CESTFñXŽnCÝõåäÎf^AØö1%LPZwÝ•…¦ðUþ³IEØv Ë\H¹N”bàz<6¤“â’Þ ‘RžOžò±GÚïƒpVBa8Ësô<òœá—ž8äDJ–šA¨ùX‡FT·J ’L\ۦʈȶŠ0UÅ…‹[Ê: |RMˆ}£Ìe¥R-ÃlèNPFìÔÒŒùº§9¼L,ƒˆâ±°É¦Sc»º¥‹RyË €ÐYù¢î:~údäAá IèÑ6Ípd/¾s‡ìÉ\õy i 3žŠË¼)?즌®ê´ÎYï"‹xœ[!rFDH_‹SÅ/µÄ)ØÅJ¡¤*-3'u£Ðyv¯(7O×xx.å”Դ̼T…x?'gßÇx„—rfš‚‡c˜+\ŒKY!3/9§4%UÁbÜdm÷zS/ÃNKAK¬/h®‚‹cdp€k_¤«cP+Ô*dQNc3S.åÔ¼”Ì4„6×gxTM1NCKs=õ Mþ¡A c¦#t! r™`Xäëé’©BèAä43ÀÐìꌮ§>Yè%œÚ€†#lBˆá±Å?1N 3˜5FHºB|ÁïäìŠÐ‡, ?ƒÉ9åxá1 Š4Ê5¡´é, xœm’ÁNÂ@†ÒM¼©ç1hµ¡I¥ `´ZõØ4í”®Á-é.ê«w^“‰ïä xöâ–ˆ†Ó63ÿ·ÿ?³}ßyÛ;ÑUåÀFqå˜-˜2ÊEX‹µg8®5¡Q¯Ÿêõ¦Þ8†F³Õ8mÕÏà1ÁtôÙüغ¾³{Žkz]”CŒ(Cðì«vÿv`¸ÞºGÊ4‚®qo­j¤ ”ãiˆp‘ÎJÙÒû²F@ÕsnšVûÆë\cØ!ø*0eÄ~ª¨ÉDøé蜔‘…4Ú„ôls‰P& Pnf1´ËýǤÈQl¢:–;0Ç3Ih„bâs^ ÆÅ"$¨Õ5¨«r4èEPè&qês¬T_éŒ ®ˆ‘Á”#P!Ía2ö„dTªùrV;- ºCñ²ÅFL¾ÅR. PÌÉÉæ= lî »Ixœ;"½Hz‚¤”©‚‘±¾¥¾±‚¡±•¡¡•¡‰BVNbîF“4vc›¼¤äü܂Ľ ;..å̼äœÒ”T›Ü’¢ÔT¨XZJjšB|¼_j‰S°K|üd>5®Ô¼”Ì4. ìd/MŸ4Ç0×x·àx$SÒJŠAf(CTƒŒ‚¨ óDUW–‰¤nód%V~›â’Ä’ø´œÄt°'Ò=nâ¼qxœ;"Ý*=ARÎHÁÈÀÀXßÀTßÈHÁÐÂÊÐÀÊÄX!«89#±47q£ÉiÎÉN\º›ó¸Â˜OÞ ÿé½/xœ;"Ý 9ARÒPŒ ŒõÈØPÁÀÔÊÀÈÊÄx£ÞOŽÍù\¡ÌÒ! Zäxœ[$Ý-=ARÔDÁÈÀÀXßÀRßÀPÁÐÔÊØÐÊÐ|£^»d^Zfº^†—rf^rNiJª‚M^RIeAjñäEìÍ 0±´’b"$Ue™ ‘Í…†¬¡9Xj€xœkü#1Aj£\C•¶ÚxœµVmsÚFþŒ~ÅN’i€Q 8i'všÎéln*$* ÛÌtFÒaÔ‚ŽJÂ.“¤¿½»'ñf'uÛ™ðÝÝî>ûì˽tÚŽ(û¾uÉô$Öï wòN»½n§Û뜾ÞéùéÙù›· §Q<Àþ\Á‹F»£uÚG–½дû¶Ó=ëôzdúýÛón~“"¿U–dˆ–¯4hƒ)W›<½—ÐŒ[Ð;;ëéôÿe=yâVder%NÇYz'ò"-7´bF‹t&ó,NŒÅR¹(D~'’D!'žHÒ¢ÌÓéºLeQ–ÀºfPÈu µ2M³(ßâ- îÓr2W_¹. e)“t–ÆaèåV"_¦e)Xåò.MpPΣR1ÉÅBÞ§Ù-Ä2KR2*…ì–¢<§qïä5gÍ)– j®‹Ã)#äJ¨ÑTÞ‘¨Nà/“e 5ÒˆG0{·*¼cNè4^DéRä”#8}LddKãLÖHîÛp*Ê)‘ñz‰Å¶Eë`=$ÊsXF¥ÈÓhQì¯ FÀ‡a¨à^Ÿ€#ReGò,ZŠ/´S&÷bU† yWX2/jVËhSAýƒqHY‚2A­‚T–²På­äˆ]3Tù(䬼Ǩ±êæ‚b%bj-4M©çrjª¬j¯¢¨ã ›`À}ðÝ‹àÚðàxä¹WÜbô'(dà±Kæ>ަëï×óáÃÃGƒ—/IDP†3v3ò˜ïƒëŽlŽ8ìNÀ™¯wL{lqçRDÇ ÀæC Zàêä€[‚{C晜}nó`¢]ðÀ!wèÏ€‘áÜÛ†£±7r}…FqYÜ7mƒ™…Ûš;èØ†þÀ°í£8é(Ì>CŠFßVXʆiq™ų™˜5dgëà˜ÉiÀn†bx½†õÙ/cTB!¡YÆÐ¸ÄàšO¤KbŽ=6$˜Ü÷Œ—®kù…ð>ó®¸Éüw`»¾ÊØØg:: åQ0](Æqìs•8îÌóÆ£€»N‹€î5fÉhm©$»ŽŠ“äzÂ¥|¨èp=`¸îQNUÖ Ê…Ù3B;ÐD¯˜Ïà XpØ¥Í1ë&#©K@×Üg-,÷IWž¯‰Šq¬Â§b!·jxмº*)ð 0¬+NäkelŸ×Mã^’?6uöiàÝñ<ÍâÅdzi,—«¨<™ÿô…ÕNœˆYA2- =ÓçVóÙÿ¹éžµÞ:-6E§Ü¬D…¼_yžÉc&³8+ÇKE™ «Gk©|€¶ ‰¢¤ s0Ʋ„0L¦è«y'Ó¤b6ƒ.ý#. ïEô{ˆ7cTh‡“f2•+‘éaõmiÏñìJgÛfõñŒ©dM<÷ðàŽçQ툺r<[D·x7âE(ÂR}°cûÁdÄ€ò¡kt¨U¶Ä Ú–f3ÙÒ>*š1tCvc»æÏÚsœ¥™hl(ˆšÓNÕªîöª;«^ØÆ¥ßhâHé|Br¨?dÃjÜà®ÙªcS†îˆ9µQõûUk4ÝÐô˜  ñ2ízP#º¡ã:ýÝij\ÇžÀ'eªæ×žÔ4ixcÇliZËÔlªÂwðWó˜AEQ [-xÿº-­Ñ(ðŠˆçФô¶à#®ÄÞ6¨Ù<ÆÎq¡ÏƒužA3 §e¨ÊW—lëêØ‘N6ê&SõÛ–H‡&–¸µã·'ƒ-¶w;0üÁ¯ó¨˜s¿xn;îǹˆ¿™ßÏZCmgxŒ;W†‹[ÏÎØ¶Qé³v°)µ£M‰í¾ÓöXâ©íz•IG]äahõG†ÃMxõ üR®¶7ü(Ê1|ÝôBl$ÓÕyc%ѽ^¤z¡àFž0Ö¹¨Dò©¬¢,›´“q¬XtðÑ€62[lè ‚Ï-õB#|û®ãXàóß%Ä Yˆ#Ÿ¯~JÄC§A³Ýª„Ê­: ­×;¯CÊf«Î»e–<òÈâV”ÿÉ/þÃWݯÖOƒÕ;̯£â‹öÏ8›,~è¡égíoy£â‹#xœ•PËNÂ@ÝI:‰1.\“4¦Ð3-D)vCÜÂ÷„Çm;Z:d˜¢hŒß@0~‚{~Œ㴀Ƹ2™ÌÍyÌ97óVü8<¯WŒÓªNÿʃh8±ÚØ^«1p(½¨3ªPê9Ìk¸p#P†+vtöÇînü´Ug ˜ã¹®×l®Ðܧ6°VËÍïÆê¥Û»ŽøÆb‚ ç%_à)¦0ºJÔj¢$¥J+J@å-Ƹ„Ñ’@ºC èc¬P¾ïYÿX~],Tׯ…ƒçžŒãToQÊ^×¢ùafÃ3x¯P&GRž(×(2È+͆$–É#1¾ nÇ\µ 1x¦6€ï-ØIT©L€¶‰Q­j%3ånðs2LžƒM \f ;àog°€ÙÀ-+Ë;Ž')ê„mƒÉËmòD¾pg‘rïwxœ[&=]z‚¨´‘‚‘…¾¡¾‘…‚¡…•¡•™BV~jQúFÃsløä'K³¯˜|’Ýt3+ÇBVÈàãŽ9xœ[&}@j‚¨´¡‚‘…¾¡)XZ™+då§¥o4<džO~²4ûŠÉ'ÙM'³r$oÞÏñœy‡ê¸á xœÍ  r™5Å}”ߊ$¥Ïd#–e2‹æÑ4@M¤¬ÂtåHÈ*Mî¢Rtä´þy²X$÷Q|ƒÏ"”!· óCüÞÚ-FÜ“4–ë,&åЊXƒëä»ä† ø'y4 ›\[>Dc¦¥å¹4Á¤ÓE-™Gâ LLhqD뜭¸ÿ -‚W)1Í’éz "¨MÛƒýH ?Ë Ù™a\޼ñX G¢wqÙï@6%Ú±÷_Wˆ­Û¾h¿…ÅÕŸ` lIçjä] ÁÀˆñÕéxÒ›\M<ñv8쎠{£w½Ž7>ýá˜8v5öš0ɤMÓ`tÃ÷Ó«q×L¼ÑèêrÒˆè|ø8Ķat—˜<КIÃÑGÄ‹ü =hŠ÷紧ĵ6òb ÜëL› ³?'ÖbÅÀ{Ûï×;öÑûÞØkÀ–õÆÐã™ß·?Ò¯hù¸Y@µ„·I[*zg¢Ý}×Câ%0¸'…fx†˜ÆWsÉ}<`—~ÅÓÅÔã›øzš,WA¾{{RѺ7…ó û¶|Ô÷ºõ—¿Ö–¾lUM¼· Ò`éNŸ=f{YÎDYÍa𯉠9ŸÆù¢08ŸEI©i]ÛRÐnÛ:zgn[-R¢‰Ÿ¹X_On_Z-«à&t[Âн1¶Aã,NGß½ù~‡À‚ÜÝÝ[¡. w§€4e4§11òý«ž±ÉÖoà1ŠCÓRµzý.‰fb»QÏ¢„~Þ¨ƒ.c¢ZƒFC£D^ƒòŒâtjfeêgáMV?í#¶›Ø›ç@ÍëìÖ;H¨"r¦Ó03xà¸ÀÁƒCz:ÁGú¨7]$YXïnB;%傺„Z}'Äk€ýñÀ/Mƒç3k`%ÄM˜oÆýœ)Vkó¼3„ iêcï-©ÁmÀÛ¨>+çÍ¿WÍû’³ÇxêŒÝ= áè$¥mçç(Žr1êMg¤ÓÛ 5Oçíñyop6,oσk=^¯¬ôÄó‡£.èàãcз“Ißó=0KíÃF‘Ý+ÿ6 À…(QZ‚ðÑ«#QçÝΩ¿â´òì= €öä-~4m‚?·xD Ü«UrŽú=MÔ±êP^ »õ‡¦xlÔàH>4Ä+Q¯?6ÄŽhÁÔP#or5ø`œ†£:üm‚Uë4jÿYpú¤øÄ±€Ž#q“€×½Gâ+5 óu‹»`±¿ËÌ\µöq\õý†n¤jõ–ijŸ†£‹v_Ô[ ­’þxÒžôÀøvÆ[¸;Ö‘ÁÃç“ ^h„–jVAl7€›ÎÁSÍlVnüÇ&ú¬ Frꦯ Má™^zƒ½¸žà  ,êÛ1txFqëÅ´¬Â¸n äÀ}(môçz=‡V¤cvý8øí̇÷>H;R£ÎmZ;ލXúáÔ¥ø ,h NA½NSƒ, ýv§"^œ‡¡ÿ~4ô?6ÐTÓRÓ¼k÷Y-eQ©®ú}ìÚW‰îEHØ)ë»dNg§ÿ*FÓ˜“9ŽÛi!i{Û[5ð7¼;ð½/¸øà‹Ó’ƒc²x„Èb„ÿk ‚!~•7£ÑMóu°¼;YbÁ-„Ђà÷Ø8ŠÓuÞ¤¸ÇÏ£p1“àuñ†¬SÆ’©™§Óu qN€Q'†™¦A ÒN¿%ë»ØµgVLÌ?f‘ÁuëM„Æý#ÉS$^üò‹°öj2Ý€FÀÿê(u^ä+)(  @CÈ­ƒ½ AÿÿiGo± šõNï þ¿`¤ 럮m& `IòbÇ\0,®Æ!»Eâ@3 Af¾º½Ít~˜`ë¼4HøP¥-Ž&£Éš8g’î£Ìðè´¼Mqæ½ÉY¾t}8ÇGtž…²eP+-”†ŸÏÆcØñ˱:·»YîãI@,û†EÔðÉœ!c©¥)”’™'|ž ä«°sˆvsB ”÷G>€‡šñöᬈ%?wNp>š@2?ˆ Õ‰ËDäeœªy°^0å(Ô5©s çv˜«ÆÎR£(Ød6ža¨k5Û:.cgy]zîï5èÅq‰¨ïlòñÒsP³ß…i4¤ ùã v²*íB¼š¯ã)%Tô&Hn@|Õëàä8+=ê–ÏpÚ¿<÷Uëó8Œô‚Ý 2ÆÌÍmr/–Aü(Àø-)ý)uý®Áƒºž~ sLf’~ÇÑËà!Z®—âš»âõò:L›¬ÅCùˆ~÷g0Vóå˜×³R#©A´» åf?ø§WŸ½ ÂÁÿ²}üvÜûo<7ãjn.P6(ŒûŠ­VL%u°\WÀÞÜ ¾Ä<ˆ `Y#ÝG‹Lw‚áû'}ðp&G¢p²b/fa¾Ë0DqÑ„×È fœ¬Ì—ÁJêvO,¦Œ/Û#oüI> ßõýË!øjŸÅk)ƒõ5¸}7q8£pQ;%ž½yà ©³ ;¿âäD Ô Ø ü¶@YI®yÇÒuBê)Äm,Ã%,³®”@­>ínŠý¦IVA 8öÊÿô@aGÁUÇéz>é¹b˜/Êjv€{€qû|©¹:_mm&’:· ÛõÎ@ÖÎI´VµT°/¤„Žƒh<.òe7} Ëàø&èlŒºïG–›6•¢Ï¾š4YàBÃ’>É£.ù{d~œàC¹¤5*ÍmÇw­p7k0áÎ lB˜ÆàßI5r$Û)ê—œP=ð«vŽýUÇ|¦Úç3ÕvC«T‘¼j…˜\µÂWÕ ³j…¯º‚aÝ ßU;šhïžú¨[t°ÔõN¯ÞnIqœ¯RXàœ;°nisëåÙÿÄ?d?¬èïìWý}°þêö—Mv#_ê˜ùP7M0…+è„‚†ÆVª_ê7:œÂê—¶F³†m ŽÓ˜/eŒ®k£Sé 5­cZ‚“óZpδg½~_@¬3VqÆ­ Tºk)e¯`Q·1çjX£õl¿=žˆ³‘‘f{|êQ°ç½·çâ¢=þYa±ÇÇvø^TƒB9V…ùg 9šT``¡«Á¨Çx_¢ÿšÉ«³¡â#}fu2@µ˜l›Cåä)ÕÇ õû‡[ÆAƒô†VóœÔ^¨¶ÃæiuT© Êè«õÜ*$‘ªrXa;`¹ * A€FÑ‘ãcô8àè;¦âŽ_I‰Ò˜!ƒW“ëä1+)þµDZŽ F}ä‚» =m¿Ó’ ^5ØûôõÛŸþ°Óî‹ÎÈkcvø©´Ïž›oÜ*&¥a-'yª’9ijêt îv ¶fÉ>|‘Q²}p¤§'Ç;Vðc:Ù:–Ž/½F×ýq!°É€H”Aðä;Æ6Ù[Äе€ÒvH¥)»å“éÞ)Ö¤ÿå8Šä}I‡Âé ¿ËqÚ›\´/í!¢ÐÕhpv ‡åöS¤Ç‰œd•GKL%)ûCÙc–Ã~)ïÚ”>Ñ{Uò¥Qé$vð¢7¨[éëŤ¥)È”HO®VÚUß_$7uí‚6l¬v2ŽäRSÉÎä59’ÔH.{²‡Ÿ|[äÂz…Œ 4埥³¿ã‘ÇËk¡·îŒ%(K)0䉵`¦¬"ãXÁMÔô¿YÞ|Ló$µSF#gܳòœN1Á«ólµ» ‹$ïM®«ØŒ²tÚ{+Ó…×8+ì9iïgRI¯Øø˜‹_é\hPd·Éz1S"EÄAbˆ‡N†‰–gpˆi9êêEêPusÈ|«J˸ÆQú¤ð÷¬b$ˆ.2;°½¿¦·T’®cJ€Ð‚JHÒG®mÒ€ËÊ•lÉÌpÅbT†øo˜÷\¥ 8í@K—²f‘Ä7¦¢ IÎÄ>ÞÝ á!8]Ž[v¶x%ù"sòRœþ)m…L7Wt”I>˜´%‹+CÞ°æÆÊU *Ê~\óžÍqé,ò´ØÄ<éoŠB\‰RµKÙÅAÊk¯‚iHZ‘#áC.nÒ+‡Vù}RHæ¼ÕQ©óÎ~ÜlÌ“àêüîéYoÂÎ bmq`¨ K Jà2 ЉJ 1ÓÜÄâà3tÂ×¶9ÖØ\`œwê´¬¶öÔ¡ã@š„‰S"¤h1ä‡ÀÓE”¯ÞQîIæs”Å–>H¾ñH}0#2lw»#xV_4‰MI!˜=çh‘'¥‰³rQÇÅ“Š_;öRuÒZ—Áà ?e†{ Î[^¨"ŠªÄ„Ò“¸£N¯G|ã‰7bÐiwν.<¼~m"æb&Š”— i˜}úa†j’éÀmwiôÙº’‘V«ƒÒæòš“¤K™$ÉEñ“Ͱm(± Âiø÷5©&_¬Ò 0Èï̢싲0¬213jÂø&*Æbº“ôdeNÒrNg‘tÛÙ¶ÕzDŠ)8ákîÈaV½ öÒ Ð> œK5Gø€;±³C¾¤!š¦ù´³co×grç 0 ë²ÕÔQñAÄdî ³ÈKVÔžF7:m_ ;q®eÃâ¥Êa§‹ËPíJ³šdÀ u·1'ãæbx¼µ'P.V ; kY,ßò=É—”‡2R’åúxX)^G $~Æï;-As”cP.„š]¯Œ'#6T|¨­ÄÔ;phÿ©ú k…ÿJŽæEé€X(躽úháÛX… JÂWECÅľe>÷•‰|‚㨴JWø3sd´1îSPØËH%XŽ™- œ\ ¿Ò€«ôRcA×àåîÒéÕÙ¹×îŠí|1´×ºŸ›b› Ù‡›Üú©èjaÀÏš˜jB3Íž ;*56@_œ‘h¡(|ÿæ}® ´_¿6¥Ù5˜Âø§ò‚HyXøB<í3eý¨ÅM.ƒ²} ‘qMjË|SÁNeä•m¡ÛÞ8Lˆ)—pU:¥šaXžÈŒ£s~) å-Ðq¥)9ýåXÀø—=tÄÈ B˜ºa½6èrr6€`W^¿¦ý  AúòFÄGÊu¸^}j}'p¾¼vßG—ÍÜÛ„`Û€W{È*ؤ(•W5$ÉzGÜ€œÅºXã7]®êÈ.‹ñÁØÓ¢ã¶Ï®½!@Æ–< ÞQ"ëh£@ðé´’-–PÔ°L¼¦ì(^žÀ‚Õƒ¬U5ëÆCÿB¹îò`rÀ´Š”— ÛÛ/ïMôŽkes,þ×ìb­BHä5Ê¿ÉØ/EoЛH¦?gËyÁj×õòù&¸V}XÊLyS”Òœ„Hí°áE<ó¯£ Å"É:ûîYiˆ“ ÛM©PD >öbž{RjŠÁuVL†MÇ,¤ãç¾¢­Pî·âÂ>ãÒ{lÐ×®Ó0ør¤xÏçíxŽD0]MM–#Âñ é¨IÐy¾„DÄ‘‘ Bb—yÿ Â-Kʽ&Ò³û(ŸÞŠ:[%â½  œ”ÃÂ3¸0‡[* fà‹,3Éï'É-Sk/÷ÙÃMÚ‡Vkˆ'ÙY{Ð$k·žžEM¢Þ’ bãáÓL”Lû5³×ñlA“*…4°Ø¤X|Ô">Ï[¥H`Õ¥ÓS l×y$ê\DJÉ¢êH”n÷}«V€Bf=QPÖ‘Xl²¨Öˆ ~‘†KˆŸÛAn+iÔò&9þ *«Ñ*”–¼×Iš×¥çû¥UyÑr*Óy´~3&Ô-ìFVÁµ4ô¶Ñ‡ÅÍtJŠÇ-˜³YbÆ÷G(g½ÑxR9½“_²|¯;ì„8ª‚ú &xÕ‹]™ ‡*SoMFRµZ–A5Ñ1’å”°ñH™Í/à;LŸö? û¥#¹6.%ìŒEQá’u¤üµ¦ãò½SÞÂ* ÞEÉžó@Ç­WÖ[9öìr7Ưب)‹YªÊýÏ ÛÑ>ai—,¾X @ÕRfZ| ÓN˵ضæ—F[¨—°6.Çf€Z ð»½öÛöxì&( ª¨í¨Øµž»òþ bo!—J”<ö ™²ÕN›‹ýs“½6â…íÕ›­¯Øù ©› vÊÖì¥ªÊø ÈÕT³Zíõëò‘à‚*Æhá—êé[–×^Ю¨VÍЖˆµmkƒI°ì®-€L¶)†®`šŽ¾]+]! ]Úb=LšhŠNDKüYÙè\å¡ã¶6´§ñ8ãwΫ-?}Ê?°#MÖœˆçl®»µÒ-¯’QxRvò¦o¸€|2¿½-®&ø ,½çTƒ”.ÍNÌ­>˜Ò4´ì>W1Ìø¥ Ò͘¶ÜÉbæ+ý‹WwZȹ°ù+^âõ²)¨ÀçËÌÒ,Ro›Ó`šr ÛdšÉ€ú9fÅÐ&*_»{U,uj¨·¬™hql-Iœhå<–åªuènõòx€ƒÔ½¾®<°°ž»•êÜ&üÙ*ÚäTˆEzæmÐJ„]«LV&‚d‘^CMò^¸CÍ+lú'A,J»¡~3DÝÙ¢¦ÚIý…«ÀªnœJuRö[¹Úµf­ŸÉB ?! ŠGÕÖð >…U4ø.°¤Û$IN¹b{ƒ¨å«.OéñO’Q…žà½†m œÉ°8ªnDìw™X$7âú½­ ìáüF^„âé:MQr¨4Îú¡>:@„ƒ§–b) º¨ì’›TÁ‹>qUeáÕo¡6TJÔŒÕRo*TòèŸHm|™Óâ°S/iëU³`ŸÀÒ›LúìŒó Í©2Nß,Y_/ð‘„½pÊ E]ÕhÍýKQW(™€C&°$efGîÕÙ÷?¾OÛçd½ª•¨® Üb©“'Oܬƒ4ÙP58É!þ0_FW úÅ]T'Ø/Ç"&õÂïmóÝÉËúAŠ›Dà•s1ÁžÑ–súÍ/­üUžêbeX +]¼|Ïo°Â>1]ÇR·Þ U` ÷ý‰e¸\&wa¯.䕊Xž*Gbi?TÅ‘óc=×yˆåI+þ©[Gnmþ)¯,®¬ŸóB®°Ÿ,Õ`„zéƒ"é /?Ö‹wnðǽX>!sŠ`ò§A4 |®åWv4¤|»¨ðZzk §_Ò*ƒÝFóÜ‚ÃÇ*À™ƒo¶ _æ€e›Áœi³Ó&wó…O¦O›¦Já}Z€™a’nª`~ÌÃÚ(ÕT5à6º¹õ—AöEÃë–ê»w¡UC°|9Mê÷Ù*@c¬ ×€ôTIí,•?¦ˆ• •À>š:N1HhÕB/«Þ4IiŸ¹B+ÔÔV«R%—~ëŽ8òO‡ØL듞.žØÍÅ\ÛéÕª2Ç­ÚÒ?~߾ğ²l±Ã:¢Å.s&‹=ú–;”ü{f›†d›;6árN‰lç””a‰b¯sÊü¸ßØgÉw±KKti2K€K}ß'®%Þ9ÂyÂiïRIe¦âÿDã¶}â¹xœ›±‡ñçnÆ âÒÆ F†ú&úF VÆFVFÆ Yù©EéMõØñÉond÷gœüˆÃb³"ç÷‘1Éâ¹cxœ›±‡ñènÆ âÒF Fú†úÆ †–VFæVF Yù©EéMõØñÉond—fœüˆÃb³"ç÷„Eåº(xœ›±‡±m7ãqiC# }C R00°22´21VÈÊO-JßhªÇŽO~r#»(sqeñäyì7+q~ ±çß±…xœ½ZÿwâÆÿYþ+öåÒÎ|vûr­aôˆJÂ>7Mˆ@ ¨'$ž$ü¥Mò·wfv%­0I.¯I/y¶¤ÝùÌì|ß]ŸkŸŽyÖqzWlí¥ë“uãµNÎX»Ùjž6Û§í/YëâªýåU³ÉþódÅŒ§-ûT;>=:=ֶζyy ÿ·/X»uÕº¼:»Th‘h_±cÖ·ÏI°Zg¬¶¨³ÖW_5øóŒ~¾š»æÌæ+e)‹—,ƒ×i<ð$ ²güÒõÂ`'Qà0¦‡!#¼”%<åÉ÷OY¹ë e‹Øç ~û< Ÿ-“xÃÒx™=z ‡Ñ(K‚ù.ƒ‘,fž|à!fógyÉ*f³ó$Gµ¹¤‚(ˆ#æE>Û¥À"Ô]²àôeD^òÌ@ÊMÚ`A¶fqB¿ã]†(›Ø–ÁÂCŒCQ¶<Ù ²Mâ‡ÀG‰Ö^Fë_Æa?Ñ ö$Jé6<»ÂçÖÉžh¤=)ia³K3PR欈êÍã’AøÅY°à ˜Z aJ¶´¼ªLÀtzÁF舵_  ä‚À:ý÷çÈÂÄ*%’/vp)/7Ú)Ø#†ñ„m¼ |à ÓRñd0V—A‹;;acŽGÞ†pÒ(.‡É A––¾'©”jã«qôr?ù0ÆÑU@”Mœq&t”íù/é#wb‰%‹¥[¾@×Ò}.A§Š„{¥©\…ÇÀt˜cõÝ;Ý6¾gÆû‰m8³lfŽ&CpØÖÇ®i8 fŽ»ÃiÏß4 °±å²¡92]˜æZ ä‡@/)™Õg#ÃîàUï˜CÓ½'ú¦;Fv}à§³‰n»fw:Ôm6™ÚË!4\WÏtºCÝ=Hæ3ã–Åœ>VÖ H•ev Qï ‹øÀ2{¦mt]\OùÔ­tÃs&F×Äã½KÑíû†„uŒ¿Oa "ZOé7°¸Úo¨LÒÚÆE8ÓŽãšîÔ5Øeõ„xǰoÍ®á\³¡åƦŽÑ&®NìÔÃðÜ™:&)λ†mO'®ië4°î@3 ¬Ô=R²5¦5ƒ’,ûqQdƒ»ðÝF’ÖtÔ…Ú뺈¦Ì® OWY,7C´Þ5pÔB ;Ó1ê`2ÓÁ ¦à|§ßÓ§´|4È&çmI™ÙgzïÖDáådpÇ”NcõÉ™vRû2´¿Õ^ÕE5Ó.¡ Öò"Pgç§g­S*JP¿^K6ÐoÙ¸ãZÖp‹î›7³ D‹pùõ“hžÅq8ƒ@_«“õ'G¯ ¢ƒ%Ö>fAz"kZö¼å>_BÄï6ì?GÚ@w³4HO“©ò46îäKÏ®!_ú¦í䳯Æ{÷è'&c^¿În¹„$5ò"oÅ1ó1ÈdIvP%U ÄW6›ï–kîùàý¡÷dÄ”ƒšv¼MøÃµ¦£¡=…Ô} TeFÄŸ²_Ÿ?,C1ÂĹ„ ζ ,› Ñ‘)üBš]egíY¦1Ï÷A£ÃOe‹éHqòbí%(!¼Ë™°j/|/óÊYL[†Þ*½>zª"ŽÂÍF×|j6›­ü;je™äñ½]™ß™v¿1\1ò¦221Çéòè'ÐhŽf:’¨ö¾®ÕàûŒ•Hõ£Â8RWìøØ1n0 ÛÀ[™ëÍC€Š°¢ŠªöÒªèÖk?aÿ!=ô‚ô6IPâÀ¶q’Si¹zµ· Bk#|Ät ˆeÈ1­PÅ‹£k¤¸ÏÌìUÆ R vž¡¨YInØgžÿ–æêìxv:As9ðuâ:XfêLF_ª³ü®$|5÷ùXZNsøŠ¢äФ’c>ëKôæÙ6†wRÆ´PÉUÇN©_›sìSŽ4ü‡-t.ÐBe¯ …^šÍ– ç>¡ =ì}*QBƒûÖ{‚hEØ‚cä=È2b»"lW+tkh¹f/ýp- nÝ´¨»0êL2P£ð€=AãÇ_'… Ì^¸DiŠu€Z.=4!õèëÅ{uRô?§ÂãÝfЀŠßpe¥›î-ÐOÈMƬAó”,SNŸavPšÿà…;"@ô4"ö7Æ})òxwõîÀèigm‹ ÁæAMÞVtªéí_h€|e/œhJú­üîÀ•ð Å òk]%0B>%%Êá•)²ê;BBÒ!ØOTK=ûúèE]i2‹Œøƒ©È#”Q‹ÚBRI†z¦T´ VLùê…ËPHE˜¥%:D%&ñºB·€"ÕŽÑ„õh§‡8€øi0̳¬N£ÌºÜE 55j²Jó>< —P¤[nå`Ev•‹•µ(Ûl±Œ —o õâ^H–h4jǼÙ+M‚(÷Á_$"ÏWÊ*ìµeåëî’„r}^IÚ…’#ò2;”s"ÿI`˜‘ÏŸPÙXÐa#Ã7 T³¨BòDÚHLZèõk’³×•–YÄ›-”«yâF©tþ8[‚ö®%K܃†¡çZú¸}Ÿ{‹˜7SHJ z—(©÷ÀÁ<®9mÙaKÆÅ^kîÀÔ1/+ÞùSUçâd[¯‰°tŠx¤<”äšð5W"ìX¡©d†½Ùà /\´B°÷åPn€Ë‹²Qµ½lÕ®•+@X˜ìÄId?îâyŒ¢ïË’êES$ØzQë!Np z<®#%j#ýý¬ã˜ÿ04íâüüì‚ Ûß·.ÔD92ÇÐäôû†íÀ4õ3¤ A|Þ*º+Ö3°'êï£^¼aߨ¨b¶N31õM󫋃£³ïj­6¡„ñª]“×>hG µÏ/ H¤ËHÔµ}(Ø%†ê÷¡]·l¹°ŠŠŠ¡¢„åЃñ/‹o²Á·Oþòi«gßöIY–¦#1Üjž]ž_ž•Ýì½›/A+¿Â†pæZ3i+ŸU‚óböÏ ø=l&õæS_þ«W&v‡†+j–]ðÄ…m©è€‹>·^Y¹ˆ³0ŽVu˜ðÙÏͧ³z]iŸ¡E„[uzó©UNîYÅd賿f5Ì®¿ÀèG¤Tù`Ëÿ«ŒÚ*£röÇpj§Ò"°=ŸM {6Ò'ÐFP—ûšý\k½}[ƒ¡¿¨CuE3`õßú4ð[8¦H¿!Ï/£©;ÇM¹Ñ¥ƒj:6¨4="÷Š&¼l`[-#Q·ñD9cÜ[¬™ïæ¡Ð2‚¡N©el`YxQ™ƒEB-Ð;qÚ½½ŽK&~è? ¬xËÎÑBعŠBu*ÆŠ8Å §è¢[­*b bB§Å^VÊÙ>«‰6 ñ¼ºœFZA4!'üMXæÁÖO§¡­ú‰<)3ØCdÔVõëH§ò—ý~õ;$¤YZ §q½ÎÞ½SÐJï°&úQÐŒq—\À³4Kïõìd§aU#Uytêìí[• û‚Õ¬JŠ ¹Ö:uöÏ# }A}ÿöõ;(Q:´û‚†pì¯ù˜3ÑmÃùv6£b ÊЩ9åuë;vÅšÊÚHj…›öO¬ãª ¬®_ˆz€y ­×-†RÚÁ¯EqFŸ¬é¬Ù ð„œùxà‚=}ž.’`K­Ì$b#Iù©ðßÂð¹!ZKô?jL)j HCù!t¼\R®§òN½ZÄ Å1Jî=Ì‹†€YÁ bȥݳôÉe¼ƒ†Wé» <<§ŽÐ—üñð¼"–˜ªÆKå¾àJ¬š’Åmˆ*ÕlOïcˆ“`¤€­$ü¨)H 㢶—¥÷Ã_¬HjZèGÐR^Ñ<Å·n »?´îÈf`ÞŽa¢IIé°[ΰ¸ÓݧÌÅEÊ2Hà¤>-¤Æ~]¤'bƒj6û Jd¤Âcâ(|¦é u¬€tBd.N ÒFa®ûÞ˜ÊöÓJˆO j yÉ.aÓ ’ ‚+‡u(² "4j,w9CEc¥»ªÚ @ä÷U²H{cKUœ¦½ ‚í‰t–C…U.³ RyeK1YÉðu%ÛKÚ8Uü¡BK±ˆMiÞþtøûl›«/82‚:ºS xŒ¡X¥P™äq·Ö…7Ö*•(b-À\›3h"…}dØBd¸ÑB¶]mÎ]}fì1Þ…~ôy†nP—ÞNË®øVAJWké¹L¤à2äK#çzyaáYÿ‹ | kÿYÖ•êo«êÏã¡AÐ4Ö ­cŠ>/ô›<`ðÐoäI.-¢ÉW£IøÆÇh/Œþ4U“ÀqD”˜üäªÿ¿ê/¸Ìp­Læ™ßfyvªŒ°«_ް&öŠŠwHY­ŒÞP(’¾2yAú¦?I«úQµŸ;Çh‚Оý!æ.¼÷ã|ñwÄ#5àxOŸ‹MWá'/siÂTM‘ža†7ü{2:µ.~”½^„ªPæ[Eïľ¼S!§ž>&fÿ`KÌ›û ;ÅDŒÃ˜Z[hYjÿ,›G 1Øÿ<7Dľ°R&ûû›¢l–'JãUnyŠzÝ~ñ‰ôR±h¶!©ßÐæÕYÇ ^ÒE¾8Úýµ8æTÎÓ_í"º Äs¤ò·1åîEœ1­ýä„nÒ”qj#FðÖª<°(iü sSޤÕ-­¢ -»gØbH\øU49›XæØ¥Ñò¢¬ÐËPwÜYß6Œž /.¿Êc1<^­8£¼é*užšá¸¼J*æÍ`FÛR-î»éïÊáüJ«‘cò(¸„-€cZc1(/XEܘ]M*a,J!÷B‡BNpkRa)ë,?/$aó+®£òïÞò$‰â“õ;ü[ô2Íè»÷£0“xÕ4ÃßêÃü¯þ ß×Jå.xœ»°-`‚¸¨‘‚‘…¾¡¾‘…‚¡©•™•‘ÙFvÕÍçT›™É2 ¥å_xœ»ðÕ‚¸¨¡‚‘…¾¡)XZ™oÔiWÝ|NÕ‰ ÏÓ Ž²ªxœÍ<û{ÛÆ‘?“ÅÚiR&õrz×H±úQ$á³Dªe×çËÇ‚ÄR‰p¨Gÿï™}`$&Mïê/µÉ}ÌÎÎ{f‡ÝÙjüaÀócïä€ÝúÙídÞÜñ§íYçžímï±ýÝÝ?íìíÂlw÷`ïàûwìbžÞ0ç1ahlí4w¶õö÷ˆÝÄÞüqÿàÝ @t›l‹õãä) onsÖšµÙÞ?ìvðïwô÷÷°¢1¾ålÄox”g,ž³¾^Gá=O³0‘¾¿çq…þ6c½Å‚¼Œ¥<ãé=¶ 5¾ 36‹Îà߀§#`ó4^²,žç~Êa6ÊÓpºÊa&Ù1Oïø‚?±é¸ôÓ›˜y|‘ÿ§ êˆa&6…qÄü(`« Žˆê*q™†‘Ÿ>1Àr™uØC˜ß²8¥ãUŽP–qÎÙ0: QIxº sD$Iãû0@Œnýœî?‹ø!Œná ÄMBÁ}Kžàç½íjD=‰Qa¹Êr Rî®ÕŸÆ÷8%‚@àOçáŒw`PmðLq,]ÏÆ -üp)hÄö× Š(DàžÁ û×àÂÄ-%¤ ž­– R¾bÚð#†ù”-ýdÃ_dá‰aؼ]îÝ6ðöá|ä/y…Fq1Mló¬µ8Í$VKD£üøñ(€9Ž¢¨,ãœ3A£¼$¿D%Ä–.–%|†¢[C”¹…*â•eò¤ç®Ç¼áéøSoä0ø|5~tOœvü&6rΜÁØc½Á ëã‘{|=Ž<ö·¿õ<ØðÝw8… zƒÏÌùëÕÈñ<61÷òêÂ8xÔŒ]Çë0wп¸>qgPØ`8fî¥;†eãaÏC@ë;Ùð”]:£þ9|í»îø3!têŽxÜ)œ×cW½ÑØí__ôFìêzt5ôÞëÄõú=÷Ò9cáà`æ|„k1ï¼wqaÝ Y×ŧ>P °»è0ïÊ黸Áù«Wé>w$XÏùË5,‚I„vÒ»ìÁåZ/XÒ¿9—ˆ0»>öÆîøzì°³áðÄCPÞsFݾ㲋¡G»öœ2îÑñÈÓðùøÚs‰pî`ìŒF×Wcw8h# óá'  ÛƒÝ'Däá€î DŽ>#\¤ñ Ã>;0>BšÕzH ¨×#4c%œ ô—eçìª÷œ" O®ç´e®‡ \qò§Þgºã5]™¸‰†ðvˆ¥Ì=e½“."/ƒ x®šá)Bò®ûç’ú¨à—¾ £ÙbæñÇh:‹—‰ŸoßUŒîÌ>Ïp®9™Œúž{ÒzýϸÕ×íCtŠˆÔU¯ÿ`H<¯?r‰5hÛÇá Ð;Ÿû°( hëæÒÊà.üžø³;ÿ†kGTCV“wpÁÈEþ¡MÓ ÀCpÅ@–,¼øFàMïà8ViT|ÀQæ\|Ÿ‡Q0YøY>IRä¨8oÖ™Ïr<Ñü*O·X=e;‰ŸúK¢s1ÎÓ4Šm¾dy®-Âiy,ÚØc~†W+¡ùØ^#y·o_#xI{„yq¬™¡™÷É™qñÖ9X/¶…Z~zîôNð#,%=ËÏ {‘Jµ›Å.)EÇ&Ópàs¼b®%ˆÁé11­Ý¦©ÄS ’ò8G}£#äxFò³ËÞ¿?bÃð¹»GŸÁx GÄ?À¢iÊŒDé–8OWsø ^Ü8ÝŽ·¾ßû‹vóçfc÷þc’³­ä°Ù@bÀÊIþ"–`}94Vf û0»„ b2}Ê9]ñ|+f·~ʶfp0GÔìÐIô $ó%ëöž!¦Ý#äòa£±1+ñgÀa–Ä! 6ºôdïÞÀõ­ãvë>øwFàÔ™¸H Ò†¡î‘<|rr †¹ECâ~‚£ ua܇CzÌ)ä ˜0T†ICLE7S¯@Dá–§a œ@’p|€0/Øl m`ÓéÈq<0UN+i³.;vφà.·Å©¸´Ã9ðTâŒI£¶ uãá6\pÖR7m3à|£` l¹t-ÉX½ 66€³0;<=õœ±À¥Ø†óK¾Äðò-ŠØ.Xßün;¤¦w÷} ˜æàÛòLH$_vÂÏÉ—·o£Ÿ`@H]Çá â7I@Ä» ÆþÌ™\:ã^+¢£k)×°^AÁFAã`Bƒâ¡ÞÅäƒóGQ at2ñƒ`ßÏ(Û-© 8Iç…sÖzEßàKCØ{ÖêîµË·¥…6ã4ŸM¤q--¦I¹°–ÇJ>Å6Hú}‰ˆ¯‰ ñjAp˜3þ*¹xRa¾\›ò%¤7è %Ô™÷À¡é’ÅÑ["0ÞŒ”]$a&4 Œî}H ¢\'bj ¡B`!dg˜P‘7h è⨠d¬÷ÃŶœÛ¡5‰À°j2°7oŠÏb\¨+q§Ñ¸‰ñq¼€$• ’½¤Uª¡¬I­j4 ƒ³¦¨¬)Ž–E)™ôPÚDZÓë Πƨb¶$í%kS†]!ú¯Œ/€u$eŠ0u'‹Mñ¿:#n8XUö R±ºGó…“±_Þ£¯›\O Öh>£ûµfó«0Ödmª‰9(KÿRK­õóYKmi1é0¦<åße2XÝ¡.ý;βUÊ…r…†ŽƒNe¨TBá`{†Y6)˜Ÿ©À…VuŠ«bøpÜGeøvSé×oЮârÝîoó8/ªU½âÔ«Û¿¥ÇAòÚ¢¡ßRµÍ\PÉ•P• >)£P•6=ÿ:¬/¶ +¿ª¾ïC̰‡[Ñ%AeHê©tn-#?“æ¡¿ €0.à,»%¿2ål¯-Cw¬ŠâÖLºGŒêKá>œñ$§s¨Ž8O!UØfìg3?ŠbªÁá X2å3%#!E¡0:ZPfð©X ‹3‘[<ˆïrvÃs–†B’E0@oW§F†Q`ˆ¤ó™ƒ=B)éÓŽ­gÍ”ak Ãx“(6²ŒLdë‰A*X‚Qad#Óœˆ8VîÊ(_µ¡}¥Çù…µ¦Ép\¯J‚Ûª†ê"¼/à¶µA± õÀ8uOÕVZÄY)•Ë‘ñB~|ž‹ÇE¤ÃÊ,Änm¾±4yË4sŽLç ()‡XŒz˜É½" 3±?¦ K󶯾ZñB;§I›.8M¹G6QvOÉ@vÙYÏ´^éSm©@z'ðE)âí»}Pc·ÃR‘ÒîêèYI¡1™ ×l^ƒ› 1R*L`Z‡S6ê¤iœŠä³^èRKêDÐДLõDÅ$V#ÿÄÑB53|Påm¬ ËŠ€½8^ß;§LE¬ÛEÛ T1Ë”PªüÉ2!T.W‘8óç9UØIVè˜>²GaN0”E‚ë€8Ãä­_kŸ¶›$L;Ñ»þák„xeõŠ{‹ó‘Ú‘$ò¿¦hER¬T`þ,Qâ,HQ o3‹â±#¶/4žð—JêGEZC*£„âËz:mÜR{ØðãéF…ÛCéTÂ'¾¡¸(ŸiËÖMy BšÁš}²‡""A[*)i@÷èØsÿËYKj©¥áUþTF%bÖ<yR«éHX­f5ÊšªÈÄÔn´:úó+I¼g€ßlHô`Â< .íH`gÍ-¢_$o.™ÍãUDî]$i1éŒ%4½Ï–܇€ÁÚ¨-.2ÔŒhË;ÆÑ²—ʺ°EöÙ¢zÏ(xì0Q¢Âމ€úgÛëꪜ®î•«y*à•Ð1r3[ïdÍK‚ÐA&–Ð[*‹)‰'jvðˆÊŽÏkbÑJ€˜†xü’]q)vÔ-ü7$³eÒÂÔAÎuØ‘P¥"k°½Á¾¨[ám O(ÊU*§Ð#/»3}“ýŸD(nº´Š‚Ð;š¬H†ëDn  ˆƒ¼ùt"(@¢–IÄû&œ|ÎÎ{ÞùÄ÷Æ®7vûôö-½Æ`=Ä÷N Â7,†óf™|ÚΩa8ÑŒÇÏÂ{.ÃçÕ|n— ?g*Nù¤[¨4Š¡CYn§Z‘v¦´ÀìTx!hÏ@¥§I¢<¢<÷–ûAql•kn…^^rIÞIùCpVrµoñtn–!»rX‡`…Â"R–D÷oŸ“A8<Úi8|#L®ôˆ@Éýœ´ÃT°»b¯lˆ#†÷1.NCPå–ÙÒOï8Ñ‘?&‹pæ‚ä:B.Âò¸`톑2®‚?-ˆ&` ™]D´Zá †í Ú «Kqu¤cêÍãæ—m ÌQ0%_¯@L°W{k„“zõBø»ý¢Ù›¤Ä'Wßý„x• ƒ•¦ Í¢@X½ÃÚù5•µ¦üÓv3ïaTJ©Däïvï/ü§LdóÛ¥ôW ³™+VOjÒOf«4‘³u)ƒ y²®M uD%‹øAj‡œ'›»c™ÒÖ;K¡i9©"…ÛÈM‰’ÑfhVy'e¥Mÿ&ø ¶ÝÐlÂP‡&»G’k²|Ii%<’í %[éE)O¼ÂVϧ ®®#À)ð«0»©Í8UpmH!t% Û±–#TÂN±%Œ¬ ¿¼”ÿï*¬¨«]¼NQÃÐåà=Š†ÐŸ¡ý”{ŠêÆv³x‹Ñ¤"æ¹$½DVÕÕ¯ k°X ¸¥ðå…ð‚?»ÕF7”ó•D$“ºlãCئ w#Ëkä‰ñÔ¬Š;WÑK¿F+|þDèä²8^¬‘‘y™²T°7ì•|7,Œ¶p_?‹t›-ã”ËszZ+X (C"ÙTæ5##¬óUsFyû¶4\؆Ò#ÓÌ2Å"òº›Åcª|í[ãv z@«J dLøB0Ú€¢s-=ž¡àצþûkÉ£È5›íÞã  #È÷˜ =¶â½N€Í2uH€ ˆ9†VN]FF}·°7’%Ë8’!w&…ŸeÇ|ì] ‘íhàCO‘'ÚÔ›$Z¾LP0:fDwõ^¤®w—½U*dê)ô!ÕÏÙ-ÛBÕçqî/Hˉz˜ü?Iòf"ðOãÕÍ­Ž'áîh"ê0†ì@D^*ÁöéñŸ±§x%r¶JDØR435+š™ê£b¿ŒYž/èÍS+‚1C´|"˜@øc—µÜõÙÔ•¶W&òäOëÌ~ó™p­ÕrEJx¢pG€„¿˜«˜Áæ>é3ú³ò¸Z^G½#n¶ö qdz/Ô¹*"‘æXš‡*«³¡e¶íq­1©´>–Ùµ·6•YÛØ»ê¶ñ­³½k¦—P©7´/˜×¼Í=´UýÚ4Éð8ý'#P€¹^KÉœL«¬ó£Ì ”H’}±ù’” ™ù*e_kC…®¶¬+jñ·mp­i}cKø@ .Ú*4»- Ix}ý ÿ$M¬‚*UÀÈïN±|"ßM±ŒÏHôdíT\ÌüLöÔ>kâŠÖǵ ¬nõ3%6Z~r—: ¤Ã3ö=ïub­o¡âhÍusA:ýjç"¯§=Iç%wCÜØØÛm·/8›jF”¼‹]³.¹”Röl8 ß×ÙÔ{›:Ïñk_ˆÙÏh ×ô?mÅ%[HP«µ×(»"˜¯tE¢þþÛ]‘U ±”bÏPŠ*£ôh; …%Ó)–™øý®¦ØuézøÚú«BÓ76[~/ûY~½’]L´u”™ôOZ͆©­†ÆI¯x%«ïyŒ-2X ˆY²¢Rs&*7X*d16Ãs¥ûk0јˆ?¨•ävEhb¯1^peñBË­žë$é ðh,stt>ðŒ~¦–ÐF%w A±À§ƒÎîq\ÜûºpÇ“‘3¾ Ø¿i›)à¢]ÇË­™ŒZ:ò= ˆ‡Æ¹`Ü¢ë Ž^2eO_¤ºéK=1¤Eê"Åû7ìûð×hªËÀ¦ÖMÌ3ºT¡ÑÊw*•V$doá7¤:»íu&pG“:™ Y™ #ûðdý¶hT­’¤n«P½p»Gø ª ìÚ …„úFa×&@»ÅcÞ«H¢­Â3†Æ>Ò¼ön»Þˆ ècd°X4†bo%Vq@΢d'–ýúQi­ 919q{g=ÏsFãV¤Ÿõ¥-–ŽDÑBaÃÇý¤¨•Ë¡˜$¿T½ºËW»çøúl¯Ù Ïמ') 7oeyÖ¡#žO_»g’ùöm ñyïÿm€A6“|üwôŒ+Eô[[b„vü™_¤A=Ú¢™K`ršƒíâ¥Ð€€*z“È ¨¥Èykðd`’º(ºæI›‰‡túHstç¹ì8±zPsjJ(tÔêR“¹î-ú%T¨ §Œ†Üè×(NÑ}ž²…Ã8²«Q=ܨy#¯lÞÐI§aÊûDîQv=Pô‡æ\*Ø€F(±\‘#)ÌvíC©þA‡hĹ´úEc‘â(h+È™ñDJ°Zû ƒLœµñ§º³”«§)ìj"öÝ|$•öA« À Å©­âJ¬Š0RÔ4·äú…K–¼Ôû%šdùÓcý I¿:Îð•xža¾n¾YáOgçMÕæ'ªëÔ(IícëÊôkíèŽÓo#"l²ΊýÔ‚’|ùþ'\¤ÄàKÐX“<:r•â°>ä.ñ$xø#7j>Ƙ,ÇÄ!À@@u‘É÷ÓõV*zþ_¨©rßS)ûY«ÒH©E²ªBiÞšJ³Q'vµÚ4ªtT™àš&kå³t‹Ë«ÂlAya ´Ã‘°Mwo»S¸e,bú*)årÆN.ÿVB¦¸¨xœµYksÛ6ý,ý Äm1+ËvÒîníM:zÐ6'²¤¥¤Ù6£Ò"dqM‘’²å¶ùï{îÀ‡d§ÝÙL§Ü‹û¹ÈÑËÚ×™uÜÞ©Xzérv½Y´æÍ;qÒ:¯Žÿ~trŒÿÄññé«“Óo_‹Ç2¹öv-¾®½<ª½¬=%þ­’?þžäOþvúÝ«Ó×ß•äIò‡uñRtãõCÜ,3ј[âäûï›ôÿ×üÿo±¢6YJ1–72ÊR/D†ÏiÜÉ$ ²éza°ˆ“(ðZB´ÃP°¾T$2•Éô[ÐB[M–A*æ±/þöe¾X$ñJ¤ñ"»÷‰Ù(K‚ëM†™,™ÜÊP>ˆëRpå%7±pe˜ý*£u,ý UBA /òÅ&Å´n’¹ä‘ë ò’+WiSÜÙRÄ ÿo2Ò²Šý`Ì=ÒÑdÊZ&« #CÖI|ødÑÒËØÿE†ñ}ÝÁ~@B)i!¹•ÌNé÷IkÇ4Žž¶‰£°Ú¤‚”y°•´z×ñMé„ü‰â,˜Ë&V j!ô‘šb[v¯j6‡^°R1¯ö Á†¥ˆCà§¿qÿ[„òRkòãùf…’òLÒŽó‰Xyjà Ó"ðœ0R\vƒ{ݰÍGÞJ>R¤Q\Ls‚,-j-NRmÕÊC©Iª.?ù˜“T*0egR¨e;õËñ0E¬uéâéZΩ´ PÍ%TT‘*¯4Õ~ðñ¸t\áÏ'Úc[à÷h<|ïôìžè|Ĥ-Æö…=˜¸¢=è‰îp0;éd8vÅ/¿´]¼xAS¤ª=ø(ìGcÛuÅp,œ«Qß(·Çv›ÂtûÓž3¸h hƒáDô+g‚e“a“ö#Eû’bx.®ìq÷ŸíŽÓw&Ù sg2 íα_[ŒÚã‰ÓöÛc1šŽGC—µ‘_=ÇíöÛΕÝX8l,ì÷pK¸—í~¿â'4UÜìØ0±Ýé³.Þnöœ±Ý?ů.¢ëúMáŽì®C?ìm¸Òljµ®ýÏ)a’´õÚWí 8×øƒ° %Ý騾"ƒwÚq'Îd:±ÅÅpØsIÔ»öø½ÓµÝ3Ѻ±©k7±É¤ÍÛC Â…iüîL]‡ç &öx<MœáÀ"E—È ŒmCºÇAØgi8þHz)œƒ¦øpic|L1娵).¢×¶ÒJìŠxNJΊ}Ñwõ®M³CRôÁqm )s\Zà¨?´?²SvŸ’ÛÔÏRñ69¥Â9íÞ{‡Œ×‹Q®£‹fxNšÜi÷RGŸÎúÒWA47€ÇD×óxµö²Öòí#£Gs_.Rš«Ïfã®ëôÿsC=°Î¨#’E£v÷¬Q:ôÑìÙnwìpjÛk]@P;ØbÁy7’ðÌ4%DˆÒÊÀÞÐ"/$ÉY5 ¢ S_72£‘bj‘H©¾ÉÈ©§…Z"y¯F+ñJÒ£µ—x+J1.“$Š«AL3ÑÛ ö—…ÁuuÌKÑÕ³-ò¤øÕÕÄÖò 4²F¤ª#’ãCcõ”‡âüÒn÷ÄKåhãP#^6Å&ˆ²×¯fY³X¡°ƒèVt¼¯Co.uÓa²¡`}§ƒH’ô §xøÞnt,ñ›ø¹^Ã÷ëDÞ¾`x#x„~Ÿåóô¥V™yúMóŸÙ '¢ØÀ o—ÄhwO°3ž4:’ò¶fÃÑÞ†f«‘¥ÆFVÙ¼§ Ó&é½kWãi2±>|‹p.¥ç·H"ŸïïÏ“®\€‚Üx«VrŸMñ¼*kåbý/ŠaÖ2§îƒdòÆñ-ÑÐá™ÓÅÝßó}ðÉTÐê A6ή×D'Ó~Ÿx‰Œ˜‡éŘ -ó[™¡|¹Ý“£)É¢pÄ:ˆé¢ýk¶BË"A¼áq/ GÉGM2/¼WdÉ9€eˆ@N}»í÷v{r*‘ií… yó9L“¸ \¥ž <º‰u ¡‡ :S¹È6—‘«µjUª,¡Æ>Û2D–¡M#c©^4†žüæÆÊÞ—é2N²5zÑÈÆÕnŸÈsMÅ߯jÊoEÒç.jF×qÒT#˜+d©•×G³–¼Vh`&±-š:RçÏœLL¥9`.Bï&\Q¡ŽœeØkuº‹D*x¬©Á>ÌyÇÆ Cð«ŒæœXPòF#Ï“‡¯aoEQƒ4Í2K›Ú!è,icÛjDêÍiÚWþYoPö–Í(îÁü»`~+Òx%ÉSÂyövÿüRÎtÒøhé>…É9–8¦#â…  ½‡€S±ü"ܤK‚}ûQEÉ|éêñî6ÚůôðW«URPt»cëÑ|v¦ÝwöD§TN;»R—(¬!²dÅAgdEÅ!þrC :œ3˜ßj`†öÐ9ˆ¸ÍÓÊ ³t˜´†ríðé¢N©å€ÐsÔ =•x"Uk.’Ë‚•„+ïñß$W^yÉ-o_ó¥y]l$iÊ`(7näbp2 äû²R—=ž éѰ©EO?¢B5Æ ’Ù¼c¹(EÅU—àSÊKø ¶¤%vøO.õ(ú" âù28h’‚â)îö—ÓµâIf¤Kç1.Q&%¦‰?„AO‹âʰV:¸îË*褀Q@Hò£«º§\IËM -eè[\S”îªñÒ4ž\€„c¹\j±r‰’4¶ÜÐ$Å6çæ&ã¦bÁ¶LÜkµüS÷E5ÄÌÐô\6w— ÉÅÎæØÁ¤ÍZÐki{v*p[”`9ƒØ çÖT“ÉÝ5ÎÞ­Þù‹x¶­ÚcˆF–ƒ÷<‚²ÚÖ?y ô¶õr·9ÞÀw\Ü#WËWVRb¶ÎÇJMqkúp­ô:‘~Vý˜.ˆÅ%†â n"SMÌl(¥}鯳úWÁ— ѳ;Ó‹“zƒn-Ö ò°h¤®úðæ``€-'§â_—Ò=ˆì7¾z‹¸Ç¯Ÿ£ÄdýóÂûA˜ŸzûS„‡B$®Ñ e™.R}÷n¦%FPz á»øS ¡)–q|KOOjqÝÍüžiÓ;\j:ÿNP¾•WK~£Ö±©Ü° Êw9JZž¨à’ÓT)zµª: ¾VkJ1±‰‚Á`ÅÞ­i÷ÊD¡¨ïÁ;‰¿™0yÙ¹5, —ýèäc Û?oì¼ÃaZÀQS“h(Íâ/¢Ì[¹‰•šT‡›TYËUûdžúhŠ+goÏÏí±ËªBÖßäÖ‘qù£¥2žGôc¥Ñ× þâtÍ·©&Ù/|EñdªØ /6¸QÔ™¡Ù[ìU½-§ÍŒi¿³²„#T¼ÈbU/Þå«)¢ø1O¨,æKõþ[•ÂuñÙ¥B•AH(òL‚Ê4:¿=ãÓéÔ«~–ßÐP®Ô$v^dÏò;R©/•/‚­^xr²ž°ô/Ð#ZªÝ&pŠë>û_QÞ?ÇvOò;Tîžz5 b¡äõK38Zx§ÓVrÂØ¡”ëûšâư­ªÞêJwäjšfè'¨¼œWP ô=Õ*+ÖÙi»0µgu•>×ÿ£×*ººxœÅWkOëFýìüŠ)m/ ÈîåqArC,…˜ÚÎ¥ôCSÇÞÄ.Žù7­îSÞj„ZEÄÞ=3sæìîdoKùa(²ŽÕ;&ßIýñ4Ü]·~GÍÝ&µýfj4Ž[Íãý6ý‹dFÚ×ý líUö¶”7×· €Æ4?´ŽÛx=v*´EÝx±L‚™ŸQÕ­Qóè¨QçÿmÌ)¶/È3e)ÅSÊð:Š‚;‘¤A¶ä‘®Ó8‰g—H C’H)%"ÉðvÂNl?HÉ=AøöD ¦I<§4žf÷N"0eI0É3Ìd1uDr+B±¤É’.d“%Â쑬PMái±(ˆ#r"ò." æ‰+äÈ$ˆœdIˆržÖé>È|Šùç£Ìc/˜®ÃuâP"™²Hâ»Àãˆ|'“ùOã0ŒïƒhÆ{/J…×ÍEvÌÏÍÝg¡Iöʘ$ ó<Í@Ræ VFu&ñO•¥`üEq¸¢ °aÜÊôžÆ§nèó‚#j½ 1² yz9‚ûob¡"ËÉ‹Ý|I9«¢í¡1æš;´á„éñ²` ü8 ™\{—†"ëx>ræâ‘Fñô,C¥Z‹“´Œjî@j‚õ#å'"s‚¥‚Pæq&¨à({¦_ÉÇJÄ%V).JÂeiaiÀšKXTQ!¯4-óÛ£¯[dçöµjj„ç+Óø¢÷´un0©‘©]hCÛ"uØ£®1´M½3² Ó¢ß~S-,ØÜä)†R‡7¤ý|ej–E†IúåÕ@€MuhëšU'}ØŒzúð¢N@¡¡aÓ@¿Ôm˜ÙFý1ÐË•dœÓ¥fvûxU;ú@·od@çº=dwçð§Ò•jÚzw4PMº™W†%Ñ8¯žnuª~©õpXèC8&í Ò"«¯OòÒ“4;BT;‰%ý Ížnj]›óyxê‚5D7¨“u¥uu~Ð~ÖŠjÞÔKXKûi#L2ZO½T/\õhAIº#S»ä€A„5êX¶nl. £g1à-Íü¢w5넆%YZNlUº èÂ4ž;#K—ÄéC[3ÍÑ•­Ãõk0ƒ`U¬îI’¡Ì$æ ã2²uºîk7™SÉšÊ\X`¯k3Ú#KxŸö£di¨] t°ÞÕxÖ` kÝÒj(™n±^x¾VodŽ#™> ±Ä[—%%ýœÔÞƒ/!K/Ecœ3’5êöKöyàFú>ˆÜ0Çñø9š¸ñ|ád»þÙ+£{®'¦)ÏUÆc³ké½êÆû/ÓÚÉc×é2ÝË– Qà¿âÜ›<‰jƒîúFÎL<_q°E<†Á)5*).åA”µ[ãLFݬâ\ÂÁzmÕ) þã¬F㱓•Wãx\­ŽÇyÄÇÔx\C䯵þ- ö{€¾ÇÙL_ÅÛºã‰âä:yX`×X^!Îß^ª[ãqi5f«ÚO‹xNÊrìÉc¸¯Z}: »¼­òlVÓ×UÑÜ‹M\N˜Ç[âxƒ¢)˜äî­ÈøÞ¸÷×/.…[4/ìD¤uÆqÐÍC\pT±¤.ïM×îm1Œ›rê¸ì ž÷ÌU=í§øÆ“—ø}²™’Ÿ 'qýÕf A$pâàÄm*JûÓÓ¡–¢4û‡‡íÊóZU^ªÉ [ñG¡ˆj•?+JaÂë1ÊV'å¡ä(ž²Ç-f„ë÷!jŒÆ4ÁmeÂ*èC¨ÊdÒÊ‹çÆ {ÙÙ9©U…|ä]$C¿¢Î°ÝÞ¦Ú¤Mˆ?ž–‰á ­UžDTõ1õ­R–÷Ê£Ù&w/ˆâ&`–ähDÐpÈBIÞVy®ï$ÞÑlcàÈmãÓöð‚ºö:›­w°‰nëF•Õ¼Ëì>æ s¢xA(À<)¹-ÙäñïNIœÔ¾£‰°S° ªß¹ôáƒ4;#Á¬+¨ï–§Ÿ±¡oo,•‰.SëéÁ å³pY‡à3H;Íp÷_cÇ0²Ü;¥(ò‹"¦C4ü™l¤ò­¬¢Ež Èɹ“8ŸmaÇ Þ-3QlÅPL34°‰ÄI7© àƒ~¤ÃZ(`°,›ÎGsÙüßËÞ_6Ƈò4ènrsÇã>6j(ãrð3§ˆ’£ÓÒ´çX4ƒÎ:Í<¥OäÎô¹:…ÅMrydñB}Ê`r²ÉXsxô…s„Ë¢§YG„ã>NÊN˜ù䟠mu¿À"F¿ŽÖ>¤Ô›ÌýšÛïÞÜ+Ðþ|«¯¶Ž$m°ÿ·Â ÇGGˆÔ¯T”B/ÄËä2Q£¨¬íi1¸ Îw¨Y£³3j³ò•m6h•³¨ZL—Úvк7ŽYÂ^,GEFu"q$£ã´û¦1ºèËC¨XòéxmÓ뛬oº¿¾i{}ÓÖú¦Íç¦ßøJ Uwv¸¼õyï¿Øþå­Ï—uÿÉí,/¨®Ÿ@ÜvœˆÛÝ·4¹ÿ_krß)E‰ñóg:¨A1>„µ:ŸØNžÛn¿m[®ø?•½¿¾²ÿÉôãú¦ë›î¯oÚ^ß´µ¾ió¹éºÊþ ”n«Ä¶ö xœ½ÌnDœÐßx!”e< çáÔG-¨¬‚dfˆÈ*‰ïÂbtãg´þy¼XÄ÷atÏB”"· ²·øû`¯€QOâDTX®Ó ˆ”ù€+Bõ¯â;l’ A ð_gá4hA Úà!˜|ZZžL:]øá’i$ˈÀ„E"°ÎÙû÷à"x•Ò,ž®— R¾bÚ>ð#†öD,ý dÃ_¤9á‰aØ\-îÍž!ÃöÈ_BÅy3±!ÌÒ\Öâ$•X-}µå‡Ä/ˆfР¨*Ë8 Ó(+È/ÑC ±„%…K¤«`Š¢CC”¹…*bñJS¹Ú§îXŒ‡ýÉçÎÈðûb4üäöœž8ùŽ9œÁd,:ƒžè“‘{r9ŽÆâoëŒaÀ÷ßc‚ê ¾ç§‹‘3‹áH¸çg.ÀÀ£Î`â:ã–pݳ˞;øÐE †qæž»è6¶p>T)†}q§ðØ9qÏÜÉB¨ïN8]æëˆ‹Îhâv/Ï:#qq9ºŽ ®«çŽ»g÷Üé²p0±p>Á²Äø´svf­ YËŸ:ð~„4%ªuc ^w‚ÐŒž0+Ðsb,V œg.P½ë`ë}vÇNX掱ƒË3î|¡5^Òò‘Y€ÿ4„·E,n_tzŸ\D^vA»Rh†}„4¾ìžJêã>»ô‡0š.Ö ßEWÓx¹ò³½›÷o÷§³`žb[ÝóFݱÛk¼þçMêëæšDDé¢Óýè¼”˜ÜŸ=gܹÄTðµ # Wë«1P¦jŒXùÓ[œ_Y) òù­|v@ÉEþyÞu¶üäÏf^|7_È7Âò¾ •“9èVÝ=^‘—ËU‘zécºŸ=®&Qþ>H’(¶I:ŸFÙÂ~•†×0cá]6 ãÒ«ExU|—ìwë÷l#áÿ›ÔnóSp²æzÀÌžñ5Ò|ïæµñ†Xo½ ˆàø^ÎAtÄÉhøÑx %;=£ãÞÞþ* üÙÞ†ƒçÅŸG  #P­ÆzЦm*Öa”½9ô²Úö<Ȧ7ÞU˜-ýUãt§ØnMÌ@ðŠ}Å€à´×Áß0ÜÕ„î$G%fOµÂâç0‹Ž;B»„ó¢_ºN"„’¬ƒ&87¼oŽüØ!äîW“ Üç;V”ð¼žÏ{5û¦ÌÔmQ[Yâbd=ßù‹fýïõZNž+žy<ŸÕkÈ5x‰„i¨]­Lz¤¤Ö}ж¨Ai¥0ï®=D¯ÁÀ«Èv”b1ì÷ÇΤq<²EÚAÆî{D;B6³©×®Ýi,BAc%vp-nù™ß²;.;;òžJÈâ{ö}¡;cm"…óN@0§])ÝZ… 52.”*\:³_1V ù £yÌø¡_t¤‰Øˆü›fÕ«ÄŸ÷‘ÅD+*v:Ô¸é1"©MÉ>‹¶~Ä»ŒIû~@‚¿0 $‹¬|hŸÊæj=_‘®Ñì¡Jƒ{–Cêrd4#ÐE}ƒˆâ\»ï‘ Gq ç¢+=0AÞcÜ9ó>:_šõZ÷§hx`R®q=A4äBf … pü«cq€ƒqžßï\è,ÒÀlµôN½&… æ»ÂÀK¡*çÆÔ&¨c€sê'3Ñõ!ŠÚÝ…ñX¥7 $´S’ ¢dsÕX;¤É±Ô´™¨û­½)ûÎ@ Žr&ha‡>-ìÒ fLÓ"í®±é‘pŒ:n<Ÿž”d¢‘£¯×‘&äðH„ânø»s,™Š‰¡”iÐ.Ÿúgh¶d{wY–ñ7ò#} ^KRCËWìÚ4úËß§ÐékþÿJ;¼‚ß·x´Ž @¡6;)…œb8¹ÿó}¬‘JÏë„l?Ìá?½Ûw‹*7V®z ð,Ew»d¼»K;„h¾ð¯Sñû1nrï|؃®jµ›¨@*õÇññû\‡àƒSÐ#ä˜þ•ÜÊ™ñÕzzdÆ›ˆßZÑ6–ÇZg;^Ìè§©V¶Ã(†g–÷›ÐJ’Ñ•­Q e±…–›_êá˜ÆÉâ–ÇtÞb¥»b¦AÆ«²ÆâAÍ z¡húŠÍr!Ї#xPJ“epyÑy[)«|Ì15™šn÷{)JUA6@ÍÇl€š#kHJCŠŠø„æÂ˜ó?×yoÐùÑϧDù!Ø+Ö±žiÀb#¯Èy…Ò;¨‹ˆÝøã¤ÿ˜« üÎÕ.ßG% ÂúƒE`þx‘C ͖Ƭ…C1ÅEÚV =ª¤›KÝ:ÿä¡ö"!‹íŠAŒ#+eÔT õ{¤Œ$mÿL¤Ñ¡¥’–ÄN(Ïì €nPM’(ž‡®³‡kU VpåJ„& $†¤hÉ^}Ÿ‰ô>„˜Žõ#…î0˜Sî]é®òœØ¦´¾Þ\wvh²ÚVv‹–¥(œ¯‘˜ʦk¥.MfEÞÌ~ÉQSIJº[•Æ Ó³iÌUxLªØ²T@³q‰ZÀ×'Y™ƒÅž’Ÿ›ðVáE¼Ü"Õ¸Årƒä¤¤ñB)`åeÁøšûÛÓEàGb½ÊíbÌ[ ]k¥>¥µ+Ú4°$ Ù½à‚‰“´3¼ÞþÈqÆ®ƒ£š¶ë«eIu–†WöTìQIŠžsrùá „–¨kšóU€æ4› ܯi‹ïfûßÍþ½"ù1•T´¢Xy_VµÆºP‘¹$Ú:Zá¡Bœ1ƒÙIzZ<­lë,Ís—ãÝûð&  ¢i¼¦Ð˜¥²˜­—÷ó> »/kLJ Z>BºØui*¡ƒiJÔƒ6œú˜þOÃhè˜p\à §7Áô!Z«Ú˜ ¢K13kC`: ïI:‘ ¦>žSÝtꀞ1ÂÒ«àž¨í‰¨8“†á¸9?X 8¨åµ.)D¿ „\;ž$Áõz¶¾€(,éþ&„m‰«FXjž¡QÒ=„¹‡Ê¡¿Ži¹1Ÿ²Dcš´0P*ð&Llu>¨#£Ò¨üø¯ä±¥ëé4HSÃm›ûábM'3ûFªnX½zÍôߨw²8Ò`xºä§Âôû8ÖŽœ¶–UÎûiR³³L»zÌ$3‹)Gx,˜æk]¶ŽK=”±"uµ^^Áˆç’£¬ë€zJLhŒín’‰ƒO ƒÁ˜Í?(mèµà¶ï‰})ßMÛ4¦S¶9Nj÷ì@N]hW@ZlB:²{ÄT4¬œN¢Ñ¯T/aá§àûÉeœùHÆõ\-ƒ,’"„B{W`2uF ®óøâÌx#gr9 ïl:Αô–ã;LʃþLµ5dÇyJÄAºðìOQ§è‘IÉ!ˆáð=åÚ^¡r «zÅZ¼©g ¦"ž`ÿ w_®•ò>ƒ±Ëk‰¤ÕD;®g½ ‘|#wAm×óÐt;ÅÖ–/_•BaöË0›a;¢ùŽbo'•ø_r×xyÌ$íºn;›MòWì ¢f'д+í¨½R†¾˜Ì53ZÁiàјF5VOór¾×jÖ™1G~›ÁO¥²7 7Ëç”CÑš)CÖ¼Òë+„å̇ÜSÚ£;b7‘¸ŒšñA¹_höH™ìîÒ3L”øâŠ-¨Ø ³T޳ÔgÀÕÚ€aÆ2Yú\<@ý÷åb¥[׎"y7Ðòb÷®f9xiÙë=éã¥%'¯Vpó´â1Ø]ŠóÃ"­°x‹Hžo?Åõ¢XS؉¿r½QˆþkvØÊ“+™áù=:áÒGjºSQ̤î¤(tÒ9V¨('Y4“ë?@:PBüè‘Ù\™Ú4Âé#[‡¦2åX©cg;Æ.î$E2µOªãUdF¬›CÖ’ ã›B¥rì“ëß!.F¦| ‚Út½iy‹pu¾Q-í‰1J“ZZqEbÆA]ÍȃúœŸÑPØ'éE{"Tiü²2þ6­ÿëøZ7WP™«,¤}•ô^^%¡£o&tUôl:·hÏZ›7“жͫ"ô·Ø½o\º"ƒgZgËëúª2jíÌØ]CqÈ##%YÄQŒcÌÄs9€áÌ3PØ^´^ ¹cÉ›Óë­RçZ•ÛË),&Ýh'í3 { i\\ÄFÅnwU;ЎëÇLċРh¥¬(ßͧ…™`-×ûR ´F:ùBùŒüf—¢”)hTF(‹¨ði'-‚"ÉŽm™µöꋘ§—;;òô*gÓï¿ËŒ¬ÙOìëçóÎOÞÉe÷£3A·ö…rwûýNw25íÂ†ê ¢¹É†-”< Ç­kdÛ0—€¯òj m’ê¡Úl¸ †)µBé€x@ù♥™?`;–-W-ü÷0ÏV§/“PÊéÓ[T‹÷KÌ#Né||dXÁQ†Éæ1çèæš-’úh˜zNßSÌ =Xìbè””Êû÷¼7+à½çî@ƒC±.A3:˜o–oET ?¬ºAŒu‘²ºDcÍ#zw¨ß!@ñ£ñÀÝÄ[ô/ØùVSƒCðªaŒ~&ÄåQò”‚wùAÓ’q:ì=R«f$Êk/¬lÃÉI§×Söð­øn&Q¼÷Sx@#Šï…y¨’‹^«Dãì„ÏpS.úQZfL‡*=ž ¸xêã·(˜|—NLRÊP÷{YßÇ Á0DØ€ßFTL&?c¡4©‘÷$ÄtvA0”ªôSªjf~0*@R2 2U’ætcýN‹¶Û5Ä7…Š/YFWÙ—Î%M- ¨Fq‰¸:DÖè(VŸvƧÞxÒ™¸ã‰Û³âõ¹RT½Š?J”r67×›…0ù”b]{×åDþ¾ßqÏ.GŽáÈ«Úo[%ê"I}¡’šT)•z…ÇY˜Þ¶ê(wª I™â›ù¬%¥@–¦Ru&òÙ ŠŠµ^›ÏòÜÉ\µ—Ò)¼ŸØùX€e¥ -‘cu—ì²/a%%eÈ¥GÎ Š:îU´jÞdè!„†l?Ò¥k²Û6騢¡•Hœ©º»AÉËÁð<Åó¹‡díÝ»|u§nÒlÊUÕ‹ÞÃS姬áhj¨Ê•Ú”Uÿˆ›·¢3ì·°È Jú ÄÔ·c{¹R„Ç+yʼnIéçRY?@vú“/œ€+¸f’¼¯´p`„òŠ0ªdŽ>í7LÏÙpÔsF8õÉ—‰ãÑ“JߣܵÄÒÈÓI¹JZ-gWW¿Ç2: Ë,ÄϾÄÕ£øA¥5t¹]› íhîìH—úÜpãÏ‹F³T&š?‡¿4˾ý¹Ì¢L#?æÒW sÈ"¿Òä(=S¼2!ð?`ήPeãþØ|œi •óà'ÿ?¨—j‹{~Þ°ÿyŸi5¡´ˆYþ¹‚ô3K›¨¨aê/;]7Jg¢RöªDïyÉ«UJÞÓ‚÷¹3ÅNbQ©,š¦Ð¦-Ê\.r›`©Éÿíjõ^©Uúæ_Ó«˜õ!=†åD l9Á9ïËú¯¬þŠ^q+ÊoHX¢Î;ãµFã±s^2z„ï[·¨œ¥åSvq’?¥/,‚y†Õ Ë`'ôsñ÷µtÒ-ÐAûž±Cë!¹›Q²VèêrM:tIËåé´Ë·C•Áà ¦+  +ý†—©6Ñ!š¬%¹• Å*sG0Sе’DIÙ-,ÉQªièZ²iƒ5O*ÇýU¤ê…59–XʤI.€Äá#å“A*ù–hç"–Ãh{–²!U+›´i?ôûªÐI•Ѿ×1& \ýœc*ë’;ggøÂˆ¸\÷V.X8OÀ°†*-¤¦p'狱*ÎËýß{¶²Ðz¥ú‡ ²\ø€¬^ñý˜Pú]¿ cÞR…)üE]ó€<)j<Àqì]8#XË« }ÀÿªA#·¸• IûH¸ôHs`oİ„<.½^õÙ[ [ÔqyFƒ4´j*ÛHѾQ)ÓRëI­â`UK~mÇöŽ2üüñËw›·N©dæW;f<|*×ÀÓç¶ £ïbâ}„tg|ófˆFÎøg5ŽŽæ4&–kèÁj‹5,½ rnì·# €Pì±[¹Õf™^YPð 1VÚÄñ-(°$^_ß`Xʹ„„ú€‹¶Ô%TÜDmW gnI›ç´®²ÆgñÄòëyn9(¦å4‡)m¥&‰«0åU M¾/¶›æ& éè·Îùݼ»õñ¦ÒÊM[äÛ:;¢òÔH4Ù;Öò#޵”YéK«ÇsüÀ‘Ölšêx]¦«N¡¿„åÐõWô‡Ö¾­ò)ðß-ñ†Ù¬‡›¾wok¨méŸ0'лcs§‰_wvZÔ°slÍßT1èç_é¸B*áfž×ŸÇk<ÂÊ+{EÅ‘ ÐúØff] "=±kZȲÖÙ<\ì*K£ôº²ayKÆBî:üt>þP{Ù‹·b¸¦Û7ì‚Q¼S!š‚_‘ÊøMÚ_£×òë Fï½ š72Mzkììè©ßƒNívº§NOÊÛTöïÆð½G^ß=sÖ ”ZªB†ž áɽ²÷ÃQy³|Í3 ¹^¤t˜Öڛ轑Ȼ\ä°±¿ ªåœ:ÈÅÃL÷êã?™y+;|:Ë›ëÕç·-T«šýÏRŸ ®Œ/г$œÞ>RUt ÌÄ% 㵸÷£L–ù²Ð1€dAuÝ&µRüúÄA€è#:óv°‡€é|JÂÃgâ-ye„2¤!º%xãÁa!fJ¤˜£<\81•€FL)ðv·Ÿ´²*G„ÝßW8ÀÍ\Yö'¿º ¤}é£)yÖ?§»ÄÌr3`n`Ĭ«H “Â&Æì…Ò¦Óc”xz+oPnSåuÞ?ë.”ô˜¡Å$•þ&­ÿky †ÿ©½—Ýù–ã›*´ãvS.¥ì ú… ª³ôç~rËœ¶Çø)ísÎÚÑÍ&ÅÂÀê↸\Ý 3…œFž›ðä–²²FðhÖE äJ6Äæ©üËN·Ñà¶f ‹ÊCꆑݣ˜t éÓA¹3ˆ’»€ƒ‹aŽº|‚"ÜÖ„ù–)Ëä ¹—5Ôwß´¥Õ°£BŨÜ2`?“C)$QÌ‘/Í ØI3ñ Ñû…\¦§¦•Qžü÷¿+̰0' îð».€DfbøQJ.b²J¦ô³/ÝRyÞïgtû¿ÀÆG‚X4 y-ÂýÝ–¬˜$x>e3åÉSŒ®#0«x¥¯d¶VÔ=U»/S$È}/¯Ôx^‘»å9[îyI@×Yî2 Ê¸MEöçˆ>E,Þç•'<Óðô(ìqÊgÆ)}¡Æií ºËŒÂ§‹ÎäÔ;ïü$›é²Ë,ùY½þ×AÉ&«Z°Xˆ_r Åiç“ã¹À¤Éå·§‘`þõu8k”2y–Àk/]·^ün¼žœ_ôÜÑk½èLS¤‘d¡ÄH(ù ÅëïÒ}ú(á'úOqNNð£úñVx´X˜Çbá½nxœ{¶qÙ^Æ 2"† Fú†@¤```edhe²ÑÀž«ÄæföÆÉ<œ›ræøLŽ “œ¼1Lkó£°pÜV³ÒxœµVßSÛF~¶ÿŠí4MlPlyè@HF¶¸#¹’Ìt:‰Î±ZYòHg¦ÉÿÞoO2‚Ó¾”|º½ýv¿owOêî4^8J÷ýá!-ò4íDÖŠö:û´ßë½éö~íîPïàð`ÿpoŸþLÃ9‰/ zÑØé6›Ý×MÚ¡A¾¸+’Ï3M­¨Í~ÌU¨t’/³8ÔIžY$³¨Ãvš’ñ(©P¥*V*æ}6³¤¤(á7VEM‹|Ne>Õ·a¡`Ít‘Ü,5,:>CÝÜÑ`©*©ŸÂ À®Žâ©8)+¦0‹iY"d†(Ë"Rfç&ÉÂ⎦y1/-ºMôŒòÂüæKÍ(ó†bwt£X3…*‹±«X*šçZ­ÉÝqb†ù‘Žë™¢r¡"ž(¸&¹ÉóñH<Û ¤ð Òh2”ΩE@!Ç h$Ïe Ly×2)|ïIî op†G»/G2¸6!Odàp¸ijil{LF¶Çhã‰7v}AÌs(ýÁÈ–çbØ!$À$.„fF&è†0'ÿ”i_ Q»?U(0JO ¦´Y $YäÅ@òB\ °±½k °æÎw_ü6Á9ØihŸÛ§à×Ú®Œ‘ULègËT•ä Ùà ÉÉW‡M;@Y·výÉà¬VŸGïäŸë«„Þf7Q>_„º3{÷ÌnWß-T¹Í†»w‹i™á6·ÍLÍ$ÓM~háæåû×Ó˜veÓ¸ü¨Í…{ïÆdŽÙo7ÿn6¦ñÇRñ[%Œ-3ýxm¨/‘Zè£f£†âÜVaJz…½,Á’¡fxíLáZàÀQ³Ùèî4­T©‚gfx‘Æw®-\ÛÑ A44vúhË,Çž¬g“1®3ƒÀÎ…=êðS·Ù8~ü <·õ’Sm=Ø0Y?Ú©´9Ÿ*?:¦×{8×(µ<õŽ(¡·F¬vwÛ-É”Z‹ß“?:ðxK½6¶|'ÙR=±¿;&ÄóEàË¢ro¨¢Èr  É™³Gß Ë"«¢7¾=Ũå3î3­­œýæ4ÞMîõ—Ôba¤ó•¼¡ãzçõ’åüZ«Ù6ˆU~ëhÝK· Sb.½{ÜKq·àÝ+ÿ½é¾ ÝlèUG¯ÐhèUÍG]ÚëõzGkÛ²2¶jë/ÆÚæï3sªÙàê±ZµX»´WÓZgsÚBV5Ø1WŸÞ“3Á•}H/õŠób èÛãªÔu©Ö\ìý{ÛÖE-eåaÐ!ŠôŸ©€ó‘Ó×cú/eýpUŠ­È[+ûȺ„[1qó³ww‡®®®×óÛ]î{3¶›V[{ÿTËmÞÝ5òXûoÍcnñoáC‹xœ}“ËnÓ@†ê…¸›Þ@ÒªMª*iA¥iK+l'”‘"»xA(uìI3ª33ÓBDQ7ìQ•G`Á‰-ïÁS°dÍŒ“"*òÂ>—ÿ?ß?Ýø:}³¸”™wˆ´py¨hÆ;,„ËǰZX;»¾`°vÒíqzЖ ó°ºQÚ¿MÀ#„II ¤ kŒ.¨ìéŒÄ´•pFƒ³î­ÓTXsÐsÀ=!IªA3áL8%b zÇpI‡@7á’&lhO´hL à"ÂÕ¤Z<é@'* bˆiH˜ ‘ö‘ÉŸD§!A³fGé€ObÒm'L™³(xÐm/håóöbðT¦¹8éò$: Z›pB¼¡2õ)jš.á*„ÚIÃü÷0¾üÈ\Î:D© O7a:‘ι?9ru„IN›GJ/ô0€~iä~ÿõÈÌØ0ü0‚ó^e·âøL§ ¶ëø²j¾ëaØß71 ¼¸¨KJПÝ™ß]ÿIEÇõQ{öjÞž‹ÓøóhnþÜÍõþ4³*PE¦UMŽnOé2®<­©ndVu¶<¶> ¸faù5¿»®[ƺðq¬4Èñ+žWÛó‘ëäuöûØæì`†iûË€Õ,Û×……ñõk`z#gWÉ}ž™u]ã¥iP¸Y¨Šü:¸uúÛøÃÓ0"-Qhïs´¥.R‹2åªÈ²ضqàîy:¦LæÓÆCÈ@ÒÂv ®g ½xÛ}”›ËSÊ^—ÂÌZáä,ÂÕ%êåáAqµ¸±’Ý2æH,ˆÑhx·mŒÊ¹ìÅ?Ü/›×ý,¢­á ŠKð›0½l,‘ á`©h ùæÐÐ0ŒªÝ3½úРéÊle€¨7”ÐÎU¥‘ÑFá–ñÎÈp"8Ë…°½ ‹ê99Á÷K¹¨¨Þ¿d#D“ìZxœ[,õLl‚¸Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFÃCL›7±r ÅàL‘xœ]RÍnÓ@VC*Ã(\¦­œÛqZBHQÚ†&’å $ !TE޳!–j;ØkE«¼—(wzàÊÁ‰‡á @â ˜ÝØmÃewæÛo曟ý|ÿëZ¢˜™=]_“óŠ$íä@×BA3~aF7îù3<–î„8à»g’ÙïóÙß;óóé8.µL’ 3ÿ¹Ra°˜(ý—çŸ×oÃÐ5›8Ô –ë°—‰ÇÛxƒN,:&àŽapGÜÖ5½Ñ­¾ßßJ®ßÓu¨g êz>ØFÈrLж±â1ˆä½I&F®ÏÈÀ /ËbL $†ç§ ) >ÉÚô)¾SîŽF¯¡„””ƒ’œƒr%´eEÊMA.#$?ÂC‘<Ô»x”$’*œU…83æ,¿ÏtûLWd"ÌH ˜ß#4ðîèP«ÛÛ Fˆ,I°Á°ÓÓ˜4Uc¼tU8[’ál ¬ß WÊçC¹Ê/¥z¡+†JQ…õ“µ!Cm^y<0,›1§}Ê—¹èQåŠk[N@ÉÀ'˜zˆ€â3¬\Á†²(’ߣv?JÎP J;ell±€<2wù.g;ePn±Â8*[‹ÿM”½c¦g@¼„`d¶Ý¥ÿÀ¥…T*›ÚŠSÆè³JX>lõÔcUrNÿÞel µ>$í\é_‘M91{™…ïL-ú%ó;þ¼²h+â— xœ[,µEr‚¸¨¡‚‘±¾¥¾±‚¡±•±©•‰ÅFµì®àYë¸ßî·¾æÿSå?xÕaxröó˳Á`ÇŸÜÑÿEŽÁ(Ve²XJèD]¾z5Ðèÿ)ÚZþ’ƒË<—Š9H| òäž—"‘´c„i2/Ê< {zš‚BPrÁË{÷…‚øËD@TÄð7æ%bÄ0/‹ D1—aÉÑšË2™­%Zd#^~à)„Ù#LÂrQ€ÇSù‰— ªËãDTNI‘C˜Ç°"GÔuqµ3Kò°|d™ ¹„¢T¿ÅZJVÄÉ<‰BÂЀ¨¬x™%’ˆ¬Êâ>‰‰Ñ2”*ÿy‘¦ÅC’/ˆpœ“ ò˸<£õ°w@M©WsR*dk!Q$"WB gÅ=™êRþå…L"®á T-E<‚Ù†Uéís Q&Y¥œ|Iî(ÒÁ<ã5’ûw¸@•eÑ:Ö ›¢õ±ÚKÈB‰½¦b+¼*說’;íÍåGö<ÌøMš[³*C"Ŷ׊RÔ¬²[Sÿ¨öãyŒ6N­‚T²Br¨4’ý«ôhš¸Æª› ÄŠGÔZèšPÏ•ÔTyÕ^BÔy¨×ãŠyà9þîZ€ë©ë\3Ó2at‹F \ëÒ²}tÛñ}—ßq=xÿ^÷Ðáùs2”nß‚õnêZžŽ l23ÄA`W·}fy0Û&³/5@°ÆlÂ|<æ;Å# /=Á¹€‰åWø¨Ø˜ù·ŠÐóm wñt˜ê®ÏŒ`¬»0 Ü©ã)4ÊËdž1ÖÙÄ2qX0ƒuiw¥Ç{y"Ò^š# )꣱ÂRq0M“¹–áS>Û•ª!»±ÞÔ2-¬w¦¢»·Z ëY¿x„fêý“ëü,X#p­ F!¼`äùÌ| .Çô á=˽f†åÃØñ”bgiÄ×UxDA¹ÐŒëQà1%³}Ëuƒ©Ï»K@WÎ *ƒduô6•ÈŽ­rF‘÷–pIU n®,ÜwIS¥šNZx¨žáÚÎIŒŠzú;É‚m]ŽªnXduè†yVKÆ<:ÀªÈ7ú­Ê1PéS±[µÜi^M•Øèæ5#òõalÕMã\’Wµúôàé‡$Ò5ŽÇ×ù,*²U({Ë·Oìö£˜ÏÙÚww®á1³sôíßÒ£î9} 7Ÿ©U}¼A8Ú!¡ ÌRúÀà˜š‡4/‹j¸ðX†b‰c`tŽpÌà¨ÀÏ:§Ý*Ñ'2Z…e˜©Œ¶Æy”Ët_!ã¤8Ü*1ìë—ÔØ;D<{Ë£&e—Ëu™ únµ°Kƒ àPë(â‚FcËðÕÄ­y˜¤k5áúm%o‘ïæ\FËŽ9šÀq<Ó@àì¶ÿl·ª'üÊá"™#F£\O¡Ð#s+r‰£™ÉÕõÜàˆÑÐ’ùW™Ê\/àTäc ‘LÍw™/QC™¨¢4R:‘%0/ÐE†¨ó|(mϵÊD¾d9-\¸Uf:·O=7„2Õ‰©¡ ˆÊLæSeˆÈ,×7*!Falü#¦úVec"œ(2*…ì¦ÒR»±óˆšU¯âdU˜Î ƒ"\ U\몄@ðÊ´QCéâ T-E<‚Y¹µá=ä„N‡©PÓR#h>%‚×YÁ8“9’û¸@e…”èá|Š)%–‹¶‹ë¡q<‡©0˜"-VÂÛ#àõ0lpû;àKeíh<SùL’fz5l—A™b•k:/*VS©&)lúÉ,Á1I©‚T¦ÚH(52ò×ê±Lâ «J.(frH©…¦Šr.§¤ÊÊô*Š*ûyœð¢ Ÿ{!l÷ÃàŒwXZ8È dÇÌ#ðü´?yka¿ýæEhðú5 ”ç_ûÜYA?í÷8â pèù1g‘ Üo÷(à1ôø)qZ¸ä€žZBÐ…S¶OðÕkñ/,¡.}r×Eô½0æíAÏ ¡?ûAdÑ(®Ú=Ÿ²nÜGÇÀÎ0,ˆN¼^ïAœˆô ÌCŠ^«g±¬ ³ÃCÖŽ)žU«ª!»ž QŸµ95Øg†¡xá…[ÁFìçNÂABëx§Þ1WûYpIÚƒa"´¢˜Çƒ˜Áqt"‚Bøˆ…g¼Í¢#è‘Ul1Äžu((c»5ˆ¸Žû1 ÃA?æ_' “à•A²Zw¬ÈocF‘‚ð‚pI».œŸ0ìIS«šGZD¨^;&´µ™èõŒ×‚Ÿ÷8ªÞf4Ð9X—ŒG4—žÏ½ ãÀ†O‹…ÜÊæZòºvIwÁëœq"_MÆDˆx•4A—¢Aû¤R¿úœŸj/êe1svšP[:ü°»ßصEÉÖ/»pr¤²j÷Á½ &¢˜Ð¾C0R©´;œ0;ëF9~—*“ôcéÂÙv#¬eõE– Öž¶tgkû_¯-kãÜAwðU.ôh„ -ËšõjëiƒÜ­ÙŽr)Ÿ039=··?Z ç©éJÎ]áϳOÊëî™ ãTLà=½@ù»+•º¿žc²õl‰ƒ*Å á®êúœ'ÍjmúZe†v}]V¨˜‰¡=\ˆôV,ŠC”ëËìËÞ%lAóÒn@S=ÏlÑZ›¯Ëêk[=0j\®g͉¾Å‘ÑaÄH:Ýü1W9U[\ÐëL¨üG ¡ ÅD禨Jq‰XŒž-+”u¹…éˆ%¤D¡ÌsHª¤ëýV¯*ôs[†&êZ,QT,1……uOÁ”) ó,•EA¶y¥I¡KH”LÌfXÜì‘%¬ôùëuy„:ïåRuš2åág¡ç0D“±4œ,¯s[à ëÖú¢ÎlŒc»Õ'…ÌFTsïé¹€…w ÷ÚT„ á< d¥HéL@Ó_'ø‰ßЏz©*%½wDS'xCç©új+±À“ÎØ2°ç… ô8µÇ]QÀ­ÄÃj¢Ëç3ªåÙr§x‘ÐÎ"¾ÇÈÿÂjŸÜNÝ©57 õ]êQmŽé×x{e글µOõíÔOíNÕ®/! ÅÜÈO˜×qjož¬&~b¥«úsóÖÕn¬žã¶‚E}¯Íj}ÇÛúß»Üj\ÞOr‚n7bñãÍÕ 5¨tÕú.é¿nàTš×¼„°r{½+Œ¢¯^Ñ}Ôµ{‘½‹òP KÒuxÿa"Õ׳«S{5Ÿá}k¿Žkø4Ê ³˜I´<âé þÜpZƒ. ›™¼­½ë4yðžÉo†:–p@W"Iò£¿ª .ÂSP|²xúG†,ùò´¶xœ½ZmwÚVþ ¿bêna+ØNº=iÜt9Ö)*‰8ÞÝ*¤+£5HDv¼m÷·ïÌÜ«@ÆnÎvó!H÷eî¼Ï3W>Üoüe ²S»÷Ë8ž·=ýŽÛß«£ãׇGß½ãoß¾úæí7¯!¹ãŒÏKøKcÿ°y¸ß¨Û{ü7½¡ÍÇÇpüêí_ß¼=:‚Å"¹æÍ´7¿lÂ>tãå}^Ï2м÷Ý‘Nÿ¿æÿ¿Á g&À×"ÊRˆÈðu…·"IÃìžFºî< â$ Ý6@g>¦—B"R‘Ü ¿Tè(Køaš%át•…(†ù°J„¤ñ*ñLÃÈMîé-RîÂlq¿ñ*#*‹ØƒÐs‰†n"`)’E˜e‡e߆>>d37cNƒx>ïÂè¼8òCÚ”Ú·Ù[z>no°Ær*ž¼ØÇ•«4Cq2y%ªî4¾¥)¥:"‚ÿ¢8 =¡ãŠ0…9Ò#2å±,Þ:Ox¨7wÃ…HHGðj›<°¢‘œ”Ó_!s/ ¥T”üØ[-Ðønn´C´GŒó ,ÜL$¡;OKųÁˆpU îu"ä}4¹ QãNQ\N³Bt$ä[ÒŠ“Tqµpïa*ÈPŽDä㜠WAVq&@êwûÈ#z!8!õ‘ÆAv‡ h)ç‚t)Ø:\ž8n‘NYkÒ…Úë:D­²OE}:aa`¼ï›¨õ®A³C"tiÚF MfÚ´À”'_v®XÆ1‹OÆBÞäcÅyu6)˜gÐé}0‰yµÁ6•Ó Ïˆ’=îž+íS`ù:Œ¼ù Óã÷ÑÔ‹K7kÏ~¨=ô|¤4לL¬®mö´½/+z{­“ºc?­ÄJ¬žÞ§‡i&Yª ‹$‰â•™nÍÃéæX‚ir}la–ó7Ž(¸ò§r¥#јL.FÃaŸ½ç¬Ó5&#ËüÐqŒº­R+’n!†qæ\Œ‚˜|m4 sðãkL€aÀ«áˆþÇe0™Ü ÷f‚ÕÙM›ÕÉO¼yœ }RyiÕ- Â9¦ù||«]x-²|>Ö.‰Ä]¾k—ÄKåkè¹vÑrU…µKÒûÈË×Ðs+WR®+òLö§?:°/—Mo2mûèhÛóó8¾Éè°¼ŽâIV. £ ¤;O¨tˆr%“®Ë†9µ†?´¿Ñé•Ößk·—‰pý¶·Wðº¾áÒ2«þÂ;ø¬Êv “ ÂKz 3ÂÒ ú7B„>‹1{óá~ÇzoSúÂÅx³¤¡ÝÆ¡û7â^g9?—–îµH‘j1°p?{®7CgúµÙÀ¨Á" ¤"H§'͆¢½Xâ3QBd‘Ü£jÈvù~/2<ÀŽS*Í U¹hÓ^÷ñãGþ½D¨G/2ðVI‚Äæ÷0C2G.BHwNÕýzwR|šûLä@ ˆ3ÄyžN[­f£0o•D  Æý~ëD®úÊž˜6;-¶Ól‚T´Zð+‡› H_ÃðÆÐžLˆgxF§KÅM3OEuÜ™#ã$7Ùö¡¿³BLLjt%2K’:¤"=tÉP´ yÐù‘~áÅžK´cÈDq 'ZÈü»wÀ‡ÕÞ5­nßøibLG{¾X¾üaþiFhÐØ`xÆÑ‰´|çûÜ6ÿnœÀÁÕm*³O³ðôÏDŒFrWArù£š‰Ø­HfJõ$N—ÊßqCþ¨fÇßr1KÜõûzœÈ¬¶)a„éå=@.JeÀP@4«›µÂ³uàhÑö—×aÔR¡“‡‡šÜoéMžÅJ<ãá¥êay-ÍÍ‘Åbã$2þäŠ B<„¿Å˜ÜÆÃò‘ÐXÓ¦c%>E  ôNª$ .³E)w‘p‘¹Uا_×÷“j ˜ ùa†ù ÙâŒ8]RÜ“×V-þ.:'#„“ÁøâÔ°(Ð ÖM+@he†UcI‡½‚·’[WF el‹’››ö?# ¦’$Ódx©Äj;ÇD`ص›ƒƒÜ“\›•¼är&W}ö\ä¯ÔòbspUu­S,™àf®áýaF} m#äÏÌMgàͰ¯Ôù;Ìy>7OVjŠ P .\Í_Ú”â½,_èÜ;c»0 îš²opB* pp€«h&˜»×€lÞÉÈ ŒÙ‹ÙEDSðÿh\i9µÖÏk)¶39ÇB§ÑFÕaö©µ½Æé˜ý"ÛÈu¼,—`ªŒ³¼6J¿¥%5%mÍmqƒ¶íµô£ÃjÂõ„Ü{qL¨µð9¥¬ƒoQ"Ëtg»¡¾ü@,–ì(NŠ[*ÂQ½ŸAbR”|fe³üPµ‹Œ‚¢€0ì;©¯;}e/|{“Ké¼|w‚]2»·ß®u5FB¹îÐã¾R'k"Þ3NÇï‘?ÚYºÓó5w’2Õ‡6MP‚Ü+L¦"ü™AN0 áKaåÅðÖ _æ@¯D:…z^d)’)’.è„"LŠ»+*‹{ L¹{3:Û<Œ:zZdn½éðƒ±O M"5aóÄðbµ€%ÈU­8c%ü¶™ u±™C—2·æ殦äÔõÕý_ Ñ­$SÜéô Çmî®*å°aŸY¡=-¢ìÈP\“Bù®ÖA“aÞªî×)È0ÐÐ‰×æ¤“]$‹!}D¢•Ì}ÜLÛ"+}5¯+K¥ÒN•\®$Ù•ÃUMëøþ—ÅA}0#ÿçò bEêHåS«T$/R…×J+ÓW¥ƒ-­ •Ê„RšžO{¼-ùšºQ†T}AB7i¶°ã¾ôµÍbT¦î¾\•9¾ÁA¦ÉTÌ–¦¡Í|`˿̛\ÔBÖ38÷?§ð謹–Á‘©2ƒGqö`ö^ƒi…Åñïà?ih-E­3Ù3-çª",ÙØcjÊìmËñÙ®KìIÓU`_PöÉ¥Ùxui¸ û[ž%}q‰±séÒõ t*ï¬óðáD!½ôn†=n™Ù×ÛÞ§¶IšÉü¢LXôe¬ÿëÁ‘¼<ÈžSÉ4Ìn}gÉ‹¹ozš&é¾…iã¯Ì08J2ûaz³©HZ¼S—îüf£™WéŒ>[rý0ÉC$ßÔ°Ö+E!çÄÉ¥žo"Çú„[6Ÿ³Öƒh†½ ž?W_½¢ˆF-SY#–5´¸Tõ(G•´…Îè¾|‘zI¸Ìb•ÇòmkMV§ü­$oa§i°Ð®ƒåò êÌÃÚ—a뉖´Võ.¬¹uY¦¬öH£‡²™¬"_}ÂŽ_aLº¤¹sïÓüܲ“ZOÞÞ*‘<~ÕÛÒçuŒ†ç¾­¨nfP‘ ñ,.¥m…!pWõ(þ:&ñ¯ ÷;Á<7’~Fß?º? B,ƒ¨? jê4d.žHS7¹oÉ:éÞД*“»(’täSÃÉŒ‡¯“ø®Â3N¡V¸°‚SŒFØ<$Î0ÕÞ¤yÕýSýѬÏYƒtFA¨@ããqòô@ÙF5•¯Q©}l°ÊÍš ‚ü…£3®!K‘ùùÛAš3þ4 ÿ(ˆ o´I ÖgCš'å¸|W ¦¨jìB,Rl_‰ÌÑç à>‰•™ãR­RÌá` æ¶$oœ.‘ô+R娪I7,ЮðÄB^/>éè]Ð~'šá3N*7âÅ•++¯¿ýVŒŒÆ–yv…'Ô+ë©JªÂ¥¨1å„j8¨â¦“œåÄ`)'`ü¦zÉŵX{ÅêZ²Séâõâ…¾­/ôéü grá¬ÃØH¤ÛGñÊ’>¯Ë¿}VW•ÊÂ[µþÏÚGÁ³gÊˈ@Bø^#ŽðMñF”ÐÌl~µQÓüx5‹ÖÚé‡pÓR»÷áøèH‡êZ}céÔG÷UíqiªQ^Âào­ºrÅÀ̱·GeüÅô Ôw}{–>óQ¡ÈÅÆýÊlÞzð:öü½»U[°cû¨Ü~pÀúx‡VR}„Rê–¡h©®Æï >çk¯¡k‹‡Î’ü @û_ù`[âxœ{¶>l‚„´©‚‘¡¾‰¾‘‚•±‘•‘±BV~jQúFã[løä7k°OcääL-*ÊËW°Up ð pµžÜÈ#¼YœÇWvüîUxœ[v&t‚„Œ‰‚‘¡¾¡¾‘‰‚¡‘•‘¥•‰…B~RbrFêFã[lxlÖ`?Æ´9˜ëŽ`Ã.3Y‰ý gnA~~Ž^†׿yÆÉUœ%›ƒ¹î(X§æ²xœmO=kÃ0}¿âA2XFe¥“C–PO….în’X j‚l$9ý¢ÿ½ŠL‡–.Ç»ã}Ü+ ,ŸTص5F§öýêȯ¨V¤¨D)îK) D½–µ”x”;¡y±DQù°æï͇ê½îlì©KF¹±ºç¸¦Gq˜4Ç̃=¼å9­ã'£OÊŒF~ñJó›*^9Ú¦yìÚæ™a»Å]Å(Ëœ “³qÙÐNi7MʘÍÙ†¾ˆ“핞‹Ñ"BcU6þÇO ¿üå¤O¿Óì^®¾xœmO=oƒ0¹_ñ¤dÀÈ †d"Ê•©Rº£ìÈMe#Û$ýPÿ{h—¨ËéÞé}ÜË3,Ÿd84†«ÓA®;~A±.PŠBäb›—BT›²*7xµÒP¿X"ˉ|x ºƒ÷úS¶®Öµ9µ³SªM€ê9:k|ÀÅêÙqT3æø¤ç°JE'£/J´Búæ¥<§7m¼r4uýØ6õ3Ã~UÁ(Iœ £3ìèoŸCo¢)dvg;ú&ZŒ¦—ê·!-â®L†S&Ã]—{Òôín dP»ÁxœíXmsÚHþ,~E'·•6öf·¼ö–a«' gý‰Ò`t’J#È’‹ÿûuÏHB¼Øñzïööù\Xš™~úéÁ'uå»KÛV· s'÷,=vÕœŸÂY³ùþä´‰¿Ðl¶ÎN[ïÞÁ?#–܃þ[ ß)õ“ÊI]yDúG)Þüprz §g­Þ·šÍ’8I£x£uèDñ:ñïç)TÝœ~øÐTéó{ñùO(öœÉîY˜rˆfâë8ôW,á~º¦•Žø³( }ç@ ú8zÅY²bÞ1j!S&ó|ž&þt™úQNèÁ’3ðCàÑ2q™X™ú¡“¬õ-¸ ŸýtQ"þFË”´,"ÏŸù®C:Tp1K~š2â$Zù>¤s'žÎ¢ ˆ>ûá=¸Qèù$ÄI É-XÚ¢çÓã×Dœ™OnäáÉ%O1œÔA_I«3V´•¥Ž”àO¥¾ËT<ásP©Ù˜ámû„FÝÀñ,¡ÁÙ¾#h°”‘ÜŒÓ[¢sÿ_@F™iò"w¹Àâ;yÑN°î'°pR–øNÀ7‰#Åå0DpßÀùBŽöCgÁÀ)Œ6Û¢ > ý–º¢„g^-œ5Lá㈀…î1‚ º²ˆR2G(í¡ˆB˜á†ÌfégD@¦+ð˜¹-õ s *”ðâ<‹ƒdìkÃkس?j¦ø<2‡·FWïBû7u0õ+}`[  ºÐlÓhí¡iÁ¯¿j ¼}K[¤JÜþËÈÔ- †&7£¾zP±© lC·T0þ¸k ®T@-0ÚÐ7n ÙC•ì‘¢}IöàF7;×øªµ¾aß ‡z†= s=´§ÁH3m£3îk&ŒÆæhh mW×°:}͸ѻØÖÆ ƒ~‹au­õû[q¢¦­0Û:º¨µûB—°ƒav SïØÏ橃YCïú*X#½cЃþ‹Ž¡hæš©µôŒñn’¶®v£]apÕo¤KÒ›ú 9Œ‰°ÆmË6ì±­ÃÕpصHª·tóÖèèÖ9ô‡–ÈØØÒU4bk·ǖ!g lÝ4Ç#Ûj¤èzø3ƒÎj(ÝID̘¤¡yGz)¢*|¼ÖqݤœŠ¬i” ³×±I[é$ZÅ|Ú¥`a _õ ÌzG§Ý!)úhXz KfXtÀ–?jw"ƱŸŠ…¾ÉÇxUQR0z uo r>;Œ@°Œ 4Ãi²Æë,ûÔ8Aþæ‡n°Dzü)œºÑ"vÒãùåÕ×c3N{•ÉÄìXF·úú¥ƒïuí¼l˜¯ùIºŽ™Ô¾Yw8ŽžwX’„ÑöO=tmoÍß?øÓݵYs{m"éy;®Yð¶5¼ÆÈÉŸ×4Š)Á˜½3¹Òmh4àŠ¥àPr¢¤`.Ó4a,g¡‘“ I"sšbŠ7[JùaJ 㺌sróÈ£ŸØºE´9óC±æ9©ÓŸ´Šn™„´> œû–â.“™?XÃ2$¦-æ8“VMÝž`3 MèAÒ¡¡ñ"ÞeWƒ/‰ž¬ãd©³ =‰"ôQ‘¡ ŠL£ªÛ†:†£BþjCEUùDÞª°œ $Ÿ¼VùWEiÛ¦®C==¯(úè ê D†')„ø€¯$ÀqŽ-9bHIáÐHãRd,tZâ Íÿ¯.äêÂ"ÝÅzÑeúà&“›¿›êõÄp‰×ñ¬õÀ£_p^p}ÊgHŒþ`0ȤášÅü@`Ñ)×ië6ôô]蛬ýÔ·®¯Ê&ù”w×ñ¼d’Öx|þÜ+J‰¾qCùó9`õlØmúÃÿô7Ž?‚à˜ÿ ¬…ÍrcÉË ÅDŒ„‹h›ÇB²ÜÖ|g|oµÀ£ 1Vÿ ¼d2¯²±xœµXms£Èþ,ÿŠÞ½«µä°~ÙÝ$wvvSXBkj%Pù¥*U‚‘DŒ@dŸ’\~{žž„´Þ¼U?XÐÓÝÓÝóL¿pvÒùÞåµ;¸¤\„~¶éi¨=ÑÅé{zw~ñþìüdzóèâw—ï>\~xOù6ËR2~^Ó÷“³£³“Î7Ä/~ùóXþâ‚.Þ]þö‡ËósúK&ò…”gqÈ¿=¢êgëm/–%uÃ]üøã¹ÆÿßËÿÀÑñ–‚±iYP6§¯Ó4~y—[¦ôƒ$žgy§Dz’ÔWÀ¬BäO":…ÞÊ[Æ…Y$¿‘È¡#¢yž­¨Èæås ¬¦eÏ6%VÊŒ®Eþ(±¥Ù–ŒãGAvRdi­ÒQ\(‰Á Òˆ6ô§P¹ÉC!)³8 ò-ÁÄU¡Ñs\.)Ëåo¶)YË*‹ây¬C#¶c-òU\²ë<{Š#6g”Òùy–$Ùsœ.ØÚ(f¡‚µ°ÜJ”—ü|qz`š ]e“ ÁjS”ˆPÀVÖ̲'^ªNƒ•à/ÍÊ88²úXÍn[éÞ¾MØ4L‚x%r޽ûÚlØŠHmüŒ60î×±…”—•¦( 7+à)¨í ç‘a=§UPARì/Œ·Ýν?%KÄRŽ×Ó`%^@hší–å1Äe±Z–•U«8Œ‰=‘FX ˜²ÊJA*FåxeLD½oðªÍŠîL×èáÈL—Lµóþ }œJ÷ù°`›zlW“GJæôÁ­ÉÆWÌ‚kV ±‡¬Éöoªèó=@Qú.NÃdƒôø‡tf«uPž.?½@= #1/xíÈ÷¾kº¯ÿïjúºwÕÞ¹Øgåv- µõœnô[Ãw\<Ö-ÿæ€uµ Rɉ„Ï‹RyÐ"ªâ["ÏÓlŸ4Ó2Ù'%1jR±O+Ê‘øŠhÛ¤ÈÑ%M0£Ù÷kÍy}t4¸Fzòý:¢]¤Mäýpät2焪!³—4O‚J+ê¨ðKù£‘bÅ­´lÓÚt âtžiGœ!Y,’r½£¿u®=Ç0褼ª¥È¬¬e@fS¢ÙOà…N–xB=@>&Ž23Xk>è#½½¸êœÐ:@þÝÒ" _r½x’áÆ™w ¬Öt4‚,¸ml'kŠ@~\Т|Ͷ\S{;/êxï¨)o?I»é ý³ëøCóÞŒpÍÿAŽoÙ_ŒùäZúĽ±½^Ë¢8} vgwš§JÕG:? ‡A¸Eü7Q…LmÜP¸WÁÏb»âU«8ýöâú«=Ö/è—·#;„ì©ÈÅ<þùåµ$ËÑ!ìéW$æS˜óýY©®ÔŽg¦¾ ¶ï îdqßt¦®ƒøâéO½Ùí¥Õ—ˆDRˆ¶`µ§P1ì4ñÁK%œÚðblu8}g@ü<ITTýI ©[¹Aä8z2™4êþ0ƈæ•T«®}<ªÞsv "ɲGt›ŒãJU½]wB*ÁU<–i)]ÔZüìižÈcü6œ§J\è0ÉÐÒ‰4Û,–rß"á7ÙJ5³x±à¾¹#ïC‰"o?!iˆ<• þoïÈî†(®Ž¼¼ÝRS+Lg,tJœzÉé5AâiãE‘$ï°Ï@Ë vxÃ~9ª5Î@ÙÓ7S, DöØŽÿœó¹¶Œ”y»†‚Êm-0´ Tw¾ú¦56Æ,°·Ê~øÏê¿‘&M}3¥§PÁ5™Ð»ïz¤RbXmx®ÈÑçºvÿ ¡r¯c®ÐJr ór“"Û%[MNj8kÌ+´=˜%8þ"CÚ–Ã!ìJ€Ü>JÐȲ àRi :Š*s7¨¶q*¢®ïÑ´ù>‡£û”ÅQO)&•¬»Ù|î—=Â4íÆc“ÓÏá7´áN̉Aa²­Ë`ÍåGŽ;ãØòoð]O”ìéo«Wµ€Þ¼©Á«Ú€Ã\u'ÀL Â%N¢‚ªíëýþØRÃ1â\a[£‡K ³6.$Y·3Cy”ˆJ°IÊË—P X/+(×XžsŽšG2AI—^ç¯U=¬Q¶WÓö¬@ùsá¤}‡b\úÈïœ<‡>rpáè¤:™9c‡.«·'~“·GÞ „_%HÐsù¿Å¯Nsy1d´Þ³Þ A’—‰¡ý%Ù,dï‚f%R l¥@O†ß‚û5)˽M™e•(Ò ó ±]ƒ.ÚBÁ=O•eÓ왞ùcˆÌ®<\£Y®D%*q÷@åUùŒ" )Þ. ò±I‹x‹T rŽ]äÈF¬ æhò 帤˜²ã´R祒, ’J²O\§áÒAeÁl½eŽ\€Š–ñg–Pµ<.9â´’ šô@Ϙý¹¿KÔŠWë Ó9àÿ ª>þp@*QÙ¾AåÞ©â:«­˜¥¯zŽ&wïçP– €œg^Õ‰CÇ-–çë·º9â ¸Çwü\*QÇÍÝßß×cØ ×EÁÇõœåð>ÔÙ5øyeKá”´¬E0«”bUðTŽÔäenà WMNOÒ_*63¨Ðj™¨doýKuá–?‘ lRÓ@ÂE~ŽköáüœVï2BÕ^U=Ù.Xêþ´rFÁŽ}”çPõ4-ÑÊ.üaÂöPÀtŽÝÐ(Qü8qÌ[ÝÈÊW¨á¯s©Ê>Ý0ˆ¢ïU_]]0NaW-sCeËΰö¢8\¤ß|åW;m}#_5Vy‹5i«Ù²$”`¸91€S]8öìß•_T¿P ÓBõMªÃʳM ìj.=jœ>V›Ë·«j)I³€gQ6+²øW¶G5q!ʆŠçš¼ÞìÈx®É…økCÆsCަᎎÕ–’©ndžqíçÞÿ9@Ó'ç äLþ ]}Ãå¼¾{ºK†Õ:Ë6©BÛj­ÑÄwlÛÓè|¿2µR®ßu~ß{à’ î‰ËªUÉ¢h9Ý¥V3\5m”¤9’“‰Ê „ eXÆÛùÓñözýo°Ÿ÷ꎫî9i¼Ô¨Ö3Ö$Ø^íq¿¿k˜vèe¶±~Ï£oMÇ׆êDÃó DZž÷Û­èÕ3/• VEï²é¹ ÓºÕ1]áý²SÍí Wó{3¦¼ÚŒjÅäè#AZi~¡÷l˜2‚ì^«-š‡c9. jÕQêê‹HõqâàSÆ‹3„Ä©‡úBœ‡%H×qŠLOA˜3¥-iaSEºbÙkœ_:ú6·BAi* ÍÀZÝ|3}[}ˆÔBnQð¹}â™K·Ha¯Ë,ßÙµ‡…eVsx–mXP‡UnÜš!Aö_Éž+è–ixœ›döÉd‚´¤‘‚‘¥¾¹¾¡™‚¡…•‘±•±‘BbRñF3cvܲ“[ØU„ó’sJSRlŠ+‹õssóô2ì6_c¿Ë>YWÀqò,ÁˆÍg\¹’Fêã]xœûdòÊd‚´´¡‚‘…¾¡)XZ™˜(då§¥o41fÇ'¿¹ý·XJjš‚¯¯c@¼ŸH¼c˜£§£“ëæ—Ø)ÔèµÌxœµYmsÛÆþ ýе›±I ’(;&´­ _@ 3É %5“a@â(¢õÒÄÿ½ÏÞ @Riš¶™ Üíûî=»Ÿ5´o†"íØ½Åb>]oÒÓ¹þ@ç§çô®Ùüî켉ÿ©Ùl½;o}û-ý=ñ=OkúFkœ5´¸ÿ¢Ø›ßŸŸÓù»ÖŸ¿k5›%væûÉ5¨­Ÿcÿ~™Rm^§óï¿oêüû^þ~ ÍY ²Ä½Ó„¢¥x„þƒˆ?}æ•®ø‹(}÷”¨$å%°*ñƒðN!…UYÂó“4ög›ÔBrC6‰ ?¤$ÚÄs!Wf~èÆÏy«D§G?]RË¿Ñ&e)«ÈóþÜe:¹± µˆW~š Öqôà{xH—n*-]DA=úá=Í£Ðó™)a)Ì·i‹ŸÏOwL“~f6Í#”›$…;© [Yª;‹x+  Áa”ús¡ƒÂO(€<³U+ݫڥóÀõW"æÑ»}C °‘Üøém`ÜÿÇR^f’¼h¾Y!ùnž´3ä#Â~L+7±ïÉ6ð2a,¸ì†tîý) …/ùx?tWâ@9…Ñv[¦ÁG!Án%+Š“Ìª•ûL3Áõ?"¡‡=Á¥SVQ*HÅÜlDÒ*I´HQ™¬¬¸(Y‹9—X}®¹˜‹*Tå•$™Ìã\™6Ù£¾sÓ¶ ÂóØ}6{F:wØ4È2.¡cS{Ø£îhèXfgâŒ,›~þ¹mƒáí[ÞbQíá·c˰mYd^&ä@°Õ:¦aëd»ƒIÏ^ê)4940¯MdÎHg},hŸ“F}º6¬î^Ûs`:wÒ ¾é Y]úÚ4n[ŽÙ Ú'ÖxdKiìWÏ´»ƒ¶ymôp¬Í!“ñn‘}Õ *~BRÅÍŽÛ”%õÀÍži]‡ýÙ>u5X7ÐÉ]“Œ[®´­;=k€›,­×¾n_¹ڿ RÒXÆ5Œ@Ø“Ží˜ÎÄ1èr4êÙ, âmÃúlv û F¶ŒØÄ6t(qÚR=¤ \ØÆsgb›2pæÐ1,k2vÌѰ΂®F7ˆ Œmƒ»'ƒ<JŸ¤‘uÇr92:Ý\X·8¦2jmŽ…èu–V¢„VÄÓ)9KCãr`"ê]ƒwG,èÆ´:RfÚL`*Í7í;éãDºÏÉ‚mê±T¼ºL)™}j÷>›l|FŒB°Í¬hF}–dOºWYôù ƒüÉçÁðø1œÍ£ÕÚMO—VÏæžX$¼w4Z]ÛìÕ^ÿÑÆ÷ºþ¡¬8yNÎÒçµPÒ·ën‚Ö³cŽˆã0ª.%©çï/þlw-Bî¨(¼óªÔ¯áëyÍ-–ŸîtŒDœœPÛóÈ%Ih+/Æ»4"‡—±ý­ ·'Í›­[Ú:òÔ¡3"w>IÂÝkyLðE<·øG»©Û’¿ü¶Üû–fMqì‘¥“55Û}¯|ê8™?G#”ï…ÃS´êt‡J¿e8SÔ»äÇ#ê Ë§€;ˆ|W—|…å°ƒ|FiÍ bázÏY7‘*¦²¾tÕ”pv/Q$YQÔüè\½5ËŽC (Ð)ßÀ;ûªÓf Nb“úÑ/GZDZ ƒé‡#©Š*å?X’ñŸ¦â¯Ìš Ám—–Ò'‚º“ ñÐ xñ ¨%Ü7ŸiíÞ£½øaˆ¦âÎc^ž»Aœ²âPKO.fé4#yõ‰†“Á N0K[­£(¾)šÜ*SëÔD…kZE‚€å¯Ò’#ñ~æÇ}{á? ï$á=:/ü‰bƒSÞßÕñ…÷:1H¬”`˜ÃÏíc;wÙ·h‹Ë(Nu¸zÌ 8”D“D”åpüÊ2VbÅȇäÂàY 9AàV§L‘¤?5mÛpj)—[ß¼Ã:½y#å\$þ?‡I9 UðF…‹yK4Uh÷·?|Py*…?fÆSÉ÷ñ€h­L%ý* (-©ÐÓÌ æÌKóZU\+ßEÁ—· 9zU?'xÏв>陦âLµâ*Æ=ïªcš¯\ibµÂdxÀÐò3‹‘ÂÁ”ˆ´V›/ݘõ=ûŽK ú‘rZÍ€ª›t²+}ñ[±Þvê+‰ÅøË®œ­7{¶ê³³“`Ô›/©¦p‚eÍ]È̲•ÕÏ«¼\ß(æ›8‰b˜jjM§¾_zšÆ`R˜­XNcõ—·g(Ž/ _UZËøµu`r­Î•Ñ<¤uG¬Â÷ÿD¦: Ṭ0¼M"¯©Š²fk«U‘ýo])u‰ÿR0³JÎyzø-‘¤åC–µ²zÙŒ.î&ÀEQ‰kišœ#`„ÂO¦=xPKX}í~”lb¡î¥HÓf-Û9Z͌挵è9Þò%…%ìôRvw†()ðN¾øë53è?5®@bµæzˆñ¨„Å2•@XûªÔ†Á_9½Ãkãšñºrâ}°2‹±ßº¿Ø-z6¸ržâKÝ"ÛVe–@®²Uµ‡È÷P‡ º^EÖ— UK U xLK`ZA¿‚[‰+AV.:­¬Ÿïjl*6þy\úx1VE(Ô¬äËB/BQ"×éMª,ÅQõ©<Âýv,^L„äZ`š+Å¡ž!½Ì§àRÅ@Y+è ç°*É2-·K‰â¹_ŠÎÀéSCëÅÄTÅ]èÏF¼#­?-<¹õÌ>.Ëu9 *-ÊÎXH39=ÊXä¼)Kä_«C½ùǧú´¥ñ.?²ž––øp³š‰xo”ÿ}CùÎ-£žOÂ:•§Þß1BóV>0ãKjpãúG¥š½'ó½'Dê)Å«xÂòú^êXßãyïß±ÆÙs*’lÒö¤ ½˜¸55lx"ÞìÇáès`›3~úPwsà£Ç(| CyF vÇYZ|Uk°…Á)•[ û¤ÛÛÛ²0?äK"-\?ÀxÌß²ˆ?)b ‡V²2þ².Î̓ˆù’²ÅÑsiô°äñ/u*צYù«@¿Yßÿn¼¬ †7Û.eˆQ‹wµ,úz†Þ D2Ú´×é›NÉl¤ ½tþÙ_y€Š@Rmyr±Y¯„'„Ç zq)ÉäH À?ÊJ½A–ÈR¤úhvÓÌ`_‰Ò÷„“˜Oˆ¹Äýqåø¸TM Å Âî#Š*ëMãÖ1‡=ã¶¶¬Ë9&¿#³«~¸†ÌtÌóIe©°¶vB²è»þµÃ÷¡»”LFùkš?Ks^‹’TaµtÕ$ò±Ÿ gðN"«*Ë(“‚i”•ø—è¡™XÁRÌ%ÒXzÈZÐÔGžK©Bf¯4Uã åñ²?ãáóÉyoäø~:þØ?vŽÅákx鈑óÂLÆ¢78GÃÁdÔ?<› GcñÏöÆÐàáC|… zƒ×ÂùÇéÈÅp$ú¯NOúzƒIß·Dptrvܼh €"É8é¿êO ÚdØÂþÐzK1|.^9££—ðØ;ìŸô'¯ ¡çýÉ»{ýõÄio4éôFâôlt:4×q|tÒë¿rŽAXôбp~„a‰ñËÞÉIaœ©0ÌCPìž,ê†yÜ9GOþí¨Ø´ÄøÔ9êãç ¥7zÝR`ÇÎßÏ ¼DhǽW½0¸Æd)9:9¯a Äøìp<éOÎ&Žx1€;£ûGθ+N†c¢ØÙØiA'“uP€\ð¾žûD¸þ`âŒFg§“þpÐ$i7<ʲ=h}LDhÌ@¤áè5ÂEzдÄùKÊGHS¢Zi1êMšUzzN¬ÁŠóâ¤T?rðí÷ÇN¦¬?Æ }îù¼÷šÆxFÃÇÉÜø«Å¼-šRÑ.zÇ?öyUaÜWL3|ŽÆgG/õÕ:¨ýµñUS«³ÚŸ÷ÿ(Z 4Å·<"µ´­«V_TÑUôT?î ´Næ§ØeÞ;€ŠX8—n¶JP%Ĥ®ÖõQ:‰PJÅ‘¸Þû0º äl!î¶ÒüTk'Ÿ¬f2‡ <~)ƒ(†L¯×M8[q­œÙ‘Še]Iƒýî‹Þý¢w¿èÝÿR½Ë*T¢|ó.P"q;óćõ›—‘Hšû)Ù¯”L"”€;ùAzûiª9I‘®üÌBݯfr°H\¸âÒpìf.]/‰R w¤Ú1H"Pšs( aåƒ(—¤DÀUrÄŽ£eÄl¤iIV§©$DŠd&÷y´_ùsÀHŒ½Wθ®°«ÑÈeRKÕóbî¦Y-ÅOS”‚Ø®¥øiŠ@®§ÒƒŠê‹y1ÙžÈy-U_r ™Œ|š"l!€ ?¦Ð…7+âIXš¢Ô@-ÅÏúW0Sþ\ñ¤zˆAåƒõ!•C 6 1¨bP1Ä`mˆÁÚƒµ!öi;Y«ƒÞU²Bà 猴˜8w]…¨~ÜËÈŸ‰ûA M¥ØM@ƒ›¦ÈÜž™_ü\¯©çD¾[¬@Cí.ºõà+äS½¬’|•3þêëÖû…=•€âw¹\Īž-Þ™\ÆQ‚&¨õʲkEü*€ôLÝíM—¸ê©þ'ˆü0Jl±¡LÜŒåÝþ£åû «&´VkîÝ;Çÿ×åà°PìíWY|‹-´`ª9¢¶ ²™Zžê´ÑXãÅ–`jód‚Äôÿ-CjÕk2g¾yÛ9ó6›]݃Q‹¹ÐÏöî2ï (?D1Ê騂^¤YþÅi¶Ö… Ÿ° ýÈ˵ÞPŒ}ÎÑ Lü<ðͺñƹ· ÙpZº1¬LžnäUú{ѲôpxRk€á±×iš2Ëà…]¦øq^ –ÜK0d¸ü[»ú9—}gƒUeÌËŽ†ÇΫÞ?t9-È ð%L¹®¤ÐqA™`$^³ÖÀ€À3”ªTk(ðm«/Ì‘sìž½ÐÄ&•@jèÖÉôܘÝv399yŸ÷OX@DÛ‚Þ­êʽ½ŸÌÏùñtkÿ '¦?„ÀjW%¼nôË‚HDM²¥@,c£çj|ÚÀÀøšl4€ ªé<C.ŸÙÞkÇøÿ1¼…¿éã&X ªQé…Í¥ÒºYûYøsÑX¶Ÿ±üœ¢whÔƒMN½Ï;O¿N wZ‚4»âÆ–Æhtˆ§â‰¤²r@"4EP5ZŒ[zu]Æwí­ÑuÑ6z¡ÍQ4xÉb¯Ãˆu]r·ù [Öî©Lºõ¢êªÑj>Ûßód ´Ab†¯zpN殬Ø`ÐX¡@Sýë.cõWõP¯°ÅlÄAxÚ(wë(wë¶ñösÁ?0èç'’‹üÕ‚¸( œ5ër øUÓ4Áµ†4Ѱ*È’ÓE÷Säú5t¾Šk¸¹.ßÛ«&Mç×’&•uÝËL\¹˜ÖAb{5•Pð`l<ÝßßgÊ)k(6›ñØË¦a‡8šK7"¯íIŒr€Lì4Å.‘þ¡dˆæV£¦a§õ¾x^l.rƧ`U3ͦ;]á‹ïŸŠ (P2ÎtòÆWº@PÅB¡ŒÔÀ`Õ†íŽFѦ<ÍDÉ\<ìýmÔ,ð“r›¥3+©Ò"7!¸ÉR  Jç¡*J,ÈÛåæˆbãËÈv¸êè$ƒxç.G®´=k®iªK`²a*€¡@Œ§,t`´þ “®æ×†Z†05IPRÒnW>.¢ÆðTù+HÔøLß*ÞsAúOOÎÆïž˜Ç¿Ÿ9ã =#¬½§Pap¼ kéfÝòè%7»ºÀ̈ªn‘XÃwG/Y3l þ†Æ…>#¿,ý\4 6 <- Ü?±|VŒooWoDSå·–+Orú9öÃáðÜ~CåÖ½Áë'öÃðùífMùdw ƒv°SŒ²‘\ d¸ÀÜ̹’²`2Áê ü4òˆ†k̲+ü”ÍxÚ»Š®DQº&x°A;nªCãJ3Ë2Oiià˜o2-Ú´T×,.âzَ̜ Mu'Y¼ñkýhºF¹huïôêDã1_˜Ê–áúʺc/Òr ®eúÀB„c»MžAnÂ2&ž™[´Š’„l[t ƒÆWÏ Ó¸0bJ‹àÆä_¢Ä¦UNö*¯T*)ÖÑZ†¦~ÂÔ¦Œ&El­9PÄ-òMÛÊQ›W¹/Skà>^SíÕ´»`¹5J>µ4~U…q³‹€u”£B‘M[E7M£RÝTS³jµáö…ÿñoÊ ’'‹=5)ÏëZht+¤1Wñ½FYÚô†¤µ! þ«z„VEBbÏ@eÐ:QbP¸÷OõZ@›¢“”…Ê[#ÇudœGJXX\JÃTö|¹I SIVV’­§JZëÈD{ä‡ wE=L-Ó2odS ¥F¾,ׄFYfà‚·$FY`T·ãËjgEÆ[ˆm–|ÿù€JÖ,B4ÜLOª£5ër5}K8ŽT´«BHЖtž*0ÅØ‘™Š»Õ¢fð²° P–?°¨KGZ~¸w$g-"4I‹¨Û‹ˆ¥ŒÃmš=njq „,ïZä°6˜á"ç§Û{`Š`a»­këànßñ^'Å'¥àØ(Ø7·JŽwh=X¦6YÃù3Lˆýðتyôr+Ïâä´7rTCk•Œoc>¡ÛåH›Þ\[¢¥¥ð`…ÑgEAÞŽLµ» ²'jwï ꦂpß+Ú‚:«¶ÐQøäá4½ sW8ÞÒ¾Fxw\MÇÆ?a\ÍNå¼Gˆ dÙ) •UD ÖVèþ¶8D‹:ûT!7ƒ~—qÅÅR.åø9í9j˜»g¸í?)²EùQ*9 \ï.=n¦P‰ôƦTx÷’²Ÿ0/{×KËÙMŸ0V…|rÏXíq,37ë7Á?¸áè†|~Pº)![ÍçDŠ+pÞSEŒë½Æœb°‹·¬(N*´¨©Žä˜ ©p#ÐxßÅ8 œö~›$ßÒfSYs$/ÌdžÈL ꆶ›â5yDÇK)sŽÇ!³ôBæm·õG/ûƒ†Æ bK¤U0Šàiˆy6OŦþ`86@Ï_~a}LÞ¶Ø…’v‡tõ߇:5 jò`ìœ7çü¤?pcû³`c¸AégÌ‚»ÆáTCãT1 çŽQ0Œßn*øG#ø]§Â†ö¬€j\{ПGÇ oÞ®á ë‚žýÓ\M¤ßpž7BzPi"E:ŠuúýJºäÆfù š&'@SÄa F æB¥`Hßû±2¤ÒTI¥ J峨˜z€ÒvÝq0Bªãsy¿J8›@¿ŽE†xÔÙíG¬P‰à™GÜðâRlPÜõ·,DôÏA/âð–î{ ~ªwùžvŸ”¢é¬‹”Ö„ou!qjËÏä‰`))G#Þ˳c[–5MÁÍᑹ³aÀd®„Ã߇x64t1 ÀKøð›N'Æ„j®"QcÑŽ'D*ž`éßʹ³õ#kC{ƒ ¦»»„yÂóö2Î.T<Ìú<›ÛXö…ôÍY&U´ÛœÓò "GSoŸš Ûª>Ûkùlidp¤æ:w&*Ý7_¿Ïž¢af`ÐêV•°| ”bh°£ÕâêÌ3æK×áțΫ͓¯×17Äå­¬ÝÔk‰(©Ÿz1tøû‘LV’¬2æøÙI&ï Ù¦Pg9Ò©mW•Mºã¹˜Ç}™®á5)µ€JàœÞÑK‡Õ©¼BÎ=4qP:ÞæCÕÙEB– ÙâÃBËcQ18ëñN:.ó›$rŠJÆ·›\ª‹X0.‡âM;¡iåžÏ˜MhŽ=3Ò†};óE öE \Ž72èx øEÉÞåLd+>Ð?Э8OÐçÇ·¬ ±ªg¯˜öæqZ1¼DÏš0ká6 cJ¨ËiÀʘŒiô‹Vxïʽf§å3Dù€—9 ÖiðŒåÉÝáˆ2&é]µÆÿÕé{|À6ÐWÿÅ Aô×eãÓÆsâ&»´r9eÚ¤æ¶ÑêDí‰$s=“ñMô†&9á8]v”š¨X‹çï4(>õFÒCwë$6?U*Ö …3<Ñ׳Âש̮$82Ü/^àâ©m`ž\у‡]%Ot¯àþ0¦&ú!6†=tÔ#o‚c¸-&¥vÊ PÊzÚx§á4 ”Û­ð¹'.wàáTâÑÐß%œ ¾°&Ä1(îeGŸ,“˜´Ð3 ªðÛm61¶bHÆBó^¸èÝ)öóŒÅ¡“ Ü)îE¹¸=>S<á&×?äA‰ÒÐ0&¬¦ëAN&y¢r <™ •]KUò*§ñ¼8gåŠhøjŽB­ -¯YÑ¥SìÒä9B²AŸ«Æ¿b®dtU9x} žÉ×¢zÄÖ¤aiD©ý·)-Å!¨ß¿ÑÐÍAÄ0j!l¾ëPº¾^oç,J%º@EÄUQ.B,[ISY`¹ƒ*Õ3€‘ ø ÔPpIdm/s郦G`mÊ®D5U@„’ªWÚ:9ï‘¶S}ј2& ßlÒ,#º2ð§t=Gp½n×PºÇoh×ø›2TI§šüþ ßÅn‡úO´`ˆE&Sö‹k›‰ŸÍnÁH-NÚ;¦w™8dš¬Û&cù0Y>ŸAóÅZùo±VÒ/æÊïo®¤¿Þ^á‹´X(û$|«ÆïjÓ˜«>>™M“~>£FÙLO¶>´ùvÞF—®PJ=ðb u?$)0ܘ•™õ’ `>0l}A¢šO¯SØÌ& 랊ü¶ççÇ ˜(ŹÕÈÙébÕmÐŽÙœ³Îù5àì*£sïƒM¹¹sŸævþŸ=#÷‚PHþÛ˜ùW˜p0HLêß½º³R?üEB`fÝQ>/jÒG5@Þ9WWt$Wn2S¿KÿQÚ °/;̾ÛÀäo‚9² ˜B¯o…Ö;Ù;8 ~]Xyñú;"³Ï&b%ë(Pt¦Žúż¥ÐÇ{>éö±i43·`å·ÍvV~¤¢$}°ì¦‚…ŒŠ«HmãYžYn¡F±°0Øêl2êëcçÍÞ!ÅÜ Üæ£ŸsÁlæ—Y§ ¶mvò—nòžÓ¨h+Ý&Ëm˜æû½–׉!åýèí©F™vt’·À]…J+Ï7°2Ö”%Ž·|ÀÊ%Ж~QΪ4“¥ÿTöœ4VÉóçtEj˜çà©ã6·¤ì‰Í73"]©q,&ŠÝêjœ‘‡)MG~°zEò.}5ÝuàZŠáÓtÛŸž²¬^ì£n® ¶à±½;Û†TU»uÓuWuÕ©Š=–Œe…±‚|ù£UO dËžB `’ ¯¼è80—;˜ Ju!2h»¯ñ6ÕMSE®ÙèB´k ªNWL7øféü椾9‰rˆ\æö¤¢ïk¡QDãkLm‰0l´óS¶#ž(ÛÁ&Äœš~ŠAm?…;:v.'Ýœ!Íq}¿í6,énäÇ»®ðfÞ¤w„Ò73«º÷š{ú¨:µýøpú–üI½|šðó¶l­/óþ:flï*1SòP‰1­Š;Öë(.¾ fmøŸïÇãÑMCaý¨¦‹¥]»sжìñpà˜{½M Ǥ/ÁžU~-L¬’DývžÞ­½U½Î;ØÒºÞ]ßì^â!úªTY°t‡Žç˜I䂚5EtÉ¿¢6“ÓÕbßûAˆs-Lâßâ ô›<ê÷uÔoЫà5*—”Kíð½ ’ƒfýÃ@Lýý@Pž,ÈýÕÉ?ïÆ&6˜ž—2ôQüi«ŒÏü”¯½Ã_˜C ô3dQØ&ÐdûþÅ·ë+÷—ÄŽdйDÐ%ï^yû›v«ÚÏJ¿2„õŒT3"^í*éÆñt5Ó9x«¹Õç_ð±œXŒ¯ š|®7 ›aÓ–à[:?ì|íí´xõ>à~úéëÈ4Ó›‰ðŠøSÿ:€¾ìS]æúç€ô#ÿüçßýáïæ×~øÑüƪI?îÃßÕúðƒ›úÑô>ÿ‘¬ök¶ðxœíUaOãFýÿŠ)½êä&p´:½ªŽ½•;µ×pH•zN¼ëo´Þ„ ÄïŒ@à€;tºVj ²Þ}óÞ›ñ¤³ÝxHÓ½Z·GövÛ{ðfgg¯³³ßÙývÞìíìýç:- °å ^5¶;–ÕÙ¶`\5»Òùù…Ýýý·?âÅðç%ôååp® øe‚OÓß i†eÖVúü×6Ýs&¨î• e)õBf´OG‘ÌòÒè|87¹* -2˜—òJ5×#Yí ó"ÕW0VzZÚp™› PºúVsC(S•åã|”† ©–0“zš#3˜iµÈ3\˜‹Ôà?‰8“‰ºÌ‹s©"ËéRI(to*Í­wÛ¨• ÆkN#•aä¼4(ǤȕPÓ¡ZÐÑÊ"ÁO¡L>’6Fä%L`îÒVòîs¤£IšO¥®¼{ó)L¸áÈšêÌæHîÛpZå )S£ùT&]­ƒõPx®aš©ótRÞ_Œ€7eTâöÚ p¿H§’¸TÔçXU‚¹"¾0”ÔÈK,2¥±7ð¡§ÊH¨5›rM 3coÁk•¥›KªëªY œÉµ ^Í©‡45IQ·KY®xœèñâðHœ:\¢ð„{̃î2pÑ #øðÁ‰ñøõkpÿ΀½D,Ž!Œ‡÷>Ç[9à,¶®Ÿx<8¶¡›B>ïsa"´+ôO¯Xx}¹=ÜqºÜçâ¬ÊzÄE@'ÜM|'‚A ¹¢Ç®ïð>ó*ëy€y°@@Üs|ST—!!§ë³Eyx­Q. P‡–µ^Â;Xm­ãš”¨5Æ·°0ãfiðÕÕ6lýPÀ– çÒà«}Ns¡ÙjV©J“jÓLg6 ‰ÖFÆ14q¾{Aâû-¸¾=ºŸlñ0[%&m`}†rÛ¾©háTjÞÃxRÙ*ÈÏJ7Wδ6nÊenšä9îÝÜ•bùÒZü &¿Üâ—x…N}Æ2¯Y[²Na5Ö6a²>ÞdÐuû\Ÿ6^èÝ#]Øh|Þ”§ÒÔÖ¸y†Ç“íÔxʰåW9ö•†|‘Ïöãºðǽhþ?¡¾ñ„Út{ùevÿK†ÐíûS5ÚÝ›ó_0÷ˆãøôUì"›™9gþ3óŸï¼|í½íî!¯(EY)Éù(…r!_Vópïàé‡ú½=· U»i"½Þïv;HëêíKÔâÒ6#΃IgÃÀuD\fÙ#iÌsiÊLÛâþ$U6$ît†i|¶!+“Z~rgAx¶5…N»®!C›k†GGp¸Ì;6 ÄX©p~€›c|B|Û¼½ƒSàÏ…´H=O"©’¤‚P§Þ„:ôE„c¹(ŸøJèÑñ)‡PO3Ú Ïè4¨2ÄU¹GP¥–ù.Ð|žA†+ËV“ ä,,\k`fsˆüBVŽpX,lÒ»H¯]5ëšÖD­TX6 "MÒÕ Z/ ÷Ùžñ Åý?µPͲAŠ‹hµ¹ 7Më£ì%-B…¥fÕNxÝ0Þ§¡Éõô ã{Yª´â”»xNGžLd¨VXŸÜv^¨[“Ø,Ħ,­’,³pý„I}Ê‹‡LÆ%ãž7ü§×y­žÍ([År•/³b ³´^á{O÷•2UÕn{¥^ðôª‡èTëÄHy¸Ð\¾ºoЮ—^}€l²îC±5Í$ë¢7¡ÌcÌJ– ¤…’rÛ]Ü è½üHÇÍž¢j)#ÞQMy«•¼—òzWUUÓ>}H\ Ÿ|wÜšžMßxî[1´‡4¸ƒÑ&Ç4/wâ Í@¸4r,ôÝ’å:'“Àõ|ûãÓÆá¡¶šÎÙïn<Û÷ÉõH\ߌp‘È3@ؾFO†Â¹4(ä¸ŵlÝžÀ5t Ï#ÉѵíYWøiÄXw:åH§!ŸI7¦k26=F»™x7®oó ß›âÚöE 1Ùom' ÿÊuÒa.þ)ÓBÍÁØ®SéPx¶0¥ÝÈ‚(plc[‚ö;lLïά>ò]Ç·Àvš×æ%øuþ]- ºdM<ûškvGŒãO~ ‚I`Ó¥ëµä¾í½–í_ÐØõµhß6$09=£@1˜1L|ÁÚ1–pÛó&7̾KWî-Ä&¢‡ZgˆÂœ¡“ëÝ1.‹¡Û`Ðí•yôÛièžÉrøÐ ö=‘z{d±Ú.ÇâÒv,›­.Ý ßîê«Î>ûˆ:ù­‰Ì¦¯û…ÚêáÞz6tWIŒÈ¾\|í¬—ÍÒÁ¬?±®õykàJ~Ñ%ôc>‹ŠÅ2T½ùÏ_™íG±LªÚ–`‡&i.ãÎX ¬©oY~—^¾¤o6ÓYš«®vüýø°kW®‹ù&%hšIÜ9(Z¿¹ÖŒ¸”/d¹Fh5×Z¬ø¡&©‚PÓ©íù…Uý>©a4p½[ô">j×¢w’¥A™„ø­‘Ày”,/Ú­*ýKN±ˆ`¸hÿß{ËÿÊaé;“ñøbki`ÂÖc˜jï¥*/Úív UwtdÚ%À¶¶þƒÉÈï¤ýjG\¶Ð!êÔNÝî6^­º›*¾4 ˜SÅFSŠAÉòQàã8&XWÛn¡›šÚAÁ˜B£yÙy ˜ßØëƒ.å‡{Uh ï|K¤|·Ç¨Ö!¯9•rKÊØ„u9½®?¦P‹7s!Ë2/­¿ŒÙJ°¤«mìÅÎáQ—žòn}!} mý8±®¢Q¤.lÓZV­Emø`4üžé»I´ÁÛ “o!¹YM-ö÷ìÜ…d'0î‡iÿD9+ãå+ŒxœePÁŠÔ@=JÚ9¯ˆ‚µN2;ìdÜ݉YOŠÂ¢T$Ó©L;ÕÙNÇa•a~AÈWìѯðæ÷x´»ñÒI½WïÕ«ººuuãÛÍÛ ¸ÇgñƒÙÉæñrþh¹8-¤›ï'?®uw‚`W—mŽð˜Ö\UuffÉ¥X—gŒÍ& &°Z­–𦠈ª–X!™ÌE+lhlà¢+*”®À(0%BS#…à¾ÕÙòx•ÔÙ§Ø›23 (’—޲Dc „u[¨Á²™”S åzÐùÔ¶…²¯Æ¬:†×v ôæµÆÏBµÿ'y*«pêLŒ[g«\üµuù]Z6@¸í~1:lœ–C#¾àGãòH$H!NX ÈOº‹ëù‹ðm)$Br[4<,ê(‚Þ¾zÁW¢€pМ¥ÎÕú{¦{>º×U£0õ-dHSxùöü¼~ªB­IY{ÿM<^hDçÙ²û9:Ø^ìµ}‡FÓjú ì˜{û.7)J›e@ìŸwÌãïúÄGG,Í“a îŽßÓ8òrwEKíØ"˜ô'éUæÿ¹•=<ñi` ~üŽý‰]Ó$äixœ[)½^l‚¤¨±‚‘‰¾¥¾¡¡‚¡¥•¡•‰ÁF½3ì“å99e•3ó’sJSRlò’’ós Kô‹KRr2“ô2ì¸&ÿå*Ý\̽‚±^_‹‹“SAK!w²ŒÔñŠJQ‰òQ¤¼Î[HeU—ònYË"§8OiY ’9UŲL„Z¹“y\>çUždý@E©þËšQæE*g2‰£Gq)h!ʹ¬k‘Ò¢,eŠõC\«XgE–O2¿§¤ÈSɇ*FássQŸðç£ý¡©LMLI‘ÂrYÕH§Ž+£ÆwÅ#o¦?yQËDô`!+Ê€Ç0k·*½í˜à4Éb9¥âîý÷Àá#M È3]"¸ÿO,¤³4Hi‘,ç(Üíõ(°_Ò<®E)ã¬Z¯ ÆÀ›i¨äŽ÷•6âÚ©eÅ.×çÙ yq&âz épÙYJtH¢*fõÊfÂRLÀÉ"‹Ÿ_d'Ÿóâ)é½`\®q+bM[ü’l™Š5&¥âQdÅ Ü=¯qX˼G§¢ü,2ñ¬X”P:ˆÕÉe¥’ýqŸFB*’-çâ•îÉ‹õ¶ÒÜK¬&W¤x'˜ ­ ‘§ØL2šµh2«H ø”fØx•7ÓIT-DÂ}„£’¬äÊu/U•)Ÿ‰.üÂñYtíáó$_ùo@§7Øô(ðνQ’3;E:ÆAHŸ>9!ìîò–š £ò~›^Ò8 ÿr2ôàÀE¾öȹÃéÀƒåiD£qDCÿÒ`{ì¾?Iã3ºô÷ÿ:§þÐnT@g~4bwgðçÐÄ "߀&Ó`2ç5ðCwèø—Þ`Ÿ“w…´(¼p†Ã­<´•橇Ó¡ÂR~æÀ<7â|ÖŸ\°†è†= 'žëóï7©8ÁMÏÀ†Þ?§0Â&£ œKçÉYA JâNï’áô4Œühyt>B†|èW¾ë…}ŽCÅØ4ôzp9Ê=P@¶ñùtúŠ8yA0Dþxd3ÐÅøÌ X§ŠäñHå ’ÆÁ ã2ª=º¾ð°0§Š5‡¹Áž1Ú†%¼‚Ïh#YyçC¬»ïŽèÚ=%óC6ðµçkçFå8Ués±›þ¸!Þž*)ùgä ®|ÞC¡oD3>c¤pê^ö¹Úí·r†æšÉ\¤ÖÐ?uoC× mz÷ŽÞ4Ë™Ìk»}ЩxV&”<Ä%uª$©dJi‡[ò„þa½µ+V{ÜOZÛÿ@V3MlúpðãÁ/G;}øÛÂ(ˆüô„šÓ½GÜ\Çôþððøà𧃣c:|rüáäègº/ã¼&ïË‚~Øé·ßb` úfÛ®&î☛ü]8WÞ- uæŸß^`QOJÚÁTšÉûý‡ƒ¶}€ë9:7OüÇ~_í?üºqd½™â°ÚÛ\ËäÝË5á5ðÊ…¹½×)ò§½=ËÀeûlQ ž¶=ÆÙ×bU‰ŒëæNâÛ#ÐçÏ=æçh:ru[¡P›˜e€;}±š3¶ùü†NŠ9ßÉê>\]•-Ä$Ë"WW%®¹²Œágf.1Ü*ºlÖ±­>ùêj•ÉDÖÙ3®÷9nôŠv?î2|\Þ«ûWE`†²¾ÎJÌqÃDÏÒ“VN÷v¾[ëV­5¼¥©öŠIKS£ÓµÛ­RÜãî—Úwûí–Ò‰¶é·¿¶[â LrcÓ1É÷7NóLl-ãI:n¿Ýn1;– aë`χ}ìr_á÷›ÌBŸº]·‡_0°ûæØ¦WêLØf‚à[¨°õ²É“ùÂbW+l›·Õ~G9íL¨«Öé£rcÓW6h™,a1¡=Zg†ŸR©ÍB8¶ZøÖn–XKXûÖèTW׈4ú1ªåcµ­—Ç¡» ÆñîhòÙuh‡o¥¤Á÷4*Z±ƒ¿³X=œŸ)Y–%ËDÙë‚£m#3Í‚Úë50[µÆ£°Þ®ø«{ ÁÈÁÀü©ŒæØ<Æû,i¼aq'ò‚êÐjÁYÜ TVpà/%ãÙ­É bKﯵl³®T5Ù¦´Úg^Ð'ÝTz“=µºÝ&'ƒŽÂC?†¥þåJ3 ÒÌ˦ygºÆ†xØïêÔJ§Ï$¾ J;RÊ\Sߨ‰¬C%&Þ6~]›~ýØ$k‹,¥ ³@”}õØ'̈R·ž$”cuÜn—u­Žu»Z¢ÛN Øozø}e=3p‚H!©\y5èÖ`­j1ÑåèÐ6¶¶]ó;Y%¬—~×þ…=žl¼½šŠZß6Æw«Ç«ÓÛîo÷ŸúBÄ”¨\šx×>àÕô+[uÕ™îFËê¯DÛÜYüöB0{êÍ“Ýt³&În¿äjý ç}n$n#B½’ °ÓsjëEÿõÉn¶àê‚X=t¼ú¢àXÿÅÕ Gûc!Óö6†ájP·Ìÿ_.êæV63öÏG«58›ÙÎR™/³Z.`^Kþ~«:`5.Þ½¤}uƒMtتcñ%}¤ëu£ÿ?3‰ÿx¸”\ál_xœ•SÝnÓHUѵi$–R$_“n:vÒÄIФ…-$ H( 4» ñc™É˜š:kU€òÊJUSël’?ç)ø»qñØûÖñÇKûÛ]«ô9î÷‡7¯ëYo-á.qC¹'.L›ƒ¬ç‚¥‡Üá¼é01½îã§°™ŸQÖùԮˀn¶E|òÚ€+¥Ë¥•j¦®g‰ݶ۷6î6Pæ5øã~‡CIÑ®çŠÏÓÆ@º{ÏP§GÂÀÁ¤¸™’ôÃZs°aß.ÜYÿ­i7ÛíÖ}ûN‚M£ýˆ ¢òA×÷ž%À3¾’ôé÷±ãGÇ#„ræPž´mÚ¶ëÑ®ÌlûB¸OCßY€G9˜† e|Š+/NRw‰³e;¾ç„zrâ¼ vü4ÆíãJª´›ÍV§½Þêèä'ŒÛ•æ·l.ÕÞyÖ§¶Bê“:bY?7P:T Ëv™zèY y”D‘ú34„vú^×°ö”ئ‡IÄè¤ÄôhR§ÞI榥®kb~fQtf®bK(É ½ß‰l×·w[©Àû®+ã“™kvãîúíõf»ƒ”*,¬Aë×{÷ä…Ø‹ª›RÇdưø4óËD¹8ßQ¼²BÜH]:©Šºp},èZ¤¶ÀÈ.ó8‰í`4‚âCê\*ª’cê*Eߤ®¬"çóò“Žåó†:e鉵¤ú9Zrµ¦ÒÁ”+v¢¨f5·ÏRyXQP,¹´ê Ïâáì­q|©…ÄûÙÛ¹¸ojÔÅ»ôÙ©=q*ýè„ÒAÄ—Ù9ß_?·§˜=ÒÃÁkF&ŧtn*ÿ¦kYŒ¥v46j. —‹*œµ%ecC<;= ÷¨œÁN?HÎrTf@~4Cò­bÈ_dïsŠAø¶üðÐrY-¥Ñ(J¼åãxŸÖå<)8šnuu¹œâ¤I¥•¯9¿zçuPü#Ž Zr±§ÿ}Ö9é4–LxœmRÏnÓ0—è6ÑpšØ@Ü>öG[«Ò4°i¥ƒIiê­F%)±Ã˜vز6]ƒZ'JÜ ¡¸p|á'Þ€Ù‘wàŠuT‚ùâøû~ÿßW¿Ì_èÅüŠð:iÔ xì§iÀx¹S:£lÀÓJeC¯Tu£Fµ¶±UÛÜ„÷èC +ù¢®izñ‰E°¢xœ„§}ëBÆÚàZv£ëú<ŒX 0ë”à à?<¤ý0…NÔ @îÝ Ï‚.ô’hiÔãç~È.ãIx2â²Ã£Û…•äÉ^E}ÆÆ`•¡å¼û|ç.L–¸ºSy|MSØÉú7™0rÆâ­"Î-ÞŸ0ÿŠ’T|Í={4©g±¹ºÐMvñ+GžÛˆfZŽg7LŠ[zÙ2¢i7ÀrlêâºG—(•ãc“&kkª+Žgvî©*uJ@›H|›±²sÛsÛAâ÷ÌúÚT÷?½:‚6ë-$¬Ù—óÙS96AoN-¢í}ù´¼BŸ+laûÆ!Ÿ|”00¶µOÚ¹óóÏì›xœ[­zCÅV_‹SÅ/µÄ)ØÅJ¡8µ$5¯L/Y§LÁPÏBÁÈÀÀXßÐHßÀTÁÐÔÊÄØÊÐ@!µ(CÁµ¢@A…SKŸ‹kC"Óf?æ4IœŠ'Ÿg7´Pðp swö÷sót÷àRÎÌKÎ)MIUPÊKJÎÏ-H,Ñ1òÒ2Óõ2”¸”SóR2Ó¸€Ê6s3 (g¦)(‚Mv qõ ÛìʭȦ Q¥ ¯…"§rBC¨TKš +£ º˜,H¯HGììœYxœ[­ºWyC"Óf?æ4)#c} }#sC#+#S+…¬ÜܲÍçÙïp Ÿæxœ[­z\eÃvQ##c}s}C#CK+c+SãÉ'ÙÍ6'sxpÔ QïExœ[­z\eÃvIC= T0200Ö"cCS+c+ƒÉ'ÙÍ6'sä1o¾Ê} 8ð ŒéAxœ’OoÓ0ÆÅÛìMœÐ@ï`ÚÒ¬k™à€Uˆ?;ªÛu©ã¬©ÙNÇÆ¦J|…| Ž8î!$pᯓ¦N\b9~ý{ž÷yýyùÛâbÓ'+;ÜÞß{¸‡Ür9l°ú6·ó»3×>nO_8ÌLß¹ø×á³üÓÌ÷üë,ÍÎ^^ì¾è«ù{òè $ÃÆŸìr›ii µ¬‚a˜dBc¡å ÛxD ¡<®O ‡çNMÊú¡Ÿ–TKsE–ÞQ"¤džۀ’²Js“%ùÂÌQ¢ÅÞtÑØæü•éâÄæ_æ–¦šŸÏ_éÂxåI- g”6}”„n72úG %ùÿõAö¸5c»Ðq°}^ýQq±s€fÉfjÐ2´BIÒ: šZÉ—6L Ô:D¡XiÈP«w ¦LéV -DÉɾð°ý6M69=â5äÖZkŽêÃÌQ ®ØÕï÷…­2+$ßôU–D>ô°q0­±"%×l¡.ìoóš„è•©”ÖpRJ ,?¡ó#7B¿š!ŽÔˆÞµpL œL'3öÓ:ø, øb(àÐj9Ãé)Œª~¡©]ìãâòdŠ/|änŽ««Å²Ür°¾.Sw=`óÇkh ¯`ÍF‘Qrœ±hßÖÇÉ9PÁqVÕ’ RÕÇ%‰¹¬9§7<{… ¯ÝÔÓ dœ Bl%ãNª¦¬»¸ð»éz#gôÏ~Ïè/sœCCé„xœû$õALZ_‹SÅ/µÄ)ØÅJ!-3/%5¯L/Y§LÁPÏp²-»üFËolü˜â“W³Ïž\Ì‘³y&×M&e†Fë‹zxœë¼&0AVÔHÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐh£Ñ*v5›¼¤äü܂Ľ ;.å̼äœÒ”T¸¨~Ay Pf² G”ïŒIxœëìÑ×âTñK-q v±R(N-I/Ê/-Ø(ü’]Ø=( ÞƒK93/9§4%UÁ&½¨`2?‡¼ÖËPââÊÌ+á‚i˜ìÈ¡ÀãäêÂÅ ›œË! z™Rì€0xœ»&0“w‚¬Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFóýL›·²,dx Ïë€xœë¼!0ANÔHÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐh£ñ*v5›¼¤äü܂Ľ ;.å̼äœÒ”T¸¨~zQPf²)G(;šìOxœ»!0›w‚œŒ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF‹ýL›·±,bY ×íŠ%xœ»¡rPe‚¤”¥‚‘‰¾…¾¡™‚¡¹•‘‰•©™BVNbîF£Klx¤'˲LŽg—ÝÜÌ~• ’MáŠfxœ»¡Ò¤2ARÚ\ÁÈÀÀXßÀRßÀLÁÈØÊˆLÒ‹óJ6]bÃ'¿Y–½†yó*.¶Íß\Tªæ‹(xœ»¡Ò 2ARÑLÁÈÀÀXßÀRßÀXÁÐØÊÐÐÊÐT!+'1WÁµ¢@AEa£åi6)ܪ6˲×0o^Å¥À¶ù»€+#¬¨fïKxœkPù®9@PœSA+/17Õš«zòAö"°ZÉûy$™­¹j7Ûp¸0nnçŒcÐi6ç€p¼"³èžÍÚˆBªì¥ƒÎàïŒEˆ1ƒy® çÉ'b8$‘w»Ip& ¡Ï¢;泸} €ÑÆ›…pï`†q¼YåÀ&›yq*ç…8Á 61j x¹ŒÜz=ºŠ[ðÅK–Fü7Ü$„² gÞÜsÂhY³fÑÊKÈ–uÞ{32jé$œ‚yèûá/XÍ3„bB!¹KNè¹×Þ2˜ÙĉXmâyJ´•PÛ𞦲˜þa⹬…+8ñ¦TËݫۄJ]ßñV,"Žàè©!¨°ÂHnú9Û qÿ[ õ2Cš…îf…YåäAë`÷§–ƉÓt[5Íé…­ºD@cã ™Ace”p’ ûŒ$æ5á<-¸«8n§œ5™¸°=Å&´ÊJÔŠ|ÚgAWG YWTš5èJ³T C¦Y´@K5_É×ÜÇ)wŸ‚…¶¥•ämñ‚6yp©‘ñÙbLKË’Æ’5UÆû´ðdzåÍa,_ª7èÅPÝŒq$pý ÌýàÖ Wk'éÐC0÷íå¾ø ·©7¯Z×Ö2P‡VUö‡ø!î¸36ÛË¿ÔdpÌ Ø¬9ÑúÊ¥(–¯_Ã^>ì{A"ñ…]1¦zå‚»t"ˆ]7öf?ÿg°ÿcó•T‡ö4óÓK‚wÞûÎñ»ýSÔêÇL¼¹1K4÷ÿäù½/æö§?СðfÆóŒuÈn(úá&py­Í”5%pâ¼8aÃêŒÑÑ>A¯Û}Û>zƒ ÀQ b– õÛïÛiÀôãÑÌ=Ÿ¥å«£“,ù3M‡Þ°‚E<‹èQõ];.£¨U"ãÄØ*$<,Ř›<¬Ym¨ ~Nž /Öò`Aâ«4t‚jXBãs·ÁÃà Ü 4y$[¸?í|Uu¬IG™$¤ö¤/E¦ä¡Çc.Ià r‚Kɬ·Ë„ÿÃ@årø&â©8s˜5)2î’/¹ï,bIü§( Éf“¿Ãkêç7Šl©Cc2`ï º”•^¼YãÉÑt—’$ 6›(€fâq› ŸŠÅ0¾žŠ%!„E˜MRž* £š› ö˜ñÜ ‰„[šƒºDî@–:Y€1=8é9–(Ti(¤«Ð®ÂßSô·¶8]‚\E ®ãc.¶,ÆWQ¨†(ƒ%FôédBîV§S Ê¬ˆFЬ(À ›YtJÆxP»K$ Ç ‚rësç$@“b 0¯Nðùi¼&ªLÕí1y ÉÜ‚³3ht¤¬ Y—,/_+K>b¸O8¦nœË¶2櫹öÆÇF¡½.UW°-¼-€‘5.d{¬ËçªôBµw@©¦f ˆ †¨Y T£ñûïłݶp&sá7Гr>¿eåáa‘y‚p1ç®$ñ %qgÐós¹=ßwÖ15ì~â­}dyܦò†+¾,±òü9#ÜÔ¨:ðááèÿ3 Œu⭼ߨ³òúžvåxéI¨Q¦cà–á4ƒNÎ ùçæÉÉ÷O:¶Ó>>[Xñü¾JM]EoÜeÔÌËyCêhëÃÇrÙ®½$ü0®)Íöä#ÐÖg;e7«¥WE`v™UصåçS³ŠDsöG,`‘ã¥n‹ßn#æn"~y¨'a“Jf-õê%šŸ$[ÑØ{®¬—¾ÿ«’“ÒNò8djÅËÌ¥Ò¥·õíú(¾@Rº…þ¯ÖÁçm|¨8ÎòíWé BŸ GJ1@Éñv¢ü©âöùsIÍ^m'é†j)ò…*Õ÷›G_} óâFJÒ¸ oÞd"éûc?LÝ!^êì±iLGã4S±q°Œö¹”‘ÛüTt¿ÌBá8êCmx]3UYã•=îìÚÄ]¢„}±Éº—Ê:ÞÃÐXÀN‚û2¼«´.îÑ·2Yè^ ·‘ãÞ1,¤_ר]ÓÆægLB9ÊˬÀ&øÇ&¤ïQ®¹›ÕÜg_¹4©t\ÄÎ>N`wŽ­\ÑØ#òãmOUÕZwϥ߶{8 áeœ¡óVx¾•fäe=ºNÜafí5Zt¤z‘%/NXà>”h"¶ØøHAÕ‘DûÚæ2?µí6ž§ÁÞN€ºfzø1X8^ûÎñ™7sÚØäK´¶“5Ä)½˜qEfò]»×À“jCk¤õ­KIS¹”¬ ï¥{úZ=iüÒ8M¾<0åùÕð™-õlCQBŸŠ[§bµÌåýlZ¡ªž½i€˜Ö êÜ£š’<³{Òv™OÛ†¬¾`NfŽe9×pxGEA#ð?檰eÇNg+˜O*sáoFÉg|‘^þ‹ïîQ*ÂC×ã}ëp¦•|M±ä±¼ÑØY¶A±§æ}ÁIÞ¿ð»Ñ¿›W”wí‘@xœ;®÷Iw‚”¨±‚‘‰¾…¾‘±‚±•±‘•¡ÑFý5lúyÉ9¥)© 6yIÉù¹‰%zv\Ê™è¢úÉ)©iÅ@¹É®ì¡L “g³Ûc7tò{ö=õi C”òsS‹ “Sõ2”¸”SóR2Ó¸°Ù‘X\œZ„Ó%•©8äÒòrK’3à²|¨Ò“8e7p^çíVŒä’`xœ;®·Eo‚”¨‘‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙFý5l“ß²ÉNd?‰]Åä÷ì»dôµ”3ó’sJSR”òsS‹ “Sõ2”´ô7ïçèàXúˆµçxœµXùSÛHþÙþ+0Û(œÙcâaª„,@µÆf%9dž”G–Ú ,¹Ô2,›ð¿ï÷º%[˜Úª¥’ÐÇëw~ïPö;Ÿ¢8õzïi:r)’t/4îèpÞíüuÿ蘎߽?<¢&ÁŒìÍé§Fg¿ÙÜï4©CV6Èã›Û‚Za›þù/dÝæ±,2IÿÈI ÷ˆÌ$!E$)Räw"ÚÃc~ïŠÄy.n)ËÕïlQ0—YÅÓ8 ˜‡AA.h.òY\"¢yžÝÅÅmPà>I’ÝÇé …YÅüH2~7Å{^î­©&)›V:…YÊ…,`N@WæL²;¾*ýÁLð“fE ±¤ü˜ÍJ¬2ï©N&A<9ûˆŽž+5TŠÀÎhåþ?º¶²äeáb&Ò"¨‚¶xd¸Ïi"ƒD®¯ÆŒëf(ãŽ÷6‚èNäE,Yäê= !NEP,;Ãz+#d6-î¶R-å ™'ÁÚ%Aø-ÍîÝæË1nøÌB»­€}a²ˆÄŠ'EâN$ÙLžš%¾Û#BÒ`VjÇ/€IvÂ{›&‚Õ…W3i”å¬zÎ"gY!*Ѳr*ìFfÐ×OÍ« Nr.B:žÆœ9C<Õ`—²ô*³ó/¼á™ÿÑtmÂúÊ~pzvN?ãÒ&sä_ ]úí7ÓÃõΙƒþ~&ûÓ•k{ ]æã\^õ¼×øŽíä ¬þ¨ç Î :ù4úÔw.dþÐPÜŸ?cfÃ3º´]ë'æ©ÓwüÏJê™ãXâô1éÊt}ÇõM—®FîÕЃ®0¡çxVßt.ížr½3€\²?ØŸ¼ ³ß¯ujC!ó´ok–0ªç¸¶å³êåJó°àèÒ7È»²-‡ö'º›îg k8ðì¿@„Kê™—æ¹íQ멘׺ànkäÚ—¬ÌöF§žïø#ߦóá°ÇÞ%Ïv?8–íu©?dŸÑȳ•b=Ó7•xps@ÁFOoD‘¤­©AI»ÜÂÕjoÐÎuºÓ^SsíI}³®œä~Ã+–B†zW ýM1¼ rêôtÇxïò$W£o«Öè ô[tü|YL·6~„…:s=NMÐ!ÓÉ . ~®î N^¨i¥#ç&©”Áý”9êm1t~¯,i¾l 3¬ïçÊfÐn~o6jWüÓ çÝfCÆÿã¢ÑHlnÀèAö\oÀà.èä9@D\ûã°|ie‹TÏ’éb6Á3´ÿuVR{hž‹P†˜¥âŽ™Zì À†9~Ï»ôö-V¿ž Á3ˆ:||»”ŠÝ]Ö&qº¨t_ PE¿« .m`ÙÛtئ hÐm>6ª´\Æ?ˆÑ„¨æ‘€¦q‚‘TåàÌÚzpdüᑾæÇ\èDÏ0£|ŽœŒ^¤âž9b†‡PKx“'|ÍSŽF¨n• :ÐÍ¥¢œ¢Ô™"ò:°~¯v,)ÍžÀýrüUCeš7R¥[.Ò„Íw àzǨþÝÚ¡G@ %’ˆÐ*‘Ö™,¦µÝ¼È{ØÓ¢¼l @J1ƒÒ„3f V¤BÒ¬£~Ÿ@Ù<&Tclð%ÃBm•ÂL P«Ì<øÚUiPnõvVnx‹¸:ò§OŸÞS\Ð=Ûˆ'Ö0ËNè G æXê¹Sgmĺ ÅS=-R€»X ì"y0ÊZ…LÕªñ H¦Ó„èDU]}‚ÄÄ•‰2ì…2ð’¸ xœ%K‹Â0„ÏæW ÖS)yUPË"âã ,*>ØchÓT#5‘e÷߯ÕÓÀÇð ÃâNomÂt?ÏP…;ÕÉ‚ HÎûŒ™LÁÓ,•™¸Ôù‹ßz˜Âb‚? Á8Xåwï°£8œ}s3ø ï¼L>Ô7§q‚¾0 ¤H F£m-ÛGQ[Ò_sëZòòG¶'Qi*ë ”ú^NgBªý減-”"‘q¥­ÚžÓõ£4è*õº Rª»äŸë;ú´ŒxœµXmoÚXþ ¿â´£M!% iÕYµL*9`ï‚Å&i4[1Ž} ž16²MÒì*ÿ}Ÿs¯ml ÝY©‹°ï=÷9ï/7'‡M:¤~¼zJ‚ûEF­~›Þu»Ý#|½§» DDã ErL¤…!Iº”‘ŠäAøÇ»çO?~üH7Æ@§«$þ]xÙwNòßDøAš%ÁÝ: âˆÜȧu*(ˆ(׉'äÊ]¹ÉÍãd™vè1È'ò7^gŒ²Œý`x.ctÈM­D² ²Lø´Jâ‡ÀÇC¶p3| à„aüD÷äÅ‘ð¡”QøÜRdŸøùôxK´”ây!“û \§ôÉ\Èʨî]üÀ[¹5Ÿ(ÎOt@¤a6l¥zu™ÀÔ Ý` £3Æ»]AÀ°b‘Bèé¯!ÜÿGRZæH~ì­—"ÊÜÂi'ðGŒý„–n&’À Óá¥Ã¸ª†Tîý1™"çx?r—‚eâç• ½Ù“>FZÅIš‹´tŸèNpð@‰˜DäcOpœigÂi"iŽ eŒ4žgpŽ•G¥+áq\áhÀ—pDE*¶Ò´P‚ÿœKÃ&Û:7ÚD'<_M¬kdÁ€Îo±©óûßô¾Cš9 ¾e:ã|êX›~ûM³qàÍÞb(ͼ%ýËÕD·m²&dŒ¯Fp<ÑLÇÐíf4æE‡€B¦åÐÈÈ«Ãüh÷$YCë“þ%^µscd8·R ¡á˜Ìn~]iÇèOGÚ„®¦“+Ë–h¬×À°û#Íëdµa‚1é׺é}©F5=TSó\‡ˆÚùHbI>Ps`L@Ëúlžú°¤uȾÒû?è_t¨¢Mn;9¬­ÿc "l2Ú@kP®õ_ÌÑúÓ‰>fa{zn;†3utº°¬ÍP€·õɵÑ×í,[Zljë0q4É(0¶ñ|>µ i8ÃtôÉdzå–Ùf Kë–°N¤‘-Sê #Y“[Æe{HtèæRÇú„m*­¦±-lX¯ï0Z…\aO§¢,™úÅȸÐ;λÝ¶Þ†Ë › ÅùF»•:N¥úì,Ȧ+ÁÛ‘.%cHÚàÚ`ásb‚mäAc Éžö/sës"œ4›'²£\¥bíÇGÁrŠM•@êN†ýw>¼Wy~B®ï£Ȧ‡ªþÏבWÔc†:_Ë’D.wd™F)£©ìÅI‚j>“ƒb± ¢`¹^Rº¾K…,Hò*= '¥éBöš8âcC¬ˆo.Óä2A "Ó4E±“uF¶7˜ÍÑÃ'Õ†3„€sLƒ8z“©Þ•Ix7RqµNVq*r 5 "/\£üÝyñråfÇ‹Ïû–O"‘ùw¼¹ÙK3? vÖ”êmÁ¢g'AT'v“•{Â;9ý<òÅœ.µk}v¡;¦6Ö sh5ƒ(£{‘±Ÿ‚h·PoÑ-À õÅÒûƒ]G‡©Û¡4ø—˜aÑ Z¯·p±¾ˆÓ¬ƒº¸õÉIy·BÌÁ/r%˜‡î}Únþ»ÙØâ§náØWgìØ©É%ˆhß.»½Ýl40¬“ˆZºfÌ†ÚØݶ{9&x0±9Ú5i„NeóV.Ò;.ßÛzýÿu‡¢,^¤-¨¾A4[ÅIÖfX…›%¡·zj)„ ”²]›>Ÿ•Ï8Qp¬Q}é9WœÍS’W¥éé€LcfNÑ2Œþ¥e;j¿&ƒr5GÔ 2»‘Ù퓳ësŸKÙŠgÞ{A¸FC„©¨tåú3ñ†c±‚ÿ¥Œw÷ÄüZ-R탚Å\ŒÜÚyd”R–îìê1vn“1M‹›¢ÝoŽÅêèóbÆÙÓùqš³ËjkÏÍŸ0å€ûÉ!½ÚNaYlêù >h)èSÖ¤©ìÔ¼G-ƒè"Iâ¤Å)‡'•p¼µø­í¹°úFùO•¸Åe%G©Œ½ÀÍŠ¡MðšÅ/Ï+Mkç—bc–u1tª žæn®“­“¦Åºmqö…ì%<$rÈË—bîìððÇâ(~Œê`*Qk`›²ÎgÒõŠ“Nøõs¬hÖŽeÅ:‘Ãø>©‡š1ªÑ¯#4*Lç‰{ŠÚxÊ]‡Ùµ%ûÁ Ÿ¤§^«ü}æˆÞŠ›÷îhƒÁDù‡8ð›óDöž,óy^ïtèÕò»YÄ·Œ+'ú\«‡†Xžª¼Ütƒ£Ï°ª"n4˜U ˆüŒ#g”o@“f3å)ÁË[LsÃi)Ãbæ2<Ù%ZÏ—•ÚµÖ´9·yº_x7`Ñ¥ ½•—V—Þn‰Jci…ÏnªCá,ùŠf±dzóÏÊÿ),š´›ì±»åxK§L ¿ùò…ŽŽä8ãÇ"-Æô+Ô* /}G‚^ºÚõJ–ïyÕdk¶ö÷avw ÖÞô2æŸÞÿtÓÂ,ü#­¥,ðiëæŠÑŒÓø^DÈ´âæb‡pk”v¢Gæ=º<œäíãFrf²§•hËp­-ý.„ÉK÷.µmõÿ.³RÇõ*‹½8¬0*–jŒŠEF(bN¦ÒDM´Â2“UVl¦1Õ‹ª«E¹Ìç´ï¥Qgwý徚]õ!«p)ÿ«‡ÓÊbîHür2aÙØù\$8Þ+ÎÚæ!ÓíULÇcÙÆ6û綦š=öSý¹ùMv”Úx¤Ìç­X°B2è–ÅakcÓoÕ¡Ón9²IºÏÔe©åó/gô3®Bx`\O¸TÈÑ ]dð‰<)aäàÃX­4|˜ÝÝ3¬p–‚¶K‘+x)¦’t–[¸3*¶}n¾lß|„®4ܯueŒ<YÔ°ÕýÖÍ?¥ÞEì1š]P¶6y€’òv¥ 9.-*Í…#­¬ÔÜTPÅ_Uù‚™"-|õòè[Ÿ¬0U5”Þ¯ ¹”n/p.týë\ªzÚþab()^2Ów…*Mö…AaU—Ú ÃÍÀ´9ø´Ú}€«,]½x¾8Õ‹Ds{¤æÙNu¿úX/£»ôKQV’I9e×ß~í~Ý,È–ÂÿëÄj~Û®eÞV;\%âA¦4^¹=á?¹¹ålÃ# &ÊV Óe?øÚ£àíÛüŽ´Uík—Õrµ½„eÈ…Øõ2g𶛥Iäj™ª¸¿Z ÔVö YÇ{ß½<,Ø$ ƒŸÊÑr‚yýê’›M®7óºç½á¶÷е÷ŽSL°wÿ;æŠ ºœxœµU]oÚH}Æ¿âV­ ¶éj“M%c0جÇNšj¥ÖØãàØÈ6Éf·ùï{ïØ’¶ËŒïÇ9ç~0îw[ïlYŽ„u ÷²Œä:ÙôBý½! ÏýÁ°?¼Àãå`xùþü•ÉüØß[x×êöµ~·U¥Ÿy¨ ÖI*Þ÷Ïë>Àà×Ëá/—ç®ò¤(³B‚œiÐ3Û>åÉýª„vØ¡Ôx+ >Œ³]e’¥:ð4ìQ†±^ƒÊ( —…ÌdDvry«¤€0‹$ào$ó}çÙŠ,.ƒ\¢7-ód¹+ÑSf?æ"¨å˜æÏÙn ‰+#4+ Œ… `W cŠ$»<”ʲLÒ ‚8Ë7…I¹‚,W¿Ù®$”M%qÖµ‘²­Ì7IIº¶yöD$p”ø%g½Î“ôžôG %„ByY^ÒyÐ{%­€,n4©¦lvE‰=+ÔJ¨Á2{ W=ÁOš•I(uŒÀ&®`´ª¼—š4\ÉFæj@Ãï… áQG!Xg´Cqÿ¨ª¬‘¢,ÜmdZÍÐú8 ý9l‚W%X‡Æ«ðqû-›rÂ{·†ËÏ ×¹á³`t‡N6óÔB9¾mwl\^Ûìa[`:¶çò‘ï9® °¯_ ''ÊkØwÀ>-\&8.ðùbƉ\Ãö8 iæ[Üžè€(`;Ìøœ{ÌRÚ]Iø>œ1Ì™kNñÑñ÷îå˜{6ёπ…ázÜôg†Kh ß]8‚ÕiqaÎ >gVP»a¶bjÌfŠôP0‰]鈡Pc4cVjq—™•t8™ØH8ÓA,˜ÉéÀ>1¬Æpït„Uw†c ö‡qè˘¬¯ýóΨ¶à”LßesÒìŒ Gø#áqÏ÷LÇR-̽á&W0s„jš/˜Ž$žAô„‚C7žG¾àÔ;Ââ¶Ç\×_Põ˜:·ØìÙ–ê36…jÆ>9îáR3Ôt¸2´ã¼íº<Ï5¨hzǑȊýôŽŠÅm›Ìø„Ù&#¯C@·\°Žº+].(†Wä·2ûT¾šj«ŽGû¬«©ƒaÝp_«uÀŽðzuÐ*|sZwŸþx§¿MÒp½Ã›æ÷tf›mPöV`íe”d?÷­“%9ÑÛ©qþL˜g1œ¦¦EòüRjÍ‹«®‚ºÝå.Ö¡ò=àQÇ+ •à_\Ç]ÇíëÆÛŽö¯Öªò¶%Ú»®4Mk!a›²áúl÷úÛ·LçÀÌÖÞ‚+0üóÚ(³Nů£°]‡u: ZãZxïòΘõŒ”x#Bù1¯*Bà´a¿ºª¨©¢½1Ö¶±”†;$’³A¥,±ÌbЍM­ºsx§Å$²]?wù™"RhU¶Šz³/?ÝJ×ÉŸç'UXS …V–g­ù:®RY(ûôóÊ÷Ó©i^“Ô8‰ !õ†ðñZ5­†¨›Ö±­ºêt?³fzø¦ªš¾ ï%O5Ô´j.SÕ¸W³}Yv«^‡½”ÃÞÔéÊZÏ;­æ}ìyáˆêÊŸ5Üš·ß±öˆæÓ‚çˆPxœ;%|Jx‚´º¡‚‘¡©¾‰¾¡¥‚¡‘•‘‘•¡‰BI^ž‚kE‚ §–>—¾§ÊDg[F• ^œ~ ?µxœµWmsÛÆþLþŠ­œD¤ ’zéLk©r$! 3¡ Mêa àH] ,Rvÿ÷<{¤d9ÎÔäÃíÛ³Ïîí{ïÆ¢è{ÃSš‹"]ÝÐXÓQ÷ˆŽßõOzÇÇt||zrrztBÿJE6'ëÓ’¾kôšÍÞA“h.?grþXP+lÓÑ»¿ÿÍÀßw'êï_¡Ñð¹b.’"§tF>'‰\‹,—ÅgÞ±œ¥Y"ƒ.‘Ǥü唉\dkuá…C¹"’y‘ɇU!Ó„‚$¢U.H&”§«,jçA&Aö™ào‘ô$‹GJ3õº*ØË"äL†û0(È-E¶E!"ZféZFXA¡ÎÒ8NŸd2§0M"ÉF9{a»…(Ny}Ô}MåYb Óš«¼@:E¬ì5xH×,*©c'ø—¤… … ™S 즫ÒÛÅ„ aȅȘ#:~ ·©€ Ïhpÿ,¤³,=Ei¸Z øAU´ê‘BžÑ"(D&ƒ8¯‰WcÇÛi¨äNº4RÙ±< â+픤µX•A¢‘€[ûJ³¼Dµ>ÓƒàþA)‰$‚Lp«Ê"-iŽ`#ºfh>òtV<¡J_esQ¾!·L%÷\ÆM•èöÊó2¶ñ¯l<ç¿3]‹°¾q[{h ©¡E®ui}ÌñÎØwíþÄw\~ýÕô`°¿Ï"veŽïÉúùƵ<—ì뛑 ?pìšcß¶<ƒìñ`4ÚãKƒà…ÆŽO#ûÚö¡æ;ÇcG/-ɹ kË\áÓìÛ#Û¿W€.lÌá.ϤÓõíÁddºt3qoOy㼆¶7™öµ5ı¶ÇLÖ-Ò"ïÊvò„§4û šý‘ò¥â Í¡íZŸó©W°t#ƒ¼k`óÂúÙB*¦{o”n=ë§ ” doCóÚ¼Dr­?¡%L\뚃oÒ÷|ÛŸø]:ÎÐcWpïYî­=°¼39žblâY‚ø¦ /  b¬ûÏVÄÙcßrÝÉo;ã6;ºrîÀ Àš°*’±Ê$9î=ûe>T º»²°ï2§Š5“¹ðÀÞÀgo[šˆ >ý­dil]Žl°>°Xê°£;Û³Ú(™í±‚­#ß™÷*ljJŸ‹lz¹Õ¼†*)Ùdom_*£<»lç‚=y“ÁUÉ>Ÿ\ o䌮Ì[k:îûŽ3š"™ ûrzAÆ+Ìͽä¡HÓxŠ<“óîã^ó Nªœ5k•$aºXE÷ñýWv{a$f9ËšÓ©;ðìakï¼ôöÚgóá6@ž3Ë ß× rÜeÏ0Š,KÒW`çE$¿!‹åÃ«Â Óøá*ÁToV ˜¡ét2æ3â7ßàS&¢ÞiíF«µNeDíV.ÿ#¦E»…Rà2¨vƒv»æd¦>‰àãWz7·?ZšmcªÿoWlU¤É¤h`¤Ð9Fï€àߘ¥ 9æ‚r Ú8âÉ›ð•Fb3‰û¨6CjŸðƒ}‰1¸®çkZ‹7@eÁXJ=| ² Dd¬Dø‘G=ÔÖ@ñ•Rêók¤8SjYv‹ÙAã£5°P—¡îi(ƒ¢ºÚ*®AÕþšðFß®-Àmïÿ¸¿½mº—åþi½o]{—½½êýU¢ètø©uð%†àaOe¼¡S×ç›ÚŠ}㦄º¡H€;]^Þ[ÿòÁ(?µ,Ekµ›¿59ßåáŽlã  îŒ (óŒEÁ¼â. QA~&0›¥¿X‚¬ÆKmõÜÐ5džÓ¡m^šf­ßRÈè/ç4žŒF8;BF¸%k6Ð?­ªtôûïœçtئßTèÕ2Bu(ƒ$a|Ë”ûJwɦìÈì±UššÝvXPâ.|¯Åaïí[µßÙG̦Nج ƒ×Dðó -‡¼»ðFÚj“FU‘ËxI®²„Z#f ñE#å68ß„ÜB¥ ýðÃ3J<{οçw?štø¼Œÿö­Ní쿳w+Œ‡šü¼-3ð ¡@aÓAYo*©_vhœy,¨%支ÚÌPœ¦¹P|FeÑ}#Æ€v3Õ†æÿ¼lÖ¨wŽ”Á†A(–‰|!çâëì6U>B0ÒÝöÆ4Ñoë0ˆcì<<ªº] öYUN÷¹SZ`þwk¥vZñÈæÛ5|^¡Ò=ÏQ®vu&G©ªÞž©ñ9CxÝfFI:í}ŸŸÒ*ù˜¤O›ìtèûðŸÉžÁ£†ëÁW^«½±)QrèªÔDã/š¦aŠ·¸z9—>yˆ6¯æÓ51±üåèCX% Qšì¥UurªŠ Òüœý9;º¢•[G¡é[‡qëN~¡að!­tôÊß¿ñ©Ø(” Yãh—Í¥qÖ·«2f‰ ôÜxOà]ÓCg“J=Bë\Ê©òÓ¡[ã¼níúáêio4u;iWû§n ²È™ø÷ ôäÛ…®»ic²ÛUÛíô²ŸÔtyžÌvy››ÊO£¼±ÕîîA7_šXmö³»xœÅZYWãÈ~¶E5“l–ž$¦±èÄØÄ6M÷éôqd¹ ¶äH2K2ü÷|÷V•T’ Íl'ýÐÈUu÷½¤Ý­Êz2=vÄL£E:žEá͎߸û;ï÷öþ¼»÷ýîþ{±ÿ—ƒ÷ûûß‹›Ø Sá<.Ä*[»ÕêîV³*¶D;Z<ÅÁÍm*j~÷ÄèV …]œDËpê¥A6„ú;ÑšÍC$"–‰Œïå”Öikt$¦RàïTÆöÄuÍE]§^,±¦q0Y¦ØI£õ´ÕäIt™ÊX{q /œâp4÷ñ÷™·LBª9 …4Ð'— XAuû’W&AèÅOâ:ŠçIC<é­ˆbþ-SÂ2¦Áuàka‰Õ…ŒçAJŒ.âè>˜Ç·^Šÿ$ðÌfÑCÞ@Ó€€ÂBps™ÐóþN‰µDD׆'ÖÒ|™¤PbêWÂêM¢{ÚÒ&!$øFiàËN@«3à#49Y¯Èˆú3/˜+‰÷«Œ€ ¥Ãäœ.ÁÜïËPRjLÓÈ_Îe˜zÆh»°G„ýXÌ=Ø=ðfI®x6!¶Å`á¾ßaô¦÷2Nƒ„HæðDiñZzéKf'÷ß,„ñLÍkD3ï©$‰çß…ÑÃLNo$á=Ðô_i/…˜þl9•9j„½œE È1QH•Ë[ÊÆŠ Ò$—(NXÞ?ï:`=¦Ð›³,k æÊO±÷¥¦j#†ÆžÄD’^8*e8Ū$UA¨y”J#\Ö wA&¦D²>E@ µ˜b)TQ•$Ú|œ5ÎÜ¡öOFW­#ð|1èt;NGƦ#zΈåê_ö:­‘ÛïAG½6ìÞëˆv¿7¸Ç—£þ`HÈþõ¯Ö867y·Õû,œOg8ýpÏ/º.ð‚РÕ¹Î1u/;nï´!€Eôú#ÑuÏÝ‘ÃæõÌÂ*¤èŸˆsgÐ>ÃÏÖ±ÛuGŸ™ä‰;ê¹Ðk‰‹Ö`ä¶/»­a»¸\ô‡Ž 9;î°Ým¹çNgG€ ÎG§7óV·ËDs‰ù²¤ÇmwE ’vÜÓ‘HùSŠƒÝ†^8m—œO¤i >7€–k@¿7tþq‰sØÖyëòÕ^Ö «Vj_œsâ¹Bx†—ÇÑ;º9â´ßï°Ê‡Îà£Ûv†‡¢Û²Ò.‡NDF-"OX 1lãùørè’î—Û9ƒÁåI_gý+(:hºÃz†RHfè©?øLxIl††¸:s°{÷´x£A‹Ô1„Û#û$¨BŸ#KXxÛi×=uzm‡vû„èÊ:u®}wHg\EüªÊ—$>Û ¼©GËŸlUឈVç£KÌ«ÃìЈ«]«ÃËö™Ö>…jôwÁµ8k}tÆáÄ=ŸaE%±Nüh¾ðÒ]z¯ƒ›ÛêwˆÜ຺æíæø†Ÿ‡ãvÇ9Ú(ÿ–<%»þT^';·?X¨®ó×A(§µ®{ÜÛía]üéOâYžaZ¯ŽÇƒöÐíÔ6~Mk²Q?Ô”Åî–Èèq:DíDJ¨öEXBRz[x¾„”ZqF&/A‹’’@¹ôp¬‚Ü2Ž‹[aÄ[¹ŽÒé,˜”×bÔC#„Zĸã¶N[Cxÿ¨úÒ“½V£’Y¯(æÔ‚ Fg]óÊ©3ê_ŒÆÝ>\0[Ä ~ÜÉè DwÛœ¶ñgå]ÃðØéžŒÇ9³ÊxÚ†@2K$³¶gÇÒ»{³ÀKªöš‚ih™dÅ?0d»P±8û‡• , ôøbs&Þ *ÉlJ¥ E$¤V ÖÕ\"‡„øÅk"'ñâ›{q/}Ô7 ˆD:›6˜ëÅžO]¦+ý;êVqüb ¡y²à¨ÓM ?j½Ð ÂA¥p ¿ATÂw7&ŽüÀKMCŒ£0*}ÙÒ§Ý%Ë¢r9£jB]’O≌Û®¯YÃÏÅÜ–o±"ƒ4l\e{²W¬øgƆ{Úëœñ‰;Ž*µ-%"Ž`…æ¦øé'QXÚÞ¬g Öþ R«)_áÄSËѼÌÁf]ü³ZÁ?ÕKgͦJ úü—ý¯¤žr‡c¤b÷S÷3,1 Ê)HzÞ×6Ju‚ï]v»ŸÎàœjžùW{·!YÖfªNìÓ§Oâ´w)‚tjèÐ.Úe%‘³V{ãþ ƒÒö Z%uN˜˜4–qHî½­kå¸ÕiŸUj”ÆörkpZò_Qç‘mÖ}6m} õÁ¦8†Š¥þž‰wö«yç|xZÙ@Ù²Ü_û!å‚8ôfpß‹Á58”QS‘KÑÀo5ôƒZ­£ªØHü©HTóýû(˜rŠ uŒ(NŠ'õEbnàÕ¦ŒQG‚D8¤J¦Ã~&SJ6h¦}d8*t-cO ¼bâ›Úð}{ºÑ÷xtBKž>DcIF!©+1å¶æ>¼â„÷ é,#Õ(Åi ëëqIN­„Iä¸ žk’ Gœ¬"$;'Ë.±ôÁ=~‰ M!–ÿ^ žÅu³)þèo¾ˆEÕà·áIÖâñæ“@#àÇe´LŒÐµ³µ.Œ€¼@xÉ$Ü„ ½;¹Bü%4ÆÌEš+cÒ´Ú¬—_Úò¯%šduå3_ÀT<ÞÄ‹%¡Šæsb=¸į…§îMT+šûHÑSóbR¯VÈe¼CõwrXý¯zòAªâƒOü‘–+·ÁLŠšO©s¯.p¬âa›¶*<øô`̹5G”>”l8A[°NÂi]àDí%:u±«uD"Rž«8¿w(ñ7³#‚ímåÕ¾IÂ6+Û¹7Jžn¸W¸~T¸~.à ~l´5‚û¡ˆ°Î½m42ËÎ 7vfsûHä;dCc³}ÁîW^å«G½Î'^Â-m…j¾2þV]»%Ce(” ?‹F¢á€GyU…bý9ïr}oÒ%uå£Û(ª»ìwYBUýýŽmo6S×kKŒTð¾{9q´Ä” Õ½™p2ÒÞS…¤$èö—ó>’4f î”uÒ„yÈ!à ¦ÌͽøNÆõÕ|Xd™CÃ×ÁÜ0Ð:ªyï¥X­Ø-‹†ãÖ+³à°¢Ô]ì&øV @¤uè[Q[Ø´Zê,¨ÕH#ÔŠåhWÄ0šóµ ¦÷9š€Y€b'O¡?­ ù¸€e(¯Nè&a˜F`,›A¤Æ Jj’ÃÑ=Î ·Þ½´Ç•Ú÷õ ÔWgOâzúª¹ñ‚ö¿Šâ;¸›“¯#'16¦ÞÝÇŽN.Nfn¤Bç³ÆÈjv€û/Ú-uV忍ÊE8ê€ß©þQÌÖZ.¦¨±"—ñMô"b_Q!’ÁQ&¨Vl&PÁæO6[P;¦ý²:â §I"çïˆu_ˆ¹i¤[7}ùŒãR!4ÎJ¡˜K™UȲLñoêsa4Ý,¨±)JIÓÊcÂb\Y Äº"·%\æ8¹ tÁˆ¦öä†i¨A؆L|©¯:Zz ç;zs×fôèÖ¾å8¢»õëYÛ´¶U3¦QTÑùÊó$OhJw4@ñA3[ýs³ªòjÅÙÃs!_³º™WUF#§|Ä€K×ðÂ,kÆ-ì^’»™j’hu¿¬0•#l¹¶·Um0ÊÐ3^®GbðžœWÄnXpLñàÑõLŠÄ@W<4<™Ó^š;šó‡ƒ(ò+ž¯Ï®8Ý;£)™^ z¸Î_Wí7 µÔE3ƒ©½WEWe]‹™b®§SÂEró+ýÜDpƒ,$Œs¯†)]Ø3-¸ÈUÈ­Žq{º¿ØÞÖ>­¢©4óþfsÃö{͹±òû¬«P§k!µy4êoi˜:¡Îî%~ú©ª´ˆ*KÍIû·qV·KJ0š ‚4L¡­36.›lñ•d1]‰(î9t© ¶·‹ú°î¿xÿÁ‹ÃÇZ>'æÔU!Q—›YíÏTÂ×;‡™F2…@µW›|3 Lº9Ü4e«yÅ Q!ј›Šz®‚Ôjš¬÷µh©LC¦o?äB›òX²šÞ5j°ë-Ê3¯$¼²Â´Æòk†¢ÆÖªÌÒYkÀ¨Ÿ…·.—e©”Ó»†'…¬~XÕÙ Ùé ]  ¨“ØÏÆJ¤Öf“VjÀ‰AÒ÷й&æ^™Ú%¶Ó]}§jršíëÚªˆò]s!ú_“ä쫈B,¿â~JdÆAH8:¼Y½„¨Ô$l¬Àt«ŠËÀøä¡å]Ó Q=#]LРtp@ÎvÑþ jTº´Pu…(K¾Ú‹s ¨{x~odx·Òü›ülÕÑÖ{Ú·\m½¯­:›VýË…õ«É»eÆlóUÙôËùBL<ÿ®”ŠH0M7ãåù¥×CöTöÆaL¿Õÿ‚,L—HOª#èÃ!©ø¦0ˆ%ì¡P­êw-zšú†(‚„Ø÷ÞìWOE\V.º^xÓüÇ¢ù^•;Ó›4q%uy󲋻Z³‰“Dº)_×â*X«c×Fž*^iKÞÖ•˜nÄzÃb7&olìŸß0Oq<(¥òÏçÌQáž³—N…ë®AoöNÛÑÔˆ¹Öd .mãìW0}üå¨WÑWÐB¦¤Úô}ÞÈü¶þZض)ÚgèêôÑ|D«|‘ÿë]]éÁ_ÆôRv¬nÝzÉXþ{I¢U*t8†Â¬#cº#ß…‚}Ïåßr`²+ŸÐnS-v´Å_F×ieuðø=¦‡Ÿ5~ÿâ7³kÞB-¿yDÃì;»U.¼-×÷qM­µ#lè*_)ûHääš÷a³Måy]]ƒ¼â¡À+éMðKˆÂµ¯?_‚¯;ôå‰uÌîCŠf‡¤ËûN1·4†þ|QÒÎ:älVþ^¯Äv]5ô_.ù~:ÃM¬CF‘iðÕ–˜þoB9­¯`Îo‡ä£‡t¥¢K7D&ÔåXTñ»âX¯O°«~ÀJ¯àQý¦!›¿ó& pØ#ú« C6Ô\W–KEˆ*aeSÛÚ^¹7ãáI h\]qo¢´bO|ʇ™WsiG{0ø×òQnñ(ÈÆ& Œ…0˜eNllòšìü"ò—Éžß¼dŸ$$2åןj¡PŽn¼³LB¯u ÀõÌ31¹yÖ K³)Y±“©|Ýù{U¬·¯˜(kŸ«¯p`©[¿žfJ祠o€šQ"µm“,ãXõð…’g -¯Ërú ¿†¨1™"r2¡Ìø·4¤¢D×:\ÌÒn‰×µyÏõþlýÖ-¯®JÚVïÿÎõu„Fâ•Þ”V0Ú™CàŽ¾×ÇhŠ‘M}7–/v#CÓgW+¾ùúì¦Þ£7~‹ 1§£ëÿk¨bªo*_kà§Åïò²õ‹ýÂ:Í•8*'V“S_Ò‡v­—õõªj²îu/ïDaãhâK5þ`€:ä#Ó¾2ÐEý;û[Mhð¤6#á¡3xœÛœ>%}‚œ”…‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîFËìl~N!þþ>“?°‹±–äççÄOæçÖ°ÉKJÎÏ-H,Ñ˰ãRÎÌKÎ)MIU€‹ê'§¤¦å&gsøá±`òýzåÌ4„!Jy‰¹©Å‰É©zJ\Ê©y)™i\ØìH,.N-Âå€Ô¢"ˆLš‚‡c˜k¼kPŸ¼’R Š¼| q˜pµp‹ÔCL‹OO-É/(¸'§8›…0%vã0Ô—¤äd&ápqqIQf^:Hì SØanyÊ©!èâêìïâé碩PS£`8Y”Ërr5—Óæ#\<Œ°x:ÏíÓÚœÍã¡°™‘í£RxœÛœÞš>ANÊ\ÁÈÀÀDßÀBßÐLÁÐÜÊÈÄÊÔL!+'1w£åFöÉÊÓð(Ù|…£Š‘IÁ`2Âä,.ÁÉî<*›—reCÅ'ïåbßÜË£¦8z$è¤/xœÛœ¾,}‚œ¨©‚‘±¾¥¾™‚‰•‘…•¡ÙFã6ì2›Ïq¬eœìΣ2y)—Äæ#\ï5¥åÅá¤pxœÛœ¾0}‚œ”‰‚‘±¾¥¾±‚¡±•¡¡•¡‰BVNbîFËWì“­8êñ(™|…c9[zjI~AÉæ\N>ÆÉî<*“—rIl>Âõ^%@£ï¥FxœÛœþ9m‚œ¨¡‚‘±¾™¾‘±‚¡¡•±±•¡áFãìL)©“­8ê±+˜|Ž#¤À‚Ó™-=µ$¿ dr.ç.WgŸxÿ€O¿É"\é“ÝyT&/å’Ø|„ë½¢ƒ íLƒzxœ•TMOÔPÍŒÆÐDbT"¼ óÞ¤CG1˜Å$f 0¬ÔGÛéÔ mm;ÄÄÄ•&$7êOpcêÂÄ_`b4qáÖ…nô/èÂ×v>`ÌØ¤Í»÷ÜsÎ뽯=Ôß©—'2 e2“ã™ì¸$$Me³SY¸kiŽþæú—¸ÿáôÓSìaÇðÈI•Û¶a8A¦ÙÏŽ;=¦R©ªÜÐÇ´ÆÊ7Ù=áe¾jªZ dyµ0¿XX)¢!¦ÖÌ`JŒ·,C…Á®ñ@“=‚Ët=¨g)!ˆ«]b¿:CÀŠh’1tÍÿŒ²1&téþ“.5¾ ÓA)SR)¾5¢L#×£ž¡¯]Q£Zþh"¡›­9›UO“©£»šÚ£¦ÌuÊQ Û|ö[¼;Ч!6ˆÿ\_l6XÛÔ´LËödÎt"ÁfN3Õ(ÓjV&߯ñÑù+ñáp½f[î:Ì@(¡Øú4!̰¤¡ RŽËow2xHü½ßQOsv…*ñß&^ÇÙ†d‰ö"BÉ]`Gó¶hÅ>ò*6ùsÍò„ ˆøÅ“ƒûQ R†ºMÐ.çA$Îû]?6ù…\¡˜ŸŸ»%ç ÅÜòÒr®8WÌ/°¼-‚¼Cx#„ÛHÀËÔåšÅÉúX™ºÁTafZÐÝàÑÑ@ µ$(Uh;vqf;*‰6LŽ„y!Ͼ&«ÿÓrö/ tsÃЫVÕeŸpÿx냃±I=¥ÌOLz"ˆõ<“ñÿàÎXO«{ÖwÕŸM‰ñîcŬ$.¯îƒmg`ˆºñ¯5˜ÃQzh¾Çï@¡ØEì½8ÄV¥~ö[L°t/;’¾’¾p&1ý;ÚÙ¡=ôDω|î‰xœ›’~3y‚œŒ¥‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF‹KL›O²ÜdÆ«jóŽZ{Ý<å„axœÛ‘27e‚‚¬ž‘ž¡‚‘¥¾‰¾¡‰‚‘¡•¡…•±©BIQ~ÞF«6ü*6ß`ÛÊ4y=§•L^Jf—rfš‚¢‡c˜k¼‹«³O¼@Hk°kÈäNåÍê\‚0, çfxœ››2=e‚¼´¡‚‘¥¾‰¾¡‰‚¡¹•±‰•‰¡BV~jQúFÛf6|ò›ï±Ùk›+Þï‡=xœ[˜>#}‚œ¨±‚‘±¾¥¾¡‚¡©•±¡•¡ùFã+ì“8&b—ݼãµ [mè‡xœûœö!m‚œ¨‘‚‘±¾¹¾¡©‚©•±±•éFcKì2›9ÂÙýB<ý\â7?䜤 ­AؼäxœµVýoÛÈýYú+æÒkô}8=§g5PmE—¤bmà£È•´0EªäÒ¶î.ÿ{ß,)KqP q ­öãͼ7³3Ûo×~´£3Ú<äJl¶½°ûHÞþ£“Áà}ÿßiðÓÙàäì§SZeA¢ÈzÞÒµv¿ÞÇñ™Pcoò?C£Nm2Óí.“«µ¢fØ¢áÏÿÐÅçÏï±Vóׂ\±‰Ê)]’ÂÏy"E–Kµã3ˆå2ÍôˆŒ8&”S&r‘=Ѝ6âŠHæ*“‹BÉ4¡ ‰¨ÈÉ„ò´ÈB¡g2 ²o“wéIª5¥™þN Å(›4’KŒÑ¥ ´ÙF*%"Úf飌0Pë@iO—i§O2YQ˜&‘äC9£ð¹Pg<ö^¹¦yV>…i„E®@Gð•QƒEúÈK•h ‚Iªd(ºØ!sŠÇ0³šÞ×>Áhr#2ÖˆN¾uÙ;žQçþ?¾PɲBŠÒ°Ø øÁ>h}Ä#ÅzF›@‰Lq~^Œihrï{:7‚™£dÎ&çÙ6òäRª@êpØ9=tÊDž.ÕÂV¹¥•€‘mì^1 ‡$}ŠE´Œ{V&±Ô^B6~a\Dâ€I‘xqºÅîÛ g€C’wi,²‹VQ"Ó!lI6ÍrMöo=š ©Eb´$؈ïÜ$=,ëœ{µç Š Áj h)‰$š`Àh“*±g–ƒHøˆ–Xø®nÕM¢|+B¾G8*ù‚e|ƒ’ò.åy4>ã_Úyιc¸a|í:Ÿì‰5¡ñ-r­ kæ{dÌ&d:3ßµÇsßq=úõWÃÃFƒ—ʘݑu{íZžGŽKöÕõÔ€]cæÛ–×%{fNç{v•ç>ÍŸ¦ö•íc›ïtÙ}{’œsº²\ó?±=µý;íйíÏØÜ9ìtm¸¾mΧ†K×s÷Úñ4óšØž95ì+k‚fÏ`˜¬O EÞ¥1~ÅH_Ñ[pÑO5–¶šÛµLŸùF&TƒwÓ.y×–ióÀºµ@ÅpﺬgýsŽMXd´‰qe\€\óOdAH̹k]±Ã›=ßöç¾EŽ3ñ ðžå~²MËÑÔñ´bsÏêˆohó@\XÆx<÷l-œ=ó-×_û¶3k1Ð¥seà¬Ó-²3Óœ!’ãÞ1.ë¡cÐ¥›K ó.kªU3X ê™>£í„Uèé‘¥™u1µ¡ºiñªÃ@7¶gµ2Ûã viùƸÓçš> ¾•ãäíê’}NÆä“ÍÎW›‘ž]%sÎHÞܼ¬Ôç{€>ù—ªhЛd¦›m zë7õºLT½j½ÍpdÔÆÊºUÿ½^+æ*ÈT—Ú*{Õk¨‰\€0‰E±ÄTq ÚÊc-1¨×ú¸x)­Š€Ûµà+¹QèƒõÝXd¨žT$ò?ž‚ ˆ%$—õî¹.‰PÐ (ÌPWÑ‹éôÃ)êær)2ÁvS\ö…ŒÑ «÷}5a“¢2Þ6ІONË¥SžŽEž÷X“Ó@ÑDŸUüëä3}¤7Að¦âòâã# ˜b¸ ƒf«âxŽ«,i\ÿX;]TôÀI@Â3Tt8QZD¦&¤ï•ºR§ƒ¯V½V“Kj¶õúGjÜ6xªÆNt:ð¨&â\ìg´[µÒ‹9Š)‹€ûd"ÊêÉŒP xñª–ràa‘@†‡´Aöèݰud´ýî]饖eðyTîÔ†Áù·oéOO ?W"y‚{þJ VŒåŒäŠ;†Í œæ°Çb©JïžÖœÍ=niˆ~gS¥¡&Ãü•†ƒu¨1h°J<Õÿˆ9üøRzPl#N6v‹ß!”ˆg¥3ñ BE”~€‘ß4›jFKÏÊk»ûmØhk/g‡ÇgkÕÔ«¸Uûö‡Kï®mä 4{Ü7$´ÉDˆºqìviAë¹–Ëg­`Ù¹õÑ(yÒP$žù™¤{fVà‰ÄDj£YïÚ§^áuÔã3ûLÔ—î°˜ŽF¤•.%ff¼ð2W5­náÃèu¢ö« ì£Òøw ½‹/Y“ºô–KFKÕð-²„šÈ —­?x÷¶‡~Óä}½\Ýã­,ZvMdY’ÝB÷À¦Ñwa¾»Ñ/½xqúK)¹¦>X6—|µñ|J*G{Óµ ÿçÞº5§ør'7n—§ƒÜùWO“Ø_F­½&¥“H˺µ=ÿ«mÚGL !ñB vxØ*…âUŠ÷Ëz£c¶Àû."\¦Ëê¶ÓA;®:v{¥|íªŠ|_Ý—pU)ªeêt©|Èòò€Ìõm6‘Mr•àUÆ•²¥­”/JW/™^«u:UË8€ŽD@!²yiM@íKý¿™Ø+ ë\)xœTÍnÚ@V“CãUÒ[/ý‘&!Q0!?-„´`‚JL¤­TUØkpcÖÔ6m¢¦âzãzê±ÊkäÒSU©§ÞÚ§è®m‰ R‹»;3ûÍÌ7ßrqïwt3çÖì¥,t°çá^?©%ÞB:¹뢸¢ßLÒ™lz;›ÉÀk;/'ïÎ,~]°_x&«J±Y«UU©¦ìUÊê>ŠšD³:†i{¶m©šM ³“ìFPÝ4 1`uÖe8; OMùàpÚPb4ÁÂikv¯ßò’ÝÝË´kJÓ±á>èÞ$Xç«•¢¤6$©!@,«c³eOðEäz-ÏÔ@ë¶p5Í5õ—¯ ‘'|Tè4q‡É4ðEìc Ÿ °•ÚH=ÊDr´IËÅHUëR£Râ#ÿÎ0È'}X‹¹1_Á©8LЇê@lXáO¡Yx§}ìÎ!‡5É\³|-×ÅÎ\V*õ }¶üÙÈõºR›ývbûa ãÐ=IiV¯„ñ¬+¡3jÕMûz9ÃK§e¶ç; &õ‡}Îl ®,7™Â8.œT8É@—ªv0&žCù÷|IOì–­µ,ßtOU¯!ÎO85o„- ƒxÚM7ºm÷1ak/y¬›Ž€8_¦qæÎ!ÎCžh$ ̾ßLÜ"®Ù¡jæè›£ÛKß6ÔR¥P.4r½éç€Õ<(GÕ*•G`A¯u mì;¨ØF¿–~.Â]p›áz÷ü>Š-ÜGò²L?.ç:ÁUÞ#Žã(‰<Vyfúa§°³š*ÕåBÎèN~!UýM½ô¼žqKvó ì&ç`oààÓ¬ÈÑòÊ£‰Id&î0¢% ûŸ*Ã?‡YÅm ý7äÃùÈ{B!NÌm ÁÇÇûOòy•š¬4á1¤! âH\yC ú´òyoêaÿç¿!{ø ¾wá “xœ;#3CÊD_‹SÅ/µÄ)ØÅJ!7;¥$5·@/Y§LÁPÏHÁÈÀÀXßÀRßÀDÁÀÐÊÔÐÊÐL!+'1wcE9Óæ;ÌϘ¹’3‹´¸€'ŸdwÛ,Á¡Í Óô õñ™ìÆã‚Âïå±R*Î,Ò(H,ÉÐQ0070ÐT°³U0Ðäâää,J-)-ÊSÉMæâUAÑjÈ[€Â_»7õæ”6xœ;#3Gj¢½”¨±‚‘±¾¥¾™‚‘±•m,ªeÚ|‡¹€ Á£ Pè”fxœ;#sUj‚˜”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙDS<²+Ê™6ßa.à”eà•"xœ;#sDf‚øÄ8•‰öÒãÞñ8,xì‡xœ{¥üPy‚””¡‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîFÓfv<Ò›/³×21ÆoŽàšÄõèänxœ›!õYr‚”¨¡‚‘±¾¥¾¡‚¡©•±¡•¡ÅFý»\Lš“Ź]@Tw ³†¡æäcÜ* îWîUÀ³O‚Öº xœ%MkÂ@DÏî¯O!ìWkR¢ZJµx\’Í&nˆ»’®¥þ{›ö4ðÞ0,™L?L(ëmï+ªÓo:ƒä|Æø“x–g2]_^°ù¹b:I!,!HplÆ¡ºã­üò{ŠãÙWƒeøËîåú¡}N±ÕÁWf€)Äb1§£ew«z«QûKiÝH~ý±mÀI\›Æ:¥Þ_‹•ê°ýܯ6J‘ظÚ6cÏéþVDJDFuD(†<«¾ÝxœXko¹ý¬ùŒ¬¬Öq·i»1 ]cwÂq`Ý‹¤¦f( ×3Ãɱ"¸þï=÷’ópìÄÉ$óqî½ç>©½gË•®–.Oö’=¡+çeQˆy÷MŠÚš•åL¸ÔêÚÏ„±"“^®u¡på2×N¤¦TN¬­)ÅÎ_‰ïKí—×Å2Ür˸pùþ‚eýdê՛܋ƒ<«ð¹§Ò9™æSÞ;q‚KÚ7^ ³—*Í+S˜ÍŽï¿S¶ÔÎiS o.Ì F½›‰ÒdzÏL;oõ ·gBV™p öxR×™µßJ«xY{´Ì¤M©*/=®a£¬v¢nlmœ¸“+« #¨¨¼ÊÄVûÜ4^¬ÐAÑΰêséF†È•¹Q¬Q0²2^§X®k%-èÄ.¶5ˆ#5èªXŸ· ¯ò)¨R÷–?@uM]ëuµùÔ¨Y/†ô«dɬž.N— +E4f¬\v£€â€ªnV…Nµß‘t/uE;à½#™´Awô¶$¹Z¥z­Ó€¶V{¯*p¦AroÊB´ª”òœTFXU[åZýQÚ°ò€qör¥ ÒˆÅÝú‰û}âɇŸÆÒáï1©UTI–£àÖe]hr±´äì] Wø‹mfIÔm’Ì]ÐÕZY‹›ð¼}Àψ(ìÞÀ ]‘Ó Œ Ûmò¤VIòÒŽÒK¤`‡„dä3š0¶9(ô“$\“®e/‡JrzÖÀ]Á%ì¤^w¸mfðڵ>KĶôihL%ü\»î²©TP%…×%¥|Gq‘’ãÈ[¹´1ià^xæìbê:„XaÜ"Iè¬òâøìäòÝùÙ/D²ÞЧâ}:{lª©§ ¯çÁŠTøëâ2b)GZHGæ;d.ô58ó‹$3Ú'·­¬ùݘå×ç X9SPås9t]‹i"F.‘Ú ±¤ƒX¶|肇tQÕÍBÜHK•7dÉ9ý7K)o '­ÛÕŸÞñjZÓjŽÒÕmüzzvöh™·Í¶ê·Ï~{·±ÌÛÛÃþúËyD¦el“;ºí‹Ëó“°ÍËØ¶e»w~ʶÄjyiÛð¯ã“ó`-] âmåJ"OQQŽÆã~ñ¿Ònhüœ–0ÑÒ°Ô-^þýÕ«h%oE“âwV4~·e¸”ó54½¹/ÁÙ”NfÎ󇶭2É6§`ý]|OÆâÙ‘ø(Þ±‰À¿vˆÉüšŒæé¾èU.'#:ær½öákj*dl£\ÉöE+ËÛF=qºÜ21ùËC9Ÿ1Òr6é‚äÛ@6Ò’=éBéÛ@ܾè½4éî)ÎüÑ‹}Ñ QwÅ97üOP?šº%-—Ó«'V÷º˜|nõpÀ¢´çHA8‡J8ˆäG„Œ(Ê&aIþí…•bP©¨ö¢rm½Òš5IŠþñ7*PqìBÍÝàÖkü§XmÁÖúKº±8ŒI¨a•J’G” ú±ÝãXf_Ð&tEåËulÊ*ƒÔGô¡ƒ$˜À :ÜÑ}²tÖ2“QL¶Q2â+óLL°ÙŸµiDföO‚ií>–dá¼jü›ÔÜ©¥3±àsJ¦¼Ji‹cãx!iÄâ}Y©ó¡ßd*y”J%hÁmciö xÜxU6CcÕi5EFëŠY{;±’™ yD|¦©ÆµÂöÙC˜Œœ˜¾˜¢ôG2âù¹a^è+b(òjD$á¾·D8›ž…h@Á¤5¦cÁWDRK8ù›m€Fð‡ÞÏÐBuFÜ¡û;̨IP‹B`Oœ¬ï]ƒddžlš<™5ˆ-ÊºÃØ2Ñ~wΫ’ÇÑh ÷àÌ44¸B¢?Ó0Ð]u3܉JÑTm0b~Ç#C`ü×iòi u6s½g2–Wmþ3‘WcûbºR]ˆ±"TÙÇFÁTÆh ÐXjK Ee®PWf¿X¾1™ÍÝl>>Lf‹* ̧ s«Uý>d¶#5¸ÃÞˆó¾´<ÆyTa${kd.~FgÐ £Tyý ”á€tq­kp†§†dðŸ&4ÎE¤ù6ès7äúÍòÍó7›iüãÃsü š£l„'4–Ñð{4ö²'æ˜Y_Š÷‚ûþ¨;…›í÷»ÉíF¡Çx‹ìô‡Æ„ÁåxÐ&ÝÔtÿì#éõ¸èå8ö/ÔàXà'4ÄŠ¾öQ<~÷]Ò—…v2¸_»E¼×îòÅCî`‚”/kM@œ0|'ì>ÓÎã´»_£Oh"ŸÓ'ì>ŠÓµT¶­š"7&>fm¨”k¤eLTiƒwf7 µkµ»Ðîž·<ïvá—Ð]€ùë~¨·ª­ã·U8†ž\®ãàiž@mV‡ÎÙÙ)8s®dynȨV4k’††À b¡D¼Ó”3̤'ÿ{"püX.@I?yqc³QÓ4Á™D¶EPÓ5ôæq ©ào2 ]• ‡eÁcðùn<º·úf.pÒ„¡é°_£É°o8Öhˆ1ö0ïÃ>ôFCgl]NœÑØ&°Ÿ6lÄ8:âYcøæ§»±iÛ0ƒu{7° ¡c™6# &}kxÝDáÈuk9&§Ç5˜Â¾&Œ®àÖ÷nðÕ¸´–óÀ&¯,gHæ®ÐžwÆØ±z“1&´»Éønd›@~ö-»70¬[³ß$†Á¼7‡Ø7Æ`ÀF ‡‰ü®§—&5.¦6…žö­±Ùsȥ⩇D‚ƒØwfÏ¢ó“‰Þã‡ÂrÉ mó¯”Ãyè·Æ5úW{=2ÌRo26o‰óèŠpìÉ¥íXÎÄ1áz4êsÈms|oõLû#›ƒ6±Íq 2O(1œÆçˉmQìË:æx<¹#ïëp3úˆÁÁ¨Ýç8cPÈgŒÓhü@¸ NC>Þ˜8Žùfî9cƒÂac{NY­b<’³¸Ú®Öµ9ì™4;" –mÖù¨[6ÉXÚøG-OÈ}ÎrÓ¥õÜଂuFÿÞ"òZ˜—FÄÊ–ŽÚ“ÞM}Ú­jõûÀ‡ãÞ|D®¬ëÇÑž‹¦¸ƒýà©9ÿ®ú=nØÀ/É“£Ã-ù¿PÙŒPú§Òö£ópgÚÛ kÕJÖK¡^Õ¹Åõéìé,°ü$¯êØŽáÜ_í[¢veå¿nëή¼'ü •Û+{hÜšsX鼯´Ž!Ñ÷>ø È%®‡¬PSiÒ¾AÈõÏÚÛúÓÔ÷±ðâ™IÇvGX/¹S¶0ÂTþuã¿U+j.ã¤â?’É‹J… Ø: BèC"¤[Isa?tŸÔ ÓáKÂQà eô„’SüShIŸ*>Ÿ¦áô4”³g ¹²b M¹L‚j%±)òí° f´Ifð„qµ0w»åz~,rŽøTVØöÅ]¹A¸/ÈÃt$E2z«R<<ðŒŠËšdx‹3‰$À¯óòwxí(in¾ ¼GÎ >d ,ãžÎ]&%_"kL&ÉÍ"çNdMÑa.j‰Çæç“/Z•ßx……ÔÆ°àlîÆLƒ–­·ÏÅÿrD«´°Ë*‹(‘‘ÖØÈW€4¼ 3<üq…Eð2fó ×m}:âw —ÞñêëïÜ·Üby÷GÃÁC¾µJCºñiÿÚÖ¿Ž~GàX¸’ × ] —êÂ}8²'V ]í ŸnÐ=%0—Ô)ÜÃ}`_#ó´çfhc÷²’(•¦ë«Úö?nP¥è}3¼¢ñúÅ–võ°¶òÕkø§^¥â«·?éú íØgNP6§«MV+X/k«bÞà—»^©V¶U~ÿPÊÅkÊ:–¯*ëiôyU+x¢]Q;èÂ?Ò€jHŠŸ‚\À²ZÕ€¼ö4¸¿E´˜ ~á‘öÊÅN1UyK"¶ qPeë+ÿrCÁ5÷ô±ûDUD¡(^êœxpÿ—ñ)½kZÅ»&Æê‘H¦ÊÃÑÎsëôY tÚÝ“-ÄÓÎYw[ºûÜê¼×âÝöÉiY¸óþÝé K«Ì½26Aà\RGãÛÚÝoÐ&2[Ú?vº­“Lû¤}öþµIšµù•Ðw½»¤’%\ð΋Yx›EãHm"ŽâWÇÊ YA꺘§Q/Ÿ¿³ÌáÁ&âPg{S Àg <ˆ_:Ò¾<‹ÏŸ‘ÿïÁ³Mð¿ èM„t½©uëø•‡Ÿ_î“€m­R¯s,¹Ô× L”»ÞÞ=tNÑÿ¼å ç³é€Ö>HÖ~h?ì?´6#”ŠAæÓjÇ©=Ú飶¹C{ ´ïœ\‡I:I‡=/c¼Rrò_MçÚÇê¸\bÇ'¼ú–ŸJâ7::õL÷"RbsçÄÅZùðdçž57Úêd¥`•Ûë½0¥‘ ž¨Ý Ö·fx(÷Xåe\öwš& Ë ÆÃ2*¡Õ\ã»§:ù²P´<‘gØ ÷o3¹ <Åú^ ã×j|#‡&ð­Hq“¼Hp±d݈•Ð'ÝX<ñÓšïBB‰§,ƒè«@w–¤nˆÉLÆÔ6qÄ‹CX—‡ŸŸÚñÍtV›6óÓíé¬Õ-¦u¯]Ìs‡ZLsëZÌ깘ÖtÑ Ðú,qãv¹˜ÝÆö3ìõ-¸·Äb¶\×ÞäÂØ7±>}niÀ›U1Øà¼J¿¦;æz½0ÀMqѼ|úôéb)ñÈ_p%bå‰uêMb'‘Éżãm`Äñ·q[7œÙÞ“/s(šàö¤rô÷öÑņL)åf÷°ä×j5ˆ’jVR—n2GÔ¬Ut#G]3Ó8Yßë÷.¸©ÛnöV4¬Û¯¼ªi\ pvúÛâWô÷&¾ rÞPRÉb8–Íc˜³ô3š¾—“ è3ÒûO¨ù97{ÙŸQûZýÀ¬‰‡ä’xœuO=NÃ0Þb‰…¥ë“¨ ‰J’¦ ¨E … !ª.•[å:ncê8UüR¨PÕ™qNÀQ8€3`7íÀÀòä÷}ÏßÏ{óëà>ôú€cwxÕY¢È¸XcÍ †8ŠNÃè,Œ[µÚ­¸ÝŒáAÒ zOs¨;~HHèŸðá2Ÿ/ 1M\æÙñëÝËþuAB—SDÁ?~¾÷Ö¡½¬”ùÎ̽°”³™PS˜SLáQ˜!5R4$LD¡0®tYpÀ”¢µx¬Aåô2“BÍ@Ubx®€Q)j–'VÂ=ŠÉu™p8Wc–gÆ)H/*øZã¨R ‰%‰PHvX®LD–Ò|ÛÀÚ ‹’™ìæhA%øÙs<gKY/˜ëq‡GLÀ­ZWGû¬Õú–Žn†ýÁ­k°@ãÈãžFÈ)8–…‚¨CœÙmî6Y¥´y{^‡¬È/,P¡³á ”zxœ[lø[}‚¤ª©‚‘‰¾±¾¡¡‚¡±•‘…•‰©BzQb^‰‚kE‚ §–>×F›-쬹‰%ú“ß°»Hå%甦¤*(å%%çƒE‹KKÒŠõ2”6{óp*)g¦)x8†¹Æ‡…:‡)Ç0·àx·x'Ç`×È×É»ÄBµ”SsŠS¹8‹ÓŠuíÒâÓŠK* RósS£ blÔc Ô­¹”SóR2Ó6ó‰Oeš´6¥å–4xœ[løÙ`‚¤¨¡‚‘±¾¥¾¡‚¡©•±¡•‘áF½…›ÿs,áÂy ªìƒXxœ{(´„‚”Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF“ýL›7±¬g V ïï „xœ{(t_ÈL_‹SÅ/µÄ)ØÅJ!'9#-'1½X/Y§LÁPÏXÁÈÀÀ\ˆŒ  ­ Í­Œ²òS‹Ò'š¬åñ)ÍNUðM-O*-ÊÛøîD÷ä‡ìq¬`c&;qÄè@ÔHÎÏ+.QHÎH,RÐ*H,ÉÐQ(Í+ÎLÏKMQÈÉÏKWk½ÈQ! ÓQfkjZsÕr{˜:Àí…0xœmÍJÃ@…éF’A7}‚["’”˜ÖŸÆ*Š µ.jE‰ù™4éD&w‘â!;¾ƒïãÆ—pí4YˆàêrÏùÎ3_í·öj¯«¯)žLN÷¡\ë´vÊžÙÚ-¯ÝïÏ•{]¸É¥€‹ °ò,¶¦GKÙ›Ë,@ ٜ液`|Öìjµ!”Y^‹… 7 å<†™¸J †O©<Í©^5Ò7XÃã+ÏŸ^ž{þŒG™Œ)Ôô”Ç,!„q$Õ»¶÷¢2fý:t0žŽF<]/PÈë"¡LÔt‰R%:A´¤auè¶ç࣯j¹=Ïã?þÖ¯¯AQ fó¿‡SÛ† ‰–¥â Eü4¥° ?!&rLí‡Wxœ{(tSh‚”¼¡*둱¡‚©•‘•©‰BzQb^ÉFy=¥¼¤äü܂Ľ %..å̼äœÒ”T›âÊbýâ°’èä>ŽËº`ìƒ!xœ»/´‚´Œ‰‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF³}L›7³¬aÓ ëëƒZxœ»/t]h‚´”‘‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîF³vÆøÉG9fý‰ 6ã„xœ»/t^h‚´¼¡*둱¡‚©•‘•‰¥BzQb^ÉF3E=¥¼¤äü܂Ľ %..å̼äœÒ”T›âÊbýâ°’èäIÚŒñ“rÌcºjbxœ;/tZh‚ÌF}Ntìƒixœ›%t—o‚¤Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFã¦Í~,gX 4ï„!xœ›%ô[p‚¤´¡‚‘‰¾±¾¡¡‚¡‰•¡¡•‰BzQb^ÉFã•ì&JyIÉù¹‰%zJ\\Ê™yÉ9¥)© 6¥y™Å%)zvÈb%™¹©@¡É¯(¤j‚Zxœ»)tUh‚ôFy+NÑ‘éˆZxœû­¾V}‚¤¨‰‚‘±¾¥¾™‚‘±•™lÔ›.8ù…`Èæt¡)Œñ ãç‰xœû­¾Z}‚¤²±‚‘±¾¥¾±‚¡±•¡¡•¡™BVNb®‚kE‚ §–þF»vÁÉ/C6§ Ma¡£²ËxœµY{WÛÆÿÛþS·°I“4PÚ#lêõƒkÉNo•¥ÅV‘%_=p¸Mîg¿3³+[~Q ¹iYíîÌüæ±3³ÒþNá;Ã=„8‰&‰7{Nõê{üÔjoöñÿ7u¨½=¬½9¬½…ad èŸ&ð]ag¿¸ô‘œ˜Í—ó@&¯‹°pòyÃQe§õÞWé÷°F¤8 ÓÀµ/ ª`ÎÑi¾LC$bÝ —æiÉy18¡+`jÓ H"o&Â…$\ÏðßNcü^1ê ׋%1m²ÒX€@¦‘#xfàvô·a4Ž«0õ’„ÿ Ó„¸ŒC×»õ…ߎLD4ö4‰Â{Ï%d#;Á||?œzÁ€»ÅÄ…èÆ"9¤q}o Z ám†‰§q‚vIlÄJ\íAxOKÊÖÄÿaâ9¢Š;Ð`>ò#6s±¬Þ"&êø6º;b'¬A9‹d@PO7Epÿ, µTœÜÐIÇ"HìÌiûè×#Û‰ˆ<Ûç†g‡ã¼¬Ü›=2Û½QâÅ$rNOp#MÞ ;I1É툛•ˆÃÛdŠnS°Ø(dâÛKšØÎ]N}áñ=TôcYZ/A5?uÅœ5¸â^øáõH¦2´s –ÏÒKrç"ŒbÖ÷û=¤öØNÄ)°Ç¬Ëú„ó]}ÈRIÍ3F‹=À@]øô‰ÀÅYA¦B¥Æa"2åbÔ%òð+.·¸¼hÇìLA<($õè¨Et–yªâX¹Á¹a‚Ù=µ.µž8¾èu?M½ '׸¨CG·X¯n¿ÓÔ,£ÛAuè÷NÝŽÕ3NúV·g³ß×L䱽ͫZçô«‹žnšÐíѾhÈõ´Žeè&sjõ›Fç¬ È:] ZFÛ°tvÕ­2„UJèžB[ï5ÎñQ;1Z†uÍ"O «CâNQžZÏ2ý–Ö#nýÞE×Ôôlf£¥m½¹ƒþQïX`žk­ +Là—5=ѨvÒÒ¥(Ô´iôô†E*ÍG 4$lUÁ¼Ð ô+µÑz×UdËɽÛ1õöq®CSkkg¨_y³eØ,è¥F¿§· s÷”ø˜ýÓ2¬¾¥ÃY·Ûd“›zï£ÑÐÍ#huM6ZßÔ«(ÄÒHf2ŸHŸòíùI•Ekw ¦ùÓI‡³PÈ,%˜Øéø˜Nðô{‰xOlG¨ít±FÓ ¶ûR|/›G­+šGvw™eAÓGÔ]xA*èá ïRlgÚíîJý¶¶™Ë0DìhÙ>9Ëbš9,bl'œ,ÇÆþ‰I‘ÒÖV ø6Az«+Di«Äê(¦‡$…8$v‡@Kø¹ CσHØwÊBøƒ9²¤){cn,Í,Ž)õêc!oö[$ô%ß[ßJZjã0P#ì“ï)Á’V{¼´?SBÏ”Ð.Í2¸ÇÍwæÆ™Tå \öT°sþ|,ÓðÑÌ®,–u’»™ÄîW•Ø]‘(ý>3d#¤Jõ©”—¥¾ÀÙ¬†ñ-+ Óás¿“ª³h1Gâo’­ùÆÇ¹ŠÝ+uéä ?tl_lÇ ñ­ªÀö‘jPH|Sæs8Ë ƒ æ­O°u… O~å/"E¢jJTÔ‰»Œ,F&ãý-wë¡´ÑŒ›åg¤Ï€Ð›C FÂùáVû%ò™î£%áØ&Ô^ã]3&zän©'y"n™°5y.k“QÕKíB¤Ï€pµáëÇê 0}Z ׯéYñ;˺LÔ¬¤‰å< åUx ûíTˆ»šìåiííõ~§>·ìq™~„÷ø'+:\5OSßç uf–‚¬ù¨=ÊÔåy¿I^lœH¤3ž¨Å*psŽQŽ´LÎ,FàÄ=•÷i²«Ü(/[~TbJtQJí„x™—¯PðjàfB¹! Ò÷«n¤‰düú§d|3%/ƒ'};Ýc’¹6úNæ®Ãf1=ÍivšžèÀúÁ3=HÍëF‹ÊůêÁGåeË_̓õƒG]ˆÒžèÁÆÜƒØ4z¼Œ Öu +ébvu{EZ½ÂÖ¸V…Öe‰ŒhÞ;gžTˆU;]Î?nA½V«À.é¼Ãci$>B_G®öI',ôéueß5&pWòÇòBÈŠå0åNécdŽ@ŽU¨WáMý‰ ýnކ‹nùàûÍÕ·²±ðÑÑZ-ë¼×íŸçU9¡*‚=|ðæ‰ªøËª<ÖH¼Dão©‚^Ác´^¢Îmι…i¨­Õü•¢0ü‹.eõ8Qܼ{·bù*[ÃkãËXÚ¹—¹D¬?ÙO f/àx»öˆ¯=^*Ï—ì=î¦Åt·Ñ“9ŽYUÿN½{üñCkï_´‹@­ýs.cnŸ¥v~[QãÔ®²ºJMË1ôÔë*ã/§F•¤³b¢Xªb’/ÌÅ gµˆêQ~ß.EÿÑ& õu@¯cKÒ¤—̹—P‘0pãG*Òs¤¾{jÖíÏeSó™X4¡zz‹ùãBa¸|á8Ì®W‡[g꯮®ä—(üS¼Vã]gŠõÙøE±Ç)]€‚Àö\Eç²Ï§>[%Võ­Ž^}É—`i„t êQT“Þpá]…“ú|ãÅÌlûÄ;ÅûDÂ)¿$£wÌôåOFv0ü>9§{r’µƒGšƒ·›J,;dºáR°ÙÏ’)g “'FÉõÔú|þÔis“´Üϼ«}s­k½›ÍÔ×¢zXDÅŸîèÖ^«ñs,?’ “ÐÙ‚uø OHÅ¿½[èïöe·“µyÞÚ|·¦“mðÇðî‡Ê)ò:¨¡úkŒG sIýÃz’ÕëmÛ‹áûv Â4ÎÝoW®¶t†GõÎ \ã•÷´rk²á"ô/lsøpìŠ[;õÚèCw°Ÿq:™„üBuå•òRÄÓ·NÞHߢwM¸M‡r f„ì[°Ì1DŸQ—å+ô ‚;*Î?ðЇ›âú<üªž¿ñ¸"–ŸxÀ÷½±¥8â7õô€¹ uÊ^yguÜ{ôfÓ“+úˆX~%çë ™š³#¸ÞÐKT)avĹÑbHÁÄxð–¹]ۆϟ%<¬ŽÛøµöb¤»!‡¶Bµƒ1É= zÆâ¸S&òÊî.2äE–¹¯ö~ì#AÆç)œYmxõJaÄBrÌÈfϸ• eè—Ù€„_Mü¤ì¸¬›- ·ÍÝXgïýÎ ç—@xœuOKNÃ0BŠ—¬Ø1¿&*Mš²@-°@tQñÙô•ë¸Ä4q*û¥UA¨gè8ƒc°å8´6lüôfÆ3o^{ïÛ­0ðöï$]ö¯ÚÈDšICÔ§h6bÄQtF§aÜBÔj·âv3ÆCÆóå#6/_º;Ê"‘FMe‚‘)rØbD3näòó`›!ÀpŽ›r,q+gÃÒ¼ín|l-ÂݼÌ8Éub-öë©c¥ï1á”b¦Ü“YâäHŒ”±* µ-¥œ*wEGº pØyž)=®ƒëÄñRCð,Ã?‚±=¥EV.‰3=Eî’éÅþ‹†Uð?T©•¥¤"™ÒÄÖ D¡Ý…"åAU ‡Ê}Ÿ=1Ï’)ÁÒ‚&vØaÌS#ÔV%WîãüÇMŸyž‘Tí–ÎJÚôú7w×5§jX|[ûxúUFNøÌ~¶Úê´ßs|¿ÃžÙ# ëš*xœÛäùÎc¢ƒ4¿‘‚‘±¾¥¾™‚‘ñÆ<t&}àšQxœÛä¹Ês‚ÄÄ•‰2‚T9 æšmxœÛä¹SHP_‹SÅ3ÅJ¡8µ¤ (?=/q"Ÿ"£ÁDYT5#ÉK\%2‹RR‹2ËRSÒŠòsŠóÓJÊ‹R'¾QáRÐRHªTÉOIQËL-ÊÉÌK߬Àø“­¾¸$±$3Y!9?¯¸D!9#±HA+>bCnª‚­‚’MiÐp!;%k.®²üÌ.¸ÓrS5µÃ5¹ª¹8QÌ*.)*JÎ(Ò€ é(¨×ë«kZsqf¦)h +µUð õñÑäâD5ÆêHÍ)NE‘ÖÖ¶æªåâBv W:’An;©(µ¤´(O¢“b\-Î@|Tì„*xœ;-ÔÇ?ARÆXÁÈÀÀBßÀDßÈRÁÀÔÊÄÌÊÀB!7±¨$3o£ñ>¦ÍXf³Œ ªâP„cxœ…RKoQ޶ 2‹šhšMå-ÏfúL(%¡0iI†jtád˜¹0Sá¹smX¸p]gíÚ ]ûLü'®ú¼3<:¨‰,È™sîù真÷¾¯†Å¬×=’Ë9°í«ƒÕ´Í!d…í«‡á ¤DžSWÅÕ½,” bÚÔêˆÀ±eÔC”˜Ö€‡»] fÇ 6d#2Dºàæ¿]¸í –Òã¶E€ÈÍÍr8%Ö9Ò¨ #¥ýœ(ŽF#aR,Òõ/ôš˜ez*5- jËÐ)šÇº#@Ó@ຫíòÞu@ ¦¡§^¶¨“[ޝLuDL¦×±–‹·Àùº¼ÁÏš'õÆÇÀÚ{â¬D§xäÅçŒó)ðÜÖJ južIµ&È'Åjš'Lz_u¯a…‹:;\Ì‹_raç—öâÏÜcç—ðâkœûÁÉûýàºó*¸áÅïƒ1çK0¼ï±åó=ÕJIªÉ’·¡-ØÊd2bfOÌî@v7·»ŸÛÞ­£ƒô¦_(ðÎÑṦ£¶->j¶™Ó¶‰‘ž¨VŽJŠ\*ÉIˆÅàÉ,Ý51MòŠÒ(É•r"òŸãG’|a³Sšc‚ŠuwÄàÂM*xºŸMwàµ7Ùi» кР;ƒ MÅq–bë"BL]GXp±¢ÌÔ†R±:®¾Pd©©œ6êǵâS‰N|xÅ?kžý ûÇZw #ˆ¸Ìv_Õ`D¦.ø›r·4«×W©hS½k¶ÜºŒfðãîuw¼N›²CÕ@³°Í¬*”¢ÌF ‡É0Á{b!‘ÀÃË~†“€M’+pÉ’G²áÅ3+Éò$dß·aÂá$’¹+v v"¾Ù9·+«äŠyƒÆE>î1r2ZñŒ•ÌR$’ xæ¸qÐoE%A3êT` UP$k)M‹ ÑûZ·À2Föjj€ÏSÓ¸Õ‡Ú.ïqSS»Ò&¶êdcb›ú¥c¦_¾¨8>¦-¥NîAûejj–† úÍt¬£lª[×,ôÉ`ì õÉzÙ±abØ0Öota¶¡>´ŒÜhæà¿ª—úX·ï…A#ÝžºêSaªš¶>pƪ SÇœ–F¼†º5«ú6ĦOP1h·H ¬ku<Þ≒¶h^jh¢z9²„¤9ÔMm`ŸÍÓ½†Ö°¦Ú@§í ©¨æ½Rˆµ´;ÂM’6ToÔ+$×üŽ[0$ÇÔnÈ`t„å\Z¶n;¶W†1´HŠ·4óVhVƆ%<æXš‚JlU¨G)è.ÜÆçKÇÒ…ãô‰­™¦3µucÒ"AׯzUñôP8Ù˜Îè$ü'¹äî®5\7ɧÂk*ùÂBï l’VA¢Vô§]! íj¬£×í$èN·´†L· KÍwê½àèú,´M>V’W!}êðV'ã 0&‚¥IcŒH’å ® ïSàˆ|Ì}6‡kõV›!‘‘~5»ÆEÙI U;íe£þË3˜‹mÝ[³ÁPYÕÿL_ÒŽ‡Óöò_[gp-ˆ˜ßœÍÌ¥[ptoÊÅ0ˆ²–€uë4ï±~½¥›@êyiàú. ñsóm«z¨}hŸB³ìY-øGçôCçãûFÕ†)«Ššÿñ&ÑhõK"ò:'4‡€Œ.}øC$« G,{Hýú[é€Â¡¶é lüPé×l4V¯,èmë®ï¸:{‰™tõÖ21Ý^g»°ÌGå»k Z«0¨x Y”&×,u:Õ&ÃfÚ‚ßkòçs½†žhÆ "~ƒ70qÆãÖz¯Ö|â1Lð–Ó”ºèV¿Ĥr›ö á˜J£¿Öûîz”àÂÎYÆgò(¼{'†h:‹š7.ΤÕÊ}—²ØM\ºgü±Sb„¸DÒy¥)˺+剼+¡Ü<ÌÊ3¢šDΞÔwŒhæ³Ó €–„8â%…´ê¿×k[9/}ê~øµ_¯UÑ’{¿NxéRaî÷+Ž!§÷+ez «dœ¤#ŽÀÍd,[£2¬Üãȧäßë77ŽMƒaï-‡ÐcèÜL· õU|lLUœ[`»ÿÉÙØ:htzØhã Õoµm¸›xËCàà ӂaQ‰Õ\¿(r}«ÓÉoÁׯë%¼ŠE»kó„1ZCUÖЋ_ÖyLþ࿌ϋµV«loýZZ[¤n¹Ó§š)kÙÖ,»‰Àæ{åü†Šq‹ýÖz—ê™v½¹ÉÖj±œÄ­ÍRí„àëºy]ê‰uµ¤8º€?ªÐo@¤÷Ô>|HÍaƒöÔl¨×æ>nZÌz¯Ún¤3©ÔeöÈvc»¬Ø¢Û¯›,Ä›†|;)â°iEØnL¹ÖÑù4÷<–b«èáÌÝ Ä„ë/J!>º ³ŒÚYÌqÑq|¦Åçs =ÚñGÉE£›²¹œ(Ú•ðåæ›p öªï5œ‰"'¨w ÁezžÄëd¬o‚W/ƒvÝ¢¥¦2Dbý{Z g_”ÚPUíy„ šM«Øå›G¥-Ï( ÌærH6áš°»0¤VJÂï$MXvS¥SÃ%û¨7gA”³r; Ñ1ÝnâO=ù•Kùk=:Q‹áopJߨšñ Æ[J!…9.fü±{|N`Q¢Ù³”­–ÖßлÒ!PÙzâ«TàK¥moÊèUDŠv­Tºù«Â")¬†åAtåÌã˜ãìýqÙ÷ñ’Þíèo%ˆò•*B¼MJK0±é’…9-èo-ÙÙ²«$?dßñc1W”ÊØyõlºs¶3Je õ÷ì¯4L”ía³‡ êß«Už¹áaÜ!2ù™¼$ã¼bj¾&ó*B’q^·3_“ù+P•Ì>n›Lqÿ:ßßÁjú¶é4å^WŒ¼?xnÝmâAWxœuSÍnÓ@–èĈ¨BBâ0¨ˆÄ‘É/RKÚTr·µHíâ] …Kë8N½ÔYWöºQU•x*?G¼¯Áqá8³k'T‚²‡µf¾™ï›O;þVúñ Y-žë ^ ×§´â*§P¯4 Q«½¨ÖÖ«&Ôš­f£UoÀ»À™\mÂ*Ç€}ò^Ø:r ©:u+”¯®¿Å>‰Á Gðïȋȩ7‚qN ÇlêDG)‹È0aaáÍœœ †gÐOŽ=Øó¦Ã$¢_>}¸uf'•jOò.Q:;Ï”¾_¨·oäFÀ8B‰C8ÂâÓŸùÂ(N.4Íò™ &üÍ­¤õEôÒÐpÆmÚFOźipm£[ÕèA×4°¥wllZH°ªtT, 4ý¼¸uWd±©ÞÕÒ_‹Ý,Þ·­}iio©T¼¦Óú‡¯£A_W;}-ý¸Ô¾/2¼i¯mÍÀºÚO¿/­­ˆ,²;ëØÆì˜f¥òòzV®X³,{_Èi´ÜZ™‘`Kíb—ëâôëòÚC¨–Žtc‡·qx£Ò{·×/³¡M„ôŽÞ×ñÌm®ØÝ…žº§îhb5ª’T-ƒ6I‡y³µ+5d\ßs =‚‡ù0%ü bæ0˜D1+âÑ8á‹Ã|‡ )Š1@Äg“€\Òc:JÁu‚æ™ò*¡nð•ܤC7œp¥Š¿uC¶*„ÿ%”Äl$@‰P&ÍðUá^º¾AY8P !£ô"޲à( “Y:— 1‹—Гx¸!I2†Rî8ïÆó2´Ûð¼.K…Bä1¾û<ØÈKÑŽúÆ«¯ªÄì`Âÿ4¹%ÃùuiW^H󨔚sÏ§Êæ‘7¤ é7#ÿ9¼ä• xœ»©Ñ >AVÊDÁÈÀÀXßÀRßÀXÁÐØÊÐÐÊÐT!+'1w£MÓæÙÌ™…ó’sJSR”ò’’ós Kô2”&Ïd?‡Gïä6m¾”Ô4…øx¿Ô§`—øøÉÏ9t<¸”3Ó<Ã\ãƒ#ƒãC"\ƒãA‚PlŠ+‹õK* R‹õ2츔SóR2Ó°j™lÈ)‘‹&í‚jVZ ª)p;JR€.KÁM òôsGuIIQf^:Â€Í œ7¹ú_ì–Pxœ»©±Im‚¬”±‚‘±¾¥¾¡‚¡©•±¡•‘¡BVNbîF›"¦Í³™/1OÞÈ!É”—4¹“ýå“Û8´ùRRÓâãýRKœ‚]âã'?çÐÙ,ÅiÏ wÐ÷ê—1xœ»©ñHm‚¬”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙF›"¦Í³™Ï°àQ³¹ã27ï˜Pâ—oxœ»©qQc‚ÜF%7މJ ›{8ÎrE2¼äJ˜xœUSÍnI–ÀðH6DâÇñO¤ IŒNbˆ¥à Ø¾!‘ÉL;žÝq5ÝC+äþhž€àÀÀ#på‰󞷪mlWU×WõÕWå/ο×.WK…;` J'‘ïéìèbùz¡Tµ9Þz»·ûÛÛtþ6Lâ1&BþšPñË/P¯¬¡¾¹¹Y­­Wë÷P_ßZÛØúsã0ŠD¢Ñ~9¡*6J؉'gIx2Òp|—èÇA€ žî³_™9¯úqšh¡ 4Ñ^JÔHÁÈÀÀXßÀRßÀLÁÈØÊˆL7 rˆpªà†^xœkþ-4A|bœúD'‰qªœ4‰±©xœ½Z{sÔ8ÿ;ùZöŠò$CbYò‹w¼æŽ T’½ºÛ\.%Ûrb˜±§ÆHXv?ûuKòcœ1P»·›f$u·ôë—ºEv·6þr*«—çOÉ,qãxüÐ8¶Íwí`×aÄfO™ó”:äÝTÌÈáÝœüeckwsswk“l‘‹Û¬$i6•>¹È>È„¤‹bFª[IÎÎ÷ɨ9—ñr‘U÷c2ÉãòÃK~e)n䓃ìF–ÊÚŸÞ@t;#"OÈ­(I$eNfE’¥ˆîÉßEYäälö-sIžUêóÝß4ŠbqóE¥Å‚Ì‹E%¢l Û*07U•å7;@Ò xUÌïÙÍmE¬W#BÃ>qƃ'µ¢‚³ ÝœxŠ"{I²” Àâqúu˼”¤*H ›¨C,qŒ:+‹´ú(Jo7 ‘£Ðù¢ø%ð¥ºÉ”R`¦òJ«t‚z}ôûˆd9Ó)E€­|AÑEJ! ²…LåBæ1WN‰R`]Í¥ËLXÓ²hÐì™x/ØÊ;DB>‹÷e…(Äå2¾5kJ3+¸ zòU_PòI²ql<[ {Ȉ¹$yBæèy%Pr >Çr¡¶p¹Ð¸%콈oAgµ³iÏE”æ%¨'ëÓ ˆ† ^ä÷d.U/§b`¹˜¥Ü!“ íÓ8Ø#PhV>Böp–bYy‡Ç-q³l6Ÿ¢ÖA*ÚR톂ßgyãÜ·€ `ÂNw¶ G0W"ËU à÷,~˜ìž]Xw£ ëC‘%#{ó{9-¥:žÝò?ÊÅL–sËÛG@’CêêHÏ£¸˜ÍEµºg=»[ÝÏe9°&JH.CŒeµÀ´¶~±†£Cv·ˆQ#j±£½FÛ'ûÿ<¼>}yñæÍëëWoN&Ç×']„QUÓkðæ4»é T¼ß)fˆ>`Y1ž?üáüðbÔhö§Ã³7“Ÿ­dL¦£™œ•²²¬d4&ö˜XÓшh5Ãé {‰Üƒ²¢OrQhQ(øµ¹äb>öïbIr nª‘èÑõn§µÕ€CÓÀNd™—Ù :8Dì‚l½}39½8<Ûkׯ³¼¢ÞuE~„§·À³À÷Úë'/+²R…/hîB®Ä»Š, ,š„ç9¥ÄïŒBÎÚ]åÄé¬:”¸‘CÂÎ8ygœv;d”tlJ;C`õ:C`eíSÒYäÀڑ˵s$¬t³ *ð§¡ÿøqg²û¸ÐÌ_”âýµ˜f¢mvG(x’gÕøÚ|y¸üã<{Aè¯I޲\L…ú6jÝ8K‰-&˜(V-z}ýÖ²”ýÉ%¿ã•ysÕ§.=~5í­J9Ìã‚Oñ÷\p¬ ¿4+àj(¢+á@¶†uû¯‘c\U.Ž|÷…–2Bš‚€§ª¹Q£BöËR|I¦PÈé¤/ಘVÙJF¸ ¸öîÎI7 VKËëíÆ(a´¹Ñ;«¦ÙÛÜ0í^‡ N‡œ{›?÷&³1yÈ60ꬌ<ÇŒó?öàã™â!Ùö6Nn?'€lèí.ß]a«¥¶¾Ì®Ècbߥ)¨­¥ß¦ë8Z–/H0ZËè|•‘zë9ÙW9Þåüeó—ÚÐÚWC¯ÊX5¸v‚ßfhã’ë m Úx­«þqæn5™)= Z}ï® ¹ÕI0òˆ<{†–ü ì~8šm¶FÓ«`—=4†ÑÕ:äo÷&§Ç˜+àtÖ¾ lukþŽ? å÷Šø=R6i2Íјɉj&ªˆD ªÀ²¾n?ÊÕ{ñȺ¨Á?A…fAžmÝ´šÕÃO£Q[/¯¡ÿdèïÕè×ú“.=ÿÅ㿟:D“.‘^FÚϵ0ïìÍÅþÅáõëã ¸äÁÊ7wàƒiEreUZ‡åçõ‰ÁU¬Ü†ÑsžàT»Õªuy2ÖÚœª¾ŽL_‚!¥Fž”„Ž ô¾L“ªˆ%g…)ϱ!‘X1WR·`"I2µéZ‡PÈCýEçR³ô td‰1‰àÒ(ÒH ûÄXÉ67,1ÂÀ;(Öl1þ“¸m‚ضëLcÇ^Íð|E“LS9j @"ˆÃ!„Scùão8ÈñŸp““o8ÈÉŸpÉä2ù¢}£;ƒš Zòì“ö òRÞdà£"W«Å\.Ô˜|„–…üGÌ‘•¼«´Ç©ËÅÔw–Y„Ž]É«‹‘-3µ·±Í ßÏp?t›½zé;¸&° Ú0O^Ä.Õ¥¹·7§.z‰AöëB$d&n s­âÒ9«þܸŒ)_jÁöçs×a6Ý{@ w¹“iœˆ(8š "‘Ä©|HÀ4µ™ãrßÛ[µB4-â÷d©ÊßVépËC·Z_ÊÆ"3óÈ’4MÍE ëÊLya:-E¯wÐyFmc^ZPÀZ[êR¼6IS+¨×ª`øªy¿TB ©®v4t$_­ÌFZ*” 7Õ-–5=¦5eG–@<áËrÙÃVÖ´äÆ÷v±UÄÔ*I¾œE JØ=ºÇ«cV$Äãḛ̂ÙJÕ‡¼e=ô[¸+˜.þØQ-^«¸+n"-5%ë„l÷ê"ˆwƒÛGU?φ—û¡D¯¶·÷]¿–®¡:µQ+@üOPÕKÛr о=UV§0šà‘ÑTî4ÐZÁÏkCérCûûSƒÅ‚磸'…ö|±ˆç÷–ežFÑ2MåâNt5®‹ÁšÊøn½VíÝ.ÑZ Õ1é UÈÛB¶v-’A*öh½ñUœBՠ¿¼Åãº/еÙØèw˜êäµ—êpÙÏD¦Þ3µ¯¢J¾¦²oÓX««æ`cíS­ÀÚ£^ÖJ±onhW“4µî1ɧÎO†ó¾ÕÁks“z°4Gc­½ª^¿¤Þ•Ê6½P7ßpAõdb„^WýȤœdMÆ1Û­K8®;Øü\|X›tnáxÜ»ÇÐî·pýáÓ2ˆ®gÒÔÎoÍSªIÕ %<±#òWbtý#ò”XÔ±ÍhOéÔäµöî0ÍS­¢ú´ûó¹s›ÜnE"E"MÖÕê_DZ äó ™TTáxǺFe=7i"ZB#â'ô·O D‚vÔ—dyS®kõÕM˜¨Gi²5jŽU‚„"µjWõcE÷S«­ÀN›6KÈÀ:P°¨îa ¿’T EÚtðºÜàW-¼"Æ6VµìšE€}ëBÄ5#Š/fÍÈQÒŒŒîTpõÃöJ¦Ìðx­Ü3ltUZ<‚nc¥î½$¸á9…6ȾK|Oîƒeñͼå† 8¨âpC±ùà’ŠÃi8´tÍŽâ`ÈápÇöí$Ò¬áhŽ$S9b%±”Rsð!¼Å‘º~l§"Õî·Å ýØs„æð†px-0›{”i‡ßâHî…®M5G0„#hqxa`‡Abìá[AÄyê×È©=„Ú-~Ü(2Ç¢t ¥-’ tãÄŒE¨3…:(QhSê8†… `¡¬Å’&aàÓÐh˜ò!,¼cÏ9 ꃹCXÜ #nN _™¾6Ûññ3)u8ÚÝ<*׫±ù KÏNÊ{…-¶¹1n– aéaÓ»èÀñ\é ·>hذôæ´XÒX¦‚¥FcÌÂâ·X<ßKm' À¢[c Gð80>Æœ^ühÓžœ¬÷9FM,ä&~XËÒæ4Ètžó}š6Äxò.~˜Æ–„‰×d æ6,=lÊ˜ÉØÒeo m±I)87,þÞbáQ"ãTÔJ°h;i,©E<òLú`á»ÅÉÂÇ7,ÜÀ¢}Ncq‚0òel‚Ó!,v‹E A?5ÞÀ!,¬Å’p™2;0žÍÙ= ª,hRçCv [,`|žØÌ(™»X´g,^…¡¬wñ†|Ìm±ÐT8~\‡÷‡°8­]b.b×óê]‚^ühl“Éú²ëøáNè8µÏñ°aéÙI9×>Ç‘¦¡IZ®Ý°¬»[¹¾[#Q&jÚ°ô°)up?qÈD£t×À¢•®±x®¹al.— aa-– µã8M`»|‹Ýb¶;M¹o°ëa¡-–À ¸›$&ã¸Þ]‚–T¾äuê`Ѥ±¤Ò‰¥'M”ºÁ Æ.̦œQc}7À¢[cáÒ(‹gaáó]æËÀ(Ù£CXh‹%J˜Hf<Ûs†°8-G$~âD¦9ðØ]‹Œ/aa…ëøi•·Ÿ±WõãZÔŒ5Ž›1SãäÿДÞÕí(þnDÛ_Fja…üq¬Èä›xœ›:!t‚¸´¹‚‘…¾¡¾™‚¡‘•±™•‘BV~jQúFC%v‰Ì¼C³ø…PO¿#k®’ʂԔÔ4…Ò͹ì*Ê{`@à›bxœ›ú$d‚¸¨‰‚‘±¾¥¾©‚¡…•±™•áDº‰«Õ˜ýƒÜ7^¹ÌÌâáæ:YMÌ"9?· ±D?/)9?/-3]/C‰K95/%3‹K93/9§4%UA $ UVRYZ T5y!ËÂ8}-$E‰¹©Å‰É©@Y-}„v›ÄââÔ¢½ ;$±â’¢Ì¼t1„5¹)¦ +^³jMNb“aäœ\ϦÄtWNqêä•ly\Ê `7nVd7c²RÎLËKIMSˆwñttw v áR dæ¥"‹i}˜¢É q „³ÙSžos™¸2ãæE×4f3éOxœ›ú1x‚¸¨…‚‘¡©¾™¾…‚•‰‰•‰ÙF¶É•lÚ›µØÓ”íì ¹é4xœ{r*d‚¸¨©‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙF –ÉÛXä6ßaéPüß ,íjxœ{r;d‚¸¨±‚‘±¾¥¾±‚¡±•¡¡•¡ÉFݬì6¹)¦zv›¿³æª+Ï á‚$xœ{r2d‚¸¨‘‚‘±¾¥¾¡‚¡©•±¡•¡ùFi,“O³HrÛä%•T¤ëeØMþÁòžÝ&7ÅÈÞü5Wˆî‚qxœ{r>d‚¸¼¡*둱¡‚©•‘•‰©BzQb^ÉFç”Ô4Ç0×xg?7O÷x.å̼äœÒ”T›äü¼´Ìt½ ;.åÔ¼”Ì4.$¹¼¤’Ê‚Ôb ää,ïÙmrSLìÍßYsU=?'ûj|xœ;r:d‚ÄFc-8¿xœmPÁn‚@=ÃWLÕ!»€5bL±Z±Qh,i{# »ÈØ%ˆ¦ýû.4imÒËÌdÞ¼÷fÚ(díâeéAE'E‰2ó6š‚cY·ØºÃά±7v<ÛcI*X}Ô0Ò ¬ëØÐÁ€·†·-~Â9I{q!›šÁ¬íóñþÛÉæ07Á¯^‚ãš`»îuÏç´äPY.ºŽRR–sÁ´ÝÒß®£ý&vªž(€ç`©(²òL ©Ø©&CÅ@2Ayþ‹ÎDšÉª&-*æÿt±:ºCzÑÀ]%á"Ž¢mò…›u\û¤­”e’I‘óÕWϽéÉj¿?”оw/ýýS5ki²„xœµTasÚFý,ýŠ›I$,ƒ‡Ø`3ÁFZ ÀmZ×ÃÒ ÎwŒt2ÐLþ{÷$d Æ3ùÐòAB·oß¾½·w…œö¶GåÕ°Y…¹÷uä]ë Šù”lû¬P´ vŠ¥j¹R-Ùð h8gµ€·Z® ë…œ98ùŠïhÔvàÊq'4t;×Noè1 O,b‚Ãiɬ*äÅböø)SÆóÞcOñY‡e($9cø, y€FàS ¬E !•„ñÁ…d.UËŠÏ%<Ë‘ô‰† zI¸„%“³4!’±ïç¡ãҜR ‘˜SðÈÚ½$üQñm3ÿ,Eˆ,LZ HÕšÄkäŠÕPJ‹CŽ’á‹ˆƒ“6圡ðßÈ|ñ?ì´¢ôC1‡VH)Žt¼ý)8ƒâùyEMA騕êéYµX‚‰GÕ `öóÜùÔƒÆ"d”Î-•ø&kø•DhØ £™.dò~ø”N]^„ÓzÊô ãn#÷Ÿ¸b¾ 2?«X-Èõ‚F*v(H¢ˆ†›LÚßqëº7êŽÛ;hßå2H0”£ð-Ô zý=( C.ö /JFÒcâ­ Øä•`ÌÆÓN<ê3Nµë~ïº12VÖÚÔÆã¯gÄM³×¸qŒ•™aošîçþ 3jßX+S×Ý ÑÛ Îáži¸reá°ù¦ž¥¯G_MÈa ¦kiÆkú7]c8ï Wc±)GS“°Ç¦4’wÅÊ=†"IðØ€+x$ÓðŒ®îî/ìb©|ú¡òñìœL\|TÓumÜì4>7†Cg0RJàÍ%ئ à®X./¡wÛí¢:-ù„9 áå2¡ÒcFò­˜6]µ'i¤Z-ÀbIÔ! yí0¸€bßÇÇ&|K+Þ±cvaÕ„cÿåÒXš›Ž1R¯Ã©j;Ã3ôóì•í+Ôw¬¸Cúþoû=®f’• 5ýû6µð¦2 u_q2§™Y;œËb/üÚ÷ W}Þ]ݶ†¿”œ=ÃS¿•þÌ‚‡ýɪd&i…œ¢DGÖxI%$‡5£íp&Mã]ºÓšòN,(ßi¤?4û½îŸÞ•Jæ§.Ø;N*^%e9ÃD0³BJ<÷6Y±¨ðôÓ4M¨§%· oíTË6ÉxÞlÚdÉ8< yr¬ÕV"¢†²DK–0ô&{Edfåî {®jr·I$Á±Ä§¸1ûöîû—S¨ÝÓ§Ìœ¶¿ôußIų=jí:¸sÏ*ÍÚOµú/ä YÕì†Wxœ;$pH`‚„”¡‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîFã,Œñ›…Yõ™ÿî Q¿Àxœí}ûWG–ðÏâ¯({²F #œdg±W€lë FI|†iZ ôZêÖª%cÆfþö½¯zu·x8™ì|çKΉiÕãVÕ­[÷U·ªž®U¾éEóÝÁþ¶šEa:™n„õª¹ÑT[››ß>ÝüóÓæ÷ªùŸÛ[ßn÷½úïq0QOSõMeíéÊÊӵƊZS{éôz_\ÎU5¬©æ_þ²UÇŸÑ¿ßB‰Êð2Rýè"Jæ™JÏÕ~'ñÇh–ÅókLÙ Æñy:Kâ`C©öx¬^Ê¢ÙÇh´P°©áeœ©0E þŽ¢À©óY:QYz>¿ fä&óY|¶˜CÎêþØÝïì«ÝwÙQýÎëNo8PíÞ¾Ú;ì ûÝÝãáa þþ÷ö*¬®b‚j÷Þ©ÎÏGýÎ` ûªûöè  pp¿Ýv;ƒºêööŽ÷»½×uPTïp¨ºo»C(6<¬c{¨XS¾Ro;ý½7ð³½Û=èßQ‡^u‡=lî´×VGíþ°»w|Ðî«£ãþÑဠá¸ö»ƒ½ƒv÷mg˜E· «Î0,5xÓ>8ðÆ ¼aîv ‹íÝ‚EíÀ0÷»ýÎÞÇc¿ökлƒºuöºøÑù¹Ci÷ßÕì ó×c(™m¿ý¶ýW½-0%{ÇýÎ[ì0 bp¼;v‡ÇÃŽz}x¸?@P~ÐéÿØÝë Zêàp@;têÐȰMÍ@dÃ÷îñ Kˆëö†~ÿøhØ=ìÕˆÛþ˜Î¶¡ö>!ù°Gc$öß!\ÄÍA]ýô¦é}Ä)a­¸öö†Í) ­>‡Î`U¯óú  Xßë`î!ú©;èÔ`ʺ,Ðå–j¿£1Óðq² oüéo¦Tu_©öþ]ì¼Bt…h_!¤ÁñÞÁ¾¬ƒÊUÿT3ò¬òçïTUËšzötkó)É¥ûаr©ñ‡,úCý dj?ÁÄÎ<ΰI[€‚˜xóÅ ьȃäUQ€& ‘餒?’ ü¤Wãht!ÜmVÓâL‹'_8^Œ" hüc4N§0€³ë¢‡¬W·ÄŽXÌ Kì·Þ?ï‚÷ÿOÁû'á/êqr†ÅƒùÆåcL>WoÚ?vNï§{ûWƒÓ7¶ìóì:{Ž¢ólãòÅÊŸ`ÇçT’â$Uº»{§ƒ½½AM=y¢éäqœÌkTps%C&ªð2˜©, ³xôþDí¨Ç÷éúã4:΢•ÓÓþÞ »_}ü•æóãZËtŸþ¨§8ÍÒyb™ œö[Ôå 9á4#Àæz8¾;êq6¿žF.Îlö(~èU20ºç9 Sá=„î• rYQZy~GÆ1h ù™£ÂÈ5~öÊ:£OeEÃýî¡?¾ù(N—”æËŽã³òÂ}X+¹Â3”y¬mâ¿@Xêôô* >œ‚È ²÷GUh¡~*5®]âÑ?Îòm }KVƒN AíÈrC$½jêÒ~·ýšgtåOLünZu›Z…ç—˜.=%96 PfÂÀAN‚~Q‡„ êbJ49J¯®ÁÇ4©‹qzŒÕÇÔ“³qDúa½:9&‚ú-y†*M|^©Ð \K¢OóV¥Ž_´,ƒpÎúˆ¨'¡Ÿ\>Hõ¤ÙQÕÆ Õ;>@5aŒÇ°V± ®›h6Kg\å2ÀÎq ( Â3øç%ÍÒ©ZC`S.‹PÒÆLiºH’*øÿˆJË`†ªR(k£š[i%¥u ý´À*ê+¶ÏI˜Q1ÁÈbr˜@¥4‹@o1-pŒÏYtz±€Ìµ `)žôJ„x§Win"˜+Pž"ÖŠf ìÌ*X9¿ ¾¬Î@„ŒóÌéöô,ºˆ“÷ 椅PÏUU}¿y¢‰í´‡9É® ß´ˆ‘íèÿ5¢.£2u%ÑŒÚåÆÓɇK§$s9^uát¼Èðÿ ˜h–¨Ç{ž,!c=˕ԾO”;=@Ÿ===ªV=ª\›ÖNC6O§5`Ñ…:§pï²zÅÒPàž%Ïní «i¾¶œÚ˜ÍÄ“ééƒ €ìGd ª‡éþÞ·Ÿ@)ѽKŸÂäL–ô éY­…YY5fu_Q1z`Eâ+X1»žœ¥ã»ÆeЇ`D‚^°lp2Wa¾.ñÅ0Èd²°Xx™È”Â2ËÆQ^KÏïƒ*%i’DWc÷˜R°¨Áê\Ò‚p; µ97‡¶ÍÓÕÁL'¾ y.æhÞˆóe÷¤½óY-+[JÜß(úÇWT‹gÙ<¼|X¥ä!hH“0î¨SG«8c ¿ -žÊ+²ÅCr*:Uœ~NB`Ïwå¤I’gt[qáÐ~oâ]F‡]F÷E:zSHŠºµ¬ð”E’'UTµï¬$ü9ÜÊ÷…õE:Cõ`ɲÉCt ð’-¦åœ)·æøLAœú(@ó^E¥ü3*VGÌ-¤"ý=M 37Jϯ–²©¤??ãE”‡%ã`v±¡ŒÀx¾©]Y²¸øŠ©`¶äMµ¯JÔY–ËÛ%Êôž½”ÐÃ5GDÊÎÇÁ¨Á"æ·V\LJÙÖ ©{T¾µòÙ¸bXˆMƒV©s¦’ø0¦'T–´SÌ­ÚE‘–úýÓ©qìàVÅ«ƒöëAõÈû¼¦I°<þyòO0ë뫸>A%òÞñÁ‰ŸÇãu²W*+7Šð¨ ÂTÁ‡?uÈk”’®Âž¼LEÁl| +]ñ•–KX¦c$²3³kò]¸‚åPcUœòô<—]Së8ü¯ÚÛk4kkR ̉ÓyMãù¥ M‹ÄÎ਽×ÁRÈýÈ7¹ƒDõ´ÊVÛZÓ_ÏÔºÒßMrÜ-..©×X•ü”;$/l Ì5¥;Ͼ²ŠæµÈB¹‡ˆt”&-íêÍJi¯oÙhÅÑ’Í„ÙbˆL\J´[ÒÃ=Xž —ÆCÑBO'ÌîœPĵŠçº&©$(]i!×ì̳r‡Ä¡õ^”Aš.³Å;+)ÈŸ«1ýP1P!;@áÔ)TGj|"u( ½¥&åH¤ñ‚¼Ñ-ŒšÑáñ‹â U®¼0;* ¢:Õ)åÌÔ7@Jz6J:FšÇ£k\"ã4…¦¶8på<õ%†6RŒ;¤%h¬b“¢Í\“€óŒf'.mÁº™“à"Æ%ñ¶ýº»·…+EsY!!7G¯c“ài¶Œž¦ m‡ÀºE CÁŠº@•h-YE¶ l8• #ÞÛªáIGaU¶Weêµðd·M³gLœ&zÖQE^ XçcÀmøË*ÆÁ¤Id@.2r³†5°(e{» f‡£Dd »ÓU éFë¼#ÑP0±Zç›§¸Kô1“6‡s—˜ð"Œ‘}ieVn§â–ÖJn?dÅ1å¯äª²ºƒY-V³ì&Ï`Ÿ³Ët1‘" Õ¥7øÂ–Ù$šEi¯‰tlt5!òè‹0t·’ ºˆˆ«.-…͉–,s,ý¡NQ´eT}ŒhÇ/§âxÊ ±ôV‹Ù73‹´vtØrh˜LCCý]¥ Þ8«`.ôÃ0ÊÕe<Ž”c'V1Ÿ-=2õV¿¬brˆßŒùŠ0Ügb6aŒ^†‹E±¡:©µ·GÃw5Bæ,úŸE $”qN¦ók)‘è#´a¡-Ò¶*Àn‚Œ+°J;j·ßiÿ@Q!¶!Ž‘ MÉý7§LˆÜ^z~Ž0}5KY¯ÆÎ›Ù“â$™v“¦çŒ$"@m;öÑ •4|§ºåÇÚ6åÖjB–çñ'ª§‹L÷ºe{e!0‹=ìo‹evL(´œÝˆBúH#†ŠÏAíkDÄj?-¦B¹ž9c;Ý{ã ¡ ¿r<è'Ðû>{ Ídž,KäAÀT;±O˜§´º³øl|-a~ìþ hãfN!*–s ¢·ü¶Ê>!´Yä%K>Íd•’Ôp¿·L!E’JÖU…°I-¯—¯TAã­Æô‚vLIxYÜHžźÆd.o¾ÄÉL¡„OÒ~t˜N&)¶­nïU·×¾#µÆÖÿoô90\×TÕ m…âÌޥ˟-«¦^n/ÃJ.ƒËh1‹3P „³-F»-ˆ•©ó–½— „ݾøQ‹NPuó5õ÷cŽÊëD¹v #Œ³l˜h`ओhEVSÙŸò¸ÄòAgÜ}¬vÚ•Y<·™(¥Ó£õoªk9©g¤¸?Ô3rí–ºˆ‚$¼L ¼Wè8ŒJ~¶ÌAÄѦ¿`•Љ9E”¨×ñGrâBä˜è0ÀØnà™v ‹'žÄèa× {Š•az£ðƒwfÒH"vgAJ Îb - Ô‡ñbtÕùx]€Ëp>;›þ‹’Ž æÁ‡÷fQq6Š‹õLÉÙ=Ö¾åLØYD¦2a ”î!ß#cfBÏ0ŽÖýp~…sv'A7@…eq Ñ÷$CÛ2žo<¬¹1LqœÔŽ:Ã}"Ü1‚:“1à®E¢ö*~Œg GÐÍ q;ÀÈ8í Ãz(†›ÇÁá÷$D]´áô 7>ãÑF ‹™g—æ´Üɇdÿ›\4‹³JgC nyÏ•àpá,ÂÃËK6¶>«•8îl‹ ~­éôÒƃÂ3µ-˜Ýí 6‹vÅ ¦¿iÁôõ–ÎÍJ‘K?’½ÜŒÛkªÁ~$ïºÂn¸«¦–‹4fu&Ã+¢:³"˜”YxPÌCÓq|¡uã°-ëp”Ã{x]¾,éÚa…ò¾zÇÊå]^Àû=bÝ=NÎAhÌ¡LoØòF§\62´¾¿!ºó&̼ÌAn‹_t€VûˆÊÕKYä»ÛYf=jqÞfbvÛ{? *Õæóç´“¶ÛÖn]1ž ¬Âs‹@Ã:šLAr: žÉåS³—¸]AãßÈÇ{l¤3€¹ËËç>/V}Q9…Â}Snýß[öÜù/¢UßË¡«°Oò÷w:’õ‘FÇD;G«ŒBË, Û-rIœ_öPŠÏR„“Mÿ¿ð\jZ“ÐIÛ™e~L:jld Å£\G¯!¨Ñàsø|8}&;±NÝ›wÖÍ5/K§lRžR¾-¤|WHù¾òŸ…”?RþÂK‰,žü“SkÀúW7Wq 2/6HÂL±AÓÄslË»¤Ìs,¢š#<.Ì»‰·0³®sA<ꀔ÷nÉ ÛR¿µwTÊ÷ò£€±úd:Ð)¬ÒÔu‡pŠcÐC0ñG9:ƒºÿÚâNDC‰£uÍsºé×øàÔ“ÊL—zãHµZcÛöÿEOã^ÉPœÕÿY«‹òwXŽ÷‡çƒ=Jîɉ¿Ä™zÒ=r3V…t|£ªg Ú2R¿|Sãí=“ Ž&iRòcÓ·Ûy­"츣)«¨ä2!Üêš0 -®:)ÃJ«¦¡ÒýY£Qê(= |&"Íî6¬ Ss;}Shƒ&Ýý㣷íŸýÕDך›„hCèIhÐüHÇ †‰îð µYÒFnyÈŒP¡¼7…³Úy‘[¯x-P©…•º²)B#¾‡ÎàBºHè"&œÕY:©rm.ëÁ[“¶E.ÉG@ÁšÐ4[Gh¨äCO±~ WÉA¹±¯Îò=z9§í>€wçì‡H!¦“S}¶E0¢álfÜxwD7 ðêœ`ÜØCnÿy)27hJB-¿3Çkp*¡»Iˆ‘Ùœ_Wßo?ß>9y\§%ÏŽE‰WýžÄð¦oÏÿ¤Uq>Žò}­åúoÞú‹û·Þ¹³õœ'9$!(œoø€ÖôœŽ_É´à\äj1È£ú'\ïM0Uñ %¦´œðC*Õ(”j¬œ9?óɪÇu« ›£ùP7)&ÞûÖ–L@Àɪ×0n™bøPõê\M¢,sÂÏ3Údw8®Á·Ý耂Ċ‹Ì|/Æ*6jW*êÀÛèS*V/8œ·Ñ¨iy¾÷¦Û£!ÅÂô‚ñô2¨ÆV€#4s¸»*:)´1,f‰å`'”B7"%à #oÇsà lPw…ϹZt 3mxCü•ãî½-[R¨{Z'uz»ªûr£Ù‚Zý%±ÝÒqòܑςSGÇ‘³—áÓ§Oì‚@ÈIx)µ±TSë¢étO ¬ÒÌS¼úc.ʆ«äÊAnÁ®9>GîtJ+éÆò?|U·'Çm]WÊð5nØ%³û!‡WÞòÓÎeûÞr- + >;¡[|3»üø<±õ8-^F˜y¢=Bx5Æq^‘3Zý©‹”U(í›Ñ>$õRó£m žÍUÇeÃ>ôûTeOI—Þ2ÅEWk”XØývïuÇåÐÙï û=&.Ç(Âvs-¡–9—¶%¶ÂN,ßNA„'g)]¿CAwýÁ¸¸ÌœµˆS7lô¨e¯tEÛ‹æ. KÁw5—÷‚l ÷/÷ÍÎ,Úr ŠâaŒßk¸‡í¡pô+¼“°^Y\tuH½Ä±‹ij$¤— »¢Í(Ôûe3y6ñ6Yt‹ósF™Þİד8F'Åü|-9J¼e¤¸H'tæêNøVS^vã^®vE¸öù¿É)ôÇ:.LÙä‘!Ó‚Îè:Ek$dä3‘ ®Ç‚ty&³`—ª‘q܆ŠmY>w³R"¬ìRõø²Ü3cÕ3u Ρ )éÚ«(³1—³fYfeÎÞê¼{^˦¸æèD¢—Q¬…˜ãž ¬¸-Ë࿎‡gS{Dj‰1ÈzÑgÇŠC{rOÔð†¢QÑ )ÊZ*Ä28 ÒLáI&÷°èëºTÕq𬛷¬÷z› ›«N¼l;èf¼sjfçMFézmõû²ÄòEOÛ_à`6¼U»éÀÚO‰=²=r”ÚF‡ÀêO *é-µÀörNqQc¦‰PÞî!¢¨ºZäU‘(Gò‰Ë±LõÑ}¨þ–]ÿ8Ác¸ ”EÈ)J—HôÐ%òÕ w3·;ÑžÄé®þÜx(•»£J¸òÿ÷'° ‹Mwwi—œk»ØÍ]Ju» 3g^‹Çý!Wê—GëSÍÛMÿÛe¨çå{òscÕ=Øë³°.˜>­(@ÙlÐäõÆRA-Íòå1¹Ù²Ww9¦»Óˆ˜@íÀà \ò‹iéÙ~.¿ì®ù²ÈЭËÔyH PKC6BÑ]©ßð›·Ñ1£Žæ¼s«L€P­¢ü¸5Äâ.aàDD„Öàíõêˆ3âµ>;µê™ãOEã÷.ÁA7£þKņv'"WOGGBàU6 c_;i¨§;Ì“¥àž‹‹wÝ‹É MÎ2±rM6,s1Û›åð& Ì'—"¥ç3šMQ±B£3Q$§Ï" ÈU;^ ¾2n ùÊ‘ º®Û éü¸…0ø¶„Kb9zgO”¾”NÂDÓi4£$‹´yŠa!3]и·â̦»¥- )ÍýFáb ”£?”°~u”„À‚”3÷¬ó·øc$É/T Ùj൫EÖ`·ìµƒ—ÊCÙ"M¸»rÒ÷“‘Èmè븧:2 HnÑ{lÆp?[r{Ó<õòq›4Æ7?ª“àú,2! 5/¢X{¨íÕו-ûêTžÙŸýÎQõ†ËW#­ýwžçx…™.ð¶Í÷†Uá_t-5麼]Ë”´³ãtã%~CFÓék ¦×·¯ ã$󣓋Û`òžŸëÙHÍIp\kŠI=ÕÅ®„hè;€uNãØqx˜ V~âͼÖe6qs›§Ã Zà ä.lð&Gó`D",¿G³tJª§&*ì9‹¥™¦n&ÈÔ§ÏÍzóæ¥Œ“2½\™¤¤ LAmÛ-tcÃ~›ƒ^zx%·ÿen]aÐW³Î3;&ÐVôé,]Îfy'³üã^+…]+:¼…k:˜‡û1Æl&hœ™S‡¥u½yIsÒhÞük~OÌÐô»œŠÃ•«XGü™Yç%±Îqøæ¡,«ýÔëߊe«)³…\Í¥³æÓùziX\qg3  {¹IýôyÒpgµl z˜¥AþÒ¸u4½üh>}†öêöëÛ\²Sƒ-=æÛ‚Øì{\âÆÕ÷ÿ˜@¸8qÖFÉ.‚\dÞà( mˇuÉ­¦K®¹,ùA!b¸AŬ£ËÍv›IÏ…‰<ä’Ž²\èº53åæ6¼õ¥Ï™àê£[œ|‡BÖ˜²LbTƒp€Sª§6M0àD›ðewN䈛,3b+ærB0sl½MéÕ€5­o5”ĺ*¯îõ¯á+ë†\Ч{B3Í› ^ÙB0½®œº:Ø…-¿Œî<£cãÐ) õæôŠz$[½ùë Í©ƒ…÷ñÉÆt>3¤®#öתñSs†ˆ¶{‹Ó!”ˆ†¼Áð)¿Å/ߢ -´]“°;øo³N >‰êé©|Ìü‘‰ü5g‘Vé-éi –ÿY<æwÑöÀ¾8´RÛ/ö¨8LzÄA‘Od&é -½Æ‹[p ë®æ¡•Bœ‚ /¹jªçÏ•p–Š.sí°)?3eRLßßhÃ_3×±©Èà/à‹@9 ~¨‘Q°>u ÔCö·ýà©;vîtœ'âEs>üº=<íÏŽË#Oîd‘Å>±3z å‚å8º 1Í‚æÃ¶/™ãÆt*/…µ*…ÛF#7AÿÐS' £Og)ïé‰7%Y^Ù°Qi÷ÙŸÅKmñÄ5Ò >Õ5‰ft™íyÃ2¢È9ç8ó"[ÐÑïÏTÎù,5Ûìø¾ yÁÏœÙò± Ãa8ÁDä [·<¨PWq‚pÎâ dnÆ•ˆÍEØ$RèƒÉ©ëÇHÁ4&÷˜¾ù EPø8/Ú4 B^0ÅeÈãÐè'˜æ) ª=ØëvÕû }Âq‚˜5Oé¼9žÅ-Ò<•jkˆXëÝÈÞ±ðĸjç-]pë7YÈC4;iýë„n½L?°›+mqFÁŽW—1ŒK.dÌôïÙe[¹v7OZ SŸã"¢O»m?4ÜQ—´K%qï ³¡Nì)*—î╳)$v‹‚{–I±A±î…‰I*°i ;‚biÅ-…Å®##L4c1‰~uŽŽ@e,íB )ËžîËÅqS®†“Ù°rÅ7ÕÏ™m@>^ÇÌ£ÊCN: k.ƒnÕ ÜD¢cï)Ì‚0 ·pþå]T=Æ3ãí©?øöžÂâׯƒ_Ãþ˨õ4ѶBìø–ée'6A5Á Ô‚n¹¶KBè<þgÍ=}ùùI47+ɯÁ5›3wù=ñž½#¸MÜõÀïf5í»‘&Ö‚LаL硚·=¶Åw¤˜÷­ŠCP¬°Ì4´¨ö_îâ7åz‡ák0íç¶hØÜvIž«WÚ3è>F˜=§‘O<ËÑ?År éí¸|ImþØÄºÊU[ÒfIäˆUý½@<±>`0áôÚµ.øÅC4IžýÞE”°{H7ú-XMfxÓuƒ<œ¸TKiüòK©•ɳied¥õN¤)‡„\âáç·ÇôÜ›VÎQ?à÷Ýtíÿ¥„s>¦· <ú´¶ß4>Ȭ+(@×ì#Q±™ç£ºê sPÏIMO‘)¼£Ç¦É$³t²é<9àÀhå‰P®»÷©æ¡dZ<¯b‘àp¤«¡«AŠ4BüçôežÃc½; y»¼<¾’ „Áú„P>FŠ•mpÈì­ã,D ­ð·•SWüÎܾ !÷ùr¦'8Ñ0HrM…«š¨Ý©Ú:Luj¢v%,£ÒêjZ³úÎxG{0èöŸ2o)6ôáAT¹ñ8QiœaV> Þ³Œ÷í½²÷¼€D•—Ý"m¤ò&z]bº«ëÅ.h-:f3¼ÀVŽK´û¯Çøþ|ÿygÅnW`¾N?¹íà™uþ8ä.¡w¨eäcî2¹*øk'‚Âbþ-§Á9šøo0 æyφ‰‘ñ­žäš,úcÕ—? ZnÚLK1í+` ƒr!â+Pseìü5 ÇÔg>¥}œ´ cn¹X¥< »ð7Ö²;UíCl4k5Ç»îëÙ¸‘†ÀX_¥øŒ©S¨{s‰u*¢uucš§ã÷‹P®\q˜VÓ7yœ3ý¬jƒ²óƒó«4gêDŸà[\gä:(@ ìϳÞc& 4œIÔ ·–OgSþn=p^›%Ûô‹l•Ùú7žüæ ¿Lß['.l:DÐt‰Ày("Åðä…몰¡v¶èt·.–§?2Kxüê¶!=n‡ïpI‹Þò¬ëòçµÅ„ï¼j­¯ v!mgQ4QgÑœÞdJmt0ã‘. ¥Wšù<_ Îîù-© áÏñ ¼^l1åý˜x¾šq ¾…[2ч7sଌù†$€x¦7O'xÕËœßJóÀ>ëŒjç[rÑã˳b˜²}Û6¥ÿñMÛ²õ R³.°Ð]‘-¿Å9s.’îÃDÒ“hÇLUý £ºš¤€|? °UsÉ» 2¶ùüùáÑàM÷Õ°VÁÂd£kÍ»ŠH€BñZ;KʬŠõ&Êý-˜g¼°Ö¿ÛüüòAXÏ-(ém<ŽqS é7Ç@OZ„|qq7Ó½)!®¯#?UÍTz‹CÞ”Gc•>¢t¥ œ`•,yÇø>ËÄ}†¾¨¸O"ëÊ È÷¢8ç>VÃZ³„9«ºgàÎoG—YâÞ„ižŒf´ë§Ì(j,«Ë]¬N8Ð‚Üø‹8O8„1ãžØ,9Ñ[åÐCñ¨±»T•Òõ\Æ%Óu…å¯dêk ÍÍHÖiæ\÷iîR\Ï… è«# 58Ý”Gožv?>±„šfëÍ“ºòRàwÕ>Wí<¾êrS Uã3c ¥Ï5#§MgWÀ]aí€aǬKhßÖ^¢eÐÍzHQú8k‘ŒÝ—¹¹Ô2‚ˆ•?åÔïïÅ6…,xÃ/Çõ õ®Ý„¤šú¢ûk0-¼ÎùZÎ44_\¦È1ÏË#Öá¦Ì`—ée´iÅ,€Ï×Þ#ÆÒh,šw;+Ùys× £¡qWòIÞÃ郷EÜ7~é ­é׎ ÊÚëú•P¡mÜâXŽoû¦èWg¹'Iïi›}•ÁEËÎ>¹Õâ·v1Åг Ê£%//› § ¿åë·Xépœð†=éaØ ÒÆ)j\œŒPµ¼Vã2ìЫÅx.ýÄë=çÇ8ƒ1xóˉ¡áÛ×Ix­#zÇñ<8Œ¯ÿÁq¾ŽjÖÏtNñÃÀ‹ñ‘„³,úŸrÅŒA›D£àZGQÀü•‹ÚùM[„4Iùq¬’ôñÓ«ôâ‚{#]›ï# ïs® åj´ ¨d0-Ó¢J꿇{_O3P[ú[.ô‘&JK¢«b2°<©¹ª„ÝÌ·ê·üoªÓî¹¶…é|¥ÒSJÏ`½•Ç$¡Šˆq8‰ñ…î/ &\-¸ ur¥¹œ_©éëxQç¤Æä&Ý"Èx{a-8K«ÌΑÍW¶¸\ŠëLu¬Á7+K—Å™¡Ãÿ¥q:q±­/5¦hv$4¾¼ÊÚð®Á÷Ko›ß}ó;›¯-.ײ²1X#øÞ›S‚„ýÇHBølrÚª‡G½ýª[$óO:ˆa^N†õ„Ê P¿·¬¦3ÔËúÞ<Æ-MR†Ü§Œ.'mï $è^›~ØßÒ÷&:O“Á‹ü÷¹/VFɉ•%LÜÙ¤‰úÍ_míßÚåb•'+ÈS…C=/”<ƒ®/¤ûÍôÚ˺4!q×íÛéf=Ëx¼µàL?]H\j§·oTÓ´«Bº3]ò–)ÅÅs6­Üûiäͤµ§îÃ︡ ºAܨ´2ŽË'±L—-v‹—7)©7þ#òž B×v@Ë4é èK}‹%?°b‘e¹£ ÙŸáN ¨=ÚYSPBõ8ÖÍôb‰5¼*50ò¹Û5s³âTÞÙ)¯­+Ó^¯½P;Mä8ð˜VRƒ<˼Ý+ó°:)Xøw¨†dZÑ+i_a¨~å¸$:,ð霮ìȽíþµ‚.32 b+šçSâ$ødÓ¾J„Ý"—(®Î¬ | ƒüùÕ'\F|¡ão"|˜ÿ“¹)Ã,—to[3ƒ’ìÁ¶XÑ%Z.háè÷â~;?%œVGsH?PÛÿ_Eš*âßUxœë¿ÁtýÓ)Q##} }#cc+c#+C£ú¡|6yIÉù¹‰%zv\Ê™yÉ9¥)© pQýä”Ô´b Üä#|S±39ߺ^93MÁ¡_)/17µ¸ 19U/C‰K95/%3 ›é%•© Ó¹°I&§átH+\®U2'37³¤‡Î¢ÔôÔ rÅ%)™ù¸år2“°Kre‹2óÒA¥'’RP”Y–X’ª_Z’™S xÈÀ¤ÀÎ0Éa‘LNÎú»ÆdPØ¥6s ±ÍjQ¡€ë,€fxœRMoÓ@Hí‡ÞR‰IŠ*Û2v£D´i (&‰š8Uà„V®½Ž­8ëh³ATõp¨|æ'pâwT*ø;µ·*¨•¸ìjß›7óffÿü~ø}£¨+è¹IEËêìÃ|¶t¾ÐõT´Úyq{ƒíhqƒ©/@rd¨Ô÷vÕä¬WÏÝáÏÇ.:Æ[½æ{ƒ˜­Éh4 í‘ù¶ß%½„`N¸r)”Ù±ˆ¢8ó‚©æ—ñenà­µ¥»ÄpzšÃCkb âËÂFüíɬ7Ÿ­¢=­R‹ò é‰ /õš^¯–IîpI1!ã¶ÕïHåû[|Û…Zõnë.õFQט¤ÅšR‘Š×Éã_(åMã±9ºÝìåœEšÿ:þQ(ÆžÖÏV,X 7A²vwnÍ…SÊ·™Èfr‡‘c‡ô¯ Bþ2r¿OúYPÎ `år$IŽosPÔ”É/Yn\ïãz- ŠóqI [ø2Fk]úhà/¥rÏm`ŒH§ßì6-ËO²X(½óÝ` §$§bõ1ñ!å³¶=W…Þ$9`^T’à¯8/ºòŸ_}ËÕ÷ç‚Gxœ›+²JDZ_‹SÅ/µÄ)ØÅJ!7;¥$5·@/Y§LÁPÏx£ô6F—ÉwØöñ¢ˆO”–ß|Œ}-#WrFb‘‚PÛä*NéÉó9U52óJ´4ýB}|t 5ì K2¬4 ŠÁ2“srº„¸ú(hés÷C'ääFƒIxœ]SÍjÛ@†B~´·‚¡ô6IZlÇv¡—V$àÖ& „¤Äish‹ÙH#{‰´Ú © AoP>·ïÐçèkôA:»+9i/ÚÝ™ù~fVû£õûÙÓ~Û{q‚úÝdô”..nø›^»ÏX¿½{?l=y3øuñr}ùgývÍįךÒ/0`;BFéuŒ°-y†ªàöæÛle,¶¼ßl­s¥°ÔËï›Ï«RÈYo¾Ï–XpcÓé ò«)OWìñÁ·JEwêÖ ¡­˲u8ü4žNÎÏ&ãäšAPƒÄot~…’2ÏL{BV3hÛͬèÂÍKt% 8m‹\)q™.v1+ô¹Z¤ÍK®1†ËDsÚGKå˜cLEÖ €Á\”B£‚“Ç „Ô9è9ÖDPq½2@Ê@mÔzj™È9éÈ\C‰¢\*Í¥vjOS5«J*Ô×¥ì>P9)+(¸ÒV>5rTÁ ¹Ó4Ÿ&§í21›kCt‰\—&X{ º— l/ÇfVtmBR£é‚¬B–¯&ôê9%~jŽnåþ²¢vì¢ÐgfªtyuIv$ó\º! )`¦.l‹BvÛ”©ÿòôWJƒM1ꂊ¦”L‡ŒyÓÑÑð`8™ŒÏÎmØÚ³ö‚ðß´»¤‡$Ñ&àû öVý°W§™ç¹VÁ7çÊ%4TŸt  Â0²íEÝéPÚ³né\wåyqnkjWjj:+9 —Ldسg<ÙÐ1UëÄçÝW_)9p™Õ=G6Ò˜&›ÜÑ玞ŒHŒ‡-£BŠ÷Ûprz~6¾?ÌUÞ5ïó/ÎZSêí„xœ…нNÃ0pµ,4 BLœª.DUšº„ <€_ÚSÛ²/ý˜ú H< *#+bàmxœ20âótºûéo]âNï^æàÙy´IÑ_À0Ùœ§i67B:ÊÓ,OG0uB3Ü­,ô:ñ z>9ýgö5[µ77J tLžô*ÁèH(j&£›f‰‚k‡ŒƒÚ#˜xF¼)y)FC8Uí$y«Ä: ”F)³lQ̵Y*”SlÜi^$ð€ ·Ó´¨¶ïíϽƒ®ž¦²‚“Y7ÚŽ÷?ZÝb&Äqøûßö-<î·+QQuör]nߢÃÖ›Œ…àJxœû$zXx¢$¿±‚‘±¾¥¾™‚‘ñƬ¦Í·™ÅÙ—ëïèvxœû$ú[x‚¨”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙDe<²Ë*˜6ßfg¤Uëà‚2xœû$úJt‚ØÄ•‰vRc¦q:ûT»xœ}PÉ Â0=7_1D¥­gñPK—ƒ77ªM$PÓÒD¤ÿî¤nHÑCæ-óf†Ñh<ƒäEvàZÃzPâ͆á|º–`ø)OcÃA󃑙‘¥ivÑk×û’ù•l»n¬ÀÙ°„ ©¸ývA8 FÑÎe( ŽÐz«°[Û¼ÊõPhúx1ö±®øÕà[’æ,ç¸H0XÓ·Fú¼oÑmMO»@ñTÜö›WA.«Ï” )z`Ê ú V/W‰µ)ìÎ,^’;¢Peïæ€UxœûÍôƒiBƒ†&'g^jE‰5gAQf^‰‚’¾–‚’‚ŠÐÒW ƒe'.ב@V›^šX”¢` TgÍ5ñ¹ÆdF™ÉºŒ’ú3@¢0ã”SóR2ÓàqÕrqU+@äj¹9$๪xœµV[sêF~¶E§’JÀÅÚÇç–-'•”€±™ŠXIøòä ÒëB¤ÇùõÛ= rjÖUç0êîù¾¾MÏ\]œ}çHÝ÷‡7ÎÂ,Y }¹ìmàúòÓðñÇÏWþ}uý®¼ùøùæËWø# °¿VðÝÙÅÕùùÕÅ¿ÎáÙê-W‹¥†NØ¥}Ÿ XJ(¡á6[§‘Ð*K{ÀÓð’vXq fG¹,d¾‘ÉIåÉH:W³5m‘F°.$¨Šl‡ÒHf*ù̳<)zðªô²ÜüfkM(I©¹ +Z‘KXÉÌãöLA±’!(ܪè¨åt–ÒòTEU>‚ FÜß½ ,®'ž{χlý'T2pX`âr§ÎÐ ¸ë`ŽœÖÝÂÀu÷§ëùöûï–?ü`´–óìqâ1ß×>žØq‘ȳœ€3ß ÙÓ!wîz€(à¸Ø|Ìfʸ=ãBs'¸·0fÞ`„ŸVŸÛiŽóûÐÇB=ÝMâA[tw¶Û¯…GŸøvÂöq6{ŸÈcwì±Æd¾T{i;W.ò¯“dÔã߆ìþ0KÔÉ >Ë‚Ó )3ê$âE¢¢ ß;™vɱª}+#0ŠöŽÁëu<°&‡Ü4BC±ÚWI¥ú ôBâËMwÂ¥Èá¢GOG|$—_ÝŸÎiqvAF8I:ue¯ú%«Ò<‹ÎÄN™®“cÝ>ÓÙ8î2ÿ¡Ñ&S"¬Öºh1‚ÎE·CÆhÝ^÷ñð wxP«!>P¯ë?d;a;U±×ïá{©Æƒ_ š­¬e£NϲýHa; žm×¹«O–RÚ˜-{ñ;ÓEêlÕ‰å57|v¬±ÍCep««iÌ}zYÖ ¶ºÝ¢Ù% ÷û¶åüfŽ•*f±H_:å9iä#šà\ŸŒ<Ëg{¯0†Žöš•dû»ZæÂLñ>lGÓ˜;ÝýµŠ_уY÷¬Ó]ø:³.ü ´¾¡uw rˆa=Ö1¬Ç“3ƒ!öÿÍ}Ä4ïŒJxœ[©:Wn‚Œ¨…‚‘‰¾…¾‘±‚±•±‘•¡ÑFÃ6öÉg89Y“SRÓŠ'pŠOþÂ!Ë–š—’™˜â²–T¤‚%´ ‹sõ2츸”3Ó<Ã\ã]ƒ‚üüã=€yÉ9¥)© 6©EEyù“D%ƒC\ƒÜQ$‹KR‹ÒA²@YW·xÉub`ëÒ¸&äaK,.N-*Ûœ ²ÄbKÉ,JÍ NŽçá˜lÊ)4y‡ÅdAÎGl©E¹É‰`©OœI“¿óóIøûøp)+ÀÜâ‚\¡09Kt²·ˆ,\D¡4èmˆ²àÈ`°Òɺò“çsIN~ÀÃ9yw ˜nà9 ¢7?ä ešÖfƒì Žfxœ[©z@e‚Œ¨™‚‘‰¾…¾¡‚¡…•‰¹•©éFCvµ´¼”Ô4…x?'gßÇx.e @f^*ŠØäƒœ"››ØãX7ûòþgžœ'¨ ˜š—’™ÆÅ¥œ™¦ èáæïìäãèçÍ•™W¢“7 êË@ÍJO-)H,.†ÑE‰Å©“%„&Js)ƒ RÐ×RPD²QAKŸ o7î) xœUR]nÓ@ä9•@…‚àí“ÚªId96¡4Ma;nºR°ƒw-”§ÔTNblÉÞ¶ä‰3 qž*Á8—@<±ëPA´«ÕÎ|ß73𙝻¿ïO|!%y>9ãÉÈ€}Ë !»ä¸öh:pÜ«.…\/ ‘3v˜^—ã1ÐKOò.i,|{ˆ¯Vß9ÁL'té.‡»D<‹&–8ötdù4™úOj4æ5p¤=²œ±`’8.“¸-’Ck4jñR‹f_ E«?ÒX:h_Øóy~²Q5d7ê’œÛáñY€ŠåϺ ¬ÿ˜ÂJFXcë äþCYp$öÔcN…Ó¾ œ`ºò¼d(ÀKá_;¶4ò¤®ØTŠ.‚–” j<÷§ÒÑ…sÜ@øþt8ž{¨G¡wƒÊ Y Þ]dÏÕœQ$ÏŸ1.×CŸA—n†rŸkª«fq-$ªgŒ¶c‰¨¨g°C–\q5rPu[°Öc GŠC™#ÙÀ©#ßX3Íqªéóa!·úq§y»úHɹ$kpípò1A:MÓx—Œ$§ö°©~ó?xsØ,9ããq¶+[ëäÝɧ3ýÕZkï×Íôº™þW›‰/JQ‚©Ò’C>ûs²p®¢jSðZ*t{èÎz¹Nt%d½ÄŽj3‰âß³üa©’…bÜóúF—–Ûe~ñr“¨gL¼÷j™¯Aàöñe#3Àó¯ûü&p÷W§&{öº†_×ðëþ?\ÃoÒy–¨9…nßöÆ+¹o>‡Ã°óò4SÆWTìFCëZ„r&C{ .e8„°TôSùXžÄp/ïþÖyƒÎÛ.Ál"^ºTkµë‚Ki§Êþ&Da8rú¶Ù ¥7õm†ô–JL‰eB‹œ¢Œس#3Ëçó—ÐB?\{Yª'm™þ¡öÔuè'ƒªàügÇH3¶ WÑ"/:Æ“g˜•›Û Ã@fÙfu[ß.Öa†%[%õe-Qêm†ì ÌMl„ø.*舺¾`<Ð:G,à`€ókNº–šd`¿Ø`z²ãB{ey¦'ö#nt»ÁºB,:{ÈnÿªÿéÀì¾BkKŠUXæ5²Š ½‚±òâ;z×L5fœë®‘¤¿éX°À÷8_­i¾Œõ96mÅÄú–tlã?-±ø€±°ÆliÛ’‚Ž–Øõ0CX|Ö‹›Ææé¾=Fä½¶œ éY[:˜Ž'LO·”TQäÅ·8¹ÞØ ì¡AæÕ^!ƒÚ‰ Û¬@ônOÎoˆAm>BHÛbñû¶äñiÐmqÓëgƒ>´¥X*Â5èãK[ÚϹï{µXaWÂ0ͽ& `ööüI`˜{䯓`f˜mn–ļ‡i›šã^[þ•aî1Ãùͤa¶™Yç½÷ï¹3ñvñ½­¾ÉàÒ¼˜ßî—x–?m¹ÕæìÈÛöô¿¨øÛ‡ô½‘îhs_!E»D2À’¯Ûn¿}}&§Ûäª"Šù¾ˆ7ŽS¨ÿ*Ù‹ÝŒ³A»×. ¸v/£b¡ô5\•O7ão¢ý³¯›|DZ¹ÏÞâ†Z¨yý·×! ûâÊqðG²ƒYe4ï9Fóäà ™6Ä“!q=Œ«.í¼–þ‡‡zžÛ׫†‚nëù Ôxƒï5ã6éqÉjÌ¿€«}¿™i ÚÝ™rôÏ_žÜçi‘æ…R{…`uˆ¶4%k¶ /³ï^®W®ñ¿bÉÄsëBxœÛ¬Óª3ABÔHÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐx£îr>Ó¼äœÒ”T›¼¤äüÜ‚Äýä”Ô´b½ ;.åL ¹’Ê‚TÜfsþ?lÐW@êXŽxœmTËnÛFÚ&©ÆIÑ" ÈæbI ô²ƒ8Rš‚'Q…T9ÃÄ^Ñ´4²ˆÐÔº.’B‹.º*Š‚«|C€nòYè—ôÚŠ’•:\â=çžsæÎ ßißzX¯–îZLt‰Ñ†c&¢—¢6ÓN¡YkA«ÑØ©7[õÆ}hÞoï¶ÚÍ`ñ ðÙK¸[ʾ¾r{KR@g ð$JùÄAÄ50ù¸† úçïÖ£O2$G?ƒ0ÁbèúqÄÁç)ø |úiÂYüî¯+¿~ö%OÖBÍ…”ê/žÿÛf¿¡æÍOšfß}~ózÑ9ޏˆƒ£TDq’ýƒv./êÙæÆõ¬½AZ˜æÍ¶k:5mKŠ[½è–=Û¢ŽÙu©íÕvx¨0Éö¶B³ú7T•ÚÐÎþÝèåï#×ÙgO¯–·ÏeÁv.èu1 M½;ÄÙ›«ß~£*’Að.¶¨©³ÃKn¨*q»„šÔ¥ú¶mìí¥½œnZ;Ž;R•ìÕµöB„:zj@¤]fï¯=¸¥Ý1‰iõe›\À<ײ?.ïõóÐ6!fךôì'Ò±7Cª÷±ÚÞ:B[Á”Oؼ>¦öˆzmÉ÷€³e)ûðÕÞ\ñ` ?Þk™„Þ@Vø8L' ¥ÞĨW:Ò[FaQè;Pü¹¢Íó»¢"þ=7©%ê…_xœ» v@l‚¤”¡‚‘±¾¥¾©‚¡…•±™•¹BVNbîF£K›E9­™îœ â6xœ; Ö*6ARÄXÁÈÀÀDßÀBßÐLÁÐÜÊÈÄÊt£î>v?'gßÇxw×ÿ€xx.å”Դ̼T…x˜Üä¿ì»7³sŠ3©(p)§æ¥d¦)èk)(ÆcêUÐÒç —é€xœ; v]l‚¤¨±‚‘±¾¥¾±‚¡±•¡¡•¡ÉF½»ìÂyÉ9¥)© 6yIÉù¹‰%zv›Ù9,™ÊßVé€cxœ; öPl‚¢°™¾‘±‚¡¡•±±•¡BzQb^ÉFã›ìL)©“¹9LSRÓ<Ã\ãýýÜ<Ýã=¸”3ó’sJSR”’óóÒ2Óõ2”¸”SóR2Ó¸r6¥y™Å%)zv›39’˜Xâã4&ŸærÌÏm²Þ%ì+xœk»+:ARÔDÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐx£Þ{v³¼äœÒ”T›¼¤äüÜ‚Äýä”Ô´b½ ;.åL ¹Ò¼Ìâ’ äæjŽ.&þ¬ìXxœ»+º@h‚¤Œ©‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFãKL›°H²¸ ~â€xœ»+ú\PJ_‹SÅ/µÄ)ØÅJ!±¸8µ¨D/C§LÁPÏp¢” £ÉÄðN^¯üŒ¼¼Jg=ŸÄÜMŒ_Øêƒƒ]ƒBâ=â¹”SRÓ2óRâýœœý}Câr\Ê™i Ža®p1.e…̼äœÒ”T˜ev\Ê©y)™i\\úZ\ Z .©É9‰E© ¹‰ÉEùÅ ‰y) i¥yÉ%™ùyÅ %‰% ¹õ‰• I@™ÅÅ™yé@#‘LÓš¡¶:è4…xOGwˆõ·"Ä4’óóR49!º!¸s 4§¾–‚"šï8@ÞYM|bàì€sxœ{.¸Šo‚¤Œ‘‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFãýL›7²˜± ¼ |æ4,xœ’ÍNÂ@…—Ò&.ܸ`a®Á €”jÅ“"jJ1W6•ÎÀ$ešÐ–àªÁk¸qïÞGñ5œÒ(Ä.šæÞs¿{:g~>óµ2w¦!¯5hß‚M¦Äs«“‹9Ô«ÂWþçàIUzÊp`t ¾`!L(Ck=ô{ÏòÐX÷øÁЕ_Ó_BG¶o!¸‹°Ëó\>À>yÄ¡.˜Ô‚©9š9.xÓcßðŽ`J\—Ð1N檓û*åÚj e&@W´¡Ñ“_ÙŽØSRáD¡)6¯%¡y¥óD-‚#o§‘0°ŠªÚ×:¡¶ZÄ1ÕÃòf/a§\FÂÈvÑNañr!á죪!3ˆ,ÅÎ6Œ¥¾m¿¯¨·µNѸŒd¯/&,•]Î*õ»ßšž9³äÈ3¿»ÅĬ[âje–ê|ê’1ã€í,YÛa/çF<«T;J;j\à„º(‰7kQÒbæÜ´}Ø™ cb…·F½"”v¡õ-¯/ÌÿØþ6{ù;9L/~¸ìÁûú=ì‚xœ[#ö^h‚¤Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFãýL›7²T³  ×á‚Lxœ[#¶[ØD_‹SÅ/µÄ)ØÅJ!%³(5¯D/C§LÁPÏHÁÈÀÀ\ßÀRßÈPÁÐÒÊÔÐÊÔB!+?µ(}£ñ:özÏ W¿xx.å”Դ̼T…x?'gßÇx„—rfš‚‡c˜+\ŒKY!3/9§4%UÁf¡—rjNq*P jDL%—€t@ Ž Ž÷šïQET\Y¬ŸT 6J!ÈLCÓÖ„¡§?Lõ¨æ3¦MÖãpɆû@KAKâ]Eˆ'R4`þvsÑTPSS@Žwq‰JÁÃhVZŠ,ÐT [×.%%>-Es2#·/xœí”MsÚV†§qì x•™43í¢sŠÚP’.Œë4â#X1‘}ÔusÓZ(£X*]ìP×eÕnÚ‡M×ýÝöŸtÑE×ýé½`‚IBšñdY†ÑÌ=GçyÏ=ïý}óÏe”ND–UB‹F¹ŽãÙa˜j&@L‰ B&-äÓT<õìÖYdq}]J{¢á3…DÄlÐÉñiíPv´|÷ˆ¡K{Xš¿³¦–s«ÂÏÞ|iv,}G3†ç?æW—Ç4MŸ†+PSäbmøbdaó:O•‡{[‘k<º»»†U4LÅ´Ì T5­lðÄo ùë ¨fE×­SÑÔ8þ³P¸1ÒKf ¦U2ybýZî&Ⱥb(j••±î÷`WÞ㩟®å·µk(E¥¦˜{ Ýãs1¬Ò”årµ’bgnáÝÕ¥øx "ù‚Õ±Gq@iIHs§Ï6>øèeÿ/šG‚³Ÿ o4÷Ç+ïE¿Ì ·¦öƒ70Y‘$Œ ƒ¿æÄìÿÆ_Îøþ;4>‘ŽFÓ pšv`;”·‡@íºGx2¤6unCH!¤AסÐQá$Åy5$¸oÓ!þ _еºuYðôüÛDÂGa“ÃN f{~·KFbr±T®Ü«n)÷·kTmç¡n˜Ö»_î}e×ûÎÒ8hºO½–ßî|„´{tü¬÷Ž ¢„2kÙ\~AØ/ƒÓä9¹Ó´ÿ‹< cŒ ®ÏyuÏö90åZ%‡m¬Ç3Xr¸Ž)öñnà‹XÂgðÎb‘ýsX°Ä¢––28Š¥5,e±”ÃHÀHĈ Œ2­a”Å(ÇŠr}!÷Ä=py±©»OòÝi^öâ'ú1Ž--ßúdeµO|š¼J6>Û¼óùÝG?þú›ý“ïO˜žW÷ÚÇ$àêo;\^Ô \ŸÎn¹‰žg¶ ¯‘ïúÎP~Fuÿ7;¶C†ö¿0¦ év:£‘Ì6äUê³ 6çÇ·F“x¥Dµj5¶—ÂùnFO7¢ÿ/DJî"‘NxœuQMKÃ@¥! žÏcâ)H6))–"B?"AÚZhÁCØ&³’lKw[è©gý%üEžýnbÛ‹‡=Ì{óÞ¼™ý<?«cS»RÙ÷Z0'2VrµÇr nÛ.¶›Ø±Ái¶ÜëV£¯)ɶ®Qs·Oo§÷³„ó5t-è“ì£Vû:Ù ;݇Á¨= ÔóÇ #¢1ã‚c ,¿ýèí!dãaºŒ(Üì²Ü"ƒòˆÅa =¦dA!^òP²@x 3r“©Š5L)dLÆ_”cif) \Ìå*sƒÎØ÷úý2è/PÓñ”q,}£* Fݦ€”Jfs|Ðüõ¼»I{äåËÆ9ZÖP‰°Ãµ’§© ÿ¶é8¢Ï+,Éœêyo>°¹·Ï7`Eús“‚ÓwqüUyÇ7«W¢ræ”xœ{(vXl‚¤”‘‚‘±¾¥¾¡‚¡©•±¡•¡¹BVNbîF“ìâyÉ9¥)© 6yIÉùyi™ézv\\Ê™“ù9L6—p¼eÂUÅì”nxœ{(Ö h¢¯Å©â—Zâìb¥P˜œŸ’Z¦—¡S¦`¨† FÆú@dl¨``je`dej>QOËÐÒÒB$i81¢SÐ9#±('µXÁWOÁ#1/¯4w3#ãK¶zÎøGgïx×°x.å”Դ̼T1®’Ê‚T 8'ÐÖøˆJ42óJtJãsòóÒ¢c5­¹¸ œZ`hJŠFr~^q‰B2Ð^-  ¨ˆ y‰%™e©Ö\R\Ê©y)™iœúZ H¶*hésÓáJŒæ‹xœ»©rSe‚2·¡™‚¡¹•‘‰•©ÙF=m!OÍ ì„xœ[/ü‰‚„Œ‘‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF£ýL›7°üg Ê Uj0xœkü#0Af£B˃°ÒxœµWïoÛ6ýlÿ·¦@íÀµ“¬_œ®d‰¶9(’'ÊIƒmPe‰ŽÕÊ’§IŒuÿûî(ÙVRgÀ0,@c‡ä½{ï‘wd§­×–,F¸„ ”˼¿êÝÃyÿ.ÎÎÞ Î†ƒós8^ž_¾;ƒ/±¿ö¸×­ÓA»=8}Û†SÐÓÍ6‹îVt‚®Šw%¡‚…qZ&¡_DiÒž}ŠÐâTD™Ìev/C§)w夡ü eá,³t yº,üLâlRdÑ¢,p¦Hç"¨Å~NWI²½¦¿Þ¥pdå®? ¡Ì1_‚)Ê,jd%~¶…eš­ó ‰ÞÊ/ð—Dœ8N¢äŽØ‡å„BqkY\Ò÷óþ3j9¤Ë'eÉºÌ t¬ð‘+¡ú‹ôž¦jÿ ’´ˆÙÃhaŒxsH«ä=å„IƒØÖ2SÛsñ=LØpdGu†%’û¸@¥²F Ó \ˤðw›6ÀýHq>ƒµ_àAñãü`¼Ú0nÊPâ~ì«ãç‡÷2+¢œRâ).¤Á¥ô‹O'm;ä­DìŽaMK9I6±¿}¦Ä¾&éC,Ã;I¸—uý¨S^¹W Ì .Cy€Æs/ãtƒ:hu¾Ï«Jù¡8Ò,Wzßõ1:R>R⯕–£UƒÛuX¥NBÖY›ÀèØ’|Q%(“G%Y…¢Öi!wâö5\£¨J~â㮦 ßÈ€* C#*µŒj)©ª*ÏëíS-bÊ{ìÞhü>sìkn0F·8ÉÀb®ÒeÏ-Cs¹m¡GöÍ2@·-×᣹k;‚À>Öb¼y£f5ëا™Ã„Û~539âb"G³\΄B2ç·&=@°lL~Å]¦¶Çµ{ŠÂ÷‘`áŠ9úÿÔFÜäî­J9æ®EéÆ˜Oƒ™æ¸\Ÿ›šCh³¹3³Òip¡›¿bF&vÍ,ÄT3M•ô ˜È?W:bHT™¬J…J î0Ý%I‡o:‰ÍˆÓ9}aŸªÑœÛª†o[‚ý2Çu8†v¥MP_çeg”-¸KúÜaWÄÙŽ˜„ËݹË`bÛ†²\0çšëL¼ÓÊ´¹`=Lâj”žPÐ1œÆï£¹àäaqËeŽ3Ÿ‘ú.Lí4=Ð0ÚP>£)¤}²[Â%3Ô6ôàfÊp÷۪幎Fv4Pw›+1+úé6Äâi›˜|Â,ѬM@7\°®ºè.h ¯’ßh˜yNòÕ~!·êkã<÷Ô®ƒf\s"_-VÇáõÑÁQ1×§µûTx!ŸDË/qð¬‘n_Í4×·ÂÓ 6ÞÔkŸà\”È—¦)¦Ú5k·Ový ~Ê·ù ~$|lŸ`ÑGKz5CbÓ¦»Ì²´jëË2 ª&¯nÁºe¨ZÆæˆ½ý Þs7È}k‚v´÷cêO=jìÉ]~k·rºêQ؃•Ÿ©öëïãõcÁó:Ï+jZž×í¨öRÉu{vëðÉÔmfßv¼¼Ûj°Ù_z=œ8‚æè‚M$5 Pš0YGá 3Ú‡e¢á:ª€o߃Á&.sú‡pH7ë`7.RLW}¶ZƒSÜž8~»À«*Á£)8èäÿ È8—/wº*°Èüêööc Ú¨W@ ó{v… ¸óÔÒ5÷¿è¨:½m·õ''°=FøÉªÁéé`û¤FlÂ-Ï`º)ž3{D#¢%ñáÀ+ýüyŒÊSô—80ËøW öë[½?–µ‰÷RN|ØàÙŠº|õá°ŽÏÕý¿›†b»‘ðGéÇx3ã â«Ü>¤YˆâU¬àÁ§§¶ÿÞb«W–öD×ñ9¼¨ªZɪ·»²ÀíyðñþÇb8<;7Ÿ°ß¥ní)‘¸_„ç1”±,šƒHNÒSŸåf“fô"?v2Õ'!üp¼!RÐß(; ¡ìŠrxœ[ õXl‚„Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞF£ýL›7°p  »ç‹+xœ[ uVH[_‹SÅ/µÄ)ØÅJ!½¨@/C§LÁPÏPÁÈÀÀDßÀBßÐ@ÁÐÂÊÄÜÊÔt£îföp÷ €xx.å”Դ̼T…x?'gßÇx¨—rfš‚‡c˜+D€KY!3/9§4%UÁl¼—rj^Jf—¾—‚–‚KjrNbQêä(åzˆ= °>ÄE°AÁ®!îAþ¡®~!\™y% Å©%éEù¥©y%@¾¦5ÜH„°†x· ßxwO®äü¼â…äŒÄ"-°Þø´¢üÜøôÌ Ž/Ѻ²¤ »Iž.Ps@F‚ÒÑ2JÙp°d‰‚²Y`šS_KA=¸@>à8tä@xœ[ 5Yb‚„¨¡‚‘‰¾…¾‘±‚±•±‘•¡ñFÝCÜ“ÿð¨¤G â5qxœ…RÍnÓ@´IWBTªÊiP‚šD–?5?„í˜ÄR°ƒwM•S’u³Øeí¦É)œ9å¸ð¼OÀSôȰJ¹ôâõ7ß73ßîÌ×Ç×—j>•±I¬£fcÊXžAQ)B©P(«…ªZæ¿¥F¥Ð(Uá}4.§0çIåUIRóäÁ/ŒžcÈsP¬×ê2ÿÖËœKá1—œ“ Ž ô!æÐ 茰ˆÆ Hó1˜P?d(ÚdëR06#£ïןïßK­®v OÿÉ }Qý&W°dB«;Å“ÿú![·S²öAyƒaÄŒ¾»ŒC‰k¬NvËGà³pÊÕ4‚(ôã«#öÓ.ʹfË´1Ín‚áØØµt;.‚³3 …ŽÅV/ö;2à¶)ðiÂØ‡®çv´ÆßÙ̶šãÞ.¦›Ð±4½³þJé† xœ;+t„‚˜´±‚‘…¾¥¾iBÆ Yù©Eé ö3m^ÇÒÈ¢™™¦ èáæïâêìïêçâäêÂU–Ÿ™¢š—’^”šW¢âMVæÔtbÀì†kxœ;+4‚˜Œ‘‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFƒýL›×±Ìg ª¶Œxœ¥›moã6€?ßþ ¢A;H7Ív»×âÒŠ-;ÆÚ–+ÉÙ¦wE¶h[ˆ,i)*Yo{ÿýf(;–_$NÒd%óá gHÎ é‹3O¦É2õåþÏÂùÛÅÛ0~ËX—Ç\ø’l&’%+^æ‚¿õ§l²b~.“÷.à³goÞ\œ±6Ÿ…1g2a—,œ1¹àì~Îe:é)›åñT†IÌÿœ‡‚gì+ óÅ<_òXfo‘r’ÇŸ±®éŽºöÈ»µzícäU’³…ÿÈUW¾Hý‹Ø_ò „YüÊ ±Ø,ŒxzcÜšža oh LÇ´½;¨ÔRÀ¹Þ= rºÚÆéºeîôbMÂ8¸˜„r•òL'Üuo؆_îÝÈtH"¢]êDüô--&àÓÈÿA‹'3vŸIÁ…H„'NÏ™Øêûu«7Œ± ‰OåA_m³Õ÷×6mÛ²=[?0xV¬µW»g›Ã{)a êýc*ÂXÎNÙ$—ðbýÔ ’T@G§hkd]ý(Ã`ÔŒ1è«×q¢SHC‹âé@#°(¤Ù4–‘ŽÕi Ý>Åg°‚DqÍXu`µè  Ô¯G Û1I°Œó‡ºYÒqLó£~š\ͤvw\Ò¼…qâñcH0Næð–Z&¯' ¬¶©×PIªŽ€³F¤åwX’Ó…ð3€#X”G7¶áèÅ<ܤŽaG" ÂÀà ӛ‹$¯%öÚ^Ƕ^×¶Æp”Lêp}ëš`€h­$’-PÁµ®aP'*¸Ö•°ŸßÃéÅà85ÌÞÐt½!¸ —ʤnâ+ÜȵŽÎ|¤d«Lò%P3õ_Üx‘,/?xòôÎ…Gw:Øï*`ðâŰï+`ðâŰŸ*X?Gí:´'*À#)a6‰üø¡Î¤Îuß~Ô£¢ébùó¬†ÕoÝtúF×!Á`í¬GÁÒI%Ou. ëa§Êe²(œ_¬Xã»4q½ë±Ûëë­ $$茹æQâ…(\†ú]°ßôª6ÂJ×’xÎðס÷ö­aWý"؆ì¢Î +äz]—þto/x„~¬Óy`´n`iòÌa»g +ÇR”•÷Yw8F{OY‘Ù…“tXúQ”L·*¨ o‡' œx ³c"ôûV‹ Xð£V›ö”©½äËimŽ40-B’„ eòX&i`Ýâ@%b¥UÐXöQÇŒËzÉ“F,0|ÝN9øØvÍaŸ\>dZ”S…Ú„Qíyj¾móý0ƒÔ)Œ$ƒ} Q\/Fü!d¿ƒ‘ánª٩:ˤ/gÙßëÇq ·stÖª.ÿɿí–X ´™ÌRê¡N  ð ÖiS"<¤aðtÆ<\¸H»8ÐU4Õ~PëWÍ–Îâ‹9lQ-àŒ-»Êd#‹ý$‚]åqð{‡v×;º—9Œƒ¿AÆš ¡ôËëB;"à 7¤ &M¢¨fú¬>aFˆV" 謨v4š,Ïxƾý¬ 5êay7eçC}7’o£(8Œ+F6„uï7BÈ“>MÁÉx‘9uÉÎèS ¶Í[25É 1R­1q/*¥Pj™©/ü%:2lc@¦r[­Ìo™Ÿsž“ÌÿÛØ“í_Äqlн„ûHß¾ŒLÅR™¸§Q˜¸±‘™r5MH®åºw-‹ì[äµûE+7ÑVD;I.–S?Õ]Ó´Œ•&Z‘سHE,´ù|Y³¥¢±»‚hç¡:ŽüJYäÝ?ˆKü}¾9åÇ‚R®ãÍ!?Ö“^tr•W._sºœW/_s¾œW0_sœW1©gÌÛZnÇCȉ*ªq{»®-\{·íº¶0åjCžE¼66;}“›_QŽ`©ç¯¹\j—”±;¨XOªêU»ð«nH(`…¿ê–„V¸ñ«nJ(àqG&ß–€|Dg ÈH(>ü¨­KÝ–ÊRAÚœ(ãÙ1ô-”†žçKÈé'¹äž·ñ<Ã…TþzìÂß{R¡~žeìiÁg“|ÎÇBwÆf‰€O„Kýéƒ?‡A]$y° ü…·8K=ŒÖG£kz×ã®m)xcG³<Š–ñÂi™{ t¤è¸ËÀ"ü#Ùú«ŽWT3Ž“e9I"TOH²„®aWù±nMÛé­¯5¹è¶áWÕ¹ÏîÕÑ^ÆÍ”±sA¦å„n‘òîI(ÒÈ+.~l–-˜z‘?åxã~{²½v°íe|ÑxzŸÇ¨ ‡}¨»Ás€öq"×ËI™…ŽåÉ7 ¶9!gxã ò%NøB–¤xÉSá3oNÂYÕ:s²Y°v֦Ɨ曬ÌTãÃÒÅÉÆv*å6ªCÏëµ×3ºÔÑæY§ðyQål²ÿ !ñ3¨oÝÄ`Såµø¹ÿwOĆçå1´ç5›ìVpD€VvË ¢$€zÐð²¦ê¯$˜fap/Žh‚ß(°{Ý·Lz~¨h%~?A„ó…¬ €[€ÐEÍh¯Éþú«ôpšFy†ÿÁ¶½Ž0Sd²–¿ø›=ÿ€_àòûÝ Þ,$è?ŒG¯5šlç@RøAˆåGIÁퟧhATz¬!Ö‘¡¯W+Y _ÎW(ÖvrÂVÇtØûÜÅÙÙŪF²k³Ûª/D8û&¨¤Ô:à_ ׋Ù7­oØŸÇÄÙåWIa⽈Èðüye˜ÿýëXÏeæA¿‡•¢Ý)¼)4oó\Ümô\IËõ×ÝnËe܃±í÷\·¿éw;Uw³Ëw?¼?h «ÿA³í3÷÷?¼»ýÀ׳0Kô|Á¨Te{áñÉ´Z$yGÕU/GW·©iÉ™Vu›š:|*S­JMR‘ ¦1Cfº#Ž®Ð"‰­J±t:ÁIÙ$‡Ë±„´’åqöþìÙ¥\Õ¤²2EŠŽ^°UC'ªEò¦ñ€êÑ#+™Ôm.)¥3\Ì5»š«î˜ªMÛµ»›áE çiPÓŒ‚Ì>½HB±D"µcO‡ÇÙ˜/Õs#o) ššwlUÃuÿŠg÷{æ‚{·JQXßM³ÅÑqö¥ŽÞë²U5!úât¡,›dvvŽ ݲIýë\7!$ÎLÍYWˆmËöp×pØ7;ÎwÆ„t†OŠkLŽ"\'Õ•’Iu›9‹a._ÏpIöðÒØþbuçÈbúîábjå5Y€G1ƒ ìÝÓ¸0fTmÙ,µ Š¡OÙQ`Èw „Ri1–Yß'‚Vª®´cÅ'ãôÁʤ­3„µ 'pÃÓ]ԮʖUç¿Ä¢ggQzKoØ¿9b©_¥’ím#nßþÂs·ñB8Ù°‹}“ŠS>z GíòÀô¢?žM{fŸÞ±¢šEóˆªvY>L.¿¹‰}4»6bw8)ÎgÖpú—sŠ"!•”i%F‘ä@cê83)—\Ó1ö™ Á¡ò±${æ¯}ÍoùBzE¶ e&‡‡CkÉ͘¸ÊÞ¿ =1$c¸.Þ@“@Ñ0 n`-•¹ÍÃcìï[ì]C¢¥*ìqW`MàãlôÒìÿIöàm¿¬JìÔpÄ¿ãÙâð¥%jËŠGR4ê|7'ÆâqØÝµFÂÔV¨¦Vp)̉q.Áo¢œ}¼ÐTâBˆ|’såƒ!ž} têr…îcvqb2¶É&Ë#59ôŽý3ü£À’YuKn=“vë±Ø}' É䔀ü“î ³ìaç žøó¬niS Õ”Í]2=¯Á÷™–Nð+I=‰Ôþr¢ÃQ '¯ÑÖƒH¤’ëR<•]I`ƒ˜gO{þÊÞ>)²éSöËSßî/Ú–4{ØgàlMÊ~Ó»è_ì(Á\I3òì~ï-"µ‚’þÜfüÍcM@Ž ¨Àëª V7Cø9ɳßÎsUCÓPèO§ìtÏ``$÷С´:7ÿ\0b9Õª¦R…äwÙz'ƒ[Y.ëö·œIKôÑ1΃n»‡:ƒ¹Ìf|qùòqCõ¥:”°[åÊÛbÒp ¯vâü{>öû Ÿ!µ^Ë6‚Mö«l ðûOdWEÉ+4(Š©œ"AÉ@­­Ä³‡Nñ=›êÄ šC7á’ðO‚â‚<>ÝÝw¥ê˺s]õ .Ÿ\vÝa¶Ÿô´°ãCoGNÔÁÖÎz»ú½uÜRD‘ÎÕêE-Ü\DBHD;Û¬mÙ†)—¨kÑß`!ˆ©Llϱ:W”Šš\²ž®eËvÑrQθ(bL\¤5i-[0ðöx ¿ïò˜ Õh¤¯„O¹(Øv6ò]_ŽŽ–;=ÑiíZô‘j[‘Èö{†Ø‡‘3µ_ìêðWdäãÍMèûO‡'j?ýÈ„̓KäAÜ-Žm›dGµ/G~ÇMµqÖÍ´ &Mü°öýIŸÏ—/ûÁÔY?Ü»=þ×Ó[ºý™ø³Ð ÿœ 8ú¶ÊžïÈ&ß8šù<”ƒy§BQÊŠü&‡;:æsXn|Ü—eO&Ïaz+·-K£ºÛ8ra#2L›*-}õNLZM¥ßÅ= nïßNÁ;îõøž û@]—XGnûàÒ;ÙÔÑÊ7–œ€›)²­‡w…‡^îyèg_x;ì Ù¿{F.å¶Û1¯³l>/­@Oh½0$h ž»Ï¾3Ûu;'I8ÃÀ$½àIî #ÔÁVmÍ÷Õè\Æ÷…²Q¡¤ •C€1{2?êÏf¸Ì~>¿ZûÏü5ß§ËpúȦºå¶^ðãï‘+s„lj\}%®Kµèú”`Ø…úËfV¹îqZe0aªÅnú=èõd¶ ’Ù¦ØËòžMÊò6…´ÒäìZü•5û±ËøÀGE£7ÁÐdSµšÐÓPi÷¤ôž¸oIà vD~U8ôåi´*4;nt·‘&ICl£ÚäQŒ%ãÜfSH{-òfôÕ© ¯¢v‚’¸{"—øTR¤ÃHšÄuÝè#>@‹0qHÚ¸ ­ðëÞðøÅ…¥~rñjT‹jAÖmàî|oa~Ï‘pÒu­•ç¾Ì€Â- Hu.=o¥Ù;Y„µ:ÉÕ,ꢸ‘¸Š5Ã9\Á6òÖ +ÏìÁ&mÂ/ ÷ÉzɰÉ4„PÇô²åH$ˆãeYо |-à ˧ѕ%É&øøÜCŒ¢iTÈ wÁÚÕ åhù¦ûƼQ­—~Ç—Ê ‹VäjÙ0)H°á¦8É×w p‡Â,)Ã{x‡*s¸‚pïtó䇣)¤°'Ü‰àØ–jš†Ù^aÀVl;´å«^hmE¶÷úBk'²å½«/Úµ‰¬½À„×ûpzåæ{ˆŒcŽìö ÈsüI§„éì-쨊]†ò‘ ¶¶K—IF(?·Õ8…2Xºª0êX°à>·±0mø$›ˆWÐ*P1ÜÀ<²ªíÒ9éñ¯‹Ë’÷Ü‹Rº²ôÚ(a ¾ ¥å«¯–ÎËPº¶ÏÈ¥ƒ´þ'F‘‹Œ 㛺s¤ìÖåèhUUZý0h-3aþôa4:9ºþÿÊÄ3‡•ᛊmÓz¥ÙØD«5Û¦õJ3²‰VkJ¶MëÚ«¬“ÞV×Ú%µƒóÕ §TÆü,Ð>eäS5ÜŸ·çö‹¦‘[ý—ÅçŒ!‡´Ò¸YðVk, Ù"ÞÓ°öŸ)@Í£Dýåd]þÊq˳“lªQxœ;V¸©`ÃDÉͪR å(áelªhxœ;Vø®`CœòæmÊ¢+Dxáªxœ;Vx+ÃDÉͪR–œ›·) ˆIÃÀî«xœ>ÁÿÆqŒp°´“R“kETOPT’ '³±ž ³¼ˆã(»YÀ1Í lç$”txœ]‘ÏkÓ`ÇIš4m§¬ÃUºù¬£DEæQD³™Ía­í*¤ùõ–“¼!yÑ›G¯{vóèÁë žÄƒÞ{ðìA¼*þ6mÝÄë÷}>ßçù~ßoÜûîPäóšúí±>~š=‹Fæ"Š|SÐ “"WYäÖQ¹QÁ]~/«/H@Ó)q}Om5p®\ÆCþ ¾Î|O~ C«ÙkX’nãP2ñ£XÌÇGÖÕìÕ|Wi7[ÛõÎæ\Ë}Q,êÉ zL@‹'“2‹NÕžEýÀc«2\ºRX‰<‹ôáÒU{÷ÍV½“:%óù;9Ñptïé8ÁáBRŸ{—1Ÿ‡Œ¸#«tتï‚c&˜ÔõufÎÈßÕ‡š2ô#Ïd6õ.ƒîY`Ö€² žÙ!Yý}M©Vã 'KÛ‚æw¿²”­©µæcÜ™)K#Å¥1IOJåZ£‹/ï-`ñT•vDↄý}l«”IÞ–Îàç¥YÉ;þ‘\»>mmùÖü*ŸNN,xÞŠð×õs¸/ɉ¿²0/ÅDŽԩ嫛çÅäÍÝM‡ÊbRT~[ïô&¹ÁîÃ("Äwt“¸ÄcGM@8 ‘cA ‰õo8ù©†ÂÖEÁ“í‚dxœ-Òÿº”¢“°é³C “˜ I³,?“êY³j›“[/T“/V³¯/‹ƒ=`nóf_–æÍŒRœ’ÅùÉÙ©%ê 9™IE‰E• º9¡ÉDÙ‚ý½]C&ORÚ,-xÖîôJçIxœkèeüÐ͸!Kqò-þÍÝÅ6XðusÌïlxœ?Àÿ€„Œ°Õ etopt_long“ü>GETOPT“¾7“@³Ô– “Ð*³À!´³Í':³P80EÝâ Mxœkéa¼ÙÅ8!dr/ÇäqÖ{§1òØ$eæ¥è'e–T¤NÔVdwòôs‰wòœœÇ§¹9„©g²!ÿýÍ›þsŠä¥–d±~fžY|nbrL‹€Ÿkˆ'Ç{ú™Åû::{õjlÞ(µ’Ÿa°*ØLÉ´Y7¯×º"À¯˜—¢æ¡©§ ¥Ï¥áèìÿðtwüWtk"Ôͤ8DŸ›²å‰{¾À{4+û8>éÏì’7wSè¯ß@?]H¢1ÀÙß‚5_‚e±ñÉ>.˦¶lŽÃæ§í?&wºì/¦%Ÿž  o"‡~¨—e ^œ pL6ɦѭ¾i; t¡çΠ£ŸÙßÍ-ûºÊÒÇž.™ÁL#xÆìëóË>tsñ.*,ݰÿ\úÝçìŸW®ùЧ~ôÚêÌ00ä=U.Ê¢ š P3aT[Ý@gÖFÐ+k°·ª’ (!´v ®÷¢'ë%+$õ(—Ïñ±8ózŽß†dUTªÄ ®Q÷ÑÀ] † *ÉÅ ~]tzËól<çx†ðºeºbÙrÃÔeu/ ÞÁÕ8Ù;²DM5L Z%A$ñíw1T0qv¡jBž§(ž¯ªUJ<ƒWA¨­ŒÊÆrlÜ] x#ìº*ÒEC–"øEƒÆjz‰¥3ù,»µÍ¹©A‡ÎE%j•š.ï•L]“-ƒYpkëD6“ãâ1lÜ¾í ŠVE©äƒ9@S6CUtÍÔŽÔ¿ƒÆŪ¢\*(Ú¾ èTŽ1g˨ð"* Ißl‚Ž#`q~uquye~uiÇ ³ˆ\žÃ7Q6Îd[öCSÓ}<šéÞB¡âÆŸÌéh’b¹[äaØÅI9R©À€àd-ÔѵšK|,ì,u’Iæ.Üle=Ào¾ÅdÓT%¢„ûʰŒ/aŠª„#`.(%LÆ­ÒÊä N$²SáC¨ku¢cçpA]ÇÃ.¯U ñÿ (›%¨ƒº.ù_áà<Û´ÕC,“÷Jã¿IîJŠXÛ"6ÄJ¢$¢n„O1B`§³õÈíCÕi¤§±ó‚ãàø!膟¼" å‰ xœ%Úÿv´r°Š³ÏÍ*“’/“N3ò“}4U³5)“€9è“§:hA 3à4xœÛR´¨pC%Ëd{6žÍ⬲&:kíOxœÛR´:C%Ëd{6žÍâ¬æš“Äù6¯Õ«äœ|Æ"£¹ ˆå)xœ[ÿ;wƒãdUYåÍæŒ{E6‡‰™°m¾&óAœ1qóQ¦É¼æó³ Êl1xœû».wƒ0ãæÆÙ¦'˜,áGxœû{3gƒ0ãæÆŸ<›×ñùjLªoèŠ"xœûP~»|ÂÑÍŠŒûÙ'`ãg**˜|YÙ=(`r!‡Øæ·9Y‹RÓS+&ó 8°¹º»FLœ¼[èÄäÂ[7¿Éff˵Aä7Jp3nî”ìfœœ(=sr“°ÐäÕ2Â,Ž!an“ U&ÿ‘bÊÌŸÌ(£Âè?ÙPBe³·ÌRy1/…í‹2xœûP~¿xÖɬv“ØùØÒŠSS³ó'/”‘fs vuõöŸ( 1Ù@WtóÖ ¦ÉS8|@Ê82óRKâóJò'/‘áðôs ‰÷ ñŸ|PF™,SP’Ÿ2ƒ,âï7æ'‡ûä,ÜÉÓ°—$–¤Oþ/hÇââ6¹PQtò–ÍÏ…+¹Y J2sSÆÈ1„xNþ(¥:9Nþ²JRbqjIeAªºBf±BnjnRj‘B~šBBqIQir‰ÈÈ²É ò¼anÁñnñNŽÁ®!‘“ ‰nþ °–=djz.Ø‹!ž¾®î¾“ò)mž§$ â"^qá‚xœ»]¾ªlÃJ¡Í<Â/X6;IÌTL®el$xœ»_<«x—Èf‘ ª%úùl;xœ»_ÜP¼á¦Àf Áå*SªáRxœ»_|©hÃMÍ‚Vª›˜Ù3OzVäpxœ»_|°hC1ëd.¾ÍgXµ˜˜sò“&7òK³¸ûø;M~ȫĜž“?9PH"  ¦²ù+{=K:H Dx#§Ääb´Í‚‡X&/Ôqà ut‰ ð ™²™CLc²ƒ”àæår³¹7wk±3mþ®S͹y™=3U+sî€%xœ»Tt­`C1ëd.¾ÍgX™%&Üì!7›{³Ž–?¾¾ ºl€2xœ;Xô¨pÃ.Í’‚*O.á€Ixœ;X4µpÃ.Í’‚›§i®æGAl5xœ{Tx±`ÃjöÍ6Ë +óÄl4xœ›Z¸¡`Ã.Íò‚eê&ê!çxœÛPИɬ¯¥°‘'ˆ'!=µ$¿ $>'?/}òEV9fÿ€ÉÿxÔ7¯g³gÜlűœy²!ÏÔIò|l9ùɉ9©“2+°ùø;;ú¸nÞÀ3ƒ‘=Á×ÅÔ-3gòAqvÓ(QÈÈ8™WÀ¨µ ±(1¤kò[EÍÉöÂ' ÈñMîÙÂZ”šžZ’a ruw˜œ ¡Âäëbhf5o²€ ÈÀɉb*›mÄv1q${8B¤eÙALˆ¬2kN|f^æä²¬>ñž~ž“¹”&;Iú²'—$–¤On”’$(´[€5±¤ "Àâæ6y¢œÊ扒¦l›%"7Qdaœ¬ ür¹Ê—Í{U—2OÐ’Û|FS„‹ f.©i™y©“yD¬ÙTsrR4'ЍN®5š¼FTcr•Pèä+BÞ“¹ ˜RR7{ažü@Qt²¼‰?ÙÁÄD•™Øƒd·˜°2MÞef [œÊ¥¬™¦6;EÃÃ1Ì5Þ)Ê5È_“Ky2³¹»BjHÑdsõÉÉFB“SÍÅ'ך›°‚uNÞh.äIO~j.WÉd¡Î¯š—’™Æ¥ ¡¸Ü·_å ‚RxœkÌlϘà`£¯¥ â™b¥œŸ—–™®—¡—™§S¦`¨g®`d``¬o`®ohª``jelle`¢^”˜W¢àZQ  ¢ ¥¿ù´V6ãäÉÌBƒm¸õJK2sÔr2“Š‹*4ts@šz@…\Ê¥y)©i Ža®ñ>žN¡!ž>“'2+mžÀ-+²™QÁžqsâJöÍs4 ™•3Ó&OT“بcÀ¬Ê0êè€0xœkÏ8•>Áaò&.ñÍ÷kn¬ËdܼGÛ›" ví€UxœkÏèN›!j¦`d``¬o`¦od¬`hhelle`11÷ÂäM\â›ÿ22±mâØª /y Àl_xœ;•þ+mC?÷æûܯÕ.‹åPxœëNÛ:!BÔTÁÈÀÀXßÀLßÐ@ÁÀÔÊÔÒÊÐlcn¹âf¥ëÍy Âê€xœëNû2!BÔDÁÈÀÀXßÀLßÀRÁÐÜÊÐÒÊÄrcî<¶Íaì}R›M”®  Æí€7xœëN»›/%ʾÙDéº@þ0ï€xœûÒŸœ4!BÒPŒ ŒõÈØPÁÀÔÊÀÈÊÈ`c®÷æÏÜsTò  j1xœ;œ´?iB䯨g´Tl¥#xœë)8¿AKrs™ä49$ûç¥:xœë)ø’·á,+GZIq|~AjÞdAvi·àxÿW¿ÉâJ“ϲNÞ¼m2ãæ~>6ö_S·ÌœÉedXALÏÉõâ*›_ð½dãJòu143€Êr@y j›UÄv1q${8B¤eYALœêæ É)r{–,éâ~xœû’÷)oƒ¿Àä Ì|“eé›B'/`㛬&òDonÝ+²¹[kËä4VÙÉNZº“ÕõÕ'_Ö›¼M r²Ëä`øÉ«„&¿Ö,&ª?ÙMÔ`²¸Ð¢Í~új’Ð#ùlkxœû”·4oÃYÖÍRl†*Ræ€xœ&Ùÿòn¿m/* ± Á³å!“·,.“ø²(›“å,>³€-ò *9hl5xœÛŸû>gÃDî͹ïi-”{¸”xœµYkSãVý,~EOM*cSÆØæ2ÌL­lË #y%y€Ê¦Ù’±jdÉ‘d’Êþö=}õðc˜­„ ÝÛ}úy»ûŠÃ}éÍKÛf÷=¹£ú´vOÍú1µÍãÃÆÑa­÷³÷Í3Š£($åÛœ~ö÷ö÷öhŸ:Ñü1öï¦)UÆUjþüs£Æ¿ÄïcPHÖÔ#ûóÂ4¡hB)^‡¡ïʼnŸ>òJÇ üI‡¾S'’ƒ€^B±—xñ½çÖ¢ Ïõ“4öG‹Ô‡*NèÒ"ñÈ)‰ñØ+#?tâGÞ,©ÑƒŸN)ŠÅßh‘2Ê,rý‰?v£FNìÑÜ‹g~šz.ÍãèÞwñNTh:‰‚ zðÃ;G¡ë3SÂ(Ì7óÒ÷üܬo¨&ìÌuG.(I sRº2ª3Šîy+wƒà'ŒRìÕ@á'a–b…yë:Aè8pü™³¨õT\ñH¡ìtPîŸÑ…2+s$7/f¾Síñˆ°ÓÌI½Øw‚déx0^5CwT'Íóï‡ÎÌÛ’Na´Üað‘HÐ;Êâ$×jæ<ÒÈãüy¡‹=SªÌ¢Ô£ÌGàv¡#²&ØÈü‘D“ôcåÉEÉÜsjÕ看9©Â,½’$·ƒy¬KÕ$SïYײ¡ž†þEí*]jßbS!C¹P4Ë$YëRG×,Cm-Ý0é·ßd ïÞñCÉÚ-)7C1MÒ R¯}86dÍR³FªÖ黪vQ# ¦[ÔW¯T d–^cy ô”“ô])Fç¯r[í«Ö­P¨§Z‹ëAžLÙ°Ôΰ/4ÝhlWW5;}Y½Rº8ÖªÁ¤|Yd^Êýþš@Z3³­@E¹ÝXBÌ쪆ұ؞åS^ƒvý™¥£òƒr£ÀÙ¸­å°¦òï!ˆ°Éh]ùJ¾€q•Ü‚t††rÅ Ãæ°mZª5´ºÐõ®ÉP€7ã‹ÚQÌsêë¦ðØÐTjbÉBóÖŸ„®7![kwô«lÙݶ}iï½Å¢zÒæ:Âq°@ÕýŽÆÑléãÜKêÓOÛöÆÀ{Û6!ßÍåŠe#|º!4%éÛRºˆCºw‚„°Î«¤0ùaJÔX_ÎÒU¢&wRöÏÍÍpÓ…z¨ê 9Aì9î#MT[šß…‘Ö÷ÝŸ°?ȶ“;¿Í $wdgO{oQÓüInvtÒç^hrGé¤Þ¨ÿtxTo ø0¢+ù.¼ì+ZP(Q6Å¯ÙØ£Jëä´*ê0Š{á•:µ3RŸ1RTSg ¨"^(ñ±‹Æ,›F]ÄÚÓ›Lg·²”Zź uí®Y-­[JÍFë¸0®°±ð,ÈìÌÖ†WmÅß&ùêÓGzË-aîÜy¢3:4ñ¡/´âa§.ü0=jÁ™ÏŸ"뽞©XÒéÉÉщ´Š:zL T°‰Ú<ªºß6QQÊv«{cø2‡Nco»Â Ê4FÀé³÷xè:©Cè¡èa +àîbí í ÑYS'¼«¯"e¤ôçžtù®´Ïüç’0Q@TJü?<È"þ»ºxáú6Hþ¢nÛÊ”0Ð9v“À¹Û86J«‰” × j4_¤5J¼ßWélÛ°‡×D©%(³—u¨žj˜–$ ‚ ÃV劭t,v!ƒ*ð·¦W7¨Ú ºŒ"ì&ëË,é´”Ti[†‚¸VSn@ûÓv­4]G½¿6Ðm¤³Ræ ZúIúùU²…C»-kæ­Ö‘š™ï“Çp¼JZ¦ƒ.fô'¢i点ºÊæ¥xô$b};P΋"óæÍ1ެͅ"üb^ÎË«›Ï‡¸pD¨H•£*Lý(7s'Nó¡ŽÄv«Zd©!W#r8K¹¸LŸ§´rpd¦Œù”PŒëÙ4ŸFóbflžò°wÔ:¡~ÁÖ`“¹“ß"¢ø+a€§̉nô²ô #­‹ †%þ](îa<’÷mˆ¥™“À×Éq´pEÆ9‘¨¨eªæŒjb«‘ýpºv# ¢ñW?¯]+Ôæå•rêãê! ]2Eê¹ÐÅ›LÖÆÎÖ%¤±&ÎX\t2/H¼§ªñ쟩÷Õ2êãïR-ã9Û©ZÑåI^Šj2Žý¹¸t•]`[Á·mwÄU?;ËÄ»yirD”A‚] ÕeD‰W•*«0ûÕóbE›8Ÿ¸:®‘Ô([„<~Y„|zÄiI—Üw^ú*î ¨‚Ïä|¯Ðµ÷Ý쨯ÏñorˆŠ¶/Æà”a=ª¸YÞãÒ¼‡‰»ˆ\ Ï—Ó‘(䘿Õr¾qrÔ[¸›}^¬æ!ÊŽy²Ð¾&<ìï<:ßãëìâðêƒÙSo”.ß°ŠÃ‰$ó܃|¶/n!sìgåVœæ3à°ˆ{`ìý¾ð¹µ­O©š<0/u‹ÉÅì:ódes†æ#ðßR^Hw8¾8||·‚2’Ü©¹W*Û|T-“⌹G÷¢˜g¾9sþ I•{¾2oq²4Æt Iû£ ÊÌìuV\YÅ×ÏýCBrˆY¼8»Ù§Ûî¶ÅG¦žÜQp“P¿È–’Ïè}?MÀcF¹?~¢‘W¼çópòàÌQ0Çq”ð¬&]ÙHoóZHbÇÉgxÄg]¦lÒ Ja¤ Çåˆó”¼£n3rñq•gØ‚FÌøÙ ¼·šG¥*§JJÙÏ–gìt6§$î®ÙV¥Â¾D%¬dG¯ú£Sý¥ñ+ˆžî0wõ—£_ÏŸçlîâlíâlíâlîâ<ÚÅÙÈ8ÿ*}4xÆG‚]8è—ã_Ï—ëbe»Cœ~I·Ý|'7`I·ÝX'wÑ’n»iN„í.)â—ì¢k–t­t­’®¹“+ý²áxNêŠS£Qéû­Q­ŒªÏf!â¶+ ë3i(XŸÏBÁúL ÖçÓP°>“ˆ‚µÌÃW•šæé3¥¦yúr©Ù y©Ô€üÿ*5¹˜-¥†?çý-¥fç±ßYj¶ûíú®ûÖ?yìwÓÝtÍÝÇ*àßq¬^Hð]ÇjéñüÖmÛmåBÕì®Òé›{Ý6íçß´²I/©ñRãÿ;c˜¨åßÌŠ=Ç©w—ÿÑÚíÛò«8¿ÐÙæWp•l~æ,¨ü·Riû}úð*<ÎD^Þ¬Õ*P³Z]eì©;9­âE•/dÓT «Ra¦Kàœ?R£º›¥}Û¥öKfg[åE#߇áȯÄ(¦áM O¯D(G¦%„øæ-nÎs'ôÇŽ%–s×Ú¶¢uó(gK„yìMö'.ÿö&¾‘ì—5xœ;áôÔa‚¨Œ±‚‘¡¾1)˜Y[™˜*ä'%&g¤n4ØÌ¾ù8G£ˆ )ì—lxœ;áÔî0ATÆHÁÈÀÐ@ßÀPßÈDÁÀÂÊÔÈÊÀP!?)19#u£A(ûæãr kà˜$xœ;áôÈ~‚¨´¡‚‘…¾¡)XZ™˜(då§¥o4eß|œã±ØæsòUŒSæð²ÔxœµX[oÛÈ~¦Å^ ’¡Ø’lí襴DÛDhR%);FQhir$qCqÔ!eG[ô¿÷;3¤n´7èC qÎýòC¿¸¼¼†_Ø´,NçÖ;í±ón÷â¬{uÖ½`½‹/Ÿ¿|î±ß³hÁ¬Kö‹qrvttvrÄNØ@,×2ÍKÖŠÛ¬wuyÕÁÿW¸3Â9g>Ÿñ¼,˜˜²_ÇyúÂe‘–kz2ˆ²t*džF§Œ™YÆ”¤‚I^pù“SH!%>OÒ¢”éóªLE΢ð$Š¿çâ5ãÉŒ“Ü/ºˆSe%ÂV¿8[%|+“%ü…gb ž×Í 'Û"ï°k.¿óŒ¯UST:«²PÎ~:e.OUHZ-ø½“‹íµª¹CYµ¯pñ™S44ÁxžàŽS€àÑB”¼ö¬€#â6ÅÅ›q«:‰KS5¥“ÔA¹î¥¢¨’F<á°À» Mßb8|ïÁZCvý„K‹ùÖ­å†3Ý!xnèÛ×ãÐóöÛof†èŠD™î³¾|+˜ç3û~äØÁ¾é†¶t˜íœñÐvoåqÈ\/dŽ}o‡ ½é#AMNæÝ°{ËÜá«ym;vø¤ º±C—ÔÝ@ŸÉF¦Úƒ±cúl4öG^ ¤‘_C;8¦}o a¶ ÅÌz€[,¸3gÏOHÚsóÚ‚‰æµ£d)=pshûÖ $¶§¢ëœ FÖÀ¦ƒõÍ‚+¦ÿÔ©ÄÖßÇ Â%Iš÷æ-œký$,HÉ`ì[÷d0Œ¯ƒÐÇ¡Ån=o(ˆ,ÿÁXAŸ9^ "6¬”„¦R)®q¾¶ œí†–ïG¡í¹mtç="20Ö÷PÙs•Ï’ç?‘\ЇÊA‡=ÞYxîSLUÔLŠE€è B’¶C ­ˆg¸ã,s­[ÇFÔÝz$èѬ6RfD`kÍæ“òq¬Ü§dÁ6}Ü)ÞŽJ)³o˜9|°ÉøŠ…ØUÑx7$)îªèW}`ü­uÜV³Õ¸<½`­Úìò¬÷éìêh0NÓižð©1¹ ƒÉÝäè_Òœo¾•k  Çx)%AÑ¿Œê4p ;Áç$^ɾqvÂð)éaNSòß&ž§Y¢È³4ÿŽæßà=]€ÿMNÅI­k!dÉÔWE @œ”´KLpê†")# 7 þ‚áÂŽe<¤¶c•󊔎4±4jc¥äi®ÅÊiRÑNE)…ا ÏûZwúÓ=kïQåiÉE% Y¨=¥šÓNOK‡L,–‘l+&}ÆY屚qDJPÙ#ÀuØ;íþÑ&á”ïwã9Ž÷htt»=í­S¤tAÓƒ™ëe® Í»üŽwkLGqŸ+îL̰údì5ʾR»Þà`£¨?)êDäJTA”Ïh Kc¨¤¼¡Çõ‚Ð ãå㌓ÍË©8äÝ=µq½®Nú|]¼k]`YCOé8×ÔX§V2‡ªRQ|~Ltì²}ZÄô©»ë‘EQUaÙÇ;À"€¸.÷T½ÎQ+4ûȹˆêdïr{ èîÍà+ñO§Šÿ³_íªX|–Škßu¿ï†Ñ¼·<×yg¯«5·0]_°å´u/Ö“>ÏÖø„ÞŒç ÆU޼aÅ“ÑsÆ—½²ÛÚ¢B·‰~€Ž¯žvØ,ÏHÉ4‹f*TÿaÐÖoàP]ÄïáÑ:θF$:ý9Q7åe_。¯ºöÖïòPý+Žœÿ€_i¦Þ öù2Aë!õüjñ̬úSA…‡ ì?1%l¥í{Èœ¶J borE @µåÚbZǬ_ˆNۻЧplCRg yËERtÞ¢ã&–5-àà+„Pd«I1'\kbd)qnÕÏÛ jª¾·¨é¹¢&D…ûéÆÞtcá[S¡TÎé”*j2qìëAï|xc`M&d|ëýZñæ:ÙõÀ®ôp8æYÁ uÿsZ¼ËL÷Ð÷¼+¶ “Þ1>ö×úÂ`]”á&.mÿýÊ›%2×úØ£EÛm7z|^ äKɅĺ½_¤{´kÜÞÒ¨7Ó8˜º—6´ṉìB±æ"ß¼;èw½CzׇøQ¢â}³Ãû\áiI¯ï€ïpÂ_µ·¢(â.ÖDÿµ.q!ûU¥ÓKo¿ñeϳU†NR]@e»6"qUÕ!^^Å`Åy BÝÀ0ªQDc«uÞfÓ2“&¡÷Õèõªðnˆ%ÿ׊e“>@Åôt"шÏ"ÄÔí¸Oçz®eô.Þ ­ß»°CÍšÁx„ÁÍÏ¿#Φ٥KUÍ#ëCë¿W¼@7Kë·ÞÍì½ Ie§§TóTfjz÷To3ľ³Í bÑ¢ ƒÄ«o3™Á£¡˜µ« ýð/ú©ÓÊË~Õvj.þ/Ž›·¦íÖmKý¡!7šÑÏ9‡UYy¸ëÞŸ'Ýõlï3ÛvEj[Ô-‡Aüjêf¥_\"™lÀ~ž!d;ÔÑ@­vCòf–ª5MM":-û{Mp°îè±Uãþ?zÿ¬´P÷©*ê-QÅ¢ ÆöMƒ^(ZxʰÖ±ôâC Œ3QðêÏñ©ùÔJÒÒã²Zž5sGoÚz1oW w•Ðí¢½yÐÖB7ö¨dnÔmÌ ´©-¬yk[«ÁAÓÿ/ÕK9ü_ÕŒz÷ï‘xœ;¤uKs‚˜”¹‚‘¡‘¾±¾¡‚¡™•¡…•©¡BFb^ñFƒr¦ÍS˜ÿ3+ú99ûû8†Ä»…Ç{Äs)§¤¦eæ¥rÆÃ$6/b×fä,Í+ÎLÏKMQ˜|–CMÎËÌ+QH+)ŽÏË,IÍ-¶ÞÌÌùš…®ô=¯.‚#ËײyŸ3Bä¡àçšÐ'ç¤ðd-å̼äœÒ”T›¼¤äüÜ‚Äýd ÛŠõ2츸âã\Ý=ýâ]\}‚'G‹\Љwõs𹸔SóR2ÓôµãÑ<¨ ¥Ï![^¤ïG’oxœ•RÍnÓ@–¨Tió#R ;¤vâ¶¢)Ô¤æP·JZÑž"Ç^ǫڻ–wÄ\ò HœyÄpäÜbÖŽCŠdíîü}óÍçùÑzxNíÙs©êOÎN W,–VÔ^@×rÀétŽìn×vŽñyrøêÄéô£¥—}‚á*…=Ò² »µß€ DZdl)0|º½žÓÖçAy~¾»p¯#&Á¼š± ÌDR„ Q)F¹ÊØ,WQú4»§1-`Vèç”gLRÊ}š}ûJž}ÿ²ó°³Þ&ÇÖu‰ ¶Ó±{‡XøT’6°°@×ü‹¶õ¿¼î>‘rù;˜*°kÈ8SLp©CM¢¦W—“Ñ­3§g7WÓ‹ÓÛF³Ì¤m4 ù;… ìj½Zéa”ž¬”ã] KcIk¨!œ£#BʪºÈSQO îÍbº©ä ·ÝGîû‘;º¾#F/¡kn£î€¬‰18?k>°ÕsäViªH©ž.ç’Í9êéG^¹½.%‘K¦üD‚'%Í*Q  ¼™…›Pú`<<öo>ltãz¼®|[‡»1k†¥©gÆúG]ÒǦÞ\ŒûqŽ ò†Ï|‘¤ž²«*+z«Iëø(²{/9`–¯çÀ8®OB¡N´ Z4üĽW€DL Kª¥Žc\Á_( ´ô¸zL T¤ÓætU®©U®O3/'«·“U¦±Æ} Lb Á:f)m(2q²Š&Pép ´0L$­´ M± èø½‡7“apyu·íR'mmðMRà;Ðf£¹[éö jücé—gxœ;¤u\k‚¸œž¡ž¡‚‘±>*˜ZY™˜(¤%æ•l4ÞÅ rî†xœ»¥¹Ds‚˜´™‚‘…¾¡¾™‚¡‘•±™•‘BV~jQúFƒáÉ÷…ÏOÞ%¢*¶å†Nxœ»¥¹Ts‚˜´©‚‘¹>*[š[›(då§¥o4ØÊË¿ù)ïyÖÉ÷…ÏOÞ%¢˜u)â‡xœ»¥ùYc‚˜”‰‚‘‰¾…¾¡™‚¡¹•‘‰•©¹BVNbîFƒÃìÌñ™y“ xE„2«RóÓ4 K24´ô¹8Kã7kqübaŒŸ¬Ã« $y[ã7?åµcr´¿Iu¡O@RQxòäûÂç'ïQlÉ#Dæ{xœû¬qSc‚˜´±‚‘±¾¡‘¾¡¥‚‘‘•‘±•BzQb^ÉFƒ26~·àxx.å”Դ̼TÎÍÇÙfòrA´ô¹¼ýÀêMxœ»©qMc‚˜¨‘‚‘±¾¡‘¾¡¥‚‘‘•¡™•¡ÉFím쓳« dæ•(¤•Ççe–¤æ[sn–â°çìÂé‡6xœ»¢ôMq‚„¢¡‚‘‰¾…¾‘±‚±•±‘•¡±BVNb®‚kE‚ çä¿lšSõø&¯å³Ù¬Å¯ÅÊMêæFxœû¦Ø¦4A‰ÛÐLÁÐÜÊÈÄÊÔ|£î4~­4Ç0×xÇà`× x.å̼äœÒ”T›ÄââÔ¢½ ;.åÔ¼”Ì´Íwù%ás ä"ƒUxœ;®õKÈ@_‹SÅ/µÄ)ØÅJ!µ¨H/C§LÁPÏDÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐX!+'1w£i2{½Ÿ“³¿o€cH¼kPP¼G<—rJjZf^*g<º—rfš‚‡c˜+D€KY!3/9§4%UÁl™—rj^JfD¡"L%WY~f 'P…B||€†Ff^‰ŽBr~^q‰BrFb‘B½–Ž‚žžž¦¦5\av•h Ëp TX–Ÿ“Y\‚¢»±õhÊ1ýîä1¥<±(bngÔTRT†0)‹€Ãqš‡ÍÍ`ZA_KA=ö´ô¹&b¤^j…Nxœ;®uXk‚øFiQÝ“è xœû%4Mh‚˜¨±‚‘‰¾…¾¡™‚¡¹•‘‰•©ùFíi좊Ža®ñ®AA\eù™) @ZT4™‘C‚ÏY¤$Ä â,)iäáAâW€üzÊ‹ò4’óóŠK’3‹´tôôô4QTàTÁY’ŸÌÏ)΋,P™È© Z3=›ç€ xœ›&ô_p‚˜´‘‚‘±¾¥¾¡©‚…•‘¥•©¡BzQb^ÉFƒdv×  xx.å”Դ̼TÎx(ŸK93-(¦°ù»##DTAKŸ Ð áYxœû/øB`‚˜”¡‚‘±¾¥¾±‚¡±•±©•©BVNbîFÃÛì“k88&'s˜O~È!XYD³äxœ½ZësÚHÿŒÿŠIe+ gì<®sÙ;²­*ŒXI8ñÕUy‰bíbäHÂY×Vþ÷ëIhžâ‘ÜùÓ3=Ý¿~L÷ˆn»ñÓ˜f}xF¾¬éšßuÉéñ[òòää]÷äU÷ä%9}uöæõÙ›¿“ßcš|&öŸä§F»{tÔm‘6ÄOIôù.#ͰENß½;íàç+¤±¿àŽ~¦«,%ñ‚dðuºŠi’FÙŽ fËh'«hvLˆµ\Æ.% MiòHçÇÀ ¹yt¥Y}ZgQ¼"³Õœ¬SJ¢IãuR6ò)ZÍ’'üîÓùew$NØÿx!—ûx-¢p†<:d–Pò@“û(Ëèœ<$ñc4‡‡ìn–1IñrVŸI¯æ.J‘ ®»§Ù>ŸK¢1= ™Âx3×iêd3¹Î>ÅH*+ ZÅYÒ̈R²~Ȧږ©'Ê›†ËYtOĈ¼T 9DJA@Ïù„ûßÈBr- Nó8\߃ñg¥Ñº`è ¹Ÿe4‰fË´ž ój0å^3ߘÍÁs²(Å-«õ¸LÄÁekp4;ºs9P"ÙW0[!C6yXΞ$Mfá«øë’Î?Sä{ÆyrÄDì2P2\®ç´bLæô‘.ãÐâÓ“êæ.•»wHŸ&Ð%}bxFàóq®vœ¤Lí×ÇdL#²\Íî©&ŠVqEfÞ'ó*µe?QÄ̺š"T Ö}œÑR½´I€ýœ,€ E°ˆ)’>Ð# –Fj ÆÒ*ª4-̇k‚KÇ'¾{|°<›ÀóÄs¯¡=$ý Úij/ìqàk<$wxN¸žO~ûÍòaÁÏ?# YYãbœx¶ï×#ÎÕdä`ìYãÀ±ýqƃÑtèŒ/åi@Æn@FΕÀ´Àíà~ÈH]IÜsre{ƒKøjõ‘Ü0Î`ŒÛÃ~™X^à ¦#Ë#“©7q}Æ õ:þ`d9Wö²™3†‰} jÿÒ=“ fß­þˆñbû€šCdzêS= 5nÔ!þÄ8ø`´AË»él}û×)L"rZWÖ(×Ü ˜d0õì+€ð§}?p‚i`“ ×úÈ Øû¶wí l¿GF®Ï›úv6 ,¶=p¸€ Ïý©ï0àœq`{Þt8Œ.Ý€ kÁê!Ù3$×»A¾ˆ³A‡|¸´aÜCLjbázƒ¹q3aWÀ3à”%cûbäê©.2úàøv Læø8ÁÉwþ`Ý0§L}4È–?rÎÛa&%Î9±†× _LGðÂiÜsääO—úe°¿5Ÿ·Š#—}{ü†4ËtÐ"o»/Oºï^Ãt8hŸG‹Õœ.Èí¸?p¯&Vp ¦Ú·—GÏa8ZQ ‘KëÚ¾õoüj~™¶È?Ò§´[ðËÑsÈÑ¢<Ò'y6†¤ô#LbH°ʘ]1kEGŽÜ^ÚÖp#Ûf¤‰Ù Ž”§Új°¿ÿA’ÇdÊÒÚ_F9Ü(Æq.i/ïnQ’f½F·MØ”07ÃÖlþ·Š·ÎØÁ(pþm{ªL<µyGgóV)Á_d<…x5p†øðnDvl¨©Óά½]Ñ?s½ðAVKœÓúÈ¦Ïæs8äX®Ç±(^§ #.¨t)|c3’ëv)0ýí—Òä=ƒ¥Wп‘¯wÑ’’f·)'€a»{Ò2m ‰#¸µÎƒÊ …ÒÄrƒ.ï;„},"º¬¤‘À¯›Í&Ð@,F<.`Ùʵ2©Ežå‚·CÃ4ûŠ ’÷lÃÆç ÝŽ½%?”‡7ó¤9ù&ÀÛ°¾w0Æ}Î[ rNÚ†2ËC»?½¸e‹ÝIs#e9½^+R¹ûêÉ,!k›Ø(Øšç™lw ¶jvã,`´ nõ])Ô8ŸÍV¢ïª§>Š+ìjSZØ; ꡚp¯%WÌÇš:”60éPª)0Ù%ˆI£ c¢•«Õ¸™&ò÷ÃÎ\ŠHƒÍÇYÒ!¹ïTÁ…RA«`¹…¢(NÒÛ@SzÕAÓ¨Öàƒœ 2B܈²¡òlT ï “”üD•Ï—N6dd§g3¶?J\p„wd¥ËûŠ–¾R 4üï¯PÒCJ¿¶FièÉ;)¾Z¥4üCË”t[bÚ_¨3ü ô{+ ß\j¨¤fºåœ*å’u*7)®4ÌtéÜ:L/ÿîtÕi$ g6Œpxì©Ažúup”&Ÿ ùT+<¦5ÉAbj%äáÅ1Õ¨ª¨r­:Íóe%ÏÂ߸ФËTÌDb°†ëö0g3šù4Åž•"¬vúO·÷¥„xôêçèrúæ^ºÀçI\à«R»%æ¨_DÜcµºdÍÙrouäšÁß¹h¨jÅH^+Í ¾@H·b…à+%‚Þï…AÖQ(|¥JP9š8 u‚¯/šÚ¨r ,gô«XëWC Ù—­…‚ÔôãŠå¬X€]?¶ü8 žÄºƒ¸’Y{¢'늌NÙ otÐÔ9?ñv„Û¯îȾìw?‚ó¿û‚$—V¨\ª¡ºÊ¥‚E¬\„ Ìp\cÅùÃ~Ù®”IíHJm9 v¤%ê\êØH)ߣÈtžGyƒb¸B©Œ[kü¡¦EÍÀÀ`…š·Ð`‹CM_ô¦À/»WfœDg2h!ÃUm Œ,{à|0*âq¬’ \jŠñ­®*ŸÙ%­rYå œ¢óÿåµ&©koç5qدÚL"]jhÛn^ª“Öp)¨3®ùVߤöZPïG'v Âྂªßn|koßÕša×5­W.ËdôHîj_qtß ³êÛ÷Ælc-rÞúÖ¹4ÔDRi«¥þ#i+wYdZ¯ÞHùòŒ¤vÁ»Z ·0ão²’¦ú>ÔJÚóà ¼ø26½-Òæþf¿ 9ŒYÈ„M¹ï —3Êü5†lý.2x è³²  ºžÞիŇE„´mM"2)ß…¿ôÞIÞ¡—Ü9§×º§>')Pí–Þ††”cn–ߘîê­«?"·* Ï|u p—A{ÛZ~¹#ë[\c¯:\öN/„Z+#Úø3´½¥r5e»©E4еúÔªÃÚ†¦MÞø™ëi¡ÛF•î¬.ñÈýÚ ¡÷FÍüÜ„fÔòb@šX ­$?XóÞlã&¦0ºÂ·0eF2ÚhäºA^•¢æÈòœÙ39b¸ÿS^eúÀ g,#˜cF«JÙGÚì¨Q€ùA½ür”°ÿ:½gÊ̱uû/4Ôé'ë•Nxœ;œ³;g‚„¨¥‚‘¡©¾¡‘¾¡±‚‘¡•©™•‘ùFÝGÊŒ¥“U~lP5i jå–xœ;œs:{‚„¨¹‚‘¥¾‘¾‘™‚¡™•¡‰•¡ÅFÝÛª›ÔóÔ ?å2xœ;ý5s‚„¨™‚‘…¾¡¡¾™‚•‘©•‰ÑF]EåÍ**ËÒé .ãbxœ3ÌÿËk”i5 2008/10/28 15:15±*$#³$$Ý“&Ÿ“Ý&P“J'š³ë'à "ûã€#xœ;}Îk‚„¼‰‚‘¹¾™¾‘™‚‘‘•¡•‰™BJnrnbFfNÎFciåÍ**w'¯1•„Å{é@xœ;çÕê5ABÚXÁÈÀÀ\ßÀLßÈTÁÈÐÊØÔÊÀT!+?µ(}£¹’Üde‘ÍreŒ›Ä7Û) °¿„ä€xœT«ÿÎJ¶*2 2004/08/10 18:47:55 jlam±7Ç “¸³F #“ü w“á³ F³M!U“í`“?$î“Û$“¢"›“/%?D­è,cxœm’ÏNÛ@ÆU8­+U*‡Þ¦r‰q’V´ˆÖ‰bDœ£J=Y{ŒW8ëÈ»©ÊÉÏ€zî‘@•ú}%¼ „?á¸3ßïûfwöŸõgãm‘÷Ê^è~†”ϨŒ³‹×­Û_7_v· ³»ûÁ‹\%‡k/×ÿ¯Wä[ÃlÞ*[Ùiu ÑÃò sGÁX×H‡ØŒ )e9&-5éceø#$]¥,x,YÁØlžã y%o¡'”ö‰GÚ¿Ú:Ãe‚Ns„)ÏDNE(b:güt%±¾û0pFšÕ¹¡ÖÏBÂAߘžƒ2ª²UïØ» ÿ¨ð –¬Hžã纳Â÷ÐŒ´ÃŽv Rbɉ%SÛŒ ¬¸`’ýħ&GžãúÁAäúǵO§­|üS^”öž¬ßzhZ»‚³:ý„ŒKr÷ëqÁë‰ãŒ–`mÁãS-l~Ñ»þ½±ùöÕýWQ6׎FÓPåƒxœÛ¦u\s‚„¨¡‚‘‰¾…¾™‚¡™•©©•åFÝì›}9^ò¼G 2é‚hxœ›+tYp‚”¨¡‚‘‰¾…¾™‚¡™•©©•åFýMl›UØÏ1NþÉ¡ß6 a¸„xœµW]oâX}&¿¢V=RCÄò1«tò2Æ8‰5ÄflÓé¹ÙÏã‘ {†Ø–ß%Û1G“¡í<‚åI@ŽÐÈ~¶ˆn—í1б&¹ôlyæ¾{d¯âЃ8lîö ^`›“‘áÑxâ]_Ð8®¡í›#Ã~¶†(޶Ãd}EXä?£ÑAœ@:s`ÁEc0,±ƒ0‡¶g™dz{2Á¼uÉ[¦ÍÖ7 ¡Þk·†õ­_'Â&£ gãÁµÿ-8sâYÏì0ˆð'?°ƒI`Ñ£ë}†¼oy_mÓòïiäúÂØÄ·º0b(  ÛxL|[ˆ³Àò¼É8°]§Ã@Oî ˜³´‡B²ëHÌ Éõ^—ù3èÒË“…u9Ö æÂ{fÀh{’° >ƒ½`ɱG6X7-ÞuèÅö­ŽÌöYÀ®,¿¯ãDÂçÂoÕã^òvåHÉ~ cøÕfçka$‚o×Iã>0’?1Ÿjöë{Ðú¹ý©SµîÖ-šv»)úçÅÕ…ô`ôéOz–ÆjFo#wðöôvö ßtªZßÎÊ-ê DP¹ýyÖÒhõóäm–‹è¾ÕºàF¿N¥d—Y&Ä;|“iæ=¶Ó¨ ‚FG:•´lq9ÄW”Ùô@/›ÍŠJË«»?¡aNÕ\§R„R;´9Л%á¼hÌ­d¬%ÉQÄJ®w M¢-œÎϬ{VÕÝèïÜl˜Py>[§Ñ_aßÚl£–ë´QCa£2ÞE¹/;÷gg@îòÊwªtë2'5k®`Ìr¥Ú{gŸ¸ÏöÿÑô}6úoêýãê ixœ;¡ðV®^_KAÅ3ÅJ!='?I/C§LÁPÏXÁÈÀÀDßÀBßÐLÁÐÜÊÈÄÊÔ\!+'1WÁµ¢@AEAKŸ ¨-­(?WÁ/µÄ)ØE»!X¿¡¾1H¿‘¡•‘•‰‘BrFQfqI~1Ø   @#¸´6v`ÚlÊòŸYÉÏÉÙß7À1$ÞÝÇß)Þ#žK9%5-3/•3&³Ù…ã'»º:Y}³7Sàxœ;¡p@a‚øÄ8•‰öÒã^ñ8vé€Hxœ{+wYNO_KAÅ3ÅJ!='?I/C§LÁPÏHÁÈÀÀXßÐHßÐRÁÈÈÊÐÌÊÐD!½(1¯d£® »€»¿S¼G<—rJjZf^*çæöŸìÜPQ-}.>ï}xœ; °CAW_‹SÅ3ÅJ!='?I/C§LÁPÏPÁÈÀÀXßÀRßÀTÁÐÂÊØÌÊÀ\!+'1w¢¡˜*Q 7\à°̲vxœUaoÛ6ýlýŠ›ÓŽáʱk2 Kl×õ¸Eì‚N ¥“ÅF"’Jb ûï½£mÁn“ Ø'‰wÇwï=ž¨n»ñf†îj>:‡"yfè…蟜üÜ=éw{}è ÎOçýSøªÑ¬`üT›F»ÝvmXdÒB*sz&hä&]€Ënç—0NÀãÊH·îÀTÅ!ÜŒÞÁ Z+Vøv$Whc]æ+MEYB% KD…Nd* v¹†ß…Õ nCê«M‰ð‹óϯ¿mT„Ÿn'¿2Tª ”Ú8±”9µõ€+„sR­B*© u¹6r•9h ¡÷þ}ïm¿ó"ó¡AሠׅÄ8g¿Ý‚A‹†ô3<‡¯eŒÊ"8 15ñ$*^³gV§îQïÛÊÅ ¥Ñ2¡— Ò›Bi )·±€_.¢ù_óˆN8úG”¡vÏ'ë,¯GÓÉx¾ˆ®Ç³Éâc£Ñ;{.;_ÜNg“]Ñ`À·„&:;‡O.dFn]"²ÎT±ãôp“…‚FIåýˆ¦™TáÝé—‹aø´.¯†£cÆØ«‹u¥Ü]S§ªb‰†-ZJg;|ûU¹†þßg§ÐÊí’.[cÝBY¹b«ix ,«”†öîŒIUÒ™n‚\ý¯—9\üyQt5žLgÑh<¼žZ& JN•tEŸ[­m%´/êôe :l ü! ×R¹òA*ºv<ÈÁž»ÞÙ—4æp£M¡1] ?´õ}Ê>ðoÈ×m8í¨*˜ZY™š*¤%æ•l4øÎÏŸ Üj3xœ[÷‚o‚øFiAvóü±øxœµWmsã6þ,ÿ Ìloj{´qœ¾ÜvÓ¹9YfbNÉ•äM}W–h‹]YÔê%Y÷æþ{JŽ•Ä×öËåCBÀà2£¡ñ…#ª‰?}û\©ô"1`|1†«ËËw£ñåèê[_½ÿæêýå%üªD±ö9‡/Œá¨× ßö`¶Ê…Ü%ô£Œ¿ûnlÒï¯ôï¯QÞ؉¬*Am¡ÂÏe&DQÊê@;v˜Ê­*2^Xi ¯„B”¢xñ¢+OIJ¬ ¹©+©2³êR€Ì Tu ½³‘YXñö¥ ²J@ú¯ª+BÙ«Xne† a! Å^V•ˆ!/ÔƒŒqQ%a¥#ݪ4U2ÛA¤²X’QI(d·Õ{Z/^„¦ólcŠTŒšuYa:Uˆ±j¸Q$j©#üÉT%#a¢†,!E<‚9¹Õé= Fi(÷¢ Žàêu è°ÃÈ1Ì3®1¸ÿO,ÐdÙ"Å*ª÷XüðX´ÖC¡¼€}X‰B†iy"^Œ€»iè侺GHmGò,Ü‹3픩“X—Ab#aÜ –*Ê6ª}x€ þÁ<ˆ,F™ VÁPöªÐp„Ö1ƈ][4|”j[=b´XmsA™‹ˆZ M%õ\AM•5íU–md̸¾{Ü[\/<÷Ÿ²)LV(dà±[æ>XÎl× <>Y®çÃ/¿X>|ù%‰ÊrVÀ~ZxÌ÷Áõ€ß-æqسœ€3ßîØóå”;·& 8ns~ÇT \“üÐkKpoàŽyö ?­ Ÿó`¥ºáCînП Ë ¸½œ[,–ÞÂõ5å5å¾=·ø›â±æ:öÓfÍçÏòD¤giN†hMæKûÁ4§Ücv@ùœV6²†ÑÍMðÌæ´`?1LÅòVf ë³—¨„BB›ZwÖ-&×ÿZ°$öÒcw0á/'~ÀƒeÀàÖu§>A!¼Ï¼Üfþ5Ì]_3¶ô™‰NK»G¤ Ÿž,}®‰ãNÀ`ɸO ¼ñ|o­tŽK> ck–æ5uI߀5ýÀ)øVÁçmÓ¸7„ä/íYË~{Œöß Ú‹Çxwqý‰(>ŠTð÷Ñøë‘¾?ðªy#·Y,¶°v&¶{·°‚õÝÂuçëÙº÷÷e&ΉÐ,‹ÒÇï÷Ù&Rû<¬Fª—É?ÎÉ>Õ¢$ëMŸÒ„Fü^á줡Œ3Ï¥Üç)Ž‹L`o³0Jpæ½=*‡;­Uˆ­(D‰˜Ð64ÛÔÑGQÁc"É¢ÄiRˆÆNÌ:§AT=ªfªBÀcx(Û+1Œ*Bûéþy²¦¹ IX&%tÅôiû›6˜¬ÞoD1ÐC;Ì -êFQÏUžu±Ïo)”F¿Íõ)3Š8lI",Íæ• '¡}©ÇûͶõéÿgáÌžAõýSµS¡›:7Þ˜“«vĽÔAR_ê˜ðD f„úÔþmÈé‹è‡¤^²è¨ÿ\¥ªÑëFëòVâ¿6]å¦BkœúÓ¶*í`[?=O¨¿ÆÌ²€xœµWksâÆý ¿¢o6UÁÁön’J¼7©b0SWHD{ù¤ÈÒ`¦,$•4“_Ÿîñp6ùp±ËHÓÓ§ûœîyøºÛúÖjà ï`¥dÚ_ô^ᶯàãÍͧküýt 7?ÞÝ|º»ù žË(SÀÞ ø¶Õ½n·¯»ß·¡ f^lJù¼PЉ¯àö—_~ÄÑ–¿àŠg‘© ò9(| 2ù*ÊJª ˜Q*çy™É¨`¤)hŒ JQ‰òU$}D!xW$²R¥|Âó ¢,U%@fPå«2zäIfQ¹Ä[V=XKµ€¼ÔßùJÊ2Oä\Æaô *¢\J¥DE™¿ÊÔ"R:Óyž¦ùZfÏçY"É©"ò[ uGÏ·ý“Ô4ÏmNqžàÌU¥ŽŠ0WBžòW2må"üd¹’±èá YAŠxs«éç„Aã4’KQ’Fðñ< ØPd—òLV˜Üÿ'¨Yn‘’<^-±øÑ®h×Xí%,#%J¥ÕAx]0nÒÐä>õuoD vŽ’…<øSœHƒs©¶•ÚC·’¨ò¹ZcÙ¶ii%0H‘F›&Qü’åëT$Ï‚pïê&–:K”M!¿8]%†‰xi^ §Íy‡À¡É{0å‹HÅF«(±ÓQØšl^Všì}°…Ô"Z-Å…µ“å³î¹S¬W¤ø$H ,Z"KÐ&H d´Ì•Ø1«H‰ð ÌÑpQ·íJ‚ª1­#t•´ÀJZAY½–ªj[4òñÇÜÏù†ËŸ§®óÀ‡lƒ¸ìžÙ¾†=Ó±}—ßq=øãÃC‡ï¾#Aö Ø—©Ë<ødjqÄA`×°}μpÛ´‚!·ïQåÀÛñÁâîã4ßéQ<:÷gæšc|5ÜâþL'4â¾MáFÏ€©áúÜ ,Ã…iàNO£¯!÷LËà6Ä=ŒÛØÒolXÖOD:¢9`˜¢1°4–Žƒ4‡Üe¦O|O&ª†ÙY=ð¦ÌäôÀ¾0¤b¸³ÞÖc¿8 „64&Æ=’ë|E,‰¸lB £^0ð|î>ƒ{Çz…ðs¸É¼Ï`9žV,ðXƒø†((šñyx\ ÇmŸ¹n0õ¹c_ÐØyDe0Y½‡ZdÇÖœQ$Ç.é¡kЃÇ1Ãq—4Õª¤…‡ê™>¡5fbTÔÓo›Ý[U7Yzä»Â’q&ð:ò£1ÓMŸŠ…¹Õæíé’1|à”üv26‚Ç·MãŒÉ ÌñV}ZxD~ó,sŸ[á8lÀ7™‰ÃM¡cã…ÈuÄïÃ1Ö› |ƒ {.Ÿû‹oÚp˹v¨g{3/4‡lä5þ[mªë«þâ·¦Ï>¹ùþÌt&g~Jmâ|Ùp<1o QÆU"s: 1}aëä½l°O&Ü9¦ h;Éß%ø“éÑü•ZG“k‘[S>´ó¡íØzhÝîõß™°âcÇómcÂZž#\ó³ì0ÀvÆæ7[7o7·ï˜©CÉþñ]ûdBöÞ±ãΦý~ÇŽ[ ™‘XØ=·Ã!3-¯G¥>—ð$?ïÞŠ¨ªÖÉþu+åþ¤Ú¿à¹WÉ?Åçv»I¨Z-<ª^ µéH¼çu{/¢’¾±#[è^}nc£âÙª]èÓ}ê)ÏÕ\¦¢óšË§ l«…ãËè­ˆð8×—ŠSc­÷ƾZ­4–Y§ŽÓ ££ko=!T5Æ ž\FzÝ&⎌=xÿm‡‰g>vZõr∶†h(L¨ô`Ó­!ï×Tn·Z­ BשcÅ´´—ÒC[šÇ³Ó…~V±ñ^XªcÙq”î‰í¯ÿµZ#õÝ@Óo¦ªv½XšQ–yy)×Z¹ý<ì Ú ;§ÿm¹N»²Æ)J\gog4e&ÕQ;☲QCZ¾$Oçù6è‚UœAUûÀ—įDŒذˆÔâ¢Û:Šõ¢ø·ÝŠž_i ‡[Pºè±¬ž;Í æÐ߈גּ³@hÝŸ‚õñããÖ6m×VŒP‰b[Òóô»ÿ`tÏ|Ë®nuçXÎ4댸ÅMQ;o·z‹{~ˆ&ÖYˆ(¹‚“O§þþ·tÎe‰ñýìÀ²®àcÄ]Ïÿ‡WÇ®6ûâwDºìÁ\ŠôÈ¿Cãè© ýT„™x#÷-õ0döp»áã¾ÿOÅz㕨âÿ÷øÛv¨Ë³ƒë.ügwñ ëÉ_AJTâŒ9xœkR¸.?A\ÊHÁÈÀÀXßÀRßÀPÁÐÔÊØÐÊÈP!+'1w£Y0»p^rNiJª‚M^Rr~^Zfº^†Ýämì–“w³sMþÃ69”Ccr‡ÁæÍþìÍ^jxœkRø'?Ab£Ì3~Ò*îtxœ».ÿBv‚¸¨‰‚‘±¾¥¾±‚¡±•¡¡•¡ÙFv–܂ĒÍSØ×±I*(z8†¹Æ‡»p%g$q*€Áäp>)¨¬›»kˆ²¬ÂäY|2B©y)™i\\ññ®~.ñ.®Î>Á“÷ñKH!™çKxxœ}SÑnAMìC3ójŒO&×b"²`´-‰ÊRI`!…šêËd`gaì²CfZjâØôÍ¿0þ†âWgJ[jÜ—™½÷œsÏÞ{÷÷³?OŠN½ð™®vkûýq~”››w¡X(ì:nÁ)îëîKûîø,˜^¹©íBܽ½ÒÕqË︂˜3`’ÏX¡cP"ÔgT2“µäý©6- Êä)‹Øús YhQ9Ðe‘¾`òÇwôèç·­_[ŸL ½K§2KSh×XJß03ðÚ):{%ƒq0Nñ0Xį´[Jøµj‹¼'8eÂèï`¬çfG ´œ4|ÁÈê£l0ѲŒ‘âŒh½”2]:é¾Ê­ê% ª§ãò­L­j;Q^´œÐa‹4Í$å;•úß&~»G**f¥Úô0&¤ê6|Róš]œXH¦0ˆ„biÃl¦ŒÍiœ™°0íJ›åT ƒ•ÍÙ±ç`lÖ™h5oK&¥k…ux1³àò™€Kk÷aÜì¯^yÉÙþNÇ´@Čݯ´¼4!·(·d˜ dÉ ™Œ6¨›Ìó€È¥Ò§l¾²ƒ6Y‹5b“³óÿoò mýË¥¿ës}LfSCéœÁ'„x~m5>œ2ËÌC0Ëòüæ¶ûòh›oiê…>xœ{!ûBv‚¸¨±‚‘±¾¥¾±‚±•‘…•‘åFv–¼´ÌôÍSØCØ÷! nì„|xœû'úKd‚¸¨‘‚‘…¾¡¾‘¥‚¡™•±¥•ñF圓ßr*H[s¥$–”ær*¤$寧e—d§Vj¸8ù*hMŽã’™ÀŠùN›ì‘¢c$8C˜X®1ÂW}ÀÆÌ¿“ ™o“¹!ÚÓaª»>3fcÝ…éÌ:žÔFq™Ì3Æ:›X&žjf£a°n,Ûo¤Çµ8QS-Ì….ꃱÔ%í`˜&sQ–âÙ?˜5ônÜojŒ¬/†¢»wíR­gý:C!d’6SŸè×\ó/Ò‚®3ךØo6ð|æÏ| ®ÇôHª÷,÷†–wcÇ“›yVøº4Z0]ÈÆçÁÌc2qÌö-×M}æØ-R4rn13謎hS&Ù±e̘$ǽ#½”Yƒ6ÜŽ,¤»”S™5ráaö Ÿ´U$Ñ*æÓ¯ ¶u=f×–mXÄuHÑ-ó¬–Œy$À”å[ýNÆ8“áS±Ð7õXiÞ¶,)°!èæ #çKal•Mã I“73Feöé ì6ÊTðM”½‰Wë„ï§]whôÞ½»TçüÂ(Â} —B–¨ù¿Ø¤óí<&UƒÙxw9¦q”ÁN?åy–ç8-’çsðqX¬â4^mV 6÷‚Ëñ‡‡¼*ƒ„XÊ]“¥"…?…$SNÈG@œâ0‡œ3r…„q°Àݘ<“R}` øç`féëBí®BªS5×›| ^fèU¼H#¾€ÀÎdªû¢ÍA0j¼B2™;æ ('Ü9ŸÄ³¸(ž×\œ/ÿIº@¢æH¿±¶€Vãìåµ¥q$Æ‹cwçžc|¶ü$ÙÙüO^Tàe‰‡q.Š6(¶\”…>–2 )¿ÒB¹VdàÛ¸•Iß¾´ª›¦‹ïŽ‹M„Æ•gZàyÁDÿâ±YZ·÷^»ÀiVï¦Ýh^…O âÿpi¤Äƒú!-SÝ$-ò½YQ o$ ›²‰; ׂŒ…:²ÕjP{&|àð߆vÀÒ„DxÕÐæË0×´ À÷uõ¾VlÿvÕøßÕÞ7”(ÛGbÏEX¾—) ö‡ï¥©ÖGÌîÌ $ì8Ón|ÞÛ:Åm†-øwCk6››8-.{Ag-$¶¾v~ƒŸ†üô3»{&¢Oô¾‡¾”Ìeg­ÙÅ WB=åã‹!Þ¼èÓ©eîNË)&ZÔ4Õ_ i‘-“fç ïËþ삪:ŽGBº†•[vÅé:C{Û?«ÀÒ#?ðt艼IEü€g©ê„§Aqõ\5刌mû:Nû5/õ3÷>(4M(Ú×n¿ì×Ó͸ÕU«ÐÉnEÉ£ƒ„–¥Ñmb™å…&È!u®”GÝ~P’×(P©¥¬¼ž.²«Ýy܆¤øôtxæA}/ºªóµË1ßÇñ¦*"Žy¼gŠ ?1,é®,w´I"ü,öˆ“?\¯y˜ËÁT~«†p U›?áLýë%©OY}™Ø,°gx±cÆÈñüýñ¯Óåì¶*‹`ÖQÈúÕ¬#Kb9L›ÝOŸNƒ•º7²Lô-¾w|Ft†c/7ûé_¡iÚ ‡‘mè¶c“ƒ5ÐŽJ°SÞê/ä©NWè¾bP´=-ipÙ«¶U…QYŠzT¥’ÝNïݱɪÖÛ"‡º’îµìiÞ }ÂáŽ;ÎÉM¬ ÞAëXE«b{'±˜âZÞ÷´*öò$¯¾5©c­Š}{;Ô'l|à³¢U±ïNbõkÙu¨$U‘ý¬²ñ¡M6®âþqÜ'Õ‰BÓ„ÙCg; é8Óè¢1ˆãI£Ëd>ˆ+ºãì¿]ëg*þNZÍIŸƒ§§§*“-m ɦav(€Ÿ‹lž%R CŸŽÙ?ÑøŽ\È÷Ç·êB7}”3P£{R Ñä<î Æÿô=ÌJ†”•× 3¤Ìñú›Ò“Âò-ž‡‰šjdg™‰B¾Hõ=g¥N .¿ëØŠü.™$Ÿâô”òôJb“˯’’8ý·üÊá/ÏÿmµŽ·ÛµåïJù˜Åôåç[ûÍ#ZW ZмØÉÌñ.\%ÎÚPkЄT¤#Uíc©?Œ âàÖ{ø¡vÑ¿¦Óæ»øAÕq[ eúš¦Èyžgy=>¥¸;™êP™—2bªj%â£Ú¶AuT{þö]¥á€ø‚W{»Ê©=èg+(×h0’ìÿçÍ[±Yxœ­S]o¢P}†_1›öÁ?­Yõ *YÅèfÛ”‹Ü]¸¸Úínö¿ï€?bßzc"Ìœsæ03·]n-ÂGŽ>€, äžÔŠ;[]P$ék[RÚ²rgÐí ”.üLI¶ã÷n…z[ÛõO8Ï"Ôñåy0§Æ |:Ø9ÍjsË5,×À„øÉ ¤10ÍÀ‡ÜO6ø¢5iñŸÆ}NSi<"•ÄñØæ£1Ó›X"?šá–­ F *°«ÚcÃ-üøì Vi²Ùr¬úJy„P-Ç­Œ£ìÔ©úäNævÁTOÑÆ(Ísû$Ë`8ªÛÔæŽ©Ux]uß¿[†™Ÿ­"ûý^•þnØŽ9·!·¤³Ž¤›·Œ®#µÕ|óy”Æ”ü"ðÄè‹QN(‡)Ùî«H…tÔ8» æ`“œd;ÊÏŸ1Ór7Šza–&0ßvmÅÐG¿[&÷@êîû© ±•¼X2ä£Î Y@Bð¬‘6Ÿ=ª®gÏtTñ&žxƒ ÊÈÕ\•|鿨p\ojXcw"ŠôÀqmÓp]YùÛ†ržmWþŠÂÖ£Œw 9nYÜ¿ …vʨ©#M7î ó'À˜°5ÊɶÉ wsI±ÿ%”åtÍH«ÈÏ„år†$[ôº/ÃbdÈIqžaœ¾Â>u¡A,1ÎÕ ­(ƒå‘ôïðÁšûc(Šž72Ʀåé†6uÄ]JaŸ7åµ#êwÃÓ´›ù,Ç«—Ô*؇Þ–s8ÆäÞË9ñi`›Î”+ÖiŠp%s.ñ@™×ÎÐ EÂâvËVÖ÷Aƒ—5Ë"°¼ÉµCù«Ýç~í¿9ýC<~Bô<ÃÒß{+Þаæ—++[ ç?aÏ,è„)xœ›ÈÝÍ=ARÔTÁÈÀÀBßÐ@ßÀLÁÐÈÊØÌÊÈ`£ódKfÉIÌñ“1·gæ•Å—D›Æê($çç—(”NŽfq›¼ˆå=Õøá„~xœ›Èý–k‚¤ˆ±‚‘¹>*[š[oÔ]Ï´Y•y#¿rfZ^Jjg¼·kŸ«Ïä{,Í"Ê©y)™i úZ PQ-ýÉ ¬†Ç¥áWxœ{Ëu‘k‚¤š‘‚‘‰¾…¾¡™‚¡¹•‘‰•©¹BVNb®‚kE‚ §–>—þDGç͘Øâ“3‹8'û3ÿ`ŒŸìÏ¢$kYº€$?kzŠræZxœ»Èµk‚¤¨¡‚‘±¾¥¾©‚¡…•±™•ÅF½Z&¡ _C3ƒxx.å”Դ̼T…Íç™r˜xáâ Zú\}þèJxœÛƵ›k‚”–ž¡ž¡‚‘±>*˜ZY™Z*¤%æ•(¸V(¨pjésqéOttÚØ¸•†‘\jBxœÛ͵k‚ÔF9YVï"°5xœuRïoÚ0üÿO¢“h”’dSÕ4 ) u)"©Ô UVˆ_À8(qX»iÿûœDÙÒoÎݽ»{±M]»PC¯Å:¶;kcvÇDz®MË1mìnÏíö~d˜¯ÀÙÁ…¦›„˜:ÂÉàÊ.`T} _!”¸G˜#gpSTçoȶ?qÙI²í×Jc[Ö'˜•Ë OÀ˶1 U~-ž †)Ð`8ºÿ>D4| ©ò·é„’–¢¸@­™=ÒðxÓ±FôÎÆÑDÓ«‘£ù4U®Mˆ|ÝaÕ y™HøM´’r!»• ‹%.>?÷߃IV ¹pžû _ d¬ã–ešb¾øâª‰?‡ÜQôØ'JIéÐOêù£»ì3δŠòXi–oÒY»ý´¡òD!ᣠËËþÉm*¸<³AWã_ä™îaÇ”ûÊæD]MÄÆ T=aƒâÌö–‹xS/r6Ìø õÏ,µNc³J¥éå öo/£np.¼å›zƒÛ¬òTëZÕ´”ÿ…T¾¦Ô¼úžH ã)˜zó ­Þð_Kxýµê‚1xœ»Àv€m‚¸ˆ™‚‘…¾¡¾…‚¡‰•‘…•áDíR™yÉ9¥)© 6yIÉù¹‰%ú%•©ÅzvOD‰dæ•Å—(—$–¤F›ÆZsq–N¶`ŒcÒ(<ÑÐØš«,?3…3ØÃÑÐ3/³DĈw‰PÐJÎÏ+I­(ÑDRZ4e2“ƒ’¨[f^bÎä&Ýk®äŒÄ"N-¨k^ ’a: -Md%n™9©q¬ò.‰%‰“70ŠLæfš,Çl,·N©ä„xœ»À6m‚¸ˆ±‚‘¹>*[š[OÔž?™Ÿ1}s £#¿rfZ^JjšB¼·kŸ«ÏäÉL½"Ê©y)™i úZ0Q-ýÉÚ̪³}œã.xœ;À¶˜m‚¸¨©‚‘…¾¡¾™‚¡‘•±™•‘ÁDù_D0@ ë€ xœ›Æöšu‚¸”‘‚‘‰¾…¾¡™‚¡¹•‘‰•©¹BVNbîD£ëŒñ“ƒdc–A|rFb‘‚VJbI¢ŽBi|f^‰BNjž¦¦5WY~f g°‡£¡[f^bŽB||€†Fiüdi¦@­‡™‚[ž²èuxœ{Ízu‚¸¨¡‚‘±¾¥¾©‚¡…•±™•ÅDL‘àÈàø`GÃxx.å”Դ̼Tλ%˜ø‘$´ô¹¾ÄgéJxœ»Àz•u‚„œž¡ž¡‚‘±>*˜Z[(¤%æ•l4œÏØ¿ ¹j3xœ»Êz‘u‚ÄF™L˜á±ÅxœíW[oÚX~¿bÔ<4aYHHE›ªZc -±Y_’¢(¢‚%°‘/éfWýï;s| œ¤Ù‡}¨ÔHIsùfæ›™cӪנéÂo7x¢7ÀZ‡ ™;)õ˜kR¸ÆÓ`¤Ù.Ó½¡fÃȳG–#Ш¶.sô¡Æ® \sLƒqc˜.8m8Ü©±vJí˜¦Ö < Kí2ÛÐ]ªi{Ò‘=ÌpØgdèŒÆgËÑìqC;ÆŸ¡’кڵÖǾC ¶F÷lãš’F2¯ã¸Ìõ\ú–Õu áþaºá\ÁÐrkžc40ˆ«‰ðˆ‚”¡ÏÏa‚Dp;0Pn¯‚7¸p?Ý%´Š%FEFÝJ±`ý!ë¦nÖ" [æ8q6sÈ€‘oµ±¨ÑåSÃ0·âXâ†h+°hÝFÉKc‡ÉÁ±z„äxú@²/ïöV­vΣ€Ïa2ÁÁhO“Ií?‡¯ŠÐ,š-s¼S?FS|°¬ý¬•=­yÚ\|Äl½ÌSú­ñ¿ðމàþþ©â–‡óZ­U¯×iþ~m¸h]ž·>œ¶áÆÇ¥ÍSòè/¡.Å–·]]ýÓÚdHù}¸˜t†–þÇdh˜}wpppq¾«ï"ÝŽ»18k¿`@4û¥Ý‘Ê›®{øN«XÊN§íË]ƒ$Î_2ØObÏ[™rùzd°“Äsª*ûIìyo“x¡±:^þ8àd ^ç9¾V¼ÔÐmci¦h”RáÙÝýŒct‡QvÖžd)>ÖøÝåýU!»8GÙ4ÌfqeRvI¢|>çÉbJÐólÁ¯T©âJ`äµÀwí{eìÝÆ”±%þUm¼T¶½Ð«ùíåÑL<ÜGIœÅb¿Cpk³í¦…÷¢k•›+öo— ^Œîxd8“A­ö‡AÉÕ<ª4£~|õLï­$¦bQoÐÃß_$ø9 ÿæ“lDZ‡oIË#it§Ú¸ûF¥Qw¶ð“z)3¢`'*jï^Yëû]„®ŸùGê\¥ʸPßä½äG…¤ˆ)L6¥QïJÎd«”‘hKYiðÊÈt²½û¡ ¬wS0É$e•¨’²—.¡û]„W){+𠲍çU*i#J*åvT©$Ñ–ÊÒà T’é•{·\Ae%I*+Qeñ/]¥÷»o¢ò{h‚Ê¢%•‡|‰¯Ø­ºjÏÅKÀ¹êy”†~AØTú[éûs½®÷¸ÞôzýÚ~o.ùÜW/½zÑ•[¬ÚMåþ)K¹JêýQ.‡jä•C¬œEåô©GN9Oª)Qö]Ù¾ç «ö£x;¨~‹úV1­ÈeO·šò{šPü §[ù–è=‹xœu“»JA@ ÂBFìì´˜fMaâjÄB„U#›Âøh‡13!ã$ÕvK? u*kAØ/ðô_ü7ãîÞÛsÏp/æ3üboÏAxq|ry~ßðë$Žx “j¨­¢`0{ Ø&-f2L⻯[ù{ðº’BÓ‘î>ï[6íý`ü0)¯@¿Å‹·)R…ÔCùL[aûK3èö¬DæƒÚ©HòÄ» >ÓABžÆZæsÒid•7»{¸‚‡ˆK*”ʸ‚§™.¬°`PC<Ä» >ó¯Bþ±šÔ"tw"ÁCÄ%J eÁÓzGa„ƒŠà!Þmð™e„µ~cFÖ;ÖLm·(þ2´Õ&LÛy”ŠNG"Ú¦¬ÔÃÿ_TøwÝø9â7lNxœ»¨±Ecà ¶ÍGÙzx&Kíexœ»¨±Wcà ¶ÍGÙØ8ã'?àR’øJd*/XDj².7G|f^‰E|Iôä‡ì"“çñ²MŽäIJïç™QÄcjhï–™—˜£Q?¹™·,)9ù*¯Âdg>¥Í.B¼L7'$­å‚;xœû¢üAiC;›L||°‡£Q¼G|<—rJjZf^ª\hòz6åÍŸÙ&s‰ç¥d¦)èk!¤â´ô¹¸HKä€/xœÛ«±^cƒ?cüd ~SÆøÍ©ü7XF>^é€OxœÛ«±AcÃ9¶ÍgÙ‚9ã'kð›2ÆoNå¿Á€.å¾ðxœµWïsÛÆýLÿ›8“Ši%q”N§ p1,~HÖÔ"Ž"`q dvüÇçí4)Rr󥞱 Ýí¾Ý÷voïÜ?iýàÊjXô˜ªÞ¢ûHƒÞ†ggçý³ýÁO4øùbx~ñãÏôï,^’ø¼¢Z'ý7oú'§oè„Ìbµ)Ó‡EEíY‡¿ürÖåŸï±× ’|ù óJQ1§ ¿Fyú(K•V^1ã,ežÆ="#ËH#)*¥’å£Lz@á ¾LRU•éýºJ‹œâ<¡µ’”椊u9“zå>ÍãrCÀ[ª.=¥Õ‚ŠRÿ[¬+FYI:Og1ct).%­d¹L«J&´*‹Ç4ÁGµˆ+é¼È²â)ÍhVäIÊNŠQØo)« þôRÓ<›œfE˵ª@§Š‘+£Æ÷Å#o5¢1þäE•Îd©¢ x ³ «é=Ï AgYœ.eÉÑð8ÜSd›x&k$÷ÿÉ…j– RRÌÖK?Þ­zØ/iW²LãLí„×cà}šÜûžî8AçT©â;C^œË¸Z£u¸ìܺå@Bóê ekÒÒJ È*‹7LâÙïyñ”ÉäA2îEÝĩβUà7ËÖ‰ÜaR"eV¬@à~sÜá °kò.dù»ÌäF«˜¢Ó!lM¶(•&{Þ#W¦Z$FËã¥|áìäÅn[÷Ü!Ö–+(ÞKVE+Hæ ö$ FË¢’[f DJÀ'4ÇÆ‹º5'‰ÔJÎøÁ5åVò Ê볤TS4ö Çv@wÞ¾ |O|ïÆ¶„E£;l òÅ•pÀ ×"ÓsCßE¡çôÛoF‡wïx‹¡ ÷ŽÄlj/‚€<Ÿìë‰cÀ¾á†¶ºd»¦Y¶{•£\/$Ǿ¶C˜…^—ã1б'y—t-|sŒ_‘íØáNèÒ]w‰xM ?´ÍÈ1|šDþÄ 4ó²ìÀt ûZX˜a¶‹À$n@‹‚±á8ÏxéÍ‘@ŠÆÈÑX:hZ¶/Ìùì¾L¨†ìœ.aÚü!> P1ü»nˆD0Â&£YƵqríÿ! JbF¾¸æ„!D‚УPЕçYC>þmŠàWr¼@+¢‹ ¡¡Ãraߣ(°µp¶ ß&¡í¹{·PÉð¶´Èž«9C$Ï¿c\ÖC× K·cuŸ5Õª¬EõÌÑö,z†{dÉWŽ ÕMÁ»ÝÚè dvÀvùÖ¸Ó#MŸ‹…ÜêϽæíê’’}I†ucsò1!°›¦ñ.)ˆÌq£~sZo¿íè˵õ¡7 övtè§þ°¯oJ\§oÓyžÈ9MÝ‘é]OŒpŠ@ÓñôÍ[¬¦¹lmàæ€8Ö pNq†¡˜c2âœãòÑ#£?®t„-{{&š©uöùlÐêŸÔ³rVÅ}J’¤ñ9t1ƒðÎì3Üú|úg^Ϋ³^ï_ô„y… e…i²J9ƒú…Ðä§C–õU²ˆËx†U§‰‘ÓFœxa¼ªzJé«3Î2öÏ‹üô¡ŒW Lùy&W½;ô‡ád[ïÚkQU«SUm24—šÅ+I¡±ø¨ÿî2Xçès~î¬Ë\¿Ô³t"—Áo ǶZ¤[ï+zÄ-™¼b<‰? _pèÒj­t‹›V±âkŽ-Žq\ÞoÑ{©c)ùŸ5tE#åÅnóBz!—àÎVë´>4y)gÅCžþ¦$[ÄcW BÏoj ‰deô[ió{¯ØŠÏL»ÆÄßg²s¤ë<‹^T¸VKçËçð ;¾ŽË6®ŒÃ<Ü"쯵%º/„t®]hlÜpÆÑ·Ä%z‹õë‡þª6ª?fÚßö}ê0Ó‘¸²Ý©%L'ØzeÉoלç–Ì¥uÂôÛue»®ÚýèüÚ˜¨×mºü4£¯Þ„ÖZxd>óØ7Ù"7vêۆ߀ÿüš›BßL«âü×Ömò¢ÿÑ«Qê|¸üu…’ötêØ#s0œ^ä›b:íЗ/ôÝn»þÿ#Öu„ƒ¶%x®étªÍï¿eøVfJþLÀùÂ5®Eû+®v×í´ßaÍá¨|wxòIù·±»àŒDxœë“›);ALÔXÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐx£ö$viå̼äœÒ”T›¼¤äüÜ‚Äý’Ê‚Ôb½ »Í»ÙuX$1¤“SRÓÀÒ“xj˜Graàxœë“û,;ALÔPÁÈÀÀXßÀRßÀXÁÐØÊØÔÊÔd£v;˜gp¼G<—rJjZf^*çæ-ìîì\A-}.(µë<€"xœuRËnÓ@•H“R³*¡ ne¤¶!J@êC´’ÓÆÚÁ3®T±HxB¬&cd;¬²`«jV¬X²fËŽ¿`Ç/À0㸠Ìf4÷œ9÷œ™ûñþ·[Kµò›¦:6·!¼¦Iµ_C½Z?½³¥>Z_¤OaÆ€½hÄ? #V‹u« ”O?Ü{IúaÝ(  ö€Æá˜Ћ£!$Q/}ãÇT ,ÃÎ(H]­)Ô 3gQŸ± UhúÃ/ŸÞ]»ùâja}yvMróõ·)þ¶Pß¹²°(†T ÌÒ¢„i’+Œâ„ÿ(<^ÊëYŒT<ËÂÎá-‘LÛñlS#–c‹Þ¶°¬Ù&ŽM\K÷ˆãb©r|¬a°ðÊŠDùç¹Ý²Jœ â?çŒìÜòÜ–ƒß-®®\È‚ãþ£§#hZšÞDü}q禬F/‚;Ëa ¦võÝ93÷Ì™Ÿ¯ó‹KU®'˜v i7í¼Ãm÷îóêû¬ôû~`b;Æ É1“Áб]&¢fFl“ŒþLÐ jT± $–›Ãc±-ÔÚõIlã<&‰(ªŠ h8Z†k É&(Yå„y Y­WÐ4¤¬.·ðŠ!#EAò7fzä×e.j ÅXCÃv4‘äTXFi¶Š¥ˆÙRˆÒp J˜‚*?üá­õÑb &²&Ï2Kßœ%—¤L$)ƒ¦˜#Û—¡×ãe½ü”™¿ð̸"Tœù‹ÿÛú–åêžö}%kÜk7šÚ®â¸!³¬èÍÓ†ã†Î‰hš>™–ÎnJ?ˆw ò¼)òvÈ Ì9/˜0öÜŠó†žã|Ìx°§ *ÐúóWª×úr½êƒPxœ»-°F`‚„´±‚‘…¾¡¾…‚¡‰•‘…•¡‰BV~jQúF“_l“cØÿîµ ˆë„xœ»-ÐÂ?ABÆHÁÈÀÀBßÀDßÈRÁÀÔÊÄÌÊÀB!7±¨$3o£I8Ûä$öŸñö 9ì‚^xœ[#ò^`‚¸Œ±‚‘…¾‰¾‘¥‚©•‰™•…BnbQIfÞFÃýL›×³Ô² Îäƒxœ[#rXx‚¸¨¡‚‘‰¾…¾¡‚¡…•‰¹•©éF Îɼ\ò¦³Š´šxœµWkoã6ýlÿŠ»˜3¸yMÚ$‹d›NØ’+ÉIÓAáÒsG ‰vâýï½—’,?·í‡úƒ-“<çžû yuqÖúƺë÷o¡Ð\¯ââ|ÞYÁÕù5\_^Þ\\~¾¸º„«Ï·7ÿ¾ýî;ø_ÂS`o ø¦uvÑn_œ}Û†3è©Å:—/s ÂÁ\@I µÌ"®¥Ê:`gá9!¬$ƒ( …ÈW"¢qš æ²€PEð7¹Ä9ˆs•B¡býÊs³™Îål©qF«ã¶ˆj¶†Þ<—…Vü¤– /j#žˆpØpàZàYË-fhd™‡ÂŒÌdÆó5Ä*O‹¼J=•›_µÔÄ’ªHÆ2¬|#e ‘§R“®E®V2"s®ñK O’¨W™½þH¨ Â¥BßÒóÕùž´T\k2AI—…ƘiŽZ‰•ÏÔŠ¦ª  ~2¥e(:¸ƒ˜ Ñ4f{»šÐh˜p™ŠÜ$èúPÜŠH-ýŒ–(îŸÑ¥—S¤Âe*2Íë¤]`>Îçr¥Â“¢ ¼Io»aœûtn G+‘kYÉOp! Æ‚ë%Ö'¥Êu'êB¬d™H ‘EÂ×{žððk¦^½â½­ô1u^FO£›a²ŒDC•¿‰Z ³’´¬ð-‚ý}e)uÑl•›‚‡›sDK'bÊxj|9ºo0]Í*S}HYYÝ&ƈ­a&(.fŠ,ÂQA¡B§R¥EíÜfW,f/ïıÞSP,DH; ¡’¶ZN{)+wUQTé3‡Äƒíƒï‚'Ëc€ÏcÏ}´û¬Ýgœdà°ÀøåNœ¾Ø®ƒ1rz˜w§=× <»; \Ï'²_~±|äxÿÞÌZÎ3°Çó}p=°G㡼hȳœÀf¾aNú¶sßdÇ `h쀙ônÇH8D‚;€ózø×êÚC;x6&và¹Ú³`lyÝ› -ØÆoìú ÈϾí÷†–=býs@hØ#sð¬áÐm&ñûžv µºCVšBOû¶Çz¹Ô<õ0(pØÌz6=°zcyϤ5G¾ëøì‡ ®Ãyè[#ëýûp:2&,˜¥ÞÄc#ÒìˆÇŸtýÀ&ƒ{×í›ûÌ{´{Ì¿ƒ¡ë› M|ÖA#Eæ‰#†ÓøÜø6ÅŽ¸l'`ž7“÷áÁ}Âà` ,D÷Mœ1(ä3ÆÉõž‰—‚aÒЧ†ã˜o§r/ð, ‡ìÛ+Ñ*Æ3Ør«í~hß3§ÇhÖ%¢'ÛgÍUçÙ>­±KãOZžû&_¨­|ܪçŽÉ*ذú6‰/›rÀˆØUéà¨?é=Tѧ­Wò;g‘ˆaêt{îhlS?°‚Ç?}˜¶ßáŒÌÄñI‚ƒõȦþ³ßL´ßÕ§ü§X›6á¿íw¸ée\ÿU"KÔWðR•ÁÆ2ÙÁâQA«²ªR<ðíþ4ØPàÕJØoX$úÓõTÊ'_®¾ƒß‘EFH¸ñ±ZZ ßÚ­eVÈ— /De/­x'üå®E ¨‰ ËÇ$ÄÛBåÔUÑ‚‚@g…üUñ˜ -ÒÊy=º>Î÷qÎ_è’>‘jƒQ -Sž”a:j±½•ÒG“…ÁfËt†W1zWR“³ÍC¦w±q.J³ôP£øŠËäϱfÙ 0Þۙʾ͕ÒGØù¬"ƒ¬@u«N Ô öVñP\QLé¦VºP¦¨·9*uºëæßAî9¹=åè6ºqt xÂÙfËL‹uæ‚G¥»å^¡n‡ÁŒc-dاõ.ÚS#Ž¡Ë‰}øžŸ°Îÿšy~Ê>ÿ¿Ê-Ý¢ áÓ›V-d¨Òv3 Íßt8Qîï1n¥·¿„¡>4å¥)ü•é25i2],þ¼`—_;GBÔk&rÀî4/ßÀŒ¢zÓØ­¥lWŒørósy2Ðú«-Îynü ã|Ù:°ñÐ+ÏNš,»lVaÒL«l5E2!¶Õxæeð:—á|#x—‚šçS$5bϽßïš®`„‘×wáóæji†Z—o—å犜§B9ÉÚ6|Õq^SúŒ›‘Ö¶¹æZÜ(q\b÷w””C’Ϥ$RÙ{ sE¯&…ÐKIïæø^±Š‹ã’ö¨7#­m»•$L~«º”>à+¾ÌQ¼á KsÞ½[ëŒîÐ;ƒ‰kþ8:µ´²CÚi’Ê{µ™;֔њ? /”âëxœ[¢üUi‚”¨±‚‘‰¾…¾‘±‚±•±‘•¡ñF}Ó¼äœÒ”T›¼¤äüÜ‚Äý’Ê‚Ôb½ ;.åL ¹‚Ä¢Ä\ ÜæýO9ÕèŠâuxœ[¢¼Si‚”¨¡‚‘‰¾…¾™‚¡™•©©•åFý}ì“ß±ËlçäœÜ#(Ì¢ ¥ÏQJ ºè€xœûªô]~‚”´™‚‘¡©¾¡‘¾¡¡‚‘±•‘…•¡BQe~~ÞF“ƒL›·°Ü`‘PÎLSPLIMËÌKMÑH+NÊÉNÎ+‰/ÑœÜÍi+¯œš—’™Æ…¦&-3ªæ8§DÍæœµìx(éoxœû.ÿU~‚”¨©‚‘¡±¾¥¾…‚¡™•‘‰•‰ñFýÅì“/³GoÖç8Áøá ã€$xœû.¿C~‚”´‰‚‘…¾‰¾‘¥‚©•‰™•…BnbQIæF“Y쓟³ÛLvæ0Ü\ÍQÃw«º” xœµ\ksÛÈ•ý,ÿ T&Uɸ?dÙ»ñnm-Q6«dÉKRãøS$F £Rœ_Ÿ{ûyoJÕ~ØIlž{Ïé'ú†_¿<ûóì?­®?&uº—ªM3ùjw~HÞ¾ÒÿK.Þ¼y÷þÿîmòæýÇ7ß_$Û.­ûdþÔ&>{ùúÅ‹×/ÿö"y™\5í©+·»>ùkökòöïÿ¿Aè‹d½“‰I$¹i†:Oû²©Ï“E½Â`³ªJt0•tRÉî sô#µ”y©ú®Ü $Ië<”LÊ:QÍÐeR{6ev§¤hº½:OŽe¿KšNÿ6C±ì›¼,ÊÌ&›v2ie·/û^æIÛ5‡2ÐïÒþ’OU5DzÞ&YSç%R †ÛËþ#â·¯¢¬©¤)\ž²&å z(NŸB^1ÖtÓ²5„‘ÀuÓ—™<E©’ âÃhB²ºxüñ>e*MÑZƒù¬‚¢£Û δ'Ç´'ÊôM¹OŸ4e '«êÌrUÅ™(áPD…ãIaÍâ|t0˜ Æ‡"b”*·!¬5œàL‡§ ˆ†Åf %zê`šÀ&u°àÀZÁf%l^ú—{Ÿœ;¨­˜iÔ(]¿â(ÓG‘VeZó×ë‹XWaå;H¹E]ƒÖBJ=´0gKÃLØËéeéeˆô2Šô’Dz9Šô}ˆô}éûéû(Ò÷$Ò÷Q¤Ë¯×o?¼¹Nûè`Dü¼Î= 8boÊJzorM¬Haò.‚ñkØ™(\÷z‘÷DJ_Tjz ÌÔomYdœ.§áh1Ѷ…t0âL=f¬-œƒŒ£c6SùBÃóé‡Ë óŒ¿Á™ÿÞÃ^û T•bj@ îv—ª¦ë5cq`U†‘ìÀŒu_hÒÀÀ™íL¤l\K‡~W7µY'MÑ"SuùÄ•ÄóœR€;ª>‰8"Ì‹©’¸ÞÆÉÑÂÀ•u{Ckª†š“¡ÒHž Ü‹¬Ù·XRJ>ÉÌR)UtRZ !™‹«ªku( UÀ¬ Û")±ï‹+¦hbÅ>}”]zԼńU,5‘‚b)¨‰ÀÇ™ÊR]crJ¯^,Ç×/à=Ÿ QEÙ©Þr3ö£Ùβ3¶–O.(BÎ {—$@FAÙS}穾cÔ 9á`઺‡µ\“æYjJÂ\çû±¦8+¦Ò.Í·Q|ÞÁu­qÂÔÞtVI]‘|uãb4ÖXÑtTÇm3ÊYðpe_•‘2x"e ÛIš(­z¾¸Š—WMXñ«©"²({ÞÁt£šy¦bú,*np0Ý·b3V*F®‘˜ED×dº…™¶³©Jɼ4Ub çªfë8€ƒu¨ëbªÇÓ =ë[H(;å!Åg¼<•{ØCœáFQ pX¯dÚ™Å.5#·˜MUUþ!@CÊeG=óD‰¼T›“Ý”1›ªÜ í ç ³c÷˜³ø²Ã±ˆ)ëÆ×m<¸jÇ— ÂAÎAsÍÐê35Ë[“jBë å+Xܧ‡­á­ÁùmY; åöuow0ßäÒ> „”ÂjaÅðlõ³·gŽ4á‰z3ÒøÙ‘š“ÿŒ&{´ñS͘%Ïy4_›ö;/@ƒòMÛÛ¢jê­'µEmº•¡_8‹+°[Yš÷(˜Ñ·¡")ú†Ö6qLé†ýFvL¨=#©¯®Ñ¢}Ç@Gœïrnp=JCÊÁ„Ûc)QJà6G¬=ã åq­C³ì±*DìXå³/¢Ð5ltÛSÖ/±<ŽX_ÕS–.À¨4U³ÑÍ~™Óœ@ ·÷'ƒ9oœ…4™Ãëv2míÙ£ƒ„3³RlÚIå7:3ÖfÙAÆ•æPÖAÆÁ ÖTÔZLÑ7úˆÏ*¬Ee“ã׬ó˜'a޲ĞXrë¬XÁòL±Žåœ8¼®,Ì*Iò¹|:±‡JµÖצ[pÕ…è´j2.töM¤²Ž «?àÄ"ÒW}Ä)`YÿX5YZ‰´ªj˜ÒTйqð¦i7iöHYÏHŠ<—Ò˜#ÁeÿÖkxïÙ&3/%¹ïyÛbóÎéE9’åsbÝÜÄÈ5-Ö§¡bäšë‹h‘Zû"y×ïð±æù™{ϤÆ2½üÎçUºU£Ú;„ÖJðLJ«Tõ»¦åjëœ  äo(EÙqÞé ´*‰‹‰EU§Ma+ÑœÇ3}»pc6Wé?°q*gU­Ù|3{¤J‰"±!¿ÚñGsI€š‘F¥­ …òŽ ÝêsG¤£’)¶%,­“Ò,ó•¦ÁxÕ›¡Ç„ÕKÒ3Mj(•ÂÌ®Qâ»wô—äÍ{©ê´6nÞý{8kù=:k©>\¦èÇ_æ4Ç¡Vß[‘…ªÒ^Æj@Üyy0nÁ¥_N‹*u 5îP”*. ÞÑïÞËÖÜfÍáq`÷æ•þgÛ4•߈+RÀ^³×KQjFš­ì½`KvÞÆSË£gG¬Ýì#âÛ!Ä 8bÕ©Îírn¨ «À»#Å–5¶¶QåÓ…}Á¼9xŽ;µªÜêÛ@¨öèzX0(Ç,ÍvRàv%ß Ï#h™Ðzˆ²+{óP4òÄO;^ý¤ÃÕO;Zý¤ƒU—æå“A<&l7úU°AÀéÕ´- )UÙ ·u7,¤”ë|2ÎÞ*°RîV…”‚Þ1áÍA,¢ð[¨.ÞB¡cÿøsÝÉÒÖb ÊY%Ó.ÛYÚ„?ÂÊÕ¼ô8°mÆ^‹3{Z…o†"!º˜Øv.tf9€”ÚþMÍ‘Æv#jrMèßÔäÓƒäœ^ _ f‘{¸T».z"%žHZ“4ù¨¡²Ô¡JJ;ªD‰GÆ@B™«YŠîp =èZ)¬Ìþ“ÙTe‡ƒ(áNU|‚¬Âé Š•=¾%´±¨"¼ Ḟl;‹*`n±/G‚Aywb«¢[ÅÏQÕÔ9ª"§£jt:ªØé¨š8UæTÒ ¬Å`35>=Uú1ë˾²5àÍHãÕÄ¡£ ‡Ž*>tTäÀOü=„SãC8ý2É,ͤœ?‚S£#8{g¡)òôdΤz§¦âÔοEwqC‡–5FàËmYãˆ=èSDjR†£YXUfß DÅöÛª2§†)èéÚv.±R¥½™j!¡¤l  ¸kÐÁÀÑYW§]VŒ*Z1ª0%«hNV}ƒ¾Ìp~Á |>˜œjD‰š…¬'‚¶vpwrJºh•dÜã3öP*`L=*ºdþ¨wVRn¨uœÂAÊ…ÔÆÄS`HZ‡Lߺ4S£ &ÓøkAj|o ]ôª³™J>é…ˆƒŒ+rƒ·™ üåO+1Æoæ:fO¨ðZ'^#³+YÜÁuvõåTÖŒ5gçÔP{jà9À©´“mu²¼·™Š]•ã®k#ÙèŽz‡:*OpŒuTÂØ¸åL6ït£3gÅŠ\fzÌŽUuƒÓSP{RµTÛX…>}ÍÒëœ'VªÔËÞ|¤yb)~ØÀ ë}ãÊÒ¼q5oÙ™MTn-6ðÅØàâÀžâÁ¼¯ÿ¿¥²y 98Ýa´¢;„îuˆú×15ëFüeÎwÎû޹[s×BO=á{£,“m/ñµ(Nxbìãò®Ó«w9ë¾'iá‘)«b>&ß4MeãBȹSmSxÌXÜâïôk b{µ% °¸b—ú2.O{ü\AxÌY©ÄÏÙÂÙ\E7àÜé†M4h0^Ö>+²Žr#¨þÜÒcΚ×ü:î »S+]ñ5f!Kó}ˆ…1õöƒè‹V¬xwAhÅŠ—TSØKB²¬£ÿø‚ƒÅ±O[RûÖb ¼j5V`Œ˜o6¿ Æ7músp c‚w‹­ÈÔ­”ɬ3¹F¿{Ž8{‡Žš\ÓèÍ®“‹):YÈN֙ˆ·#Õï2‹† î‹äà ]Ñ™\cNí`HÙÚaƒz¦¤‚ƒëÚlãGt¦¾;…q<£Ó—OD ñ 1h3FÊyŸ ‚……˜* ÀZ´§U0Ššo˜¦¼£ ¤-9sRëäÙºPú%³¹Ò3öý9Ÿû'‚ÙÍwLèl•Æ"î(ÎVDÓLýXµ3:s¶‡ƒëWÆ`ü@ç¸ÍrgÆEgabÌL <³d2&§ƒ!š†É)aˆ&…arZèÄ0Œ§†N"öDQÑÊ&ªV-úʆnj=Àx׸º3罪tqÇ.mÙà ¦;µP ö¾³#•YE{±x‹ _µ^ã=SJó®€I+›åŒÎºk‰â9& НRÍÑñž åD ‘{ˆŒ_§ÉÉðÔ6ÇZv4–Dœˆ0›ª:™1U°cþQ°>Î C^I|#yS„eSļz,Û(¶à¢bÕçeÃòH=AÙv==ìd6W±CÄÈã•0ˆ¤æ_0ˆûÃBJ¹ï¤~â’›;Àîr´nì¦B/=›ÙÉ7/KÇEp¢;H9óºæØ…Ë“k†šâíï„—;ì` «ÝMM¢Á×pÂ|ß Ïç•»." $Œ¿ #,&œ:í-ˆøýõoa1áÌœ¡)6]°NÙI½qÛ»EÉë—ìß1ÿjS è¿Ð„Ü¿ô˜,ì© xœ;µˆqÿ"Æ 2¢& F&úÆú†F †¦VF†V†ÆM‹Ùò’sJSR”ò’’ós KôAŒ¼´Ìt½ %..åÌÉwØY2Ó 6ór(z²)§æ¥d¦MÖ ”ð Il©qxœ;µˆñØ"Æ ²5$LÐï2~xœ…RËŠÛ0¥P ÖzèjwH3ÄI\hIJÁy0/lji—Ç–culi°””¬ü ¡0Ð/èuÑO¨»§ºÑ•tÎ=÷H÷~{|öãÄ4t핃Åp1îQJ–íäbÝvzÎk£óÖè™Ð1ûf¯ß5áSd»7ð\a»»A×K‡EdŒpN68‚8gp‹ÏAŽ%JEN–k!Ávw/Oè°Ü K(ݨ v}ýòýE1¹Ó™åù ol_ý+5"ŠÁwþÄPƒÄpe}˜îP Óµ´óî×cÞ£¦‰ŸØ–m»#똤) ‹ FG†®|Žq˜ªWÄk Â(‡€FaÎ8ˆ$r¿…%†ŒpNèJJÖj+²R)õ•|[ÒúÙÞÍôváM¦3D¨(´ìž œ=4Ã$ÈAo fêüñž¯(šžÝGÿKXL¼Ùܽt¬éÉ^p%y…ÅCÎV4ÈpsÃHÔHE×€zÂoê{ñîüöÚ¹ôm·ZÔ§ÊÊeÛ¢fÕž¹çÚv ÎÏá8dµPÊ誵Ê1ÌKÓ£ÚU”ùQÊ T]Å)ÇòT͉ã>‰jÝÊ/€¡ÃÙ? —íØóN5Åû˨)ÎOÐïø”éƒ\xœÛ¿ˆqã"Æ 2RÆ FÆú–úÆ †ÆV††V†& Y9‰¹Í°oþË.ï)Ã¥œš—’™¦ ¯¥ïçèëàèìﯠ¥Ï=mç ƒ4xœû rHh‚¤¬©‚‘¡©¾‰¾¡‰‚¥•‘±•‰…BVAjQvfÞFãýL›7²H³X»†¸ú…qeæ•p§–¤æ•i$çç—($g$)hé( ò€Ê4­¹”SóR2Ó6àègtÍLSPôp sö õqå*άJ–QXš_’Šn”†(‚5Ù‡KU¹9±é„Lxœû ²Ad‚¤¨¡‚‘‰¾…¾¡‚¡…•‰¹•©éF=ŽÉ)®›wsleàŒ öë€Nxœ;$ôKp‚¤´‰‚‘…¾¡¾™‚¡‘•±™•‘BV~jQúF³[l›ÃØß0Q ¤îxœ;$´Yp‚¤”±‚‘…¾‰¾‘¥‚©•‰™•…BnbQÉF“;l›ÃØ›'+r* ~ä‚xœÛ¸ˆqÅ"Æ 2¢F FÆú–ú† †¦VƆV† +Ùylò’’óóÒ2Óõ2ì6ïg/òÇ_±þxœíW[WãÈ~6¿¢2;‰ØøÆÎÎ@v³²,@'Fb%†³³Ù‘¥6VÐÅ«–aÈdòÛSÕ’»ÛfÎI^ö)ð`䯪¿ºô§®vï°õÚaÕØŸœ@”‡;Zv`p4€a¿Üë¿í GÐŒ†'ƒü# 3°>­àuë°··×;ìîÁ!˜Åê©Lî–ìG0x÷nءϑø°øY(T°L8DEÌÿǬDŽe‘/ÕcX2´æU™Ì×ZªƬ¼g){‚ù\°¼|Åòˆ•VÅ ¯%EaÚcˆY×eÄ2Oò—b–ïÀcR-¡(Åÿb]KVÄÉ"‰Bâ襲be–T”Ȫ,’˜2Z†•¨Q¤iñ˜äw”pœÐ"N,´.cÕ =ŽvRÝkr]ÈÖ¼Â&U!æJ¬á¼x S³!D‚yQ%ë v-E>¢QaEyÛ9aÐ( “¬î Ÿ'‚µŽlÁ:ã5&÷ûäu• S\Dë %n6­‡ûQ ½„,¬PaÊUãņ±^†(ntKÄ:²ÓKð‘æ…2‹mH*®´V”¼É* QjŒô#äÇòmŒ¤‚©dEÅ îQµ£_ш®F\ÀW,"iáÒ„4W’¨òZ^œ7uˆ×ãÂöÁwÏ‚óŸ¯<÷ÚžXߢÑÏ:·œÀÙ€é:ggëùðñ£áã‚v›LDe8·`½¿ò,ß×ûòjj#{†Ø–ßÛ1§³‰íœwYÀq˜Ú—v€nÛ¡xDô|%¸gpiyæ~5ÆöÔnEBgvàP¸3ŒgÀ•á¶9›\ͼ+×lT×ÄöÍ©a_Z<,lƒueaL§[u"ÓV™c S4ÆSÁ%â`™۳̀êQO&v ³›vÀ¿²L›¬÷–bx·†Ö·~š¡‰mb\çXÜþi n‰9ó¬KJáÏÆ~`³À‚s×øD…ô¾å]Û¦åŸÂÔõEÇf¾ÕÁ !Â# ¶ Íø<žù¶hœí–çÍ®ÛuÄiçÞ`g0YWOD“]GÔŒMr½[â¥~ˆ=èÀÍ……¸G=]3¨>vÏ ˆMóĨØÏ@+ë|jc×M‹¬.ÝØ¾u€[fûä`בoŒ[QãL”O›…¹Õšx;bKÁ>crmSò3 Á·ѸgÄäÏÌ‹¦ûÍ{Ðúqÿ›ƒfšµÞ`3`Ôö{b*ý¯ìë3ãe½L¢ßaÑÝ'ŒqèT §j=@G,¬Ö%¡RÈCL«çãCtƒ¬RœIÛ•„Ñ}^<¦,¾cÄ{R_Ò¾NX_”®c¦8Qã,-VXÀüéù ŽÔ%®£ÄN]Ü•¢Øã—±û2v_ÆîÿçØ…h–a„g[W¼øU8OÙ8¢½áxváñHg‘ „Ï{­¥¥pHØ)Bô…ÐéÞ—Ú‘ÿü |OÞŸá•3›¾ê´Z­ö‡~¾t滬?Phð^¢C‰Z:R¨HôX¡ÎOýV¢†ù7‰¾‘èØ’yõ¿“h˜â±ÿ|ì ЪcŽg8_…kVÌ¥å"PþªBlqãYIlz¦³(fN7C~_óª,Ó5—)¶ÚV¯Q‘ea v$¸|ÂÔ×îÚÍ’|]‡íêMHЦÌ#õJ¯Ó´Ë«bµkàiÈ—5ØS`‘&qͬÃÿdeQcJêÅæÒ²ÇÆK‰¼Z–¬ñS_௓ÓŽ¼ùÕ˜Ò,O>Õ’&Ç»nÓ¥AFRƒo•ŽäAùNktZ4«O4Ê,Ñ §š 8ïâ±\éê/*æok¼û+Ë÷ÒrW2úi°³òMýŒo‹ÿ¯[J@-ãÏŠn(*jÿ¸­JŽaKÖ㈾gäÑþy{î¨]ýðA)–Ñ­uµíÝ2 A?§þEå•”øCj‘²fCþþK7Œè%äʾÎñVÏ£¢l6ãWUOñØUÓìW­áÓÉ>n·€l}Þ¶Dë2}Ò Ðä0Ü„lÿk§~ÉÛþ²cÙåÕª$›dþ­f޼D ¾“*ÅÏTœŸ}¾œîýqÞ£Îé_]xœ­”ßjAÆñBd£ˆx'xq ^´!diKQ[Ó$Æh“H“ V¤Lv'›¡»;éÌlCÙ7ŠOâ½â­"xæÌæ­‚æ&öü¾ï;gÎä‡ÿíÞ]¿ì=èr³ßoìÂd°`|qçùmxÅ…C'‹c®ª_®Ý¸1ü|kõÇ‹3¸Y>K¡!x$¿þü~=z=[_Û°:¼:öU7a}Ÿ«SóÙìøÛ›þãí”ýRÉ/ã;Ôeª K–†2Ã@•&S\C¦yF‚H&1Oxj R2›Pí„i=•*„‘ˆ¹•ÊÉUWa X(Œ)‹]Uè;Œ ?‘¢ú„«‘T œeÂp˜H©âL±G«ÆT0ç$‡L0fi€ˆÁXÄ#`pÎbB,å)jOEŽÃÁy ]3+70­æ`PŠ\(8ö+ÎÂ`¿"´-Êk8==Ó†'”ÑDh͵• ±ÒЩ½ìºNr•ØHmÀÂE5ªa–‰’CœaÅjëåHŒÆ2” ›s'ᬪøØVt{ƒæ.@Ê1O#3ÖdÚÀ3hˆ™Š8äÌZI×F*<8‘B­û^ö½zïÀêÒdõJíÔÙºs¢ÁT¡^«¿hB¿}ÜìCç¨?€ý&е;MZ µ°8êvš]ÏÛη<¿ OŸØ­Q.ëHf)Ù°tf'`d ãU¸5‡ç¬ ðoðQ»qÒ?Fxó¡¥s->p»!™ ¥µ1NHÉ ø÷Ì«ä\G•+`«°ÜÚÙ\#ë˜K—þ/ž­Âó2ºDÐ4ú“é›ÚA»áy„Ⴊ!Lñâ”ý|´»²µD¨ªâ(\§5ÿ#èÊ_¹úłعT\ÒŠKÅíÊ<+­©_ÊKf6ᡱ•|,y/Ùíy6(nÄüK…í¾IQÊÃûîVè[¯÷{–´GB ØürBN5`9F ©²ÛQß+]ÎýL­•LÑ"Ó:ÖD*Z†¢LÑ‹Ïâ™Ö¢Ä@6¹|üÉûÊÇúËêF jÕê^¥º_©Å°׫õÚ.<ºô…œ½ÅksÃ#¥€ñg´^:©3È™G+™r£öÒèbQ óÁ¢c!8#À?HÎßg#(<8\ºžb:€ ŒR¦_,}Ò¦¯gX¸uº±tK„‚ž5<¤¤NUàøÇgT¦‡º®£%…:éTP'LIa¬–¬ ÇhŸPá˜æ ½ƒÔhoe7xcÝNQ®çîF¯‹ËóÃhS ÍQÀÅÑ]#éÜ4ÚÉY»y•t.O#ºHï ?²P¢×ÚDX“'Aò-š‰/Sªß>Œ6Qs)¢ßÒy»ÙiM¨ó*³&ô&V6$,û£˜¯*ê‹è “êÚú©—Ç{J–M±"1n¹lÊÛf¼lÖû³fÈìuxœ»'{Jf‚”´‰‚‘‰¾±¾¡¡‚¡±•¡¹•±‰BzQb^ÉF æÍŽ,™Í•3ÓòRRÓâýœœý}CâÂ=\ã=¸”™y©Øä6Ûp,bSæRNÍKÉLSÐ×RPÄ¢HAKŸ 'Óë‚jxœ»'ûNz‚”´±‚‘±¾¡‘¾¡¥‚‘‘•¡™•¡‰BzQb^ÉF æÍŽ,s¹– ´êƒ!xœ»'»Vz‚”¼¡*둱¡‚©•‘•©¥BzQb^ÉF‹^åï õj3xœ[+½Rz‚ôFù>^õ£°¶xœíY]{ÚV¾V~Åéw¾£“î‹Çß½èvè‰Jd~XÑCãðøÁƒããtHýdµIƒÅ2§†×¤“çÏ»-þýX~?…1Y*²!?Î3Jæ”ãu·*Í‚|Ã_únÌ“4Ü6Q/ Iäe0*Sé­òÛª&Ë #/ñᯯRÈðiž&eÉ<¿sS…Õ8OƒÙ:ÇJžÐ™Jß«Pmh¶a*N7ä¬Tì©´”j+?È4SÄäÆ>­3¨ˆ!uzJ¾Ì‚Ø+¬Œ²Ýù’’Tþ&뜥D‰ÌÏe-bSV*‚œ Y¥Émà³EK7ÿçI&wA¼`ƒý€™2–Â|‘Ê_ðóI{Ï4‰^a“D!Zg9‚”»°•¥º³ä–—Š a!ø‰“<ðT ˆZy,¦R+îíÚ¥^葎uï…µˆ”†ÀO ãþ[H{YHòo!¥ÜrÓŽ± ÖSŠÜ¹á†YxÙ0\wCœ{ܦ‘ „×c7RŸHÒ8©–e‚<«r-I³ÂªÈEª)ÎI?ûXSœ*0%JrE:Fù^þJ<Ê$.dÉEÙJyœZ` 8çRNªX§W–~Èñ¸°rÆç“×=Û$<_Ù㟭9 ³7X4É6_™£‰C½Ñ€úãÑĶΦ“±íÐo¿õ0ð‹êÞùË•m:m².¯†ä@°ÝM,Ói‘5ê§kôªEB£ñ„†Ö¥5ÙdÜb},è>'ÏéÒ´ûxíYCkòF :·&#Vw}=ºêÙ«?ölºšÚWcG¤±_Ëé{Ö¥9@±°FPLæÏp‹œ‹Þp¸ã'$í¸yfÂÄÞÙPd‰¸9°l³?aª§>¢ë†-r®Ì¾Åæ/&\éÙoZ…XÇüûDXdiƒÞeïœkü°`KúSÛ¼dƒgzæL¬ÉtbÒ«ñxà°(ˆwLûg«o:§4;±©c¶ dÒõ‚paÏgSÇ’ÀY£‰iÛÓ«‰55¥Ú_#20¶îy<Ÿ¤±ý†år@}X¡ðfºG‚¥EÖ[º)BŒ_²<Ð*:ÈAMä“qseògÚ$Ð/à0.„+Nb)‚4Vš­Ñ ‹^5™íw=£ν2”F7Y¢Ér7•Ö†Vâ-ï‘©‚Œ ®‰6y…Ø5½iâRÌ Ô…A²ü5¬½ÂêŸFã =øµÓítšßÿ¬Ié@4˽ç+R”tkLúeEEvé{ãêð…2õÏ5£$Ýf=(u¹ô³ÍṲ̈¡º1¿F.ò-E}j8 úIÎ¥:NÂd±!•{mÍ2Põ!‰•‡(ñpF¹i`»¤õ0¸[ÞR·”hæÁ*äD…UY[Žy]šáNâ3dPY™²{îpóä6§¸1i Fé:æNÎR˜#r½%b3CgF+ò³S–†ôFY‡nŠ8ÄîÁª‘¦&<`AsôvÝóg,ð çi "]³† iƒYØ$àƒˆÃ%B`†NÜìEÑÝŽh|5œ:7Â9¾ágñé0ˆùdjÂ$YñƼèDµ N”jgR²Ê‹æ-޵fžmV.òüìý‹’Åæ>£lËÑ÷þÔ½e]D‹÷/,zúxlŸhAc»+‚°Chï9@¨á €òÍÔ" â¼ÐgRË‘EQ¥2DmÄÀ¢Ò©ŒÈà Z!¥°Ë¢¬]ì㊮  å)Ihö¶ÄVÌ'8ßϪŒb{2@àœÕ#5eY°ˆƒù†Ïóʹ"Ç Ü=ܪ:¤¯Ôå ýJÃ/8SŠmËÁ.+ÍIñ¸‹ª‘%\ãõYØ×I¹Ì‚*NN·ea|e_öœŸPJ9Í·ù³ŽüL‡Íáà>açé\~v ë|„1;¬¸=äÍîÓ:I#n‚ n~S误z•¹ QݬˆHHV-8ûLš¬šò‚JVáxôµ Êb¼£ê6Qóªªe W•ËéeÈר7 C ¬Á? ®-šßù’¨¨Ô™Ê³¦Q«±ctƒÕž4y#¶…Ï8Ò’¶t{¶v…û”ë¡*Ûñ§]ž³ñPX K¨æ9qÂ'÷¥›å¡Ôô‚é·BÚ6>E0>’ï„äºÝn¿3àyÑ÷lìõºê§B-–Þú†4ìO²Ü0°<+ƒöy)zÂð\ñ  Þ>d€,xÛUÂLzg:SAÆ›* @ËØáÒER³éýñÏè6ÍÕ-¸þ„²!¾9Òlz‹F©¦¹Kj×Hõƒ ”ÝØÏ´Âok‚TÀˆ]Jçr¸Ë„²§™ôž¤UÞ¦“­ )‹¨,"|—¯«ùžÖøºu=†2º1¼ [•……uû§áµæy^ó `ÔÿÄiДÝÎVz®>Žà5Lï ¯ßUgòˆ“}·Ê£ÅôËeâ*@Å”êsSruÕ¿EC]iÑ"MÖ<Ÿ?cO\tUt ½(º¼$ZACÊvÁüà6ð×ÀA¬]ºh-Y8#w c!T7ë­X¹%âV¸‘é„ Gž5 Õ­‹VÀV ÀB‡fvþ'kXÊÕKɤÎDå‚K€ê–J_Ü%Úu/Yc¶AûèvÛ¹‹» ÂìpÝû ÀÝ‚¶!†Œ0tE0ô´S¼–zù㵦y€3{Ûñü·5ÛyÛa1¿uÊ­0Þ¢¦þ…ëkÔÕ¿Àp%ýÉ«VñÓ«Ÿ¨,>Èi(ìçø¤>mˆ„†‡zܽ¬yôÂqÝ€G͆×|G_’þÌ!hÏâá#^©5{±á³²¾yIÿùaG÷„Y£Ï˪™U±]öÙ a]5ÈÛûÀV-ø07šÕ5ǼRÂúìÊŽ˜Ý5Ê Þ%Üyç²ULçRCª“(¹À¥²ŒX‡LÃÃcQù"ž•Øn rÿ¨¤‹l^Ke;~°7#ÇMû׆Q3»2fÚµ1óã‰!Óø,&H ‘ î)AT®x¢Á+ç7‹/Œ¦®æÿOJ|R„¢¬¦%W,lû<ò‘™øj–I…õ°"åÓŸ®5uH™†5Ösu– òcÆt7gÖä]eý>(™ÆqV6q¼–«$Åp¦ÚJR«ð†šÔ¤‘ü„©7öÀøú(ÄäjÙ½¢M¨tæ;ÞR¡àå¦!¨Ðˆˆ6ýœ¯Ð¸ßÆ^*Ióp¶Z"ø=i‡8!¶Ç°tRD‘ã'yàyÂH°é;÷êú„Gí³[0„y3Oƒ—&9*Ã8QV-¥ ü0PE0Ç6APAS–a*@Æ(-!ã¡á®d)pA‰A ‡z„¹˜@Hx%‰òƒÒ¹=‚Ñàlü¾9ìþ}9¼³Û6œ~ÄÆ ;ÝN<‚f¿ ­A<´O'ãÁpýks„¾ÿžšHT³ÿ:.‡ÑC°/.{6ÊAÁÃflwFØýVoÒ¶û] P ôcèÙö»é#A›#apaë›§vÏdƒÎìqŸÔ¡¾&\6‡c»5é5‡p9^F,üjÛ£V¯i_tÚH+vC纣óf¯Wð%Ü<í ‰ÍÓËb=èfÛvZcò'ÿ«…QCëzÈ—–Mt>tЕæð£¥ÄŽ:ÿ5ÁNØHÒÚÍ‹f«Ýœ’Ödع ƒ1£Ééhl'ãtƒöˆD¡øQgøÎnuF è F±É¨c¡’q“Õ£ 6ãß§“‘ͳûãÎp8¹Ûƒ~ÞcdÐØ&Žns}öƒ4~$¹ž ÞŸwðýbÊQkR,F½Ö˜¤=Q+Æsl8 ýN·gcÔ[j ÷ö¨SÇ)³GÔÁ–šß7?²vŸ& m“àµxJÁ>ƒfûMƫ΄‘­@38#I£Ië\EŸÖÁ®ü†‰ñ%PÊ’™ÎÂU0Wdm3¦‚;rÔÿçˆÿã9‚°áÌ1¤^B*óñ¤;ÒË…pÒUL "fxpÙ$vŽ*‰|ÌEOœÙ§ \ûbî ’ûZ \&©ìnÎüÕ\ä¢1Ü?ŒÐ+)TÝP†<²œÇØß?nω[—ÏÖÔ¨´š‚‘•”Íù¤Æ~gÌ~ &}dYdPN©’„²å×¥J¶MfËo*IšÊ–M•¹ÃålI²„ùUÙ’ÙØL˜Ì–’î‹ ó±Ù’k3a>>[*÷ ó‘ÙRÖ8å„ùØlÉp($Ì-Ùò;oçÍwiÿt<ô¦èəݞcƒäØ ®Ò0ô§¸šž{p½‡–DøðKä¹Xx¤óXd€¸¶«`&9; e^[#Q…Á÷©/‡ðh.µ©ï‚¸E9\‡Iú}o¢õüàú-q®ìÔù$ž°ùß­ÈpãpM‰(¦®7×o‘jbùrE/‘q¼E5÷ëMp5 —‘“¢à-og(#‘m nÎk=û´5µZ£:<{Oôkß Ò:w<ª&”of0»vbHf³Ä›ÿô3œÀÞÔ¾««ÝzåÏÇPÓÛØ:ünØ|µ×@+ýDT§Óakd·k{ÝèïÕÚaù ©‚S¶3ócš2;CÁ‘9å4‘‘34Ý»#w˜ÞF"ٿȉ%µmktœœ]‘wãh—L†Á¶–${áî6ß»ÚÙcæÝѸ msåÄŽ…r(¡Ü×âù…Eþm¾(«kè#,½¹¬z½>•"|+Ó©Ö?-[ ( Ûì¿ òrv´*¦Óµp>Mßs’ªùP+ ¶Š²êÅ®E»¬’¥Î »,p~eM‹Ï;:³D³·zQ/âZ:÷„'æò}«Ù:ïL‘#‡íSøõ×ûˆ «†¬ãõâB¬+nC]):‘SÇuLè3¡X’l,XÑTâ:B‡'P[¨Zȉg×XÁpÍ/–W‚jZjJlý@m1-`jç*O2f¦—%Â)¦¸¦4QM#pgá`-õ7ª›DL•µ`9í-©Žå¢Qï‚Hªf`ˆBÔ K¥×ƒÕÒ*‘u†ŸVQ¦ø ·ElÈc‹5›ƒÄL$ Vô2wH¢« àJ¥¶ŸMT"RšR¯/V*'`¼lè7!‚׉3êÆ<Œšxœ~• ÂåJ0 ƒ}s´K*Чz ç +l&àý: Ñ-B®á©´]¿kÜáqD„VrX½»Óßh½á/¿*›J²Öó [£õ.‡¹åÁRh…×V¦Çü®¡qÄà Hž(Ï~´£ Q© Ò…”„ñžõ=Ny©;†Ýè.'a[߉ÝnUö÷ÑŽôªA½iÉ!~·r仲³›uvïè¬%'±–Œ+[vÅ!+½¢·ˆ#-žÍÖC\sˆé+?]8ž¯=ÀGlÓZè5®¬/ǧ8Æ}ÈvÅÐÃ÷é!g =ü¸mLæÑ*H<ëÂbjzí$×ðYxÓÔ¢õÆf$¤x†{cÓç]­¦;[Ɔ«Vm1˜W·YL3¨­_l9¤ÎUò÷zõ—jÁeø$n±’;Bù•iÛnv›#L5ã£àÉ ô'½)¯¬¯ Î5÷âEPJ…F>?‘êž?o¨7'P£_oÞÀŸëð«|xû^þ¥T>£ X¤«8 O•Uêg½,˜Ò'™Y,puR² ÿb¥·²‹<Â"Q”k*G€93üdÁ‹cy²ösQs°6æ £Q­àÀ·dþ¢+ÚÊ#2;ëÁÈ2›_ëv%ݧ•ûûXû~8£Çéè¿å|„ ÕZ¯×áDiã`>n,« Ÿ«ƒ²`¹÷Ë}l°6à›˽7Xî}Áru°ºÅ`u‹Áêî –ûˆ`+n'²¨Ë£U^Í9²¨ånde<· Y,b ²úCVN¤GVN@;‘E]…¬2¹åÈ¢–»‘•ü.d±ˆ-È*k7²ò òÈ2¶µ:L–ÏÙYc sÜëz{€½À=«Lç¾p°Ç•ã¯[:nÔº¨w’†1v&êws:hôùçÒIg×\„WÞó‰$–Ô VÐÈÙ”ˆg}qÏu¼”4%û‚|ë¨9–;ɺ<˜Èv%´™ž SÄ\ÕL=Õb(¸ü"We ’¾r*UoÑÃ+¥‡ýý7ªEnÕ3õì™æcÚßÀQÝD–¶p‚*èt"!sMѸòè5«‰æÔå°Z!•ˆ©ì9«À %ù›¦_6-£wOL»ðÅ‹·rNÞ¢Qù;’vÂÒëkdÙÆѪÂ٭‡4ÛÑ0VõD!÷€¦ù®Ù³Ûì~æ?wà`76£ÂiX¦nÑË8\{ü}€ÎÓU|Ø .Œ¥ô¼eÃ`®ß][ ^N¸Úd™--"qâ|ø¾šùS3ÜR®hƒöêõ|BÖÔsÇ^ ¼Üõ¡\@…(èó:Ô…»„Â@ŽrÔò;j/Ñëš«¥ˆ‘ïx7›&²äãÆìTr¸oX0ŠL“IÀ[îE>»`èuúì=õW{Ög!.WY&Iáì>¥¡ÌЋq‹ŸŽì ".çÛ,[ªCµ¤ûœŽÖ/ÞFëiÕ¾§±?‹nMס:›Nk— ê6ׯgã,q ·ÇÅã ’¼û/LòÝá`r)#Ñ-³|)|®@Îî¢yu*á"oVº;YÞÝdy÷«YÞÝÁò®fy—Y¾ûXÞ•”ì>”åÝË»w³<Ÿglgy}æuÍçgešçåùÈCy¾»ç»Ežwã žÏO¹Îón™çó³d˜}–¾ƒì݌쯾Ží6àÞÇöÝ­lïþ#Ù^ÆG…,Öƒ|vÉÓ¸DöÛ\ß${c¨Ã7 û"ÇlO…«¬b±žÝ {ÊO &P×»A~Ôvæe-§3œ\”üŒû(o‘ãv†r%ä÷ÄrQŽ &óf°ª:î0œØ«“ÑW^séò•©ç Æm¶Œ”àò9S‰â†ÂÚ”±­ìËÚK—af^9ªþ{Þ¨9Ö‹Æ’³íáF4² «‰ "jp˜ét™ÅŒ'gq,;Ñüó J¼5ËmÚšÅcû>„¿läèÞ ÈÒ$Èwû4ì¦ÊrAüeæ°»2ÉÆqÈVú-a¨ìIñe£þ6i̬¿5™qÎÙ d·DÉù·Œ/ädw““sY_LÊ]í gšª:W5Ù¤eYMï»EZ¾§„þ}°²:|+Tð…O0¿#V–¶îdå¯ß|KVvóåÞÅÊ¿ëºý7çe÷¼¼ußðP^Vµª¬EwMÄ=ÄÜ-óƒíùÄ\„QÙ•»‰¹HeòŠ•º)wÖ›ŒÎǧ5'FFâÕÃôÀÊ_ª•y¿T*êÆ~ùêùE5TˆžjŒ™‚h ¼çÏë²YüÉû9¬Z*‹XÕVoÈ—¤Cöj(Ÿ3È:Ö£^|õuóPÞêãÚ P v^Æa2/Þû©Uõ= gãâV_–pÊ·$¬â›{í¸ qWoãÒ':ŽñhíÑ×pÓ(&ÉÜ}3†é_/ Ü33äšÌ¥R"ôùdJ æÙze„°«±Ä§ð诧ÆçW³UÖº‚¶Àø’F¼M5¥ü¶]ÙVžžbvÊ >1BdvÈãy6:ÈÚ'W£zß+]÷Ò׋¼þJøS7ÉJ,ÞY*#м—d•ë ©m×îèl\3Ú¿, ed;v-Ø «úJ%;¨babË•Ô_¤Ý­ä"‚9]vÊ¿Nb'Nž[˜…ऒ¥É'FJS‘Öu²,T{iÆ{ªåäˆ]ä.}þá‡ŒÄøŒ•˜C™¡2Íò×\ZQKÇ h¹€»3K9€ßüô³¼è_º½œg¸c™áH…Lq2¹+!Þkx:§ïŸ§sƒÖ²'x¡L‹NÝðŸ§:› ¨þ–'ÃòkŠqÄy?[ðlU×G„\-áò¡ì©Mâ8xš¼VרH=(1,‚oyß3ôiaš¨«•bø°¨ð’ë×_;ÜGé«4©íñ ½DŸEä;3¾cZš«¬g!ëín ¤+U¥½PäIł¢°²[ˆõ¢Š{ݼÛÁ®V@€ù×CØËÂ^áÆzåûÙUåo.Ê_ä?åÖj§SÊ5›O&²–]Çÿ7õÅå¡2xœënf¼P?AJÖÐ@ÁÈÀÀBßÀDßÈRÁÀÔÊÄÌÊÀB!7±¨$3o£© çdQÕÍ¡ÜëXð+Ý,'kÈA_ê¡xxœënfüÒÄ8AJÊBÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐH!+'1w£é9~<Ò›åâ8ã'·H¬’f’–Œñ›Ë%E4-½šï:LxœûÒÄØ×Ä8AJÞPŒ ŒõÈØPÁÀÔÊÀÈÊÔB!½(1¯d£‰ óäÎ*FÎÉß8 TCó2ËR‹Š3K*òÓ¸´8s2Óò‹ò2uœR‹²SsR+'»sNœÊ¿¹˜ù—g^rNiJª‚Rr~^Zfº^†—rfZJjš‚‡c˜k|pdp¼³‹«[p¼PªØ¦¸²X?¨¦X/ÃŽK95/%3kr>ÿdB®,#`QlHIeA*ij ‹sAÂHâ‰ÅÅ©E%¨jÓ‹ P ÊSÐL+IÉÌGb´™l (R_\R”™—Žª¸4/¨joZ(âã]}Üâã¹”œÌ¼T…øR +âÓŠòsãK3S8QxEéEù¥ñt *T.XY X]AyrbrF*ØÐ”$NT.Â8˜8Ø$uP>0rŠS'› Ýâ€Åææá$ÆÔ˜t qò põ áâ,N-kNÍ+±iÏDV„P“.Nåâô õñÆõäý"OÂÐ p †é,E>£ Êq½y½h.³#<ô]<ÝAæ… B!¦L´)šœ”áÀŒ‘’üÀ:ùµJ7+؜͓嵙“6ïSZÃ8¹E%I¦Bõ>Ëä"­-P®†ö!–É,ۡܽÇX&Ï3}åv™Å2q!ÇfNËD¦ÍmÖgX×ø9^æ ƒxœëkb<ØÀ8AJÔTÁÈÀÀDßÀXßÐHÁÐÔÊÈÐÊÐx£±óf'–ÿ\–i Ža®ñÎþ~nžîñ\Ê™yÉ9¥)© JyIÉù¹‰%ú F^Zfº^†—rj^JfPÙäHþ#Ø Ÿl&ð…IÁ`³š`'ãæBŒ›•E,7Ç‹®×‚3*Öì„#xœëkbœÞÀ8AJÊHÁÈÀÀXßÀBßÈ\ÁÐÈÊÈÔÊÄ@!+7·l£¥ óf'–ÛÜxÔl¶¸d☵å„cxœëkblkbœ =YI@a£ý}þÍJo QàŠà€nxœ;ØÀ¸©q‚””‰‚‘±¾¥¾±‚¡±•¡¡•¡‰BVNbîFS ~<Ò“3øßmŽheÜüB0R6ü½è DxœÛÔÀx¨~‚”¨™‚‘‰¾…¾¡‚¡…•‰¹•©éF}Y~ì2“ù;”ó’’ós KôÓ‹ ô2츔3ó’sJSRlà2“ñG1)lèdÜ|I°„‘W¡8µ$½(¿´ 5¯Äzòlá'< ‘‚Äâb¨€Ìæw".ÚóD0,á€FxœÛÔÀ¸²q‚”¨±‚‘±¾¥¾¡‚¡©•±¡•¡åF};¾Ée|×°ËnNä¿h"ºã€û$4—éLºxÆ §·ûÙ¯ow­#åÛ¡H{vÿ%ÅâVÄqŸxê=uN:tÚnŸµÚ/Z©óÓËÓ³—Ϥ‡}«µjµÖÑqŽHV±{—RÃkRççŸOUþ|&?Ï@¡8w‚,Ó„¢¥XNBÿ^ĉŸ>òÝ üE‡¾{B¤I¼Z%"¾ó °(çÎOÈ‹æ‚ð=10æ´ˆ£%%Ñ"ýèÆ»aû³uŠ4¢žˆ?ˆ@<Òì‘.E?’½¡'âÕs?ɘü($7œÓ:ˆ¨ëØòÍÌ]°BËe¢ÒG?½£(–ßÑ:e”e4÷¾ç2†J¬ÊJÄK?eEVqtïÏY£;7•ö/¢ ˆ>úá-+<÷™)aæ[Šô%?wNvT“ÞËu’^X®“NJ]èʨî,ºç­< ‚¿0J}O¨ €×à1ÌV¬4¯ª„zë/3Ñé¾"XòH¡윯¡Ü_£ eVæHóÈ[/‘Rn´âa?¦¥›"7Ü Ù:^ŒËfHãžÐPø’÷Cw)$im·eü4ÙæZ'¹VK©&8dú‰pŽ=Á©U–Q*(óQº“¿ÒEçXyrQ²§X}ι˜“*ÌÒ+Ir;äñ¸4m²GçÎÍ2Ïcktmö>õn°ie\CÇ&mØ'}4t,³7qF–M¿þªÙ`øþ{Þb(mxCÆ/c˰mYd^&pliCÇ4l•Ì¡>˜ôÍá…J@¡áÈ¡ye: sF*Ëc }NÓ•aé—Xj=s`:7R¡sÓ²¸sÈÓh¬YŽ©OšEã‰5Ùíê›¶>ÐÌ+£ba!˜Œk˜Eö¥6TìRÅÌžµÞ@bI90³oZ†î°=Û'^ƒv•챡›ü`übÀͺQsXÛøçDØd´¾v¥]À¸Æÿp B¢O,㊆#ìIÏvLgât1õm†¼mXצnØ]Œl鱉m¨âhR ºe¥äUeHÉ<'­m²ò91Á6ó¤3’=Ñ/sïçç@ù{ãIsÛД'gÔ(A“žµNÛ-Ù˜¾´‡n_›Ñ×fô4#Ü9úNê',rËÏ@È/ÂM×1w¢X¦‡lXûDzBVÚRÕ×ûF1¿Œû2›Óü¤èO°Ï Ös±ÅDŽß‹ ZÁ€ÙãþÇÛ9NÝ&;{q·[JcϾvÞ¯÷kçý?í¼OòCõpæEË•›žÜÕùõ‚.µkcjߨS½oœÛÓË-íߒǤåÍÅ"9¹{]{‚Cî/$ ^ù¡˜7fOŸÚºn7ééSú¦xøaÚ”„íZÂUÚ#ïÎ)ñ¼ÄŸ¿}O¯¨þEº×»$¢6Zºmöõ?{…®7»äµ8Ò¹ú²j¢?kžO*TrÃ•ë øŒw+^snÆÆ¾×ÒÇ•({mË£ÙHz§Âà&¸x§;>–Ä:£Wh=F>D*_U‘ÀDz;IÌ…ã— -ûóá©íôÍQÕ¾tîG@ —îÒþì0±…ã²C£Yîz­ÍŸH-šN? ÷Ã]ÏMjåE£HuZ<5«Ñ.ôÿ )²?”À}S»ÈâR{’%qù]ƒ‡”¦’E)[l`‘'¯Š?4Ä[Ì)wÂEË£[ŠØM³þ}ÒZ~¸+QfI”å­‚uÂÿ5ñ€á#¤º^§ßv$”òr€òÉ:¶›F>àÆ VQÎdˆèé¼Â“šÓ‘ç³õB¥Äÿ·À.ž6q<iô©P£b'^}©•-ªW”;UAÚM‡£+ÍÑ/êìîô´þXs:ÝÝ0ôÑ` 9†BÏö·ø„(t¶·aغÆ;Ï÷vЋð­Ð{;=ô‚(ôÓÞº´1TèÅAùù€-=Ké´÷0\JgÏxÃ3RgÏx YcGéì›~5vn”ΞåYÒ*=ÃÍáµf](=»5gd*§ÏŸ+­Ïz< gó!&»p½œ!Îoš{pÎHSÚgív…-#gFl¥\•‰‰cÎ#oŒ|Fž+\rùJÓ­)Ù~–©Ì¿óJ<`´öÃní“dNd'ÂoTJ,U©—Vu,åA^£I ײs¾‡bþI-¸³äË™³óúá=JÌœÓ:€PFËÌE‚æìŲ àá.à.€Çw€*?gñ†›^Xïz¨ „ëP’T8³4/X³ó¦1leq3Ü=°ÝQãÝ»f…7;o¶*ËeÖX,DÌwæ<´y^ ~¹`ö”ý 0ù7ÞÒû¦ì«37p1¯pËCUpËs¯p1qIpÿøCVyìÊ‚Bðg¸ä™ÜF¸gU¼©¼‰"Të0m$U_És[H”‹ÃŠÝðVT½<.é*ÌÉ\¯–bÅ;Zâ¼oÕÄ"KâB¿c\ QrùÊË|ßË´¨HåâPågÆË®xd=kÎã¬tälÙ‚ùÞÕ=7ü>¥;wµá»:Óc´Æýv é.zÈm%«39J¶(ûÊoåí¡<šÃ¨*F[U”z?ŽŽŽhòÕ9ÌHW$›`övÁRûÔ­É6s´é‘t,ï°(,"^¸ž¬cÙF–Ãò›7Û¼ ¬ 0©´Ó@‹æY4M4ˬ·aè¿°åƒkœÜ«mðÉjª”õ_,eß;§LݬqíË麵m/³Ê'™º¹Œ2F·ö[Q$Ëuõ(FíÌ©Ñß»Y™Má{‘¢hæ2éé¨(å;µ6á5?qe‡°·ÏÛïáh¥<(ß¼¢¢Ðï¿K{ùÝp2ÀU»,+íB±m^m‘š5EIH><Ù4ò)&Ó&‹Döû¯Y _¸( ºKV4‰.Åǯ 5ÛXýðCK±ÅÄf®‘;Ê,Æh ÄšRQîéÆWM)§Áàùk¥qùó&Âx«ÇÆFerS;¤»¢|"yÑ)±‡+LÃé¢ñ&«’–?‘ç¬ýðÝC]-Ì콜˜×[ ҭǯ7íTù„0 Kðš•!Šý@î&8E¶ÑkXYÛµ°Hí¤šÝÜX¤ë8lðˆ‰¶]:¨rZ=ÎÎhèE à£ê/WY‹Üäówÿ̤ۭí ϵjŽm9s–ÏÌ‚xs63žÏËÚ—%({¬ÞrÕØ$ >~‹)&ðU“ÓVFc“°;9-7óÔÛuäÚµU¥úwóºZ¨Ä‰T„0§”qü/ô«UÇì“*xœ;kû×z‚´¨‘‚‘‰¾…¾‘±‚±•±‘•¡ÑFƒp> ›¼¤äü܂Ľ ;.å̼äœÒ”T¸¨~rJjZ1Pnòq¾éØ™\Ìoͦœ™¦`À5y#¿X=—rj^Jf6ÃJ* RA†qa“L,.N-Âé Vr9™¹™%Å0Éz4Ù¢ÔôÔ :‹KR2óqËåd&á”,ÊÌK‡úäs (…øøòÉ®‚.E™e‰%©ú¥%™9@—)m¾"ø“=Öƒ´°¨xœíY[SÛX~¶E‡L‰lvv&N¨‘eª52‘d*KydéØÖF—$›°“Ùß¾Ý-É– &©©š‡­  ©ïÝßé>çÐ<¨ý`ˆ¬kõÞB"¦â³pÜÆÚGm8nµNš­Ÿší¡ý÷·Ç'oÿö#ü+pBÐ>Ïá‡ÚA³^oÖáÔxþøÓY’+CûçŸôû ÿ>AŽš=`¢þ(K!ž@†¯ÃÈ_Š$õ³ú¢:?‰“ÈwŽ” Ö—¢S©H–Â;B-dÊžù)¸±'ÿz"AL’8„4žd÷N"e‰?^dHÉbèŠä“ÄŒHÁ…ˆ’°æ"rERj5…ç§¹GàD,R4¡ÖEâ þ2ö#EÑË0mÀ½ŸÍ Nøo¼ÈHK{þÄwÒÑre.’ÐÏÈ‘y/}<š9Ç?‰ƒ ¾÷£)9ìù$”’’ Eö–žÛG[®qö Ÿ8 á"Í0I™ƒ¾’Vg/‰T„”àOg¾+ÈY P©Y›åð6}B£nàøaž#8~ì¬d¤tãôèÜ_ã äQš¼Ø]„)§,Zë#=ÐÉN®Ï#ÅÕ08¸7G`Ÿåˆ9¡x¤Q¼&sü,]c-NÒ«ÐA¨ ÂÃODÒA] ãL@ž£l ¿œÄ…®\Î…KÐBQŸ0—¨¢^iZÄÁËãB·ÀœÙ7Š©>_™ƒk½§õ {‹D Lí\3l £êÀ°M½;´¦¿ý¦X(ðê‘H•bÜ‚öë•©Y LÐ/¯ú:êAŦbغf5@7Ôþ°§ç @-` lèë—ºlö AöHÑcIœÁ¥fªøªtõ¾nß²Cgºm¹3´§À•bÚº:ì+&\ Í«ÅÚ(®žn©}E¿ÔzØ,t ƒvau¡ôûq¢¦0»º¨tû¬‹í`˜=ÝÔT›âY?©˜5ô®ßëJSuzÐ~Õ0żmj-íÙHÚzÊ¥rŽÁI_I –DšÚ%9Œ‰°†]ËÖí¡­Áù`гHª·4óZW5«ýÅZZØ ›G-˜.$ãswhéœ8ݰ5Ó^ÙúÀ¹Û n03謂Ò=NòÀà˜1Ió–ôR>¸ ¸¹Ðð»I9å¬)” ³§Ú¤­Â‰V1Ÿv%X0´ó¾ŽYW5¢HÑni2–L·ˆAÏ-ß(·ãçb¡oùc¼ .)èg ô®ur¾`F XzšÁi²†êE‘ýbÔ~‘^Ê«yVûéè HåáMó¸Õä¹ô­#ìé©ñ}}ŸEÁ,¢ÝãáØÉü”L®åÉ2Òljp²EBƒ(axð¼z<@8hdàTÚŒÄq?Eñ} ¼© ½oómšŸ–ã ãsƒ…'Ö:ãKÄs `üðxG ÖÛ¸Æì”ÅíaÉÁž|¼ßï÷Áûÿ9x_ýö¢±‡s';šíÑç \(×ÚȺµFjO;³FkÞwéCÚt=1If§õ—¸Æý ‹à'?žÔ×»êÈRUK†ý}xQ~ü(“™±UO©I»àΜR×M}ï㼇½oq}¯ƒFƒTÔG#Sµôž´÷'Ï{rgå>ÿ&•¹pž[&' ¿‹m %œÚ ¶%ì—éLà˜ÀfX˜•äê¦dâbÝ¿E4Å$¹pÝã¸;ÀýÀ„t„ w³ç4Ê©ÄûÇMÆ;îØVS\ô¬>Yʾ¤Ô±™ŒS!Á98ü²ûGÎd"+¤‹&1ã‹á˜ÒŒ*Ê£¢#†F_uú¹ã D70aß^i1‘=ÌEkÅÂmo8iŠÓu A̬’ö ^—4?ÅÊeÓ‘ÀÇÖ62™™ºâ¯¼\·§X-»§6ãËp¤;i½ú" kŒŠyËÕÅ[› ¥•½þÄBÇåjØTOWÎóJÕ_æ‹¶úM¢=™\Ëë–¿¬L5W`%\…NäÏ" Í Ãýq:¸Xx?ø$@å&j9Cm¥þÛq4Ý"¶7©54GvÚ”•óÕÄ6äúÛFÔ¾¦˜ÒR®Iø MK^‘,ÍnIËDqÿ=üG’6 Êmx÷¤H–7ÄÚU±/ïa—ÐJFÇDÚ+!6»MÁ‹ ?± ú¹!y˜J’ö( )­h×>H¸ãÑA"RÇUmÅÖ®ÓªQ;óaø@y䇧ÊÂüèîðJ ÙadÆn8£šn³Ù˜ÜÞàÆÂl¬èÉüÇ‘à*ï@€nè¶)‹9详ÙP‘3g÷î=´7*@ëU!®T!^åHãN+ãD,ý¼_v((‘·b¦æ[d„màaéàá`ûãE3õbØÃµ¬¿ ·×xÄÑÁuð`¤1m’iÏ-ö@dîj«;NœÈEµÕÔÝô$/Ͱì‰[¤_sÀm¥BBy_"½²ü(-]EýÇŸÓtzúŽYÝóX&ñR¸’ÞÉ"rùˆ–Ÿ&Ö±‚e(—šU«ŠV3ˆãOi1.=:ÙéÖæ¥dÝãNDYàÁ…¹þu¸¢›”oÜÊê•çvùÌ¡–/ù,ß´+rmm|`Ìo|)×IÅК£\+Ëüõ³Zq(GpùñQ>RI6¯~ÈsûM½:p’©x¦Wó¶íàqs Eˆ» E«½Éÿ·erxx:=$«¯_Ó¶v#€»'&æï¹þ¿£×¿~ý\ŸG„Äwÿ3Ýý#I¿ÆHï¸;S7æOw_oçÌwø¬èãþ½Ìyà²{÷|—®õ+]z8ÓçºqU[3|ŠdBÊ{OæR‹®cQÅg¤DİÚÉá3-ÞFxk@þ!_T5«Að~_£ädÈüñ®Aªð|‡ªK·iQ»;è×ZøÓ~‚¦´ãm¢É´5£ÇÔ“m*ÝhH:iµjÍ&d‰ãR;EQ |±¸-ÒWÌsi·rL&%ï»›GµmA*›Yko·cÇý”ˆ Ÿ‹£è€ù"Ëï׸ˆÎ{ÁHŸçAìg°º‚,ïýòsá¶p?¦?ŽùJô~滳¼†tw£Î ৸\ùr’.2c*)i-8ù¦pæ,.ºÅKâ,¦ã—ŸA‘»–#«éÂuEŠM;¯Î¥b«0Áù¿À8· ú9E<ðA ñ̆0/þ ‚(¶ø-8‘P§^…T® SÏUèéÔ+°ÊU~¼ë›…âNý÷:ÎÅ„nk1š.ðX~0Å¢‘ÃSúÔ©™‹c©õ´îð¼þ²V”–n¿Îúʹ%Mp=NäâŠcíKk<YÃ÷K­òú„V«žäÈ5ÚŽñØèlÒò,T¨õ¦U4¡3õ]"_*çºÚ†/_ ›_åz­:ŠºJïJ±ÉRqz|!¡ŒÏùÛG¢L$²²ù•a@˜N³xÎ#Š=1^Lk)C`‡™¼4X„uÚ P<|ËcÐä=¡0ðÅR¬ÿÃ6æ=¥6O—@XÀh*Šå‘§›™òÚÊ%|V‘ð¢^(樫Û„­x"ÇÚü~¬pmÕäJúÒbÙHSÞ¾ì7ÇLxYÉß*÷Gý¿J·}Šé•ZxœkpÝáo$”ÜMgš81ì{û¾|Þ—}ËáöË‹SpÌ"Ÿufæ;êÈ¿ìûn÷í!~Þ±î»ãî÷ÇïÞ±Û,L f^²ï´ƒÃVëðàM‹°~º|ÊÄí]Áô™ÁŽ~øáȤÿß‚¦wœyü–'EÎÒ9+ð:NÄÏrQ<ÑJ?ŒÅ<Ív³â˜II9Ëxγu …”x<y‘‰éªiÂÂ$b«œ3‘°<]e3.W¦" ³'y‹Üd¢¸ci&§«‚¤,ÒHÌÅ,$& 3Ζ<[ˆ¢à[f郈ðPÜ……´tžÆqú(’[6K“HЦœ¤Ð¾/Žéù¨³ešô³´i–Fà\åÜ)BØJRÃiú@¤4‚?IZˆ7Á!rC‰Ù¨•î5m‚ÒYŠÏ#öý®!PXC¤2~F+÷×ØÂ”—¥¤(­~XíñHAÏØ",x&Â8ß/F‚ënHçÞvdn„2§9©Üì'`¤Å9‹R‡ÂNé!SNäé¼xDØJ³$P²ŒÃ§-OÂÙ}’>Æ<ºå$÷X%±V¶þÍâUÄ72YÄxœ.áÀôi7ÃIÀ&ÉMvʳ{ó'‰¢@¦XålšåÒÙ¿u˜Ë…‰¤%á‚ï©$ÝeÎm˪|…‹SNh h)ãI'€àÑ"-xåYG2ˆØ„½¸••Äò%ŸQa« ˨‚UKy^öŽÏüÑYðÉòl†ç+otí ì;½Ñfž}n»Ï,wÀú#7ðœÓq0ò|öûï– ¯^‰DYî ³¾òlßg#9—WCr سÜÀ±}“9n88î9PÌlè\:Ø‚‘IúHÐîN6:c—¶×¿À«uê àFtæ.©;ƒ>‹]Y^àôÇCËcWcïjäKiä×ÀñûC˹´èaŽ Å̾†[Ì¿°†Ã†ŸÔpóÔ†‰ÖéPÊ’zàæÀñì~@þlžú@ Ö Mæ_Ù}‡ìŸm¸by7f)Ö·ÿ9ˆ$m`]ZçpNÿ° $ý±g_’ÁŸúŒ›FŸDA¼o{×Nßö{l8ò%bcß6¡$°¤zH\ ãùtì;8Ç lÏ_ÎÈ5HÐÅè±v$È#Wú FÞ É%ZçþÎþ[ ò¹3ØÝ}K ÉÝç®uiïì·8«ƒsîbW­#Qîåª?tÜ;ÛÑ;¥ôrðnW)¨‘¸åy!%ìgÁô¥¨£½KNÖúݽúÓ%Ma,YFWÁÆðl½ïÊuïr€Ç½Š£2ð‹lù]x¤¸°Žv-$rÍÉ/0‰+/}ç_{¼,ªÈ2°;dQ†.p.÷íF½(òÍÕòªÊ‹ñ¾¼X­ób¼­g”B-£IO3¥§q:SÑ9ŽúˆŽ’I5ªýÂò ²Ìo‘);p^®ç¹TN;g£ÚjÌËÕ¡½^]§‚Ê„r5‡ ¼Ä^Ú@ëÒr²uRhü³l1„±Y †…,w*}”iwàz¶5ØIª_ÙÞ3®«Î󊈘¬þ†¾Ú’-¤Æœc¾iSL¶)Ò‰V›pÉv´4ZÀ®„•HhSŒ…½–F Üc¤_,!WC·ÖK"ûðu ]£-‚ȆU¦ ßí1Á~d”dé\/Á«È5Àòúµ]Z%ò?Ö=JüÖ¡žÙÒž[”wdCý ûjOÙ^<[,uåP"Ú†² qmZeÉÚV`¢Ýc·.Ý1¦9³Ùþ‚ÍJ£ùucXšdë+µx¥M÷d;ɈE‘q>áY¦#¥évÐŽÇ4‹Øï/òWmSzcT¸ÖáiµèÀðû7'²×²—l] ì'vÄŽ4öWþ‚{ ò¹‘T&;Y ƒ¾ß]¤¿[Uzkܪ…¿8*?©rº}®“ã_(–°Y-SBa#¤Ì)½Ü¢ü7'*ËšëÓrÝPJI`kczîù0u: ùC8‘wãP"Ž7^Vè!0ò0Çý()æ0W«L®›à—´p‚©IW/„œÒˆFÄ“”Àõ+ù¬·ç!‹X(ç*Î^Ä«ê.X]ÂäݺðÈøè«Iœ&·kȃ …~DO4‚Œ϶úc1ZTN‡Q„ݨ´P®cZ]HŒ«qç šðØýˆ ±Ì|6¼9™¥+4’lÍaÔzŒ’†ªx”¿)1ËU#ã¨ôtV RúR_פ–T9©„Pµ²ëÙXOÇ_¤Ù“ÊÔ· ,§Y[îÝ(§ò!C©ymV©DçAÓ«äêë×›LR…‹šß+&Ý\¦“š>‘<²1âüˆy²îÕàZû"q,c¥DÉåÞº_*ƒï¨Ötúê!çKý%ÉA“5Û†Á¾©‹#%KRñê×î+ }KÉŠKHp»—Rð / „ámò’ð¼Ä¿¶ùk·-'e• Ôze0yb*yRjRÈò¹‰®!«¦‰lAÏû¡üô°‹ÙáN÷/…KκLÈâÉø«œ…ЧúÜÁYyœ«O^å׺C$xåO’ÔWµ?©Î|µƒ>è$©ÚÙhEw—_¼EÎ;ò¢Gmmmžîb:E'‡™y±>K°úæ„ØT˜¶ÏåÚÒ‘™·9‹Ë£?5)fcGy@’_›¢øî«ÚÙ+\òU-¶kìjSÐÿiQ}ÇW-:Aøp…”J;jvlÓžQ˜ô…˜öns“,…hsËæ9ª¾dn‘Š$Õå»<ÀÔ“? J!yhJ³:Ë¡õx#ߟ8g§Ã½5ͯ[ôþ…·¡c’Ý"ceC¦™v‹Ž•:}hoÑ=û|C§9w‹>tkæù»æÓÐþÃU\±,Îõá.Ïõ¸(€d‰Nq—ÕKl÷<õãUáL3Î6ÌUTIßDò”'wSXÅûµa#×.ƒMìÊHÕœ×Ëˈѫ± X y1ip4#¨ËKJƒ¡B]]XÙ./ Ž¡Û´T^d[‘Ô«[ÑŒåš\³ýå˜ý!Ç›åf”Rxœ­S]kAu||¸MŠfC›¯Æj[SlÓÐj”nEd;Ý$c7³af’¶XÙàSñÑ'üâ‹þ ÁäMv›ÔоìÎÌ9{Ι{ï~«þ¸[-æ­ÙÓëÎÆ2HÖiKÆ ÞÜÊ…2TJ¥j±ô X^„òýåJuùÞ"¼ hït1{½2奥…øY=Ý{ÜÚír^è3À·Ï$2Ú2ì ÛúJ†¨Ð’ï4":„u&XÀŽaÿ˜@¶˜Çàô™ð˜üòÙºôõã埗3i(ëAarÉG6,+¥âR•Àiív4gZª€âFÿÿLTw˜Ï•þòõûø[Òï¯>²¼æm.˜ŸÛn®×]§^wl¸sf’〠mC,¥©æx]*Ayžâþ«×PƒÌ£\Öþ›_f…dY qݺÓÜÈef[Ñ?¶G}˜ÍØFJø¼=~A1iz Âj0Á!_$Ñ,^0Àbgí1Õ§+t3pas³­µç ×y鸻/Ÿ6wëƒ{íV8r8Ã×§±³ën‘Tì!UŠI]讦yòNc³ñbŠ‹wdGQÝæôütíFô;„÷š’QÚøþ„θ5øÄŽë2zàÒ€SE&7¹qçÜñž®¡ÑѸHÍ…:óÍÄñ+æÌX‰Øk£¹¶9ª ÉŽÆeò,‡óëÛÖ¨F£MêUÄiOÚŽ«øÅ†“ǺËE‡àT±#ͤ€aÈý„™‹S¸ØVÓ[’ìãÂ&)ÅlWÈ[b)-žF ·3Ð òxJ¬É † 35hE϶·í‹ÐùUüºG;8üµ<^ÛlÖËH´°ôçñ™·pð°¯LPË’L¤X±,s,¸ÇÌ?í…½~@¹˜üÍ¡QéÇ#ku°©pgìÔ1æ-Ì''€Ð´aåÌvPsÊ–X篥•8JÊà¸Ò(౿•ŠhçycÚ8Õü*V˜÷ã š¢kÜH eö pÏ‘¶7ÁÛç¤hB´7Pú"¦97´ÑWïÈ/Ô/ëFêšoxœÛarÐh‚¸”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙF³ ¦Í³™[Yð¨ÙlÏñSת¾â›-xœÛa²Ád‚ÄFVމ2 ›]9> >B$á…zxœ»¨¾Cm‚”¨‘‚‘‰¾…¾‘±‚±•±‘•¡ÑFýP> ›¼¤äü܂Ľ ;.å̼äœÒ”T¸¨~rJjZ1Pnò¾©Ø™œÇo]¯œ™¦`€Ð¯”—˜›Z\˜œª—¡Ä¥œš—’™†Íô’Ê‚Té\Ø$‹‹S‹p¹«(5=µ.gŒ*Y\’’™C#P.'3 䣕!:E™e‰%©ú¥%™9Å`·Â½“Ûd”Û#XÊéSnȺ¼xœÅ[ûSÛ¸þ9üg»;]ø‘gyÌP–ÂNH÷²Ûåf[!n;c;-°íþí÷H~ÉNb¹˜›aLb}>:ßyH:‘²»Yû劄ooNÞ€?³Ô–²cÖ?ƒºÓMQÚ»ø§« êoÔö]‡ñï¡÷0‡_j›»»›Ïðú{6ñØë´Ù{ÃÞ%êð­Ç×WÃÞÕðæ A`Ìæãm›þŸ74BÛsÁ›@8%0èÿÞ{w²"ðéZ `jÓíÉÂ5)j'9<œõ†´KÃ}Ó›Í!ñá‹Nñ]Ýôá˜Ý·âóʽž_è“GnèaÏo½ ŽAü ½›£áöñõMÿ8î^:ò}ý'L<{lÂø†žeÁñ¼³”.§²Oކ±TxgøæÔn·•6ÿÑÜô¯¯¡î(9yóGß¾Ÿ† ™2üf„SϱÉ'ï]û3*f‡Äá’,>7}ˆŠ®Ã‘ãÀ€>À€ÄÿL,*ùïçp1†ÊÏöÎþè®Þ¯¯/GèÊÓþÙè\ÓYX^¹c4£32=wbßïL_müL\Ëžld}wL=a„;ÓÃwwM‹L‚¨mââ{´³nŒFƒã›þ‰ôêCý•¼«RÛÝ× ™Xˆ¦Ä°0`&½·B­ðqN‚5*S¹†K™‰ÞÆŒsÃ$å¶Ø50ìüu&‰©®n BËöÖ·a”®môm÷>Õú'æÙÁ»ì ]š2Áô‚íKýÖ\õ.exýÒ{£/Äø42Ûä þ“Ébʘ/³ú¨pc%¼ïÚa‚¤ïW‚ÞÏ-#$ ,ú´xj»†“àØ9ñBæŒIJ†™à]ïÝMoˆ¸è.üÕ\÷ÿêIV¹V›‘Y@BI²ä:(uYæÿAQØ[úôZYã'â{‘(*Ÿ§rPšïãó§·—àhƒù>ÅðŒzlaÏÑîH¹<ËX¥ÄÌ0± ¦¶MGÛ ÉÓÃaÎ q\ "!f f’ÒûâùÖ–@1ß·{7£áõèä?׃ CnúH¼†¾$IZŒði]…2lJ `K—a´† _Sèj¤Æj‹"P•A¡³#Ñ”éàúRz¨ƒ+ƒùh:¶i8Î#øÎQÈù<ŒÁ…±£-ò§–C&lLÁ‡`¶B:™á$´pûÃt-~l°@ý”³-;¼íÒîkh¦¦»äb°}öñð$]Û¦·b}©áÔ'ÆF`›L”œJag’Ìú;Çÿ\7§´“Ç:<Ñ~PîAzd×'9‹Û3DQ¯)ŠéòoüñIæðçEüWø—=PÛ_!÷)æøH?ý›—{±¬,Å}Mp‰›?#3xsâ±ÐÔDÞâ~ ý~¿`‰Sɨøf0AI°³@®ý“Æ+Œ!ÃÖMÓ¤5éÅB…·ÕÙ+˜ñ‚‚Dò 3QIªÂZ±ù[fù³ÊJ­T ¯ÊCÓèhín·û~ïÙ3ª'FÛhYíy™ÄXŸß‘V[ÑÉD‘ÄXŸÕ£i6,KÕ/’ë3£zb4CëŒIë|¶…Ög϶6²Ån¼joak¨<àøŸÚè¤tvtsÓ ¥¸~:€«÷——XÙlТƷçdfÑjØš ×ÁOQ9¡á†l W‹ß> èJæƒr‡,1ÎÚ¦¦+8/!ÔA&¦eŒ;Ý-Bt;cÃ2'dBª¢kÍF»µш¦niD(9„CÜûp©Z¼iǣNj ¶Ew_ÆWi “-!bѼ«G憬eìxæ§j뎺²–Ý7hlÓà¦ÑMÛìå›Y;0ƒ½B4°~¹XÈ5²®sbhƒ]ÿã3ã1~³kâsjQ“Ú›]?ã]ËÂÏ»&¾Å»¸ê< ê¥wwI\z \uª,öèD²Äº[4žªRˆ£÷‹Ø§R\#Æ%2xlŒÓ(®ãøþlŒÓ)N‹qEÝ6Â5‰¼4°ÌòhQ\[Ì£Mq]1o¿]ŠÓ…_ôœ éó¥ã¹>_‰Yòe¤˜e+‡®ääFE–¹ÂHÌ’//Å,Ó"©K-§·(a•œ&•†%½*ËF.ªD,ÓtUà7âïÌ΄ô³ŠêŒ}µRaêMÑ"úYUrƾf)§Ÿ­ÏØ—Få£rViU`ÉÕ«XrUW–JN¶ˆe^v¥PîVd™Uc•Xê9Ù"–ÝœìJÃR³*K%ƒ"_¦Qµ*ð›ñæÅ©¾vÙwÿ§æ^ȶN…K …“ŠÓ ËeȾ ?:ZÍKemAw‘«;Lz£"Uô5d›bª­¼ÝÅ1 وثz^‘WßåUˆ¼Ú¬JUÏë.¢Úepµ*U5…³D0½Ù˜nÅû$X8ñ2ÝûÛ¢ƒ°•íÖ(zBOXÆXvF:Ýb¦Ïq»Éé¶ñPaÀö5kÜfrºkLÛð‚*¦ýŽÛddmxA^) qÇín²6¼ çÀ6’‘ÆKíG'RWíæ×“Ýáä8 95|ØD8º ÛûuÙÁÊÂ~ñ-ÝCÞãïx“ ÞüÎîÙ{ìH+=y9ºœôtû÷²?^öF½«“þÑþ¸—œ1È5S}‹çŒ4ÄÛò‘ËQiÅ.þVLö—¶ó•;y£¶´ó¯ÞmmE!FO]Nï =r9 Æôte„ÉŸmàú:ˆ;£j&çooëØOÄ›H·2ÕâÕŠ 8m[ Sð?é»ä%ÑgdfÎ3Þc”3!>Á¼dÌAæ÷ØÛ{Kò–4ɸ$oé;vtx½ntVó=“¦©ÄǨՊÈ(ªêvQe 1v!/ÅéA1NK;»­C±¿¼SÎ$yÑQIúx ìÁG ç†ñÿÖ–¼K^·>Ò±¢pŽyQ Çð1ê—åSQRñäHþøKnWø?Ž»íj0.LWøÔ'3Ãvm÷žýÎÅ!˜‰ÌÁÁ*3#Ølèè¹â¨£ÃC:ÉÁú^÷¬s,ÐB-j"›ž´B6U|õƒ>K^«}·¬MìºH¯õL^?âÈo«|·ÜÃ&ü¾Á1hv2‡L|oÙ±»ú5€(îVHXvöò¹¨ØÛ¯¡¥/«º&—׺± ^懦—™]Ùï8¤ü jÙ÷$?htÑ¿æ]~Ž\žWŸaÖŒ´X7i®9·gÌç(‹[Û!ÌF.M55?ŸÅ^øP°6ï¼%ä_ÿÖåW~²ËxG­ã´ÛÒ—Çü ãtíGæÚš¬®Õ~|Ìeë ©H¡Ù¤[@Ä«…{°Ÿm¸Ô#éTX«UÉîÚºuDí[Î¥qWvü#*ÿ–U˧q¡²¿˜ŽÑdn]ÁñYëÊðu£Fók ¡FB¨"UhDæ*Ä,3Sq~ÐØ\}4¢vÊ¥ù†IÈ‚ÛA®tÔ¢hOlÓpCÆy'2j-NOûŽ Ü -ÈíÃCv¶0CÒÌ›CRCDÅ^î­ôµµô€^ú€ÆŠUôi­|$£¿Â¢ëPúóÁôg‰°n$‹B•NݹÜQCý!ªª¥î ™5xœ;U¾«|‚¤¨…‚‘…¾¡¾™‚¡‘•±™•‘ÁF½kLØe6K2/cž|€MˆE&ÿcÓšìb›Øí¸&× JŠgæ•Å—($åä'gGšÅjrUsq–NÞ((·ù‚àoY ˜‚¼¤Ê’Ôbˆ,L,¤ÁI ?­XÁVÁ$4™Ý@wr¶¹Â䕿B“ç˜ón.1ØÆÆ S˜ Vbin¸9Û<ž÷MBæšcxœ;U¾¹|‚¤²™‚‘‰¾…¾‘±‚±•±‘•¡‘BVNb®‚kE‚ §–þd9A÷- LR¸Õn–gž®Ã¿yŸ¾;cü&s&F ‡Ëâ3n ÖèxœÛU>»l‚¤¨¥‚‘¡©¾™¾…‚•‰‰•‰ÙF½kLØe6K2«3MŽdÕž<ÁÌss0[º)¤OQá€xœÛ\~¿l‚¤¨‰‚‘±¾¥¾©‚¡…•±™•ñF=&?g?7O÷x.å̼äœÒ”T¥¼¤äüÜ‚Ä}#/-3]/C‰K95/%3 »²’Ê‚ÔbªÉטt±[6Y‚Ù’…K_KaòDf±z-}$£l‹‹S‹Jô2ì°_”›bhfv\CqIJf>ŠzPNfºXQf^:H (˜–—’š¦ïâéè®ëìÂ¥ ÉÌK…BÄ4€^NÑ䄸™lÂjέ€“sY½Pø;Y&‡²¼ØÌÉÖo ÷ mHç€kxœ»_v´l‚¤¨©‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙF=[¦ÉK˜„'O`âž¼˜É »ªÍḺ½v÷ê+xœ»_v­l‚¤¨±‚‘±¾¥¾±‚¡±•¡¡•¡éF½ýLØe&31—rÙ妚èeØmîb¾jÙµfînxœ»_v¤l‚¤¨‘‚‘±¾¥¾¡‚¡©•±¡•¡åF½h¦É“˜$¹mò’J* R‹õ2ì&ïgÒîz2s)—MQnŠ¡™Páæ.æ«æØGÜî ‚Dxœ»_v¾l‚¤†¡*둱¡‚©•‘•©©BzQb^‰‚kE‚ §–þäs¬î›_22¥¤NÎf’T·IÎÏKËL×˰ãRNÍKÉLãâRÎÌKÎ)MIU°ÉK*©,H-JNÞϤ'OÀŽÉìÌ\6E¹)†f@-›»˜¯š\S. †xœ;_v¼l‚ÔF¹#Lå6³1{ZNÖβ£xœµUÿSêFÿÙü+ï/A„ ¶¶¨´Q™2Ð!ÚújÌ‘\àj¸c’‹Hß¼ÿ½{¹ð%ö‡~q4†ÛÏî~v?·K­|ðq@åµÛmB2%õiTõ+¯P¯žÃ©mŸ×ð·Q‡z£Y?o6ð‡ ñœ·9|<(× £V^{P†“ÿðGÅ+Ýß9pí8£“_Û#ú½Ž3p˜#úÊ&8œZM…¼œO_~ŒÄ„ñjð’¦|¶` IANY!‹h @$øHK‘BL%a\#¸Ì§êXÅó ‡@ÀbJ$}¥q†^.aÁäT;$2 Ã*ôBXP˜Q*!3 YV€ð sA Qñ6€/ c&+Hå§KŒÆ³!'¤–Æ)ÃÏ"Nî(ç ‰ÿDfóÿ¡Ó(å‚OîGi@¡ÄÉŒ&sâÓê´d| <`¡±1_ò±/fs"«ÓÖžÓšÐ0ѶîÚ¿8žûÙõnz}Ç»ÛÂ'ˤ–I£:Çž`r9§»ÁzÃX)[¡öÅ"IBcYæŒFƒb(Ç\8åЛÎà¾_€†>—ÑßÓWòN›äŒ÷Ú"6~ǘr†veÜ\߇}¯3Üôn·I–øX y¾à!›õ áPwô®]GŸìµcœf¿wÝñÜNǵàèWÇãÒ2Ó—oœæÐ2pt!ëjçþÊx~‘i<".Œ/Ùª“mÛæp™]¥ŠÂÈâŒDC°­pÕÅ%)™¨ªAB9™I1ˆããCý<ƒC\â=@ªÄ¡ÊJó2*ÁÊÀ~˜ÌÇâ…=T&粘»æ¥¤¦)Ä»x:º;»…p)2óR‘Å4€á’¢É ñ„ƒ@i “°dn6`½È˜æuêàxœ›-Ü(o/E/a3œÔ{ŠÜ)#ZãDy‡ƒ*Nm¾åÅ:±¬Ã´^Á­”jˆã᫤3Qi+\‰X.¬" #W§Š E´êªãÖùU¾(AÀÏõ‚{=v˜dˆÀ½ûÈîŸX+=Çâ·×ª˜4:!M߸½¸zí0(é2Å$›Êè3qÍWâ—ñÛ‘ø„Áe¢°î÷ÄËèõ$à—TÚýšLv׳æÅyqøZ4h§y‰€C?,¶*a[l„ЗɳƒvåùC‘†Øë„W©ÜF÷ƒ0SÇ ÚþðÎÂ_(¡Zâ„jxœ›"Ü#“œ³¿Ÿ›§{¼—rf^rNiJª‚R^Rr~nAb‰~^Òä&iQd’Ê‚Ôb½ %®É‡™ô±;™Y…K_Kar³¿‚–>Âl›ÉMÌ™õ‹rS Í @æ!”—¤dæëeØ¡ åd&AÄÒ<Ã\ãCý<ƒC\ÝmSš— TV•š—’™²7-/%5M!ÞÅÓÑÝ18Ø5(„K9E;5-3/YP#9?/E“3±¸8µ¨š±9ƒÅÚ‘_Èç€gxœk~%4AZÔTÁÈÀÀDßÀBßÐLÁÐÜÊÈÄÊÔl£Óä‰L“k™¸'O`òÁ®jóG¦Élr¤¤ê'xœkþ-4AZÔXÁÈÀÀXßÀRßÀXÁÐØÊÐÐÊÐt£Á&ì2“?2íà²)ÊM143Ð˰ۼ‡ù+¦~ê jxœkþ+4AZÞPŒ ŒõÈØPÁÀÔÊÀÈÊÔ\!½(1¯d£© “SJjš‚‡c˜k¼³¿Ÿ›§{¼—rf^rNiJª‚Mr~^Zfº^†—rj^Jf’\^RIeAj1Prò&BVMþÆΔ’:Ù‡YD•3qÙ妚€ ØÃ¬ ÝüŒy+5ðï€Zxœû-ôRh‚´¨‘‚‘±¾¥¾¡‚¡©•±¡•¡åF7¦ÉõL’Ü6yI%•©Åzv“×0`W½ù#SNô â€_xœû+ôUh‚ÌF…L6eê`K÷P°äxœµZëSÛHÿlþŠÞdÏ%zË;?j)H²›+–uɶÀ!ùl™G6ù߯gF²Æj²¨’©§§{ú1=¿™a¯Qûõ$H;g½w°œùÆîD»c×S×½=|, ëá½³,¸I‚Å5ôçðk­±·µ‡}OçA\îÜ£ÕâM Lãa¾³L¸]¦~OE° 8ûØÞ1 Œ¡Ë¾:Op–÷ ƒp ï—ìý?Áôî!ïN’»CÆcèú¿àÓj…è%w~#•5œË~&i²X‚rµHî`pôé >}î€ÑÔw •q½ñÇ“7ì Ýjµ¬¾å‚íénÓpÛÐi[}Óñ ðšŽÞ5Ý.´º=½×lõò®S||®ð¹Æg†OˆÏ >·øDøÜáã“à3Ç百¦ÝjZ}Û£kuz¦ÛG}í¾Ýn0h9†Ùê;Ðwl×Óëц»0ŠÂ$†E0Ò0Å×%$W8L¢…[žÕ…žÝµ{í¶ ×è÷;fzvÏô0€®cÙºá°zý-Ž;Œæwãcû¤wv:Ôj{ è&ó0XÂÔO}WÉ"€»`¹ ãkxÓ„é®^1UF¿õ‡'ýc¾}+hgç(¶}|zÒW‘9žD«i€¡|ZîÍý…·;;,‘yòPêÓ2ÌÙˆG½£ö‡öÙYx®<ª5å> §ª¾õ6ˆ–•^Hxû8ø¹? vgo%ž†W’üxŒÉ4÷ÓM­9u/}šËgÚüå2X<בZR4¥ t%o£áCþØþ½?:霟žº§'ƒ££²ã4I¢Ñ$‰¯ÂkÉÞ÷Þ™Åûd³éË—/ðö½`§aé,À@†KÌ e­R‘L×þbÊ{Ü5®Vñ„çV.§#v„Û`Ñ.OœvA­¡üÉüIYj0Õ Rk5ô~+SUeÉþ‰Tµ0* ô"‰”{?ZŒÃt©‚¢ˆoÞ¿…ÓP7¬©‡‡ `ÙÉÛPfæqt«£~› DSÀuk1qm¸žL`’¬cQbë"(œXÍYšcú£ö³Oía×µGºÝѧÃßÚÃÓÏ'½Ír=Ê$ŽF%8ùÜ͈ù¼« Ï/V¡ ­Ï0MFCÝPV#´Û2G)4| ¤¯ñÆ×dãkºñ…«ì.h`r­U˜¯®Ázu ökiX‡3.—DünÜk­ñ¨5ž´#JÜ¥r‡ß?â.Õ2üþw©\á÷¸Ku¿)7÷äÖ+&_½Ô-1Ó™/}m¬M´©†œXê8)Ðr"‰µ "˜ItbD°Ôýµ¼\ŽØÎ8%UáRž$ORÓÌ8%-¢Â V†$¯PcPK”UÔ ÃYË3d5ÂCVáe$IE3#I*Њ­ïRì_§”BoJ™Âi¦did¤ÂÓÌH…5fzS²È´3NI…CU¸T…'É“Ô43NIE‹¨°¨–!É+ÔXÔË"*,j…åHò$5ÔË£*¨V9ô¯S¢K¡·$‹lá4K²Æ62Ramf¤Â»½%YdÛ§¤Â¡*\ªÂ“äIj𧤢ET8Ô Çäjj‰cµÂq$y’j‰ãQÔ §ú×Y;K¡·%‹\á4[²Æ52Rakf¤Â·½-YäÚ§¤Â¡*\ªÂ“äIj𧤢ETxÔ Ïäj‡ b÷øÑ_ÎÀvX…Ù1Ìq˜Šmî.œ3ÀŒÛJNرîêÙ»]'‹0݉ŽÃ6¶Ê2eÛ¯ØþS8~.¼ñÂÉðý÷¤i þ‹~bðw©7æ(&愌BDEîí[:®£ÜÉâ–Ÿví¯Ãxä31øå€AÒÊÉŸÕÉÇP—ô1º8ŠË{8Sî4„(6ÛOòsY„RB©\þ/ºmš!'Ÿ˜Óà1Ý9®¿„4á–³S™{ÁwEŒßGù‚EÏ¢3^SŒ<^kŠ™Q¦kŠ•Q‚5…Eð…Ý!°gƒ[ÇèÖ1¼uŒoå/%ûk6󧸬Ÿâ²ÈUøýh‹£+~ˆlêòyJàOf»pœ$sÌbÜ¿GÁt7w(…ºéR [s)Ì¥(—‚ÜjŒK!.E¸àVã[ o)º¥à¶ÛRhK‘-¶×rYkR¨I‘f5Ф8“ÂLŠ2«A&ŘbR„Y 0)¾¤ð’¢ËjpI±%…–YR`Ée°G±…zÕH=Šó(Ì«FyäQŒG!^5£â; ïªÑwÛQhG‘—EÐ[kUC-Š´(Т8«fQ”EAÅXÕ‹", °(¾ª†W]QpE±…V¥…·=r°´±ÎŽ}\ÃÉ$ù’¼›¯ÈÙ‚‘¯¾°}þ¾D28i,“LNšÈ$‹“¦2Éæ$ÄùÀþçMè£`cég‹=[ÞقΖpoŠëf~* ;p$®¯ÄÁCnÊ&dP`B€k¡=Ìßì‹ EÓò(>/´ÎÆq^2i7"‘X§ïÀÐ-³$”ˆtSRiZ.“§„P•³“U¾¹?åW¿ìþx¤«…¸gá_³‹Éë`™–’•_)¢ií µâvH°\˜y&äiÜ©²ÐŒÜ¯uÅtŠ´h^Vä«Põ\ºV+1áSŒÓ{hâÛÛ®C~Œ6Oƒ9®Iìú7+ß×î*¥4ÛÕ7šºþ†ïPx§‡»B«špupt[e>°Q‰ÿ ñ²ðª.…³Ä…¯3~©7ñW˜º~)ñUþG6ù”n/EÄÔEHÄìÉ’©* [µšRšO!֌ˢùg„ÀlèÒŸœ°qþ-)|Hç!–xœ;à3Íg‚¸¨…‚‘…¾¡¾™‚¡‘•±™•‘ÁF;.“̼c£ø­D…R8' ™“ŒÌIr&óóKM–çæ17Ò(¥@??e–›P`ùcîäZ®¹Ù–w&#Yº7óó"O'Ø^cA2íëÖfešl"j»¹HôœðLœ¨à —#xœ;àóÄ{‚¸”™‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîF#NáøäŒÄ"…äh3“Xk. (ß\Ìy›1~s¤h7· D^+%±$&Ÿ™W¢“šgÍU Ó «ÌÄ?¹BYŸ,› S:ù°r PÂ_¥HÞR ’–ªóäÕ1ù/ æ€ xœ{â}Òs‚¸¨‰‚‘±¾¥¾©‚¡…•±™•ÉF㌡™i Ža®ñÎþ~nžîñ\Ê™yÉ9¥)© JyIÉù¹‰%ú F^Zfº^†—rj^Jfve%•©Å@U“?0N›<‡I—Y_Kaòy&±z-}„›ÄââÔ¢½ ;$±â’¢Ì¼t°nŠ3 AŽÊ¥å¥¤¦)Ä»x:º;»…p)2óR‘Å4€îNÑäL[áAÍß|‚yË䙳'[sº Í_\X”_f¿Ù—ë"8²—¤äÇNÞ(.»9F\— hfq‰Âä.•ó‘Ê ’Òz7éxœ;é¹Þs‚¸¨©‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙFŒ“Ù˜ä6ë0ÍUì: ÛîGxœ;éyÀs‚¸¨±‚‘±¾¥¾±‚¡±•¡¡•¡éFSf›âŒDC½ »ÍEÌáŠ!Ó ã‚xœ;é¹Îs‚¸¨‘‚‘±¾¥¾¡‚¡©•±¡•‘ÁFgŒ“¥™$¹mò’J* R‹õ2ì6{0I2rØg$‚xEÌáŠsü®ê‚Nxœ;é¹Ås‚¸¼¡*둱¡‚©•‘•©BzQb^ÉFÃ#Œ2)©i Ža®ñÎþ~nžîñ\Ê™yÉ9¥)© J“%™¤¹mò’J* R‹õ2ì6{0I2rØg$‚xEÌáŠ15jqxœÛâ¹Ás‚ÄF™*f(¿Âxœí]ywÛF’ÿ[úÌÛ„”( ÷a;~KK´Í,zIÊŽÇãÕ4€†‡"¸hY™ñ~ö­ê R‡“lv7z±DôQ]]Uý«ê®s´·KöH6¡ÆaŸðá [dI:#ú¡v¨,§º¬x»HòœÍHpCºt-NÉ‹$ŽÓEDž\±¥Xx) Ãôê©ìwœÎoÉå$'†¦ik} éN§„·ÈÈ‚elñ‰E‡²óEI–/’`™#St‘eÆH2#Yº\„Œ—ÉŒ.nP»Ê:ä:É'$]ð¿é2G*Wi”ÄIH‘F‡Ð#s¶¸ÂéDd¾H?%|È'4‡_ èL§éu2»$a:‹ì”!ìwÅòGøY?\a-#i¬x ÓZ.³¦“Sà©Ò ý„URH~fiž„¬-’ŒL’)‡åÓ«óƒ†Sš\±ʈëŒÀ€‰(F`žÑ˜ûmx!b–’R”†Ë+6Ë©RÚè#…ú¹¢9[$tš•‚ç CÂÕiðÉ™‡äŒ%¼ÖÏèCžðsÁ<™¤ÓÌÒ²Q&9ÔÒE&ùº¢7$`hA0“”°Yu ˜¹JsF„”ÀdvHb¨ÉÒ8¿´¤y‘lÎB4.èš ÕÉU ,ËÔLðßøeDFƒçã·ÝaÀç×ÃÁ›þIï„<{•=Ò=¿ [£6éžãÁÙxØv>Eÿ{w¾ÿ+‘\÷ìéýôzØÈ`Hú¯^ŸövÏÆýÞ¨Cúgǧç'ý³tÈÙ`LNû¯úch6tpL$´Þ“ ž“W½áñKxì>ëŸöÇï8KÏûã3î9Œ×%¯»Ãqÿøü´;$¯Ï‡¯#N çvÒŸvû¯z°Ì ˜ôÞôÎÆdô²{zº2W µ2Õg=`³ûì”ÓãcÁTOúÃÞñçT~:釧2zÝ;îã‡ÞO=˜Nwø®# zÿ~ ©t_u_À[·ˆTs|>ì½B¦A£óg£q|>ÁÉIùQoø¦Ü=&§ƒ—Úù¨×AÆ]>êsáõÏÆ½áðüõ¸?8k#¡—ƒ· `¶ ½O¸ g|Î ¨ÁðÒEyp=tÈÛ—=(¢\¹Üº(‹ÈïxŒÔ*-aTè¸2YrÖ{qÚÑ;;îaí ½íz`qÃþôÅÈo»ïøÏùôQaÀ›øX1âW+é?'Ý“7}d^6cõ¥á ž#¥ÑùñK)}‰íG»»»Ibò²û¦w3yÞqñJfát øùí,'2§ù~˜ÅÉåáäÛÝ¿ÀšMâÝæfùÍœeتRÿ$Ë£$=œ<­-½ lç|» ç7­ö|ÈXÞj#/PüÂ)³ewšÊewñ°Ò¤dŠ»Vä舻³îL†[[»‘Q ˆ–ÑY’ßpŸ…× â8§†‹ÕH°¤3ruCž/{6âXÝd9»’ÐM#Øt*H…t†¨·`W)"øod.™"Q޽g'½gç/NÄâdÆÐ'#7äI¯gr€ t6§—™³r怤c€Ã×ð©òŒ¼íà BXnœ$Pá#êÊ矟 §§¸ŽF°þ_Áò¼.¥ö.]òI nTŒ Ñé¢ì\a¤€c/g pYˆù :ËÐ)"•išÎÉ'íÄÒ{Lh6)›‘EºœEiI¹HM\Ñp‘rŸ2Eo&|>†I£zzÂeIöÒ™tXWWèAAìàcq<ö™^ͧ쑜6!aHNšgsò(M†jü¸ªË"jK‹áι¤ù—mB*âÑÞÞ¶90lçÈô¬#[7È+N°owsæKˆ€NžŒöVޤ?{7î] †'SJkXüzÊ(èäŠþ ÄxÌU19‰¬B=HÌÛˆ¬Â Sò|Ê(„v%å$'d¤Š @Æñø´wÑÒ=“ÑŒ ùòë”´*Lce­y›HÏÏþs™|=Ïre®’»b)°¡”ÒGoáêdÜà…ñ‚FSXŒHb" ãgÆíh]yuÎuôêõÏ:e%üX¦¡bö.ÐES«‰ íõ ±2@Åúh9Ô–- N3H.W n¥U2)[A2Ã±Ž®iVÄQé¬Á&¸%Ìa@Ì+pzƒ &à×çPÅ‘tOIëz’„¾H—‹™BUnOä°GbØúV®TZ9€`A…ÁPOÁétÊ•wE#Xõ»ÂÄä‰sj“þ³f^ßü°"Ùï¾#õêRXmðy‹ÈûdM¢q€ë`‘€ôÎ Ø©S†ŽÁ+÷)VéIi¡ELÈr±G¸ô¨øPÝ‹¬=扛¬RAwÑ2_rq²%¯RØC v•÷àË*™-?«Å±¼HfùO?]ð-ˆÐQ°“ ç}¾+„‘ɨOŽÉ„È`¾¸Ž$È#¥$&Õ5úâ< ÷Luu*‘!¹B…ɬ"¬buVu¶+EûzГ;Ç‹à&g1@ë}†Å ¡,B:Õ¦=x‡kŽiÔºX¼K¶ÚDZª}«ÖÇ+ûÀj›‚¡²Î2¯+^ܛ틇ð}q?Æ&6pÞ+¼¡°ý]fäT@ÃÖ(¡ŒDt €B`LÆ8À †Ð™+¾ÃØÎÅ6Žã‹g§ƒã/N{g/Æ/wZ²ªZHˆ×®öV7õŪ•¾ºSë sÜÔ«:KAIâoÔ=%¯ºÇÃÁh“Pš…~¥‚û?¬¸‚O1HÏ4Z×Ïí¿íîTŒ„äWsò8Äöc¬‘OøçéSd™üS<=y‚O¼MësÛðâïˆö9Ž5 ÿŸ¶±“Çûµ¢.ޱˆxœÆ—Uö«‰=ÇÚÊžiTÙƒ§j›5öJ6+|B{ÂÖ.¯rÞ0{l† Å_E^È®‘~Ùÿ*úR¼_*+m‹~ù²;RÎp8æ®$„²AÂ÷|í|·“%—¸Yq¬ƒ A$ÍÙ%IàçžRµÑ ¯Ö¨……°gy¹ïÄèø€Mù`°8ôÖ*R‘ ö²ö£ÝêRížœôÏŽ:¨z&U Š}¯} û ÑŠÖÛ­™6ˆ¡%›‹Î.EÔX´ƒXå<“bçÛN÷ î?`¯sÃ7ÇÇ@Šq—½ØCÊÓ†#uþ ϶9?âÔáHžB(Ÿ,wORÂ2¾û:@i)1år?ÈOT."!¨ž£íáìfD„Èñrò[à }?ßËOÒ£¾›~´å6_WCÓø¨ôt9Í‘úº<`”YJÒ9çÏ_ÅA+Øeig;ÍÃïè*ÒE^ïÀê­œvŒPx@ 1§È”÷‚E±1PÈb-l¿U]MCwøF2HóÉ7•“/5*Ö_uM´æi{G ¸5owˆÖ!­i»]m]¬“VÔÉd{ÔC+‚ö­¬­zb­1Qáy ®9·/l_ ­Ž^€æ}1@"éÞ?¥õ"§ƒýcpËÏÏÏŽñDöîž¹8ëH0¨JbÝâ"^¤2ñÑâ‰Àùþ!ù̃¦ŸÞý•LÓË$„M›Zp•³ˆøÞxF¯øòŒ‰8a´Ïè64üùšê¾[m q}P ß>Ʀ‚ÔH”ã.?k†½CHÕ™Øjü;âp‘ˆÅ¦Ò7‚L‹îåùüÑÑQ˜-ÂÃY’凗駣pq3Ï?ÑéQ6ÉøI§í½ w8â6BFÆ·ô‚R†ù›o æ¿­l«E„¡$DfGÈBAÉl‡€:BðCµUϰ@lAÀm óßÜ Ú|›wVCTÛ0@Ôâ($¤*´xÀó™{ñ„T¼P !ýáæ!€õÍœ .Ú>„HÅp8Þø:åYG°¬5‹"w’]ãIësç¦ó‹âà;Òºþø/xæ¿´«ë–~ÜØã³jΟnÊÎÈøs~¬|GÎëBJ.¯¨vÅ-”ªÈè€~æá£nvª†!Ûuz„³BB¯“°WIdë\¸+$¼‚İe’!M$ê\ènmXݯе’Äý$¸bsMÒ„bÁX Q2ަUô7H³JB¯÷Ñë-}ƒ4«$ˆ^ëCªÒ$îFiÖ¸ðk$½J©IÜOÊUüæîƾ{G¨lgÇ<Ì&ér Ž'†!ËP-Q‚Gh²ós)ˆ,³$bHN“`™ûƒDé¹ÎÁá1’ÎÉ'<‘Ħx>%Y$Ó$¿9µ‹C éÀÓOi©Íë)Írµ[=ÿ´×~\TãÎy¬rj+m:˜DÏj Õ~HªÖOÑ^ëçXدrt€^°ÖÇ´,yÙ½$oº§ç j™ø»gãÍ‚ç²~‰©>ÉMù‘˨ ’ôÈauäGhñÞ±>Àï»;ÚgËð¨ûÞù)ÄGŸ]Ýt-Ë×ÅS`‡Z„±xb~`Gµá ;š¾í„†ˆJÛu]eGß0cÏ –x¢Ú,R#Os)U#Â^É´Mv4,S÷ì€I¢¶ºQhÊŽ®0;r%UO‹X Ç²©D¡æPW<…ºÄ:o‰™åŽÊ1X0Ëõñ¤ÅÐ8 5¾R= eG#b¾:Ru-Ï¢T2…žRpÈЋ¨ìè{&³uÛðL=tœHJUÓLà åüƒØöÝ8teÇÐašĦ¨Œlêúº%g¥9!uL[NC· ßðÕÑpW£ž-çÁôÀÐM9†Á$¢X²j›&ÈNWRulº¦m©y8T£Ôª§‡FèJƆk¡§ôH fÕÕuê8–ìVàCòÉuB[§jÄH’žîË9:¾¯9†?¶4fÚj:¨”jœ vÔ}j…º.u¥3èjrŽèÆu-9GÓ ´ J[ÕC- ¤T-y”ZJ†Ô’:v<ƒ9q\˜œå!3)×£¶c*sð¬Ðs=]™cºšÁ¹á ,Žc9µlP“Ÿš±²UÇÕ]/SÙýò˜;¹>Ɔq<) qæ’‘—w_à" ½H‘ $rÁ‰¼÷ŠE:ö™SØN8.e…bM0ÂØt ¥gÛŠcÛT¦më³ 7V 4Ûñ<µbôØ3#ŸªqÀ´0BU«Ém‡¯&¯Ý0ø¯aša²Ø±Ã‹ù¬%º±ÐŠÌÀˆessžîùQ„ª¹Â»Ø´¼ÀÆ¥U¾ÀÑìHÙJ¹H¤±î[±Èæ #êDž®{ª¹Ejj¦fXŠw…Ž–íjNŒ¸(W»ÄI‹1+0¼P1#3²ã8°˜¡š+äŒ%<ßQSUjºã;^ð.ÁÔ°CÄfËæ UÃØñ Ç·Ts¯>‹u‹FŠw…³ Óذ™©š+Äõ/Œì@QWÐëº4ôCÇ.¦*1Øö@3\Õ\±Ãà?Ë+¨+X"Ká—2‰Ï€ÄºmuÔ –CÓBM±(À´²VØŒÄnß‹_• ˆŒÅ¨D5WhnÂÀ^*É(X÷M¢” ÉH€‡N¦gjRH¯Q9Ì-˜QoŸF+#PØo‡†àí¨æÊ Ø4´ Ê"e3Òø‘of«æÊ/x3b… …ƒ0AQA V®ÂrYDAš²¹òºå!™j®œ“®™ŽUÈ]x‘X45­°HåO"-ö|×וEJÇ¢9¶0³Œò0™mèj­*WcÛŽMýR«ÊéØ.˜»fP%wé}L#"=(¦ªÜPà}h¡¢®üÌU§€¥š„gŠb±À÷es墬*Ë+©|Uh‡¾ æ ì]:-fZºGÃBÊ}¹®cª¹òc‘G f”C³a˜§lFy6€׈B2ÊÇQ=¥»Ê€•³eY¦Ï ŒT^Ï0Sg†’Œró øU`¤r„&(µÀéa:† Â/Œ€®ÉBƨá8º¯xtTºÊÍÐÜ–hDÝ(rˆisÊ€cÛ@\1Ø(‹`œrñŸAX:€E Œ@¤ÚÔÀUO‹Õ¤Ãê÷=ÍÂ9h`ñÊW×XÀ–«¼^¸.£©Ynä){7‚\À>×°üBMfè3pT#X ¦ ê‰7´l5-² ¹[ahGÀ ˜ ³Œ@->%Ã÷ÃàÔe®¹ÍÄaàØ™4‚?LQwBËÒ}/´¨å‚ûCAÞ)$A§½ÍOÃgL4nH |p‹01ÛS/PÈð) 5aÚ‘]*¬Å×t–>€B¤ååàÐ#/v!JñÍÂÔ×4Áj\€I@d³–E=×ñ`ƶ^”GØÓ€}ÐrL ú–$ê¨îpî&#çm&×ä3¦«íÚo±³`x?êñîΗÝÚ‰¼ìwðÕÅ:›ëŽbå¤ÿ¢7Ët8lüwj¹€‚^°Œc¶(zUsèØ©l—äaº„(ù¢=–é¿2ý°z§Mð\Ýø”B9e†î‘¸ãpKN½îïïV.©Ü–€¾—<î=ß•‰¶äLŒ”hû×›ôݳnœl¦œßÖÇ}½ý†öBE¼¦rZœi‚‹L¯ö°j]tÕEÈ,ÓdA¥$•l¥DÅP(ÃLWLømUA“¿Š¨o=cT0ÕtÖHPó*¥;´ChÝ!Q‡àUê¹ì à’ÿôÇõÆc½Cöp’PžÌòÀ;X@ª÷ð`s—°]éÍ’_ðýe’ål‘•¯,ÍìÓ¡8Œ½b¿+*<Ï…!êàù^û|ëå:–‡ëå–Gëå&–³õr ËãõrË/×Ë,Ÿ¬—»púâîD)÷ ¡¸¯aÊ^·IK]­©¬[ÁáqS£I§Ö¬¹ô®6knÄ)›57’¼¨fÍ –E³æF•™a³æF5t(6ú‚7.¦Œ´>qHØÚYz]¼‰°`WT\R•/!€ÄKˆYêc#(UÙØ*Ü­BÝ*Ì­BÜ*¼­B»UXŽ¥„uœ^Í—¹Èf‡ËÅo'Õb%þD¡­­D7úx­BçÁz…Á+Âõ “WDë¯`ë6¯ˆ×+^q¹^áòЉšû”áÕçy3RàBÂB.÷‰Àì"pRξù-ôxÀ‚ö¯Ú·E¹;b%Ío¸æäB²ŸØ"—wÅ'x9—_B‘³…Äùµx·wÍî|>½©Þ4áWê,¯[©›fx¯l¡衸ì»#"Isœ#ͧᨠøÎ±ìWpÈï&=צ¸öîñ( h@ϦL.2.´ Än<ˆ2ܺ‡¸ùEÐeŒëN)~@+FÈãfŽ È×öÆZFsW¼¦ u›\ ñMA~¹’°Ïs€§ŒšCfU±1cqsÀ¼£ªVæÝßß¡ÏýÃì?˜Bÿt®s®\‡Êê¥|7{Î ïVÿ*^AÀ— ní‚¿„Å=mq—=e¼`,›Sü¼Ä?â´ðü: ¨Èãœ(–/ÏRá’ Õ k†o)ÎÒ|‚­ø²¨qY*¯õŠ¥-_ V‡Mßü@ÎÎOOù%[$/Ÿ¹¢W_?íÁ[ÿmò/MÇCÅŒJOëÓ —Sn¤O_-ùÝkƈh‰w"?ÑdJƒ)Sïv‰ØA̰ .ËÆ·Jj‚-$ûôRt¬ /Ïñ½®Êˆ?SÆ_YäoE-R¼„·Åùàõƒ·ïV‚›÷ÅÈ:DØB9$.ñ†#³ý [üÍ Þ>¨ÔðB®ŸýÕÒµP°0Ï­çç áY c\Ê!ïÈÞ°`Dô°ÙãØè-zo…laÅ‚kÁ©ˆ? Äà«IvÝkÕ.ç®)#{ªçj‰ª GØ5I|…¦oÇ¥:ãA3äðƒ¤\¡¨¶–8&!¸íñàìÃåª(6Vv ?tÖJ¤áïEûûëç1?”ö#Î&VÝaÔYé³1…ªðËÊ…÷â^T»ÉèÄ–!+»Œ62^uÂ[‰iqçðëÓ˜ËW‰iu;ü¶ÄtqCý‰éæ»ÅÊýÓ«/w7&¦ßk«w»?å¬ñšÄZÎú~)käü)kðÁeÊ/’nNYãëwNY Rxô!>ÕSŠæ”"ް!¥ØùÚ”õmòøµæÛ’¾oæzËÜ¿:sÍioÌ\#¿Û2ר»ž¹V=6f®y—™ë­‚-%¹"b)ØÕ“5ÉËØw’ø­/»l̇€_mȇ8Ö=ò!ÐX$°êïÍ7¤>*¹’?s ÕÄõ­ëÿqS£‰Ój£ Ôj£‰Ôj£ Õj£‰Õj£ Öj£_)+ !Hž×_OL7aN•“­òÝ*×­òÜ*Ç­òÛ*·[ååižÿ.‰éÿI ‰é?Áø7OHoßËm ]›2¨°gþªÁJ5ó·à~Múù®Þ’~¾•צàô¡éçZøô¿1ý¼÷®¤ŸUØ[¤Ÿ×¢^U³õ6¦ŸS#,³Ï÷ˆ‘ÿ`úüÓƒþ®Ùgt›eöy«ý˜}F#ªdBV~¿t÷ þÐå÷¾­'vVÑíd¢ë±ßÆDiC@öû棷ŠAå3Û¿QbzíÈòá‰é{È»HLo{“A²(3Ô Ë­š¡n¨þ½2ÔwÖìÃSÕMßÖR;3ßœmþJL»58¿KrwKnXOïB!Êk[7½©›þ¡’Ù Æ·&ÑîšnH¬6)lû+Ò„·%a›G\KÅVnßM á{³rK^z÷ÎÙà¯ÅöÝ{f„ï÷Ùmº¥t9ª²9~M7æ?ï4ئDð]LxsX Ð(Oå—Ú«on; ÄQQ‹ÿ£òL¾Äs‡Ôp3Û’`¿‚æ¾×LUû ã寔ó×šÓ o½8ÔÑÕƒ£•‹CÜYÊ‹CÈûAU¤æ¤Lq„޳ø¥pëA»O—9XÓ’”¿]ƾê:~çŒ}Sny%cÿW¶Hù —û;%ì¥yµ…U–zÓ³~• =~#ÊÐãç»dèU»‡d蛿á+2ô«ßÝ~ÿ }=üBzå¾xU$kûâ=Ò¸/®o°k× JÕÈr…­ˆÓ¨¦ÿ+ˆÓ$ª?ü80øAƒøàGÚš€Ÿÿhc Ùn¼xœ[ÿ‚qÙ Æ ì›ÙÏå4áŒç¼xœ[ÿ‚qÊ Æ ØTòÒ2Óõ2”¸”SóR2Ó¸¸”3ó’sJSRlò’J* R‹õ2ì&_ckÚœÈ~.?Óµå¼bxœ[ÿ‚qê Æ ÍlN)©i Ža®ñÎþ~nžîñ\Ê™yÉ9¥)© 6Éùyi™ézv\Ê©y)™i\HryI%•©Å@ÉÉרš6'²ŸËAêºXxœÍVÝoSeÏÙèÊ9nu²ÁöìƒqNSú9jÙXXWÆÚl"!#£o×ÓµçtçœÂY.ŒzcO$ñ# ’h4`4G þ&Æ £^ðÆhH„p§w¾§íYé¶Â ^Ø4ééó>Ïïý=_¿öí?˜K¿1K.;ôŽmßÄð¨é˜×™pœ3^·Çã¢ow<¯{À탌L”Íç¡ì.Îeg{ÇöFCU‘»i¤Ûçr¿àòºÁíð|59SJ¡, ¥±ØAýÒ«×ÅúÖúL(%²…$=RK$loÃX¤ÍÅ• |qšà¡-»P6Ki/ÒÚ¶ã×á­øc¸ï‡;›ÙEŽ]’¥¤é ¸)Ìw°¥‚¯ž.Àa´²ž6§#[…ußNÙŠ×C­ß]Ç.âç© Ùß¿R€§|d)ù÷ŒFš«'-Jo65¯š3g0ˆ¿z»p~ª ‡~Ç áÉh;Þ­èJËBç§£ñáýÀsc}øñØ‹5ÏŸŽ:#Sæ(¾é]ÏÞa,Ú†–hpýÎg¢ó’?£¯›ÊøïfiÈ¡‰îj´"Š"§x{Ù†wÝ0#®v°•Kæò¶=ÿB6vy¼Õ²K^Û…Äü)¿E?øòM¶Ô#ýò+vF?65×6£žT3îÅ=E™¸ù8‰ð$q1Ârþ~:g«¤âòÎ(þþµ¤ÂH÷&µ¥â+² /$kK…¿m©ð${ðÕÔ6+KA`çÞ™ieX<Ÿ‚•¢ñ)á} XsªÞJvô<šTE;üÉŽµÉ¬R‘³Ë?ÙêÌá•bA¬,º-ÝÈP¥èGk*€œÝ‚×Ä&üFÜSÓ§3ÌDVNã{™áõ @g¦µÎ+`Ël`}þ”“ÅøÀáR´¯Íž0õb*ëÀ-ã6ÍÚ*¦U[r7;SVØæ|ÍÕ{KVÓ­ÒÆ,æfùÈŽÇëŽÁf/ÊW̰Pþ ÄÇø/VC|®âÇ7­Ü=ŒÎµcnî芴 œRZºEym9¥‹ê~)qÿq´ÉÖ㉘, Öu)Evò$ÙÉú)r“ýRä6¤Hó­3æ¶–xœÕWkoÛÆý,ýйNÑ’2!Év’›ÚiZJ¢$2éKR~4Ô¹´xˇ@RŽÝ"ÿ½3KR¢-¹ 4MýÅôîÌ™93³g×|cð¼gN![°ãEØv•;8j¿„ãn÷¤Óý¾Ó}GoNO^ŸâÇÿCv¿„oÐê4›VZkGúvAnâqb7\y<ƒ,‰8ø«ØÍƒ$Î g¿òü4‰„#ƃ]ù‚‚Ÿ„aò1ˆo! \±‘òešx+áßF“'q2ˆ“ÜñtÎò ÂååƒY@¾"xš¬ò ÆTìŽÃœc|æyÜS‰Å^a5_ÝÖ-üàž{U¸Kžf Ómwç(p5ÖpÝ¢ºŠº©T ë×w­f‰Q±¢N,Úh¢4£¯Ñ®I@Wº­áÄYºMzùJ½§‚>5 s+>kC¬ˆ¶‚>up©Sò¥1ƒ­—ƒc ÉžöÇeõKmÇKõEàÃX½ÔfHd¨fc\)îR8ˆçx‡,YÞ¡ØnÛ‹ƒæ <²ßÜm–?,yFV„{ÜG‹óælfõm} üµëÿ@>+Ã6ð§ÓW0 ø.€Z2¤=KærÌ¢$Xn½e^ly{ñnC§À0ëœßò4aSð\›û†3ydê»q>2ݪˆxsPÑÖNYî~m)E%ºæ…ÁüñÚ*Fqöhm]ÝÙ@WGª‡Ài¾À|wÔ×$º:äFA¼ø£Ö¿â\;·5gÖûY³Ì5F}QZ*¡Üˆx”ñ\’–²]¤PÞ@uÊGFœå ›"´Ÿ(¨4ǯ^wNÞ¼ì¼::ži±'ɵ§ÞŒtAàC*§‹¬¼º¼à–㵇WÓylr|²Ý35>b!¸ –2o0(êv*æ8£‹Î%yùêõß|Ïæ.r=8k6…õæ§Õ,òž ƒKb³åã' –R@·æ+_nþÞl¬fqÝçéûÞthë?ÓË ûá¬Ù(ñúÎuaåæ÷¸Jã[ÿñ=âU¤@"FkÔ;Y¥ÿùŒéd‚G‚NÂõõõ)…­îUÚ‚ÅàWqõ8È¥o1¨L˜8Î’ä{XŒdÉciÃÌœYÓ˜ÜÈ2¼…®Ül4ðå´JcºÂñãMÑsDgjD)”éüO|©øSFwH™Ätéá«C¤±ñ‘Èi–ËÄ[Ä(¨#|Y‚†&Ç8Ķګê³Î2”‘vN˩ӶŽ&£ÿ§æó­&ãZ—Z¯ln«¤´«ßŰ¾/]¨ê¶3›hÆÈP EU.LÎ*ßF“ß1UÛj3lÚNw=¥n®Ïp~_›€²ˆ…‘Ê<×Ûðû¦üC|Œ†R‘‹Õ,4èJúvÏ Àî"‚;‡‡X£¬Åá!º<=_Òýº÷~{ÿ^Òäÿ¹GéÐõ Sïð~j®½ÐG@ók6>ñ¥H‰HwIàÉUJô¬œÂM/©ó¹Ë£*Ç.Öòf¾D§>=?<–3©žjd‡ÙÌð¦âñfšŠ bšvêÂÎc»ó1¼–ëÖð—áž%€â¼Ð•–O$l?ùû"BGÙýãBGI|Q¡£€»„î¹N—:Wµ²ÂOX—½ûð#ׯTçŠQÞW綈üKu®ìåž:·ÅzO~{éœØØ9/ôÿ‘1ªÆæyYÙyžw¯gðñ©øœÒÓt?$˯W)»\)‰/ª€Õ?û(`e[kå_P@rýJ°å}p‹È¿TË^î©€[¬÷T@á·¿>yçmKÇÎ3»ó=£r'¿¦rì€O=æxœ{ft×h‚¤ˆ±‚‘±¾¥¾±‚¡±•¡¡•áFÝ×ìX%&ëpìá°)ÎH4Ò˰Ûü“#Wƒ±á Txœ{ftÇh‚¤¼¡*둱¡‚©•‘•©¹BzQb^ÉFãv§”Ô4Ç0×xg?7O÷x.å̼äœÒ”T›äü¼´Ìt½ ;.åÔ¼”Ì4.$¹¼¤’Ê‚Ôb ääWìz„¬šlÄÅ”’:¹›CDmã0â°)ÎH4jßü“#WÉ83ûá€Pxœ»k4Ïh‚¤´¹‚‘¹>*[š[›(då§¥o4Nf7ËKÎ)MIU°ÉKJÎÏ-H,Ñ˰ãRÎDÕO,.N-‚J¦¥¤NîæÐaRÛ8ŒëájŠ3ph/.IÉÌÇ)W”™—Ž[cNfÉÒ¼Ìâ’ÍÖœ}ŒyÅ™éy©) “O‹¨l~ǵƒQ &’œ‘X¤ •Tš––Z¤ÉUÍÅY W»‹Ç¡ñXùæ\ÞF¶Ì¼‹ø’É÷øÄ’_ù.#[ѹ9HÀÉÒE‚h… Á Ú|\˜¡tói‘H—ˆ!4n~ önû ‰©ôž´ï‚Hxœ»ktÚh‚¤¨‘‚‘±¾¥¾¡‚¡©•±¡•‘ÁF½6öÉ{Ù%¹mò’J* R‹õ2ì&¿b×îz³.‡ jQµé@xœ›g4Íh‚¤¨…‚‘¡¡>X(ZXXoÔûÀ=ÙIÌxs$ÏQßû >ìtxœ›gtÑp‚¤¨™‚‘¹¾©¾¹‚¡™•±…•‰ùF=^.ÆøÉµ"*›Ó¹v0ŠÄ'g$)h%•¦¥¥irUsq–ÆOv䱪Y V¾ù7O#ÙÍw¬©só{~€#Ää8AeˆªMB¥LŒñ›kEnÀ¤JÅ€R›ˆÕ1PQ*²ã„ xœ»ctÅh‚ÔdA…vçÙ7 rx KTx¹²xœµXýoÛFýYú+¦HI>YIÛ;HI´DÛdI%©8F¸¹’ØR\IYU[ÿï÷f—¤>’æpœ;ëýxóæÍÌÎ*í úv,²+gØ£tõ¯­ÌDËo>Q·Õ¥WÎ?ÚÝN»óu_õ^ÿÐ{Õ¡_¤H–dþ¶¡oé¢]­¶/ªtA¹Ù'ár•QÝoð¹. VI˜fr³ Ý´h(Ö"KB¹åíF‘ÚžR"R‘<‰ Åóüc‹ç’p¾ÍB“´M…1¥r›øBÍÌÃØKö´É:mÒ.ÌV$õ¯ÜfŒ²–A¸}1šä%‚6"Y‡Y&Ú$ò) 0ÈV^†_8Q$wa¼$_ÆAȇRFás Ýãq·uF-%¹(8ù2ÀÎmšÁŸÌWFõæò‰—riŸXf¡/šØ¦af•{§œ`Ô¼p-%ҫωÀà‘"ølAîÿÃ…´—9R ýíZÄ™W­xÈŒƒ¿ö2‘„^”„Wcàc7”s¯[*9¼àI$Y˜²ÉÃy6€<¹^¶EîpØ9=À[9‘ÊE¶CØrZJ ÙDÞþÌÏÿ5–»HKÁ¸½ü„þ¸Œ¥õËà¨mq§@<‰Hnà ô>RAt9Ñ4‘¿?k9BÐ*Ë6½v{·ÛµôzK&Ë6Ÿ?9ÆÁ\Å9’9GSâ|×1A±·ÎF\·HyÖxÏÁ¤¹`54I"dÂÊ$ìÈu]8”1ƒ¬Oì–OÕ+*‰Òð¹Žp4äK¸‚b]KiZÜ[Ë!gríÞ¶IOíÉ{khéê‹&3÷vbÓÏ?–k52ÆCü<ùaj›ŽC›q¬»éÈÂ)ÀØÆØµL§IÖx0š ­ñM“®f.'.¬;ËÅ6wÒTèŸc°É5Ý™öà3Æ•5²ÜeõÚrÇlñ| š¶k f#æéÌžNp… CËŒ ëÎÔÚ[cØ%ó½9vɹ5F£c§®L2®F¦†„SCË6.SÏGcEÀeÔ$gj,˜Lp7ì‡& Ádì˜?ΰ ‹44îŒÓ¡ú©Œu.äÌlóŽùÁmgv帖;sMº™L†¬.9¦ýÞ˜NŸFÖûšfŽ©ˆ ×Pæq°ƒš9–’É»¦mϦ®57èvrÀÔÀé¡Òs2fŸu˜û¡Y¥x“îoMÌÛ,!Üsmƒ…q\Û¸ÇÛ`ÒØÊ¹ƒ¿46oFÖ9˜¼aÂ@÷–c6#Ëá –2ŽÀÃìLùÎ7 ?KÌ¦Š Y×d ß[Ì?ß°;Vž"J¾Ám®~™áoÞXA„&B¤:ä+îtÜÛÝï¨û}ïû¿÷^¿&p|÷®ªä‹üú 7ñÜ—ë—µV9‹0H¨g×|ëÇ»Ùȵ®¸pA{¹¥gEk®7¸´W¸_#î7QÎ÷™º}ü•—x>nÊ7€º6çI&w~½ÁðŽi$<ÜÉÊ$Üèš.± ®öüNáf†[ËÊjèQ {WÛц‘62ɼy…Ù¾¥œ|±Qù¢_R fAÎYˆÃ"w‚x©ç¥/ÃD!zz„òtjÇÒ¨)\‰á¢¾T´—ëc 5Ÿ“¥êe|–o„} miÎïh¼A—× ܄ўæû¢ ¤Ð(¢zí¸®Jíïo8ø‡¸•fä6ï¯Úõ¦ê·èÛ‘ç‹³Ý ’?+ôæCMÁ[ľ`?*µµZé:$š8ë9Z1w÷Cž$8&º[¬d¤© §rZÁ€2èg¤ð†›Ð|»X1Ýn6Q dÒ"Œ"éGÛx6ºÌ¸OÄèßçÓ‚j8•†¿‹šv'àšHï°X™”ÐyvBIºá®”Ë•k¾tùzŽM—Ôm—…z i/JÔ“î”hŽr°}ÆO¼ÊWz¦ŠŒÙÅ’ßœÞQ ¸ó®B8´AbiÆ€åÛ»BÇÚ”ôÊ=9“Vq}¥¶ª/u!U>Œ ,â>ÜÖkT*;—Éz^‡Õ$Ì5éåzžÊÆÙ\Ü·uàÏǪ~Ò•b¢ÓÛòfzéóËq¼»zDïz¼3>hÔ°Ñ/N?³ç¨‚zûbÄ}hÈÏÓ4SÔ‹v§Ê"JÅ_3×”ê|‚aE»û¿P®×}ü¾Û}ó–j;µý“ºÔ£N¿òßÕWPÁ`:sË¿4®Ø#©`ýÔ³~¾©S?lS®Ç¬qÙmä;*K‰,{A¿Mžèoo©8Õ/1VQEð²ÓÈ™0ÈñÚ›ò,ýùg¾ÎÔË oèôòåÑ=ýS¹ˆZýT ªÌñÎÊ€HÏ~V*%¸–\M>Gÿˆfe-ÖþfÏLš”gkaMg•F:àÄÂåçkÏ¥HÏ'ÑúÏ!×ñ¨í&_Fq«tjæCÅWo¥œF£úÇ׫µ¢ŽjEQB#sÌ%ô©_­ †ðMŒ±¸ššü[bZuBL¢î"/Í|Lå&Kwór:†î2¢úûëçTf É6¡W–TÂqÔªu\¿îÂ˜Š¬þRóïhmp«êÛád]ž­ËFÉF§4묓¬Vk –\tj þþVï÷‘zX8¾úyÎÇô†+A¥G"¼_yžñ?1 |öSð9ý¾Usà›æÄ~ñ×Ç“¿ŠµvŸó;fˆJ$ÿØËcÂçVÎÌœ8Ty®–Àï¾HY]ÁÖç¹g­´ãËRW+m¼AÑŽÊg+÷5ôZ*z­LšÈ}|_—qM5²X¿ °§Å½+Gë(ÉÓå¥J-õÊQùVÅ×SfŒ##eÅ7b¼lùe»ÈÇ"Iø*|›$üLa;9æá*íWŸ«ÿ> žœ¶³xœµV]oÛF|¶~ÅÆ ÉedÉmÐÖNRPÒÙ:@&U’²cC‘'›ˆøò$×-úß;{¤,YI_ T0LòövfgöŽÇ㣃WŽÒtJUV”I¦ÝÈZS¿û–Nz½ŸñwÒ£^ï´ß?=yK:ËHüQЫƒ£ãVëøèM‹Žh˜erw¯©uL÷Šj`:ÏWYê$Ï,’YÔå {¹$“QQ©*U®UÌã ¢@6¬»Àpì‘æŠ}1[Pe1F[Qi®ÕFÜÓnPÌN~æãfOQU¨ˆwRÞj%塞ÞUUմϼ"ÆÒ'ß=®mOî§ž{%GbDƒ9"0ºÜ™3²é:ðÈ¢ïΈ†®xr0 \Ïg°/_l¯_›¨íÜø8õ„ï“둼œN$pAäÙN …o&³‘t., 9n@y)aÚ¸–)áÛLrÏéRxÃ1íœÈàÆPžËÀaºsðÙ4µ½@gÛc´éÌ›º¾ Ö9’þpbËK1êŠ1‰+áäíÉÄnsñûJ…Úƒ‰¨© t$=1 XÒön#QàÄ"*†’oÄG5¶wcÖ¼ð]Ç¿Ï0qÙ—öôµÿÝc º4œyâ’kvÏÇŸ ü@³@Ѕ뎌å¾ð®äPøg4q}cÚÌH›éŽ!ŒûÁÌ—ìcI'ž7›²úÝk˜ldŒÏ0…5Ã'×»a\6ôÁ¢ë±À8úí4òÏf;|8 vg‚~;b±Ú.&òB8CÁQ—®¥/:æ ó¤ÏsdM~mƒyÆòM¿P[}»³ž-ÓU’çd®$_O6ËŽÈfé`ÔŸ Çû¼5p ¿l^%ô.›GyZ„º{ÿag´Òq’3´Læûcø¸ã1 .hl_‰[?ÙÞÅíøyjXši/ñH˜«E’)º”N;´hÞ¡v;ì¼kÏ;¿ázŠk§ÕÂGFkó±ÑŽîÃ’Ž@hQ•ü©nµ¹Xü¶Á{µŽò‰j‹ºÝn§õWë`Þš“$,ÎZ@¡¥ÊÎZf¼Òa©ÛaaQÔÁ Dé=­Ÿ(ŸÈ6“pz<ùÐÑ®pʮʬ†þ»ÕªøÜ‰°Y±}ŽðzÎV8CÞSï¬Ö³þO‚¶BŒ®')fÚ|µøÔ?ùõóæù¨!Y*ºÒ~Ñ”Ñ!älkZààÈÚ‡Ç9æ¡C‹YÓó4{MÁ®‚£W3¤*ŠÇºµHàõ¢ºÅЧgÃôU|®{hµ Æc.iQ*ÕfÆýÅðßiAã‰txœÛ&¶^h‚´´¹‚‘…¾™¾¡¥‚¡¹•‘…•¥BV~jQúD5“ü¤ÌÄb¿Êô¢Ô<›’¼<¿Ô§`½ü¢t;.-Çœ…¢ÌôŒ’b…¢ÔâÔ¢²Ô”ïX™&obQÕq ñðRpôsQpö÷ òt ñ VHHp Vð VWK9úE š,Âj%¬⯣âáªàéàãéêOdµŽU ðvUp rYêâììãèéëꢧàé§àç¯àæê¢ìáèã6j5¡ØìäªàãéèäãªàvØæ¬¦’ eÁ®¡@S<}\}Ý]ƒA²>lú“ëØä˜Aì9lÚ“O±)‚Ù¯ÙÔ'‹²«€Ù–ì*“ØUÁìVvµÉëØKg¦¥¤¦)øzúq)—æÁ™©y)™i“ý9nOvå,b䜬Å)-™™¦ ‘’Z–W K[[¿PŸÉG9õùÑÅþpf«(Ø*ä&æää'kä£D[ÁPÓš‹lD\a—Þä­\ć™îxœÛ&Ö&6AZÔDÁÈÀÀ\ˆ -ŒŒ¬ ̬LŒ7(p°dæ•pMöâ4Ý¼ŽƒÉ›‹3757¹ R£¸¤HG¡@G!'5OÁF¡8³*UÁ̱s4­¹83Ó4Òš\œœ@MÑ@‘X[ëÉ\Ü:Mù"Xìƒxœ[/4[h‚´¤™‚‘…¾‘¾¡‰‚¡¥•¡‰•©‰BI^ÞF³ìxÐn¶À†äåæm¬%…rïåIIb>sŸÞÐp'÷Qü8Þ`ؽÜäÆÎ…Ë@q2[x¢ÆV³xã3ßÒ•ÿÛC$5 ²´:q’2×_TøR"ƉÜPòøð˜`¡*+¹é€˜Ç\……XO4,‰81l²Í#çB³tÂó™ež=½G‡—˜Ôi ;’“9ô4Ç0g€¯ zÔ5ŽeÓ²u{«Ù€X_—“Úà’ôßÏ,ݶɴÈ8=ë€EK8†nK þ°g Ž›˜õSÃÑy]³)xïHæêV÷¯Ú¡Ñ7œKñÈpíá4:Ó,Çèû𰳡ufÚ:1Éžawûšqª÷TB Kú¹>pÈ>Ñú}³bË©¿¡y¨#Kí°¯ç@³gXz×a>ÕS""½~“ì3½kðƒþ».šuÙ*ßêæÀÖÿ=„¦©§jÇ ·ñ¹*R,Pwhé§œ±y{xh;†3tt:6ÍžTÛÖ­s£«Ûê›¶lhëMÄp4Î P Óx>Úë(càè–5èêõ-jýòÚlo-îMþJ—7cèFs÷NÈÚÑ”w" ¾ˆä4>lyZ-ïåOYþ=…nŸ}(ó èûûe—ù,KýHmHAG›Mv£6ê>;EIÌü ,¾XK·×Ûa_-M¾(:Öà ŸH(åœ0ýÁ—wB~ØÍ„Åü½Aøÿ¹K¹ÊŽ­d¨pkª”=p{Vî×nñK~òò4–¦ìãªq¹­çÙN9Ve¬H#¥Î-sÞ\Ÿ%bŽþFþGE‚†!Nžr$¼*õªÛ,†>O3‡ëÍ›l¯ñA]Ä«M<9ĵekJ·Ü¨U¤–QV'VY½Ž‘÷„|ÈËÔ¼—Aeþ¯âúLUÚΞæ‚<°’WìzíqÊÉ$hÈës›]´÷Àª¸×¼8KœÑO åP݆ÿ ëðŒl êUxœÛ ùCu‚¦”¡‚‘¡…¾…¾‘iebael¡›X™¸ÑyÓæ¥,Üû† ¼à xœÛ ùEc‚†´¥‚‘¹¾™¾¡¥‚•‰©•¡±BV~jQúFg!nÆôÍ¡ÜlL±%ù¥©Eé©yÅ¥IJѺúz±J: Jñ "HÀd”£8cµ2ó’sJSRAlmè8˜¦H­‡c˜k|LŒ!DŸ¦¦¦µÂ毼»Ù4ª'ë€xœû¢ñVc‚†”…‚‘©¾‘¾‰‚•‰±•‰‘BVNbîFç |“Ý2&Çò¿Øì.ÐËäLÛœ#ÄÁ î-€Oxœû¢1[y‚†”©‚‘‰¾…¾™‚¡™•©©•¥BVNbîFçv¦¼ÔÉٽؔTŠ‹’•&ósh³+©¤¤—(M¶çИüVH^H‰+7;%³HA·@,ÃÅ5y°N’WrŠHP²Ø6!-3/EAOA·¤² U!¨º(3¯$+-¿ÈËÌê*³VHÉçâÌK-O±MHMÎÈŠ*Ô(§¦(¨ëÄÅèéëè¨'pq&'§*¨LÞá[²Q_¤ƒ‹“ÓÚš‹3µ8he~^*WZfN*ÂâE¬v§í+…[ž³< ·å e@­›S8õyÀˆS&/âÚ<9ŒÛysXÆ.Ç( Âe*¨Ê8»èiŨ(ÁäQÌÉP©õâ—Ò@¨z”3· Y^In\ßlþT‘ié)-ìVÀ‘œXªÉoÌÐ}k&èA-—àuIZ&Fä¾çÙ™ä‚9xœ{«ñFc‚†ˆ¹‚‘‰¾…¾‘‚‘±•¡•ñF î͡ܜ¼– è‚ixœ{«1]}‚†¨™‚‘‰¾…¾‘‚‘‘™l´çžÊí¼8—‡Ø ë‚Txœ›­Â”Íyç1y|'âë€xœ›«4Wi‚†´‘‚‘±¾¡¾¡‘‚¡•¡¥•…BzQb^ÉF§#œ›Ù¹ÄØñß /î€>xœ›«Ô¯4ACÚPÁÈÀÀXßÐ@ßÐHÁÀÐÊÐÜÊÔ@!½(1¯d¢Ó¢ŸD87³s‰±O ½õxœµWmsâ6þ ¿b§í\ ÃAr}™6ô:ã€HÔ;µM^ú2©°åàž±KK_þ{we zÎ4K»ûìî£Ý•Ò;n|æJs Ï@aÖ‰îF5œvOáÍÉɽ“¯{'_ÁéWg_~yvò ü–‰°÷Kø¬qÜk6{ǯ›p µ|*Ò‡¹VÔ¶vÎ%”À0R«<&UyxuÉÂÉ2° ©e±–1í“(œ§"KÀ¿±,R”AR¨h•˜GQH”æ¦Hg+ƒ£^öEP³'Ì‹T¥áGµÊ„Þ8ñeŒÛuAä1¬4zÌÑɪˆ¤Ý™¥¹(ž QÅBwà15sP…ý«V†P*N“4ªr£È–²X¤†âZjÆà\ü%'ËÔcš?PüqJFšPÈn!Í}Ÿv÷BÓ ’ML–”ÅJäÌŒ•PÅL­ITàO®LÉj ‰âÌÖ­Mo7&te"]ÈÂЛA‡5F6`žñ ƒûb2Ë )VÑj!s#6‡ÖÃóP(/`! –ŠÈô–x{`\OÃ&÷y× ˆ×²0©&—[{r€Š´™HaVXŸtìT·MbSˆUX– t²ÌÄÓ^&"z—«ÇLÆ’pÏ* ú±u^²g0Í([År •¿–™Zb³´¬ðÀ~_Y"S£·í¡ [ððE­SË!åbasy±oð¸¶Z¶ú²òZFÆž`&‰Û„2qWU˜ÔB¹I+ÛË;„”Òök€Db€ãWlÀéƒÝ2ÌÆñï:kG¾çì‡)ꡆÎĹÀüZ‡™±´à) ¦>›PÌÞˆp‚éyòp2¸ð¼¡¥<`þ5° c/°¤MÖA'¡Cî C1~ŸONÜwCæûÓ+ʾ —Þ ’ƒ8h=´<#)”3òäùw„KdØcèÀÍ%Ã}„øÇ GÁýè~ðÙs¬3þ.1ØZ"ï™–‡T첿9›çŠ—µEÁ½0Rµk^®û{‘ìk½Ê,SÑ;]Ó²ëþVž²BËšT¬EšÕÄv]“㽎íñ6¨^ooomg<‘f²æÜ.·ÖÉ®ï¤òÝ;n6°ýp£ôN·×j¹TÕí§òÌÞ†Ö8Wt“[=1Ë$És•¿.”2/ÐòU˜æ‰B¤üÈԴש¨Ê¶ÕÆ1ÿ==.’> ð"Æ·€Ex>Ø' îmbe–áKužFsŠ®q£ŒÈjqu  ·MwÌd—ëä#\ê§<*¤ˆõ*u ºÇ¥>¤!>"£4- íÍXzµ~î“ø}^mÛ&îU£JZ´¸7ív-OÜÙ鱸»ÙO'¿üSŸîu=˜âý†6îqg¿I¶Š×ˆ3q 3·_Kj¯_ÔcŽO·Cä$Ú<-%b¼¨uôóÉQÿ½EnTþ¯Ôè…vXñ¯f3ÍM³šº­rÞFsQÀ1Îýy^ËvøîÎd$ É-GhYî¥5XÞ¾…×§m ø¯ÎªÈq‡U};æ_•×ÂFŽ£¼Š+Ù† HâÿNRÅCƇ£ùx8^-à äŒxœ»+7Kn‚”¨±‚‘‰¾…¾‘±‚±•±‘•¡ÑFý¥ì~yÉ9¥)© 6yIÉù¹‰%zv\Ê™è¢úÅ%E™yé8%KÊÒŠ²›S9~°*I&—âŒ_xœ»+wDn‚”¨‘‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙFý¥ì2yÉ9¥)© JyIÉù¹‰%ú F^Zfº^†ÒfNŽvy×´ì€'xœ›%wHz‚”´™‚‘¡±¾¥¾…‚¡™•‘‰•‰±BQe~~ÞF“ƒL›·°p±L~È#Éêæãètë÷Ð<|­Fãø¨Ù:j´¡Ñè4Þv-¸œ íËž+/*•£—x ½pññÛYU·Í·oÞÖñÿÛ6Ò{ÆÀd·,Hb§à×QÀïYóä‘VzŽÏ§apç@õ}H1D,fÑ=󅔘ÌãqñÉ2áaNàÁ2fÀˆÃeä2±2á=âÍã:<ðda$>ÃeB(óÐãSî:„Q'b°`Ñœ' ó`…÷ÜÇdæ$ÂÒièûánÁ “PL($7gI‡ž›‡k¦ ?S›ÜÐCÎeœ ;‰ƒ¶ª3 @ð/î²:rð|Ä#˜•Zá^Ù&TêúŸ³ˆb­MCPa!"™!è§·Dãþ7¶€ô2EòBw9ÇÍw²M;Âý‘ÁÜIXÄ?^^lÝεÁ`\È=pælK:áŠ,¶c"¡Ý+ŒâÔª¹óFùƒ~„ÀiŒRM™‡ #”öÐFÌB˜"AÆ#§Éf@Š•&Ä æRj¡(§œ‹(©™^qœúA2ö¥n5<·?¨¦ø|mßë}­Ý$j`jša[ }è ÛÔ»#{hZðû徭ûûD"(Õ¸í㵩Y MЯ®:â °©¶®YuÐÞ`Ô׋: Cú•n#›=¬“>Ú”„á9\if↑]} Û7 sÝ6HÝ9êSáZ5m½7¨&\Ìë¡%Ðȯ¾nõª~¥õñXë*í=ºÖ¥:”üD¤’›] MT»%ô ›}ÝÔz6ù³zêaÔкA¬k­§ÓƒöQCWTó¦žÂZÚßGÈ„DBë«Wê:WýNXpKz#S»"ƒ1Ö¨kÙº=²5¸ûA!¼¥™ïõžfÂ`h‰ˆ,­ŽJlU¨G ’ñ¹;²t8ݰ5Ó]ÛúШÐåðFUQº/‚<4„Ϥ¡yC¸±uøp©áºI1QS)F¯gZµb<킳`h£ÞÓˆ:$ º¥ÕpËt‹t©ùƒz#| ÷i³Ð6ùXHÞºØRÐÏAí¿×Éø”ÁÒÓ¤ž’5ê]¦Ñ§s€wÇ3¸þËã»`â†ó…“Î~Ù²zäzlKÚã”Ì«ônolõzV ^¼€Ÿ²eŸIM06*1Ü™Aìº1÷þñO8ƒ½ßªÏjéU§¼9lBµË¢;æ³Ç¼>:>zÛÞ;­Îžje†”š’J¡ÝTâDÁ8bS±ÀeBSy%E«P ß#^cÈét/H7ø„ût¹þjírG¥t·"k17YÉïmˆ›ÿFwØ<„KÚúl×/Îx&ï>™g˜\ÇP¥ü`NäsÕ(?rׄ!Ívå”òÔIWð)ÛŒSnK‰Å£K›…G Sƒ-‹ãÎIœÔU±Ææpdô•†‚®ÌØÇk¡‹]gÁäQ+IX6^ŠÒ$ DŽ©:q_:>ük)^¼ÒlUQZ$‡–#1àU\½ªm27¥]➇v0»]úøM,UÖ{¶9P”c’]BèCYÓç5a¯›–ò3I„n‚æ{ü–'ÐÚÂÖV^¯³µ l`/µhö‰'û’ò¬s´åM™£%«EªÇBvÞJµZ]ŽÉ~«Á/g°ßاúX^‡ë'ûµ\Í—$ôH\©òXh .þWìåá€jÐA€$ÄNEDÂUW_A³Q«U*X¾*òl¸‹:¸ØU‹ªÃÔwnkEf…»8­(TéÜôóe‘í´òŸŠ‚-ò2 VÙ+ðªTÑ×AO+ß²¼hRšÈ¤Ìq±±¤®’ÝópûØàÑ£üFn‘Õdõæéx¢ eÜ×Õ ÕÂÎÀF,øé ŒÑ`€—(R®@E¼)T ^ÀÈÀËt¬ý`T%Õgg%!|ý ›Ëm Š¶N¤D’pJ¾Ù‰>¥å4úU©ý½:Ðûd¶ò *+b S c¦HcˆÍ¢‰É"¿Z7FW¸WJŒåÍåd †Õ‰YŽÓA5b4«qšzí’žýOŸö·X.*KÉðÆÊ\΢I¶\Úöµeß 4Ñ-HØ¿mC¥¹ 4·¶~G¨r„iäŽtšŽ )Tò¦#´®àþìŽH Æ~äS3jåOm¡E>ç«?çO¯ó§“¢=ù™ß°K&Ý–ØH”«2 Õš¶G0Tªw‚|NA üT¡wòE¥ûŸ‚ý¿ͨ =jR†š<Ê)C5'O»/ƒÝ?*)C%O€š–¡¦O€ŠKPð$m-îíöÀ>¥iŠ÷þÇ+kÆ=›¦€=øÔc‰Å£†—e¶€ÿ|;üÜÁ©&zº(z[eÊ"«B¯@^éœwJeü;Ž-Å@”[š¶`Åúy“5«‚óǯ±‚mß*ëE¤lm³³Ó_ʃ¯Xû‹`djÙõ_S$L£yr’¹RXvñ®j´åG¢¾qëÈÝ6£wu°ã˜O|VjAE.i«¾1½Q0Í GFÍsçqÂÀ¡_‘Åd’…ž>Þ½ƒ6uƒß¹;Ú§ÊŽÛZ*F½AH\ˆ-©†Ü%ÎTA’OuX,qPš8î,h`õd·^ɬúá¸]¬ËصE줧»C·]ÇÖ€~7F;[®Jzœ1& œ(EXv ÷·§™£Ôßtr{¿dÝ~ÉàtØØEj!wôFÿ·,øÕêˆQ¾ø· mgK$ÖYr¸bxàk¾³ÇßÛÍu ?ðG2gé'¥U9Ûˆ7ëËà.‚tL?€ê" 'Îħ×<à NÔüßÌ«ý¹{õ|²Ê^¬†«8rц$/N@¾ÍVŒå|‚¦Ñ︓qÊê­øxœú˼:4! €EQ(~³Pú’!Xú>$ô¦<@S½ô !h™_ªˆU' Ö†2\¦4D’+È“Îgùd)´šrˆ7g e‰3 Qãtm†#—w qä\q‚{˜q,UªùˆW¯jDÇöANέÃÕXÕÕ +|CÏ^ÇÎÂÔPHq×#ÿ«W"é&sîN·ðQB­ñÞ†¸%Š\ Ñ)‹Êë¿SBÎR²˜ãÍìì“£ën_ Ó,Þ…ÅÃQYGÛ([-j´2-´x _ÆÈ‘¿˜yB|/Vo¶%SC ÿíó'á “Bxœk·Zl9ABÆÐHÁÈÀÀ\ˆŒ  ­ Í­ŒM²òS‹Ò7s°ãU°9Œ]œióΫŒêyÅ™éy©) ɉEšÉšš v¶ êê jj ¥0éɯ¸WOþÏ#ºy!Ï]>޼¤äü܂ĒɵÒg‘9’““d–ãÒ1Né”Exœk·šj9ABÌÐPÁÈÀÀDßÐHßÀDÁÈØÊØÐÊÄ`£.;©Íì²L›ÿpÎdšüŸGtóBž»|yIÉù¹‰%“k¥Ï"s$''É,æ×ç•xœk·úh1ABÌÐ@ÁÈÀÀDßÐHßÀXÁÐØÊÐÒÊÀr£.;©Íì²L›ÿp23oæàýÏVmÛà•\xœk·úa1ABÔRÁÈÀÀDßÐHßÀXÁÐØÊÐÈÊÔt£.;v™Íì²L›ÿpr ì÷Æï–xœk·zk1ABÊ\ÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐX!+'1w£1;éÍaìâL›ÿp23oæàýÏ  ì+–Xxœm‘AOAÇcM(,4&6Fàô€›ÑR $Ø ¦¶P¸ÃROÍtçm;a:³™™mÝ‹ñB2G?‚'Ó“Ñ_Ëxqv)²'szïýïÿÞûXÿñârùQ jÕêÖ¦û[Ï¡º[ß©Õwv¿=ûP¸hp„ŽQ¦™ÀˆTŒp #†I‘C$&V¨A*ˆ5‚ Á ™-C3! =xîbm€2q’¸„Pr.')çBN8ҦܺS,œ:ÄDJÒ80ÀDÀcŠ·P 8F.#¤Ð¿ÆusF53‰sš„³P*ÁÈSxƒê9&@f4RÅú±‘JWR‡Ûè s •Ñ!L®î÷CŠ!6Îö{ÍãÎÁQ»wèmÌüÀºã„lP®{(( =—›Uûïü^³µàç{:Ñ›#êÊðÕÆ~»üÿìÛâKk‹+$×2µ¦#`ÖõØ$fà\œhíî—uû Ò»!Û˜//Ù:éÔ~¯}rÜí´¦¿®î=ÎM˜e™–!Ü~_l•ÿI½7’Úß‹íµüVÖ²µt;gG¾Ç„ñbáúÙ¥×öó’™Î—–Js×å¶¼úéá­Â?=ÉDÓ/«¼Pœÿ*Jå0í…qxœ[lùØb‚¤ˆ±‚‘¡©¾¥¾±‚¥•©•éF]v¬›Ù‹Y&»òع—$–d&+dæ•pÅÇç%%çç$–Ä—æ•ek$g$)h%è€($C(­D¦T'-'1]sóUžS<† 3À‰Õ6™“ÇiòRÉ~Uˆú”â…äü¼b °@qQ2²%9R¯¥q+Õœ\'£ ¥´UOã„xœÛmy×|‚„”©‚‘±¾¥¾±‚¡±•¡¡•¡™BVNbîFã ¦Í3˜/1OÎe—äÎKJÎÏ-H,ÑÏKšÜÆ~¾Ée‡”àêË2‹õ2”6;pV  +"ˆå„cxœÛmyÚ|‚„”‰‚‘±¾¥¾¡‚¡©•±¡•‘¡BVNbîFã ¦Í3˜/1OÎe—dÊKšÜÆ~òÍe®"÷;Qê…,xœÛmyÆ|‚„”±‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙFã ¦Í3˜³àQ³¹ŒÃUåæ—ê…jxœÛmùÔb‚„¤¡*둱¡‚©•±•ÙF]=ܲ“ 8®ò((z8†¹Æ‡yÇ{lâ<À8Y“Ûer·ëæ{Ü'y'¯“ìØì)UÄpÌÜï%Exœ…‘ÍJÃ@…¤%³\¸»Õ I Mš-ý‘V¬P*´ÚmH'ÍIªV‘îÝIžÄ·ð%Ä•ïáLR¥HÅÍÌÜ{ß¹—y?zÛjK%®8 ñɨ[‡(ÍYPÆâ-TÊUPd¹*É5IQAVëªR¯(pí.h÷¹’„TziooÔ^Çû9ÉÃÎÌ$Ðô&Øw#.OÑžý»+a“XÕ’Ï\?—%&‡yu÷ÿðä9ßÜ´-“ü΂x¦m¡u F‘poA¯3Ötm8œë½7 CÏO=h 'ŠMÇžü±Æ‚Îk{WLMcdvÒÕ@×ïˆq£ŽmDhµà³ E=»…Ÿäå&xj„PB™ÊÌâ°ïE1d í4Ð#â"ûèñâ5¨#Õ°Ìqz÷¬sÚ´á#@¡ƒË~_`õC‹ý1}¤x8€ %ÐáùÏTv Çñ1O-‚@ó¹Ä³Ð~Iá\ââ`NÝ…`.2˜Èæ`Ê·“hý„¾¢¬¼á„Ixœ»k~Ê|‚„ˆ™‚‘‰¾…¾¡™‚¡¹•‘‰•éF¶É½l²“7²Áª`r'{8³¾–ÂäìbÌ Zú›¿±?qýÕã‚Pxœ…Ð1NÃ0`©,m&ÄÆÔ_Uˆª4%eÉ€ˆ… àÆ/­UÇŽì—–N½Rwî€9\;pœv`ÄöôëùÓoü_ãÞð^æðìdS'Åh…I²ß¸HÓlN6Az™§YžN1wÂ0îžk {ñ8z9íÿ3û–­;Ûk­!äŠ+¯Ì•`rJhŠ +kÚ°$Á#ëÐx‚-Á åámÉká(BŒ°ªÆ3¤òµ›0@(­ÖvÝ ¢X»Ö$çÔºy¸Ñ{ ĵ³²)ʺ‘ô‡BÒŠ´­IbvàžŒ E½âMhÐ ·B«Ò:£Ä7ä–¤ia${Ö°S³†­óIÛpšàT€Ü^3¢"¼t>F3+lU Nƒ(*Â!Žß~˜ðªC¢óÝk·¿ûîÚ_ƒÚ‰üæ?xœ{#°—o¢¤¨±‚‘±¾¥¾™‚‘±•™n,¨eÚ|‹y Ç  ‘èpxœ{#ð•o‚¨”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙDe<²ËÊ™6ßbžÄŸ-Kà‚,xœ{#ðD`‚ØÄ•‰vRc88­¶ã†uxœ{jq×b‚ää…¶Ê›S8EM?HºxœmŽOOƒ@ÅÏì§xÁš!üYªVj{0zíÅxjˆAºmWa »[­š~wÔÆDo3o޼ߋg´æúî&‡6J(Õª¨ _Fû`Ž6¥‘C£7Ë3¸÷ôLí+a0ÃKy6>;¿˜\&¾;eÌ{#¡Ñoú¬mzT¿P½nåZj³,ú¹†G˜ÏŽ>,ÝÑÔÙ’fíYv-ßE;Ì~ø§ÅéÊwCÛÚ¢%ÌNÑ`´ë¢ÖbÈû>üÆS1xØ}7€uYêxœûÅôˆi‚´½¡*둱¡‚©•‘•©¹BzQb^‰‚kE‚Š‚–>—rf^rNiJª‚R^Rr~nAb‰^†ÒÆ"FÛQfjSxœ{Äti‚ÌF'Fƒ…¹“xœVaOÛHýÿŠ)­Ú$„„´Çµ…‚nqœÄ’cs^§U¥“,ÇÞ·fmy×pÜ©ÿýf6Š~9 Èî̼7ofw'ŒúW¾Ð—|r J×Ešèa:¸…ñðÞÿ6:þ0z7†ñûÓ““Óñ{øV$7àü]Á«NdTB>þÝ)Æoáíøôä÷Ówá&/ Që=rXл¬îëüz£¡›ö`üñãˆÊ,{ O´n7¤eSk¡9LË› $ Ž+QßäJå¥]B£ÄR¤ÀM™åküLdYŽ:óU£èM®@•k}—ÔÖe÷DT5uU*w¹Þšé³l4¬…„lD-V÷p]'R‹lU]Þæ™È0ÑøG@²*o1¥eÉRç©0LÞj/vçª*‘ÔKHŠ‚¹Pö´hî¦Ñ:àr¸ ƒÏîÄ™Àã¸?æO &Ó0×óœ&.·=æ.80Ï#‡Ì\‡Ã7šCèÌXH0¤GÎ=¿o{ˉëÏîâÊs1ÓM\ÁNhÏÑÂ.]Ͼ S7ò·È~Îgǀωç'u—x.»ôb›!¿¿rl—yÔ:v4@šÝ #ìÀçΟK¤Ä˜°›a)-´Ýš:ç,âæ±D¾ô"*e ðÎIú’;˜ƒEŒÐØK”͈s°Ï!igøcGnà·µbê(d¤Ãwfž;s|Û!l`Qbì’·˜°Ðå”4XF„ˆÓÜòÀ÷³=:VÔbT8!vaÁ ñôé‰Ð-À—ò2_Ü}vbÿ2 /F¶©;‹çèiÑdäJ—e§¥\ç×ÃÍõRH¼ûÖ>ä“\á“©ðn.ž±ŽÒL¬ÕÖ·\çRd]Ͻ´cnÛ¼¯_˹ȥîYqÚÜtþç 9èµ2aÔ‡‡Tæ©àÓʲ«3CL!ÖËF>ÚÃ9<@ë„ó-pgȰú3ËêÄ—ÍçN‘*xqNöðý_:îtˆ&-k sfk3¼£^ë†îÞK SÝ5™ãtQL Ø-3]pf¤óÂÝ5CW¯ FjSËÆð{pLÓUCAï6Ó\eêw¸B³L‡ýî¡$®‰:Wo0•*´º”yÎT×±poSt<Ã¥T¦¶5Ãr²î9 ÷P]•¢±–hÛQ0Žamò®â¯æê–YåŠ[»¶J>Lvcè7ÌÔÅZ2Àµl\ë9UŒª­;´©å¹m‘¦ìrË4™\Sž+z‘.˜U˜«RxúüD¨ þ³I»K d xÆÅ#ë6³ù~<¨1©YqŒ¨%3”©Úw%¾ØÑ¼l2å匊·(ðI‡gK6{ŽÃòƬ¬Ò8NŸ¢ä[> # ÊH…â6<ÑûA÷…µ ÒUí)HC\Yd9¦“ûèu?‡ñ#ü)'M)'0F=’9l[Mç±'Ü4ˆýhÃÕ†¯à†G©`žaðÿÉ ”YVJažä~}h=<?°ñs."?Î…—FÂÇiÈä.ºàâýÄßpò"­xª$³#¿°äÔ!á•'a*°7ðS”Þ¤ÈÓ2ç<«máÎØ[ ŸÏY[5Ûò€ZC#ê!AM’±ñÀ¿g€:à—/’€§§’?Döyc/Áðš] ©í§À5N¨i¹È¢¹î2‚¡"§òuäÈ“Ót ^‰1X¨HÍ3TjÏ^X8ßdºÆ1›tá5kÈ«ž;³Žè¸Gãk"bX4ƒ¼¬ÁI2ì3Cóª}ÿh¶¾_ù4µ-ͳٜ,bêŽwí¸ºë¹ n,k"Ëë0ûVט3~ V刬c QLÊC(RtÓe¶í-„m˜Yw’ÕšŠÑYPË”9cA,ûžt©²äJ ø=¨`v\[×Ü£•´%‘ù(Ùçô–¶HèNwX{m½ÜüN½¯ù½Çô .+òAŸÊF˜Üêä¿ZçîèÕ“Q–O›UÕ¯hþC”qè:I–ˆæ­Ÿw×'LJL4i4¥4ý%!²èoN°‰ÔQ‹wñê|ÁÚ~€ã.çï éOã*¿F„´8~òw˜ž9W‚dÈ U$1Ï2’€«+è·»åc /"ˆ¾Ïñ¤…>ÚcˆVÄ×G?†OW´É%Ф¤<¤APQ>HzMòøgÞ¬¾¶ÈtÐ?}KÐpye(—ÒK»ùO³Q-…+JwŒ×Çëñ.ÆàÝ*(idÜl6zUÉü Y•ì`¹£ìðJÖaåd«)´x‡yÂû÷p~^¾onÜSù"×´:áÙŠw²³³vYú¨±ÜÿŠû7¾ÁÓ:Š9´öx÷[éÃDNò$-Ö R$¢Z¦îã3šª/¹.üGNôÄpyªxÔ‡W{WtMgó®ö ksúGÿtÜ›yÆùþ8e‹J£r'ýSTåNÈsmep.7<‡A{L*øÿ5S,Q¾nLr‹rßšÿ˜§ÿã1‹xœ…QMoÓ@UËy+Uâ†8M>T9V'”¨P¤Ä M• 8 qZmÖëfÁY[Ù-P8øÎ ”ŸÒ_Ä™7nHüÖ­›ÔˆËjfÞ›yófÝýzçó=³ ÷ëõvý¡}Ø€ÆQ«Ùl5ŽàuHÐCÙ°ld[Fù˧G»ecõûÖ³‹ýŸ»I‰0è¼ìãQw:»ØžO𕸠á™Ï (f*ŠBL#ðÓÚ¼ˆJLø<@Êc1£Ñ"&ª6rCÕ¦> 䀎¹`¾é»N<Çñ*pp…ëzÈ…ª Œ'Ž7ì™Åòˆ©®×kTËÆç5Z} Úÿü+ílO°-¸ÔJ¥€D¤ UËNR–œrPéL䒵ϢÙ/«äÕsÂEƒÈ—+‘‘Gðúy"¸`Å‘]"¨3\crÿŸ\`«²d “`½Ââû»¢õ° Îg°ò ‘I?Ê÷Æ«‚qU†÷¦«zñs ™Ó’{<-€4¸~±ÆÖ¡²S{¨–Cy²(ž°leZÊ \$üÍ?xˆ“§H„÷‚x/·M,U–h[ú‚hŠ='„âQDIŠæ›çNû&ïÀ@d"å¢ÄNGc·b“,WbßvÁR™Dl±¿GöNœì§UÏrí´¢Ä¹ 7°h ˆ8Ä9A¡¢URˆ²…dHÂ'ŽúVî$ÈSÐ>B¨¤ –ÑŠ·{)ÏË¢Æ0ܹ·šc^Oû† ! îpÒÇ–ËA³† Û–ë°çÚ‡?þÐ8NOiЍ4ëŒ÷SÇàlØõÔdȃĎf¹Ìà`–nzCfÑeÏËvÁd×ÌÅ0×îÐzDô ö® GŸà­6`&sïTB#æZ´Ü×Ó`ª9.Ó=Ss`ê9S›+6Ò5d\75vm ñ c. Æ Ê>ÑL³¦™j2¦¨ LÅ¥ÖA™CæºKzöW:º†Ù™àSCgta¼7PŠæÜuJZnüÛà œ$¶¡v­Q\ëolÁ’èžc\SÂh÷Üe®ç0¶í!'*¤ç†sÃtƒ_iså˜Ç.âjjydA»p¯gÊ8f¹†ãxS—ÙV›ˆ&ö-:ƒÉjˆ*“mKiF“lçŽxÉUƒÜN wÈSåšF^ptOw‰­‰«¢ŸnE,XÆØdèºnЬMD·Œm,ãÀ¶+ßjwJ£§äS±0·íe¥y;ª¤ÀF  o%_c#pV6="&îé“Ò}Úø |Qpσd•úEwyBËP,`¢Ý3Ô7bãÙ¤‹›y!ï)òîZ¹¨øŸéCcÄ«˜ŸòMÞ 0&ï.©Âpo/d,–ÉúŒë:oÃË—ðÝn8’qÑVýfNÇuÁÒÏ ‚\†ÿù~†“µ^´?½&4~ì¾Öî0kýów½‹·'W¸j”‹ælæèœ ['ßú†qÒ¾Ú ØþƒU¼Ì^žøœJüÐc:S?ʺš5Å&[kjä˜Fkk{Þ­¹ëçøRRÔ­ÝÍ­c|h…;–˜hfC¦·4Í[§«c-z¤¶[ÒíÍ'ÞÇD†ÍÒ±ýt m7t5+è5F\5ªBgéUóC³Ù¨§ðÝÏ`y¦‰6dÔèÉ'³9žäÁ3¼>c£k· ÓLJÝãÑsÙh4ÊLøDÙ(hã,}õ Ûá4<ÅóLøWœ>Ùá(=?À§ôöyáGu|p?0+ñó( ŽcçDZxÊ–ØLܯ#r§·«)Ÿix¿F¶Rk¯\¶É°¾2`¿ˆ¦ùÔÏðt~äWAvõ¬ü€ÏRú¸|&Ê´v†ä›Õ<‰pkbÓ?Ô ‰ŽÂmýÍE•WQŸ’b#6²+$xWr,ð-¦ÎÖÊíº'º¸"¼+‰ž–²ô&Q#{:BÖ@*%pÓëY\ÇýZÿ±©sU|Uì}—;wÚdFHu^Õ t»=€=}v°¯Zˆ}Xø±p ÛûMÖ¿ËÏuAiß}–¬ÓcŽé·xû*[&>þjûŽ¿ÈÀZgàö#çˆø"ò-À¾Ê@Ä–‰ß¸ï¿Ò@Ä~È[r?˵ϣ_¸›€Ó«íy!ñë¿b|8}uJg±¦›§ø»J#õ™†-dõYJ ÿö‘îcó/Bx¼€æŒNxœ»§xV~‚””©‚‘‰¾…¾‘±‚±•±‘•¡‘BVNbîFÓ ¦Í³˜o0kØä%%çç$–èeØq)gæ%甦¤*ÀEõ“SRÓŠr“Ÿ³OÅcàäéÌi “ÏpHJ¤æ¥d¦a1lòGo¸ÉÅ%K±ÙšX\œZ„ËI¥y™Å%)@ÉÍ39í™ø•3Ó€nTŽ÷t öwöž|Ûbò<¶É|<Ó,ä\üýƒ¸8“‹Sá\+NNN}-…”üü"-}.NN­mm[u—Íy|Y%UeÙêŽ-xœ»§ø^~‚””‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙFÓ ¦Í³˜±àQ³y:‡;ñ¶çí>xœ{/¿O~‚””‰‚‘‰¾…¾¡™‚¡¹•‘‰•©™BVNbîF“D¶É'ÙŽâQ2y»³¾–Âä{ìbÌ Zú“¿°mÖä8Æ•€\í€xœ{/¿C~‚””±‚‘±¾¥¾¡‚¡©•±¡•‘¡BVNbîF“D¶É'ÙŽâQ2y{ÝfMŽcì#|2²ÅxœµXksÚXý ¿¢ãÌ`cÀvމ‘A¶U…‘‰$®Ôâ ‰‘„×Nþûžî+Îc·jk6U±u}n÷é¾Ý}ÝÜ-ýÒWÙ¹Ó=¡4K²8 ~ýž¯è°ÕzÑl7¨utòâÍIë%ýz 2¿,é—Òn³\nîî—i—:ñò1 fóŒª~Þ¼9¬óÏ#¬•ܹ¢š©(K)žR†á0 îU’Ù#Ït¼0˜ÆIx "# IRJTª’{5i…¨Iƒñ* ∼hB«TQQ¯_ÉÌ8ˆ¼ä‘€·HëôdsŠù¯2FYÄ“`øcÔÉK-U²²LMh™Ä÷ÁÙÜËDÓ)øˆ‚hF~MJ…å*;áïƒÆ7ª‰¹N~<ÁÎUšÁœÌƒ®Œêã{^ÊIcü‹â,ðU;‚”Bà1ÌæX1ï©N8Ô½`¡æˆ¿Wn1R(;'+(÷ÿÑ…´•9Ò$öW 8ß+œÖ„?b¬'´ð2•^˜nˆ‡1ð¶bÜQƒú*9^¼…úA8EñfYÜ  ·ÆŠ“4×já=ÒXqüÀŽ˜T4ÁšâP*‹8S¤9‚ô:" iŠÍGO³D@Ž•¥KåshA4à˜K8¨"^išÛÁ2î•åc_¸ŒIø¾Øï­®Ù¥ó[,š40/;ëÑïRÇî»ë|èÚ‡>6T*¼ÄPFÿ–Ì7ÓqÈu}Ó³€àÑw-Ó©“Õïô†]«Y' Pßv©g][.¶¹vÏc ï%ɾ ksйÂÐ8·z–{+ ]XnŸ»ÀyÝ×ê {Æ€n†ƒÛ4¶«k9ža]›]\k«ƒÉ|³È¹2z½'v鉙ç&T4Î{‚%çÀÌ®50;.Û³ùê€5h׫“scv,þ0?š0ÅÜÖsXÇüç›°Èh]ãÚ¸„qÕÿB \ÒÌkVD8ÃsǵܡkÒ¥mw†¼cÞ[ÓiSÏv„±¡cÖqˆkÈñ@]XÆ÷ùб„8«ïšƒÁðƵì~®ì`Êî Év_lIöà–q™ñA>\™˜0§ÂšÁ\8`¯ã2ÚÖNœ >Ý-c©o^ö,°Þ1yÕf –cÖà2Ëá –>ùƒq+6Å|vtÓŸ[Á[—’uAF÷½ÅÊ盎•}ÁHΰs•³Ï÷µãy0¥+ã½9ꟻ¶ÝÁ˜ ërt……ÈWÈ›;Ñ8‹ãp„ < fùNù9nj0-o¶¼Æ~¼XzYc~öƒÙ¦?QÓT¯Mq•§A¤&ÕžuÞ9ŽS£_¥gÅtDYM6¶Ê)',Ÿü¹—Pêûi0ùô;Ògú­ú¼&Õòφ_:nPõ\%w*T5zÕ|Ñ|s´Ó†®aªÊ£Ñ ãXÝêÎÿXfwjíÂjý‹šìãÜIÄHÖĺ¯YmñOXE#Þ¸Í'§Å¥ç«-.NiÓKQÊlö¸T³âGDußÞöß[•$Q,{ò³¾‡ ßô'g¤Ù$ Ƽøc»ô`ô ¼»º/-oª9Óuå_µoŒÞØ>¥gbî‘k÷zhlt_¡²dä±Ó¸Ê¡VxÆø’ MR$vk†úƒºó9Œ}/TH­¦SîjÒtÅiÝW¬–( â<”O|ù^*åÄ —so¬2]a'ÁŒë7ÊóçRÈ‚Ù*^¥ú q$ØýKþÏÃ'z= xáK‚½U.¸¨FË,©sé“ßchPËcö?ïÊJÐ]Ü]Þׯ” võ~Œ9$Y¨]þ×Óý)¿Ñ½ôDyò|¿N>*ötšùùïHÍжE²Œài—Ë¥Q×2. ÙØéÙ)õ‡½^MŸ£*j>/7E‡ÏeØd«ËõÅ<ñf 4“h  ?¸u‚ûÓ9Jýj‰0¸ìtm@„¸hˆ Õû8˜€e(ߦbPQ„N)—8ÞKz˜h5äFŠÃ—Çà¡ò&n{Í}JƒYDð%lnˆ¤5V š¶@7`Ôú ÍÕÁiÉ(ö3Á/.eAO¢Aá /l3hä… Ž|¤ƒWD9 f¥È{¹‡'1Á•%3ÕUÄš¡1bŸÖàÔ½=ìøÊ6…ŠªhyØ,¼Ø 8ª ©SªìWj‚?å Ã­ÅYÛ­ -Þ°‘Þ«Ô0~"¡Á«b ¶´è¯¿¨¼â ‡ø§Z¾ÕÝTF_*¼;|¬ÔjkóÒO¿óÑ)íÒ!iL@n]ŸYÛ¬¯yGÇtB­öÆçdµU¦ûntï…+…°ÌzÅPͼ¢ÕbŒ~V<„2'âù<ò‰Ëy$H(ô’™BljYÁ«#sè~zü(­8K³~œŠL´ÈÑtJÔ éq¤ÛÜŠ/;Äu§¯!½ü0 Äþ÷|ÈÖE¥8Æ“7‚ìH ºˆcEý¹‚ ®Ð½¸“î¾QÊÚÚ*. ZG8‰ôwÁ“&" å´¤Z^’(Ô¹ˆùe‚ºùb•ìJ¼h¦ä²¬óã‰à§ý7‡‡GG¯[G¯Ž_¾xýúåqë¸Ñø~òõïë÷f„)¬>h‰ º1â$U<ýY°À‰án“…ÏNóFàÛ%Öû­N…%iT¢•*ÖÖÜé0õmq)µí§Å ò3ŽÉïAž’K%M˾P‰‘°µö¯ž”nÓ&^°—¦ÌmÕ“b awË[2j|-W~*[¨}ö7ª-¡ø·¨½÷DíuyÊûžgy’wCŸ¸Ü¶&Sn:Š¿Yè¿Îð*åýÇžîÖjâÚw”rh H¸à[’ßn¦ïE‡óoÓ÷ûè’xœ»¤q^c‚”¨¹‚‘‰¾…¾±¡‚¡¹•©©•¡ùFý vì2“§±ÛÉ¥¤¦)Äûx:9s)—æ!qRóR2Ó¸&_c×™Ìɱxò&ŸÉ¬œ78á*6äLäF×!pê’gxœ»¤qFc‚”¨©‚‘‰¾…¾‘±‚±•±‘•¡ÑFý vì2›§±»3q¦¤¦)Äûx:9o~ÙÆŸˆí “*xœ»¤1Yy‚”®‰‚‘±¾¡‘¾¡¥‚‘‘•‰•‰BzQb^‰‚kE‚ §–>—¾gZQ~®Âälvii b}#s+C z#…œÒìÔ\°âVÎl"yÉ9¥)© JyIÉù¹‰%zJ\“Å9—•äçäh$çç—($g$)hå”é@ÙZ©y)`n&Ðî¤ÄâTÍÉ©\ ›reqJ3Äí"”Vxœ…‘ÍJAÇÑìÁéC n ²‡uXfǬ^FBð# …@<äz§kv{ºÇîš]}aÀ÷{¼|ƒ¼@žÁžÕ|ÜÒÝ4ÕÅ¿õ/ê¡ý£õ±­}‘€#KF©(íŒ`-šmxǽ®?½5ˆ7’¸—Ä0°\|:- „]võöÝ´ß×Oç/¶”.FhI:©sB+¹r£&itÌSiѱP:“ ¥g2s‹ Bð+/®P|â™÷mÆ5§ÇÚŒŠÖÜÄÿ¾xÄÖˆ2%:U¥À¿P8Be ÐÂié:Iï &ìp%3cµäØF{Œ 'ÀµIR£ÉÊ~Iƺ¨v¸Á!J²3šæ9ÂôfþöÅë§Ò°¢û©É NÑp…Uo‚åÆIÉEõ!¸üªŒo¢¾Øó8Úï»M‡ÜB¨ ²ç8D-fOé§ÑçWÙ þU»MüáU׬;ýÉÚY­éÒâÝÜâ磭Ýoû‡@N½ºŸ[ø¬Î›{ÕËfÖ¨Õ¤ùð–ù¶åæ‚'xœ;£2Gi¢½”¨±‚‘±¾¥¾™‚‘±•™m,ªcÚ|—9ŸÄ hè‚Xxœ;£rUi‚˜”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙDS<²+*˜6ßeÎç˜Ò#àƒxœ;£rDe‚øÄ8•‰öÒãÞ 9Œº xœ5N» Â0œÍWÖ©”<)">QT,âj›J4F©­èßÛ .wpÜ‹…ÞF×Ótž qO]k÷¢yô‚ 1ç}Æ,–à2‘q"$.6»añ~ × !,$q¬LÝ&qú`e³æÙ¢6ë§ëø7@ïÕyaò¨Œ…ˆ|»¤>½kNÖä(î·Ì8¯´½)ÁIPèÒ8 ¥ÖËéLÄ*Ýö³…R$Ю0¥÷¹Ü6…FW©ÿ!iÞ%_”ú=œ¹ÐxœíZÿsÚÊÿþŠóÀÁÇÉKb^ò*ƒkŠÁ•DOÓ:B:Œ&BbtÂ6ÍËÿÞÝÓ }AØ&fÚiüÞØÒÝíg¿ÞîÞ)û»•_,:6zGpíò–ݼ†ƒÖ+xÖn¿Ø?8Ø?xíãヸ -?õv¿Tv÷«Õýݽ*ìB7˜/C÷jAÝnÀÁëW¯›øûõ!ÎUÌ)]1?âL Âבï^³»Ñ’Fº–çN‚Ðw­€ây 8„Œ³ðš9-D!&:s\…îx¹–ïÀ‚3p}àÁ"´™»¾.ñf¼ 7n4… ƒED(³Àq'®mF¬Áœ…37Š˜ó0¸v|ˆ¦V$$žܸþØï¸DÄ …èf,:¢çƒVA4¡§”É\¹àªY(+¡Zãàš¦¤Ñü rmÖÄ.ñ&e+ÔËË„LmÏrg,$Á³uAaÆ"‰ ¨§³@áþ3²@¬¥Dr{1Cç[‰ÓöÑ·0³"º–ÇSà ‡pV ¡ÜaKĆå`äD.'–)=1À…48aV´ÀÐ!·SxˆC%x0‰nÐmR,a d2÷¬eAËþâ7s®áÅAì )Ñlêg{ ‡¥˜à°kæsT`¼\pHƒ¼ Ç,üÂ<¶Vt1ÒѰ±²AÈ…²Ï[0`®0¡ùÖŒ•ì?H§E̱]QÅ1#k Ó`¾ƒsŒ „Í‚ˆ%šqT$Dx&8Qj7¹“€Ï™MûI]Ú`!í ?ÞKœK§yª` OÌŠ®>ŸëÃ÷ZOíÁñNª «ïÔi€2èAw80uíxdu>V $¨ÕhŠ ”Á¨ÏuÕ0`¨ƒvvÞ×ue`jªÑmÐízÚàZydÂ`hB_;ÓL\f›Ä€Ö)axgªÞ=ÅWåXëkæ…èD3Äîù)p®è¦ÖõÎGúùÐh¤WO3º}E;S{˜Ã´2õ=ªÆ©ÒïçôD¤œšÇ*Ѝ÷–àƒjö4]횤OúÔE«¡tý&çjW£õ£Šª(úESÂê_G¸' ­§œ)ïP¹ú=fA—tGºzF£!ŒÑ±ajæÈTáÝpØ3 á U¯uU£ý¡!,62Ô&21ÁQÐ\8ÏÇ#C†Ó¦ªë£sSt:ü€–Aa¤î #Bg4ÒP¿ \²‡ðA>œª8®“M…Õ²…Öëš„–Y‰\ÑžfFY¨ïúZ½«Òì€>h†Ú@—i-ÐbΔ ¡ãH¨OÎBÙâÇLð6…KA;¥÷^#áåb C“A3"5ab!˜@;xG$¹e³ÖtG"”©-çL¨S6iq<Ún2)Q>Ã#ÇsÇ4–j‚&ËËf}¹ÄLkñjö¥Žµ„#^óR>4J§oWó·ë òRêqmL¹N'ÆÅpb¾øOiT7˜Ãs±}¹ÃVn°q.ÄzÛ;.´à±ÚïWÇá%^ öɪUWC.ìÈò°i«ÔëõÅ¥=µÂ¾5àí¨µkùñßpüe­‘A¸™º6¼ÁYüï? ~þe_ü·&Y²Oãt©4¥ 3t·Q`Ue§}ðìðù‹__¾zmi“íüÍþ{ªÙ™òQýˆéŨ¼¨fGÿ¢Šá¾f˜õ‰g]5ÝF!ñÛ%„­T@ü|ª:|­$?É`Ë16dØ à ë׈YÖ)Ò¢¥<õÝàéÓFqŽ€#×_°"˜YØÎØV½Îݲ˨Q¯° OSmN†¨'R¢¦ø$à:({ú_…,ðˆ¬Ü®uho¯³fܶœð0•^ç 0:w®Åúœ.Æ€éܵxÐϬõËs«‡F_1NFí á'A¸"Ûe PPëH—íïR-6ñWow¿Ý¨ÒÁG4CÔQáÿ§È­)z·™e‡õn˜VÚ©iž–¥ŸtáàUûUCÔ‘$0  îð¨ vâ¸ôÑU¶ ÏB`®‡%iþÈå·]—Ž`¸yèÕó3ùŠÉÁž†XTö.[OíÖêærÎŒúhׯÂí»(El¦?ÕŠ®O'Å6ÄÌàs÷ +Pá²áí[xŽ Ú·“\é d+‚”â0[Ú¯E=+Æ=†Ê£í´Éyo+oÚx^-/çUÑУGõ<@-¨±âƒã¸mâÓÑx1™°ÖÛÉê.æË–ë™OÇIš'MŽâ'¿7AèиÐ-ž µ½¢N75»F+…úGe%ǽ8“¬ 8͉»mŒ%îY|º‡Ç‡ˆá§• Òûlö¤æÃåqZ›ãIª“¡*s¢ë™áQB„u*ýTµ\Ž]Ñ|*£?-Sø–bП\Æ0”µ£Éú„?B“’`¶×öÇ8Äv`M³µ0,fµ®a^ôÕ†´X ÇñtfOÅÊ×µzaáþ xTœÉlaÊt¾úù¼WÌñkàá6àá–àãmÀÇ[Sÿ°¸µ¥ä×ÛH~½%x´ x´%ødðÉvà° 6ßRðö6àí"8m·¤ÕKîéìšJ‘þÁ“ßÖ$Û¤ æQkáEëªÄ& ëNáòºÚüºç»dLrÒj¤£&WŠÎâWÑYR»KNø„CðrB"XÝ––,ÞØ—Ü×z¬'†Åƒ}Iš¯àÜaõl„Ÿ"|Í›Òy6¶/^Qå»çÅ6:êM̸QœÍÐþ¾¶È>kJdj&ÙóÏEñsV-r¯õ[Åò½<çñ<…¿xÐZÊÎ,Ó,5ñÆeÇF]W”íÆÄÅ,2›‹ÆK´üã%|[§&Z¨øHX%6wuPÉÙ—tân)¿®“?€ÆTõkBæËÊeOSÞ)†¡ê&±[õø…©xog&ËÎǾìÃd½Ö¼Ðá&î_ЛÏ1þŠž|}g'Ÿ.%C$g³j%dÑ"ô‰ç¾¥¾“—AÉÃ펌¯ÂyhÓá# F>¾Ø®¨Â–ô£h -øÔÞ‹è{ztíêÛI¶&ò1“¼<:A‹úuŒéÉ·å'–P\ÙO°\µ$0¾»xø{> n¬%ð`õéj)è OÈ6Gc0G0ÆàSæyòоÒCÅ÷”é9D.}M x¥«ñ) •'Õl;X`ˆÑ-Á<àÜ{â4Ànç–/®üãC‡Çü+úì6á­Xº{JöÚÍõè…¨I.ý3rÖꟹTŒÄ9±Âã í‡BxÜ-+ñLkõ©&>L“íHÚÕ.´`ìö!›Yñq©«2d|!fbeû,»¥h­ÜzD°qɽÙIpxd…QgmƤ«Ó®\‹ bµ*kÄì¼ ëÇìm@ãû$¡+j@¶UB¨”½F¢›g6›GKô%…²¬°+|’îô¤ü\JÊ—ò”ÂÆ{ ˜ÊÜ’‰¢Ûla¸nKñþÿÖö‘Eiá-´ÅÃÞ^¼ª’ÆAgC\Ùï±-Ž„“³î'ÿßhaZf÷3}pÜÅ%í¾n$ÛSlh)ÐK¤C>®äí-Ü(ôÎÎÝ¡SIHœïoÞ9ÜÙ8@Yç4ßß7ü·VÛZlWA¸*µwäÅb‰Ý. j‰ÏsÀZ#Oöi®Ï§ú{uÙâ„b¥çÔû3l’Úë–$xœëŒú9ALÆÐ@ÁÈÀÀ\ˆŒ  ­ Í­ŒM²òS‹Ò7.áë`ó>g&õ¼âÌô¼Ô…äŒÄ"MdMM;[uu55 R˜ôdÁç,ñÅ%E“ Å•e’óóŠKÀZ´ò‹2Ól@HÞz³‡P7\ßFY瘬v™ÍrÚÜ“ý5-™””&ªÊn^«ÉË4y½Ž,ˆÿ[{ŒyEÇ[DMéi—Xxœ}TÍOÓ`Ï™mˆÀ˜›û"ï>`ëXX¦DÅ L##DQÒtÝ;hܺ¥ogÀ`8éÉ'ñà þÍnzöh8/Ô›^Hü8Øv[C+[íó>ïï÷{žßÛ§}¸¼;ÿØå?‰ÆXv"ÉŽ'ÇRˆe'ÇS“''P¾RÛÀò“TîÚƒ¯Î‡í›a±ˆfÏ-e¸éËóÙ‹3Ü,%¡T+`’òB¥\啤HEqut-D‡±T‹ôÁ0e£Š‰†¢ Ýܵ7}!“Íí—>M6HR(àbŠžji£cÙŽÃc©M£,_Æ¤Ê XïʤÜlcj_çr¹Ì¢©ž,+ûêäé–HÌú›D)”ļ¡ÎjwIµ‚8.3—å8:¬.D #Ž(2QùTóù߯zkgÝ´Õ¤XMBR¶t¸ ¬eô. ¯{wa«Ï±)h§¢»5¼”IJ¨sNµ'V¬)Y”VŽkºÕó™¹9Ý}£d!Æq¹Å ÓÇ]h½ÁGmÐiËËžŠO^¤NQ°ÆË—«ÊÆõt…Biðö³£ÆG÷»›áÇLw™/•*¼wDZÙ_Žg­ðÑÀr+ü:pª"ç›Cˆ6p¼þÓ9i³Qõ—bëN ‘iØqÿµA-̦!pÂö‰eJÔ©4‚~¯Ç-EÓÕкAS•—13MÁŽ×Ó§ UÏGð¶ìη•vÂË„l'»ìµÊÞj+· •Þœ>«n±-ú8TÿC“ÚïLèϾÁ§þÛ0`(A \=Øé/ÊÇ$¼®È<“¦)+5YŠˆ¢®îÑÆ·Øøõ,.ä–.æê_‚Nõ%Ã^è©M™ð8ýàxáùHÌDÜ]ÚÄ ÂeÆlt®½0?ô¡g5xóÃÔð|O¸tv1€ía3»ÎFË6+Í×Ûšs:§QÁ¨:…cÙ>оCSú¼Çu4\bÎBj(ÐMëç/æ°ö¼âÂo¦T¶˜G&÷†sÕ8øã³†ï½ø[»()H%Á‹D„n ¨öÄ O]$ÓàC‰J;ê§D$Úª·Õ4ÿËïUã†vxœûù;r‚¸¨¡‚‘…¾¡¾™‚¡‘•±™•‘ÁFÕ|Øe6¿áæŸ$ç¿9@n-fÊÀë‡2xœûy1r‚˜´¥‚‘©¾¡¡¾¡…‚¥•±•™BzQb^ÉF£%|øä7âsfbŒŸl+(ο9FpX|rFb‘¦††Fi|f^‰±Q|‰&9YHN‡Ôæ$¹Ù|žd(!âhxœ»¹0r‚˜”¹‚‘‰¾…¾‘±‚±•±‘•¡±BVNbîFÃ%|x¤7àsfž<_\yr”ïæ‰BR‡+Jâ‡+xœ;ï·Ýo‚˜”™‚‘‰¾…¾¡™‚¡¹•‘‰•©¹BVNbîF£ öÉ—Ù…'ïgçž|‰}:¥“[9ôeôµ”3ó’sJSR”òsS‹ “Sõ2”´ô7Ÿâh•;v!æˆxœ;ï·Øo‚˜´‰‚‘‰¾±¾¡‘‚¡©•‘¡•¡±BzQb^ÉF#s|ò›[9n1mnà–•`RRš¼NZ~óAåp&[Víˆú¥ aHîUxœ[ì7Åo‚˜”±‚‘±¾¥¾±‚¡±•¡¡•¡™BVNbîFCs<Ò“›9ömvçÌdܼ+GÈ¢ç Axœ›â×å7ALÞPŒ ŒõÈØPÁÀÔÊÀÈÊÔR!½(1¯d£A&»NJjš‚‡c˜k¼³¿Ÿ›§{¼—rf^rNiJª‚Rr~^Zfº^†—rj^JfÚä7ìÕ„ ÜȑȔ’:ù!‡ÙdN9~¨Y6yI%•©Å›Í9oJå7ó«°2W0Zé€ xœëòûé;ALÊHÁÈÀÀXßÀRßÀPÁÐÔÊØÐÊÈH!+'1w£i&ûä…ì’LyI“w±wãQ99…#qó kéÍl*,ÌDÜûâ€Zxœëòkò› ¾QZ›c¢´Âæ,Žr<¾þ·Æxœ½Uýs›FýYü%M‡JþÈ´‰d‚àlÝ •Cþ˜¶C65 9žLþ÷î‚dcçÃq;­flàvïí{o—c°ÕyfËj(Ì}¸ Ьj+ØéïÀîööËÁö«ÁîlïíïíîïìÁ_i0öqÏ:[El)°F¾¸.’ó‹ v^¿þõgÜ· ÖòRÂX^Í–EoR|š¿Ïd5+£~^œ¿ëÓ>=M¡ÞWB!KY¬dDëre””U‘Ì–U’gd,K Ie¾,BY¯Ì’,(®!΋y©ÁUR]@^Ô×|YÊ<’8 ÂÐ ($,d1OªJF°(òUáMuTøO"NšæWIvažE m* …öÍeµO÷;ý{ÔJÈã §00sYV(§ +¡³|E¡µE‚¿,¯’Pj˜‘”"ÁÜ–­åÝå„EÃ4H沨½Ûý’l9²!‚:£%’ûo¸@£råár.³*Ø4m€ýÈ1^À<¨d‘iyk|Ý0n˨ÅíõÁÃõ,˜KâRS_bW æšøÂLÒ< ¯dåÎFzžWÍU¹¡…•q¶ Æp£²ÌãêŠúº(2¤QÁ­ ÍPAC’5ãR–k^ç¸áz'ºËï'®sÌMfÂð ƒ ô©7r\øðA~ñtÛÄ¿3`§— ŽK8|<±8îBW·=΄Ü6¬©Éí# †SlÇ‹¹‡iž£Õè_n#0çÆÌ5F¸¢¹Å½³ºê!÷lªxˆ|t˜è®Ç©¥»0™ºG W”`raX:3³¶žÛXØ1³=#ݲڢ† éC‹5(Êä.3<¢¾¾k0 t¹Xˆ 38ݰS†Üu÷LCÀplÁ~›bÁÔÇú Þ:@8_3í6¦.?”-¦Cáqoê18r“ÜÁÜcn0q–#6þLӰާ×åÍÁ 5¼¶‰ÛsÝéÄãŽÝƒ‘s‚. S·RÍÉ®e£'Ž{F¸äGí¸'#†ë.YˆòuOô§I #ý˜ùöÐsËG%‡üÈa Ó%pÝlVåyêã 'çý‹®ò_Á$VnSÞd³0Ÿ/‚ªñî+«ƒ0’qÙÄb|;ã$“‘jñ¡á Ã=xþžl–Ó$«zuâ¶RÒÉBxP†a™D¿ÿ o¡û^}Ú“EÑ;¯ð»¥eq)Sy݃_/¯÷ºH1-¥âû®!¸©vÿɯÛ;Ø(m.0Ø‚Òõ)I'ñÝ8™¡ð}Ûñm}ÌÄD7˜?êà¶ÓÓSÊiTµœÅ¯\¡l¹º¹|é")^{XwLx¦îÞiÕ›²Š‚â¼ÎºéQS2n¨]ÉàÒÒ$(•öƒJ¾hàÓ¥w‰²Ê“H¡ˆŠ#€_‹º[ñ¼Ò ßï÷”OJgøô!é‹Ö?ô¥S®t–(ÊæÛ·^Úä©„ß‹ñ ΪXE× ûS¹] Îe…§û99¥ö°#T Ç¢¨Ô`¡’èµ*Ơ⠇ǃӰjÆá¦üKÍ?¤øvþ À`¸«è‰Qxœ{.qž×D_‹SÅ/µÄ)ØÅJ!­855;_/Y§LÁPÏHÁÈÀÀXßÀRßÀLÁÈØÊˆŒÒ‹óJ&J³%6†îf­ÏKÎ)MIUPÊKJÎÏ-H,ÑËPââÊÌ+႘¦áæé㪠U\R”š˜«£Ÿ–_"‹SKt€ÊÊ3Ró’S5¹ª¹83Ó4 R v`V|‰¦¿Ÿ{¼¯c„¦PgjQQ^¾‚­‚«§_˜£5PÄ©(µ¤´(OAC×Pȯåâ„ €í×€Y¬‘“Ÿ—® ·j+PK-Ó²O¡ç€dxœ;Ï{žWO_‹SÅ3ÅJ!­855;_/Y§LÁP Œ ŒõÈØPÁÀÔÊÀÈÊÄd£ÞB6œ åj>xœ;Ï{šw‚ØF©­l˜ắmxœì}icÛ6ÒðçðW`me©:b÷Ø­]¥ë8Nê]'Îk;m÷‰R™–(™‰TIÉǦùïï\’’¤Mž>Ín-Ç` ƒÁ`pÿ/ªsFôÌ»¯ž.‚4Uçþ~Õ(NTz•΃ikÌ‚hDsHKBÿtÉ~4Tƒ$ðçzæ¿ F!D¶F ÄÕé•zúü¥Ú^ÌãAÔFûëoê$&=û2=”ÃyèOÂÿRmIZV 0z@ €æ£x‘DâÞaä¼Ç/·÷w¶v»ë[*¸¤þÖQê>ϳ) ‡p¤æA:W­HUªoÿçèûþ»‡G{Ï?Oƒù»Šúì3µL$ô¬®v†Áy'ZL&jãágëÔi‘Úô”ÊrÁÇó—ûû;Ïw1á¾z‘­/Û꣱‚¾¬¾]ÿ¼RýGå]S]œ…ƒ3‚À8Oüä ;Ú«©?ÚJ=S$V@GhƸ … #ýTµÆªf Öº5ü­A*´."x~кð¨ôòÑѱLÒÒ~¨“5È¢ZqÚiÚ|¢ÂHÝ_ƒÿj¦Æª®û½uSÈg$Ð+o€f +€öNáºJÅç˜σ$ò'Š{~âqâO‘ž¤Ûš楺çg1þú)õ5Ì…7ÌO¡›üþ7=kgóâ¿0/mgó¢jÍ‘ŠêÑøâ$¡Ü•ŸNÕJ`Þ*݆“ŠêBšþ¬84ÅS V¢¢–Å÷£,%¢¤`XºÔ_Ó÷ªô¢²j1¥¦§ˆî¨w¨q18í`vd$ð]§;{+¹b°Èê;‡WÝZ ”*@®T׫4[h;8æóbA¶6̽;g½¢6á·×[k7z½z°U„§²ò“q·º¾%_Ä+ªg8þkTÍFÝ»§k‚Ln]’gË»‡0OòùÚ Î`P;ÙÒµ"31áeà+êW5"* •àf¬Çjg¾Oa>´f°$“΀p€Ÿ@ CV9 .dˆ¸@ÀÎa&wó'þUªhÝϦ!¬M/¶¿ïí¾Ø>Ü>>8”åé/]d½†ŠÜ<´ú¬a°Ë-üSÛRO(ªŠ·£·YXÙpR¿¥± lÞ Â¯¿ÊåЪmaß½ãÕà¾Ú{r T¸úƒ ©æþ)IQp¢T1@_³$„i05ð Ä*X:ƒVÀÿ·ˆ‰•…)Àž‰ÖHÈ|ŽÒ\0 çq‚ÂN<%a⇭2§È©¾T‡rÝÚÞHõ·ú„ðÛûÿRmàO&€²NÄd ètÀ¸h¼˜ Qê¡%s€’-ç BN b9À*˜ÎæW,}¶ëDv+ªR¹§ J? ¡Ù0‡/@†Jp…ßã7Ø|”Ï@À9Cîs@MQQ @Ï@+±º™’iœÐ¢8½‚Þu=ž¥xŽÒÒüª×ë¼n¨ºÊrA:M°E¦þyÐGüªðgKQÈG È •#`Jõ†1@ Ì ˆÊ.A’»m"Α˜êI#h0þäò7PrGW¨Ñ•;ˆ¼†!S<‡I  À¶ "$T æ)Œáv,y²ˆ juÔ½sðìÙöóÇ5í$¡Œù…¡= `yÙ*k_VMKp¸´ 38't‰¿¨Öˆ{CJ™𙨩›*H’8ÙÌ"ÓJNÚRI€Í!úaÁ?M㠊踟Q‘? *êágÄÊ€¦×…+½D*·6C4ç É µb4[}¢Uîà`¼©Y Úã6ôÀ€IØú¢ý@½üqï9Š/u çG0ë†U:ö–ªUå×_¡ NªÅ €¥)íÊ®Tå(OazÓVAüÅd^QSH¡˜yÔT[[«Á4)ŠŒXê˜Ä(¨¸É婯Úíõ/Ûš˜¡¹˜FÏîóþ÷l{oŸþ…+Z@iŒ.{Õ·U.F{ å"”ŠÔñ %yêÊ´©”á:™1ï¦Gäýâh½[«ÂÒõâh£[{H/»µÏ!-{¾¤¢ð h€ÛÓýþöþ~wG‹×üíío?úrû鮕 1cç16®í ¾ü¹GÎ@d#èãü™á‰DçaGS{?Mü/JqJdÕ€Lµò'‚T ζ©° ` ÏšÄäÂh/R˜›@LÁe0XðVIÏà¶%]ÂBÙ‡îƒIЇ,dæEò˜$à®gâÎÁó'{OûGßïîïsº%ˆ¹å»Ql¶n ÄZdÎ](¤‹)öÈ0`ãI^oÂ.Û|ì‰×¦ø<B.è¿(XÀ¾Nïzyi`½–LÀNý¾E3޶zþ$ÅÍÁÉï~BœGŠÐLœx¸" ¢KØ›;ê6ï-@ð¬Zçºu‰øáôKX)ÁÔ4¢íéYÑ5Tá¹_B=:ß ú±'˜,O-ZžÔÚ¯PçËHpð÷\Ö)ذ¦ÝÖù¥,S¹h‰½tbu^+Î, 8†Ê!šy˜Éa»ÙŽúk{8…µ=N®š< ðÿ_H¯¸îFq8„±a"ÂøL¨ßDñE¤GæÔq§‹ãéæÄFœôÑ©µ=‹·?ØdæE¬ÒÐ~À| BÆZëÖ$x#½L¯T1Óûš™ M='Á°[azJh@¤Öê@kD\½êz} äwNO¤ÎàyeB"G¾_Ì´že‚Zfq`ÙP<Änƒîƒn°’¾U&u‚8ÃÜ<<ÛEœq#´¬°ÎC@‚¡SÞnÎ*ì|$ì¯BÄÎç"ƒ:¢˜€Å ¯Ì²x s q&ZÝL%M{…j‘ pÁBp¾iÜ,eÑÙ âÃ6’•–“4d29ˆÓQw”%ï%¦ Ø`ÍR¤oÜFq½[ÙrR«öWuïùîóƒ9*6,¿Û“ž]ÇÆ¬céƒdÇ5ºWn±p©ÑHêÀP(É¥o8éŸ}¦wU˜•'K ©ÏÕzï¤WQ«AÖòƒÒ«®­©u,­êu(¼á޵†KÍ6Ê´lÄl Š?¹ RM]…´(öhñ2r]5ŸÉ ðš`°È  «Âlpqº \Õ)йû]T…ä h½t.úývƉMÏ¨Û ÀÍï©jÙ€— ~§˜'D‘ƒwT¬5þj V8ʆË×1,[q"µ-1’„ØÄå ÑžK$t,iˆÛRqÇ"Ùf\j”t°·Ò$Ù¼Rö ’N1º blkß!5߻Ǣ†»¹- —Ú@Bdîúvu³œ m±¤k ”S'¡D-ºRÖì¿-V¤ÌPHôð¬÷}FßI O›˜ ioXÕ‘¼Èä@Ä/§÷)Îéz-æ½OßsM7íx–·K{}â²UÔèH_,1³m‹€¼g³óX"íŸ;·?wnŸÎÎÍìÙPófyùº‡* CçnµtÖ/'üRhLN é°| 2X‚JÔNèPÄM·ÉqOÔš@âW¸Ïa{‰vÅYž Û5­ ³+n5{vü<ÀN-iâ©£²ÏaÆ¥¬ôiz`wVJÀœj1'>ˆ»HÿæËöí/ñ$·€ !jNÂÜÂ/&ðœTÇ-_Ì8þ1ŽhŠAuçí3<,ɇVàÅ`²ÒÉBtÅÚX”’ÓÕÊ{¶˜{ŒñÇhP4–m<BÝW:Gâóõ Š*8õ£$_‘nšF‰Ç‡6ïƒ33Ò00€®øX˜ðê 9³ÒŠ^þ¿på·6i¶ÄfæÖ2ÕŠa"¦L;Ì“F€T€#ܵŸP{]ÛlXI¦d-O€…íìïíìöŸîìvÕÓÃÝýƒÇ0øG]OÔŒN'‹·Ì8ı)9¢îx²ˆÈ£ÓUF%\NöH\ýÛ‡^!3ò^è:-0ÙÚž]n­îáÙÙ[–ö«ëFaR]ßzçÑÞŽ¾»V!ÏÔâþlîÏ©::Þ>~yTÄÁÂåÁ~‡=Ï™›fÝAÁ ÈQ£füdó\]÷Þ©båBD-ËQ¸]Ìa¼Fáp!–Ë™zPÁ¹Y!ÅDP!5Jp9oÛê+Á³|.âºÛ@YˆØAc2´§o@@íÏò(£¶›mº2‘ÛG&iNÑì¹ < ÖÑgTà–ÙO®4®R£[.+Õâó4ç;’HK›Èt,— -dp—Etƒ+™T²>ž†˜´Kgx‚³I¢½sï¢@Gò½#ò brâJz\-ô7 ‘vjcGS«uÆxî®î×   ŠÝKJµÑ¬Ôª’»¦ÑJ+NÆx…V#vGð¢Š{ÛŸ²èMUû Ïø_ýÜyÝ«w:ÀÿFµ¦z¿ªˆ´…N¯Ž¹VçX W§Ä¶-á$±3­"¿Šöm¨jŸ-t{ž…0„«·,€§Pýz‡Ã¿àÏ;üC…±#ßnÜ8û ׯ™v G»³¥~©ÈÈiÖ:•#Ù,_¶·M3â®e;4ñ.ۦ䦃ÌnZR×UDBÓÌìô[—ÍBÆ4°ØJc¸lÁÄz²·¿»’¿#B0û1#h µ•,tŒò ¥f,Ì‚/¬,Û}­WŒÊ „\üvXVÔàëÏÐ2WøoÿårtQÊå¼ÈŠ‘«"  2zo€‰°cpÐIn]Ä” rþCGü7"0<÷!i`!k˜¿ƒ¤Neß#R"&ñ…òA*˜‡ÿ@¨a‚~'ñ¬h§à`gÙ,7)m’Èø§ùÕ,uü²ð‡ €hxö‹û´wðÃsÄ-œÎ&9Né¨]TA> ¢®’CŸw7¶Ì-G¡|º¾±T[Åj:§ÿa$•0aYÖ?ïöªxlþ®fé•V€üÕu)b—rG8£Pª ÍÛ‡OÛívéh£ RVœLåØWXË‚7£1Kˆ:™$è9 H²éb2+´ëħ²Ú@yzwàs›SåŸÃnIôBd¼ä'ãŽàLÐÍ •ÏXF‚ÄAR°ª®­Õë„ òs{´Ê•7ê(«£¹]V…½c½lt–”4Ø.>¼¦ü¢ÖO †0<‹¥kb‰GíªW¬òUûOûO¿^ÎcÊ÷€¶ ªr‚ª5Z«NŒ‰UP!EÝDÿ¤­öFJªÃæ*Ñ6…L0Hc»[Ô;ÈF„y! P8S‘i Pîap²1 D¼C; Þs8Þ"Åë´$#§nHµD…IphB(}l⨯ˆúS²­[»ÌJõËœÁ$«±aßb­Jõ‹Ê;Kûpoºùïj."¿7DÉ+Ø´áŠÿ„êîÝ«_ê-U¡´›qÃЋ­¦‰6÷ÇÎ "EåŽÞšbGQãéõµòSîø·ŽEÚ 7Úm(F§?=‹mí ™»øÇš'Zî0X3”"Y§T¤kwrRªXºv*Ι¯dëê€U¿IsqТ%vN¬ªŒ­,âhW.ºòkU­S²šiøX,µ›VAƒ4G$íPõx§·– uõœú`©€ùà²%×æÈ•0ÒnÅ7“';·;wQ¡%‚ïÔ sXÌ`EÚ9ó€Ê³C?£7Hú“`ާ‡Ýš:©d|þçÍdų_’t¾8¿¸¼úoM²îïïukÛvï>yúýÞ?ÿµÿìùÁ‹ÿwxtüò‡ú÷ÿ˜¬µêTRuàHÖa8çPÿƒõ/¾üêë¿ýý ÄŸD‹©±ï€àB¤—ö­ÃɪfÄö!cùc1ë†Õ:*dëAs´§íHéí¤mXiÙaå’YD)\syÂ.TÓ»ÏûêÑ'Ã~¨Ý¶z6xæŸÁ°®­óÅzký›¿Sgõw0¬¥*½ùá²­Ôf«î1Ŷ"±¾žÑßΫêknl·³5õm¦»µé\6i–hí³VGoF£,Ÿ§ò»éÄ>7±q<+ÄIT«ZC^ëÃV«ÁŒBcòz§·Ñ[ïmXUÚ`Z½0âD`ÕÌÿÛ\?ÂàlÕç—zqÄŠ¶‘νXˇ»×qŠ»†êÅÁÑÞOJÎÛ`ÅÙ²¶À1ÜñéKW*§›±–b´GùQ•HPü 4¼¢½­útR’7yÌ0ÆDŒæÊ( XV›? Rb£þWWrF2oOfÈB™ÔÜÔTêzlcDGPôÌàŒ˜‘ª¾zðºI&©¤Ãö›"¤˜nÓ€ ;M ÌídA‚D,†ûB²F³_<{Qd†ý0¥ |d‹Bˆàh8Ar9ˆd´ÙÜ PA: !©zaùA; >|B•qÛÝVÖ%e”DI 'ÂT(»ì¬&>ðTÀB¥mQžy@»;ßôwºŠ~ŸËﱘŒŸè‹'—b_DG<­¨Q×Ú.ÎQ»¼ê j˜lºS»WÛÚºw_>'ì\4ŽòO±ãy9@|.¯êJ 25¦MÑ››p=oÒ³¿ÿìwíl±Ý^?QUvŽÅSÒ©^Tm ´¥¡µVTÓçIl£Z#º"Y­Êžê nî³QCª/-bØ0¡ca#Ÿ¢X ’EÙ«¿Ø‚¯QËZðÊï1AÖI¤Z©´nRY~^Š¢>,{TŽÙì}’#]ã‹hß>¿ˆÕ8žÃp¥›’i½®"õìèß ýŸÆÀ7N¸nª””}HÛ™ÅàqY[ÊoÔÕã>}ñB}‹ß_Òd^™^Mœß¤[¯&lµ³ 2ÄR¾h`{〙6íÓZ&Ð2ƒ'ƒ™jÍk\hYOåÇÀÈš±†)ÃÜm1(ðé°‰ÇâÖ1‰<÷ÒV2PD&¸º‰t ç¨Ò!îdº‚‘ ™P[3W@uî0°š­[3Y ÏlÀõjw º–«Å/†#‹c¡þe·&*3¾{iéɺ%ª3:aMC`®(Oýñ­Ò˜ìÍñÐäÔ Däç$Γþ`6ëVHü"äê¯ Wˆüë WŒüëVú×W?÷mâõ_û×*·ÅÄØÊÛè¤g9l>ÿël¶ªN/»ÓüøŸ÷YíŠKÞß¾ýìú6[Šü6Kt‘@–4\/ÎâomÓ//u¬UðËÇ©Z;úáð‹öFSÅ“!Þïì‡Ñâ².‡J8cOã1¬CA¶&áTXïoÌS>ÉŒchè ¯kꞬ™JmÎÝŠêîΈúbýÜlà2çê8ÚG D™þ}èúQxÙ%ó¬I<ð'˜8˜ Еþ.}ÓyOãÓÿˆõÕþÞ£ƒGÿ<‚ÕUXd ƒ£}Zº8僘gOö·ŸBžgÛÿÚ• b„®Âù÷',|3ðz½Û;ÿÚ~ºÛ¾ýlxoæ' f’Ž·W¤Ê y·¦ý dIGLJ{ÏŸ:åT1×£—xzp dþp;Ëôòp¿[£û%O|Ô®#©j~zRš{¢´O×§ÞRE>9 RÝùÝJÏ»/‘êÛt> ãöÙCˆAõýö€ô¿úÇÿ~±{Ôÿž®Xé¼Wig~5ƒm"æÇ}ä¨P 5PÅRHmÅBGÇwúßïn?Æ}Ÿ]b>„î¢üN$”a È‹ ɪùø1PÕ[Fê-Á™Æ‡1©¿ èØF ù¢Ž§2ÏvŸþ;WÛ4˜ÆÉ•S› ŽÖ²n#ò}M%–õôÞóã’ñ £ùÊá9~ åòÕ ¡Ô’/ŸïA·À" ¡LVxÐL=X€UÂú·,“ÔûqïøûþãGzÒz»Häýþîm¿<>à.¦ îs¼mÿø/ïpû9òöŸ÷¼½ç@SûûýÇÛÇÛæãhçpïűù|qxðôpû™Õìþtìíþ´‹?ÈCæý¬ø€·ÿ˜wägÇ;Ú=î#ŸP;û/ïBäöóƒç{;Ûûý=ä|ý8åßshsœpx0[PÀëÿCÌÂÉØ‰BÞÜO€ÁöéÎà çã0´ùˆåÿcþy.»ïñî“#w ¤à ("Çóf)ýŽðgxâÏÙ|:Á_ØÉÅð–JN4AŠÓ”¾RØÃìó*EfLpü¹¯“8ž ¸jQÎÓp”ñzK¦¥x8Ò']³Zêd)°™\‘+æ¸ižïæ¹´Ãнœ 1í£kÑòzS£¼òÍ–m E$¹àÁZõgÁM7tôðT‡NÓaLwD<­ñ©Uƒ0^¤2'ìA¶ÆÞ¡ ¤S—J‰ íB Æ×³õÒðúŸ™ü yÆé•bœ5÷çý³`2ëš/¹g#26;lãq„Ç„ÜüBl¾ŸUÇB=Ú˜ @€#›âc6}‚CöÂ;{Ò[n•ÏýK#Ñu!-(ÀŒÜõ¢¸Ï›.¹·Ã³3iŠ+‹K£BœK™Ý´y ÿóR@%šwákK¤í®w§qiUv‰BJý¢#h”ÈtŒÿ²q36Ô™)ïç&ÁÆ@$… I1¥³½Êÿ´%šÝ+QãM\ÜÙiÉÜí`ŸnŸÌfqʽ~  z@¶ƒöô»t£…‰‹MÞs¶mã1kËÅRhæ HíSb²ÇI2ßNÏšèˆhÒTÁ|Ðæ#.0f´Ò¥~$£ ¬# ®à!ušyÐD„~œvbÒVÍ¡‘~2LÛuá-ÝZõ­Õ‚wäAóŸBbJ©£*d¤šÍØ0“€±¦Ù¦XßÕ,i—‚.¨å˜© ò`Íå¼v* eÍbÑv’ÄÖ\~.>GL"óü<®ˆî ÷ ‡g¾«é¥¢ãkzA¡T‚ %x­q¢xr£Ò| ¯[ecPËV·œR“e° Ñ5FÐÏq0d:ø_—/Š „™óÅR»’z²#«–©I×èɨDŸ¡7Ñ=Gä5+;ü¤ÍœTgŸ‚Š¥˜àÑ«fõfkÃ9[‹É]ê€ ™½š.!ê»îwhâE‘®_ά^ýÜ}Ýè²v¼v"ÆÚÝ:×)EU¦Ä³bñÖNfG}³mf,Zu á@4W;Wãha;.3\žMò‘[ CÅ)ŽÄÀæìFéñÈ7°Eç„‘2Á SyJóUšÈoÝék)EM݆Ïþ°ÂYЄº †,媦 ®¸Ðsf'¤ò›Ã/“4’£kÍ…³  ´2@%¸Ñ*Û"M[öé|‘ß+ gAÒùå·­ÙR/MÍÐæ,È}Ãg;'ƒýa…³  é€îFK)öb‹É?kùN¡çhs)& UT gA··tNî*½ø4l(Ηý¡[£ó›b±OS¬üÛýt¾ÌH„΂ÅVéz²–éE·‘Ç¥“°AǹYœ/ûÃî#][I?ñýñ–Ô_¦Q(«A ͘/sŒù²ÕÐe4w=ùað Er6òž[±î‘mû ¤¸°j’ÚÅC׫Ÿ[Ÿ·]dE9êóLMîXp†×)÷㩲MeWknOͺV†BwØ'¨ž¬)¬¥W€êëN¿3–1 …Ù‡ñú€ÿ¯";.§ ,fÆÜ™—Éâv†ëÏG"a““ o5×ÒŠw¯wEµ¦ª ÆÚšý¹°íF±!)…˜žrA’ßÜÔáÌ2kX¾kX`ì,lB†Þ9s ©“DǹsAÒùÍ!È¥A–<ûà gA2¸r¹"®ÜÁ2+õÇ-&¥AKƒîë?§å§=-e°~‹YÙ+!-Ø–´x[ÂÔ•mSÌw>¿ÍJd¢œ/ûà gA§¼ȯ;ÓlœxºYXÉ,²µ<æ…k5‘¹Lî§óeä eI&¤g·aqÆ cþì—ê2SÐqZ0¶P_ ¨mÂÌ<ñ«_öfUaÃÈ/þœ™NÎ4gäû–»˜¾“†`…³ „Î’F 0Ñ[6ÄÔ‚˜…³ „ÎÒ2ˆéZÅèöáá²òëÒO¦‡Ô˜@„Œ4!=hYÑ’1E)„³  é€üæ°‚¢(!6tçËþ°ÂYÐ"ͳ¹i@*¶&Ó®P‘eŸÎ—ýa*ãï,hB:à¶Ûªˆ›n©y9Tò¹o÷Ój?ÇØÉV8 êN²*,ë'RI™|8 šä›ÍEu›Y#Õ°Á:_ö‡΂ò\¸ˆ9+£(>hB.’’q]VÃ`XaŠd*ÅDÔ“ºLé§óe˜åï,hB…vè L[´~´‘C!‘ûv?-ã;Ù [=¢«)é­äb¥_ö‡Î5וÖMcÃûv?/ÓSt þZ¿›•]“ȺÒĹŸÎ—ýa…Kz `õ†QC7Šˆ–Ä£ì‘7±ùl¹o÷Óùrú× RìcV SÁ|Єt@~ùÇí)Ë"jæ†Õþ°ÂYЄt@7@Ê1F,…d¿«d›x1of–t3šY›Ê(n‰Q2A*ý²?¬°5ú4! DŒPvúfISÇœÃéBK#rßv•å|ÙV8 šÁ/;´PtNH¨Ìê˜|„A3‹s?/ûà »@LHä—\’t‘eÊt}ÅF•Ä£¬©šÅæ³å¾ÝOç+ÎJÌ‚&¤z~¸è§‰µ×ÊMHä—ÜÞt¶KÎ.¨øa…³  é€nÀÒ-Œ4»h¯Ž*Ęžµ"sßîg¾Õö™¸i½„i×u‘Ö0ÛñŬ…˜|DÖsΉýòäã{Ȳ¨BLiˆÌ}»Ÿå=(õ¹=(fÌÊ"Kzã‹Y 1ùˆ|JË{Ð;´Ø–Ó–KÊcè$/MYUlIüò"¥±Ë²—Ä•g-ĸÙ0*—Åý,§ ׊$Gn׿±¸²çW^]tiÁUÅ–Z^¤´À²ì%™óY1²-‘Ÿ9‹ž’Ù@& $4!ßܨs)e6xhXðì+œMÈàÎåJpM ~NHä7‡_j¡—ZåÂYЄ Bi9>¿`¾_aÀ‚¤Òùå=¢lREqù  éã FX–,—ZçÿÅp4!_·›RÇ. ulʾì+lmzšeÒ=™.µp킸Ø5QYMVl>"÷í~ ØV8 š]T~sêb/ýêZ?5JÚYi÷ª_ÌZˆÉG”@r³8_ö‡v˜3Èn{JÆ:Ôãbr½‡)ÒgaÖ.'hêÃØ’Z£-ÊMHä7‡CbiƒÄì±aÁ³?¬p4!ƒi²D­“Ìq‰%ŸÎ—ý‘}gAÒù͵4«OZ›ð5rå#rßî§M)c'[á,hB¦Ï²š‹ýÆ6ÃT"4!_þqÛo›Kp”`Sü°ÂYЄt@·Á†_ÒŠsÌ-ö´T°΂&Ä µ®µ0ˆI³Î˜ gAÂÀîYŠ6‹ÞÔ@é0‰›ÅÁ[œ-Sÿ'Ër êSŠ1›FÔäzkÐqn2¥Ë5ÌQ¸žF7ã§AtŽ.—±S³8w?#5<‡+uü¼ÖjÐU¯´¾y}Öxõ—¯6Tý^êT¨»ˆ+ªUT)ßÈrØ+‘æùh.b!+]§ÙÉ“½ŸžínŠƒo¼0”Óøœ]½hwÜê‹önyÑKÎÛ‡Ï÷ž?Ý$×…™§7›—4©±9ëQ6T¼Ýh5ZŒîL2‹Á[²›Ê®Fc°‰»–˜ÑC¦wªú¶hø" eâ.&ÙÄICDžX½ÕwHLñn«ÅnVtžlÕëwZ²âåɆž€G9r}¯}YMծܜú ëZ† “vùmH½°F±Y@GþÜŸÜh²§"ªÖ øšÊªA½Tbë– ¿¨¹ƒ ¡»sCsCϸÎ$nÔžÒcƒ«¶¾FÄ3üžm€'?¢QÒš%ËÀ¶yïy÷îiË~kšSŸ¸‡ôÖ! wÅ*XÏh›)±Åu%k±°Ø¯dör±˜îEÿ FNÐ9*7×cöˆ|@ÍŸ\.¨tB—:ÛžÅÿ°°E£“q¶íÏó'ɘ÷MîöJR¨k17ÃÙ ÂöÝ}_= üà0ÝO5o«f#lwÚøo•Xõw›æM^sSKH/yB`íu1þ†ÐBÝ*¤ý9ïÆØóz£÷[—aLäØjIM›ºOšh÷Vèî5ˆgøòY,^ÿ´ Z

Mâ7AdÞØT'Uämø¢îB®Šža¾¹åK/{Š]!^íôÌRqËÁ÷‘‡>L¾µTÍ_|îV ן»Uçôj°Ö[3 Üƒ¡V«z÷ÅCÑœ‘©uJïªM–•gÏ~Vµ+ á³9t©\æ úøÂ‚>á´|ÁØm@/«nF+¹%d*UÖŠckä±-qcy¢KÃî üÉœsšµæbHž!8Ao@Ý“IŠw\TûD¢!‡N B*ËJþ–òd|ÁX”+ÎòNÑ»õ· yÎÃU…Ä6WípWJKʨYº¬Œ®FíéˆÂVhˤWKçBDnÕTtïƒt«’BÏ­/E‘Ȇç€Ký£—Oràä¡2I¸!´œ ¹8CŰˆH¢câh)<29¶O*ÜG/÷ön™À³Ûì~(çy5^€&2_!GªÒ2Ò¶XCJÚyv%XжÑhTèÁ4ƒUvh•í–r‡Uvš±ý`ñõW•É·u~È âHá¸"–m]6+¬úý}Žrh‰… ÙvÓ!=¨}Éð Ü2«‚} žb;çWÚÇE‡-8ô²íz²»}üòp×Ìf’'µÅ†N\#OŠ ª¯’ÒèrY>úUwûðékU€ó ¢Q«ùÚ.3 þàÍN;^IÃÓpί6½.^ÚqAí¬ Ø< º÷¶¦8£G—om¿ä{@gÓM¶²âQ#u˜¸@;úœž_qëÔÝžÙ*CŠ—áaßÈ€‘Em2nÓÏ—ÔZÒ—¥˜\×;nÙÕÔ±´)ÈÊåÌ¡Âè.k¦dsÜ­Ì–B½£üÚv) åN´0 w‹‘Gö±V'Ë5Žöùš“ITÅ–€oËݶ žíN´Èîƒ(H膈èLÜ<é¶ÑþúT¿Ï®2—YÛ©S1õ$ uæÈežÄ °‡šj/´=:7Éj’§wC<‹ PCËåÛ¥ ¼1 \ ²ÿ$œ†ˆÜ Í"ÌKD@ª‰ªòyž"wA™†tCWä€Zš.ïÅ‘Ûò‡ŒÕýû˜œ=eç¼ÊÓ–äU¥Ñ½üC9$W}½“'1W=¡ì‰)D¬…mê8¤ƒ6Ÿ^Îùl~žßçÍ(ZH,ƒ ¢FYíÙÛÅ¥ï ¯ßí½áìµ.ƒ$jÓ.ç|Xÿ–éðÐÇß„LEäš5:Ù†ÔŠxíîUÈÞ·wÂ?=¾X€ÍÀÊÖkð¥9»–%?Õ§Ž&½Ò«ôV¾ˆ\µr÷*ÏQt ‰n?û ‡¿íváóN¦3@>[‹>—*;£ÅÝÆ ßâe¯ÚϪñyÍÉ¥làëÌWdëHÁM©é¹32˜”ìüÁçòÎéU¿9c8©G¿ÖÑçvp(´õÈŒ°údÐÇ]‰Ò÷Œ­EšÇþ½Ëd紌ƬçÔ!æL>ÐFE¾Žo÷YJœ ?Ýävˆ}ðÏ_U§V˜r”Å»—U±îQ׉a¥;'¶”Õµùùæ;`]hç`RŒåÄ꾫š<~N»8‹ó¬·¹×ò•Œ©Pö÷æ(åwf'&Ž‘–rDîÇ^¨Qò–ßœ·dÄåÔR©æLUµqWVO벜B¹®Ì¨î«Ç™» ˆµ÷b»³÷â@­í¡AŒzЦ!È·µù“«4L;¨™Š¼S·e^‚ÅGñ$"¼O÷2ÍàšF©Îü¿÷ ‚q\oÊCÅx¹Åãg“½0ŒZ'a+„K‘r‹Ã2þ¾¥k »F!›Ò[@§Á*¶­íÙlÔRƒV[áx(§ÁõÈ|Êö¥¾ÜÃê-æA‰EÝã?SKÛõ;¯Ø7ùr6»n È–€L·øDK¨ø·YÊDG¨,ñŽÑ—6òOÆÏŒÿaVW¸dêîÃö1¢µàŽ‹ÃïʰEQô…ËÙ,ÏSðXñÆ<åÎb¥ÚNÓž¤ÞgvnÛ¦4~Ô «”‹Èe;ˆÛïÆvþØò$%ä˜Éo'µéŽ­µ;Ea ±óÿ`]Mø]{zëöÜ+3 #ÝIcÛpk]¢3}oè0AK³IÜð“–É€Ùì“,úh"Tá³Ãê‡íCeÞË]¥,e´ø2µá¢ ãüJñx#‘vİXWD·+HÈ%C[€d.Æ#>þ`'x$4¹ÊX¬…ÿoÃeßÞ”ðíXT7˜žtÙ~¤*¹ h󎙾F=:ðr"¼’ðŽ2=ÝjM ÐuϰÎÅõL‘YüE7Š+^& ƒQÚ>S-cÏoIPBÖ^§Z[ÙÛx¹×«~éÁ®Ç›ú¡,a€åZþ7ˆá·ºQ¯ƒh"Kæädø_öýN+²¡T™Š·"]W±Zù[#MX×ù.ׇļ0°ß¦»NZE”®»JidZøÊëå# R¼»ò7]Ý‚¬Ù~SxJê’5¯ý5½3sØU6·‹‹ÍVr§Šîµ’“ tÍËø|¼a­·îC±ì¶nMdvç÷KØÃÐõƒ›2º\³ÿ³¼Ã.îë±ú¶ºñðLËôeÜøÏ‰\¤Ý¥SzG°ÿŸ|„)ÝTã$_á–œd”j³+îîL§`q®D‰G¬žìÔ ×MwÝ%¿Ù>rõDüôùÁǘ 2ѯó[ær;‚)‡÷;ïöWÝÊòÙjE÷ÙÙœNü48"äs'{B¾²ûìùT¾Îþ^<òNÜãlÈK²PO{ùŸà šßqÔ¹ô X=è:ׇó ølvÍ`‹>³|¬u¢;Ôe£~ØÁ•ŠWŒ­•CíQüR?’ƒ¸Óx1××r1ûwž1éÌÑÆfææM/ûCrÐY›Q¼)ž”nÜPcõUÝØÄ$˜Y§\!´>þ{’ÛXû/Å.ÉY”½'ì­wïÑ(‚ ¨9qÓ•×Ré5áÆ4¤—ƒAÁ±i¼×ÈS ŸE)â†Ø_âýú™ŽPŒ¥¥ö-µ&Á/‹|–Ëïn„ï-á½òiÀçÄÆþ͹v#|¯ñþý›tb«z•2š`4wx4jGF³W¹qßäÿÊ©¸f!»ÂˆQþ‰©£ñÅAN/Tþ¾Ç5‘,öë¨êbâ_A¥p¡Iø¯“YÓj¥ýÿ‘9¿Oí• ;E°~ÿÅå›OÙI7Ÿ£E4Ð[Î'/ŸïÈÞì[J*­7”7×ôx%øü©Þy_Á¢#¼b_eß4hƒ)E4o¢0F2Ý·d° …ªa0˜øèåš…sÝ/—>Þ^lªï_´^þ¤Ö×ÃÒcóiП!‹×Cƒƒ©½_Ýð=¹•+›ˆ9ZQÞ>Œ×âTM}´æ"EÂYÉz÷‰¬$ƒ$ÜÀYDGzñ@ß/D—COwv2J¦ŸhøÏã: >^YEß3ìbsêϼDÉÙA×8XÆ›4ó}Ûa‡¨ÖÞ4³ªÉŒL¥sôLâÏfMº/³É"Åÿ< eÀ[Uv*º¥ÖbK¼é°#—"¯dlR^òp&"ï`‡ L¡uí–Ñ`WL.ü«”NB™P`Îýû½$á•Ü Þmð󅔇W’†½%Aè­lî's³¢½Ho€LaÈ©a˜’ãSt°cÚ®©JhfÞ5ÉEöq¢›x¨i`Fß=â‘á‘Nºéq‚ü. ÝÛ)í6ÿ š^$žâ‹ R/±Gÿ~öè`ÿ½´º……W`·"V<´u±¹Ãå[(a ïßf)†„ÎïØ‰#ð_ÅA5ÖÚNG»§ŒÀ Ü|­³®uÖÖ:5ù¨wêêÁgæ³IŸjMœ‰ß~õ×ý[µ±µ»y…`pmÙOPf(œ «âµÆnDóVj ˜z–ÆkKV³b"‚ÙÒ,Ms¶qŒþç‰ÔÍøŽ‚Í§Ð×@Æþ§þ\3ªG{ÇG7Þ ´ÄqŠþÃqDhŒQ°#1È‹pî]X’â§´=”ªýù5{Éõ›¾(ò¥™ <²_̤Ñ90ƒDÔD´S>‰Xæ«YºË%nôŒól¡£ªÞ9ëGÆ@U‘k;}׃Y‹L R«Ü¼ ®:$"N­{aº†¼ p¤C¯¬á¿™áÞÊßÖJ¼T~G±}‹™<…VñM8;"Œù¤!T§è͆‡øðú”ˆ¹À„€½| ¦ù&q÷þNÃa÷Gg+yÓpò×)ßòÕ*@ì#uÍYØÄ ”±ô¢KH /(%9p÷!Î'10ÞHºwïž&\ºÝ«Ö$P(‘,äÑ!•r×Aà–ð×®sCÕµ’šq uÕïÏî‰Uÿ†ªÆRÁG›0 0H·¶Ö?©¹ñðcÏI|ƒ¹Q[˨´V¯‘"€)•¦VéÁ¼z’œ…jŽüÖóÃÅíco¸ï«Ga„Ç¥i€Îâñ-…‹Æ®¸ä1EóÊzÉ,J? Hm©­—*€ii¶†£Û!EŠD;üÏ¥„¸É<)]KÞ—(ˆ\Í.ck³Üï`÷àî&(ÅûÙýdÜBÔjuÛ‚eþe6~˜á•ÕûN vkuؘÃo”è%ga«ËËdÆßé|ÆddaGMÂSŒsi ZGïê4F@+£dKµV1MÂWK›ªrQ¡ãx¼ù5b;Z©z]'˜íeKeð|†ú–g6\k!ÎI¹†j¥ý>=!™F€Å_'C@&”ÂïìáÑÕû ë]¼wÅ‹\ÅhŽÄ.Ýåm ?{ô- .P¾'ÏCdÊAæ(©ê%=¶éY¤ìÔþO¯UÍ&þý‰M…éÝ?m·6ª£EÅh0‰Äñë/4±o<ƒÑyEé#n'>´Ç{‹^ãPÕ/Ô·n´_¼Ôï»þC¬)ÜhËLN‚¶ÓPãiµÑÿô”~JL)ÐÆbåœ? `÷W˜t¹‹te^üÂü^·ò­bÑhbLOaË);çí§OÕ³Ýg≯ÂF:ÉcIlk¥1î Åü QhÊE~æ|î&v«¬,¤¡Ÿ’µºÑ®~q½Õcõ‹¥ªÓ/?žÃWåBAuƒÜ<ÇÉÝŒ—hDÝK>è]~Y?¿tŒ~Ç–Éÿß¹&òYY|`+/ÿWémÎ@š("’pÜžÄãì}JrÙ<÷Ãø sJV ú½@Ôü ¾§d¬QyßêÁ±•ªx|n’m$Ȝ֪£,™ÞDóŽ)0E¶=ooNK[Žm§ÕܵÆcuSL2¡Ä5ΫØ÷¢sý|µ8DçUF>‚/hVÿáiÒ¥g¿zhõLý’çÑËçÛÏv«râ…È_Ñäù!›­®:Y3 T,ø­ê¨î>ýL—%Ö9ñ$}JõG.ó¯,H,¢7Q|™2‰]&¹Y™Ô.“ެ̹]æüš2½qvF)0£Ò…ØkÀØyù](‚bǺð_ 2X€ö±Î? “ŠpÌ¿"Zº³õƆ—K*[ñ<¸ìŒƒyz•ÒÛj^!éºnÓH ¨"~:©ÁòaЯï•ôŸ$-ëÂåøÅé$8&ª?IºYÿ1A„è?(ÁO'-A°H0†xÀRÿ<èï=9êVáÏ–¢Ð‹íãïûG»/¶·ùÙæT?KC©i=(³ÃS¶[ôo^˜¡ ¼Ò‘-hSéŒZcTê±s2fúŸ}•1û¼3|aZ;¸@"i‰Ë{bdYyõ¯ ˜ñÎk`üµ,¾µ}4OÂîÒœw^1}Ëû ´ÃòWæíZ\‡³<yâVß1¸@¯Q WŽˆ^9ÂWÂ’!Zê³?>1†¾S´NeYÄs¾Þà'ãT/udÀØOƒ¹ßÂg0ÇÛPî=}ÁoM±”ïOôëǰ*Î@Þ.f“z9h™k éb†wN±u$¤›Å¯5w‹QJâÖ)nºHçý7ÐÝ}ô•Û%IX¿N`m­« ¦,‰‡ÒD¢?Ý Äê‡Þ¬ñøUFÝìµ"úc$':õ¾.Âw{ñ bL¥'ˆ)›Òùå1ㇰŒæ¯ÙÀš  é@]4y½ZC§qûòï AT%»}XëÔzò¯VëŒ+'¨œ¬¾’ž¥ÈõºÖªñ»ƒÅÁƒ­GMª«U4Ð ƒÚÊÂëNáLG’i®þ5OV`/!ŸÆs>amÒ#CH¹|™Dì9Xƒs/O Û6ºD îãαƒô#{œ%ûBŒ’×ì8Ùþƒ€‡qc&´ÑŒIk”Í“S£H'uN‚ä4+Š6HRgİ+>ûºfÙs[Å!åÞÀ%Ö+ kÜTŸ;²éóž¡+ qL s‡ ”r:õÉõÔSF<.QÓâ@Þ–PnwKo I[ïÊJ¬//±¾E~~¤K\xw,Y׺öÎkæL?ZÌ€¸Ñx ÈỎEq½~“%€–¿Ù•wLãs^að–Y€—_ÈËëÄÜYÇ‚/Ⱦ1ÆU%NSDfÇoÔ‚ô'÷³{Èx‰­|—í1/\Í@(NƦn\®|3§¼(%é&—É¡è‰a²ó3íäpÁ7éèõ›GGÕ—íø¼^Û£25ì-Ço(,„øÎ tjlu ë/íŠÈ0ƒ/ÞɳžÙ §=ëj‘=z9™¢ä>· T™l sW2è¸O÷ìF1.—t $…‹$Ì]ç…}àŒ?:~’.¢a$æ•6½µl],0åd è|¬® s‡… Ç.íüÜ[{å·þ»ÝúŸþk ú¾¿}øôH¦ðÑÁËÃݺÖn¸®S„:ËIÖÜF¾ó–1;¥lú°Çqv•ø%˜áX&â„ã» Ï­g l„\ü9»²JzåùùUAKÞÀŒÚ©ùõgŠ‚ gleõ†i‡ªÕ!CâÓ‘.[ÀÀ«©z+íà®ZÿB­% 7 J&K·–µ¸9ËÌz½fuËÁY©žgû6HÕÁ‘«,†È$8ö­ÀBÖã]XõÐSDp‰ÎxÚÞŠ>€ñµV莠èúÆÉyýJè üÎãÔg¥ÎC ÑîhG/¶wþµýt·+pû³b497s … Ibîì‡Ý㽃ç0‰¹ °£ãCt,XqP^>=Ü}qpxlA3qwøòpß_[‰¶ÌňxΞO N‚ï:&ä|c®…dJfWª¨ðBMT›i}!¢*œã5‚äC…p§±˜Ç¸Eð- “!mót˜4-׻Ϟï:Qå¬S;ÏŸì=ííïÚ¯wó›K¸ "œ¯PS©ÅpJËÞa·=½`[À2—~¸Wæ'š-ÜÚ;³Vuxe±ò•å`×Cãç"ÌÓ´•Ë*¿ðKŒ÷ûÁ´6W#çëÀF& :V3s97LÎ`>pòef6Xø”û)ý›×P,”¯ ÖÃa¥v½,5ºúJ.b£ÂJFˬϤÑ= ì Ü›êº+3;Z抚‡Ù’|’µ ßx5‰}²Ñ§Y%Ïæ*,ß3ݨà×âÎ}å"ß"ýrF»Ò“µ›^¾q›ÈiǨwBêÉ‹amsY;–fF‡p²4’mSõ;U‘g<ðQhþò¶{GAð2íC}¢X0 `/9I+Ù¿úŠÏ±ÐhÉÍØ1q´ÜßgŸ9ò”qŠš‚S?Å‹…@3äaPLãE2,bZKgÁ A˦÷ŸzÏ.qX4ŒYéàÏÛJ=þçÓ/T0]L|Òáé9°«$CLBÀÚˉ×B?#ÝÑ’vÝp™á;Õ¬&ØÒšP™ÉfiÙΨìÅöv®zËCü³ää>Z,![$´ž`Ævsó!<–¸U7¬.ÁýðЊå÷ åit’æÄõê 4.ÍèE*댷ÒÎlV;š·c›c/ÁRs睊¨rÂãí/.ÉÊQï’Ä\²RM“BêP§Ýv>ð[¶NF»0â0CÁ¼œLZ陽·*”Œ:Zò÷Ó3¦9ÉfÁ©Äç(|=-¨VTÜþ@·o\qz6ãÉûUÊ0”$*¶"ËbÕÏêγUyuƒoH™mª¬‘M¤\S½êé‘îU²0 yî“b l×#ÛbøI`¯#æE¤_§†Ä¿škÆ |7ñò®Î YÛÀBͺ±S6â&þEľPľÔÜ7H`"@Ñæª¯xå!Ó£4HH2&Hx?†—!z°A”ZsÄ4L:4.Ìãä ͘Îðæ!z-g7ÐÆtc-Ò6¶ÅjÆ,Ç ˜Ø0¸Gßïîï+{Œ…kR† |„º˜Ó.¨ÛBülxéât4H¾1,踠 õ:Hž¶ÌEY u|ØÛ¸rgÈ´=© ² Ùt}©,Ëo6ùu9ñb×t€M‡wxÄŠˆB¥ìΞÝ,-½9WÈ›¿AG:Xd)ãÝ.Ñ*Ý'§ãݪõáY;+šÎxyË>Y1LŠ'7€Y>2T^z»bK]Å …V–ŠÄ£+<ër‡Ç꜕¸Ñ¸æ0:)§“•Ä‘‡!hçh˜×n•馔]-³Óäµ3ÙŽéÜï4Zío<³UÉZF°ƒ‚-q Gxž¨åi[õ/wø¹oízHÌ(^œ¨µjª§.¤¼ô,Í ˆº 4®ËÇ9ðå–´ β¥8'>\ÃÝšr70ÜÑF[5`"‹”Ùº˜ÀWÈ÷ñ$&/>Ä8µðN@º)uÆ@þ ¹d‘5BºRgAæÝ@1e È8è- ¡sòN ŠÃŽ’ºë. ïëÜ_ä³.c˜ïnÜÂR"kòÚ§¦R…K¿ÑÉ×Oɬ™Ž·ž„ÒɈ‚Ä{ÌG„¾d:ê¤Âl¤AzÉÈ€Kæ¢Ýå¾éL¤¼<½¨·dRø÷†TåÊY(9²I¨‹è9(ß«¦àÎ6ìÏöv¶÷ûßw©ˆç™ã¢TßûÁ=ˆ[ïñÀÛgÛÿÚmáÆñjËRÕ«®aTý&O,-ìÌjI+3](‚€³eÛ°:äóÎ v} ö€?[ÖÓ>½|`]ËgêÀŽ x|@DU ðîWö³+ì´¥þöÛžØËðLî*ºº—žy°iØôîýƒšPûÇ?þñ׿þµ+}ÐåÏš6µ¹O7ƒ ½¸NéFsˆV4Œ~µþzSíâìd芹cÌWÈsìÈ™Nœ°_P-Ö}ÂV%6Ãœ¡è·}‰WãIx‹"Q¬ç}Î7fAžæzÛ¬®—ó„xk~xU¼ñ~åÜv?Ú=îcvo}X¬«ˆâ| “¯ BíÑ#h­ZÞÂwØZ?f™_ì^âeιŲ/ð:eŒ †·n±wãÁ Bæü°7n3ï ´Iå+/Éf RÐp1^©28äÜkÂuäŽ>FÂunF$Û2Á‡Ègçýd6Û©ä$Ý¥4•YþWIHsLoÑ­!k†ê„[Æ¢„C?Dm²Æ´µ˜£‚ˆÌt2ý›6¹5™f¦–Žîùª9§¦rú¨ŒÜÊ ˜Ë©c„^èÔÊÚ…i¶Ô†¥ÛZzŸ­æB0¬:{KÇþö’#RGNbä(û¹ôË‘ýÉ’à¨ô²ºÄ<Ç1ªÒÛm+™ÆyħÇt£?cРJÙƒé\+ߟ¬b9«Èúë“âÙ)Áµ°çÈán{M&•’¦Nøm¹GÞHªµ÷ýJá8U<Ç­#Ù%º^·7€‚Ö!d|çá âõ›ósóqAfS A²/)™¸í·ÑÇÄ$¸þñå»$“[§I(Ï[n.©gL¯9&“†dœ˜úÛáÔ6õè7’øn+ó} ‘ï“cïJ|Ÿ Ä÷)1ô?¤ÀG­ÏK}vSV2‡»ñ‚?§þŠ©O…©dü‡®gu£øÿC°ìWM⮪/°Åà´Dè®|…¼2וí+IÊÜ¯Í ×§Átl×?Nsrj8ºnÇ8øê4Ç‘1ïöçgMc•¤Èù‰(z{Žm­Ñ.wS¢Ç·¼Ýg§Ç¶èð#ÚèÆl%FÝsãR’xÊÖvñx‘âák[Ê}_ "Mäg䦙¯QàmŸyGSÜI›èþÏ©T¦+gvè]ÔŽÕàÌg°'œ6 mhCCýžÛRN”SE–ó¢•kùÍû0˜O£ü©¯ü49Û_Ÿƒù¿§´ôTY›2Ä×ÖÿTm~`Õ¦ØTÉ} ÍÕ±Û? oQŒ·‚Ísµcmhhö!fCwð†@ÞZâsä†Çþ)ú8žgop&íbSn°ŽX‹'î\´~’«n”nÛà²%Ì1ž:ÐÎVK ¿ÕÖªõ‹| _Äáòé}EGê­f` æ ÌTä¹ÜäJîÖ5zô<ÐèðOïîá{Øfyh6¹Ë'-Kb-bcÒ+½Joe—U­Ü=˜º.Ò)Àà´'¬5y’bE;Ñ{ ýº¯•¶Ïœ›1Ñb$dƒµþÀïy¸À'˜/†Í‡øZ…¼v4 ÐEê­”2ÿúƒ_jîÛ6.ë”æv–ui©BrVB˜škË ‰±“ˆßDwbR‹ÑhÈ;>¤Mx'Lölbô>¦ŠÈ–,ÆbÇ›t… ºª˜#¸úl¥å/þbšmª ]ÖÐôðêgõºÑéÔN䪚ÁÊbË4¡‘Ú¤÷‘x}çÑ+0ý!ãç÷±ûÍHfy2K¦ JóJí5©ª+aÙÔ˜óÚÎVÆ| ˜]ûrFšSúÒßÙð”Ó‘¨0pz*?cúú3ú…•ƒKé|1ÿ=ýª›»ÐìiZ#M=*»Jvï›f"³+'i#óœÞ³?{wGa¿*ròß„Z»´ûæZYk£½þ…<‘ÊÆŠ%t±4Ž}áœDqMˆå**ìb8&6UŒ3ó"Ô—©Ø¼UûÜ8Ùýiw÷§cÀòº‰†×¬ÈùáNϨ½¾§·v>ÚC]ÊþrèBés}kWˆ{l€”Ì[ƒ0³bl¨_ØMœ~aHß켬SÚKg lè,eún${úõWûà#ÏRïžLÓWþékâ6utb4úØUúön¶z4Õéb. ½ {Wè³)Ú§CÉAà¥ÀÉ•JÐýwÛ»GÛÍ Ú ¬ ;dykÚç@YïÄiƒqh¥-8 Ý\Žâ-ïé–ÒEœáïž—³ÄîõMU{õsûu£·Ök·½:plrÄAmÕ^ä õ ãvãÛûýs%aà¥eÚš €Ô‘ó'ܳd3õ¯ˆ<ý!÷"_ŸFº‡ç€:ÞI Èè×:´£0*ð•$;ò 6gÚÅø¢¥?Á¯ÚXz¡Ñc!ú$ˆ®åñ«Åh~µiqøÃs?šûcœ‹T·x)£e‘¼³»†Ã•Ed,ºtlphäa×l(<ë\qDv˵23?Ë[ñž»Ó.nÇÄߜ֮§ØÔ[Û¡^™)5^úÈ{Ä¿ýMU,™F®Ф—MÔô.ûûª:®1¯¿Í ¦e{IÍŠ,áJñµþ•êÊ@pÂ;)’Ê=à ,ÿo,jÊ´p¦Ž—¹í]"ÔÛÆúŸ"1¿OÈmhoqÇ®¦ÅÒ»¦©k:»´L^Q\&Ëý!e¸(»íÔ)ÈYêÄÞl°§U#'òÊHM­]“ ˆg§ ãÈÕÑ1µ?äÁ€öBt›€¾°H3·s5¾£¦:™dª…m!é”ä¼TËÍZØÚè½£Ìç@¯7ùMG’áøq-€@N’i­ v•o¦²m“vÕý‰ËbÊ’î ΈºÝÚw•-܆»ZN½lñ£ÉåœcSY¹Â ¿Û†3ë.K›õkŽJ\v|׫¶Z*½l›%Ì_‰Óš%ÞüäÖkÝàô¡¬*y,ÞU_­xULæUø÷}©ü:E—SkÑcªYÜåuØÔ¦Ë+>Ã:B¡¼©‚7 Ê)4k¶È ´…ú÷Q]¡ûßÄ…É7P^•Ì/§"çNzh³äÞ˜üsÕý-ÔǤS7][kwJ¹JMFàÖߨ„ßYÈyg»ttiU­Ðs£‹ûìSó€a޶Ùdý§´\¢û³£ZN€¹‘»™@"u¸W“l{'­žŸ‚u'?êrNè·_% ƒë•’ôUkå’]‘½\ü.›#|³} ºþïŽìBËìhø1ø»{1ø½N³rÃ[ÁÓÿ”í÷„(ÿp‹n×ÇÚõ-Û¹#rÛ½ÑÖGØÕ]gºf2”î…` Ô¦÷êp#$gÑ+6?4màʽ”Ígò›©²‡jWíñ)nhÞÃuƒ\²ŸÊ‰m<ú§µoâDäþB6UNžM”p߀Þ\2ÕâÍ…ùe–­®Oe5¸Ž"HVý>´b§ß×óÐx(|€„£«š4Š™«ê ¾¡7«¾Û$Y¾ºì$-M2Ù£8]F±eÝÞ­æ*z/Ÿ\.¨%^Ìäì÷òåîå<ÝÙ±» ?ÅÂK÷ÙÓK·ú–töfœqéDþ}ïR;;bÈ–ªÖMö»n•öŃA|gw’ÔÌAÿ‚h4ñÙW»ãÉ©¢“Kö9ÆH­q0×õ‡Ô×4@›hH\'h•b5ç>$tÒ¹|ð kçÍ;(Ü GHƒ~Ç[—ì8Vkçu‹5§ˆöýÁÑõeûÚÁ~Qƒ*ÿÉ_hÆQñ'hÓÔÚ~~´§NÍx†@Ö4Ø £EÄæ6@aóÙ¦òì¾ØH 7[µÞå÷ß×ÔYpiy…!Ä£Ó9½^#^âÙÅ8;G vi{·@ýùa\±«z´”#Å$§Vçdú1$†›ªÚ%Ð;tF|6¢Á6î<œ¨Ð'6ÞŠù1=Ø&GµŠÚ?‡hx·³ òP4éÁƒÚ_ºPtÔ…EzF€N×’EÐdU1%?Iü+@õ¿š1¡7uîF æ(À7…}6T¾HðÑGÝí>\ØWæ4aá¡”Ã*TŒfftðŒmàÉ€T§£/q¾s½¯ êâ“Õß©uµ©Zë@§H{žÁþëkÂu{ï'ê†ÒaçÁ ç@G³‰Ý8õI¬f0œ€]ÀÏÃÃÈЭŠ9úïdR(pæòBƒµË:Žá~9|mp…‰~QÇŽ¶‘Ǽ´¬Ñ—„r«¡]w¬ÍzŒ#_[.)«M<ãÊu÷¼lˆ=p7\ʺr¥ +94f¤Í] ,ôU¶Åú£;£¢}’Ë’q›§`´˜Ìgò¦9,Z1¼6‚Å+HêbNŽd'ãÒ‘20|Ã7" w€ó­ùè™6òÂgâ„ÌÚùõ(º.¢ßÞD»ù«ôEoe ZMEÎfRt9-Q˜mqŠ•¯íÂR–ÏË['5 Ç>‚ØÉ*bwÓò™ªÓ8žŸNbt8bÎhÏfWxSh È/ ði:Ô`†q’ñš~éGÀHaG€;>€ðDàÒ‹Ô†¢ALÃô ÖQ4äÀI~ Ò`À bpôá €ŽxrEaæÇµ· `œÄ‹™ª@ÑMJŽ:(\ó»9Hgô*3ŽÞy›\YžfÒ` kz8í<r…¥­(`¹‰-t‡(YS’íÛÖKmr[OûM¦lð" |87aåñŽû:_=:zܲÈQÀ_³§[V¬Ô<… ½÷žoïïë;Ûö^ÏŸŸé× î¸Ùûwù„ƒiöÇÄ8Ðù3’ƒ}:ÆVéÄOÏøa@¬våÚûk/é÷×Öp»£~…?ø·ój°óºƒÇ øb;ÍtüÈ‚ù2Int6µ4yf;N7èW:=ÿ ÷Á'Ë™dBCO¹†>§“¥'Ò“u’|vÔÁãcõì²èµjJèt¼EÃråHÛÁHáÇæ¥Œ™ðÁý¿ºÎ3öD-ä· ð)aíÕ<ËÝ‚öÈ1Ö3'ÄÔÀ¶´[ »9h¸wÿ ˆBÕl=ñ›w¶[çgŸÑõàXÁL ÓÙ4_6ÿ˜TV ,îs¤Ûõf–¯kZy©t?ŽÎR¡™m.¿IÛNnŠïìb6Y¤ï…¯°¿? T6€´ðÒã0èß¿ÚZ-óT—‹´\¢[Ɖm®Y"ôüÂ:+LJê¨1TÌ÷Ð)f%b¹‡Nœ¾AVS„Ž®ë¦–£X9™] O:6ÜŠézU¼àô•*;a­(¦_ª±`Ü,¯i6”f?cqúîÊ> gÿîYÇùê þÄ›[üW<è‰[' _o©Ï‘Û‚Guî®9 —uƒÍRÊ 5NM¬¶Žæ&ʰX žõPM#»¤“ø‚Ÿ 1´ ·¤µPùïY"“JIò¾ŸyÒ¯iÝpóù¦·f¡Ô×$Áª™?xãã«¶Ù©5×HWΠœ"°”ç§=‡dE²~“ñB!_(.sn»À³;({ò= Í´œ‘ß&Yñ_‹/ |DU/ôºCH´þúÛ–?O_ž‹¯¾=÷“4éÜ’Ç~“Ú¯ Møš<>!DÃTú@îȦ‹ÓtÎÌW ÒQÿÅáÁÓÃíg$näâ`ÃôV¢ÞÕ¼’²G;‡{/Ž¢umÉÇÛÇÛN9Œ°K©ÖT}ýå—µ»<¦Ïw'òŒ›^Ý·r;2åþó>ÏåIÔO­ÃŒ'çœTð=<]s—íîÞ€š2Õ¼£lüý¯§$~4 O?ˆ7mõ‰9 ;Ü~¾¿÷è¸c@¥ÎÇ8©kòüéxl¹ã1ÓWK‘òßh~S/d‚hµ€»·’,n¿Li¢É­RYôÇ{n¥ŒæçzÃë8ÎÝÌ'ÉOì.ø`N Wð§Ësùÿä3×98Ôýö©1w"-A»ÌÕáû³—‚J]þ^¬§Ä¡¡®Úuj¨‡qóOφež m:2ÄcÛ 9ìÃåíì1§ó/Þ¨)þ‰ðü÷Óyíöÿú, ”rvˆïrêŸ||9ç^ò?5µˆVÕEÓ[>ê·çÒD9n"q¿£+Zª1ç…v%ð“»L?ùÔ&þᇘ÷‡åÓþ°KiNú“úHéÓ™í‡îd?ô–Žô¦úaq¦þÝÛ~y|°sðüI·úV[•jš °§aJÂJ«…W}ñvWyÇžßÝ~¼{(ùcUѳÀ ¾‹Ú©q4ó“4˜°7àÉb^w,],°lÆÃÆ é}]äîfƈÁ#Bs”.¥x¬0Š U*ÄÕ,Z±߇ÑÞðAS» ‰üIf‘JÖÖd¢ ?iž£Ö›ìð´ÊÍó¦è²¤?t÷ƒ¬HÌè ZÄbXøtNæx¦À¡£Éb™½ØYU³[ÇtŽ>dýÙlr¥Í¥G|ql€ÇuøŸ‡ jªìTôµ1BÎŒäZ}™¥ ã¦·0Ðòh…Á]*ò×ÍʲÜþÚYw2Eç05•SÙûÜ›(´b‰YYi>÷Ååò¬°Ÿ3w¨—‘ø>´È_¿1Šý~û‡]lÝËã½}µ®GŠ:“Iæ³´?²±ÚíùæY|™0»?†&ÌK4¶ŽWÝT]YÎá¢÷ÕA„çdi“ ´C4é >gë?;lç^‰yñ¢’E%&»róâE·øâŠ£ðtÑ‹wãÛÚè„LŸYÄs<å~H- ‚!Y¡×å Ø[سSAÈò‹1ª…æÀP-‡ä÷ÚŸ´€!¥³¢ƒA9 öÌq¸to?~Ó%ôõvÝæÓâ®GÒÑ9GçbÀIÇÖѱ±xñ¼Ô³¡WûsŠUŸ.4D'Q<ä§)o­#è¿ôßúoýGÐÿUnam®C´)·Šr3ÀzõÆW¼Jçô_ô—f糑¾6OJá±ïÃ',Ħ¬Ë7¹YŸ¡†LÑ;ªÄ¾‚•Ká;òŠX%~ו·IR,rÜæ»¾?²N)ÇÓ …/J·\ñÁ…fq«¢æÞÆ›íåÝ£ãÂ-ŒNbYÈ¢âó¨÷-5n/¾××¹8%=ü«íæð+~Urºâ¶r“~'`Tc»àVž}±‹èËÌɆõnŸ,£T|/dá?Ó#va«6´9‰7—C»ƒTX„²dÌ[˜ÍxÙ”…µ¶¾^ÐeÑ*¨¹b/ß•Æê£ÇOž~ÿì¹ø!ò¥ì ^ìð|­ xŒZ™boF ã”- .„*âÍ@½£Ìj‡ýØÅKGW?ü’)L—³—Êô¸\‘¦j$O®.—Å?ìJÌ cg˜ƒÈ–… Á+ÈÜNÄ2Ǫ²-Hìâ¼ ©é’šñP4T¬š*3PTÂv±…¹—{cFVÑœœÏË+¦+Z"6°™…ú€Ç ²ÑôÉ“ÿ€.ìF Íкct ø¡—]ÊVÄŽ4uO Ò>‚»ÓXY¬¬þÖX©’°ŸLT‰æäB>(cCH¥RFÞXIÄDNë3ÝMÂÊÆüXY ³ ^j‰}¤ÛLnqêm]ì ˆAѺkœj“&ǹ:UAfAÙ™a)àÄ'”Î'tnSðhÛ¥‚›ßé°Ñj²¾ÏM/¸ª(Ê3õÌß¾Õ¡O}vÄWA@E´\q¾žVËq„€3OUÇ›nUQÚZ‘`ØZNÛé4Åöÿ&QáÞ1=±}GÅöìÅöíHŠíTšb;Q±CïÛ6Y±ýצ+¶g",$L8wé¯DAlÿ1$Dú"KÛ*bû[‘Ûùè÷›<­|,)¡ú¼¦’‰1N¡(¶m’b;ISlߎ¨ ·[›¦Èü&‡ú)%²ÎÓÇÝΟæDÙr Ø÷N®SÜâ­€vÖ÷’…~;?¤°’ê/æÇ;ð·l»4¶ª9¸T^o×> r3C ]·ÓG¯xw°¸DD@ ]Ëá*¹sÑt43”Í`£Qb¬22€øŠ Ž©"t·sd¸Aˆù»{ni±`Ù‹ÎÒ£M±Z[©­ µ&“ Å{ ?¤jSܤØÝ? äm]JÅNà}^~ À}‚¾ ɉûì†yÄðÂ}¼™`‘et?W+ܼÆV©Zû&(Šú˜ÀPkÁÌTÊ¢,ˆ•Ï+/_’ŸBxZ]Á R“kçhwÿ×íÃJ§**e(¸¦Àg8šñÞÊ¿—ìÇûodv£è¢¼Qz«‚/Ë*ªŠ5¬¡ªoå’íµø>®’Ñ®WÖYÈ«`¥üŸ´lA"[˜1ŠY†Aø Pz¼bŒ€ýä+å·wû‡èÞ½2V*.µr¯rV¥ j•{2ª1ì¯}²2SVñ8>ˆdóê8 ½‡«Š8­@+ÝJ¸˜µº¤@‡/ÕÂ46ö'£EÿprPüÉ.yЬÎvè VÙtoÞ7œ,‹5yÀnM¯æEÑøCŠšzJñPÓn\P×rêQtê:ƒT÷×…ÛÑUÆx2«Xޤ‹ÿl\cT¦]`³Vö‘h-=KÆcóûn@¿‹0«°._1Z5Ý“žºêj|š!FþÊn ç°ä9‡ƒ@À1|©Çf¦ª”Ø&Œ*ý¨ŽùPi´¯îœ¸Ãndwôñˆ»ÛoìÉôÍ£rLÙ<˜å¦Ís¼óf»ýëòfÿ:jã[ú"Õò²ø¤öhIè©§Õ S*×Gn„²}¯3¦ØêRV&™˜vcÕÐ3zÏÅGE‡ihDÔ¤U)˜ŸO%£9t4Ž*@Nxèù¼ÐõyÒC4.~M­6O¢q[*éŽQ  ™Æ€rÎO ji±ò¹ÌXc<%ªšfݦü(—Ø–þÙ Eœ+"îhÂZÅÏ­R¬d‹ôÇÉùJ. rc”¤Lž:: &O õrœZ6t›7"ܸ{êûýÚ¹ÒóBÇÝÒ Þ|~“ƒüé…oæi±pûüÏ‹$ÌÁÈÃú!žƒÃáGû‹(Jmü„òXæCHi­«„I§ÔŠ•@>­fú6WÕ³W»’£¯èÎ<£Nòt>WO©$Ðmjnäèl»MK ‹·iÄmÀsmÙ·Œ¶¦–™ixv¢r6.¾ˆö \&ášþŽŸÇèö8\!ƒ"ç=•†éN=™ñô=OfÜk|2gçýôÁÝÜV÷}+€Ó¸DÈN]Ì*Û•žNýî^ñ Ìl”)6;lÈd;gï+ lhâ!Ní[–úéü=ºô‡>ÈZS3y*SXÇ3¸ÃÉ&ð?BödI|M= ¯Å¢LÈoÜ F¸ˆÃÅŽwÀÚb’Ø’è)ÒÙ|ø°.E‡/=o¬¼µ•'µ'OÄû-·#V‹Õ••Gj Hò¾¤×WÃ"|„ê×O…ôèýr0¯ž"àÚH^Ω§F┥±I걎8ÐM3„Á.¿}g™¸~09Gkõz¯Ó©õ†“šôêƒ>¾.°J7¬#<–«õAØ[Y}´ò¨v>Ä1·®£v„º&'èœ{nKÔ¡kËHJ¢ Õúd¹Ñ ZWOiµ¦OÁ'¹ÖÓ>.ŽðóƒOë)Rã0H>cÕ`_›âSzò½Ä€ý!iaÃqí^¸Á•’œuÙõáRd‡©U¸1ÎÀûÝA[¡0eÓJJ¿rÏŽSüÓÁ?]üãâŸ3üÓÃ?çøÇÃ?÷þƒ?Òcr~è|àŸ!þññÏÿ|¢§OÕi¡Úo!Gfeš0Yæø¯`:twndÛ£lOed›b&AŸA'Ó -*ê¿¶UR•\LYšebÖ•…+Û/ö÷MÓJ6¢Ì”;ðo⟨æ£ã-¬»ý:wJò@`쎃ì’Ô§§aMæÈrû\H)$Ù{ƒ3dV¦ÁЇ߳ÎpŒEΆ¤t†O¨»/zÁ¨vn²JQíP‡RñGiì9Œ£®€_¬~èào¸0ß貋ì–×:² uqƒT<ŒÖdÆdø'™+ÆÖ!Ïwz5vý€!ß;râð™ÛÇ'sÐøŽ7]òÓàc×½ÏèŦQ|¥ßùèŽm&SV„og&ÿy¡ß¤P†ÇW°×Õ‹„¢¬aBãÃ']ÔýÌ»Á ã ðe]ãßeÇŠ•È©˜í 8ØÂ7ä`þ°¸ý[q°ÿµ lª a€7ñ†T`F¾Þ(ZŒA>µéâ¿ba!•Ë_Ö5ŒþuÔÆkï7í×øÁ“Éõú¤K’?õ¥5<¯9öåÍþÛ½cÄU ˆÑUÊš)H´×÷Oo€eÊ ãRq0b*ApFü+6ïø_íî¿0‡nŒ7·ï½ØÜs°qLE“ø]†þ!›…ýÿw$T8÷"ƒË8±‹Fä!³7‹º`,;°„Zá#}mš¸7ÿ|EÓÖ6}šcf¬²·Yžÿ|»ýv{Î9¢²)“”`àöÜÏù'‹ÅGÉsM—›`‡Û¯¶ßeËîKŒÄíè‘à÷¶JLvØúœì®Ä ˆ§Ïu8e†²÷´Š(:ÇVJ–0wÓô¦Ø_L®¶âEr4ÐÌÙ–]bö¦P= _S±6B"—J óÉŒ/8sGW7‡e®¤xô±G[Ød¦yDÀ………»§i2ÅðÔÓ-Áÿ«ë”‚¯À&º±žwàÖG¤@ÉäCS¿K‡>óñ§)½L0§yhÁ,ˆ,5ŒUXì—öæþÁ¿Ò0GYYX+| ¿ ·Úí¶ô4•>ÜÄ.I䟾_Ùÿÿ·sCøcöP¢ÙÌÝ”Ìùß½¯nXr±–š{ê^K)1ë®k·_¼ÝÙ=ÞÙ˽ÿß û$?¹G…âÄ$ÎAêÉRózo¶žXdÞ¼øêÙR<1!7½Ä³OÇ.ŃÜ"NYXÈPO1?ÐHRpÍyóøX<[ç7{å Ëݨ¢ˆheâõý.´o$dg¦¢#ÏT„ ó%ÐÀšÜÍZ†#?“´·sœÆóÈ`ŠPƒƒÝÆÓÄ; þYý¦Ê$iQÜtΦì%l›óT‰œ§.“ÉyæX0ùØOX yx´Xö4(uÞÏ׊•?ÁœMŸ‚Ã7[°Ü“³`¤gL„YòÖsÁ•å”ðNÍÁÉÆ ÌÊ3S¹\³’R$çĽÞh$§E§fLJTêÖS‚U囘³Ã(–}ÆÉÀR¹¦"Q )¾¸q&ž4VÛ©“¡?dÏGTö.¦d5÷”¬æƒÕê\S²šwJVo˜ŽqB1AЄxyqù|4ù¼XM“+¾8Üÿy{}Gml¥'»Ä¯‡;ÇiRâ´9†6ÃŽÿ¨¶zñäl—¡ ¬¯•Æøò²;DÛÊåî)yÁêyî0ò-[,}áïíîi2'-6þ4B³¤³®°Iéwë…‘®©#Ú @y!T6éyÝt¾)¾etv{ÃDÉÛÅ(7/{´st´}üöÕΖMH¢/¬§aw¹çŽýÑx:x!_›óÍ æ¨ÈzºAUvÏ z«‰t2æiëÖÝ!_°ÿK“fJF¢ºrþ!ýf1ÑJþH÷©\͆¡Å¥®Ðøfœ¨­íÍÝöþÁñÆá+R¹ÐÕÜ”ÖÇС_$•÷•7ÖvÓ˾5`©•? °;{[`SĨMi UŸ¾5pe;x·ÑÜ€ H,ÑFÇqÄë'®Ýéûï²\âêÛ›ãò]œûú}û`héÜ 9&µžqùC[ƒŒ?µõ§hý¨‘ÿ¶|ÒÊΩQvt|øvó˜vÝþžqòèYñùEYNü´ï¦¸":ŠÇŠekÈZ¦î’¡¯e-3˃ޒ‰®2M“Ë‘ì~ŒžgyÁœ¹ðÓõk’fjSðœæÐ§ˆ°èÚ…4È/°á£õX.Y™«›úK¥rw:^Êì9ö…i“ÐmOQØèŒÛ^ÈK+Ž;àC~ÄA…âXç@²Ô¼øâ—£;‘zc=¿¾Fê[Áä¹w²À ÷Ð0ÎËso<—Yæ)û¦±$dßlFýæI|]|‘·SöU´Îñ_!öÖÝ™~ëlæš~ïåŒ ¿a–bÜžQC(€ò'¤_üÃ_à[F}ᤨ‰É*Éš§ §ã]THÉ•/0PY¶Ø?ߥÌ9Öã¤Ä™ÏÉ¿a—v"õ ='7eÖ³…5$Ê‚Âa)·-š$N«Î¦_n’‚bÊ'CL7ûÁkçžQF )G#ñüñs}NÜvÛTïwÛíõEŒ¼Y¶V¦¹N´oä!uõ½Ž ›¢3߯àCÕ“¨T†>YU4ë1Št:òPa¿Ò¨â±6·©ÕtÒÎÇþ|7F>…8¥›~›BÍR™m·7Ž1Ü<§š­ÌkL4e5fuY®ÀBM°‚Þïn{ãUZ3"U(ÎõEKw:²åò°›Ñ†bn­KÐ™Ú ”¦,>39ÏxŒrñ!eÌþÛ½ãƒãÃvʽ¹\¿ò<¥ž£{Ss°eã•ÜÝSZ«°KÖß ¨wawŸjra´r×#U‹5¶ p®Ä{´+]‹â^EÙñ*Y$‡F*©$Ç]Eó^³ôÊò.¤Ü“ØŸîÄ‚p†Å§'[¨~êµ· Ô”5ohälY~!±æ¢éÏRHŸ’–|zÙ…é¿kÍ5ÿL¯uœ¼ñ3X­òºÇNÅÕv¿•ý¯°”ñ8å÷Åê,à‘•Ä*U Ò§í m<µ{ÛxšÚ]L¾}©–xµy{ühÕîñ£ÕÔcòí{LµÄ«ÍÛã§í?}œÚcL¾}©–xµÓ{<™¾†'é‹x2Ã*N"eBÈÏÒÐñŒÁZó“Ä¢bg¦Zë~’±ð'³¬üûm¯ýIrñÏÚskýO26Àd–1;Pnþé±7Ì$¹cf¦µi&»f2˶É&”›˜ö.›$·Y|˜éä‘&lòS¤¶ˆÎ^L¿o7;™%e¶ ËóÅñÞññ¿¶Ú¯ì‘Õt²¹ÉJ”°]¡¥y±“^èÔ‹Ë¢òŒáÏy]±»¿÷ŠþÄŒàg˜.ŒM™ýáuFn3'[ûo_ìnÇ]LŸ–³ÐëÆv[Ø(så kå´"Òª8VDQ§ùåe²[dN#äÕ@çúË£-Ds6¼g—ðìˆþ 94 Û®Pœz=ö^0ƒ[ÈìÂYò™N[g™ÏùY¢šædøqè_²›÷ûän Ú»tËUÎéS94çdèa°§ù×)Üc¹ÛÚ88ØÝnob`ÊÉŠ »,«ugDnçU/dF—’ÙX,X!òÝÉ`pµž_ÔSX0cbŒ|ŒÉèAûËèâG`Ttd³3V.½¢²‹c,?¦Xžè€Ôw þyé›U0t1fƒ‹.?؃NX+,@'1W“žF{O’9¿„ECö77§Ä×#æ{!rò?”Á& *}IÓ'IY«„ ÷ã³§â«øüìiûécx:ü÷é㪞šxì0%‰äTœÔäl"Rújˆê“®WZö¤.W düÌì¨*[Y=ÅDs,}!UÛ˜…ºDw24)&dT)L‡"Âà}oÍhÇ|Ð…É‹˜!w¨éô„1Ç¢}ñ¯ãíöþ!Äìo»V¸3éKÖ%#w,ýÀˆIgð¸'*]é.ÎèìƒB§î¼joïmílìEΨϻ;ÇÇ€"dø`×’QÚ*¥ð©ß›„ÒÇŽôOnc“;¹ ½H½Ì¯ž¸Ä@"úð´'@ô™eôÝÇh´c@ßr沜’¤Ìšä{M££bD~°p%±Ú;^$„íæÇ»µßzcK\1ÿþ6¢T«íݶW>Þé ¦âÖzµ%qä÷À «ßdßGñ¡§ïëXOá<Ð_¢ÿ·nÂö·ß…ÓàÈtÐßì›m°M ‡KJ¢j¿äˆCq_stÞZœ^Q@ÅRÌLĉ³À _JHgL{îh-…ç~0&êÖ ;ž× ÞM:ï¾`Ä…ÕÇÏ—ð÷û§Oð÷éöãÇôûüiƒßŸ<ÂßïŸÓ/:]Xˆ×éyVOŸ?ÞÄ2O?ẞ<Ý”usÏeÛÔ׉µáõ?Õ(*³¡*¾P¥rÙêxÄèiï–¿¶úåžvº^'Þ±gÏ·h0Û¶é÷Ù“çôûüÉ&uìÙóÍÇüþ¬‘2XYi ‚›«›ÁÍïŸ=‘•=æÊ¨xß^Åßgôk–«LnÔ7R4`  ©sg¾Ÿpë)+2À ¹( ‰Ù6¦Ý"d¥_€“Üál­£«£Ô… 1ˆh‘…aLš]µ±ë÷Ýmjæ†6„ÝHürÜh®˜À ©ˆmÁâ>î Æâv¦( Ò½ =¢¾÷ÑíÓæ?wF#w¸Dë.Ï}Í„?¦¶ Xí›_aÝÓ[aÄ»sm>ëì?T°½tEßû(É0©…x‰Øïµœz¡?|p4v]@ÔW¬œ¯€ñE³nêîXô×ušô=­îiU¼¦å,×b¢'5V½—¯j³ÔRŠ€ÈguŽ;ÜôÀ.'eæ)*ÕÁÿìx/Ñò›WéÃÚf©*±ì7Ö¾·ˆmuqG­ ¼“¼¯øøã¾’TZüÖBÝvݤ‚÷è$-?H½ ÙØ”¨·{;¿lmì’’s?»ÖEÙŽ‹“(w¼ÜC Á:ù##u͈ ”¥K›KܹÛYaIËL ¢ð •ühã\úÁÇP8…aÔî±Q8ðú@l*ú'€â*vëëƒç«Ÿ|X/רÿ(õœð:wt(†“Á)äÏž®<]]}ôèéãÚºqØ4:Œ÷ÏÎÚã)‚X+_–Ì•ÇѦê>!” ™¾“4ܨÁjU úÍ~%bÌPJÄ›ŠŽ$K—5ÙÝÏ.—`yµNH¶xÙ-¯eY„df^]¿.˜;çûïaŽ`»øc!á%l Inà~ôzµ¾ß+“ˆ–b³vÝ1:÷öŒtU¼NB”¢ K\x|hÏR*BŒga¸Yî0Žvþ ¯íý—/ÛÇi F×Êò•‚ hŠdˆŠÁì€=ű¨¼«ËíUT–K¸¥ôyü‰ê‚s;=ÞÚÝÉòö:Ÿ¦-FĆ^uk1{xÿ0 gÞ7¨ÝfÌÂ7¤xÎYÚ+í¡?DbwnÄ3+3;¥mƒ¹›«-m±¸R"ka)§](Sˆ0\äqº®ã ¦rL÷„ʹ’ƒ5šNð¥C,!AÉìx l—:¬ ´—™7-YjæØ¢ÍÒq}³±»»¿™©à:½ÔJ ¡7Å{ïäÙ ,WɮɌúmn’al\·×Æ•ÎÕvb±m}œQ§–þc,±Ž·÷Û‡é¶ØqOQgse‘,Z‹Fz†3‹©°˜Ý®X.ÅØi~5…¨oá…ÌS/Π¥Yvê•jcîöh.k’ˆVK¯1hŠ8m&éÜ?P\Âa¶&gï++,´ ”ÏЩE£‹•”#-)rž«QîÅz™!·:îFx¦~¾Ó7ÓgÌ'Õ(tqߪgèîì7Ï}°ò©;¾t á~xŽ] $ˆaqÀ¨û@v] ´Î:ðàD„Y¬+" ©®FÊÐÐ wÿˆÌÖýˆ·{;ïÄãÚ ®ä>sÕÐ5XGnÏ®XhÕãØBçðãæx¨{ænZ$>º…l:tx캒饑á.×tfâ¨i/„çþ¤ß¡Û£U)|–à0Js\yÜeèíÔ­£dß¼àÍÅKÛÞW·ÝSš(ôB§?:wDåóÝR…³l“?SêwkÂ/1Ài”_jæLÒ/‘ûæXÐêälo¾Þ8l¤Gdš®Z9JjVª¤Îáã‹%¼<`ò<~T¹¹==¼Ü?ü9ƒWÑrØûØ~;"ÓÉP=1‡‚+‚Éòùã b3ëTº– I¨ÿH‘FÔj“ŠýñfPúÅ•8œ¸]¯û÷çÉyà ‡5y&Zá•*F¾¼³+©8ÒeF†¿†T"дSÉÎÅ’Ø©À‰Æ~foDU5lGZwzCÚþ.ñ@Fÿ“ÎÀë9~¸{_a×»ÿéFê~ ¼ý 8½®»ÈkƒzÑKô®?J×a¥gZO°œÂñäTV9åꞌ;Sš—‘Ÿ¤9̯‡{;{¯Ô¼eL«Õ¸] ñ;Î$¤‹¢Tüv؃Wú]Ã77l/£*¹ÈX|<¥¯ˆ‹o€›/r 狱óÅŸƒž/¾!~¦XÉÎð#—?ì,¶{€Ç’ç“ÜÒ\nëÈ^:›µqþ$ c ª%•¥íY ûCúØ­#'è¨=»„L˰ç’ú²gà»|ÛbO¼zqË9Ao2@3ÀíyPC’qÁ(ðGNØPXÊNç#–ÇÊ %Œ"*øžXÝû"ˇЀvœSŸ8VOš!ÜO €yZ긪€ö>©›Š^§#–÷«¨_‹^àŒJb³¸4œa„r ç`Ê=‡xdÍqyŽü¼Óí¨LÙG"‚}@fj°ÌùzÔNß?=u1æ°„·ËÚq†ë9Qm £ú“ÿ/Ð ´eSmZ¯¤ªÀ­Â$ÒÚK˃߅̨¯Сˆl wšÁuÞ •{ô†*`¬Ç‚“Ûä®K+ùï c_ebÄ—¡¦Ø‹U„¹MîKVåûµ®ÂnŠ– 4ÕsÇЭŠ.}xc·²ÜXÅâ’X±kå!F_£‡”¸Ã0%/-Ý€ŒL W8ær‹^6Ïk4£Eá }JŽÕÊâÝÄ•èeÛ–Ô ¤•ï©³Š šasCDö¼ÉÔ„ݨ­tàpúìŠs¨ tFþ 0!Ù ÅôŽú€2‰p¥›{Ž{0ùÔâbßsí¼…×Ozç4&ÜUÚã•Ú#Ú8J§[Uò¸Ö€/4p©væâ¨Ä3Üö§€`œ3Ô³Ú@ŊޕZËàÆÑ`€ÈiÅ^)$ŠIÕ»¹ã¢ú4©ªÀ&~ä-*«é8ˆF>‰Ü®°oÕxI·šqêU 8²;7ûYå§)¸é#ªåÔ=CÖ€‰ñCÔa¤pÎK¼"iY…Æj*‡)•¸tûý´›&M£qןè•IÝŠÏ ¢^Vp,C¿Âù«U„%#ék:—$FÄCIÈ«H:ËÅ$ø#AÍå R,•œ›êãsBðFÄcV€… ú•9 € ͓ĦL!ÐÜÀˆ~”Šœúà*pÙ-8 "ÈŸ9^rVH*Íø§”ufkUY,î^¬j«®wê‰ùÎ$ø1*'÷ø½h[ÅꈭÔJΰõä—€ŒÁ™xnÀ_ÄØ§$“iæøk°àƈ¦ñà±lÌ„ŸyëóðÕ3shwÄ®|3~už6$Ã:5`8U²N,ίÀá@ÿ˜ÕÉP­H)˘\²¨qaüLÓ;{×Ò{fˆÎ•ùbþ<›M@f¶•TbxU™¹eâ‡;{Ç/ ¡ïôN¶»þ(ŽíNªÄŒNê23zŽÛÚ?8ÜKñ#…ôûy“*Ê0Nã¦>ú”8`ºÊ0àßFeOÎOªÊt\8a&Ìoya`”ýc€ðËÆÑ4(˜!}Ú~ˆRή¤ëcëÜ{îøÅÑ–88ž=~ölMµ:ü\yTpT;# ¹:n0F ¯ÿœI:HÁ¼5,,ËË‘éN—WúVI€ŸjÑ©›e p3¶‹†N–Z¶R™j,‡ZYJ‘¸‹Ùé`qƒ˜¾&dƒòÎ ‡íÃÃ9@Mä½;ßÀÏ€nìí±Ë´¬J–˜/_mï&Tn7”‰9A18ãÎy 21 ªÌÌÐØ{³q¼ùzppSyà‘(‘ À]„nbu¨Ô,èR3Ãä`ãðh{¾5"Ë•d‘|`Uæ/l È´ ¨³vÌöÞ/s€ƒÊvÃ.^xÚw†ãaÏ813è™,3+4vŽ^ìnìeQÝÓÀ!›Êd‰|éwÎÉ«‘ š’¨Ô¬0ÙÝ|ÍÎŽòE5–*)Erƒeàw@Á´lP‰y³Ÿb§8 8 ¡|À° ä…9L€Ó²AA%r€bÿ×y)7”vœ ˜Œ½ß+21 ªÌÌÐx{¼óf{®ÂMåG¢D>€ >vñ†ÄˆJ̈.3+@Þü¼u¼ý&E?ðF€È¦ò˜{$JäH˜p:@¼9š an€ÄKäH˜B{„Si0'íq4/íæ¥=rƒ¢ø“‘ü˜²•Í™W‡ûo¶ÓÄ@³€G5™F)¥rjä„aœTz6˜tÉP:Ø8:šH²Á|0JÊ¢Àï ›„‘ú0Hºl(î¿ÚÛx“y&0É&sÂ)Y*' Î?MüqH21 @ªÌÌÀyýÏ·ûi£o 7•+6w¼DN€Ä%º<äátyÚ‰mLöæ–§©Æò@%Y$'XÆÎøâ,FÚ©ÄLBYff˜oÿòrÒN6•"‰yt'£8<(-Ûž’JÌí·óP1ÜP.XÄ ä©v¥˜Þd^š d3H¨±|@‰É –~ljŸÑ21(\&Lv77æ:š¹©|‰•˜ £«€@â4€`™\9ø×¼]åˆU"7@~7~øÊÄl€p™y³¿5×áËMåH¬Dn€„n©bZ68¨DhmωT¡¡|°° äÅØG1XPb60¸LhïïîÎl*êÉŽ}2)G£Š/é Ùë¹ZxºÒˆTÞC-^ÒátO-•ñ9Ä$V㟠›À§¯?ö†dD0ñÆad 5}ÉNƨ ïŒFý+íu+n#=-7‹Ê”…:Ç3âoAöÌøžiŸ*î`PѲ*4tǨÙ'£‚ƃ‡@v}ƒ´ª;íÀ ›Å!"¸]Xב“™c¹/KS"ÍxQ§ ROJ]X¹ióöÑŒ![×Z©¤Yä÷~Ò¢¾&Õu¹73o ;$÷ì%mõc{DZ÷8±+x3eóV^Íd¹MŒç!"×@Z;^r€×½¦úübŸ›"¶ÚP;œ”ÌC˜V!ÕùPjÏ£RÜé "q,÷‡aÿ|š^( ™¢ÿDøÜ¶JÍ0ŠŽL¬3ŽRÕ^ƒ¶„‚Ìßhv&4kOh&¶Mf›Õ)À X,u‰$-Ò³å‘…ï¦ ™”ew“:’ T“™×òW£‰ÂŒìójÃH÷Žv åïèPÃfb ÂÐu»Ø.šXzÃ3§Æ&uÁÔ7öÝa"žº‘lÚ6[qÅÔ@‚1KiIïa“ÌxìQ£sô;Úßüyw{/Óï °½”‚Z ô±m|ŒL÷4C;½ð¼;>|»yÜÞØÚ:ÜÙ{¹?×ð¼áSêHêðŒsηèø¸î §Ow¼åÛÁfgï)Ág.ØàÒÃN`oRáËðÃÈnývpÂ=‚pB€ÝVáØœž;^Q¦[ÃlV4’Õƒ;‚ÛÑñþáÆ«D˜Ö˜Y`aÄû¸ëEÏñô…0Ðóÿ°ßªÈw`âÌ’nñl¯V¥x6ËÜÂT`U$Ÿ"pJ©¸…ú„QaÜáQA‰%¤b–Uþ=éjÒä¦L¸Ì2ëdËìyÔß%R'¦ÕR&Yêô)U¶¿gI{ fÓ÷3oö½œSÁ0Y">½±é<íø£+qú»øbà`ËâOÒà‘|%¸ÿÃSl˜vÒüLðÆ2÷á!süÃ,†ôȬ]Û2ϬÛBfϧû–ë¦9n¶ ”Y/05(#ËSãÖžË|Tö1ZÝÞÛzuˆª™%'·å.ôut™ õiȲ~)𴆶ù17¦ªÚ~@Šº© otIrÑ4Œç¹øƒ6i( ú+¼®åøc÷ƒQ«¤Iè2Qåñý÷òJ· #P…@Õ LC 2ϬTfÏ@“%rÚ’ŽÃ¶?r㶤*5Ë–T—Jì £ÂBƵóÞ‹Íý7Çí—Ç)7ðSiêqž›w;·Î$%6I,xmߨ@‘i Q%²2íNËæ\¢@â^ý¾xí »}Wl‘wñ=za%'‡bä÷û•ªüäõ½ñ•YJäÀÆ¿ byoÿ.]éOYå†íXFÄÁÚù}‰×ú}òÿåOáeËÞ`Ôwñâ‚ÜÂÔ ÷ £=v1SûÜÀk‘kq®[DÍØÈè5eLâ#鼤뚊“²]”›(ô:zÏ8Y20—,x—È+1¸$Íl;0ÿ²wY‘²~å© ŽÌa‡§¼ï(eÒF²ûØH¯‚ï¼n®E,û)9`ÂSÛšŽG ÆÑuÆQš.#`úü×ÔP¿B!a„EÜ®ÊP*Sn«o,›¼´–€â 4Œ¹‚-,ÜÁݳ ŽäÁþînû5ÅîŽDÒír*Ë«9ƒ!çN-hàl³p½ªºB¦J¶ß¼…šÚ²I“‹tÝÁ¤~G‹…avçnÂ~‹ä´˜÷ÃiŸóß '¦e¾+Þd_7»éYh.û)-[>Dè œ‰!dèðl,´°°VX ÊA:β1J¢.n¢õRµ“§RÂù´’cÙo­õ˜©Ø>¾õ‚Š×þJŠúngü?ÌçÜÌôaHÈ%\®Pb¶Ï.“ ”ç#§fPêG…‚¤¦J=&œr*ÌXÃTçô²lU~æSfºOÊAä¯x|Ž1µ k€ý ùÚ]è-¥P1ü®ÆŸ+éŒaÙLø$‚Ï'sÜE̶[»5{4ÍGh<_fà(3ãM1£^m¼:B¥*±¼Ì‰Ë¬•ì`„Z˜ 5z6écw8h© xÈá ½±rŽê]ùVý‚j.»¡…ûG×…­Œ_Î䤫S SØ…¼1juÝ—«q=>r®` ã±;¤~Ê8š yôÕÚCÅ3[ÄïËËKøWÊ.U[<á#ÎÂ1çûe#4jM( ƒdþTåPvŸ ú»òKÖXëûI«¹_’pZ¤¢‹ª ª_UãPdP—¬ó¡Ž38½üK níô'nXÓØ‰•kd¸ðÁ’Á¸Üª‚ÆÀƒ%:|0kî%¢‰Â„Q…KPŒ±úqè_b CŸ"j;?!/’X„¤ë²$úF@,Ñ*rÏÎ¼Ž‡Ò!¨çÈ_¢zp(¼ 9ªyÌü¶?¼Ï°ZQwŸÃöRkØý(  %JáUOqG°h ÀÂý+ì7æÂ¼kν޹8õ¢”ÑJ˜ ûsùRAW-è#t¥‚nRø^ÿ‚‚ÛŠ“ Íìêâ«ÀptËCQ뿵*ïåß7–ÿÝþ V–Ÿ·?,¶ªÍÚb½Õ¨Ê'Òù‹àxª´ßl•J\=Ë3(rÂöîW(y‘Ðø°­£Ó##dÅuX-Œ?‹4«*×[ÕQ“tc$¿\5­®_3*&È ‚½a„m€üÎË#øK0AD}|±qôº½qøêøLÏGûo7·« sY]Ó*BÀ²>¯óVïñª7ÙYÖcÂ\ædb'O*PU8r:n³,ÊëBg=I›e·%ô„ÞBeŠ K(–œãq,W="{§Ûåôp 2NøËôªë'§áØOÁÓŠüãhã­Ö’Ü8]ýM~©ÉäŠoŠa½\/cár¹Þ[Gù;nØmr'h;ýádðÖc<­Û²Öð¡Þj5šPÑj¹>*Êf¢éIŒŸ‡CÐ*§5vö`ÿhç£ëœ"˜ÄQ¬ÿ6K_›f·ô¼Ë)åªô‚µ–9cý·èˆ¨Ÿ"Ìépîõ]¹ÓÅšñÌä·&á „Ëû/×:ÕR]ð_Z‡0þk¤Üqi~ý*ÔU­ºD=X€‹7[«×²Ä(K‹ö*’Y]ïì 9²Ó ²EDËõ®{QN}ãªU4îºòH¥Z]ÚUN­ Ñl㪘éÚÍ9Ôu&£®CG÷Öj WM/ñtýZvAõúÒÁ6t` xÌç©cÖ*™‚V…MÔ}I„.¢LÒCÆjpÚkEPˆÁæªz«öRIJoÉU\?pîÔäv¿ïvk¬dÅÌCè Vém«V¯Õ×á±æ—êòáô?ðXæÌž©å(;Ĥ½q]ÅêÓjMî… <š­Cà!~Eä3Á"¬Í6û8?4µÆJ”“ª€Š€F¼)é;¦ýà )r`tç‡Ì^‡ü^¹ì«Æú™ÀêSàfxÌVé‹níšÆ°¹Ædéñ´òÅ2TÐ÷ˬ©XÓRÔj¡°{l%õø·†G…\.¨´òö¨Y«[,ÒuÕmŒQÞ\!N΢!³­äsŠÝPE‰±<’ÙDÉj´˜C`Kжn¬†ŒÝ>%;îmÈe øn;+ ´ŽP õ•(H#£pÿž(½ÞÞÝ…}ýʺ*™#YÁí#wr8F|3‰Ô)Þ7I@ÞŠgTöGbSÅr÷'ãÑ„ªu'®\3˜KŠq¦Û~÷tÒëÁX5—K9÷ÍÏD ˜ ,}ù7p ¿líìïIr ÐdEZ@öj%„gŸÎ/{oww7ßl5× [~\[n€8•8ÿ†w‰ŸŠ{Ô÷Æ´¬,/}i<,–~*^Ë|îuΩ¹eò, kÍÝ&¡Ósny!x¼(a%’¤OßÚx¹'ʺÆr³Œ¿e"WÇþh,ööÛ¯v÷_´Þ¾8:¶äìÄêŠeù=æˆ]Yù¡÷x§5&„)¯ DMRè¯ZvÆZ¥Èä4Ë…²ZY”P@0yÃ1[ÒíF8ˆD œ%`G~XÊP|/ê“0¨Ÿzú”Ó$žhCòü+늺é7w]–Ï`G|D™ •·F”-‘ÈÏÚG$ÉF1ÜOà p=I°iq™(¨½t±T,úÒŽ80£øê÷ð¼í tQKœ´Ü%c¥n&1ÞPÄr€&j 'dIòN½­5¥I~=‰Få(½=Œ¾ é“Û‡^Ú Ÿ‰ïÂ[5‹´†iÍâ—r!Æð@»Z“ÎiŽ*@$ðŸjÓÞ=Üã³åõW¶wêw¯šeH$j.–,P(–­2ÐÇxÞ²IŽ§Ô {/@à4Š@,ß)v<^±QDÒûNÐk–J "…AÏ–Be7‘ŸP-A&»-™Ø ¬ó$ž¯¶Èt×N,1Œ~ΪéÊ1,¢®P½¡<ÀõãŒÃöÃrǰ® L*C¹ ˜»*Y‘^V±Jì*!²¸–\!à@ÿå׺m­Wx_6Ž_·¶67Ž÷åñtÄzÙyèô©`,@—ëø§¼.^RR ÿ® îÞZâdÃMý…bÔ°–«†¯_åźU^GØ]+3ò—Gð÷W—|’|- `âˆóº—‰Æ%²!RÆ ÝþËžáèt8ÿ9ñ •y!Ëò¢Ë ó’bx]à€âÀ×§Ræìœ"¤ö–¡9¤Ò*;gH˜6uø×ÝŸÅ%ÖÖ!n‡¹ =’xp‰ÌiÈnWÁx˜ãeŠ>ÎOÉ—=b9è•;¯XÂ^« ±YÅâ‚Z Pú%Ú¾_ÂF©t€'ü®ïTÂk pÎ¥©¼”§¢T>âgBwäÕ‰‘d½h5 ¼KWxÒÑü¾ÕªÀk°(|Wwb³mì_ þ¬ z²ç‘Ϊ±búZ 7e6ê(Óß9• ÊŠ›,˜ãÎQ/­¨Lªƒú¦³p)M´hÓ´¼º^—¤ì\`‚¡À/Üp HÈèñS˜Ã+,Í9Þüýt«{sÿÍ›½­2¹od¢ŒñÏU S{Šw.x1bLUÍÒP#!Ü<€ô àžˆÉœ¢RºDŒ/¢¯kì¥ïC=Jþ´./²˜[†a†~2–w ÊÃï*¡2XÓ ‰•Þ’<º®¡=G.hÄ´[Z« ôüGs­Wà Øû¸ —ÕVÄÛ_wö|©¢÷Øu²£:$Cdµ¶ÂTµ(Á*⦚Œ ²0tCrŒ]Õ¼(n¹˜!5#FµrZ¤e©at&Êe,sìzvW m[®É©YË)D/Ž(/?p¡câžùÂe œœ^7X“ìfyèj(5â¶:)Q·yÓþ²q˜ì42˜|s%t6ÕN}Pפ膴±~] ±½7Bºi)ú„JáÿÝ·Û™368/B ¢2Jn‹ý3á¢â GØ_Bn—ó–u>âNuº|êq¤85xJPÁc ¥LòXsPWB8„÷;T„Kcþ%LrÙPŠ¢I ÈC —Hî:ºOã«‘´¢ø4qº(úë¨ ðäBZ©5Ç»À¾Ù.ŠB"*ß"£]É“¥¹º®y6À9ÓXMãhY…õ”-øWð&õK¤PjÏ}¦  ŠPÞIQÎé@I *êõpëË3³ÏSoOI]űUi-î`0eFD-×ö(N!«Ï×Õ‘$ÎÁ9Ó"Ä%i Ètäàmvˆ vèvPº\)Ö@6ÀÌAÁPw”ò@º Xfa"Iùêò£ÞæZ,Ø5:ƒ’ IЩ& MÓ:6éåòA³¦Õj3º@÷­2wäò6£ÊͲ ŠÖjTšxé î— eQU‹9u'-4êf±\’¹Ëª[aÑÊÃ}1¨%ó)^[ÄsÎÿú¢>”c´€] Ì5=Ç´ n¦Œ¾›´ƒÑ]$¢ÏFCH KÜDÙg¬8¹Á3—\³†4ZÊ££|‘È;Œw‘sM\G …±í` ‘€¤/J¯Ô:‰Dÿª H  Ðì`nsydO¡%†æÌͲΪ;¢¹ÕÅZ>ÃÀá›]GDå²uÀž~¹³›- @4uŒ A·1#]Œ óØÀÞ¤|0¢ÄH^bÔ/eÜ]”£7Šú„XþLï–´$*еa¶öçfYfçû~#O3¥  ˜?L)MHέzX“ÁGejo€dÝ„#w=õž=ä5‹´:hß\}·hӓߨåwëáwï³µ•¿k×+óöDkê›Ý Ïc½yøÝh4­ÍC<v(Kk'öO©þàÝŠ¯Ó(bQë4M ”:¥Š’­FjHÀ½‘pµs>ð»âáçxs¸Ù:¶ÚÒM§M¥é+Àw¤%êgÉK‰%eÒ„÷p$Òð‘2¸^FžMú,èû,h¢åÎxBv (®f£„‘ì î‹#áŽ;µ˜ÊCY•Ìîœ!ÄM¡ cƒvÚзf±™Ÿ¡ÈšÔ>»¬•Ö÷N•?N©þ&VmYù~eUj&a‘BÏT“{µ÷VlLÆ>R'@->}Ž_à ¿ãHAÝ`€ƒDé† jþ5õ¤PR”ãõöÆ,{3‡LŠòìîìý«…’¢ò.ïÈÈ¡’P‚“Sú©PðÑÖCZÒ¹ “<ázXµ?ÚO'…bd~¥-W,k@Xä‹ÅBœ~NdÀ{tïl¼.ↅ¥EÍûÄkf§ÑSë–YRj—_Ìú³û´µþÒÓwƒ¶-®§4’¶Zaº­d±ëT19 Ây÷$k=’Ê\³Ø*´NxE—Y—y8öˆsá™ÂÊæx–'nGÜER$ÀPK}fw:?`s>ЍoÙØl,Ï‚CÁ¼5‘y GnÇ;óPÀŠã ’}b”ÝÀ5»IMrKµBá-Ži ×íûýƒãý½È¾‡âø€;lù| Pç¹ÛIŽ›µ¨H_SÙ‘>]!`î_0·ÔTŒr«Àø§n`Ù‰2t¤žCh׆ÿ”¡¨Ñ¶U4Öþ'lÿÓÄC ‹åeVTU²óŸ¼Bæ Iß ¡+±mˆ5u±Ò‡U%ÐjP’âú¤OÉ“¡úª¬@ᙸ ù¢ ªê8©›°:DÄé]—‡ª«m"{¿v¼ýæ`wãxûCÚ8Œ©ååc•P3ÑJª^Þ·¯Yºæ§º ›‰FõBÉÜ¢ñÔ‘Á{Pï•OвN¹Â=´ æÙgc5ut[¬¾²$¦Ÿ„KÁwê0†®´Jæp <º"Ý/QÙ¬RkâeàºâÈ?_"&x‰*&rßì ;5>ÁíNÊj<Ù±l(˲ZEVu´‡Ñ$Öx8Š‘ b°¸%Ôtò•Gå]¡1v‘ŒSF—Ýf¹ÄåBtÅ-—ø¡\ØÙƒÞÝ…ùT.lüú3¼ÂßrAëa·ðXüê\~¼âgå:%\Bw!‡-ç«z©w§­*_Ñe¡d-:mг#«›k<0}yUðVXí‰ç‹V——›?JóE4¡Y”НVæz’½ä¬–>¤ÌJ¥U_”™Žõ&ËúHíÞ¢ÕÌzC¡{g³(] …éoT“†a¯´³'hÉ`2Äšð¼Èm‚2@“¿ø9zŽõ“z¿ü£`ØD¬) ©óí«~Žõ“z¿üƒÕ„þ„‰TŠë|C/“çáWõ¨ŸÔƒü埬º¹–XÕ|Ü}•OêAþòþíÊJÙZDCN›¯ü ùG÷AN.½™3ÉÀ”,…mÑB¶{ΩÓ$nÊж\®&„„‘PmÝëG·Å˜Ivì&Ûb1Š¢õ¢\TkÂÞãì`a"ÏɯêQ?©‡?6SGªX¥9ÆÊƒªJq=ù}¯3Ö>C$‰¸_AÆèE4MÎàG¢¼…¬ ¹åÂ1Ð[ð´"+*“áÙð`üá`À´rQwÚb(Ór<ÏÚ DØÛ;á 2’j°ŸÔƒüåRÚƒ'&9)-þ¨ŸÔƒüåÁH+ÚY„ß蘖b,S-’Ž[› ‘Êì I e.àÉ&uÝ‘í¡¤Ôp5 sŒ¢@!˜È^²&¹Öxq³»‹Ør?‡H®&ݦ—Lhù¢™÷YµÄˆ¹è‹ž’"Iç%"¡Šô’î%2Ðï¤ ìž•²H–²pzÿ†þ²”ÌÒ3Ô?¡#@PˆV´~ƒÉtÑMû¦l½UZäÂþ\æït}ÅŠœægi ¢~šJSh'ªç û `cC©’U’”‡õZ}¹Þƒß߀߬߿/ÐèKuqÿ~}}´þÿ/³Ýå‹ýw(É;”Öf•Rj‡ã›E9-ZƒÎ=ÝóS›.‰¢u(ckkG‘|b›™´aJ ÚEÅm(cÝób5†ÌaSİ{²Œ:ŠÚõTÕ:ü¢:ø,ÔÙâ(#BGÞeÄjè„‹âÃ( _O"jO†x¹Ê¹­-ÕðQó{lj_‘6¯¤¿ñƒ‡.£0Ñàc—ØÂc(µ/X]{ìgN‡ŒHŸ/ôQp€^a¨U4å裷1šÎà<ô†’§¯¼>ik̸çå2ÑvD8pHƒwØõ/#Ó˜ô.€ëùÔ%÷.C·»†7^$xÇVy0tÔÔ8uÏ輆t(£2Å)V‘w/_œ”`håZ¡$‰ù¯|“55åà/¾¢þp ­Oþ#$“εÖÄz®ñ„ÿ¢5#¤›ø@ 6é!QÚº¸f·¨NlT^(“«5´“eÑ«¢ñH4ž®#åÝ!ÁÉçV±ß±õ„)4‘µ‚ÙIe2pÂbåûﱃ¸©»ìÀàý+Ƭ‘I91º4ÅÀaaB¬&õ(–K‡{[ûo 9ÞÞ_rÙjáúæ ×ô}«£faÁ‚œ*¬¸ uÓ'#–Jg{ È”¿€=Ÿ l`9(¹–H±E ,¬ jÊŸà9Ñ|ÜcOÀŽ$}:‰ùƒP’£órͶ…7ëUÚ•L÷MÖðzÇö•ïD¹µÒxR>A£¡è\õ`Ã,±1nOšhQ7<`žNN,Á ºn‚&Qu»7ì8€ ŸsÒ‡ «ÓóرÒøöÕ9,ÓFƒÎr…fr9 A»è’XßÜþ©ÓùX‹{¯ lë,å¬ †Ý*µ€ ZeÏÈGçò#%V¢übûÕÎl6–IVpZ×@ú˜ê¢Ñò5¬;ÍÚH¥Õá`Áõ©¡Új6‰=)›‘®ô¡vÖø“Ý*£"^•utÖ¨A¼â~+ò×üX)²a^̪i¬"ﻈH#·b¨–nÊ\k‹õ÷JØgNßÔËf1Y’vF+°dH[+±i¦q’§¸óض£æÚ¨Ny’ÕÇ^àŽÐjµü[ùDi–¿»×¾w_”u×w È˜w73DY•RM(„cçV#âù•ƒjž(÷ea ÜV©þ®>*ŠØŒE}‡‚>3‚¬ïAMªnJ¥…täJ8lu¸y‡eªÏ© (ê¾ÜÓO¢%Þxš©à¦÷W˜\€eñ±­¼2¸·£]¢¼>Î ÀóÔÞéjá¬÷â‡f½0*ôðÃûßî}X¼W¯Ö`ú¼w‚Ÿ°^ŽÆX,—àûXÐKamا*[•ZëKãñ³Öu«Zcç‘Ùü|}_lµðòâ°\èï­Î­— iŸ°ùaá”[»±,VR +kÜ«é=ZZ9V}ʽ˜ž1£Ü@Ÿ‰UÍÎöÈÅâ‡:b­=äHë­!¼.”“+ eâËoæa.a}L_EÑb‡¢•.ᔣª8j{!Zs½‡¤°Q¨þµŠÿ_±CÁ±‘ºìS"Áà´vûÝ)|43¯°q<%.‰âOEB®s1 –@¹UÿöÆçÊø¾ñ¡ªºâ¡µÊºðÄ?TÕðòðaUj\bO›\ý{ïƒJ²ª„w–|¡´5U‰`u(rDé2QŽ‹zÈ4–°Úª(ex°2`ÓUŠGÊA$½ê>QÙ*|·†ýð¡÷Aå`Ä÷צ7>YYC·T@uÀ‚º¾ÆžHwà8÷s X`RÎËgv½«%Ò7µåm;«T«Ä—›²‹–¨÷Іgw´ú‡H#~°S9‘ä¡)ä°Æñ0Ï@ÒÊÛ fÍNç \ÙÈ>rMü Ú “GgÉ#䨔©Sdåèäõ&oëCÉVø"±ŠÜaé ¿\{ø¿ü$€[<Å"r[eúŠL]±V\"%¸L2{a†òdîo|NŸ2Øq¨õ€d½<Çnв…J¹vàu}ä=‰E¬µÅž  䬇’B¥’ìšˆß Y«T„U‹å)Z3 À‹ÌO³ ¨oA|X¤.ÐS“þ*D„ HñëþPz‰Ÿ×Z„kÒã$H¤€©~[[¤×ñ¼úL'·Gú³x¼*HäK'_Sõó_³—“ü»ƒ Ö2’›9*%%»O%«˜‡«R’µ ®JÖ¬H{‚Þ€#Ô$ˆ<=€”„¼éè;p†!I¯Œ  ä³ ᬔª'F¥å%ñðº]R4‚JpèË]¿Cb8ûe‰Å"Úu°ôE? |4ñz†Ødäý¼æ y““»(¹`Jèx÷PL"•R©}OíToxd¤Cé:!ŠšÎ ¹,Éð¤ÿðÜļ"Ýú㈼®GŒ‹¤«¹&ÍÊÝX®ømèfµNî˜pFµ=)ìŒÖÈ’Ø’÷SN°Çø¿ª)†ƒU[Pp…¸ï}t/=€àAäÚ›K  š;&ÕD2¼® tbÆ8™î@rUH?à°I?M\ö^Aî)ý ÛܦöÅ,íá>Ä3GĸA:>°HlÀ`@{£Aúý %ê¼Oy[à#ãOÁtçY¡‹ðbµé§á°o±X•hU¸5Ùåb¹UmU*ï«T?,V[UÆ’¤³Q?€² `Š­Õb«°¥ÞDëQ±>ʪ̬À(²ŠE ß²W|íL\ŨÀ1òö2­ è5ýo˜3ö-ÝdÛóЙÎvhÈLÍgõí”û&y ‰GŸcÚ_iŠõÞllF~–Âf¶ªbk“p|PkLKš~*¼¨¿N†ðP¥´‡Æ|U0¥òák«T­ ƒ½h1arNОBOAVÒAXŒ›S¼_TÄ=4B-Aø}•©{@ ™òS˜¼N‘´=×¼$V«ñÒTßµî~YÂï«Ð³ tâ>–`´Ó¤t¨‡uô¤œÂ]xÐðgùªúQË¢¡©M•jæ~„Á˜ôÐ×':ƒ&Šˆ¡‚kpØtQé¦RWŠ<-Å%ÙÛـؒTdˆ¡obàº/Ç–î3؈æ@ezº‹Z·@Ûè-Ñ r?;™CV¢Ã_ðEV›\åË J£*îrOÙ»“r®/+ñù¾EEt‘òØ(dŒ¾éº”÷²e'QÌãšæ£ÐDx*F¼¢”žÖTv*¿„Lýb]ÒIˆñ"Ao$Jþz}kþlÚ9mñ>J?ƒûI§dÕᎦ3lhƒªE!Ö^Ú6ò:NÐ5o5 $3vz±»fHáæµ÷/_ïn~ Í£ßeÿÎðu]û72uyÌš¬çÃâÚb•ò¯í¢OúµMLȼ9ÆÂ|g O)7ÅXç‡åªAsym9J^ÔɲüšüÓì1ÊwMuöA·&:>+h”oºŽé›Née@*)m“f#'Æ¡!Á°Ký ýIÐÁìQ‡µ VÔ&Ëi­*'‰Ç-V!]©Á°8kFùPKQšPî³O@ucMÊpg^¦ÜÊJíz¥¬N]æëÚ¨¦"/cØ­ ÞÊ=\•0‹¹‹£Lò2ìÔ[ûGËáø  V¥.}y4êÎLú(ƒ¨ˆä2† D x-¹èž>'?—ž7Í^*^Í­-Éø[\×$TvU@®?"ï–òº Î;À°!sÒ@¹€õňÛ¶u‹«”ÁÇ…ˆÎb³"!NùçÍæbtÉôõ·÷¿­ÙþõëzøuM>/‰¯½raá¤lùV¯•ÕéÞ”xRT ’ÏËVä‘xŸtfèv)öQCs¸¼×=¸ÉÙ½‘QÅ&‘a7î‹=w2Ðkº4 ‚“D{ëY9†VC—½‘’šEÀôñûÌ|Ëè82‰=B3FQë¢üÅÖWþi- %P%ŒèvI3H‚ÍÜq¨ å•Aݾ'‹Œ¯†e†(¥öx•¦f¬1óü‚šÖ–רëk€fm¹ £YéÒúɧÔˆ&ÆÀ ]Kýùˆt»ÿŽ,cþ«ôÙ-ÿí©¦ÿÉ,S«˜Éø_  §õ¯eý/}603èÅõ˜‘=Í.½ìÖ– 6uv\ƒµª\ípr†Q_ˆÀñGº^T7kVª #”_»†zì¤1üY †lÕÈ×ïׯeª²!еZ‘ Wm–’UµŒï’è^²AYÀh·þþ7r1üµ^«}íz®ËD»2V-oÑb±š$ì{(íkZ+õh;j÷À ˆ+kSZ1©oñt{Ü…ûÒƒ~çã¥tu$ XÖ«µB¬v¿T$!iÝ«®*°X)+ªx4]iwHØ»¦hMig¥ß±j™–•M ÙÈ cðH÷ÐpJ{ŠÆµ£HAö`·/»nCf=­Sü›Õ 5³Èýö˜­¦À2µ'7AÇ.;Hu£“æ 2rÙc]Éâ+^âî¾OÛÔ`)M—¦s\BÒÉöDAÊÒNçÖž½oi£·òÓÐnc{'õ~•±t$Ü'í.vÀÞuÆNàûpøK*†Ew/wÞ½Ù^Sw/À“)”/庨Çå^Š+× ”¯ƒÕÚÓ¾ˆêmcé&¿›©¡ë)ŽêC³\¨™XD†¨ýJÚ~ÂOx7Vá‹ßÑÏh‚¡_ú~Çé»úÐsYùj#'0*š"k ˜h5i! ÿ"yl[4zÆ“™Æõ†cBwtñë¢ê'>ªnâsÔK|“¤&ôÐXw1h°TÞî •ëÎåe£·Ê`üÆh¢·ªyuýzn³‡/­" žó@ƒ÷AI>=èÉ kH§•¬àþ $ŸÔ‡h”ô³ú(çäA‰d2ÐÇ¥/FÇ®¹òíA¯¬ÑRtQhp |o¡ˆÅ‰2ÍMqR+S¨^R³ì0N2Ø'8.d—Œ²x£ÄØ¥]y]ÏWß2„3S'þß Nôã\V߸=¨Y&¿è¼PR™_Æ·6† ÞÛ^Y~þañ§ú½ÓBøõ§ŸñÓWµ]#fäë:Œ·3f¶?=H;~$²JÜË.Suvy)O™øYŠŽþ½[™Y¢w«–x6;MgµG¨Þ¬šì,fJ¢ÁdV3Ug—Gç’/ü±”²Q Å‚v_d`XZ0­bÄo)ü G()ñ*éTR敌§ÖÜÜ¡Œ3©®ŽãÝŽ§!N—ú¶_ÈntÝQ—ë1<LÔyÈYïÇé9§¿]ÉûúRÞñ(x†•}CÕèÞ¼¹žÉõLn`r#“&7Wc]mm-“îj¾ÜëØªžÉõLn`r#“›˜ô0ɼݵØEÜ¥„µ!.R’6% çÇ{óS£%Åé§–[ÒçŠZsRÝ÷7—z‰É«L¸*¸­Í»¶Zw<æw…Ä~W4!Ë<7g™’ 6Ù91Sâ¶<¼£­£=°k{kg'ÏUÄ 'JQ,Ç*ú¡ÖriY7‡èèw 5 Ä4ÕïìGŸ7àä,8yž2HT… •I1ˆÖŠ™A­©ªeeéìæôó+æô¾š7sÓ9‹… ç›d2ß¼—<´Ô¼ÆbãÃR ½Hž_jö¦šü‡—HaÔDUCÖE΀¢*4¢X é·eu6^”U‘G¤æ²ŠÎPgÖz‘ÙËj ÓHUR¢þNj—5ÿ‹Žba‰Ÿ‚™‰ý‚ŒjA´uÛ2‹–I D+v[}¨EÄ(ÏÍÀ†\5V_ÖšÅÌößÍúO{ïtØUQCkË ÈvÑ—5;`Ô"‡l³³´±hX×0½ã2t”¯±±±KMîwؽ>ŸÃö 4¨ÏÇHYaÈò§¥Ð¹ÑmžR[–ЄY ÄüÓ¥§'ý#mäé=°œ4}kâ‡hµƒJ„¨&†PSÐHœVŒNgOB’)4«1DÔ0¡xDQµµ#Œ㊪bPéI²GIŨ‰AFG;7[½JHÄI–±G¤|÷‰!+6TÖ¥_xú§²BÏ·(±Á¸t0¢aU‹­á/0}áÕk¹Üt铯Ÿ¯#eÏA[úÌW.0fÛÈñg!7ÝôÍ©EEëEcÖ‘zoü6I>q2Ðg“ïf Ÿo]6efåS%‹Á£7ÈÍÜáì/ LÎwBi>VVâ½X!uƒ:ךçm¿’œ{ rôuíphѼœtêtm~üúØNðçÌ;•ô'öÀZËBS¿Òª;uñ—Ťê”)o… Ê º¡[ÔAÕ¥j‚ViÐwƒO–Î >˜7›—B¥fÑ÷ž€Óü’Xs 8ý‘Ó°j™ë4ó£óëwÆ>ùœ]À¦ê½oÁh‘wÚžd!ˆ Z$ÐþhëNëlϹZÚröSX§½ |î–¿ciýwšÖ»<:åI‡É”WØ£(2Ý ¾\ GCb5O”ë°¶°\Œ†¤ð´&lÜ&<Á´½_^®àž~†®¸}Ž›OÐËÖ*ÆãJÜËVÆÑ*=þa)JÏ5?ƒˆéËüèæÉå°jé2‚P<ñŽÃ&.«ã9’‡Êµ\0"ÄQèb~JôëE§{?½RÉÄ8õäHñl C׬£Ã± °Óáý °5dü2Ã-#]ªtHTÂXØJ;cŸVHwjÆø¿ M%œË»é¥VdY¢ig$z‡•85½ õù#ÂhW/s«œ„š0 ^:œž„j:ŒM‚ö[ÐQÄ¡ÃÅgúÐÏ:d8ž¹hãŒíBZ.VªtÄúðI?öÝ›–±©¸ í”0y¶™8Nÿø6ìâ¾HΓÒ;C¸)ˆ¡)X]@÷ª&‚TF:vSÿ‘)¨_"K½’¦fý‡)x€×cMN oÿ‹ÉŽ‹¦òòï`Ñ?øÜ«õ¾¦‘¢Ì¥{õ’©\±Ú45öO¾NýQËÿ/þúâèÍ+ÍËMà!ô³ê«ÌßåÐE ÔìãÕ/”šws¹¶ ö×Φ/³›¿oþÕ«€²çŠxxœ{s•÷ËÞ†Æ-L¯…Û“E˜¶'‹0w†„_ mãŠVxœ{|š÷ÆIÞ†Æ-Lf·;nbZ´^¼ ï Švxœ{|šwÏÞ MŠf¦z\Ê\Ê A©ùE% I¥éÅ %ù 6éE‰y%ëɲ‚Y›¯Éú˱A4LÖ¶Q€1mD¡ ²mÊ}¡¢›_tnå±O{Æ UÒ7ë;Txº¬0³üæÒEìZP¹Æ3GôaZ¼ÿ,ü?}“ØöyLL3ÖmwÜÄt:f£÷ŸíqÂÌX!§»J2Ÿ‚Êm•b>ç …sK9⨌$xœÅ9 tU¶ç½—…î$„„%l/&“µ—,$ ‘%C ›â’„¦Ó]´éªjDŒzFŽ3.SÎGYdt…ÔÀQDÅ]ÑÿGÀ…tô‹Û÷ûu`ôߪênœq<$ç|ÈIÕ»ïî÷¾{﫼÷bÆG7fܪ®¦¾°HþÎP§'Œ¸eZápÔ:¦9ªmæs]*D¢L;£]•ô¾Kt‡ä»¶ÜÂúóH6¨—"bVÛÒîÊT&NˆäkµX›µÎkžïZ¶`nK‹E:ñQ”¬ªoLúy*;žA¦©÷LÝE”%ÅÓÙSÛ$Ù-G%j­4”Ô ÙlÛY\‰*ÙÛg±U(¯•t¥:-tV¡µ’­:‡-ÈÉî>‡íê]¥ã2Õ]3d”b¨¬”ÖÓøë’úܘ̞úÌtRRlR®[0 ›ÔW¤¥¨oµÞMà— ©ë—µNR_‰,Åð+ ©6yQZ{›‘Ma½RÃkz‘òÁÚK•êu!å¡u¿B¶R 媿ïS¬¶]·¡f%éúë‘MýÙõHyî—ZrãÃDyã¦gÔ 7_Bb꨽õr¬Îú…Ëlù·÷ILÁÛï=”³IÙdrnµÙÜެý]Ý2-j*Öb2]óx©úûN'Í–I¦–5V·ä øCB(ìÿyz,t&]C iMì̬£Ñ$Èç!uë•%ù¹ÊÛÛ'¨Ÿünoòp0SßÞ>Ž˜ì^aµ= ´ëëaÓ±u÷GÃgð/ù=¨ZG^ígZ+먰Ú »¥ÝÚg5öJÃúv?¼XêèzvW.U\'²Ôè¾;ñм’£ÎzìøP”aïö£¹Êާš”ÿ¹Dq<±a”š ŽbëWà‘JÃé|åѷƧš¨öÏ¡\óÎ4¥ôí½ƒ6±É¤ß©T…wnF6]Î<0³Ýj­S©ßGX;º1K(¬¤Ü5ä\;yòÁ!–³ûU÷©Züÿ »ròd¶úÀ‘ÃTÛǪ®¯^茪‹JÔÛ¿)RO|}Ͱx¥ÿìáø4²ð\1ªfõÙÄ¢²sߥ.mÊæ)9zecûM¨$^Ðøiú3ùf®ù^*K`މ*Ð÷0ǘþLäH`Þ›‰¬`²]e³c£PAëÛQètsAy|Û´ó/Ç£]é|k!ÚKÊ´yÑíqÉÔ‚ðJ P.uÇ_mð*uËáp ŽzÃÊ’M¹le)JÊ´j$àl¹[Av±¿—  ìþ4iª¾CË=³~Òh§(¸{h…¾òùáá ‡ö|)ªäß•¢ý˜=fCœ”PjzzV»:£þ€—¡L<–ý&SF÷¢d¶ÏŽîeËè6–eCyìÝr”İíã;Ñ)¤Ó§Åè»Ã’<€¼a!2³+ÑÍ(•*´‡åDÞUÜØ”È3v¤M.¹ˆ\KaEµèFþH-úŒèÚŒŒiÃ]®¦¦Á -çû¶  ˆ/š…nÆ::³,G¹ gâ1 ¤L^Þˆv$ÿxnw,@!üÃèлS~4K &s÷2tð‡µ¼±MËQ?{úaw¶¡dã'ÚÐóùºk}!8Ì»ÔÔ˜ ˜ Ša‘©~Ôœe³À=£¥¹unë" ­Ö<;ù*TÏ2_ÁS¸÷”™Â­‡èÝAó‘M¸Yø7ôp {°­acÖ uFdÄì w^#¬˜¥ËXÃMp Ö¡~¢1¼ (WŸA‰úب"”3À[@òœaù¨Þòx\]$(ÿâFt¿«Ñ zj§FNá'nAOd°èý¨Œ±<è•^êr­ x\.zíµ@ó[/or¹Ì&j/¡MnÙÓMÝÚ'­å4Ϲ”66_IŠj_,üA¤«Qò‡CtšÍ¡ý7ëC›¨º~kéOÝAA¢-B0 ¬CnÔÕåNG¹J‡$@Á®?ƒ¦÷;ìA©ËápÔN³uËÁ€Áé²nŽuGÁ3–骨_¨~?/£’?ät}`Z`¸dÊá¸×ÚìiCtË Zkü²ß𠨬® ,úu+%ƒV“½†}:: 5BhÞMÀtÁ&)Ñ¿ÐÀ®Í [ €CÊ qúC]:©®»ñ9¡7 xãäàV1’ýAÁ •ûô y 9rÐÝ#P–¤rÃãnYsv·[„ˆ mù*uw8"¤Zœ|þ5‚aªæ0Í`íHaêözcf°€öëŽêñXí kCEH¦Âšت…ØFisHciз®~™áaÝÎ^ ÷;È-£½Ý~È Ø^´0-ƒ8i,ƒm0µD;%¹ß/G!²R·n¸õùüd^!Zkb®Òäõúån:¿©I“!€;ýrœ´7,ö”i_̼‚¬) ‹1©àxOO`­Ff€á  ETú%œ™€©¾¨5]Jìð€÷©×ß%µuÀÙ²8œ•UÕÓjj§[ê`×ÒM×’i&uR;-*,Òi)­.n+¯€g‘fv1u9œMSU=ÐgÐrgq¹À$„¼~Ë=ƒ>晟 C]æ7|†:‡¡®p¨+y(^èÙÆÿA/ÆÓø¦¯ÿüÖ¬¯Ñ¹Ä"ü Z§-М˿ý}sD ”Á ß”@º’`fÔÉÏ>?}ü‚ÿ6 ¿€‡«&Þö šÌ Fà†¸>¬$óÍ#p+ *7ãËÊøSixiÄ´ 'šÞw™x¡¾÷ø.ìaÛ³ðW‰EJ6>—X9x){>oQÑžcðr¶¥ç±»Æáö! fÊ6÷Â…W²Çà.vh쟋¥Â€ ?f朢9j<Þ¨ñØ<1ü'æAU×üÇÁ¯áªè:s”ßœìËIxÏÅóàÀcŽÏ «,8;ÑuòùùàMù+þíY&a+·MÅÛLÚ ²¶ŠmràdžeÇm(âjÔW'øãA}ÙãêôwiÀºpË«Ä]Ùügó𣕳9 ) ]Éüö8ýˆaö@3žóýa–§ÿï?Î.Ä{ Q»[ð¤Á¢ÌìlcVœÅ^Š‹“b âeG—$r£šíYŠÄ}·ørH‡ó¾{f>˜ó]5Û5ÞË‚iìá6¼u¨Q?ÚŽwÇ%7®„<|Õâ ~sra³L»à.¦ÛwG§ó?xð«#Êq8ê—F·Ëxs∬Œâ{úcV_4äÑ ª[ŠˆP}üO}]‚Q_(¨O¾ˆ[”X­†žÑp‡zh»Ùðtûn(¡ð {µG¸7DQ­ýH4Øã•…`ž’þ” ðèïÃш¸À:â†:+í‚L&Ð4VEÃZß ÅtÓreµº»,z¡!ÀCÏ…,´ ¼þŒ¬Õž  =%AG•ÃÐõOš ££R@€˜¢½n1ĞأC ë_®Å–T«áXæ<‹ÊFÄ–߇óR´k;T÷op-»j s1¼@sNìˆI‚[ôt»¤°§GpïâŸ1ˆçC¾õŸãž¾gý+¬\>é>üfâ¶Ö°O|šÂ÷ãñ‰Û¿ «£ÕìƒÍø·±E;ü>™Xüe >“X˜ÄO,æ<„ŸBsýoDC Ð7ð»Æ †È¤Ž5Ô$™·oª5·îÀÅçûaîNè•ñŸ]x2kÜÿ{¨2^Pñˆó- 3íÁÇbñüÜüžÉ¡ŽÕs¼{xxMaŽ)ÐÓþ [×þì~¼CÏõì¾HO—v"B0«¯\( ‰Ä÷ñšÇði2ÔØn9ˆýšÐô'ñ>]è¸Ø)Ôj€ *h¤KŒ¸´¯ýÎöèCøN–†ÃØÌêž©läÍ o{Eq=÷oßm/âãföôD<:I+z,k).fW¼gÆÏó¨e—-½lQK uš]MsÍc'¯Å?P¶’´²Å羉—d°{Ná‚$ZXhV^{Ùξ8…¯Ì× /ÜJ|·fôYVýéòÁ%œ¦ [ÊÁçl|ûûpþø×àd̾ý¬žòþ0MmK»:‰ÿ†3/þïÞüîsø’,~<ƒ8“}[æõÙ$)Åø³›;ž¼ÿƒrnq j6/Ô`ÇtÞŸGþˆXÝD"ñ”IDÂlC2± ”äðç¦nÄ+óI RZ{dzæ|RÂwZÈÂ$þm!¹ƒ°_—¿å³íd-¼ßИ¬çÄØi1b¦¹ðì°”âHh3–uv;Ø—¤œYW©‰ ;»sy޵¹Hi–ÇV¿G2µƒÌbI+Á°±º’|@°u6ÓKÒÑÿqHm!î4ŸZxœS_HSqå»NË©m¥aÓ´ÍóßÜX¥¸­r*­­·Ý\×»yçvï¼»s“P¨ðÁ(r^ò‹ˆ$ˆòER®z¡‡|KêIßJ_$"$4Dƒ º#aõô{;ß9ðýÎ9|ŸoæmîåŽs`KòmÉÅ[ùZ#içc\¯Ody®–¸9º^î€âÆ&ÁÐ䌽¢ØÍ½Ì ™‹…BòdSÒsØevÕÔ˜;¯Zdâ’”fƒ {ÔYyòIef–Àˆ1“¼s¥ÒÒz–¼ýlûY‰¬›9§ÙDzwÎý·ºx£\Zyÿ©Z]LªÊ|´WŠ0&R¥¾4²{е’:b5I°öµâ?¥¶õ²Âp2¿~O#'6ôP’VÔYˆÓ¹/±˜ˆÃA,’~Í#>ŽêÓß6à›V*G~·Ûž¥æ Û¢NÊÍ?7Š”ÖcÐZ-!FâgCLÀ˜©bÖ¯äÓ…ÝP&;¸ŠËÝpÖ@‹"p«—©Ó8âãÙ„æ9¿ÈDEœôÀÊÄŠ_±`Ä):•×^ˆÀUN¡1å8tòðBòñÎ%8(ý˜Ï––œø-;Å~V«ºRke¢#eÜGZ€ä¼p¥ÅHÜ~Âñ"¡>Uw‡#lˆåµ„îcè~"öùDgíãˆãˆDÙp$ĈÀ_¸^‹[³T1. +dýä:IE) 9*ëÍ©¥©d˜¿ ’2rT™ŽÁCÀñF8=A°ãt¬ÊíÐ~aÁŠ®84aË0˜°Ç­:Ó'ÔxB<ä(¹ýðVƒcAu¸ÉÃÓ´FQ53ø8—2(žjÎä·SŒ£½qŸÀ98^¨±a°=W‹Ò(çw¨r _îRž[­ZMœûIÝC”tuax—jSš÷¨d†RùŠçãÔ¡Œ¤bÑe4YÚ('m²Òmxœì}icÛ6ÒðçðW`µ²T±{ìÖ®Òu'õ®çµn÷‰R™–(™‰TIÉǦùïï\’’¤Mž>Ín-Ç` ƒÁ`pÿ/ªsFôÌ»¯ž.‚4Uçþ~Õ(NTz•΃ikÌ‚hDsHKBÿtÉ~4Tƒ$ðçzæ¿ F!D¶F ÄÕé•zúü¥Ú^ÌãAÔFû›o ê$Úí®o©à’ú[G©û4>Ïþy¤€‘šé\µ"U©¾ýŸ£ú?îí<ÿ" æï*êóÏÕZ0]LÒ³ºzØçh1™¨‡Ÿ¯S§EjÓS*ËÏ_îïï<{ÜÅ„ûêE´¾jo¨ó ÁîJU’ÈŸ(îø‰Ç‰?Ez’nk ˜—ê"œŸÅøë§Ô×0Þ0<…nVðûßô¬Í‹ÿ¼x´Í‹ª5G*ªGã‹“„rW~:!T+y«tN*ª iú³âÐO!$X=ˆˆZß²”ˆ’‚ `éVVrÅ`‘Õw¯ºµ(U€\©®Wi¶ÐvpÌçÅ ‚l)l˜{ vÎzEmÂo¯·Önôzõ<`«Oeå'ãnu}K¾ˆWT!ÎpüרšºwOיܺ$Ï–wažäóµœÁ v²¥kEfbÂËÀWÔ¯jD4T*Á ÌXÕÎ|ŸÂ|h Ì`I&á?+€@†¬r@\Èq€ÃLîæO.ü«TѺŸMCX›^lÿÐ?Ú}±}¸}|p(ËÓ_ºÈz ¹yhõYÃ8 `—[ø§¶¥žPTÿn)Fo³°²á¤~KbAؼ„_•!Ê¡UÛ¾{Ç«Á}µ÷äþþ+PQàZ肦šû§$ADÁˆRÄ}Í’`¦ÁÖÀ3«`é Xÿß"&V¦z$X#!ó9JsÁ0œÇ ;ñ”D„‰F´Êœ"¤úZPÊuk{#Õß>êÂÿÚÞÿ§º@h2Ôu"¶ A§FÀEãÅdˆR-Á¸˜”l9érRËVÁt6¿bé³]÷ ²[Q•Ê=M PúI;€9|2T‚+ü~¿Áæ£|ÎrŸ‹€hŠŠb@zZ‰ÕÍ|Lã„ÅéôÖ¨ëñ,}Às”–æW½^çuCÕU– Òi‚5(2õσ>âW…?[ŠBî8z¸h@N¨Sª7Œe¶`@T¶˜p ’¬8Øm™pŽÄäèTèLA“€ñ§ —¿’Ã8 ¼B®ÜAä5 œâ9LZè` &´M!¡bX0Oa ¯°ciÌ“EU« îƒg϶Ÿ?®h' eÌ÷x„( íiË(ÈËöPY3ø²jZ‚ëÀ¥½™À9¡KüEµFÜRÊ”ÐÌÄNÝTA’ÄÉ&`™VrÒ–JlÑ/ þiOPDÇýŒŠüiPQ?ß V4½.\é%R¹µ¢9M©+ Ùê­r‡ãMÍZз¡LÂÖ—íêå¿öž£øRr~³N`X… ÓHÙh?`©ZU~ýUªà¤ZÌXšÒ®ìJUŽ‚ñ¦7mÔÈ_Læ5…tŠ™@MµµµL˜¢È€¥ŽIŒ‚úˆ› Qžúº½Ñ^ÿª­‰š‹i$ñì>ÿQá϶÷öéP¸¢”Æè²W}[åbÄ‘q`±×P.B©H­¯P’§®L›J®“ónzDÞ/ŽÖ»µ*,]/Ž6ºµ‡øª[ûвçûG*ZЏ=Ýßéoïïww´xÍßÞþöó§/·ŸîZ ƒ0vcãÚžàËŸ+pä D&0‚>Ο.`‘È¡At&q4µ÷ÓÄÿ¢÷ DFQ ÈX+ïp"Hâ a› ûÀ¶ñ¬IL.Œñ"…¹ Ä\ƒo•ô n[òØ%,”}è>˜}ØÉBf^$/Iîz&î<²÷´ôÃîþ>§[‚˜[¾Åf 馰B¬EæÜU€b@º˜b ƒ6žäõ&ì²±ÍgÀžxmŠÏÃ!ä‚þ‹‚ìëô®——ÖK`ÉÔìÔï[4ãh«çORÜ\üî'Äy¤ÍTÁ‰‡+*º„½¹£ÞhóÞÀªuN [—ˆN¿$€•rLM#Úžž]Cžû%Ô£ó­ {‚ÉòÔ¢åI­­ñ uÞ¸l€Ïe‚ kÚm_Ê2•‹–ØK'VçµâÌ¢€c¨R ™‡™¶›íÈ¡¿¶‡SXÛƒáäªÉÃÿÿeôŠën‡Cë&"ŒÏ„úñM_DzdNýwº8žþhNÜhQÀIOZÛ³xûƒMf^Ä* íÌÇs4ŒüJŽ¢>±—¯¿Öâ)¯}4Ù.|KšipæQc d™ÀcO!v@\¶-²þ{›Ÿ[2й ñÎ^í\ür Þ)ilú™Æ¦[±41½J¯¨‹é} eLÇÑù{ï*d¨µnM‚7ÒËôJ3½ ™©ðÐ$Ðs »¦§$€Dj­d°FÄÕ«®×·@~çôt1@Šá N‘Y&$räûÅLëY&ˆq¡á`– ÅCìñ0è>Èá+é[eRQ'ˆ3ÌÍÃó°]Ä7BË ë<$:åíæ¬BÀÎW@Ânð*Dì|.2¨#!*€ X¬ðÊ,‹—0G‘×a¢ÕÍTÒ´W¨ ,Ô9ç›ÀÍR‘]¡ >l#Yi9IC@V𠓃8uGYòQbº Ö, EúÆ}`÷×»•-'µjU÷÷žï>?X‘£bÃò»=)áÙul|À:6œ:Hv¬Q£{è —}¤ …’\ú†“þùçzW…ÙXy²šúB­÷Nzµd-?(½êÚšZÇÒª^‡Âî!aQkh±Ôl£LËFÌò ø“ñ—« ÕÔUH‹b/#×UóYŒ¯ ‹lÊѰ*¼Á§ ÊU]R¡˜»ßEUH®€ÖKç¢ßoglØôŒºÍ Üüžê – x¹àwŠyB9xGÅZ㯷`…£l¸|òG RÛ#IˆM\Î=à°DBÇ’†¸-Ew,’mÆ¥FI‡{+M’Í+e¯ é£Û 6À¶öRó½{,j¸›Û‚ Pq© $D&à®oW‡0ËÉÐKº¦@9uJÔ¢!eÍþÛbEÊ µDÿÇjqßgô¤ð´i ’ö†UÉ‹LnDürzŸâœ®×bÞûô=×tÓŽgy»´×G!.[EŽôÅR3ÛÆ±È{6;%Òþ¹sûsçöéìÜÌž 5o6‘—¯{¨’0tîVKgýrÂ/E€ÆäÔ˧ ƒ%¨¡DMà„E\Øt›÷D­ $~…û¶—hWœå¹°]Óš0K±âV³aÇÏÃìÔ’&ž:*ûlf\ÊšAŸ¦vg¥Ìi ³q⃸‹ô`¾jÙþ O2q ˜¢æ$Ì-üb ÏùHuÜòÅŒãïãh¦TwÞ>ÃÃ’|x`õP &‹!,DW¬E)9 Q­ ¹g‹¹ÇpˆEcÙÆ# Ô}¥s$>_’° 8¡‚S?Z@òé¦i”xœaphó>83# ¸áЉy¡®3+­èåÿ W~k“fKlfÞi}!óP­&bÊ´ÃO#q¾#‰´´‰LÇrÙÐBwYD7¸’I(ÛéãiˆI»ôqq†'8›$Ú;çñ. t$ß«1"¿ &'®¤ÇÕBi§Ö1v4µZgŒçîê~ÍÊ Ø­±¤TÍJ­*¹k­´âäa\ €Qh5bw/ª¸·ý)‹ÞTµŸðŒÿÕÏ×½z§Cü¯ÑiTkª÷«êH[(Ðéôê˜kuŽUzuJlÛ®A;Ó*ò«h߆ªÖùÙB·×éYC¸ÚyËx Õ¯w8ü þ¼Ã?T 1òíÆ³ßpý:ir´;[ê—Ú‰Œ\‘f­Y9’Íòe{Û4#î Q¶Cï²mJn:Èì¦%x]E$d1ÍÌN¿uØ,dLA³‹¡4†ËL¬'{û»+ùë1"³3’Z[iÀBÇ(¿ÐQjÆÂ,øÂʲÝ×zŨÜ@ÈÅo‡eE ¾þ -Sq•ÿö_.G¥\΋¬¹*²*£÷˜+1‡´áÖEL ‚!ç?yÄ Ãs’ÆB±†ù;HÚáTö="%‚`_(¤‚yø_„&è—q_ÀZ€vjv&™Ír“Ò&‰·9Uþ9ì–D/DÆK~2^àH ÎtÝ RùŒe$H$ «êÚZ½N¨ ?·G«\Ùx³¡¡Ž²:šÑE`UØ;ÖËFgI1@ƒí¢áCÀkZÁ/jý¤0`óX ±&–xÔîááÁ¡zÅ*_µð´ÿäñëå<¦lph» *'¨Z£…±úàĘxPRÔÍAôOÚjo¤¤:ì`®mSȃ4°»E½ƒlD˜Ò…ó7Ù™Ñå'“@Ä;´Ãà=‡#á-R,±NÛA2qêá†T‹°ATè‡&„ÒÇ&Žúú¨?%ÛºµË¬T¿ÊL²ö-&ܪT¿¬¼³´ïgð¦›ÿ®æ"ò{C”¼‚M®hðß™A¨nàÞ½ú•ÞRJ»7 ý±Øjšhs,àáÌ RôQîè­ù(vÕ1ž^_+?1å>€ëX¤Ýq£Ý†bdqúÓ±¨ÑÖ®¹‹¬iAq¢å ƒ5Cy ’uJõAºv''¥Š¥k§âœùJ¶®Xõ›4-!ZÒaçĪÚÈÐÊ"Žvå¡+¿VÕ:%«™†ÅR»i4HsDÒEQwzk™PWÏÉ¡– ˜n![rmŽ\ #íV|3y²s ±s!åZ"øN 2‡Å V¤3?ñ¨<;ô£1ª1¡qƒ¤? æxzØ­ù§JÆgáÞL¦Q<û%Iç‹ó‹Ë«ÿÖ$ëþîññîáQ·¶ýhçñî“§?ìýãŸûÏž¼ø‡GÇ/ü×Oÿþ“U VJªÉ: Çáê°¾ñåW_ó׿}«ø“h1Õ ö\ˆôÒ¾u8YÕŒØ>d,?c,fݰ³ZG…l=hŽöô¡)½´ +-;"¬\2‹(‚k.OØ%€jz÷y_=šàdصÛVÏÏü3Öµõo¿\o­û·oë¬þ†µT¥W ?\¶•ÚlÕ=¦ØV$Ö×3úÛyU}Ííàv¶¦¾Ët·6˦#Íò­}Þêè͈b”åóT~7Øç&6ŽgE€8‰jUkÈk}Øjõ"˜QhL^ïô6zë½ «JL«Fœ¬šù›ëçQœMã¡úâR/’XÑ6Òù£kùp÷:Nq×°S½88ÚûIÉy¬8[ö‚Ã8†{#>Ð }éJåt2Ö’@Œö(?ª Š?„†W´×£UŸNJòæ}s6ƘèÑ\Ëê¯`óCJlÔÿêJÎH@æíÉ YH8 “š›šêQ]mŒèj€žœ3RÕW^7É$•t¸À~S„Ómd§)Y£½“,HˆÅp_HVÀhö‹g/ê‚ÌС¦t¬qQ€Bqœ 'H.‘,‚6›„*HgÁ $U/,?hgÁ‡O¨2®c»ÛªÂº¤Œ’2©áD˜ E`—ÕÄ>€ X¨´-Ê3(bw燃þNWÑïsù=“ñ}ñäRì‹èˆ§5êZÛÅ9j—W½A óà‘Í Q×`j÷j[[÷îË'â„‹ÆQþ)v6ñXÜz &‘ç^ÚÊCŠÈW7’®¡âU:ÄLWÐ!R!jkæ ¨ÎV³uk&«Qá™ ¸ž@í$C×rµøåÂpdq,Ô¿ìÖDeÆw/-=Y·DuFç"¬iÌå©?Ã2¾U“½9Úƒœº”ˆüœÒyÒÌfÝ ‰_$€\}Öp…ÈÏ^¸bäg[ég¯~îÛÄëÏúŸk•ÛbblåmtÒ³6_|6›­ªÓËî4?þÇã½CV»â’÷×ï> ¾ËÆ–"¿Í]$% ׋³8Å[ÛôËK]küòqgªÖŽ~<ü²½ÑTñdˆwà;ûa´¸¬Ë¡ÎØÓx ëP­IxÖ»Áó”O2ã:è뚺'k¦R@›s·¢º»3¢¾Xÿ7x‡Ì¹:ŽöQ¦º~^vÉ~ ”Aõ–ƒ‘zKp¦ñaŒGê/¤‚:¶QC¾¨ã©Ì³Ýg‡ÿÎÕ6 ¦qråÔf£‚£µ¬Û…|_S‰e=½÷ü¸d|Âh¾rxŽC¹|5C(µ¤ÀËç{PÆ-°ˆB(“Þ4S–`•°þíË$õþµwüCÿñ#=i½]$rþ÷¶_pS÷9Þ6„ÿõOïpû9òöŸ÷¼½ç@SûûýÇÛÇÛæãhçpïűù|qxðôpû™Õìþtìíþ´‹?ÈCæý¬ø€·ÿ˜wägÇ;Ú=î#ŸP;û/ïBäöóƒç{;ÛûýŽŽ=ä|ý8åßshsœpx0[PÀëÿCÌÂÉØ‰BÞÜO€ÁöéÎà çã0´ùˆåÿcþy.»ïñî“#w ¤à ("Çóf)ýŽðgxâÏÙ|:Á_ØÉÅð–JN4AŠÓ”¾RØÃìó*EfLpü¹¯“8ž ¸jQÎÓp”ñzK¦¥x8Ò']³Zêd)°™\‘+æ¸ižïæ¹´Ãнœ 1í£kÑòzS£¼òÍ–m E$¹àÁZõgÁM7tôðT‡NÓaLwD<­ñ©Uƒ0^¤2'ìA¶ÆÞ¡ ¤S—J‰ íB Æ×³õÒðúŸ™ü yÆé•bœ5÷çý³`2ëš/¹g#26;lãq„Ç„ÜüBl¾ŸUÇB=Ú˜ @€#›âc6}‚CöÂ;{Ò[n•ÏýK#Ñu!-(ÀŒÜõ¢¸Ï›.¹·Ã³3iŠ+‹K£BœK™Ý´y ÿóR@%šwákK¤í®w§qiUv‰BJý¢#h”ÈtŒÿ²q36Ô™)ïç&ÁÆ@$… I1¥³½Êÿ´%šÝ+QãM\ÜÙiÉÜí`ŸnŸÌfqʽ~  z@¶ƒöô»t£…‰‹MÞs¶mã1kËÅRhæ HíSb²ÇI2ßNÏšèˆhÒTÁ|Ðæ#.0f´Ò¥~$£ ¬# ®à!ušyÐD„~œvbÒVÍ¡‘~2LÛuá-ÝZõ­Õ‚wäAóŸBbJ©£*d¤šÍØ0“€±¦Ù¦XßÕ,i—‚.¨å˜© ò`Íå¼v* eÍbÑv’ÄÖ\~.>GL"óü<®ˆî ÷ ‡g¾«é¥¢ãkzA¡T‚ %x­q¢xr£Ò| ¯[ecPËV·œR“e° Ñ5FÐÏq0d:ø_—/Š „™óÅR»’z²#«–©I×èɨDŸ¡7Ñ=Gä5+;ü¤ÍœTgŸ‚Š¥˜àÑ«fõfkÃ9[‹É]ê€ ™½š.!ê»î÷hâE‘®_ά^ýÜ}Ýè²v¼v"ÆÚÝ:×)EU¦Ä³bñÖNfG}³mf,Zu á@4W;Wãha;.3\žMò‘[ CÅ)ŽÄÀæìFéñÈ7°Eç„‘2Á SyJóUšÈoÝék)EM݆Ïþ°ÂYЄº †,媦 ®¸Ðsf'¤ò›Ã/“4’£kÍ…³  ´2@%¸Ñ*Û"M[öé|‘ß+ gAÒùå·­ÙR/MÍÐæ,È}Ãg;'ƒýa…³  é€îFK)öb‹É?kùN¡çhs)& UT gA··tNî*½ø4l(Ηý¡[£ó›b±OS¬üÛýt¾ÌH„΂ÅVéz²–éE·‘Ç¥“°AǹYœ/ûÃî#][I?ñýñ–Ô_¦Q(«A ͘/sŒù²ÕÐe4w=ùað Er6òž[±î‘mû ¤¸°j’ÚÅC׫Ÿ[_´]dE9êóLMîXp†×)÷㩲MeWknOͺV†BwØ'¨ž¬)¬¥W€êëN¿3–1 …Ù‡ñú€ÿ¯";.§ ,fÆÜ™—Éâv†ëÏG"a““ o5×ÒŠw¯wEµ¦ª ÆÚšý¹°íF±!)…˜žrA’ßÜÔáÌ2kX¾kX`ì,lB†Þ9s ©“DǹsAÒùÍ!È¥A–<ûà gA2¸r¹"®ÜÁ2+õÇ-&¥AKƒîë?§å§=-e°~‹YÙ+!-Ø–´x[ÂÔ•mSÌw>¿ÍJd¢œ/ûà gA§¼ȯ;ÓlœxºYXÉ,²µ<æ…k5‘¹Lî§óeä eI&¤g·aqÆ cþì—ê2SÐqZ0¶P_ ¨mÂÌ<ñ«_öfUaÃÈ/þœ™NÎ4gäû–»˜¾“†`…³ „Î’F 0Ñ[6ÄÔ‚˜…³ „ÎÒ2ˆéZÅèöáá²òëÒO¦‡Ô˜@„Œ4!=hYÑ’1E)„³  é€üæ°‚¢(!6tçËþ°ÂYÐ"ͳ¹i@*¶&Ó®P‘eŸÎ—ýa*ãï,hB:à¶Ûªˆ›n©y9Tò¹o÷Ój?ÇØÉV8 êN²*,ë'RI™|8 šä›ÍEu›Y#Õ°Á:_ö‡΂ò\¸ˆ9+£(>hB.’’q]VÃ`XaŠd*ÅDÔ“ºLé§óe˜åï,hB…vè L[´~´‘C!‘ûv?-ã;Ù [=¢«)é­äb¥_ö‡Î5וÖMcÃûv?/ÓSt þZ¿›•]“ȺÒĹŸÎ—ýa…Kz `õ†QC7Šˆ–Ä£ì‘7±ùl¹o÷Óùrú× RìcV SÁ|Єt@~ùÇí)Ë"jæ†Õþ°ÂYЄt@7@Ê1F,…d¿«d›x1of–t3šY›Ê(n‰Q2A*ý²?¬°5ú4! DŒPvúfISÇœÃéBK#rßv•å|ÙV8 šÁ/;´PtNH¨Ìê˜|„A3‹s?/ûà »@LHä—\’t‘eÊt}ÅF•Ä£¬©šÅæ³å¾ÝOç+ÎJÌ‚&¤z~¸è§‰µ×ÊMHä—ÜÞt¶KÎ.¨øa…³  é€nÀÒ-Œ4»h¯Ž*Ęžµ"sßîg¾Õö™¸i½„i×u‘Ö0ÛñŬ…˜|DÖsΉýòäã{Ȳ¨BLiˆÌ}»Ÿå=(õ¹=(fÌÊ"Kzã‹Y 1ùˆ|JË{Ð;´Ø–Ó–KÊcè$/MYUlIüò"¥±Ë²—Ä•g-ĸÙ0*—Åý,§ ׊$Gn׿±¸²çW^]tiÁUÅ–Z^¤´À²ì%™óY1²-‘Ÿ9‹ž’Ù@& $4!ßܨs)e6xhXðì+œMÈàÎåJpM ~NHä7‡_j¡—ZåÂYЄ Bi9>¿`¾_aÀ‚¤Òùå=¢lREqù  éã FX–,—ZçÿÅp4!_·›RÇ. ulʾì+lmzšeÒ=™.µp킸Ø5QYMVl>"÷í~ ØV8 š]T~sêb/ýêZ?5JÚYi÷ª_ÌZˆÉG”@r³8_ö‡v˜3Èn{JÆ:Ôãbr½‡)ÒgaÖ.'hêÃØ’Z£-ÊMHä7‡CbiƒÄì±aÁ³?¬p4!ƒi²D­“Ìq‰%ŸÎ—ý‘}gAÒù͵4«OZ›ð5rå#rßî§M)c'[á,hB¦Ï²š‹ýÆ6ÃT"4!_þqÛo›Kp”`Sü°ÂYЄt@·Á†_ÒŠsÌ-ö´T°΂&Ä µ®µ0ˆI³Î˜ gAÂÀîYŠ6‹ÞÔ@é0‰›ÅÁ[œ-Sÿ'Ër êSŠ1›FÔäzkÐqn2¥Ë5ÌQ¸žF7ã§AtŽ.—±S³8w?#5<‡+uü¼ÖjÐU¯´¾}}Öxõ—¯6Tý^êT¨»ˆ+ªUT)ßÈrØ+‘æùh.b!+]§ÙÉ“½ŸžínŠƒo¼0”Óøœ]½hwÜêËönyÑKο¶Ÿï=ºIþ® 3&2Oo*6/i!S;csÖ£l¨x9ºÑj´Ý™dƒ·d7•]Æ`v-1£‡LïTõmÑðEÊÄ]L²‰“†ˆ<±z«ï˜âÝV‹Ý¬è<Ùª×ï´dÅË“ =þräú ^û²šª]¹9õÖµ &íòÛzab³€Žü¹?¹ÑdOE.(T­Añ5•Uƒz+¨0ÄÖ-~QsBwç†æ†žqIܨ=¥ÇWm}ˆgø=ÛO~D£¤5K–…móÞóîÝÓ–ýÖ>4§>qé­C@,î ŠU°6žÑ6Sb‹+êJÖ ba±_Éì!äb1Ý‹"þAœ sTn®Çìù€š'>¹\Pé„.u¶=‹ÿaa!ŠF'ãlÛŸçO’1ï7šÜ핤Q×bn†³A„í»û¾z„ùÁaºŸjÞVÍFØ0î2´ñÞ*±êï7Í›¼æ¦–&^ò„ÀÚë6bü ¡…ºUHû;rÞ±çô Gï·.ØȱՒš65Þa)tŸ4Ñî­ÐÝkÏð ä³X¼þi´xà|šÄo‚ȼ°©NªÈÛðEÝ…\=Ã|sË—,^ö»B¼Ú陥â8–5‚ï#}˜*|k©š¿øÜ­®?w«Î5èÕ`­·f2@¹C­ÃgÔb¦žµ.ÕxxŠùw§þ€|s x#C #5:u«‘çt×–ËsùT”çÌ+·¶D­·9™çyGEˤ°aíWßrþwøúL_{×ôÊÕÒÜôJ´:ÆÊ98¿%èB"t‘Êh,i•BF/×Nô#S쉹ÓA$‚×N2ú¸¯¦è· E!ó¨;¾â$Ú?½ÿaovoØ1 9Ù˜àØâ-þ”Þ¢5ÊzêŠü’Ʊ¢[.ì"Äx åÑ‚ÎËŸ`Ë¿[›çê»ïúÛ;»O<˜‹Ú@-s ª2‡gÞú³9#])X¯‡ôà³8±k{ÞKD ÄÛê?,õ`¾úqû°Kgà§çÇÚ+CÙÃöÀg‚ö¸ÝT;;ðùÏRõ¦,ð´@O€g ¶•: h<>šT9 x™Ö/RSÇ‹+>‘G‹‰ýúŸ÷˜™%o-8ìE‹Ø¡èAåM€ÎÙ¼é.BГg묩iÄù7 Sà0W,>P2?ÛÎec¤ïÑU \!‰`1ÐŽkµ’Þ‘ÝOrêEÇ.›*ǧGÄߌ1“`(µ~lZçpÅVèK‰g·§õ 'Ó’¦2Ö"xi•¸ü (“–­„€‘­ibNMc,7ôPŒÜÐçÙÆ/n[¤ÄWrëwøëßÁjkþ¼‹¥³R2B;qàÛ÷ýÑT+B™ýµi?7@båÝ’F ÖÂYïêB#Wz%œ1ùUæ†CáÞ tÄkÏ+õ<ä*Öº¾8Ü…m–AÍìÐv±'É߈FŠF%Wì ÜŠñAÏ’‡ÇP\w_táÑ­Åa»JÈ\fm§ŽÅ6Ô“$ÔQ<š_ —y/@rÀjª½hÐöèÜ$«IžÞ ñ,.@ -—#l—‚òÆ0p)Èþ“p"r34‹0/ ©&ªÊçIxŠÜeÒ ]‘jiº¼GflË2V÷ïcrö”ó*O[’W•F÷ò<æ\õõþMžÄ\õ„²'¦±¶©ãÚd|z9çw°ùy"|ŸO4£h!± ‚`ˆveµgo—¾7¼~·÷†³×º ’¨M»œóaý[¦sÀC2‘kÖèdR+âµ»W!{ßÞ ÿôøb6g([¯Á—æìvZ–DüTŸ:šôJ¯Ò[ù"rÕÊÝ«Tê_y@wU$Jß3¶i7ú÷.“Ó2³žS‡8˜h0ù@yù:¾Ýg)q.üt“Û!öÁ?w~UZaÊQï^VźG]'†•îœØRVrÔæ›ï€u¡ƒI1–«û®jjðø9íâ,γÜæ^ËW2¦BÙß›£”ß™˜8F:XÊa¹?{¡FýÉ[~sÞ’—SK¥š3UÕÆ]Y=­Ër åº>2£º¯dî‚"ÖÞ‹íÎÞ‹µ¶‡1ê*š† ßNÔväO®Ò0í fv*òNÝ–y Å“|ˆð^<ÝË4ƒk¥~8óÿÖ7Æq½)_àåŸMFôÂ0jX„­.EJÈ-~ gÈøû–®î…l>Jog¨Ø´¶g³IPK Zm…[à¡Xpœ#Ô#ó9(Û—ør«·˜%uþýL-m×ï¼`ßäËÙìº5 [2Ýâ-¡âßf(¡²<Æ8F_ÚÈ??3þ‡Y]á’U@¨»ÛLjւ;.¿+ÃEÑG.g³hmeoãå^¯ú•»oꇲ„–kiøß †ßêF½¢‰,™“áÙ÷;­È†Re*ÞŠt]Åjåo4a]ç»\óÂÀ~›î:iQ¸Rì*¥‘iá(¯—$HñîÊ—Ütu ²fCúMá)©KÖ¼jHô7| ô^ÌÌaWÙÜ.r,6[ÉV(~lü=¸×JN&Ð5/Câóñ†µÞºŲۺ5‘Ùß/asd C×nÊèrÍþ?Îò> »¸¯Çê»êÆÃ;0-wÒ—qã?'r‘v—NéiÁþò¦tSC’L|…[r’QF¨Ì®¸»3v‚Źn%±z²S/\7Ýu—üfûÈÕñÓçc‚ÈD¾Îo™Ëí¦Þï½Ûw\u(ËgCªÝggs:ñÓàˆÏì ùNÈî³çSù:û{ñÈ; s²!/ÉB=íå~€ƒh~ÇQçÒƒ`õ ë\zÌo4à³Ù5ƒ-úÌò±Ö‰îP—røaW*^1¶V=´Gñ÷Jý‹ÄÆ‹¹¾–‹Ù¿÷ŒIgŽ66‹07—hzÙ:ƒÎÚŒâMñ¤tㆫ¯êÆ&® ÁÌ:åÒ¡õñØë¤ØÆÚ)vI΢ì=aol½{F¬€L@͉›®¼–ÊHߨ 7†¤&½ ŽMã½FF˜ù´(J7Äþ:ï×Ït„b,-µo9¨5 ~Y„ä³\î|#|o ïýO>'6öoΰá{=ˆ÷ïß4 [Õ«¼Ñ|£¹Ã£ù(P;2š½Ê»øv ÿWNÅ5 ÙFŒòOL/rz¡ò÷=®1ˆÌ`±_GUÿ *… MÂÌšV+íÿ7ˆÌù}j¯LØù(‚õûŸ(.ß|ÊNª¸ù-¢Þr>yù|GöfwØRRi½¡¼¹¦Ç+ÁçOõÎû ¶ý8á{žÑ7 ZÅGÀàãEÊCÍ›(Œ‘L÷lCá‡j &>z¹fáÜF÷ Á¥·›ê‡­—?©õõ°´ÄÇ|Ä#ôgÈâõÐà`jïW7B/Ix%7ƒwüÁ|á#åᕤ!@oIP#z+›ûÉܬè@/Ò A'Srj¦äø옶kªZ‡wMr‘}œ(À&Þj˜Ñwxdx¤“nzœC† ¿‹B·ÇvJE»Í?¨¦‰§¸Ä"ƒÔKìÑ¿Ÿ=:Ø/­naá˜Ä­ˆm]lîpùJXÂû·YŠ!¡ó;vâ|ãW1BPµv£ÓÑ.À)#0(7_+À¬kµµNM>êºzð¹ùlÒ§Zgâ·_ýuÿVmlín^!\[ö” 'ÈÀªx­±QƼ•Zæžå„ñÚ’Õ¬˜ˆ`¶4KÓœíC£ÿy"u3>…£`ó)ô5Ї±ÿ©?׌êÑÞñÑ÷-ñEœ¢ÅpšcìH Àò"Â_„{–d£ø)m¥êF~ÍArýƦ/Š|i&(O‡ì3itÌ 5í”Ïc"–ùjÏÙ ú ›¢Dƒ"Wngþd¤©_îò> )ËÕÚŸÁ#ÝbUƒ@MÕÈ'Ñ¥2fq5va#a& ÿjâ%UÙæÎïÃáüyG{§“éD‹)Às´áÛPµ¬«w[9–ˆ†fá€de2jó“Ä¿R¯Ö!÷†j¨¿¬=Pß±'`숺ZÃÙç: ­ž×å/ÔP‡Bê Ô_oy6ȯÉTPËxnÒևᗿm—~À^½Sz÷îÝm06>Â`dë¸v›!‰^Û‘ÙT§QË­sjk‹35 É= ¨bTtÛ6KC3?²ŽíU.{UÀ·Ò#/•(.ö ݼg™Ê.ßÿ¯^‹­%­°/Þg5¶–ãQø WäÅ'¸$/n¶&/þï-Ê ³*ÛTQ³>së´o-Ø&Á^¹Mäï¶vßv±¸k]=|ˆæ¼zYª×óªÛU_~œu¹lX|:«ÀŸ\¼”];ºßÅ<@¯¹øîO/ÞË îr‰=ã<[訅ªwEÎú‘1PUäÚNßõ`Ö"¨Ô*7o‚«‰ˆSë^˜®a /èiçÐ+køof¸·òÆ·u£/U£ßQlßb&ÏD¡U|S#ÎŽc>iÕ)z³¡Ç!>¼>åbî0!`/ƒé@¾IÜ}€¿ÓpØ}àÑÙ dÞ4œüãuÊw|µ ûH]svñe,½èÈK JIÜ}ˆ³ÁILŒ7’îÝ»§ —n÷Ū5 ”J$ yô@H¥Å5B¸%üµëÜPµF­¤fC]õû³{bÕ¿¡ªñ†TðÑfŒ Ò­­õOjn<üØscß`nÔÖ2*­Õk¤`J¥©U:G0¯ž$gᇚ#¿õüpqûØîûêQáqi ³x|Ká"€±+.yLѼ²^2‹ÒOR[*Bëe£ `Zš­áèvH‘"Åÿs)!n2OJ×’÷% "W³Ë˜ÄÚ,÷{Ø=¸û† Jñ~v?·µZÝv…`™‡fxe@õ¾“ˆÝZ¶æð%zÉYØÇªÅò2™ñw:†1YØQ“ðã\ƒÖÑ»:ÐÊ(ÙR­UL“ðÕÒ¦ª\Tè8o`þEØŽVª^× fAcûDÙR¼CŸ¡¾å™ ×ZˆsR®¡Ú@i¿OOA¦`ñÙdÈ„Rø=<ººba½‹÷®x‘«͑إ»¼ äg¾EÁÊ÷äyˆL9È%U½¤Ç6=‹”Á?à鵪ÙÄŸ£¿#±©0½;â§íÖFu´¨ &18~ý…&ög0:¯(=`ÄíäÇöxoÑkªú¥úÎö‹—ú}׈5…m™ÉIÐ6`j<£6Ú៞ÒO‰)ÚX¬œó§ìþ “.w®Ì‹_˜ßëV¾µQ,MLƒé)l9eç¼ýôé¡z¶ûìч¹WØH‡#y,)€m­Ô#Æ]¡˜?! M¹ÈÏ\‚/ÂÝÄÎb••…4ôSR V7ÚÕ/¯·z¬~¹TuúÕÇ3bøº\(¨n›çñ8Ù¢›ñò¨{ɽË/ëçWŽÂïØ2¹óÿ;7ÐD~ +‹l¥ñÕÿ*¢ÍHEDŽÛ“xœ½OI.›Gâ~ŸaNÉ T¿ˆš¿ábÀ÷”Œ5*ï[=Xà"¶RÏM²™Óz@u”%ÓÛhÞ1¦Á¶çíÍéqiËÑ í´š»Öx¬nŠI&”¸Æy5û^t®Ÿ¯ƒè¼* ÂÈGðÍêß=MºôLø×­>‚É¡_òÖùg`aRŽùWDK7ƒ`¶ÞØðrIe`Ëá!ž—q0O¯Rz[ÍÀ+$]×m $AUÄO'• X> úõ½’þ“¤e]¸¿8çÁD•à'I7ë?&ˆ½ã%øé¤% ÆpRêŸý½'GÝ*üÙRz±}üCÿh÷ÅöáöñÁ!?Ûœêgi(Õ#­e¶`xÊvk˜öÍ 3”W:²åm*QkŒ @=vNÆLÿó¯3fŸw†/LkHÄ#-qyOŒ,+¯þ3Þy ̃¿6ƒÅ·¶æI8Ã]šóÎ+æ oyŸöaXþʼ]‹ëÐb–!OÜê;èà5ªáÊÑ+GøJX2DK}6àÇ'ÆÐ—`Š€¶Ñ©ì/‹xÎ×üdœê¥ŽìïÏûi0÷[xàìæxÛÊ=£G¢/ø­)–òý‰~ýVÅÈÛÃÅlB/-sm!]ÌðÎ)¶Ž„t³øõ±æn1êAIÜ:ÅMé¼ÿº»¾r»$ ëÁé, ­uµÁ”%ñPšÈBô'¢›XýЛ5¿Êè ›½VD챑ä¤Q§þÂ×Eøn/>AŒ©ô1esC: ¿ü#fü–Ñü5X4!¨‹f @£Wkè4n_þ!ˆªd·kZOþÕjqåD•“ÕWÒ³¹^×Z5~w°8x°õ¨IuµŠºaP[YxÝ)œéH2͵CÀ¿æÉ"Ð ì%àÓxÎ'¬Mzd)—/“ˆ=kpîå©dÛF—hÁ}Ü"vð~d³d_hãQòš'Ûcð0nÌ„6š1i²¢yrjé„¢ÎéOœfEÑIêÌ‚ÖaÅg_—âÁ,{n«8¤Üø¯$Ãz¥a›ªàsG6}Þ3tE!Žia®âá€RC‡¢>¹žzʈÇ%jZèÏÛÊínéíC!ië]Y‰õå%Ö·ÈïÿèÞKäõ€®ý…óÚ°©“À3 n4^£røÃ®cQÜG¯ßd  åovåÓøœW¼€eàåòò:1wÖ±à r„oŒqF`Õ@‰Ó‘™Äñµ ýÉýì2^b«_à¥D{ À W3Š€ÓŸ±©W€+ßÌ)/JIºÉer(zb˜,äüL;9\ðM:zýæÑÑcõUû>¯×ö¨L {Ëñ !¾3[]ÃúKû…"2Ìà‹wò¬g¶ÃiϺZd^N¦(¹Ï­ÅGU&èÜ• :îÓ=»QŒË%ÝcIá" s×yax㎟¤‹h‰y¥Mo-[× L9Yú#«ëÂÜaá±K;?÷Ö^ù­ÿn·þ§ÿZZßö_7zõn»Ñé­wf˜ñÄœµêÍ=jRasÏ•¸kæÐ†SÀiMÞ™¥ÇʘX!kpÞoÔïà1 §÷ÓÀ³Í¹î©k=Ü ÒÆÖ;Í=¬EqE ûÐÿ kÂ_ꓺ1ö~èo>ý’)|tðòpg·®µ®ë¡Îr’5·‘ï<‚eÌN)›>ì±DOP_—Î@níÒtÇ?[Ê8)jS¢§Ì¨ ÙÁ „’ ø‡d ø¥ˆ11}$J Ê>V?Húþ$ZL_iäãz@¤µN¯·Þeˆl–±wƒ_—Jçç›TÓµa™Þ“žJãdîÕoÃ'4£8àã˜k9E «p§7uº8…%"ø²­1ÿ\>] V“{ˆÆR9 Ù, ÑGw,+'e3#,¡1À¬þŠPÔ¹n׿ßkæ†Óªè¾€wéí'(7p¾à'.–ûëÈ|tdc±|4)Ér¯|,îå‡áÞ–‘îݰߋ=oS]˜‚ÔR”ߨï¥gmõzÙι¤]%~ fø#–‰8á8Ân³GëÄÛaή¬’^y~~UÐ’70£vj~ý™¢`Â[™F½aÚÆ¡jµAÈøÇt¤Ë0ðjêÞßJ;x‡«Ö¿Të_ËÂÍ‚’ÉÒ­emnÎ23^¯YÝÀrpVêç٣Ǿ Rupä*‹a2 Ž}+°õxV=ô\¢3ž¶·¢`|­ºc'¨º¾qrÞG¿ú¿ó8uÆYE©óÐd´;ÚQÆ‹ín?Ýí£Æ Üþ¬MÎÍÁƒ@áB’˜»ûq÷ðhïà¹Lbîìèø$ GÜÔ£—Ow_[ÐLÜ]¾<Ü·@ÁWÅV¢ís1"ž³çS`‚“`À»Ž 9ߘk!™’Ù•**¼PÕfZA$Dˆ¨… çx̓ ùP!Üi,æ1n| D'ÃdHÛ<æMËõîóƒç»NÔG9ëÔÎÁó'{OûG{Ç»öëÝüæî‚H'ç+ÔTjc1œÒ²wAØmO/ذ̥î•ù‰f ·vÇά•@^Y¬|e¹ØõÐø¹ó4må²Ê/üã½Ä~0­ÍÕÈù:°‘I‚ŽÕÌ\Î “3˜œ|™Y‡ >å~Jÿæ5 å+ƒõÅpX)‡]/K®¾’‹Ø¨°’Ñ2ë3itO;(÷¦ºîÊLÁŽV€¹¢æa¶$Ÿd­Â7ÞDMbŸlôiVÉã³¹ Ë÷L7*øxs_¹È·H¿œÑ.¤ôdí¦oÜ&²EÚÄ1êzòbXÛ\ÖŽ¥™Ñ!œ,dÛTý^Uä|Ôš¿¼íÞQ¼LûPcß„( ØKNÒJv᾿sl 4Zr3öCL-7À÷ÙgŽ­ (5 Öä.Ïjvy‚n³š¡£I £µŠâ¶¬ŽYTY#Ó„ €c¥15=4Лç4tÉb©¿ÒV;¥7?Ò›Z—ÒDUÒ‡i4é“©;ß³™×ºaÃêF–ÊR±, ÝgÙù ifxニ#|ÿ3°Š÷â –Ò¬iÁq‚°hJ ›M:áÈý ñÛt©¬úN(‹T•Ë"±%»çgëiÄ”7Ⱦ×è¡5Ó™ñZ3ºû+ôûu«÷íá(Þ+BïöÝ¢Mòzˆã(NØ•,Æ&ÍD Âó– ý°5HëÝqÏlîòܸù¤› óvøvYIJ6Ý !z <‹$Á“(È…\Wàqm±lÒÂlóƒÔ <û.Y³Ã'ÖÔØ"RÅbÿ¸€K2‹…  :À×G÷zÔrêAÍDnpŒ_„e×YzÖ_QÅ£]U±´Çî!/p¨m)3¼4€‡ ­Êùc¥ ô`ê`üÁU; nq’« b‰ÑáˆÑuç·éè°¸}¥ÖÌ&—Ñy˜ÄYͰçÕé,‰§aÊó½ƒ.õñþ~ýü~¯kôNÐD«tNËOw Cï$™Úòe_§¡#ßø_¶°v@(f.q“-Zâgh}é\”7]+”õlƒå“Yrw@ÒælÖ­Uw`+ƒžìo?=ª±YèbÚŽj •Ò²\3gì`*Š=¥\\vE¤ªºÿx LèŠGG²6î£EW¤P7Öó2(q6v-Ó §´e°ÖiœU"¯¶¨"ð$m^6/kMmJmGjºÀT”€D€ÝZÚÝ`õuçóÏ;ã­´³E›ÕN§æ-ÁØæØK°ÔÜ»j*ªœðxû‹K²rÔ»$1—¬TÓd@†:Ôi·ü–­“Ñ.Œ¸ÌF0/'“VzfoÆ­ %£Ž–üýôŒiN²Yp`*ñ9 _F ª·?PÅíWœžÍãxò~•2 %É…Š­…ȲX5ųºólU^ÝàR¦G›*kd)×T¯zz¤{•, Cžû¤˜ÛõÈö„~XÆ+äˆyé×)‚!ñïE„æšqßM¼<†«sBÖ6°P³nì”x†‰±/±/5÷ ˜H P´¹ê+^yÈô( ¤Œ Þáeˆl¥Ö1 S† ó8¹B3¦3¼yˆ^ËÙ ´1ÝXD‹t‚m±š1Ëñ&6 îÑ»ûûÊcáš”¡B¡.æ´ ê¶?^º8] ’o :n(H½’§-sQÖBö6®Ü2mO*¨,C6]D_)Ëò›ÍE~]N¼XÁ5`Óá±"¢P)»³g7KKoÎòæoБÎYÊx·Kt€J÷Ééx·j}xÖÎߊ¦s^Þr…OVŒ“âÉ `– •—Á®ØRWñB¡•¥"ñè ϺÜá±:g%n4®9ŒNÊéd%qäaÈÚ9šæu§[eº)eWËì4yíL¶c:÷;V£EûÏlU²–…ì `ËcœBAÇÇž'jyÚVýË~î[»3Š'j­š‡ê©K)/= Gs†¢.ëòq|9†%mƒ³l)Ή×ðE·¦\ÁM€ wD´ÑV ˜È"e¶.&ðÕò}<ÉŸÉ‹1N-¼nJ1C.Yd®ÔYy7ÐFL™B'2:BKB蜼ÓB‡â°£¤îº ÃÀû:7äù¬ËØæ»·°ÔÄš¼ö©©TáÒEÆotòõS2«C¦ã­'d¡t2¢ ñó¡/™Ž:©0iÞc22à’¹hw9†o:)/O/ê-™‡þ}§!U¹rJŽlê"zÊ÷ª)¸³ û³½íýþGÇ]*âyæ¸(Õ÷~pâÖ{¼ðöÙö?w[¸q|‡Ú²TõªkU¿ÉSK ;³ZFÒÊLŠ àlÙ6¬ù¢3ƒ]Ÿ‚=àÏ–õt§O/X×ò™:°#Q¨¼û•ýì ;m©¿û®'ö2<“»Š®î¥gl6½{§&Ôþþ÷¿öÙg]éƒ.Ö´©Í}ºLðèÅ•pJ7šC´¢©`ô«õ×›jo,`'CVÌc¾B@žC`ç@Îü pâ €íü‚j±îž°*±!~ßää E¸­èK¼OÚÀ[‰b=ïs¾90 ò4×Ûfu5¸œ'Ä[óëâ÷+ç¶ûÑîqû³{ëÃb]Eçkà˜|úkyøCkÕòƸÃÖú1Ëüb÷/sÎ-–}×)cT0¼u‹½2¯à‡½q{œy¥M*_yIÆ0c‚†‹éôJ•Á!ç6X®#wô1"®s3"Ù– >Dþ;;ï'û°yÜN%'ñì.¥©Ìò¸JBšczx‹n áX3Tÿ#Ü2%úA j5¶ Å¨ÅÕ(˜Dd¦“éß´É­É43µttÏW-È95•ÓGeäVnÀ\N#ôB§VÖn,´H³¥6,ÝÖÒûÔh5z€aÕAØ[:ö·—‘:r#GÙÏ¥XîˆìO–G¥—5Ð%æ9ŽQ•Þn[É4îÈ#>=– ýƒUÊLçZùþdËYEÖ_ŸÈæH ®…Å8GwÛk2©”ì4uÂoË=ò†@R­½ïW Ç©â9nÉ.Ñõº½i´!ã;_¯ßœ˜› z4›*P’Í xIÈÄ}h¿>&&Áõ/ß ™Ü:MByÞrsI=czÍ1™4¬ ãÄÔß§¶©Gÿ»‘Äw[™ï‰|Ÿ{ÿSâû%¾O‰¡ÿ!>j}^ê³›²’9Üü9õWL}*L%“à?t=«Åÿw‚eG¸jwU…|-§ Bwå+tà•¹®l_IRæ~mn¸> ¦c»þqš“SÃÑu;ÆÁW§ñ8ŽŒy·??k«$}DÎODÑëÜshkv¹›=¾å…è>;=¶E‡¡n̆PbÔ=7®!Õ(‰§lm)¾¶¥Üñ"ÒDÞqFnšùÞö w4Ř´‰îÿœJeºrfG€ÞE@íØÙÁc„ÿày/•P[b6 ÖtûãÝÊâ´ÍéÛõ/jªö®ú÷Šá›à¥aÕªp#ÉR;'ƒ.A’LÚ0!ˆào vº@õ$¸“èYêÏ5èOñ³0áˉîX þÀ|{ÂiÒ†64Ôï¹-åD9Ud9Ï!Z¹–ß¼ƒù9ÊŸúÊO“Ó¸ýõi1˜ÿ{JKO•µ)cA|mýOÕæVmŠM•Ü×Ð\»ý“ð†Åxq+˜ÑGnXpÜ蟢ãyögÒ.6å눅±xRànÁEë'¹êFé¶í.[Âã¡ílµú[mý¨Z¿È·ðE.ŸxÐWt¤Þjj®°ÁLEžËM®än]£WAÏÞ ÿôøî¾m–‡f“+±|qÒ²$ö×"1&½Ò«ôVvYÕÊ݃©ë2  N{ÂZ“')V´½Ú¯KðZi;ñ̹Ó-FB6Xëüž‡ |‚™ñbØ|ˆ¯UÈkGÃ]¤ÑJ)Óø¯?ø¥æ¾maã².LingY—¦‘*$g%„©¹¶Ü{0‰øM4q'&µ†¼ãCÚ„wÂd?Àƒ&Å—µ–¼Mâ;NÈhd•Eæòy[žË|z?‰þ¶‡Gÿ~AX‚=«T¡÷€®,«FrͤE%^ˆÑˆ$Ñ&Þ2L‚±ò(CÄw€æ¬ö ®Ð[ÃÐG¨k9Mâ7A”½ÀÁ~sñR 2Š\ï.B¤K€äÃ&FïcªˆlÉb, v¼IWª«Š9‚«Ï†QÚYQþâ/¦Ù¦šÐe M¯~V¯NíD®ú¨¬\!v°L©Mz‰Ñw½¢Ó2~~»ßŒd–·Q!±dÊ 4¯Ô^“ªº–M9¯íl¥aÌ·€Ùµ/ñhD¡ù0¥ß!ý O9‰ §§ò3¦ß©?£_X9¸”ÎóßÓÿ¨º¹ Íž¦5ÒÔ£òa°«d÷¾i&2°r’62Ïéí1ûñw§qäöë"'ÿM˜¡µK»o®•µ6Úë_ÊÙ©l¬XBËAãØÎI×èÑ„X®¢Â.ÖØˆcbSÅ83/B}™ŠÍ[µÏ“ÝŸvw:| /À¡›hxÍŠü!‘îôŒJÐë{zkçà£=Ô¥ì/‡.Ô‘>×·v…¸ÇHɼ5“0+Ɔú…ÝÄé†äñ ÀÎË:¥½t†ÎrQ¦ïF²' _µ>ò,õîÉ4}埾&nSG÷(F£]¥oïf«GS.æÂл°w…>›¢}:” ^ œ\©Ý·½{´ÑÌ ÝÀ ²C–·ö }”õNœ6‡VÚò€³ÐÍå(Þòî1‘n)íPÄþîIp9Kì^ßTµW?·_7zk½v»Ñ«Ç&GÔVíEÞP:n7¾Ý±Ð?W’^Z¦­ Hý9Â=KF1SÿŠÈÓr/òõi¤Ëqx¨é´€¼€~­C; £¢_I@²#¿`s¦ÝYŒ/Zú| ñª¥w=ö¢¡I‚èZß±ZŒæW›ö‡?<÷£¹?ƹHu‹—2ZÉ;»;`8\YDÆ¢KLJFv͆³ÎGd·\+3󳼕ïù°;íâvLüÍiípŠM½E±ê•™R㩼Güë_UÅ’iäú¡HzÙDMï²?¼«ªãóúÛÜ`Z¶—ԬȮ_ë_©®¼G ¼“"©Ü3ÜÀòÿÆ¢¦L gêx™ÛÞ%B½m¬Ÿñ)óû„Ü6öwìzaZ,½kšº¦³KËäÅe²ÜR†ûˆ²ÛÞH‚œ¥NìÍ{Š1Q5ò0p"¯ŒÔÔÚE0™€xv âÑ9Ž\SûóA ˆaOp!D· è ‹4s;Wã‹0jª“I¦Z¨Ñ’^AIÞÈKU°Ü¬…í N@Ðk0Ê|ôz“ßt$Ž×øä$™Ö bWùf*Û6iWÝŸ¸,¦l!é⌨ۭ}WÙÂm¸û' åÔË?š\Î96••+œð»m8³î²´Y°æ¨ÄeÇw½j«¡Ò˶Y"qÁü•8­YâÍOn}°Ö Nÿʪ’Çâ]õÕŠWáQÅd^…ߗʯSt9µ=¦šÅ]^‡Mmú±¼rà3¬#Ê›*q  œò @³f‹|À`A[¨ÕºÿM\x|åUyÁür*Òx6KîÉ?WÝßB}L:uÓµµv§”«Ôdþ`ýMø…œw¶KG—æÑXÕ:]17º¸Ï>5æáh›MÖ/|JË%ºÿ1;š¡å˜¹› ä!R‡{5ɱwÒjáù)Qwò£.ç4|€zûU²0¹^)I_µV.ÙÙËÅï²9Â7Û¢ë¿ñîÈ.´Ìކƒ¿»ƒßë4+7<±<ýOÙ~Oˆò·øèv}¬]ß²‘;"·Ým}„ÍQÝu¦k&Cé^¶@mz¯7Br½bóóGÓ®ÜKÙ|&¿™ú {¨vÕŸâ†æ=\1È%û©,‘ØæÁ£Xû&NDî/dSåô÷—áÙD ÷ èÍ%S-Þ\˜_aÙ*àúÑøTVƒûá(‚dÕïC+vú}=ï7Â÷(H8Z±j I㩘¹ªÞàz³è»}@Ò™å«ËNÐ"Ñ$Ó‘=ŠÓØe[ÖíÝj®¢÷òÉå‚ZBàÅLÎ~/Pî^ÎÓ»›ðS,,±tŸ=½t«o9@goÆ—Näß÷ñ.µ³#†l©jÝd¿ëXi_<ôÇwv'IÍô/ˆöGŸ}µ;1žœ*:¹d_÷Jú­Òb“ÚßS»åd²q·¨D7@¿ùI¶Àžù…,¬wÏ—{Ÿf£Ê‡å}9ÙÇ._6ƒ–ŒÒ{pSÓgK©“žÓ™¹ü0ÿd„f„.c´žæË×cÂY=OÙ^ÛN´ù…jl8¶Û.+Éœ1Üb9¸ÛïÝÝ{ÀÅÖt®-”ÕÞÑÚùÛ·×]YQô:6?øÛ·wfô.ºË¬Ç’ïì|hEºŸŒQ“^¢\OçÉ$qÜ»m!¨g1ÖÎçé±BvžÎã 4•î°î©¯ÛE7Ý ¿¡ØN¥v{ºÀm6Z‡\âžP”÷j­‘ RÔÞ×Õš•³ÑT:ø %ë[~…ò’©Z›A‚<³Äq™<ņ5…[Àü ß›½ _#ës`ŒÔ“q]H}M´‰†Äu‚ÆQ)VsîAB'Ë¿p±vޜ᱃ ð˜p„4èwLA°uÉŽcµv^·XsŠøaß=Q_µ¨|Àá5 òŸÌáñ…f‚6M­íçG{êÔ¼a€gdMƒ0ZDln6Ñ™m*qÀp³Uë]þðCM—–÷QB<:Óë5â%ž]Œ°s¡Ñ`—¶w 4П/ðÖÉ»ªGK9"XL"|juN¦Cb¸©ª]âí±CWaÄg#làÎÉj}bãý¡ø˜ÓƒmrT«¨ýÓxˆ†w; ò ÕA“<¨ý¥ AG]øW¤gèt} YMVESò“Ä¿Tÿ zSçnbŽ|SØgCå‹}dÐÝîÁ…}ežAú@9¬BÅhfFÏØž H•q:ú ç;×ûŠª.>Yý½ZW›ªµtŠT°÷è쿾!\·÷~¢n(vÌpt4›øØSÄjà Øü<<Œ ݪ˜£ÿN&…²gž!/ô>98X»¬ãˆî—“Á7÷W˜è×uìhyÌKëÀÍæ~ä’æ0Oìuõ×£:góë[ï²ä ;YŠsŒžùa‚†1)5µ©˜¯¬5ê׳ú«9 !Œ[ž€‚ó­œ ¥OÕPfhªt~ˆáW^Ó{¥Nòz–Œ³TÍr ¾p×úeâGãÉù¤ œ–+‡qäyÑóîµ¶A\kmûªõ¸ÿË—?õ^îìV ò§Föw:Þ}ޝFõûò4­¾]' ‰ Pu…ð»I„¸| œ[ÊežóV® RžÉC[9÷ÎÙ’ãi¹J% £Mð}µ½ÓßÙÞùa·ÿãö¾¨tK«"µá%¯'w0ð‹²‹ ÞåsI(G°úÚuÇÚ¬Ç8òµå’²ÚÄ3®\wψØwÃ¥¬+W º’CcF ÐÜÂ"@_e[¬?º3Z Ú'!¹,DZy F+€ÙÈ|&ošÃ¡Ãk#X¼‚¤.æäHvòH1.)Ã7|#²p8Кži# |q&NȬ_¢ë"ú½áM´›¿JTôV¶ ÕTäl&E—Ó…ÙÑÁ§XyñÚÎ!,eùܸ¼urQÓpì#ˆ¬"v7-Ÿ©:ãùé$F‡ã æŒ&ñlv…7…©€üаŸ¦C f)o¡é—¾qŒv¸ãO¤þ(½Hm(Ä4LÏ`ECœä— ¼ G? èˆ'WVa~,PqÛÆI¼˜© Фäਲ਼Â5¿KƒtF¯2ãhá·É•åi& ¦°¦‡ÑÎ# WøQÚŠ–›ØBwˆ’9Å!Ù¾m=±Ô&·õ¤±ÏÑdÊ/¢À׉S`xVÎ︯óÕ££Ç-‹ü5{ºeÅJÍSÈÐ{ïùÑñöþ¾¾³mïõüù™~ ꎛ½p—Hx0ˆAfüAŒCq?#9اcl•NüôŒÄú`W ½¿öâ.Ð;˜~m ·;êWøƒ;¯;¯;x Š/¶ÓLÇŒ!˜/“äFgSK‘g¶ãtƒ~¥Óó¯pq² ™I&4ô”kès:Yúp"=Y'É÷hç@<>V_Â.‹^«†¡„NÇ[4,WŽ´ý(Œ~lÞXʘ Ïܯñ««áGº]ofùº¦5‘J7ñãè(šÙæò›ô¸í䦸Î.f“Eú^ø ûkñJá@eH /=Þƒþà ©­Õ2Ou¹HËE!ºeœØæ ‘%BÏ/¬³r|¨ŽŠCÅ|bV"–{è€áÄéd5Eˆáèº^ij9Š•“ÙÅð¤c혮WÅ Þ@_©²ãÖŠbú¥ ÆÍòšögCiö3§ï®ìzöïžuœ¯¾äO¼¹ÅŃž¸qZðõ–ú¹!xTWáîš³pY7Ø,¥¬°PãÔÄ*aëhan¢œ‹êPÕ4²K:‰/ø ó@«pKZ •/øž%r0©”ä.ºA)ïû™'ýšÖ 7ŸozkJ}M¬šùƒ7>¾j›Zstå Êx Ky~ÚsHV´!ë7/’ñ…Bà2ç¶ <»ƒ²!ßÃÐLËùm’ÿøÂÀGTõB¯;„D믠¿mùó4ñå¹øêÛs?iA“ÞÉ-yìá7©ýÊЄ¯ÉãâA4L¥äŽlº8Mçá|Á|µ õ_<=Ü~FâF.6Lo%ê]Í+){´s¸÷âØ)ÊQ×–|¼}¼í”û”jMÕ7_}U»Ëaú|w!ϸéÕ}+·#Sî?ïó\žDýÔ:ÌÁxrÎIßÃ3Ð5wÙîî ¨)óHPÍ«1 ÉÆOÐoðzJâG“ðôƒxÓfPŸ˜²Ãíçû{>€û1Tê|Œ“º&ÏŸŽÇ–;3}µ„)ÿ ‰æ7õB&ˆV ¸{+ÉâöË”&šÜ*•E¼çVÊh~®‡P0¼ŽãÜÁ|’üÄî‚æÔpoqº<—ÿO>sƒCÝoŸsq'Ò´Ë\¾?»q)¨ÔåáïÅzJêª]§†z7ÿôlXæÙЦ#C<¶½Ã>\ÞÎNsê1ÿâšâŸÿÀÿ7×nÿ럀ŔRÎñ]Ný“/çãÜKþ§æ£ѪºhzËGýö\šÈ"ÇM$îwtEK5æ¼Ð®d~r—éï'ŸÚÄ?üóþ°|Úv)íÏI¿bÒC)}:³ýÐì‡ÞÒ‘¾ÃT?,ÎôÃßa¢{Û/vž?éVßê`«RM“öà4LIXiµðª±/Þî*ï¸Ø»Ûw¥ ¬*zøÃ ÁÂwQ"5Žf~’öhj$‘?É,RÉÚšìO´á'ÍsÔz“žVy£yÞ]öô‡î~‰A‹X¬ Ÿ.ÂÉÏØC t4Y,³;«jvë˜Îч¬?›M®´¹ôˆ/Ž ð¸ÿó¡@M•о6FÈ™‘\«/³´sÜôZ­0¸+PEþºYY–Û_;ëñN¦høT ¦¦r*{Ÿ{…V,1++ÍçÞ£¸\žösæŽõ2ÿÇùkâ7F±?lÿ¸‹­{y¼·¯Öõ(BQg2É\b–öG6V»=ß<‹/pâ#f÷ǰфy‰ÆÖñª›ª+Ë9\ô¾:ˆðœ,m²vˆ&ÔçlÝágƒíÜ+1/^T²³è¡ÄdWn^¼è_\±sž.zñân|[éó/‹xާ|©%A0$ 2´âºœ»c {v*B~1FµÐ˜ªòü^û“P"¤t`Vt0(Ôž9—îíÇoº„¾ÞŽg)¸ï§ R"‰]iÿÎ|ré+^`Ù“![ˆ‘!>IÛãÁ€dr¾à½@³t5dTžr5®pÆš‰VÎK6e{ÁfßMÂ)ðùöÙCì‘ïü$×9~…ÈÊŽïôûxÀËSxØds‚`%¼Tè´- “ @«ø!›ˆóT®÷€iðyðÓq/h@ß]¦â²‰¤å$^ŒÏNµTãIšu,òç…Q">ºŠæþ%/‡Dš¾¢ËYû”TLmïƒ\4 ÷Û~òå Ó3°îáø[I¦‡õ’xM!lä—]3œÍVÜ›¼¯‘*»= ËÎs¢¾l†ŽßK¼âUg- ‹+Ü?›L?9õѨúï=<öB¼ÆœðÚ6™LÉ)Á-ä0˜ó›ƒ(jsú`b:yзPÀξMÚ}™.È&=[QÞŸ¦ÿ_àØ¦ìž‘î{µ=—lz¼ï¾ÃÐnÐ>†.· V­© iý‡»/v`‹³»´ Ó…¼áðôƒAÙé›p6 †í|Õá ™«Gÿ¿½wïkãÆ‡ÿ|>øU(ŽÛlL.M`Ý–Iø– ¤ÍnœšÁÌll3cChÂ{ÿ‹¤‘æb<†´ût›O‹g4ºIGç‹”æ©apÒñutl,ÞDైl4}òÆä?࣠»C³Dt§î(~èÆe—²±#MÝÓ‚´àî4V+«¿5Vª$ì'U¢y`'¹ƒJÀØC ÂR©”‘7V1‘ÁúLw“°ò„1?–GVÃ,ƒ—Zbé¶Ä#“[œz[;bP´î§†Ú$„Éq®NU¤YP¶EfX 8ñ ¥óIÅÛ<Úvé†àæw:lE´š¬ïsÓ .‚ꊀòL=ó·ouèSŸñUP‘-Wœ¯§Õr!àÌSÕñ¦›EU”¶V$¶–Óv:M±ý¿IT¸wLOlßA±=;E±};’b;•¦ØÎETlÇÐû¶MVlÿµéŠí™ Î]ú+QÛ ‘¾ÈÒöß_„ŠØþVdÄv>:Âý¦„O+KJ¨>¯©dbŒS(Šm›¤ØNÒÛ·#*ÈíÖ¦)2¿É¡~J‰,‚ƒó´Ãq·ó§9Q¶Üö½Ó„«À÷x+`§õ}‡d¡ßΩ¬¤ú‹ùñü-Û.­êc.•כǵÏB†ÜÌÐEB×íôÑ+ÞÀ,.H×r¸Jî\4ÍŒe3Àh”«Œ ¾â‚c*¤Ýíœnbþn§Áž[Z,Xö¢3€tçhS¬ÖVj«B­É$Hñè©Ú·)v÷Ï(y[A—’C±xŸ—pŸ /Crbľ;¤!G^1¼po&ØFdÝÏÕ 7¯±UªÖ¾ Š¢>&0”ÆZ03•²(‹båóÊË—ä§žVW0h ÔäÚ9ÚÝÿuû°Ò©ŠJÙ ®)ðŽfü·òïe#ûñþÛƒ™Ý(ú£(o”Þªà˲€Šªb k¨ê[¹d{-¾«d´ë•uò*X)ÿ'-[ÈfŒb–aо”¯#`?ùJùíÝþ!º7D¯Œ•ŠK­Ü«œU)¨ZåžLÁ„j ûkŸ¬Ì”U<ŽâÙ¼úCïáê"N+Ð ä@·.f­.)ÐáKµ°ýÉhÄ_Ñ?œg²K4«³:¨U6Ý›÷ 'ËbM0[Ó«yQôþ¢¦žR<Ô´ÔµœzºÎ Õýuávt•1ž Â*–#éâ?ו©ÅCج•}$EKÏ’ñØü¾PǯÆ"Œð*¬ËWŒVM÷¤§®ºŸfˆ‘¿²È9,ùß@Îá Ðp _ê±™©*%¶ £J?ªãF¾Tí«;'î°™Ä}¼âîö›{2}ó¨S6f¹ióï¼Ùnÿºƒ¼Ù¿ŽÚø–¾…Hõ…¼,>©=Zzêi5ÔÊuÀ‘¡lßëŒ)¶º”•If¦ÝX5ôŒÞsñQÑašÆ5iU æçSÉh£Š:D>/t}žô‹_S«Í“hÜ€JºcE¨B¦1 œó“‚ZZ¬|.s'ÖO‰ª€¦Y·)?Êå¶¥¶B犈;š°Vñs«+Ù"ýqr¾’KƒÜ%)“§Ž¨ÉC½§– Ýæ7îžú~¿v®ô¼Ðq÷€4ˆ7Ÿßä zá›yZ,Ü>ÿó¢ óŸE0ò°~ˆçàðAøÑþ"ŠR[?¡<–ùRZ+Æ*aÒ)µb%O«™¾ÍUõìÕ®äè+º3Ϩ“<ÏÕS* t[c†š9:ÛnÓRÃâmqð\[ö-£­©efž¨œ‹/¢ý—I¸&€¿ãç1º=×cEÈ ÈyO£F¥aºSOf<}Ï“÷ŸÌÙy?}p7·Õ}_Á à´.²S³JÀöC¥§S¿{…WGD<(3[D#eŠÍ2ÙÎÙû ZÁ†xˆSûÖ#€¥~:.ý¡²ÖÔLžÊÖÆñ îp2€ ü=YESFè«D±(Sò$7ƒ.âp±ã°¶€$¶$zŠt6>¬KÑá‹GÏ+/ÄFmåIíÉñ~Ë툕ÇbueåчZ’¼Ä†ï©ÃõÕp‡_ á„zGçõS!=z¿ÜÌ«§¸6’—sê©‘8eil’z¬#N'tSç a°Ëoß™A殟LÎÇãÑZ½Þëtj½á¤æ½ú ¯Ë#¬Ò ëåÆj}öVV­<ªqÌ­ëÁ¨¡®É :çÞ…[ÇuèÚ2’’hÂEµ>Yn4¨Ö•ÆÓFZ­éSðI®‡õ´‹#üüàÓzŠ„ÔøG' ’…ÂX5XÁצø”ž|/ñ`HZØp\»np¥$g]v}¸Ùajn ‡3ð~wÐV(LÙ´’Ò¯ÜsÄCqïÿtðOÿ¸øç ÿôðÏ9þñðϽÿàßô˜œúŸøgˆ|ü3Â?ŸèéSuZ¨ö[È‘™@™&L–9þ+˜ÝÙö(ÛS$Ù¦˜IÐgÐÉ´B‹ŠúƯm•”F%“F–f™˜ueaFãÊö‹ý}Ó´’(3å<Æ›ø'ªùèx ën¿Nç’<»ã »$õéÅiØE“9²Ü>R Iö„ÄÞ Aà ™‚)A0ôá÷¬3c‘³!)áêî‹^0ª›¬RT;Ô¡TüQ{ã¨ëૺøÅ.Ì7ºì"»åõ†Ž¬B]Ü £5™1þI抱uÈó^]?`È÷Žœ8|æöñÉ4¾ãM—ü4øØu/äó0*A±i_éw>ºc›É”áÛ™É^è7)”¡Çñìuõ"¡(k˜ÐøðIu?3DÇn0è8|Y×øwÙqÅ£b%r*&F{ƒ¶ð 9Ø?ìnÿVì-›*hàM¼!˜‘¯7Šc‡Omú„ø¯XXHåò¤u c‡µñÚûMû5~0Ådr½þé’äOA}i Ïk`Ž}y³ÿvïq•bt•²f íõýÓ`™²Â¸TŒ˜JœÿÇŠÍ;þW»û/Ì¡ãÍÀí{/6÷ßlSÑ$~—¡ÈfaÿÅÿ νÈà2Nì¢9@ÈìÍ¢.Ë,¡VøH_ÛŸ&îÄÍ?FÑ´µMŸæ˜«ìm–ç?ßn¿ÝžsލlÊ$%¸=÷s~àÉbqÀQò@Ó忨áö«íwÀ²Ç„û#q;z$ø½­“¶>'»+1¢Ãé3DN™¡…ì}­"ŠÎ±•’%ÌÝ4½)ö“«­x‘4s¶e—˜½)TÈ×T¬„È¥ÒÂ|2ã ÎÜÑÕ Âa™+)}ìÑB6™ipaaá.dÀišLq|AõtFKðÿê:¥`Ç+ð†IÀ€.D¬ç¸õ)P2ùÐÔïßÒ¡Ï|üiJ/ÌiFZ0 "K͇#BÖDûe£½¹ð¯4ÌÅQVÖ èï­öF»-=M¥7±Kù§ï—DöÿÿíœÄþ˜=”h6s7%sþwï«–\l‡¥æžº×RJ̺ëÚíowvwörï¿Á7è>ÉOîQ¡8±‰sz²Ô¼„Þ›­'™7/~zv†OLÈÁME/ñìÓ± dñ ÷ŸˆS2ÔSÌ4’\³€@Þ<~'ÏÖù Ç^9CÄr7ª("Z™xD}¿ mã[# Ù™©¨ÁÈ3!è| 4°&w³–áßÈOà$íí§ñ|2˜"Ô Å ‚A·ñtqçNƒV¿©2É_Z7ó„){ ÄæöH-–}F J÷óµbåO0gÓ§àðÍ,÷ä,éa–¼õ\pe9¥¼Ssp²ñ³òÌT.׬¤É91G¯7ÉiÑ©“•ºõ”`Uù&„0æì0ŠeŸq2°T®©HHŠ/nœ‰'ÕvêdèÙ󕽋)YÍ=%«ù`µ:×”¬æ’Õ¦„cœPL4!^^\>M>/VÓäŠ/÷ÞÞCßQàÉ.ñëáÎqš”xmŽ¡Í°ã?ª­^<ù#Ûe((ëk¥1¾¼ìѶr¹{J^°zÞ…;Œ|ËK_ø{»{šŒÃI‹¿Ð,é¬ëlRúÝza¤kêˆöÐF^•Mz^7oŠoÝÞ0QrÆv1ÊÍËím¿}µ³eÓ#’èËëiØ]î¹c4ž^È׿|3ƒ9*²ž†nPUÆ„äs‚^Äj"ŒyÚúƒuwÈì?ÄÒ¤™’‘¨®œH¿YL´’€?Ò}*W³ah±D©+4¾'jk{s·½p¼qøŠT.t57¥õ1ôGèW#‰Aå}å€õ†ÝtÀò‡o XjåìÎÞÖXà1jShÕ§o \ÙÎÞÃm@4wàBÁŸK´Ñqñú‰kwú>ÇÅ»,—¸zçöæ¸|×ç¾~ß>Zº7hŽI­gÜFþÐÖ ãOmý)Z?jä?¤-Ÿ´²sj”¾Ý<¦]·¿gœ¹[‚ö.Ý2E•súÔ_Í9zìÁéGþu wÄØEî¶6v·Û›˜rA²"è.ËjÝ‘ÛyÕ ™QÅ¥dö Vˆ|`w2\­çõ̘#c2zÐþ2ºøÙ쌕K¯¨‡ìâË)–'úF õ]ƒ^úf ]ŒÙà¢Ëö Ö ÐIÌÕ¤§Qà^À“dÎ/aуýÍÍ)ñõˆù^ˆœüe° ¨J_cÒôIBÖ*!èýøì©ø*>?{Ú~úF£ÿ}ú¸ª§&@;LAI"9'5ù›ˆ”þ…¢ú¤ë•–=©ËU?3;ª ÁVV@qà#Ñ BEGBÕ6f¡.Ñ MŠ U Ó!A†ˆ0xß[3Ú14Æ@¡GrgÆ"fÈj:=a DZh_üëx»½1ûÛ®îLú’uÉÈK?0bÒ<î‰JWº‹3:ûàЩ;¯ÚÛ{[;{‘3jãóîÎñ1 ™>صd”¶Jé|ê÷&¡ô±#ý“ÛØäNnBï#’@/óë€'.1ˆ><í }f}÷1íÐÀ·œ¹,§$)³fù^Óè(‚‘,\ G¬ö—D a»ùñnDí·ÞØWÌ¿¿(Õj{·í•w:Æ‚©¸µ^mIù}'ðÂê7Ù÷Q|èéû:ÖS8ô—¨Çÿ­›°ýíwá482ô÷ûflSÂÂá’ÒŸ¨Ú/9âPÜǤ7Á€§WPq„3qâ,ðè—ÒSÀž;ZKṌ‰ºuŽ絃÷D“λ/qaõñó%üýþéü}ºýø1ý>Úà÷'ð÷ûçô‹FâuzžUçÓç7±Ì“ÇO¸®'O7eÝÜÆsÙÆ6µÁubmxýO5Š Ål¨Š/T©\¶zÞñ0jÚû€å¯­~¹§®×‰wìÙó-Ìö£mú}öä9ý>²I{ö|ó1¿?k¤ VVƒàæê&ApóûgOde¹2ªÞ·WñwãýÚ£å*Ó‡5GㆠCêÜ™ï'ÜzÊŠ °B. Hb¶iw£ÈY)Àà$w¸[ëèê(u£F!h "Zda˜“fWmìzÇÇ}w›š¹¡ a7¿7š+&pÁÂB*b[°¸û…±¸)JƒtF/H¨ï}tû´ùÏÑÈ.QÀºËs_`3á©-(V{ÁæWX÷ôVñî\›ÏpÅ*ûl@g/]Ñ÷Æã>J2ŒCêG!^"ö{í§^è]Ð5Â+ç+`|Ѭ›º;ýu&}O«{Z•¯i9˵˜¨ÇIUïå«Ú,µ”â ÆòYã7=°KÆI™yŠJuð?;ÞK´üæUú°¶YªÊG,ûµï-¢C[]\àQ+ï$ï+~>Ÿ¯$•¿µP·@7©à=:IËRoB66¥êíÞÎ/Û‡G»ä‡$ÅÜÏ®uQ¶ãÄâ$Ê/÷Ä…B@p N>ÆÈH]3¢eéÒæÒ$wîöGV˜DÒ2SFƒè¼CB%?Ú8—~ð1N@aµ{l¼>›Šþ  ¸ŠÝúúàùêã'–WâE­ÑÀÿV}¿ò¼öê` cªvП,¬Ì¨Àz‹äLH! Ðï3;uˆÅ Ñ޿׊Z5wqµ*~hŠ•ÖË5ê?J='$ü„Ίádp $ù³§+OWW=zú¸6‡n6ãý³³öxŠ ÖÊ—%såq´)ÏÜÁ›µH€ºO%C¦oà$ 7j°ZÕ‚~³E‰3Ô…ñ¦â‡#ÉÒeMv@7ÄųËÃeÄX^­’-^vËkY!™™Wׯ æÎùþ{˜#Ø.þXHx (d’['¸½^­ï÷Ê$¢¥Ø¬]wŒÎð­=#]UG¯“¥(ÃÞÚ³”ŠãYXn–;Œ£Ãk{ÿåËöqZƒÑµ†²|¥ èš"¢b0;`Oq,*ïêr{•å.E)}¢ºàÜÎD·vw²¼½Î§i‹±¡WÁZÌÞ? È™÷ j·Ù³ð )žs–öJ{è‘ØñÌÊÌNiÛ dîæªGK[¬n†”ÈšEXÊiÊÔ#" ¹Ã@œ®ëø‚©Ó=¡r®ä`¦|éKHP2û_@ÞÛ¥+íeæM d–š9¶h³t\ßlìîîof*¸N/µ’BèMñÞÃ;yvC€DËF²krÁ£~[£›d˜WÇíµq¥sµ¤Xl[gEÔ©¥ÿKì£ãÃíÃÃýÃöaº-vÜ“EÔÃÙ\Y¤‹Ö¢‘žáÌb*,f·+V£K1vš_M!ê›Dx!óÔ‹3h)d–z€E¥Ú˜»=šËš$¢ÕÒ+E š"N[ I:÷—p˜­ÉÙûÆÊ -(å3tjÑèbeåHgKŠÜ…çj”{q„ÞGfÈ­Ž»ž©Ÿï4ÂMÆ4$ÅóIõ# ]Ü7‡êYº»ûÍs߬|êŽ/]C¸^…c bXA\0ê>](­ó†N§<8aëŠHFª«Q„24ôÂÝ?"³u@?âíÞÎ;ñ¸¶‚+¹Ï\5t Ö‘Ûóƒ+ZõøÁ¶Ð¹ü¸9êž¹›‰Ï†n!›»®dzid¸Ë5™8jÚ á¹?éwEèöhU Ÿe8 †ÒWwz;uë(Ù7/xs±ÃÒ¶÷Õm÷”& ½ÐéÎQù|·Tá,ÛäÏ”úÝšðK på—š9“ôKä¾9´:9Û›¯7Û陦«VŽ’š•*)YÖ(]GqV+3*ž°-Kzx€”søxàb /˜<ŸUnnO/÷ÎàÕc´6ÅÃþ¶ßŽÈÁt2ÁcÏFAÌ¡àŠ GA²|þxƒ˜ÃÌ:•.¤åBê?R¤µÚ¤bü…”~q%'n×ëÁþýyrÞ8ÃaM^‡É‡Vx¥Š‘/ïìJ*€tÙ„‘á¯!•ˆ4íT²s±$v*pâ…±ŸÙQU Û‘ÖÞ¶¿K<Ñÿ¤3ðzŽ.ÂÞÇ×AØõÃîz£‘º_oÿF¯ë.òÃÚ Eô½ëÒuXé™Ö,§p<9•dN¹º'ãÎT§fÇ%dä'éE$óëÆáÞÎÞ+5oÓÆj5nhüŽ3 领€(¿öà•~×pÇMà Û˨J.2ÖOé+ââàæ‹ÈùâFì|ñç ç‹oˆŸ)V²3üHÁå;‹í`à±äù$·4—Û:²—ŽÇf-Fœ?I˜‚jIei{èÅþP„þvëÈ :jÏ.!Ó2칤>†ìY¸À._çv€Ø@Ư^BÜrNЛ ÐL p{Ô„d\0 ü‘Ó6–²Óùˆå±2h £ˆ ¾'V÷¾Èò!4 çÔ'ŽÕ“f÷`ž–:®* ½Oꦢ×éˆåý**Ä—Ç¢ø£’Ø,. gᄜÂ9XrÏáYs\ž#?ït»*ÓAöÑ„ˆ`™,s¾u Ó÷OO]Œ9,!Çí²vœáúCNTȨþ$Äÿ 4mÙT›Ö+©jp«0‰´öÒòàw!3ê«t("ÛcÂfp÷B彡 ë±àä6¹«ÄÒJþ»Â_àØWY…ñeh…)öbUan“û’Uù~­«°›¢¥MõÜ1t«¢K_ÞØ­,7–D±¸$VìZyˆQÅ×è!%î0ŒGÉKK7 cA“Å޹œ„EÁÆ¢WcÍóÍh`Q8CŸ„’cµ²x7q%z™Àv€%5iå{ê¬âB€æCØ\ã‘=o2µa7j+8\>»âª‘?LH6C1}qï…> Ì@b\éæžã F~µ¸Ø·Ç\;oaÀõ“Þ9 wU£öx¥ö…6ŽÒéV•<®5à \ª¹8*ñ ·ý) ç õ¬6P±¢w¥û Bª–ÀÅ2¸q4Ø rZ±Àc` ¤b`RuÀn>Mª*°É‡y‹Êj:¢…‘O"·+ìÛO[„+ÞÕ«j”-d‡ö=D„ ÄdvT{ “Á¨jVj»È7X (ô‹bŽÓ"U›ÌØ"KbÔ°_Wí×G櫪à±ç‰ýúÔ~ý>±#1޽?¼ @Ž ,-áX«A\}ïNbZü—^Ô@¨Åsí°CÍfèª>w‚î%ÓsK¬4íY|2#¸àæ¡u€áëWÁ«Ñã£èñqaA??‰’ŸFßW-tÕàýMãÕ¡$[ù(Ù9Üy'Õ˜x7£®>.ŸÐE»”±šO5^Ò­f\zÕŽìNàÆ~@VygÆi GnzÇÈ£j9uϵ`b|Åu)œó¯HZV¡±šÊaJ%€.Ý~?íÀæIÓhÜõ'zeR·"À3ˆ¨—ËЯpþjaÉHúšÎ%‰ñÂCgò*’Îr1 þHP³@¹‚Kåç¦úøœP|‘ñ˜`Ea‚~eÎàBó$±)S470¢¥"§>¸ \v ΂ògŽ×‡œ’J3þÁ)eÙZUÖ‹†»«ƒÚªëzb~§3 ~ŒÊÉ=~/ÚV±:bk#µ’3l=ù% cðC&žÛ0à1ö)Édš9þ,¸1¢i¥˜®…2Ìø·ÑAÙ“ó“ª2N˜ ó[^eÿ ü²q4 fHŸ¶¢”³ëé:ÄØ:÷Åž;~q´%Å£gŸ=[@­?WUÕÎh®ŽŒ‘ÃÂë?§C’R0o Æ2Ærdº“ð啾Uà§ZtjÆf™ÜŒí¢¡“¥†–­T¦Ë¡V–R$îbv:XÜ ¦ï„ À ¼³Âaûðp@9FoçÎ7ð3 ûC{ì2-뀒%f…ÀËWÛÇ»I#•›À å€C¢@NP θsƒ…L̆*334öÞlo¾žÜTx$Jäp¡›X*5 $ºÔÌ09Ø8<ÚžoÈÆò@%Y$X`•uݾ7°Á¢S3À•š,°o¶¶wwÞÌÕX¾ñ"¹Áâ/@Á´lP‰ÙÞûe>p@Cù€aÈ ä¢° Äl`p™ÐÀç6•±ùâ…§}gø13ƒãÉ2³dçèÅîÆ^w6 ²©I–È~眼_ÙÑ© ‰JÍ “ÝÍ×ì+?PTc9 ’R$7X~7LË •È7û)ö¬³€Ê »@nPø—Ã(0-T"(öçÐå†òÂ.“±7pã{E&fC•™owÞlϵQ¸©<ðH”ÈÁÇ.Þ¤ÙQ‰ÑefÈ›Ÿ·Ž·ß¤è‘ÞÙT³ D‰¼ ÓNH˜ Gs$Ì x‰| Sˆ±p*1æ$ÆŽæ%ÆÂ¼ÄX¢@nPô2rãBóC6P¢²9 óêpÿíÁvš¸pð¨&óÁ(¥Tn@œ0Lƒ“JÏ“.™JGGsI6˜FÉBùAø½¡3p“0R¦I—Í¥ÃýW{oæ!ô&sÂ)Y*' Î?MüqH21 @ªÌÌÀyýÏ·ûiÅo 7•+†{¼DN€Ä%ÿ<äát¹ëÉ~Löæ–»ªÆò@%Y$'XÆÎøâ,FÚ©ÄLCSYff˜oÿòrÒN6•"‰yt'£8<(-Ûî–JÌí·óP1ÜP.XÄ ä©¦"ßd†œ d:5H¨±|@‰É –~ljŸÑ21(\&Lv77æ:š¹©|‰•˜ £«€@â4€`™\9ø×¼]åˆU"7@~7~øÊÄl€p™y³¿5×áËMåH¬Dn€„n©bZ68¨DhmωT¡¡|°° äÅØG¿#1XPb60¸LhïïîÎl*êS}r=€ÆM‡Ô²wDrÉñ6t¥Ã©ä‰ÚÞ¤ë/HŸAmp(R¬Æ?6…O'^ì ÉpŒ`âÃÈj,jú’ƒŒÑÂúWÚ;[ÜZJzä(n•ÉuŽg Å/‡ì™ñ=ÓŽY*fÂ" P³eUhèŽQTF™ì*J ißwÚ6‹C4X ÜO/p»°®#g22Çr_–¦Dšñ¢N¤Æ–º.°.r7ÓúK¶Ú·µRI9Èï%§E}MªusofÞvèöÙKÚjêöˆ´ŽzbWðfÊç­¼kš=Èr¯ÏC(D®´7Elµ¡/(™‡05¬Bªó¡Ôž;FåÉÓ+DâþXîÃþ ø4½P2E?›ð¹m•š?°™Xg¥ª½m ™¿ÑìLhÖžÐLl›Ì6«óˆ°XêIZ°¤gË+$ ßMA2)Ëî6(&u$¨&3¯å×H…Ùçµ€‘îíFÑ¡†ÍÄ@…¡ëv±]4Åõ†g>NMêÆ}!!nì»Ã¸?$3Ù´·âMŠ©'cõ’ÞÃ`8Y•ŒFç üx´¿ùóîö^2öã @`»:µ(ècÛø (˜îi†Ò~záyv|øv󸽱µu¸³÷r®áyçԑÔáçœo *ÐñqÝNŸîxË·ƒÍÎÞS‚Ï\°Á¥‡ÀÞ¤Â'–ᆑÝúíà„{á„»¬Â±8=w:¼¢L·†Ù¬h$«w·£ãýÃW‰p¾1ó3Àˆ÷q׋žãé a çÿaÿf‘ÉÄ™%Ý'ÚÞÏJñl–§À…©ZÀªH>Mà”Rq1 õ £¹Ã ¢‚K>HÅ-«ü{ÒÕ¤+ÈM™p™eÖÉ–Ùó˜I$J¤N2L%*ª¥L²ÔéSªlÏ.’ö̦ïgÞì{9§‚a²D|zcÓyÚñGWâôw7ðÅÀÀ–ÅŸ¤Á#ùÔpÿ‡§Ø0¦ù˜àe:îÃ/Bæø†Y é)Y»"¶-džY·…ÌžO÷-×Msܼ(³^`jPFÊÆ'¬=Wœ¨ìcܼ½·õêU3KNn oèëè2êÓ< eÿ0ü:'R4i k}ócn0LUµý&€0uSA!1Þè’ä¢iÏr%ðmÒPôW&x]!ËñÇî)-WI“Ð e¢Êã;úy ä+”nþF  ª˜†@ežY¨Ìž&Kä´9‡mäÆmŽUj–ͱ.•ØF……Œkç½›ûo6ŽÛ/Snà§ÒÔã<7ïvn+ìMJ ›8XðÚ¾³8–i Q%²2íNËæ\¢@â^ý¾xí »}Wl‘ ñ=zë%g˜bä÷û•ªæõ½ñ•JäÀÆ¿ Pbyoÿ.]éwYå®ïXFDrù¾Äký>ù‰ó'À°”²eo0ê»xqAîƒj…û…ÑÇžF»˜©}nàµÈ=×-¢fldôš2&ñ‘t_ÒuMÅIÙ®ìÍ z½gœ,˜K¼Kä•\’f¶Ýÿ Ù»¬HY¿òTPÇæÀpÙÃSÞw”2é#Y‰}l¤WÁw^7×"–ý”0á©mMÇŽ£„FãhŠ:ã(M—0}þkj¨_¡0Â"nW eÈ)·Õ7–M^ZK@qÆ\A¥îàîY dH ò`w·ýšb¼G"i‰v9•åÕœÁs§4p¶Y8á†W]!S%ÛoÞBMmY€¤Éźî`ÒGÿ´Å‚0»s7ááErZÌûá´Ïùï…Ó2ßo²/‰›Ýô,´Œý”–­ "ôÎÄ 2Ä|6ZXX+,å ¬Ù%QÈF7Ñz©ÚÉS)á|Zɱì7ÈÖzÌÔÎlßzÁÅkÿ%E}·3þæs nfú0$ä~W(1Ûï —IÊó‡T3(õ£BARS¥N9f¬ajY¶*?ó)3Ý'å òk=>ÇØkÐ5À~Ð|í.ô–Ò¨~WãÏ©vÆð}&|ŒØ¾Y9î"¶ß­]Éš=šæK6ž/3À˜™ñ¦Øb¯¶^´ÙßIñœ¢ðsloöÂ@ö)·äÀf‘ÅçYÛvÃ%ô-5ekG™b4ÏP1™^Õ-¯»7Ž_µ_¶¥c¥4c½–"ç˜ ¢ïFpÈLw®ê®ÀÑÙïž? ëÆWA}ø{Ì¿ 8Î9çXÃÖVûåV6 ˜S7FtÖ½AžòX„â]°ý µ–“+ŠRÓ–}Ðö)‹J–N®*þ¾¬øÏm²‚ìò7Ïh;³Ýèõê)rMë I†þËŒæ¬R¦€­\©ÞV‰=‡LKÈÍÅèK™Äq ²¼£ï¾L¡ ÕbÏß¡ï§p/¾Z}œX&Åɾ?ìÑ›RžGd¸ÈS0(ád4òe¶ïúýiÛ9»µ¿:ΰÍY©·ø?I[rD¥»Ë×………7î dh ‚®⑬¤;ï ®.t–ÄãÕçŸ?ýþÑÊÊîn•²©°-pVw#™;ÊV¬R6X/y–@‰»Þ5 ©3ƒŒ¥ÉÞñù/ˆž-»RÊèÑÄÌØÝÝNú4ÇFúÛGâ†Iß1‰-“²gâ›æSúž™qÓ̱k¾Á¶ÉÜ7ð)ã$b÷Wí¦Fz·ý· ˧o9{Çe™áËp2»ûòOšœü†û¸ÿA'# ÿy]H.”/5¼± Çΰë]ŽkÔ÷œá4G3”¶ðß´Ž»m] ©„? ç¥ <+©ï&ÒP i$¼ìúØL…ââÙ`¼$`°„&5Ž|„ò ÀÈ–#~(ãŠ3ZPqE¡Sa¼øˆ>.A™*Fä|,~+bM`4¿ë‚“e7Šø·HßsâÏ;Çž)Ól’=ÑîÉ¡‹È¢}ªÆð7ñH¢>ì²×kc˜½íäÍñÆùèâSQŠð#ëêýã-%] p®ÓƒÁŠðÜí÷÷㈙T$”¶Û8oç•[š¨I… ®B_Æå@”½Š]aÔR £ »‡"­/]X¢fÜ`HÖß:« —DèºQZZ¡R•X^æÄeV„Jv0’1L …¤=›ô±;ÜVÆä0–ÞX9G õˆ®ü «~A5—€ÝÐÂý£ëÂVÆ/ç rÒÕ)†³ìB ÞµºîËŽÕ8Ú"‡Š9W0ñØR?e¼U†<úŒjí¡â™‡-â÷ååÀ%ü«ÆåªÇÎ-žðçá˜óý²B·‚&ÐA2ªrHW»Ïý]ù%k¬õ}‡‚éŽÕÜ/I8-RÑEÕÕ¯ªq(‚¬KÖùPÇœ^þ%Awú7¬iìD‹Ê52\ø`É` dnUAcàÁ’@>˜5÷ÑDHáä¨Â%¨GÆâý8ô/±†¡O‘×ÀŸ— ]-BÒuYH}# –h¹gg^ÇCéÔsä/Q=8”^†‹Õ¾Ø8zÝÞ8|õ |¦ç£ý·‡›ÛU†¹¬®i!`YŸ×y«÷xÕ›ì,ë1a. s2±“'¨*9·Yåu¡³ž¤Í²ÎÛzÂï@¡2Å&K΋ñ8–«‘½Óírz¸'üezÕu„“Ópì'Œà€i E þqTúVkInœ®þ&¿Ôd rÅ· Ű^®—±p¹\ï­£ü·ìƒ6¹´þp2ø@ë1žÖ‚mYkøPoµM¨hµ\e3Ñô$ÆÏÃ‹Æ¡Š•Ó O|°´óŽ€Ñõ NLbƒ(Ö›¥¯M³[zÞ净ò UzÁZËœ±þ[tDÔO‘Fæt8÷ú®ÜébÍxfò[“ðÂåý—ëj©. ø/­ÆCÿ5Rî¸4¿~êªVÝ@¢¬À‹Å›­ÕkYb ”%‹E{ɬ®wv†œÙiÙ""‚å‡z×½¨'€¾qÕ*w]y¤Ò­.í* §Vh¶qUÌtífê:“Qס£{k5Ž«¦—xº~-» z}é`:0<æóÔ1k•L A+Â&ê¾$BQ& é!cµ8íÇ5Œ6)Äà‚ sU½U{©$<ˆrÅ¿ÙÃ0Q!í·›jÇm°` jr$&ô€fž:¢ÕdL†xÚÓ¡1óL檀'ºjð6j´"ddûg[ìíïm,'‘s©ÝÔæ$ 5vÑnH}á~áóÙíȯ5]§‘hUl¤7Ë¥/üt].¶¶_5—·H.²¹¿÷rçUû51À<K6éy¬ßÞ6• ¢‡ gM³BHu˜ÒÚ_ÃÆñ@ö†ÖkÔÄ!“ØH¡ï¦a§ ¥·ä*®¸N÷ êr»ßw»5V²bæ¡ tP«ô¶U«×êëðXóKuùpúx,sfÏÔr”bRŠÞ¸®â õiµ&w„BÍÖÎ!ð¿"ò™`Öf›Œ}œ€šZc%ÊIUÀ?E@#Þ”ôÓŠ~p…90:ŠóCf¯C~¯\vˆUcýL`õ)À{WD3<ÚÙß“ä ÉŠ´6€ìÕ,JÏ> ^öÞîîn¾Ùj®$¶ü¸¶*.Üq* pþ î? ÷¨ïiYY^úÒxX,ýT¼–ùÜëœS sËäYÖš»MB§ç6ÜòB:ðxQÂJ$I ž¾´ñrO”uåfËD®ŽýÑXìí·_íî¿h½}qtlÉÙ‰ÕË>ò)zÌ»²8òCï3ðNkLS^A‰š¤Ð_µìŒµJ‘Éi– eµ²(¡€`ò†c¶ ¤Ûp‰8!JÀŽü>°”¡ø^Ô'aP?õ†u)§+H<Ñ$†äøWÖ-*uÓoîº -Ÿ3ÀŽøˆ2*o(["'ŸµH’b¸ŸÀàz’`Óâ82QP{é„c©Xô1¤q `FñÕïáy-Ú袖8i¹/JÆ)J5 Ü$Lb¼;¡ˆåM:ÕNÈ’äz-ZkJ“üz*ÊQz{}Ò'·½´>ß…·j+h ÓšÅ/åBŒáv+´'Ó:U€Hà?Õ¦½{¸?ÆgËë¯lïÔï^5Ë$HÔ\,5X P,[e ñ¼e“O©ö^€ÀiX,¾Sìx¼b£ˆ¤÷ ×,5”@D 9‚ž-…*Ên"?¡Z‚Lv[2°XçI<_m‘3è®XbýœU=Ò•cXD]¡zC%x€ê1Ƈ)ì‡åŽa]A™T†rA1=vU²"½¬b•ØU Bdq-¹BÀ+€þ%ʯtÛZ3®ð¾l¿nmlnïÊãé‰ô*²óÐéSÁ4X€.×ñOy]¼¤¤þ]ܽµÄɆ›ú Ĩa-W _¿Ê)Šu«¼Ž°»Vfä;/àï¯.ù<$ùZÀÄç1t/KdC ¤Œºý+–=ÃÑépþsâ*óB–åD—Aæ $ÅðºÀÅþ€¯O¥ÌÙ9Elp^„AEe”Ü?úg,ÂEÅA°¿$„Ü.ç?„-ë|Äêt/øÔãHpjð” ‚Ç@J™ä±æ ®„pïw¨—<Æ*üK˜>䲡:E“@‡.‘$ÜutŸÆW#hEñiâtQô×QàÉ…´(RkŽw}³]…D(T¾EFÿ(º’'Ksu]7òl€s¦±šÆÑ², ë)[ð¯àMê—Hÿ ÔxØl•pO^k®ö†¨¬Ðe€Fö G‹ (óÆá«Z­–:Û¸äÜöä@PÞ‹°ÂV&|žûLAA¡¼“£œ/Ò’4TÔëáÖ—gfŸ§ÞžxšôP)S eä ’{rŒð¡ºÁ$$Å¥Ì"Ò¥J¥ZeÅà7ÍÙbW ðÐÿCø²5ÅŒSC€2̓hbe% Ϋi³“QF²Ï¥Ÿ¢›I@…xž4N†u°v•r€o.·*N«ZN9ñ Š8/¾ãFVà_‹›]9†b$Úx·"I7%VÌMücŒ€ÒXì,]€Tô¿¼,ê©$‡jÝÊÉú,R©ÍvU¶¦z0Ú×ßì>HNäþèNŒ¦5×£LöÑl\ÖД¿FÓêKÔ2’|f­ˆœ0Ï% /h’’âu¼á¯Àÿ[Õúb©,Z_Q#C¼S™Þµ*õz«šñ'ÒkæúÔ­áé-[“¨ÖPÿ fÚn¸-׿àe1ª †?ŸküSÿí–ÿ±/³æ­Â§f ë£V_ŸÊ'ˆr6Xe˜n é xÈcó˜àΨýCgØC¢Ø!Ž>úHÂfÙ9íÀÒ;÷þó±?ú£OA8ž\\~¾ú½,³îno5Ë/6·¶_¾z½ó?ï¾ÙÛ?øçáÑñÛ_~}÷¯묲֒ÕHɪGfíz=o í¯4V=~òôûgÏU%¤n¢ªØµªàB…ÂöæëýöfSÐïžü=–Üý‰’~–BzüWX’‘£üùªÕ)ŸHýØ0û²šòBy}}á¾|eÅ>r‚¢˜Ž(ò꟯ªBÈΔ¡2%5ä†-p;À[={F¬ÌÇÆÎ;ñ´Ö8?½æ”ÎÙ|AŠöÖ Ôm9Ðòò°¬µo£kûRIþÔÜÏ®zD–6^wU2ì=½IÍðCÝ,*·k<$ >¢ #J2÷dÛ+4òŒúÒEε?Ë¡Ùi5¤´üLéÕ×,S9aÞGµx’é³Ì EãK_ôü1LW¸&3§¹?oŽþôç©gÇ ·MÂ8Êtªab”‚wv5Y~µ*¶þïÕÁøòæT"§ðj€6ªáº¬¯Ìw³Èž‹ËI‚€´&tŒªÊv†Ü\!é„¢b7’wR¯O:#±<:,s¡,HÅç@cë{ÆÔáÊÐbH DY?IÈy.rOD“¯Çk†¡~û£¥|’ºŠc«ÒZÜÁ`Ê:Œˆ0Z®íQœþBVŸ¯«#Iœƒs¦EˆKÒ‘éÈÁÛììÐí t%¸R¬l€™ƒ‚¡î(åt°ÌÂD’òÕåG½ÍµX°kt$’ SM@š¦u %lÒËå9‚fM«Õftî#ZeîÈ':åmF•›e­Õ¨4ñÒAÜ/Ê¢ªs4êN"ZhÔÍb¹$s—U·Â¢•‡ûbP&  JæS¼¶ˆç0œÿõE}(Çh»˜kzŽiÜL7}7i£»H Dž†–¸‰60²ÏXq>rƒg.¹f i´”GGù"‘w-î"&暸Ž cÛÁ"I_”^©u‰þU@‘@¡ØÁÜæòÈžBK Í™›eUwDs!ª‹µ:|†3:Â7»ŽˆÊ5d'ê8€=ýrg7[€hê‚ncFºç °½Iø`D‰‘¼Ä¨_Ê,¸»(Goõ ±ü™Þ-iITkÃlíÏͲÌÎ÷ýFžfJ1@1˜Rš œZõ°&ƒÊÔÞþɺ G*îzê={Èkiuо¹únѦ'¿;°)ÊïÖÃïÞÿfk+×þ®W.æí‰ÖÔ7»žÇzóð»ÑhZ›†x ìP–ÖNìŸRýÁ;,º^=¦QÄ¢Öiš@)uJ%-ZÔ€{#ájç|àwÅÃÏñæp³ulµ¥)šN›JÓ)V€ïH5JÔÏ’—Kʤ ïáH¤á#e,í´¡oÍb!2?C‘5©}vY+­ï*œRýM¬®4ž¬ñšÙiôÔºe–”Úå³þ¬Å>m­¿ôôÝ m‹‡ëiM ¤­V˜n+Y,Ä:ULÁ‚pÞ=ÉZ¤2×,¶ ­^ÑeÖeŽ=â\x¦p…²9ž¥Å‰ÛwQ 0ÔRŸÙNÇ؜ϟ¢*Ä[66Kã³°àF0oMdÞ‘ÛñÎ<0‡âxƒdŸe7pÍnÒF“ÜR­Px‹cZÃuû~ÿàxgïr…ï¡8>à[>_ÔyîöG’ãf-*ÒÄTv¤OW˜ûÌ-5£Ü*0þ©Xv¢ ©çÚµá?e(j´mµÿ Ûÿ4ñPÃby™U•¬Àü'¯¹BÒwCèJlbM]¬€ôaU ´”†¤8>éSòd¨¾*+PøGf®B~§hƒª:Nê&,¤1@z×ãå¡*Âj›ˆÃÞ¯o¿9ØÝ8Þþ6cjyùX`%ÔL´’ª—·Ãík–®ù©îÂf¢Ñp­P2·h<Ü•Q.™P(òéE·ú°%þñß z?í¹ãG[5?èýP‹¶rn„Ù›lc¦ZMºíè”Ñ3ÚgŠ:ðaý}«U,¶NZ¥udðÔ{å“¢¬S®p@­‚yöÙXMÝ뇯,‰é'áRAð] :Œ¡+­’9H@ ®H÷KT6«ØÚªx¸®8òÏÆ—ˆ ^¢Š‰Ü7;ÃNOp»“ò†Ov,ʲ¬V‘U]í¡C4‰õŽbäO“,n 5€€• ¿þ ¯ð·\ÐzØ-|'Ö¿:—oøY¹N —Ð]DÈaËùª^êÝi«JFÁWtY(Y‹N›âìÈ*ÂæZL_ÞG¼V{âã¹Á¢ÕååÅæÒ| BhÖ#%dž⫕¹žd/9«¥)³RFiÕe¦c½É²>E`»·h5³ÞÄPèÞÙ,JƒFaúUÀ$†aØ+íì Z2˜ ±& u¶8ʈБ7d±:á¢ø0ÊEÃWà“ˆÚ“!^î£rnDkK5|Ôü›ÚW¤Í+éoüà¡Ë(L4øØ%¶ðJmÀ V×»Á™Ó!Zh^¤ JΠÆç>µƒ:~¬ª_ckÕ¬¹³¹ñDrUdT¡QœYgMÿ×(¯v ‘Ht©„@2îÐs‡TªÇE#"oJh‰ØRF­Æ+ .ÖK Ÿ`pbˆB´º«X‘PæaÙ7*ÆvYŒ‚ó¬m½™Ó¼PdŸ4å©#Òç }Ô WjM9úèm G†¦38=¤¡äÇé+¯OÚÀ3îùc¹Lt§ÒàvýËÈô#æ@½ àz>uɽËÐí®á Þ±U 55NÝ3:¯!ʨLqŠ„UäÝË'%Z¹V(Ibþ+ßd FMD9ø‹¯¨?\F‚Gë“ÿÉä€s­5±žk<á¿hÍéf>ƒMzA”¶.®Ù-ª•ÊÀäªF íäFY4Īh<'…ëH¹ÀAwHpò¹Uìwl=a Md­ GvR™ œð£Xùþ{ìÀà#.Fê.;0xGÿŠ1kdRNŒ.MqpX˜«I=ŠåÒáÆÞÖþHŽ·„÷—\¶Z¸¾ùÂ5}ŸÀê¨YX° § +.HÝôɈ%†ÒÙÂÂÂÇ2å/`ÏgXJ®„eRl(Ë#«‚šò'xN4·Àذ#IŸNbþ ”äè¼\³máÍz•v%Ó}A“5¼Þ±}å;Qn­4ž”OÐhc(:W=Ø0Kl̃Û€&ZÔ ˜§“Kð‚®› ITÝî ;àEÂçœô!ÈêôÖâÞkÛ:K9kƒa·J-àÆ‚VYÆóòѹüHA‰•(¿Ø~µ³›eÒE§œÅ5>¦ºh´| ëN³6Riu8Xp}j¨¶šMbOÊf¤+ý…GA¨5þd·Ê脈We5jP/Å£¸ßмÃ5?VŠl˜³j«Èû."ÒÈ­ª¥›2×ÚbýÁ½Òö™Ó÷õ²YLÖ„¤Ñ ,ÒÖJì@šiÜ„äi'îü#¶í¨¹6ªSždõ±¸#´Z-ÿV>ÑEšåïîµïÝeEÝõ(2æÝÍ QÖ_¥…T áXã¹Õˆx~å š'Ê}BX·Uª¿«Š"6cÑ@ß¡ ÏŒ„ ëÃ{Pd†ª›Ri!¹’[nÞa™êsjŠº/÷ô“hG‰÷žf*x ©D'Á=Ç&`Y|lko€Ìîíh—(¯…óð<õ£÷EºZ¸ë½ø¡Y/Œ =üðþ·{ïÕë…5˜~ïà'¬—£1Ë%ø>ôRXö©ÊV¥ÖúÒxü¬uÝªÖØy$äA6¿_ß[-¼¼x,ú{«së%HÂ'l~X8åÆÖn,$K`‡U£Ô#èÊ÷jzV§VŽUŸr/¦gÌè÷ÐgbU³³=r±ø¡ŽXk9Òzk¯ åä H™øÄòÁ›†y˜KXÓWQ´†Ø¡hå£K8å¨*ŽÚ^ˆÖ\ï!élFª¿Dí„âÿW,ÀPpl¤.û”H08­Ý~7D ÍÌ+lO‰K¢øS…P„ë\Œˆ%PnÕÄ¿½ñy…2¾o|¨ª®xh­².<ñU5¼<|X•—ØÓ&WÿÞû ’¬*á%_¨mGU"XŠQºL”ã¢Þr %¬¶*ŠEY¬ ØôCÕ‡‡â‘rI¯ºOT¶ ß­a?|è}Pù#ñ=ƵéOVÖÐ-P° ®¯±'Ò8Îýܘ”óò™]¯Ãj‰4äMmyÛÎÄ*Õ*ñ妬â%ê½¢áÙm€þ!Òˆ€ìTN$yh 9¬q<Ì3´ò6ƒY³Ó9èW6²\ÿ‚vÃäÑYòˆ9*eêY9:9BE½ÉÛúÐGG²¾H¬"wXúÂ/×ÄþÄ/? àÖO±ˆÜB™¾"SW¬—H n“Ì^˜¡<™‡;ä†Ó'… ¶Cj} Y/ϱ´l¡R®x]yO¢AÑ…km±'h9롤P©$»¦â÷BVÅ*aÕ¢D¹ÇDŠÖLðbóÓ,ê[© ôÔ¤¿€ aDüº†?”^âçµ–á¤ô8IR')`ª„ß֩ƵE<¯>Ó‰Àí‘þ,¯ ùÒÉ×TýÁü×ìå$ÿî ƒµ †äfŽJIÉnÁSÉ*æáª”d-ƒ«’5+Òž`£7 ‡Ä5 "O $%!o:úœaHÒ+#hùìECG8+¥*À‰QiyI`<¼n— úr×ïÎð.ÇcYb±ˆv,}ÑM<¤ž!6yc?¯yC^çää.J.˜:Þ=“H¥TjG_Å“G;ÕéPºNˆ¢¦sC.K2<é?<71¯Hw„þ8"¯ëã"éjîƒIG³r7–+~ºY­“;&œQmO ;£5²$¶äý”ì1~€Æ¯jŠá dÕ\!î{ÝK x¹öæè‚fàŽI5‘ ¯k˜1ÎC¦;œCÒ8lÒO—½W{J?è¶·©}1K{¸qçÌ1nŽ,0ÐÞh¾FC‰:ïÓ_ÞøÈøS0ÝyVè"|†X­ÅDúi8ìÛD,V%ZnMv¹XnU[•Êûß*Õ‹ÕV•±$élÔ lX„bkµØ*l©7ÑzT¬²*3+0Ьbèã·ì_;W1*p̆¼½L«zM¿ÃæŒýcK7ÙöÀM£L]³&ëù°¸¶X¥ük»è“~m2oޱ0ßÃSÊM1Öùa¹*GÐ\^[Ž’u²,¿&À4{Œò]Ó_]}ЭI…ŽÏ å›®cú¦SzJJÛ¤ÙȉqhH0ìR¿Bt0{Ôa­„µÉrGZ«ÊIâÂq‹UHWªB0,ΚG>ÔRÔ†¦”ûìPÝX“2Ü™„)·²R»^)«S—ùºvª©ÈËv+È„·rW%ÌâFîâ(“¼ ;uÅÖþÑr8¾BƒU©K_º3“> OÖ€Z0¬ñ0Ù¸.$ €)èž°„Ó¯´ÓxàQÌ£ÖeEè1‹af¥Ë‚±ƒÛ2—iCßí‘·<6´B`*-‡³”õjißÅúé÷ÅUûÎn°1¶Í‡-µ-c-)•¾3©Í§‚Ï j"¹Œ¡ÞDK.º§ʼnÆÏe…çM³—ŠWskK2þ×5 •ÝC°ëÈ»¥¼nƒó0lÈœ4†P®à_}1âö„íCÝâ*eðq!¢³ƒ‡Ø,G…HˆS>Áy3€¹]2}ýíýok@¶ýº~]“ÏKâk¯\X8)[¾Õkeuú°'%žƒäó²y$Þ'º]Š}TçÐ.ïunrvodT±IdØûbÏŒôš. ˆà$ÑÞ:BVŽ¡ÕÐeo¤¤f0=Aü>3ß2:Ž BbÐŒQÔz€(±õ•Z‹B T #º]Ò ’`3·@jByeP÷…ïÉ"ã«a™a†J©=^¥©k Æ<¿ ¦µå5êú Y[îÂhVº´¾Aò)u¢‰1°DBE×RG>"Ýî¿£ËØ†ÿ*}vË»Dªé2ËÔ*f2þ×(èiýkYÿKŸ Ì zAq=fdO³KG/»µeƒM×`­*W@;œœaÔ"pü‘.†ÕÍš•ªÄåÇ®¡;i ˆ![5òõûõk™ƒªlˆb­VdÈU[‡¥dU-ã»$º—lP0Ú­¿ÿ\ ­×j_{€žë²Ñ®ŒUË[´X¬æ ûJûšÖJ=ÚŽÚ=0d"ÇÊÚ”VLê[<Ýwá¾ô ßùxé]‰Â–õj­ë†Ý/IHZ÷ª« „,AÊŠ*MWÚö®)ZSÚYéw¬Z¦¥A@eSC6²ÂÀ<Ò=4œÒž¢qí(R=ØíË®ÛYOëÿfõCB@Í,r¿}æEF«)°LíÉMбËNRÝ褹‚Œ\vÁXW²øŠ—¸»ïÓ65@JÓ%¤é—t²=QP§²´Ó¹µgoã[Úè­ü4´ÛØÞI½_e, ÷I»‹°w±ø>¾Á’Š¡EÑ]ÅËwo¶×ÔÝKç#ðdŠåK¹.êq¹—âÊuåë`µöt…o¢zÛXºIÆïfjèºCŠ£…„…úÐ,êF&‘!jÿ„’¶ŸðÞÕGøâwô3š`è—¾ßqú®~E§ô\V¾ÚÈ ŒŠ¦ÈZf'ZEMZH¿HÛžñd&ƃq½á˜Ð]üº¨ú‰ª›øõßd'é€É=4Ö] ,•·{CåºsyÙè­2¿1šè­j^]¿žÛl@ÄáK«ˆ‚ç<Ðà}P’OzòÃÒéA%+¸?(É'õ!š„%ý¬>Ê9yPâ™ ôqé‹Ñ±kî„|{Ð+k´]\ß[c(bq¢LsESœÔʪ—Ô,;Œ“ ö ŽËÙ%£@…,^à(1viW^×óÕ· áŒÁÔ‰ÿ7ƒý8—Õ7nj–É/º/”TGæ—ñ­aƒÆƒ÷¶W–ŸXü©~ï´~ý)ÆgüôUm׈ùºã-ÀŒ™‡íOҎ߉¬÷ƲËT]^ÊS&~ÖŸ¢£‡?GïVcf–èݪ%žÍNÓYíª7«&;‹™’h0™ÕLÕÙåÑĹä ,¥lÔB± Ý–L«ñ[ ¿ÂJJ¼J:•T…ùA%ã©57w(ãLª«ãx·ãiˆÓ¥¾í²DwÔåz ÀurOÖ ±3—–*þéõñÕ¨Q%½¯aܲfŒÓ[ø=µ…y3X´òÉïѹÙ_UëÄèj¹À¢-}>œb|oy•Ð}Ôàûõp¸R6&3Ì| ý)=Ãc¬ ¼’Æ&))ãÆHˆŒ¸Ðš+v×fUAÓ%ICã¯Z´Ž¸ˆU}ŽØ¨õĦî&5×^'H_¾é©³ÈíÔR4‹õŤ0K,Ö#!ÚºCîÄÞ7µpÊItÁ7N†ô(2»µI *eHf#K¢­,GÔ¹’ÑÊA÷st™œ¹!23+Á¤¡F_Q2Ù\TÑPŒ¶ ·žŒøX¹f}9Þcì/š`j9!Êõe J–_rÜDevµ¢èÇŽËZ²ßé’«PÐ:ÿ1Ox©¦”‡#&ÊŒ·jhf„R\X‡tˆÙ/E*•O+泦iI:âÑPοD5‹©8"ñH9û¶¨QÌ"Ùx2(÷¯–ð¶zkÿHRŸ0$ô¨EÈË5]˜|tGcáC½hÓi…d ýXÇ.ÉÔ)^ŒqXr$ãuì1T!cÌm2‰ìzaÇ ºlœJ¤2YW“Cž-,«72ªV¹gg8Ø uÖéû!ë¥F ±-²l:Ušx³¸UßÜ£"ŠïiR.`(ŽrÇP¤2ä¯58ià—.ihqq:œdo %G@kN3JÝÐoó'쌼¨m¼N:¨¢@7³Ž¶"æIÚ²UZú ªGÆ!È(dº‹3Ò•ßD<Ò˜Ýt? íìcÜBFUÌ:C`§ºbÓJ±·!ú \¢mÿài.rà ÜÀdÊJnäÎI•˜:`÷5QC%ŠúÊ7núhÑö¥k[Vú #f‡®~Ãq0‘Ú®B{aàîxIÇø²4S!·éz†„‘ÇÔbÉ’›SöHÑ&§ ÄcÃ4}=Ëù)¾!Ÿ2)ݹFËYRU¨šüÿ6¸ûx¹xœ=MË ‚P\w¾bB*¡×{€•ТÇ"h+¢×ì*z•,ú÷¬¬3f†Ëè©{.—ǵƒk¦Yh†ƒ¶ù†Œ¬öG6ØÄaCg2ƹ„„wË¡ö ‹HIbô±qOž¿s·ÛÊ”JD<îúÞ¦UÄ1+›Ò’MÎKó² ª³$‚ñMiúô'yêEher羄ÐéAè®Óæs0-Þþ­‚˪ݰ&ÚÎ')\DIL/ÐÈ?òi€IãöpÐï¤Íö‡wÄþ¥Ú}G=õö¸ÉŒÿ€‹öT¡:Þ>ý3y=Ø{¦å‡K' o΂ØK×iï¯< Nƒ …JR¢±‹Ø‚Šä^Cl™ŒŠ`•#px¸ä¬Ç‘ã6™½2‚»^MLBÛMhWÐ×'Z¯›ijý+5?ÚÊf.10©ß®ë›F ömò ‚3zXqx‚”ÜÃîYŽááKˆ_χçoJÍ6½È…WÛ[‘¹À·(„ßy°‚_Ç‹v€´(½-‚ô¥a.¦ÀgðxdÍà »x «{ ~Cgî®À #ËæØY·Å‹CÜ⋟BÁÄÔÀZáËCx8{ˆ¸€eÛ¡|óã[ÊÒ6j\-ï,¾–ïÞÖÌXÊ÷Ð7ïx”4"#ÚÂV:6Öi+r–É 90ã¤!µ()Ä$¾¥¨ü³Pjă¥i ò%­èÉxì9 AD.Eœ™o¹DaéPò[„Æýµ‹NèMú£ÔÈi  ÷Ôóöt )µ'Ž *e—í÷`ò'úu¼Ž~‰žéÆg?gôuý¨l'§íÞvï‡Å!g~0ÿÞcsןÕ­ æpø"¾ƒþP­ÓÄÃNwtuÝÖô‹Á¨£—º¦^]ÚšZ¿)iz܆툎û˜9àÀœýŽôŸ1;öÌÈÿ®~;n„›Û'aÈ-©;0âQçßuDÛ.Χ˜Ç¼þ¼ÁœåÊåK03©Wɇš"ðBþ2U§êN) b»˜4Å3ø!øR8§âÕÊu¸Åf%9+ø øœNxcçÓa·NýÜÌm™JÆê…úkÆ·Ë@ ‚J¥4×f±„ùåÌT&ÿ»mWr倠Å>ðz~PêÉŠ}vÀy#QÒÕäBׯaxø®~ƒ|m覿z)VwsÝ\ë cÍuÙ‹¢eŒD:¹3EÈ @.13VpÚ­NN©ÑêЮt<ŠRQ×ïÛ+\¬T²Û¡]9YÞp—øAÄ­–R»mÐ*o—]×i1O¯ÖBiükõQ"ð¥šÑõδ?ÐúÃ:*AíÐV‰•/Ö[Á°–ÖKáwiŸ%JE‹èT¡×«Þ˾çà&g tV­ÐçÀ°à5ïƒåÉr– Ð%¥êzWû•íÛ§¢…sÕmTéæ$Hli«y#„· ×].¡äÌ•Š• lóɈ–sW)ghæ·]ZfÁÒ:~u„GâÂ8“ Ÿ,œÃ©Z~—ì»ìØJ0ºÿ­^ ä3‹ ·¡”d_õ@_%ž@yÄuÌ!À7Ë)V°¢«RØÉeûø«DE„Ý‚"Ä1qø›…ÄÝYê–%|y|¢­' y²[È“ï!äI©#Ò4 š¢,(*ûû‹Uüy¿‘ /:ãÑ;uˆIv»W';¶=(ZmMàßq‚ Š©>Œûšºm.Ü1Ù}àD|ûl§§  SI²yuØîà`Ín›Jí¦=g6¸†ToÜ^Ôo¸gÌ\~€ãì&qî½N!æ¼mÜfú}íRïušì©ÀÖ­YÁf&uH|á$;V£ÄË,´æ<òWÑnžòpµžb&!²Í:“žBIUìn8ê©Ýxo€ƒÈ Éàéx=\Ó•\,YÔY¡ÒÅ\g’7Ѿƒ^|é®ïÍßz~UJBx ƒX:®}¼V1 ‚ØŒˆUGð¦Ôpÿß°"ù2Ù°“Ð>EùJXÅ}ÅÁ>ö’¥¥KÈ=ö–Ü)n‰C†#­ß…UŸR!D²h%ëfxÉ+1vÛˆI~D#ØW!€R³þÏÈP€B†ör/á©H™ D$­ ¨‰rÝÚÁlya„l^냀»DcŸ5ã¦râ»Fà„ψŽÀ³|zÏ¢ƒÜ.ôa»yîVøBk3hÍI™²f -‚3‹l>$2†ëâFGÈÍ„ÄÝ=gǨÀ â€=)éé0=駼爱ÝQâûþDÿp >ãÄ>—„8¡~¿'ôÅ‘"Q‘‘"ºvö+¬K:Ï)“gDÁ xkŒ‚£@>Bzâ¿dÇüTáU*õçù»FÉ,fà÷ï2áb² ŸV¡ämiÛ™ JÙ}¤À®Ü 6à!jùCðrmÒPÁ,Da× aM&T †ß$#FQ!|˜¹0ÃŒ8XC䘢üØ…¤¨­ïL5H° ýœ>éÿGÕµ´9íµkmœéŽ×ùæñ«|ûùI¾ýêEàëB;G`Z¤0ÍÈ9dô šô Öƒ»¼mÞÐÿ 8_›ay516¥êÄÈõQEúDY ñi­šR¿Ì€oФe,ž•1rÖX…ÒéW#ÍœZ6–ʰÁ‡éQ^øoá%©ým)ýU¡\¦C­„" Õ(ïÏËlQm´ )¨æBöúíáFpÜ©£óºoÛ:¤ÈGÅ« iY?MÛ½‘~Õ FÝ´ QŽ:Æú8íz>¿Û´®! ÒÎËáKè­Øv“­P¼¢/HþÊQK>Öý£`Ëîcà'L\±ë1{þúÅë×oؽxŸ±âÈCÓ€õb&"‚Ô¨Cõ޳ßÀ‰‰0%Ö£œ\ø9VÁ…uÕÄ''<ãͳáüu½äF ½ÉÀP€{kp]3×ðî° íš Û5æ0¯¹Xú>°6êRY:dË;+âËp®¯¨çrÀ®ªLâñ9_&ìoÀE?•yž°KH@\ÎzÚ°!c_£k2Ø Žäzƒ‰4Ì™9.Ķ)ƒ˜w8`cJ΃5¬9;8@y ¿¶|ÈÝZ)ø;*8ýŒÔÀG2ðV">í¦X'¹»[9sñæö‰’M¥H_T—‡q¶™§òÒ½ Zª˜Bn«RfŠÃT+È%¯yäü¶«&"d+1[©°¿دœ+¿¢x‰T*a‰êÃö¹ÅÙÁøÐÇÖ)ËÉ–¢Ú‚¹0M~tƲÎ`;ÅÐùƒWŠŽÿ½HÊÏÆ,°º¥‹çS¯?nYp^Z»©o ŒS\•Šع‰{“OÓ0wC.DU²@3’¨ÛÕ„d>–_s ªLY{+ò#¸Õ³n™‘ÞXæC Ò5]¢`Q@´éŠð)•*EÇPÖ)õV)•H«¤R­»¬W1P­X1&ä,ØŽÿ(ú–¹·Î»yŲµ/—úÚN¡‹Âï´Üi»^‡Ø~ã¨ÁÈën ícu2hupй;Á›DÙçtÃH—ÂÒËÓD“\»ž,€ˆ&õs>¶èC¬,±à§0—çJö–G^ÝàŠÓÕýä\5&µÚŽz¦  Ëâ 4ò›”ýາñÃ'«)ÐBrk±Ÿ"à=H‹õmæù‚[Nˆ÷L,­§ TI5½OI#°;Ï¿g øo¸+×x`NÔRRŦ{~¿È"UæKиixº'™“k¹š´ñtX/Üf¤W5\û¥áx@ùO¼Àb2öÍñÑÑ-~íRK´M¶‡Sî5Ù‹“Ÿ^üôêÇçGGƒAƒÀä·Euðær%¡7`{ û+ý¦¦jëTJB·a•H°’p`¤—xO+¨°äÎì/Õï'KÞÀdõX­È’&+TYÔå§jU~¡.Q™‰bªÕ¹]ŸµbØ" ³ú/=²T}¢”‚$sC–a—‡¨=ñ/ “ÀOíâ«ûhô÷NÈ%0nå‚Ñ¥WµX´àéŠãé#«^Zô¬ÈFc\{}0’?Rô²ä%È-_geÌ~ᆗHdJ`ø¶(´7ØÙ[ö%Nnùò5eYt•bâ9q s­Ó®Ø-!Ń^¼œ/…ßx'7ª~ Þ ³pA  ¤ƒŸZD›, ‹0a“Ù€‰Ì5‚9‡³Âç‹VùÎÍN7 ŸX!%£®cxQCÉOdé)¨Ì7¦TaG^,ÉÏ×¾cÅ•¯“íÛKpÀ­V‹¬/5½ç·§Ù¯$Eø ¢:~3 HhJøíx=aS˜Ûs¤'ÙÛ·ìû';bo`ƒœ*)yS—lìáïçn¡s&Y¡´Ç*Üì©sKwy™@îÄLýHË,àRïŒ4mtj?ÜgIþÁ°>†yþâèµaÏù÷p¦íbMÜöÒlþ–3 ‰t݈¢ÿq×õú熒ù”½þËœsH`!@¾2î8~/·ÑT»žjÊÿj½Tgä xœëÉlÊœ /c `d`h¬o`¤oh `hdelaej¤Ÿ”˜œ‘ºÑê 3W¬ædGváÍú¬±úrž åê XxœëÉü‘1ANÖÜBÏLÏPÁÈÀÐHßÀ\ßÀRÁÀÂÊØÄÊÔX¡¤h£Å5f®XÍÉŽì›õYÉl¾«¸^ÙÀ’æGxœû‘ñ5c‚¼´¥‚‘¡‘¾¹¾‘‚¡™•‘•©±BV~jQúF[kç &íxxœû‘q0e‚‚”‚‘¡¡¾¡‘¾‘…‚¡¥*då§¥O´-å7°0030ÕQˆN/JÌ+Ùxp!ûæi\42ûá €?xœû‘±2y‚¼´¹‚‘¡¾‰¾‘‚•±‘•‘‘BV~jQúDÛR~ 3ÓX…èô¢Ä¼’²ožÆ5‡}ò$.áÉáBºú\œ @m«e)8:Çûx:ù;yi¤§–ä”Äçäç¥kBå'/’îbò ¡äÉ%ÂLi™› OW¬¢0;äOxœû‘ñ i‚¼´¡‚‘¥¾‘¾%ieljed¨•ŸZ”>Ѷ”ßÀÂÀÔÐ2VG!:½(1¯dãAM¦É“¸„'ó3«Hée(¤ååé´ä¼’ ÃŹ9„™uó4.ÖÍÛÄ'_ŒSä*ÈN/-NÏKJÎÏ-H,‰OO-É/(‰ÏÉÏK·­L-ž¼‘U„,4ùœˆBdqIQir‰›™Ÿ´¤=¹,>#±,5"‘ÓáâäŒVPÎÌKÎ)MIU°«—a§r´Š9 Ö “ª‰s#Ù=ùžš”0š[b5¹b'ߊ@wôäaÅÉÂêB(hª«q»»†ø„Äûøû¹O~ $‡Âwä’–FR¯®Vš— vNf1Ðñ“w‹©o¾*ü‚m³©´4£„³‡«³w¼§“Fq~rvj‰Ž„Þ\"Ã"j¢”šå‚gxœ[™¼6q‚¼¨™‚‘¡¾‘¾‘‚¡©•‘¡•±éFÞÍõ|ZÊÃV ­áƒxœ[™¼-a‚¼Œ©‚‘¡¾¡¾‘‰‚¡‘•‰¡•‘¡B~RbrFêF+OÞÍõ|ùœ›Ó$œ%YÓ òëƒUxœ[™<#a‚¼¨‰‚‘¥¾™¾©‚¡¥•©…•ÉF“?LEEz ©EEyù@:-9¯$HÇpqnd6âÚ\Ï'Ƹy. Çæ4 iF gWgïxO'âüäìÔ½y©$‹éëàqxœ›‘Ж0A^ÔXÁÈÀÀRßÀDßÐXÁÐÐÊØÀÊÄl¢I³©¡åÆ­FL“ƒ8„7ó0óè6$ $é€-xœ›‘Й0A^ÎHÏHÏPÁÈÀÀRßÀDßÐDÁÈÐÊÐÂÊØT¡¤(?o¢U³©¡åÆ­FL“ƒ8„7ó0óè´ ×á„8xœ{4;a‚¼¨‘‚‘¥¾±¾idelleh¼Ñd%ßä|Óe­bu¸89£ã}<ü¼4ÒSKò JâsòóÒ5'ßâOE—ÒäâLËÜì+(¬„üIå…xœ{t,i‚¼¨‚‘…¾¡¡¾…‚‘¡•±©•©ÅF“¥¼›?óæ*Ô í…Ixœ{ô4a‚œ˜™¥‚‘…¾¡¾‘™‚¡‘•±¡•±ÁF“¥¼›?óžäžl#Å1ù¸4ïd?iéɪR‘@>7Wf^j‰~fž^†PXeò{)!La+˜ÎÍW¥»E/Ž"'åbxœ{š°,a‚¼¨…‚‘…¾¡)XZ™o4ù,±9Mò¿Ðî Gé€xœ{š°%~‚¼ˆ¹‚‘…¾¡¾¹‚¡™•±•áFcÞÍ/yí¸7§Iþÿƒ `î€Gxœ{š°2~‚¼ˆ™‚‘…¾¡¾™‚¡‘•±™•ÑFãF–ÍûYvpl~Ékǽ9Mò¿GýÀâxœ{š°0j‚¼¨©‚‘…¾¥¾¡‘‚¡±•‰¹•‘ÙF“-L&)y9 ¡Å©) I• I™%ÅzÉ %ù É©ÉÙ iùE Å™U©Å ùi ™y%©é©E %•“ò‰ù@fj±^†Bqe±>2h”—”™—‚ÄáâÌK-ÉbýÌ<³øÜÄä ¨T¬æägLiÂ9™I¥%™9@¥9™¹ ×d(LÎe–`jœÜË,>y9³2OqI PÄ´Éט‹&‡²ÄoÞϲƒcóKÞl“½E•ëu@®µˆ/Ó†fP†±”afb”ÆÃYe`&D!˜ U W‰PˆPU« F\Ñ›+Dm™'ï•Pà..)ÊIN,;õ…„Çä3Ê\“ŸKËÈsq::Çûx:ù;yi¤Ã(5¯L“‹3©(51›+V“kr¼Œ¦²šôÔ’’ÔÜ$5“¯ÊXl–“uÜŸëîƒexœ•WÏoUVÒ´S…BÚÈ-Mû#Ø &Nl“¦iSál6‰Áq¬ØBH·ëÝg{ÉzwÙ}NãZ qïȑ₄".Äq'¨H\ÊÀ¼Ýµ½þÑ,9ž7;óÍ7óæÍ¾üyû›Ý.=•^@ÉÙÙtbv!‘œC³ó‹©ùŹzS—ë/œLÏ.Ì¥¿ú:5œV m;XEå&*kÄ™Q1‘RÃÊ>ª˜6r´»ØAfiÁUl#Ò´èý±soÂDìÌÔÓtap‚UY3ÔÐòȨ‰ß„fÌKuY©öøH$#Hº(¼,­‹™q«ÈíÊŽƒmBŸ81åVŒºL”€THUµ-t­Ü šîIuÍ{Æp!Hª&Lë¦Ý6üX2© Ö•±&*ä¦ÿ Àž`kFU¿¨9¤½rÚ’A?‘c‰W4*4òìÑê¸UÒT̺ÿŒ­"3Í„†Ô2ò$ßÌ}CO LÛ–CÏîtKdvGƹÕá …­l¾´êuÖXÈeQZÝÎ @NGŸ;­+µŠ.W¯Èr4št®[¨¾¯z¿&UÛlXØ L¶XȪ+Û¬rÞ‹ÆÆaÿtE&Èûµš܃hôqGÇØb­c'²ÇÓ_/.ÐK“hˆ§““¼Z¹ìòæòKÖMó‘Ѳå}0îtpÀL°qå ÿÁ"ŽvÙŸž@ðˆÅy$D¿Óß&o«&/…­; t˜ýàÒ½3’Çf.Å3–‘ªÑ÷/_}²ŒATLˆmÈD;ÀqúãåóK–©³vb‡ZÒ_Á.9™ ýÞÑgÜ_#ôÖ£ÑÓ"²]E*VtÙöŠd*Äbü×3¯ˆÒf¡”ÙZ“V¼Ý§oÍœ¥_ŒMLÀ ¦±l£é× ÈÝxäü£-úb,ÚYÜŸ¸˜iNÆ»f ­¡v“ííÖø¸é¥Äú¢Å†öñ<³ù•žiÆÎ1 X2¿™ƒ^^W³y‘ëBh÷@ü…Àóÿ§ß'ˆ‰A¿yèÅ¢$@¸¢´JCÑ*heEÅl¾ÞŒÄØ›¡a>è$eWŠ%¤—Y‚Âf^ȰZý‡4’¥°é2 î0ÞdÄQ,†šƒ²ðcµíÓÓ‰æ1ԖŵlŽŽ+öîB·!äð!\ 4%L¡·ñéð0";ŸÇ“x© ¶íàmλ×…ƒv¦ŸO¤{Ž3Øf3ù¾óܺßuhßk##¬Ã¼äÙ{;à]t!èòNIÜÜ‚‹h_Ür“`Ó†wÕ@ç\v#[ê>­›iÿäÉeK¥\‹f缺]z4—L¥û\—³k}~+|:•œësÛ†ë”絎SKƒÒÉkékóW“×^p·ûÃA9$¯=]Љ>ón¢Xû²4ÅÞnȽ·D]¯‚M‘Qø? à&3Ø®ÊmÙöžˆv`¿ËÄ¢Xâ;¥ôÒòëâÖ&gÅu~þõ€ûÇY|ÍÆ§ólÈê½HžGÈ€T¾‹mÓj¡xG Û6Œ¸¸´Þ—Xƒk‹ü¸ì}éù›ƒPØéÎAp ;Ò2{epjÜ Ò€[2Ç©,ºÃ“óêAë+³wçèƒÓ”»¦³|˜7MÍ&ÿ_-ªÍåIxœ[u=r‚¼¨‰‚‘…¾¥¾iBÆMŽIN¾!©%ÌÅéèïãéäïä¥QœZ’›Ÿ’:Ù_Rlr¤”ìä%’“§I¥£¨)(ONLΩ‘Ú!}RÖ´Qäbxœ»y!r‚¼¨±‚‘…¾©¾¡¥‚¡‘•)™o4‘”š¼V’}r•T<£ææL© ¶Í¼Š§¸‰Nžì€ xœ»y!r‚¼ˆ‘‚‘…¾‰¾‘¡‚‘‘•‘‰•ÉDãZVs3#£[gHN^+É>¹J*žQss¦TÛf^ÅSÜQ¢äIxœ»Ù9A^ÔPÁÈÀÀBßÀˆ M­ -­ 6š´‹o’¸ ºf éwxœ»y+b‚¼¨‚‘…¾±¾‘¡‚‘±•‘…•ÅF“vñM¼,›íd& ø¾ 6ç€,xœG¸ÿÐYÜV59 2008/02/21 16:50:08 tnn±:› “O“Úð“}³`[² ³>÷“Mp“4,œÇxëVxœ»v!l‚¼´…‚‘¹¾¥¾‘¡‚¡¥•©¡•©…BV~jQúF‹ß¢›ŤE‚ ©ç€ xœ»¶$h‚¼¨¹‚‘¹>*[™š[o4ù/ºÙQ¬‹sr…¼ÜdiN®Íÿäy7k)qÀó¶åCxœ[4)h‚¼¨™‚‘¹>(XZm4áÞ*|^¹ô ¤é‘0xœÛ½'z‚¼¨¹‚‘‰¾…¾¡™‚¡¹•‘‰•©ÙD“jVcKC³[8tï ìî‘exœÛ==r‚¼¨™‚‘‰¾…¾¡±‚‰•±…•ÑD“jVcKC³[ޱmžÏ!« (¨ ìè’ xœÛÝ1A^ÔTÁÈÀÀDßÀBßÐ@ÁÐÂÊÄÜÊÔt¢I5«±¥¡ÙÆ-ÇØ6ÏçÐd™ü™ShòožV«X…h.NÎÉŠÜ’“Åùø&(ŠL¶ãáœìÀ'4¹DQpr"ŸÂäz>ivNÎXMº¹|v¬ææí|¬òÃHúè'“ xœM‘AkAÇi³iºiºµi×Ä–ØÝˆ%q76]MQ„‚QÚ*RC˜Ín6Cv'ËÎ$¡ˆïÊ»xQ^‘-xÉŃßÂà]¤/Î4[èaw~oÞÞüß¼ÉÁäÙÛ µ®Ý0ͺaÞ2LK«YÍíí¦ÙxW‘Þ25ëÛñÖ,ü‘ó …È (p©]ïiˆò•q°1q ³ÃÐ¥¶‡ û§`FÕï”~“¸Ì±yÌWÌ?« Nïì(×…ˆõ†c‡ÿ)sxe¨HWÖx޲OlÒs–à©´™W¼”Šk"ôw”È7œ8ø*=Þui’8w§§ PÓuQ*~®ÍÆŸæ«’xø—{3ßl]Ó²² úÂ%(( <ÒWáNN†»J˜¾ HÑàHYÏÈr«*t”â”[Uø®Làu*\jÌx°ïµ‡Ôm»3xËí¦ðcñj|r¡&­r˜Ú>"}Íïôº>ò¨·ÕÍ‚ðê²0xbP%!Ö…÷j«Â^4†|:Ú)'ŠI&8æ¯.®ÄUœÉíì?¼_¡ 1Þ;,Ës»{÷öžì€Q,g¦¸ GÙõ¹©в•MÔ¼?ø\*ø´¿J—gDd ŠOJ?—þ²2Î芗xœ}VßoEOi¯qJ¯”öJíÈ5p{¹ÜõEZÀ@ ´PŠáŠëe3·;{7éÞì²3wÐSHŒOšhæE_Ô£/±>õ¿01’ø >ødª1ÆÄD¿³»G ^6;ßù~¾¿çûݹoWßzõ‘¡I4166U„gbÏLMÌLM£j€™x÷D319vb|úþW“»äïÚ¾ ø¸ÈppjsXÊìb…ŠuŸpØÚ4 LñI Ä^Ó5 ˜¤c1áªU(9ÊDKÅ¥•† nHÕiˆ‚Z[5ÊH‘0›bVvî;Έ°+à (R6m*¹–%Pó±¨)Ò¿eÛ ÉlWæ `\”U{·…,¯wéX¾Þ•.*¨¾f“f,Þã<ÔÎÇ®ÇÈÍiù ka¤éð˜×ˆÚF€HLiÀiˆº_¨É—™DåѪ¼›ØŸÈPÇ&òQÿ¸üU+ÐýµªÙàÄdË«C.fÝ>vjpy¯³_~øÜÅ„®i«HnõØ@(C™å6l‚N‚T¡v•ó!|yþ˜9·råœYE/2*²Ž1ÁOõÀ¼gBà0C/ºN$h$å/ɽi@§ˆÌ"Q#LGñOþÔîS®—WŒmîMÍoê)ù¥vH>Їºªëònϰüy|®=0FÚ7ÃØGeü19$îÙ-·zÞ–ŸéCòƒtïæ§{ç;¶Ë²Ö^–&åQYЪj8t‚}e±d^_X\9×r±#kЂ‚„JOŇ³ùEî< =Á‰Ëà YóP•šHõ§É„ç«^7¾ð¢¼âb¶†\«æ¸¸Ê‘<9p$¥Ú…?ðªjÀg>4ªpä{EÃT±8ñÕ"<×EŠW­£w pjËå£ýY0S ¼†3ˆB:&|5¯1y yo°_þ1@;ty?Ùßìºg“0íSlq³­¯AÊ;ÊÁÃdAM~<˜Ù©ê1SuíÃäó¹ØÒ}¢™3—Ï^9{1ÆîPu¼F¤ý?Ò€*a]–S/õû·,˜¢¢ 슪µ&?O …é±TáYxgœfOŒo'¾¯ÅÙN\eaÆìgÅÃa`:°çÎÍ]2Ï_[žËÂ÷Îôà@ ŸfTSm+™&`ã“TVÒGäwúùÍî‹ò£=ÙÍ¯Ó ]òRò |c°O.%SQqS‰V £P¬ïåo‡Üdè„»&…1óºô¦7`m;k €ˆFÀ¸jÿÇão5ÍÅå³´dž™Ÿ†`{f¢¤K¹hû¢¨áq ÷Øl¶ -ÊcytØñ¼ÃF,=SFOäg”£¯ˆÍ\Tò\PŽ& Çóðzaf£kŒÞ¾Ž‚Ž£nª¦ÇÂáÙ #à†@ŽlâÄ‚ØùÐ’R¬aŽ0\=ŽC†§ÃLÀÁANàÕÑ2gKóGylQÖ{S©Žù?窒š…9A£5 ÓS%„IèíÜÞ`‡%J"w'׊+!1yºx‘§£s¼§“¿“—FA~NŽæäTÑ*6gßÇÉOEŸ £IÇjrÅN.”Û,+ñ^ÔwâŠxœë‰ú8A^Ú@ÁÈÀÀDˆ - ̬ Œ¬ -2R3óª6ZÕ23ççäLÞ̼¥È؜̲„‹ÄRØÌÎŽe3¯Ä FˆÌÉ aÅýâôVxœ•KlDzDI¤áƲh—®>y±Òˆd}hSäO-K´©D[”§ªº]îÎ’[-g7³K© P°-zhRÌ=ȱrIŒÞ(z)Š ´@Ñϡ襇ž ôô½™%EIŒàΛ7ï7ï½yoæ?Ïþ´ñÁøh>¹ùù;só‹s9–nå—æóð]Ÿ‰ÊÏ—wæs¹OyëÂm›{°2Ê (»Q8kAäƒUeÖ8¾€Ð}Ÿ…à;àòˆU˜€¨È_ \mâAÎV!l„s0ʉge—ÛÓo¥’œE.þç\¾hÔL«/íO¥RË+ÆJ±°ò–Q,,¯¶KÙ=Óó|ËDF3 ™ˆ°ˆGû¶+' B¹£cñÈÓš^3#«JȈ”WD Ÿõ^k’V4aŽqÛ59.à(4K`FU" ŽlÚŠ[á& #Û ØÌÑ€«´àëÑsËZJ —WZ¾hDÌ6ñÜ’#}C— jëGy¯ïÆ×˜Â¬Å¤adFñòÇ}¯ÊŸô¥§;=MšpZ×ú:t1Q³Ì@þ¯oô ’Ô#—¶€C ý–’_OLÜØ[ÚŸýI%Ñëk›+뻫…’±Zx¼¼»¾ƒ ÍDæÛÉ —[^Ýfp¯Ã´©ä™î¤(f”>ËÞ‘Ù¡2ðëü#Ï/g§f»„”VT¸åý™þ'ë[ìIŽ"¤ ’[WûˆJ~˜yÃFB”±¾öhëÑ›Yž¯ó½:«³ì­)pkÇj˜fäú¼›´EÞ¶dàÙna· LI)¸mÌwå$`Þ?S0ëAà¹úÐDUzaŠÆlª{ <8ßSªÚkw7W² Ï,ùÑøuyi ™Ø.<)<—_ ŽÇÐ?ƯIc ‘Vt“àÔ¹E;R6Èo&G ˆ(9yì&$·üZp‡GÄg¨ÿ4ÎŒMÑVä_û Ê‘¤|ØýÉq:Ôì¼JAÉÕ¼±²ó¦»z¶ÆÝ(ëLÝÕ:ÑZ¶&ÑݯÉ¥%Ï$/ñæÚŽ$7ò¯£„ä Ÿ¶i—û-Ã2AÔì…ÅyJþª¹ ‡\/£ŠÇ®ÇNBvŒ³{‘ võàåé.nN»Y憋ƒ2ýÛ«hÉiqÔ®ééË6†ß:!°¯T\^ qh¥M^&ê×ËcY$Ì/äŒóv¬äçZòsòsÝä/tO1rõDÕ£àÈ>¼ û3È=ùÃÁ±Aî·'ÐKÑû~z\ ^”¿üY/%×'™É?N®öçÚÂq®ºa;ר Ás¸o¯•ŒwŠk;R¤¹þ=<™†©¡Î鋲¹ûŒғë¡ïW‡,¼ eÁ̃8ÇÐÄ?ËÒÅ\ô|^Û¯—=öâÿxáŽXÝ#‡:8yâN–È!ÑŒ‚–=“¨ þ¯¯¼6kG¬@í Tc¨‰p¨¿`½R%Eu;ɱW2†aUÇî"ìz@ƒ:Äx–ÅÍÆ³‚¡j>ú Ç)ÒÈ÷<Ür¬¦z ñª„pd ®\N§c+UL¾/ßNßv°{ã]¢|s²ºÑÙÂÚV;8±+Å8Œû§I'£üí+ïK1<|¡kR =œ§î{dakfua—¡îÚ†#üššS¥ñÔµqãòïCË _–IYw%fé´àoW@þb|ˆªpïã’ü|gt»GÒðP¦Â½°I½Y#f¨q”ÔÙcÕ§»âD*8¨Ö¡62ƒˆŒê}îwi_Z¸ºbh°³Ä ÍsÉðdvчœE+h¦ÁËÚ)j™S¸íˆ…¼~–¾:«j›I-¢yZnÂqS/7ý.hWe'› QÄ¥µ©‹+®o”ž;Ûï+[O×Ö Ù=4¡åýð8xoà*Æ^ œúŶh e‰*ž0ŠËoŒ§[ëëFqªJ6U™Œ3@£õýLSÄ\¥wKg8¯vݘ»Ø¦¬À0hQ…]”×4b>Ušno˜Õ꞉»½‘JÂËwφVç87W¨\'ð㸲™í#´ü0ýF™×:ÄzŸâ˜$“×ÀÓ«·åO¯>ÿ̤óx{v ‡Þ;íKË©ß;å,º–ÓMûõDù—ÌØ¢âtý/Ïz}ÔÖÏã]ó?Á.ï÷4;B¸º¶]ØÜ¡"Ú‚c>r²2M€qÂgèe5XQÌÚ‘›(µ%N«žEÍX,ÄÁ;Í~.·zSÏÛ]-?Ãu)ÕÎôÙ‹›×z—°`ÏÁ‹wF~ßÓ³$§Æþû }2W +ëXˆüŸ˜ö à(¶›N§Ò]¡#&úõö@¯ÎÈ%¨Ëßd§ÿÇQ³äëŽ&xœûø:p‚¼´¡‚‘‰>(X™˜Z™X(¤%æ•l´òÝÜ)š.  žæŽ\xœûx(p‚œ˜±¥‚‘‰>š)[™ZZm4QSÝÜ¡šÁ ÖÞ [â xœû¸&p‚œ¬±…‚‘‰¾±¾¡¡‚¡…•±©•‘¥BqvjIrÆF«x1…ļ#=‹ÉkÅÔøÀœŒÄb…D®”¼œÉź7—‹?æÝÜ¡šÁ ؼvíixœûx-p‚œŒ±‘‚‘±¾¡‘¾…‚¡‰•©‘•‘BzQb^ÉF+~f–ôœü¤ÍnÌ‚Œ¬¹ù¥y%“XnL¾Ç*±yk=ûdi¾µ`“óíÙÜÅÏÏΡ˜—¢`¤g1y­˜˜“‘X¬È•’—3ù¡X÷ærñÆÉóØÅêºl+S‹¹ã}ƒÝãC‚"ãý}<}\5¢3ÓÜ}üâýü}Cœ=ÀÆ€üƒB\]‹RRRÓ2óRS2ó@NÐˈÕáâ,ÈNO.‹GÖ Ó”VPÎÌKÎ)MIU0·h²SˆKdæ•(¤)Ø¢Ú«j+HådCnaVÛ¼|…ɵ"rÿÏQc©|PNbrž'„óPNlr<;+T‰„)'ˆ¡É•–É5YWRUVA7QA%1äàâ̪Ôü´øü´´øÝôT‹ÍA’R,<¡Ž.ñÁ¡@L®••Dؼ\v3ûæÕ f“Cvî’xœ»á{Þw‚¼¨‰‚‘¹¾©¾¹‚‘¡•‰¡•±ÉD“VKCÃ[;D7»‰M0ã é’Jxœ»á{Æw‚¼¨±‚‘¹¾©¾¹‚¡™•±…•‰ùD“VKCÃ[}x&+ðl6ååàÜì&6IÂÉöîFxœ;ãûÐ{‚¼¤‘‚‘™¾…¾‘™‚‘¡•‘…•‘¡BqjÒF+F®ÍN\ë˜6_âý%4ì ½å€xœ;ã{Í{‚¼´¡‚‘‰¾¡¾‘‰‚¡¡•¡…•±±BzQb^ÉF+F®ÍN\ë˜6_âí`Ýœ.œ* ›Ÿ«ïBxœ»æÝá=A^Ê@ÁÈÀÀDßÀRßÐPÁÐÒÊÀÐÊÄ@!+'1w£U›KjNqêfAé£\6 jç|xœ»æÝá=ANÚÄRÁÈÀÀDßÀBßÈXÁÀØÊØÈÊÐH!+'1w¢U³…‘ÑÆ­ÜR,©9Å©›¥r£f‡ë…Rxœ[ø'`‚¼´¹‚‘‰¾±¾¡¡‚¡±•‘…•‰©BzQb^ÉFëÕ¼›Eù¦K †æ† xœ[øÚo‚¼Œ™‚‘‰¾‘¾¡‰‚‰•‰¹•¡±Bqfn~^ÒFëï<›eø27wó[qn•œÎ³äþê†Mxœ[¸Ðo‚¼´‰‚‘±¾¡‘¾¡¥‚‘‘•‰©•¡‰BzQb^ÉFkYÖÜüÒ¼’É,7&ßg•ؼ™µž}³ _ãæn~+ÎÉ¢’ê² º‰ *‰ÉñÉeñÅ™U©ùiñùiiñ% ºé© ›m$ ø™ä Ÿåwxœ[è×â7A^ÔTÁÈÀÀDßÀPßÐDÁÀÂÊÔÒÊØp£I‚øæâü¹þ éï‡xœ»8Ýo‚¼¨±‚‘±¾¡‘¾¡‚¹•‘¡•‘ÁFQæÍÌú\›[xrn6\Æ1þ þé‡Txœ»¸Ðo‚¼¤¡‚‘±¾¡‘¾©‚¡©•‰±•¡BjQÆF+gñÍ’Ëøî 2ëˆ xœ»Øá;A^Ô@ÁÈÀÀXßÀRßÐLÁÐÌÊÄÂÊÈt£ÉJ^æÔ¼²Í7yÓ'û JOÞů½YC ”}³ä2~ú'GîHxœëð]ã9ANÔÈRÁÈÀÀXßÀRßÐDÁÀÜÊØÌÊp¢q#£ÉÆ­‡Y&ópðlN`×"ì Zê€xœëð]ï9ANÞÈBÁÈÀÀXßÀRßÐXÁÐÌÊÐÜÊÄP!«89#±47q¢U³…±ÁÆ­‡Y&ópðlN`רkë€Ixœëð]ê9ANÚÈ\ÁÈÀÀXßÀRßÐXÁÀØÊÔÀ ÈÈÊIÌhUÁlal°qëa–É<<›ØYù6g‹Ê ÙìÙìxœëð]á9ANÌÈLÁÈÀÀXßÀRßÐPÁÐÐÊÈÌÊÐ`¢I³…±ÁÄ­†LyIŸMb™ÌÃÁ³9•os¶¨¬ ìXXçYxœëð}á1ANÌÈTÁÈÀÀXßÀRßÀLÁÈØÊÀÔÊÄp¢I³…±ÁÄ­†LyIŸMb™ÌÃÁ³9Ý“78,ÈD!%5-3/µX!Q¡¸$±¤,­XÃHS¡¸²¸$5W!91'G¡$#±ÈÊSHJU(/J,(HMQÈÌ+ÉJ¤r¥äå(8»€õ‚µN–Õç Öˆ†«£=YNTZÄàâttŽwöpuöŽw õs†ª‚+’`ÏË+›ñàðplÔ±[V¢±ÅyÏ·‘ȶÞN4pš<¡ˆÇƒoä–d>—/–s‘·š“W‹5¹üLB.Ãì‘=¾¿1Öó´6[mY€_ÇS^£mo5×ë6ô«µ8åq÷xÛbKüµ¼ÞT¡ZâS ³}Y+p©žè®SôîáÛs-ôœŸÃ´¯†ûa<ðÍâÿ|î8»¡Ú¦eËMÓØè¼ó?Âì&'psògçSð%…¿¦‚xRð#­¢k,LCoÛJ¢‘˜‹h14þ`–Gu–Ág,}w-JW³‚$ ¥È=’Œ¯jº¡‚mB t vLõín£¡ÂÍþç2ÐP늺Z÷ˆÄ’ä’c(ªGÐŽSÝ4< ëLbåì’P9©Çò‡|Œ_þ/Y“8) ? ņ߇èWšM%:è«Å²”—+ü‰Ã¡ãóÐÖ«¦15M¶£IÃâ «²ÂñrmE…ªtbüÀ¤ÙAJ%®º,ŸF²é ÿ Še^æ;×ÕÑß'Ëî…xœ.Ñÿ¥IÓH‘Aq23‘´1nb±åߓѓð\ “*³1 ³@eœJá=xœ]ÑJÂ`ÇQɶ™sQ`Ú‘nBMJ*JÐÔ4¢.oL>¦ûtcsîSØs|ÝôÝ{z€êºè¦wèsFPwçüÎùþçÿÞ|©= ¡L,›xáP4ȃ£ÊÅœÚËRnõ#œ™iNN¥Ïë *rùtžßÕÌ1U0œ:®“'®ÙJùÏÀW1DM.±í‹*ç¨Vo´®ë™f¥SGV5³Mom¶üº·ç¯ñ5<ÔL Ä‚}ІàZSPåêïYP±¬à 5瘦—ø…hAŠ{OÜ]0éÿƒ ËÁȰúp+ðì*A&ã@qä8ÂÈXW³þaÙ;db lèWdN_×Ò)èÚúMŒÌþÀÛ2A&cKÁg.v¨.¥h)zOËb:T“?dÇ›‹ñ½ˆ‰íf¥xXB æ”É¢¸jUoª—™EÔÙÿ€¾Å tO:òtésã~¹áexœ;êòÕyƒ ëfeÖ ›ÿðzŠBŸŸá ‚xœ;ê2×a'ófIæ;Œ›ÕYç°åä')d楖Äç•ä(ÄpqrN~Ài3YšËŠÄ).)ÊIN,Q˜œÀ¥Ï–íç’’öu1uËÌIUòu1433ƒ= AŒÉ¹„'¯äjœ|‰KhòaîXM.GçxgWgïx·P?çàÉÛxL6sñe0N¾Â%Àž ´¶$>'?/}s>ÿ5!¹±2óå‰Sxœ{áñÂc‚¼ˆ‰‚‘±¾¥¾™‚‘±•M4n`22Þ¸u³2ψ ÝnŠxœ{á±Ìc¢S!“‘ñÆ­›•/oãŠxœ{á1Íc¢S!“‘ñÆ­B,“¯°ÈˆWë—¥ëe(”¤å&'Y1\œ“ÙYµ6›°šÈÞç€l‰xœÛkßi¿A—{s"wŒ <äxœë´oµž0ã K6…²Ìb½ŒÍsØž3mîà<ÇȨ9ù÷"™Ì4…’Ôâ•Ääøä²ø´Ò¼äøâœøÌ¼Ì…É ‚¢“o²òHÅSR44ŠRKJ‹òŠ2óJt¸8'ŸãŸü„Ga23¯þdC^YfδÌɾ¼ ̉e“ÏóîÓ}|† zóA¾,u4 3RSR‹âŽ‹ÏP°U¨L-¶V(ÉHÍ›|UT.-¿H!Ì38>ÜÃ3Äh#Ä@k99&ÿcOQˆæâTÎÌKÎ)MIU°)®,Ö/©,Hª²Cë³SˆÕQˆ9\!hÂ`°U,ÐXL'Ùæå+hnVNfœ|YÄnsž¨4Â%pzlxœkµ>gµÁšis“°4ž é4xœkµ>bµÁšis“<“xIjQnrb^†ˆ•™_ dÅpqnÞÄrY+¸)ìfxœkµ¾fµÁšis“<“xIjQnrb^†ˆ•™_ dÅpqnÞÄ¢Ê.–“™WZ¡U“V”ššTœ¢U“—Z¤'{ñ¨O~Êm¥—Yœ§^¢P\ZP_T’š¢˜—¢œKJUÈÌ-ÈIÍMÍJhrqrÆjnÎ⑽*Jã=‚gxœmRMLAZ;1(¡"…6(Ѱ ˆÑôg”@SÀD°Y¶»³íÄíìº3ÛX/=qò"™³ož{õb‚'/Æ‹'N^”ðˆOûÓŠþE Çþ¯ü(Pš¤ˆ!R‡×®ÈÙ@j©˜`ÖúX¡Lc&…ê&å¿.ýnb2DœÕtU¯«¦Gtµ"ò+®×`ÑUȪˆ€ hÆÃý휺®ìÖ‹`bp!W V•ÍTM1=Š,§/V(*…­LNiWí4@GYj]¾1Ä0É££cœ‚‰4tžWdÕÍí=uwKÍäó ðc˜è–g x¯þ÷aiòOàVâp¥…Pܵµ™ÝÉ>Z›™ý÷š‘´gJ‰ÖÏ«+>Rs0LñùøéØ*÷…æy:tÀOBûüGèµèmË»v:({|7¼$Á /Kx~ ÏÃÃ>žŠ„ùŸ©ëQŠ@ ŠžízF|#óDQ³Jq'bB5€È’"~¹É?LÅü¹ÂSyô>²8ÜNæg‘ Á¦øht¼OæëÑ?”Èä»Ñô_½Bgê„,xœJµÿÁ6ß5r9±sº“i HEADER_TIME³…ime“˜sys/tim“1N³€~parse³úò³; Ä|dá…xœ;h¶ßtB£ùÆâ]Œ›3™¦²°$§nþÅö‰i³5› å1 ’l…3xœ;hvÃxCŠàæ³B%& 6î…Jxœ;höÙx¾à gÏ è¤Ì’b½äíw6Ÿ*á½[ è+xœûlÜf8¡€ÙÌÈhc±%çæSœQl›‹8r|†æNxœûlÜi8¡€ÙÌÀrc±3óäýÌu,Ù)©e›MYÊY7ŸâŒbÛ\,ØÀ‹ {æ2xœë4|o°¡™%7?%us=»ãæã‡øepêSxœë4¼m0¡€ÙØØpcñe¶É~ìêBÅ©%©ye 1\œœ@fn~Jêäzv=áâ’¢œäĈ8ˆ]P9ù»Âä7ì;7ç8ÄÀ/°lOxœ»mpÙ`C5ûæfö&µfçexœ»m°Æ`ƒÓæ¦,¬‰EÅ©“%Ø“77³[3±¤äå(LÞÇ©a¼á”36sqòོÌxœì}kcÓFÖðçøWL·Ž]_’PØ6©é »!áMBË>„:²-;ZlÉ•ä\–òßßs™ÍH²ã„Ðkværæ~æÌ™s¹÷hv=¿î‰gS7ŠÄ¹3‚_1B]E±;®÷݉ë÷]?†´Ðsº#Hvü¾è…®»â…óÎxÙ@®ï†ÛÝ+ñlÿ•ØžÆA/ðb£ñð>Ay]¿Û Æ'kk?¬=\{E¡ð¡; ÂXt§ÃHÄøi:~ü}7~|ô¤„ÃGœ­L®Box‹ÕvE¬ÿøãF ÿÞ§¿ßÓßô÷!ýýþþXÃÊÖèïz  Àï}ݧ¿ßÓßô÷!ýý;ýýA< ]WƒøÂ ]ñ4˜ú}'ö¿&výöùøÌ‹öÑN!GÔ ½I, n€%#YrKÄgîL`fèÃÀNý‘7öp'n8ö¢q0zÐéšè{QzÝ) ;ÎÀ8è{ƒ+áÅÐŒ{¢ž÷OÜ»‡i/¾Î ½^ì9#ï¿TeCÈ´™å Q]¨Zú8˜†¾+xÚ†9k•··Ÿì<}ö|÷ŸÿÚ{±ðòÿ¿úå××ÿþ?UB-Y•”,82kßz1Ô¿¶¾qÿûÿþà ˆ3ò§cbÏÁ… ˜ÑµÊ…rA.>ŠÀ1 =Ÿ¦Ú£~pÃÀO/t¢3Ø_GÁX$þ.šÓ($ä7Á·w´Ê'ο²®±$×ýÞ¸€.›p•vañõ)÷Wü-*ù´(Z¢>‹ÖšÔPpâ—“øŽo¤”ÕZW»ê]¥ŸöºMÌŽøþ¯ê´··ÇH.êV$õuƒþU«ìÂ%2‹¥õ­ÚŒVÓy1ƒll.lX_!ÎzQlÂïÉÉj£zrRI6ŠP$…ÃVi}K~Ѧ/AoqüW-Ê6V+…U ä°+’y¶ +ð4¯Qå º]§[ªJÄ:< |Qü!âPÔûBµ†Jpï’½et2= €hë==S2“Ê€p_e@I@zM¥€Ø áá9ëR<Û×]8W‘ 2 ¡8_%vŽv^nnÊ#æ›bR½„ì-ÇX–§ƒ€Â…ÍÓÇ9…c@taªqh.éxsà`+Ÿ¬:'•rNËqé)R„²Ãupm‹À9¸Úh4 ¯!Ú"z s ÿÈ‘â܈XµîS¢™;tªv+'¥J‚§Y4ëUÙZ*`Ô¯Ó,ü¼@áîƒËܽt{ÓØ¡óW£Û:-±î"nd8~J²C€Q4$Í“Õ7¿5ßâÕ“J³Z*‹“?ÄIaE¼V™^Ÿ¬6›@ ä§à,@|Ã$ìtm¸Kdm|üE0±åæo0vÅ'Psó=ÀÆý“"˜ç¡ÊícEm˜„Oñ’Éž4ÕÃWV»Ø¼–fP(³‰°Ë|‘òôVá™·ªoÌk•ÍØx¼ X¹ð_aåc˜+Ô”ɇ0€‘næÞn•ÉJP%£³;y÷4?HV-®zQ–ïÈ2[$¦6ø=v k#D~ò J+F?0é’]Éþ ~…è™_õ?¿¹LŽE1‚pL>Á© ã±ãO!×1à¿ ›ÝwÑ™ @ÒS¬ì24ü7›¥¥—¬n¾·./­K|ý…]Z%*T°öÕ†à­Hû2âH¥@Ó±º¨¡ Éýcjw:¬;R”æCŠâ0òYÄØÔ5UÔó{£)‰8þs ÕsÜ\¦ñÊuÝb¢ÎÆ0VH´YnAš6‚NxãIÀL‘Šª)špÔ%ÛR†DLÄ…m÷ƒ äãã´¯›ÞrÒ}þP <ùùœe<Dã¶YЉ¼ÛàøáTÒÌ î¯ÁTÅÌÒOZzФ£=FüéNFN¤"8áOÇ]z Ã7ÎB[Ë‘Û/#rvq8óÖ9/—s(×á:€}é{áœËŠYâ(ra¢ú Ž€ô7¢èÕÉüw²^™S!ö²•÷Ëô@çx\K~+¨·º/ò±ËhHÞ Š¥Dî Þs”ëeÑŸ’„F4íF±OiáDo ¯¸éà œ¸=žØïñu2Qµ»A±«‡Îq(ž;ßà¢ép³/–Èdn•¹=/éHì@œïa»ò½'G â~ÁeÄK‘)Þô<ùÒ Fxøÿ…®Â>!S}Ïe; ñ¢÷Â9ƒ"«ë?Þ_¯¯ÿøÃªƒy€=ƒt å6ë•s¿ášÇîúÛ|SzËo"ã§,~J™É3—çi”äoT›ßÖ›2žGÇägWþnZ±û:6&Y€È/KùÍ)wÞ6ª'þI…d*Í““õ“ £JLýćqbY<²wíÍÞâ»KIC©Ä¢zŸ~YsÓ¯j½œj?¯‰—G»¯…¼qó³Z>BÔ*Nâ“À/ǰTébK4ìyÈÔ;#9*Qz³ö¶-àM‡$T„´" |µ¹c^뫸3ú^èËÇ,¦Ö3½G":Àý^.Ç$ÙHÏ„j=¡7ôðÂe ;ƒd÷´`%€rå®@Ž”ëã±uNëˆÛ+¸+¢ØhÚƒËë; ä_Œ(^Ò‹òýhäêc ühcáø–Æ#WòüNU·ð!ëÔxâÒüÁ–x} 3_<$„–ü5ØŸ*%yáÚi??è´[‚~÷åïq‹ŸÏO•èÏ%ñê~µ¢9”T¾<镟 W­¨âå•òÖÖÊ=ù‰Ã€ó‰| §‹sÍÂs8PFÙˆ2#># Ùl¨6Ù°rÝ/+žÃ_ÿ6Ž‘³ˆK¥T’?È\TA|lNXM} £¯ë1!`BÓ,*ëMç¨ñ;d'Q&¿F>¨¯ÒÌ<2àå?AÖ‘/ê‘ÙhÕ¥¼üL2ø¨U¦rŒ%ï I:ŸYô…â‹@ ƒæ9Ú”™Ö+âÀ/Žþ}‡yÈã”ë¦J¡eÚ‡™Ä yÚå7*âÉ?Ÿ½|)~µïáꃛPþ¶Þ; ¥^Yb-¤#.B<CëÑ–íúÜ\ÈQ ݤ`s÷Ýœ`$âpÚ›ˆú¤Ìef Tz ôvýƘ9\Z I!ƒÇÅ>♸ñ4ŒˆÂ7¤ìR€a9$ ØJƒ”kVpjEZ ;ÏYƒ¸y‘Ö'ö;µ%‚9:“–¾*¨ÒhB1D®¿ì–xºÍyÈ3u.[e™Ù¢„Û|½¿7§8\ÔÙë Åø­½ôˆi)”gÔIÙè¾Í’j哲¢- ì€/YåŠ×lµ !V¹Â/AëôT¯Vð††'Þ*¬°\"ç9ÅŽúD^-,3o-Íá]ùùçŸßD—o«•Í­­j…Fxk‹àQ5›9Ý´tª=sRÒ=&¡:  [ºZÌ~ìLÈd™a dÎG0¯/Ú°¡YÜA„ÞdÒ*òx!võ·ª-òü·—¶Ðóß¶¢¿½ù­c’QoÿÖùÛ°\¼iK”†Õœè,Õšïþ6™Ì«Y@Òüý§o×ÄOÉšzk*-JrD¨a@¿LÅ ¿|ëŒÄêÑ/‡÷5±çùÓËŠd| bëC -Ü„Ì@Õ a¦gè•M ¥ €Žô:ª†Ö骮 îaœ»îWlYêëúï(žÂ‰–vj£ D‰%;0´ï²EÏž£ 7HìÁ ÛïòJ‹¾éò wÀnÐý|ÕÜÛ}|ðøŸG@e„pî X"]]P®, ʾxº·ý ò¼Øþ׎ ʧ¡÷&—°.•m>0%ªÔxñ2§÷Ž.á/·ÛÿÚ~¶ÓÙß~±X¢/SÖIÇÛ‡sRå;Q«¬ôk’¤£ãÃÝýgV9‘ÍõøÕ³Ã—‡@¥•pHžë©ƒ2Œ¸2Õ)tæ:}äà‡$÷p—E4©ÌŒp#5­âIឌ?Eqß g jÄóí_ •ÿ>êÿûåÎQç9I÷©¼WQ3¾š¸åG%‡A¦ØÑñöq¶.¾l¡£ã'íÎóí'¨”`–ˆû0>”ߊ„2 q$5?…Bõ惑õæ´™&„[<ß@<Ðç}«ixȨx*óbçÅÁá¿SµÝq^Yµ™MÁÙš5lÔ„ôXS‰Y#½»œ3?žÏžã'P.]MJÍ(ðjÊØ¦¾e’€ÊäŠv©fÂaïXîÙ¯»ÇÏ;O«=\ØÁU] ?€Î Û¯Žxˆ)ˆ;µ° á_ÿU8ÜÞ‡B…½ýÎQawÖÔÞ^çÉöñ¶þ8jî¾<ÖŸ/žn¿(@5;¯ ;¯wðQJÜi·±6B …½'üÛ–?íÂÑÎqÑ€jï½z²‘Ûûû»íí½Îóƒ£ã"ÂNñï9ô99Ü›L)PèN½Q³p@æáÌD¡Bì„€o;ôúÊ8Èù8 }>âkÖ1ÿìËKWáÉÎÓ£Þ´'üéRÈCX˜Dô·?ÀŸþ¹‡?gñx„¿ž?(:èáO‘<•œ¨ƒ·)}EpïrûÉçU„¸™à8±£~à ˆe3ð0£œ€añWþÀMØNHÇס[&ŸtÊ“!‹úR(3\Ó¨ØÂÚ…”8aÿr²PùÈ)S ª4 Õß×':…i NïÌí½ƒM¨¢û]êFýÎÊ ŠHs¨'=/˜Fr˜kÌ·µpmÚ+“–€^¯(³è¿:]]>úUP¤íºW‚Û¬0¾wWÖÒ_’Q,‰bì¶­ †>@ìs÷3±‘ Xï#©Ž¯?È®Dšg3B¾ ÆÈ&Ôˆåû¬òÅü–Æ×*d€D(tãK3ÑJ®ÆŠhÁ.Ü)øA‡¯i- Bã¦Ü‚™I­²¼¸h:ÈÄÙ«±Õ.á…šâÇ-øÅÚ¢×s«× "ˆ¸Ô)»D:%„qQ4Kô–ÇÌÊDÕ@Ï fÄ7ß‘;Àç; :aW»ÄXÂ¥È|ÿâØy—< š£ÒAK—_Ù!’Cï4“Iñ¨wYX›ž Í-w×" è©È ~eä9ÿBQïÐé¹5È â°A@`v]d¿¡hK õeG5áÆ½´ :ãôzî„®úcR9&5P&ƒ`4 .¢d‘vŠZD¨´Üèíä(†N:a?jT$>i•Kï| E…s2‰¥&È)“A&•Md†™4Ä‚e…ò0ÅÈø¡l E³ A9…@Íd úÊ6¶5Sa*ËZ6“dlÙÆáR¡N'2žO·µ ÑMÔβp懲:2ù1¾¬J%¸P‚Ï+ŠO;*JÇðY•7åäDË´ƒSÊòèË$Ct™Ôa" †Hÿk± fO"s–©„ÊW*ÌŽ¨ZnM©Ä‹ùáp:4PƒõyCŸ”»+8Ê‚ÉêLHºú©„ÖI)©79ÎY€ßgàšæ2  ¥6U É!mU++g«ªl$çÿæ·ÖÛj‹_ʧJGÉ(‡èšMÊlõm½/ñU1a“Å¢}5ô§¦½Æå©W!Nê{ÎÐðEô PKÃjºõt7êô¼B# 'F¶ SyãÂM²ž ê Èߊ5¢²uQ‚hU xæ‡N‚:Ôª2dY®¤ÇP·sÎl…T@þ¦Ú—Ъ‘£jM…“ éf%€rÚFgi¸oXlÖ§õ%N ¤a„“ ©€ü廯É.»š4CvgvDê>S­³2˜F8 ê ¨a4ˆŽì(Öyù'=og qŽçÅäñ@eÃIÐ-•“‡J1UŠõe~¨Þ¨|Ù®HRËÿ¶?­/=2Â'Ál¯T=IÏÔÑZM·%“Ž0‚г³X_æ‡9Fª¶œqbÙº,¨¾t§"ƒ ÿ^¦ðïe½ªÊ($,ß Ýÿñ'écM•á›#3YÃb%Fü~`Ô$k—zæo~«×°™‰Ea½'ȫȜ÷ZÏçê¥80Õ»)¬º®{›µG¦ƒ£-@fä̶Õ0÷°5ß@¯Þ6;Í¡;}¦è‹™©±_(Ê+˜ ¬P¬V„Ö:@%ݼû ןŽÎD­'Y ¥TOQÉ!ïšT®‰²l´š&ȶ¶åzõmÄK/T!ù›ÚeœYn0&øªó# ëÞœ9gW‰Ç¹SARù›j —’ d‚±jÀ3?ŒpÔ!ÝV.—m+°ÜÀêãûWA‹ÖÛåþjv°œ×O±OrV!\iê|¥á…˜\qôw:¿õù¦£¬/óÃ'A«¼ È_{Sšmâi´Jn8“ÓPM·<cœÎ:2•Éþ´¾Ì¤$I‡"0[˜‡!ÐÙ˜?ù埊ÜÔ¨ãïÆî©°×ëÈ©Â̼qñ«_æ…DΆ¿øs¦9ẑá#bú«‚N‚2tVs€Iž×¹kBŒ ˆI8 ÊÐY”1:C9)Õ?|,¢BF@þÚë'áaª–@„œ;¨CjÒ’¢9s&™ \$N‚:¤ò7ÕJ A6Q20ª&tëËü0ÂIÐXšg±î„”íM™¡"³>­/óCWÆßIP‡TÀî·QwÝ`USMIG¤¾íO£ÿc&á$¨ɨ0oœˆñ$ˤÃIP‡T Ým.ªúÌܬª Öú2?ŒpLÏ…³-gFåOuÈn¤ÌÆm”|°ªÀü0ª)2SnK$kS•Éý´¾Ì=±üu(ÓUî‹â­VSMHG¤¾íOcqŒ™l„QÕ䌊b&r±Ü/ó纫‹ÊÞj.eÕú¶?­/Ý]tFûo8);3&‘ ¥Ž³?­/óÃ猄n€1š…]Í64'.eμŽMgK}ÛŸÖ—5¾º!Ù1fv2LuHä/ÿØã"Ëò€HuÕ€j~á$¨C* : Ëg[î˜ I~çÑ6Á4®&u3˜÷O?¨KÉm‚”ûe~a=kô©Cð¹AÉËAMAý†§ ÍŒH}›Ur”õe~á$¨Cº}És¢ÑDëu…ÊÌIGèf&qö§õe~aˆ©€üå{IÚå•i?U³Ê‰ËF[5‰MgK}ÛŸÖWœ‘˜uHÔþ°›ŸÝ&Æ]+Ô!¿üc¦u]²nAÙ#œuHTf^aä#µÝìùQ™=²FdêÛþL÷Ú|O×½7¡ûu]¤1Íf|6k&&‘ŒœõÚ?{ùéß2+*“i4D¦¾íÏü”õÙ#(Eª9-Ë‹ÌAŒÏfÍĤ#Ò#(ëœ=‚ZP¢Î¢ °TRº…VòÌ”yÅfÄÏ.’;+{N\~ÖLŒ £RYìÏüuaK ¤Ö‡=´©IÌ$Îù9…çYp^±…fÉ-0+{NætVŒÌdKG¤wAJ(g7xIuHäojÖ¹”œe–¨ðÌ#œuH·Ëå´5Òí³B* S틌æEFƒRá$¨CºAQ~{~Ç|¿O=— I;¤ò—ÔŒ²8Å¥ƒ:¤Ü)ÀeÐr‘!U 'ARùkSdID–„AÞ—ùa„Eu“Lj$£™¶L»&*©ÉˆMG¤¾íÏ óÃ'A2‹ÊßÔ€Ú­—ãjKNUsú™iŽªŸÍš‰IGä@²³X_懶è=ÉvræÚSóbR£‡)r̼¤_VPׇ±9µ„š[”ê ÈßTBƒ$E&«<óÃ'AÒ- g°ua;.1ãÓú2?’ù ï$¨C* S=MꓽM„ÿª©¥#Rßö§¹R(ÆL6ÂIP‡ô˜%5gÇå©D:¨C* ùÇî¿)¶,G€£dk²F8 ê ¨>˜ðszq޹¥,.̆“ 1h%Âk RZeL…“ aàû-E‰To* ô˜ÄÝâà ž¡©À÷-U¦¾ÄGhâ†}Ú'hšÓ~€N74ïùY±ú’ÅG_7\XæËcZ®¿ëÖÎéÝ/Á„…\¿œû´~i°ž/M|©žmÏú´¾Ì}f^&o¢Ô!°±D‹CbIÍòDš‘ú¶?cüÒ|½äQN‚êä3K²;û²®µLd¹Yßö§ÑŽ1?ŒpÔ!H\R±¹D¦šn\&&aÇÙY¬/óÃ'Ád0“&dGvÕ¬bn)¿iæÐìðÉiiM°àEY*Û†.=‡cvë¶êáU[ ŽvýsÀ£3Q´¦ Zw‹œ¹Z›ï1[•ò ªŠ­N!Å8òTûQ„%É¡ÆS!£§»¯_ìlÂ×™.Ûç.9!ÑÆÓî7Öx8²ÝùuûpwÿÙ&™O”P­‘ ~M°ÈKM¾º_"wþøÜ[èØ›Ó5º$ªƒš¾æòLZ±ïsô ÏHÉÊâÈ„< “ŒõšØó.Ì׈ѥ[õ:›ÿQy’³Ó¬ËÓr΂"ŒhÞIêå >[NŸg®&Ëü‡ljæøLÚͧv¾¨:¿ý@ŸÓ'vF7Å)‘¤T2­¸®3ªV²ƒ4w¡Ü´VCGˆ½Ú´±Ï¤_Ø×ZŒj ØÈì È‹b×ï]5”ª[]1 åäœ)š!Hbj œVV”^„qßN±‰la㱋ÛÏŸRPZ )Ù0)ž,Ù²ÌýÄÂRN'‘û פ;F8‰:9|Tâî#nIŒêE#R|5,òS)µ~ªMQ‘{]‚3µ»à[¹pAœÑ|+ý¸ä¤j:Ý@˜[BD2©ØÊǨÊ¿H‡W»;JfXŸyÍF·X¥·xàþ¼©]dim6¹4Qr”Ëf!ãÀU¹*F!e¾K·sÎV‚A‚v‚6}5Ù§•Y¯ËJ7…²ëÐã4RÏ • 885&n0Aoegôê‰*´¤êŒ§J¼s}ÈÃéaOKˆ[ÑÖTjÞža>̯ÑW0GiÊôIuÈ#ŠÕ»ûì*V+¥õÈ[¥Œ6y«di•ÏkvN¥Ì:yŒêm:0ù)“,cçªë^w¢î²Mâ ÇyPÇH)ÖáÁVCSÔåXž¹láBa‡«\-»#ìýƒ–6ÍN'SʬÝÜ%ÿ…}M¡‘5­Ün²Sctæt] *'bNXoqŒÔÛt!9wÌ¡F¯vF#¹. ÚKüžQÔŽ„ØâCÓ‚©¾^ô[§ð'1¨Ïä‹>™_…à úµÈÚSßS 9TR¯oIV2H6gc¢ S²E£÷¢4 Ž3ŽÑtÊõ›P/”ÍU^Qf¯m de«Ø€=Z+Ó™†.`‰Rù$mõ`öØ?\T#«`pR°¡]‡+$C-kªýµ0WÛ¢8Jå‘>*„ôn"mVªáLLºÆ‰iò¯vö©"rÑ%\…b Ÿ–{Ž‚¶Ò-dVŠ} 5›Uí,åŽ,SÝ’aÆk3]æzfvW˜ή̌¦£o²¤ñ‹¹4“ͰÄu®ÊŒì ¾™÷3ëQDÙaIpô7ì’ó4™Èó~Ÿ²Æª‰¹$”F£`üËYŠìÝì†H¬•Ï@a² E£+hÞ¾Ñ(ÎßÖ¦ûFÞ†:°šR!ÿAr«-r3€âãhØ**€]å6%}‚ˆQƔ̂¨¤ˆ€IöÙja…ШjƒFÈ!€µG޽5Ììr‰›w}OVçUNÑ%â:ÈøºÂ¶mktªÉ7œõÚ­'l«=©º —¦t§¾ï¢ywr:“¢zÙ<3CúæI0E>€JõüĽ&}]bb°)O·;¹íƒ £]t1ˆõK1ìwÉwæØéEÊe«|~ µÚ¬¨¶jjZÍB>5NEjZYµî3êêšØö!GTÉÀõÏ;¥÷œÿC½öž”Þëò437ù·Åû„Š1röÎo:S ]º4—t62åEÊMÚ ý={‘hÍ!Z"¨Ü”¬{â`ŒÆ‘ºô€¢ ÑN2Œ^ ¹ÁêöÉ&ß¹ÒN9€áÜ¢ ¼ß³éðcÃ>ÙCv"ÏFl´9FéIv»ù굸ßXèa/-±øé§ÎvýœÀ¶U¶,ʉY‹HäÙÝCðNß™ÄÜHÿJ•Ð'gLÒÂb£Px…ÚD/Áo^ïì¿Ec¶o~Ù>lý²½÷j? …ã@Ù ‰ðÂÀ'¢?±Ï³ê6†šh·á?²ð¥*5I6б? µ!Ä‘ëBçGÁ]nú.þÊ[ ¼´ Äí`š0ü°ÕOó•ݰÑÄ6‚±‚Š6~Þ¹h2°`ù@«¼õ³šZ#Ö¿¾†¹b¢„’Qlž,Us¥¡F g©Bª%²=e0[=êØ -8«^4=„°©reI cK`HYÕ©¯½Ù^¨ƒ™kö§þ;'¦šÐ2I¨EMÂV&’[[Vk9Ò}1,`<ÝÝÛÒ¸o6XŸ4W0”øFj¡÷ßbõm¬Õ²PÁ,z'IÇS ¾iª”Õ}ùëîsûe¬tNA$®nµD¬OvU¡MS›1ùMbAFžì'§0o …\ÓXžKVŸµ4õËø¸ê¦i×8aïÌÃÀ­CÍtÇѧfbÝ\° fþ{CVj,c¤4ª–~뎮?·æœzw®¯˜sÀ<ÖÆ¶j0*¦¯2ßOu¥r«Z™e[O¦¯PNÚTbK\âßpÕFã=Ã_UÃ3!y2ZäfwFyËÒ³.1S£C’`ùp'JRà¸y~ðb§ ˆä)äè’9^vRŒjt£7¡6Ì‹N$â)]r$>óæ.)&g,Jü‡/”†ïH¼‘S„ãÅ3å–dLç\VóD‚¡~f‘ò¤ù…eÙ‚D^Ç(°_g·–d¿”ÎŽ ²DÕ:Bëbˆ-B&ƒ> Szz™¹k,xpÊNY*Sª]¼y­‚3GMάH"¼ó$ψæàpiC¥Ã€Ð–Ömå†PuÊÌ\ÒÖQ…S%qÅú_özâi6a˜¦b’ê“iÁmdG’Lå¨FѬ$à²caƒ›3?hîôðààŠ«ÁaT©Æöƒ±y«˜EÉ›1Á鱕ÌîúœÚ¥ 6"õÒRó‹ZrsÚÉrH‚ô¦ÁvIN³8Ú®3è6¥4°mX¤žnÉA[¡4#’nÀ¹7¯¶NBaïy…¢œ2bÍ*#éVMÇž¨ˆ—­ÐI––ÖMêÔ¤\DÜj™ —"Ed³ÀIu£WOSàØu BK)*H ½¸¦>ñhTLàÏ„W8b¬LV%Ú'¦øãW»{O¨m Á»[_~(çy3œ&i(¶S€f}eψ™[W¬b¼f Z¶‚n-Ø\€F…ÞL=Yy‹Ée)õ¨h¦iQ ¦^ÿ y[a?^EÛ‘œˆy7—Í"¿»ÈÇ“ÔÊ9˜HÿiOÙVŒAeÛˆOàº~ÞpmAaëñPRi²@:¶-@Ow¶_îèÝLô¤àQ‰«dêÏ*Ó,2¥å“c:úMkûðÙ[‘ó¢‘UúÖ,ÓïZ»L•yò/˜#Wo7³L7ê×Ù†/•ÕÓ£+Žõã£'^t&dr Fáˆ/»¸[ûh”7ÿ®‡ƒÝn'j'/Ò­f K`&Ã`ä qŒ¥Q`FÔžÿN%ÕÞ#E}ï'ÜDóH¹z¤§½äˆEq‡q `$ «,f kÝ}|¤r' ÈYñ5Í•ÍQ ýį°¼²^Lj¶¿û®y@ç?.ï6á&ôFEAª7»?©‰“=Jµ\÷O»ÇÞÍê ŠÛd̄ټÚIY†tÀ…0ôúL®Âžôðž3†šÑl®É^À«u@WЂG<º%#‡—HQh™m&L×T/ xÿ–œ™îtHíø)íàQC! äµ’[‡Vég åðm4Š1™7lUúâ‘îjêÙRðõ]ÝÏù&NÌcf1ëM0§Rî8è½p€öØSž¨.7‘j˜?†[•M;¿y/ÒœÔôS—bM&\VŠKhXV<³5™‘˜Ôˆ¹Q‘Sú‘üX7ÑŰ¯P­«Þñ„rEeCh¦ÄG¹«RæßNô þÇÄì¿'¶E±Ñ(Ò0“oÁdYKndZ¾ôdš—­P0êm¾ùÞñÿh6 · B¶@Xi°|n‹• Ë¬ä¥æÕÒLÄQ´ïpÉ«6³¶$³Z¥¥ãí~î1àôÞ]à¶ã“Ôëz#/¾Ú,¤ša·KÌÎp…€Åö+o  뽡Vœf£Ëom<ê¤G@eS]6²âû& ”Á°Å1`í(ÉöNc×/›nÌV^£øwV;Lµ˜Yd&ã5ý|F­9c™Û’ëFÇ.;šF#Ídä² ¦šÂoý6j¤dbÜ­DEÊ-*Á)\iHw¢H‚>(xX4½80ßÊšI®¡?5í¤_×D<|Ì)›á˜RÁDÖaVÅ·­tf…‘báÎñ=>Nœf¾z‘ïñFÔÖÿÚk®H~!g®Èß9O=‚hÏÁYÊe-<0ex²êL’Slø&ÝmêÉíD‘ì…¡ë»!©aÖîµ'ÉÆÃûÈ}Ÿ\…$€´Ú®ˆõܨáßûô÷{úû€þ>¤¿?ÐßkXÁý]¯àï…ïÓßïéïúûþþþþ ž†®+Ž‚A|øë)zG¦±¯‰]¿×(°bÝéšÖÃG>y¿\ŽÝÎUÂ’ˆàV1òÆv{‚!ÚϺð­!>½.â-¤–ˆëtE¶×å J˜0i8Ø$s{ “'j¬ò@‡òy_V=j•àÏ– PÊs]õ"uÕ£T‡¦Ì %DânÊý0ÞÚ¢Ž¢|:Ál •…2 àÈP`„ÿíƒÑ,ô¤X™Wìö.Â$KÊ‹¹.úwŒÑ³zo2‘+Š®Á‘4ÁQëÝs¤ì–‘·t÷J?ã4¤AÈcå3ç•2®( KŒF·ÀÅÄ‹‰|Lɼ3Lä7h]êü> ¨$‹™b¬ê3vc§®]&S¹$sqÁ¼æk8#%L'"z½íO'#FÙ­k1et$a6όРÖÜÊF­åÄ­SÜxÅw0Üß½Œ•WVæ C ÖÕºØàU%ãYϧÏþÑõm¹$ã4ÇX©‚‘Ö_®M¹j"v®ô(nkœä–æID¦Õ“rÕP G/ö½¢Ô…½5ËÍò‰üW.7‡ÅS‘V×Ôc%G–"×+"g¾´ž)ʲÒrQÞ0˜žÞëYP]ÃÙ'Y¡ï³©$9GrþXZÝÓ[dK)fÓð"9§úõ¹Õ¯/Rýúœê×I4] |’Ø]8à 9†pO*÷k‚œëN'Ð ôò„¢šRn0¼• xÀH® pÕøUiJÒaHÊ^꼂cçBÊ\Ñ9I1¼\†$g„S6Ê8ÂÆŒ‚à˜GWxé[?2ÜÉQ4zxÐà¶@µž Ðnp(¹Ä'—r~pHO¬òOøœ…›—`Ä,]@ìuGøîžâp±œÒ³žC×ÓÇGOÄ÷5ä¬7 T¦Œ£e1àÌÆ'Ïch”€cœ }[V’/zÉU±Ò{^²€É%+Iñ޼N'C*‘áË’2:·„¥ëÁ»kd{Hà”¡æCèŬ>àJ‰3¸¸žÁJÀ·9X4¡„e£Za59Œ¥ìé*¬Õ 9=—'œ¶8‹Qó·“Õ7Ný¿Ûõÿ뼕µúÒVnTQ¾}‚O·Ô‘>K—.£y&î­òI »(êø£ú¼Lk—ÉŒÅ`ó½K{»û;ûÿ©g¶†—0Ôà‰Ãɺ¤­‰©QÎìT†hbøKÀ ¨Iâãí£çíÃg¿@2…^¶w*¶V UÆ'Á^ªB«EyHWs ˜ó…:]EnÙêmnü³%tÓ¼éÔ%N„žY¹´à8D’)üCDüRÄp‹•$~;•g+UÓô§ãN`!ž÷I¥yr²Þbˆl’3º}©¶›¿-RMË„¥GO©¥&/TnŠZ8`¹ÌkñÂLÄiO|6S¹5çmÎ|ÅP¢ca Ùd é³ÚD,i`&D¬9£ö¬Oó6EXH³'c°(Ûï#eGÃlrZDÃðl3½¯Ÿ =O‘¼'@^<å‡ÛY3’™cVfÏ‹) S³’?++é Y¹Ó¹`"neÁÈιþ¼Ôd0c¹ï¢ÆÙ³ Ç8)9ãª?k´{’'Ï…sÚˆ?†"“7ôqÀ€P[›g¡$8»0Jòóóã‚A{`FfwŽñ¦‡ÜŒjƒ~ðO›-kTUK8cJªê¾q¨TªRcˆä¥ÊfZP(‹5u-—ýà‹¹X¿/ÖÈ£›‰&¥UNú ¸>WC©lŒ“íIñµBÁœLáœ^?G6£nMC ëèAZ:Aè$Øì^ö\T·œ30ÑPÍËÐ…ÔDµEPLu b5=2¤yN÷¸¬0½ŒÃ|šŸÅ„¿´8é‰×%cnMúF7 É˜[AcÇë0ޏ,íÖݧãŠ&gnOªƒ“yKzΉÜJãý`DF±"b)0ŠÇ\4do5xªèQW²¶¼…ª Ìþ@Šú¡$æ{äñZ'äœÖhÌŠzëìßÛŒÚà(ëdiì?Ý}Ö9Ú=Þ±}8fž‚¥~Î/Û¬… gþ$f,ß`˜žÊ¹¡sºqÏÊgh}`ŒÁ5d ¥+C­x…Rd9Ä*·ªê‹©ˆ"3 "F‚Dde–%Ò3¦€™'ü¼+Á(pHtƒ–|èLÕœX¨àÃ-¦o~kþ!šåtK%þ¢‘N)ÐÙ”2¼ƒ=M\ÓšR]$ (©IK¬ëDg¬c2p¼]`UöäÍ`•ä¼E#>*”7øŠòMè¾I:¶gìÁŒæ,6켟M× wn5ÌL‰5©š'5ÓHµÜ°Á—û¯AʼÙ’fMT«çuœ¸×7êùüÜõGF¬eʇMéùœY YG|qé+¥JNb–pÝHÄàçªÈf;ÙLýµfƒQ_*´:ùª®F^¸:'yçeD L!祤ÀêÜùYçìÜÜZ)iŽZU­.Œó¦\êu³‚ÔR&2ÈXÙþ²š í§>œú³ÖÅ€Ýû†9´©ÉÝT—ÙÞåoÝOâØÑ }dÏ®´`_*Ú˜Vê™BšnãS¦`’Å¢ÛÊ=Ñ÷@f¸¾Ô¼@mâf¨‡@ »É "][I w.ZlíRõRYU*‹Œ…,–”¯†Çm-™åuco:ag(ÉræøC@ ‘‡ ~é¡Þ\|Ò†·’?kp¥žùݸpB| ÝdEâ~&S  ‰2švþÝm ²ÃYÛ]rJ +€ÁWæõ˜Øc7dÔ ßövŸÕŠQÛæWÝ›†!k<†!—Þœª¯-–làg›0{‰š9Xª绬I— „Ä#ü˜Æœz— Ð6ÚN$ ßdÕܤX) !,ð>›…eÖ™ûˆ[9/cEÓ†°õbÇa±ÍÚt5=³ñ'_k\?" NfÀé]5*ç¦Ïr"Cði*E$S»WöHoÉE¿|†Éf敳@=ÆVÅiêï O_ÇÂ`ìIUe’=¾¦1·„¨Z¼@›QMª£´$ñtÊø˜×$-ûplR„” ÈPåšÖ4l¹gçšáœõi¯Ë¸EڽɤU.¡²NIi•Y°„ä51­-ê=He #K³}%†‡¦¢¨¨$Ë:gr1_TI©]e`–H5JAVB¤¡?mI‚ÓŽåÞñ>êH­%so©8¡äDÕíù¬¨­ÀÙîÎè—÷ßÂLFÅèÛß¾M•üv«”Ÿ»¤=¢ ȲÕSÂëÛ' ÀˆqSÍQÚ$ 6ç¤ômªèÜöH«A(êt‚ïÈ%dë$ˆD TaÂw Jb\‹Ñò@_yBŽ~è\ø¬Ý)Å µH|»È£W}Ň+‰DnHd¡?ñÐV(´nXŽÇ+Æ–zRwT+֡˺“ /Œ°õËýÔŸFS ÓLÁʃ“z9¬8Ö1žD唡Hä+5ݰlJæŽ`ÔLx¨H7$/ n(RÝ™© HÉpð…K£´BÒ˜FÁÔ Êkl4õ¿7 ³ðÀ7ÜQXë5£²È.YÌu+¿0—¯§ÔéÙ’@”0°[Øav^´-Æ\=¨/¹Ê¼g"ƒ²K2ûFcB_%’­_a@ãß² oZ6øi«¿|¾§ ŸÎ™{^ö§×üÉ*  "1¼E:á(¨M¨³eun ëºõ`LÊÜ!¡å•ˆÓl…¹ 7 ˜˜Nîu×–Û‚¼v‹Àé0¯GlêŒ5ÇÕØe›j§Ñ^Ðv•BÆëÕ:;Ï!¹¯….šÊOÅhJ—dXO Ýö)~Í)µTiäÛèQ®YÍŒr½\@¶ç¥ÕýBtæ b†·'¸‡¬Ës8U ’68Ë–àœdÄÓwÑv aÅë³ ;ƒ‚fp(#æRξTÅSŸÛ'1‹Y¢qsR<ˆ6e ”ªÔäH:!'Me![ð(ï%t¡S9Ê*Âð«$ØK„4_Xù’…õÅpo:ë|Ô‹¹o‰ygØ]7Mª'uØ+"ÁÝ*ùz<“Ôqª,!Ü–IÀÞ †É·éy3ƒÕÌÀ/*)ƒ^haÜ5vÉoÈ¢ÈE•^·˜ ËbÊËè‚æGâ ÿ¹h…ªœ‹UdŽ©¨" §Èïy(¥½½°¿ÛÞÞë •'6Æ_(èÇÓH)K‘—ÆbèâÌ%›Š¥÷/¶ÿµSGvÊD‘8)­bTeNº¾°…¥ää™Iñ #cÃæ&¯ùæ7C`[ú¯Lõ‘QÍ+;Où‰”êèú£×‹"!¶“"'ær„#O$’,Ò²\Qj oâ½#*Ñ®gtÒ¤þà‚»YXùu±üüãoû[KŽQ‹?ËJºèiW<ç½1i…{(8TÄè7ëo7ŪS°×¢VÓfõh^¦Êþô©5?õ°m¨dž2ã¾*øsU¶M¾>œg4Ú¼’ö6.â (™B£yÒÂ;Ááé+ÍÇFÜbç+ì ùÓÈNF=dK G;ÇÂÖ"" ª¤rLf‘þšsTTN:¾Z†sZÖÙp2bJí\¢ækl ê Ô= ’Ò1Š}özE’òø-ƒ,q›vú¤ÒM8„}ë¤?¯Dœ-\±Xž ¡Qļ%YhÂ4³Í'àhu·ÛIñÀ_»˜¢Ü$ð¥‰D–‘¬ÒZöÄh–ªó§+bK¾4ùéÂUË,¦›Ø®Å×' ²„%ýÞdѼ¦õ’êà ˜»syMfópÈdÞjÌ—ªÖ‹g€¶GÄü*Q;b‹ ƒ#D z{è@ÁÊE zX|Kñ‘"Ô¿+${&§q™#9µH¾ÅòšÉ¹Ãª„;Çi¡8Y“퇿X0 ~Iá[ÛMÚ¦&FP†ŠÄM @ nVæîþÄ¡%™ŸgÇn%’>ðH`„fØ+jè¡bóµêš·ˆ·n»Ê£µÝQk€&ÞÖ;?A¹¶ùàÿ¦Žõo!‚î¦$ÝQtŸ_t_¾Î%è–ôÜíè9åsr&™‹n‡–>wÃSa*’Kvö ·D&0äqçUÐE2”6íu›°Fíã03ÊWZEÚ¶ñ¬4ySsú¡Ó’ÕþGìs Ñ †dUú÷ŒÏjZ*OIcø.¬GÙðHË8©mœ&$“Þ°Åttš-âW²r΂€R³!6LÒ£[?’] †ÓŸÆ²ÜóàRC\‚¢þJcµÎ\Ä%5i MöIùâ¥ÊT匞 y.õ£ÝÆ7‚ÿàk<•” ¶´ÿ ÔÑ®¹-ª—ÙÍœžÐ÷ëß•EùCéEG¿øaÞY°©Œ²AÇqáõF XôßW¦e摘6PµÔoEfæƒZžÑ¢_^)•5 %q¢ `ŠÒƒÒêj‰3KÕêIÍlTONùç„õL!µ™áKù1Ó’$Z²JÔE§QÒ(Õ咑ᶺ£TJ±"qì*Ë-ÍéY-|ÀG©i tö¨Ÿ”~¬SÒù‹º.Û—H'{æàžm£zþ—ç/_Ûpþòg gÁ–ÁSâHÚ¼WÓ´®Ö€±i*!;Ûž´f1Œ†Í„íúý ü‚çÇ…±ˆwŽc<öqRB7ž†¾XÛ*|0œâïˆXâã.‰Lå‘kư’ç4ÝÒßFÿèß/ Tšèb꧇W† «czŒÒ87JÑõ…¼Û„1D€ÞbF¶ƒ§dq†>2ߺaðÎõ5l¯µûÈ­é”ì ÁPL=r®sïE,X¶ `jêHPµ†ãwÁú­s/: @°î@ËÅ)ƒai[ ˜fJèÂØUÕ yó›x[m6˧RßPL€òp¤MgõäÂMÎ&Ïž^a8sêCN¤ÓÁyÐSšä­I>03(¥Â«,—•T%|¿Ñâ⦑©ª^Ò€R—½`0 PÜè·O'ý.§ãêÂ@·+†ô;v&ô D—RùþÛý¨hól‰]5šFT~èÖSD6³D¨‘³Àb¿5§ìËÇ¡Vo>-5xúJuµ¾ÑX¿ %‰#y÷æëš” Õ¶£±œúA™ü‡Ê+¯“è`bM(!~á)…MQV‡Nw^ïì¼>†öB^€CÚ®¨Ê‰SÍvÞ£3* }û·Ú£ì*FlŒ”v‰‘ïŒdÀãzÏ {SôŠ­¡­†{'q´%}Ð@ë É 4fn0¸õV•R8[;ûãó¹ç/Þ„…¹ ß8Ý·„L*hJ?åàP)™œ5ÑÆq·ÊeTŒ£Ö”ì¹!*®¹kVØuÜë ØíZ>$ÃZbˆ&OI»GUò'œ…,7øÁVaWªØÜÊÄ’µ Z§îå$4S”ßüÖx[=Y=i4ª'ÀËd§ˆº¬œ!èEDÎe• Š‘ƒê z}xäN!ˆœÙ¹Ãën²pÆÎ­R§ÏƒÉæ#°ëèYÎÇóð´«(ÿ5Ê`!uYßWVG«þLŒ`lûW ,½ƒÐpDqGè°®èÁ½ºMñÕ¦ùÄåôÏ?v†¸%©ni-¹•ïÈ €=o¸,’ˆçÎ Nôy›LEÁxmpz™.í‹rpò ö ‚³RÉˆÚÆ³×eÖÚÒüW@›êzišºÌ“–/,véÿ³˜ ¦ƒnV–ä]²k£;`,Üe5)¦Âßÿ®¸ ÿ{ÂVÐ*´ˆ¬…–cR7NºKŒÌv6Ð/á÷eM¸EÊ*{ˆiÙÚ¢À‚æ¾¾¡B6·X4‡BWÌ"K»¯_ìlJ;6ê­ŽÊ_ò ì*×(}š m‘â~c­pOŽ…Rãžðèö‘SyµmÆAŠ%IxÚ”`å,&Òʦڣebº®~é4¶ùS“f&K?5Ú(·c0‰çÌJ —®ö]•†£$SøPý¬ðœa CᄀÞK™,!¸Ò/µ)j$€qrZ¯#ßhÔGˆI{`Çj9"æß¾[b¤~ÁÔKh(º¢¦Y)ޱ9¾l~ÁîÒSÈr|ž_ÐÂè C™ÝœZ 9é·ü‚ N©ÌœQ~ O%·Lú%9ç†þuÜÌÿ¼9¬ô.ܞũÉ!b«†:ªL íTú&+‹Õ w4‚µß…Kï9NL=W8q/ vÒSe{ -¿Ò]ûjxáÁÖ9E"©€ä;-|']qÂíaÕk¸ ´i‡ ð&oA¯ÔØa5ÝÌÙ{(À §á¸œ¹LçsÀ^—rêñ™ß°…yõ½ÅíT¾§̲¼{˜~¸þüŽjDDè=AX¹¼;¨Å uwGó§­£¯0¶ »}¹%uÃε’$šçu惙k©«”qÅâôÛ°ÞÑÕ û¦Zô´0 Í<œ—·µ_ó? ¥æ10‚Ýÿ䜪r)ù«êÈŸt¶Î:ì¿é ´õAÛt·Þ;¹'4 ò.ˆÇäÌÎ9b¾f&ÚÌÃDRé#ãSžTwQï­N¨FÉ\7ÙCäf¬ÊŒc+I$´ðøŸÆñĉx<É\âô[]ÙX o†hJ'a­-~w›aþÁe[9ùZ°{ÞÀ‡dÑéÀØ´;…K Wï\>xˆ7Xü +éYÿ_9ä’+O¸ž=;A¤òo¢úO!³0‹¢QéÔP2<µT>Ù˜»9FIÜ®+¶ŽÎ¡¸Î`ä ñXT¾Q.46Ó¿úÅÏÌ,KFÜ´(„<ËOsD­¤«ò c†®=ª9­Î"Ð<ÌÐ*¥jº©¡@»ô |›Ída­tRj~ÏÚms¨ñS q“H:[‡j•Þs€p6ܧù÷†–èÚm)Ò‰ú"Ü6»À* ½^gx{³ÄÔAk¹·2  Ÿ§­\’מj³ò…±bô?û3`‰Û—¸ýŽp»¹>!nW;L9^n±åû_Øb›Ÿ’XʃÙÓzbn+Ë·ÜxÿïÏ;Û>þ’ò×È£˜g ”›]•ô̸%Yé©[ƒ}ÙI_Ô-ǾõÓÓ5ˆŒˆ”¬çk‚š‰æ•@Ô6,­Pû¶˜o[b>¸…dHl=r¸z@•"¢Ø=:í~¼N}NÑÅîp½~¼ý-ΆCvÔ,²öÿçwJÝóüÞhÚwÅOQÜwÂaãì‘穨«¨‰®"¢l4bEŒ…ª^ bn0`;Áh\çZƲ¢8¹>Ö9l‰¿£›ª°G‘l]‡Ó^,ºS<QdùYÎ…§»{;¢*V«a/ &®_«FÎjMÈ/l~BÉÊV¿¼ÙåUW¬N AJ“s\u"½ŸcMÞÚú¼ž¼ñÞâ‘mÁˆU@K†õ!ë«i 5K¯BÐ8*ÂjÎÎȃA:—ìSrõ¼6©`LëoHm„4˜LA°™çrõ¼b¶Çþàè©ø¾±&ÚèUñwÑë¡)ÕFAH³âŒPÞ¾¾½´+ºÚ± ÊA‘ˆ7Â`ê³ 8,è8  —®/§ƒ ðãcBùäòùó²8s/ 0…(“/Z)]Ê.¶Ø9²sQi Q¯˜¢šo<õØ]ÕHrµ8h‰ÀÙåÇ£+ôZÉ}Bæ‘(_¢˜É±µ®<Ÿå»ØÀ½œ¥q;ïô¥µ!9L—'‚ú?ú¨Òž’5¨º´¶Vþ¦Á@]8W$mÐI 9œº5~ê#ìç„¡sMý¯‹²õèMŒ‡³ïB“"‡•å.B/v%èVkM¶…MñŸA ®A9¬B¨Aâ3ØÞ ¸*ƒhð=¢®÷ ­–X?‹u±)êë°Nqì>~!Úâ!ËëaÈvžL l€Î98Œc§bÓ ­sCZ03¤›£{^ yÎ8 {¾+ž¬^Vpƨ헣ÞCÝö7˜èT°é8Ðfã1/!çUÚ‡5åšó’ö0oìuñW«ƒ gs*[’ä 3Yç=q¼•ô"*ª7jM0^Y­V®G'ôWaj@8ìm$(ø8ßJ]ä6¤+3ÔÄZœ1üfí­Àg_+y=IÆ™y/ψ%ØbHý÷‘ãGç£pÌ#ï‹“ÂJ}îõmGÔŸtž¿|õºstðê°½S„È×=Œìì¼>Þår°ÔéY'IÙýçÑ#Pu1K~/o2˛̢7¤—äJúLî3J4CV±šJŠ ÅK4Ùbd™!4%ŽÈ-CM¹'¶ÛövûùNç—í=¹ r«¢ýpÉ”Êb¦e|—4¿²þ©RIH ³¬teñ g¦é RIIÒs‹´ñ–¾Ä`?®>oŒæ^ÂdÕéøÈùŠ=¡ nG¦4‡A ]ãjÒ°˜­T‚ÚP« _ܰ"µ]q±°wg¢"æàéO ¸ç1JòŸk'Jýý $­[öêMÊêÒ¶H´‰j½WÑ/¢éÆ=å¹&Èêi„Ndf›úGœbäEm£C fÒ¹‘Âi¦¢ÆÞÐAí¤"öh$?#Ñ ‚¸; PÑ (ÝÁ(˜L®Ð`A/’ ¿ç€»Q_énDRÈ(ì ÀY WQd(„§²Î ºˆL( ÄØ‹Î€”B}Üš—p!p™–Àýr(€aSEsÑ0’6 j†Át"ŠP`0@“ GÍ ¼_±§¿$TêtHeä"nX@Ü1u^@4Ò æçðxð]&Y™¯Ä%k¥ë]Ãp}Ý _i$””Z“ëmH%•8† Ƥ|çâ<G<>zR7V „x ÿ`V±\Þ‘»ûGÇÛ{{JK4ËWpâ3åžû¶Œ…?Ý,Ý^/€;;sœ‚ ô ]R Ñȉàn‡Õam¹¨¬„IØM>¿M ãMüÛìµ›HÔ@4ímüHP€þÒIvt²™Ÿ7ONšA´åHC)áàä<ɪZm¬ªx”gn—§ëtÅ9jˆƒ'ǨçÛäœ6 0ªòób`¸—…ŸhgÒ Êà€óÈCÅ/Nݨ«†€$ ãRN1)›‘Cµ?¢^€AlK™«½)Á•Ù–±æ’o®%ÁLæDLvÅ0ì:ÔÒÛýÛoIŸ å~4GÃëš‘r®TC«ï½rvsƒMÈ[¼©di.ðÏaùÂh4¸ü&þØ|×yí\LFÓè£Ú+qa}0{=‘Ì3Âä>ÖÆó—²¶z]».·-­Ð5"4¥¿}ƒð/ Ùdh2!ìŠùYÅŒD,÷ÈÉãwˆ}²½kV³›X<\ôO›&Ü¢z‘½k €¼;šSLyg5`,–W÷?™J}»1°kîÀUY¶€yŸ?Ѽÿ•vÝ[œµšªa*ófË @5Ýü(ƒ-ÆXVÛâ4J˜O°3‘ä€ó¹NÈ•¬i2&ìU®zعŒRépŽ„ÀaÍÉJ‰#[/Q0 ÉBW€Ð«ša„ÃaÛS ÏÒH1+&Nï3t#CJ—k$«PNÃjX–—Jñ¤ê1·›Û…ô2¤ŽÇœ›VÚÍ’Ó‰Îz#Ñ×Er¤/=FüCiRñUäêÃ^ÖßÛÔg7$ÎRïϰ½ø Muá ¾‹LǶ#¶Õ%ðI!’Ý–|¢i7нxʈ4C(u^<;Ü~AH*®KïeÔ‡r!§ìQûp÷å±U”£®-ùdûxÛ*‡f)Q‹‡ß_^PÍU‰ Ž|Ä ‹šd0r[åÞ~‡wìÈïD ‰ñä‚ ÞÌlí5êØ72U[“{B6(ÍSÈ$k#¶ŸÀ#gèø#¯{'.œÔçbûp{®ùwa›!åÚÃæ¤–γ´…ý‘¶°õ€ÎX§”öšú„†±eËJ™Ææ.–…Ž µzR'Pý§ºðÌ[ﱚÙ¨ëðÌíÑÊç…E̾ßuý9ÅìTþ%v¹Kûjpÿr”bo¬í̳¹+$c/¥\ÛûŸáäXÖWµÙÖõÕìl.MìKûæѫ”(³°…ÄÙŠÝå\¼cüããøïÌ]Êö¯ÿº \`rQ8Ä·8u‰°?aóP:¹WlGÉnWaöZXÓúH!÷iŸP%)¿'s·¾ÞfÓ;ág³Ýïd·æoöÃ¥-·úÇnuHXiá?´·øaaæü/¶Á³ûûðÓlïÂö«ãƒöÁþÓVé½ Ö‹¥(ìá(½ˆ“zì…Jc£Å\ìùÎö“CY?æ=s¾bá LØ &N¹#rBZMcﺗãlùùæê¨‚!uŽí €´BPV¤E# ¹9‚¥HŠŸ¡ : -k3ìþª…£d¥úÎ(@&‘~’5Qr¾ÄSG7‰]*7JcŽÑz8ÐŒh£š”š$0(U`áîÔÅøhÀÆÊaúH@-iU³…ù(F·Îd2ºRÒó¶YÑÃ×8ü¯€ˆ j*¶‹Êb5N¯ÕÊ,ÁP3ÇÍ•ÅrdŒ¾~“‰KyË|yKCÎ̬%×”/ÞÞ¨ãHÌYKªºM‘ÁcŸÚ’F^•†E ó•YÝJ¬ãMœ:Éki@#t­Ïp 2ÎGÌ7T3Ëtu†¤cn>û๜µ%.‹ES©+Áã×k ®DûŸoÿ²ƒzu¼»'Ör‚¢Ö‘#O>ó¯XÞr!ºâ,¸À# ¶Í>ü¨%Ì3"5·\Ê¢ûï»Q5K<Q¢afi%'yÃnØÄ"ä)&ˆ¤/c¥Ä—/[Y·fŽþ¢_¾¼%]£d©Huã÷iã#µ<à©C®Û'ñGA¼œÀùÍBì  2xìªWÔQ¢WÆ>ùŽrFuXƒÒ„ýÐÄ ¨(hñ 9Êà]kà`£ä½$IAö!jyE¹R®‘øáÝL{²W(o$E"º~{=º¤ââó†ST«ChLÊó U œ1ƒ®ž²äOÙ^² ïO#o „KãìŽÈON:ÔÄÃYétŽŽŸ´;IàÍÛ¯±A0Š’ôh$\ô‚â°¡ë¢VOŸ…£¤G®÷€—â¾ûú¸† f0¶°<#i6›.‘a0žYv´Ë‘ ”Ö²¥{Î ³kùèÊK¦ïŠØhò¢‚¦Ï%1çEÄ\m>Gkš äAg9hÖÔ t!.'#IO˜"WXÈ ÕôMšÉ$ƒÂ¾|/·W_<Ígˆÿå“ÜrKªð“[êÀ-ü˜äý‰ÐÃìyøª1AG=eD;Ç>d†#‡,„ZþUc ‡ð"Õ`%£fá>œƒìRDÉÓ˜"ïŒk#‚!¹~}7†ÃÎíÓíNÑÏeh4Ðë=Bt°ÜóË=‹=ŸìÌhÚC:÷’ççïÎO‡^â¹±¿ÌăMWm˜§¿0‚ ~(ôN‚è ”k¶JçåáÎËÃvg÷éÎÞÑÐä$„éØ`èÎ/zçM&n¿±P}Þ@>ªëNÚmÉáÚ¤o Id)MKŸvrŽá]hÑk"Ñí©+¡ŒS®G—tì’Ž]Ò±Ë3í ?Ó–tì’Ž]îùÿ­=¿¤c?5»™¼ëFŽ4l·8!šö¤(ñ3 S/¾bz'>iﺲ]f|Í"7µ ¬G· ¥Œ6 š/MŽÕÝkd/€pÔê)>ƒM÷±rWˆ Ž%y¥¡wHHÞ±ìÁĺb $]/ðÖ„" ®tîBµˆ&PSnûÅN}o÷è¸ð¶RYHþr2üë?VrKËíâ¼ ñ¯VL¿l—z‘Q9_•VÙâ¶ÄÁŒÒ9ò_f*u¦ @åW›Žn[ÌÌlÏ‘A‹×ût§‰æ+¦]تŠéœÓtëêui.…4ÄO‘ø©BY²NZ¯­tÙœå¶ D.‹FZkö¢^[߸ÿýƒ‡ÿáGñ¨¨·¾çã8²ÃÅÍ‚~CÃÊ”ú2 Äcùª6>v¬HWp'3Áú£”]{W5'Sf0]Î^*S°¾*-ŒhP¥^?Ù@ÌÓ¸s=°,ø '¦7ˆTæ([×ß.®gƒj•Ô·øN¬³#-Û¥&Õ‡1k1&s\+R©œž¯¯%RÀšç–"LÇk°Ò„1œ*­0Ï=)e÷®KÜ7y|sÄ2Sç@j ‹Æ-DùÊ€-©U.í)gìÜÂEpù5ÄÏÝUr ÑS0õ?ÒË‹ÎLÖü¸™ædŸç3ÓéèÉr¶ÒoB°¸8L×$”g¢cçã¨j­·aAd_–W?º•r÷àÔ|cºîVQ¥]H_Xky'Ÿ¨Ùù_¤jÜ;&hv>Ž¢Ù™OÒì܈¦Ùù8¢f'—ªÙ¹Y³“:pvlÂfçë¦lv"mä˜pîÒ—LÃìü9DLþ¢ÊÛˆ_ ³ói™; dÜ?…”ù¨ZnIËð*ãÃR½ ßÀ®Ofœç5;6U³“%kvnL×]ð¶ùØ{îœóiÎÙ‰â~ï«ñcjyKyÝŒ…¯ øJnÇ F;OXº ZÛþTƶí÷éÕ4ÌÊîÂå©íbÔ‚ŸòI£Œ߸j¯‘µ^’Õ軽ú—»ãjHâP:i@tö¹¿­&¸ÃxT]äéñÛâœk&ñ‹ÐûÞY8Ë¥ñ04k2í=S-Xö¾˜¢Ý£¶Øh¬56„B›Ù)BÑ/qŠÔ1ðqS„½ÿ 'ˆLì¢ó_ì†Þeý{˜¬资lU³‘)G’¿HLý>ѲQ‘::šhLÅ|ݳl‡>ç¹¥gNx}êÃ<¯–EY|+Ö.מ>%÷&ÚX«À•[ªNííüºs¸Ú«ˆÕ²—·–À0 rü¯òËFöãƒW/_ÊìFÑŸEy» ÷¬Uü¨ T›¡¢Å²²õ°@ÖêŒz½²ÎBÎHVËÿÉËf²E3z±H7¨À(}¿fô€]½+m³×‡è¹¬®ºTË7«ƒJ…jÿFÆ`D%E=iWN̨Yõ`Í­m nÌ€Dõ¾û®¢î©«P ä@û£.f­ÔÔÐáG¥°•ÅÁt2áTô!;Åé|"KBmc!¢-yýúUu)!E£Ý!-%»Ð*7šÙÑ-è2÷¥%¶ùÓåÖbwŠ.DÊNÉÔsÇ´åªHµZT óÀyêÀÕ†¤DC·¡3UÅpøÈZÝ.ýäˆN,D¯*«…7»þݘqÿOå°.Ú×ëÆù§{ORš½$ðËf5Ž Í^ìÍ,ã¢òiƒùýä2?ÇÎËQu]%6<ÏpÎÍ-ÄÀò_#ÿa¶kF13VŤNL"a¤¿³xŒøh—ä [r#–܈;æFàBüÓ¸TÙ]p#n…Õ±öùX]嘃Õ1˱úñî‹Î¯»Èõþ÷Q¿R¸taȵ҃ÆýšÐ¨„p. ‰WÈ3'Ö4òz12" úŸ| •Ì`À':‰{Øäº¯Y3cwŒ T æçû…Q/z¢EYr¸ezèó Ÿsa¡ÆçTcë4Sk¼JºQE|(ÇGR8ÏNofáMA¸ÖÆgLCïñAùÜ é¡E·yK0.¡YFÌô¾ÄÙèp:‘§“e‚ìK<¡0Ÿ"ˆÎÙWsG±Ù¥<>Ä/õQË¿ ¢(ßññ Åø!€}µ)=UB ›©"ô9§ÌÜükèè;ÉLþ¸çÀ¦ôoZ°ær‹¬gÀw:4»˜©C-éQÕ‘  s³ÍjPaEùª ÐyŒCm¢Ü‡cÄÎÑd#£„Îji ozàæÄsqNí½™ß¾|˜ý7«X.•˜…ª7sÑä#yûm¤Ê Þ¬Rã±Ðâfe`©3úóì zeà:Ë¥u‚§¢FŒ‘®?Ã`ýGHÈ5ñN´¤£÷‘ŠU3–i±ñà!f…Xó¶;zÖ‚mOØøùKá´¿û®)…%ßÿq}í±Øn¬=h.£Þ{7ºÒìI4¶‡S ËE§“dº<££ƒi< ]>WØfmßFoÞ¢‹¯DVµû˜Þ­äBBLÚ«ß®bfñxPySßÀ§?ÞÉëo)|K¾O°A·´´ÂݰŽx©þê5¬Aµ_¡]GrÓÉ=7ìõôŽƒ}Ÿõ ‚qi—ݯ¯oÐ.Û¸¿v?Ùe·Û¯ë¼_×®+H &ü]¢Ü-Q`Ô·¿oe„¥V0é–€$ü†>`ÉÄL'n«+%cÐg‡}µÄ¸°Æ_ÁV¥÷_Ú'‘œ5Éù\ýÆ ø¦‹zø§\ü3À?Cüs†<üóÍðï; BßVàwŒ>þ ðÏÿüN¡ßaæ–|ÖåÅøH}ñ­âÏý’5þeWÝ„kÓ’lt7[ø²H(éš;!å™õC>g‡ò}„!x ŽùçwÌef_ lÒ]ÉVˆå;Ô?Þ%~üâ÷‡Ú $½–»c¹;îrw|*‹[+™£ ’¦>Mcÿlº%•‹!߯¿™'ÅgÏ{,γíßy|p`ZöŸ/=ÌÄÓ_¥©¦£ã'XWçyŠk‹™'hdãô|¶–– …à%CøôžŒWdÇÇ@ò_?àèAÏ‘©0ðÉX†Ðî!`‰ ü5Þ¦G^—þ`ˆm#bñ1PiÐɦ®~±ß…ñ‚_ÔÒ¬“‹>r.¼¡ïŒ¸¤ÒBÆŒ”ùú@çJ½£ã#{÷*vbéðwO>†¹~ é6!øFÕ-™4~×wÏeØOJLØ;ê!?è½scûU_¯ùி¤Ðã+@ÊêCŽ¢„0¥þaHE\ˆÁØ Ç=_Šÿ+®„ˆœŠ)ç)|¼œÀ]>ßm2Ÿç‹¥«Lì2ãR"É÷ìŽÜŸ»ß%c+¦‘ÓõF^|5g:ò²[“ò…ЛKÉŒ% yg (‰]Wõ3ŸÒµÝãiQÄ”ª;Iåd!ÄPH£*|*úäæxŠ öæ™ÌËÉý™c©¹iiTöKFH¾QÙdJП%åÕ–BI³°Ñ-0¬aâ1r(¼sü,įøØëtQÝ…E9ûϼgr×fææŒéâm†^îý`S0+w!o÷I›Ò°K ˜¦økò8I1m¹~3Ké®ëöBnÞ/ã’gz‡N¹à9¾Q/†¨Úœ¿0…PLÎ]õ¶3'22Ú#M/vu‹ú7ìÚu n=ø¯§mZ)'ÂP!IXD(%"í²ÿ|£&ßî­Û¹ì·{[úJý G.léñúFM¾ÔGr; åNNŠ/åt>†élót>vE[N'œ7蛾Ó=kb„»Û·3¡Þºí,"Qjr`‘›¥„ ÞžÛÏR‘×tá6ÀUOV‰Ì áÑãƒ×…{÷D}þ?qïæ:$y2)9µãøñ?öÝøñÑ”<‘¹€%+¦•„ éx¼ñxÏôÿ5©ñ Mù÷µ±v$E”'ì~’CR|¦¬ jÖW"Àž«a5F»rKu¨/I~%—ë¶"}.ñ£È¿:hîEç9&˜ª¼’ÿâ¥Ì÷’a·dØ-U©–ªTŸö$Jä6ÍC){* GA÷.¤å»ÛìÃíó\ÞËw·å»Ûòÿ Žñ,Çvùî¶|w[¾»-ßÝ–ïnËw·å»ÛòÝmùî¶|w[¾»-ßÝ–ïnŸkgùîö9p; 碊,ûÛ/^nwží<6Ug䈼(<þç‘Pw "óJK0\Š*BÝydv¸\©‚©ìł޳žŸºSwÉ]rc—ÜØ%7vÉ]rc—ÜØ%7öKÆAKnì’»äÆ.¹±Knì’»äÆ.¹±Knì’»äÆ.¹±3¹±ÿïÕΫ‹›Ã* Ý¡{¹d“.Ù¤K6é’Mºd“.Ù¤K6é’Mú%ã %›tÉ&]²I—lÒ%›tÉ&]²I—lÒ%›tÉ&]²Iÿwؤ /0â|º½kV—Ì5߇Í`êãxRίÆu)D?á ‘=#Oa> 0κ` Ø3 ’â4¢Rfà)/c‘@\Oa@ÝKg<æc7lëë^n±¡£ó`Ðw®äõ¶o·F·C|›|tÅîX1ȇ•êÀujÚc=’?tö7€Õ•¸x²ÄYd¯¾b·{@@Ѹ Ów>qÈyjÂ*\κî(¸ Þ 8PÑӚѨÿ'eÿnZýow:èÐO:˜T^ý‚Q®Q¡Ï6]DB×Ew‚tö©#ÒNfì_•Ã}E³4ÀÂ=ZiF’n˜ö¡zoJ~ZÍñ<8‡;—Ùÿ ½¢ù7ôEèK<ÈÁhÑ…“†ã,ö§êöœ)ºZcLNÉ­}ÒU ÂÁ*°pwêbr××§=$  ‡DcU³‹Ç(ƃәLFj­¨éMFÓÿ+À’‡v‹b[»ŒMOeAú3}¶ÿJ´Ñ·Aè»<œ¥ˆÏNĸÙÉ3žrÍ W4¶Œ¯8£ ç*¢k1¯À?Gÿ>BWƒÁØ5`8èŲO\ˆ¾3FG¸H¥A.¨æ&=Œ5Á+G Ü9Â1L–!ÇèôÁs"=†S\új—Ø®M)¥£w ¨wèÍQ¯Ûœ-sÌnîqGÇ1"ró™â#Ï÷ås£¨_<÷é²Ã“5`ÕR,‘ÃVÉIÕ_d+\‘­s™·–òXY©3úÓ;´j3xY¡1uý£¿¸ϽãMœ::GˆÙëœaÍ7sËcv$ŠÌÉ’ïšÇΕ! ¥¥ÂÊŸ¹wží¼¶ž¹Wf«ApMÝ@ó([ÂT>š_†7ª+]ä•!•u³ºì‹W…ÄÈͪJ•°ô·ØçQF2aܰ”KXÊ%,å–r K¹„¥\ÂR.a)—ð%ã ¥\ÂR.a)—°”KXÊ%,å–r K¹„¥\ÂR.a)—ðµË%V^X/ž<Øõñ1Q²>¯Y^éì³$&ï†Ä&uÎÝdô Ì­D`|?¿«%4Êö#}ª?²h|¥3! Œa§}üZT[ü…#º:¨À×m^6—<´/àÊú'óÐDÎþû”\´Üúî‚¶ð»aN2h~FÂ]+¶ÎÍׂtÍ#Çxee³°Â(JNޏù#"îýýÝc[[– Óë”éöeæ[¬æþúÃ5DgÎ:ÿl,Ÿ°–OXË'¬åÖòø]>a-Ÿ°–OX_2Z>a-Ÿ°–OXË'¬åÖò kù„µ|ÂZ>a-Ÿ°–OX_ûÖ-Tk_3;;;È5zrj8רS uã‡_íy €7Õ«ó&ôÃ^£±YÈ×ú|à7ÕyÿZü{ðoÄ«Ræ½*õÃĽªuC_Ý™ÓD¿ºV ¬ž~Q ¬«òpap¢_¿$léÃúµð°ýÜ8Ñ[T|¯P±š½_ë6ΆY}ðØL6!Ç)o$¯Ž’WÇC¯«äÕqAòê<+6éLÉÕ9H€$KK®§Ú—š§8oEËXQ1.¿¯7O31-¿%§hpŠú}çèe}ë™ñ<¿€Ã‰XÑ Ñíµ¼fi=ÓûÂ,ÐðÏÉŒ© cùÎsþ‘žó˜l”ß<|½§ù»¬¨¾™LÐ=;5ô?Ï%ýÕ£/‡ûu%(èOôèCGüæ`>p¸¯›š…õõ çú‰n³(ߢü;Žò'ÓP¨cTªÛø}…ùAñŽa{gøé;¨ô—=z7âØÝðúˆÛ¥l8}N߆ӷáô­x¶áô'É6œþ?Í¥l8ýA­º÷ ɆÓÀl8}'ŽÔlÃéÛpú6œ¾ §oÃéÛpú6œ¾ §ÿõ„ÓÃduÃ^£Kòižß7µi‡o¡‹{Ó×9ý„Û_ƒÈ!"¾Ë:§²$÷Ý ]5y¹~šZ.+µ#Þß²û]Ö vsƒÚ½_'é…RF¦oW‰]%Ó\%k·»õ›!ÂPg¾±¡ùv*ý¥÷¤û{gÀžtvÂì=鬴îI¼Ù<"¤ý½¬=i1øp4³¸z;ð[cœÎÎe“Æ!úçJ7¯«á_ßyôIv÷LœÒâ6à*ý3çRrŒÛ¦A‡Û¡9آ·V½¹uÿù¨Ó­_z-Ô~gxc=¬§€õ°ž²YOë)`=î3²žÖSÀz XOë)`=¬§€õ°žÖSÀz µÕ˜8sªâ ãö¤™ð‹üˆèÿðøß¾ÃñlÐatضA‡mÐatضA‡¿€Ùa„Éá¶XØba‹…-¶XØba‹…-¶XØbᯠ‹Ì“~ fÖ ƒ€B×ù`@éµñµF§2OfÌe‘KÍûÂßvó^Bˆ[[Æ\qP#™:焤ŒQH:}údM~e¡^wºÝÐ;íuÝz}„ÆH;üu"éd{¡wO?ÈŠŒ¢Âk‚gA ƒÿ&š/æç²J(j0³tÚ,E4¿RF$awDíŽè$G ÒkïöÃ'‹›RDàBú¬]ŠOÕDÑÜÌËþëõ££ƒgoŽà{Ò´3ÆyÏ!ªÉ:˜å!QE9-úÑ{Ó˜@æ+?á¿õ •lõ)-YõCQ<ÂÈÉðߺyL0S+7_è“ѧS¯˜ÍÎ0Ä×'^µ8×ÊP‹soçf/´\87+«Å¹v> œ‹ò¼Üà\zgq®nÓĹýP0«ÄÁ8ßßç•4Ù›ãܧOòà\L•çb²›ã\¤2 çâ{‹s§€sŸ>±8×ÊP‹soçf/´\87+«Å¹v> œ‹ò¼Üà\zgq®nÓĹýP0«ÄÁ8ßßç•4ÙâÜ^.Ü^>‡ÜÞT¡×K;é)n%ôÔ»~¡w¿d–fÂS“Y™l=«Ä2«7™§]úì{û1qê-çù™„‡^o*.z½|>z*Ya7/=Ef¨¸“~zVÞÝŠ¼#Ç +ð¬Àû§^ÒmGs„A"o€ãÎý“ySv¼Éfð™e{#}orJ°¤÷z2–ÃÿF%Ë#æà£È •aÒÇʰ[‘a´éoe˜•aÿ” KnÉkŽ0H† Ø”¿2lÊ›êÙ >³Ì!2l’}õLÝ M ¼%7äÕ“)ˆ¾[ò*YÑ7…MyEf¨è“ÛòVôÝŠè£}@+ú¬èû§D_r—Ns„A¢oÀ>Ýý}SÞgËfð™e}“lµeŠ> 4èKîÑ©'¢/·ÜÓR`„àÓér„NÅdôçæ¡S5©»:o£ è^nolmf^’x¹ëç0?EpƒqôŸ×Û‡õ—Fr^ºŸ/+Ãáëý9¢ë¨:4˳ìL§^:Ûè–z.ذV~-Þj_çR7׺ dkúýqyË6m2­î™al‰†²5Òåd›Çvwïý1‘ñˆfõ£ÔfÐ;…•˜Ïrʼˆ–SO Ó21‹j3f„ŵVÜY\û{rµ[dk—úýE¶JXl›m³°`º“·*åMîÖþ›g»Û)Œ›äžE^säF%'Êm9áÍQ-Ó¹»€ö&"çõÆÁÆ«¾,V ,¯ößìõe¹z~wP–ßž÷Wëò,§@ãî·ÀÕJ³¯ ¸>ðE­Wµ¨vIßK€*QŦIlšá’°4N1‘ªD‚Ñç‡;[I/¾x5½:w¡°Pœ^w]„M7ħ^$N½26Ç‚PGgå`§ÞÐÃNÓ©õü~påÓ2š‡®+ Ø+·s¢é:mª¶×=ŽèùÞ¥FÀ$ë +…»é¢È‡ß¢^ßxýzw»¾¹Y¯£(¡~ÐM6Æé8 ÛèFÉ„RLñœvH=èš½‹‹ëõ‚•=VöŒ){ 3³by©ª ëú]ºtÉ çK‹`þît‘#à,çhÏo»Q„ù‘¸Âÿ£àÂMeÝ’zl¡Ói,§âÂé# ÌððéHwt%W¢(UègÂb‚/<\ýC8ÐæægŸïn¼8¤o¯_ëï»[üç±@§0X5 T5ªÇ'ùÝ{üãSýããOëOŸ^|&K’í†Ù<ÃÓùŽÊ@|Å¥çúÓPrWÍ¡\ÖÞ‚ö½+žýçh»¾°µ}ƒ×ƒJá®úÐ;$ÍÖ0RÀÕ†GbžÛß4ÛkJ?ÝyQßÞÛÚÙØCon&o¼ÞÝ9:6/SÀ‹$•¹¹ÊJ>œ­^$äR÷GI‰`Õ+ ¦ †Ì"£oˆ^CŒs5<„º©™Ý ÌÙ Rä0å{Ä fò³cÕ>ªíÆ5‹ò«\˜HÖ®F»§¶ûAêî·j(0 óƒ‡k' ó[Þ ¡Ò¿ÚÞ…×EŽ¢‘R=)õ7Ö V9ïVZ•Eq´Ð‹Ê÷Bé&Ž€H©†ú¤¥…ÑÏXz7ñLýÞša “íL«Ø•f±Ê׎U6yB ‡sÊF(è[óQGrú{ì7ïb ¡£ð9e«‡Ö¸Ókšÿ´ÄÃÚgâ, .T›ÑèBÛîÝä¡úL½p¢†çÕ/.Þ½5²Áü-–?>Y}òÓ"~þðô{ü|ºýä }þôt…ÿ?ø‰>ÅçuÈš¦éy šOz²‰y¾ò=Óúþ馤Íeü$ËØ¦2˜&RëEn(Šyüé•qQÇûϺÞ{ñ]\´÷óNÔË=m4½Fºb?þ´EÙ~¼MŸ?~ÿ}þôý&UìÇŸ6ŸðïW2+‰¦zpsu“zp󇿗Ğ01"¿·WñsãGúL¶–If77.ŽÚ7)n0LRbî³ XO GIÈèVHE̲ñ™ÝÙ·‚q‚¦u 1×ßN}x}˜É÷®6Ý˪ßk·e^©+eKÖ)f$§2v½££¶»MÅŒ(C$ ‰å@_qÅ>Ñ2“-€%)£/¡vð äÃiÐ=Q·•#ÜÚéùmïƒÛ&irît:®¿(N{]@æÀb¢_2KP{²Õvø¼«‚[ÖëîI@L7":‹ìf °m¿rEÛëvÛè `h¿ñ¥þK'<õ¢Àÿö°ëº ö©&Ðó½@Ùßz»[…ºíuý £ÚˆÆ»Ä H‚q^fä’멯½JfåŠú©¸z%#;FŒyOcÖsë:Ün6Gtôáþ³sjòrz‘âàSä´² µR¥Úß»¥†ùûÞ—XçÛíJúo ¦¼w T¼‰Ó#¯¦ÛWô”ùç¼H5D” Ù² -®¿ÐÍÃÿ¼2™ïBEòàЭèD ¢uø•dÇé)}ôO±Ünc¥gÌf€U¶(Uál’Ñlb-N…³AÝKúçˆbóûþÁÆz!-X+qIΔ7º~¤òEÊÙØ”~Koöv~Û>8ÜØ­?{³³»e¸¬%é/ÈÿêÃF°kM )W|ô+içFn·‹"k΋yEóçÊ&?‹—¯Å¦RÚCÈŽc"žÿ´úäûÇKË+âYeeÿ[}üÃòO•¯:ys ë#å°U袦Ûh;¡Ó"‘@ä%NHO}üîvnN„–+‹«‰å÷ï×Kª?úöÈ%*wx üÞÅ©ŠŸ.?]]}üøé“J¾3Xš€â‚³³¡gfé†;rê”rBïÃ1L [nÇeLÛë<\XErÓë‘›¥@80¨ç_ݨrá䀣ÃóKO$ˆ²œA6DŸU¬oÕâÜjËøyá5kËðØ ¨(k:4æ×¸ðþÅã]b—Ÿ]~·ºüνšœjë2$äíí÷ÀR?q?vB5¹ñòÈ“ÂÌÌŒ¹%¢w©í ])i­šQÌBVšqá+Z’Èà„l„ Y¥…R²¨)lãP¬Ì[»Uð+dubXwûŠ3Oßñq¿\?¤ˆ½2à r­ù2t‹äÞC$v$ÑwÓ‘èM@,âÒ ú¢^ÊH˜)!žïìn‹…3XgA0À|Q÷Ô ¸(ŠWErìÃÀ>ÄïPÊ:­¨£öfIù²xPnÜØõ‚ö¬š÷f %[.̘ՠ­èNi1œÔû›vªïIª8õtTõèïz¬PïöjÔKÕfÜV@ç ‚^$º‡m¥ ß½‚OwQ8xšú;½ÈÄqxÌžj=ÜäärŸÃtÚNVìEÄ3WÔ­~¨E5Ú°TüMZ¶N>ÖÉçÁ8ù$DÌIÓA½Nî‹×0÷ÀÜ _¬”Js}L¯,³iܲÒIÈ¿$×å_‡;ÿ…ŸõýçÏëGYÆ!¼ 2´NÄ×x§!*Îz~ƒ¼q*…‚¼CòÜušx&$ŸD7 - Êðî%½«Ä-à"9O}Ng¥‹z¨Ö£ójðóÒ ks&)˜ÄÕhM"ü{Ž“‘ͱô )šì(w<\³6CcâÆ Ó>S«ôטM@& (|H¶D´Úµ¹¿K‰RKx¤$ÕvD’¥í¶œwVÂ÷¬™(Sãå;rGÎ 6`8°_òùYÅ}+z‘s ¬{=d8²’'åžh1±Š·ègkp²§‰ NÌ]Uü½[>Íš.mÇYó2¦TÙYL*# ‹Ë4«"oZ¿;>ŸâŒa7e¤¾ã\j(CÊ`;Nß(>”Õª{ÏŒƒtÙ¼ ¦(°àQN臚eeð$IúYRVi)–4ˆMÀyd C‘BñÃà!~Ǩ’Î)jdTâä¿ÄFöãZë§¹6`¸x™A¯ùÁš¿!íú}ã`ogï…Ù°5èņÛAüôš¸¤ªÇ¢tÏßÈòÝ( ÂGƒ”Æi—!ÇñÛEdܦÃk–[ŠäÕŠÜU³—@)ày—5»…IGN 2:—*•ôS]£æ˜MEjâq ÷#»õ‹"ì@(0tÿìy‘×U‚9úe¬*Iwâúc<é^7@."šA£wE§UƪòhR7êåÈ%•4Ï×r8ŸÁpnòp>sÕ&ÈÆq;z<ÒS]³&G˜ÞºHuâºË£Qg½n/tÌÏeuTnÃmö£ÈM˜„¸jÉ<Á :,wølÿmavV, ÿ'fg1ÕÛÁ$µ0¨JèøÝ_÷Üî³Ã­J¶dª´dÁ4“ÊQ¼Q¼÷µÿU©òŠMü{h¦‰ˆ5MhÇ⎚‚¨Z\‘‰«%Œ³mÕóôý™çKSOÃôHwdšçŸgA+’ÃCþ öbï ÚH´ü€mcüû §ÝNCþ 78ãðÃhˆ­sÂúrÝ|Äó·}ŠpHÑÆA̞é€yæ•f¨G¾içhkwç^´#²n¯¤R¬‡n?íLgß¿#÷p •r9X»½k·wïøön6ªÖ߭ݼìNì%޼´<µu˜Ùš{ˆÓ&äꡀ á' ±ØW»»û›†´5¥FþüËfä^ÀºåÙþ³ÿ9j•(5úuY¨5+3cUYû2 næj¤d÷a§-;,+rB è5ê†lt 1‚GCH«ð™"eg)ÎK·ŽIëqî Å݃™»nÙÁgãÖ#7¼ ]A‡Ã)ètÉFqÏW2qSåãÓ³Êo¼ÒÓ0`¶G¨!Ñ£û—°b=Hïø×âÅæ&ú©»¡«@÷M8Eh}S¼YAýuê’›99Ã_x­ó.ß;G6^‰9ˆLp&,3Ÿö¼væ®$­Nآͣ諠×n_A ±Óé´¯µ™„{¤Ñi÷"ü¿ C7‹ª½}ƒ‰íÅ8ahÉÚÔŽ‚ñõk{jÏAð«+<œÖX5ÞüÂi_9×É6ž:ÀŸÿsÕ;D¯ú˜Þ×ç4º=ç¢ï\¸M"¾÷P"Æáê:aW›öaîÈ>~.§¿ÄF u T¼-HÚW˜5f‡É Oë^Çù±®S8–me£‘˜vÄf TúËî´ŒØe^Ÿ[ÝbI!Ðþ –1öW2lÌ5#–” ãÙC’ysì²Äy똧ޙÈ(¢Ô)øÍ®»:¦²:Ön×[ÂUò槇ygïxÈ)î•h)™ ÛQÃLÓg–ÚÃOƒ(àŽiÒç®/PÉ%<ù`ã”Ø8%6N‰Sb…µS2©¨´qJþi.eã” jÕ½gH6NÉndã”8ñx§ÄÆ)±qJlœ§ÄÆ)±qJlœ’¯2NIß™14p²™Óž³gÆì™1{fÌž³gƾÇ{mö²gÆì™1{flð™±>ç‚°u©&f=rØ+È-¿bͤ9a²:找`p¾¸Ðeº»8s“¹ÿä~v-znÓkðûwï¼}áø~IÄŽd¤ôÌÓ5wö*5{àa0Öô=0"ʞр{_/nǰãÉTloJ8¾§û$«6XÔ)Ò ðˆÃ¢·å΃¨Ë+ –ËÒÂ’Ú D´¸àçEÔ ¢æÿµ:åª>«õOyÏ¥ tÔÁ>:Óø 69¢Ù»¸¸&V;aÑz§’ÀÀ‘æ×ë|צ.oðÌ6ÒÓ‚ÎiËæ¡0R¢Õs#œÃJC ˜úM9~åÚ ™Nh×f\¨ˆ\˜l¿Ëž—Ó<—c žËœçòÁ<—÷ôñÃñ?жÄk€‡æÝJ«"Z†XÚ/ PJ]ÐõƒqN,ç•îghaö]$ ï&‹+žV¾:ÇÓÎN³ ? âÅÀN`ƒª±|.Ø£ 4ÚÁ驯Þ\.£¢xÍ,›@]E궘G+tn‘¦rV|/dB™oU–å±G4 ¾;š~•åÝË<¸5®ª¾hÓñ¼2Z_ÓÜ‘·™mè[™ë(øçWû”³Š¢©EµÜ.T+¾Óù*¤2¿´²(ŠÅE±œ¤ÊMŒ ŸR„l%O-]€lL¢°c2zË,dõEÁìŠZ-î XŽ¿>)ÌèïßÇŸÆ_('ØÕ ¯oj¯„ð²(Ù9Øy+WC7ñjnn„Ó'r;ÅB§jïY\H&ræQ´‹¨zn@ûG;g†4¥‹ß1ÂDœFQ9uÏPíÎm¦™*Ç>­Lù`®x‹1§lÙdSuàÔ§ªM 8å“/‡7U(Ü4ûó¡£Mc(8ØT-ÍšjÄóAM³Ï,Ò´HóŽ#Í~}ûWA&J3âÜ ¬9®-;*%íØF’옄ÉT9.Ì´kní¿>Ø;JY4õY†qoÀñÙô9îeÀÙr_,ó>”høÎu›^€hbÐ=À²é…ø`ùÄÞlcáÝêÀrž}Ñ€U™ÿèý¿²£oÿ5޼ûW§½ÑÍ¿{¯vöŽžßôÞ_E&yëïXbàÒ‰&’™ùò ù+”ºí±(Ь,°²à6ežh_RÄ…þ“Ò@×b¤8H¤%ŒÄ7¿mNE"Ätú.‚ñ/塹;ÌYËí¶}qæ³éê¬ã„‘ à±ë_‚8m;þÐÃfÚsœÅ‘€/A?‚+_´{hÎŒÄŇ&ºˆÃgDŸ€Vô:hÝ"ð³ƒæ9t…¯0 ÉÌÿÙ ºn¬àºº<‹Ð;´ÙëèûÕˆD7l7ÈY>;×ø Õqñ3r)i7h·EÏ—5èEmžËjbPÉ‚u ¹ÃâÖº„X—ëòà¬ôÖ%Äêï"¶¶.!Ö%侺„h ‡øgæÈÍ\Sƒ&Q û‡ÇÂA+ª,¼58˜\jÚuvŸ!aB˜ZX˜ £¥Lh˜N>&sÜ "âþ,BDÄŠSƒ‰Q7–;&T”¹&€‹2çô!£$ü@aãNyÙCe¡£i:N}µ ^n>Úµö ࣬B‡™Hj8Œ4²Œ%u®)ÁÉãýƒÛiHÙK®åvñ ît‹–ãÕu 6㨇¶f£­Ùhk6ÚÚ?~B×LmÍF[³‡•äaem-‰bmmÑÖbM«ï,³Ôƒ80šªÞ\:OiYÅ™ÁAÛŒ,cÄmËΕ ÝÆÇ°¡ýM׿D»h&¢—q›)x²Œ¢l1¼ÅðÃ[ o1¼ÅðÃ[ o1¼Åð÷Ã+ <¿Ë$y±»L>nïÏ‘‰Ùc¹Æì)ÈžºzÅbu‹Õ-V·XÝbu‹Õ-V·XÝbu‹Õï5V <ÜØN@8¿¡“gdOåHƒõ,'™ÓFй§¹aÌÿ`,~ÐÝ…n·4œ¶k1»Åì³[Ìn1»Åì³[Ìn1»Åì÷³× ô‡wsgZ­[üNÈ4[l°EÀ[l°EÀ[|pÊÃDà„Ñ:eµ–iòZ­eò1¬Öý9ÒVë\úêäÀÀš@èd!„Ö‚¨‡e-äoPäu•wÂ!wPc:‰»"hâ™K#%WA^øRmG>Œ˜ª¬Ÿ¬k‰lC ØP7%0hÕÝþe÷;~¡#üý•pp?;aöqý¬´ÒßÚÞÜ­oïm½8ØÞK\Ècr¹qÉ,'Nø+:WɾlcÈÊû•Êj{BÐ+¬¸e9@óì Ë.ó–T‰.Ø-;,¹ì–€Ý°[vKÀn Ø-»%`·ì–@Î-…©‡m È4y·dò1¶úsL´%@’®Õ'ù#´J6ÜÔC˜^%}0Vž+«¦M†•uN +ëúÄXY=úrXYWâbåD>t¬læÇʺ©YXYz>¬œè6‹•-V¾ãX9C\ß¾y8Yœa¾xy s¢%ÌË}i²-Ë©d}ˆV¢OÄ}Ðö8Ë0¼÷lsÿÕë£úó£CÓ¼<4î ÈÄüè3™ÚDžl|Î=Õ´.F ON”wrˆ:¹a“aNÙ{SCœ².1Þä_mÊ pœ)š…2åpçØF‡Y„iæýA˜}…ÉàÙ+lÖd'¯¨ß¦vîŠêŸºÂŸ_îÌþ@O\éž|èç­Ô >ðÓVÔ̬³V4ÐùNZ鮲ç¬ì9«ûsÎJc’Û?eeb—û{ƪý$OX©÷CÎWq’t(ØœÌ;Óg¢˜»ÂPøtÀ©=l#tdÞA˜MâGN69l$÷p›(÷¿ÞßÝ­¿D}CÄ[ò?e À d&]Ù#dfæ”ø J$މÈö«7@©.3 ?ÅxÌÜ‹^Û+š7«3‰Ô±ûÂ_· ÉÚý ý6…CVqÓØÎÍ×ûËïcíÙIˆAÎì=+Y ^`pØ©Zš…:ÕˆçfŸYÌi1çÇœý2ú íÜ©Òîýæ]&TJîßI†láéT} p¬ût"·cD ¹a ÅC4Òå¤îÕQðMˆùfIFzY8ˆZmkQ¹ƒ§–0݈ xµ`XžH2Ø­µ¯[ ¾a·oÅ!Oýb œKTnª_f‹m@-r°`.Á¼%LlxeÝ«›Þðz±}ôúÅÁëúoû;[©(ãÝHuÃhU8µ ¨3š;ÃX÷À<Ùõ…{qê†uÎYçœu™óÁèê)÷ Ù? Ù¥4¾ðÉnÄ%æ´Zá:öݼü¡ú¶\ˆ¸eè–¡O‹¡[•·‰ÎòÒ¼¿\´¡ØlWðÃ]Á9JŸ†/Ô4Œô†µgæ•%[ ž+í\;z«†}9ÞlÁÇÆÑóÃúóúóÝæ…Xú„µñ.Líƒ{ÈâÆ…ˆ˜g2ˆˆ9-D±‡¬€±æK œs"N "ÚlWðC[Á9J@±„ˆ*Ëx‘sM "îüwû ¢L€9ÓD ‘³Z”8%rY!c…Ì2<é,NœN´kخḆóÿp b6…ãdQT…<èŸÎ=0óˆ¼Ù¥(1Óƒ6)ze#3q³š+VæZ™{û27Å ¾jÜl¹ØÍ¹XJ°ÌÌ2³ÉÌòïˆTƒr)yò(}Ùn¦@H®½UßÛxµ»½7PÈ­?ÁJ³Y?kŽPtº\Z2dJmƒ¯\¤êN+>­ø¼Eñ©Ù…ÿ–WMÀ«Ò ß²,˲ËPâýÅõº á|"ÙPôn¤œ°#…­­úó­ÁFþü(xÙH„NiîøEƒ$®—~ÑDO³d½]9P:ÉÜýâ‰_dË'~ÇB¢ŸÀàü#³({`¹ñWŒ2Òì]\\S È¾°ÁúLTšóó(ÇÊËå ä“~Æ#jcY|ÍÂ*ž·Ëbx¬sÅë¯ûÃ|]›Wåj ë"ÁŽoK¼æj”¤ÛÄO¸Iw)¾FúÈ5ríz;ð[ô'yÞ:gðú…Nlìl¾,¢^‡.C öM»=LÈ Î”z ùuNJÄÿ)¶rl¬Êž¿­Ý]3L.C„v›^ÀQå)èX§33§ªwöneyùý:>‰dïÁÃEQ¤®^OVzòÓÓ//ïî–)™óQ7l\tdê8Y±LÉ`†fJ’¯IjЋ”¬˜"O—M¨•*ÕþÞ-0ÀÌü}ïK¬óívåº!j¦!kf2¹ ªjƒ…‰’"X=‡kØ×ˆ)K¢y‘êQžŽxé4J8-T¤Œ ÝŠN´ Z_Á{ŒOOéc”¦gbž>—1,âQ"öý$ÓŸ¦?Sré¡ l Ô'‚2dPZý™-ƒr !+…¬º‡Rh:bh š™É}ËÇ냽£çõÿMèD÷I=IFWº —fIa–wŒß?ø÷ÎÞ‹úî¾ü“ëÔ +Àp»xÕ¡½DåîJ`{‰Š½DÅ^¢òà¢Yë¦ÚKTì&ÀWµ `/QIãAÇ^¢2•KT4†te¡Æ@Æ(ޏ¶0#KêêByoËŒŽ ›C']F>£~”(œ°¢h# ~¥ï¨Ü }î\ºÀAšu ÷H„…*Ã<•xСï†(‡g„“š–7Odáì`4ôµ´Eë1Ú³.ÐYN‡˜w:‹2¡… 9õ¼ê^¶b=¦—‹§,j5ñDü"–ÅšX)£\NZÐd5H)Ò{kí²Ö®{f횆­+ƒUݯ —c¥Š=úǦ‡Ä÷ ’¸*ù7#KÆeÁˆx¡Ò^«~)ßÚø‰xå|pÏÈÓ6öŒ#›i;IHFZ›ˆÎ]P^£FèuºÐ8Z˜%’ú1^„º1—Ô Q‰Ç.ŠDØ#Û)¦[>¢³]“éâÔÚ ^6á[÷Êuý .!ú9’ŒEäºñ³”ÞA]U,-ñÃ%ª`ˆìt± ~РàŸõÚX€n áú 2ºs†2äì‚à‰t‹®ƒÈA¿Ô2W€PiþຠÛðÍ…s )éÖe´5QÇîB‰˜ëP‘³?ðAmî ªít» €c=»Ô ܲ£ÏˆjË»ÄËC°áÍÒRèºQíƒ|¡‹ªÛÎ%ž°QÒõ/ëgAPbã×)ø|äv±‚Ðkn· |Fº=`£Iºü gë¬h™nºjìe?-PÖUÑWdœ(òZ¨¥CJ q´ÛÁRVÛs£Š×4©\#ÁtL™«Ðër©ª7.<˜~ëî»Wm2l€jÏÎ)¬à+W|ðƒ+¤àâ*?8aÐ#«ƒCylÆÃHìˆEšEîÙ™×ðÐè‹D›÷—œX'U<&~Óî†ÞG˜­h>¥Zãô€¥6Q¢)êÀTÁNùLÞ—Ð-ü¥}õÆ4™W͹×:§8güôLèùP«Æ½«& Ôª2B¬Ñß²ŸÌÓÈ‚4[±‹zÉ'&}<ÿÎYúkcé¿õ÷òËòÒOõ÷ ÇåZe¡z¼Rí”NÖa†“^¦$.j5ÇssLžÞãm,ovž/Ìý lÚo^(+Å.N !)Î`kÃdÀï{;{/ÖdO¨ÑôôêtÔ¸ ^“QZ]ÿÌì—:™êˆFÕ¡³wžÂ_êdÞñËg‡/ë/~ƒ×ôýpÿÍÁæv™»Y’«%²@ÿ` h±é5R¿díXÅÂ~sÀ°V'„£ŽÓpk%QZ:éIÖHê´ÇB*ðÈT‚Ò\f£ö“£ˆ•3ºÓlòsà7Í ½½D?5¨wu½n™X/„Þ?†hp àÛ¢\MýN¾)W$ 9­ 3ŨZª–0w©Tm­£ªs&{ÛÜëNÛï]¼§I—~v s’VðKõøx¥„VKÕNQH_Èöé†Ã°«‹¦@|]‹×û‡;o©7šuTÜ)©F«ä©kͬ–x9ÆðµB™~&ã„Õ?b9P=EÍŸƒpk»r9‹5ã;s‰?jİ_Þýýù=ôNy®*uà¿WÌó«h™ý¶ª¨êúè è^Ì^;^ý,s¬A†’Ôgiu"˜jzgg¨lãoB)E£’Ÿ«M÷²ê÷€Gã´el%ÖÖ…¾ Œ-]%Ih%]h«‹YÀ£<Ѥ‹ øFŒz¦CŠ«– ˜ÍІçxºþY®×®Ùb#š•‡ÿ°š¼Qeõ|OÄòrWt,\o€œ‘ŸÅµ/TowBÀ™ÉƵ·¿·ª%?"UOÞ4VçG w]Tû?¸ ;tHRtòmEÓ4&Ïk¥¹¿ùÛçR¡°µýü°¶´E–²Íý½ç;/ê/ %·½SÑQ¾wõ/)X=dŽk¹£Œ4OÈxTø–Œ²Äó{|ïÛJE0 Dq»9~üŽ™ÛÜœ«N;tæ5ÐpØ«"P‚º5ÚÇsoŽ+ÕJu¾V‚¹ªürúðµÄ‰=s7ZVˆ?ýbZŪÓj7ý:h#âÖàv!~ÇUÔ‹”bèôºöþϵ•ÊÊrœ’HÀ?÷H4ÂÈ&¯?,WŠ ê&.oÑ™l¡êciË  Qÿ­ËúL-æ'U‘!ÎÝœ¿Xí ÄH¥Ge »G‰Ç]ýþÁ ÿ-' †){sXc+ˆFóŸqÆü«£’\[& ªÏ V=¥Si¤Z?s‰2‹Ãm¥0ƒh™¦2 XÙC’ã:&%0ùJ‘×'[»R˜}$æ_nïîš}áúnètYüqy•z~¬D°ÆB•àeÑè…t@I)0B̶)·Œhèí 6{ &®µE¥ÅÑa/÷´×jAÛ´ÊE)<Ò䨵2 ÐæíjÐH([íÌAÆŠãÕ¥’•xA]ü®|D-X¬çþ^âŽÐ[‰ÒVÛ×™ÇCzsT¼Œbvß½zúÆŽ’ÓöþâžòÝÀ|ÐÏ@‹B;ȳДKÆoÈ ü¼°õfcwsãp»’8-ºiªGb–:õÕ¿AËÑF„+sÿìoÛ‡;û{ ï›w/zmÖ輜-§Q|é4ðcïÍîîæ«­ÚñàKKO*«4шö™A™û/4¸I ÀÁNÛëÒÔÌ8÷÷ÊwŹ_‹ŸyK›(x¬®Ñ8Ì3h-L§åB'my 0žˆ0ûHU¼ÿ,–Z¢¤)–j%ü,”ê‚¢-ööë/v÷ŸÕß<;ÊŹV[‹¥D¨c:mɄƴa~…Ø9+ErÅ·JçK6²HÀ [µ¹¥vKU:lñ'Ű(ëâŒ*R$ ’i@=E‚'ét•N ëu’Ðôõ÷AäðuC±Ôª6”ƒ[¯-£‘éF»Ô0|ÿ(‘JPb|ßGJÒs*E$I[ý@f‡dIf£=¬*fÜ$d‰õÃí×GûRÄ»4Ÿ:§¸×Bå-AqˆñæwÎD}ã°NöûÆî¿ÅRk*ĪšÔ¨‹t‡69Ï5¥0GX€û4Œ\þŠù VîE§{ÍÆâJ¹kEQ,ΨE¹Ÿ{Ðì+`"h` +ìÁe‡ tŽìïÊUvB40ÇÊNäv@0wÑyòþïqqð5tâY Þé­NV êX¡9ø³.è[rò°úa¸4¬½-y–4 Âts¢Éøk­¢ß‡ú}unY%QÕÓ/ðù)@ô¬5õ•VPF(B24—šYÐhp†½ À (^ºÑ"àΈ û) Ø5ö" 0îXì:å´¹ÿêÕÆÞV‰ü<µkäÊá ¢0ާ¸W€}c\*…¤ ·ƒ”qsaèÞÇ r¢.©¢¶úÿ_8.WæJâøZÍÅ[•èíñ|µ %û Ž<¯˜ÀN—†«D–&­Ðhz®þC‘,øJ®þÍ^xQ·šøûŸøñÿTÿx‹yà¬KÞ´eháФQRTªëâÏÒ öíæ.”J!žÿü51”}~P_©IûJâéªñÔà;*4#V¥%Y&ækfß 9mRÙ@âÿ] ¥v“m%ÒžÂ)y: :´gó©EÞ EV×t䧬ã¢Ô Ž¥ç’ƒ5á}@ðÑŽ¬Š£(ÁH–Ð*é†h»#*˜v‰Ór>ç õQ׎M¿{Ù•¸`Z0!@j6™¡m#vT޵²\™R:kˆDi¯DÀÂñ¸”ìZPku[ŒíZY6·:T§#"Ñ òߥ¥’höH³LlH‘KIA9 8€4‘j0ËB Q±@»BOçœÿsÄx ú©Ø!êµ@]G£-ŽZ‰ëóÚéµÅ6¼ q÷8`cQP^Ô.Üæ¿¦qî¶; «^;A;Ïÿ/h*tà³62ƒ]—)lWÄ«Æ+ç²Ì¯üôxeiå§*ó%0èyôò­-• zŠ•…ý­¾›{ϯÖàAIü+ždæZWYqzXoß.ÉíÁ½ãòç©ü\K<ÝÓOƒ ÓOIÉÜ +ÕqGÊ®BûJÕãÕã•ãU£H“ÌÒ±5â— O’«ˆÖfãü"hŠï>*©|YT>ÃöšBŒš„¼È~3 dãòlÂAÜBG˜ªdÉB1€k½RÎÉþ#æÞ-¿_xL…°5úã ¬v€h«í^ð\Ÿ—¶y_ ̦æ3á(dÒdåÊÃ.oÔ| @=óðô mÉ‚l޽n€U$åÊUÑF4ìG^]VhWÀ‹h¿¶úm5Ù¹÷äçQaÿ‰2Y|$ãß’OÛÅÆ«ÒÇãFI È쥙Òúú̬üÉž*~ • 5”ѯÂZƒ²% FªÖ Tš¬XiÉ/)hþÏcªx?pnN~T`6«¯´©©mËMõz_—cRÀU3«,7]|@µ)~d©ÌÓÈülÐË6™AÒ¶¯ŽÈ”ªIYé2øõ¨V¢|Ì%gÑcšä3«Ì¨Üt¯Ñ º0ÎÑšL´Rû¾xuøŸCæ0.› …v”hâÃø îTdþÕ²ØúŸ¯_‹‰ÕÊò¤Qc®/Ða8Z—ôJ’k!ޏ Q:† °ÉÄv|®N䈼£ÐÇQžRÄ [üzÒ舥N‰ó ê¨ôèåúÈ9œÚ¢ûÉ“}Gbìahû)ë`Š0L‡x'Þ%v´3gpjF&&vx1dâ äIºÔIâë„òŠ)êš>[ VJ¥ Ù ¹ ü•ÌPk8ÓGÐS†0C>›T+ÉĦñ·A‘»C²sÏEõÝ:;&ÖvÓ=n¼SÆD£L¶S¢¡–-l¥ã’Âw(έ(ÝjÆxV­µ”‚ó²%f¹íÌÒBa>J ȌȞÊiN°aí&Á £†%*©oKgæ—_~y}|¿P^[__(S¯¯=j jóÖMb‡jMÁ˜Ä'ÀÈè6‰;»Q$]9/œ‚LÞëÐáÉAÓ•×›° YMvÔ™žZ‘û aØõ7 É­šo^'7k¾Y¾y÷GÒ¡è›ú7­RqÜšh÷9³:Ñyª6ß}Óé +³@ˆæ)L!*ß‘>¸;{µpZh’dïZ†,|À{áýY¯ÍHºÐkÈ.M§Ra¬pØ=DQÈØç;»Û‡Âí6*äoá:M 7@`̪ä¬Ôð<ˆyžBir Zµb!ö…¾ÖJ^MV¨ÚÞ©Ê›« ŠÕåå—Ÿ./w)1K¡en“ãÁ] ¦V+O£û±4òK$5È S+ÑøWÓ[ùô(Nñr{c ÆÞL!Åicÿ;E…Å)¤îÐH¡¡µ -žs¿ :žžQ— ¨¯=Æf~9i: )²òçI¡X06Ê¥OeÂ5ÝóÅB±P”¨û 5Þ;뮋´—ûÜ‚ÞdMSæcöCiË$Ôå“þ =þ![üâ9µŽÝæŽá8Ÿ. ÔÔ*…áŽûÅBªRÅþ&$zx\Wöz íóZñ¸p|Â3ºÄ®J~×#ðÀ#E:i×ES?!ŠF#Ùwœ|ƒ |< oúΠwû¯vö÷Þ#Dz‡Ó¿ád_:_|Oš/ÿ£ÍIÞÆÇ§‹ìHú¤þ SK‚8µz Íæù^frÓ JQû©ýÙópóai‰=@¤ Iü“ž\’A‡mÉÈP[j"r4Q9P»“ǰçrZ`ï NûúÃ?òÅS*&òÐU- 6ŠG¸âÐŒâ÷Ò„l {õÝÚÑö«×»GÛï³Úa -ûæ$:‰xRÑtyžÝœ² ~A´ ›}…6ž3ç~:œîq*ù P8`±@uŒl_–Émmù½J¶~®ÄëdìÕÌ«DÎ/X'ÇS$—·’í›ÄŽRË‹b¸HÀÚ;t1åñ§IÖ°)÷?túÕê:šS Oñøäxî}½¾­¶J'ð»²sM°b~³LuÏCׇÁY÷ u”ç¸)A½’©Qa˜lš´Ú¡`ļ‘ÌË6ÀAä x¶%Âã ñ—¹á…§!Z7q«@È)n¨à²½šÞÙ5¬)’ßfçªY+Íñ—R! h(Íñ—RagÆpwžÈo¥ÂÆïÿ†Ÿð·TÐMÇø›l®øÖ¹úp.²f*õ¨M!Q(ÌYµù­½çÉv-ÂX%8¹ hàÆ¬r‰úv@‹2›E#ó2o8—ãBM:©£¿$Cí“„ßZô•S6B—I> 2)%”¾ÛqbŠ5VVåffªÈ¹•á¹Õdfú`Aj¬G›¨Q³â¥D`Ê2$×j›šA~2˜eü=þª¿©/ò“?t Ï¿5®[,K>éïñWýM}‘ŸüL<µX5Ç(JËŸ,ŒÄ'ùM}‘Ÿü›’*;.êªþÄ_ä'èJÈ _fwþ, Ç%>‰«fE²êüT»ë£êøEñ$u(% W¥$Ðk)¦Y*ªaHÎ~©ebyC¢¯ú›úr'Z*1vÜV…ÃÇn-7«,1›*®“:)qòEÕ7£,ÖÎÅ)ˆ ‡ÅëÀ×Jáà»eI°D;ä0êù¸oÄpm¤ÝZWêÄãAÓð|Ð l™\b\D!ùM}‘ŸüAQDàƒ3z–þª¿©/ò“?ÌÕ/}|iEó!QÇŠt”¨¥ìƒkª‡{>B³–ïýÓfú,«Æ3WœPn7©ÈgP²<3”=Õ$99…yÍð9²¨-7tZÔÈž4göWìÛË:}lâb•h‰ßèñãð3“â2¨ãñ\‚¥ëZ¢Â÷Ö"9k—àËrIôC(™=»†~°$÷|è;”Ð#v®»Pˆãx‚„=Ÿö#M_ñÉ8²žH¾VÕ+h—;óµêk.¿æé§!p…è|Ï'°Ø=ïÏän*÷øÎ×£j¥ºTmÁç –UggžB¯sU1;[]ï¬ÄÿK4$‡ÏöߢCúl¶ÜøAWtù2Í  Ðbá3 ˜tÀ'l…$ÆPÛ¢Š:ý“XQäˆÕ·ÌL8–‘ƒV`Q©êÉy±:Œ-Á5¾ððl?>4TÑEö_dåÙõ/Ù±ªë†g¸) |ODaü;<2ï“d@åÀ$“¾ivSÅ“³:²sbï]Cà³Û PEÄنƆnè^¸ík<Êîýå„tPŠ9öüýCñ¤²Ry\Ql7ÁÄ5SS޳æÐ§i&fIR¡î# çßjº¦õmöe{‰Ö\ǰjÄÞ’Ø)çÒõ=×o ¯%NO{ÇbMBñðÌþµî.Þ6£½kô‰ ƒœÜîâ®™Aà›ʳýбɖg}î‰ÕHJoX¯ªÝ‹…  (†Þžì¥RÕn:ôKt Å6`hG2Þ8mu<_>„{ìÐátãJ;"ºÀ]ú+ÏoW±¯cêì¬Ãù|êÒ]ßm®a¨2Jc©Ü h:n$žºg à9[q¯ï‘a†!'sдR¥0'µ‹OÄàáîÀP눮·DÌ›¿ wRHIª±Ú­kÏho,”dÀ öb,”@_UEe.ó’X«bå±Xù¾ð¹ ]ž<Ê¢Õ-cuSÓŸÐøU ºA'ó½ 'ú –økrñç Õ˜Oí½¥ÅÔaØC‹ŽPÛtÌ?ÕZOf×UäžßÒÜÁÆÞÖþ+xœ.·å8o2˼¸1éD’½n`¶Œ€†è1KŒª×a[ t#¾JèRuÄn/`p˜%Ê…y/¤©"T¸ æœ|ª¸fª éu’:$©¬Eç¥Jò ™IWíì1ô k¥ÿW’æ5çê>8A+(=Û~±³ÀÖÖ¢sžq ýËÜšŒ‡×8V`R#Ÿ;‡oh?Ÿ.›f‘ ñ…z4ñ†ˆ…ÄñØ¿CV«$~¦A¯¢CÙJR“  Ž.­À•(êp;ss˜“j„#ÝcˆDîiè§kÚöÐÕêÑÜ·|~ºí]TKf6I •QJtÎ;ì¹0@ƒ¼íqvÒQì|Lóæ!÷ ªUuÆ]…oACÄÀU.|ùð K÷ §\ÖÚÈL2ÖW•I‚š¬q¥†Vhu(m¤|Ê•žp@%¸ kúÖ {Ãb‹ï«ÈåÑ­*êCÆÏ…RÿàgŒyßÌÁ­ˆITa˜C&P<}8tÔü—8ãaYÖ½¨`ÿS}?S¥ž¨ÐT5¢vŒ¹Q€`R~$(õk|ò™/¿¢`‚ÏRwFëkÊxM’˜DgS†Ã:›¤¬'ê^·òö W¤¸ü,u$3dèøÙËŒ°×ê R‚d•ž'ÑÒ¢ÀûÈ›èuçàdl÷R3hðMq¬nÈ"bôyþ¨èó,½þ°È8PçyÅóyîRÈ™øqÁ4NðÐ0#ý$©½³OñeTm¸eäÓè:t©É¹as&«¡ -9¶£4HÒÑ~5Ö %Ìç*˜°^]ŠÐ-~A¯æÍD0ÞÈ|û8]õ¤7ž‰‹bKÝ\†²”®èQ ä3{ñ AyvÛûà^y0N¯ã@“œŽ_¸]rGDK0^óZqËS§ñ!‚®?2*%ð?{.Ÿ½¥¨SAج‡nMÇ ”1VÞ§Æêg¿M€þj µ °F#Étgé//>üJ?«‚±ðY¡‰˜ü ñø1« §‘ßNk$%Žç¹4Yåb ož/¿_(—™ói®×w”–âñjñ¸°¥~‰ãÇÅjg1“€‘e³@o³Vì@ŠN§ÀAƒÇ­e ¨5}ú#ÆŒc7ÊŽÉqh W…tÏ M—¨Û)×Mê?’[+Ý'¥F¢u\(V[ùTŸñÕœ¤î²U[Ãt—Ϩ›wiJÓÇ™ÿéx®\†ÖsÌj©ì8a TAªO [ ÑàMÅÙ¢Ò9 ¾ªª†éß­²ÒŒ`E>yŒOõ÷g‘*S^«åtn¢÷YW ß,âûU¨ÙÓ‚#E!Öž'OZÀ“—ihB[óö‘À­ë´Rþð„½ÖÞ=¹»ùžœy.‚&Š„·ë:h¼ýmäǤýtÞ/¬-”)ýÚ.^¸±¶‰ÆÛíGŠ’rÎÝýTŽ<»ùXÛ÷KeÙ7µ¥µ¥øñ‚~,‰®ÉO€äf_àF€@§ÀAqÖ¤ƒÏGU§‚ –Ó0ƒå(/xJ¾ñä³ÊÓý,;x—ê½°Éã kÿ1$T§“GQž©kD™™«ÓîšøYBŒûâ¬&í]à‘Eÿ zd–C)—rôä8 }Ûæòƒ:@õåýô< .}9ª‘Œj Ö”e À†ÉÝÉSWlí.EÝkä”HJíÊsSÔ&¦ ‘t²Z£ºz팵Œ3yÝZº ð KšÃ±Wþ3Üð˜«ðUIãq‡%žËŒ›ËÊÇšŒ¨>|v »˜ýUÎFñ£Qyó¬!²cÌŸÑA%å¨z–öQ=枺¾n’LMPÎ?`ßÔ3é–ª"É£(¥#FÐu• gð´ùkDâ$¾oCÉEóhмWq+‹ò ¦Õ‹Ô–2-7è´Õu˜§„@"ElÜÀ¨ÈêD4ü“7f‘.’qfº>_vE]¨=÷¨µRœ‰Ìe|'œÑ ñÆê§?Þý±jΧOëѧ5ù}Q|j• 3'¥DüÙJIIkšªu¿R,˜K†ÒÜ_'ª=—z©äv¾È¿ºÐQ1„*Ú¸<º:+öÜ^7ÄÀ²®Šs ˆØ/Š&@“쑇Œ'C†¶‚Èàö<…S2ï8þ–/…ú¤î†ÊNŒÖm’§˜ì)sÞ§;J¨ãj[üpùdt1£øgPO“4ýºÆ˜(­-­QÕ×€{Ö/æÞúrÃñÍÖ:šÈð1Í“oëés`OœÇ@UΓ]‘6Œž:e<çƒ&• þªnuAG‚J JåÀ0T˜lD’¡$FÇ«2PÐÓcJé*cª¸Òù‚WÉÐU˜cTP*#yNÂãŹ|8Žkä^X,×€Èx‚´$–8!E ¬Ê—&Ί½ TPšÑsq¤ØÛi©'ÃéE1¬hAÓ3 ‹ø0ÓÚz$JVŒ™D‰«÷§ž‰ñ"àÊ ³%ã.EÅlcJìªj)ÀŸZC&Љ4Y«BwOrQÈÇù×D"Cæ’èK1Œ@®¡êþP×þëŸÉ:Ê¥Æ~ÅWèQíà ¡¿ãáCý£4œ¶«bäþ^RQîH ª»×ŠtFάÅqQëÒ°P¤ÈI FÕx8ûZ„iƒ Ð5]ø´ *Š_U=ñ{\Mü%kI"&×…‚iÓ/Oµ|Ö+ ®ºÑªãÂÌ ¾ J5ôÖ'ïÍgéÒ¸=²”¯+°#0؃ÞÌAÛ¦¼Î‘7±ð ªÌ¿¬ò/ÇtLü$8Mß[:—üMRªÏ% +ýãÜ)e¤¨Ö(Ƽàt\#QŠy›(.0¤,ƒ[ÆQSãCx{U*@^%ö-—ÞõdSÀƒûÁ9“/ ‰7)¨Ûóa.àEëNR]†F‹xG@œ…¢ÉÓÆý·ÓÐʼnëS£ U±+ŠLyŠ~ |[+w$*±Ýu¬17²R°z ÑÐô¢†69XéVW†¢ÿma^ÍÑ%Ú=;ÃÆ^âÅbvñI”¸'£€.:p|¬ûéCÊùÐ-cØãƒ"PG±¿@†#]iÜ.è^0´Ãè_¹äYÍÙ ŠÈÚ:—ЕÔxŠ.aÞKçu^‰$3Ñb‘<5õèZH^HŽuÂ5’Ñ“t¤ åHußxv&3®“ñ\ÈB.Ãø˜¡—d„¡”z9€ëšF8|¸&lÆBhñ&¿‹Äœ¾ý–Î58tm). ­A!aÏéðßGó ºäš·µ²çu}¼¾ˆ[—’'/…—A oIØ“a„Ž@ÅÕe<àz­ÄéÈfFèÂplQî¡8çú«›wÕ)rÙg`¼ñR9ܹÀ}F$°ˆEuF F ñ1i!OÃKÿ?kvã@æ‚™-xœ;{\rÖNɆ-ŒAg¦«®gœžr†QE¢¨H/C!µ¨(/H§%ç•äé.Îí+Ï0š^hÿ³ˆiûŸEÌvw¦§0j ç'g§–(dæ)èæ@ØÓÆ0Êó ‹O_WϢ•“™U‘߯"3½¡ƒÅ "°=?•±žqúêF—í~1u1M?ÉÈÅ ‘„iºXÀ’$ˆ0&XÁÔ?ýf£?²øôBQ tÕÓ/J0Kc1ƒ±ŸÅ–-ØßÙÛ5dºc?‹(ÔfO§`¥éòu¬íoÛY¶¿mg}p~¤uçì€ixœ›µSòu§ä„VfSC豮 zò ce½™Ï¤ÔÌhkÞÎf8LØÀ bL×cb“ß,4ç #ˆ×üsîöŸs§òoï]Ëø„mºÊF½é[ý™DÚ“Ï0131Ëöä3¬{MÁvüœë³=Ÿ‰m/+ˆ·]Ÿƒ-;®Y2(à€xœ{Ý)ÙÞ$Ùи…Éw¢BAvz|iqj|^Rr~nAbI|zjI~AI|N~^ºmejñô…[…·ÇOd:.2=à“Ît…,ìÓ#–1yM°cegÎH,›¾z“Ëô¿FLSÍ”3ó’sJSRl éeØqeæ•på&fæ)hhrUs)(—•&—(e3óó"¬¶3æ³z0M÷?ÅÄË ‘Œ‡HNw|À# vdrY<ЮÔxdùéë˜Ý¦ÿwb5»ãö:&…éÙ§™xÐ i8ͤˆ&Ôâ̪ÂäÕékœYeùÑýþÞœIlºÁ#&Žéó60OŸîÌ*(Œ¦†‹3-sú}gVyÓ|1Ùs»»†ø„Äûøû¹OïĤ1}Ëz¦˜öÄL@Ì Ä,Û7²vMoñ•æá;xœko’|Û Ùи…ÉwâôE[…¶7LdÒâ´ââLÍ)Nå✾q%‹Üt•µL¡Ó?®f*˜¾i%‹,s~AÉôÀ3ÌÚlé©% öÁ­,âÌœi™ík™€˜ˆY¶W¬eíŸ ßÓ$Î≂&xœÝWkpÅŸ½‡dmœ*Žñ+áŒÄà‡:UÒRŸ%Å–­HÂ’˜CÖ¬kdNŽIq d0€3¢¬i¨>”™0äU%ÝN3“¡iÓHñС膦“–:eH¦PÚ½ÓY6™XåkЇ}ü¿ýïîÿuÚG®8?U>G”pS¿ÍévChüNßɼdjïà[‚‡ßìLo´U¤ï°-J/·Y«[ºZ;>ogJCRHˆ'¤°<³]ú¡W—ŒÀ>9&Ê ˜4ú¨Ü§1µ¡Tƒ EQgÆ:m8Rba} &$1©UI_¨„‚ÑÜLŽ…¢)Q*QqÎLTBY<¬h½?¢Duù ¬uqQ×OgÉiÖõ3:œ›üÐioó ölçÉvèvµøazÒV7Ò—’£"Ô[!O£A)&* c¢$aDIªz£sôAÑÇ„aç=^Ëλ…6¯?]»»ËáôC¿3 læ;œÐn‡öMn¾ÕÝŽlo÷ù6ݪ‚!!¤ „áìu:{ÐÛÒ®u.?À»Ý‚¯ÓÛÚÉoN¯]_pðº=‚vòr È÷t@¾ò]¯ÝëÙ¤Úœ¼ÃÙ©m5·B§Þ6Qì‡=.Žè’Ì€-µt¡7›MkÒÎduºA½Å˜fv«wš@OæôööºÂ=Ç™Þç_ ýò"{sÆ9þm+°§Ï¨ èÈ)P“›Üy‚=ž9t0X–~íÔúÌ¡SÛkF\1NH\8¥¦ÒjŽO©Š$Ü69åbŠÊ‰’*…T.”P’ÉÛTE‰&á6b`‰‹$NT¤¤N#Ñ“PÉ*5¢ëÓ\À© 9•ÔŽs…¹a%E9¶Uk“PÛDîOmHUY‰qr’K%¥p*Ê©ŠF]Í‘•A²Ë¶„¬Jš0hœ¬¹?–jPýÙ«ÝÀçOû>·e.üíÃâø_ ¥oÿÏ»™…_”[Ñ“ Á[XüØO#®˜ñŽÅ`)@—m&ˆ_,‹M˜H€WV;«1*Ð%ü ‘y1ŠßB³øýp—í6Ç×À+ñ»[À3Vß Êiî;zs-Õ€âQ¦ŸÚ ¦— ªGÀŸÓL¾'w×o+Ü*‘ƒ¡#ð­™}hçohˆ’GÁíø…£`QY>:~Í^ŸDÏ_f  ¾$¯Ž/‚Óyˆ0ÖâCŸƒ5ùhëðETØ‚ž8CšR¿öw}  ‡ª¨âë\“•‘ʼWmžÑˆ~ÜM™³êNtS“0+¼'HA]ˆˆp6÷QOÈŽ(U0ùo”ú…ìÝF-˜ƒÔ Q"À‰G¨i™¦è"ô“Ç(²nakÐïG©êgŸ |âqjÂ@=£D¯†b‚ŸÇO¢s kÆÛ_¤šªæc¼z’ZŒ_:I [¿Ä(GßýµT§=4IËø¯TÌÃðÅIêS+úÞ[hJÊÛ%AÍZ NSË,ºØ’’cj\M„|-zïeŠÅÃW¨¡n ®EK·°ÅÚ]K0ï¡G¡&,BSzÖ %¸önºf7 'e1«ÊÀ‡èZ°FZ\­‚ÓãpñAà”'nW àvÎ IZ‰ädLPs1ý£žZr±®Þr×èØ±ƒ›E®Ñµ Z¸ì/&‘,—s”oÄç$ú þ ]€Þ{”&ˆÉƒR"Œ¢=+@Ú·´àÏdº‘V§÷Wh%uê>@ÿYÒõxð§tÄ<+ÄDx´tžPÅ$T_Y¨…G=ªÞ–hV©À{'è§æs&Ž‹”éædãº5õx$.«Å¶OèÆüÙ¸·’µàææ|q!ãe%LùŠ<Œûñôæi#_Q‰'bs䬃‰ë1¿ùÚsÎßè|;cÁãíÌA#%c™OûHÕ9ìcž[0ßí_¸—yÛŒ¼"sm•<'23úx+S0P6ŽÑG©™š%¶÷2urïcÍ!UøfÜ@ w yë1椼ü ³ˆ–cM9´_M3Ì¢Kæ ­ãŒ”7 µbkʼnýÌ_ÖtŒ¹øiO¾Âü+¿÷œeø¯°ßØÛÌUÃYSdfê×$ó;C8rÁ""¬ÆŸ\`þ™¿æ­Ý3…ö*cZRæ×á®3W²1eRå©@Ã*ñƒ Û=_þd¿B$ªWÎ÷Aüà¶!»W¢Q42Æ~_±±+‹òšgªƒ5>ßïbÍéçoMûþ`A—K@2u³7á ]l±ý,ÆÞ„î±LÖ2ÄãïX4am.–ãÝ {B.CÞ8kÊ!uøØ0;±@CJÑø.vn´}´‹í]êЯžfËrRŠÇö°g–Íwp’“xì»®ðºï(LÞQ–Üö[ö.ûèú}v…dÃο³ëå¿ÿ€ý!ŠüƒÝ‡ /±,^b#äy†_ÿmœó†´É†ï¦Mo¡ûJMw¡U¥¦;ðK¥&`¢¤†bf‰i5UìŠ £²È©Á~®Ž¼JIvVîzÀ³U`9~®ÂtiEö­Ø€ÂL j> ,YAÓÿ—ºÈ£í†‘6xœÝ˜{pÅÇgï¡Ç%àø•Ä‰ÎqJ6~`¢ÒȲ’8–eÅ–ó„géd]#ëdé”ÄC…œQaÓBR Sf` $uÌ2¥dmJ%-S CCéÃ!¡ %Ò³lk˜é_Á3Öí~¿ÛýÜÞwu¿Ó·–ù×ìÁ¨;"…+;×y¼^Æï ¬ã:=~W‡+ÐÞ»îV×ZçsµyÒ+eéçŒôBgAyS×Ú¿½#À»„ Oaq£Òû^™µ‡éc!1Á$õcTìV2•fˆ—ù„$ÉF[MëO¥XXmFø„Jʼ,¨'JA>šé‰±`4R›R4dê…¤ Kʱ3"÷FU}‡¨â!uìxRgÉŒ¬žÜË«ŒÍž5ŒÇ½®skŸv0Þ–¦N&=â\°§;%FCŒúÉã)½µCˆ…¤„Þ‘’LDJÊꇚ£6ôµ3Ü._»¯ÅíòrëÚ;L‹Ïííjöt2ž×æjõ0n7ã^ãu­íd¼ÍÚÑí÷¯¹RmñA.(s8óÙãÙ`Ú›Ö+‡_gÀåõrþŽöµ®¶tíµ³½Í®€‹ñú¸N¦Ãå×Á¸6µ2®ÆÕhw·ûÖ¨uW³§C™€Qn+ãQ?q6ÏÐ[é^§kè9çÒ  ¾µÚR“ö$ËÓÕòR½;t—¼Ê6 ½¼{ßÌ¡ý0dÃìnÚüð«ÔÁ_|BÏòº®¸Ó'Ÿr€jxä¨ÌtV£Ÿzæi~fúÕ×=sbwåž–+G6œ’S aëJÉ’âv§²1IfC‚,e6˜’É«dIŠ&™x…6Æ÷ lH’j¶OBÆgÉu<å°rBŒG¹še[Âl¿”Â1¶]ùL2Ê$bOjE‚—E)ÆŠI6•©(+KJê2ŸÉãYv&DYPD^'[ÝKUK‰íÒ.aþ´ÿ‚sèô_Ï_Â×ð-¸»ÒWýÞÐegÀ{/@¡ËÁ$dç+(žsZôx1(² ¬R-ž Ü´’QÇXð'ˆûÅ0¾”¤ÑG•`ƒó^ŽoÁí\ŒÞÛ~PãÛÁl’½ž…oÕÕ0¥lèÄvpvœ{;ø Ý7ò¹¼~•M ³²€Áà‘!°Ü8¡îý5ÉÀƒGÁ,¯“åþ¸¬Ž°ø Zcnw‹FOy›º70ö˜ ‹ø¿FŒ5r½|0¢†P_A—ä3yO?vaá0(®SNÅãÔà'›ÈÇðÐÊST›!ÎËe²øÎÂ#öÄø(n@~TMOÊ!üÖáà0HÀ‚g‡úŸËóÎv½~EOžÁÇÏQ §€#ÿŸ}^Ε8£=sÔäK«Goa;¼ç5rº5!ô(Å €™(8—(ž9ñL„ÏŒÌÉ;â’6cDxp#aÕ†;¶‘a4q+O0ª±¸Y»‰ûôÈ@”°™"ÿÏ鑇vÓ²¸`qÝs;ñ6 -£d!üñ÷ ,ØFWÂß åÞCPèØÝÄ)=êÄÃ*Q„£ÏO±÷Â7%ÚŠv?N4Î*ã•—ˆ"ôäKDÁ¸ŒÙð;·jÚ¾RDŸ"Z™<úd„ø²~ï=Ý’w œ¬-s–˜gWe{ œÀ ^ ?üA£þóļs”Xßw“vô‚›l`”ô*X±.V®½¹|ä *ÂQ™]•Xµ…œ·øÈ%ð¶ D <¼…¤áMÒýàMáé–C°•|žl'?W»hï6òsBíÓUøgõ¡ÅÏÅÞj!+à‹ŸôåŠÈÉóÙU‹W²7Cþ]jÑ´,¥ÅXÎàz¹nµ’­C[ Ù¬0Ð8¿¶1 ¡õM‡¦¨zTãm 穪šbÕÅ,‰“`EGi*2P ³(õuãQêërQ°’AÁm ¥­Ü„R_7 Š"ŽGÁŠŽ²´Â@™~}¥±aŽc¥ËqÞ–@ÀëÉŠ¸Š a\B†ªáêbòG›ªð³¿’uè"›3ÆÀ›äŒµ„±³Ú_LÀE½0 ¾½)[ xøÏ¤ ~x'‰‹„˜¸CH$ù(Ü¿l‚Ôƒ&ô•HÖ±€EòÝäeÊÔ ¸ñ)òYXð4é@;~JF¬YañhéÅÂÅÜ‹—)”–o£K”U)C"¶A¸¶‰ÌT—“Ž««©Vl¸ª©BÎ/ȺüõêCsh;Zi§æç+D4¯„š½(OÆMèì ê~½¢åBR<3×P'›©¸ZAÿzÊš¹ßeðýõ”ZO=­WœŸ²›Âgýû©Ð±z þ~ÅNKʉh—•tq5uÑ÷“¨Qþ˜*B­OR óÖ†Ê € •åð®aÊ_hïNüv† ‹LHŠ ƒÆ†©Úo:Ä5Ç)¿E¾{Š`ÑÁãT}þ~ô$uõÿ—aû#å/ȹ†tíÛx®ØPôj¾Ü£ïPF‘>BýV÷œÖEˆÅrøÅi껨ûcê¶o:ûÅsg‡}!pøŒÚ¡¿¤ ü›Òß:ð;O=êúu^‹Xd±WèéUbsÐ-½qª­¢½’a/žÂâ<º¥†®ÖÞe¨¸Â=èkÐy'½¸0ïR¶Òƒ:æÍ]´5ýÔûW¦ýoÛÕÕƒ–ôèt]\£¯€7iJ[ÂÕý®]«´ÕÃý…è.‰>¦Šó`{œ¶d" Ðp?}jš)…‡î  2‘¹èÓ;èÍÓÀxü~zff3”¢ûé׿å1û:p„®Ÿ>é/¤hÕ1ÚnCë~C÷±ÚÏ©_¯ÎÓ¥hïßèkÑy#|þïô0òú8}Œ Ð ½~†®3½‘2¤Å‰¶–7 ᥖ pI©¥=YjiT]"j–eQÜÛÁGÅ+ó=ì>Èá#Ü;°“œ ¢–YÆi?WÃpUW¿ ìšÐø?’½u°á £xœ»s_bÖ‰†Æ¦æ-,nñÓõÍ9§¿Hbá›®šÉ"½}c<Ë7&TA©í‚É,µü AŽé6 ,ü AÅíÿŠ *‚RÛcËXÌØÐU2ײüBW9¨’c{^KªmŠÛMÚYþ¡;¬|:P9çtÛvÎö­],Û·v±ª/¶A+ë€ xœ›uG¢eŸDC c S ó–Í~í'cY¶ŸŒe ¼Ÿ– hí(xœkÙ'±ĆËÉ)–^›wXNo®™¸½f"£ÀóvîJ& fb–íÜ•¬?—İŒá7xœÛ¿Gbó‰†-Œ=[¦¯wdaŸ^ý„…kû¼-Œ»Û“·031Ëöäm¬wÒ%Àí –&xœ{óU¢ù¡DC c S ó–C'¦×nbá°SPÈKMM‰/N-ÉÍOIµ­L-æJËäJÉÏKåââÊLS(I-.QPAV£`«Te­P’‘š7½q+“Ìôý—Y¦oXÎh¸Ýï Ë-n~°ê‚òäÄäŒTÛ¼ü錛YĶÛ>`å†Y“ÄgT ¦uy¯Ö}ÈfÒmÿùšeûÏ׬ŸýSbç—Ixœ{óUâË}‰†Æ¦æ-,ŠW¦‹L`Ýnû€…—{zÀF–éo÷²pLgÙÌ" ¬.Û~5UüwTå xœí} xTÅÙð3ç²I–HB$™l–l’Ý$@€„K²@ $! Øl²'É’½±g—‹€ÁËç¼§:Š7è×V?EQÖvUA«¶¢‚VmU¼ÐÖK+x©UkµøÏÌÙûnH°¶üÏ#<Ù¹¼3óÞæ÷3gÎÉ/²¾»?s»VÀ‡ Z-]ö®n‡ÍirÃÊòòiåU••Ze²JǤ‚öHNí ¶¬‹Ä>8Y»šìf8ÿ:îÁ&zO0¯tésü¢¡»ÏUùP×e±ëÄ>œÕí°÷¨ÕZ±O !­†*a½Å ËUÂYÕÝ}6‡NZà -=°¨Eß¾ V¥³;츩èìî­ª&V géÌÂZ´‹LGø±å‚UpcISc›¡Eߪoon­­Æ…=üÇeƒe=¡|ŽðW$“h´[k5Jï»çù‰Œ¯è(? >ášµ&´ØanݨošOÿ,ÕÏ7ÀÆ:£¾¾¾ÕÐÖF“ä§®¹±QßN+ëÚ—·ÐDC½¡©½a^C¾½¡¹Iî©Î¸Ø o[ÚjXŒëäl[î•öµ¸¹ÉÐ> o]N2MúÅ´—¦¥‹ ­ u$Ù¢o1´úi74Zà4Ó°Ø 4;ü 7æk t ¢–] UEÂZ“ªe²jëj °Þép¹%ŰrVaE§ª·©èì”—gnBäëç::q”¯N¢œ6c™ù.9Æ?PÓËü‹Ò¼´;ô¾—¶X1¨>I'˜7¤Âì7Îàýû¸¿°‰Ðÿ½s”Ÿ™È‘1•Œ”Ÿ—„óV剜t_ÁE£ÚhDÑÔ+x¯QçqÒŽ¾ _óïù=Œ×4)d)1þ( ¥=« ´ô Óq>[Z¨ÍHÅ”[íF±VcµÃ2Q£”N–N”Ɣ͒ÚÊI»Ë*Q×q~âßâS¥r­N·Ú½Û´‚ ZRm¹&„£P~ ËÓ‰(}89_NyGNéç%ï ¯wGõieB`r{\ÂNg¶´Ï°*ÍŸUÁj¨Ò–¬XU&hÐ`jr¤â…£ÀÒ–yÅ þtm'¥Kmê6úKà&( f¨u+Ê´+uF]¯¦3$tÁnê² Æ0xïçÛ@8ކÎs‚Çÿ.šŽ“àW ëòcG”®êЮèèЭ,-Eûò‹Ðé|EnF©nÅ*RXRªÓjK{kÄR]i©¯B¥P²Þ nY(³E:°ë”¿ßƒ·ç‚ éù[»èºØvÛ W  'øbPá}ëö#œwïOóYïK?ŸŸ€^úÈ“jî+§Ý Óó›Ð}ðUÞþû‹éæ¤ÞýÞijÎLOHDS·2ÉÛ»ÖzK½¿ðºY)Ç7ééÒvßÈtbÉ×C•º®¹i^Ã|c[C»A%=ìÓ$*¤–‡³JT8át =–õ:ÁÝ­#æËÒ«-nA¥ôi?¼Tÿ°Z¡ÂKH’JÚð°*WEŒžØgéq+é²×m$­ŒÔò™ûH‰TñH­tâÑLïÕL8“+}õh3U‰Ë“ö¨ò¾yà—}ö›#-<4BzìñÉT¡ät…”ú„Fê?˜8u°€´Àœ:¸ÙÕSüå• •5›•I¡dz2K:}xT™«¯™—Uj¤¡ 캰»ŸÌK*¥ ¤5ÕÒ+O"¯ã©™~Zžÿõ ŠKîÓz¹`ËÓuTÃ?ý¿Œ*°šXzûÜØIp .Ì~7ìÂ3T´šÄ>A”.ùMå„nìeÍœÙaÔךçÉË Y’µx¶+¥¿ÉNTÊUJé•™‰À3c‹e“à÷Y:•!?&PæUÿö]g´o4Hî<²ÄÏ_23Gzqä&X=Búí‹ùêÙch¾^J;Z•,m¨[Ðll’–… rºNZstJnx%Tu›ºûs1 €h3m Ôw ¸=­Ûã&Áa)¦Äm²Ø 8f ÅE¶ lQl´8ì"¦¯U°9Ö ¤Î†ûsaÒE4á>DO—(¬ñv·¿;Ü@Þ1YçpõËT»l2Ýh”d£g` jÍéhix>RužaÇ¢DYuù>I/ß3Jpµ^*´1(cfË )@‡Nˆ`·ú}`tËHÐè÷|8 ;èÈ(0.ÚƒCJÓGhµÚÀ÷Ks@b•±:Tñ¶ ©FkÐM[ðÏ~ô4QèmÄà¬÷ûTÀhN:xJÆJ›&Äb…K33ð ö‚i$æíË1Ìx÷…ötòj4/¤Ç›gU™ (8ÏVeFÏðgØr™ù÷Žw"§M2¹Ÿdƒ^J®c¸‹º›höxƒÁÒñàBƒ¤ #_Åá>&š9Œ†W¶%ç€g£mMš‘ Ò}çd€zò@G´.`ijQ3óØÓ\=zç  Fº|0Y&f[~böäƒÙA!% vÈŠCQ@^`Bi[U `¸¤DÎðV4}7¢ûѧWqúÓDïY϶ ¦B,Šw–ŒN‹YrPšä–ͯ««í¤“1l%p{íX ±fÂÂByYÀéNdÕ€i2±ßiÀÈøt¦ßTÒ‚ê“V¦AoU8'Jn¯hÍ~Ðè+,=ƒ¦v³I”tßFØ:t‡*î:th7Ï¡m"?)ßag¡§'ƒr™i¹SÀ¨haû¦M¨û®F§‚ü‘‘„!ÛTPn&õ*ôÕT5¤ÏàdÇø¦U›†@;9fc¿ã¾a„°Uè±9±¸¢Wç5µ9ãõ -¦¶JW硉YÝÓgÄõK|éÁ­,Ù8 +óAÈ&úA˜Iôb«¾©±aîp=Ä¥ààÙá[t!HFëZAư"‡ûÿ¡ð¥\v†°O_Q7]¹ŒŒAèŽåØS$>ˆ‰ÍÞE‹;ÀÎŽ€;Vc¢aÜ}ï­kCx3â9O¸®Õ_¸(¾wcþ“³Ãú:;,¬gÖÖuƒ29Ò·‚të0q6šÁVy~§ +çJLŒX®P?HC— Cj‰o¯îf"¬ÙèG¹¨ÂîMð?EBO|Î墒ՠ”ØíV´w5ÈA³¼L9zGËÌBý¸µQ’Aõ.Î2v¢dùp]?Ý®B«l  ’„m6P4 >Ø?æ—ØÁClæ/ÿ”ù)ÊÿüÝv Hòa÷ÁÀ °ý20…ø;æõÄ@eÕµ´Ä7¯OoSÿý¡ê͔꘎ ¼´S÷º+À@–qã•ñ£«Ú+CÑVÌñèú+ANÑ™YEŒ+: ó{]‚ö’¿*yDM6±×Ž)Ñ W‚ìByš=6Ûj@wàœ.G¯Ñn² µêJ%‹A&Ú‰Ô L;}|ãî3Îo5´{»¹¶ÇDªÐë7àO· [Ø-WÚ³ T!ÝÕ MÝuWƒÉÕÉKv€,ôäÕà Œ¶¼¢rò”©UӦό‹;Á¾i[Á(ÑÖkÁDúXVþ#úiVÙôWTjUÔ½ZBNE™1>ä…â}dŠ:œ è»Aµ?ŠS5Ý~ »§èÉ›Àh”x=¥ #âé¬1\Ç-Xu=¦›*ÂëÁˆÈ™rìz¡ì w(ÛTuè—ž:™3A8“à÷ÜÆÁà…¸2GŸ^*J†/m¤Û 2ñäkFnÇ«òM;°ÿŽeÜïñaJ6M³‰d[o…Q’å©dQãi~01$Ûˆ;“c6©1rœŒ0¥TŽO#0&Þ„þ…¦ûKàPÒ<¼•Û‹>IbÓQÙý|ú¦ sñôÍàÁÝÒ´öVž×Çs­Õ¨ü] ýmÿß×'@büµé¿g÷g}ƒ Û¼ŸKDw¼]”ó“íüd;‡“͇ÕqÔy“^ Ï­ÉÇZ¸å¦1³ÎkâyM<ך8#ð<'Û%ô’Gòq6f2ã"‚dg!“? z'÷¾f ó.7œ}ß_·óé([ËŒ‘7/Ó2Yè…iòæoÙù(A-:&öùO¯Žq0ççÑùyt®ç‘Ž#‡ åM84ÉŒ~2ºu“þdÏ£t4g“Œþ9™0ÔSˆIó™ÛgÚ>ƒODž…xÂìXÈÜ‹.õ2“Pÿ¢Ø¹‚V-Â0»1œŸ/çç˹ž/Áu-41)‘x›L±ë v™†œ'ò¢ãî:›Eg–%°èÜeÁó£Iäà ‹ë§Î³X…øì®]ͬö?H˱2©ÑS>ÕŠÕ¬ÅÊp±´Üêa”h³•òñ:%¨ÅÆœ>A¤ïäÚ ‚x &Sw“‡…æŠṵ̈%ƒŽŒ}Šê»ÁÃl–é×¶@_Å€€”­cÆGP¶e£=뙿Ÿž)LºLÂLv”€m {¼À´…Éòݾ…Yæ—΄˘´h錺ŒÉŠ2È”„Dtß6ügà²a §õr&‘61÷lcF æ­Øì(ò% 7*ŽdîØÆ|í?îòÕuÌèÁžjàºÌÑh®g&µÆ˜®gž;óŒT4{'“0"\¯–¼ÍuÒò\CGRŠŒ¸3=¸“„×1+17ËT¼!1qŽXâÒôÙ$ÜÂŒFK2´X0!_£õ72¯ž‰˜OÖ*JN%!ëÍLƒLÎ&¢Oof1Z…‰HG-?ÁÓWs¾œ[˜´ó› ç—Òs¾”ú]Ï=|I–ÃINTDZÖå>3M®ã…j‡"; »QÁÌ©39¡÷ìgr‰º5îcRP¥—YDÜÑY1tÝéer}x™öó¡ÛùùóÿËü¡žBټȌ<Â("ÑÏ=„Ÿ|óGnÇ_$+Ç‘¡W$<{žAÏ3'Î4{Ž2£"–W:“šŽ2írLGF»éÃŽ=Ý‡Ž½Èdàº+щ»°ó@¾sŒ‰wäpåÝ\ðÈ!zÉ˵å`'G–S¿àY²¯­köƒåÈ>§ÞÚ¨³¦GÆ÷@Š*ZkMgù¸)#n²$—ìçJQËC€C§ççåÆ Ã›ÌÔ9OÊ|ãßg~ Ðá˜ÈŽø ¾qŒò?dfŸ™ì°ÓVè³àvt2‰U"õ_˜oÎtNÝ÷vÚ©³‹S#Ñ”“Ìÿ›§˜Ø“Õi§p ¶øvÁè;!›O1#J#±Â(u÷Ó÷”.(Z.ŒîðçKœlzî3œ7Däó19î NÁ,ôø;#çÐŒ¤ˆ¾²^ƒ+Ø1µE…°¤–“ n·Çe‡å5Jz nïÀ¿°ÅÅJT®aEc)°[¯JaÇ$Dèag&öØH̽ÿyz6`Q¼Åd&¡}#YEjÌõǦ£WF²ž çÒb˜–ŽîÅ*#9·)›~7ŠR+ƒìSE°Ïìð7@ÿû \—ͦÆè%åb2ªùùLà@'å&3öµg6;==ƒÍ–¹ðZ6Ö@ʽ¦qlrôv†~;fDŒ!¼m;¤! r.hñtž~î ¡úsvÜ`íq]nÄcû„_°ð,6ew;ýí¸ Ý¶‰‰ÞË£÷ïeËЄ½l¶¡C™TXç.o7›[ë ­ä6—¹ ó†¦ú}É56´·7ü˜¥]Ž^»Ùb²C›©ÛåÑžÿá„}oÞÏÎŒþã}lö(ù )K¯¿«3õA5×±Ÿ+oß4rÙKjlpC³C ·qÕÀn´ï1 t‚ãŠÇ@·kyÕ¸×#ˆ"½ÑKÈ~ÓãìØ z»&ÀѵZè–oSB´ã;­øö²2;ѡDZ Þxœž)ö‘û¶q#h»-£Å²b%¬EÚƒìôUk34ÒrXT 7Âî>“ –ˆ°ÉÉb+›­Æ)¶Xè“Á!„®n³¥;0Ƴx žÀtMx‚¾ZMt81ã{&â¡”6“ÅŽ{QnT†(¨ñwÀ#Üt+ÙË‹öIv2€¨s?›ÇöX”hç“l zùIVÇ’G˜—ÉaW“CTø[¨’Ùœ"¿Æ˜Mô¾KêØTþköW诿fkCè±[äô´ºG¸d­¡yJZ÷ŠÀÌT¯$Õ›¡‡üx´VÌ…Š%Úþ4ûæÙ¾}¼:úÅcÏ“l*ÓcAŸös"êùB>3¥<Ǧ-Šöåwú»XÑeõ Þ¸Ñm[‘ÇcSŒö\Ž{Ýù›kvG±ü‰æJäLàµòrtÕ¶Š™ª$÷QEž#l)YžHo6VúeV9zz†á)P¨è}CŽ”"ý9쇆›vøß·Û™˜c¶yZÏjOŽfRŒÞ {•=†ôóoSMøþƒÍþ=û»ÁS {^gŸùþ½?òÆ ¤L|+@ÊOÞb_¡)ß·Ùà?Ÿ”Äp¥LB·ý‰}"x]*ºöÏì´Àt©¾“f§ ø>;#Uï³ bKï}Ÿ½%¶´á¶5¶t÷l!ÓaGÏ|ÀöÆ­8ÊÓaW•BK±l®7£§?ŒæÁÐ&¸=ò« Úáíƒ1a†\‚ÂqÀÄb΂æ}ÌfÉóú³Éƒx¯Ÿ}ŒW£_}Ìþüü±£óÇŽÎõ±#zp\]$ÊMW{`üM%—Šîá¸!CP¼˜è)´o"ϽÎjúNä<‘ÐÚ•¢ÖîPÊ^G>ž¼OÉeƼ‹uTÉ]J'¡MÉÜøH²ö$G‘õa2W<\\u™ˆ>MáŽî¤!G*—!Ÿéµ§bÔ?IåügzqV‰v§qñ® {0Oê>ÿ‘Ÿ’ÏN%Ò[”r´Jå¨Dž.=F˜¹Ù²ß&úƒ’èÓÚTkc©|ž3¤Öúrr¹ âŸ¼ð‡„©<Ç£T—ãÑC*w¶j½œ¶•u›Ü÷J|zXÌm&Ú¬áÖÅ\>J)ÁÕÔ‘v’˜HGšBÅ<€ÿW 7îì}hç¹Ùû}hgÜ­ôICä6ïM“¹Ø»¨ÆMæî;¿¼ž_^Ïõ­*Ýçí99 ;µ›,ïÕnéà3±¥êó¼åönì(R׌ϼ¯t Ïùð­jç~yÖ~Çr„›@µËðŸ($yþszFá‹~Ήv,çªcøQ~—å;µœ› èå±èQ7FFÛ±‚›$*¢¬}³‚[dLTÙc}°ã¸t( ÁøÃˆ³'w="r¯>‚ ù2éÔõzÁ†Ùq‡•‹}?é°‹>ZŽ œ¹üاKœ›Ã`ë—s1—|¦µF³Ãé²»ãN ëÅÜð^F·‘;‹—QS/ãü/£n¸ŒËBOü ×ñú˹Ôtyѯºœ»ŽÜj–‹vÿ$ Q^.ÑW¼KúÑK½|+÷«9ZPã]ÜŽ9þñ#§?ôjÌý…˜óœ†'~Çu¡ôí\ª}—³ýÈÙóöØyž`±„}Iê'ý72’þ´“ÜøX?yÓ˜m'‡¨ƒTxŠ;‹Ë Hßq.·X÷Gß7ö_¡€c„Ihó\ Ïœ_péÈø÷™0Ç—\ò™Þ2s[lB¯-®øø—܇[(™7}Ž6|2/8Í–);x;õ¡›°Lßq1{¾=ßq¿‰àüžË9ßs™‹Ngðeç5ñ¼&žë‡kZt¨„Åÿm‹I|Ôº}t?6|ݺ©”òýLjÅ—òOߊ_=™O•­øÇ“ù ”[~sQ¶ÓaµÆ_ž^˜Âã5l/¯BUSyuôÕ’©| Ú>•¿VŠ^H€öMå‡üx¹ÉÃwEñî“Ë#w´£›gðÉhL5¿™ªùX=¨æÇú©æwŸße Žã¿æñIþ[$æó)ÑbƒóùØ;¨±y>?¼½¤ ðÃÞKŠšyÿ-S[›ù˜Û4-å±…ÝKr´ð 䳪ê%|^¼‰¤-á«bÝ>LFz§ç‘k ?ä¿Û–ðwžñ³|ô‰ßÂ¥|ŠÒîˆtö¶Âð@ táR~QœÑ±ofÌ^ÊEÜü&r›À¬Hµ$â ï:ùÑ!slâ …öÿð`hw®ÂkCËjžCwöa õó§P^_ƒþ±‚4=ü¯‡×Ù9ÀDŸÚ±F5¯Æ,ͱðÛÐKäŽ0š…8γìŠÕ|©ÛEèœeq'ƒ\DhOJ“A"¾Øgâ+©Ÿòsu;úùGcÅn¯‹d@ZàäŸ9xÙ©ä%é­„â1 Š©ÌE)n^‰¹ù›é½Ghž‡… ‡WĹ8\¾Eè“K0àvÏ Š°¤ïGO²I¾ò«xÐì.¬Þ«6a³^»ŒOD­ã3¸8ÓÉ8ã}˜‰ìPPAÂï&äNF³·ð±jÅ4gš1èÊ-ÚuéЋZ‘@&íñËù§G:½²•Ï ¤e2¨åjþ½¡@ƒô% yÛøŸ"K‘òZ>öí³o·an̺–@‡¯åµ“Α™-®sø7x±+õâp>07¢†œ·+É?Á¯AŽ‹B$ìkädî$4i'¶#ä:+7+ÌŽjawt~ÁÔÈŸ¬3I|9='Ú´ 7?"ñQ/¾¾-…”Ó—ð~$sVŽLwðÍL±žïͼ6ì9’îž'¸ç Š»R)‹p¢on ¡žƒµ*eMóïÜÅ{vOü0î­ƒ#þá¼3„¸B™”ägûpPz7ûÞaöâå{ ¢½»öò¥¯Î¸ï8k½k:£Þ=ö žàAñqÊá Ï׿åkyùûŸ5÷•ËÏmO?ÌoòÝ÷5+U<’‰šç!ç;hî/ó:ß„ƒüAà{û ~@ôèîÃühiÏ<ôÖald¿8Ì7ø–<É× 09è±§øY‰}p²v=4ÙÍp þu .lWl¢÷ó:@—>Ç/Ñ-ȇº.‹]'öalÉwÕÕj­ØG^v ÕP%¬·¸a99˜;+¢º»Ïæ0ÃIëax!9œÓ¢o_P«ÒÙvúÅuÁî®ÑªjB`Åp–Î,¬ÕI»˜ÑÈt„[|­‚45¶Zô­úöæÖÚj%ý8„òwƒ=ø6á¯IX3ìÖZRãûîy~"ã+:ÊOÄzâ¬0ä«|¸u£¾i>ý³T?ßëŒúúúVC[M66’ŸºæÆF};­¬k_ÞB õ†¦ö†y uúö†æ&¹§:ãbƒ¾mi«a1®“³mm¸WÚ×âæ&Cû€¾u9É4éÓ^š–.6´6Ô‘d‹¾ÅÐè§ÝÐhhY€[ÐLÃbƒÒìð3|8pÒúù«ñeCUg‘°Öd…j™¬Úº(¬w’7lü%ŰrVaE§ª·© ÆŸðòÌMÂ^fA'ŽòÕI”Óälœï’cüóÀ×ô2ÿ!G¿¦Ùü{~ã5MJYô¢M ïYzé8Ÿ--Ôf¤âÞ­v£X«±Úa™¨QJ'K'JcÊfIme‹¤Ýe•¨ë8v¾ù·øT©\«SÀ­vï6íƒ Ño T[® f¼ž(hë»ü_ùiåU••hà ¾THoÝ®BOŸà?AÏþ‘¿ÑçøÿkÀ$%¡[Þþù=¬ræY$¾Ï—û›Þ“™¥˜îuw”ï‹aG‡ªýí}~)¨’œ [j»m4?à½è†?âXѨP$ ( `C´;èûUÐä èº-=Á »6З²<¢à*¥Ë/\'@»€kÜèt9ÖZÌ4 =&ÕûÁ’ñZçn‡ë·;Öù“þE\9‚24„ïéù׺ó¯ü èŸã'(É›˜“«=ñ¿]z’‡Q…ÑË'ùôp¹ú¿ýï)þ9ßšñ4B#>å' Ÿòªê¶<ÔåØŽÖ|Ê—U«`Y™ÝQÖíLnAN»„nKô_ÁY…ùX×Ü4¯a¾‘6­•{À¥R~^úh¬cë…nèïV¥.§Ý.@Ç>Á‘?aª4òŽL´ð3Þ„ö}ÆW£ëÿˆ-)GUã¿BŸóäõ9¾›?çSø¿uEÞðÍi˜‹mxšxœ”+¢`F)_ój Dº¯ùq‰PìvYœn-üšŸ9ÈC«#kéÕŠn“Û#B®ÍIPd í …úšOL2êë Íó”J%ßòÝ&w@×EO—¨ÅÁ™3ý@”¬|™:Âm³`µØ”‘6,_™‡«[„-5*” Á ŠÛõ­‘pþ‚Øî.0´¶as‚ôÄB¶µ·64ÍÊù8VÌ]J>áÚÜÚ‚ …À‰¨N—ÐcYŸ¯Ë„ •ÑåÒ;+3™|5ù•â5 ;Áùjù7T.*Äè«¥‹ŒK+CéP½Ù„gƒÃá¦a™0ˆ\¬ŽvƒHô@9˜«ïÃ&ÁL´Ka"òaH:ºMÖXDVm€YìÝVY† ¥CÝ8¬æpˆl=™òo¨Übïqø»¦‰`Í€²Ïm³Ò*"¬3lÅhgô7L¬f™+òoX¹(‹ÑB (–/Â@ˆ)‘”ØL²ÐåßPy½a^[¾šü •ÉŽ_¾ßŒ*oò—7E•·ÓòœU46ÌÅ“¿ajé±XÍF“Õb±n†2!ˆ>‡è„Ò¡zb’… Dx.Lþ´gÿуw;=¡q2ºv­`7;\9 ãâîˆD|À-ãE 1Šª Œ–‰‚p>X¾©¹ ûVÆÍm˜ùr~ Plhªk\ZoÀ‚¤Bum†vãbý"l©°°Ô…I¿n^£~>îEþ r½¿‚$"ªêZZü©PyyÒm$ƒRa µÌ`XFŠþ†Ê›ç.¤åòo8‰míØ5¶´4ÏoÕ/&¤JhA,h[]kCK{PÎÇÂÕëÛõ!(’ £¼ÉHÈÆÃæ«¾ +|¾Zþ ë/\”¯ÆÂJðâ¦[ÐôKÛ›‰3€Ký©Èº}½¡U®•Óœ¦L³ÿdÉW“¿aŒ• ‘¥OÌQy¦’DXM{¨®=¦6°ÖS¯›:Û(ý_|QYå7ÉŸk/ë†Ë:a-¬š:þÅO–_Ö{à_|u¥®ÿ†×£²ÓüÜ¢‚£§¶“´-³Cné|EyÙŒ•%j¨#9]¹Î©‘îD§208nE¿›Ž»Qù7qèÞi·~çÇ_±‰3_fwyHZ˜h†k:Ãá×;]Ð'ÁŠNâº#]‰"W£¤NªCí¶9u² ‚ˆ ;6K+t°D‘3@.0ЦQŠº¥…+uø®·Šº9º9› ŒùùÆ‚Mº^\¿J'–ÎÑ‘š|ÝœÒ`•²Ú®tC;Ш‚BPiÔºÒ^ ìÆåjÜ'N:•M¤ñ*mIÇ$»ŽvtÆ!k`îVƒÖ<Å)ˆä®2+KKѾ|Å"t:_‘›Qª[±Š–”ê´ÚÒÞ±TWZê«P)ÞdQ^¡âî‘ôj€à¬@¯*:R©b’0Çh±;=ØMwh²)R€¶kJ*Â(ƒã`|0;Ý\¤(bé¹ñRÅß_Šf@¶¥HÇÈ^¢¨FJ*uᜠCä¾çª£J ;I1Ù'LRT€©Ñ˜ÐÉd&*£Š™³h‰ÃãF×”)Þ ¢»)ˆéÅèç:ÅPƒ>Ô)Šók m­¿ÜF‰^x@.2@¿/WLD; é rÌ; ¾Ä hqÀh± ¢†„”&7".QQ€ŠªZ‡C† Ü&‹‡Hó,.Ñ] MN'ÖuhÂñ¤©[ ±¦°Vpm€;n¨“C+þSJëˆÄl&wwŸÅÞ«•ã} ™œP§‘ƒ!÷@Ø x˜vl«JIœë&÷˜zM;¶g]ÙÌvØi„æ²ôö¹¡Hâ`lL2Á˜¹;Ù¨Á½˜ì¡5Ñü>ýb¯ÕcìÄb‡áÛžq0.:l‚ÿÚ/ãN°ãh%]MVz°‰^˜‚»³Qº„`eA€mô #M6Ò‡¸ÁÖå°–Âu}–î>hIÐCr‘DìrG ¬&÷½P Œ›ÙJ1]vÂWÜ…Õ$’__gÄ>iC“Ú<”°Ïawà€@‹~§Th(ÏD¸bÊlī鞂Ó$Šòvù1‰P¥‡t+i.$äâ6X/Ð7.5ÀzÁP¦šBXä›aºN™'~ÈDšKýÍ(Ô€ ïA@‹›È€½ì½iqoþüý9M.Ì·àÂ"’K]h©<íÛB¶PÊÊp… ;yLx‹Ì­!ª±š%+Øœî Pt»¨N ó¯¯ÕˆØ¨t­H‚+K::ŠW¬J‚$AJV–hÈšjž[«!5I°h¥¶¯2=•r}]­Ê©zœ*Õ(•»e U )jûà&¿™ öG™ä†.Qht+“ªñ/þÁë ­€þ•;'IšÕéHG¿2ÉŒ_¼áE¨Ô¿Ñæ(+Y1i:ô/jz•¦£ÂŸž‹Ó•8½‘"ºç&ûkêUSn}t„"o ^cú·ÎßE¨„ÿNløÔWb^· 6ÇZY ý› ¸+‘ld½ŠšÞTY;t¡F)¦ŒÀya½Éæ´ ¥H›ª˜ƒ\øV×¢v2‰É4XÂv:È%?ºOÌFÌMæ?,dÚ&™åÔÞh‹ƒ&ª1ƒ±È àÁòÕ•ÀBX¢+$q Dã\—`ê'Û>Ñ ¨&:`3­7bQ &bíÔreÀ†O4¬ØÕI3ïoM7v¢×‚Yë=à®PÑ '<¨[4aÐ.‚ö¾Bjî®TQ6[\rãu«3pˆ*C= xd<»ÈL4i ±{­& e:pÛZM"´Ð¾>¼°*±y³ °ZÞw.€º,n[æÓ[-ßvTN\Aš ®)ôi%;y¬€õ ›õ€È­ÂÝÌ0 ©ŸIMeÄԣʜy„°u—Ù袳±¤C= ë"ŒRži¾†·*Âþ&]Êjòã÷èdk@'e„¾l^» Îš¥ìo´ëÛ—¶ž‹hü]ÁH!œNì¯c»8K-‹EÞ_ ;Y’~ˆè Z–ÍÙ©MË œùŠÒ8è›ã é@9¦ÑFú Ø’@fu|—·ÁnL$|4 *Ÿ2fÇ÷Aü'80².AôXeÂ,öXN§s Ýõ…QÉÕÅ:òùThÎUªÐŸ§(6û*ª‡X ünqQKâ äFxœûr_âË}‰ ÍÜæfFFz\Ê\Ê “/LVÞ¸ÑȘ,6ù…±"„µ™Ï$ÑÊ,iÞÊeêM¨â†*Ý7W~ó™Ù!Üé×X}šÿÏmÿ?—ˆ™€˜ˆY¶ÿŸËZkQ³¨F‹ÊÞp›Õ%“a4¯ëä{xœû¿NìÀl±†Æ¦æ-,êíÏ*Y¶?«d) ¥W Qâå#xœR­ÿÿ®Ý—°9†ƒ‡·‡Wï—œ·'ƒÀ—ý̇}·}ªÒ·æy¦£—w˜)—Nw—+}(—w·`wª ·òyâa"Eëþ#æxœí½ |[ŵ0þ»÷ê&±âì‰=cY±,G‹ílÄŽËKbÇvb‡„D‰,K×¶YWÑ•›$¡¥,eI¸¦¼²„ÒW e­Ûº ¡´e‡¾¾–ÂkáÑöѺ÷ÿ |gfî•®d9 }¯ý7Ž!Ò,gÎÌœ9sæœ3ç^}xÑC¯Ï>6°`åÔ+ÇQ$Üí ʱ@UWV®¨\SUuüÊZ¤—ãªÍ"RWsoà™Nq¦º~Îo—K‘p/JHJ9£Èb=Tïílö_Ô´µ³¥½m™"%ŽXPY*‡rÊ(&+áA5*Οf,0÷†U_Ÿª¯TÿPP¶ÀPüÉ(ij»mö¶´ÒoWóHl¥¸‡»¡Ð§¦Ä|õjq9>¹Z´á_­‡ÔýSºçYmÈwùÌÈ…È_ ²ùÊ]>»í¦„X¤¾3¥"…·ÛWå®EûkÑ3B¹÷ìð¹}åðÏí³[݇N bwUä…PÜPá"E¶n³Ù\ŠÈxQT’B jØê@hµ¶´5µµ§Ki!s ?&ñêí%nuÓL³m¹§»\ŒÅ!E$•¢²¿ -CUvT½Î’¸£ÉH¤[ýAÉj»d¹!² Šª¡èðatƈûªÅU•°°ý7‰@Y)ŠK‘@"|@B°øQ9á‚Â`@‘µ…£¤Õ7ªÅÅ"Bv¤Æpw,kg›û«­…”¤‚ðžåâF¾ß[.®€oµ²ÀR„ e`H‘"½k%@õ† èö¢E ß7Cœ„Ÿ'â›WˆV›zÿ>‹EƒcihoÛвÑßÙÜÔÚÊÆd³ÙÕųîÀuÍœ¨¾6 ©Ïš¿±ÜBf ÇÝä»Z[3ˆl…®©ÓÒÕ–Õ¨%ú¥(ðùËp0Ý„aè>Ñ7 ”i¤Äƒ$Y¥4¸§6…` r<ƒ0Z.öÄùqRt:¶,DFÊzrH'HæõÖ…ó¸õá… WWZõPÕ2‹µÎÂZ÷†añ ôŧ!9*™éGš/Ô*ˉ=H I`?"䣤‚ñeà~›"…lÐTRhi\ P¾Ä‹jE÷ îŒ&z¤8MS–=&À¬B Ñ*¶Ã±˜…½•ˆÂPÚ‡lNÀžŒC’´Uo)u©Ï–î´;W‚ñp,ò¢>P«$¡&ÚÜè—£jʺ˜·yÔG¬ÈÛ¦ÍTqXN‡–©AYŽ¥köøÊwÙ ƒq g_8¡ØvWøì „àSu-]Tè³;|U¾jø·Ü¡ú—ÎYêpZŽ ‚<Í£‡zx©u ©\Œ‡Xº’+é‰H(!9Šl^r¹³ÀÔI¶5)º“º¥`¿Œ,„[€¾ ¸‚”T9ªË»¬ä¸UË6^E°Âጂ(hjhn÷·yØwƒÇf¶±d—ÇV`cbÀV Da½0kà:¬h×ø'©/˜ÆŠÔ¾r‡.óËðûu¢UMÙëS¥h»„‚r2B{“° ‚ýRp=È/ÜØÑQ‹z’ J¶GvtPŽïSPAÙaË>)*ÅÃAÊY„ƒ‚ŽD€á(:ˆ„CHŽ%†)ÉÙI R†B@bÀVÎjª]•+è¤ÏÄ^[´×juIƒ’& ÈDKQ£µ%P%Õ¤q-:(‘-åýÇè¢èñ‡õâ질"ÑæD EýŠÇmŠIUzG¢ø‰zqv5ˆ›zà ?Þ î `Ád"Üây,Úè,Ã'‡ÛªDï<3E#d%Í-:=T`¥%ü©5âõ§® ´j]Y•ú)wúC÷,õ=wGjs`0<Ð6#’{énTSÆ€ø@ÂRú% h?ìU˜a09 Eá )E]daâa2.Ò€‚äEŽH ¶cKÒµÅå€B=DB ȤÝî€c…ò@Ð?ôÃvö³Þµ†D¹Ì5 ¾4 2 åY~º¶2"R-G½¯²DK½Tyÿü×ü,uoU >! fõÓUåê·ªêÕIÕ«Õúê9Ó:»üÍMÞFPu@ÃQT·âiòÕ§«í¤Å\÷&_¨š—Ï]GV­”°D³÷¢&?4liëò7C&I†$´VI„Â@‘þuP Ò+Ük.Õ¾Âêîåõ)ª"ø;›:¼[½]í[!Û°É»±ÉßæÝÜ”Îty·få5-,ïìÚÚÒ¶1­ß¶qkSGûÖ.D–Õ‹K½áA”þ’ûâ?HѨҫ¾{ñ$E–¨íG D8%ô±“¤ ráh¯L¾`yà«'Ž„ü°‡ ê—•„–Lâ}’žilÚЩmzMhÛô¥úN†BCLÅ’ZòHÖ;vÖE`hB¡i€hð¶µ·µ4x[ýÍí]¨¥­¡u[cS'êlêòoönjB ¨aC«wc'jmdß ,¼LøR¨iGSÓŽ.Ô^!ùjiëìò¶¶ú;¶¶oÜêÝœÎw6lméÈT7z»¼¨µÍ߉¶zÛ`V>-ãݾ y·"ï¶®vr$Óc.2ÔDVŠÐúä;‘Z²jÑð‰U˜W×ô¨¯­)R§ÔìPkjªRÍÚ 4ú{lÖCl1¸I‘ÍÌÄX%6³9@ÿ€zw­RúËy|$%Ça9jQ+×–°,,›úD㼩»öxvWxØ¡fëV]»Kõ­5_èyŸ‹#§3Hô„ö­ÖÖµ¢t¥§BOBÊgÖ+ÔËëJÕç½÷«Óà êõMR¹Óíw÷FMŸÂY¤(cd€½R ‘ŒKž¨lQÿ¥qDodÎ4R·¬-.!m+9 Š5”:T5_gp 9!ÙIO޼dBBùÆ¥ ÞŽ>MiGŒ•·g'ÏdJŽ‚ü“0‘I ¿=ðU^ýóþ+@5…ÇéQލ<U‡H˜îrøŒMÚb­´dIêsñOÌÊoœÏU#Š{,ã\3ÍwíqïÃú6@mÀŸÖ|W×%ÅV%d†P̬ðþ¤ä'ª”úñDóXuxËn–úûÄ|µû¾ùi£VÝœ,–! ±°]ê–þ¥xA?(²6qšt“‡êqðy0„´Žˆ÷„)kqª×gõšMZnÿ"õÎäêûJR¬qz°¬é"`)Ø({|>÷n )ùª°.õU-…-ÈvßphƒJ•ðXJ¨…™¸))y¬P”ÒËXðÀYàÌœAkÄJ 2ú„†Q/HåŒÒ¨aË”zßèžcŠukTr4ŒÆ¢¬!fÁj(e†¾O6•5Ö3AMà4l YCƒr­UCƒm>p­*•Û„ÂSEJoC3Ùݰz½Í»;EólT R©it-—5B–5à?5 P*?:FM¡Ô'¢e³)¡Ãè´ÐòÆ©žMj4\TZ}Eî ²»ÎÓÄPy 0Io6|ÝàdŽU÷ IÂ\¿·¡©}ƒ™úöhíZ-ߢNI-.9ò¯>qt]aÇÖ¦ -;ÜJ?/Ã?IaN~™}²VJ4õÚË\f-Ûð/>^Ík¶Û‚O.Vg_ñººâÊê–+ÅhHNÒcV÷R±¿á¹ÒÌ lժ߿jÔ19FÅfì`¨[yu×D"p¡D•¯F u£Þ¢R'›‹YõøÐèåÜøÑ!qøTÅT—Ëí : ³Ùqí¸ÄäÙŽ/<$ΟÝ&ƒ’¦ x¦c»úƒkÜ©´ãàÖMBŽ1YHú38=pI­&é]L÷Ñ=£ê3‡¼eú@p¸­‡­{"mÜVk®-£ÎXü×CbÞyXœÍ|³?¾v‘@èñÁµ+Sð­R /PÇLÄ‹L=ÝpŒõÊ29ÂA‰ºC.ˆ¢“­ñ8ÀL’ÔN&n=@)r< Úå@`ˆ"”à (ÌEÐu”‹*£€-=%Ozy`Pv݉œY4êÇÊÓŽ-zíµóR§Â¨ë¿£›º³Á=t²07vN«ìáVe]ÜC]Æ…:âÊšMžúô¼T×5s ‘9¹Gw3V/ÌÓHRF$î±€Ïrž; –ÌžWºZMÐæ»®h’q.§B¥]S\W´>3ðìú3¯Š®-vföϨQfªt“£è®–\[4# Õª´6›ºY(G ”nK¢jâè¹ë,«k‘ {%~0¬f5 õE“ RC‰zÃ}`c0¹`ðGªë¯Ÿ»$K’É %­ìŽ…ÀpHÝq}is†zî4ÎÓ´Îׄ"´sfÀ¼=L-Èæ¸ÂÑ1±j 4ÃãtöK‘˜úãëw/6… n³vRݬÞqy±™ˆ T©Þs¬Q; þ|⢕kÌæ96÷õ'Pyƒé÷›ËÔÛ_¾U$Ôß¹rëÝ‘ûÌäÐZW¶R]}ÃC¶wn(çW®Q‹ÕêaŸú=~QÉ …²ÿ<¨»\m¹iÚMjìFÓp𦛹á)Ÿ~’)6üÜÍ%Ü* ²T®°Ï]¾]¾Ý¾ùJ}Vß_™¯l»ïïˆÏç;ì«õ­õ­ó­÷Y|¶Ýÿý×iÂFJt)Fm]jèjÔ+E7âăÝKekD „ȵˆ¦µÆô¬€Æ ž|Û«\J·O‰Ü¡Md¹m€¯ö'eX6b-Þ#W.Àq2XzÔÁ«8@€+É`?)–“qÔ¸ ­tU¢^äу¹ÕÉ*ÃÑ‘ÉFG”ˆb.3ùD6²X~¼Ì'§NLä¸CjàÎyµÝåd€dÀ›þCô³–Ýp¡¾¸C:1‰Êª´Û Økê—ï´h7mÔóÑùPygãBVZM Ý1lÌV»³XýÝk@nÛŸæ#êS'*ñƒoq“ÔŸ~îàŠcÚÀÍì¢þÒËDè0Þý·~uÏç'‚‰SˆY§¸Pi©¹´áwßâ©“¾P¨Þÿùî\ܧA»÷®{‘ÓÝâÞcu‡,T&„¤^ÅÕOŽ}9žP-_81¹¬ û²W}ã D:`Õv÷·xZ0k‡«ÕÛ²c1DV –6ŠQ$ ÄCˆ Øèà Þ§± ì7è+GrµGn^PT:Hœî.3÷ºá¿Ü]Ïs—¨kï«þ%:Y=p*ÌdKWœ»Ì Ãô@M˜¸”0¨ VuÚ}s‹ ±úê½KA| ÷Y+t‹Zó¨¶Ôr&l5´©EÃÞû–ó“­Á@°_3÷>P:LîLÉððS8õÓwL©Ñ=1T{rF‰Sm¦6ƒep^âuîôW:׋?ª+»*ˆ»!fëV_x0ÂYTÏC \ƒ#hC1Ÿæ¸òÓóÖõSÂ-Ãh¡iÝGôè":ï_y‰ÇW&¸×°õanÞ”Œx‚¾p]‹hQ?¼uŽcê_°pÔZÕé+ŠÔ©_9|ÖLµ’ì5Tßöõ?ªø{£®êΗ˄ÿkõBN%í`Ý^I"§Ò¯>*ÍÌ)vÑâFõ{–LÕ«”þ„,G Ø£®þÆñ%§é{§p¥ê]ß(A§#æv ¥ MùøãÕêK»Ô%'íÊ*s¹¤º™óVÝ{²lJúÈõ¨÷Ÿl6gJÔiOTdЮx8²öÿ`‰ú™'ÚÕwžØÉ¨¾¹dn³|"$¨Fó¹e•{º3§¥¿/))J·9ËžÈA£>÷Íggg…·ÔÇ¿µr~¾ Ö\=ô”=»à·kñÑqKÕï|{YÊL=Æ–fí'–4˜$zeÚq“Kô=N²}œÆ¹m°’–•ñ(?®Ô!«Î “•¿aPËÝ4ìGÊŠ@=üƒÙê´'7«þ'/J1Œ'Q–Ã(w2UY+ml=j1͘,6`‹S®T¿ó-÷œ¼K«|Ê9/o mþöJüæÊԲ̴CµY¿yË&!½”;›e5ÜÛSøLU»öûè"Kªz~P ó˜ÙL´Pr``H5?m·9j\îeN‡ßïùÁt6ƒ4cWt1AîZ©/<³x*õø,ˆäXðùzõí§§Y@žÁ9RGÇf ›é}RÎT8öÊÉe¤Ý¢ÚŸÙf"8ÕËžYæÖ5 C»Ë„Ýšë^õýgÊ †$…y WŽ?~Œ›©Ö>;ã}ˆŒ062D¦S4~›vU¾O:BN¯n:zÀ…åâ5õûÉ7ž}çij¨XS¿<õà£%Ü\wW€ìâʆç>÷EÏø³ácõœI}÷ù5ª÷‡Åÿåå¦[s"Ô“o”à—š¹Ùê›?£N|©G¼V‡Vˆ“µî ÔÇ_[’Ó•Îk_¾%»“aïccw0_}þ‡&ÕþJzË+épÝküõñwl9=Ì¢¦h ŒÕɰúý¯QÃo.U=Ï»Ôî¿è£LñÀYLo›ýYÓÙOqÿþ–)"uó› ÕÄË‹F÷N¦¨>üÖMê÷^"ï Ô_¼ñ›áŸÿÇ«ÜÍpÓ›]¨áfÆ3.åJÔï¿)Ÿ=Iûß¾äŒIú•_v æ¬î©kµålI; ´sÁ3¢-ínÕoì…FâßóîÎl¡WÞðgQ…ßna»œûë\;äè›q°vHq% úöÚô=±?}‹|Šr*tΨÞr‘°s’ùkCºkËéîÀÙõ“ ~ú.:»rÁiÃÿñ‡{©`)U§ÿv²úØŸ"ªóÏõD :®¦“ð)?Ø>”—ç œ±Ú»)¡p¤MäæH'‹ÉŠ/œÈíÁGxnÅÿÌln"nžÄíäÌd ~r·,̽a²âǧm÷p“ñúnÃäœ`Iï€19?Ãñ#÷˜¹ë8õ›ÿßlì+äÖÌÊC–‘ã…Ü~:Ò¥Ø>•sÂö¿ÓNå–¥ÇãY<[Í¥)QnÜÿ§Úìé¡Ìõt—G” ŸÉ†dÏÞZd¬«ÈŽÚ&f¥zßû;GVÏä~£´u6çćgså:=•Bsæ"ç>9›=œÃ5|”1{ïæŸb.ª³eõØp Ÿ_0Ñ\PP€Æ%“øâÉ$<Ó°,gƳjÑ¢ùgá~h%¿à£¡#¬6ÿË\®gšA¾úÁtÅ—ƒëÒßs3ñ¥&~.Þ4«À‹¾mW‹2 ²{TÅÙg1cï|nœÈø¥ù\#ž~‚»ßnáZÎuêÍÄ.溧4å`Ðßg ÞÉ£üÂreøñå°i/.ã–\QÆñô¤²âlÜì Þ¶ÎÔ€K~ÄYhA+pß ´À VòòÁ ^ׄ–sSMJ"¹²œû¤ÀUá©îÛðõ¢ƒ«9é䪸”N F}Á r¢J˜Ø(KÆ£ ½äd!Çle)J´E  í‰K}ºwH#B±¡~)‚˜¹#™–Ź?ˆöED<¤(ÞIÄéA7ÝÞ¹Á]Uà„±VAMs‡sÛTU骮¤µ‘@BŠ8½RºÎ1èASU¨ g£¿¹cÛgû¶­ MÙyÑÖ¤ßARç‡c­©µvúýºO/_ÔGŽ-‹eÑ¡ \áæbç<{ÎÑy’°ŠG»0ãçö ;ð¼G„Éø’ßssÉŸ€Û«¹…Ø:Yœ=Û¬é¥Jà€š©™˜øÚj®x6Á¢]•ŒÊĈ«n ×šñ+Õœk²¼Ÿ®-x~l97I€æø‰ïpóS†ÍÂP{3mع ºUž d¸Nî$\“äX„rƒ.Ó°lJkˆÚ•2Ñ\àäï¤ZÔAÚ- ¦@- wÀ¤T¯H«Œ¨¯šÄ™GÙÅÙr”¶ÖtĦwxËõȉ~­ŒÜ£4PîÎÁN£úÁŽìÑB§áPú’›Ž @.ÿ‰Gn>2j õ?@œ!‰†îA_Rô@8.G¤(N5 –¥¥áÞ((¯ÈïÆ"I…ü#w”ýò>h*i1äxË—ùòsÿ Sš40RVY6›öMD_$ˆÙr8„€Ûjjèý`9Ñäqù *·×Ð;2½¾ö´R Å™·Ì×íéaÓ ¹å&˜´øw#®{‡3M6Ч~ÍÏ)(3}ž¥Ün>df-WTco‰i%ž>ÄO<ç9Dýú|3Þå.œL.§ÂÑ$¹'ÆûÏ•àŽŸóóñ/B ÊÚY ´3{²å9Bæ¦è-;¹4ìM+ã£<’2fB—˜ÇWŽÜ²¡uë2”:`vWµnÝêÑ6&ìlY—îY(ÉÙv´„ëÌ™‹zÝ×~:òú îfžºðm«¹À÷Ÿü(/^RË•Œ4Ôroq"=+Õ;>˜…+/R<ÜÅ ¶ëo1ë<`fð4ŽêM§N£Þ‚™¬=r‹¯_ê"µë~´Ž³ðë¹ 8j§ë¸Mø¡:Ðò -êqÍö0™q»—[…¯ôr_í3y¬žÛr §>ÒÈ} 6që²Üfx_—בµöåEøÃ&îø¨žác¹ # 7r»Çîî â+NßsàT 7W¤Ï†ãK[¸b“ÇRcÁûZ¸Žl§~½…sç fæ±dÏÎèŽ5–õrßÈCŠÿÞÌ5Š÷·s¼¬ƒ[™MŠ£°¶£IÛÁ}"O/ÜÂÊK‰ÿ­““ð‚..ÛO‰£]\>G%þiw cÊÃÛ¸m#/oö0~_«¾Ë—á¿ËWLtW “øÁ¿’Õ½þ¡Ð€¼C˜ÛÁ]œ–Ogâø;K¦-ß±+ßÈMüŽ“™xßN®¿¾+Î6a'â’¼K»€Ôpï.4[]8Yi“‘Y>®Žlµ%8±›ëym7÷{!= \ãæÍ5|¼dÆC÷qO®J‹³´Ì3x%¤xÜËD¸3óC¡Ÿ¸›/Nå–Z3išô„”÷÷Fä‰åÌCŸ™&fíOZc('×=P‘DªU3!¬~uþTr âøïÁ.½4Ä­àœØ-s¿óÇŸíã†ÙÜ/égî½%øÊ0ö{ÃÜüø Ây&02ÁÕ#)…ûOv¥€¥¸Z"ÌE‰Ü¶âÀS‰Ê¦JyB¯œ^Â:›­Îñü,¢Ñ—WÛiÀ-Uî+íxÆ¿pgunBŸÿ(ÎÝ$™‚oÄ«ÉX+0?YÜ4-<‰¶ðáéŸæú¨RxâÓÜU#°€7޵›ˆ¿v ·kãgæŽô'ÂR®ÏˆäÀŸ¹•«$”*yóVnÝÊýÈìý¼0§p4S£c1¾KL¾9xä·î\§j!~[0MÁï>¤ýÝgAlº“[@„ J;¯ã7núÄkshB¤¢¿à6-Áïþ¬û¿ÆíÇ~Ž;ë?/Ì.ÊO×t”žþ aëéWá‰Ûùʱ;çîâ¬7çø½Ë…7Ïõ%š†Û¾ì¥'9?öšøyøŠcÜTÆë­Âr=h'/ç I½á¨Bz?]k6„ñÂûqT^ÑkGåv½V«ù¼w·0›;‚·™ö’“hø½]|Û¹{ ر‡ñÓóùIxï|þ"üÄü¬¤_ºñ]|>¼€_;öòsðS øþŠQJŒˆ’Ѻ^¿Ÿ[–¥HŒ†Õu €ÝÈ„°°WFäé‹n›±”˜SÖC{üàB¾X ýݳߜ:£þ€NÕÝXÕy[k³ÕZãÅ‹øÆ3Do\’N1ˆ1«ó¶ÎÄVOvóüÈ"~&~vÞˆ:|ããë:Þ\ÀN°éÕü|?æçŽ®æåsþ ©ÿp%‡Ù*~Aö0×D¯Öf|ÉT†?ü œ WóøåU 3„Õüø®Õp¨¿{É{^pœãWphzïŸ6ézoGëGÐ{ͽwsãÊ ô¥¥yõ^½ö4z¯6¶Þ«Œ½÷¡N~žÞ5¶Ê»‡i»ÅÛøð(el ´rLup̺Ñí²t0RGô¯eø©müôÓ+„ß9ŠƨÌÓ2w¤‹ñ5Ó2ƒ q£@DP )K¿tÏ gËÒŸÝÉÿZÒÙvëæÆªU•§àjÀi;™·§QÞÎÀœûìÝKßQrÀß›Œ dÌì©YwI?_ÃøýI?¯lm| „ǘ¶ÇصÄÚjïæçPk«¥›o9C‡b›µOYŸ¿½Á'é0wïÄ—vóåàÊáù>Dx~þÈ þݳãÿK¿ÎÔÍÞªSp|ºú4ü®Ãåãö)”Ûuˆsœ×TøIøƒ~Þ‡ßíçgc9ÌOÛ…Q¼—_E˜ü£å¹Ò¨‹ßƬÝ.K’:&Ïçî;yNàÇæúSÔæk;z$[÷ñë§çð¶½…_„mçýç5öóûøÕØ©©Ï½aªÀ}˜oSï8°òùÏðûqâ3|É)­ü ¸ùþvüþÓüL|äV¾Æ(É…+oƒy¤v߯Ï-ÌR¤O¿7M2“¢Õ¸ù6>u^@ã\Q¯ÁË_‚}6ü%¾:ñî¾`dþ0ïò(øU~¿ðUÐHNíuš¬Á7ðŸÇÞ¯ñ¡4õù@P=þô쑟é§g­¦³Â”QÓÉЈí4†šž®>š®Ã­¦ëç´šNcûúñ“i.‹èËèåtK¼0Ï´ˆn ’È„õ}£ÇL“ñovšfãæoò»Ï/ö9¼Ø—ãcOó¯ôŒR-„•±,¢±ªFµÊ²…ðÏð.|Ï3ü´Ó[dÉè)º»2Oˬ!h•ø­g²þÊM¿r .Fá[+î‚J¡•Qø¾J¦ªÑN èLnÜP84+‡{éôó±ï…«˜ªQ„o^%t2ºÎY­Ó5²z4]Ó9“7t-À±ÕÀ¹X„í8°8wÝÚ18(7 }­Î¹«äïfft\âÑ)ü‚G¸Ãè^èUÂ!ݽ ¥Çug× =FÏ‚6ù|<û×z¡W5½ô5\'„ðˆ£QrŽ’ú‹»šüí[›¶’‹—’ú–þ¦¶ÆoͶ¶tuµ6i%XÜ l?×ÉZ8²¡Yþý6 =øgÛAÙÿÄ1nF:aïÈ#­Â&›Û„ ñŽ6á8~§ ÎçµíÂoÎušŽÌÞ*ÜÌÞ® ôX‚¯º™»aJÖK´ñ»@ðóÛ@KDÛ„¹öÚ½¤+¸‹\mȽ¨œxíȉªv#Uýý^ÈG×µ¿·]x†¾‡×_NeAàbÁ7ròb!ª½)²s—P;BUà2W5¢ÜÛ«‰S-9>¤éJ¿˜n¦léNígNñŽ€°6 ôã\* ä'¤È^)ì§£J¸\aÓ˘ÞnÁÎ#„¯ï¼äûùn¡Ž|O¶‘ÂdJ7þY¯0aº•ël¤!(\|®Óþ®$Z|üF‹k˜?Áü"#™>’;ýÓÂJßþ_(Æ Ý,l™ËdÁ@ ‘ƒäýìh=ªD5¨ŠüÓßO,hÏ\ÿùVa:Þ"¼Jw¿@v6}0Êgã¿U¨ÆÓo¾œý¤3þ˜:]›¯möÃÎyjñ³Ýü"l¾F½èv¡ú­ž»](ÂËŽðKIªläÏ· •Ü \ƒU+gIì¼Ch?×EÄL¹S؇ö ðÞè·É—á·fáäç„•#÷}N˜ÅÚ>‡£¶?»_Ìú™Œß~@ð1Y´çAáE7|I¨9÷÷•mßxRWÎÈwƒœÇèÉû9¿p}Ex˜ŸÉ„qIX DbýT>hÿ‡ˆa}¨Ÿ£bx²f<™Óâxðë üÒ#ÂjöFš]þ¨°Où¦0 ñ¿… ç7õ¹¼©9-ö››`ÒÞ_³s‚é¬ß_SHÅ’cñh?´“ÿIúe6Z᫬מf‘5°±_f£w}./±¶£™bÚ£Å@ÐW~èSó}ïO5MƯO5ÙÙ‡ìD\>ͤà[¦™¦|yš©üüÁýOÁùàþ`Ž8eË(M[§ÙXºö)ëÉcÞ¨HdoÖœ_$nÆ• L‰ó|tó‘:úE°°!)z Ï‹`ï]jÊyìhXýE°» ?^iZŒ‹ÊLÛÎóйÌC£ þ>)‘ò½L˜I¡SUçmeóªÆWWšVf»ú<ŸÃ|¦=O¾®ÖtÑùu>¿Îç×ùŸ|󜊔Cc¾#ýTÕy[g¿E-·ÐÎÎ|Á7ùé8Ôaºñ<Ç×y#ÉÝç×ù^çµÝ²©Om'Æ|¡ÌXU£ZeJPÅ^2:1fš–ù¶‘Ÿ ™*¹óQç£$Æo”Ä¿âg¯3Ïïó{`üîkñõOÃAöögMÏ0ãÇwšÖ0Ãù9Ó+g­s¼x—éÍN]­ˆÉ‘Èú­:®A`òéTÏ µãAÇø¢i×4ƒŽAç=¦~qô^“K{Qÿ½¦Ùôi¿Þk’G¢÷™Þ=ç+ÄÍ™öÎB±}}„\Ñ@"|@ÊC°Ì C÷š Ò¯ÑÄî/™æ`õK¦ûG+ø€e,Íl̺Ñí²t3¨Ã“T»{Ø4}Øtø¼ÙøÏ°3ÿ6÷³é±w?öQc'ú¤D¬/ËŽÐ ÇXh½ö4ë¬;¡w}.¯²&Íß͎Ч>¦n}Ùý¤;{ÒT„‡Vˆ“‰y“ÀÍÀñÓE¸ê)S1žú´iRæñS&ºŒÂ{ÚT&ßDüÆÓÐŒ¾~ÿægLSñ‹ûø|ªCvñÈן1Ý6¨û#P¢ýS_Ö,Ü€Û^4ýÛxšô¯™áº™ÄܨâÌ3X4KŸ™ö:°×ã×M6Öì¡™BŒ‰_1Mï˜6Žüë+¦ãˆu¦cÿë¦ xã¿›¶§™h¾æ'¦Mã“ÀSVÜý3Ó¨—ÁS»;Ý@˜èR RáÖ_›¦ ¿aº„?œHf=×¾2™0ÑÈk¿5]ÀáîŸ@Í·nšý¶×'ß6mŸ4¦šM²EgÈTS)áòÿ2­#쵘eoú/Sˆ3“÷Ù:èO?ˆâ*\ð¡éB(‹ ✑ȇ¦Aî¬T¯n€öT¯UO<‹pTc¹c¿\ŒS Åb%ÞŠ»&‹‹oÅid¤##–?4=…}Ä/ý]i" ’%í_ç㯈oŽí&Ü>YüÎy[ëŸA ÿÿ}ël|¸H, Ï¸´äg’§ÀÊñüƒü4Ü}ŸŽÿ|»°päúƒüùž{z'oäNÁŒS‡`ÙæâA?Äç¾Æ“>ÖrˆVy˜7áI‡y'¾ïsÂ| ”›€wæo¢î8ÂÏ&n¡dÅ…—ñ“F>s„_‘¶/Œ¥-¡.=Êo'´…§]ÆR’u’Ú mi³Èeüm…f3Jÿ\¿H¬–…ä¨-bÉŠJAhH ì!D/®Ñ@<è‰HŠ ’‘$þ9¯ç©;ç-ï.‡!*±@PòØ­–x¡aóôÅ¥Ò+ì¨z]YU·¾%+Fn,M¾Å*v«ÏÝ9AýÝkj|¾jwÌ¢ª¶–&Ƚe­ùuƒ+ Rm¬:‚)g™„/;§¸÷0‹]Šp—àç–ŠåKHQZ·ŽÜ Ði¿<ÈÕ^d¥Y/YþEeâªÉÆ‚î2±j"’@VÃæ°L\€?,—MÐ R6±?`ï¹r¯äìµfÅ]Sá³RâÁP8~¤¦Â]ãf…u¬¨Žý/Î+e5V7Ù³kgw…gWÚÍŠŽØÈË&ºÊÅ/Î {ºY„ A¥ž`‘³&_Šª]È ‘;…»‡ˆ„{@„)íD „?´‹ËGÖWˆÏòx¦Sœ©®ŸóÛåR$}I%¿'Rïílö_Ô´µ³¥½^)X€sQ9YM§Œb²T£âüiƬêþ©JñJõe ¬ÅŸŒ¦¶‹ÐfoK+ýèðv5ÄVŠ{¸ }jJ,ÀW¯—ã“«EþÕjqHÝ?¥{žÕ†|Dè —¶°6_¹Ëg·Ý”‹Ôw¦T¤âvûªÜµh?y'B¹÷ìð¹}åðÏí³[݇N bwUä…PÜPá"E¶n³Ù\ŠÈxaH!5lu @4„Z[ÚŠšÚÚÓ¥´À¹†Šxõö·ºi¦Ù¶ÜÓ]®½&G!'¯•ýUä]9d¸CÒw4‰t«?(Ym7€,‡#ǃ,ƒ†¢j(uâŒ÷U‹«*cD? $P ¡«—"ÔÝä8ŠÊ ÂìGk*ÙFÃߨ‹°ÝìHá8îX.ÖÎÖ·=Ýa4.ïY.n$¯€zo¹¸¾ÕÊK°“âR¤H¯ÇZÉî»dû Ñ¢>ÿ­RõÄ7 ñm+Ä%&2,|ÇNa~~Pœˆo^!ZY·K(-Õ²‘5´·mhÙèïlnjmeƒ´ÙìêâYwàºfNT_›…ÔÇgÍ_@^•a!¤€Ýã&ß=ÐÚ‚œAdû(„N–ж¬FÚÝ!{uL†¥é!| «¢ÿ ^¦í˜°lipOm Á@åxá¼\ì9ˆóã¤ètlYˆŒ”õäNÌê­ çqêà ®®çPÕ2‹µÎÂZ÷† tn pHfú‘fµÊrbEÔ+Ç%$´D„|”T0>± žA>Ù )¤4.(£âEµ¢{ wF“=Rœ¦) O`VAÞ°UlËb1à€+ omA6'`OÆ!IÚª·”ºÔgKwÚ+Áx8–R H¨U’P“ mnôËQ5e]ÌÛ<ê#VämÓfª8¬§CËÔ ˆ,ÇÒ5{|å»l„†Á8³/œPl»+|vJ𩺖.*ôÙ¾*_5ü[îPýKç,u8­GAžæQ‡C=¼Ô:…T H.ƃªû);}MÎë±ÿÛN¡˜l¦©êO–:ð„]Âbì^'ž,ó—¼Î-ÑVìd·»Ëf’mMŠî4íì Üäò-µì@«rT;–w;Xµ“½X²jÙÆ¬V8œQM Ííþ6ûnðØÌ6–ìòØ lLŽØ „(¬—f \‡Õíå"õÓX‘ÚWîЉ2ü~hUSöúT)±Ã‚r2B{“°Ià¼îCÀލñµ¨4B¶‡vtPŽïSPAÙaÛ>)*ÅÃAÊy„ÃÀ`;ŽD€SéëA³ ‡ J %R’1²Ó¤ „ˆ¥ rVSíª\A× }ˆ²7ÖX­.iP2”¢FªV%aQ"QM|×¢ƒbêVx :„(züa½8Çf 9)õ+´u*6=ìzDñõâ,ìj/6Q½åñqïú¥@(3£›~«‘Ó‘Vx¶]QVÉ×OJ¯Ìî†m'` Àk>zuVO%éâ±zÃÞ½â\ìj'áOµˆÿg$u¡ø(‡_h†hÝŒ ð6Àßm/À6‹Ür\µYüB S¨=VömniÌpÞY¬ZÊ‚ŸoÁÿVÁ µÊB”ÈA¼¨]´²Íí¢sb¹]ô†A ‘we—Âÿ DÁVDr,&,®È”ñaçÆa›*ä•b=°«†P(]Qr GÂÁp‚I{(ñ¾ä€M(.VB¼ “ÇZeFøÙ-âü`;L¨ãRq1þØqÑŒÕ.&¸ |e‡XÎW"üö±^}ù[Kðú­âzuÕ{Å$QÇ€“¢ˆOlWÌ©d¢Ôé I=É>0µ U1òãq6§ÊÿºZýØ.7®ëÕä÷–à›;%`R û‹ð¢“`³à¿vŠn¼±KüM¡•éb 3’BÜG·‰ÖiTdêHM§ÉL~0³€MÛÅ•óŒ,“H ‹¦}:¶‹ó¦ dÙØ'‘øÿk»¸ ß.Îá‘ß±E,ÁOm窱ï9ð†â5#/í ù ZÀÅïì¥ r y>OŽâC`ÀÅ¥`BŽ1-¡·ïË&[5j6‹|bñ”ZDÞ#[/1òOœƒ/÷Á¬‡}b×Tç~dq¹É°•D §î;L4µg·Xb¢-.ß-(cšÌ¥æRlÚ#žXàÓzCKkSgfg€Å€ÿx…¸2E fJ A—¤¼@-WÅí¨s×Õ‘¡¸ëzÊQ G–Ïê®#ßPÂP ¸wùà¯Ì±ÛM¿Ý}Ô"VHC‡†¥Ž ¢)­‘#EÑ€Éë#Sp+ÉÅEz_»Öç£RRqÔÑ5­s°µ¥ý“RbÉø;›:¼[½]í[¡:»À×°É»±ÉßæÝÜD¡2Y€Ieuy·æÀi%£Ðiv§R+ÙÙµµ¥m£0¸}Àúm·6u´oí2À¦ËÒh Ÿûcq`ÐA€3äÒéÊœruúŠ"ŠÉw*]ÚŽ‹ßae‰t¹’®PrjÀH'ݲÊL&] $¬RKep)„× (Eð¦s€þhÔ„%­ï¬‚Ìä` bËÊš¤±< ¦"ÉÖrZ& GB™RÉÊÐôÊ: šJ×…V°D†ÖÉp$ä-RÅÓY% Ò/+ V™LºžI¬4„1›†ilÚÐ uä+]ÆÔV(e‰TvE›^Ñ–]Þ¥—gø¯µ¥ž '_ÙóÒ'”3Û`,™ž*¤µÚ”^ çRHާ!X6…œ!–œM)FÙÔc=êÉì:½»”Õ͑Ӕ7tÖàmkokið¶ú›Û; U² Òp-m ­Û›…ôdº®³©Ë¿Ù»‰H—Δ–Ît@Ö¦¡!“ßÐêÝHаD†üz…–Ê´èèH·Ñ’é:râ%ü´–LºjÚÑÔ´ƒ®4M¤ËÛë/då,a˜#Õ\ü[Û7nõn¦SÍ*ÙÙ°µ¥£ËØ™¢%£½]^ÉffÞæ§Ó†¯tÙVo0"”²DÎ|ÓµÆ,ƒIwû&¨ƒÏt3/9G¼™³Ã»­«œŸ¤TKfÕ57y›¶jµ,c\¶:QNÈ ßíÆ EnØž"©LM—¡®+«–ýÄ­þS· »Ì¸L\’"çz'èx æã€Ã4N$‰FGã ¥ô„’“¼€5„ba)()ÔUˆƒø5¨b ÷ "M-Fi÷Ç@8¡8à{Ÿö&j$Þ0­Ú;7¸«¨VÓÜáLmÛ¡9uƒ~ÀJýUŠgŬ””ôÆ}ž*è¦!–Á MÆã …"¢rií{$´!=Ÿ`¡Í ˜FÓSé.¡i+ièMÁNƒ„˜ÚÚXk2C €±YöB^k\-ÃTiÖmR‚a#g_UÌi¦MYªÖClbGBµˆ¦aèGö[P¶â³.“%¤b— ºm­á«u*sêÍÌŒ´„ m$Y[Áî2NCaø Tâ  6R" CÑ CDL$hEù€¤·.§Ö¥­†˜Sîº]ç%)¯s§7I‘D¥sÍîŠ:wI\KB6Ñí†ÅrZ ÛƒðÖGîS:[êŠ|‘U-„ÿ‰[gl´úm]ËìÆFô`¢1*»ߤ2;<óâ}½ˆ½}?Íbd‡[g Éfδ„4²æŠ“î SSwo†J•c‘ICŸž,,õKá½0q©uKìÃj"ÈÝ:Ùï`Õ ,ë‰ìy= ߪáûÊÅâT'óº!‹œLÒ]5 ¾].×îÝ ´$#Ä}‰X…Goá G-™ë̈٠«QQ£}ÖT bÿ‡£äÒ³7. %J\uR±åJ„ÂŒ58j¼—cvíaÍÄsìÚS³»¢Æá°u§œºÆUA@5Ï( Jý¯vƒìlõôÉè €dÚPŠ\г«AÂHH¿Çt º„ó§sD8éÊF;û’=ºy–í< ›îrøŒ—|fˆYw.Är·Rç%‹ã;q–úv¼? ü5EÜ8+ÿÅàæ±.µ+Á]{ܻǸõ3@}qxÚkÔ~oHîóaëPü>˜¬?fØ.´9clö&ûÝèä%42Öé…ôÈÔMýÀ!‡«¶ÔÎ×ÎL ½¯; Î[b$4$z97~tH\£>U1Õår;ú`¼l}qí¸ÄDDâÂCâüÙm2r:ÙÒ<.¤þàw*÷t"[Mƒ%K§@Z­æ uå*9õL4ä¢Ì·•ȇ‰ÚA Ö\[ÆîoÿzH¬Ã;‹³iVýñµ‹B¥®]™‚oÍ›~¼ÜLn:¨ •\utC drVdžº‰Ô¤I G‘#$A°‚Ü#ÐÚ­Á >Ð@`ˆ"”ÃJÂef[]‘å.*.[f¥Ò˃ª°ë@fÑè §EªÖ^;/u*Œôú*oSw6 [ÑÈ’>‚Œ­²‡oX•uqUG uÄ•5›<õéy©®kæ;"srîf¬^X¬ I‘¸Ç>ËyêÎ{¢;Ðdö¼ÒÅÐj‚6ŸØuE“Œs9*-ÐẢõ™gןáxUtm±3³F2S¥ž´EwµäÚ¢YhÈ ¨#›ºY(G ‡ˆÝEdÃi'­!t_~\´©ûõEì‡32,»-Ä3ö‹­Ø¿_\oÜ/®¬ÕåÌ AYð A§AÄ0v2N4سý°ÂÇE”²¤c:rÀ¬9–侕¸™r•DšöA‚š ´ŸèÑ„|ª­ô eл,Laök*"ËìÞ—È Mw#7vDɤ†¡,JÄ%ÉdbÚ +’VÉlòxVkú‰6À£xºÉ…h …ÐC/if0QZSš”eüЫµjigWdµQcCh—Ïç¶î>*€þ½º,Èp„Û;Jb(BBDA`õ«e‹µ×Â"@!<4(ZñÅ1q&×kˆ»Ñ HÐMŠs0u°×’½êڪŠ„áæšÂe‚^JQ}š„´ Œ Žd5d\ëÎBÐ@'r2”F¡È€STФu˜ÑµZŒÑTÜ'5Ñ…HƒW4;L`!ZB7`q>1Glø½£bwÊQ—ÞuŽ\†ÍxÎ57#@2ΰ´øaÕ™|Æ«lP’Ó»;5M.\vY¶Û6 ¤ç²0eƒKÒ`)£ÏŒ+/ºÑ ¹¥¹¾F¥eX¥Å¸qbÉÕ b³ Öl³R7ÝÁxƒÕcB,³‡¨Œ»pàÒaÒh*tÚ!Àd¡aE䪛ðn¿¬Tb .&{zàó7’H&ª’AÞp•¸ÒD®«ðÑ«Ä LÄÜÁ_¿J,OA+rÜ“°,éDBb©„±”²èDš¡‹¼­Ûš,ÔW¶iâõØXX‰øôÙKµkD’Z…B×{l$練:|U¥¾jVÚ"q¶4Ùè±­mll¡¶.GÖYÌ×_/Î/ӯβïÐî T†ÀÊÖV ï¸V\”Ò½pl¹ iDÑb“Ùm5¹¦¦«¾„¸ê`ogmzMZÉ‘»ÿ¦MÙÝ7»ì†åQyUe%":¿ÝÅxmD\7¢)ƒä*’v¡+¥i1}G†È%—ì lH—mtt©ŽàèÃg–=”‡K ¶vÁ  çaTô)gÝf˜’ñœÄ`À 2PwoøøjF×¥rô4Ç–™yýéd\(—½ S0S½¦m‡é“B44!G6'4GCB8Žœ‰)}lÖ¼E8%Ï”Xˆ»u®Ñ"Úa J8$1/ l“>ÝtKHÓlîô ùÓKDoxóö³]Žïƒ“Ú©R·OJ8²3.)$Ñ/9Éû@‡ìËôA$j܆_ƒ ±¬†¦óa'“¤bŒÜŠáï\/ÖdÝ鑿¢üv+Õ*³,V­t̾µx½wv5{_uL´âW‰¥ÒÌÓR–‹ÁF•Ân­'¿‹Mr…Æ™îúÔÿζÏÚõÌjMoú¬ù¥ØTÎ|“hóû›öÃA·H*ÍOÆ-’ø›wÓìòì ø„ºRïÿâÆ¨?‹¡±æþRãŸ^/fGLˆówÚ.¡U£×?›WônsÆþÎ1q±È’3Ž‹Eµó™…ºÓ@ýYûÅ 3.ôÙù\èøÖãâÜTÆãåÀ‹ÌmÑæ¯)ÔýF÷³˜àdNÚ*æ¯$2Ô“EsêW[œ~ ZwdµQeq¾©Lœ‘™3áîÄ-+ÎþBÿŸê>ÿé 85õ¹Êϸ'¦Ÿ¿ÊÿÛ¯òM¤o|Ï â’)YL_½A\¸<í06쬒½·¨çX¶hÒHPšþNŠQ途4xœ»;]lßLцƦ-ÌmëÚ—¾eÞ¾ô-‹Å<–. ¬â€”[xœ"ÝÿÝ—–ö€„„´†®·¥í˜ç —‘зûæâ¤¤¨ê2xœ›öMäÄC‘†Æ-L~§§Ï™Î¨8ýÁf–鯯2q¶ŸºÊÄÌÛO]eñI±ë6xœ+ÔÿÈáÁÓ€„„„´³£—Õ!—€?—«—÷°(·««…’œ„ï9xœ;xYdûe‘ ͬ&–††; ¬Ék !¬Í— Žy@™ó*+x Lé¶œP¥²“ä7›O¸ÆáNÿ{“ŧ9nR{Ü$F fÚ7‰ù’êôW?˜ùÛ=w0o÷ÜÁ²jôv Ò«,Pöõ{,¯¼³A3#à uxœÛ~Y¤ñ²HC ã¦÷YŒFÓå½™TY‚=¬l&C À¿P¦ ·ÌœÔé2›!xŒk˜¼Äa<…̼¼üäÒüÒâx°~û$¦B þIL÷ÔÄd¦7@J?ŸéR `’„Ør/ŠIÌÚž_À”Ç”{XÄrHÓ åɤÒW¤¤ìC˜BÚW—01óöÕ%,<[ý>¤ë€—2xœÛø@dÂ%‘†Æ-L=+Û×n`bæík7°´Ô·S ôဗZxœÛø@dó%‘†Æ-L>Ó§_|Ä$ÊÏ•™W•›˜™§ ¡ÉUÍ5=~:SÔöÇÌ?™¶/˜Åô†¯}í& fÞ¾vKK=_—×åOxœÛ|IäÙE‘†Æ¦æ-,Ç´XRsŠS§Ö²(N¾°™e»6Ë÷¿%ä†â€xœÛ|IäÙE‘ ­ÌFF;Œe@ôä}2Ê zó™ß.`Æ£Ä;\`ÆÁœk<`%±Õò›wVNcq¦ï9ÅâÓ<¯º}^5#3mŸWͬ±ž%5§8uz`-‹âä ›Y¶Ûh³ÔΩÞTÍÉf¸À’Š0ªès€zxœ…UkhUæÎÜ$ÝI³5Éæ%kr³©iÝ”¦ilÔ<*ÁD-¬yH©E*ãtvfwÌìÌtg6q «ˆi’¸$§[‘öo55?±ˆÁ" A¤ÖjDâ’€Ðjï}Ô-s¾ó¸ß=ç»—™åoßLæÞâïxôÒtgÙÌgÁf— þ=à_¥Ÿ¬èW·{%/M6-’^DÌË_áÈ›ç&Ýs“¨Îî)TUbÛJÒ_N¡Pµj$$GŽïÕ±éû˜àƒÀ 7&”„™LÓˆÕ’ÔX’ÏXQ0fÐC-¶“ÔŒ˜®ÙMd»€rd0ƒ:ývÚnW5]ÉŮ͠]°{üÔc9Û‘øf‰¤-Åc¡ñq5·¥£$²dQ‡!ÍdaGK0BçµsÊ Dp4Ý3 ËŸE·ÚáÎ*ªv‡/£+p~šku›ß௠Ðtƒßžõ;–¨ÿöR†s—2ü*××øð.ðm]Ž«º³Y'Ì(¡Æœ0ˆžb Ø$1f;J¢6êY[qbI3e)†Ã°%Qµ)ds?pš?PNÕÑe+íFNóõ¶®(ɲ ¬µØ—ÁßÃwk|û×§üÍ~ÕLIÕ”!Íp#øßh¤ý/~ÉïpŸ»À—–—ÒÍcÖ¹†’,=ÎÕçÃó¨€O>ÁµåqÓª[\â«Ý«k| T&Šôtt2–ú‚Ãx #*8Œ©àPªZ˜ëæJ°ÐBâ ³ø±‘ã …²iÐ 7.9Ú¸²‡h*™PHÔ4v9DÕŒ(1 …˜*±L”|ÖÛCR6M¦’”E7eI‡ Âõp1Œ`ã}z¦"Â'ð‘Šjýl…'}Ä0Ik+\RQMMÚ7…{ˆW æ{p¼ƘS5xGâ‚p»W=hÅDy\ŽDÄ¡þÃ‡Ž ö¦ è¶£S¸9³ºŒÝÞ6¬ å›J`ý:wú¶q 0wŒÃîLþœß\Y¹ýì{™Û¶eÕèEô$üÛÃ[JO^©…½\Ù–Òþ ®á‘M%ôjZ±C¹y|¾nÁÇÚd¾îÁÄ¿u ø§wÕ°éÄþ§‡ŸèãMvbÕC´Ÿ…ó7Ñ~èíÅ•.êÃgö»Oá?j “W™–#%c$ªÈº”¤Git§¹H*Ã(P‹‰ùlÿ‘Aqxäpÿóψ­^|WÀÏ7¸2øp×Bë+Ø_Mˆ—’$|”˜£u×?ænq5¤¶x¦ nKÑ6˜Ì#Å!r°µKðÑ ê(¶CEÞY¼ª˜þpö&joÌ×lÑ9[ j Oá–¼˜ìæó®pQ1 ÜOÌJB?ÉIÉHï!¥ÇUTÊì.÷”2»J9T,q_)sUÿ—V$.¼3_q—Þ-Ïëé~ñþs7ûǹôç+õЕUEkó™Ÿ.Pæ£Ä[\PæÁœ+<æô‡KYä7﬜Âå_[ÊâÓ<¯º}^5#31óöyÕ,ÆZùí@yv6(ûÑj–ìé2-éíjxœ;Û!ræˆpÃF¯ íÞŸ˜ ˆ™·{baÏ» ºì;€xœM’_HSQÇ9¦ì.Zøonz×H2ÁY‰"‰,PB ŒJï¶»íêv7wî&b=å&TrÃý!ªŠû(ùV †öå[Tйº]}¸ç|?¿ß÷ü~?ιïg«î¼©œyÞip;àqÙàeUtdÒ’_•’2“3ÍqQb|׸)jÄR´©´Ì8F”Œ¬šq9cÚ. vØÈ#Ñ«¨ZÉ’PBYMI쪤¢±¢ÍS@ÞvUÖ"!à»Â?¿¢¶$¥p¼t–Ó’7ez2ÂW¦Exi¸T@>O2-£¨13>ÅLùj f—¥ªõ˜ÉäxDÎ*Ÿº8Åf]¨ÏEY1s ¯‰{ 8?‡ZÍjÆôúÐcôí ÙAèÜAFYÇ<Ž3‚]N0Yìv˜¿FẎíà—°ÙÁû™¸àª„W+yš;£Š æI©2¬äQµÑÂo[@Å•$§0XÅ­7ƒ:6‚: бHœðdøªø %$u\L„ãÑ„c"|Y àâ1Îù〾oÄyœÉZ,“ʦùÛˆ»º(Òæ;å$F`|à–Fãô"é}D%-…_>T§/oÙlš‰úæ¶ïP4«†GØ.3XKÓs°¶w1°¢cw±”©kQøøùýDSÛ™3,áM­Ý©×;í:´a-ïb6OApZpðéÓGxGúûðÛ*œþ̃]‡~rmÃè?³ä: ì-º³PÂ$õÓUÊ òPÒ™‡QÍîDÐÓȹžGÁ—·ÌeakHO àˆYÂâæò:Ó˜ë'iìOW©…`‡.¬~I´ŠÆw¦~hÇwàEñ"áÖOçÅüÿh•r‹Èõ=ß± D;f°dñÂOSæÂ2Žn|éÜNñC  ˆnýpNº>)%†,ý\xw°·å`B1çž9‘‹Ò«$ŨR=&h{ÝÐQA1¡à'ŒRßa"Šø H8Æ)ʲghÕ lÁâ5WÝ§Þ Õ r o0bw…þŸ‚<ÖʜՂ…©]d°ƒÉ‰P †…²Ø·ƒä1 <{¤½È:Ä÷{0a>×%™Ð^ð*£õcÙ…Ñã)O^ò=ƒ‹â¤ðlaßÁ”QAa0°ÐÅCFµƒî,"„ʘBuýĺ2R’ÈKo© r°¢Ü’%s¨ÖP×§*Œ©Ê¬ޒd3c¤è «ÇÆ…¤É€ë3M=W†òúWxˆ[ÝP ÓAš a N M集ªéð×_’Ž*»»üˆß¢ÉÈ—gš¬ë j œž„BlMšЬ‹ˆ7›Cer"ÂÀD5`¬œ*ŠªÈMÒSUPáTÖ#ü*õ•±b\q»ÇŠ1!{ÇhP‚3I3”9–483µ3UÏà(¸¡¢Æ’r*÷Ý@Ó ŸËô‘4o‹`¥Xû2º)õÇ·…±MÔãj€ì¡‡cl0gò@¡…|)c8’v%渺ü»‰BxÈá†Ò©t‚ /ƒ¹˜š|JN#ºÙ/Ü=QաαЀ.kçÊ@Ö{0VuΛ©Ë"Z1$î ixŒë¾©+œ>ebÈšfžŠ:iq¤‘zü ¿ª9×ꄇT©Ú'<"\ŒdÜ׈YΜDtèÈàÀàp¢hI56â…‰|2VNäÉ€S¯Ò…¢Ë-Ìœ¢“€’™¾®²0MN% ½Ë–•,òÔ‚r Òð\!÷sa¬]É«·J7£<üZàÚñC'Xaël„S'Z,í´ƒw×óg{óz°_·,m +C¡ñÏf]£Õ«ïàe÷½Gc_’Ôõ£½ù·ÒVŒm{Ï üiyÏIï–Œ¶ê;.óüAS¬üKŒ«3¹UãŸïõûZ­XR¿ðæðö{@bð×"ü›ÅQ¶ëÌíÚKì0_¡±jô E¾Ÿ.–tþiÕåËÞøíܘð£u°_¾ p¦oßöÀ÷ÜàFZØ Ø×F£k—%`}ô:&Jâÿ;J|~©ü2„×uæˆy?oã—›‚‡œŸÞc_o{øû¤=Ÿf[EW&lÛÝÖ=v æxóF¯^›ÓiXd,‹ö<ÜÂI…ÏÑ çX€[Ô·J/Ç!gþ8ø³€É¯sÞK=¼"oáW hÝ¿çS‘l5´#‚GÁÖð—…°Detšaùö-ù™»þ‹ŸØA¸Z[Én/[­z­Ö&Í]kq2¿½h‰¶sÇÐÚm#OðCU>p‚`Çær[8ÜÚ ÌXÈb›~ÚMïxV¸ŸÛÊøµÙNh·™µo.ÊoÔcü(‡›Y07Šû^Ûv‹™³ù´J&ï”?“Á“ÍêÖ¯t‹†(Ö@…Éõóå.éP½bí|ËЇPŽƒoÑ—apëç(ä ä«üAFŠÕÇþ«Àð—®û"ÚD6ðÑm`œ‡8Ø£—aC–b.ÒŽâ´uæ•øÕÙ)OC¤öÈ2¸èã@?ZÖô†p>‰K‡Õ ‡•($^ó¾[ ó¾[ CâU0‡ªa?TÂxþÌßÀ1·¨Y·ŠgÈ1ŸaÇܦ§TEùCæ6E%¨*’ÌçX2·i*AUe–˜Ê›Á¥ —Ÿ¥Å+z…; ØÑ±3§°²6¾õ¨ ·œÙ,ÃK¡ŠÜçjÏ,UߥPÉç³%g–ŠîR¨¤ðÙJ3Kµv)T²V*°'z-Ü\?××5{§ã¯.œÝyfêê8xœ;¢5Ck‚¸”™‚‘±¾¥¾¡±‚±•©•¡‘BVNbîFã lx¤7˳¯bÜüž£¯¢Nþݬšuxä{xœ;¢5Wk‚¸´©‚‘±¾¥¾™‚‘±•*¤%æ•l4^ÌÆ”—4ù›.>e›åÙW1n~ÏQdžWU'ÿnVúŸ&è Fxœ;¢uWs£]?›Kr~^Zfº^†—rfš‚W||s°§‹†’ŠgŠ•BRfI±^²N™‚¡ž‘‚‘±¾‰¾‘¹‚¡™•‰‘•‘¥BzQb^ÉfyöUŒ›ßsð3nfçbebJIÝÌÍÃͤ'sóÈN>Íùٚ׈I“;ù³Aê?ó{‚(kwÕ(à ¢Î øƒÌ”Ôdp²2¦â€lxœ›«uKs£í6MÏ+…¤Ì’b½d2C=#c}K}cCc+CC+Cc…¬œÄÜÍòìЏå\+ T”&oäÞ\ÿþ¸áWxœ»¥yQsÃd¶ÉsØÔEŒ Œõ ,õ  M­Œ ­ M7ß`ÓåÀ!%Å€I<ê0xœ»«yBcÃ6IC= T0200Ö"cCS+#+#ãÍgÙæ2mfçúÈ‚G /ÿVãw‹å;xœ;¡q@cÃN¶É)|*›²Õ³oNá{ eYŸ¼ÄxœÍûW`MØá]Ìþn¬¬.,¬®,°ö>Ч‰?gìÌÊß¾fgÑ­¬·¹¹Ž.Æ~ÊìÈqü­ÔuXòŽÛÄÏ27dÃiuq#¶bj½µÒÌJ²®MšíSÆ&Ö” ]–#$/J˜NYœ'q”ºÌJY…#üÍoe¾í²ÄX~˜2`Ѳ3„$X€'òƉÇO†ažùQ˜Âbñ/ýCD§ ?´‚-|¨py‘»l?NX¯ÇÌÍ­µ7[ý;;¸P¢ÛgÃh2Œ“(òØ›¤@ƒ¦ÅI˜±þ6';È×éâŠsÐD—q™§Q’átH:¬àÖš‚L@¤SÂ× Ø­ŸáŠ“(sa¦EÂÉÆ®Â7vMä’,%2æ‘•!Ø8™v»ˆWJ;j4!©äž¹–ƒ”¤jôãglàO i]û¥N*EEðÀ G™âÇŽ&f ‚(ŠÇQàJÔ@t”'ÌËC›”Ȭ™B²ˆÅ‰{ã‚ÜN.9ÝÎK¢ .·­!K?BÜÔC7 òF{¾M H?EvAËçè‚ÂEÀy€î±uãê`04aÒÐ@¡J£6(M„Û?ä„Û‡0öqÿ·ÃBýHõü&»”pöC'qoÙEâ;#ª2j½M­ÉÐêFɨÉNí Óªù:*bìR×ô¤QˆAC%qÒãÓ“£«ƒÓËwLJëq~í²Ïîí0OB¶ÀÓä-D±aê ʽ6H=gçnÌ&ë¶ú”ÞÁ¢‘ŽM€`Ø_Qýy,£7ÐŽ—gx¢G £œ *lè?œ¿ôjœ_dNß ‡è‘VÖïA¯'äq°ÿåèê£6/Í+Ñ,7t|o¡˜­‹éÇõüÐeÇü™“îDù0paaº33Ô`TüS¬À§B"UxjTÁ‚|• »‰|‡ê§¸SÂV†9dú¬Òÿá^aiy` +ŸñyÁ0Ð.@)µh¡Ì’7ÖUàc’LFis»„>¤ÔzDPoäI¢ã¨%*Ztc¹ÛƪshXw¼áVJÌ1/BÉ…¦¡ÄZý™È½ø…¸…xÏæuyå=~&f‚h4±!£hnA Ô !ƒVJnŒ`r[ ² $F¤ª‘xpvu~upøaÿòøÂ0ËÝŽ÷Î^¹óó§£_Y~za *³ö¿k•®Óc½Üõþôä7c£ ìäÐx­SNÂdöÎϪ¤@r.ÏFíì0³Y;;VC½ÊÐùÙþûC1Ö¯Œ\~#ƒÊÈ?¿œŠ¡µÊÐå™!FÖ«#'矎NÄðF“x{ WÚâ¯ÌØû«ó§_.ÊÂO‘¥,}èãYÖtÓܵÕ‹Fw•EWèvqö­ Òes¹YŠ8 ÏŽ8u±fÁ(›…? 7`Öö‚Á)ãþ‹‚~áRÛbî D$Ù$èeªiÝÉ&Y´| K‘¶|âÒ½À ZÅvKÖ3¹¥íʙؒ]€þš0 C«Ó#B¡%˜nµ0T¹P&68ü¿í&Ýd ÒD£«vÙòï {ö矬!±íí 7›0µB#€@øF %(à8P¢_‰“-\ލ¦¥eX†Hνý”p\‹PR÷¯TL’ê·ÇMZU庆c®·K¢Gë‰j>i¹³L£Bôîj^M0ëðˆV-tÿ§Ã`µ0(N<È/µ@  <„Y #ÏS`€¯[°‰ØšÕ7ˆ´:ù~ŽÒ`ª2!?u Ï µ@ïl¢=Ü5z&¤&l¶J‘FšKÝ÷ Mi–º²\ a"H£¥Áù°ªîr¡a˜?^Ã< Uý§«¨*Ktÿë#¬Õ¬9=˜‡À=Gê8 C¥=ƒDFÉä4ñ®hþ$¥З*EòþÙœ<DÆÂgT´.2èÓ/@s1•Øûø”Ç8,£ Zã°ºF-y Iÿ®åëøy@Žëð¬ûì˜R‰%b97Oƒ8ö N%ðÉj.¯§…$P¡a>Õ Za¾uj„kP’­§mÛ£@ƒBj@”ûîy†à[¨ù©ZlQzf›æóC>ÞV[”:“ùZ›ƒ.Ïøl¨^?ì_|ürzyô WµðN×b¤?äõ Em¼ýsÔ­¢å ôÞàZ*ä3Pn òϱîy¦ñD‚Ñ(ƒ9 Zf¿²7lK%…; ½l±ÞFó¹öåi¡V†¥r\)Í«÷'1‡/Bmýl~TÓT¶›OÚ•sø_… ü\`¾l䦹,X~ŒÛǼ‰OqÿÏR%öèqbGÿoˆµ%OÙ¸(}ÍÄ×9ÀS™„Ä>´JßñŠÅóª1Ž|íÎà #ªÆ sÃc·ùö&Q?׿bAºŠµš%êéHJRÿXPÐdÇ3ÊFû‰”„@ ðþõëWÉtÕP\WEV:Æ÷UxæµæÇ U•¿6OF»>Mmô)ìiõlÅX)–þÁÊô2Â?‚¾˜VÁÞP)âɄ̡„Ÿs>L†˜S¥A€¬#@ˆI‡C\ºµZ_z†_ª…(· Hß͈W ߦnÖf̦7¾¡{'ŸVŸ[ÍèËð:ŒnÑÙ®ýX‚¨T¹5çœ ÅÒìÉ‘¡ŸÍÙ|žn•ÆtrÚñd"³Ÿ‚ôŠ9öíë©|Q™ X號òéÀüGÆW=nb<2Ô©WÑ$pÍ}£ß?º‚q¨›Ä}ù0ñÁ÷ óN»õ t”7÷|Ïñ¨/¶.k­I”Ã4¼Ja9$œgCi‚ BDGèá±GFËżw±·¸M"Ã÷j ‚LkyüFß·Y«E-WEF"DŒœ*aAÇ,†D²PM1Ì-ç•vVšÖá-ÂwŒ/¹ÿ'O3ߛҿ<”8ö»W¯@íÀüJPœ ÔøæŒk.³eòÍŽD íV qÑT\W/F—·ZÍz躰þ2#­V#÷˜¢>â+a0zÓZ¼ ` ßeæ½Ó5™dn‚/Åaw‚Ò®ûü7ZóŒ½þUÖÓÌÞÀr_-ÚNyWaä¥ótƒ®L$Ù·¾ù}[ˆË–‹9DÍË~#0U÷&ãÇÜÉ?ܤìyââT÷=­VRÇV ‚bJBD9Ÿû·²CÈ=c³8RçËv¤#—³ÜY¦h«`w¤XôŒ\€ÇMäè b^‘ Y£µê7Eà-Aoôz8txÜœY–·U0.svFa˜‹ªG2=GyÀOÿ,›ná}Â8v†YãWîóNÄ_ “Z[-Õ ¼lkÌ_Ù¢ÙëÖÖ7^¿ÙÜ÷²Ö"ìß´NkhC¾YlŠe߄̖˜:‡l’¢mˆÖjuºÜ=~œQ‚›Ýë›T{SDä–¸‹} Â0;´]§ïÒP ÓCëé0…Ùi%è~ÞÿÚ ï¡ Mèiª€ý+°oJ~”£ò™°œ–'¤Çm<±çæX@Br~¨lÅ—ʰêlC¥bj'­OÏ¿ø(“¾»p±`›ƒû'D¯TÁûQ%V01Óÿ4.Lΰñ£HE¼8Àƒ§þ%YqÇØã&÷ Òa g“ËH®4ññZâ\­ì¼D+PiZ)Ê@±Ù_°†é¹!¯O ýQ¼þå·ßª±¿ˆì€DMé¨9P‚â&>²]ƒ8Žn{f“§{×#ìi/nq1/FWð Eø»˜âÑýCHéOYЩa1ÆV’{¼©¶çê…x) BÈRk4‰@ñnv×Q(b”¿~”©³õøÜ{/s+”ò…—§•&ÕÊDÊ‘á#(FP=t—Œ»øcÝíêåDCœðê7êa›IÔEQ©,øªLIŽèDɈzX…ÿñuÖ–Åߤ¡- ¨Ö,O6Wa¬TøÊ¬|ýšÒׯԾ~QüVP坯{Õ4öU$õ~ûÊÿš &5#5‚"ðjDàUDà"¨0¡‹ Ó£KÏÒkéUÆVþi Œhpzü²†l=Iĵšó¡†ŽØQôp¯ “ún¡ºûðäöãIÛˆÿÈá¨ùù³š}m»Š‚µØ:k>¹ˆÕ+f£|:4“ùéUÖ²±b®ÌsÀ¾ðdëþ§ì¤Ó?»n÷‹ÂÝ/*÷'Yn^…½‰+Ú²»@ÔG,óu/Rßåñ,¬>C¤D¶ÐI™ç‡òûœ$qñcÅÕ˜ô%‡ÀzW-eÎç(­»L2–BöJB~¯²§¤¬ÙÒÌ®î9&ªïéîªöùÂ}Uí¶J]Õ}ðBùÃ÷É©VÇ»NòÜG^?¼âÐ_ 6){0BÔ´icß÷ßËp Ò¬@oc ^¹<©~‡€Dˆùüm¿›|3E¤'i5®øJ^<&hâk¹óiðÁ&Q!ò·ý/û_ŽÎhtHð èív»D¦ Û`V,¶,¹Ara€¾ümX1EäÜàNaÓéçdÇMÚé]76øƒâà†S/]¿ôiv†ØKšœ_@§ö©IÑ)¸¿¦|9ÇÏŠi ³å[hß|û®]н÷¾ipÔ¶ Gúµ#+^|<}C…QT_\êôºëÞb›?”ÚýAw³x2µ!VzjõûÚÄÖšö`öºõ°¦ZƒnOk÷U»kM9ßï`%tOö…å§‘ò*Ì'iÁ2Ñf½ÁZ·ßk³Mh˜Ý~› Öz],ÚÌì›À 4»›°­ƒ¿ò{üq­ÛlðY'—(£NpŽ&8§$8õ´®˜Ú+=¡GœzXÃVÍgK[Ð8·ŸŠÄÄý}$¿*1’—‰ŠK‰p®õ7×67^÷7Íòãë²lȱîÚl*ÛžåÚžñ·ÐêQÄ ™/Ü”«}Y‰79ñû½”Y#ü¸>Ê=8x8$KJ-ô¶¿`®ï¾ãE~À6»kµx —è2n)éV,¡àMÀ¦  kJРc*A*J óñpñ‡¦±­àQZ,ë?8‘Êš,±'±@+ÔEbÉŠ’~ëŽ_u‚Øì1û@òÛÒ ú,±Äiå÷LÁÙ¥5Ð!žE‡D£†CA]Ë{È üJ¼çUWtŸçè§X3£ eÎ5â¥÷ƒz* ·uP€F’2Š`ãä°½¥t‡5–œ&D‰ŒÃÃàÜäï9Ð:-ÏGóÒsEbÿ-EK,KüëÖ”¢@ñ¿XrºÜß ·Áºw~Ö0)yòÀ…÷iÊfCð¿J})ë§xœ;ÓÁ¸°ƒq‚´´‘‚‘±¾¥¾™‚‘±•™(¤%æ•l4½ÍÉ«”—”œŸ[X¢—¡ÄµÙ“‹Ù óòØëFxœ[ØÁ¸°ƒÑ@_‹SÅ3ÅJ¡8¯ (3¯$M/Y§LÁP Œ ŒõÈØPÁÀÔÊÀˆ6|tò‰l@xœ[ØÁ8·ƒq‚ÄFV„¶¤ xœÕ;>8:þþq“ºq.œßâ»ÊÎþÖ>Ìíùé¨ó׿€-±#ÚÉâ1 of¹¨z5qøã?Öá¿?¾†¾ÊxˆapÄy&’©ÈáëUÞiæØÒv£pš¤qè6„hE‘ H™Hƒ,Hï¿Pp‘ñ,Ì„—ø€¿~ _LÓd.²dš?¸i½qž†“e=y"Nƒô6ˆ‚G1yDgËÐOĽ‹a’e˹< ü0ãya 7öÅ2ƒUb¼L½€Z&aì¦guñæ3‘¤ô7Yæežøá4ô\„QˆÍ"Hçaޏ,Òä>ô©™› ¦I%a|ƒ8û!NÊ Λù1~>l”P#Jœˆóe–ŸrpE¨î$¹Ç.¹þÅIzAFã"€‡`̲D^'XÔ‹Üp¤È#q´Š,hqD!túK@îÁTJH~â-ç U®Ú´}ØúS1ws7Ê ãiðM÷ºABçú ’y˜á’f>.±q¸ùd·ŃdˆPÂ'Ñ"NÀ"‹È},Qâz·qòþM€pùt„„%°-ú¼hé&ˆù}% `ò¸zt€9=u#ïÈÅ0ÏÌyHÒŒˆý¾!úAHLBh±;ÖÊ81Ý$seXŠV q 7踱}2(š'y (+×u|“'Id‹ÀÃsSC<`)ž ˜ÏR–ÉM#upÞ‰ÑàÝø}kèø|9üÒí8qú+t:bèœ9ýñH´úÑôÇÃîéÕx0‰ß~k`Âö6v!¨VÿWá|¸:£‘ E÷â²×8xØê»Î¨.ºývïªÓퟗ¯Æ¢?‹^÷¢;†aãA×C@«3Åà¸p†ísøÚ:íöºã_ ¡wÝq—{ëµÄek8z­¡¸¼^F éêtGí^«{át@9vû°°p~²Äè¼ÕëèH2O@±uÚ#X´Ùéöé1ŸÚÀ5À®W£K§ÝÅÎHi ­K°#ç¿®`t"´Në¢uÄUÿ„-°%í«¡s#FW§£qw|5vÄÙ`Ð!(?r†¿tÛΨ)zƒqìjäÔa‘q‹–(À.è†Ï§W£.1®Û;ÃáÕå¸;è×Ðùà=pmÁì1yÐ'šIƒá¯ùA{PïÏh"O‰k-äŸ×#4k$¬ ü[ÄŠ¾sÖë×ÛöÐûîÈ©Á–uG8 Ë+¿oýJ4^ù¸Y€´„·N[*ºïD«óK‘—ƒAF])4ƒwitÕ>—ÜÇs  0ÚîêëšØÛ®È–pZ² W';‰Q‘LÃΨP€Úý Á¸7ŽŒm ÄÇFãžó{Özx¦ãà”!»C– /’­Zuô˜ý›œdáïuq›Íj Ü`óÝH¿ç) v´>ØMR" Y¡M#÷&C“ ÑƒFBïX:ë N¯Z8?CÒ—£Õ$Ð{͓éX¸ !Ò˜`»Å%~LȺÎÜÔõriÈ\»m‡ ÐÍTGûÜiÿ\ ä@åJ»ÄèÓÅ”›^)DJÞGˆ¾\ôî#(ÅÐ^zÝ ÎíÇ«ŒYïe3‘åQ ü¤ÑjõÆp$ß]õ3˜"Ü—þ R/?L´0 åS31]ÆYOCã¸Ûë8'ø}ÖàPÒéþ4IpSQ(ögÉ<ØXûÉt_uêù§p ó?Öž>»õÉ8tÅáD¹âh"Xü®Áfz3¦ô—ó >j 2i¸…·LS-øzŸ°£„ƒÈïdaþiÅËxâ%sàwcöš—1H…ˆªT*û;âÇÇ¢bü=xª3ØB2*°ÐOÙc¶&^5fo*KW¥3èJ«T¶¿Û¶ÚÆÐÐ0 Î` ÿ80-=dÆÏθ²ýÑ4öiÞ Óêq„º¨²ýÖnŒ÷Ó†á Ûö¬&½Â'Ó8r.aÔ¾Õ0&äwL‹dÈö¦éªßq†£ö`èT¶¯K4àÐÏ¥U±íÉZ£×—m..ZÐT߯ý™âNˆŽszuf{q- =øý‡ƒƒ«T÷¬ t|_ì¸h~ÆñSøg5·FínÛ }+×Ö[^g3Ð9¢ §ª ëQlX~Ãâk—^·ðß­eñ›5ÁG…>ÃPIíT*Õ*©UáË+ ¨V3 q«<ì‹ÄØç¿WáѰÅv‡Ó﨎O…’AîxQèôÕñ¶Ð1ìŸ©Ž½BÇÈÑ >Za±ˆ‹èW%yŒ·xq"jÀŒ ÝoŽ]^t`Ó  Ê\àû$ôÅi|ý­Ö,L¸¹nç‰'Ç#sh¼ü›…ÿ ®ó•~­ªÁàʣߌmø5Éun¯µ²ss úS=ou öàH€èÍÒN°ö "߆O‚æƒèg†® «¸²vø‘¾éïWyý§`VÀmU*èÁ?ÜØ€ ¤¯Cljãò0òƒÒüvARže%±Ã¯g<Œ>*KåÌaÎ 2z¸CA‡*çáñ¨ˆ;yâ|*—öV&J c¶Èß³ÇIׄ1"׈?Vw‚4E¡V‹2]ßÂ}SÔ,ðCmëóV…G.¯5è6°¹UA€üe”&Ë)¶×éàVGÿ>~¼h}¸lÏ{N÷ð¨ÎŠ„ NDµº¦\*>ÕUöê^I—èò”_­&§ ¡·÷\ ˜3óØAs¥ùšûW½ö¬Ø Þ½Ú­Ø“é4“àž¶¬vžz"ˆ?lo´i”<†±òS¡—]#^a«"Ù_™]MjB÷òD¨¾]ax(YS £?pFí֥Üy˜…àQVÕ䟄„÷êð ªÜÝ%Å NM Ôîî DùI a%˜àc]¦Á{œ®º[&èñÛ^-xV}i¤úO„´'¸$·®L;‘ÓxH»iR“¿ïíù„Oôß"eâ‹Ð΢AäC¬f!Ø1»‹ã¶­ìyO Ix„Ò _¦±Q5¼³p èHH^¬4ô`eÜ“ŠçöºÁÑ_¦Yx5âó“:3 ñ~cR`'bžÀGòØ1S‚€ÐÕ¾å„èšØwSßGi²ÌÁÌ£GO°qTd:p¤P¡˜}'?Ýh»­µÚU+£Mª‡íˆEžò)PÔKz̶¤¢G@„ìóSs¿zX«‹(Â0¢BIÄí‘>|B¡a—%QµRûp¥ýè“2‡òþ0!jƒ¶”ÄWùÙ5¡ýè­K j$ù¨”jJ)i#CÊ‹ÔÅ«ôž5”D…Yò<^ 8Rr†JdĶ̚bD ƒÅ8 !"Ãt˘f0§²Kñm¶„ð2ð1²1 s)K™s“Tƒ-•ÀÔ #3;Wë®5Z³Ô#©Ycƒ¬m3±ðÏ…Ošj`-J!~Æ¡2fBìDs°dQÖ´e&кÀ®Ed¯Z:PÙlë@t1ç # ^Y.T¸Í›’Š2\æZÿÃ&έc€ß@^€¬&âDJ M"y†0^€I„–)šË%ß…2o>q#7ö0“R\0DóKðww—¡/X-`È(—;Ø+D£RåôîMLŠå>H!ÌašùCûúñÛ^„ ˆÉP‘-7Ù„úT/[ ©€…¥óú ‚õo–‘OI#Ô ¾d^)µXC–x£LýÓòQ’Ü’a ‡þâÌb®íþ¬a™3á‘kF0`‰8¶‡ØzÀ¤NÒÀ½e:÷öš´m^?‰ ´oY“ÖGE¥êBŠÀÄ—/¢Ì.ÐDûååÅorævXöËܶ £‘%êBÊÍyÖ2. PÆYn&SülÕ-Å98RÀ¸ jIë0ö­J²Ç…vøôJ~B»Äd a¼rwÎ ž 4)=þVñäY<ç«â97â9F<çÿ'âI|ŠŒû"…©ÀçØÍòˆ¡5%H;],‹¶x>Iƾkõzãóáàêìœñ @”2pï€)ÔS–uíRÈgRíl ÞÇ{$¡F=‚.¦=û ¶£f+ÃHmNqwì°–Yke¦9߀©ñ^”dúôoIN€Jp*b¢„f%…“ôål’­ã\q†Š_*swüREV&$¿UŸ¼µ>§Z~Ž×°š`ÌÒÌݺ:Ëäã7@K¤u´²î2Ê­VƒN3!„GÝœztL¤g"ý åÕ= ë–K ¾m„·Ö§´ºÑ_‰2›_ñÓ:'T¦käÒ;‹_[}ŽKge/À½ØCŸ|ݶààí•t äÂbŸ0I¦œ÷ã@FâqÛ’ªDŠH¥rQŸ¿¨–ÐWVJ¿f¹¨Úq&#‚%–¿(I¡—Û r¼oü…q9p§ëÂ'o–ýتL×ÉUpäC~Z"£½…ü/ÐBId=kÇ—‡¥ìÂ0|Të Z”rDæ«x¬ò ºŠ»~É. 6q3Âo´^ÙüŒùcožX@‘Wß.9~¦ òC¸•>â-ºIÊ« "±3<™AÄ÷Õ—ëeYŠŒsPÉ㋇eèWáþ©YƒéH–7ÜŽ^q%³÷fñp퇩9V(Ï„8Êß§» "¾"±;¯ú% VPë¯.ÿdÉ#r ;+-“TòJ’f ë',3³õ23AäÖÊHe«ddÖiDA%.¬…«jÕ…•­ø¦Õ·,F‘$Â6(í7&Ï)ä®ZS±÷1¥Í—¬€b5‘7¨ø/Ò¯ù@êeb2=èÌd¢¸†ÇÞO$Ån¤á(ç£N  BD0Y’æ¼$áT—q„W‰Ë8ã»ÝbE¾¡ ±ën | üZC@€IÑ™8 ôÁÄ ¥Ю=Q„Žfü¯ M°3HÓ$ÍDâ‘åó±†!ç\)îF8€>¹K˜Ãà;õÑßÁ·§ÄÎ])Yçeë"‰|J%®f4×'2+Ò²Dá<Ìq·éƒ4ytŒÔRÒ.³É2^±e À,H›^g=ɸŽ&N…ž:ý,£pÆÃSLˆ6×¥é8€Wê'ñvÖž½xà¯Çž& šâU-¸ÎÓ(yà lpJö!ᔜ¢ÍNåÙ>º·ÉC/ÌÖ~4eÿúƒ1k¸ÝÝ•;†™´G좌µJ³hœÀ€ uØZT´ÅüžÂ¬©ŽED*{{LÊ^qÝ›m ¨4Ú›+ÌŽ:Ü5˜ÊûEƒh!t‹ Z‹}UøG›¤F|<üT³ã=-a5ìŸ5×t–®èewOÄ‘•e}Ïɇ^šf”}š/'¢”L_ÁåÝÚ’,uÍ~ü¡úΨxµþÕ)ÃEî+4üBÀ@AŒ›Rv+‰ÁåÜ⨾ºä›€gí`F@5O‚™{&é– 2Ȫ¨³«/:ƒ²ñãÞá'ä)]¯¯_y²l7}ãÞ–ý÷RÒ»šâ’ƒuA‰T‚¤]¥,…%uñŠtfMÝ +%Ç“jÊÄ®Üõœhe ¢\±œšîT&ÀÜL[L~`Þâ&!W-Qõ;¶…åé°˜]úCPL¥ aPÑà™f”[‚ì‡ÿ¯ñD“K/B3I åP9sL8 £0”Y̸zÙ¬QrßÖ‡ ’ª«NÒk†Vm4¾ØâNÑ9ñ''då•\¥pïAW¼+ÉlÞo2s»¤&š¥Çíóš’D¡³jƒ¡þ`4Ž%wè³TË»¢t÷«eHÝXWe‘AYÜöÌHe¬e¨¡fÊZ‡šôw¥p&ÞrZÖÕD,ŠEwè°hhØ@¹Tw ×µr„8u±¡ç®¶²¸]D°)+®®Þy›Ðu¢ñHüÚ«\ô®E¼ŒÈÅœQý0•]Ý»³·gWŠ œþ†8j|ßЙKô–¯\ˆ{t®9{™¹÷\º¨ŒÎWB¯Þ#æ7ñæÍ »duš*kÍn‚<ØH~ÀÈM*Ö¨ÀOERhŒ ý[|ª$F\V!yQå QƕÆHΡ¹Ð±»ºzϺãÈ@—îq éªÂà‡Ë|I!€¾lšë>dM„åá "9hBݸ ³àfÎõvE<”Ú‰áÀôúèC»ö=ï:7üÈ3Ä|¥:ó¨®ë4ÉW‹ ]N“MLž„ÿNzñ TSIÚ÷^’,È‘ÕtJò1ªO\¥DT/–ñc;MVœ"ýZd°sûJ2(t•‹“çßd´N´ÁRQþ¯°î[ió·tFƒa¨ 'ÍÚWÙDåôìdŸ–ŠÎ$lR”­!èöåÅ®ª<Š‘sY£ØwtÝuºÃj6idùõ<ñƒšåpSw¯ÿs¡Û­Êr¨uHóý‡5xÍJµš] ó†Ä|w£oÞ¤hq6•E©Î×€9¿P¡|pD$B²zâŽ#5l¡R–Âm¸Š¾8§†I°á®™+&.ÒÛYH1Òy¨Åên…›Åà’xÉþòN‚h2ÉK°Jªû‰)4¨cîÁ&^ÒW1ü¿kÊï|@Ä‚¾kÍÁ1´}•0¬à_YFZOÚ a?¾±EëÐ@¡o Äë¢PåN¤à¬üº>gey⫾Áxè´À+ëà«æúõ¿§Yù+æ¼¾YÙb†oÈ}Ü8Ÿð)LRÛ’w®2ßE¿à“¥‚Çœ~òa&•Cù¹2{;Ç×B‹4ɪ°­ÃWÏ¥§v˜"n–…71÷EÉ_T<$–¡™ÓF×’’yµÆŒÄ¾¤§1ÃêþܽE{¿€p€ünL–…˜ø€x. D²pï–[b >öRj¿Ä¤êŽE¦Î?SŠº¬r€u–pŽCIÈ\Œ‘tijQÕ”ÓÅÅ H•ô Ki5;Ï„ŽIÁv¬Ó k¨¢À¶L3þÉ*OVàF¯Fö? €|~z*²]ÊÙ²l$ˆ=°¿´m.Ï4¹drd` È\ÈJ4ë¸7<”ž Œ.¸!_¸:p QÂQLà3>N·g7³·2¦¤œæ-ƒ'<ÅÌ%›£²w.áE£Q Áþ„'XRr~QÙªèù@zÛ£ÀMAÞ Ñèè;ez¡gœë X˜§%ìn›jge»®V+ ¬®œ-ø5a檜â]:'(ôV9‰¯*Íȳ󽦴®Ý8¤¤Ig0æ—•Y¢bôðÁk7Ûà/öÞø×ÈY†Énš«¶ŽLÑÙ—ÇJ*YƒeË(GîÊ›3í*É®cÂñÏ@õ%kÔÉÆo¬ËgB×c ¡†œÈŒ˜j*a ê`N=Ë3*‡ÖŸ´ä ßc3—yå›èÂ=´"ïc*À~Ò,*â °~~H2€y[oXû½´²A…T0¯C÷ï|®AgX_à^Z kèîCÈwH0ßzçŠb1q½[TÒ‘ ;TEœAž:ù U %òô±QJ©=s&¥‡¡ÛªQJûZE kœÊbÂSÁmâjpÛg`»liåý®l¦Š$+·fE¦{{¾gù# à‰4%Zœn³s€O+©·gTHuÇ ÃÒ‰ö@o£>T‡j×nBëÓb¬X?죀C’-ÞÓ4¸qSŸ+‰Zº°¡T¶ØJ2~ù¢¬ž†göÛºNYÕÁ¥¤©¥t( àt‚J+Íõ¸ÍU¾•v(Õèy 5ühë"AK§†^‰ïëbIjä_XÐX•{*üØ‹¿R oOGºÚ‹Øiöèi"D¡2¾[e832ÿT¼›&Y†•\à=é^2ÝCj‚a­›>6É¢ÜÿÝ@§—td4Ù=»[º>ºqT ¬ò׿׸ÖÕ" iEŽw‰³aЬCFRÒ¤~ý#ÝøÞMCü yi[æ1½0tø »NؾtãÈé¹SÐHײèè‘oQ…@ô@ò Iàª&W¨gìŠÃµ© uåi Îû Ç›?¾—~vh.•\¾±®9Árµ4e«"ƒb>C­C«G…L¨¢©˜ÅS»Ï'ÊyÔ·J0Êֺ±&ŽÙ·ó8ÕÜÔeÙ¸|¯©r¿£K¬˜\Ÿù×Ó¨\»˜Î}ƒiYÙÁ5yˆyS”kÌDz¸N°OìA¨i´“l$džø¤¹©,t(Vºnˆ±èASöÜ¡çö³“ ÍSÞãbí Ö9`”].ì bò¶85 ƒ÷h0r“…1f¡à÷˜f8Q¼‡Ž²‡UŠ81Ar¥ Ï4 ‚S³ó kÝw¢äãJf½$`»»Ÿð-KëÓÖWÎú¤¹¸õìµý«|%ø»ê`áæ´†g× 2qvüµAòì>sS Ý[aÇâ `ÊE:H•ï€Ãìž ³±²"öôOn ªE-m¹”Þ]Ñ:öû2vµÚ±>R}ÊgV+Ém]>俦gü*£ ºþÖzÓ³°†çòe¾L¡púDßôÃFð3ZëÊŸî uU(‚â›LY'£yXSwÞ*œÄñLSCtÈ™<Õ¼›QÓUâg€,P[z9?*QôM᫚cîJsJwÃtÉO³“[%G,žøUB«=ŽÆÚìÇãMÚâã‰,¨Ù•G”©ts›bó> 5ó_È+óšÎœ­]aØ?Óµ\³Å-¥[[`é÷3½‡² Y掎ngoåk öáד‚è=ËoûÒÚÞ* Î{v"ß_ËNš¥öCÞ·ˆw âŒ·!Àçr)Ãߨ+âOƒÂJŒpÉΓŽ\-4RV[óÅ&CVPÉ‹ÅC[6Êì©Ê¦À²m|ɱ¨inÉϬÎñAÀ/¥¥¨cóÃÉõ/-Ÿ¬t%å·Êïª3|г¦kCÒÂ#œD2º†·Ÿ‹GN;½l¼TÁDÙŒÑBëS\ÅjÀo j¤øØ±¤¯Æ X±‚"\¶—¹…WêÓ¸ô>ïF¾K’l„´–jIôÞaóß#—Ю1û³ ¥­å(&Èê(Süÿ“àôn&WU¤¯û¥’Kª1œ‰²°‹g†ïO¨‡ïzø Fù³%ø[ho;ã¡ßB{Q¸„’¹xDP°UíÂK 1UÒ2«´òS „¬§êu€‚n¡‰N8‡[Z¨ÙA=/=ZÊWQ%/+f¦?ý²ú÷öÊUµžZ‚ßôL^l­{&OÄHºLG¬ZTõÒfÇÿˆ_’„"×´Cž¡7Þ²J½4ǃ T8…—lÍ2H€÷m °XÞ3 tvö© 9¾DcÙàøs¸ÜAöæÂMó7ktu×kw®G7¸Ãm/r(äøØöç "Šòƒ»lR˜æÔÊæÊ° ƒ$s.ˆM!i÷rˆõ‚†’B=p¨Ë8Un[Íîõ]¿3¼¹ÅïuŸæ+ña.G7µ:Íëæ``õ‡)OvOÃH]!aH‘,2!ÿkŽþßäË o,¸´¬þÑ×fß‚nçÊê ¬h}úÌB†:—õšDž/¦OŸ=‚Ê9OQ4Ág–/(ˆ) Áe-4Cð|>ÂÚ  µNÜ̦r[òÙ„c%ÀrJ}¦AŒ^.`ÉÄ4qEäº踰¤0§T@èÏ)8dmáNì‚@þ$ù^<?–~€,L1Hž5ŽÖÈÆOØ0´(à2|ñ#ïè†rÎ0ð_É|ñ?dZRº?‡v@)VtYß¶Ep*û¤Z,™Åò ˜ÕÚñi­T†1Ö"Ö@Ò+I ÜúXLÔyÕ`?Û˜i×mêü<)Ô´ñÒ‰í«Þ°›mÄs×æÂ‹1I%o¡V¿ß»ÛÒ àþ4µ„Âa‰%»å±ñÎá÷½Î`ØÚ¡Œ8C`†sÛ¿83®šCme¬ue4ʬ2ÞkÞZÚJO±™–7VºªÚS :œ…íªÙbe`¹¸ºšº®†ßtÈ£¡®*‰ÚëêwUaX± w#² GYb³Ã&4¥ê#šBA°ðgA(ó”®/rf©\9>©~:=#cÎÕUUÙ™%bï.ÀÔ¥3¤á©pq½ûn£Sâ%̉çù¶V© l*)tÐâµdÚܪÍ8ñt-‰Õ<,¶º~C^³ ΡTÅ÷á¡ß“Ø!{D³¼„0•òHè›+£©Ñ€cyï|XJá/˜`®LW¢~à‘Öšq7YÊPW¼Ö©ÃF×äÈ‘“?U+“á|j{#Ø®P¸ëÒàáò¾=èü!ÃÙQ<\JìÀ ˜½(=%UIÁ%™ý9Y㜉ˆû-¥íp&tíC’jEŠç/(Ï\änÔoÝõº¿8ªÕTPe03RJ^ÊrŠŽ Åj”8šklnd@Èþ¢¾«%K]ס‘Pl"¹_88x“X^œ´mvðÒ:‹ëa†äqWËTz~H5)‰o¡i–Ö&û‡ S)³-¶=Uß§n‹‚u‰O01»òîê——¨lûI±ÐçìouÝURò¼ôÚ^¹öfn¥^ÿ©«þ Z´µšé‡LxœëÞ*4ABÔLÁÈÀÀDßÀBßÐLÁÐÜÊÈÄÊÔl¢nÁÄÏœÉùyi™ézJ?(Èèk)(gæ%甦¤*(å%æ¦$&§%´ô'ó1VO6`Þ,ÉTÄx­ïˆ1xœë>/4ABÚTÁÈÀÀXßÀRßÀLÁÈØÊ„Ò‹óJ6…3N6`Þ,ÉTÄœ çˆjxœënž !j¬`d``¬o`©o`¬`hlehheh²Q—•‘Ý&7ÅT/Ãn²c,vU›·0^g:4‚é‰*xœëþ 4ABÔHÁÈÀÀXßÀRßÀPÁÐÔÊØÐÊÐ|¢nßÄ#fÜ6yI%•©Åzv“ùUØmrSLAl'ÆXìú6oa¼Î7EÐä ‰zxœënž !o¨„ FÆú@dl¨``je`debª^”˜W2Ñ(‡)%uâ\I.›äü¼´Ìt½ »‰§õ¹mò’J* R‹ÜÉ|Œ*ì6¹)¦ ¶c,!#7ïdÌg:YED±©ÍKXž³²)Kãyxœkþ#4Arr?£öFgÆÍýŒ_ÙHƵ¶xœµZywÛÆÿ›ük§ÏYêvœÔJÜ‘ ˆg`PG/$–j`pPv“|÷ÎìâX\’í¦z¶ÎÎüæØÝ™Ù…Nú?h4¾2Go‰¿Z»½? äìøâ‚œŸž¾>ç§äìüíÙÅÛÓoÉ6´ý˜(÷äþI·{Ò?ê’>ûO¡»}ˆ‰´î¡à±(áØd$¾cÇnàˆê¯QBö<Â$"Òˆ†ê ‡ ê¸Qº«Eˆí;$‰(q}I¸¦Œ²r};üD6A¸‹äÑH²Ï ‰e8îÆ]§jí’= wnS‡ìÃàà:ð?Ø1ü¢€ãyÁ£ëoÉ:ð…"DA¹ßâóÙqÅ´ˆ›Ì¦uàgÅàNlƒ­ˆj¯‚¥ÁAøñƒØ]Óp¸ña µÌ½²M tíÙ,vçuC@¡‘ÌðÓIÀ¸ÿ-„{™"9Á:ÙQ?¶³I;ù`<$;;¦¡k{Qx6a,ºÁœ»8fkÃv4ŒÝUò¨‘¸¡vœÀÒÁiÇåv3'¢`?´¥f±H€’½gªxb¯?øÁ£G-EÜ·©þXˆÄ£ƒ›k/qhMz ^°?V”/t ºäY ]Xì[îoFÌß×Ç í²8!’oï˜/Û¦«àb« S­"0DìYQŒ L_@¨ï•b¨À©]Ó̹| ]Ø|)ʆËqÌö‰öt; D]Üj!î%Ÿïª(J§a¬‰jS[·²¡xžú:RFäê¢)óK_h#ÙRu b¤ aÞµêše¨W K7Lû׿d0þøG6*k÷D¹›ŠiÝ êl>U²f©ŠÉ¦‹‘ª] M·ÈT©–¦ÇÒÌ„º$ÑÇd¦à |•¯Ô©jÝ3•cÕÒPÝôÉd.–:\LeÑæ c®› A?Gª9œÊêL0åFÑ,bNäé”)-F㫞^)`¨|5U¸*ðt¤ÊÐB—Ч! œˆ9W†*>(w x#÷€eÙX×Lå§ðÁ8É3ùü“Ú#ó4\Ê mÖLjc.®LKµ–B®u}ÄBn*Æ:TÌK2ÕM´…© @‰%£zDˆÁ0<_-Lc‡Xªf)†±˜£÷=2Ño!8¤G,Îôâ¤÷ˆ‹Á`Ó0 ·è0ßZêžeÈ8´DNÐ ñ´gaµ]OÕkE*8ª#Эj*=V… ÕD•+¿•AóÝgó¶ñGa=جuLäÑŠÆsf¶ "jºt€j.†“4ú¸5 Z~ãn|‡nÈR»ê³¹l-'Ýo€àú´DFžsÈYY>ÁãnÞ5ÇŸö4ÂQa8úäô2yo‡ö®NvƒuìÕÉQ°þ@ãzl7Pm7®XâÓ¼ŒO\¿â@N_‚d¼kÝWàÖèU™—†¡”I›µ_uÆs¡ˆjZœU™´t*nÑøß»}…æn}»¬Ø±Ãm“\£¹A乫*-„RU¦Å˜qƒŠ‰…ÔI£´!ùFYÎõé´û ¿â‚#¤pŠ!Ã!ÔËØÌ{³‰•­™‚:„M÷êE5Ô–cÎÉ ›0“ilÝRŽBýåì0Ý|€}¬cÁ4sbƒ‰ .,™Xj–iiÐQï:8¶Ì²w›t¹µÆ*g(,¨#Ë[Õš0«ñ›(Év5t`ÜŽb]d¤L“à8¬{^ ¤2 hmŽ",™…RvaNh"š’NçT5aæy$aÿM'ìá^‡ýü½ +›-ÖÿüÒédäNJG^Ò÷–7ŒâËÎIŸ°'0œuo_ÿoݺº¥ª©X Õ¿*†ô@m§—ÿB´çª¬Pã^j2¯Ý2ºôéGn>Tí*s#û>¤Æn;ô±¬Cš$Q ¢î˜ 5ÞHÉ> €}7€ PÏéA7ÎMÅ0_’$Á`ïè=Nm%?£wY\{äÅ,$=&Ú©Ž h* ¼jB¾Ùª(jCÖË,|UÁ°"xÉç•<>¸%ÒIÛ ~ú'§½<*4*ªÅòpeukÐÍ̘Vt¾ê ÌRuÍ— :_5³¹u_6‡‘²%'ÕHƒm®ÜX5L« ÇH­pÍ0šrWAAŠ$,„j˜ÄÞï±å-Yþô¿íùøçg7}es¡„g§¸»pk!¡¾3Kûª0ö¹Œ1È–éqn©}E‰þ²4‚ü_G:ÜÌç¶LáayÏ”Xt…Í+LÚçm_’óY­1©e¡²Zn„ÖĬ–‹< q-<¿jT“úÕÁÕ.ÌfsPZZ‚üDš, l õG¿<é¶ ——B‹‘Õhp;ý†(U¼þ‚0~Óp¼Õo”/­—™.±:¦³ÝÄÖ‡b55Fê S›<‹jÛ,|Eà>³ð5§Ìß-£V ZšWKuV Õ*£°«Z*-—.—ZÖŽØ‚Tª¶é©r›¯®ÛtC‘‡“JHSªt°ÃáË9CçQÝ!,cîᨛ™¯1ä¹].„5+ÚÙäI[ì ì(¢aÜxT £Ì '÷§OH9GÂZç=ÚŸ"~ñ›„dëppÆ•™k¹žêWLM‚Y¢eq®)â8ï*-ÏìýH¹©·<»=¤g° yÁçÇ‘vö =òêÉiÈÚÃóU:‹)aOŸ±fú¢z`fÚƒÄoŽï\¶&•3(øö 2ó‹(ä]^™o ²›(Øyy²rý“èáe³¨5›Wä€BñnòR4M)cKž³í©ÅwRBJéÂxvHmd{y¡<‰í=}™ÓW6Œk#'–%1¡aC…ƤýÕ’_¼°7"¿t;ë;ìôû‘‡ôKèÂÜÿÐe (;ûc…²N€ç7b2ˆ)@\v»Å‚0®ïÆÒ!pÞe×õAhпI"Û€ ZÒäd<›Ò ˆ·9\¿¦X#–b̆ò¼¼JðbimÈ,‹·4†îQâ(|Ѱ9&WŒLIÌ÷3‘iãÙ[©‘úÉ®:–ÁqP©ÌyžxŸÄQ ‘ú= ™[H#~C*ñ^=Ò]”-,$±÷I”¿wŒÿ³"YI0Ö_Çê´rÊßÕ–þH¾7犡Ý+²Q\p‰ÔÎÅ›okbÊ\N–e¡‚Ö9ûów§5™‰¾0À !Ø9]“™A;£ÈUÈÄΛºSÖe"8tÚ*Ø5! =¡§äNAë|ÿæuƒkÆ"´¼’M¥©¼²ŸÖ…¥NË“šÄnó]æßÞT¹=ö2³Y ¿âŸ¾Å~H¸¤ ¿ŸÊUFk)Ùp®zç|ûtÍ*HÆltöæ´ î ='òT+×D>«­ûìi¸‚£-n7ª)Ä ¾Õb–ÑZb– çÊî3·³9CéZ±ôy¥.C öÍE9w!•›êÚu£¾fŒ eãz9êB#FCŸg9øéƒ„n/›ETmTˆ`®n(MÜ£¥&Ï¦Š°5Óûú™jâ‹2¡&;ÁÆNÓAU^îeõNÔû°dïhrÅÙG–¢”ÎY¯4îîîÞÛ'ÐM&»={Ž­<g‘Tÿx8ÕMp•“ÍÚ "*a†fe¤n®j^Meí=r³7ön´òlÿƒÄ+Jæm.àó’󴳪õª.8íÚ?k×Mµn:µý èñüT`@x›Ñ&j*Ê{ûQú!ÈÅ‚Íf™WËÁ¹l˜ÊT˜öŒ²\hŠ9„Ó§gmãøFÎÛf3dxÝÆ`(&Cø¾A†^Æ7E`övцЈOÅäüíâíþ«šb-5Ø—]q6ñÍãÒ‡Ý(±.‚a«Q´6™®vÔ¹¥kl1´}ø"Z†ÂQQfïM N·lVw°MÙKO¬68«0ö,LpÀxNd:œÌt¾<½õÃ.p*=PÚ\QýVËDƒG¿"š¸®»-~4˜°« ý’ŠRŠ=î®0ØâÍpÖ&³&/èÏîƒg4Íñ-ùõ× %MY©ö=¾Ø«öé¥oÙ󮦉ÁÞêÆ{,XÁò2&œ3Ý–>–Á|ÅdR½®ø[Â~Æ8ð¼æÓC¾mÅ׳/rÔ)CœÉwìx Cù@¦)Ì2K.Ò)ñ Kv¬³J§¿Û”Ø}ÉÍzÊ¿¦/Þ¸f—ï0xô.>,#ºÆKøXü~D¤Dø~Y•IªBIU*ab(Å^s•% §½ü5XÅ–££Ë†&ö§ÉÙ)ûI_ïu~+<Ê_01ûü‹·âO ³«·<Ö&œà¦Ú{!Ô)EÚá¬íÈ+$ŒgV_þà#çnš7”´î¬ PØçu×,g¼µ2¹ŒD&d˜_ñó:ýDü4nïéçuú©Mt²¿eLcÃò¦"ÞˤB)¡s~öú»×ß_¼yýÝ‚´úl/¡l£ÚiN’ÎÿyqvtÞ«ìT½¨B/>:y:; o:}Öú¶·ØÂ{T’·É˜2ÑìÄÖtŒ) XáM^pÏV/’ù·¬â8X6¨x¹Pü%/úú_–Pt‰èžxœ{šv:m‚Œˆ‘‚‘‰¾±¾¡¡‚¡±•‘…•ÉFƒÍœöñ\Ê ™yÉ9¥)© 6ù99zv\Ê©9™i Ža®ñÁ‘Áñþ>>¨ ‹+‹õAŠ'*ÈmŽââÖZw´ãgxœ;¶!m‚Œ¨‰‚‘‰¾©¾¡‘‚‘¡•©•‰ñFÕœªŠŽa®ñþ>>\Ê ¥y)©i p‘x¨Øä¿œ²“ÏÊsnvàâÖÐÔèí€:xœ;¶%u‚Œ¨¡‚‘‰¾¡¾¡‰‚…•©…•‰áFÿ“Ýä6·KÆIN66–/_ ïæ€txœ;¶)u‚Œ¨‚‘±¾¡‘¾¡¥‚‘‘•‰©•¡ÉFÿ“Ýä6·KÎ矬®9óqM9ÎÉÆÆ¼{mè7xœ;¶#e‚´˜‘…‚‘±¾¡‘¾…‚¡‰•©‘•ÑFÉɾòBZî>þN\Ê ™i Ža®ñ n¼P@¡4/%Ep²·”\>3/9§4%UÁ&='?ir„ ˜á(/:™SRu²›¼ÀævÉ)|<¡Ž.ñÁ¡þA!“u42ÕAV)*ÍÎÌKMÑKûzúi‚¬„Š*€'¯Ñ”2Ó5‹§æ¥d¦X´:F`jåÕ”œ|RSÕº(›­µVqL66–xT­ç€RxœÛ‘Ò˜2AFÔRÁÈÀÀXßÐHßÐ@ÁÀÜÊÈÐÊÈ`£aŽD¢¾–BbNybe±BiqªB~i‘BzN~’^†‚–>—rfš‚‡c˜k¼»¿S¼—²Bi^J*šXj^JfPi^rNiJª‚M^Rr~nAb‰>Ļͦ’Ì’TI(9éSxœÛ‘ò2y‚Œ¤¹‚‘±¾¡‘¾©‚¡©•‰¡•™BjQÆFó|‰ÍŸ%\%þU î‚xœÛ‘r=y‚Œ¨™‚‘±¾¡)XšZXn4,•ØüY‚s²…’Ìæh¥»ü<§ ªç9xœ»ž|,y‚Œœ©‚‘±¾¥¾‘±‚‘•±•±™BVqrFbinâFóœ>>þ~îñ¾Ž“4½¸BáÜÍ4Ý9ýewêKxœ;–|,i‚Œ´‰‚‘±¾¥¾¡™‚¡™•‰…•‘©BzQb^ÉF«ï“×J æ ìP6xœ}T]OÓPÎÀHV jäcº½s0º¥[;uC‘ƒ 6ÙWX™¨1KYÏXeítí$(÷&&šóŒ×Ä 3€‰^ñŒþãÆèi×5ÃzÑæ}>ÎyÎÛsÎç­£µWNç0\縛,w‹å"ŠÌ†Ã³Ümx\ä÷3oì1ÖÑÆ¶Œ æÔ}•}Ú@ ¬Ìî¤U@PöAAHD"ÈB©^SA«u²¤ª’²?‹‡.rkŠ(•)¤”ª Áœ²UªÉOÍ"d܉h!^ÌeS)Ê EDe°bÂÄðû;^¤~aì“+|žP’©%•!íö¯ðø¸:øûº‰^Me—º\zÙcÓAüœqᯎù]ê&”¤ ‘–…²ì¦¼^°°чh#`ŠÀ 0 ^m=º¶µöœÇýz„þt,Œ\Aü‚¹Œw] ®§c¡×¬ ôDkÃF¸/.'^`¨éD4ÔåË“²Ç¥ƒÄxÖiÀ˜ÿ† “EÇùlŽïí…:ÝŸ†Èß2¸b4¹‰¿»'Z?Ý9>ðümO]ë3,÷²ëkÉÌj1•5_øÃ´tˆÚ[Áh§Õ»”¡IG7þÊ":^‹ìtײØOht ªªèt)ÍîÍ”O>©”1n'×Yù’™3ò™ä“&3öšÈ‰–p§ „ð;Ús©·¡ßè@°%gÎz†Ìa!“ô¬X)Kê³ç¨“y’“^ ³Å @“d a³"Š“Ð&³º*rЏPæexœ›~Ímr>»¹p^Zfº^†—rf^rNiJª‚ÍæSìLö\Ê ™i Ža®ñþ>>ñ@¸š‚üœ6e…Ô˜²àÈ`„ÒÉü\â ©y)™i\ÊHj\}\C€ò)©i™y© ¡Á±ÔœâTEEùE Jyù K44€¼âÔœÔä ;-¿4/Ei³—4#»RZI±^†ÒæBî=\›g‹ÝbÜ.fe1‹gAYùâºPÖˆ’°QF ªO@Dí+ù(0DõZ¨S‚`•lBÿÁf ‡‚¨$aWµZ¬!^$¬]ÄDñ‰š­5TUPTðp s ñôuU¨©AŠw™üR4A.âï㣠¦áûøû¹ƒ‰Í•bFŒ S׋›pÂŒð˜ì'ª ”•pQj³È›™$m™ÀL l€Sxœ{aºÝtÃþÍùŹ'™å€jxœ{aºÌxƒ Ïdw£ÍŠ|õŒ›/òÿçªOIMËÌKUpqŒ p ò‹tu RP063åR†Èpºø;{ăÄ9 -Í `â þ¡A -@ @`d—ñõôI€€dÌàz8ƒ]a2œÆf@ o¨¨ P«v=@k8-ÌL !¾`WÅ;9»f`0ù¬”4P›@Üá€xœ[f|ÈhÃkŽÍ œ¿˜6{òÄòEƒ»â€8xœ[füßp£æ!ŽÍ œ¿˜6{ò8óKÅÞâ€Wxœ[f¼Íp£f ûduv¾É«Ù5'¿e×lıs³ç/¦Íž<μÕ6 ¥¾›˜xœì½ycÛ6Ò8ü·õ)PE­,W’ÝÚU»Žì$Þul¿¶ÓfŸ8•)‰²¹‘H•¤|l’ßgç@ðÐá³NÂìÖq €03˜¾‹mÇ] N ÄË‘âÌêïèy¾.ƒÐÔºöÐv»¶BšïXí>$[nWt|Û mñÚú`÷ˆ¬# Ûµ}ˆíŠö¥x¹óF¬B¯ã¹=±Rú3Aí;m·ÝñC++KK—~^~E¡ð¾=ôüP´G'=ñˉo¹á?wìðùÁFÝóO~ålMoxé;'§¡˜oV„xáÛ¶8ðzá¹åÛâ…7r»VèxnUl¹l×á©l‡s2‚AÇw†¡€¸– dÉ5žÚc˜ç :?rûÎÀÁNmà$bƒ;аªè:Aè;í ±4ðºNïR8!4㑨eýaÚë'Á)´× «ïüª¬ ™6¶4ê¹-ž{#ßµcÕ*8=ÚA(j®(–>þßÁ«Öï›û[»;?vø¹(~øAÌÛƒQG08­ˆ_»öÙ¢;ê÷Åʯ?,&Ü‚QøØy³½Ý|½ÑX…ð#ñÐÜÇõ êåødÀøqîù] ûN:î‰ä”>.ÿX,ý³ø¹*ÎOÎ)•ç }Ë¿DìAÄ(°Nlèô†à<ƒFàÁ4ƒA«C!@ŒˆÚ‰(kˆåFË»ïóóõÌNCHÔ<1ôçb|·Í\…žSØx³¾Ý\?Øl@û‚¦©Š‚žà´~ýïDŒÇÁhHF.B9€'Àa©ã¸Ì‹ù×ë[ÛgKk2~VħOÚ Ç7Ê Z”¿A¡ÃmÆö,Œ€Æb#þðüÂòqòò‚r ¾]{\_oþØÚ‚Óz¡¤ ‹Íß©ôgoýðUaï`¹Q.‰2Vå_)ð¤Qþgû@¸#&·ƒ+1°€@`EGЬíõ—ôçÍúËM±Ýl­olìoPp{š»ÛÛ뇔Ø<ü϶66w·^l5×aÜR³õzsýàÍþækHãσ€J°^ïîl®ïÿÃ;ë¯ ÈΛכû[M î­ïmî+0‡›Û›{¯ }l½Þ,t=HÁ1Aüx±&'ÐÿDñxÞR(JÜ«FS»Œ©ÐØ+zx`±L,«‰‡LˆñQ"Œ\×síQ¿FŽÖÅ(°EÛ l×ðü¨€l±*ÊGóÖQ¥&lâÚ®mwÑܯqÞÞÚÙÜÙÕ‘‡Ù1®ŸyNW0‹Gb=¹nžZ¾Õ m_ì[î ®o@wÇoõí"ƒFÙjwºvïäÔùï‡þÀõ†ùA8:;¿¸ü_YfÝÞ<<ÚÛ(¯?onl¾xùjë_ÿÞ~½³»÷ÿí¾ùý·ÿù?UB-Å*)ÅàȬ]çÄ ¡þ¥å•ÇOž>ûé?+ Vß ˆí.T )ÀÆåä#ë±úçÖe H¨kv |1Ó:ØÜ[ß_?ÜÝ—œã»²„ˆ+âèié©(~Eá¢TªŸ¤dQDj.`~ñk,¹s BPaFâ2ĪÅE¨ÀH r­ÕaqélãYƒñf7Êke“Þ$RW™ÜáD­g´ƒ–$­Õ¾ãÚ®×Zn”xúÄbW2c7€hâ¢,åÅb¹b®žc(ø¾0óŽcQ+Ȱ33?œ¦3#ýH’Å fø9ŒÁ9È`> Ûž÷9Ò‘NÝç6ÉD»Ç‚Hjõû÷AîqOgs½¥P!QZ8„Ó…wGG°ÂEQ0¸ ì~¯©kkœJÑuf·¶^4JðgMP(>Šuvb”Êl‰20*;•¸‰4lÔuº¯Ó‘Êmå4cäCÊ£v:á•"ð °6‰,”~ÈY°G·;lYhñBê/À­Œù}뿖د,‹Ü1€0ˆz’uenËž5ê‹MH‚Ùrî{!nÛ¹1$1)Ïû(Éo۶ج‹××Ö)´‘ôM-Á%ðä È·Z«„ªJü¿)pˉµ#ƒj©Z«ÊUÑ÷¼¡NùÄòrL&,“|>"{å]é=cew•‹„ÊrëýQ¥z´|´ÿ=V°Ã8ìZ©Z*ʨƕé°[‹Ïq"CŒ%G¶ #Çz4ú­Î€‘ÖŽ˜Éå÷ q%Ä÷{q5Ä÷kÁ÷ïþl™ìáý÷­ïOÊWn‰2¥Äšœ&Zóã÷Ãá¤:¡R”áia z8:ÔªDÑôvís)4°ú·ãÿ¼”äÎï‚8„5»}$>ÜÅ\‰b¨CÍ VEr'ǤÔv§°Dmþ2­G©~Ù„«æà÷ýÇõ•ªØvÜÑEÖ[8ò]ïÚÞ Ð`;¢ÇU€„~DpNlX{ÈÉBσ¶vZªØèÊ@ØåÜ5·×Ó"—ÿ:.ˆ‡=ÊV RÜÌ‚¦+Þµ{ Ë„-ÀTϹhÐnªïu@¦ƒD¶Á. íµÿ+7Gß `X¼Á¤°p¼ -h^¿Ø^y¿ëÿÞ”A)o4%çšT!}Fœ¾¶.œÁh %>Ä.ŽYÆ@Û`-fã‚Xf×댶j —žUX÷p¯j‡¨ÙôžéÔ[ö6Ê«ïÌî’0<¢¡«ë¢˜kqå²\›tgÀWAÌ—™°œ«ñøÔƒ-4:á%Ï hLÈhÔ)ì­7ÿ½þr“”ô@¿"+`Y'®ïOH•¶œFYY £¤ƒÃý­—±r"ëù›—û›{»ûÀ`“¦E²i¼°:¡GKUNÀ²‹„­¡¤ï@ÂÐDtÜNÔµ5iÅ£Â#)~ ®ãÕO…¨žxµþ;4ñ?-4r´^P¢2^‹áåÐ(3*a{ñ2‡ë‡é"¸T%7š­W›ë¨.5³‡]@ eŽEB»RÙGB×y¸±½õœj̆!kL6•F€Úß™AOy^o¾ÞÝÿOô¦ m֋щª/‰LÊž‰Ê­Ã ì;nh ?…(”F”™„ˆ7;[P2^ ìL¡`Ô, ®0ƒh†¶`¼¬Škm„¹bDbˆÄªñ¥ Rsž¤xIÙ„þñ`! €õXn€{ç‘Q HÈ‘ù #e1صB‹’.$‡<µ`kŠóѦÌH.£/§Íú B½~×ørÜž‡¿(kÃO{äô»-6ò"u—ÁÐòÈÍR¼•Ò®pLÛ!u†#:´{ ¾ÇÀ¹ÌC™…£¹¾³»³Õ\ßn½Ú=8[;Íí7›â`ó°…]4›¢Id]loð/@f¶ ÃæÛÍÍ·‡b÷ù¿ðgkÖòövko÷åþúký}ÐÜßÚ‹’7Ö×ÅöNë@ì¯ï@Ÿ$8ù±þÇ¿Åú¾Xs¸‹\„¼ÎH¸ÙÄÑFL@вC*GóŽj4ÊDð4´™[Gç;×·ˆ%{$‚ç„@ðûÆþ:ÚéRRcûJƒ$[Ò•à¤Â™à.c$Ü*mP¡`×®ÈÝ%[=] ¼ÄY€ËZ éSÚ·ŒéÜ€¡Ú,¸^‹·Â ‚¬3âÆÌLjÆgÅ£^*.¾2AõþW )nØ€_¬-ðqm4 €¶@Ä…f ì…ð¢"õ°Hú}?p‡l#ë1NÈ XMÞ·{xšDKX&6mƒÑŠ @ÖÔË8s‘7{žW,ð>ÓÂØè ˆÐi‹0ÖÛljÆ- €ÀdPL‘6LÀ*G´éæ1ÿACµòg@ÍÖIú¨½¶Ê§hê_É"0Aïï¸\±„I5®ŠX-Ó­Ò œ`=©9)‹µÅÖâ‰ÄsÛ%-œ‘»ázE5 œ*GA}\ad´Â4ÞçÃ5 <‰ºÐÀC'Ï”ÍV1E ¯,–ËGò_¹¼xR<–§VøÜŠqiê<‹¶âŽ娦r4@è©Éí&M cª¾“éü­W¿ŽŠ}™F8 ÆÊ«€ü“.³ML¾ŒVI‚d Ö É–§b Ú¥#™âŸ±/ó#)JÒ!EͦÉã 0rÌýòOE.¯]©*\#CE­†3ÌÌK¿Zð¥&BÄ­ Á0òN5’£cßsO$ŠéÛ_ÐŒp”¡S!˜ÜâÙ&ÄÀ€…£  YƒS4bªþ¡Ž€ ùŸ?†ªB¶"äøÄƒ:¤-*š1f†¢KûŒ}™zæðwÔ!ˆ÷ǨˆûcìBMIF$¾ãŸÆdæ3ÙGA…'£Â,<±‰Ë$ÃQP‡T Ùm.ªúÌû«lìËü0ÂQ0j<N·\êÇ02¨CñFÊlÜF¹·\0˜FX5EfÊl‰RòÉ2™Ÿ±/óC,GAJõCU û¢vï ‰&$#ßñOcŽqŒ™l„ Œ¨j2°ÓfRщ1Ɉ¨):.þû2?%£ ©€üM 7ÖL‰á˜žb!ÝŒ¸t”‰_›Ì–øŽ¦ ˜ÉF8 ê´X³Óã&õÉX(Ô!¿üÇ¢,Ëè“z•ªùa„£ ©€ê€,Ÿn¹Ûc^ýNâÐÞ(¬õ†î A×°¼š<D2¿Ì#¬Gˆ>u.7(R·2äÑŠWUhlDâÛ¬’£b_懎‚:¤Ûé€&Æ XfrL2B73Š‹ƾÌ#¢C* ù'>%ãå™×.¤;•—Ž2–e›Ì–øŽƾ’àŒÄ(¨C* ÖG¼ùéebì’ARùË?qlÆ„þ˜,Ÿþ0ÂQP‡T@u`¬ .- ñfOŽJÅhÌ‘‰ïøg²×¦D÷Þl„î×´Hc˜ÍøtÖTL2"Â\ÌD3ƒl¯‰•ŠI5"ßñÏl Êúâ”v¤…Œ–eEf`ãÓYS1Ɉ$eã1¨­[5>GcK$%[K›2©Ø˜øñE2cÇeψËÎšŠ‰gèD–øgö¼HÔãó#ŽÚÄ ¦'b~BáÉEÇœTlL¡ñE2 ŒËž‘9™#SÙ’ÉU0á¦WÃ_Xþ¯‘c³0©€üåÕ*¶S\2¨C*À’–cC R:uHäo|1ÃR3&e}™FØ@|ÐŽ2)ÔcM‰Ó TlJTT“›ŒH|Ç?SÌ#uÈ,*·^â5n^ÈègV¤‰U#>5“ŒÈ€Ïû2?ŒpˆNЃïOÆX;j\Œ@{˜"qæDýŠu}›Q‹¯µÉ ©€üM´Á7´ ò¬Æ‚Ïü0ÂQP‡tKý1êãX•óû2?¢ñ ï(¨C* =ꓽÎ4,$Z”ŒH|Ç?Í™B1f²Ž‚:¤qÕœÆð¢É ©€üåŸxÿcçÄ%[“þ0ÂQP‡T@õÁ„ŸÑ‹3Ì-QÁt8 êƒVg‡ Æ W©Œ‰pÔ! ü×j«Z« (©õ¹[Œ0Èçt'˜æ¨Àædí·j˜“0 Ü®eFÃ\„e˜“1×.GZ £¥ÙV9¥;Šf}]q2`™»0–a“AL0–§†Ã0•×.&ß. µÞ…I.”9…ÉÉ¸ÏØ—ù¡iùEd¢ ©@œ¼FÇ%qj–”r|Dâ;þi°— ÓþsÁ Ž‚Š"'-Óôø¢¦]Êrã¾ãŸFc8Æü0ÂQP‡T ‰¸¨b…¹èDèB²q©˜dD _Ïû2?ŒpŒ5!M ?c–ØÈõíŽwâ:ÿãD%V :X8ô/ÅÑqiI°Y¶,oSø6Æü{:›mrc©²Ý3ô¶4ŽRi~Õ¸]ÅÕju *V!#PU2#…º1hUTcœi¨®³++•G …¢a/¶Þ¾Þ\5. É»EtiIÝ×}\_’˜Œaâõý­—«âÒ)L éø`U°½ªe8‘9ìÌ5ê³ Ê˜†¨A!Û?^1gtT;^…Ê8áy>CJÚ¸/²IL2¦8±uvÌ2ùŒ­.Ý¨Õ Öy"¾ÔÎÄ|iÌ$'†x‘[žòųàý;ñ¸.9" ðÔæ[­¦«å$®£œÄ¥ï£ðYdšŒ”­ß(E=‚RØ-da.)a¡žÒ{¤g¿­JŸ<Ÿ´‡ŸrYT —<ãÓh`ËôðË'-6¿V“mYU˜ŠœÈÑ…òîv5<Ýä6ΑôØq£k9·8,n(é%ûš5´½aß&×Qì /BÐ…¤i¾÷Á†ñ°aÐléq WxÀŒäý‰ṠùõBòz’xÑ}‡‚¦“‡ž$|ó¦k]Ö |¬ºd”*E„¤ ÷°%“„&ƒ5Ü(E€ÈSLäHÉÈcTŸt¶”¼î:°.Ûö$z¾Õ#’~n¹!#ï!~Ôat$­Uyž)>_%F˜PØâ*WÉŽÛº (ÓüÀfÅÓÑÙªÍ÷SÔmU5'"ï É.²3 3: Rx.'ЭôN+ô¼¾2T""m¢})Å3ɵBAºðaÅ0"%}($/,Gžh”¥k Ý‘ßA76}tÅ…×ÿaÓ®óÜb÷ä£çà…]Í@ÐÇ+¯büƒ£ÔEV»+» «Ãgÿ9Ñê“ÓWÐí^vêRå±p€¯ûÐZ|e5>Çó]é½U’¾#gކ3Fdá‹ï*‹‹ Ú™â$—Ž˜áêþ¯æî1ííÑh(úqŒš:Ñë£ôùˆǸu4rM3“_ȘÊRJ!æ'Írb,b–‘ëü5â›Æb0êõ‚ô:Á¾#2æëá¹øÈc@¹,®æ¾—H æUVÈÍ^„tðWŸiû¡½pܸv¹góÿŸïtU!íµæ“g›ôļÛVÕ>‹¶a 8{Ö::Žª“έ°_èLez“å,Q›ÕS%‹~2`ú“LPúþhù{˜£¼±h¤¹…Ncò5ù8ËÊINËãœøì 32gCÅ\—£ˆX|˜ÁÊ£Jg—Κ ó˜²hFÅZË+!Æd‹¨êYÁfeó5›X³kÄËRͦ6+{”+Aqt%[¡x-œ®ÊÑ— rBñx–L“WÃeyù«_åÅå§~2ˆD¦4j¡¼˜®º!?ãxPyT?ä·ÙÑ)`’Ù2 ÉôB² F¡8ÈŒ"F¢QÊ|I€%MºŸ0°ò-É1V£ÿ“/k¼ŸP4üMíÐ- JÒH°>ú!n¡Üª¨;¤ìéçƒ-} è>¾¤€—OqWÍÞôÈ?‹l¹ó¤x/bY°ÇJœO2¦Jú6‚…~ÿ¢”ÆQéÕîëÍ2Pè<†\Âñ“%^¿Jê “êüèD5ÑY/gâD‡©ŒÿÈM}äô.ïä` ºxlƒ¬‚LÔ䤊5U>ÐŒ«/ yl.»¬,ÁÅÕ]ìXý°Òº5ö#6nÓUòwª5¨°”ý‰ŽˆD #x8n}»6€5ŽA)"aÄ-1z‚‡m+³5 x¨ÄP잉l•nR›€Ui4§Ç×k“ªƒ «È:h"š §à#Mé˜L.,U£ÌËã'èeÙDÁù¶wk'ŽxgºQuó½µXËéþœr<Ç3:ª¿çqIy½%Þe¼k“]RÞ§ˆè‘ŠØ“3’ qŠvÆÎ¥'h(ÍbVßÊ`¿r Ú]=à ^ œ<0}ðæE»[2aFh‰£¼Êí“ †¸V1ž;^á€×3y)“ä‚´ÄÏßlmoPÛ"®ÔS.®ä«KœçÝ ¾ë%-ßG%—Vü4œ5¥?EY”ô²²$ÚbszG0õ`É÷cbæ©H¢Ö‚´¶è4}8†EœO"’*Ra“ÔØbZ¼]-²AAž‚IÌœ–Ü{°9pÑÑU¶àŠhm6£ÁnFêfé3°k¯d†^ß:ÁQW>Àð:rUIUB±¨mÿ‚Ç`MüŠš.Ô‰“å'Zùh%-ˆØ?X™È“º–ß54°6JyÃF-6ü‘æ½ïÐx‰lý¢Î…$[‘¨Vù<$g“cÚ`‚âvØ3Û€{ b“AÌ÷”'åJp€ž1!£LP2Æ®Ë`‰+–VJž1¥ÊkTwݪêèwïAš˜ÍqÇ6ÊRŽ×±ÜŠ$ksöÄõôXXaR÷é†Ü磷ºôd`™¬ _-BQaÌF‡Ïkàc(@é4©t5¶AæîÄÜÎD]T›ÂÉÄ—”Q‘}ÕWoå 䛽€,».¶ðžsyú«Ôèö½“¢éמFzTj¸zÕŸô`†R@£øßÉçžÔÎ,Àçæúv6¯¤‰Óý®’E„Þ¼„=À Ép=-¨ÎÄw  W!A&Þ éP +‘©sèxÞéq“c‰)CˆNùÝ3ulGî4ù &, H*¡E¦ôO­_þXPêåƒ7è<ö0´|(z¤.œæõäÃÑôX´~2¡!®ö~‚LPAõ‘³û&¼DÒløã á C°3Ú§’Æ40=a4(Üÿ£ÌnĪzð±(ÏÓ~Fº]HðBâ {I›šx„_ÔH?sOô**/þmÛø–NˆÆ•]Å$šx¶öØÎÍ|1c æHx"¢ñìKmßDÞ2&AH3¨r]®ŸlÂ㬤µ;øÒ=p2ÄooD.;áûöuôlþ×È ùu'Ë? ÌÓ“|Éd`‡V­£^[¦r¯é Á9¾¬+³úÊBœ®èކ}°l×ô9côâ.ªL¡©…57ÒQKqËØìâ0 ÂÖ@{˵/ôóò¬˜ÂÆáTZ+<‘d<@!y‰Å(½»ðO”Â7à ]D¢;g™Þ¢@ÆW+uzüº.®é´A¤°PÅ…O Å9üûîèÝÑû£ÿwôè¨tôçÑG GóG•£GŸŽŽ>­ýrôëÑoGÅ£òûqbjµ¦\ÓIÝöÔ¸•#A‘Ë‘1ÎÅR:R”e¥|' ¯KN‹ ËYPíJ©É¤.ôGjë17frÁ®ë%ߘֶ`ÿ⡽_WÂ>N¹äÌš£;a4j)_ØøgŒsh¾ñiŒ×büÐîRy’j§lQÑäT\HÏ1ŠÒ·Ã£¢©ËØ*2ãj._Öãu •RrX‹ø/kЊ0sõ¸ÁñÅ5§ç…8¦&·ã‰!Ã¥Æû®rÿ”1‡²¦P‰‰MjÁ4lúNW?Éh[¤l¥×ÍêQH©`%ʈø‰^š^/Ë@˜ñˆn:5ãMÝŒõ¥ŸØM§áØ Õ/O¬~y–ê—'T¿LÏy>Ðá|<À憸A%_uZ¨y±Ë'Ú¦NŒ±3#~ÕPZå«d”¡«4q“ïÿ) Ìtè 1¢T^Ì£pQÂsÉa¬D§“çŒçªâ¦²É؉c†Šgb%‘˜ÖqVÌ“ƒøêý$œÌÍ„Ž4BÌÁq˜aõ]×îõÓ™Q";•³Ù‡ Iÿ,-v‹ñMÆã*sââÍL`bKãn]C@ŠÉY…QªÎKŠÃ’A 1ï;…PÖÓX¨ÓÕˆÑ>ëø°a º ò9ÛÖ3#+ä1V-MÕÆí/£ê’çˆl4o…Äòc±üt ³…ïÔscæý™²Ñy–]¢âK…‚9ˆÂ:óœn vâªC;OB|P~€·ñˆÑ‹yxtÒ¾èØxp,>êøÛúÖ[ѲÆ@Ð9aÂAÈ’½—DG>‰7;¡¡“Åsïøx¶¥˜GÝxôY‡ ö|> ¹?®bží&‚Q.Ò%<â²ñÇ‹%ó³é f‡£ÞUŒ@ɘkAS¯2FÐd̵ É7#`q-Xу8W45.Ûò®.9q#õ{`÷ñÐ"^ÌîÓuˆP ” tÊaíª-ê<Ô=:ÇŠú '¤7Úû|{·'Ï›¡o”ž:ò w™ìÑ˱óêÕÜ­ÃÍbÖÅe> È›ñö¿A!¢°‘‡‹é¬¨´BÕ©“*Å;f<’moŠƒ²RG–3 ¦3eTÀý4U å‹TÈŒ*%mÑxñ••ù‹ãïH–¶·v6wvWaaËÝ6NZâ@ˆœÆéîL…ž­±$#ÝNü¹øI,–“-”´Zˆz2…±pz=Œ²2ÏZÑé>ic£û"m+8eé¾g9}ºnÎפ#ê<¾ꊘԫ— +ê)8¢¬€g­ø;w½1Í™Žn^(fá hÎ̬ÐËÚãÙ2íi,Ë^7³šîÄ2ÿÕñRi*¿ÜSG·~Çu–T{3÷vrnîî¯F¬ô3¦yâmòͽYh<_jIÏ3ÑÖ†Î[~Pⓤ‰66¬/¥J@fà-r\Û)ÁãØÞGjYÔæç»Å÷Ø``Õþ·^û¿ÖRígô=D—×ê xG{X>–kX ^¿Kéô6¢¼ÓFÚ¨õ3¦y¯Fy'eD (•³¡R¿‹ ÀQþ1™#wÜäj)j’šƒ­¶Mã&‰¼‚Ì÷3ð‘L²¯’kOÆÊö—Õêw)ý‘›5“näŠ\]¬¼JL‡Uµa«â¸VÿÈ)!ê=šdÆ>T’\ƒ‹F˜R®1¢é¡ÈÝÜì=?µ¢g}/Ø$Û½:[ïg„Û<ÚÙ lŸ×ýª±Þ¦[1-ÿ”Ê:#ßç“æTÚDdfe“óSeYêu¯‘{än{hÈ ‘ ‹·4&{++Ãé E­Ù*­Â¹kˆÚ*VÝýé–yÌ€c¶4Ó|RŒ/"©(~;ãºrt^„fY< ƒº 7Aò IÛ è"®Õ¡´:—õˆÙΤϰÊDœ—ä"y¼(1ôMY—¼~”â4v÷‡¨îõ½#/¶Ñù¹ ‹óšÐ˜F}œÖV¼u"/ây"Úœ—Q+½H/ak” `>û!Ý,˜ÐêÕ4v¢/4ä¡a£C’Åp{¼"¡¯Â—ÙôJ'•0­)j!]D¹ô½^bxØ)*Š7Ld9OçâL6æKƒR.Ò0ïÏ4du|ªuâŽRtˆÇ&ü‹ÄH=µ[ò:‰9ÝUœP‡¨Ô^è´¨ý!Å_!VDÝH13Ƶ1¨þYM”¬®•²så‹åHc#¼ËWÒš çÄõp㉵DsÔŃ›sTª&ŠNlÏ·Ï ¡]¤T—ê/6) º’m4èÃvǦ3ÏÇÙMÓ3õåª2ÒÀäº1½uÔ ±cˆ¬œ¡¶,¾¡ô~ñ‡OÖ‚Å5~ð¾´¸¨cú*•ŸcÞ¿`ê]‹TNX×1ê¡b•Óº±F-¾š»£Nú+?Bõº„ÿ'7Æ=u¸sQ^­«¦ÊÔ¨È<ökáÉMÊÞ NyÊÊlX¬¬™lÃöåC!㬑¿~;ÕÖg­68EWc7ª’AèKÜÉj V»Û"‹ f4þ’ ôªÛØÜëÆ~ºÅ*f ü‰£K—€×èPµB¯¤u”¡h”FíIù!¹;±3!3=>,]ŽDYå1u〺:nDªÜs›Ø6òǨÊz¡k!duŸ˜ŽTy3üé ÃÄN¿ì2Ó¤0FG!½XÈ«®AtÃÖhHi³ùj·µ#Šãs£ÎÖ$u…qyî#sN*"­øqa:^Ç¥¯×ÿ½YÃýÙg\8*ÍcTeâœ^<µ(Q½Ú —±BktBZ=µ¢¯Ÿ_VWë‹?Öª­VkØÂk×°®Ù¥>-·£â‘Zߨm‚Âêu‚Œº6ZóGrѯ³êɬwS´®šœ»Z˜û'+ËzñÀˆ‡eµ¿{D•ØÀï ìÐÐ+mºEŒ~·ü~UlâN”õ'>ÜMÀ“z¨W$ÇPoî©’øu#:(F-;NùQ6Ð#K®Œ%ŠfÉΞkÕ9£¡Ò¡mlXy&”KI˜å8Ðã#é¿61°c‰ fÍ"*2þ8ØŸt:E²';¬ %¦kvU‚JßzŒâ¤áåÁš¥•iÔIkIfŸHÍŒÓÅšÚÒßê $“ž›Í˜ò¨–¥‰èü ¹B‹ù‹¡áf¨÷ÿIê¥èù œn°Ì·"—i˜`»t0!RL±›se¨kXT#Q2àã:œ~²f[ú¬œž=¼¾+&V¦e–G¬z>ÁÇS öR¬1…±c:E~j6³å¦f|Ê܈¬!Ý2üb¯l}|†ˆ\t4õ˜b‚è¨ÛXÆ‹“$ÅM•·f€‘Å,>>¥|Œ˜÷g1>z%gñ¶ ¦Ä»?Åû…ÅE>®8ËŠ2+É\Cf†»[5†.è…z©“qT囚„K¥ŠàÖ¾óÁî_Âç1€qä7Œ0].ñÚ¤CA]Šû=ÔËU˜>xÉüÄØOÝL²@Ì[õ…ŠàÑM|ß B€Òƒç‡t£æ9Þ£ñéµZz(ÎÁ—Çœÿ¡ôéD÷°«ò»COÕtå+À,ã$ÞÕ/LÀœôÈk"»ìèÆñ±ë•EŸ o¾ÝÜ|{ÄHz· ¯õàŒ©«‡’i70­3ôúoø³w~~¶-‹ººz§ÐX-\Y¸Hy©j¢ÂQOEÁçB”¾Àµ±¸ùO‘ ‹‰Ç¨ôõrÓ§É‚¦\Ÿ |Ññz= …Ý€~»ôwØmsúÁ^S Ý–?'ôëñßöE¥0'oV§H#$É;SŽÔб÷Æ£*öÎj¿§.Sv­¤gƒäŠVU´G¡¤! ôñ h< %;¶n³`Ñ+PIê6;à®Â×ýõàÛCßDߪ(¿û³þoØ×ñ 6,eübëíëÍU±…’:ö©A ¡ ‘›m§ª‚*–Ö¢û&u]¬ƒ—Õ{k4gнS9 O¾°–6Ñ]ìlA—ÞIŒÎÙåA~½=>·éC"îw(ë°i¡0UÜ6Ÿÿã›H’/¢ÞPÔ¾Í*böO?)9û§Ÿ’Òi•b£0}w•òÝcn®´«Ó-O$´«—9‚Øk²ÑEC|£‡4¸*l ž|K—‡õÂL»ŠW6± >W©Òg¾<€0 œÃ>öC0‘O*˜â¿zÉÒ3‡±&úâ¯j·0ùNv—S¿ò¸¾Tx$q©rØß‘qIÓ‚îyÕ:¨:ÑÒ è¾ºiF!ŽzBÿ²Q®/ª¡Ä§´g‘ X¦ñwÉ÷?jDÑh8i›€‰¾èÖ֮ȓp”eŒýŒ_åN«ž']ãvË?³9°å“±ÉÁoHãƒÓxG¦\¿!Uù[Ú2m—¯Š¬ ºáÅy3ÃÜ7˜—"æÆrGbÿ‘Ø~ОåAÓ­s~l2Af¢\ÙES´k ýO­ž,>‘éÙÔ‹”8™Ø#†Üe)4OÝ"e–ÊÒOϺ§»—¹—= L¤¶žò›·Jªf¿3:ªLcyŒ|Ø.|ÍŸÛý>L­v`ûgØÿ ú†µÂN LÔæãödDh^žœ;03ûˆjÀ-3¹h÷?ÈgF@4wêvýˆ OÜiÄ WªüÈ‹ô2 À Çþ œÚEÄv z¿í”Û܇±M¦ .®.‡‹,™£b¯˜ õÎÊ}Ô£¦™+#–Ëéós88»o‡ÛÜmݳøZŠ_Ö»ªx«óNºÆåx–¬OëÛxž¯ ±›Ó¯Fa&¢¿]ö>;]4‹M7Üaî‹ß:ÿ‚5™‰õŒ`û¿³29Ã'é–ï$Hîñ¼Aâ[fÚBìé1å¢ôŽHm%î³OÏÁLÊ µÎWÌËê¡I4ó>5cI ¹“4ð®ÈîmÔyur[/™˜¦Š³:Ràò“hp”ãYa÷ù¿ ZË)Hkå4*qú¥ìQ ÞBÁðÑ®ÿ*âö8Ó©püJòWO9=’E«ˆj¶ZjeC?Ø}3§7;Õ.éá¿eЉ­þršv“Âڙ(ÿ)~4 dfQtº–h1ÃSWùdSnÎÐËœ¡å‰_vi=iõúÖI±077§_¢úN=3¢ZôЕBÙ ²¦ÆCïJ쀓é·Àôbq{ .YK¦ó œ“¨L“ú,:Ö(%ê˜ÝµN¼Ü$ÎÎù¬ð²Ùlëåf:(§»„±é˜·ÅN&¥ *LO°à /•È¿ùY¬Áú™‘Ñ { >bˆÚljœx‘Oáu:­“¯žƒäœ!ç ß(g0–ùr³–›q†YI¾®oµe2)`œˆ'IŸ¢Þqj^ˆ|è&Á‹”ÅLÖóÏmÆ5xࢶ»0È`æ*³BÌ7Å¢?Ä LÄò•ê§Xß9ØÍ©Z¥ egçFAØíÜŽ[C"]TÃÉ'ð×zä¸þ¨k‹_ É–R?ý5çx‰¨Ë`Eéh¤ U½ÆcMòuÜè]OlY@Ñ ôð=k:µß<Oë?•øüìT=­ BÔ E{„Œø«¸@ZSx±µ½)Äü‚ß ¼¡íVļ‘sÏYÑ6?¡de­€_NŸðÅ‚-æ‡ Ÿxฅ¡|}krÖè9QÉ¿‡ïœ÷ÈÂc0zbžÐ’“ŠúõU5Ъ€™X!h`5gV«ï’Îä;ñŸ?«+ÀL<¡6B¾" )¶"³ãXΟU #Àö!îw^ˆ'õ%ÑDßõ‰NÍ}üü,*üaT¬>žò©Ñ2ikßìh5¤ëˆ„ÞÈíЪ‚z4àò­Q¯ÇdžPS>ºxõª,Ní ¡Ÿ‰Ç9†öœžî§øezv†h<5‰\\ŒðPu8—Úú—U2ÙV—§½QÝ¿!CXV Êe:(gÎ+Çek¨[¸¡Ó^v—±÷V·ËGÑNè"õN=!`àuñ¸PsäãC$Pôii©ü]jL[—d Ä·ñÌ·o““è åûÖ%´õ¶~_ðXÆjñá@‹‹â[¶¶Ýh,ɶ°ÃSèÂÂòüŸà#su‚—ÎK/è=A ÿcˆ¢ÏWþ&–Ū¨-ÃL¥¬Dìæi2WÕ+´xu,‹˜8¿Ð«p6«²ö9J^1“eqÎÑCËññ¸g@Eõl¯ ^œó •ék’þªåI ðO:k >ÎÖRµœë°òðUeÈPK<=‚áwKïJƒ±äå(3V*Ç× pŠ‚¤„®°DÍrgM¾â™ñ7z¤NFW`pQà©EÔøªUFu\øŒ„´sðË• ¯Öþê[îIÿ¬ßÀð•‡~è;´º`é..ÏшC«½Ú›·by©¾²Ä–)Xþ\mÝÖi^¿]! ɵ֫½7o[»oö››óà÷ý'XíÛ¦µ6ßnîàK­–2ò+õ¢XñÆÉ5Šbv"3€ù8¥ºÆ#Ù{÷IÆÈ7@ùèÙ‘(§~¯_Ýþnhæ­[¢² Ä™ùå1¹†ù†?MuQJwT>MuñéÂõX°šv•ÍEv×Îö÷žHÆf¹…Y@g¶nú¦Må{Æ[¾Í ÚBƽ‚|èsh{xØqDΚ?þ¶¢Íø|Aøø«?ç¬Ç8›ÊUôKs±P×îô-zÃ% —­Èa-#|üX»iPu$ét`GxMâ èôÞ$5Û u:][ãð7:8á„ѵ€rÝ_èÚøÀ3Ve<²UŸ¶Û‰l,aà…´…%Wšå<ãkçê))c½áuV$Bå²üE‘DÖb³(è? B««åï €ò½s’פ‘W§¯Íaö‚YµNÏ«³¤â ò0ÇCÓ”âc׋ô6ê:âÛîÕ“•Ê„FNÉrJöÕR²Õ;oõÙÚ¨ø¿ò’“’œ”ä¤D“’¿}·œ¦"Ûç…”cI'¼Ä”aÇ“Øð”%á`º -N aþee,ó&©,̱Œ¸cP8´¾â‡Z òÊ¿%Nƃæ¤GjÁ¾8ce"`‡{Êyu:ãÃ+O»'4JŒ“W0¬Êãô÷SÕ\*è{çhF #Œ$vÝcI ž&¿¬–x,9í‘þfEv'ôüË*0¢ŽÅUXìÔJ­>ÂI+¯óÁ:•]>á XNÃC—G\^:¡ ÛéNOûÏFyÈ·û0?Ϥ»h5Ñ{ñ…Ù®ók”i2É}È›ÀÖd_õ›¤¥'€XS¤hûV‡‰zéã™å×`çôYúýBD~ /«>;þ‚¨#à$åƒI£v:áˆ×^Šw¶ööw_&擈ø£Œú\.d”=hîoíÆŠrÔÔ’ë‡ë±ra–µxöäIyê%{uмïâfuv·'Fþ”±½ÓbnÝw[!V`<¹¡§Â·öÔåŒ>;«röËfd;SyžÅ_º½Gž|Ëí;í[yè‰A=ÿ¾ûë;°g»Uï¾ 2Ó·/'5tžÜ¯o¶__§1óp‚=ÿöœüÊF”Rí*Lî)D|‰Òîåa¨¬‰*ÜËÆL£×' ‹˜}¿_ßhB ë‰ü9}˜ä÷[áì~ˆ‚È^DññB$kæj1æ=<ƒ¼˜ Y^įHjâMw–ÉÌq›ÅÍþéNIð±Ù§FL´{oëüƒàÿÀߨ+ëüûV‰ÀˤEßàÔœòdSÆuŸ `•¥x ãGs M ±Í"2ánÞ à‰ç&.^˿βµü³`÷ow½îg/×ý¥å‹uÌbüÀLºŸUº_¤û…±#8m‰îY¡û·»@ ëow›»;/¥*X+–¿ƒ¸8éj5rÍ*ýº?s±W›ë›û² L*Ê÷Z°pa&?н¡åvŸ5Öú£Ð™nSJ™¾TAjlaΖ*|W:±Q™– „d.P°Èml*.>Àût!PË¥»M+xãÊö]«Ýî£Û³dQV—èÔýÐä‘…BtÄSц:þàóìtuKiGñFׇƒ´‡¾‘~ÉSLT%ÞD¤öà‚lœ~ˆjfvV#OWEOFh3ÚÉþ¿ƒ_P°†Cr›í¤Šõ¬™¯$/ŽÅ’®~ *ã(Á­¹ðÌOW=ð#IÓNWEsâ¡÷$!v¤(æºkH×v%· ò!¥¬C=)bÉt:›~Ïìî!ÕÞI7ˆ23GLj\®„[…ˆÈKF]–ǵūõß7±o·¶Å²¢[P4Æ$;bÁÀúŠO\M‘>N½sdl(¸°«ü!PSßÃ{ÙÞdÇyKf¸ØßuÑTùF·ƒ'Í|ÈÁŠŒœõ¸$ yHÊæ˜®Œ‰Ü‚ìí5Ò<š9ÆÃÓ|èöёB—Oaèçoè€ ÏËûía]<na®ÒÍ;m}otróû^Ñ¿J0Ѓ|ž™óÂ(ÔEñàÒ ­ ‹ØèSÛ'ù°#¥8|œÇ Èÿð^-°2ÒùH$ßÚш¹§“‘¤L‰´stÖC˜¸PMŸõlýp˜"pÙí32~Ñrat”'ýŠu\òKlô‡ÃD2©O¯ñÌlNIœæ¹£HÁtpdÄ#ÝÈ2­qrDlïâz ®Äçt‚—Ñ¡X˜ â“qW¹ƒ+‡ Ä¿«L§\`¹6­Ùɰ6~²E§p=·¦±2É ˆÔÖuí»ÇÍpƇºòõjî´Œc¹¸ªó¥û­/Ýh‘£Šq‚nÙf/´»Yå{Èe¾9zýÎrV¥‹ˆY×9i,ñE?–ÊðÙ=P® ˜ð­½ýͽýÝfkëÅæöÁ&0z\†… X&Ð|p†C|Ño–úH‘k68qWG=W®@ÆÒ ®ò$}Æ“3©éBÓ·l$GgmÏd³ªs2(s2çJ¹@™ ”¹@™/Ý\ |P¥¦‹3<‡kjfq½ÄwT””è”^2uºñ£¸·]Ñ,ÏÙ|ÍÊû™ØHܦž \3žæ¡¼·p ‡r[ⓘgú»)ÊóÖ§v¥\I^f#ÒCFíd3eY¶LyxFúá3ÝkJB˜êúNçzV›/a•7R©³{ÞŽy>:ve¦$ç¾ÏÝYðˆMMsÔ»Íx\¯ï±?îüeŠüÄCîO&E7îô°ƒYÏÍ^§Hž!0 'N(ïOêBr—AŠåNt`ªXMèKßäH€ú,"pÆÖ‹gÑØV‘'–ø}+[Eè}çÔwÝÜò-O)mlïþ±¹?ß©ˆù²U¿4†ø~à«ü¿²‘ýp÷ÍÞžÌnýM”×ËâG¨>jUÄ*B¨h}kº¾#ִΩ×)ë,ôVÀ|ù¿YÙüT¶`L/féuà`éÉ’Ñ~@Rìz»»à[ óó6ÕòÝ|¯R¡Ú¿“1QIˆsú¹>y3ïÀüZZŽøE¬<}d¯,8rP ä@o6f­Têð£R˜C‰Å ‡œŠ/'ÈNq:ÍAF;ÏŽ ÙKáRe¬í%ø“÷ˆÞHà©/¦;ðÅH:c”ÊJœÁÒ Ç=Фê¸Eqh^$Z+*SE$` uú9xn|µÛô“¡¢˜Iˆâmó¬;g£e“¶Î‰l©Óžã¸L!ã˜çQâœ'›ø*ÆqΓÜùÍæT!hz´ßlâÏuÉú¶­ŒU“¯K]ÜÌ›w„ñUoÞÇ?•Åè3cUL‚º»•Oç„|‘øl´uÏ·òùVþßÊã¹­<Õs?M5ÎÀT¶qüӯ̷^o¶þØÂ«¤ÿ9háW‚ ñ™wò ú´þ¸*4±#DLR>zË «ê;·ðýOž¾‘Š_ xÁу‚ÑFY+5`GéU ægiݨß.D[-ìÏ×Oñ àj|E56Ž­1d•tƒŠ ±ã8…ÀÁOg½~¬ÊÎp™³fqKÞ3ÓPJKf³‰cI–Yü:x&擜0hI¿ƒ9Fèú5gp9ƒûêœRš™Ô ]ÎÝ˪ÊõŠwÊæŽ£(—>–c•—?—3™Þ,…"8-÷•/ÞIfA÷ï2™Dg8,’‰ˆÎ*B÷"æRa.~›R¡žîúÝÝé=’ÝLñ1]둨o¬Ú##yçŽÓÒ!€Qè*„”‹tìYé¨Êÿщ3?ÁþÍž`–“lÝ‘“¬šf£'W¢ô4Òad{Ư7ÿ&Äx•Ïj£‰‘®£qÞßÔ;,)º³š¸:f ùõÀìªë­ ¶¡;ÓþÇúþÎÖÎK³[«€¼Ž=”ïû˜—婢„ÿò5™bPÿ.Ë’{Ûðå ö«õ‡@Øt‘lЉ …<²3·~fhª­Ù³^¾×! ŽÕÂuFJ²Ñ‘£K<ÒÕÖ­é^¡KÓÀ\ ïä<‰®iÑméÖ*óí¿FNà„Š}¿ÍÜÔ+¼V»›]_®K¯…¢ëuÈ+¿±7kS§ƒ¹6VX%øNßQqO>ÐÖä¡{n‹¦:`˜WAìÕÀÞÚZ4Wùí¬Ç±¯Õf‡o*÷FáÈ·«±OoЈAƒ:;v7!ÑMnúu«Ì˳Q(‡5íàùîÛ£G¢6ùŸxôsíÛCÏ—¼'ô@²ÜðŸ;vøü`£îù'2× °dÅØ” ªä‰ÔEdÒ©îã¿Eꇢ€ôbÑ× âQrL†~û(Cø[UB¦¸ö4×™Ú¾k—›S¿4sªôc@Ómúè úuëUâ`’Tƒk·¹6×·}«ú¶Ü û•YaSìlÐ} µøƒîò³%4ÒZ˹Q-7ªåFµœÉçLþÛ`òiÝnnTËj¹Q-7ªåFµÜ¨–Õr£ZnTËj¹Q-7ªåFµÜ¨vŠÈᇓÖ(°[n‚¶ݧÄ.Çè's}d®Ìõ‘¹>2×GæúÈ\™ë#s}d®Ìõ‘¹>2×GæúÈ\™ë#s}d®Ìõ‘¹>òJúÈÂÜ Ãÿzãé– Â²ÒDNÉ“\¢õ—Ö™PÊÝÌhanîámË„ã½ÕEI„­_SžŸ­æá[±Ð[S¸ïÁ†%wü™+ǾEå˜È wµŸÍªê†/yL÷ÿ™QiöVwLÆg…9Mb/²35 o1H¤ÎÍeÚ£ §s„Ô1éˆô¹¹ÕÂù5¬[ÚiV±[‹¤©)ÞH‰­íì‹Qe÷j[ÔÕN·+Æ²Ž·)Ùf°'¢ij¢QÙ®2ïìÍ"b´ZVúlƒìVk*{‰åžÄYØ8Ë~C¾òð¸ŠùÄZØí;md îQÀ…ätÄ™çtƒÞ<*q<Šùy×cVR©¬ÅŠtâD¸<ç—+Ènr”s oeЕ»³Ï¤jºïAÊ‘È øÄ ŽP˜õ8G«µ~x¸¿õüÍ!„ãÞ‰§kvÓ­£ÛÍÊøl&&8ÿ³[áTîÂÙ¦³ß[œùfLå‹yä3ÎT!óóÜ<³T‰1LÅDOþ¶ÂJQ&‹ÜÀ9qínÌYþ Ü‚Ž5⟩ C眑g`Vúóõ±GÐãƒÃfëÕæúÆæþAææ$¥¡±<É[;‡‡ÿÙÛ<ˆ=! üGëÌ’ðÑét‰˜š-«Èó­ìBm'Y,‹û鑟Âu¾œæ<0ç¤ðîÙ`TÕ=rB]éTfË™Íu–KœµÃÃõ©öc;cp@ùþ1ÃÆ‰³ÍÈ9sοpÈÃ8…ýq¦œ÷å¼/ç}I x÷ŒOÖs\/Å/²Y^”-›ßIÚrfÄó­Ãkqºåg³±:Ì7;¯ÃÜ9³ûò™Žãtn‡¹rv—³»œÝ¥ˆà½ð;ªè~^‚mŒåx*ßX–Gæš<Ê^é=^™éa¾Ù™æÎ™Þ—Ïôp§3=Ì•3½œéåL/Eï…éQE÷Ëôlc,ÓSùÆ2=¢0×dzPözLïٓ٘æ›éaîœé}ùLÇq:ÓÃ\9ÓË™^ÎôRDð^˜Ut¿L/Á6Æ2=•o,Ó# sM¦e¯ÁôFiÕl6×Sgd{£Üœ÷uð=5SŸÊ–s¾œóåœ/Mïžõþ³^÷Èf~£©¦½ÑMŒ{o®mÞehj'0À+˜øF¹‘ïkb3˜ùt¾œ æL0g‚¤ðž¸à}û²˜È>8Ùà7º‘ÉïÍõ~£ ýíVxßΟ³Â¯Î`üÓùrV˜³ÂœfÂ{b…÷mÌb"Xád3`Dm®Í ¯g ehu'°Â+˜uþœ~ ¬p“ Î—³Âœæ¬0ƒÞ+¼oÃ`™À '#jsmVxMá¬öÁ«™sëà×Ág3æ¶Áœæ 0ÅïÍ4ø7Xg5 Nµ ÞÄ,xm«àÌFÁ+Ús“à×Ã÷f±æÁœóåœ/“óÝ“=ðï0Îl œn ¼‘-ðú¦À™-W4ævÀ¯‡ÿÍbÌ­€9ÿËù_&ÿ»'#àßaœÙ8Ýx#àõí3›ÿ®hýË_ÿ›Åö—›þrþ—ó¿LþwO–¿¿Ãð7³ÝoºÙïFV¿l£ß, °8ÝØg›‘ùq毓õÝ„í­ï¯¿NZ0ïÇy½ûfç0UdàÜp\‘ß_¤›uÖ›Æçx̦p9Δó¸œÇå<.IîîžÃÉzî‘¿¥˜C6w‹²eó6I[®ÃÙ^lm\™¯ŸÚP‰/Ú—¡-<¿kûë¢íœ ´Ü‰ünzñé|°ÓÒ™oʉÛPƒÁ,ã( ×‹Ÿÿçp³µ»›11°:¾W€/Õã’Ùœ0Á ½}gôáwÏ·^¶6w6¶Öwès{ëðp{SÆDÛ;‚ñÏH 4óËùUί¾=~õHl…¢ë!v½s E¶¦sPŽÉI%7Èý®~•äÄ &ß5Œ>°ÇHè%ñÈ©FN5¾aª‘fîTÊ5ë¹™”{û-Ôô Äš SX©¥ Z`ÁjȲGS÷§˜£)OnÎw ßü$I7îÞÍÕÜ£-:Ia³MÑ:׳©d©PäHw,çtòÍäévxrgv2©P<<µ<@f؈ÜÀ9A‹Éôçžÿ!–ï€"[°;;AtޝöDS4™zùåÌöØ@ÊÏ+Ož>®--‹çõåeüÿÊ㟖~®¿Ü«ÂÞÎéœ ¸|»ÂæÏ·Q-ˆ®Ýé[¾˜@àæP…Öãwª¸Ñ¨ÀÒiˆ¥÷ï×ÊuÙ4·ÈêM<Øîhж}ñgKÏVV?~ö¤ÃÎTmë†=´yÿ:zÜwlJ•4¹£Ð¦˜>jX»âÔM. *xˆ¦¯(Ò§ƒcBOËò}ëR¼[†ÙŠXßÍÏËZ’“ò0à>Ï,·„ ȥܖ³Öo”µö½Æþœnc ¢€úõm±º&ºëJ¾1"ñ ãБ“ŠœTä¤Â §NC.5ÑömëÃÝHá@‘Ží‹¡¯Ö¡øQ,Ä@jdžÀ¦Ö·…n5”³)Ê&[­c¹Õü:$ñã:WDy¡¯ù›TÔµïMßUÎ%·œçä8IŽkËŠzÕ–sÙ 7x¹ì–‹œXdnóîCvšÄrTy>’¢Ê•2Ú˵ã0‡’ãN-ÆÍ¥D¸¹˜øfJp…¸‡)ÀÅ;w3=óu‹>Ï×ò/E`[~çT´íðÜ¶Ý M!3VG^°ì]ijåüqê%ˉ‚š§¦vœ ‹0>?ʈã/ÕŽ—kr.•s©»Ó0ܱj!ÉžnºÑ'.¡Ï­¡sÜÂoxŠ:e4kp†µµB¹\™~à¤c¹xiGrâĤ*~ú©€(ޱEÎI½ï”é4Æ uíÔ'8¹5ø³8IÙþ¦X·fÅ?rc×äfˆ  ýv°u»uMÁÜvÜ…ÏY¤t*_ò±1ü{7莮X:æÉñR.š¤Û¦8ÿ„¾ØÚÞ =˜o=obÏ|Qcj/VEñ¼HÇþñXÎw¢ÇGÄø@è²N˜¬³¢"|UAu ¾¨ƒk-Ï;(QW)Ì™U“ü;ô¡SèºÚú}¿{äB£™ŒsJpV-ˆ#›2º›¶ŒÒm¡=ZHð[AÞÛëô= ™øõÚf×f}xŠægkï™?'yÙqL’ƒ?ôÃ¶ß ÃýÃø«áϘ+K²ÐL§¢Ì’“ÎE%ó=›Á÷ÆÁÖÿÁgk÷Å‹ÖaV}‘;Ø!7ñœT@#|ÄÇÝroävèøO½PÀx”[m«‹—Í]¡ø H„è"¤½¢4;©\ço•tÑ¢ø$%¡ß N‘¦Ñú.’”qT<*},™ÐèäÕ‘P»›è&7ý:€U楆åº%~ð|÷máÑ#Q›üO`½ÿäðÉ;}âNùæ …ƒ3ke¢¦n]ÄÅx‘:øÏÔ|à lL~ ŽáÈÂiéZ»K È5¢K´ÐòC­&‡i$»+\χ-•Á©Ã`õ+ˆT8ê©™y^ zÕÐiçdb+JÌx`«b›ù…^ÏÀ74ÊÖŒ7“CþyŒÖGŽeOXGp®.ߥ(‘¸\9MDþõj1ëJC Ðï@0NÕãzÅ+ÈÃGÊz5E6“¨œmÀ€F]ÑHb”x6Å:"³ÞØ4’JÓ†‘™ì"¦T'\UŸ/=£u$*ßÂr­áÍ”:úðÑ8ðüÚAüÖý,›Ènú°ç4F@­¤˜3ê½[^Zz¿¦c.  Fç—ðI‡^U]Å€p%ÊM ¦©¹s-SÎB¿Y-Ó¢s7z¦ùò0kâ-¸^îhݼÍSï&JŸQÚúâÞVRPXô}+tÎð‘ÇÅ{A@ó˜£`ÜÅÒ4µŠžÛ»´ÃØØlŠ7;[oÅ“ú ¶Ntìš«Ï>ñüK~{&v$À‘N-ؘý¡æ™Ìi¡*/)“+`+ É#2™\Ý—ë:3y/¦Éœò.Ï>! ,¤çaìcIšÙz¿úp•5™³D¶9>•õÊöøHýÞj¾Zßoí%Ži%uðg|?>WÀ? šž+às|®€Ïð¹>×ûj2ôÍ o}mXñ呯*èvß$FKǽFºtØ«˜y*ê¦ýt™ú ÏÔ¸d> ì¦ÄÍBº‰b4Ì^çóþŒJO‰Lɯv"rN½c%éŠ/ª¨>Þß^¸¶D’.ˆÒ£ w¨G­¼V7ºõ³Áu£Nb¿h7*rGq{¬W¿#èní]GïQk§x#Á ¥üToRÊ|†ä3$Ÿ€_ÌeÝ<ŸŠéÒ!½4Õ|þZÀ~4èB¾i(yFlZ^ '§ÆÎÊ)…̓øœe:ÊŸŸž?¥ ׂû©E^ñ7ž××Âû*á‚h_%¿ËX_µñfH_wègÃùº>ÊWA_ãëJÜQ„oõèw„ïÍq½ëè^µu ¶×Ñs½J÷©¸>¢“¡ú Õg¨>1¾<¦×%ÝDŸ‚ÙÒñ¼™0Ík®~-,ž;ëS¯L‹K泯$ãfº]‰3Ác†éø}FlZÞDͯ…ÜS ³q;‘s^0,ÛÎèDÂ?á÷Š6G ƒ~¤ ÛÕ{m¯ï¯´”¬>€Ì0½½\@üÀI÷KWt¿8 ʺ€˜ %@Æ ¨Ã«°Ê¿J„4‚ɨÐc¨ª<-¸*'éùÓY~?%Ì„ÚË‚¢R¢ µÏ)‘}§–3ÒýþŒÝ«~啩ͺõ:ÿ:®*r ¹œôWrç×oΦè†wU¸Ük^W±3é Ù’Ø UÉñe¸í´ûîoóö›QŸÁ,sxêÎìè´ ‰î¾};DL'7a "À~jkµêÑ\ø¶(V“›žTÙ,ã2Äv›15n{SLÈ&YºÚš9Ä/èZ€-±þçC²XySYJº‡(æm^:Ò b¯ÃH9Kg¶þ.%ý7ÀFgrÌEùâp˜Öt&™’ð›æ˜ª]÷¢êOú}½Õ Æu<ﮆÃÖ˜³ÂtµÖùÄ_S“ñw‚cCx‘[Yà7âŽ1Â¥kL]KÅÞ9:ŸÂOdí¾;I+i1~r-Þ!IÏcF2âà7!þ<‡ù㴃ɘµnœö·o’|g#IpcÊ@óÆ zvÃ6Ä âû)óÏúñÁîÁ3³YÐyw8†~n_Su(A'ü×í1²l7 ƒÑV?ÈaüÜôïo~¼~{ˆ„ÛÕ F³Ìb(GváÚ/LMÕ5}Öc m4ap¬Vo2RRìˆ6L£Žãû|êÚt¯Ñ¤ydnÔï¤BAIFû®†ØiPØÈ};ñBo¬ÄgøÛÂU½&ÍÕ;t]Õúd w€xg¢wÐ Wu>™÷jè’ÒD呺'0t[¡Nül†'TÈè~=ƒ*üŽ›èžüŽ MÔxÞu#l犚c\‚i>Õ°„idF%ÙEfTb@†/oP¢Ëo1I s¥’¨DéF$ œ››‹ö¼ž6,#~ è“ÑBö¹ðÜܳð!Ât¨9"ë£ìOƒˆ°šoFEí%¨¡Ï¡–¦Ûa<âP–œ@fᘞ12â°2Ç„ Q"‰DDvö_¥–Ì€Œw<€î`Òw`ô€/ ³:7‘LÙyy&Œ¾õór‘äP_ê„+¥¤O;1_@ö$ËL?ééæîi^þ.5M "Ð+±Ò¹ÜÛiDˆoQwBÕ'›@üG>(Y{<šøÀIáCþ áoölÅ-ÈٳٳٳwZ¡£Úš=[‘)xî2¦þ<Ù³wçÙ ë!¸ gH8CÂÎp†„3$œ!á gHø»AÂÉ×ÙëÎz¼ £¯ùp¢èO3aüc·±ˆ#4M ?-*‘ËRÁ'£fiàãeÌs'@ÛŒiž™’ÓªtZä¬j'K²ßäHy(Ûœ ÏGØ.üu6‚ ‚ ¶}·3ÎöKÙ~)Û/eû¥l¿”í—²ýR¶_ÊöKÙ~éì—Œ ÏPUBã¹HU¦[ðJ’L}—o%©=ÅPªêÍÏRUm"Œ*C¾DUU¸£ÕìÏï £z×ñ©lêxªbç S™ìSÁ©&“aÓ ›~ߨ4 +¾üÍ%UÐí¸¼”Ähé÷—ŒtéW˜3·ñç”xyœÖ$9A4ò·; ´8 g"Èi\]¶Pº~*Ä\/P¬J ã ì8ë»X¥Ê-t‡é>7m)¢öÚJvµ(ßãÕ¢)¬Â83ü¢Rƒ “ŽS¾à£)%/*&t♲‚RÙ×^8}¶srôìø¨õÇáîvÌy Ø- ˜ûÀé¼ñ\Å„L· è©ï²bB6ñfŠ Õ›ŸM1¡j)&dÈ×SL¨*ÜQńٟߑbÂÕ»®˜M¢˜P±s2Ù§*&4™L1‘áÌL1aÊ/¯˜PÝÅD£¥#N#]:ØTÌüÚîU £ÓíƒcF¢šçT%-Ï®TvNZ½V}{ûŽzRÑÎOÆ#T‚ A´wy‚‚¾Çò{q¹A©÷ µX]Y+‰|/`Ufº‡L&|º‘à_Ø«‰QÐ×rj9Ó§‰,Õ¥‰™äÚMÔ^5j”ýØÙŒèÔÜösg©Ñ3ß;K)oŠƒ“ä»b8™z!O•t#”z¾j„’-ª¡ÄwZ1B-¼¡^„»òó©E¸.†V„¾¢R„+pWu"Qo~O*=¦w^#B-¦áÈyúJõÉêI%Ó†dÈ7Ó†XPâ+(C¸œ[¢ ‰c²)ªlŠ&„y¸¥‘ø÷<Ç­A@é‘÷nõC8ñƒþ7<øX}á{ïþ>¼ºëcA y± ’¼¸”¼¸ûXòâSÀäÅçF“ 8yñµñäÅÝ”ß'¢¼ø~ åÅLLy±¨¼ø<¨ò"ƒ•¬Ì`eV|\yq«€åÅ‚Èòb´¼ˆaK!6ô©Ô½÷SŸú£²¡ Šôê¥ù(A'ÜÎØzÓ@ÌuóˇûÞËé±³‚?xv°õÞ½ÍÍÜ=‚ºÓô©0‚œÊp1Ý H ö¾¾#ÆIýäéB¾@¤NqšúzzlZ^[y;Sw,,R]/´M*`Ûkµ¡Åˆ.ØYLÉ9¯1pm|ÎŽ(¨ÙÝŠ(ܽý‡ý@…ê3@«1,1^'Ö·ÈJ³³Ñ&öä²üatøJ.ÂÙÙm5¾¿³ÛÅØÊÂwšÛ„Þß.nN3¦“1Œéܦ³`áŸfXòiYÚ(ÍkÁ¬ÍÓ"yªy™æÞ˜IÛC4NŽ_lñâ§ÖÓÖ“zcçäßG;ænBÝ¡‰U mõÿŒþ¹¦!åêp,½·¼"ÂÉÞ:Ghþc¿ß‰ß§gK€wØù-NNÄÿiw¡zÔB‡’õ|lŸª6ª·—W5Í'»^ÀÇ‘¾ä$ôÐ{伬Ìô^­¯­½ÞÄPv!–Džz¼$~¾ÿëÏ¿>ü烵µ½½J&…â2Ì·Î`(SGÉò+” öÅ©ó ¨¿ _ÄË#î^©~³z«©§oŠo¡¡[O’áÉè-¹bP ¤‹Åÿ±ZÀøIÎ5KTþ3Êeë±2¿í~Út~˜3åÅÈ«ús6üJ0‹v›þÌS³Í(Ó)¤ô1êß ýÏ YçÛqη)ŒóÎpÈt™à‘)L2Î%ߦ3ɹdÆ&o›üt>9•QÞ»·°ööèx÷àäië·-½í7Àio9«½7ŸÝÚÜvÑûóðø÷݃g­½Cù=pÉsÆA¿Ÿ9|¾E!søœ9|Î>ßi“ÕÖÌásfVs—ÕÎßîÎ>ß)‡Ïã¥Y™h|4ÅÎdf|z~ËÖdJü,k“Ô"Í]¤ûê{Ú_Ô"6(Á×™x »¹h<™e–ÕIo<Ä­ ÊáÑIýøYë.ºÈÙŠ€%¤©‰'> ÆnÊA°`lµúúCvmvª›‰×ïñTW¤1‹/å µ¬/î ­ÔôsÖi)m—驦zXÜ4S³UDÑüE¥‹ÌòšÒ%–åÒe÷`;“.)®g¤lÁŽÍdK&[2Ù"YÅW’-\Ö×–-TêB²E§œ)[dª4Ùr ¡BTbBE1^-[rr‹ÿïð{ÞY«CÖ$§‰BľóÆÅ¯¼aJ Þ¬†8!Í $#5œÏÝ~_„‘7CKg`–P*3±KCTdrI“*h±cB1šÞ—4!kµÃ³]‘ZºímgÓ¤íŽ/]×·Hp¬èÖáH2,¼r£°bH *—9°L¬‘Ý1¶ÁƨšíMúX€\Ås}P»¸ÛC•'äƒ,u‹®‚‰€bq d.ŸÞ¾qÝa‰bΤ¤×>ñL ‹JÓ1”‰¹yŒøý+1DÝ©3»>ÕsLÀÝ(;ºGTϼ t1åòÈ%‰¯ÚùF.vªn;—xʇL®ÑêA‘6Ú8àË Ù±‚ÐkîxE\¢Êº=`…xºü§æ’è©åÇjìK²ŸV)ëª*ƒè+2Nzg¨t…”@£ôûÁ%Rž5qÊ>§Iå .¡û`Ê\޼1—ªzcàÁ”ð»Xw߽쓦$4,öd,.]ñÆ.‘‚ˆË`ôÆR#;4à¡ÇG4hú€Q¢Yäöz^ǃ1À™ÑJ<¼bͲ¸"º‹º5KâE<òÞÁ¬EÄDµwéŽ6 dO4UÕå#˜×Þ8‚îáþÖÓ@f^=çÞÙ¹h“ûâøŒ˜øPvˆMå^V“êUA¸²LC a]| .@ šS¼zŽ[+Šâ&UôCÁ™N• gUghŠÕÉO`RAÎ"t‘Ëëçí$»Ñ-ª®d§Ûåp˜hÝ`½U¦ŸšF8i‡co<áÙKΛð"­¾J²7º:NƬT$ Œ+û¢™»—«Åjs‹Õ³MºdK³¹üª…l¾3j9}2x½Š³4Öl®Ô i?ªÍæz Ý/V‡yY é’D²õ²qºÕ0êm `ZWâè°±û’º¢P/E=’ڂת›¨-ª³“Òà“¬åh`e}×ñ ó–¿üê¯Ðò@ýÕû¯¡Œ•BUíšëæžqÙOUEà6VÿÒü¦úC‚(’ƒ#­ZóþǪªd/JÑGÓ¡r×ëõðØ~’„‘@zTíºUœg+ËP±±)$QÒ·|iˆ@Œ–ÍQdOiòï4á<º°ÀŸ »q".ÜÌ$—ÖØ¬›xˆk¤€IEoâ#—@F’N¤¸u¸krªòÃÈëw8ïv°ÂTCÙ._èhq0—=߸Â}7$Ž÷ÎíÈØŠ¦iZ„ðZ±ðž¿>‘yÿqT?yN25Ç#ZíÒ8±ÔVÂ¥«ca9u€÷­ ß+¼çiÍ?æEo $ytJ¡ÈÁó•| í*¼¡€ L¢ ò¡`9d½Õ§óFuX* Eyy@å¡#Q¦Þva_kÙ ÇW@gYRB…¡ˆ —~1–s‚.ÝÑ…$+³íŽBàMòãS?VL›û‹!ð¾Z±ú׫{âõ*U¾jÕ÷¹°º±ÚÔ³±ZݨnÊ@ÕIF ê*¤Ö[6‘@s]&.T9‰‘€‚`/nïk='+}Ø'œkô=Ö¿¤‹‡òiCëþ7‘Û©ÀhjþÎ!DQž?á—oÖ+â8<5÷CÌõ /plœþF÷ è\êÃ>¢ÂÝç)óIÿð{¹Ÿh^4+ÕJu>+¶Ž>Úÿ…Ïâ)|¿"ê]šIOµHž˜ÒÚy@Î<'ÉÇv†±•%_„<ý ÈçêüÁ œËíXÁc‘ËA?¾—}–ø/5¶°Óñ#]›€)é3jo…09‰ŽK#±~ VùÜ´«×âT± )f3’>ÜüÈ; ;Ê8yúAÏwöö`é=s}wäŒY„2qWÇ?‚ŸŒu©Dž> È`¬¡/+¼ Û–4$ÁdŒP6¢ÝI‡‰kœ\Røgt×mOÎΠ!¬S ÑE? _ÎÍØˆ°,e«õäöØÙaKÂs+,„ºøcD-®5£Çßeî­L’ª®DÏé ÙìRþKK·ÿ3ÀÑ]€´Ó÷þæn2nj>hùW< v¹‚¯§{ÀÐ5gÄhà?ç­?vŽ»‡À_v“>ŽJx¾’.¥Q$ê4ðãàÅÞÞÖþvmƒç º*ïˆ ü ‡îe"Ž08ì{cšd€ ï×ÿ‘/<Î,±i å÷H»2&[˜$Ð[çÌ…Fo{!IZžE0uh‡$ØŽD”ÏðèTR,ÖŠø·˜sûv›ŸÔSh¨ !½wÓ›m¦B†»ý¢¾·UoìÔÖÑÁb« ±Dsqÿ÷vnH¤¥6í·h[†tB’8Ëby¿¾»W{¸¶)ÓàO²}A…ÎôJÁ£ô5úW)qt(ÏTÒ&,‰?a/%äf f;­‚å•5ñâÏÝñ&<¯ä *³Ø9øƒªAÿ Ë5]Œ5î׊èãçZñ‚€ÄÁ^ä( “ßAˆLò%Äcl,O|÷êÏèŸõg;bo }÷ï4ô¹·‡¶÷öê'¹E·—àcw{çàd÷éîVýÆ)mµöwêÇ;ûÇ?  J´öôœÔÿßõ}"rðbçxw ?êG;ÇŠÌÉÎÞÎÑsDIøcw = Ò´øÇ»M¡œ§JaG­ªméq—!rï•_1êì&ÀŒ:>ŠÔçÙÀAÕÖÖÂ4¼-†æT4€*t6ˆñbsÙi®gÍL[ÃŒÙBaÑdÁÖ+ú¢š˜}¸h"¼<’ÉÆ£fìe5o–¨ÒÔÔ‡Q²Ž³¦êR z[¸ ¡ìJŽäIí´`d„u½âM\ê(ƒ 3*€žOU_ãÿ€¦ª«…¢h¢ùÁ=ñR%zÙ\®Vac“cFTän:¹‚|ßè¨ TY8oÚ ÕTÿ‚}“]&T¤úölîÄ[tK"Ä=Ü}½Ä¤ð?<'É 4/-EX…ˆ dÂÞ$Œì»n7[ÇŒÐ!è@ Ãd(tëd)Ùu‡.[sN†À®·Î jÅÇŽ†ë›7µ}w a­è´;°e9;÷þû¦?ðƒáÛQ8ž\\¾»ú»(“î휜ï­ëO¶¬>{¾û¯ß÷öþ÷¸qòâ?_þû?:©¤Z° )XtdÒ®wæ¡üµõû~þåá?ÿçWE„öÛŠÄžE‚3)Õ,'Ú—H;ÈÚtVÌó5ì™Vcç¨~\?9<–’㇔£µ<@¡jÛó«áyž5°…B…ä$E‹<©ç×ÐHæ‘Ý9]à6 ÄeˆE×òU¸b€›X\:ÙtÑ „]íZq³hò›Xì³ó4‰ëAK’Ö*î”ü ûž>VèýÔÐ5`š¸( F~ñ±¾b®DözÏ¥“{z#è> ìÔÄ O“‰Q€¾'dñOý`ïHJ·н x£ts‘α»/]¥+Få#…~ƒÍ ѹ€{<Ö û=tÆvSkZÝöªÙ„.V° W¡ÛïÕ V« 0köjøgSЗ=JtÒvÉ^K”Ø ¡º‚ß(Aþ¬UtüHÇW‘=qUAám€åo¤Ô†NŠ ¬°þtEøjBzةҀÌjAH½ ÜšöÞ—.«õQ·v Øpëp¿~°]d°çk3öЕãBdAµQ¡Œ@Å Š¡âæÐÕ˜öf׫I­òý€s;oä5òÍuaÕq|Ýjξ)uöü,4³ýɘë;Ã™Õ (Ísk%ÊÒÜ’ðÜ,WTç\{"G‹¥¨NÂQJð§MUY*JvºysŽ ça)|ÿ‚š ÂÜ@]9©¢/Áì2šå’P^”;¤=ý&ùWÑ*F5 .Ò®Áº:iW;³dqC¼¦Á¨ Ái'£›NÒ¢f2'b->62Ìg&Õ1nJ5còŒ÷ô^Rö<ôÓ¦XýG Œþ‰¸q-V;HÕw5²'8ÿ®"îPâ)\’ÑäX‚š‡»Ú>žûŽÔG ›2t‰ aèXÌ$Š€‹¨sGxêIT0m™Ór¾¶ÛÃ+t®,h¸¡“A"u%:±á£Y‡eÉ¢dJy˜  &Ń"é:X+š®Y(ÓÀÒ- Š€æ`Egˆ00ŒT³Å2Tc‚ï6å§@t Sv–:žu`çïv<ØÑâ…Ô^ [!ËÇÎq,ž;@en89ˆ‰J$Bе"×åÈ™ôÅDð|.`å×Âì$îè”'}Ü칮ةˆýξsŽ•Ðq$ÃSkôï ÝFyE³ÔŠâÿEãoÂx9±ÔÑO©P*—ä Ñ‚¡ŽA%nÑBšEBýt€òªðš{w*AÕbëus¥Ô\oÞ‡ÿ(Úc›v¹P*E¥ãËxØÚsœÆ™v܇×’€”5d 0>=có‚ùrðúôæ:yÄY±MGÀcÖ%/uŽæç´……Wk¯KtêAGhŒXb˜¾;yzâÒ¾åËM)fSS›° ²TêŒÅð•0íjz°¥ððF‰‚´xõÉ8@”¤\¹@€¥„¨Ho³’u]t\Z•ªÕ;Dv[,M¼—žÜ4÷Õ©ƒÃ‹ ;'Ý’ãsd dêÐòfP…¬—î—œ–8ºì ™ÀŠe8±ÚY-•}´lKXã¿[µb®ÈŸ'µâ½¢´ã‡´«Bè´@X¦VIµ½?ÿ§ÙìÍ”ÌË?¿ÖÃÜø¨ýÌõI‚Ǫ̂GßWfa2PIÊn  ;tËï¿$2A®´ý¯gGG›$rHÉI2×Y!Šö Žñ€.Y£ŽÝc4Nf Òøcä’Åã…Ó|ø0)‰¤òo€ÇB±Ì÷+k?¯˜°:ÚøAà h¬Ö*ž µ¼'ÚÄÙÎfç|ÄF§koB4û~ 6æ¡(­§Ž¢Ž+2t%]mß_´¾o ¨U uô:}DqoL–‡°Î¦”E)ZÚv“ÁÝÕ…u ÙÆŽHÙ¢éEN©² &/{ÎBà6Sú(û+¶v™†ný­yÕ?"¼§t0Ìœ–"öýÀé¢>eT±Ïc¤1çyËÞ´™HÞÌç'›–w¹Xìó`Z)2Ö.G^·$BSÊ¡8» ºnr¾M+FEÛ%©Ð©…Í9-–ÇÐt$ZË7sÍS^=E¶±ðÇžƒ&ml$@Ö7cw0ìS Óé³$ƒL26ÌM9tϽ@ê8[_¡¡òáAãµx… æ5p\Våóp@âC‰×È- c -±ÍANHýGÉàU:µ à-g,Ë[Ìòv⯖›yÛœ“ŒÑÑ|rÿ@Un”»˜ƒñõö`‰2‚NèL™Í+8Id ÿ‘M—Ú »¹ª_èåg !®MÜizÄ–±à2’¬a÷¼Ú8ÙÙ?ÂÓË×¹{¤ŠÆ„­ÌŽfƈùˆ Ïô›Ð‘®DˆRn+QD¸‘+˜«6žF.±(• ÈåŽY–ÑI1ú ²#ðã3R Fg*ùy–2šg®u˜»Íœ)l–¥dANp°5ÉZIÌ ¸ó¥ý¢’›ÍfÞ°5ÒäZÎè,ÌK®Z «¯ ]¾yÚ,¼®¢êOÕ³â)a_ ¯è8H,o­P½ÄÓ‘ëŠFÐ_¢ºú)*©©'K :zvs¤B…!æ e^VïL#—Csñ-…ÑA ÞÁpGOc2ÔU•`SЍ¬jb”}°µ÷zWh«žÏ±aYMÚ°åv`@ööjù‚üš;nÑ•]²Ä¦ùŠu¤­jÏ‹”^x|&ð¥Dpd_\ [iǨ ªe®Ìtdì L–™¤–PÁ)„™”ed`°î”ÉAÔª$×XùÌJâuÞ«–Ë«5iý‹¶`45j§´yÌ¿+¬ÓQï»ÈΕìÌTR˜(‰¤lÇÚœ(qxîõÆtŠ&Lʉ2 ë1Ê…ûvnú7¢byaC)Ò|9³Kò®]žƒˆ×§.8o“û^Çcb¸M”žf”ér¢R"Ñ»´s±”§Rõ®²rï.‰çœ*݃\|ó>àŒ =¥ñƒ)GßѧþRò/ÿÑÝmXomȱÐèƒüF/å?ç1X„æQy©QZSdñç+rG¼¥/© .R&âJT }1­š3h[B¯UÜu |×s' ®@¾¯I²ERÐößóQûÌâz†ní©ÎѰéNàü{žÖ£„WýÉÒóvi0º2+›âé#¾ó?ä_þ#“ÔêÉç „ïky î«™ K!Ÿ›3ãոɦ!|V_êcVñróU@m0®S…·Xƒ ©/õ!ÿò²i‚/6S¤°ø§þRò/ÿ1W´u¤q e®‘v¡Åa†®Î‹$Â’DÒ*•‡jùAY*þéJš0ç¥+˜²õQ ×¢?ºÙ ôßñ$Íä­‘&«ŒÄðÐ#99òiÒÒ’Êy}S¬ÌäcQ:by…¢•¥ù¹A`*'Jɤ0ÇÜíù¬þSÕßHvÆŒU»`îEä­2e ¹Û‹‘2P¡û,çnÔÑt¡à%#Kï‰b ±É*ñMÞò¹þ[°ŽÝQÏy€Õ.:ÇÃë—>i"*ÕâlÂRam¦*žœ•"ç!NDÇIÌðåý?ò¨Ü â¼@7†Ý«ÛÇë,mïoöê¸CÍccâ6ÄÏ•õʃŠâ–Ñ‹UÚ›Ó'~ÌšiöV1A@Nž)$Ô\‹ï$qÁá¼Ç#c/Î'Ü•tûp«çúÜ"àÑÕItž›Ø*áÝa¼ÿy¥»kLçnQmòþ¯ãX=‹®»¼oÇñÕ×xßtA~7"µIu<Ò5frmèáÝ".M Òåf/©m*Iží ³GRF8}uùS_T¨ä  } ]-ð°¡(â\ül’UÞÆ+F÷¹ðš¿‘¨(ÖtÞÔ5Sëâ¾X ÖÁƒ@£úË!òFwE m{T0„º¥’㺠†µÓåÉÀ ߈µþk2xƒÍGø$Ï×]°J/鿼m'cX¿> èåµ51àÜG¡; Œh åÂqý`ûp¢âÕÀó̾‚×&9·bctÁÅ:jNŸˆ0ILå<¹ÈøJ—·-¾ Ý,﵉s ·ÀJ©Á:&y5ÞëÉ©Í,Å"UQùÏÉ<ƒ]}2ã“hh‡}ïH©$Î-}fÓ,yãŒòÍ+`oãœá½ydNòÚŸF$ÄÝ=ù8E- Ùwl¸ØŠ:t«¥ÇÕÇ«›"¬>.©¯ÒæXŒ›…êcü !ü¤’i6*i… YP†˜±$©;®ïSC­DÊÆÖñîщ‘é¶ë'u#þŒÚ}ТFÃxæ „òG¬µ:Öü©ÓÔÿü¢àß(¥K=’(õ'‡(ƒ1T~ZqŒ©e,ÿ0Ç‚‡!êedñØÉø×\Ix[™~E1'F܉ËFaåwv†wI4ðz'cÃ(4d·mØi•CÒÔ =·ã†Ê3¤"ÐOäk+Ut_‚¿°%²–Ž£O«ë„²ÉW¿¼ >pÞµ€(™P‡µŸÿ‡C1¤7rÎjëPÊÓE§Fò®Ìßv9ÑS2Û%cÚ$Sš¦{ÛV‰só°õáÍ¢:)YÕ¨¦A7¬åÈÇŸõíQ:2‚G%ù„TZ”Ï j‹-Æ]ùõ½x )>v7}CÅ?¾Í #=Š~bG±WÙkIZ×ËM·¬‹¡°“Yµµ{ƒ­¦b•àËZÃÉh„ndèØvÙ®R´ztÎÙ‰„<¨%ãÈ@Sý?Ôy2”æÕäÞ¬ƒæNg9»O¥¹[‰#4Þr* ß—!ÛÀÉŠX‹@;½¡F„LS/Úë3ŠVbÀÞ¤ Èi®Ê½ÌN¢7PÛ\}üÊ)ÿ]/ÿ§õZ}¬•}½ú¸úC»HþкÆêñc¤Êcaà(Ê"ôþ@zôS3R{:3giž<àôÄtªÊ¯ £×¤.Ïb"%g–½²Oå-(oiœF)qexG¸ˆ£œèsò"±¨O£ùLº¦ù}dTŽš #‘“î`Ä’±ýµv_ót³1…$»#×&™¸ÿV¦ºðP—ÒóÁdŒÉ^mº4þV*•ׯó%¥«b;2wP9*žŸnÁE•“ÑÕ ùïÞˆ[’öp¤`ÁW¼|é1Gœ$–ç›NB¸긾ôê¯×«¥RñTg˜‘z£²ŠI¥z“ªòÅK+<T)*t˜ˆßG C<ÀW®`Jâñ8¶ô/ò¨#ÑÊcš“¶RYxì‹ Ýy£Úé²²Rj¸¿¥]“6šÁ—+«x?¹¹R­®êËʱ+Ó±xq“ÍI2“n_炵Ùû9%œŠx-Z7ïOGM˜yÛZ޵ƄS®S©f“Yè>6ꕪû"³ªcu—?•n¬â©å¤“ž/º´„÷hôÁäi§ . ¿—ÝS6ëc0`Ýþ†Í¯<ì’¾c éO~û y‡¨Èë]D¦J… ‹¦”^ P'2P‹Î«i¨ ÏG4§Ô¬R”ýD’\ÕNF>/eOiDiæ²›d­Ú›š!+VSâãMµéÅŠž×ò*cöÃ̲ªÓò_³ƒŒIÉŸvèàxGù®ÓiÅ™mžB¶ËpƒY[}SE¥ü =«øø€Ïê€XF³"ËK¹ àêcM )µR–¾:µQçSVZµ7QÒá¸Aܾ+[>3æyÔYgù4=d\ ÝÐDEç䜡âímz"q8rñZÙ „ÀQµßpõÞ¡y/bÙ«¸éš(MBeò¿RC7öÕŒè¾|2޼Õ;èÉ’]ÜÁòé …sRã×bºÀqn–Ïxb|àq)΢q©rŠrtØ¥å7GG¿£óbCieK4‹J<™fŸÈêDê—EÉNb†Xu²“™!‰z%)¦&WÊ8J%pdÞdPÈÄ@:/«g, 5±ÒÔC,é -èb¢wp!]¬%6”úŸK±Êá Ü]’a±ÉfZ4ñQd̤‰O6¬s ÜŒñ!g’¢ø˜j¾.È-çþ³%þ¨ï½ØÛù{Ñ@ë(ŒðØ×Mg8䇱¥’z 5£œS&¤ F pRº ÃïhàN#zœA&õE^½ÌB%¹<Ù…tá¨[¯Ù¡ ûã^’_œ ?eD‘R?©ñweµPj®/5ïsè¾Ö@_Ûµ"Ì”"Wg"_FÈËg­±y: Å!ÕwÚ}]6Ð)jZm©ž“)õl®mþeVuU••d’Í®+;Q•~â ->³3‡oêÌ!³àP}4ŸáÅ[‹Iů¿z%ù,ÂZ)@³XùÄk‡Ù)´®Ø­d8óáLAÝ®bÐRƒ|¨˜ö·ê½ˆb£03„Å`¾è¤ 8Í—I¡Áü²r‰7ÝôH ’°(_óˆ"H…ÅߑІÒ—Ýp Ý‘r|‚…Dm#÷âÛÄèøßÜwGÞõÔ£R§R:é‘2éø ¤^QNâNYÜ£$äôbˆÚÆÍmŸãïƒA%Óiáe_L|Zy]º¥ãÜ¡+*¹¥+êØsy²£E¬ƒñ+vef“4ÝÌhG>#;”Gëa>6nàÐÓcâh¾úËÑÕtÉ ¼º“¬žá’¯•ÑK@òŽ œCΤiÜ1 ?UPËèNgŒŒˆ¬•Ñ,Ýì WÐ aßãç¸|ŠdÞç‘–âr :›ŸÿT=Ô? §¯Kx–SÏ0©˜Ð.¯¥Tl¸üê¯{bù5ÿK~!dDJsE& ‡•ØR«[ÿØ\ç¯'Ñ o}l>à¯í¥³aŽ_lZ \*K[”.è¾Y½í”3}È'p`øº~‡wá¼pG°Õáë2lDžðP™fFÊc ò¦!—l¨üþðÔÁ2°z0$ÅŸ%ò­'O;ä›}xÑ$>S‚EI·\ %¬¢Þª¨o•·wž—ž…Ï?ás4ß{k2¸êE/¹ØÌ¹ñ(¾úÔ˜ØWøÏ¤zVL.ÑGñ5-eƒzN]è0ׄt. ¹? Ïj5”žМ2tðÒ¯÷ÃOäé—çØ^®EN[ÃÇ[;F‡ƒÌ7÷Tê4 ð (õ ¢tr½ØHnçp@ºnYâX®I—LŒ=óË`.2kúR´ž½éJRuUü$V«%CT=A‡ÕhΗè{uEŒ›€®#C驎­JOG³TllÏf›Rtý.Û©RV¶Qe£Thn –××ÖîêW* Šú–§K>%±µm‹ÜñÐÅAÀ:zð*ŤK EÒÑ#ùär—¦˜0ÒqÇu3è©Ë’‘™c´ y‘[ofy½jÏ›Ao#%.&²Æ€K¤»jJ%e©D÷œ»ìàòO|„Q–Û%ûá˜hKÔ.‰àb"—²fÑfÏHS'OJ¥ÙŒ™ÍC7¤!¨'Š{Þ³øè°KÁ ¥'PÅU“ÃC¶˜©Å˜¯±ŒéýL¼`QãUå?ÎÝ2>¢Œ·>£"PòŒR)JËЩñØnbìhÛˆ}ÈÆߦ Ä4ê†ÒRi’ÌnÕ31]¹EÛ-Kk%C§ÖWZ/ÇjÜÅeiž%žÄV,›Ê·Ò&ÓFlJ~5­ÈŽçñ´E‘MeT’#Þ">Å’F³©OZײuŸ´¬™ÆôUÅò¢æ]Aúb¦¸oj-«Î¿ÆR6úòë¯dUß9 Y‚¨YëX&I[Æ2j¾G¢»yÈÌ: œBmBo¢¬VórÌõ}áĨß8€¾)ùDÅ8š`‰$ñi¶ÈQˆ~mV©ƒ-¢3^È™nÀi–Ñ { 囹~¦&T† †•œ“ÙiK¶™­vf«Ùj/l«mœ1GÇÑæIµfÈV<Ʉ䩵!,¡`Kóøzîùµªÿšªÿši©¡_ưñ‹c¿Å[°ÓóFä«$ñ=œ'>ŒgÿªDfì›·0)¤Sª( V–AÎw  ‹‡¬×uà V±Ë@ž}9òŠKôèEi¼‰5ÆM ?Ø‹äÙ_O× ;Ψ˞“è6òïE>P·1¯^öèŸÇíõ°±èè½ÓByŸS÷dÐCŽÕàH¹ê¾¯t•Ä5’þà´Û%é·Mv3-“épÌW~I6±kxÓ™œr®f¯˜)¤€ÙMP—tS|Î#†}¢Có©ú©àÒ#Kä úœÞqç7–~ƒ¦®›ï3N¦®ÖÎcvã…Êôƒ®Z#M¤EŠÐ>õ¸ºÓÐÐ æÿÙ*8~âÃBxœÛ×,Üß,ÜÐÂØÂ´…Ù}®hAvz|rY|€¿O¼Ÿcˆg˜«m^þv›y̳¹Ø üéo2ÙO?oÂ2eû†•Ì'™¡Â“þ Ÿ¾æ37’ÞéjÏ`ÔB5üÌ,‹" {QE`¢1‹47'§§eN_(Æ""„é¸éŽ2›‰‚ ¹â]ýݸ€ 5§8uú»ŒÓÌež;]ˆ‹ÅhzÅ\fA–´L.®é†&ÌÂíóÖ3oŸ·žEA´©TgæÅ xœÛ×,|h³PÃÆo%Ó¿”0^`ÎÏÉ™~ ”q;KÕ^PƸ½ Œ©»eú¯_Lͬ 1…íµ¿™>uOßqœYhûÜõÌrÓwgÖã˧æ¤&—l¿¯ÈrƒkúZ!f®í.1¿{Uî-ÔïÄÅ}xœíZyXTG¶ÿjA iATð² 4 "q툈F# .ID@lšf‰Ðtƒ q‹àÜzÆ1:F'NÆÑD§ó¦b¢Qß„8óM\’¼Ä¼qŸLÆÉâ3Fc¢&~¯n·pocÓ·Ç0¼ïyý¼Üª[çWçüΩSu«ëåÁ¿]¸Áˆ†o4åŽJIK2Pà÷Tûý1û}¨ý>Ì~a¿§ † <Ø~O±ß‡¨¢­'„W2±u‰ Ÿ“£åÿG µF³Á"ðG8=ö±½FžEÈÈ.O¢Ÿy[/Zý7M󱞞¥†kÓiœuhA[:ƒŽïf{5øµn 5S³¡D°vK³ M±. sTl ëo;›î/È/ëTAk‹ñ êÓ^óÖÌ~íx}2 “^]ŸÙ[zµ¶™ÆÛRò6©C…N.ë{]§/mšÒÝê%ÑB–ÉgŠ++Œ%• Bµ¡¦ÔTS%è„9ú!*F§/*©¨‰JJM&aÀ¡z~ÉÁ\aÔ„¶Z½Î(TÑ‚®Ølª¬µ’Tü /×VT–p­œÃË1º%úömÐm’Sµ‚ôB^–·Z”ÔÃ\£ï¼o==QßIÏ ’R“6a_ŒÚc+«ŸŠ& W©Æšªj*ÊÊ-ÂÏSÛɆ} ‡yzeÛ¾ðS)"æ7f´{T¯3;\¢«)*ŒªöFnLó“ÿœ5w`okx“ ¡<Þ”.šÒ¤‚­)Z*œiJ‹—‡Á¬Ó«ä#GJF¯ˆ”è·¢€l+E™“ã¢ø?ǽ€_öG]™²GÓÑV´6YÂHY«Á˜?ñB¢mYsê¦7Õ’4¶ÿ^§—±iáŽØ 0aÍmYÑþ|­eFûsÁVñÙ¸¥­uëò`¯¤äÄAm9¯ç‹æ³˜=qʸ)9B”Þd,­(«­1DÁÆ$Zk=ÿe¼mä'‰ÈŠ~Œ´N>f{ãLÑt°_²Ì–$цz‹ Ñx¶oT‡æùºâÂ$S­S³ÑgÓ´m…hAo¨±è*Œ||Úc)©½]qA7÷>Œ&I#GØq6Eò܇g‡KÕ¹ÑRáÉsý†¶û³¾ÚTc¸Òú:®·«îº'±ëþ¯×YçŸÏ¶Í9Ûw€î@ló®ü€(¶ÿ²—²¬ ßì^%(Ï·ÆA§¬/ÞX B2 †Œ äk˾y)¡í»µÁœjÄݬoÞnrÀNÃ)áƒ|l›ïä¹³â²?®ƒÀÔ×VõÓ»ˆ¥#DI§øp°Z ËõFQ®^Q£ð°±2.š'ÞÊÚƒ0Êl)©¬(N*û£P(ôGÝAã.{¢¼V„|á|rI! 3 ÞÖK_kÁ+õm'SãmÂõp9ív‰÷c/ô¬ä¶>õE²òG½Ñטᾨ³íá(HÊ£p IÙ¾Š@RÖu4N*MëF÷dWº,5*ájŠZr’ÅÊŠí\ÖlìyZ@i ò¦ö!¤ÊJ+Ú l—€†(Ä;íD°÷?±œ¸ëŒœtDHÑHôK‘­pXz±£Ð*w„;y>¬ÌFYB‡‹ÈF¿@0ašÁ6d!»!† [š‹^BŒ·?€Ø«Q…BÔwy·£ºyÌE“±¿ÕôS0¨g#HÍC¿î|Ì…W"oÈ+@ÏKA´­ö¤7æ7Å*™àhÉõš­Ø’ë«uhï¼Áðbù`í¬bû`í²bt­= Ù<=ZïOpO ÓYv)úέÕp4«àýrô‰[þVKI‘}_‰†¡ÝžlDãÝuÉsÆjøÉ„V¸ìèR ñ‡Ü5ÜQj3ZÖÞ›NYQ>$‘ȵð|sÉ‚(ܲ 9´¬ÒT ÓkÑx…"ü…Áº•hìY…FX—"/l!!p¹œöDI0õ¿Ð€¶J sZÈîh£)cx ^oDÛaÈU”—âXñid\Cƒ<Åd3±—?FáÞ¶ –³‰3ñˆ'žüØÇ»ÑKxꜧLKÞF§Ýeê›(¾8„~ß&Æi*‘¯NEÞôßò¤0CÛ©VÃOÑ> ƒÉç?Ï¢•2š"Ρ&ã/ V½ü(Ü݆û¬(Òn w=pÄG.}p÷¾9ù=Z.[œð¸O_ø±7~@¿Rú ãwнÎgïŒ{¨ù>v)R³Û÷Ð~…i`4ÂG;Côƒ%7¶ÏÐÃXž^é‘qûõ2}ð±Î!—ûá5$4«±?«VãÜìFË g-ƒqZ)‚ÇBð[CÃð ä“}ðeÈ„pwï Øæ x± wt¤'¸1îpgÆÉU…EñØ›ŒW¤€;*8é÷Pö…ü$¼¤|8Nâà#’ñsÊà!CÜEAö`>g(^&Ÿ<û°Œax‰2xdš;ðJ-Ÿ;Ê ¼J‹Õ,G‹*ƒÌp^5V¿ÃÙ”,¼L2å |ØM°=)ó`:›2 7(C&Lqç¼ò©x•’qHæÚSnÑf¶£åy„Và­è>ÎÁßY/^ðaŸ—áÐí#ÆÖs/o¯À\öt½ç?$`ðf#î¸`‘eÙ õ8´ópƒlÊ»8Ç(èoauf\ì2‹±Éõøw²Õp8oø"‚ôW‚|k#òÏA(݃ƒd_p«ãÅ »}ð‚——áƒÝ,Ë/‡Wðp° ¯S€ýBWãm.5/àL÷ÂÁŽmx§Ka¶ûCñl~ðSùÌ[Ò±ÖqéôE•&­ø§¼B«rÝÆ¾áãòlãÇÑÓÕ 7âÐv§ùÁä­øx.ºq㦑K³þþKœ¥DèíÍx—Ká-xÕƒtlmÁñK\›ê!#nIqÁ‹zUE‰vüØ‚8“4_Z¢À7[qwYÜÇ¿„wÿœÀ°Ê°Ö‡ /Vÿ2^¤´®e‹~ÁËiO…¢5v”¾’Uì³#¸PÁ´FöÇcø–ó–•_+ŽB°ÉÄ:õî—ãXpR\­~ð§ÎçÑnàû>Þ*ÛÒû+îÉ|OàDw0õ:È¡ù³Ñ,å ŒH‡[v‘B{zgK’^ˆÝýÔízÕ¡+9‹¯w®«éBÛÂJ,ì"þ“Ò–«¸Œ?vfrÃßql×Z§F`þ_ôÓ—¾ÅëíÀÀÿ‡ýá&Àïvs‹½`ïm¾žtÛ±¶ï{§Âà{D éwø¢ëÎ<ıۗxOówöXtصxÒÇ?ch7ǰQ IJA´'[çMt]ÛK(bƒÈ”®íØép2âÿ¨b勒Ý]í9ÐŒ&–Ab‰ª´.´’¾`È =Ág ‰«ØšlÒÜåž\ŸMVu5?Àù ‚Œ™Ä®>CÊ¡ÇvŒwgòºËspŒÎ#ïx4×ç“ ²±XVH‚•ÆâmYÕqjõÄžƒ`“žkQB>÷H‡¥DžÊʉ»|p­’¬íØýWUœ‚¿IVùŠDÃ%‘…+&Òê‘ãkÈ&I±À[Hw%*Þ©'/tÔåí2–-$¡öŸûMÅÏê-Q\/^7ö/$ÿTR©uÑýPpð—ºõÉúFÒÜQ‡æ&2–¬pðÁÿ†”WʵÇIÛö:IéÚ¸œÙµ“J[˜ÿ¦•¼Â§|)š³â8‰¦|¬ªà?Ž“T?{²7* zË¿!Û‡ 8ý!ñlZÓ~ìÆÁg܆±=~vœ%+:øŽÁ9Š‹„w/un vlo8ú7â.“Fç½C>>ªˆ¨?ãýµþ,÷„4|òy›|O®±}Wˆ¿{»AúפÉÙ@–r•<­ôÑ+î†úƒ÷5rÜ…•g`Ò·dµ³Eˆ»ÁÇ]âMËònÏ,úê§Ñ Ü¢ïÝã "Ï;³%@~4ÊzÚFáú=rÈ£^G"*ñø-ëE¨J©ë޴ѹë@¶Å‡ApEEc"Äá ªž[VTk6‹õ¦ªj¥H\iÅe<º¢†U” OdçdMÉ™Œ` ê×GÔI_W$—¿/)ITçÉ„ãAWpp¬ÀÑ-B© u6$ÑI˜šÌ©r4=](‘e=vûØû-ñqù.Å!â,Ø•-ƒo×ƒŽ¡0—"RiO8~‹^2šT¾öe¥Ê×7'¹K¾´¿cEûc+&)ª¢1cÇåŒWñË7{bfNæ“ÓµQ1÷Ÿ´Ëg1&À4 ÷‚ýjÜ=\¤³äî0W,0˜J‹L¥¥EaP™A§Bè-÷¿"Ô±ôP:Ëi׈ý£/E ?>Ô±‚pºK.¶W=õ©1YEÓŸÊÍåL°·#éãÿþ%zã àn’kšåj‡å4LB7wÈžlP*ý£‚ÝûáWCé¦Î»ÃFЕ“2‡íÎ^L£»¼úµIˆg#“g"ÎBN쥬}†=•Awµà[¨y:wÌŒ ù‚/ ,š-Ö$¤k’ R’GªÌÉ隘dûÃìüÙÚBVlh΢–NŠhÇÑ7¨‡ÇŸzº?ßl=ö³éèa„†³yzú}p·©{9ï²6’Õ—S?ñ˜kcÍú0ÇeUÖ“ ô,ý¤ŸxÔóŸ+è(þ—Ŭ¤¸[_zEx<ÆRUl¶”H§d¡ÿN*˜„©;é`軓uªÊƒakè浪}oÒÞÖ¿Ìôsªé/•N¼IÃe§×Þ¤ÿ` /P";ß–ÓLCàÚ[ÔÏ©JvPÍØL¥ãàlm3ÝBÚîªCÛlæf:wŒÆ.8þ"ýRrÉï·ÐD©ta }E hƒ¾Ü$Ĕº*;ªð í*Œ2EóKA:Z(IKùã| 48 N7ÕÖp'º–tX—,Cp>½hGH.1Ô%kù2ZGgÑ`ÜJ+¥h;»•zÑDGN‰.ˆÏŸ¿ø˜ïx'z $S'æ¿tQ„³@AB­‘ 9Jü?Û½ƒbô³‡#ãUÐÿ?§wÊc07Õ`Îå®Ý´ŒiŽvéøüÙ‚o|¡ãÎ]QÏk 5  ¢»F졉 ÒvaQö¾@;¶‡ÖáIÌîß6ïNÞGûp·ÜÉL¯QöÓV"ÏÚèkô!Ó)ãéôêÏʤA ¦‡èÿ™Ô´xïŸX 'çäÄEŠÓ»ý™¥'O|&=ý41ýâfUδL®”ü< ’éwž2©nÏ `ó{e…Ïöó3˜o²‚xÛWÏcŽá:t:û*fS ½Ýfs°7Žõ` å€kxœ›ºŸê~þ mLFÆ;8d€ÔäI2*@jóyW}3‘D?ÊùÈ ¤§Ohb–ßü¥ì$#Ó¼¿¢}#3mß_Á|¤`òþ Ÿí›˜o±9Û×v0¿(ü%ûìfxœ›ºŸ¿e?ÃÆ©Û¦2ÞaœÞ•Î(#^\Y¬_–V¬—¡P’Z”›œXdÅpqNߛΨÅRZ’[°}A7ã<ÁöžJF fÚÞSÉÌ™mñv¹¼xœµXûsÚØþYügÉ&6Á€O'é( bM1P 'ݦ*ÃÅ܉4Ò•mšøïw®?2ÍîÔÁÝ{ÎwÞr¸oüêL[$C¡Æ¡ŠâÚ¤zCšþGÍzý诣Õß´êÍÖñ_è:ñCEö]L¿û‡¥Cô…úàuþP¨ÅËD^Ï™“ 5~ûí„®–ä„J$€%/š©[?  Ó(Q2[ÔJ´ E²i*£TDY*ª4X•ÑTÎðî‡SšÊT%ò*S‚Ô\¦”x³(Á’â,‰£TЭTsÂ1¿G™¢™–¹HTÒº‹i•â$º‘S1 ¯ðGÝFš¬ #%'B« åÆe‹«8~ç‘Ì)EZ˜6:³ÉtGŸ-×&Ç£¡;øätì•-Ïe²úrú#ÛíÛ£ e{Ð÷îȹ8§Žãµ{–sî1œÕë\«?rl>;£3rí–Û¡Ñ a#­ßî]tœþGÍåœ{än¸oÐ¥sÛmŸáÄúàôœÑïZ¡®3êÛžWõd²ûPîLã<Ô•a¶Ôý`Sϱ>ôlê\€ýNÞÐn;V¯ K\»=ª¢ø fµÿ~ a¬Žun}„m+îâñó™5òÐÄ…ÁÞEoĆuÝÁ9õžÇ†\x6dX# ¬:«Üìðª`µ—±ðjœAŸ zäZ¬GßþØs>Úý¶ÍbšzÄ .r·kž*Y®ã±ÜÁň0};ÕñàC¾Ú.¼pniஎîã$Aí¼á$Ȧ‚ÊáÕ$ZľªÍË|<£3ë“=¶Ü¡5î[ç¶g»ã³ ù[?‰ýÃÐ_ˆT$µùûÒ ¢^4g83(wbu:®÷ÏÒ <¢¸õ‰Ñ8y‚|Ô8Ù!ÖφÑÜ&eJoèâ²;F⸥”Ó§æ]…PªÍ4Nd¨f‡ûû‡w€©x’Ü4Sù1V•iê\ä¡®#¸«Ï·¨…{ŠÄQiaŠòMH%K^sï`÷É`Õ!P¡>¥ËT‰Ýrí3 Šf&¤Tè-×hçä=s£`ýNu5sS¸’`º—r¹ð“õUÜRå£þµŠ&s´€ýu=6óãlœ_¤É¤º¢™¦ªJ¹½ú­rúC¤“ŸBâFœ_²±kÓŸ’9×<€¾ ›JØù•»éÍПN‘¦ìÓDÈ¡ù5;€¡²$l1LInóÏP¯ÁÌCú^¥Ê­¹fb¦hÌ"I¨¢!ý ý:ÑC? 蓼“p ܽªæ9Ù…8yãä)Œ<Ñ ÁfÅ|Ú%ôŽl«ÛxÃ!zÑé;œÆ}É@¼ûƒ‘k[í3tw¸è>ÏmGmgÂ#+ØÙEœBr†7ÇE¼xþb¾"XG/_ÅÇ7+r@ÇÞL‘LZº&@͈Tß› v.#Êó=ÕÇÍ )ÿ«`¶<Å÷óB !kÌš egêÊ'J©ô‡ª9b<›-Ô—KD¦ü2«¯2"¡/Õ"þ’w*7ß¼©mý–/Q›:ºY´=ÔUÆÓ…ù¥~™¿7VïÍÕûÑe…Û’V‰Ót“ÈŒaû™¬@ÿÄKS9|ZPá ÷¥ÝÜýQÊÕ‰›M}c³éÊç¯X$NéºrP'YªlÌ×Pfš~Y¯4tXl0¨5ƒ $×Ü*ìÃD`ÝŸ =[ülð·m’n-d^-•¸•)òÓO•<‡}-ƒóSm­Ñ•ú»€  ¯¡%YÈÁ¯ßÕë{:\¸—ú‹I«ÅOohòáuá®ò@(S[P¥½Õ÷ª«=$·Š –ÙM‰J¯Ÿ’Ä®²6~î Û—ôýq~‘—ôö-6ª½fö—ÔDÁÉσ½Xc¿÷uƒW–ìáßJ®nGÜÒVz /‚-?ÖçlgmyR‡³†øâe£¹ñ†Xáâà€ï‰ÏŸÀýEãæúfË<¾¢ïß×"Þë â¹"ÚœgÔ®f¯smîKú÷¾ô¬ÔŸ“¹#q…ºáÖ°ôêÕšÞo2ߨ­sº›mNE4[ìEz©¤¨Æ?O  Íè– ƒ·k~õ(ËÿªåÜ ΗƒwÅ—6ç‡WðÐ×ÂÁ9ÅfwòË»r•ŠÚ¯löÑϼ°ñ|P‰/Å©óLæ<lþ“‰Ëí†jý„žºU*í¹˜è/7zªÍ"Åÿ1ñô¿{ÈžiŠ¢‚X½âKéÆÿ—Elµÿÿ‡¯Ì­àxœ;©~P}‚äÄ$•‰Ž²“Ò…8Záxœ;¨Þ¢>ÑVFÔHÁÈÀÀXßÀRßÀLÁÈØÊˆŒ6æ Ž‘¾¤xœ¥XmSÛHþ,ÿŠÙŠm0Æ&,GÌ’-ňà*cs–!»›KYcUdI+x¹ ÿýžž‘l L’½ [3Ý=ýòôËhgÓø©7íyÉ0hºj7Õ/í¶Z¯wð÷ºM­Ÿ;­ÝÎÞºŽ@’uÑOÆæNeB¾³ÿH¡nÝÇÞõ\RÍ­SûÍ›}šÜS/"†X²Ã™¼ubº c饋f…6ñGç"^xIâ…ÉÒD4È…°-©7çLiê%2ö&©$ç^BI.oÆ ¸gAQGa"èÖ“sÂ2†©¤™–¹ˆTRº‹iƒ¢8¼ñ¦b ŽÄ?AÎ$¼,É]„Òs…RA­”Í·¢H81œGŽï3§'’Ü´ñ©EöðdüÁYÔ³é|4¼ì[Ç´aÚxÞ spL½ÁØ ¬ñв;ØÃѸwqFÇ=»Û7{g6‹3û}ÁÈŒ{–MzãSYïÍÑ1‡8 '¬NtûǽÁ{ÅÕ;;ï÷på OèÌuO±b¾ëõ{ãß•B'½ñÀ²í&dÐ`HÖ¥5€r§JÎc]YLAÝwõ{滾E'ÄýNö¹Õí™ý,YÝq"òo `Vëß84,ëØ<3ßöŒ;üpjŽí!4Á`û¢?fÃNFÃ3êm› ¹°-œaŽM°*T†°Ãn€ÕBFlŒ‰¿î¸70ŽLÖc`½ï÷Þ[ƒ®ÅÇõ˜ ^h·+ž™£žÍç/Æ,`¨dBÌÀÒBU<8äÐ…wÏ­¼pf*Á'*>,.wƒ¹óÒ \? Ú&n¸ˆÙœoðòŒNÍKëÊ›Wó̲­ÑÕéŠü'ŽœÀYˆDÄÍùÛÊK _g03(gì?*/ñ„Ü6òcoI»£` m0¬CÇaP•$nD  ²#&ß{Á5§&kçùY"Jî)t˩łï¿"œÕ¼@ÖéÚkRiå-íq².‡*Y8çnÃØŸVÎ&¼4ËÜ’Hé…´’Ʋ.íÕX+Iî ·™ÄnƒÒ+ý0Mdƒ‰‰éê‡ìík¼¿VÖþ7e±„¥‹˜‘­[òÖœYƒ “bË€¬£ÔÄá…! øL8 õiòR»{îÕ-…á÷´Niw{=C¾3ñ…’?ãxåË#Vx.çNÂ… /jR8£‰8ñ}F\gïQ,d×&àHÕ¶éj%të$tãøÞTUNÞI"áz3…0§™9 Ïç’j´Ö°3D´„ÚgØ_Uš2LÝ9d *|¸N¢ ÚV*(•CHŠIÄ1N]7cñ}! @/dI䤨ç±2ëÜI}ºôîÿ"¨uú«bð™dž\1t:ÃÐΤZ…yèqvý1ÖJüûkì/ÔW83 FI怇‚ŽÈ2OCûâüÅè° i» >ã¡b›ƒáxd™ÝSwxàa-^‹«ü`"iò¸Æ‰¯Ùý­lpØyõ¦n£sqçL…ã73éøª&Úf0m®Õ. ,*“@ÓP¢õnÿ™:€nà߯Eëg(«ðàd0ó‚(…æÂ‡c[ŠE·^Å2 …. ;¤Á”>ƒÕ“(,Z<—°vó‡P´ª•¿_y€(#½âGè~˜ŸzמÄŸ(L¼‡ {îJ»¤ŽœX&÷>a!×|4zg3Š µäºx`e@ÈÉ\;ž£ U Q¥¡ÛÑ4­»#€ A­#~Øš(s޲ jQ;øØÕ^d»ëXZB¶Åˆ5à¨Ü:TNÀ·vë0ãƒ)GTmUµÚ²­-m[‘â®J_¿’þþ[UaäÂöôˆOA†™WZÑ«W zö7eöæxPÞ+‚—¤ó.Ę̂]YË$,P‰xÁö¬1º£¬M¶h¨g(áÒ6{A)¯HõÆÛ#u„ÖטÄÂù¢I´Ckü±©Ihk‰¶§~| ¥G´Õì56ÀKîžWi vA/¨í‡·"f'þJU§JªšÕúeÛûßTõÌuúú]E+%%¨4s¨(°3P—w Ý ;zÙpš“¦ÛœŸŒšªm.fáH yøaâɤ¾¢Ë¨&EªÝ½2UFãi^ïivò #ußf¹ ¾Ö*#Å@~omÁºv<öÊÊ)¹OT ¨¨TŸ ÷‹né±ãù\8.|‚ëˆVD{±ÿŸV•ÃŽlM"ÇY¶–´É‡‹Ä/ Žë†ñTO…Šˆ7³"ƒ‰DÛ¸,(ùé—®@Ê}ÐV§¬K¶Çm‚PÊiUéATè@KÓòl ØÄ½'å}>`àd}ºÕ)SeÙïI0 Â@#šçQMßî rˆøöviä,&áî’°9aÒƒfBñPe¾õ sqën6ãºÆÉ¡Ÿøç™ú5C³"“v÷ŸœþºpzÓÕç43ˆ¯4X©ð5ÙþTFç•©•µáÄ®åÒx Å੆{% ›Ó\Güþ€’˯»üzäZÿ#-WK»jé ¨7皪q˜ÚTáÑõlÌù\ÔíB,Ü辦F‚W7Ü,ó;W6°åªñ÷P)OŽk·Â¤X¼e”.>®kþ25 פ(ò±p=ø±iëãè¤Û>8Ø£Ý&ÜÉ}nú‚!ôw'0£¶[§NG½1¡Yꯔç÷:¸`=“Q 5_’‹/žTzAy|m˜ÜÓ™+ͼ·Éÿ?Ú}ç"È]ÆV ÓÝ2¹ò?~6ZíÝ×{?ïÿëà3qц*þK²ô1™ù®{ll¨‘O ”‹èco°¯Áò©A›2Â?\ øÃ ý0ˆ@\Ô4“ÍÛi,Ã/ÙxéÎq5un¯îòæZ˜F+ ÐDÈZMò‰3ë Õ §û+ ò±¼¡H/7Ôñ¬vý¾.Þ}á¨F€xÆâÏ¡Iô]O•¤—hnG«2Í>V-¼£0µ¤zœêLz±œÃÚ@œ«áÊ<5LV–ce7~AQ«‡z4ÞÚªç O§mÑ…‘;g§deFñ$2vçq­–y+ËPÃWîãÑ‘¶_©ù=¦T3åS.“¿ÈØõô¢Ç!´«ÃüIÕ*ÐmçBêËøI=~¹©3ÓÇmò¸)hñâç h…•<àAU´™wå;©ü–+QÒ¡8‹ Ò?*ñåA${õ?§«oõà”Axœ;grÌd‚äÄ$•‰Ž²“ÞH;lÄáxœ;fÒi2ÑVFÔHÁÈÀÀXßÀRßÀLÁÈØÊ„6æÝ” ʸhxœ}UkoÚ0ý~Å­ZiêÊ£ÝÔ•i[A­T Zh¥ªª"“ØÄZ°‘}C˪þ÷ù ²| Î9çžû2zp4¤ø3¼¼™>IÐ:iC»Ù3,4“¬m™Þ§¸ÓÂJ&!H,ßå ß¶˜xœíYms£Fþ,ýŠŽ7•H*b½¹®¼/Þ*,a›:YryãÊm)†õd¨i­ÍíO÷ $#ÙItå/çÚZÁt÷Ó/óÌôÍFåû!KÎÍþ˜ÛÎç‰Ë–ÇŽ²„öq:­V·ÙzÝlu¡Ý}Ón¿iŸÀï¾=íaßWÍjµÙø© è…óUÄ?Ý'PsêÐ~ýúT!ë6X÷ $>\„‹Àµ èsLvªïƒ°‹!b1‹–Ì¥qY÷<'tà¯Ë"Ž2ð¢pqè%_숡4H">]$(IÂr_5]AïÞŽ|Ãõ1\ÙA°˜en æòX¢ 6Ø ‹}èf9LŒLy`G+ðÂh+ð…'÷Fâ7\$„2 ]îq'ÍŽb›³hÆŠl…KîRˆ÷v‚ÿ1Äñýð >Q.'£˜PÈnÆ’7tÝ>Þ -†ÐËbe™-â«–Ø+¡ÚÓpI¢t&ÿ‚0áSPËè#ÁänEz›1¡SÇ·ùŒEbŠ:A‡…Šd`žîƒûßÄ2ËÉ ÅŒ‰MZç#Dy3;A²Ø~œ^LÓÉumwÉ¢„Çä2·'¨Hƒ³“2”¦èq‹$2*¦a‰J “¹o¯¶2Áµ„_|æ~b„û&µ ?ÁtY½Ótü…Ërhäþ’ùáó˜JPÉñÀöÊ…äIœ/0ŠE¾'ÇhÍE)°g"—Ò•ƒÓ•k ö!d굌[Á”Q]Ä2d‹£ŒJ…IÍ„eÉ­×qŠ"VóF³5ñœ9´¢Ð”ÓR‹h-rUÅq:}b›¸ÒM0GÖÕЯoŒÑ­Þ×úp~‡B †š%ò‡}ÕÒGC¬Ñ°‡ó>ìCo4´ ý|l “À~ûM5ãÇ…TÞöË¡™&Œ Яo:â¢#CZºf ¤Á¸¯/@Ž,è׺¥‰é±FŠá±%Œ.àZ3zWx«žëݺ./tkHî.П 7ªaé½ñ@5íflÜŒL (Ͼnöª~­õƒ@Ç ÝjC Ì+u0Nó„)øíLÏ5 T=hÒfÚ× ­gQJùU ‰0o´žNÚ/f£w Š­44µŸÇ¨‡rè«×ê%æWÛ]Qœ¥ÞØÐ®)æÑá˜ãsÓÒ­±¥ÁåhÔ%75ãVïiæ[ŒLQ´±©)èÄRÉ=¡`ÅPŒ×çcS§Ú–>´4ÃßPöu¸}Àâ` T´î‹:cQ(g¬Óȸ#\*†˜>\i8Žó=LÓ³ •Êab{VQ½b=­B²È¶Ë~© {IGôA7µºhv†n’Ž.PÑó˜Òó…±ÉËŸ1« _€Ú¿Õ)x©,è€ÑSêà¨9î]¥Õ§¥Ñ¬¾â\©·Ú3¸Ð/'W8"÷8 ¦N8›ÛI“.:¾?ª¾Â…˽j¹Z²š³˜´r\óΜôúÚ…Y„~¯â¦ã2•ß =\ú˜[›LŒž©÷ëðÃð]6èó ©WSQíèïIŽêoSŸÐlP»¦jlE˜¦ó~k8ƆB£y’H£ôXm&– |Ží~2qyøhÈçÓí±;ÄæØ"ÀVånÆB¿þw_»}TðÙgªQY\Gë ÒÜQ~Ü©ˆ±Dþ,™ÆîÛ2‘1¶Kv:9-ow&V¹ädÒ.·9tNJè<Œ×œÉŠàcÄ&tî°“’î2ä.4(Þ!ªÕ ’€=ÌÈŽaH,Ã$©Ê´rÉjÄlš‹‰bÆcá”Eñ¯ëÕ?ª¡MÝ¡*8µÎΠS”‘ΰó}fxUË [•5Hû#ÆP†3û÷0ª¡b¾;ƒ\¹Žò 2ê¡ÖVàˆKÛÇØ…vªu”cð £½ ƒ´‹߀ù1«T“0DWžá8óݘŽr Ë* ð`¹ˆßV¿a5_ÉÅZñ¥¼©=Ô+••±Û™$õþ=àʆÖC«Õò<¯ÕªÃû÷§õz= àžÖ­ eÿ/ü‡r­Tðä°áG¸’~Z~äì¬=)«:ºÓš9z÷ŽbÛ 8w„J+¡Dþ7ƒ*QBï›!a,)y¡H=Îa¨—¡=‡™îˆ¸ êåø˜nVħ :h²¦ãé#2>aí‰yOIÖ*¡ØÚ¾œc§ÛA”°§µåªœ<™£±'ƒ{}2åCðgÖË;ÚãÍèyìyÊt/u„ñ?¦Í{99eêYt!ÅCP¥ çåh"8;g{£iuZ˜²ßZ¶ B/{D–Ô¾œ.Ö_kRÒW9a¤£QF‚=‹4Rõ´)GzAâÐùwqœü´óx‹Ùo†Ý'ˆ#íˉÓ>Ýb?qºûˆ#Š8ìyĪ!N)ÒK6¦ÎÉÞ´ ÎIIkÚcœn{h#Íwl7'Û!ìe·o»~Ö ë™ 5Ó¢J€^´Gá¿Ó=§ÙMjð¤h½§KžìÖæñbºðä‘hW›“ÊJùú÷[Ýþ'»¯å¡M¼Šø?„ub݉‰y+O-¿î”¤) ÿY¢ä{n¦dôi›ÉÛ``©ÝWw…^deßˤ¦üXFÔo8òûY£)UóïkâƒÔ”A,ßùì;¶ï¯H5N"úà$ñh2åû3çÞŽ* ú惱¤oã* ºÀ`2ï¿~ÄYG“?Žº§ÿµq¤dß?IG·ÇÅB‚|]IIúHˆ²â“®”ÝÏh)à±#Ç·ÜøMŠÝ¬À…5äØm* ùK{žø˜x‹º)«Î %…ŒØˆàÌæ5ÒWRœŸÞÓ]=å»d4ÒW…o"¾/"ž™4¤‹îU˜™sæüÿ7¾žþzú¸éZGð i4eœÉoß>{þ²Û:†¹ð¹„ÁõŽ,·ITݘÊwÞûJí=U»9qœÔ¡Ýét6?ŸlnVKe’Â$YE~úãÏïû9d<ˆV!…þ9Hâ¥/_,9 éŒq So4=ýp>þè 'ë¸Ep"·˜e;]â—ù»¡àC*ãsˆp–5‰§×#\‚KŠ¦Ë„…ùB,/+§Q+ ±EI`§xg2³ÍŽÓ#›­ªú0>bY‚Ê•à`ëu~Iã5 V/kõv±%OÙd`NQ{i¶é@·¹`á pK"LÛV  )k&(ÅCU–ÛQG¸X“R}º&$38ý0T4߆!ø˜¤1Èä‚Þbʸ$ۯ¯¹BîÇTó-©Ô,úP²Õ€¶“iÁªËr]N¯¼2¬Z¿še ËÐÓ†ëZ†bëp<­K_“™Gܱi´·äJ¢¥)€f÷“1V«]¨tÝ3ˆ[9aX? >Ão‘Ôl¾£ªBIв}®ˆЦ†ªüL%0Åê_Y¼•<jO_ƒvg‰;c: Àà?¸®ÕtQ‘¥iv¡áìm;9¼ªqÆu´Îð‹Æ'4¤£•íg+%RtÝ‘¯2 íçÿv4)‚xYh“{ªkQŽâØ*g¡b\ ÙûÓ×ä/{šŠüâƒ|xœûëôÅi‚´”‘‚‘±¾¥¾¡‚¡©•±¡•¡¥BVNbîF³ì“²Kð(å%%çç¥e¦ëe(Mfæ˜GÏäA“ù8{6Ïå| vû¥á„5xœ»$Ù/9Ñ^JÔHÁÈÀÀXßÀRßÀLÁÈØÊˆL6%ðŽÞ&à„axœ»$yJr‚øÄ8•‰öÒãJx7—²¼xœVÛnÛF}&¿bš…hëBR²ZÛQ '1Ð>4-HQÆŠZI[ó¢î.m+µÿ½g–¤IÉN‘†(r8—3÷xÏßJûêÝ›²*“«l˜ô¯)ƇáxÂ)Åã“¿)­´È-ßnè¹w0òýoUž¤åBÒ³|žÙFØáú™ï|: ÷¯éZj£ŠœŠ%eWl 7ðmÔð\¬•¡¤€üç…¥M¡­˜§²OóÒÒM¡¯ A>+Œ¥÷¹º¤êJ’Ù+33d?/É®%¥E"Rçç"—´¬L™eR;rŸJ£òU‹ƒ–ežX c-"_XüUË<Åri$›/ÓÍ%$õZŽTŠ ™ù°<àãCš’–—JËE¨Šrµ*O¢0€³a‹·"½[CV—’}aEgù´>ƒobáÀ%…Ö2±¤²M*3™[aëÀrœmá|¼´¬ š¸Ë[e¬⪢nX,ixM9¿Ì®V™í@€r›ÑÍÿßSH4Ã`Gyê{•Y<Žˆ‰ˆÍ²ÐÒy—¹]³¯6HZ™µÊå‚Ìî€k¹ü3Š?ÒŒ`Ä û4ŽúttܧcÉÅÐɾ­ß9£k©]"À…1Šã®rJ„‘ûºÀ$\8U<$¹­CJÕ\ ½uJW0ͽƒ|uKÇÁ9g(S¹2"WvKÉZ&W Œ ðE’Hƒf(­Qð³¨Ê^h-¶.êjI½^í©¼´Ù%²B/gl€hkiKS¯Jd@ƒè´’«™·RhzAç¿ýúú§Ë?ÎÏ~§]üâž._½;ÿœßÛ"Ÿ]%‡;rPÓëàyAqÃ¥Ù-h6þÂòŽ‚§"„«×kQ ¢ fD¬dó†![´°ÔÃÕ`ßñ{GÛ¾ã=žÑ!"à¹nýù‹ÍÜhʃw,OœdÍ…¹ ™: ;’*ß'¡D8´GÜBú±yÂІ_÷¾_7t5ÂŸèæ¦u1•âSîиÛk{¨Ä7…«­¥ÒhàU‰²¶%ÆAlô4›uQ}¾J ÚˆkI×"-Ûîn‘3ëF+kÑfó-A9é š(2i ¬Æ à Õlßqj|ñÀø tÍ#Ò–îî`0n,Ò73Pà¦Oný3·#p¿©ñµbáKËz"pð×~©®»=‚Ív #óË'¨3Ò:tf}WÆv_ºêáQûVëÍ ûoŶE KãȨºpju®rúÕDæAÆð*c‹ÃV¤n­caŠtø ËÒ!R.r•úDš;öÎÌi§9€Þ>eèÀæTÂÐíMEhµ¨„vREt Í}Æ‹ûÎp\½a1Z¦D-¼j\¶u1suÁŸ9ÔwܧÀÏ*ö€÷é±X°#7˜Ñäkä`oü•ö¾' z§ÜÀË¢DP\(dŠîå~¨òQ-T[q +³¹±.ì¡iè4Õž;>½[ë 5lN¦#Ò9:gªî¢mx÷ö­ÛÊ­ÆaÍæ U>Yt¨›lGGÜGŽ•£FL e9Љ·uie­†#Qûµï×#oðÝÓGcÞ:ZëRÕ‡{q¾pôÿ G®M#á‰xœ;$~H\C_‹SÅ3ÅJ¡$375=W/Y§LÁP Œ ŒõÈØPÁÀt£Æ,nNu ™j8xœ;$¾O|‚ØF©Ü9Ó± xœ» Â@ëìWœ"U}A;QÐF±’ÍC¼àîsWÌßÒ̌ʒôØòæ²-ÑDçYϾ0Ò`®u®t¡ÌzYæ«Òä ¯»_‡4É”*ÃíCÌ­G5àp=íq·}|FG ?%$pŽÕ›j4ÁYò£Ø³å‘gøª®³ü˜îkñ15*p¶â{xœì½{cÛ¶Î8üwü)8×›ãÌv.½lKæí¤nÚæœ4É›¤[÷4#Û²£Å–_ Œ‰aÀÎ<¿Ë‚ÑÀ CÇí3 Néãò÷ÅÒŠŸ«ììØéS~Þ#¡oùH=hV߆F¿p›P ì"šÐiuÈ„±Vë³²ÂXn”ñ·\°f›Ÿ¯§6B¬æ±‘8ç“›­Cz’y<¢!=v1ñ à09@jבÜó/wvðßš€€àdüVÐ"¨ý ul=¶ga– ÿîù'Ìòqòùä@ɾ]{\_boßÜf'Áq½P’™ÙÆöoìÍúæý³»~𺰻¿Ü(—X+ò/xÒ(À¿½µÏÜ1PÜíàÄÇy ¸€?`A‡P­­õíWôÏÛõWl«ÙZñbocŸ‚[[øÓÜÙÚZ? ÄæÁ»Ø|±±}°ùr³¹~]À15[o6Ö÷ßîm¼4þ¹¿X ×›íƒõ½?0¼½þ†l¿}³±·ÙÄàîúîÆžDs°±µ±û2ÐÇæ›B׃ì¤Á÷çkÑX8š·²oU£¹ÆìsêJS¡¾9*VT÷À¸Ÿš'ï2Æ"ÂG‰Ðs]ϵ Äÿ;>ð âãÀfm+°]kÈÇ `b³UV>œ·+åiãaø6Z(.,Øz‰Ÿ-&FŽ"JñÝQ&ϽXÔK”0 ÐJViÆPÝFŒ^ب}nwÆ¡EÓ2èQIËSt©È>}¢Kt€Ò1 ˆQ_X<œÿçâüoá°²¸P*³ÃOÐ÷sìzw8¿¸xX™¢'Ô±›8‘ëHä.P»sìÉÂ?Q—Ð]åÅ?ë ‡f=¡"‹Yå./®±¿×Øg€ŸclñÏw ÿaÁ3@*м4ˆ`êU>"jâÜe®mwÖÜ«ŸÝÚÜÞØÞQ‘‡`¸Æ­ŸzN—ñùîxœ·ylùV'´}¶g¹}œß@îŽßØ!D²Õîtí^ÿØùëd0t½Ñß~ŽOÏÎ/þ) Эƒ`£òúóæ‹—¯^oþ÷[o¶wvÿ¿½ýƒ·¿ýþîÿS kÉ(¤dà ]§ï„PþÒòÊã'OŸýðãO‰5pÇC‰bË@Á3hA·q:ù¸ŠXƒ3ë"`$GÔÕÊKR¦µ¿±»¾·~°³'oÈÝ£{¿øH OEö Ê ¥R–Ÿ‘½ò¾ôSew EBe¹õá°R=\>\ÿKÜ¡‰»VªV£‚RŠqE:ìÖÌ1NŒGI„fÚ§OÖªNÊÌ1-¶»³¿ù˜µ=Ì^±¨ç^xnÖf®d¡ùs€:Ç´!`¥÷KªPƒq€ƒd&dÐý0MQ"ØÃ€!¾À[\±ÅÃlrøÑJÓÕ">ÉCRêÑâ+‡:Œ¾4ȤÞR:E@e‹A Óöˆ¤YÁ:£¨‚ã¸Îê‹mí¶8­p šb :°€3t¼áÐâ‰S²h–ñ®@Æ -?ì€LA1ËÕ•êã£*O®¹L©|É_è,Tk.ˆ‡Í×;­íÿm6Ê…24Êse.‡!ìc  h *à*‚¿ÆqvÊ:$ç·7¯Cзr7£FQ;ÌwÌ¿è1PËj&‘$×W!Žv¼ñ Ëþc'Ûâ/þûjww–ÒþѺhUˆ ¬]Á>"ï£zÚá²-©°Æ6ûö÷§Ö¤]Ï…AI(å‘þ¹Ò† ›ç +õ¥']H¶QÐpMДs Õ8ÐZ¾ÃXÃÑÞ¥øcÄ *ŒÐKapà¶`›Û±ÚÈØÇ©$"\™‹—¤Ä„ˆŒd”8®Ö¡F€3KbOPà«`žM(‹ Z#ØsF¥É¸hј’ºH) ¢I‹ œGœ­´æCk„ëWès]1ÄX¢óšÐ9\U(C¿Õ2\*.¾]05 ßîš:†oׂoßÿÙÒyÿ‡o[ßö/]yJbÔ#8VÕøþÛÑhJaP æ4ÚQgË4pÉ*ÒИuí3! pnÇEñBð0¿ 2é£PÞ/²¹ÅPKš/¸î'&yLBw 2 J0 OðÐ¥°»Þüßú« Ò¼SŠNöÊ*é`}oJª8ki”åI`”´°·¹ýÊÈÇ’PÏß¾ÚÛØÝÙƒU3~\H/­NèѨlÁ$á'œ¤Ä@VÐ@tÜÎ`ܵ9hÅÃÂ#É~®ãÕ¨{½þTñýž\ì·^PÇ!/‚ÅðbdŒšÕž™gÿ`ý ™§J,ÇþÁ‹fëõÆú ÔêàaÈBÀF$Ô›c@¾úˆ©2^lm>§ÓqˆãU¥àí±oôÊ Ž€`Þl¼ÙÙû#†zCп0Pëåbw¤’†Ê‹“ÀSI¹¹}B}Ç 5â'™’„€<Óñv{ršÅÀv2FÕæ #ˆ6^x «)×󘪦ϛ#,6+˜9XbÌ“h.8S?L„!¬9–à†¸El®Ôø…žÇ¼ìZ¡EI²C [°ßÄñh0²ËèËis%ƒÞ «}9nÏÃ_ á§=vÝ?„Eî.‚¡åÃ: >^l¼Ü2«a…ÔÊ`ØîsQg4¡S »'ñ{9/a( @( ÍõííÍæúVëõÎþÛÜnn½}±±Ïö7ZÈÑY³ÉšÄÖÙÖ þ âàb¶`ãÝÆÆ»¶óü¿ø³¹ syk«µ»·ójoýúÞoîmîFÉ/ÖÖÙÖvkŸí­oC›:ñ±þûÿØú[{°ƒ«ø<#qf{)eBÍD¨72¿h”‰á©UÐæ«ud³k}˜øH,Äðœþ`ÔP_§À!]ÈfüÐ$ÂAâ*)@pPáÈ pkˆ1o•v±kÁªˆ-#?ÊtñÒÊ«¬â;U¼¡Öö‚6œÐU×kñýmƒ ëŒyå :ñiqÁ¸—ˆ3gF#¨žÃÿ TÅ ð‹¥>ÎF¨Ñöˆ8W‹GvŽBƒt‘Dz˜$ƒ‰¸íµqéÑNÄ ¸î{`÷Ð,dJ˜&6ímñh*Àm=+­T¶:}’7{žW,ðÍ ¦…Fï ˆØißpª·ùù1îktT€ƒ\iKå˜vҼϰÂoñôÙù3 êÀÒI›|(½¶´ó¨¢!Ç Êì°S‡zAc¬NÇÑ.X/p¦Ó(—>jøŒBR¹LH (5âS ‘T.†*320À­Xšž•„$ƒÅéÉ j@¹:ËÓSØT« 5*"N¨g±å‚Á+eGU¢`fÆžW.p^ªÇCL™Vˆ8mð£N‹5®ê‡ñÈy„p<Èyª8Ƴ ¿O¢&ˆŠ°­é»dp¤miÑ$F”PŒ›9¨”ÆaI\ä›TY)üÀ#6ØØ|«Z`¢–Pt㈴¨\WùQ#qþþÏÆ‡…×Ëá©66e] 'æ qK¢k^ôݱn¢¥XP@g8•ºŽÕwa*0 <˜ƒê0FŠjˆ­‰•ñ«%‚*$â·b´Wä"Œ@ÑXÐðéZ8 ªPccùJŠfˆœ°ÓŠHÀFHÄo¬~ÚJ,*‰1²ÔX8 ªªV„(¥nÄÙk¤…Àl“>/²ÐÑ"´pT!¿üÇlk´¼ˆ¦FÕÍ™û†ÏXí ýC GA’IFm LR±ÆGuÔòf"‡¨s‘M sXP2UHįIE‰“PòÙ»ñ¥há(¨Ñ²kI:HLI"t¹I_Mä—_ª’ÂÊo"'©-È<Š›pÜžý,ÎB~Q«&ª¥¹ ‡ïÇ ENP/ˆc1Y’(‹*ÖÞÿY3Õ9E]©Jjþ)Ê|Çå œTâ*3J™}Ô£ –£aš“r°X[l-ö-83·]Ò»iÐ ×+Ênà©¢äÇ%:AdÁ£•Ƈ¼Òº!eMâ]h %‰¶fŠj˘¢ÀW Ë‹åCñW./ö‹GÂ…£(v TÔÑìÄQPŽJ*GㄞšØnÒÐv¡ò;žÎ¿ÕìWQÆ—þ¡…£ ‘_įɺô:qö¥ÕJ0$]°^ˆ×<£ñ.2?/ý#†)JR!Éõ&Ùcr„~ùOEL¯¡*\£Ó‡Z 7f̧~µàKĈ[A¡Ä/þ+"G;Ççö‰éÛ_P´p¡c!™ØâÚ:Æ@Ã…£ iƒc<™”íCeÒâ×?šªBÔ"Dÿ˜A’eMé3MQ‚¹&}_ú‡9ü; ª ˜íÑ âíÑv! ±ªÄ#bßæ§6˜yŒž¬…£ ¤“V`¸‰ç‰‡£  É@¼Ù<«l3ß_-èh/ýC GÁ¨ò bG¸ÉÙð7æÿ{ìØ\2C2 ~ù¬?¦¸xP…d€WJœkòH  %ÃQP…d@üš00–ã0)íKÿÐÂáƒv$IL šˆ‰G¤`2AŒ/ýC ›HT‚êd³=)}íÈ~Ñ1êaŠ ™µËªò06¥_i!âA’ñ«ƒ¯i„­Æ‚†OÿÐÂQP…TMý êÍ,ŠrLø4¾ô¨?è; ª ˆßXK£òDk#›†…Xâ±oóS)£'ká(¨BŠfQÉIºq/ʪ ˆ_þc¶ß°ãàQ¢6É-UHdtü)­8EhaD“á(¨Bµ´Òa\%cá(¨BøÍÔjK­U‰”Ôú¼Y<QÛéN9𣠷t0'J¿Ñƒ9S;˜S¥d<˜‹h"æDÌ—{.GZ ­¦é§rRwúºä`À<·qX~Ï›rXžèí¨¼v>õðí\SëëŒá\§pv2éÓøÒ?/?΀(¨B2`²×ȬQ0רdÁ)'GľÍOmy9×ÏÎù GAÉ‘5KË$?>¯)³K‘oÒ·ù©U†ÇèZ8 ª Ä ,)Y„.Ä+—ˆ‰Gôâq&ˆñ¥há(3ªB’šÀ&L±±ëÛ¯ï:ÿ á(q‰Uü vxTZbüX¶,nSø6ŒùCî‰,Û<ä•YhD¬ÊvOÑ…Ò$N¥Ö«ÆÍò(^¬bQ7À¡Œ9e!9ÔUÖWE%š‹†l:÷O%adWHöróÝ›Uí²¸[D—–ä%ÜÇõ%AIƒ¿¯ïmon¿ZeÞXbàœÌ«ŒŸ£W• §HÂR»¯õ,2¡"²Sè쯈è#:*¯B¥X8ÌgHIî‹„4A“´!NË:÷¶2ÝÆVånÔjÚÒ0ѺԂ•‰¯KÆ 9ÄÛÙÂÊmÁSÚ;qrvÏјܧ;ÕüªªîÿDz~ëHÏoÉû(Ü™# ¥¨E  „,„:×)}@~öëªp´ó‰¡¡=ü”ˬ¢ùÙ™DFÀ€ZºÛ–È,Ÿ´xXýZMÔeUVb&q"ïÒeÛåètÛ8‡b”Ë¿ëÜιÁÞùâz䀮SrŸÀºF¶7ØäŠ»;ÃûtoY›ïØÐ-6ôƒ5=*áD/š±¸FqŒp¯æ“×<Œ®=»<ðŸäpºÖE½À­«K_)Q)â'±•-霤0­æ")BD^`"'IŒV|Ü‘RüÖëкhÛÓØúf8û™å†œ@x½é#mÒ‘ÃVÅ-wÎøùbÄ ™-^$ãEr§l]—i|`µÌtô‰jók*òÒª‘Ïx¹£2S Âxî(ÐuôN+ô¼<¯*D¼Z'3úI2µäZ¡ Üópý0~È$î-G÷ž¨—…Û èݱßA5t³…Wûa‚ÓæóÌâ®3ÈåEÏÁ{»jAÿM\‡e,#r¼˜‚PL™Ë¹mãÓ'`ó±"+ä^/":ö«gÚ¡(ï×.]LÐl^ãàÿó®Ì¤ü°Qëqr&¦ÝĺÊúY´S“ȹG­Ã£¨8áÔ Û…NTfWYŒ¹O‘-•âê·¸gCA†?É ¥o—¿…1Ê÷-m·Ð™±!‚“o³4HòUn®ªØÁ§—@™œŽ¡"î.0FF58L[æ£B³ K‚¦bD]nõ(£†¬ÀhÈQÑYѦOÀŒpͦ@Öl5ƒx‘«ÙÔЦGIFŠ£[Û2 }˜¥ðt™¾t”S²› ˜&n‹üâË(_BˆìâSC?E (‰…j(î®ËfˆO“F¶C|ë &–‚I¤GâuÐ2™(S²h‰Z.ý.…Ò†¡{xH6–u?€|XㆢægjgˆžkPÊv@ºõÑÿ¬ÒóмfʽØÂÇ  à x?7ÞÜ‹¹pµ WcžÇèÆ¿™­< ß§ë‹oß±Ções—³!ûùçÖzscçeø³¼éZŽ.½©* z«kB^I÷‚8è0ö,Â}O½Px‹•ZE—¶ïwvÑßú‡z½ÎÞÿ¶¾×øm}ëí~ ž¼ dw|ÏšOAÌÛõ~½ÊšÍªpž¹*U!¤’9…D®}ý*¼3Úíum.jM±‚^ä„ýÞ8RÜa­_pñ€;pÑð‹ïR4¦]¶ouNlôíRh r‘ îkÇU9FŒ¿®ŒÖ)ÍŠÉ ÷PèZI,“¬‰¨EGz¢“'&Šè®‹Q.Þ§GÜT8A^óWƪÊñµßªÚIb²2ESÊêí©ýÙÉ8¦Ê”½ ºé¤•#“Ät´†#º^/˱¨¶hi_nnm0qG•O6ŸÔWДø^\Èì~Àâ›XªqÑ•þøa/Y‚øõ¯èü¬æ"‚ÈZ5Ÿ×_Äzã-цJÕZÈ+/6÷d¦ž¹£:còûè~¹€ 1/ãó4Õ „c4ì¤ÙåîÞìëU¥¯Ëï;¸ †âjP!õô Õ«Ä3Æt@úß{äo¦×+"¶q¹mC•ŸZrJ¹³ æ@˜çʱDˆ¥;³(ó-¼*TŒmY ð¸díÉO"JIB— ÜëûÃÓÁx –+‹á=!Ô’”‡|­S0–÷i‰#OÄTIyG¸Ð3`”Ò8,½Þy³Qþò=Ñ_9þ>‰7¨’ÒCçOÄñݬ†cÚi 6çL2Â2K«ðGŽì#Ÿy{/zÉÅ;¤9GÄ}³Œñ܉ø û|>“Ë3Á.H×üüíæÖ ª[´~õ¤¿,ñćyßLJ¿Ä’Ì/·’,þGzÒšÔ¢ÔJÚ]Q ‚±º€2½'œª³Ä 3ÆYW${+‘[1¨4eiÃ…¡O,’–*BµaÈtܯbR^-òc aR9û\ÆïÁ6ÂE¯Yé".’µÙŒ:»)­…£`à~Ââ½ÕÇ^—Åð]½Ê¤*Cñ™Õ¶~F›˜¿ N 5ëtŒÍ|¹{àû¡py#R°Îº¨Ùç‰üHñs2®E†AVïtø» v¾ŠzDÍ'“|þ¡Ë:^5Ò!šf<é€cí%¬ß4X]?r@®à“‹šÙ‚¡¬þyX'=`µJzêGlëõÅ"µ‹|âGƒIèm#¼‚"¡7Šªf–$µ¹úq¡ ¥TñÜ<ÒckN ¥>æÜIèa‰/Õ+XçmOm$„bèï¼k›E'½èæ¼.©)õéômœßÄ ×O«˜j±‘]©¦éÑ1®ŽR£GI7>üèV³kgºØ3úIv¼‚*&Ù× Éú”t“í… ™ìˆvRñÆ*žZNZ1éù”ós鎻 <¸ 2£x*¿Õ@%{ÏC÷ü 'Êq¾Ba,n3ÚèQb“3EøÐÆ£ŽŽ&Ÿbª'f™ÑÌi™?Æšö¹Ç!»~BÑÑAB¼à#•™¡*®!ì…šÊ#;Šx«øôßx99€–¾Û‚ðBx+'¨Ø¤èiõ^Œ€ §15p¨‹`‰;]”-©{ÓhF‘W(îªEÕѯÙ'}É í¸ëfIÿÖX^™8Ó˜p¶ïzªK¬0®?r#GfSôΑ|µ*ˆ_‰Nùy8>”†K‹JŠ+M@Ôå6]Ћš(E¾Bê#´¨ ¼dg<{#Ç^ïéXA,&鋇·hyðô¡Gxýö—ïžFÚ+ª¸|C zž@ªýP”êŽÅã:RÊ ðq¯]€i5T»«¤‡¦AžêÓzØÓÈ‚ª!t­ !òÅfHf\uG…èÍGªêiñ2,æ˜Ñéè-Ý=•†BjçÞ`f R õà¥ÿ(­ÞÇ‚Têí¿EçÌÆ‹ºâ…Ý]XÁpbÔã/îÒ+»Ê—}ƒ]α½HRFù?ãåsw잸ޙ«òøz?[ž@ÏdËsªç9‘§ ß%[F”;;Ë7ß„E51à_Je0ªyÌ]Â…II<ê/Y-Ù ÂY;ÑñÅ’ÒЦãƒ{jŸ/âS iT¾DÒ ²áÈ# Éöʤ)ÍÐ R¡•B?‘4 çdúyÁÀ>µ:¾XR6úñáàb§ÔO&M¨`rÀ(P¸ûù(VåózEaáøùv!ÉÀ ±·¿oj¢q>ê ù>8ñ«(?ûŸmãë&!z~–:ji¢µã>,;#<\1Ž`"æ"†Þ³/Ô©®-ãQ…8|’>¥Õ9h`HJ&»ƒO„ÃJ†ôíÉ—",8äW{]Nÿ=öBþ–Žå÷Ýž[ÿíЪuäÛ¶”ï ßžá[lAÀõ°yç’°ÒÁ‚˺ãÑÀ*Û5eù‰îµÅS0õ‚.fµ°äF2j)%n™â›û^Žƒ°udo¹ö¹zÌ›oò±r8”–Ù H"°„Å/©BÃûBy–âˆnˆÐe T7>°3“»iÏ{Õ»ôW¼MÏX(²â§…âþûþðýá‡Ãÿwøè°tøçáw‡ ‡ó‡•ÇŸ?®þ|øËᯇÅÃò‡‰ÓD×̸?‘¸†§h+z‚"—+,¥Ÿ‹¥d$+‹Bùe=̼¢U.>,RP,k(DF¹(%°ºÐ›{*(mŒÁ®í¿%3i­mÁþ-Äy Òþ .w š–!uœñ¿qý(á¹ÿ™àÊ×°fÿ4ÁÕ,~(—|+OZ ñѺ†¥nö&0$îÓÊȔەü¾UEC (”:Š&Áð/­³‹0âUÃØgÉI)ÿôÇ5éÏH¯ÑëĉŽÇÑ¡jHÄ..e\¦ Ëg`‰± c Èï;]õ¨žm‘2Œž²ªGE ÷ƒÙ]0ê.ª½=U•BSíÔdjÊ«¨)sV=’šLCÓÆ)Å/O-~9KñËSŠ_¦±ßÉM‘üñ·8¨$…M]¹[e ­;A-Ð/¾å_HËqzß¶Mh²8¢=WRŠ»¸ªÃÔˆs€õóLءЂÓ$‘œÑ5.(_zÄÊ ð}íqp‹ªR#È;1âgz*‚ÎCã˜ññ¶®Ôü¹°1ˆÌí}öâ-{Z_‚­³c»Ý*7! ³ô£ÎÀ ì2Õ„*ð_VFâ´øÓcÒ¯¤`ÞÇãÇ =ÒÆ+RnÐÕA~gDœBE[W·ùE-‹X„^bÿùλ˜PeH_Ä #3¦¤¦ .UŸPôj­‡² Î#ì!˜Zg¾r{}[ÝÀFú:ÏP\ûŒ¿õÅ6Ø(`õça,Vè•GaÓζœÇéˆÓ³Q.Âÿý»Æ.ëû( žùH½ƒ®22µæâÒZs5Ίë,bäÿÒZ‹×çŸì×ÿ<<œoÞò[@›¿xÜáa¥qH7Õ+‹‡‡Ë x…£ŘÊÔš]¹L(.Q²¯µÂçË9Rv¸µÒÌ¡2q¬˜7ÍĹx”ŠºRC8ýÞ—DÊ—(ºAŠ”²(\ø\º/,,ÖèøÉ¯öZ‘y¸1:&e({*Ub1´¡“¨¢[…áKæ³i’‘*Iºè}äÄÄu…]»Ô3SFÐ Ê9ag7‰&$ÿ.þYZì5$“«Œ?Úm §ïâÅ̵¾ùŽuF#†KgÀÈ"”ðrÉÏ!“=Z»PÓ£…3>lÉÅ¥®=ë+ðC»¾ Ü5Í t+^R[hù"ýÅ#ž×|)¯XÒ?‹‘®";ùÈ^„JÄ\ ›|¢/Â&b®„M<ð!ãW½¡SqE]˳%nl’G/RùöÎðzî€ ßC)XP2°+‡kdPURç]Ý#;DÔ‘8!½Â=àw8{Â^ tÕt‹dž3ο媛Ŵë«Ü˜‹_oÅ«à£Ô²ÂFE‡’­Ÿ8+«S#eŠvôxä4j“k¢Jšœ¦`M¥À¯t)®Šç‰p5ÒŠ¼EÑÅ—ÌVÀ'߆+ñìñÙ{±ÛÂʉ“' qU“ýfÊôlË5ÂÁŸ‹ŸØb9^CÁ²ñre,…S!æ[½j¤ÛÊu–8 ¤›m+8æÒÏrté˜_–ô¸óâ=xBÀY½|Ö®"ß#Î t梳e>zÖ›PÙäæEÏ<…Ì©À’¼\Ç¢½a¥Ôi6uT÷-•úWÇëƒ x±çŽîwNj,©3·v:4oî/Z¬p:ÁíhmØuè;í-KK¸!‰¶>d/w"_‰Ã÷)m|¸Ž– ™o¡M « {#íOlpØ[üâl¬Ú?ëµÿk-Õ~B4t[©¾€—rGå#1•¥Dé º”Nïå‰KL¤4€Â?cŠ Ëk; ‘¢¨ZLÇJÍ/ÆGð€#§g¼ÊÕRT%91Zn©&qç”›ÙãÉt´K~<+ê_–]©Þ*ôÇnÚ€º”+b’qWlT¬Ê]\G•ÚG7ô‰P×hÑ $ÛP‰o~µÅ4¢”ô“ ˜åÙ%plE/¾r›©xõW³!#¢ˆ“kI›¿¡ísf°Ê˜ÑödefÁg+³3ö}nELHtꦖ9^/3­Ë•ú6òƒ‚ à.žW¤°ÏH Æw=ú XÔf;ÚŒÂî6CòQ9¥º™C¹©ÖkfØpŠ:½¦©§:EÓNŠÔ®ºž>¦ŠG/7hÉ%ˆñ(¨3z#„¡Ó´Ý€neZèQ«s!µÝ )ÇEi:õ”âhq&ÑIØIÅÆ€ê£“•O*©{5 Þq ‰cß:âîN™±WÄÆ‡óÇYuÅ‹âþš9Ñþ½ŒŠíEº…Û\Mv ãÙÉx|J­¯WLÇ©¾³p}=>F£Fï)3u/ºÌO„É€ Óš¬Öaây¥öðõLJ¢¬x‰@äó².‰JÞOâ,Ñ3ë³´êjõÝqCˆflaÊ_$0©¡Ý7ôá.㘴í’Û¥ã¢rœc¾AËy#ÝÍWðÅ úg5–³ºVJ‡.Š®-ÔÆx]«¤”Nßõp£!]¬:Ò¶ò•“²CS˜6˘'‰£[1ÑE·”:†“"Ó=‘1MÀ"_ž’ŽJ±z”MÖþ%„,ò¸Fw Ñ Eùö1»Ï³ã™5´MÇñœlîQÆá<)*íiôePÌ쨿K­/÷ñj 7*õ‘FÝÁç8À3éºR‹çQ ÔŽµkf21òPû'úüª¡^¬¦‡Ð·| Udå#èÔv»ž \+./¸žÇˆg&Ë —ŸY9Fx6ÃÀ7Ã/t_źŸÑØ47]Z¦æN ÊB3i:Eù¯7›´—˜¯8™R1ÜØ\BìÓ¦’L&<¾F±‘œFâmê쳈ФM¢Ë`ZQ˜âSè2XÄ j®ÃÎh³¹¾ÕB§|ô JµHûjº”]Ÿ5áÎŽmrÚRúøfý5ÜŸ}Æ™°ÃÒ”û„*ªkXÜ:ª€¦~¨U$„×w€TˆyŠ,ͨfG DzÒyıÆÂ’Ç[A¢,à܉©´7Ñ**|›ÝÊÇA¹ÇY6‘ W¦±ŽÈZ4¥ˆøg€`ã …dm¨ÆMňo”¤ äѾ"ý«÷YñÁë³â#Móé¬Hoœã˜P¸¬òrŽJFÎEq=[eûÜïtŠtàì„â¾8³ ß-ܪ|ë¿Iâ!¾ƒ%5J+³x%2Ö’ŸÊuÀÙB mázór‰AçfÓpU•Ò 4¨¯+Ã!u7Çz÷—²„VŠ;ÀáËܲ+ò‰… ¶K– ‘ZŠ{ÃV #U¢쉒†·hjp ú¤¶¤M=¼Ș¦¬6HÇÃV4-7Øàö+PzɨLabŸÎžšÍt©©i™k±5ä[šKjMèµ7G`ˆÄE/²3&ûçö4•ekotBK¤©ÓZÑWƒË§xúhugó:þ)õH¬±nΰOâý=i—$Son֣Ǯ†Â-Ѫá1ÓEÙ?1v ‚Á É_/ÉÅ‚/g¤Š¹Tp‡RÁÕ&ö—3s™àKžß­r‘à.D‚8ƒÐ÷ ÙÀ—¹œ‹—W!§OO}ò熾 & fN›Ô V$9ãN{Æ`Ây¤I¼ uëÑt÷)ïùźêöyŽîϨjì¨Gxyh±¶×'ïtÜ8Ø c·×ÎlæÚ0¢èî¹C=4‘Ú”XÐÕ°Ó µñ[zD—5JRá@n3æôz6ÙìFÞ~}oÈ-½þïÖ gØkï +RE¶€¶ÍòŽÞi±‘-T…ŸÑ&ùÒ& 眪wfS;šM´äý Ã)§@µ¦\Ï÷P©N7H0ž×E¶29ãý÷qùû2+.ýG»¾ô@ĽKïñ¤+h/Ž·^0êÊËùÓ¶&B9º¯´LG•¯¹˜ŸÈéc.ß N ™YAìPié(ý—Nä±b’OP÷Îä×a _È7‘_2w0iuwLáám%S*± ÞôØ~Sˆ!…‚ÁG0ÓLÃ(×ÃëDöˆºÞx]‚zÆÐ!•ø°š|&•i¼ ÑQF×-gL3”¾ébfšX¡ÿïçe“ÕF·Âï$Õb‚™PQºò1Ù–V{qƒœ7ÜŠNþGÈFß £1Š[,j娀µFSôŽ9,j¹|í ¶Ÿ#c(î°X¬ˆ)±eÊE7Ÿr.§;±šP•Ò¯ÀfK ¶¨ $ß&*¾‚$¿\«N/ל8øÓŽß.׎8ø-¶£`ZmI–ȹù|¸aˆ+Óþ¢îÕ¥ÎØ‚ºžÓ^Ñ…£_è5g"é¥nÛí&ð7, -àó•ÂGdpx?ѷñïÂ6¹ðYÖ©ùÚ¡å‘3Â(2#oÍAUG`Õa©am ãå(zµÜcÊ׬ö>Ñ|ˆä+rîÛ}|å…á-)t/Ž;krî;ô®cõ]Üη}ïÄv#æÜÞ¡·’ÆäÚ?vÈ3û#ܸeÒLóÅ;’·´ø³„3寉9™Å¨¤+ý-ÆG¡,"d÷¿ÿ“}XX\äF‹Yæ•^HêLÒnoîh¡—òéFN™*¿­I” ™!±œ{pƒ™ßŠ:ãª@oÒ¯MšÔ¨¸'ä¢^®ÂPÁÛç}`ìt;0 6oÕ*Œ¿c‡ìV!0åüƒ2¨ÝÅ®ŠÛíм1ö–KÆ8`wÔ«0þ¢ô^š#7+u1öæºb®»>YP\ê„Ï;^¯G¡°Ðo—þuÛ<}ÿ7h·ÅOŸ~=þoû/¹l—¬Ü0‚·¨¡µã.g8UcHÞ[íD=³ÒWbn9‡#ÆÅ_{|/Í¥#ÛG\0ÔèÕŠ¨T’6åÝw rTªÑÛGöùÈ×é½ÊÊïÿ¬Àkùu4Ü.i¥½Ü|÷fc•mâ{•Ž}JJTÍA©ÄJÌiËi£¢¡ªeÇÆ “(y㬃÷å«\4äЉT9 Å0_xôF×EÛë^hhp™ÁFË"~iÉ:q†QãSê”N,Q<Ý©'9=mO î ¨ý÷™¿¦ç£4kÖBa¦<¯? Ç/:‰M{Sóš²üM“ãøA ò?ü¿ïNã­dôÉìí[Â{¾{S΂tÇ@Ñ®@¾Gï‘F÷ñá²÷*³䥀ÅÈÓ¯ýU¼ŠñÁC™žùnâÔhå“`êÚ>-cbiW³ò€Ê3ªè³c¼ ®]òäW¾»Ô™ê”Çõ¥Â#A T¦ÊÛÃ=.iw@-XœÐ°œuMéC(Z ]‡×ÏiH˜@E¤Ñ(×eWâ³ÍY„ È–*[@ümŠŸ5½I¬…xÞ¨¹‰›B‰p¯‹¶tÀ>Ç#ÞÕÜe®ÌªqÒÕ.Ïlò‡‡¶x(Áüb|²¯à”ë×ä*ÿJ]f©–tjÉuM×¼Y!®~èÛý6B´þq‘&¶‰íbhëóEó­3þ\aŒ!dâ\éY¼kÿOÌž´u èÙÌ{š8˜¸Ã ±Y“dž¹çJÍ•¦Ïº]š¸Mº“í ¤¶óWS¥ÀÎÝÚ¨¨2õå>kb»ð5f0´ÚíŸbû+èÖ ;q40P_êÏ£Ó)Eó¢æÀÈ<,*wÞäDÞ?«€H;ïÔí:º)A?¢¸‰1°Wªüi1.RÒ{0€ùÃrbƒblHÔV$Ú†Hǽ_Æ„é’ûÕ%öé’pBž&g]‹p"âƒs©óÄ€rüI ë7³öÜnÙY;™w/+ì*Øiw†#ˆgñò”oöc¶&„óôË1Iñè<÷ОKêÙfŸ"ôùµ¯¸?HÅi¬«=-Øþ+ë‚#Æþ4%÷,;1Ö|4¯-±†­1=mÁx˜MzQ½%–\1]ªÑ™ÊñÖùM÷ˆý~!…‰ÌQŸšqîx[ ù&ʼ<#®—ôLòˬþxþiÜ9‚xVØyþ_ óäÂb•xú%¥ñq _uÁ«ø‘và2bù$³ù³y7ú+æÓœž ɬÕ6[-9ç¡ñ'6CÿÒ€Äéeçç%50î/^õ ™(•9¡öbI¬Y÷F»c™ƒÜpqsl;^Jªo‰ˆzIž•6!¥Úì®jÌ|ÓX\òYáU³Ù8R6Úz:7Ѧ§¼„éyy„mq· ÒG vB¯ž Í”Lä¿ñY¬õ‹™}Â4›Âh%`µlz 3KF»¶N§ÕÿŠYaÎâî%‹Óï-²8½”K³¸¬¼K1m@úT6¹Q|K6d²¥Bä\5Žž%Î:D9¯Ð¤ÏLTè­±ÚΊùØŒÆñôç7²bLG7CnÚ÷7ôFüñCiÿÇÖ·÷7Ys¦`JÞìl5»›ñw§c¤Ûa²;¹qö}b¿·3wmö34Æòûõã_Ì8Ç‹E]‹è_0HF#{ÀX(ê ZÁˆ7Y£×$±fm‚Ð×™Éjf¯¹ÏžÖ(,ðùcFõ@Ô.ý1lðÚcäð°P°sd<…—›[lÍ/øÀÙn…Ík h–C_X!ü„œ•µ~9ô$ï³›Í AœØó¸…‘xÓKrÖèK±Þ;p-2pôØ<@Múù!Ê«*¤Uc´BØxT€ÅœZ­D:ÜïûüiuTÁ˜ÆhŸêiø2¤ ڊǾœ?­hke€õÚÓ蟧6T¥¿ñsj?'Ê2ûˆ‰ó ½ ³*kŸ£ä=Ydç=²/ ”U5²ÊxŸÌ/Tfwý+{…*à÷;k >N×bRh"Ÿp€*[ªàA0†ß/}`¨W7’—£äåk“¥ ôƒŽÚ~X-Ñm«Ynଉ'Ÿƒ"wæh^™Ë£¾m›P)#_”%ß›A™q‡óBIÉŸÁ›››«ý=°ÜþàtÐÀÐü ôsRïì¿\\ž«Ál[†„×»µ·ïØòR}e‰«•­Ðöçjë¶JóÝÈÜ8€$‹Õ^´^ï¾}×Úßy»×ÜÀ'ïÛ{‚žë`ZkãÝÁÆ6>·ÛËèYwÔ˜‹Ì¬£š0(‘“¸‹™‚´È®¤É¿à‡Ü_´O‹N.ÀÝ Ž5Ñm~Íàæ¥¹i¢×m¦F¤Â‹ÛbÈñËüÍ•óR²mâÍ•óOç®ÇÙÿ¬[.^îµ»vº#ãXú3®è]È‚:µv³…N ÷Œ‹bü¢b:2¨ ©‹ â‘»‘í¡™ ½¿ÍšßóÓK=ü,« ‹ï>‹žqÐ#zËv¹Îx‹1S×î ,z¿- \®?G†ˆdãßê², ð ¢£buÔΚÄìbØé­5²\Òë e:][*ð ðËtHç„‘­k9ˆŒr»6>nŠEi¯ÇÔgJkJ7× ÆþWHjæò=ê—ÍâäûÚXqÄÛÜå2ÿ1¤ÞÓI¶, pݹ¡{z VW©D‚*Pˆï¤²&”á*}-#†ìÓJ «@ñqèuOw,¼ŸèÝ­ocÒ#oï“•Ê90Ÿ¹_èÌ]½éCYà\Nƒt¿æI>'ìœø7¤òätHÓW¬µ»h n/&X•—Ç•f.¶pÓ_`™ ce¦ÿ€¸3ø·Éf=`÷æqEÎb}ÏS`)«~†W”FܶŠÜó=+Ñ¥‚;ŒÀCoFòap'À[o„ o¿¹¬žçh3M ù#âw*=Ÿv(ü™?õVRE²ŠûŸ‹à7F屢jU¹± ÚŽ+£lìîìó o4ìm¾cqèuŒ‹E ¾…(šQAüÙñÀÎÇ Û/SÀxî ¼Ñè/‘vò ¯€†¸t%š®gd Šæ­ò2ªÅj}ÀdõÃKÑ«œ:‰bèǰBKpܾž;@~®‡ „êˆ)_±¬¡ïðw]¥ë'Aß÷Æ#V„ ½^£­Çs ‡#hØãÚÞ8\è×ÉŸé„ëÚ[t™î½Zìùþ‹šÖõ"ÿÌ£…I'ž+C…Ííýƒõ­-ÉÒ’gVx,ß¼»ö™Ãû!Ôéxc—ß½:ƒ3¨ð]%øß°‹7!±8,ÙwÔôè#ÙÐqw\ÝR_dŸàüw±Ó\Ä—åqGBs ?¢©¨¾T’ j…DÕif'´/P³ºLz…ýæÛyq€·“”RH幌«³{Ú3}"3× “G75 ùð´ÑuZ5­ƒpÜë!Ÿòa~ mõZ&ÇsÛÓ—,2èx”È֤ϯ«:rá3ݹ`=JöøƒÜš:Yë†b뺀ô¢J7 ƒþŒBâoú% ¥!|PvÃûôÇ´˜ ¾©8aé:…±¨hVµ/ó”5C[Fg(”ÜD[ÄBWãoÉ9u;-st#†Êë]Qh­Ö•ƒoZƒÄi¬üKòžÆÔÊ«ç6åw®óX‹^ ~F@ª¹?šA^ž'B/s¶ª¼÷h9ôÓgò*¼¸_UËQ0ðÎð%E\.uprò;í–@‚èiz‰bi1¥Ûìâê5ÐÍQ…E«cñ",îÙAÎo¢‰%€¯sbá#Õ‘I$/Iù>ôÀó‹+”t·Êé)÷’(øøöFù©:i¢ÇTgÀ+E³\¯RµËZ"]~Å—Šå!ÛMbÑ ¬.;´}«Ã€ÒÇS˯ÁFè³p~„< 4'd÷~9p»Ê“¤sŒÛAè„c>ƒëlkwoçÕÞúZ¨bq ì~QŸË…”¼ûͽÍÝ#+š™óÅúÁº‘#ô\¬6dÏž<)ϼ"&MÂ.î=³_ÚÕàÉÖv‹¯ì·h"Æ“—VÊ|c/AetiU£_T#õÀ$óÌ|áæÞ@ð-wà´oäŽêKq··¾ ›³u~ÇQ¦º¾ãI “»½Kw{§è4aN9¼9x¢¥D½ S»{Æ "{>m‰ÒîäÝ„´JÚ‹ÊÌâWg _ÐÛ~ ®0§ðƒê1øœ?Ls‹)iv7L¥O"³¿H“ª¹Z4œk¦°=!ÍÉæ%YYµÉÎ6oƒí0¦·O5J 7F»É8ÓŠíî­³6Ä\üþûÊœô®ÿþ¿eJ€/•A|ƒ§æœ'óp Ywé‹‹,™U(LîÍ<ú6ˆ„Ûq¹KÈcÞv§N^˿ʴµü/fÂîÝì|ÝKŸ®{ JË'ë„É ô‘t7³tÏœ¤{…‰=8kŠîM˜¡{7;A ëovš;Û/¥2X+–¿ƒ´:éj5r,&¼’?ól¯7Ö_l쉌ücZVnÊ™ ™¼õF–Ø2.« Æ¡3ûü)™eöT©±…-™ù&®µ`¥3M<ùmÐùo‚E^7ÆÏ„‹÷êŽ ÆïHÖb¹dè¿‚×lßµèt:ôðJ Ý-¢Cetø‹¾¤ÅYÜP¡™ÚI P(ãwn-K÷¤Þ¯7 Ñ™&ÈèÓ9›0µ¡"aѰ¨>8UÛcg¢šûð„1A×eúc8ⲓ bw##^$øUÄû ¹ßëõß6°o6·Ø²œ^Õ`¨‚Ÿò•ÍzÀ¶A3–Ïcï ù/®¼ÜSéÈ·a´vì ð¦û#™š3ÅÃ鎋§YA•n)„þ™¹€ÒÕMQ`HLä1]ÝíÝÝm$ðÑ!&E»3¼ÈjÛè—°Ë”cs²AáãrÛ~wPexÅpÇj ¼lÒnÇ÷ÆýcÃíf9`Äwü*á@ÇFâù= ½PgÅý 7´Î¹¬RÄJÛ>‰1!l Ûu‹ÛÜ'‰MI\¼;¸Y7úW]‚4-Iu¥”ÉXÚŸN3Ù¬öÌ£Q‚¦7§¢` âl9)"ÑI픕ÿd ßkk13=«_H\¦äødH8Q¯¤"#—äk†QflG;µ ’/ I^ uhÐÝC<#í\ˆ'GŒö6î à,|Nv¦™nB;h抯dL»U€}‘˜œ9ü¯Êy¢ ,צùÀ4؆e{Ë–Æ®çÖ”©%g—!ª¦®ò‡Lqÿ«âý›õj&wZšY)Îè|¢>ĉM©`ÜAÑżôiu;szW€_F%ÿô‚‰&ϬŠKÐYg5)×ðU.áÓ)„ \e0ˆ[»{»{;ÍÖæË­ý XæÉ‹7`èCXpâŒFø*K–òHç¨W8vKD><©lõLѳ"ª°Ø£O39Åï‰Ê4{sFsÚFL$<‹‘:sÑ1ó)sÑ1󉚋Žÿ’訸`†Ætm+Î!í‹‚ÏWr ΋®ýÎØM”Åó÷CVÈg:Ѷ‘aÍ<Ä&¨Œ&&{V&m±OlžóÔ Vž·>µ+åJüJ±:OW£QyËÜÖb€Û‰ ýpˆL—mâfútRPÏ lãÌòF"5[oq—˜†º™}—’gvOrèq©y?ÅŒÈ÷Ì,š¸ã4ãz;ÊÌ}ßwO‰Ùp«'ðz9—ö?àÖÅŽ¶¥„'õs&Ç/y ]‚tø6´‡ U,&ô-þZ6r’û»qˆfª¶càCjâÆ ÈGû­.çfE KçØŸ|/xÕÔ©ÍêÓ…‚q7.Cçmî7ÙJ}©¾Â$“Jv*VçIv|½ÎCºü‹]Gn :x=œmúÎyí tãSÖ·CòÓQ£¥ºC&`C µ•lìpëïS’ïÚzaÆ“¡z‰«÷{&Rðµz{¾ÌÊì;¶t¾ôòe…5ZYÂç…AÎæþÖÎï{ó ›/[eösƒaø»ïè¾Êÿ”5ðƒ·»»\Ëú++¯—Ù÷P|Ô ª°UÄPQjÅdy‡i Åù µpÊ2›ãùò_i™ü™‚ íÍÒ`jê' ç“%­­üIiíông½/£Óèùy›Jùf¾W©Pé߈Œ¨Ä¤ån››£Ì;0F—Ö˜Ã~f+OŸAàûï¹7ìc( ðŽ¿ •ª$2~DÏoC™¡7†0¡'hÑ6 —öyî{C[ªL¹î“É£ñr²÷F¶š Š•æɉNp8‚D7(€Í³XmYe¦P†oÖÂ?õ¶P§¯þÐsé¹ß6½é;Ó>rÊS—؈jœ¶% "'­[…KÈØ)$Åpsû}Í’ܱesœ€vz€ÕÓôÿZ\ýÖ¶åYÎô+1—G—y/Œ8¾Ò½ðä'!8aõX[ho„C|%Vîh'œïŒïõÎ;ý.vÆTέ½ ¤’‘J°IŒÓ/ÍH6ßl´~ßÄ{oì·ð+ÆN¹}3ù*|Z\ejn¯ƒ9'&*QŠ8÷½õ'ì/„B&¨6¿YôÎK´»T:Øú¢Ù´ŒAø4‘T«>0ƒ§t°‘q \?FÃè(ÿ5•ß8âD6HWRÕ+‚XнÂÂt|”õæ¤Ì›áî$M[øæ’:ö°xXúXÒ«M Á¡X Š})@8Áàƒ–pwWÐx~DÈ_r¾ý…óm©3Ñç ú€ºÖV”ëoš{ED/—>–òÊŸËG©¼ka&‰p û< ޼¢uõu&¶há\±õjN-g¸ÖEm¥¯‹Ðöü.Ñ¿;¢ÿ0Ì+ˆùáC5?ðLM‡']ûT†Ñê»Fî‘…Þ’yŠhÿÛc‰HìX(^ËrËåY{ú²}ª¾¢F»(!´ýaljãQ/3üG4H®ÙLô$ ‡ÃÑuñ묭÷|íÿ7y™àïØ&·/Ì€¯¥èÌà×YâUD36¬¶3€¹3•Ðiä¾÷‚P.ÝG9Hu•2š¹½ l¼ Kï`go_cELÜ¿¦À‘OX“)Œ5,ü—á ÆýštÓôŸ¾;®{~¿.@³bõÀšUÈžÿp2q2%È€‹Ô,¥'#\oFÛU†šX ¡!äô ÍlÚj@t/ѳÐ\iàð{ d-Ü[AA¾ý÷Ø œP.èÁ¯™«y |ù@ÿò:=Óð¶ÊraMÑ!¦,OÿêÎZ¾0MaBñ7ì>…RüawùÙꇎ­å\Ÿ“ësr}N®ÏÉõ9¹>'×çäúœ\Ÿ“ësr}N®Ïù’·¹¹>'×ç|=×çäú©Ïô[ãÀn¹mþBn«o‡Þ(l <·OÂKRÝÃ!r O®áÉ5<¹†'×ðäž\Ókxr O®áÉ5<¹†çKÞøæž\ÃóU ô\Ãó•kx sz_¸NðFø`ÓÌ`@Oóp*%Tá‹l×Óßï56×Óçzú\OŸëés=}®§Ïõô]}™ëés=ýW1Ðs=}®§ŸÝû¿mî·~½y°¡T:3GA2KV=·ÎŽy|µÚzÃ5õÜœžD”Ljññ1‚w@©ˆê¹ÿþéXê4¸ ~TØmëïUI³u÷èd½½–Agªê©ºz©ËNÓÑgzήղÂÐGO¡v«5“OгÝöà×d÷‰=¦¿š{‰g•Óa§žÓÚzó¨˜fóó®Çyb¥²fd)¨,ÄRé¡•ez\%g¥÷Ž•¦Ì–[uåo–tgþÚ\OAI¼McmYÜî“ Øj­ìm>{aóÎlÝO²´?i€Ï2qËÀùÇn…3Ù$›ÍQljqà¯éY“Ôƒ¦´·Jˆ2â¡£a*&zâ·VL€œÞO¨Mˆ[e€z9·ö–‰VÈ4VK¼e¢¥§?-˜Æ]cÌUd»Ówíîe^‡B~FÆøÏLΧ 32?¥¾&þ‡O)êÏuÍ~órSóÓr¹¹}pðÇîÆ~ëµ½Ì@/Ú$r˜K¥dy¾™žIyîWÙÒØ¸38¹‚Ë™ùÃaæj‚ß>?Šº]–®Ê™ÉÕ ÈtÆ®@f¾S•&/£m\Â@nbc N õÇ ¢,ËÈÍ9pÎÊ,+ç<ƒs œ‰?&Î{ôö9¸(çvÙw‚ñ¥óî,q‹©p® sýÇÖÁ•Xöò³l<á²3m„ιöCæÚØÃ³Ù6Bå|ûAñmìÒ;aÜTЭsîÿ›Èº%ÜDÞMâŠÌò^{?^ÉÆ½.;÷Fèœ{?dî=<›{#Tν÷Æ.½îMÝ:÷Žñ¿‰Ü[ÂMäÞ4!®È½!ïÕ¸÷³'Ù¸7ÂeçÞsï‡Ì½±‡gso„ʹ÷ƒâÞØ¥w½© [çÞ1þ7‘{K¸‰Ü›&Ĺ7ä½÷'µ>éì[fäßã\åýиìâ\‚å,üá°ðñ)¾Çw£úNaƒé\|çé›§gP›+¸œ§?0ž~7ªó¨¨;àé™Ôçäž~eúÛk(ѳêÐ/§BÏ5è›gS çúóÇÉïL}~7Úó¬Êó™ºóë¨Î¯¬9Ϭ8¿¤ÞN`kúS‘³³Ïæú–¾.ÏÄöm*A^4²`ü½8•ø:Ïÿ8ØhíìeC«ã{õ{å˜uƒ6¢E³[‘£µÿÓ'øÜ|ÕÚØ~±¹¾MŸ[›["¦ÀÚ^0Þ3œ\âê9¾oLøÛ Y×CÆâzg0Ãl5{!Ÿ$]|+A ½¹^ø•MmŽ|ÓШQ`ô.ˆÓS"Ÿ ÷v.$ž[Gôr.ÿ¼ÜWJ1ÏkLŒ#fñeYà¬kë42þ@Œ7½Á™~<1è7dý±ðe–7ÖÅÏö=s6B¹ú@ð’±Ç`IÁ&wBÖƒÒSûdìž§ROqÜþãÃ3VÐqœÖpøþPë#[:²òä§*þþðì)þ>Ûxò„~z¶Ì¿Ÿ>Æß~¢_¬&ÇQ˜žýô¤‰OŸ<åž>k ŒóOóaFL䥽E˜€Ï–α峅0Îó`EÕx¥D;LQ!»Ýé:½F?þô‚ê¾ñxƒ~|úýþô´I5úñ§æþýã²Ñ6J#Ss¥IdjþðãSâ GAYá{cפߨqÕÄÖ©’bÍSÁö™kAD°5 }¾ÿ¼ìÈOO-ÂZn»/€µì_ì§rßèÕC6c­àÏ Ö-çà``oâÌX˜z ?òWÁúbo+&–í5ÅGÀG]zh«í…ÇøÔ<„ÜŠÝsbˆE[£‘íV顳3 1–ü:¡€ˆÿBk£÷op)ºÒRxŸƒGa¶îƒàm³†Ü3k富½ô½!{mùm'ðÜïöCÛØòÑ¢±ëxØ©¿¸¿á5 7ë¼×]W>`Òg6ÆŸq}ƒjƒ4UæÇõ4«±eàÁT™ÈÑx£íK04芓ԩ ·ÊÊ4V_L6àÞ°®ÔiŸ:å D„0õè¹=Ž3Qì Îàyk«¤H½‚cÊáäÛôO}-Ôé«?ôÜ:>YÚnÓO²Ã2kînGÕg°çÉŠ¾سèÕU3Q½°ZÉô¸Èï°Eû+±-W*>ù|&9“-Èg4'=ýhû¾ç¯Ê%F“Õ ô fâ"’6îØ¬•ë¢)xf5¦£+¨âþsÇöí³Ÿ-=[YyüøÙ“ºA™:±öÈæû±ñÈãmǪTIß6mŠ ¬ËŽØ´©‚û¥iϰˆ'ÿ°7uËò}낽_†íÆ [`ßÌÏ‹íG|Ià„›=ߪ‰–rû½\#^c ‡N·±Q0§a¼ºÆºßÄæC_ ýŸ9…Pùx@àØiˆn]cmß¶NnGH‚yvdŸ|9†Ø÷lù("«ö§¡ÀRTØLUP)“¼ Ñ¢ 0¼}i) „M@ŠŒ×|…•Êfý/'é1Fß<}s&¥˜T¾v¦®Õ—ë©+öäE{êºýŬÙ&.­2ºô#öÜq-ÿ‚¶åwŽYÛÏlÛMÙçsÞÊ• ç\þ*¢¹ÿ8vŠ‚ëä•ãðԤІãfÿ½ˆ8zxêä|'•3êI;©[ÞBÅ9ô¶"ÄÔÔ9 ÌXÇ-üІU Ýmƒ¬­ÊåÊ켎å¢AªÔ'šc¿Ê~ø¡€Æð‡G|~×^¿L§[C–tld!p(LЦÀtã)½ÈThšù•ë7Æaæ9Šf¹ô±l”[þ\>J.Y2i7P7ùÑ­\ä³Úû×Yö!ÍØ8°Ú (†S –!Aî{/FbYÔÞ_òMú—¿î F%¨èßžUX¼ Ëß±›¹¬ÄŠ˜¸¬¤À=£wS ;X7¼ GàY:vV† áï5?˜:õ³NðÑ(Ñáé³=犊³ýå䬡@µSVþ“-|¯QfzV´u‹HŽÏ†NÔë˜Ktí(qëHg.PfìšÑhÔ‚HÒFuZ0`bvZg–ï¶z«¯o5èh"œˆ.Kñ’ÿa²[0¹˜Â0D‰·Ä/ÒJJeØWçõ,F¡ŸØ÷~eì÷cVeìí9쯑1ÆeV“ÕƒU×còB@zå_ßÛÞÜ~¥×~hÔ±G¸ëj_ã’EU…Ýe”" ´ƒÀó¿IÛÂÜ4~±…¹\{…M昴Œc.¢3·àReçÅr“ž®yì?ßyWxôˆÕ2ü±GtÏáÕY¡‡F«5kz8TÿÓwÇuÏï×hV¬¢X³ û$ꈓ©ˆ“)Aü[¤f¨¸ƒ² £í*CM,†t%QìsÛj@t/ѳÐ\iàÐÚÊ÷ÒN`oCA¾ý÷Ø œP.èÁ¯™«y |ù@ÿò:?§x[e¹°zi#eyúWwÖºø0+Gì„h¶BG¨VÈ…VªJ•#ͧºÔ¢½,£àÕö[Ôütˆ Y¡ÓØlh †\>*&g}•L-ÜZj¹ž‹2àÍ] ™q*7¥ÚÝÕûµ 1½3â)÷„xðbkó9:Adiþ©©Üѧ—¤ûEä'l©Â~eKl•-g÷7‘Ÿnü[§éc}âöåË9ט1Uïî0 “^?µžÓü3$Ü/¦BÎtÿ¦M<áÍúÖÖNS[1t†—=ÿ’Ê‚0™çÿÝoK"$—‚ˆ²ÅL5üÅ Dku-³³È ôé`ªåã}9~ûÎÕ';ŠLÏ:{M;¶Ní‚·" ù­ë¸ï:R4„g…‘îò(J_Ë]ØÝgû„iq«×¯S ¼µ‹Øi¥Mãø“à ? ðJnw_l4·@ÜÛØÛÛÙkíéÞw'3þ,ˆ¢@ðfq\ŒK?,V³\ŸZ±³bZ×J"Wìœ8ã.–ç̰‡EÀKì`¡®×ß¾Þ'ÑûAhå)Pè ¯«¬£pÜ.v¹¥¸7²{ ƒ\°ž}†6ôÈ“i•Ø¿ ßîÆN'äR$qxÙä·®m¼³:eÚõí”úóÀ:!ºDÅ ülí‡ø]ÕjÑ6§Å—fr[e,;\Û¯eæ„ô­í2Ïe=ßRXü¾»Ôåj÷„«’Ä­ï•>±WÒ’T½ääÛ9…ï@ªå^°~§³‚&á¶ïÂøRÂFYä¨C$V‹Îh0ð?ØrafVlqñT¥ün³q`sZ¶íŽ…hz>túÇð¯v¸L,–T¨×cÕéÔ;ƒf(ö#imd–ßQ?Õô̺0Ñ×5 .xMˆ•BW ¨h*K’È«µÃML”i‰t–2g8ØXj@ý‡¤œY-|ÈÀÄØÿcJÞ÷†¶†¤2à6áØÂ1èZC»K(€‚ÑGEhù¡R ˜Íe®çƒlIypA7XÇŠƒr5<χ½âOdÝOlEÉ@ïdX[ßYÏ/ô*hóÙP$[Ó,ˆwùç »oÑ—=´(Œð\^(º—›ñ,Ò=Ü›ªM\aq/Þ‚\”(ÇõŠÙÄ¡I{åLRº&Ê¿¤¶UËñl†šU€^[ÇF’ÖL Ö”%ŸªØô\v?jæÎ¨fò·0_kt½M©:UŸ„ž{ý4¯f‘g£ã˜û"/eØñæÄ·=î½_^Zú°¦bΡõ -æ—Ðéi¯*mg!\‰ iƒ<:ß%ßÓ]ò„©t;ûäË^zÕÌiÐ|ÔTá1¶R’1Ö<öðVå¡}Ê‚0ÕÀX¡sŠ^-‚€Ž OY(5)ýAAÏí}’è`[ÊÞno¾cOêK@UÉ‘T ¦µÝ÷ü îLØÀ °Öc ¤?½=T=Ë.TÅõ(ò…e…!¹ãH¦çFÿ^åº&÷]4^ƒc.UÛ}bL¸ÞÂfp*ÉL™Ï³Vïãf3•yΉp®±;`n&g½.WåÇYß85[lþ¼’d=<>ùïœdÝѱ2 Ô¼]êx*A¼™çS©9Ò¨ —>¡Šô‹­æëõ½Ön̲!®d<åôr ã½`ú¹†1×0æÆ\ÃøÅII¹†1×0~AÆ rI«ë|wöK.£²P@Mv+w%“Òæ"É=I´>|è‰hêD¦ÎGØuÅ…&—Fî³4’\gnÕÌ((«صä‘R²à™Ú .]§"yΕl}_ììîmÄt(êürÆ_LÕ‚×M{};À¬Y~`c °íA¬íž²þÀk¤¶ÜбÃÂ}ŒBX‹œ =°Ü6èãÝC¯‹?øÓ`:C`œÃ\ŠGðÛ¥_À1ò€¼øÁ!Al,p…s¦ ô»ã‘ÒÄc`€¢ßцfcÔ Â@`SžÑc\+ÌÀ¶G¹2)ÜreÒÃ’ÜreR®LÊÅ·\™ô5*“x%¯h)!#"e1.Æmúí°ï{ã2^ ‹À—<ƒ@.Bå"T.Bå"T.Bå"T.Bå"Ô=¡L¡(&µ;Þ肵ÿ±}ÁäüAÅ^Çع8”‹C¹8”‹C¹8”‹C¹8”‹CGŠÉB};äçlü7—{r¹'—{r¹'—{r¹'—{r¹'—{r¹'—{r¹'—{r¹'—{r¹'—{îƒÜÃF'ýðÜ–Ûæ¾þ[BÌѼåO¡zµ}Û:ÑÄ'eç>)›Ñ ¹¤é’‹[.¥Ðõn«ç{Ù.1úWDÀ¢4:#q†'vÛêªåÃçaann,`.E¾øtº¹¤—Kz¹¤—Kz¹¤—Kz¹¤—Kz÷[Ò›aý R¹ • R¹ • R¹ • R¹ • RÙUfBš¦2“ —T™‰l³Tf,¡2Ë Aõ K¹;S‚’€½MIðÜÝÔÍ P’¶¹u(½º%Û:A€RÉ3( w]*“ P÷Y€JYnnßë”*éÎÝN¥,Õé~§tÀtÇSŠùLxm )bÐ,]~œ<•Ë c¼yñô%¦ˆ!à2J:0n^À¤Íå‹{,_h}øÐÅ ÑÔ Ò…L!\°ëÊ M.Z<ÑBôèíK² ;,’ësº\¡Á¥‹’ç¤JiŠ‹a÷©é¢(æx`>6ŸQ·±÷æÅò³¥L¢GšQúˆ2äÈÍ usäË f7>t1$jíID˜!ŒDוGtL¹Hò@D’¨So_*ÑʺsÁ$uO—MLÐtñDcG™%Ø…<³duE1eÿõúr&!EfQ$x. Ü¼€"i›‹'÷X<Ñ;ñ¡ '²­D•k6:ö-XŽð«ïði¡wj3ñ*íÀîäåÂ`. æÂ`. æÂ`. æÂà=5i.ƒ„"Ä¢™Š€Ëh•$ s£¤›—N¤› '÷W8Ñúð¡Ë&¢©D™:C2`×Lš\.¹ÏrIr¹}k$YÐ#%×çt[$ .ÝIòSö˜!!œC°#†åÛ¨&£ÇR%× ¦Jq\N²há"p]ñâ{‹Ü_¬®®…ýUªî“èpbi Z`Á(бAµâ,U®Âþ²ò:!¤ò‘ö¯s<­Y÷˜åÑÐT¼·ÊöxaÈd31?5ž¯Äꨰ¬üNOezep¾Bíõ«ƒÝW{»­ßv6_˜Û«ÌN1‚LL'œ¹»py €ÎwW7¿»¤ÍwW÷xw¥õáCß]‰¦NØ]ÉÔ»+vÝÝ•B“ï®ÈîJôèíï®dAw¾»J®ÏéÒ†—.hHžcÈ…¹"`‚ŒV· óÏ—ÙåTqaBži¢žåCE7·Zû[­õ/®'9ææî“èû<µ2¡{ê¼2l¢zöŠÀ²n¡8ßAÝŠ(›o îóJuáƒß?QK'mŸxâ¬ÝA]{ó$°ä{§‡²wÒ–¸[Ý:ñrî~ç_”'lœØ„}g5ƶ vÀõJÇ^¶<ÜÜ€¼â;ç Ÿ‚±ëðã ,ß * gdN3ʧ— Ns â¶$ˆÓ\„¸÷"Äé×#CœN"N³I§7#FœærÄ“#NïJ8ý·$‰ÓŒ¢Äé,Yâ4&Lh¾vææ>Bï§×‹íªÜøÀºTwF ÈÆÕÐ÷íN8¸0**:á²ùWÖ>ÿÿí}k[ÛH²ðçøWôÏ3¶ $sƒ×sp€$ìp[ 3ÙÅÄ[mlɱl“俟ºu«[¶Ììî»ÙCž'XêKu«/uëªê‚âň+a?ðB`½É“'ëë…'ÄæÌÓ Àdq©0 :¢m¹ãnöifë󽸚Çã÷:r‰2ÆV açrÓ†d¤ÝOâKúÃSÕ@g§ÑïaÒk'½^vôe¨~|°f}i8,ÙÜšN†Ãd4&óu¿ß½“œ_mŠ-„‘‹Û\œzÿi>2~™¡TÔ¶½˜[™ÙM_ ÎÖ§w£™œ'OˆÅ¢c÷7ó“ÞéÊòòÙ:¦¤2¸XQEš‹Šz¶úÓ³Ÿ¾ÿáéòòîn™Š ÑZLÇ£Î`(¥³bÅ2ƒ=2“¢}IÔË"Z~í‹%Ws¥0ìQ•< ¹Kú÷tž4½—âÍ&yšÖa·³Ç=›êü?‘V.ªÜ0¨òýß'3?“¿/ؤ8Vüã/©%ŸÞ.Iì' $ôsåwœ@´Ä`ÞCœ£Eþ n}÷‡P뻘õÿ C§è ,šG£ïfcÑ¢ÑG<úŸ„Gÿ<"‹IŸv'¡0!Üûwz¨‹€šc@]©ù¢Ûd¢€u÷Ææ&L6NÔÛ0V(gÜBIŠð 4%ì¢6c -Baîƒ/ã$îߪ!*5‚ñ8Œ©ŸcFèA½Œ®1P äT«£H—þ>¨7 qPÍ·s‹ç¬M ãëv/I<‚P\à„/‰Â¨…㲺A] {šª. ù .ÍÕORŽõÜWdœ–¨ê’nƒàk0AšF—¨ ’£—ôûÉ B45 SßœùТ ­70|°dnFј[Õ£1ˆ`IÄ]ì{ÞôI……VÎÅd¬nBõ6NnBœ¨›dô6%Òï4á)i–* Ïÿp *´ŠÂ^/êD0¸2šI…§W ¢ÝwÄŒ¡g¾fAôÇ£è=¬Z$ýÔ{܉ÊKUåÀºŽÐ†‡ú·Ø,•y÷\E—Wê×Nœ_“ÚNñSy”õ¢~AWº.Ò”XQ =óù"âòaÐ ëžòÖ©£Õå(*Á•ÎÑâ«-™ -µT|‹ jz0D!ïŸw“dfÖEÜÉA·Ëé°ÐºÉF«J¯F:¹HÇÑx«—|H[ðƒž*2]“'9e_@`^5V-ƒåŠiÍ«yÄój—ë”þÊÕÞ´Z‹§mÄøQ;èÇ“ÁÙ.Ø|Z«U®CQj­ÖJ€­zµaQšXg˜S!ßi¦E‡üu«š;¯iTº X68w}Ìî6ôzªÓhL-"¸œ È­#~Y³_°ýÅÓ7u€àúé‡OgÐF¹TÓ pkÅfwQúMMƒ~‘ko ª}5ÁAV½µú©¦;Õ=!†´ð‘×ëF½VÁ+Ñ,•‘¨ŸkÝðºO÷àúeªªÖÖ•p"šWol'c¨u–YD…jñ½\ÄS^f&Ãn@¸‰·+ÉfÛ}³ò‘)âiîˆè†7‰o j™ èºÃïðÐŒå(ø{œŽ÷ûûÛØaNª#µ—¨LmNt³â™ÀÛP…߇Éõ L+Ñl¥×½Ò~úä!:ÿõ°qüЍ Ÿ@ŒG´ÿåduõØjJâ&Ô¤²´˜Ž:€ ˈ Køåa ~ÙP½Q2ðèƒN©ˆÓ‹~±‚GŠÑPÁ&bõTŽ2Ú€ÑêÓÑ€>×FkÞ\%Ð9’«(C¿A0€-†ã[€³hΠÃÐÄuHg4˜Ë53Á¤áèZ@ÁμG)`+‹äÓ8ú¶¥íõ°aÝ«½9UOΖ¨ ôT¯}(¤µµ¥–œµ¥ÚZm]õ Y‰z¨L’ÞouØB­)\ªq«%Á4"¹µý¢Y¯nϹy°ÿbçeûÙë‚  vZ§ç±y“#Þ)ÖšÒºÏuDzz0›> ×òUQ<á8h+¾:Ê&¸âHÓÒ ÎMÐÁìÞ|` ú Lø<|‘>9ø3ÆWd‹Vé¤å×üÚ:<ú ~$=\ü½sjÕW.­Ž€Õ&gôBâPàM.»ÆN•¢uú‰Ç*_­!¶  »ÇNòØd 0œd Ðøõ¤Yg+ÃK~";jX™1³óíÖ(Á±seDÈTÉi£X˜g«Üy „•«0ÃÈ⎢߯bQÃͲ”_©RóÕöî.ìÀ—aŽ‚1TŽ\×Ñ$ÎøRf‚©E^E PäxlxbVé@µM9çUÉdŒ<¥ÝI‡º¢\ØÝðbry b¸x*1[ÈSÑO(6ðl|Æ L.U«÷Dú8Øi[øv'-…¾ÄcI¢/®·² Ç÷*„QŠˆÊfj䌤¶"ÂŒjaóöžŸº‡ô£ßyX”äÍ­_þÎJzUžM¬‘2š2ð²²»»¹·U_£ÍùwèîSÿ=á‚gð; G0)ƒ|à‡ýhL‹ XÉÒ‡•o‹¥â§ &Sýˆ4-c:}†EŸs\†ðÑ[QJ—W,Ÿüªê%ž" D¯îá¯Wûî7?oÌühdŠª@’4z?ÿ³íR„wAóD’¯H ÃìG›èÉ⋃ƒ:ü_—ð8>ì*U§¿Z7cRyÑ‘Æ`Aýò’ .-n kÕ§þ²:ùmg_½M¯üBIWVÛû¿ª½ÆÎ.ýA²U8lÛ\öò°¹Z÷~¦‡guï[E¬Áþn(#ŒxÜAÞ—(FЇsØ2¿»ý—ôç¤ñr[ínb4ˆ£íf“wwñgó`w·qL™›Ç;¤‡­íýã;›c˜†´ÙÞÛn4O޶÷ _›M€J°ö€9ný Ÿ÷{dÿdoûhg‡ÛGÌñöîöá+ä{ðego­–ˆ§¤þöýz¶ε޾ª¾‰N4•’"òU±lñžw×°YÆlà³LsŠÈP˰đñº¡mhÍTl Ì^k1h•½»Ö –­ãkµPZ¶Xðë5|U›Z}¸þ™è¿>ÏŠÉÇ£öëu­h·¨ËÔõƒÕ²És–ê>B)Ÿ¹…°3!¾Ù/i¨Ÿ—¬Š°E—+øH —ÆZÇ$ ø!àjgøø£ÚRÉS­0÷OÔk]èuk±VQevŽá‹üƒìã ¯Zã Ú(3—B Jí HBn?ZБÚˆ]SïÐ%‡ÄÙÚ›×XþcÃ÷)ÃçÍ*‘Ö ÃÇ$à~p4‰ëð›ªÍ#æ¹äŒA'RCúÙ 3¥n8 Ùnj2Ì»yŒ€OªzÄ—¸¿YLí‡cHLë^pÑ!äò*úÇÛþ N†ïFéxr}óþöwOŠîn­{ç›À~¾|µó—_v÷öÿzÔ<>ùõ·×û»)*PKN#%ŽíF—ÑÚ_^Y}úì»ïøñ' „$h b×Á•´z ¶Ib„4Bƒ*ß> ‘i7·Gãƒ#!_Í8*WS»ˆâZzUd-k©äÉ£lU$­;¬%ò¯Îî\ ’.`e'â6ĦëÅZ XÙà$Ö}Ø\¦Ø|Ò ”Ûíº·îÙø&—»ÆèF©Lå~Ж¤½Š²Oœ´A¢çå㤮ÎL}Z¤‰›²dÕWߪ•²½{I7RDVN¤t+iµÈG.Ó…ŸÂ˜NFµÅb^àAHƒ¤X!o°›$oµþ ¸+î›PëƒQÁH©ÀŠ8B0F!°0k~A´÷ ¢z+-•Úi«;\•q·iØïÕ!×è–0™÷öH_%ø³®èÉ M:I¦‡h/‘%*lÁÐCQý™r@;ócÝ7ù#“_CôÄEtM¦ómLu”¥e"@…ßBÕü€º*ð[æeþA’»}Øš¤é›U÷¨4;6oó`o¯±¿å1߃Ñ4”y!°@á.PiŒŒŠ5A¾¥ëá‰æ ™ÓZööÐëE­ë}…k»hÕµêÝë¾Ù bóÕ\}]ôòà>ó"Mú“1÷÷GÎ?é>—NùP^¶tÁkÓóÊzp>{"FË•¨MÒÑŒä?·T¥U¤ìdF~…Lβ¥ðüê€óšÎAJ ]X£Ël•  ¢ªvHúEâ/ÏiFŸ'*—]$™u@všbé4‡V64Åë†Õ)¸ŒòÀspgƒt 9€ì…XÏÏ”‘zvQ“v U;§ÈüžÛ¨d/Be¢è!0ú“a/Â:›¬A-5¢§0ÿ§2ìPáS'Ü’ÙâX¹,Bµ'Ã~ ªDS–v( }EÀ)8AU[áO6 –­rY®wöÐ$ %bM7 2P¤®@ S>~ ˜&á!˜4%%åÀ˜šTyûi/Ø+®Ý(ÃÀ$iÊ€ÏÁ,fƒ!²i¦lõªÐ ®,LôÐ!/LmÂ"G°ña'Aˆ6/ ï¸>ÁX< þ¨#õ*°HsÓÉ%°˜¨"ºîq_ƒI_mCÖÏàÖq/ìAâ€AyÞGù`7 Õ¶¯ö:{Áº`((†'Ó@éßC¹µjYœÔ=õÿ²ù·ÙxYXûúL§RªT+ò²¦úI249¨–õNÓ#®ŸŽDNKg<:(èRĪzí³V¹ÒZi­Âÿ§öØ…]-U*YC3š‰%d@wâ1|¦›÷ñãgQÀÎŒ=ä0>c‚ûéàçû7À®Š-:æ³Zˆp ìs<ò¿"F•N—Ï*tŽA‡ h쀈Pò0ýpòòÄ­x+¡«é¥M¼ ¢T䌈‹a "ízy& RDèBÇž‰"…\c2NËFP¡l@))ªÆ/X߉j+:õ•_sF‡Àn㋹A”òÖ¡¹¤¨ Þd88–Ÿód R‡/ou€ ¢”•Êjåéy…³«±’N.³K¥J5†– ßêü»Y÷ ?×½'sŽXvI)SKi]TÊ•wça¶:ž]’qù?_ëa >ZþU£éˆâg;úѵµ—$j Ó´[è¹Øüc‚“D†ˆ•¶þòòðpHé+‰æeBñ©º(ãÈYÕåsãdz £Œð®ƒ>ðçI ‹’@j‡hÄxôÚHÕ"g¬úËÏÊ6[ ~ðák¬÷*žàkY&ZÇÕΦW|hFçeoSÍhöã6桪ÉÓdÑÀy̺’Úµ?t5Œ~lM¨Ó s˜:Fqo‘™¬aŸÍi‹J´‡õ5«5–­ ZSZ[9EÔ"é}Ã.­Ø0MŦg ‘6Rh˜/tƒ’ÉÛ„ÉaåžqE¨‘ Ý~½äêD¾>tµ"_¯§_Ÿ¾q¾n}ùÙ]Ðv0N?Ò+Óo¿ïh m°€é§ÕŽZ&E–&CCk6o„Ë`-t'‚{+8lÔþ ›ŒûˆQ (KÕ“¥Ð—ln±¶*cT9¥P <ÿ=ì~,vÌ ãÃä’x&À¾xì(&]ªE¸Ü`e5ƒF¢7é3Ç1N (öʧÄÐ]Ä'#™q8ö)1ètY’%%Y æŠNú®ÖS´0>Øož©SÜ0g€!p[U¯*€}€½ F1˜ÁÔ ›Ö ¥­X¸Ê”Ö ,G檼Ã*ï&àj‘Љƒæšd8Žvø]E¢ÚÅtÈndzà5´u BBg¾lþÀE2ÓYøG¦WZ¬@t3 õ¸ÐMLRÜ›(>F„–±á*‚¬ãðœ®oïâ‘ä™Ö,Øÿ¬b›{ØM"‚ÉëþÏC/}‚[Øœj0]+”ì/#Û/+% …ÂÓ9:F|x¨‚œ7.㉟Œ.ö‹÷Y)H6¯jY°®[›@¸èLÓ‰‚1¾`K w“ uI@Ô4µÕ*ZæB\;]¦EÁ¸^Z;…rÅÖy«tVC“Òoj—Þ9$áX oéüG­üôÓjÿ>¥¿Ïèïwô÷{úû#ýý©‚½_¦¿+…£0Tͤ7¾A]ö Ô`Ó¨W€ªu|&žî§‹¶‰*ÖM¥.ë~æ+ ½xЦ¨ý.ÂÑ 2L*²* ±"[w:d¤¡ ÷G½[4V/ØŽ¬.&k…}˜¼ÝÝz±$O÷Îqæ3°C¦Ø´Ò±$Çö¢L#†gk‚n„$sºä&èË$…CBÍ­]ެ½Y3ò£Ó„™-ø¸Ü°’6„LSžÅhŠ‚²€úÊeÖL³y…Ùju©.6¿hóE˨~N’eñ}i…Îßgf­dO¦‹Â¢š*Êæv¬êÉ §WQoLGlršRj³´’ƒ\ZukÓß HËⱡµl±ì‚Š8[ð¹æ° æH× bäa?êD eHsG*§LuJM.É<ŽfUôòº*î‚z%L®VLÈFõmÿµ;Œ”Fè-äž=gæI?È/ÿ˜á¶¬´Öd. !û(ÏKøô«â::1ø¬(ê¦e Aš¿*‹¸¼©ãŸh¡­¸5)x˜Ê-\ K&ÚÙˆøJáÈð ËÖ#ýé¢UÓLöïP¼ýI¨÷¨ßÌ Àäü½š5¢Ä÷L'S}¬Û¥ÉèJU6¹3Gxç#?È/ÿHñ’Þ=ôfË õ¢#6è• [¡X¸gÅëù“OC6\?釻š!$ë€T>§ ï°%f¦>¶J?éùå2x‚'6G¤´ü£yÒòË?ö›FšÚæ™à6Œãî_Þ“™²Ë8ú0ú?s…ÿyÀ÷,rùv<Ô7²N^8v=ð$M!…à*rNÅ+ƒOÚf¤êQ@,KD•’=è™hŠ#O,GÀ”3”å˜EÀásïÆÉ’ j•Dš“–FZ©ÀÇÏ0ÔE5Í Y*B·â¤*§ô -Mó’¦|}ÖÂgÁŸÝúwy«xg¦Édcjú-ÖczqgQK‡*§*߉Dzr„(ŠšãÖåW€¹˜hF%ÍsÜ»¡£˜õ‡ºûkÓƒqÇ®}`í‡ÐÚeÚzr§—qDÚz…ÜW®Âl É£ØKæ,#tÅDK «°&‹Ža|Íæ­ãpÔÃC À€µ‹a«Ðÿ2&fBí Îœí[|ÖŠêæ)"bÂDtÖÄ_):—ø…ë¸1HÁa½W.¢ßùQlC fs4Õ3ÅêkÜáP³Yõ‘¾½|ò._ÎJsÅÊ)²xæ€Ðk-/u²Mô+:?°dzöœLPº‡A:À·FaÜA—¸Ê|'1¬ *¡ó0:€ÞšáÓ¡1ȨþMY>B.ÔÇ5$'F/3¿©"¡ô>÷Á0l¤ÔúÚûÓ8$ø…’°BIç 8l¨<\ë™ïÿ:™ì`®±cä¾…®ýV!O-›º3÷Œ§VÔªZyªV¾ÃSB«û‹)âÆ°¬¶;+˜BÃâ¸oƒaý|q2Ò·jù‡°'ƒ·øùȾRd·ìÒkúWth,ÓÒ˼¢15œRø¤Ì`@ƒÌR©Z:jìoìAV¾x¾ƒÕËè%ɵ5#GçzöB„EÂlÁ\ÌSÈ‚ÝÞCCÉ{ÛÁÛ0Ìâ¿Böωµ„uUâõdi3Jq@ùÚ“ÿŠl78c0>¦†ïpý‹´JâÊÑ‹¶ÂR´0Ñöd›àç9‰{Y¦ö$E鞢¢Æ…ŒD,_nÖ/®ÊFmc£¶®ÒÚFE?UÖÇjÜ*Õ6ðRøH}Ój}S1Ê2¯L±bE l z’J­æ©Ÿ[¸ jØ#ZÞ¢)I+ÄMlT˜«  ˜êZ¸A¶›`•Ûü¥ñr›<¨Tö:Uæ¸q”+&)S%ÅñÄ*))S%›ÇG;û/­‚œ0UîùÉË£mŒáj5i¦´å å¬7SÂdN¥S 6 ›8EºÖÆÓ*7+ÃÔ»ˆbtn¬”øÁ¤§&#Íåô£ ìgf/&¿ŒΔ§ æmJ¡8¬yÉò)<.ÓPÊ8 Y’ÈdY1çÝî§é£.¡t8/{1ùI¿ëqÞ-(½Dƒ '“ƒÇ”ÁÙH#Ål“wöfJÐÝhº@öbò™3%ìWS=L!L[t@*?¸éû:}ßM?ÖéÙêÜÝyްñÇý*ý=¹oí 'æKá9— ¼E7™üš+“dC•¸ã$#äŽ7¨Ý<Óœõæ–H̰[mm6ööw6»íWM7Á”ÛÙßÜ=ÙÚÆñÑ&¯¹}ÜÞkü‚ˆG?fðq^6³9Ù|±Ûx‰Pø!û-!OYÃCSGMrñã6µ¡³Y~½½ýšf™LúÁó¿p:?X_HZêöáÑÁË£Æ}¨“2U²¹y´sxlä„©r[ã†U _³ïÞoÓGÃI~Ö ¤òCîkM®ýjÊ4~û²ào–‚Ô¥‘Q”ÆÉñÒ`L•G'yjÉå{.x²QFƒŒ¿öNB¯dÞLø”å[yÇN.ó0š—Ñ¡6ïPâ.¨&ºq2cYŒ¦÷ã$­jJššavÂT[i¦tºCÒèi‹cŠš+ð "0 [h lôAóEm…¸ìW‡Õ“×âó=Þ·(ÙW§õg?r*¦ôFÁe}ZÙg¸ÕHNR‘Õú!zA6½d”@ÒÉtIØÓäŸí´5w±[…Þ]0P'%]]ËzÚtÓzBm÷Yßž•# y:@´®A‚N«ê%1¨Æœ‹ù®âJ…®œ„ŸºëŠž¡ãŸÞ•Ë#ýœ½â@±Ws ¬Ï«M® ŽWFªÜbNoÝÑ`{«\'Ø“k8 “4̬ /B6º”„ `=:W3B|Ér21P@þ‡>O†b{M!Í:h/uól÷ù†'¶pÎ0`XäÔ<üÅ(¹IÙ@N:âlõ†>"eðXj|“¬Ï\´64P'IÁErêÚ‹w µÍµÓ ú{£ú÷ö™~X®þt¶´Qûê£ð h¥ãŒxÙš©jÉÚ8‹Ò„‘~g-–^‘™tðÄ^§d+Ví©ùpu ™I·¶Ý‚œÝ>˜¬.wwŸ‹G–„nçYIÜÝ%^ÄY"nä¬&ÆIüVMmìólM“¾é!ãänh˜‚D€Q –ìH`÷égsJIŽ/FÑ:l0ù¬,œµC{ª“É‹®‡iýú¾vV¬h}ÛTé„®áGq1s“Ë:…§0£Kkòw ]æĶޔ,xkÞþB`xâtØŽb;J’>쯜¾Y;[Z«T¼ó|½;*­ùKXCôžÔ¿Wcªì~™®ƒ©òÎ,É`ˆü:2LEmŒ“aÛ¼Q€áf6˜¨N.´J#âU=(Õϵ‰{ÖÃrÞÅ9ó±¶>ƒ=¥ý%tnn•kµ%ãéœù[뱘Q¯±ôÃJ> š‚»…ä¹mÏLA6ý­ÍÇ¡cvöywºq‹7œã§m•º̃½Q'‰ó&[¸Æ8Ó7¢ë]ÁµÇÆ`çéDâ54·¡iu7óà3,GVAçi'½´èpC¹{‰¯àg/3§Þ]«lªàÀýñ5&p¾È%fœ2‹!6ÓˆVµ®U’ˆª±“àg¹ej×–^–d_ù0G¢¹µï;7bÏ!dPÒg¿T+€ì´%rB|ávK'= —V³°<ϳFòoZ>y‡ mXP UôýZ‘Ð29ç9ºæ’W5"wÓ5·%)h5X;}CÞèh¥r j×§ÃS`Åf ¶†Ÿé—±Ïû s2ªÃ²ÿ9V‚ †•äå>‡íÍ|‡é×¼‘ÝxÑaûuלêÏŸËçñȃ´Æ£dÈ2¬I¢¤â®ÿQýÏšñÜÇ™±¯ó_!£âûzaº?zø2s­#@`&Ü\Çg¶3«™ÙõŒ§”öݹ^µ‹1i9¼’ Ôy§›-ÔQ¿$¡À‚7Ýs¾_IéTŽÛ‹qLelÈä^¬õhƒ#f²Ë¨ž ¬+º‹yVå¹Oûäça詟Ӵ ÅŒ†ï©˜1•3#7a¨x_àº)å×@ÐF•¦´^v^~ꜲšÍÓæ½Å z_ubÜÌÍT½+Œ›Uè{F•$kº ’…˜D/Zº'j8 Ñ„ŽeSXX&F³¾ôÉ6e_ŒüЗ(¼i’j+írÖg2ìë[¨0T4Èô£(eIcrÔ0ø'Qññä °DÎ=h¢€ö³27Ž™½É"u›MÊç(ß K¾P)—P̺IrN†´„Ý·ÞõOgìØv~‘¥ÑSésf2i` ‹³§ÎÏ%ôóMÄñŒsõ¨CÙBƒ¤Ÿ'­Ÿ£g›µÒU_špI‹;äÓSFx«–åê#Õé0)fO•³‘°pò¢‰´¼uЬ¦ã[ óœRÀ‰5«Švh,–zÅÏá@Ès7'ŒÿÀHÓ•îÚ!ÿx(zfr‘³ü4ñ³\jÉãô<3‡°Ò¾Õ`ߟ®6f3™Œ:á ¦ª < ]+œò=-XB¾I—@øœÔ,€ÙÐi¥i áa %RóáÓÃtÔßçÏF%вÓNQd3;È04–³³÷ì,ÐR8¸¤Ó’/榹§m¦~s ¹Eì§On1;eª_Óg׊*%/œY´±bF`õl–úOëX“ >&­ŽZë!´~p­4Ó¬C§´j—[qÚá$äðI{Øb³­Uø˜)g®ÂZkGGÁ/Ë$²?€¢‹ EñŸóϦúµ±{²­¶ŠŸ€–/˜q“ÎpÈwŠ…‰¾ƒµZ\S ’óˆð\”ø’dî²ÈûR¤V}íµHàŠt“gÛmÔ=ŽäÁ¡•ä‰+á£dxTúyÝÃw©Ti­,´V9uCñÓÓV݃•âqw&ö¾¸0‰ñ&HìA‘NºpJM¤•‹~€¾útB6«·ÔÏÉœ~¶Ê›ßì®N «ÒIÙzÊ馳ÝÙùšd±æ{Ô%«ÿ]òl¬Ã—Ÿÿ+D‹Gõ‘A}dPÿ0¨Š&Îã7ä†tØF™úÎoйaô ;žçG[õÙ×ÑíÂSl²eãÕ «èê.¹,Ú“² "^©WaÃysZ.Ñφ£dŽtT l$»~é Q»˜bÔw[CÅcÓW Yõèê*ñª¯˜+£%¬Ø9Ói/+Bar!‡ ­ýqƒØü­Q¾š‹®íV“˜.–é’é:Ìs‡üèzò¼imîÞ4}+wn€ñj#~å‚´c˜˜ð0£”gûi1~Ü   ©Ôᄵ#HþÄ1›xí¨ª/g’;¬è6qœÈnI§y·æ€"Y¦ZÄX-cÄêd¹Š¶Ú5‡ïª/ÓÅå_ÒS&3’4‘¸ b@ÞÆ©\€øÓÉ8§ksÛA\®…Á‰aî]ðÓyŽ@Fb ¶¬áèi¨ö³3åb4 Õ [6ÕAexé Ûìž}¬EñµBÑØ‚[Ztr“ºˆ Š7TDÅqj)ZXB³¬%ÕØ¬nm¿4/±h¯’8á•$“8zg#¸úr'ÙlöÚø9¿ûôeˆ8VøgR»ô¦·èÏù=šme zA[ùÛ{BÂQ¦J  w#!@qG»4@OÞ?áû€/N3÷‘±U›Âîµ›'G›ÛÖ€a0,aL߇v‹Ñ×ìIX¼ì? T†Ò ;ˆDz'CºF/wW)€½ÉœåKÙfõÎÖ†TjKêµT«X¤ê9†8F¯©±×~Cü l0•Øflj¨q:Ú*âÇö\´)¤#éwÙx‘ª²á"[*Âç&jqeyY¡: ì3oà׿¢b ZÞËb½7ðDfò|o:ÞŒ†åèê·âôvû<˜é|¨³;àiºÌö-Û…¼É®œ{“¢^­ÝomF^Žd/‘ô)þŒ­’9¿v9$âox5Ÿž­°KF¥9Ò6–^€àf¢‰Ò³L<´ ÀÄÅ3£ÓlÛÊ6ƒk¡ú‰äžš£Ai6C+tsµéé!½™ÍØ÷wŒéVE´º¯ŽÑ5Ň«°Úë—è ˜5”g4¢˜ ÎÍÇï&ÄŽÆn8†líöéÝŒ‰˜ÝÒvj”=¬f%ÎÖŠ‘,樻$unŤ5×ãî]X–Ö™öÞAÙÔ¾Svº ©ÒæÔ×ËŠ ûpÏÛS©3•`Äÿ <ŔƠ©?µ¯åëþÔ¶fówu–ÿ§75K³73å}Q{Yþglek,ÿý;Y÷÷ž,LÔ]ûXŠÌÚÆ’u˜šÿÎãpV]àÐ&t‹ÆR­(snœH§®Á„úÖQùç’K ÆÙ›*’_f9C17Žj=²ôŽ;Uæ›Zd*iŒÌÅ1¦»³4@s j“ K;õhœû_bœË+çÑ@×^ººÈ@ÿ ÖÏοi]繓O´dú˜Ü"%1q©}^~ï¹îÿ²îÿ²mbî`pùžÀ½Àµä¾ÓE:W;S¦Á;¥%þkÚh°cRµåbNúy­3_+‚lr›ûëù~Þ¡¾ÎiAœ`¸¬ñ$†ùÄkáÑûò Éc{À^¥tæ•UÁÎ2sô6‚€p1zs%kšä:v“ÈIZ 7"Ü €!yÆëØcnø–WÏÁ_ºQÚ F]ÃC~Q°( ¨¹…uͶÇ`/a¯‡{ÑÇ;ý$ç@3’iBWFù«<@ÉÅQXÆO`ëÓ@‰»ß4ÃõÍE2 sý ó6Núð”Ò´· ]Û-½ ®a(éãé<À¾•.NÚ¼›ˆ»¹ SÛ"Ã…M:¨(ÒΣw‡{$ÁÅL  ¦Ça™WÉŽ^e¥ë tD·8^¹™LGêrwÌP€ÜOП3¡#ï{’b”í ©¿ù¦’"àÖ£à=5ùŠîçÛ|þ>užD–ùkúlá:æX+QªmMÈoù÷ÑDL`” ÐÆÝô†v7ÿ ”Š×Žå©xœ[¶‡Áþ†Æ¦-Ì»õ·ÔgN]cÇÆà©ìs—Ñ‘A¸gÁæAÈ6öKáê1ŒÓÍp0I º‹ s´åµelöÅU±oúÀ¦á‹Ÿ`ÇåK`Ü]†À†Ó`ÖäÌdã÷N}Rí04iù+äkh¹ ßH¡bDÓ©­Ä¥aM+™c¤5•°´ø ÜmèŠ NËàÕðXX_HÁ:ÛNÒv2J:ˆDçLÄç4̇F {ÇõºÿC¥Ø ™€‚ÿêJ½­_ð‰înQTWíp{vDHCrÐ3:ÿ¸¯_Ô³ô¶™ÕØÎŸt•sœWÂß‘¬:¾š_׳ ¦ÏO€N•¦LÁ`8–EÛ{ÈHeÙ<)àñ_ëù*% WÛ™:ù Ì >¬gЬgÚ„&¾”êN5´6rʇ¹ —cLaÙJŽõJœºðÌa( ùo ºU&Ü#&Ü"y9êûüÁ@ßãvñ—9V ˆ! xä"YQ}½Ý±O’&ÂÙï ðôé0ip`Î,±bnT)jˆ-’I6.kQÁ³ôù,±Û±y¸LeÇË…FÉ/ª]OnkªÛ!’ÿ· 3™L;ì1[#ä5ƒ-_ȺT­‘,=˜ûDzphƒœ6ĉί‘»éiËÄ»g–Œ¬ÞŽçÞímC: ›Ä¤ÖÂ¥)6ÄÿB´¬>Aw>“ta“ü2%¢Üƒ+Þ'-a˜Øâ5ÆMà„$xœ ßÿ›åâÓ€´“y—”y&‡Áy·ÁyíK·_Î<ä,Qè/xœ{t™ïò|¾†-ŒóS§O®dœ¾)•Ñ»`c½ðö„nÆ/¦ÿ,f2ÊÉORÈÌK-‰Ï+É/PˆáâäœîQÂd3½¹„ÉŠÄ-.)ÊIN,Q˜~¢„IŸ $RZœ“šZ°ÝÑé<Çô3µ@ŲíLüÒ¾.¦n™9© A¾.†f`f°‡£!ˆR{ƒc;k“€ôtþp&®éŸ‹™D·Ÿ›É¤Å æKp¥å)$&ǧ•æ%Ý£VRŸ_šÒyŽcúéÕLÆÓÿÖ5n`Ú¾ç(Óg!)4-é©@”Äçäç¥Cí[wƒÉä"Ëw]Wæ €rxœ»<Ÿo÷|¾†-Œ%ÝL Ó2Š‹pr*((gæ%甦¤*Ø”eëeØm_ØÍ¨ÎÌ ”š~p2£_˜gp¼‡‚!W¼£³«¿[;K?ãv–~&WÙéL¯™„·Ç­aZd·È|Â9]Išiþöö¯LRŒÛcZÇ5]è$£gi^fqI ÈàjFfmf&NN°¹Ó/°0 oÆÂ<‰MÝt $·ïfcædf„¸aú;N Z.æó­©×?âè€=xœÛ=ŸoN/_C ã¦æ™ÓJ™„·o]ÄÄö| »é€bxœÛ=Ÿoß+Þ íó6O˜Ç|û¼TFK&…²ÌâíÚrL+·÷3Þ¿4}~*#ût»:&ŽéJILUÛ&1=2›®PÊ$¼}ë"¦'Ó'ìcâžn5Itûò5LÅꌜÓ?^fÒœÞø•I|zÁLFÎíÖW˜²q¦erq0WAvz|FbÙvÍ›LV‚Ì@ÖôÔWLÆ ÆöY¯˜TD§«¾fâŸÎ´÷f'£0Ü(Þé.]ŒBÛ•»™¸8§O\Ã(4b7£%óô ,Ì\*‰ÉñÉeñ©‰)©Eñ@ÄgØæåsqrZq!¬G7UŒYhº+³ÊVIfA—éÆ.ÌzÛ³\˜½}¼^aíW‚pxœ}T[hTGfæd³Ù7ºk4Us²‰!ô’mb‹Y«¢µ¾^ÖÙ³s²SÎÎYÏ™ »Å ‚â êzDŒƒ`! B‹·ª”ÐB/¤/ …>¤ôÑΜÍŇnöü—ïÿÿïŸÿ™ñ› ·ß…K'µµ=Ÿ?8lVòÒÅæv_>jîjBf2Oɡ׶}“Š,O Úz_ùÝþ;äç¾*´–§‡_ßû¤pyõ¥/GzÊߌì=Á—´ƒñg'è]#ì$Ôòõ Fiì„ü trÈEYñÑ*x7Âm >à71ˆó<ì²îŒÜŠS”ÅÒ–fš¸˜*?vÝÊ—:RZ&e¶”ûôPÈ’}g ›¤òŒ(Ÿí˜ÈÆRÉ"3C(Žcš&ˆJ‡ÏìK–ñf²sŽ­’Lá‚T<æ:dO‘zE/ž*2ì¸i¿eÏ$¨\†Ý¬‰rÒb_«!JEŽÔci¥Tš&•æ²rºóg«3G¦MÇåÜ‹9¬¢e³ªOLÞ·Ì4¶f{VöÜ¡”‘uòt¶_ùæq%ŸFf3æ2ÓÇw‚N±ç<õ09úô*yè%øLÉc`@Œ_­*è 8s «£_Ü‹ÿÝ[=mü[­†ˆâ#`TG·>–ëU]ñýBè_/A¬::þ,«Ž~ Zè꧅І߀v\­Co< ëêä†Öf|M "~+kí$¡„‰r žþ„ß…‘EˆYžÜTĆ-O S0åF.Gád/=†õ¼¯—‰;cp:¾C¼o§txƒüþ3æÇÿM¼4 "¼ë9lÚs8]"–Á°ÇŒþ4š:¶„QÄÞƒe0ÕuËq ùhXyjªËlÉÛäa›*þ×uüÈ;¸N´MÁ|õ\|õ \Y!É]!±á Äê!1úî×6wwÈBNê+\`±D¬cp`ËŽ-ÛvÏkÆû†W@·“›Ü§‡,¢sc 6ò†¤œÚİtŽ)ÌûÏ‚¨h? v):~a 4Iú çÀz—j4]Õ5‡“•7))og2“ Î\]]ýôùrW–kQ¾< u<\¡ïõß¿'…Año¯6P–øa¶»ž÷ôk‹L¿¶?,~Ü¥M&þMåîˆxœÛ÷Š÷Ö]Þ†-Œ{´¦oô`¼ÓþLj™¶ÿ1dvrêe Ùâˆ1xœÛ÷Š÷ü]Þ†-Œ{´¦oô`¼³ý!ã,ãíÓS?2Š—¤å&'èe(€X™ùÅ@V gûÊtF fÚ¾2y*/ÎßÍí ˆ|xœÛ÷Š÷õ]Þ†-Œ{´¦oô`¼³ý!ã,ãíÓS?2Š—¤å&'èe(€X™ùÅ@V gûÊtÆí+Ó™ä£Är2óJ+´jÒŠRS“ŠS´jòRK€ôô½§˜ÔYµ4¹89§ eŸüá;Ïö™Œ8„3‹óÔKŠK ò‹JRSóR¦ëŸbœ¸\Zª¸$±$­X—šéŽÿ•Y¹¸Ò2¹¶ß=Å”¸ ÙúH·ëˆ!xœ[úŸ÷È+Þ íŒ–;8e-'O’Q’;d46ÿùâÂh¹ùm"7ú–ó‰(q¯B~3Gù)FFËé{•˜}6ËWz¨nΘ×Ü1¹`îíÚzŒâÓY_2ªk–dæ¦êe($æ¥(WëC¹¹‰• Iù% I© ™yÉ9¥)©Ó'^c’›n#ÉÈA¼žÉ÷*sg¤&¦¤ŃTM¸‹ñÝô?FÎé¾Ky§ó½cä•„h·ãR†jR°ŠLß°‡QT ¸¤¨4¹D¡$WAKSÁ@“k»ÀÆCŒ(¦ z3¦°@Ìoc4šÜÿMEúà1&ù+E§¯ÅÄÕÂd(âéëîââm7c’˜þ¶QhzXã~f Úí‚ùŒwAbùìP¯ohdü$89èªòö¼ÉŒz—A’Óç0qL_ÆÄÃZXTœº}sÓ†„í›/0q1ZnF‰:~ªÁ| »p¯¹è‹xœ[úŸ÷Ñ}Þ íŒæ;8eÍ'O’Q’;d46ÿùâÂh¾ùm"7ú–ó‰(q¯B~3Gù)FFóé{•˜}6ËWz¨nΘ×Ü1¹`îvm=ÆíÚzL…Óß60rLŸ_ÀÄ1}ukAbQqêöÍiL¶o¾ÀÄÄh¾¨_ H?Õ`>L£4ëŒ-xœ[úŸ·ç?ï†2›Èä76gÌkϘǸ=c“íCÊ– ¡åŒUxœ[úŸ÷ó Þ ­ÌfFF;Øe@ôäI2Ê zó#W0ãm"7˜ñ-ç'Xɽ ùÍå'Aœé{•˜}šå+Ûå+·ËW2½³ßvˆé¢îv_L«4@ ¶¨²YO5˜„SM(1á Cxœ[úŸ÷Û Þ ­Ìf–;Øe@ôäI2Ê zó#W0ãm"7˜ñ-ç'Xɽ ùÍå'Aœé{•˜}6ËWª~þ®QpzXã¾í²ùŒ§¿m`ŒaÉNI-kwldÜîØÈtÆ|Û!¦‹ºÛ~1­ÒiÞÔ¬Êf=Õ`>Ï~4;² xœ-Œ½ Â0FçÞ§ø¨…þ MbP¡¥‹èêâêÒÆ ÁK½Áúœ³‘!Ú[Þ¶Ü£ikÍÍü •k,¤ÔB®„–PËBéB­qîkÏØ½:DÈÑÌyÓ'‹Ð7æ~ëjÎ/!‘óLÿ]bR ¦†)éMAoyè}bPUˆ'Æ??rœ–ô¡/eå'²±¹xœíYmwÚÆþ ¿bâöÆà ØiS¸iÙÖ9|$Íi{S!- ctôbâ¶ùïwfw%ô†MHzî—âKûòÌËÎÎ<»9=)};dÁ…Öo–Y7j÷Ьóh5g§øï¬ WíF«}þ,<Ý@ùè·¥“ÓòéIiî9ë6$PÜ ³ tþšP§ÍAã¬Ýjµ[ß³õµÅQv`,¼פuÚhž6[Ð:k¿j¶Ï° ïØ:Â@2œ@Ïq8sðuj[÷Ìó­àZzúÊš;žméu€îj\‚ó™wÏÌ:¢ð13-?ð¬YXŽ ºmBè3°lðÐ3o™Y¶î=â­ýl¬` ŽÇÿ:a@(kÇ´æ–¡F t˼µÌ×sî-‚¥pMçÎjål,{†c›Mò …æ­YЦçf=£·Sêd8&Ž ýÍ tÔ•Põ™sO]Ò™‚Û ,ƒÕp„åà ñf+–›—Ö …+ÝZ3|­¼"(0á‘H´Ó Q¹¿GVJ$Ó1Â5.¾-Ú)®‡ƒý¬õ€y–¾ò·Žç FÀI3¸qguº‰‘X>‰ÜÎ'8çLB Zv rh„ï̃ .›T‹{…¸+ý!c‰nÜÙÎfÅÌ#ܶb‹k‰n Ð>cšl‹ &»g+ÇEfù'€m×à‚ywlŸ-Œtt¬0Öñ|nìy7«ÅDh¸›YÁÞ±m7¹,Vd+š8cä \4“ƒ‰}Œ„­€E–ùhˆ‡ð&PÂ(ô›ÜIà»Ì }„S-Ú`í [ì%ß—‹Fs&תÚèrò®;VŸoÇ£·j_éÃÅ{ìT`¬\)ÉÝaz£ád¬^L'£±¿ÿÞÕpÂñ1uTwø”ŸoÇŠ¦Áh êÍí@Ew‡UÑj {ƒi_^¡—§Ž&0PoÔ ›Œj$€ò3at 7ʸw¯Ý u NÞs….ÕÉÄ]¢¼.Üvǵ7tÇp;ߎ4ŽFvõU­7èª7Js˜:DÁ ¼E³@»î);)eæ…‚*v/‹ËA3ûêXéMÈžíS½†Ú j Ý*=•”Ÿ4¥;~_“°šòŸ)ÂNBëwoºWh\å ·à’ô¦cå†FGhÓ m¢N¦®F£¾FP¯)ã·jOÑ:0iÜcSM©¡I—‹GtvãóÅTS¹ãÔáD§·u4¬Ðõèz•íâì>wòhÈmF'Æï —üÁ× ï®l“O¹×ºä ½×›Zb$JENÆÂP¹¨èõžB½#z§jJ—LÕh€*$¿ë¾ç6N¹ù´X¨›xLo/)¨—Ðí¿UIy9ASeÐŒ. I›ö®¥÷iðúù2_@©ìÕGQ™áÒ mSV&Õ6x*x¤ ò¤Ä Œ•Ù¹qbгØú…² ÓÖë=ܰÍ,ôlJ&ït_ŸY =ø[ûÿáŠðÿ¹ƒü|n-ŸÈn³Ï®Ã…Û¨°K©IàʱDÉå¿¡• ·k4bfǬÍKO=Wž ,U¡¿¬>Ó=c))©ˆ¢-•032?³°T‚*Žð9F·_u8‘Áé³±ô/&]ª<[f=MÎKÉ#Wr—ÝY.YˆIšßºÑÕBà80³ƒ:@d/VæøWû8m“±¢l–(*LÒoèÿJ¬æ³7|<Ž£éM] U¹ftM‚nf‘fb•·D6ág™_ª ƒdh 9xz+ÝÞ5Qûl<¦ˆñ¾kW mßZØÌÄ”k/J–‰Â$…:YoŸ ·'3úb.y•á—Fò·ö UB(]ÛÚŽýóž¶K3—'!Ò !‘šaލls O«2âÆjU&þVÇ.²‚ç3·òœ´9jÿjE©L Ç5à#ñ/-ìÚ­äPNÎdŸx˜<Þ<"îYÅp û³¸–„ œpU!G>gøÕlD@ØÿcL±£‹E@áÎDÃÇ•GT¾nN|Þs“Q¯))F"å-]ŽóÅ[:…‰ëŠsù¯ ßÌÜ/¶»~MXÏÓÔ^Bó7î3éw9ôD>®'’€!³($)rQG¼¯_¼ÀïI+Ä–ûlE÷ù hœÌݽکW8Dð§” ™FÊB¿™+6öÉz«lQ“ĈÙ¼(:§—wìw£"›&òì^DŒ‡DI+b¦_@+â3ènf”3$¾p ³Í—[æ©Ñ׳aË!EÔ¨Hc¾õºBׂ¬$ãI²Â/Ѝ‘èàÔˆ?î¦F©›”½¥EÔh+'Oä5ÀÔ(R[P£è$˜§F»¹Ñö®*®¯q>Ê’öïÉÄýCâ¤q#á Ü(ãê¯Ã"e>ƒEjÀ’—| ?Ì2—†û®Ý#Üè+ð!áÒ$ŠHŠÅ­‚ůu|ÚM‰J±JÑ¥Ánz”ƒ,äGYÙ1¤R|“h ‹Ÿ Lò W"·{÷bOÓ½ØSJýPЧpoú”›RÂ,Ú×ÒÅ¡–îÇSºæˆb¤$Ë+™PÑX!B^É}f.u{ÁšÊ>º–—›ÍÍØÅ Çßåfò1ï/Ö"Äo6w,a73Ç{Ø Ì_²ÕêµD¡…2ÙÒŒãö1Oyæ]Xñÿ%u;î—Hxœ›>?t‚„”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙFsqæÉ‡¹E6û³8©!Ÿ gj˜xœ›Þ>Ar£l‰6—ã·ÉxœµXmsâFþ,~E_6µŽØÀz·œuåîd¶jAâôâ—Ë¥ˆŒP­(i°×—Ü¿§G ìË}:' ÓO¿÷ôô䬭}o yå?ÓZfBœ®:OÔ;UÿP¿Ûýp†?ô¨ûñs·ÿùã'ZfA"Éø¶¡ïµöY£qÖþ¡Am¤›—,Z®$5ç-êýøc·Ãÿýšæ­9b)™Sº ‰Ÿ~=‰,ä ï ‚8Z¤Y§Dz“’”S&r‘=‰ðRX‰#Â(—Yô¸•QšP„´ÍE åé6› µó%AöB·Î;ôÉ¥™ú¦[ÉRÖi-¢yÀ2:d‚6"[GRŠ6Yú…XÈU •¥‹4ŽÓç(YÒ1©  Á_’Êh.:@D9ÅÇb*µÊ½C› tÑZd#ê¿6 kÙ?Ã-ŒûÿØB…—¥¤0o×H~°KÚò‘‚žÑ:"‹‚8¯¯Æ‚ën(ç>œªÚBTŽŒrVYñ³ys!¹EépÚ¹0˜j³ ;Ó5ZH™é2À,4ßéÊG_¹ÏÉ‚mŲV¼•R2G¤oM6¾£\³,{Ä’\pSF¿<ÚßšïZå«]àvmîº@‹>}:Sw%.ÔwÑ" Å‚fÏ1ŒÙͬñ?£DhÕÎ~ë‹ñ04Fº?ö´æhvméwÍ&öÐP klZ_ÔÊ5ÿQl¹åÖ?š¦f*Ví{Óbá—BFcýÚmUª&¦;ѽÁqozZ¿Ñ/èv°]š[â,á{î·†Vÿ­µ7h‰ìP{¾ŠâðR;kÓvÓÁ𜰷ÇèL<›ˆoòRcl,`. †§‹ÅL‚i–Gÿ€0†—uYW7'†­w?Jqz~ýþW`Å<_™ÖÎã(ùÊr•à—õc£Ãñ&.Í…€/ó¾ÂÂ,vx,m¹£-+Ú² !¹ô§" aÓ™®wïµèý{ªïÝz÷­]Ø©i%¡ñÍ;ZTY¹ÂÓ÷;¯Ë/¸øëÜÝûå÷ºüÚ­††(ˆÂJ^•¡ä¥r×YA̰*‰XE<2 ïEfqš,´ˆƒe^¢ÔZÑ[!%Ù…•sÀÁœ§ÛD֥̿æÛõ.Xó•˜%lÔ2³?†ÑRä²3~¤b£ÊÖaïS÷çL†?`ï56_½$uï5L–®1‚×ؾ^ˆFahEʹá*|Iºƒó/z‡ÛVbúšó ®.UuÈËôfƒ/®?Ñ´î·nñ×+"ÀáhöZ‡¡¨¸†Æm§ÿV~j`Û2jèóebŽág19bPG¿ÆqQd6ŠE•Þ z«°½îA¹W KŸÔŒè—°,ÝnŠáæm^[ö¼ÀFKL;G8´WsP!/ ¤’· 0Kœ^Îã‘É(ž=W¯Û}£ jX4Ó=¸_‚w¥‚©V»Ç—¸d»~ćɌËþÈ {êí.Jñ c¯ê2é†Tò œQÍ%Lïþ—"¯8¸¬wjú;†£Z¯¡qOìÐç;ô®ÃÖ`uo/ö¸ƒ†yÀàUÅVw÷çéf¿‡½Ù°k<¸¹Jžó=*Ö×GÁß×êź=®U¿ªUek Ã[ôRÅ`–iìwÕ?á‘R6ˆ†%RÛ÷IUÏR¬1\ yÔ®ÆöàK¡¼D>Æ)÷ž·ËãªSèÞ·Î {Š1R!ÏKdÕϾ9²î¢Ä-ðj9†Œ †ðYWL,·1ô*¯ ªLíwß¼Skªôû|…ÛExTô8›—{£jé-[5çæçÞ/—5„JWS½ôðüáÛ¿Å ÿÆü;4.¯†˜ß QDí6?y/ Å겺WΛ3ÉŒgêiƒW“LYFίkZl“yñ:Þl]Ï­â­ ì2 òçU4_Ñ3ÿoQV,‰_qœ6e6†&.6<á¸9ŸÈ=x³Åëô”ï0'‰,9]}§FG<üàhqmE‰²«¹ÁƒÖeC}5xÎ’)¨{J±:ÜnfK!£°YÉ¡6–j€m¶®É©W›J‹ÖF‰o¹:f©êÙ™67- Ãfßþ²ùŒ~îþB?ýD'§'<ü’zéì„þÊS*¿9ôgêÓçýڜêóµà~¡f+ØîO¦˜g±6'ßãg~$Ó«?€ôéÔ°†ƒ=Õñ–j•Ä·ˆÞ3Ð5<%¸uHÛ5 ÄVo]žîÞV¬t<>Í[ƒ•»‡Ö¾¥ÚÝÙŠñ‘ÚÀ‡2Må¨Üª©¹ ˜R˫֑\màÃóµ AGV×,,íúÒ^F9Í2mÿ¸áýÿ*ìõj‘xœ›®9Ys‚äFÙ*‚°êxœí;iwÓH¶Ÿí_Q˜N"“ºßéN&ô8¶’è´cg,šŽQ¬²£YÒÑ’eºy¿}î½U%•d'Ð0œ÷e€cKµÜ}­2»Û<;vz,ùlgÖ¾aû;ô—½ØÛ{¹ ÿ^î³½Ÿö^ìýȉf̺‹ÙíÝfswûy“m³nß'þâ*cÆÌdû¿üüK>y sñg#¾àa–²hÎ2x„þ OR?»Ç‘®øó( }w‡±N0‚”²„§<¹áÞ@A$#îùi–ø—yæG!sCå)g~ÈÒ(OfœF.ýÐMîÀ[¦mvëgW,Jè;Ê3„²Œ<îÏ\„ÑfnÂYÌ“¥ŸeÜcqÝøX:V0%)1ûãpŸ„„ÐBwÉ×øN•ÓdsuXŠW`ñ’£4@iã¡s-£Œ+ÎR`$ð›ÃÄZ¹IO¢h~[}t°=(¾”¦Ri¸g|f;ÌžŒßtFƒç‹ÑðµÝ³zìø-LZldZƒ±Ã:ƒëã‘}<Gûø±ãÀ†­-œBPÁ[fý~1²‡ GÌ>¿èÛ:ƒ±m9mfºýIÏœ‚”'c6ŽYß>·Ç°l´º“ Oع5êžÁkçØîÛã·DЉ= ºÀ×aÑØîNú»˜Œ.†AC¾z¶Óíwìs«1Ìbf½¶˜sÖé÷+|¤ ›ÇØ9î,Âlöì‘Õ#?åS¤ÔõÛ̹°º6>X¿[ÀJgô¶-Á:Ö?&°&Z¯sÞ9æŒÏˆTÒŒ¬s$áLޱ=žŒ-v:öàkôÚîZÎ!ë’ØÄ±Ú€dÜ!ôÄÓð|–@©Žå!d²¸?­ÚâwÊBÔz9C"šBJ![HýñiÖXf çS £ÃF£‚êæIiФŽƒ,//!m€à@~7óÀ]àZ\܋­Œµn¯vK‹Ñ)‰YCp*2¤ ~cmlƒŽäôMä{ ("wTxÜ {Ûn3ñ][˜òLBx`A®]ÒOMdË8±!ümÏc³ùG³!&w–Ü·Ùvà¦|Ó\É0 /³<9l6ÌÞ¡’ÙAƇr÷ÂçŒ%Q” /ó9 e˜CaLœÑkÀ!]Çð d5pxÈ`ÒïãV"Þ‘Œr˜¶Õ^a?ŒìÁëªZàyS’±×fˆ-š4`÷ (ט¡k[nÅdl¥ð:' ¡1Q›mê;ä`³Ñ8ôäXýÁta·ÛžŸ³?Y}Â{}þ1¢à›& -9×~ÌîzX4Ý^ùOÁdùšRC0™°ç´€l WèÜ_@(¢¸cnÇæ!{ö ´ FŠõŠæEXì9†‚+ÄEŒ†§ÍÔR‰â†ñd{ŠŒ¢=ëxrŠtA™fsœBA›µÈe6‚ü€ý±‘~z¶Pb$æ|Dá¬Ê4.ƒÑwš¸—lî¢øx?´àÔ _ ‚™wK’ˆ6(EoÀ l3HJ:R›¸ö³÷Y $ýDXÊ$xtĶÞïmÕŒÓ,®¥YA2ðg´ÈÁ±.öyàa¤UÞí} ˆ»[B£4 dÌ–1@{Æö%&®Ú#°äÌ‚Ba»h¦¶f·`]ß/|}=Z î‡7nà{E})*ÝéVKh¡&…OŠ3EP°³£Ð ‹¸ˆX `ù•{ÃŘ݆RUJøº&ØÆ"‚º9ŒD¤9TëÐùŸ¿Âdƒ*;™B]Æþü“‰aŒ¿)ÛÄááÀ’”Û<¢à×ÀoÈÈ"€iŸšrR¡øóHâ¨É¦©àT 1E 3Œâ-³b,"ÈŒØDuv†s¯Š°(¹Ñ⛓’ACÅÁ„»Ð^ÍÄ{»ÜnV¥«Q'w°ô ´Àh””¾MIk¡ï<„”ª€Çôù~ÝÔ:6wÁïxØ`¬-~VÉB¡'<€ê¡ÑHÕŒ‘­$zvÅg׿£ƒu'¬~ÅÈKJ *dg™ÇŒjB%¾‰®JåV³ õt¯Øèþ%<Ã[Ò èâ^ò4I½ËxŠÚJÙs¼ôià€8„†”ŠÜ`‚[mvéâ°¼ŒÐ¢ Êî),Š|1Á77Rü[ô—Ä8²Ï~e­Ý;`-¨ŠèiÊe¯Ž*pêeà R‘EÃ~uGkòž”rÄt h: ‚Jg%Tl”EiÙÜ=;éwN¹Ù0Œk~l`çrâQn£¦DVî;™Žß^Xf) ôH`FÀ×RҢЩ™Ø=<’˜Nó"tà"I’œ‘…,µì²ÝÈSžLÑâ§¹ï 4i†Ïm¶_–ÞÂk9îUª¯ìL‹e¾w´‘3¥)¶Òè,œJNdáôI”Ç‚‡…ÆÃâQ_ÆÃb…‡Å#<œc [Ñåx´ñ4Ò!àØZ-ö¬×¦àØ+½‹ÒÅqØý­Ú)Ðx÷¬3ª"õø?C´w:چעôíÁoU!ÔÇ×Gž¾ŸÆÖpVˆýi¹ÿáÍö?k2C>ÚÂn £’·šŠœ_ jlŸ×]ÉG%ÞΆ­´Äi:‚Ïn¦)Ÿµ‹šyÝ‚V¬EÛýÍ™œWñήÓ| ˆKË¡‘µÛÏ{?ÕlÆûI¼zþ‚§ÙÚÝ£óÞþÿìU$KÆtbä0ÎYg¿¦…+w¿¢Ax~9Uù%XšfÑTœÿ¾Jã÷1}¶Ö‡8ûtPï/Â(míê៺:ŠñPÌ X?^¡>+ˆ—ïâð#ÏR£Èù¿V³¥¦2«”í4ÁÖòºH{å|»Lä‡X½ÕŠ/K<üÄœ—&Ô^3ªa$(”gW¢gÃû èÛÐÔéJÜ YY Ìýî,ãIJ‹Útµ.ª¥”¹,Ž@¸3‚yëu™Ïç0„iÜõñ×k›„§y kQS4•@ôBƒ„ƒŠ6¥DâÒÚl‹A±µõ>£Ï>ßãçSzÜÛbŸð¢A»C€@Ô»·KÞðôíÊ^II.jK½¶i׿í[mE-øVKE¨îúèz§Y»Þq“rRÖ¿O/:ÝߦѩÓxÙlˆ³ð†¸ZJßUæ?¨ºLܵà†A¼~À3x¤Ë¬ VÀ7¼Š+&!fäŽQ<ª†å9ì!µµ“2‘=ô³gGêÄ‹6"Pêïáæ‡ZòßÒ/bÜLâˆôÊ»–µô€\ºÝªÓõ¹%u/$(O”8é³gš,Ê<…ÙDIî™Eƒ’E”k¡«Ãryõ'x*Î?â±÷ªªßhXJ.Ýð…B?ÞI[•ꀀü½¨K}:Æ|qUß)4 üd&hKr)iMY¹˜ÌÄT2!“Ф²N(kd" ‡šžõNŠÐ ‘.BýÊê'<ˆGh[Ñ_š«ÌÈ¢¶Y!§zÆÁh9Òļˆ§Þ¨Ã('ŠFaM½¬Ñ%¾òx¬‹~§kw¦8ȸc’°»úg<ÂUw¦¸ê“/‡¬¾¿ÙPÀµªE*Ê m‘Å’¶V–ÎÚÈbeD–Ú*ú´!ʵµ±°Ž±(W4²*…ˆ6^/.tN*Eƒ6‘Õhç±úHA&ÉhÅìÊÛðL›/.¾1œ¢¢¡wsƒ¾ÄU ˆ b)|ÂsNÏ9=‹|} áÖÃçÒ£ð Stñ¾½ÄÈ Så‡ x×·ZÄÃûÈ£ê…dÙ,oãÒGî%å)RÑrƒ@¿ \ãªÐÝF‰Ç>ÂRy"ëÇÚá³èå.XK`7IE@o"$+v:?+÷«ª–Û¦µz”Õ9R¼µRQž¨(ƒfzëƒkä¥DÚÌ…X'‹ìËjZˤ5ŠwûÕ4ð`ø§Ã("ƒŒŠÅɤD MYV:”’+Öø@‘"•+ \M»ì•°…òdF­Üƒ °j¦ƦàVßÔ.eŒªyR@^Ã9nø,×Ðë\ƒË`’!ÿ1¿^è泘±Ë/äF?É1ñÚ£Ûh’;J…~—ƒö#¡Ëe܆„Š<”bÀÔî;×:´|…ÄŠDôX¥ú¢Hý_¬Â!8 Q_ú™$²¾:¿‚Q@önïÃÑÑÔº››ˆûÝ>¾Þ© Æ;B½¿{ñ¡zPã0\0n ­E â–Þ#ÈK¾ÄCMº‘¿ ›µÖzá!GA¶A^È3L=ä c)ì# ®HÎ4‚–P—EiG™`¹ž*:ÄÐM–R-=|“Ù¤Y”‡Ùg­úοj¢ƒÿ.† gæïb xlð](/ ‡ïC·ýOK7,ÎÐV¢ù\YJð5–Bp>g#Niª»ÒX%§;Ò_cu¬ÒPå§*”€ž±—ôK èÑÄÅ;|¶Úï÷ZÚ=3‘—‰¼´wöÿåqêŠc–J3l7ÒöcBó=]cõ³;v¤’Ÿ3_âïÔ í<Ü!"œeЉÇê—>ké ‰ o¨NÖ¢^ÉÛ‹R$z½GÍ΃Û&ÕÔž‹ÔžcjÏ¿ µOþ©=W©o.$¡ùç3;®~(áäõÄÝŸ íîAµWf†¿ø3Ì–‡iÇQ‚ÿ+ mQxïÝmÜá/èÇÖhÐé3k4ŽÌò”ªÛC™'ÃñÈêtϬž`ø“<þÓ;ý—¿õ^G°a‡²îfµ†×Z’G~)Y4›GìÿŠ6Bþ~VQþË @ç¦Zxœ[P»§z‚¸”‰‚‘±¾¥¾±‚¡±•¡¡•¡©BVNbîF³ ¦Í³™'pOÖãß‹GÝd.÷*i Ža®ñažÁñ\Ê™yÉ9¥)© 6e™Åzv\Ê©y)™i›ÙgêÐ%"Qî§Fxœ[P»¬z‚¸”±‚‘±¾¥¾¡‚¡©•±¡•‘BVNbîF³ ¦Í³™'pOÖãß‹GÝf.izR~ ê¨xœ[P»²z‚¸”‘‚‘±¾…¾‘¹‚¡‘•‘©•‰BVnnÙF³ ¦Í³™xð¨ÙÌ%0M룀ã¨Fxœ[P;£v‚Ääü m6ðoþÀ¿A[>ɽ~xœ¥UQoÛF ~Öý Â1Ð$«%;‰[T^†“e7ñâ:Fœ­(šÍ¥“}«, ’œfôßGÞIŽl}Y€ˆ¼ã÷‘<’w>‚öLÃÅȆOÞ7ÊH˜2~û=³×…³n÷Üê~°ºgÐíÙý ûüüy[?¥ÐfGŒå™ÈìÒ0¸Ö8K3ôòt ×g¿Ïûë&dq=žNqÃZÉØÊ7Œ¹.™]—3÷ãÔ¹Zàª3i?k| ‰ |2s§¿Æ \ƒ<ŸWp^«œÆ‰ÏIr6™-î Æ+³é¨&UgÌù|Cœ9wJ½ãìΙM'CZi zÉU¼ò“mê¦Ç0ˆK!ÅS!²ØÜ€È2ü†EºŽ’•Òrü®E‘¤*Û Oß"å3ŒØÛŠ<õ|Zï“Zü â¢íÛ2¤~÷=S3³mÐ{×ÅE¾ñzZœ‘(¼bFޚȻBF(%.»þªêƒ'!•+7˜’o&”Ù&BYy­µ§h¡ÖDSÑÔÞ™ÚÛÅ$ýÍE±MÚr‰%èW,,„ (šÌ)èþlÈH…@lœCsëÓ'U9—Q¯Í„3£¶]w::”ª·¤Um>NmœšÛOóÉt|©° YÍNƒÅ˜9¿¾}±Á‹"1æÒ„C óBiŒá¦Ýèµ.åÚÜHh?cKôƒj`EÕ P8RÌˇöÏŒiŠTjL‰Ðgç®?ì››zK: k„´ñ÷óM o ýGµޝ&3x†4K|‘çp =(÷Vk6¤Äœ{(Ä6¼B`üB&1„I%ßóÓ:`w‘­˜>}ãÓï{,Hýiî¸7ÎÕxiž'Æ«A¡þ ˜: C†p¼)ž4lÆzçe†n·»ƒ—Ý|·:ný‹ÛÖ[há¿"  VfóôP»K3Ðz8’aŒÞ ¥¯ì‡)ì9"dØì tôÁ¾ÈFùÒŽ²Ñ*+9x1¿it~©z] ‘ +YäÌ0-’áb´ÖVÓ§pÝ’¦^Áª]VM³MöêQDÐúý~5µ(ôÛ]ZøÒŒ\Ó`U3þÊÏ{ôÓ PûÑ.VãÕd“ èçowQ з\ø›Z‡n/..°æŠñC×–µt¿ÿ—å"Hbñúˆäçð²ÿÈYãZ2õp`é³-tB85=ü¯úÓhãþ‰±õ›SãëŸh¨FɺVé¥ÜåÕj— 3Â['Í7ýxCÞå†2xœ{Ëÿ‚Œ¨‘‚‘±¾¥¾±‚±• ™n4”aä.*ÒËPH­(I-Ê›Á¨¿y2cn²ì†rxœ{Ëš‚Œˆ¡‚‘±¾¥¾±‚±•‘…•ÑFYÆÉaŒ†“'3ºl~ÂÈÉo –à‡+xœ{Ë“‚´¨¥‚‘±¾¥¾¡‚¡©•±¡•¡éFÃ6¹ôÔ¼âÒ$ ¥hÎXm=-%%6@©ÉGYäÙMMk…Í|¬÷™5௸ƒxœ•ßoÚ0ÇŸñ_qRyX§‘@ ë„VÉ!Ж-¥º=MB!1à5¿›®SÅÿ¾slÚ´/Sý÷õù>w±c_N =cr´á&ºgž2‡çŸ ç|¯Û=s»çîYwŸEí»¨gL=F µ§]^íÚç\ Õÿ‚ɬHªÕj#EïLC[&y¢jq¡J–Q|¿J؃J¿â„Œäj“F[¡ÑòOÅ;5ƒIŠR®Ò"ß:…Zçìû\@ûC„ãSeëRÊlÖ)t hãîßÞ̧áÄסæ%40B¢4B¾–K&œ´Ÿp¿„8øˆ ?i!¢*Z½<¬Cû«©F48Äj·<ù‹ÄÎ6ú¥jæ9ýÖ\ Òr\ee‰ëY'VxTÅ:Ìx ÏqqjÞœ" Ê`0˜õ Ñ§ýàâ)yõÍ ×¬þMžsÌÓI¡<Ó}ÂÜÆ‰{Ëôû}`’Uy½©ï%«ÊÛÈr›k;TØ`ú€Úx­0Y1fæQÆÞB;øØW¬Ø—»õNô¹iذ¦‰X ¦-Zuó´ã<+î¥sZÐ{ÉSNõýÿa$NY”cKª2èlà£áÏô­F{K¸:jsŒ?~ï!.ò ßb9#Òb{”jñ{aFûŠ9)ÏYŽŸ‰)°“wë„&xœÛ!ð‚´´¹‚‘±¾¹¾¡¹‚¡¥•±™•‰±BzQb^ÉF˃̛ YØYœ ä„]xœÛ!ðŒ‚´´™‚‘±¾™¾±‚¡‰•‰…•BzQb^ÉFK¦É5L†Ü‰99Vœ*Õ>žNµ“W3©o~À$Ÿمz¨¥àQxœ{ÆÿŒ‚´¨©‚‘±¾™¾‘±‚¡¡•±±•ÅFƒxvv…äü¼´Ìôɽì:“±«;ö iêžNµ *“0¥Jçd&å%%çç$–è%*¨T¥¦eVÔêÅ'Ç2ÙÜÍÍ ”¨) ä€>xœ›Ç?…‚´ˆ±‚‘±>*XX™ZlÔ_˸ùãV£Ô Ãå€7xœ›ÁßÉ?AZÔHÁÈÀÀXˆŒ  L­ŒM¬ŒM7šìfÜü‹q+ª öj€gxœ›Á?…‚ÌF… v‘GµxœÎAOƒ@à{ÅK¬ˆZl4¤6!¡*—–Rê‘Ý…MÈ.î.júëãÁpìe’y™|ó<ó„„(«J Æk·¹ýÄÂ]béûçß{‹üU¡‡Z•Â`ûÝaÇ›Í<1e\Pp§S\fÙè5Õ¸þ 0¿!ÞZ)jŒã–4 U_\ӿö%öÈ]õ‚P†—èu[¤Y²ËŸŠC¦½zœ@}б†Î¨È†iSóA¥žÚâ©7ñ][pO8Ы§/B;EÝÅÒûÿ;xÙþcsÿ`kwçÇÀ?Å?ˆ%{4b¯'ñÛrÏ>[v'áxðÛ«D · D;¯··[¯ž5× |_üT÷aã‚Zù~0&F8÷üžÆC' w €8¥÷«?Kÿ(~¬‰ó§{Bù¹GBßò/‘zÐ1 ¬ ~æ86¡ØE04¡Ó c¢>e±Ü,ão¹`ãm~º‘Ùh‰º'Æ^à\Lo¶ Uè;HæƒÉ˜†ôÄÅÄs€Ãä©Ý@r/=ßÝmÂë‚Óñ[A› šô/Ô=°Íؾ…X.ü§çŸ ËÇqÈóÉ’}»þ°±"^ÿ¹µ#Nƒ“F¡¤2‹Í?Ä«­múgoãðeaï`µY.‰24Ë¿QàQ³ü#ÿÎöp'@q·‹ç5àþ€Aµ¶7v^Ð?¯7^lŠíV{ãÙ³ý̓ noãOkw{{ã[‡ÿÚ£ÀÖ³Ííç[­CèÆÔj¿ÚÜ8x½¿ù Òøóà°®W»;›‡ûÿÂðÎÆ+B²óúÕæþV ƒ{{›û ÍáæöæÞKÈ@[¯6 =R°?^¬GcáxÉN(Jܪfk]ØÔ•2¦B}s\¬èîq?3N î2!"ÂG‰Ðs=ϵ Äÿž8>ð â“À+°]kÄc°±Åš(-YG•ò¬ñ‚°MüÇ- l½Â/–S£Ç?¥øæ8“Mˆ^.š%*˜¦ %ë´ØPÝAŒ^ŸØ¨}aw'¡EÓ2èqÉÈSt¥(>| Kt€Ò1 ˆÑ¨.-½ýkùþW=ª,WKeqôúþžx£€Þ--/U¦¤˜ ì&&r‰üÀ  TÀîžxªðÔ¥tWyù¯Fõ(^#¨Èò{@¹«Ëëâïuñàï ±ü×…ÿ°à9 h^D° Œ*5qî ×¶{hí׈ÏnoílîìêHŠC0\ã6Î<§'x…G¾;çmX¾Õ m_ì[îç7»ë·‡v‘A³luº=»?8qþ}:¹Þøo?'gç—ÿ)KÐíÍÃC`£ÍòÆÓÖ³Íç/^nýÏ?·_íìîýïþÁáë?þ|ó¯ÿÓ k)VH)†G‚öœBù+«>züä§ŸQH¬¡;)Û1œ©@ ºÓÉÇUÄž[— 9¢¡W>X2íƒÍ½ýÃÝ}¹|×Dî-pØûÅûZx*ŠßPN(•´äQ²(ÚN(`|ñ[,¹{ë;paFâ4Ä¢›Åe¸À q­7`ri°éKƒñj7Ëëe“ß$RטÝáD½oÔƒ¦$ÍÕ¡ãÚ®×^m–xøÄbdÆ>lÓÄIY2ò‹ÅjÅœ=LJi}aÂcQpíÍ~4MôïIHxîÀ?‡>8qÊGÙ`ÛóNqeBÒÎ ’ûÜ&Q‚h×ãXH­ápø6ˆ0 ¹ XÙ\/DA¢ \H”VÑ´úöèf¸¨ F—=ì7!u}S):°ÎìöÖóƒf þYŠ÷…Z:{-”ÊË8)êÿaÊ9H:á`³¡Ó}¾Œì‰ATuÆw@‚?•«Žà?ª¾X]¢ÂŸ6ˆ¦=$Œ *È[€äÙȨPÖØ÷:À­/‘˜ç6H¾þÄ…ÒÄ1ˆy­ÝW¯6vž•YnsYˆc"r¿ZXá:6ì PP1:¨ÁSÂè{n.9ư7I¯µÊ÷Ží¢‘×È÷^ÎaJµ×„íûž¿µsu[9Ó:ŒlÔ¹ƒã× ¼!ÊéXK˜÷?<(º%ší«\õ1š™4U‰‡NkwçùÖ‹öÁËM€h•ËÕŒ+ä= ˆåIàgDÚ ’¥âŒÅBÏBðH?^€÷žl ®Ä,W+ð/3¶hT§Ø](ÕL)²d¦7XÙw€™ÜSÌ„þˆÕÐ?Ÿ!þÐb]OÇ“‰Ed£y\ƒMÈ2÷aåàV˜‘o‡V—uÈPìVFÛ‡µ¥€¾‹(ƒÌV†Ñ "AE„­3,çëØ€$S ˜Fð~?°aíèI =6ø àÕv³§²( )µ ~¢¼SF¾7¶`®h¼f¡ŒˆX9šƒI,ÒYcØ Pßr†(·•ëP‰AÊL:Aè„ÔˆÀ4°´Ib¡ôƒL΂í¶Ýu`ËB“¨½€·A8–ö­[b_¼´-®ŽÁd ª0HÖm–¹.{Öd(6! F˹çĈÄ¢<¢$¿mÛb³!^u_Y'PGR7X ‚KX“/n­^)U”ø5êSà–kGþµR­^“kbèycòˆåå˜LX&ù| DöÊÛÒ;¦Êî Š„ÊrûÝQ¥v´zôþ{¨p‡qÜõR­”QŒ+Óa·ãÄx´DOûðaµª›1sâ‹–ØÛ=ØzÌÚç¯XÔsÏ<· k3+Yh¾Ã\ î mDéíÊ»Ô`àà™ t?LS”†ö(à!„Ãx‹+·x˜M ?Zéqš¢ZÄ'™`DJ=Z|Õò@@‡Ñ7¤‘™Ô[Z§¨l9ˆaÚÑ4+XgTUp7Dc9FB»‰-B+œˆ„¦‡Ü‚-à ]o4²x" q @–Í’cî d¼Ðò£.ȳZ{P{x\ãäº+$@,•—üj·Z«» n¶^î¶wšüÛj– e6Ë÷Ê,‡!lU ˆ%´•pÉ_“8ºe’ùíÍëÌm„ÚMÀ¨QAÔóŽù73ê1tE=0Á’ôú*ÅÑ®7öÄ¿'ØI'v÷”8dzÿy±··NËiÿh]´*ĆÑ©`‹P=í°lK*l€q Í¾=Â}À™5i×saPJ`y¤¿C®4‚áÈ–8áAcåQÅR£m4Ü4Õ\B5´–wë8Ú{‚TåRz% Ý6ls»cQÇöq:‰Wfñ’”˜± Ž¡kth¬@À¹HbŽNQà«ažM)‹ ÚcØsF¥©¸hјRºH)J¢I‹ œGœ­µæ#kŒëWè³®b,Ùy-èV•ÊÐowÇ€ —ŠËï«q Ã÷{qÃ÷ëÁ÷oÿj›¼ÿÝ÷íïW®‚:%‰Õ#8ÑÕøñûñxFaP æ4ÚQgË4pÉšÒИuís) °N·ëÀ¢x)y˜ß‹t‡ÈQ (ïŽÅPKZÏX÷ ““ÒÅÀUDøË E øåc!˜ ì?l<¨‰mÇ\T`…ßE™­ã €±Ú“­àÞÂ3°aBáòzÔµÛV%€T¯  –¡ën%®|£…õïãB¦'À® t.?Áã(DÞ³û  „m Tß¹hÒièuAPƒD>ÝѾãuþ-w<]ß  W¼Ñ˜D«&, NAZÐ,¼z¾½ñâ~7þ¹)ƒRˆ~oŠÃu©úˆ4}e]8£ÉHŠqH]ì=:áÂN´xm´ö¼îdd»¡>ÒÃ)°‘ên@íµ[@Þâ‡zÞA!täÙ=·çB44ud]´rm.\æëB Ö¹5Ý%Ö‚¡š¦lááŸ^òÈ€*Á€<ÅC—ÂÞFëŸ/6IóL):Ù+ë¤Ãý©ò¬¥YV'QÒÁáþÖ΋X>‘†zúúÅþæÞî>¬šÉãÂr»¶Oì6r¬f±âX£[ÄÓ?«z4wåê[0yøä“”È‚ ŽÛNzv S³xT¸/#ůAØs¼ÆÉoÕ/7þ€ªÿë 'í—Ô}(ÀË`9¼Û£ÆµÏsp¸q˜Î‚S(‘ãàðY«ýrsãêFMð°ä"àX$Ô›1 ¿½/t™‡Ï¶·žR‰Ù8d‰ÉªRÏpEûâ;³2¨; ˜W›¯v÷ÿ•@=‚¡é_ÆP›åbwd’†ÊK“À3I¹µs˜A}Ç â§™Ò„€<³ñzg rÆ‹ñ£jiÒ† z`•eýO\E#Ì™$sG$f‹ˆO‘š $²KŽ'ôdk‘å¸Qn{F…+x ¡ç1/{VhQÒe€l’‚'ìCq<ÚŒl4úr:¬ü!B`ÐöŒ/Çí{ø‹‚5üt&Î°×æÃYäú2Z>¬òãÙæó)ËJÑVJ³†í£ˆºã‰ Ù=…ßcä\ÂP@‚P Z;»;[­íöË݃C±µÓÚ~ýló@l¶‘Ó‹VK´ˆÝ‹ígü bp Û°ùfsóÍ¡Ø}ú?ø³µsy{»½·¿ûbã•þ>híoíEÉÏ67ÄöNû@ìoì@›$:ù±±/6^îâÊBžc$âlbO# <¨Õ¡ •£±F&Í2Öê•Ñæ<²ãÀõ¿Œ},—LbvN‹ÀpÜÔ_gÀ!]Êk|á –”"8 pT¸]ĉ·F;QÈØ³`¥ ä6’7]`º´ÚÀÊkHÏœZ¯÷c(7¡›6 ®×æ=oƒ ÿL¸rHö¬¸`ÒOÅÅgE3¨]Àÿ TÅ ›ð‹¥>΋f¨Ññˆ¸Ð #»@Aº¨"=LáDÜ Û¸ì'b¬Ú}49¦ˆMû]<® p«/Š#ë°„ΜàÍå¾çá’FŠ!H c½Cr!b§½LÀTïð™2îuLT€ƒZigËä„v×ÜgXá×x"íƒLPu`Ù¤?”Â_ÇF­Ú~ÔиcXvØm@½ 1V·kiç?j˜á4Ë¥÷F>¢àT.SJxT @&• ’y!€ÎŒÌ pkvf&B%!)ÆÞÌd? \“Ý™©@lªÕ”• 4³ÉØr!Æ'›eQu¢d›ñŒ}¯\`>jÆC Ë<qÖäã‚n›‡«ÿa<²pŽB:§ÊÃa<ßð$~‚ø[KFHÆ6Ídd ŤéƒNi•tÁEÞ¸ªJá»Á–ÁæíkAÈZBÑÍcÒL Â]çG-ÅÅÛ¿šïªMÖÕáI76eC'áŒp›âŸh]܉i¶¥YP@ç8•zŽ5pa*<˜ƒú€FŠªˆ­ËUñƒ¨§‚:¤ò·k¯ÌEZ‰¢Y5ð™F8 êP³Ê˜e¾’¦"'ì´p,¤ò7Q?c–•ÄUj"uHW+B”Q7âìuÒL`¶iŸ±/²Ú1"ŒpÔ!¿üok´¼È¦FÕÍ™‘ø†ÏDíb懎‚:¤ŠŒÆ˜¦bGuÔòV*C4BfS‚”GARù§¢ÂÀ$T|¶jb}™F8 ´ìYŠ Sš=6ó«ËüêKWRZþMå$õªÊ£¹ ëéöíÃâ,å½j¢ªšÕ:¼G)w‚FA•©’déXT±Q}ûW=®â)šŠVRýÏPð;.,qR‰k"VÊüãçM°ƒÔ¦”ƒåúr{y iÁÌÜvIg@7]¯¨ºSe/¨+t‚Ì‚Ç-Íwy7duCƚĭ6ѺÄX3eµULQâ+Ëååò‘ü+——ÅcižÂ*Å¥(Ã}\;u”£’ÊÑx¡§.·š4$Œ¨úN¦ó·žý:*öe~á(˯ò7κÌ:1û2j%’)XW“5OżKG&€âŸ±/ó#)JÒ!ÅͦÙãr„~ù§"§×®T®Ó‰D½Ž3æ)„_møR1âVp˜ù‹?'šÈÑÎqè¹Ibúö«ƒŽ‚2tâW3É-Þ™mb ŒQ8 ÊÐI…18ÁÓJÕ>ÔP&# ããÇPSÈš@„ìŸxP‡T§EY3úÌP’`®iŸ±/óCþŽ‚:¤ñöq{Œ]H5Q•dDâ;þi fŽ1“pTt2 Ì¢k8O2uH’Íæ¬ªÍ¼¿ªšhc_懎‚Qå9sºæR7†ðÉ Å+)Á¸ŽroY5˜FXUEeÖD)ødžÌÏØ—ù¡;–¿£ ¥Ú¡ ÐmQ»÷j¢ ɈÄwüÓcc&aƒ"ª˜ ªÄ4™”ufL2"ªŠŽ‹ƾÌDÎ(¨C* äUSR8¦§¨¦›“—Ž2é«c“`‰ïøg ƒ™l„£ éN‹U;ÝoR—Œ™’ARùË?q*ʼL>©W©XÍ#uHTdþtÍÝ>¯¥Ñï¬Ú›„õþØX£ûcÆ5.¯.­€Sæ—ùa„uѧaÀå EêVC&­xU™¦F$¾Í"9*öe~á(¨Cº~‘بbüðóÌŽIFèjFqñÏØ—ùa„ãHtHä/ÿćd¼²<2ãzÂjºQqé(cZF±I°Äwü3ö•Dg$FAR5?âÕOOcÇ ê È_þ‰S3&ôÇdùô‡Ž‚:¤ªSqy²¯öì¨TŒ¦¬™øŽ&[m‚èÖ›•Ðíšit³ŸMÅ$#"ÊÅŽh¦SÏkbH¦E¥bR•†ÈÄwü3›‚²¼8å9R5£fY‘Äø4h*&‘¤ ,s:õéVmk d‰¤d cÉSSfe›?=Kfì4ðŒ¸lÐTL £ ñÏìq‘8L8i˜JœIù™ggšqV¶)™¦gÉÌ0 <8 Š‘)°dDr$ŽpÓ³áoÌÿ÷ıYЇT@þòªŸS\2¨C*À•’'dž<HépÔ!¿ñÄ–‚ØaRÖ—ùa„ ÂH‘6˜zØ”°¡ls¢¢’ŒØdDâ;þ™Â`~á(¨CfVù› h¼ö’®ñájF;³"MªñiÐTL2"S$öe~á8 ;9ÞžŒ¾vT¿õ0EÒ̉Ú êò06£_k!’ARù›¨ƒoh¤­FÕÀg~á(¨Cº¦þuaE9¦|ƾ̨?è; ê ÈßDK£òdk#›†j¢FɈÄwüÓ)c&á(¨CšfQÉiº±qåHuHä/ÿÄÛ³c p”¬MúÃGARÕF+ÎZQÆt8 ê£V¶CÆÂ «`"uĵÚÊ@kM!%µ>7‹ƒÙvwÆÑe¸¥ƒ9YúÌIœÆÁœ.eÁƒ¹ˆ&ê`NÆ|¹çr¤2jš}*§tGÑH ¯+Ìs‡åwl0ˆ‡å©î0ŽÊë3ß. µÞ…É.Ôq ³“iŸ±/óCóò‹è ˆ‚:¤qö™5Jæ•,9åôˆÄwüÓX^.ÌóŸ >Òá(¨8²ai™æÇumv)óMûŽ•áóÃGAR$ᢂå"‹Ðj²r©˜dDŒ^‰}™F8 FÄŒª¦&ðŸ)Slâúv׸ÎÐp”¸ÄšÁ ‡þ¥8:.­>–-Ë›¾Mcþˆ½“-6¹2ÕfĪl÷ Ý*MãTz½jÞ,âb5‹º+ ¨ YC]g}1xUTb|ÑPMgŸU Fu…âaÏ·Þ¼Ú\3.ÉûFt‘I]Ì}ØX‘”ŒQâÏý­kâÒ›( Ì É|°&ø½¦e8M‘Ùí¼j4é”)QBgÿx=ÄÑQéx=*ÃÂ`>BJúp_&d ’˜d qZÖÙËl[»Y¯KÀDëRV&^—¦ŒAr<ˆ7¶¥•/Ú‚g´wêd¯vOјܧ{Ö|}Õô‰¢¼Áu•7¸ô]¶E¦ÁH`Ãf)jäÂh! ¡¤„…wJïŸý¾&ï|hh?岨¾w¦†ð –éÊ%2Ë'-V¿^—uYS•˜KœÈ£…rãv5:}ÊMœ#9ÊÕß§Ü̹ÁÞùâzä®X²Ÿ`]cÛmrÅ.Ðð>Ý[AÖæ{§6t‹ }ç`MK8ÑË€f"¯Qœ Âëùäõ%£kÍ.=É'ùNϺlغºdð•Y•"~R[Ù’ÉI ³Ñn“"Dä&rœdÀÅ'+%oÂŽ¬ËŽ=‹­oõ‰³Ÿ[nÈÂëEHe“޶&o¾3ãç[ƈ2[\¤à"ÙQ[äeX­x:úIµùšŠºÈªÆDäØ3ÙDvþcPfFƒA/к¢Þm‡ž7TçU…ˆW›dFßIq@#¹^(H—=¬F‚£À™ä]æèÞõ²t…½;ñ»è¶fˆ®·ðº?LpÚ|ž[ìNƒÜ`ô¼Ë«×ôéÄ:¬Ø2ÂQê.«Ý“Í„Ù᳿œhöIi¸dÐÅ_vâRã¾p€oýPZ|›?ÇKÊçzª$}'FÎ 狸’/¿;ª,/WµóÄÈ…£flIOŽ7f6ô~O^ÈõcÚó£Ñôé5c¦Héÿ§¸x4 f£YÈGdL«);¬ó™æ 9h–ĸ>mL‰£Ñ(HìÙ!cl¹Nž+¡œ1f ”Sæj®Üxúb)Qd…\îE„@g…v(Ú#Ç'—.'èbžäàÿKݞʤ}³QIr¦¦ÝÔºªúY´SSÈÙËÖÑqTœtt…íBÇ*ó«,G‰Ú§¨–*qõ{ܳ¡ ÃŸä…Ò÷G«ßÃå½GÛ`ÛmtpÁÉßY$ù/¯ªØÁgW@™œ¡"î.1F±:p™±ÌG….‚. š‰aL¹A"4£b5ŒÁJŒ1¹#*zQ´YàS0#\«%‘µZ±šA¼ÌÕjh³À£¤XŠ£Û* }ÄKát•¾L”3²ÇAR0MÞ—ùåW¬|!³ËOýl  4ª¡¼·®š!?ãtP0ªòÛlè4I° L2=¬ƒ‘)Ž2#‹‘hä2`)”®0Œì€\ÆCrl©Ñ÷ȯ5^a(¾§vGèÍ¥l¤[}’Áj¡¼±¨k¦ìèÔ–~õUÀû©¸ñfÏzäÖEÖ‚Üyž |3[{’þP7–_¿«"8a7´¡øõ×öFks÷yø³ºéZŽ.½™, z«gC®¤{)Nt"{éÒ§Q(¼ÆJ­¡›Û·»{èƒý]£ÑoÿØØoþ±±ýz? …CO]²;¾çŽâÏC,ÙA£&Z­štœ¹*5)¤’9D®}-½sÚíõl5‰¦XA/rL‚~)î°ÖÏX<`ç-†ã¾ø®DcÚeûV÷ÔF¿.…–$ Òè¹~RSc$ö×s‚ñкd˜’Ѭ˜Ã1€º‡B×J™TMd-ºÊ;:©ˆ£ˆîºÄÊÅûôˆ› 2¨kþÚXU"C9¾þGÍ8IL·B¥JY³=õ¿1;ÇÔ„¶wA×´òad’X€Î×pD7e5–Ýã"íó­íM!ï¨òdƒñI}½A‰oå…ÌÞ;,¾…¥Æ.ºÒö’%Øq ¿yã¢Õ]DAëæsýe¬7 Ñùm¨t­¥¼òlk_eêÇ7`TgL~Ý/—bãÑ1â]¡ çeržfºp쀆2»ÜÛß„}½®±òõ`ùÝ7ÁP\*¤Ÿc¡Úc•8cBdþ½Eþ÷„EÄŽ]nÛÔåg–œQîæü‚óT;–¨±LgeÞÂëBåØV¥KמüD ¢Œ$t¹À^'Ä¿¼ Ýø—Œ§`¹ªî ©–ô <äh˜±,ØÏ%Ž<S#åáBoQJó¨ôr÷ÕføËsôBC¾æøÍoX#¥‡ÉŸˆã!,º^ '´Ó–lΙ9d¤e–1VáœÛG~ôñVö’‹;<ÈÊÈ쇑Ôצòq&Â!mð²óÊœ]]쎕s²WgGeÓÆ:ÝK«jƒÚOÙžÈÞ$BáÃ~Úõp¤p ‰#nÅxè >¨Y¬R°ÚJ Å.­ÈZèfÕ 5Mætÿz:Ñê¢Ú+:j4 Í™ “úAKz8“K•(a9cÜ_æMdì“G|·>èvÅ[ÓW‰*›/ÁÅjN—ñ”g;ÑQù}sÊ»2ñ&ãÅìŒò.ÅnTÄž‘tª§¸lÌÈ=Ámi³X¦ÀB-ç ÝÓ#œðÅÐIëëƒ×ÏèØI³ bKØ+ÿQ‚&â¾YÅxîT|…žÏäîL² Ò5?}½µýŒê­_}å+K>»Ä0oø˜\’ùr+ùÆâ?Ò“Ö•¥VÒîÊZŒÕl”é-áÔ%_‰uE²·¹õƒNÓ–6, }‘´T‘ª˜LǾÓ‚ðZ‘%¤IMb䰌߇m„‹^³²E\$k«uv+RZKçÁÀ>Â’ý¡5À^WÎÄðÝ¿ª¤š@ñYÔ·E›˜¿¡N 5ëtŒÍ|A*ÜÇÞ˜lãójvåy"é >'“èÚäud`ýÆA—ßzhŠ‹5Ô#>™Ô“=!¡Ðk,¢iÆ“8Ñ^Âú]S4Ì#TáJ>¹l˜-ÄÔµ¿Ž¤¬ÕHO}_lˆb£±\¤v‘Ÿüh0I½m„WR$ôÆQÕâ%I@£ÀeV?VkPJ ÏÍ#=¶QáZêcæNRK|©QÁ:ïxz#!…<Cÿä®Õl÷¢ë󆢦ҧÓwìü&Q¸yZ%t‹cÙµj:•ãš( z”$éqãÃG·ú˜Ý8ÓÅž1O²“­T‰“}½®OÉ4Ù®VÈdG¾º“‰7QñÌr²ŠÉΧ¢+ÝàÁ=囄ÀÈPù­*)Øûºì8áPŽëò …±¸Íè sDuˆMÎáÃ&:št<ÅtOHÌ*c|0ge~ŸhÚÇF‡êú)EG É‚çdŒ@tf>BÕ\CÚ µ´—v)ð WóéuÞx;9…V¾Û‚ðRz0'¨Ä¤èõ^Ž€ gljàP—Á;\–-­{‘ÓhN‘×(îºE5ЯÙsÉ í¸Sëf)Ÿ×X®L’iL9Ûw=Ý%V˜Ô9Á‘#³)zûH ^­ òd¢SD@>ÇÇÓpiÑiRqeˆ¦Üf zQ•ÈWÌ|˜•7ð¨ìœ'eoäAÙO{NVK(úâá-Z<þMêцޠ€„ýí‡Ç‘öŠ*®Þ@ƒ€€ž,Pj?¥zùàŽ’r|ðkh`#@Z Ýîé¡éÕA§´ö ² jÈC«B‚|±’™«î¨³³y¤êž–¯ÅbŽ9ŽÔÝ3eH!¥v~3‘J¨/ýCkõÞ”Rïà5:f޽²+_Ý݃ 'F#ù /½¼«ýÛ7ÅÕœÝËôeTÉ3^ž»÷ÔõÎ]Ç7óø‹å Ì<ÁbyÎÌÿ+¼@#Š5õä^QZ8~D¾]H3ðBâ=pÉ›ZhœÏÏ¤ß '~åÿ´m|ñ$DÏÏJGm2M´v<€egŒ‡+±#„H¸ˆ¡7ÉìK}ª„kËdœD!Ÿ”Oiýh’’Éîâ³á°’!}ûò¥ ùÕÞ@—ÓO¼ß×±üA`Ú³±õÿÈ­zW½wKù^Ññí9¾Ï¬w€Í³<—„•\Ñ›Œ‡PÙ®kËOt¯-Ÿ‡iL1«%7ÓQ+q«Øì{}4 Âö)½íÚúoÞäcåp(­Š°3S»eÏ{Ý»ô×¼M/R¨E±ú¡Z¼‡ÿ¾=z{ôîèÿÝ?*ýuôÃQõhé¨rôþèãÑÑч£õ£_~;úý¨xT~WUø˜&¦†`Îý‰Ô5"9§k\ ¨^ÄÊ ñÍíÉ`x‰‹ªV#¨;1òígz*‚ÎC“˜ñùÞ®Ôü„ØDfˆö&¾xöZʃ€3ë·ÑuÆ#¡×\\Zë®ÁYqEŒü/­µà¸O|²_ÿëèhémü–_mþ’qGG•æÝT?ª,­6%âŒrœ`*3kví2¡¸TIÈ¾Ö ¯:PÔHÙek¥¹CeêX‰ß4“çBòA*è) áì{_ )/Qtƒ)+/dQ¸(ñ¹t_XX¢ÑÉ“_ãµ¢øáÆlêÄ)CÙ3©’ HL:*¦U¾n>Ÿ& R%M³œXWسûAãdaÊHD9§ìì¦Ñ„äßå¿J˽¢dz•ñǸ­á \¼˜«ÛÊ´»·°R +ePaä*¤aIKY287ñ&WõF©oÓ?ª¨6è‹ ÆTŸõŠX¿ªnMU>bZem8.•ÜãªÂ©B¹eT—òˆ‘uçí—X}(V¯óâ¥Fƒðkã̼)Q6hÀ²M”}¥P0ûRXgžÓ ÄîA\] ‚ì ÄgÄGx'‹Ö+z: Ϥ싮·Â¦Ò£sml½ÝñXàÒ² <„,9Ðã9d²Gk·z`´pÆ'“-µ¸4Œ§~%~(`Ï·á’{qsÓŠ—ÔF¾HqŸóÆ_É+–ÌÏb¤«Xz`/B%c®…M=Ïa“1×Â&÷‹qĵpE/Fèt\ÑÔòlË›äÑ‹Tþ=D£3¼ž;$Ã÷P ” ìÊa ªJÜÕ}²CD‰ÒËÜC¾ÃÙ—öBè(¥«®|¸[&{ô \ìü[=«ºu¸Y̺¾ÊÆ\|½¯‚ŒÒÈ iJ¶~ò¬¬AT)vØ5ã‘ÓèMnUÚä4k(£¾Ò¥¹J(Ÿ'ÂÕÈ(RòM_1[ _œ~®Ä¯Ú¯ÁÄ–»-¬œ¬£¥B@fà-t\Ã*ÅÂãÔÞÈø“ö_\‚MƒUÿÏFýÿÚ+õ_Ð ÝVjTñRî¸|,§²’(½aÒ齺¡O„ú„ÍA²`*Éͯ±˜F”R~¢á‘°<»N¬èÅW¶™JVm1",ˆ("ÄôZÒæodûÌ Ö„ˆµ=]™yð‹•Ùø>[“º™eΆ7ËÌêr­¾ü à¸‡çì3Ò‚ñ®Ç\‹ÆlG›Qø1Ýf(Þ +§µ@7sH£6ÕÆa¦Âüö§hâ1kšyªSŒÛI‘ÚÕÔÓ'Tñèåm"Y‚˜Œƒ† 7rA8‘:MÛ èV¦Õ…µº—JÛ]Í8.ÊÒ©gE‹3‰NÒN*1tÍ™¬<©”î5fðŽ[HÔûÞÈ‘w—ÈØpÆŒ½&6ÎïçÕ/ÈûchæDû÷2*¶—éls ÙŒg?$ãñµþd¼r:Îô…ëëEØì’ð17ËxOYè{Ñe>&*Lk‰zWÈ{ä”ÞÃ7JŒEYñÌçi(².JÝOã,Ñë ³²êjÜISŠñØÂ¬¿HbÒc»-¯ ˜ã]Å)FtRÔsâ¯EÐòDž¿Hg3Å|1¨ýUK䬭—²¡‹òek $´ ^Ó*i¥‡3p=œ¾h@—¨Ž²)_°:G¥Z"ëÌú<ãš ù©”RAƧtúÍ éŒ6Òãê¸j<â kæ1=g^®©ó”À/&¸íèÙuÃŽ’õ64€³‚eØR”Þ-ÿðÃò`=X^ç‡ÑKËËJg0¥­RK:åæÚõH…e£Š*V8ÍkrÑf«ûØíeÄ­œÉ4FþŸÜ3÷•uê²¼5UL¥ªQi¾l¡é)·ƒ©Ì@“”u—ØÙœ2ìy øÆÍÛX´Øà}Q}R‘ŒBßÏMk,A±k 2{ÑX„æ-C†Óƒ¼ê¢-·z¾Ÿµ6Ý` 0üˆ³Ñ}: kd®È+yÁ¤3 ’‹1¢ÀôH­ô;9îL>•Þ((ë'ÒòÊÇÒq]ŒŠlJ±¨ûÈt¸ÉûäWèn, Žt~ÿeç™×!…)ê éÊ@Þb ¢Ë“FEJ›­—»íQœŽ2¬Eš ã^Ô{^1)‹4ˆ Ññ2–HÒèUâè¢ÛIݘs¢¸[¢ØŒyyJ#8.%êñhí_B("ÿët‡ÍO´?`óû|q<óÆÑ¢XÓq<§›{¼àpž‹ˆ”ö,Éù*(ævÔÛeÖ—ýo¬ÅÐÇ*õžFÝáÇ$Àå²Òˆç(f'Æõ2•y¦ý }}ÕQV7CèS¾„ª±ò±Dtf»=Ïÿ\"\^ð x"ž¹,ƒ\}.Ê1’Àóæ¸~aú(6ý‹&¦yÜ•efîÔ ,D0Ó¦S”ÿÓf“ñó5'S&†›Kˆ}ÖTRéO¤§×(–"ÒÓH¾I½ø,"4Y“è*˜hLÉ)t,rµ6`g´ÕÚØn£3}…‚VéÊ®š.c7æM¸ó›œµ”Þ¿Úøçf÷gqf⨴„Q•™Sp~öÔ¤D•ko2]Æ2­“ %„´Zê¾Y|Yk,ÿX¯µÛã6Þ§…YÍŽ×i²ÔìÆFV¸^Ô°ÑŒ?’S¾x9O'Ãz/E›Øè¦H¹k…{ÿ teY.Z ‚))XV»»ûtkŠOþ½‘:#ºíåàao£ß®¾[›¸e_PE}ýŠ­¡ hâ‡ÚD¢ÁqŒðæ ‰ß}" 3ªÙqÊa„ª´Ayœ1ƒ°äéV’hpv^ªìLŒŠJŸ¦±nåqP.%q–ãH¤ ÓDÇNe-šÅRdü@p°yØF²6uãfbÄ·I2rt _‘þ5û¬øÕë±’#ÍðålDo^àM˜PºªòrŠJÆÍEy-[gû8èv‹tÐì„òž¸°b>[تz1~“ÆC|Kj–Ìã•ÈXK|&W4ç %4´¥ËÍOKbtnµb.ª£Rš”&"ÃòqsBÝÍX?ÿe,©•¢Gp¸Â2[tE¾°0ÁvÉb!RK±l 2Ö%,«ž(x‹q NŒ>Y£-mK§‡Gï‹™…ik Òñˆ†–‡ 5ØnJ/Å*S˜Ú§s¤§V+[jjŇÌ'±5ä[†+jC蕵À‰‹ÞcçLökÎí/h*«ÖÞè„VH3§µ¦¯—Oñì)Ñê³ÍëhøgÔ#µ>&ºy}÷÷´]’J½¹Yžºš·B«‡_Äâ®Éþ“àa· Ü\ðåð’\,øxF¦XKŸQ*¸ÞÄþræq.|Éó;¢U.|‘ É ÌÆ}ÕlàË\Îå‹«Ó§'>ù™¡o‚ ™³&uSÉOΤÛY†1˜r'Þ¥¾íwó©î÷%ºêöyŽéÇ"VÕÄãO÷ñÒ:h‰Ž7 ¯tll…'‰[kç¶pmQtçÜ¡ †H—XÐŰÓñ[ºO— JRá@¶sú}›lu#/¿¾7b Go0Á;uÒÉÁ}ñÒ;ÇŠÔ- M³º›€wYld 5éG¶I½pG…©Â™Ó@õÎmjG«…¼ÿÆãpÊ)Q­k—ó}TªÓ͌纨V¦§c²ÿÞ¯þXå¥×–¾qïÊ{<å‚Ú‹ã­‹‹zêRþ¬í_¡Ý×Úf£Ê×\LLNäì1—o§È…"^AìPeé¨ü–Nå‰bšOP÷ÎåŸÂ¾$.o"¿dî§Õçc _ßV2£ÂÛà¦'ö›R )b|3Í5Œr=¼Fd©ëc¯JPÁ:âQ‰ª©çáбQ™ÆÛdôìÐr†Á,Cé›.f®‰ú ðÎp^¦0Yt)ýMR-¦˜ • Ÿ8Û2j/oŽsíèä¿yŒlô4£¸uÉ¢°Öhê‘Ý1GE#—o¼½ökdÌÅ‹9EÛB¹èæñcær¦óª)U)ýl¶¤a‹º@òi¢ã+Hò«µêìjÍI‚1íøãjíH‚ßb; q«-eÀ9õ _/7 qmÚ_X6½¹4„¨êë9]é ]:ù-…Þp"’]*à¶Ý^ ÁqÃÂÈ>°T)¼G‡÷};œø.l“ U š‘Z™F‘ ¹xŽy¬2«Kè`/GÑkåžÐ>fÇÇ„ôňæC$_‘Ktßàë.„ oI¡[qÜY“S7Ø¡÷kàâv¾ã{§¶y2g¿yxg„ÞHš3hÿÄ!ì÷Qpcˤ¹æ‹ v¤niñs„s審9S™ÅFTʉywã£GP–‘FUÕýoÿïªËËl´¸È¼2 ÉœI&ÀíÍC#ô\=ÙÈ”©ñ-M¢ RȌЈuèœÚÃKÌ|+茫N½IL¼iRP£âž’ˆF¹Co,åüeP'ºƒ]“·Ú¡yì~–%c°»úµ 9]d‚à Ý6>v½²rÆãÍ7››o‚IÏ2áÕœO õb. Ù& ¦9….ö_ž¬DS ¡®ß)ÿ4VgNHž–špâSQðYÒ«\ Í‘{‰º˜xkH_-7]žT5—úá‹®×ïS(ìôÛ£ǽ§üë:ù3 _ÿíü[D®Zååê7Œ ä-*GjíØÕ S5ä­ÕyGt03k}%æVs8b\üèºìØ à;Áh.!èÚ>:Þ‚¡F¯UD¥’´©î¼•£Rc½}l_Œ}“Þk¢üö¯Æ;¼Žß@Ãíò±QÚó­7¯6׾SéØg¤D5“*¬Äœ¶*jFvl :‡R7κxP½ÆECG•òM Sñ™Gos]v¼Þ¥—l´*âw–¬Sg5>£NÙ„1ÈÅÓ]z’Ó³öòž€ÞŸ[ôW÷x”eÍZ(Ì•çÍ‡ãø¢“\ÑŒ·4?Q–¿É"rüO?)Aþ§Ÿ’÷Üi¼•b}2û–òdîÞ´“ Ó!P´+Pï±wH£{ŒøàGÙ{MØòRÀËÓ×þÞÅŒøÐ¡J_ønâ4håÓ`æÚ>+cji׳òÈ‹UÑ'xܸäÉW¾{Ô™úõ“‡•Â}I‹¨LÛÞ–Œ; ,Nè8X̓†¡ô!m‚®Ã›ç4$L "Ò¿l–˪+ñ¹æE„ È–)[@ümŠ ½I¢…xÞh¸‡›A‰&p¯ËŽr¼~/‰G½ª{W¹2«ÇIϸ<³Å4Žlù@BlpðëÃøT1^Á)7>‘«üWê2O€´¤SKÖ5}âÍ yõÃÜ~˜·¢õEšÄ6&±‹¡­ÏÍ·Îù™ÂCXˆsegMñ®9ü?5{²Ö  'sïiâ`b‡r³¦È7ŸE§SŠÖåàÜ‘y< DTî¼Éy¼*U‘vÉiØ tS‚þCqÃ^©ñ“b,RÒ;0€û£rjƒÛè­H´ Q{¿Œˆ0%÷ëKì³%á”,^2–‚DÃÖ…™V=Ȧ¼§ÞK®Ä]êÑ™Éñ6ø¦{Ä~¿ÂTæhNÍ$w¼-†|e^7Jf¦ùå¢þ8ÿ,îA<)ì>ýƒ s ra9ŒJœ~Ei|¨×\ð*~¤¸ŠX> Ç|þ¿ý óéûNß…dÑn [í¶šóÐøS[ _i@âôçç%=0î/^󠙨”9¡ñRI¢YwF»cÅyÌIÄͱíd)™¾%"ê¥yVÖ„l–hwUÏ7‹Å¥!Ÿ^´ZÍcm£m¦³‰6=áØ LÏÊ#l›Ý64Kï9@ì„^;A›)•È¿ùY¬Š û„iµ¤ÑJ ê‹é-âY´këvÛƒo˜æ,îN²8cðÞ"‹3K¹2‹[”wé"f±­9•ãÜ(9‡г¥Bä\5‰^¤Î:d9/Ф/ž¨Ñ[õÝñGf Žg>»±(Æltstáqû^à†Þ˜=Töbcç`K´æjfä]œ­a¯{3þîLŒt;Lu'gß%ö{ßq»ÃIÏ¿Bc,Ð8ù-çx‰¨Ë`ý éhd E½B+ùkôŠ$Ö, MCzø"3YÍì·ÄãÆOå@>?bÔdí‚ПÀ¯3A …¸@ÆSx¾µ½)ªb©êwol»±d@VÑ,‡¾°Bø 9+ëürºèAÞU[,!AžØs\u,ß²Á’œuz¼R.Dã·Î;\‹b8úb‰P“AE}ÈòjiMÀ­6Ž °˜3«=t€Hgòƒý½/ÕÆŒ `Œ¨Ž†/C ¢­HpìË¥³Š±VX?¬9þ%jCMù¿ ö3QVÅ{L\ªö+ fUÖ?FÉÌd™!0zl9>^(«ndMpŸ,U+ó»‚þU½BðÝõ‚Dgë ©@6ŽO·@M¬Tð ÃoWÞ Ô«Ç’W£äÕwëÓ¥ ôƒŽÚ~X-Ñmލ[nà¬Ë§€Ÿ"wæh^™Ë£¾m›P)£^’%ß›AY°Ÿy©¤äçïîÝ»Wÿ{h¹ƒáÙ°‰% ?øaè;¤8Þ=x¾¼z¯³m^îÕ_¿«++¬V¶BÛ¿Wß°uš7ìEæÆ$Y¢þ¬ýrïõ›öÁîëýÖ&>uÿÇþ#,öMÓÚ›o7wð¹¸Ø^FϹ£Æ¬XñÊ ª‰€E1»‘H‹lt¥Lþ%?dÑ>-:¹w'8ZÔd·øšÁÍKs³D7ÖmfFdÂËÛrÈñå~k墔n›|kåâÃ…ë1ûŸwKÃÅ˽vÏÎvdœHŠÞê"¨3k7_èTpOX㋊ÙÈ .¤..ÈÇíÆ¶‡f6ôî¶hýøctÌO/ôðYV ß2=gÐczûÉv¹Î¹Å˜©gw‡½Û‰–.ëÏ‘!"Y&øà§¾¬Ê<Èè¨Xµ‹1»vzc,—̺B™NÏ–† \¾ÌA‡tNÙº–ƒÈ(·g㣦X”ñjLc®´¦usÝñpà…´f.ߣ~Ù,N½ïaŒG¾É].óOLê:dË×}а w˜`mJD!¨…øÞ9H*ëR®Ó×İxƬRçÃjT|AzÝÑ ÷½aômBzäö>zP™!æ3÷ ¹k· }h œ«iîÖ<ÉçÄW;'þRyz:dˆéÕÔkc&.ZÂÛOV娋ãZ3—X¸é/ °ÌÂXY˜1@Üü·Éf}ÅîÍ òŠœ%ž§ÁÒVý¯(Ù¶šÜK}+Ñ¥‚;ŒÀCoFêAp'À[o„ o¿¹¬ž§h3M ù#â;•žO;¬ŒÔ[)Éî.ƒ?½“.«UäÆ*è8®ŠB°‰»{À),ÞhØßz#’Зˆ9 Q´¢‚øÙùÀÎÇ ;C/SÀxî½ñø/‘v‰òWÀ@Ü z Mϳ2PEóVuÕõ`²ˆá¹l€Õ΋B1r‚Ø ¡%8n_/ ?ëá©:ÚÅW"kè;üž«rýd"øÞd,Š¡ßÇk´dnép {\Û›ÃKóZ ùÓ"pÃx‹n¡{¯–xzð¬nt½Ì?÷haZÆ©ç äPakçàpc{[±´ô™ƒž¨7ï>ùÌá³û!Ôíz—ïÞIÁ9TxŒ®|‹7ìòMH,KöÐÆ5=úH6tì΃Õ-eñþÁ—»­e|Qw$4Çð#šŠúK'Å££A­‘¨¡ZUfvRûr5««¤W8híŠÝg‡x;I+€TÞ¹+XÝ7žé“™Y3LÝô$äá h£ë´zZá¤ßG>åÃü–8:úµLÆšpÛ3P,2èzTÈ֕ϯë:rΌî\°%{ò!nÃGªuS³uSÀ‚?zQ¥ŒGÁ`N!É7ýR…Ò>¨:Dà}úZâ ¾ ©8aé:ƒ±hÄЬ_ñSÖÚ2>G¡ä&Ú"º:¿%çtEÔí´ÌÑl*/÷d¡õzO ¾Y ’§±ê/Í{š3+¯ŸÛTì\ç¡'½4Æ‚$øÅJÍÈþh yuž½ÌlU{ï1r˜§Ï08ÔUxy¾¦—£`è àKš¸,u09ùN»%‘ zš^²XZLé6»¼z t³»¡ç_Ö`ÑêZ\„ÅžÔü&Š‘Xøº§>N™DrH ̧ñ¡/Î/¯PÒÝ*§¯ÝK¢àãÛCågr˜¤‰Ss¯Íj½ÊÔ.‰tù_*VK„j7‰E€°¦ìÐñ­./¥÷g–_‡ÐGéü yNȺCö~9p»ÊIÊ9& t ÏàÔ:ÛÞÛß}±¿ñŠªD»ïeÔÇr!#ïAkkï0–•£ææ|¶q¸ˇf.Q‰'•ç^S&aC÷ž‹_Ú5àSÉöN›Wö¡Û ãÉK+e¾±— tiU“£_V#óÀ$ó$þ8Âͽà[îÐéÜÈ;ŒêKq·¿±›³u~Ç(3]ßqRSÃänï²ÝÞi:M‡3ÎoΞ¬D)U¯ÂÌîž³‚¨žÏZ@¢´ÏònBÖ@ íeeæqŠë3†/‹˜m¿W˜3xBŒê øœ?Ìr‹©höy˜‚ÈžDñþB"M«æZ1æ\3ƒ½˜ YN6¯ÈjâU›îló6ØŽfût£$úØhs#Ê=“åXþuØå)¬fcÿFÌÆ~&[ÙØoRZÎB²YÒFÒg‘$ ¬R¬èÂÔœ3¥±C³&2ÇßÜô-l¼>Ümíî„î|Ýt:Ëü© +J!Û*óM˜¼c¥3M<jÒÙP‚E®›àó¢â²Çø]ÅZ,—Œ€ i²í»\…š»Ó½:pBg x/YY£$1 ‘޲ƒ2þdK:²qV:4}¡£=1"'ÈÙä1< ‹†EõÁ©Ú™8ÕSì߯™Ò&¨s7êÉþð‚Zã1y¡„zRÁz<-U’Ö±¤«[dœ4~ánk4ˆÚsg¬¦ð[½—•.mÑûYÆÑtjN3£Éf@ ßçJUm–‰m&pÄe§A%îME¼Hò«ˆ÷Ar¿—lb3^nm‹U5½ kŒ¡J~Ê+Û×l70gù<ñΑÿâÊË^ Ǿ £µk7ÛWÁÌœÞw]Ôt5²`<$2ó¡iðqQ`HL䘞Œ‰îýíí5Ó{˜SžºÙÛûÔ回ñ=ž¿'^ˆz{¹QËl»HoÀöÅ–»§O*ÀáÇJDo~p@Ôa“Ó#ÕÖ°ƒR–aR,cPž ô‘”$yÛ;mö-¬” £”sËwÛh¼ eiäTò5“×d©n\©á“=èÅ7L°@Ò¶JÉØí¨L—òóžJô)œ°¹zÂ&í±QʯCgëjãä7¤È¯V;¼Ò†ÝÓn>kµÛx4ó¸'íÌ ƒ‘•Ì!aŸ¡M ^r³môYÖãƒJíô˜Î§y\îØok¯mâX ¤>ÚíøÞdpsÉWñ¿F8Ðé‰|š‹a¡¢xpé†ÖË*E¬ô‰í“ӕºd¶ø|ñ.IlZââî`“6Ö]‚4#Iw¥’ÉDÖŸI3ÕEmÇã#Ì6|ÌDÁ@ÇÙþjZD éú™(ÿ%ª?k1 3«_H]´b|ª?œ¬× RÑxú¥³ VfbG;·!’—„4/0| è‚y{ÙˆGž‘¥3æäâ­Úã,|J6hŒˆÌº ¿4Cú³,ޱ/Rsƒ™Ã?kÌ£]`¹6ÍצÁ,kìIWºž[×fXÌ.B"UM=;äGqÿ«âÝ›õz&wÛ†ÉÎè|¢~5šRÁ¤‹› K;ÙÓêvæô®_T£»ëôº!Ï¬É ’‹ÎjR®á‹ ,á³ „ \0ˆÛ{û›{û»­öÖóÍíƒMXæÉÃ/‹ 0ô¡"8uÆc|±a‘òHçhV8aA®¥Óvdj[qlwT”|¸’^2/úä7ˆnº E¼Í ù…N´mdXs± jA‚½+‚¶Ä±ÄêUÄb¨hµbº¼£,…âÒ”Z8å)ÈêRùßY™ü9™‚)í]¤ÁÔÔ@ÏG+F[ù¹ eíôfw=³¢CÙ¥%›Jùn©_©PéßÉŒ¨$¤튗ÍQ–£+ëÂ¿ŠŸ@àÇù¦?ö1”xÿ×FÐJM?¢§y¡ÌЛÀN˜€ÐK¬l› †Kû;GbOI+•©"×]2yŒ=•šnÀ‘­¦¨b•…¹Ar¢F*ã°%‘¨­¨ÌÊð=Kø§QÕ} FžKOv:±ΧÙGÎps…¨QÁY;ÑXÊ rÚºUȰ„%ŽÀYºö¢ AÁßi~0sêç0_•L4yd‰·Ä/²JÊd™F& s ‰z£0Àžð“'¿ ñ'ýZÔ©á*Ãþ^Ð}'¸ÌZ!»0 ®¹ž`á4Ó—?7öw¶v^˜µ_“Ö±‹GÓ·mý7ÛÖÉÓŽå»,EÕMã—†.Wk¡°É(™TlIÌå@vâÂ-¸FUç%¹Üã¤'½ÒÁÓÝ7…û÷E}?qÿ>‚îÛcÏ—#/ANuåâwÒðüAC‚.ŠUÖkV¡$üÃÉTÄÉ”"þ-S³”ü׺Þ¾s{¡&ChH¨DïèÑ»BÌCs­Ã†§dq%ýi@A¾ý÷Ä œP-èÁï Wó øòþå tòû5l•Õš¡ÊXžþ«;kS|øÒT=é¿”òG]Æ–?¶–éZ>tõ ]Ì'å;ü¯ëÁo¿ë†CRÝß»×ÇûbètÈ‘„¼®EŠ£t)Ô>R*IÍyâ dî±7ÄL¾=°/ô©¾à)µMËÐöüU†´O YCÛu­±q2 dήß=É5U¹¦*×T嚪\S•kªrMU®©Ê5U¹¦*×T嚪/wŸkªrMÕ71ÐsMU®©ÊÔT¥TÇí-wejÚ‡¢–È1¿º²v¨$JY5™¦L#|ŒO†ÿžØÛȤ,Xe𬯰G!U¦ÊbèªrS®sÊuN¹Î)×9å:§\ç”ëœrS®sÊuN¹ÎéËÝŠç:§\çôM ô\ç”ëœ"ӡݶÂÐGû&»Ýž;bÐó½zÅÀ?ͯ×Úd;’I8çBIØé z¬ïyK¨Ä),––\ÝwU*ë±,…\^ï‰Uò7QȽ~ÝAeDr¶Üªß¯xIWVG˜Nˆx\$PÒKòxiú .ˆÃµÛ‡‡ûøÄ„ã\mþÎ&]‹éÎ)R€Oâ–ó»Îe“ 6Ÿ?¢Ž½ÍÀß’×ÃL5jœ;’ÿ%¦Œ¨VÄJ%ÆÑ0=ùÛ+q€œÞMhLˆ[e€f9×a 1#£Y¬(–ò“c¤g{[Ëâ® æ*³OÜÀ¸v/&-.Àö†🹜OC.Èü”þù–øz—3=Íw ¹·$ä“´bníþkoó ýÒÈ gæ9ø×A;É8ôšëéVv>}D­sfñs=8æ°t —sõ¯‡«ë™~ûŒ=*êvy».g.{Afsx 2×Zæ³°»;/èChžÞ˜ˆ‰úó2-ƒ-ÈÖ8çé_?OçžžÃÐ(çæ_7ç½}V.˹]>žâ€ÙL<Ëæàr*\‡}ÃŒÿ¹}x-Þ½úd1æp‹so„ÎÙ÷7Á¾±«çóo„ÊøWÅÀ±K? §‚n…'áT®à¦2qš×äâ÷zlüáƒÅØ8Â-ÎÆ:gãßÇ®žÏÆ*gã_Ç.ý,lœ ºu6ž`„SÙ¸‚›ÊÆiB\“CÞë±ñ'cã·8Gèœl»z>G¨œUl»ô³°q*èÖÙx‚Neã n*§ qM6y¯ÁÆ'i…P6W€ 2òI®ÿf8¹êë9¬\å¼üëáå“ϦŸ|õx?Ìf瓹*òɧ(É__[M>ÉÐÍ`éWP•Oreù7ÆÔP—k¸œ­elýó¨Ì'ŸIižÅgpöÙŠóÉ'©Î___y>ÉÐÍ`îWP køœ¹#Ì}%º†Ë™ûWÆÜ?"=*ê30÷…”é1ÈÌýÚ õ××W©O2tI3˜ûÔê>gîßs_@µ®áræþ•1÷Ï£^Šú Ì}!{ rs¿¶šýõ'(ÚÕ³_MÍžkÙ¿¶¾˜’=×±u,ý³©Ø?†}Qû\ýú§¨×¯­]_X¹~EÝz®Zÿ¦8ù"šõ\±þUòòϤWÿLjõ…µêó•꟤S¿¾J}aúê¹>ý›â苨ÓsmúWÉÑ?“2ý3éÒV¥Ïפ’"ýúzô…ÕèWÔ¢çJôoŠ£/¢CÏUè_%GÿLôϤ@_X>_}þIÚólåù<–~~bC1¾ÀGy½Êƒ±N :΀šÉèçgŸÏþ»m ü©Ìÿ¾8°môýOo`Ëw´™Jü,ÅÓn¶w÷Ùâ»Û¾×¸SÞ`§ñèX´lvÊM,.6ßíÿð>·^´7wžmmìÐçöÖááö¦Œ)ˆŽ7˜‚{†Éh®ž3á»Æ„ï‹­Pôîì\H-<·*Ž˜å\ýŦ¯”f8ž×…GÂâeYâlë42þ@Ž7=ÏŇÞÐoÈ8;àe–ëâgç’^£\ý xkÙ°¤`“»¡èCé™}2qOSiïöw„ÿ'ø–ƒt§=½}Ôz/V.=xôK zòŸl>zD¿¿ðQ—Þ®éxá‰B܉¸›¸CçÔ‹>±ÆcÛ­ÑÛAç@b,%ø}Jÿ…ÖFOžÝàRt­¥ð.- Ž"lÃÁÛC' ‡¸g6$Êß…xî{#ñÒò;Nà¹?„¶=´•€Žt<ì÷Ô_ìÛxÂÄͺoM·Ç•w˜ôQLðgÒ ZÅ M•¥I#-êbx0U¦r4n´}†]qš9õ1áVY™ÁÁËéÜÖ•9í3'¢šˆ¦½`Å8SÅÞà ^‰ˆJ†Ô+9¦N¾Mÿ4ª¢Ú ¯ÁÈsø `§C?é[Xsw;ª¾{ž®èK€=‰2Œ'êG + ½hò'ìFQçþBn˵ŠO½HÇÑñWU½L7í55Û÷=M-1†¬^ —呬q'–€[a¥apÁZvbÇYãé¦ñË—ÖÞ˹ ŠÇÜ*OýXÙ"§W^¿¿ÀÑA-xnE°ßÒ¡Â-òæ fÎ ÁäÇ;w\¼NΆÛ?Ûábn÷`'É*²Ou4ÔügŸpÐkY€Å çó!žM7É’û³‘IµÏ!>gk0l,Ôƒ0,–ž{þi ,ß›±ðAKXñH3ôrO´DK¾KXÎl?¹R~yðèñÃúʪxÚX]Åÿ?xøÓÊ/{5Ø«8ÝÀÒ‚owCØÌð빡èÙÝ¡å[!  nvÄ10$a=|û6:LVDY¹³¥)VÞ½[/7dSðÌjBGWPŃ}áNFÛ??YyòàÁÇO5bÔ™«{fmÞMÆ·«R#}Û$´)fˆz°ž8q`Ó¤ î–¦}•@¾3ˆ½¨Û–ï[—âí*l7ˆªøniIn?’KwnbÌ|+¨&ZÉ5îwrzÍü9½æ DÁœ† ðÚºèy¼‰Í‡¾ú¿2…PùøŠ&À‰Ó”ݺ.:¾mÞŽóìØ¾ûj ‰ÅêqDVãÏ4B¥¨>´…® V<¦ÿ¸ Ù¢)0ܾ¬¦ EÆÀ5 ÊÕr¼þW“ô„ §‹ož¾9“ÒL*_ž¿6îT_UÓ°¾š/гeÓ|þú¦¬jŸc†™ÆË\y)ZäÊ•2žÁd/Ô‰µáÕb}âÌ\«\®g®ØÓí™ëö³fÇ pe•Ñ ï‹§Žkù—"°-¿{":vxnÛnÆ>Ÿy++.Xþ*¢¹œ8EÉucäUãðԕІãfÿ£Œ8þúÔÉùN*gÔÓvR·¼…JrèklEˆ©és@˜±Ž[ø «RºÛ&¬¯ÊåÊü¼®å¢AªÒ'ÆÇ~MüôSáŽy~7†Þ L§[#ÔõûaïÈ…J;2G›¶(S5ˆ«2¹ºLÒu¡ }šbð[Á[*ýîÐfŠ_ßáÁúÂk8ÑÜ~é3/ÖÉUîXñ5kŽ¿tƒ¦of)þïiÁ0P£ cȬÈL Þ›9gß'áž,pÕò`ëÿà³½ûüyû0«¼èî%ì[xžPGÀrâã¾°?q»tLÝ(0eYÛêá,W¨eDÆ4Ò^RÈ¢Ô.ŽáÛ%µ(>$Iè·ƒ“cdm4Í‹$†JïK&6²8’&ŸÀlã)³È9Th–ùµë7džaî9Žf¹ô¾+·ü±|œ9\ÉdÜ@Ýâ+0²[Yä³:Cû÷yö!ÍÄ$°: (†—3 •!Eî;/FbYÔÞßòMú—¿îKF%©èßžUX² «ß±›»¬$Š˜º¬dÀ=¡w1¦@v°nxŽÀYºö¢ AÁßi~0sê/:ÁÇãT‡gÏö @œ+:ÎöWÓ³†nÕÏDù/QýÑ£,̬hë–‘Œ/& œ¬× 0—èÚQêÖ‘É\ ÌÄ5£ñ¸ ‘¤ê¶a ÁÄì¶Ï-ßm÷‡ÖÀÜ"Ð:$0D8]–â’ÿ#T·`r1ƒaÈo‰_d•”É0°/®Ï)$êyŒÂ#>qàý.ÄŸ'0&¬ÊØ!Ú%2ìï‘1ÁeÖÒõƒ5×êB@våÿÜØßÙÚyaÖ~ hԵǸëê\ãREÕ¤Ýe”" ´ƒÀó¿ËÚÂÜ4~¹…¹Z{…M昴Lb.²nÁ•0ª:/Éå'=]ó8xºû¦pÿ¾¨/ð'îßGÐ}{ŒWgid„­Ö­IèáPýÇÀ4<Р‹b•õÀšUÄYGœLEœL)2àß25‹@å”5m×jr1¤+‰rŸÛÑ¢w…þ˜‡æZ‡ÖVÞK;A€½ ùöß'pBµ ¿/\Í+àËú—7Ðùœâ+Ø*«…•ÐÇ63–§ÿêÎÚæåHœÍWèHÕ ¹ÐÊT©€ rløÔB—Zt¢·È(x±ó5?]bCVèt†¶YÃaL.Èӳο‚J¦6·W򨍢 xsCæœÊͨƒqwõnmCânñ‚=!>ÛÞzŠNE–ãFj*;š`JÐyI¶_D>éP`+ñ»XkbuqùéÆët#{¬Oݾ|9çs¦êç; XH¯ŸYÏY þ©Rî3!çºaL^Ó&žðjc{{·e¬&Ã[<ÿŠÎ‚0™Ý§ÿsÐ,–dH-e‹ ÕPò<”­­k ;‹ BŸ¦Ú>Þ—ãÛw1Q}º£Èì¬ó×´ëÌn#x;ÂߺNú®sÑIoD ‚ô R›.¢ôõÜ…Ý]V°O™·zý:³À[»ˆUÚ,Ž? >Åð³¯åv÷ÙfkäÀýÍýýÝýö¾é}w:ã_Q´HÞ,‹q©âÃb=Ëõqñ™•8+¦u­$s%ΉÜÅrÎö°x…,ÔõÓ·¯w‰ƒCôÁeÚ#u zÒëªhÃ(œt¤‹]¶÷ÆvdKÑ·Ïq†y2­;ãÛð]énlètC–"‰Ã«¾ ¿u{è7(Óžo÷¡Ô_‡ÎÈ Ñ%*VàW+l?Ä/èªv›¶9m^šÉ!lM°ì°¶ßÈ Ì)è[Ûž+ú¾ ¤°ø¾»Òåz÷„«’Âmî•4>¹W2’t½ÔäÛ=ƒï@ªå^ŠA·ûMÂmß…ñ¥)„²È# P‡&H¢Ýñpà°åÂÌ¢Ø*ââ©KùÓ“ÀfZvì®…hz>r'ð¯vY&K*Ôë ‹j„têLœa3û‡´€6 ËLF¨ŸŒjzîM†=˜ÇèëÆ‡—\ÓT'b¥ÐÕªZÚ’$òjí°‰‰6-QÎBáŒÆCK ¨ÿ4Ãsë2 …€‡ LŒƒ@ÉÞÈ6p€TÜ&œX8]kd÷EPP"ú¨-?ÔJA3²¹Âõ|-)Ž#èkèXÑ`Ю†—xØkþDÖ}ÉÄv” ”ñNA†µÍõRµ_A›Ï¦&ÙzâͳË?NÙ}˾ì£Ea„çêBÑÜŒ/"!ÝÁ½yLµ‰+#,îÅ[‹Rå¸^q1qhÚ^y! )[ å_QÛjäx2GÍ*A?YÇšFÒÖ…¬;JžªÜô\u?Ͻ š5Ê߯|íñ§mJõ©ú4ôìõ3~py6:޹+òÒ;ÞÂ=¹ÁíLúoWWVÞ­ë˜ h}Õ ÅÒ :=í×”í,„+4mçBç»ä;ºKž2•ngŸ|ÕK¯†9 šÆdxŒ­•dB´N<¼û ¯•Fyh_² L5d0F‡V蜡×_ÇEc‹  #¤˜§,”N’þ  §öîIt°-¯w¶ÞˆG  ˆªäÈ ªÓÚxþ%;Žá Xë‰ÒŸÙªžÉe«5y=Š|aYaH.ÁÉìÜèß«ÜÐÀ例ÆkpÂRµ= †!¤ë-lSIeZøs‚öÉÕX* ªl´ÿ|¹u¸‰{XÀÑ8™»¿LgY€¡žXg6ÕäáÐþv™êe°L{GÒKFñDÆl.ûÈ‘èâ­Öã%äÕc«k7Ë¢¼Ný ¾=*3C¡”­ª3ÁþFòT³ $²yþü=ñB:âMÁ™ »#އÖó&@­:}jÁ¤„N8áÑK{Ô#øÃµßƒPMR£§ÓdJ¥!Q`ZÝGšËƒåòr‘”Ë˃uŠ¿pË-½m#?ïúmkèNFïª8`“qGG•&€6þ{ÏÚÕÆ‘åçèWT%ˆÔ 8ÉL`•AØfÂk$ž±0© µ¬–Çæ¿ï}Õ«%NfgwæÄçu×ãVu=nÝwáCÜn¯ÔØjibaN „|§˜í±øëƒ:Øom¿¦Qée4`vpú˜ßÜmèõT§“¼Ó¢‰–§œ È­ŸtFü²æ¾`û‹oÞÖ>€èo>ÞŸ@•r¬iÜöŠKТäôëXƒŠã·Å_NEpÐc„Uo¯ÞǺ#P=¢“>Òr½ôâ5\Ãö=¢~Œ{ÉM<˜îÁõ˦Z[WBhè³¶vë°”Š9‰mf€rØàÎP1ÌçûdØënâÆÝJ²ÙÆnßœ|¤y¸Gšø¡óGÛ o j™ Žušá¡)2b'øNÇÝÞþÞv˜“êxÚ‹“Ï)'ºÙÁ[3àÔWÉÝpà]Ò•ÜÈÀt=ÀNz=v‡žîCDç?4Ž^Ñ)ÈŠ‹ñˆö¿¨sQÄ­æ´!n}T–óQ°a1aù#¿ÜØà— …±<ʸ(qzUÔD¦C ˜+¨‡Gå¨Cv0Z}Ò(huˆ4ŠXóö*ƒÎç@úy„?léäz8þp: MÜ$¤ÚÁ\® ˜ † OF7 væy2Ê[9t÷˜Æ1rýtn†€ ëaüöúâd‰º@Oõøc)×–ÚfpÖ–âµx]õ 9‰z¨L’ÞouØFí)\޹ˆS€’`‘€ÜÜzѪ×6IdÚÜß{±ýòôyúôÓs Ÿó:=Í›h†S<±Ö”fî×ééÀlúü5\CHW¥ƒ »Õ­DêÐN êÅ9 |”qn:ýÌî€Tx…ˆ‡/Õ gÿɾÂ:´ËÇí(ŽâuxŒ2üHz8ÿ<†gÔþj¤=Z×V˜¨Fè…ØÀy`.>ö+Œ½*AuúYÈ’b-q —J;G^òØd”J0œe ZG£ãV S -yOX°2LΟæ°F Ž“X(#L€MPe¯ ôqGØ…y „U¨0Ã2ã¢ß¯ß3«ág9âŒ/U¹õjkgvàËdŒ:c>P8R]‡“¥K™¦yu'#º-QÓÄ$6°ZSÔÃ*›Œ‘Æž³7é2pC@W5c€ »—œO./áC O%R& y*úÉÞfcÕ4¹T­~ÑA¤ƒŸ Ýî¥åЗÁX’è‹ëm;áø^ã0BÊLœáÔ€E˜ñO-,`Þî·@§n€ÂîôÓ_yX”äÍ­_þ‹î| ¿Ãd“r#Tâ°ŸŽi‘)Yþ¸òMPÞƒ¦ú)IRƤ´†EŸsÛ¹Là£7Óœ\^E°tˆuR¬0VµKT> İâoXJúþ7?oÌüh$Šjp0dyz7ÿ³ÝR„w‹F⯈ ÃìG›Î“Åûûuø¿.%àq>|Ø+TªNµèŤò¢#Á‚úø%% ,\ZÜp®ÕžEËêø—í=õ.¿ŠJe]Ymíý¬vÛ;ô­ÒA Èæ2—­Õzø#=|[¿QDìí´àd„t‘ö¥#G6„ÄïNcï%ý9n¼ÜR;M”6nµZô¸³ƒ?ÍýÆe6þv@Û›[{GÛ/¶›#˜†Ô<ÝÝj´Ž·v!_[-€J°vŒ9jþ Ÿ÷»dïxwëp»‰ƒ­C æhkgëàÒ=ø²½»…ÆNDSÒ s·n×™–³ÑWÕ›ëH\áTJŠðWAÅ¡=®á’Œvàm¦Q>2Ô<,q$¼ÎéCZ3æ°½ØiWÂ‡Ö –­ãgµPš],øõ¾Š§V®>ô_ŸÙbòñ(Øzn‹ºL]?8-›Š—Ê¡jÂèàêµ.ôº½ÇÀªÌÎq3"á_`#äUg\ t6JãL¥¿NÈïG:.ŒÈ5õ~]Ý—ˆß¾Æ¢ð~¤H>oV‰<†Œ“€úÁÑ$ªw$½\5™æ-‚N¤4,†çgƒ¬›zÉ0as«É0oóª3:NÕÃÎà÷7³©ýd ‰y=ìœw ¹¼Jÿñ®=ȆïGùxrs{÷á×PŠîl­‡çM ?_¾ÚþëO;»{ûÿ}Ø::þù—×û»)*PË^#eŽí¥—éÚ_^Y}öíwßÿéÏ?h ÄAk;®¤ÅSEžl»4B;¬ÈÕ÷àÈœ¶¶‡£ýC9¾œ¡é €ª‰ÏÓAœ£Ê )‡r9¢#²U@RuXJø_ݽºÎz€m”›ˆÛ›®ñ°’@I¬G°¹L±ùGƒR~·ëázèâ›B,Êý -I{yŸAv =//uufê³: MÜ”e§¾úF­TÜ݃Dºá"l9áÒ¤Õ€U*Ó…ŸÁ˜NF±ÅG"^¤°Â$ÁÚiƒ,{§åo@í\ápß&ZŒFJR Ø‚1J€„IYò ¬}TÑ[yÙˆÔÞ´Û°ÃU‡àúCžô/êkdK˜ŒÄûé6p_eø³®èÉŸ }t D½t,Qa†ŠÚ¯L” Ø™ë‘É™üÑÑ4˜~ö;9u”#eBÂ/‰ê~@ÙÆ*Ð[æyþë,'rû°5qÓ· ‹îQhvd^sw·±·2Ý60v¦y"óB`á„;G¡1*ÎEެ‡'š?€xNgÙ»C¯µ®÷%®íÀ©ëÔû¨æ±Dd湆"^óÕ\}]äò/>ó<Ïú“1÷wÇôÛ!­®#z'å â•Ê:[¶¯°bN(/H—»àµ†=8Ÿ½£JÄ“|4#ù÷-UiOv²>¿B"ç ÉRxþe póšÎAJ¼T¿Œ.í*@ªuIúo‰¿B¯­*T>¹H ë€ìô‰¥Ó¼³Š°¡)^7ĨNÁeT^€;¤Íä.Äzqn¤ŒÔs‹šœ¤ ­º9Ó{†m£’) ¨/4Š¢„ÀèÅ^„uš,A)5¢§Ž¢k‡è´Ø¡ÊZ'Ü’vq,_–"ƒÚGMà°ßÑ¢)G:' ©¾R ƒT”`ˆ¢­d„šM‚‚ek\–ë'è?’t%bM7 2œH=@ZV¿vøLB%˜4%%Ea DM®Â½¤—Ø+®Û(ÃÀ$ËjÊ€ÏÁ,&;C$s+l kÐ Æ•¦4=¤ä…S©ˆ ¶L|ÒM¢Í è{nD0;ÿè¨Cõª`ñÌÍ'—@b¢<ˆ(èzÈ}9èLúj ²F¨ƒËXĽp‰åyùƒ$Q[‘Úíîv®Ð“ CÍ4œôwPn­VÑŠ“z¨þËοKÆËÂÚÓ:j¹Z«ÊËšêgÙÐä X6ô(ͨ~R‰¼)Ÿðè G K©žž´+ÕöJ{þ?Ó°Ç>ìZ¹Zµ Íhf ùÀúkœ¡3ý¼OŸ>ëìÎØCþÆj16!xüü|x†´*6IÍ;f±áØç¨ò¿"F•ß,ŸTIAJ4v@D(i˜~róòÄ­xk L)VÓK›hD(ÈÃnt´ëå™K‘¢ ©=3E¹Ædœ!• Ù }¼ã|@² Öû¦9©D#ÅÞèØ-üb17HsÞzÂ4÷;9JF¯¯;¼ÉppJ0,%Öód R‡/ow ¢”•êjõÙY•³k%¼\&'–ºKÕÚZ6m«óo³–B~<ª‡_„L9bÙ%¥LY,¥uQ)WÜ]„Ùî†nIÆåÿ|©‡ËøhþV~$ Än ô£?ÐÖ\’¨LŸÝB@wÉ3çœ$2ô@¬´ù×—ëtä¼’ÎÜN…P|®Î+8Ç×äaˆâò”©q2=QBvv7>ÐçÙ%Ô>Ôˆñ®ÑÙ#W‹œ±-[qÉjËøÁ‡;¤±ÞK(x‚¯ežhW;›R\±ÒŒôeïrMhö§À˜w‡ª6ô8O“E2éJb×þà©Ã¨aô΄z zÊÔù3Šxý‰ÉÚöÙœ¶¨Ä鰾洦Óì ¢5¥¥UÈ $÷Mz´b“<›žëÎÏF²2‡ùBï)™¼&L ÷ŒC=ÀcèÃWK¾Lä«_*òÕzþÕ›·¾ÁW§_]~v´Œ×üÊt㛯†ÃC, úiµ£”I‘¥IUÁÐК$·Be°º›ÂûApبô69è#F)!/¨/Ê”B_ÒÜdi•%T9¥T"<ÿ=ì~,¶Ä ãÃì’h&À¾¨v“.Õ&\n°²ºN:‰‹IŸ)ŽqVB¶ŸèSÖCwQ§Ä¦Aˆm…8}±½³ÕRɸ‘3éô§#!Å;(@c£®\‘½´F²R?©Zíæç†!åjÿ§ˆ?é;±&Šì€iºåj=£¸_ÂïÛ(Šâ……zPx,Çja!^®ßáÿ4p­çû¯Qt8 HÇg *‚$óžmRD}ýÖi¶H5emoá0%Mnéß~z>8gÍ‘ÀS«ËËÏ–¿_þA´5X¥téêúÐãМƒ«ÑwB³¼ÁMÖ%­•>À˜\ÄÊ%å·B¦©ì&Ù¯¶›°!Ü’dËyóS %Ù"±h9%t*£ì§¼Q*Éðð¹ =?[¼Êò1Q À!Mè¡6¨ø"cšº•÷®3>XÛ¹¤¸eÓKϸÇþºÓC!É(òutÓÏ‚×sàж§Š·ƒ`JóèèÚ`#Õy­H®ßŽ$~nKt²Ìi‡òüV(ésÛõ6¯í·¤Sç6öˆ6WÔĤ²¬íRûŒwOȦƒqÚA4Vâ“‘Ì8¹ö)±Óí²$KJ²,ÍQŠ—Žú®Ö7û¨Fk¨7¸aNCඪ]Uûy="Œ 0!‚©U6­!:Jÿ\up•)­˜,TyUÞORÀÕ¡Í5É.í¯átiˆZk’Ýðô@kh넌t¾lþÀE¬é,ü#Ó+ÍV º%z\È“Ž†÷&²)¡el¸† ë8:ÓçDÉ_°%ÈrU=|\ «K ¢>SÛíÀ12àN;£Ë<Œæñ(´ÏÚå“MJ¿Ž/Ã3H±~ ýZùá‡Õ*þ}F¿¥¿ßÑßïéïŸé/œmÐûeú»Rz1JÕÊ.Æ·(Ë~lõ*œj݈OÿÓEZƒ‡*ÖÍ¥.Ë~æ+¡½xަÂßÝ*’Ñujˆ:dUcE²îeÈx†ߟ^|@cõ Ävdu1Y+mïÁäíìÔƒ²<=:ÇÖg`›L±i¥c‰½H­D uk‚n…$sºìã,èØäB!¡Ìæƒ[ެ½Y3ò#mÂÌ"\nXIBæ@©Íl4¹•- ¼r™%Ó,A^aF¶V[ª‹Í/Ú|Ñ2ªŸgÜ•WH|gÍZÉžL…E5U”ÍíXÔc çWéŘTl¢M©MµY^)@.¯úµé¯…ܲxlh)Û@vAUœ-X¯y¤‚QÉàºAŒ<ì§Ý”!iBîsÊT§ÔÔèÏãIVE.¯«òè.¨WBäjÁ„lÔÈõP{`ÁHi„þÉAîöÙ>š'ý ¿üc†Û±ÒZ“¹0Ù'y^§Ÿ×qЉÁgˆ›–5iþª"ìrS‡MÑ.r¶âNÔGÁÓDnës@aÙD;»À!¾R:‚cè„e’ü€déEÓ|ì? xûP¿™A/þÄø{5kD‰î™O>õ±n&£'UÙäÎLáOü ¿ü#ÅËz÷ЛË'ÔmÐ+¶BPzdÅëù“OC2\?采š&Äv@3*ŸÓ…÷ØSŸ Y¥Ÿôƒüò<Á›#RZñÑ<éùåw‰M#ÍmsˆLLÆq/ïɉ²ËAú+`ôæ ÿý€Yäòí¨Ô7¼N^2ö=ð$Má ÁUDOÅ+ƒ5í±\õ¨C$KX•²;è–5aA‡á'KŽ#`J²9fPœ‹Gp²äB‡Úe‘¸¥‘*°ú†:PÓÔ˜™Õ©º5Èj¢ ghi˜—ü+åëm Ÿ>twèß#Ç“XÅ{3M&SÓïÓ‹#˜uZz§r`<8UåA±öSNÚSÚVrûÂÒ?ÚV…œU®;¬ä¿GÄ$Ó‘)º…b¢Ã~UÙ#“ÅdpÃÆ¬ãdt*Àwµ‡±­ÐÛr@òËŒÚA 9[³D,ÕÍSÐ>Ä3„wH³Äè]Üý(„—Ž †«Éµ1ð¼I}UÎÓ_;Àá#“†òÊÖd°ßRßF+ѳHc ïÌ0[S+ðÝÅRtðòÖ•ÏDN53„^bE“- _‘¶ÀáàÙO2C^ꕚ&ƒ.2¸ •õ”ÄØgÀc„®ÂèîùÁ טTpD£°7gnŵPóX¨‹‘ÓzÌíãü'æ’n($„¶Äãë!y-Sd²‡¸5­#$—F&3¿©*ñö2Öò`¬6atúÚ×Ó¸D¥²>ŸH k¨B\ëÖ“ ôF0ר1rÖBG}§P¨–MÝ™{&T+jU­úÑäµ¶ŽNw?!âÑ>ÎKÓÎIóÅNã%Bá;ö›:CžlƒSGMRñãSjC?ÚY~½µõšf™Lúþó¿r:?8_H2éÓƒÃý—‡]úP/eªd«y¸}pää„©r›£†S _íwïÒGÃIzÖ ¤òCákM®ûjÊ4ð,iØó£q|´'.¦Ê£—Ç´äò‹;ò<èvL¡ã⯻oÐ㘷>Ùœ#'ïÈËeŠES.:úæÚÕBM¦XkМczœ_UËI 3L“n’k Ìœ47 ¿Fã;­í7æ©»¹ ¿À¹±‰&Ž@4ï·^Ä+DS¿:¨¿îëÎÝ)%Ûé¼þíŸ9S.FËú ´²Çp1b‘hI‘ž•úç zAöºdp@¼ÈtIØÁä{íµ5w°[xõÝC0PÞ$]]³=í^÷òz‰¢o÷Y–nË‘õ;)HyÐiU»$rÔ˜j1•¬Té–\(qß[Wô ¿(Ÿ"úѾâ@±|Vj ¬Ï«MnžÇE®üb^oýÑ`[ªB'ØKk8 ³<±Žç TJÂ9Ý+Ž!Ê\²ŠÌ àö¡Ï“¡ØUS4².ÚBAÅ"‘}¶Š[•3 f05Å~>Êns6~“Žx›ÀD´¡È<–ßfÄÙ3ͬÔ5‡Š‚¤Îyv“èÚ‹*w %ÉñÆ›Ní×Fíï§'úa¹öÃÉÒFüåyH¡ÐÇñŠ3Sµ²³1p¥ à üÊ*½"-/ð…»Nɬv¡æÃÕAjd&ýÚn ¢—}0Y]þî> ›„.g¶$îî2/b›ˆÙÖÄ(‡ß¨©}f×4I—ž2Nþ††Ù(Itµà0¼¿õ˜ìµ päØa‰ÃS ÇÁ‚À™9´zMÆXìÍГÎoE''AUK§Ø^‚Ì"t(ÖÎv %ÿ0£Kkòw ÝáÄnŽD*x‰ÞþrÀðÄ{éñ4¸@ø“´"¿úæíÚÉÒZµžë=Pi-ZÂ"å¤þý«SÿËtLUtTÉ®‡¨¼×Q_ªjcœ OÍÏÚeƒÕɹ`¤} #¥£úÙ¢6_·=¬Ý—­ÿ´óì-¡ãr»ÇKÆ‹ÙúR뱘Q«±ôÓJ> šyû…žä•íÎLIl!úR›C§kûyºh‹ƒ6œãƒí”zÌ“œ¸Q•Šc;¸Æ/Ó7¢[]É·µÆàæéD¢54µ¡ÏêžõÎ3$‡­ ó´^xü…ÆP^gâøÙËÌ«÷Ð*›*øp¿} œË%f8eÃÀL#O}Ò’UI¢S?ËmÈ YÛzY’íäÓœ„æÖ~LKÄ^AH _Ï>§Ž“¿ì´òÂwávË' -v°<ϳFòoÛy~ËÙ° *ˆ¢8 ´LŽwžd¹ìÁDÈÝtÍoI : ÆoÞ’§yZ©^B£Ú-ÁëðX±GÅ[XÃÏŒ*Øç½ ÕÁœÌ sXö¿0ÅJÄh’ü"Cç°-Yäýš6r<²_wÍ«îÐü…|"Hg<ÊæX†5I'©¸âRY3^ù83®cuñ+dTüa_/M÷GŸ5Å:ÔÁfÂ-t|f;³š™]ÏxAi¿œs U{o–C'©Ž:ëöìBéôË2 xÛ;ã+—”N嘼£TƆÌéàÅY.8"&{Ìê™Ⱥ¢¿˜gUþXø´û¨COýœ¦e(f4üHE[ÄT¶lBPñ¾ÀuS.®!€  &Mi½ ܼâÔye5™§7ÌC º«yq  Ôfª>¢Í)ô=£J õa›. §Cá#ÑC–®ŽŽôò %l ËÄ_Ö÷@¹fê‹i”Da— Mrm]©Âú̆}}1†ž~”æÌIcü?Žÿ$¦=ê© yâ|µ…£Ÿ=…q´¶ Ä‹Ô]2©˜g |3,ÅBåBB`»I|ŽEZBî»Á ú'H ŽgbܸuQÀÜÈ©´V™ ˜Ã"Õõ”¶\Â:ߦ[Á8Nº”-gôàäõ3ôºb“UºýK\RÆ¡yç\(üÕ*rñáêt³§*v$œ¼h¢(oî·jùø…pÎ)˜ÄšSE;+å‹às(òʵãìóÅ£tLWz< ‡ü㡸0#඘ドŸåŸ–€pЏaô ;ŽÃGÛð¹—ÉÑÙ…Zl²ùdSÕ*‹èÒ-¹?:”Ûl^yXe3y£-—ÈfÃQ6LF:b6b¯VºBÔÆî£ÑÝ•ØXkú¡39VCº–J<æ«æi vÆçth‹P\È!hk¿Ýüµx#T¤æÀ¢›¼Õd@—ÆôÈPæ¹K^ tcyѶp㙾¨»0Àxm¶òAºñILè—Q‚Ê3€ýÀ´~Üu‡.›RÂŽD yO`€F;ñÚ U_¼$÷SÑM/â&a/N§yw怢9¦ZÄ8,cÄêd¹†–Ù‡¯¯¯Ð]æ)_À4 L&$iRq/Å`7¼ ŒÃ¸ñ•‡#ãŒ®Ä #{)ÀXE—1–-@6Èlüu| ì¼–ÏNª˜xYÒ×ìèv0.n¯…™Dåâ›·ê‹ÅþKQá ¥çM»"èâ6ßé5îÛ+üôü#Ãñsó¾ýŒŸ6ï«—ÃßÈó„v©YlõѦLC«nCtwOÉuþ–+_pbØ?»K—wÀtÞ$#à‘Øc‚-k82ŠýÜL¹ôŒÂ0È–ÍuÀ^:è$»gkAQ|­R¤µÎZtrK:„ Š·|TEÄ1h)ZXB³¬%ÕhÖ6·^š—8³WÙ áu#“AúÞEpŸôÅM²Ùܵñcq÷é{ q¬ðÏ$¾ §·èÅ=j·²½¤múÝ=!¡&s%Œ…=л‘ ¸‚£]ÞA¿Þ?É]‡/E3w±Õ)…Ô;mí6·œÂ`8̘¾ë e죯ГwöŽ> B†ÒKºˆDz'º"¯pÓ(€»É¼åKÙfõΖ†Tã%õµZŠ«ÎQõã×ÔØk/!þ $˜KÜ265Ô8mñc/|´)GGÖï±ñ"UeÃE¶T„ÏÍÔâÊò²Bq@%bÚ 4n} EÄ4¿gã¸ïÐDfò¢p:–Œ†åèZ·`z»‹}Ìt1ŒÙð´¿œµ}³»7Ù•w'Rz_¤À[›‘W8²Æ@—H|ú”hÆV±Ž­=wø ^»§g+é‘Qiáh I/@p3QôCé™e°qñÌè4Û¶²ÍàšDŸ~âqÏ Í#=i2C tsñôôÞÌfÜ»9Ætc"ÚØ×Æè›šãÃUR»èw.ÑñÏ6'Ïh&D1œ›ßMˆÝp ÙÚíþýŒ‰˜Ý‘vj”;¬f%ΖŠ/扻$unŤµÐãÞCX–Ö™ÒÞCÙÔ¾Wvº ‰ÒæÔ×ËŠ ûpÏÛS©3•`ÄÿGxŠOƒ¦~×¾–¯û]ÛšaÌßÕ6ÿwojæ fofÊû·ÚËzð?c+;cù¯ßɺ¿ld!¢ÚÇRdÖ6–¬ÇCÐügªÃYt€g@›Ð Kq sn\F§®¸„úŽªüó@É…c»À¦Š—ÙSt(æ6Q-Gö€>p_Ê|S +’ƨ[?º7K4· 6¹p¤Sçþ‡çòÊùÃ@×]èþa û› tñŸ`}«ÿ¦mtS@ä^>%Ójrç(ñÿrõå*Ìuÿ—uÿ—]Ós¿‚O÷tüËYËþ;]’C1³­0¼/Zb»ÚÐÏF‚= Q[!ždT”:ó•!Hög·s7=ß½;Ô7¼y Ð}÷ k<À|â•ïè}¹ßâ`°@^å¤ó²U°³L½K†À \ŒUã]·šg…ŽÝf¢IëÈm·Ä`žñ:ö™¾ÁÁs¨—^šw;£ݡ˼(ËÜĺfÛch—äâ?ö#‹wûY.Îf$󌮃 óWQ<@ÉÅQRÁO`ªõi ÄÝošàú…æ"»&½~§ûÎ'}ø-riÚ[®ä–Þvn`(éãIàÞ87ÈNy7uó!É]‹t 6颠H;J”î‘3{$À—"8ue^%72•“®ÌѹűÈݨc: —¿cæ€lä‚öøœäißã#hWI¬øõ×U«DÀ­G¡z("òÝïÍ7õü>uŽ –ékz»¿psd•4×¶&ä·‹ôûh"&0Ê_ãîÎW½¡ÝÍÿä½Áê›mxœk?ÎÛ~œwB+³±±áÆv=y’Œ2ˆÞ¼CÆÈÌx›ÈÆ f|ËùÀ Vr¯B~3Gù Fgú|6fŸfùÊvùJÆíò•Lµ½ Ñí@QU60ë8ó0'!eébxœk?ÎûáoC 㦹iÓ¤1¹N›Æ¤Î]œZ’šW¦ÃÅÉ9]>ÉT¸¸¤('9±,fTNÏOgR`+-ÎIM-Øþ°’é<ÇtÝËLÛ0=ÿÆ:!™ã`xœûpŒ÷Å1Þ†Æ-LâéÛåÓ™ÿZÿDàxœ0ÏÿèÆ ¾§ €´ë&“p܇+.·+.r8—œfparse·´f±N·µ¾³¤ÿ’¹ÓÚáücDöŽBÔs˜[a Ñ[libnbcompat-20180822/.git/objects/pack/pack-d3dae1fc6344f68e421608d47300985b6109d15b.idx0000444000175000017500000013254013355271171026565 0ustar jgoerzenjgoerzenÿtOc !&18;EKQ]bjlsv}†‹˜ ¦«±¶¹¾ÄËØÜæíôú &*4=EFLRY`bipx€…‰—£ª­°·»ÂÍÒÖÙàçìð÷ÿ  !*047BEKU]dijntv~ˆŒ”˜£§®¸¼ÄËÑÖÝåèíõû  %,4;FJOX^eimtzƒŠ‘šŸ§¬²¼ÆÉÏÕÚâéîö $,07=INXaltyƒ‹•Ÿ¡¬²»ÂÆÍ×Úßâåêííõüý  (/9>JRX_entzˆ–œ §¯¶¾ÄÈÍÓÜâäíñôû&07<?COST K>,¦ùÜ_Cö&CsZy‚ò5( ^%»hHŠkëòJjjž›ùGIª ‹m–š©i¿óz¤¦+v¹)gTú¤ßœ?GÔØZϨ°Ùùô×"õÅœÒyKÁw@ÌK-ÐfðÓ¾¡‡TãµKö!‚™0ÉU¦%^ä —ïIêSÿt½Iz™?=Q¡«ÇE*—3™aŸ}L[z+ºÈ»‘h±:PòK¢ÿþɳ$•6m,™N+œ‹C±K÷³4Žo¦§äv5ùë÷Rz£z¨‰¹y?¦™N'aE•ã?9¦Õhµ ¨É¬%x¤¡wr,2¸Æ2ä+Ï 3ù¬¢Q9íZl·gnÛž4Üšî©¿Ce1& à³Ê#äÄ®“nqÐfc8W=\($—3)ÅPüjI¯ÿ5êzä m#óуGÙŠ.fh2:(è(¾V•r-Å›@Lct肞3©Áž s/+ <óÀƒe˜î¦ÛU( ü¬ù"-*1€Ü”JZô/1žºd3;¤ ᕎ^ú¹1' YFWÝÖŒ‘¦9Bã1êbE/¥¶áöðyÊ=.sh¢Ä½Mö4µaĵš:NÊjùÜÉÄ€¨ë /³¶¾Jmv •„’Q†Á4Ÿ²­—úc:h5o’ .˜,`½'Ã*^J×P/^#…þ‰É)K«XCX^§HLUÖ¢œª1L™„iòh2…›Cï=—ã€sˆVž^Ñ— Ýî—ßYv›™*D.¶¤Bj0ò)oq˜X5#¾âDÿÌ«æ WÀzet ¥D=ªx‹×òb˜J¼Ú9-=^,Þ1Yí ýh"_úl q"oX€Àsªžûþ—oÚ]F7oÖ!~1šÆn°hFÅü1”ªfÙ|DÓ"ÑoCR$d²Š3’GŠ?„dwKŸŽr†q pH¾þ—)Ú µi*•T ªBÔéκYrÓ‰]›·˜ä›Q\…½ÌDDVà 2rÁž’Z[p¡ª† ˜k5xÞ9ý°ö¿;ë­1zǨ-s²Ë9”^i tšºLZpä~Nµ›—µ$“ ×iøÛYafÄØa—èë¾t16i: ü»Þ_ŠŽ!ØÎ·"b(-I ÝÛ‡è¸ÚÅ⬂pJVœû ;ä-5·ÁÞö´ë-NA” «t­¶ÛZ{õØ£“CæóÞY, MT0`Îu"BÓ¥òOȲòûõs sëä׎u¦]¥o×LÆ|å݆š Ä& ,ú)¹¿e€ŠŸ¦Ñi5Cä§ Ø ¬üRâšÈØ©öj ÜøukºNG‡æ\,ŽØáPlº âBƒk<Î!¼L£I›]¼ý²Ç ãÓämaÆ=PÓ eÜKæìŸƒ !q» ¾Nƒ)‡ E » g÷ú "r$½ë(:•ÍSz^:™ 2Ÿm5Ý:ón“¢é SXkø mù7L° 3¨"o9yý¡p¿™ |;Kp|idäñäý†ýŠü´ Í b¼ôrNl0ªŽñV÷ï×: ýZHëæDï”7/À:ì\\ ~ûån쾉:¦¡ï.x’ìd Ý,p>b©–í(h¾:•°²5 2._¨w‡ï¨|±Ha復 ŸÁW ºã¦U ÿ?¢³ ÷;Þ»ÆÍLl» ô\#0Ù ²_§0ðÓ÷Þ½ó …j«Ç,¤€Öý‡"Cß2 #Y‘&Yµo¦(O[y9ý¢Ñë0 #°éš6l—*Vô²üNËm+ -ì,—È»›À’Ôÿ»j PNŒ ·S§/¿Oå¡1{c Q|’¼¨I—êO»_Q*è2y VÄ\Þnõ>Hw³ú6»–$ýË» \ø#)_‹ÞÍTD”Û°§ŒjŸx ‡OÈî´½QA[¯1àÐÜßäµ* ›]mg2ÞºˆÈ{ÿÒÄ)T÷<8 ¼¯ ¬]¬«FÈ»WÔf´ÇÀ óÎiÓy8´;ªwbžiJxœüÑÄ»ßÑW›‰8CL³}ËêžóÝÇËúPü˜BƒL¯gâ&ÞÅ[¸“Áÿ÷ÄŠrÃËÑËpÆ,CPº) ºŒ&5gcÝoùpÕ=ô׿MŠi0ø®R\l/äùç®mn úmPÚ;ïS è.ŸÜ,ÑŸ…M„O@Ë„¾Egõ5—SÈl(ý§ÑXxjpî-ºBt<$OÒÖ~‰µÐA•Á[Õ‚Ï{ôþ!,îíÛ°Dsg#¶šã£YnX6áVyÄ~J~û&TÜ®¸ÕU#¥Ñº°HHô‘öª¨ïúM™Ã˜f‚‚ 2¨“%©Àý ¿²!›Õ‹@š¡L™yDc¦ t²üN}f=6fíâÁÛ•Ç90:h…µ‰Â¾[çÛHzP–±‘L¼©ç³.JùY/•Þ–›®'|Ξ¿`¼…0ŽÂÐúÍç/J„Ç6ܼ£¯$PÞ ^Ô2].­Z{jâÚåôì„Hw˜xñA}‚iÇ»èëáx!zêå ZsyL9ß}­šðʈ¡g¢Ùq2¬Fú_æÀ“ qiª-ɯ²ê&G‡zòŠøýÇúÒ^p&ç™ÿʉ‰¦ølØú6…˜‡€ÜLI0\Í7dÇë.vãIŽK|øò#Á𠯫tcÒúì7L"Y,#¬‡8—5Æ·|QÍk{1“@êk?4rœ,lE²ÿ†šëvmdrÆæ.‡•9„gEXˆ_ÁÒi³Î]³÷ípÈ2iˆ&k@´ÛÉ–PÓämîß](3ÜÚj'ãñ†+.‚ôîæ+9ɶ†,|Bú1òR˜Ð<²9áÈ-Æð¦«kw9›ÉÎrîѼ/öµég§B­Jóâìwb,5ûVähµ9ä%‘ )¯øAo„G鯬‰Á®[:•÷Cº‰uôRfÀª*Zè¸6><×Hoð_#ëÌSxþ¬±ªnŠE$Æk%),b2iËmÕ½n‡ÛEf M¹Ó ¦L׿C•Ú%€X´'Þ) ¯Á]Ør5u+¿ÆagP_†:¤C–uðR`ÖäÏŒöM*Sã2u!pÙ2íÚYy—Ú¦ÿ£pd±ÅRÃ[,<˜ï{·Ôà"ý»Ù-ŒÒûVw­“ƒH³ÿÌ÷’—Èf×–.{`‡¶Î‚Ú™)ÒxoŽ»Nƒ N)”0·dOšâ(ÿ«šð°âsÄ9ÌiçMÊïd/S÷T-¹Ýôx.ïÄÜCMô÷µ‚瀃û2D#­uÍ}U®a„‘žYÒg©Ÿ‚ bÈ„IJò‹9u3Í*ѸmåZˆ®¿  «aRGçûÖc_¡&ÏzÑø£Ô­(F9‡$ tX÷xñ”O[ëU¢–ñçø×GPGŠOMëÕ^Ü\^kžã‡3p™("1ü‘¤Ä"ˆL"žï_ÂE×X  °ÿßÇ{^YšÃ®¸¸¾õ¨µPŒ£ÌÇGí¿„h9„ÍÝþ›µ“ªæC¼¾V,å\axLS-Åq>÷+ëyÏìßà uwŠ~w/ÎÎøo™evÕ–ºui"§ï*´(:¡Ñ…f–C dž™½‘ÚÛ=Üè¨hÿU¤ÜùƒèÂÔÏΣóÚC“¶‘ßiÍArŠ3*Òe¤;’ª§¢+¡Ùv¤76ѵîI Ó;­öH§µ”ôr䀶ÿÈRÔ·(g>É 5?ˆHsÚó¼7“örÒ ö ç6Ñ{ D !èãËÙžM•ò£üÌÖ:À ”ý˜‘Ҡ¤|ë®Øf§t~k<ÍP/ô9—É4¬ÖoÕ! ÚŒ§»”ŸýøÞ™šS ÒYk »o¢“©.zGÇ 2¹]kut×+à°»M±œ;ö(©ÊÚmd•Jî ïúSžÊd2\»‚éD¿fáÿ(¯R²ðÇu¬/½§GênÐ鿣¥Y8:G0TÑ×£g¨‚÷ ì,ÛvË… `e‡ìärä=“ݰGNÇ ¶O÷œá’ÿ,ìbG*ñGw^œ@à¡âô ¨ðšW6ŠÔô ¿ñw¿{ˆº©› ÿÂf‘–™ÙÅÍâ+ÑŸÛÏçGÎÁ\cïºß…RäQ â'¥žæìᤱ ŸA²cvGT`Rû¦cÆ Ù óH´\@EEn€ &»Òn'_Òbã¤6þ?gVEJ…é×,©(ÐVµ®–ü&ª°¡Öc-½ ÂVÔ4d ƒ/Ï¨Ž°±<ÁüÓÈ+ò|ìL7t²ðÉC–===¶Ù cÕü.‹†X”èÂJ?|®TŒ 9—1O{3cGUTj©h¤³ öú @ÓþR†,6%•nƒW(þLø/ ^A™Kç?ŽÄúZ^÷¬ƒY'³ë ¡'8¬$ŠÌÎðÅ^g$ Ðü ¤åy4gf,¢ÄVdX%ËßqF ™“i¨ŒˆŸí¯ƒÈ÷Ñ!`ª‘£QqähÔe3µµŽú'^!5}ld|<ø¶&¸‡K¿jÜ-!<hI §Ìý6œ^­9º“€!D𬹸«©CH€Khô£ÆôÔ5!HìsÍk4ÃyiYÌ©·Žž'ñ·!†=v¾Ô;¨„S"x0Ta o Vç!™hyè;»c *q|‚aû•±!‘‰KÇ”,1×!ôs¯Aøx^Ô=! ¦Äö` ö˜k|I°à+³!Ÿ×¡ð“ä½e†x,Ú¡ÇfDÆI!¥ÑG’M A®‚ä0¡ƒŒÑI˜w!ª•`ÆåG÷²ºæ0 õÚ!!БšŠøìÀüæbªGfÇnÃ"u q7K\’j.6ŸP[—šf"'2·]ŽG’2Äe ïÉ&j—"<œ%G ÖÔ“;K8Ð=‘"Våa×õgE·`6~ag`>§#Cçæ¼¨äËŠ‡îŠø9¾˜Èy#aÞ@ ŒÌZ†PDÓ?Tš¤ž#enS‚a鲤I·`7®éWF#‹'bb½}uCÒȇÁ Šv¦•#=’åøg°áL“IçñÌ8µÜ#«Q«÷. OO³amÐ: ò—¥+#¯.( ÿÜ\|U>Í­~Ð?‡E#¯¬ƒ ×pÄy¿Œ0܆dú|¥­Ý#Ö[ÕìÀ>P±*Êbqû?Ÿãï#ÜP<„õõÔƒùÃ"AŠ<.f$E‰1nªÿ¿0Ç“óèr½!$l_î9Š›l0C+»Õ ÙšrEŒ$‰£ùØŽTE£ò!rí·Ô$¦C[”ÕñìêÙN&‹…“io.V$Ñw~?½T[ÊB.ýðë±€(ò$êV.o‡…üÙ%„dr½šB$îEtãÇ9•±Õf§><\&cí§%§JºbY˜!¬07p1û“Ò%%q²$ÁIv÷É™ñÉZH èOÝ%:÷øè ˆœ´µ1®`LW=#ž%DJòõÑÍO0JHÞ—2aUv{%rÚŒéSýÚÜH·HΣÆ–¾%”Û„ü_ØÃï¤]‰ÞRóõJ¥%ÃJºQm6ä^R/l_b[ÅB—&  3ÓVÛLÜð÷å¸Â&W…µþÏ.áíGÔ¤‡Òâ‘&Yz?ÅÐ,êÝVžË |$&b¦ÂåT’Êñ¹”QÏÌ'«Ï¥&ú/H3]ŸõÑ6ÐEeýhs±&ÝÇ6Ç<ž;h;Ô¨¢®–®¨'/?À¦‚žÇþ²5°Ú¶&Q'<7&,d.Šðæötç ôÈ5¢¹'`´Üûeæ>:¿o„;íN+T°'bx@¯GS!d%ßµ8nÝFr¬ßM'gƒd–x/l˜ Ÿ¨Ò…ö xª'píÆŸ‰¥ÂDÝ l ßG²Ž'“X&œpÂz9¥×;„‹n|óWþ' D¬ ‰—AÔ7Ýd [ÁÁ'Ö¦%_Œ_J(ü£7¤T&k €C(×UÄo?©‘týáˆKTÿ!(|4T[¨ÅÆa¶¨ÔbS÷‰( þ»~xnÌ•4])ë¶©wëW(غ&ÙM9å€ôÀûñ-£¡VQ‚l(ìοm¶Wf!g¿s­Ÿé(ðzä -)nì¬ÔÏJx«g”$û(úv-É$žÃ®L!å$îìïáú×) ˜ŒQ­K,©Œ¤ÆãsBm))\‡ÖÜ)øÁs3±Ç ¢8D­)oɺ{S¡Ëë79šœ€íšmA? )oæå/»4i4fî’vÏWÞDý)ŠìSsbfjÌʳ}ˆçàãÞS)ÆÇçä΀R0T½UÝTzÔÆs)Ô¦CÅ’¼$QP»Fi>¶¬ÿÓiÝ)Þõ‰ .Ö6 ìíÆo3­ ¾ls)èÿß ×éSX4ðëÇ.Äà8)øñ’.ѧ ã#‘`›ç¼w3)ý@ôgº€´4M½w—©Ó'§*!w•½@ >1³Zœ-Å›‘X*(ÖI1‚Ù=’òŽ7›Òˆz$*jGURÚ>ÆN?i¨FËnÐl *rW.ú‰ˆȲ.ý#c*|@´3]ºÞ[P<çÊRY£Õ*ôJš´º&ë÷þü·urzÀ¹ù+ÿÒ4Têܪ¿8‹i:æ¤ÿL2 +„žv_êV˜iú`T®oÝ+ëïQ½ÇƒÀ± wSŽ»ý®5>+}®I–NpÛ˜ÊRdå÷P,C*Dˆö?^«NQòp‰ÜHÛ{:,€Fg¿#¡Îrûˬ=èY\=Ÿß,ƒP!)C=oâÃ÷Ü×&¦®)]–,—ür—)jö”'éE˜ #, ŸM®€ZlR/ì¾ÕQ8w®,è¥Ì[ŸŸLÜ£Eø° áê;,öÑð¢8.MÅ”ûKU;–¶`-¸ê»ƒá›œü«=gŸ€Çq~-Ï÷<öwwo7ËJ± †u-ˆBÝþú$wÒ…ç­ƒ9ò1`- 2 ƒ-P™*ò‚§åk ðÚ˜.–&a÷ë@t¢ªPOX›È“.¯)³X>Œ(ò®y•šÝ=;iV‚.tF+˜”¿wÖt É SSgÓµ .Š(HW"xl?â’«‰ ¡ƒ.±ü«¢Þ_ ü¹š¾¯(:ئö.·[{m!uN•iÃ#ð¨Èø­Ó.ÏtX&R›¯¬WęصNaÅÀ.Ö>¬LEÝŒ®ë —ýT7.ã<õ¯UN*5Ï\Zû #÷(.òV ½†Ø¿¹PÛ¥í1n’ŽÇø/ Ž!6 ­ ‘¹þë:¹ûâ’¯/y ¦Z×z`Õü$äío! „/+‚ÖS:¯jQ¯ÊÕ*ƒç4/ ™Qt!o’ó?Ÿd0ïÄ̲H%,ÄXäžÉpÕ€ÈîF0ùÛnEnwu¶œO}Ƈ:d Rå1¢Hµ…f»:zHλéÒYø,2NG†6˜»ÝuŸ 4xûFµÔ>û2k\b=½–NËâu¦HCÈîP™2‹"Û7NYE©^)Ó-wûÜî!Ê2”Êö² *“‡šBéíDæ¨ö2›ˆ ›·þ]†uìÙx¼à2‘ö2¶DÕF­¾ÜÚ(ÁP²c3?lY£9Âð+'áÅN•^Ò3boÌMÓ‹Ô{£ÞYóï;¯gê±°¸®a»ôÉ 4˜úçÅ`z˜Ò,þÊy8Ì{Y4.Íp4Ú»çt”º*ã[HâœÛ4Y”‚¾”hÕä!Ô’H8R? 4zcÑ ƒy«5›t‡Í89€q¸4}OiäjÝ3FÙŽÞ:[Á~ü*4•½®C™S µÕ ¹ŠIyT4d4±Ã®è)äö¬Bœ(·TÖÒ5¿7ö¯Ã½èb§«Å Ðïñ5,aN¼’Šÿ \áµ}µÝ1 ö5H³Ý¢PÇ’Pœñru Y¢%¿5O;ŒT¢–’òCbíO³X25“˜¯zE$³®¤&k–v£`Q¦5«\’`—j ÆØög /t(«0å5²/ù7ðd4áóñØ-})ƒÌ6.«½2iõÙË™Éxæ‹Êšœi6x¿Š„6O›—Äâr+Tû×foÕÂ7/²í}ô‚"¯k™kO i¢e ×7M¤¦ÁªN@R§.dô($Ì7WöñÌžY‘£ ŠÇ]À.øü«7b§ɉ™ïÄaÍ cÝÒÑ3[f7yê!>"NÈŒdñ­ÅAÉ®´…Ã7¾ÏåÒ©ä”Ùu#fšáá@7å®Þ,›iÕÌëÕ O”egô½ø8…y‹™è’0âßôʘ·„‹÷”8?¡<0[.Ð=H¾ùý~ìɶ¾8ŠÙu÷­Ëk „ç|Í\€ô÷ýv8‹¼j让¸¥¨{+îpZŸ,8¶Ã›çO°D jgR{Ý8‡«´˜S8¹óVû;ÛŽ¡ÉÊ[‰"€È=Ê8ÌÝ/¸b5¨|ð˜Úhb!Š(‚9 $üöyŠ«YoÚ~¶›9SõÅÕEÁ>áVý‹’²tïÓ‘9i„þò·T[-٬ßíg¼¿ë9 Bô_ÔÊ–ÎZ9×­µ°Ä9¢YÅEGÇ€¿si0CÝ$Ç™Æ:9¹i”@´wö@;P[P)ç­Zút9ÅÃèÐV¦s/†æG}?ÄBMÕ9ý5‹Û|ØãßoeÞn­ÅNe:úHtè d}GÔNº×†ç:(Û7…¡‘@îÒŠ+·ÃWÃ:>c7 :®fä¯'ÒZ…­ïUÛü:q¬·ñÚpî[JgG°Ñ•·Ê±…:sïÇAÚ¹HÛåÎÏWJ›<6Z!:{+Ð…Mƒ[×ëùv[,²“Lö:‰r¸¥¤K^ï1‘sñÁé#:Ÿ“î’§*Ëêg»Û‚ÐR;Qa£¢š÷.»•}¼¦ÈÑH-#íâ;fä8`Ò³‡ƒfªo3‡ò_†fè;}‰í‘1T ðOýú01}ëþñ.J;Ð¥nZ ó?ä‹€z9èÕ;÷TO ][ &:Ú±¤dÔÝ{^Í kºgßG%1Æ#è:=ü>!1šVç)Ô1ì]nr‘Š&Ù-Ÿ]>ZN¶Ý%c¯þQlyÐdwÐl>­ Ë8*fç'ÈB…“˜œžrv>Á.üÛz9‰ˆH\òéïô>¤é>ØEþ E‘ôÑ€†þy<´:ôþ>Ùð%;€&Ú*IÛ÷V¥2£Ó>Û\%{Ù£P¤Yì•?u‰«IÉèN>òü½ÙÇ&é%d”Ž]>ýÖBå>ùí n:ä<`÷ïd€ð1Ï?¶˜ÂÒh¸ä$ fâN¹?!úµù8ðPÓ2I†™ *·w?N¡âm6¿ª¥·ˆTç•ö0[ˆ±?qrÂæY\:·¼ÜÙ”ÉÿÞ£?“° @âÿx:ßO6+‰üþ•®>?¶O‹lqªzfZÔ«ù\Ú8dØj@)œßà¯ýë_Î.DÍH>ˆ@;¼(º€8û²§SýˆÆ¡FOI@Oœ &m³#  wö‡ú@˜¡F<0òëEµHz.²Ïn+ÿ7@¢BŸ 〭…ìÉoWêT2Ôɸ @ìjÄÎAÁg:EYQðû¨¨A6F Ö D£'¥r½¨Ê[dðAT®:%´ðE¾|éðQ eX„AsØù=õÃNüŠ0(ð±„ëÁAŽÛeñ· ¸ãäl’.ÉœZv¾A–ö ÒšýFOQFšíÙB>ÿA§ì7œÞú0¡1­„ºÔ䎕%A¾:YX¢5ˆïcUª„æµø^B2'Èeø“åí/µn =Aü<ìwBsp½–ÆàŒ˜DŠ¡ÇrKí% ãB×ò­L&G™E›z6–uÖ‹KÉ—Cômš7ïWI§æiúM{ßNBCH°ño{«ŸøúMœ–¶€÷l“C÷ÓAL‡ÔÊvK»™ßâý€–è HD$d#äŠ^Rñ{µs“b0ÔD,k!¾xClµ€…>]³€·åõ{DFHüšQ¸iÛµU‹ hQ#eÔíAD~l¶8†øžÐ=9)=R»DÛÆn)eÝ‚`\Ô®8§;ÌDÝ7-]¥Æ˜P½æ‹jJó¿G‚TDþZ<£°â=##ãEþ;C¦`XEwÚtq‡8ŸuBÜv_ÿ/0 áE™ŽdÖ×¶p4È*(¢)X€)°EÃ*kVŽ^žS‹T‰Á ºøEÚåf¿^ö¤“hƒar­9¸ÔF T½‚¶ßÜŒ"2}O],áñFWå(Ë×[F(†ÔUÇ=;TÚ½F˜9° ½; bÅñÉ{øÎµ”+uF˜¨'׎Чs[Þ"ãŽ|>qÞiF XûÕœ@€{1h¬±ö. i†FÁ‹Tï€í³?Ôsãð¤S$&¸†€FØŒå›Áp—ÇÛŠ+!P79üåóG&!X¾6ò=r†bâ]g¶AðéGL©9?ĩɪë1"õ€lÛÇHáGU>×ÝÆ¼|äl”#À“¾‡´“G^s—.‡z(©í°ŽÞK´×QGuQ}Ҥ±¹H_µ¨dbæðØEXG‡!mÍ;tYµÕŠçÐV;íÆïGUp0/EP<‘* J´Ïš¬hðÂG‘ Ò:·Þ?ŒA Søu¸>1íGp}¹AN®œð+º¸ÊÙG¥Ârëe´¹:ûýEþl™šnGéÒÊÂ/*ù$ ½ý4…-H´0ñZ[‹eñ ”*rëKMH?5Xn'àpþÕxTчŸ% ¶‚H\ª·„ü(©Qé^wÚÒ ýH—æuIY!b×@Þ~qX ‡šHÂÜ Ì3íÒ‹!‰)Í¢_ÕϱI=䤶Y´Þ2gìg†ŸOÖIŽ?ê¹³°)‡·7!Uo;h­´IÒ!’}î.Å•ÇoÁð3ȶAEËIù²æ“ ;àIb<*-Pà™ÔJUV¥è8A7üa¼ ¦ö4ïI¹þJ70\丵àÙû°í;JWê0bJ9!ú¯Œj*_²‹x"²¸–¬K2Ó"Îq‘wõI¡Ž.ÂèòœKWï0BK1â­›4K©¤o|ÇÁøK¢'î¡©âž#zµ38UßÊÍK­^Òúå“¥ç\°”ú‡ ÐpµItK½\| gÈ Ønþ½lŸC9©Kà-ý¦î¥|ZÞmun;jñKéÀ¦‹ LA|täĦ>Ç\úLAYÐAÁÃá-‰ŠPTâKÃÈL0M[˜èu¾Ÿ¯'—1h7Ù‹L3"¸ß^X¸zšuw=Sþ =ÕLX9D„Ac›÷8 ±¥ •·&rLb_œ~éàÜK´ãsS<É ”ÀVL ¢kÖ§½>Ó9cËö¢“8L×8’¯y_^WNç¿eGFûMh­ {‘?^Lí™ohM=ÀFø­³‚^ihÐ{òؼþ>àüMœÇ¾ Ì<Öxú– bÖ'âNM®~¬ÔÁÊ«…õf Ög¹Í–MÆS¾/Vãþ®Õ]z?’$}¼ãNUJÑ…Ú¬<°ÅM¯ØÑ@M’}Nh<; ¼0F™a~ˆ@ $kelrNhøªTk‹ Šö9<7.UÈNì3?lÔæÔ´›­¦1¦iøÓO"×ùß,ýõã¦ÿ‘™ÊÐ|€O#mõS+„E8^ß³‰TÖ±O+6Éàú__uÚkl·Í‚ý„0“O:ÁèBÅwÛ/B@É'ŸªIêëOÀtiT¤GhGúò¯{”FÓYOðÛïÌ™{2IƒßËÙ¼o4OýCPâ± n^¹“Qá „ûGPÔEYÁp Ñü|b‚ ’ Pi;Wê4<¦‘Ñm™¾|+x’P‹b³ÃAÞP­MÕNÄ5±ý<áÿøŒÌð ÆPÁI’}\T{¶g\=I}ÍjüñPϪÈî2¤lÇ"4?èdÂK2®ÈPتî@Íè Ã/וùÎØ±•ÔPû“È<E«M¬äç%ob’yâ @Qjþã8ƒWóþ¡¸¢YV\Q^âùÉ=/dÜz¹Ì4A3\Q}p=éçlB¿T@—pÕî!"˜®såæê‡T}¸œØy=oMÐúnKýÇ/T“‰&‰÷‡@*²ì ”»<óT£’Ò€¬wýs½„©ûcé6HèT§UÔhü––ÏÚÕÕËPbXT§ä 4Nå\pB~È¡h´¹;TÏþu!ceÅFáÿÏâZÁBààTÞ¾iB/g »ý-Í©ëHf‡2UK¶;:ƒ%l‘²ÇiÒ |±UJ<ªÕß­¾D˜R’ýh. Uß‹U±¡Îr Œd|9&‹}¤wˆL¼Vý 8íž;Rt\0Ui?,r[Vke¢Ô¼Ïj™3J•WB¨~vVƒ˜Ï å'‹ˆº‘ç[E#÷,V˜–ž…ø·)WÐõ+ Æ›QÒ‚VêôîqÎð®P]ü,Î<Ç9?WX´Rh^ÿK¦Ø³6cUÙ®W^—"1wãz’yÉb¢s´†È¤àW‘Ô.?îC¬?ëåTLK‡ÀW¡<7ø~¾UÇŽÆ€þ‘UH53¹Wû¹/  àl² …üÑ6v;XÂézaùĹ£þˆn¬ê—X&§–îËÁI=ß1]e!…²X+C¢ޛѨtm½B„"×X+|¸a¿w²6ÑYe ­c7ÇTKúXBò—›€ùÁmŠÛ­‘Þ6u}XõÉÔQ¬8¥™ë +y‰6FXÀBt‡,mÚ©f@U7¼;³X»Ü3yä—h~õ='‡MqÆÆƒXÄv'œñ¬5„5Ð76»ãü1øYûÆØä 8Àss‡þÈ<)Ybã¬7=ýïÿ{­kÂ<—#î"YsF$ÃWt‚…e½•6nRY‡«ÃPtÔO-¡Ý£¨:GŸZY¯;ósp†‡|¥»H8±/ÄôYÛ†JzâbA?õƒIE÷ª+ZŸº4Éð³üOûßœâR‘Z¬9¹Âuq£­ÑËO“ÒûLZåo±dÑæè@¹Avým8Zýš¸Kæ'ƒÏá1<PöéUc[8'ò›þÚ@}/d0\§Õ_z[ŽSCÞW§Åpxžç/Ç=”àåE[¤uk[ߘÄÂÑK>ŒÖßmê\+e×\Y6àGîÜ£öëì”LÆ\>ŸãG'Qe,T³]:±åŸ<ˆ7ñ\UÝÇ‚fçEKÜhì÷ŒÈ´)\bža½¤LŠºÖ…ûób\v=vQ 0"^ñëGŸ¥JÂRî\yqõÎKfB[«§Ü#æ N…Ê\¬ÉÍu^B¯Y΄/A豈Ï\°¬¸C·d0„÷Kg]}Ì\» —¯:¬Ç(i ØžÎ;\Ç`°ËB*Š›3èˆÔý¡[\î3C^_™è¼â€p‚·\wBìè]Œ›)Ïþ³ÜÓˆ¬R‡Ex']ïÿe¦äÍ !Ù¼« ²† .Þ]þ.÷.ÔÚ c¨`ÒðQ‘>&cG^pkD%åd# áÆN©ÖršD߃^`¥¶5Ý\ þ/?šÅ¸R^Õ¹‚à5úb¨ó,dýi#^-)»]Bø¾J옔ïsÜßÄ^͟¢Þ Q"ËHx—¤76^ß+|—¢õ=qkaÐòàS£Fý%_)Uçòáÿ¿.a¸/%9ÿ[Úäp2_@ sOfJS{*·¸^8º _K~K¼=C6üÆ><¹_}Ø*-KL^ÓO÷Úàïø¦ê_Š`©š¨_y€É­®ƒ6a_žü'IÜ'oŠÒõ†¥q:%lÀi_§úë ‘JAß_‹Q\ø¯u´_¬ö_±Úx^Sw¿j–Np0°D_É"~àú§byŒ%Æs'k´å·_܈“‘¤$Bþ¸ûåý¿©taÚ‡À`ôKš‘-Ù—¯„½Ó[Xb°`Ré§ps ùÒZ÷§°ˆcä—`ƒÓ¿ŸÃâÏåò²yã­øYcˆ`ÉnÔãÜÇÌ}ð€(Ï«ÔÁüçl`ÓÀ¿z-C,ýEµ ýZq ¢¤`ß~dADý%cñ–ªÅóʼn$Ü`ævór#£uô ñê ꌺÁ`ðpP¶¸D„å$ý%è±ËOg·6a!º±¤_˜Ñ<Ö[8¥²ät5¸¢a(M•0y³Ýã­¶µ½ê³Ï®aO_ë7¹ÌøB<ìšãŽå5R;a¤ýä–ˆ{NÌ¥Ó–>Cù…·âa­¯Ú€1U •» Ä1J-ãÖ%aËãîÒ×YÂá¿1íLZØbaØ…ˆ4_ k}WY.I~üKZb_ùOžI€pM¶Æ ÊsûE—q–e“‹;íá“amÒÙoßmC6ée²Y5Þ49KØVˆ 'ÍÖÈufmzŒÓg«ŸÉb<7‡\Þ“f¸ëVš]]»V{ÃD?¾*¿gÆLPßf2Õ30†S%ŽgÖGä3Ÿ .·.û¶Š—÷ƒ pgM³÷ø+ÞH‰Ö˜dÔ¢€6ógYèou4sXå,ŸüÖ¬½L´€½ŽgqÝBsÛ¡` 5\çæª!ìg„¼”øe)ü€ÓHIÏg›¹<ºà¸¦l¡,Ò’>â|¬gñ•ùÐþ½q•ŽB ,“Š{ˆNh"eR®¥2ú\L.øëEÄ‚…›¿h/NE@„ñ7p~ÉÊß•e9o9hŸ¿¹y#x€êß]{݉{iËùóì²Íìu4×r£…‡³L‡%iU»ùšðƒµ»1r-=‹æ•ni}áí…Y¢h–ο\sHÃÜi²A +¾åÿÈ7"TŽ£^WZžè‡i¸UñE|`>Ääò,PX®iÕð‚¥´\Õ×ç?NDˆ\iñز< ‚;‚47Š tØf¢Kj'œ²±Ÿ 58´~6M!ºq öj°‹p}A $IW^­åe÷€j½——IÈɘ#ŸÇ¼øÇ÷I¾ÐjÚz¦®&:ÙU5k™s%%xg€£kFň~µù„'«ÁH¸#ü”ßúkVàÏÚÚŠ¿?Ñ“Õ|™VLkv-.³V°³Ü&2¼Ö qÐ6tk•œÄP³ÎpÏ ôà'\î=¬ÛDmlà+<¯Ü•—Q~Ü(E<£B°Ál|èm™5ã†JÛAx܇ÝïflÀru\ÖˆÙÌ2‹%'•XŸQlýž¿;¸úù hÍ/ž\Emp¡Ä9û$VŒçŒv´PÔ¤m–ÍÔ´$+Ï=ÿ6ësЬµËmÝœ«°‚\I„¼zƒ]1”(€2mõ œÇûÍ0Œ:óÖßæNNDÏnÎ)·1ŠpH€òvº±'Bf^n…ü£ˆrIeÁúˆ|×Wª“n Ýà¶0Á´P2|¨êý¼Yn"¸á´&¯üÕD´‡¡WLQ?yXn0LÀu6¼TvõÐÌ  HFïÃnu:å=J’ÜkÚ^£qæ]×3ënƒ-£;îeñSŠ€;&ÓÒv¤Kn½8s¨ÉšhÏÙÞr!ñnÊÙQ®zÿ ›…òzÚÝuš Gnã„ê¡ÛVb½LÕÚN;¹Hn÷D\µöyó|õ»øêãêo0_ò…û±Dá¸M˜a*¹oK·/QÿŒ|ûå1ûù+ «Ìo±g—ËÖ·qú#·Wv9€C2êoàìP[Nb]ØB'‹Få\9Bp@s›_„ZY-½n?5ê¿cpyÅ,;Ò¨.(“h)F–krpƒÝs~{ûw[öàè?v³Ë¼†pÏJ!yDãÁ“ßq/›þ'n Æpê*Äž ã‘ò‘œ=¥éIÜpô@„†LˆHª€ Ï`|b~S0`pþ…×Û祛©Öiü±–†q 2¨™Ì›jШeE“g¬ ËW q1£æÄNOi¿J3 Ú5ñ«Ø.—çi]ñ.VIä•5qÀä5Eòê1Õi*š5²¿ qã Ñ“¯&±?ü ÛÔ×­àuÑqÜøQ‚ ƒË—ZÇðŽk§,^qóÌxxLj8@b³Âõ„7ÞÄ‚q÷YSäŒêù©-‹m¨‰•¬rñÔ<¾ã9D±±…R¬´É0ßr#=Y3PBFÚ‰ õ—'^ÍüGJrÝ ™Æé·p²{_|OGœ M‹:rç‹q=<|Fê±úì»ëq;ÚŽ·sbæâ¢?â½1´3$LµD¾{±)©snc˜'yûUýøbY8s‡fÝŠíÕ!óö¿ÓC¶ÞZ,›PsŒžÂaÊUR¡\¸•Ü¥ŠÎxâs£µ)Q9úû\T@¡Ó‰º s¤¤Àj¿öªÔjvIù˜"C­sâ¬T%ù êŽ1m) cU·&7QsãèÖ™;úŒõ WÛÒÁ{¹f½tûY\¬ {€”}2°ª2–rþtÝ"`8A©Y4…£gûòWOƒt&B1bºKî#_+6Òaqœt(ŽXÂÝ%ØŽ5\@¿¸çÍ”{ãt©Q ï] „ÑúZ‚y2‡K'@tÞpëf¿q¥J’ͦ3Ÿ\[„Štû Vlˆxà–9[Œ1ë¯ÝŽu ©óùàz™ÄÄ‘ûZ´å~u)¶‚i.Po^@ÊþÖç' ®¬5ufŽóà£å!³/}óçï{ÚuÏ/8}Àöÿ`LŸTÅeÚèÚu¥ÛÐܸUæ´–n÷«6ƒ0uÔ ŽÅÕdª})ŒX Ï:à,Lv5:èMW=I¬—WQOI-ƺåMãv¼0~úÐR Û—©ƒà …­Ç½vÔm•Ú±© £õy"‚ÀçƒvïÚØ^>B;Ç^bɳ<†¨°ùæYvý¹ƒ:ÎÊéÇ5ÝÆÃÈ;OŠw(ùoZ$?¸—å쿃F’ ;wB£UðÝSõ™¼'XÚ‰yŠ¡]wQñ,³‘u`+¶-(²ž\Á5wRèÒ®-?Dï"Yc(¨Z~wk‹©#;€×ǽ_:@-3ÎRþw†BS\œnbÑ]8éêdÑ)ýwÂ镸‹›1Ú†ÂÝ=›^ŸT}Öx ª+ß—´Ã«:KüLïk(0Õx6ñØ×`g˜è° ±—‹ïxRÍ)(ç!uãW|®kõ/$öxe¼­‡sÜ÷’¹÷õq+bëŸx¬]ÖX.*@úØXÄ{ÇŽÒ‡Jx³X4jÜ›€¡p¨¤Ž„ÅrÝxÜ*ÜO¬óÙb˜¤”·ƒ$a‚Kxø\2qYörUè˜õa§´ã†¬yŸˆª‚8M™UÿÕ´ìïüAñ ±y±ã:¤Ü»Zÿ¡²¼›ê÷%¡šÙ\yèeÅùÎréÏj”r¶Y-ÿ.ÎøzN•¯Þ~”g|ÓÏ0EQÊÄ`zq¡Ò¥ì†9P2¬Û¤TdZzƒ¢ÍEü0L«ÏðÙyÌ1YÒ×Ýz¬aÊçãŒÙ™!ºâ/e‹@á~zßÖj>ž9V‡T$“z8;ÉHò{{%ðK™`7ÐW NIf0 ôJ<{2Š!¿’j½í®˜~ઇ{:¸.žÈȃÑ)HN}Î?9â{HÃPšÚ‡1·Á[àåØ8uŽ{`þ,û+ØYqa$tîÉL´{r“œç„Ñå«Â¤å„I,wÕ{œ4žü.¸û½íù‰'}1Ø#`Ã{ºu‡ô·iæ´™wñËA<:¶Å|áT€Yç E0b¢#öü’|Þ}v?+³íü ®yѳ|-D˜çÀÜÆéKðJ¶TŸSô*´|F’ët3}ýÍ©Ïúåú+¶ÿr¨©|T+¦ŽçùÍ%[ð²­›8Q6™|Ë¡g¤ÿ©WMb‘F$ço?´}JSug‘@3³èô¤Y¾ãÍ}:­8œ½ð“LÕWp+äð“kŒ¢}/ÆØ ëf¾®Ã†»o̘Ê}£ Á×™Kά¼` ur·–= }Ê|!ô SLµj’±0ìeÑŒîâ}Ì¡‚Uô38_×i–ªo¼‹ÿ~¾ÅÌ™²½eÒ}#>ð[~“¥…ƒ Z³M·Üµ¹‘ˆJlì ¡^mÐós÷+£“ô6³-:7'"1áµØs$›ÙêN^}ºÎ0oààY¼’ ϯ&e¾OM>»† ½1û 4¨(ÓqßÊà_þ2¥A¾ œÎÛŠI5Kj½)~÷šȦ­uÞéªhëCzàE\[Ÿ^€«gÓ|»9q’ë3„ETåꀲÏÉ+›_å‹-ˆ&†ë¸×*a–€¿6{þÐbr+·ÓÂâŒ,I9^—PÇÜp³/¥uKžÉ^Óð…Õð ”Týé¯:ŒÛ7§¢<"†µRd!E¨Eãìßçé²Ïg°ÇˆCЋv88.©ƒM‘ŒÓMál#GˆP•rŽî²õâ‡]ÎT éˆ\¿>},Ï|m–¢ªÜ> Õ*ˆiÞ!nv.9ž¾àÆ0LùˆÕ··ˆËk…ÞH¡)“]hÊNŽ5ˆÍKìe±8L_%cͱgÉSî c ˆÏZË0àw€Ón»Fù¥ª[ˆß䢥úcP!w¢çEýoFGs‰fj5íÇ?´nè…Ž.1Ý»ù‰p‡Ð—‚/²Æ„íáWŸšÒß’4Q‰•ø8Ÿô 5…ÛYLöuqb‰ *‰¾u,B”*ÜäZ¡á×õÞ)ÔêŠKºcžtŸ ÉUie½ŠXêmŠ\œ§µt«DŸ©†$vÆ9†ŠÚ¿6/ÐÓyyÔUzâ\Á›+Šß­™[^RE†Ï&Ôkµ¶¢ªššŠ÷©Ã‰d(ÕËÍ<ž;ŒåfÕ‹°d5b<Ã+´Î.ó1&/‹‹'àVÁ¾ú,VyËxc£(éñ‹4Cfóƒ|SÊ5ž}Bå¶:ëÀJ‹w\0™þŸáRS†ºzà‰nÐЋƒ%!õˆ \.×GCVèj Î ‚‹ÚÒ ÄmˆÝËÖ` SÙlŸZGŒ‹æ1deð£rÉöh‰œÓ„ÂAwî ‹óélìU7×LÕWÖ_¹¸*¬‹ù¯èNíÏE™Y>ä Ž×KbŒЦ/zMhTæø7üÃù·{лŒ¢ìÈ+ý*«ë^»h¿ Œ.—Ô¨…âÒª­Þ/sK|ˆî jªŒg<¹ƒ/mvÁ¿h8Ž@&Œ|8cäŠÀøÎs ýx,W¸ÖöŒ°€8]K€¶×ÏýñD«¿º<¢‘Î.NÇ–ˆ^6´ !²§g{kz…D‡pªÛþM¸å!Ð-3änͰ+´ëÄ'˜YãÄ)‚hè ;鯜KN£eõ²C«ó¼`J…ic¿ãnozïЀ@Ð) Ézþâ…sãaâë"©äSæübèÀwH–±}W“Ìiºè߇í¤{ôDPT“ d.$|ÐÍ­NTáVóÅG‚sÛ“~5•Dñ c‚èW8×´-g—Èâ [›©›“yÞŒèˆÁsß ÔìœÍP´ 5“ŸÖ÷=À*úŠÕ\Ôx—IîÖßd“µjB ×j†'¶#«ûþýž“”—È£Ê#åÚO@ì×g‘$4”‰ é·¦[šAI7P”WÐJ½û”¼$çØ†¥œgò@«I¿ékŒ”5V!r…ž«ß§¤aKbn×Ò”\œ-z—–ç¤õÂJ ‡-‹”ÐÉih5?æÌ9›!Ø0(ÂY”äKj´È¥1SW|Ù7%6KŠz«•D$Hm@ x–›Ê‘{œ}œ¦±•\ û ¬µðÏ€Nøq“°]mŠ•cR§§cÕK6ägì:¡‘=ûE=•£x1)¤C¤‡Ö%¢³yâ[•±Ôo=~¹;AÊhÏËCüÝ•±ºü¡ £›¾_žÔE¨ ù6Ú•ÖÂòSΕ–K£Þ¹¦ˆFö•Ý=õ¤ÄUÑl-¯®P¶ÄËØ½Ä•ÝÁÙ…>?;vµ;¥i¹+ät?–`t›ä,àÌH…·º§ñG*–˜ðÁ§·ž¹°ÀË ªׇ2–2¥+î7Ý} ÉlWBNê‡Ýs–?㜼dH"s™Z©9•,S£E¢–{8wb—É:p *ÚÀcS»—ŽV<†UåÀ,_ ¦Õ\¼—Rîwå ]ŠÂë­“ú.‡áˆE—k³ÇPŸ¨î¥ 䑸 qZ—zàpZ‹Õ¤Cåïˆc½”¿s——»AжZ2HäІDx³OþÄ—æ©Tál);jÅ ÕU²ƒ²ŠK;—ïáüßÎÕ±ulìÜ«b"Ö›íC—ò¿31j¦uø¶’¤üF¿Þ˜ Üx­v„œU1¹(âÁÓ ž]˜µ§ÓBv+oK§Ç°´@khwV˜m3õÛ‰ÔuHT£•1®SÍŠ˜žþÕ0Êœþc1Žh_B¾‚´Þ$ô˜à–'*l^À_ÜXgRI;,U’™qˆ°>‰ë@·Å­ Éð”™ìRy~•‹,€c³ŸÆÑù ¬1™7òô+9ª1Ñ+˜Ë &†t‚MÖ¹™IÝ‹Ém×…;ÂÊÍ—"v‘™”Ôjf)‘КYÅ’ÌMWéÒß™¼ŠhD˜S{{èúÊ!(è 9ašù º—g-œéùó¼³a®uüvšÊq Šecóɇ¢yXý«š-6N°8‹ŒÐó$>¤—ÖFmJš\Ùëð™u:«zô[Lµt¦Ú&'ךp)£ô AÕ¶ å‘!SÛÙžüo>šp™%õÀ_X¶BŒ Å–%^š‹ë³Zd=p1ñŠaÏ g±š–†ë俉d¿”“"¤&dß;šÝ›¨¦tfHBe–‡ÚÃ7aËWšòb.1” ËÐ…tÀ×wžíÊï+›± 6‡ÆkLA¨ ê §ˆ-› È´1¸mP!IeøÓ¤K›5t?XöjÞù}ø†º”ýë)›?‘-Zh"oÅUWAŠº%ízq›€JÁhz¶ñ°œ_Ø™:›Ÿö¢(¿v7 Àx`ôY#›ªÖuR7=U¦8þ¢±ßhæ›­×bÍ8½¾SÆ45í;›ëOvü²#¿˜t}?£AÉ`Z ›û× Д?t`ªéìîj¿úˆõœœM9Í4A¥ÂJ6‰`ÖÈ Ã'œ£Û"ÞrS65¡Ê€¨êÏk­lµœ¤ÂZWò¡,.£6}B׆ÆñZëµsjÒ}ñ¨Ý,¢‡šfÑ$l9®>8B¢0D”¡?yhl DH†BÅ®rmïÎáˆÙØN°æ|Zš›áPÚzæa%Q%¤†aÑû¼p}´®ÁV$:,»d€q‘6™Ç—\—ËR‚¬3NÞs¸ÌjW¸††Ê'«KžNZ:.â| ‡V AôÕPTçoža'˶C]âÄó ùýЮɞ|áÔ^íÞY[æ]ùIøì¤DhŒžµ}ê*~ ‘xSÃqÆ -[ žº±Ê|QÜüZÐ.ê)A(ì!»¤žÓ¿}ÜvÐDê¼7"öjð1ØŸ#Z²9Mä‹:S.fëça÷Û.ŸggÁjÚµÍBñÌ)Ûá¡§ÉŸ­S‹y|R˜òÚÂí·‹%pè ŸËrMzÖ6=Ù¯Z™éØíëAŸùè¶#-Þš +Æ‚aØ4Öž xb>Rµ ƒßÕ< ŸÞIõ r-zÑêv‡tÁÉ£Bô ¨k H¼0 ‹äàòu0*ø†ÆI¸á N„Ë)9­ˆ³KOå :¶°„_  V,Aý8oâÿcÆ9Êwb- œÁäþ3Q}Š—_v-¤°A´2 £Ìaycbk°—ÕTPx68XÀÏîÆZ¡F8BôPKÀUÆ%J¨¿Wµëx¡GD þùÙx¿Ëvb£úž*¡gd¿Ráh´ ·º©ª:Oåö¡}\::´#ÍyþЉ£¿GY¢[Z¡÷Î錎’G¬ÑˆÆ‘c‡²#îí¢8YZ߀þ…VXÏtÈ6ù “°]¢mh ƒ”–˜^õE'Á¨hÄÕj¢„ªã@ÒyyMY›Á T2¢‡Fêýëh]­à­HÐNô“G}¢õg©{,%èÎúlTŒP©SLŒV£»Ó€ÇHÙ?ï<¬Žh¹*mÕ£О@F¿RËʪÕ…tÛSÍR£#èTfñφ¤ !¯%Ôí¯£B~A…gîPz¼ü€›†¨Ù9†\£IŽ+ww‡qu’6Cï·5z£lGÅR=^Æ {Zâ—×d¨­Gš£zæ3axœF¹ZççGN{°@£¢:eï8ýU¢RÞƒô=/ãá¤"—í$¾Ë³&#°´¯ *¡ƒá`©¤E8? :W¯òxÇœ8ûBhç¤TXž™ûÝr~øM¤èúÐâÆ =‰P~òpÜÀOÆ!¥dÍÝÔæ€•ø«Žñû“7X¥,~blCØÝ›²Ëfþ*÷Yó÷¥D—plÝ¿D”H½(ÝÕû.¥PŒ3Í“ƒ”Èò‰5Àæ;’Ûà‚¥Pù–Å©X0ŸV‚†)ók¨Í¥i ¸KSPsyíQV¬iÃç׋¥‚ÈS¼«8áuÛª¡çú±Ž2¥†0VIõìQ„øTÈö.ß]‰”š€¥–+XvÐÂïs'0èÆ<éÓ¦5ó™53êõvĉf w ^^"¦%d+«Jàž0ËÈ%ׄ¬ç¦=wý‰^£ ”a¼{ÀŒ—2c‰¦Ñ§Kè °ŒŽT.5릞^*ïèá÷û³:P'úÞÐ+¦ÂSJyÿRØ51À[uuÉ-3Ï«§ïá4O=f"§ž~÷®ÑœˆFDn§*Æ Ð*ÖïyŽl±ÓpQg§*ÎÛ÷œ Ë*ñjÁ ŽË¨3‡˜§UsûPcþ¾“´dyþËïü06§Vº,XE-­Ø¯ÌpIÀö§f¯H¯ãÂþÊîLª>ârXÍŽ‘h§rmÉWŸrñ/ÅwTù 'ÆU§•›¦ʬ¨º6CÁC³«‰ÌK  §¸è³®¯Ú_ŸŸrÂR˜b§ÂPì—!Ãí*o²MáCš^¨?¾âš¬´Ï›ì«E–Iq‚ôê¨QÝÜ™8>¹UÙØ/Ú¢nÏ‘S¨xpP›fqBðœöR³˜:k¨ºÈÍ@åýêóüŒ?¦ü¨Ú¨<«;Ã3oýÚPîj¹}Ëá}d¨öv%rùGßLÆ8ü”K$qô© ½Ãj@R?>  ÿnÑ4èΩ~â?`4왕OèË\ݬä¸IŸ©g¦ã;%¬Å¼Øø®îBË}©’;n|%êà÷¯œÈ ÅŸ1'Ⱥ©˜0Ý3zeeQ“ÒŒ€¬Ÿ^¹ª Èú sÕ ùe‰.€…ñ^yWgª-/äè¦í­ÌEæOâ³?ª.ry¯Ü?ŒJŽÏ¡¯¢ARúŠÿªXöŽø·9u©ñìÆâ"/ª€¾1-»ÔÙüÇk8¸ÉÂLRíª§è9ð@®+mo=Û”N­Ç‘0ª³i‹cÄó–ü&3ÿ¥:ªç;'P?´»ÄãÜú 9Ó“BF«&)4盎‘‡~¥ßæÊ)Þ«zkAT6‚l1Ð’`>@ÔÏ?6›O«Š•w÷SÚ‚KLG‘Š­Iɸ«ïo/Ç5OhDw –Äøˆv×4ö¬ ]èÊdò:19è„,æ¬NHÏûJ¢ÓÌf¸\š.kcÝݬ~dVf¢ÕvX­Aé¹ôI`´O¬³›hF§W³——¢_¦ÑôO¡²¬Ù–œ|¼äxKL)Cg5ïvû¬Ú“oÓt„ìiv‘Wô>ÙÌŠ£]¬àŠY»@’0¼×°ñÑŒG‰Öã­¸á%¶ 3LâÊgî– M[,÷­ Mz¸ó |ãhrnr%x4ÿ/%­/’ŽŸí1»¤m(@îž±ÓçxÔ­\æHW: *Ïý¨ïjå 0­wÂä'_9‰-õÓLÈüú`ß֭𢶠Àµ2kgzd…"h€b®ÐÔÆ ÀK ¿¸GìºÜ:®~¥ˆ|œ„"àL¥žIép@q®ƒ]ÊO¥;Œ_pÃ;›ì£BIÚt®%Q—Þ˜ÅÃü`ðîÝZº‡55®*Õ4Ϋ”0¦#´ÆÂFÞ 9®;Ú8Zg¨ày2Ott'ß´ì/®C Lµßk7–//6 á&õ®_z*méÔ‰ž©Èuüþ°*8U®•#áû²_k›Àúä± “µY=™®­ð-€Æ»cf³ ÃzØ©¢XØš®ÖÓ'ÖˆJëeÀoðmÔU%K®ÙŠ®°nàâêñ¾h{Q«Xp…¯úÿ›8ð"Ñ·9¬òÐ`ü^¯?ïu¶¹ªÑz_ÓµÙÑÏÖØH¯B?Ë O¦c³z¶äýg6“,0¯°z^\Þañ2‡DPãÖ®ª‘¯Û–Á囤;;ŒÆç;Áü_‹±iǰ>SÛd¢®— œñ­öf–ÿu6°d8Ž Þ¨m}o¦0²s椗Q`°pEÌ("Z;Iï¾¶¹XËá°ÖГÃ(¼F„«ùêü°¦!¥>ŽÙ§ža;T‰šþ=l°ªT¯Mý…÷µÓz0Ðâé°Á…”SE_PÕÁ|JëäO#°É!/£˜›]ø}ÂФ¾0Þ´°ÒëôiÀš>µ-À#}Û-9£[°òHÝ¡xÄq‰ )~‚çãÙ®Ûõ±v«ÙÆ%VÞX´3ïÙ)ü+ʱƒ–‡ì_/(ÎGԄ𔘋ç`±7¢ÆöÌôÆÑl"€'C*£ݱ@ô;¸8TŒHAt`eIÖŒÌbn±`°R6hD˜¯-­áæj¶Ö‡Ó±kèÓÙ1zÇ>”.ú&M© ™±{Ð\Úh¸ym¹î“<ÛÚã(ý±²,gè͇E²ˆ¹ZCéž|«?±ÑÄío†Fõiã7edmzMm¤÷xs̵[rã†Îºµ7ìôˆ%ÇF²µtŸ(NìØËWrÍü?µ»·È²ÙÛ÷#·5"ò=FƒS ̶0Wö¤Eä_AC95å°¶J…Ǫ8zj Žô5ãLùÿ\R·?S!^İ˧PêmD蟼²ÕÄ·sÚ\ŸP¹Þ®1Z.Öš­¶Ù¸r ë"ú?œ—”®«=Šì®¸„Á.žkJŠ~3Ö¸í‹-¸ÐÛx]®o sš¸çá ².“Ÿ).Í^#v©ºã»uxò“÷{¸ˆÝ«jÉ“ˆ þg£‰§”öÙª>¸‘úú¤vbøö%Hõ«>uwçv¸ŸÁ  Þö?›°LɈ9™+°ªÉ¸ÉÎ$ÛıÚxº›¾æ"µ¨s¹%Ô‘õ·¢.H8W&Sdê\a=í¹ž¢žRý¨¾¢ßðw@–pǧ:¹ÉOʽ…ÿ ;²ïà5ŠÑaõ°¸¹*a,YxrócÄõ>݇X+âͱ¹2Á\’D¾ø>UÔ^3ó+`ë¹9Ž!­¡aþÐL˜‹%-ù²îv¹w7¿ÿ .©cÑ@EÒ®kB 5úz¹Ø£šÒì¬Ô˜Ûø«É¹Ùøz%ž¾ ¿hLçÿÄ·¹ýÇ4ÐÊ¡ÄÝ¥Ñð8nv¥ŠUº +‹”ªä¦UA¶å¿a¼Õ¥Yº' –]Nl¢ŒZ‰ž–ñ}çK*‚º(tVìR—9ʨÁ—ÛS%úÏüº/û={n‡–‰hRv®2šéIB ºRêiï#ï†)z¬êd¨HÅ#ëºZ=xsê |¸¯—4!¹jº…ë«$Ý4ßzDÕ {{tCöõ²©º™fë?Dª§)ž*¸Ž+Sͺ®:IûǨ⠂Xªƒå5bh õºèäê4 Ã{~¾Nš\›çHÕÈä»=›P@’‘HöØxwctg¢™%»Ér Wß÷^Ns¾è]çäv¼"^irlîðˆÉýÇ X ¦X¼%='áO+Î)½&—ÑBdD–Ǽ1óe,îO{|1ê·†­ì hV¼4Euæ>ƒJäçÊÊ€ÊY¼EDpÌއ)íÂokË‘¼B¼\~âÊͦðê*êŠÁåëJŽç¼qà Õ¶¢ý#ÜŒ'|(X'/ì|¼€îüº%ðÎú@+6ö:‰R༑õY½_’Á¨ÁÍ<Ìía#l¼ÖÓ‡,¤¡ÞÁY ^nBLƒ”§Ø¼÷’Q(8ãëø]fšBùc›Süêö½äUܯ'm–Vó/:1Õ½P&ˆG€3\òùt¸ˆ'o×½jSè'€ %‹RScúÓAU½“ªO%b¶á©ž;Jë•" r-½îhì!ZeÎ-.=Ì5§ –ø›½ñuô#åþŠ.ÐPµ]f‡&\¯¾$„ ø,[<ÊnÌ(#´©ElNÛ™¾K±¼ZjmætTôîÄÑŠ×оYå ò²‹7NkÿPÄ=Jľt„².A¼¢7üp>ž/å )¾Ÿ’˜ý^ iÄÿ¢š>ÀÒ #¾¦‰!Þ¢fÛ]ý®í³¾¹Óê‘‘ˆyåugÊtÅÉ7­%ξÑ×~¹¤A“ntvÿ~X5A¾Ø%í¬lZ“ôž Nl›RÎÇX¿%eÓìÏF‘ï‰e’UZ‰•êîÚ¿X¯+t9r´w©äé}WòI°|?¿–|ú”ñõ¬‰L»„”*j•WÉù¿‚û/œ{¸å"uƒ\&E@¿£ûðäÀøC½W@W)µŽ’˜Wm+NâÂ;Á1½9´q(Ãü=S–ÓË*é„ÁiÔ3õYpP$mÝ^†Nr~öÁmæAªXàåÀyûég7/ÌÁ,늰¢ÌÒuPfÊâ€Æ¦Á”f$¦ ½ºöü"èǦ°NªÁÕwNrW ä!LÄrœÏôFßÁïyˆA¯°˜xì;m4Ýæ¼ÂôÒgâó¢åQ*ZøvhÒíÂñ\øÔ c/ˆ5\órÞtNÂ$jOLx(ÏÄ#ŠTÏ}ƒÄô!Â1Ì…ÕO£†Âœ2¢‘«p©îO„­Òp¹Åå€Â‘®`ö 5 µÝ‡úVþ¢¼ûs]dSAH%6‰ ²7îéäÈ’‚­_˜Ãa®gèeÂùT‹( ê2Ä]üWÂÎ!z«Ì?Œ~å”bv>Uc–yâVÂû•åÓá/8Æì8<¹“n:ì¨Ãdàͧû?kËÄ~÷B¶›Ë­ÃÒöEkN`tàƒHY¸+MÁ°î2Ãç@ÿ'öTõo÷FdzÆþéÄ€ãàêïä"“–= À RÎ=`ÄDàqržkÃÛ' hâ=‡ê²gĤëz°>@´íQÓvÚ¥ÁO!Ä·Þs×Âáj»MdN¦¢õþPRÄÕÌ?²ÿ–Ý Z¶p;sÈrùÅXÖèÑ3-Ï6¤?RÂAйÅ{²÷jŒ”È-ª‰/AVÛáU‘nÅñ©lÈ4›ïl~y‘Õߨñ9Æa0Îÿzž±Ù85b îL$ÆMF·ë'çT ã|"üóµºëÕÆÉu¼¡¦#êº|ñÄÔÞiÔ®ÇÅÈ üÌa66Épµ–ÞRÇc"ÖÚäòb;¢ûÅ!½ƒJ§Ç‚q¼ØM«ÿ®n)ÕÂ'’ÿw[ÇÆMÍíS¾$Þ?ú±Ãÿµû³SxÇô÷F‚㨌}vÛH¦Ë§ÑAÈ|Ž¥ø@ÜOPÜwƒ{ëª7¶ȧ—!¥è}$5 dVÞ¯oÂãȶ3EŠ› äµàbþtZy/YµšÊ,ân2‘«³pƒ‘Öâ\†ñýHRÊ1XMw³.[n¹ÔR&ÆŸLûÊ„’ÒC0Ò ’a8í{íC¯kPóʆ}.Õú¡H)Sr#À’°*0ÊŽzèSí%ÁñÑ€¶Bf:!öÆÊœøú¡£µ O+…”\nzÊŸÿØ8ìY›T왌¬­•VF¯Ê®X°Á©/eˆmÀÖAþF™Ç_šËÇó¢8d]x áÇûJ!‡JË5xaÅÕŠOŸ'V\¥6>ÔÄSzËioUòºp Ÿk•"opûj›ŸÉ²Ëoöô)ÊÂÒS½wïã?A˲½_âRíÒ ¯¶s—–ôF ±ŸËµcлP)F¼™ú®ÉéV[väÓ˾b“ý±9¹‡¹×Á›Ïœ ê‹ÌÖ ¬‰hç7÷Ã\±;¸ ÚWÍL.¤³àø–¦ôY`0¹«…·®ÏÍ""ü,à…¨8´…p­Ë…)ÍIm•tÑØ¯Þk‘5E½·ü¾ýÍJasÑ!Ÿ³¸ÖôÔ`*IßÏÐÊÍ^E‰D'7KGØïšÌõp,¬6ñÍx¾í°RV@ Ã!y–ºàE@B/ͨ°¦)Pu`.ÔU…ó»b¨)+ÍÌjô·Qâš%=mYÓ%=éUÍÐí1@Þš;¯8ìó€aˆŒzÎŽ—“”Ù ê+¹"3t¹­ÞÎ~5EU¦H €p%ê¥hÎKW¡#kI]¥Å(¯%… ,[ÎY¥D–ã’q|W.½R&.{`Îl4"ºÞn#‰à† ØYŸŸlj.Î"@çdŽáXö•¿ÏÈQ§žš”Ï p»HQ›aLÑ~f ¤¸iŽåÏ29éÁ¸‚«@Lÿ‹ö¤jæ<‘ÏHÔ»¯¶N(è ó;h@ÓéÏNqwQ(«îëäe„¬â¬ÖÒJíχ’‰ö)þ«èØðμ©û%i'jÏÚ4†nC,þ°ØáSfÚøËõMÐ;âL83Øýñ¾‹¹¤ß¢ÈÐVZ¯x¯U"÷]¹¤ËÂmRâØÐ• rsë ‚Jc f×;öŒ„ÄÑ(*,àv·áæ!±‡ˆ ôûîòõÑ2Ýugq€ŠÓ/믊,›+`Ü=ÑWð‚;Ì’ä¹Þç‰ MrÑisŸÇO©ƒfÛ˜ÊÌa ʼ½Ñ}8ãÕBH  QÍ~èÿd‹ ûÑ‹@xÏA Š}:ƒï¼-u”ÛÑ WÔ™Gɲ}›bd€È„óÑgѲr˜º ùQ–˜¡d㢂РmMÑófWóërÄòÇgøqŠ„ŠzÑô%nS%‡— ”õ±6¯Pt²@­áÑùõ‹Ñ¬BiŽ{µû4ü¸pÒf?Äð@€fÍúÎ"†åóÜ®Òiœþî2òÂB=Í·ë›…ñ¢òªÒu“ÁâGŽJ°òD— NQyã´Ò•\ÄΖtÚzŽþ"¡ëʬwÒ«e `3r>kéG'È‘1KòcÒЇ/òþ;‰Y¢ØÈW ÓìÓUÒñÑ|ãb”’üÖž2çÅGåÃÎÒôo9å 5(âÞoj™Ó.?Ÿ@Á™ÁV•ó'ñ^³d!ÓÎ f«©<÷ÍakR£6²²–ËUÓ×1@®F¯¨¨ølC7§÷ânÏÓà39°³Œcm(è¾ø·ðbtÁÓè™ý͇©µÊ‹©—ª{ÉÖ¹ê¡ÓòÞÍõ:áVyµVb©[¡StE“Ô$a¶jþžâÊZ¹v‰ÃÂ{Ô4,ÊVËê‡çÂÝf'òan Uì Ô<ö®:ñ±.1•}}½ÃF=ÉH-Ôwšhc8(|]ý•逪e}dÔ¦;·^».zbcF]#Ž¡çÌÂÔ´[äö¥©µÓäB¢o[Ìa¡ëÔµ ݇î-ˆÑ¤Z·/`š6s¥Ô¶™öš®%õßÌó!­—gf×s¬ÔÊe0PW˜€ì¡Hƒa*‚–¸Õv#¼C“cÆ1êx=hÿñHzÕ¤eñ ƒ²¯[Â7’6*‚ÃI›Õ¾Adˆƒ ©sÈý}1éEmÔÕïƒSgý/ÏáœTE©>ÝìÕܽR´ô2þ?=±á °ZRˆÖã|=Ͳ¯§Ø_Ûù2îÊñõÖ(MÚìµ?@¸Šº¥omÀJ©Ö?˜ûCÖ¾z œ‹ÖÚ`ùõ¯£ÖIŠ­2ãJ~=éšêò/´= ýâLÖgÒ^Îã7Ý0á`ré¹`€Ã?/ùÖmÔf%E´¡ñ' v` ÙÇA 7Ör‹lX)©‚Àµj¹ró÷l]Öx8ÂSoëgŠ)ôÑrPŸÖ‹šuÚP*U?"(ùƒ]K-¾ÚçÖ›œC^ëÚÁ¡¢E¤o$‡`ÖåÛHÊÑàk XîeŽ8ÔóµÕÖ÷½y×€;ĤSdíÞmCé’×8?>)(•ûNRUó]Æ /×DƒËý3Õl Î8;ÁqmÉ×Q+"‡Y¯Ëúå³\¶¢ßrmñׄ\àtÂÀMzÚ@n«]’í#M×¥5„߸Ô(k‹•skmPoIž×¦qè)ƒõ´¤‹åæGð¡ˆÞ¦õ×±.»$"1ÉíÂü9e4w¨_×þ8ÔÎcÙ £©Ò¶ÚB“|ØüŽb­Äyœ­¡y’t Ö@3«ØÕ Và¤ÀVg Ü”Îî§Ø3KZïWž¿ž·K þôÿ|Tضµ`ÂmøÍ%šrÂØ2ÚŽßŒËØÃ÷%$4Ò á=T„}Ú€ØÏ¾-«RœÏ ¬¬œNœÔÚˆèã›ÙOFL¢ÉªT}¹kԨݫÝÙ™y‹Ì™:#†IŽ,NõV-ÙK›0¼h£¸ÇvÿS#°ï¨% Ù‘ª}¿“h^Š¥¬ ²ñ]ëÙžæl®”•6“¿/R±q×iŒ‡Ù½‘o!¯ üCáj_€®ÿlÙì¸'}—[‰û¥¼pC?Ëh1nÚþÂ*%ŠQ¨›%çS²iÐý4ÚJ“N56¼ áµ~ûßwâ‚fI—Ú‚$ÍqXí¨U0€  ÿ<ÚÀcŽŠ *RžŽ=½káû°ç–_[ÚÈs³;áhÀ…¢Ò]aÝ&¡‚ÚàÂ)S¡ üqpγ=}U×ÛhVòúmÓ$¸ïm‰Þ͡ℊUÛ!vƕբÚÉöÛêžx’Û( v‘=ê~ºúvg—¨z ÛBÓìÙ˜©zÛ€Fˆ]Õ‡;ý­ÖÛ……x ÜfNçæˆ‚ë†Ù• ƒ°ÜÊÖbÍV¯œ HäøÓÉi·Üá>µ âÄðþ-Cchhù9f´Ý» w¡n‰ñ±y¶˜} ËcLt4Ý'A¤à³u¿0Åùõ>,4—\ð‹Ý~Ïû ss8·¹X!µo~/ý…ÝœÁÚücx¶Áø-Nž×ZÝØØàÊ\;9 ²d3¿f' #Æ!Ýüïñ‚Ù‘/­ðýŸ/I8}pÞÞj¬#=#à&¼Ù£»‹ÝÀ NîÞlíµuÛrn·nÞ3ô’ãâƒA‡UÞÉuÁk¹ÚÍQš¾ûÐìaªfÞÑ8i:«Î›|…ZÙßêØqðÞâ@Sb„"Eð¯"ß›kÇEôß ßÒ€E6ê6@Ÿ¥–8®À¬¤ß'Òq#ðAèõÖ£,Ap×AÐ=ßP¯hÄÖù O“QxŒ'JÝß^`Âü˜cÓ/w!|YA·À ˜ß‚ÔjÉ-4Ï‚`LÈ•Òljߪ|¸:Þñ‘Ó¼xµ1™ÑÂg‡ßäÒt‹ßk’¡FÇbEªéG݃Éßñ~ƒŠÎàZyCõú ûBEßüœÒsbUزîÑVñã¿ V´à?:µ7ÄK øàèS÷[Å?¤¼à9bý­cð7Ù5¶XÝ0¿2†:”eàXÀ®è¯!£û±Ä 6>ΙVàq"€ñv^åþ3¤DN<ÏSBà¶ß~t˜š _&YbÖ²C´±àè'‚28O}Èp©Ž"äC‚Óuj6àèÎÜñ¦ol†’ùé¹Ô)á)­V;w•xû „ž-¿s¸á`Ë0&_ÿR™›ƒÐm5ßòRá®>axK6´l4ùt߀-áÀ·>²úÀ·2ªçJfzo*ñìüáÈHAï&œÛüøÀïÎŒ€:ƒ.ß[áñZ0“‚`Õ/ÓB•L+DNÃ.áÿSX&ö5@âýÀöð‘ºÊ¼Ãâ©mBwƒv`ÍOâ)sÄ„‚âa»æ‡í‚M”5¹Š„›<˜³ân™Ù™£~âœr©lHŽ:¹È×VâŸ_G uE|Q‡ ¼3¤â «駨ýiœ´«ÉŒØ*Ïâ᱈ QmÆ.º ægWÕìgl¡ã§Zc’ÅOº5qðÁD)ÑõãR,…M=£µýÂÝBRûµ9èã•÷Xó1 ¨ s ™Â¯r“Jã÷x06cÌ,'æä—7ߨ"ìðñ*äç 7<#2v8asˆÁæ(äl"E·F¥8”Šž·ýBÿqùbä~¼› Ä' ¨Üv4¤Ô`}0XäҤɧ§ªà}>k•™PŸJ²¥äá\vŒð¼«–”ºf£MÞ8òäé&sÿÆUA£‘‡µÏÍŸÿÄõäîWà1¡ÉŽtᇭߗ°ÉbåË-P-ÒlÞÂp?ã˜\¥bÅåÇzTzPȺÔs†ë·y*íU¨å,G³Ë-~_´ú½ô™äåU@0MJeê ±[±'™˜¥¤TåƒÐë$_$<9<ü4™§ž‡¢ÄQåáƒ.Ûº7œ"3È=`—5Ê*]‚å⟵‚10 XG©2‘:¬_åýFuœ:ރ¾w^¯%C4°?²æ¿é~=Œ‰Ä©(o8ZøÀ†^æ+åÎy-³QÈ5¶ ¿¬o0âæ7«ó5µÈ'#övC¬9Q‚rÙæTÝ* f‰ýG*ÿ°‚op呿u…‚7Ïr”Àê+h‚Ÿ¾!ŒNæñ}¼C·`iÖ.\Jr⊲æûSÒXt#kK³½: ¼üç,¨åg<2 $Ÿ‹rˉÿ#l˜ç-ó^€ÈCüRÁGB,y¯ÕjÄçe,†Cí…dÿmö³öõ‰ß†•çssµŒq¤e º€@· YœØçt{´X•ñ&ßSA´öÙÍRçùl»ïá‘xøjÅË|¯_‘.wçá ¸‹2 «˜Ê¦LôŠ›?ØçùãH’×ÁþúFð„JÓg"i‰öèdnpž[ÉE±çQ‡.¥ ²G¢¹è!À®qc˜¾|ÊG3àÑÅ&¨èJ«¹ß›·ZªêÌWHrÀpŠ™‹è£E3ù{¬‘qg¦C(‹Çü·VèÂx“3·õÑ^Šª;Ï-Û»n)èõ íÌÌ0â™ä÷ŒÃþ+Q[žôé%íøN2.Ù$‘Ly3QH<s銡Y ¹ŒøÖåtÁM;F¶—WéÞ#„-ÍDÒ•1)Èf±­%÷áñÙéå-‡¢Ž/¤$Š»KSÄ_=ê+aÑ-”aœ–šày&kQ˜}4êj –šÖ÷AœÌòâ¶ V´uÆêk­`Ø&0Òû¬:óG¬ÑðÎ÷·êí@Â(Ÿúx÷67ô©=ÌêíQÛÄ@føO&37ö ÚÀü,²ëýÞ Ü]RQ]/ú€ WÞáëS¾Y«Š«*¶BpÂÉ5T÷Ñ~sPë]’ÀpB±y)mþòV&Ö‡IYËóë ¿ Bd{'Ãތ˒"_ž@ëØÿ… "ÔŠ¢“<$«ù¾¨’_ëïW 3Î/Ÿ¡Ó•Üß%¤Å„dì¡ PÎD“†fԯⵤ‘·`:ì!Ê}d¦R®Þvcå~+_ì:¾@C©Ô¸FY³+œEGÛ\ì:Ú …SLï§,²•5ƒƒ.+%xìZOõàé:…Ð{_çDR£üQ#–ìjçÑk‚‹ÅÜ,‹v%Þj3þ³B장C šg²¨%sD‹ 2ûì¶MÓ”,®ÇX…•€nœÿ{¦ñì½D‚]‘=˜ hèÚÛ´¨w®íW¨·ñïE#:ĽvSô¡{Êáí@ ©Râs|›~-xX§U0QƒùíU¯Àî–­á²Ùš`™%m¨)KDícÀã'ï#•~FÜâåTŽ+~¯xí¨Dl \…¿:aµ;’ ÓÖÞíÑQ×@ŒC,Ôt˜Íé.Ëu¨7qîwÊã cå†Ð,ÝÖßT„teî-(î•®ªAJ,nTòÔQzï¤n"Ñ[i½AóAPJ3ù{¹›ï'± úQ &ÅÎÐÃÞzWHvÛï^'ˆ}±õµ÷+‡)¾5ÓÄ"cñÇï†N-ÈšùPíWòþ=µn™Õïš¹ÎO¾< 9 WG°b]¼ïž2=ü¬Ë¶ÔôÇ"ê×UZÔ/ïÙ“GX‚q˜TÒ’r± D¬ßïÝÐÂTrQcþv­XÁÊAÇê¡ïÿÂu!CqŠæÆ‡…¹Ð‚ÐðŽ®:„´wj¦¹;m´™ÐøîINìð‘zÓãŒjÌ_ösÊìÏGˆy·ðÔ]PH&™>á„8€«ÝN°ðk¡ðåa}è)C62A­$-˶$‡ñZ­…ü’’ /¨7™êš‚á#ñ‡åäŠp«âeƒªø¡ã2Å V<ñ¸S“ÒÛU•ßZ½V͹öYôh)ò)#e‹6³y,ØÖç'KÒ¨ˆêoò.î“V.0‘3ηIepjzòEÇÙ=&ÖJ)ˇž‘JxfòzÆC¦Ç…÷9ÏŽhø‚òz-ôòÊ7m\-Õ¤áK ÷ôSþvòÛ…¼` ÿ©¿þòBO•gƒsòáìÈWwµxDæÊZ>½›' ÍóHXZ|¯gì~ÏŽÆxûýØHÁ‚óOÄW¦uêœ_»||«ÞŽÔóTD—Ôà’ \DRA¡#4󥓵dô 2äÝe@^uS?nNó‘#û1¡hÌç€*7ÐW“jÅó¸RöÙÉîýÙëçnÈW•Y-¢5óÉên!Fkùy?W_Y­à´ÊÖóà 급p«rc0¤ôìúŸÿ-póîò<„ý'@ ½«6êD¬üóõëñ”Š_f»M˜Y`’ænÅÏóù!F¨Ÿ 9/Zñ‡ ¸ªŠòµ›óþ8)„·Y9ƒ×­R"ÓwÃðÁôÃ×ý;¶îóÝÞàö#ä¥ôD9qÍ6 c€×|ã²L&º‹Òôavˆ¼¥7þ.â“FÓîFDÊ‹ô„ðÙ[R`–Î"ϸÑ'sçôŸ+/•GIOç·ì}ËAÓôÊØ'K[h™ñN˜·H™ÙôñºßrZñ8eref7I³m~ÁÇõn§øÎkì_2d—’•°<96v£õ!éüBìèC¯ "ý‚È„F\°õDýLöÖN²@á9|´sˆ8£µ·yõ”±xÉ%% §çý³5³wõ«ùôš<˜Km4“Á¼„²ô©­Çóõ²"8#‹ë‚fê࣢Ù/¡ë‰QõãÒZÞ‚]×Nº‡ kjxx Ì”öìÏqòm-\Z½š™N•IÙÇö#+HmÝ't ÔNÊ0¢³’Yrö#¾ÞñÒ8#èë2qudŽw¥·ö)Xl L¥œ(Z9vªzØ™tN¨ö2ÊH?VË ÅL±+˜΢;QŒöRk+È6¦"Ç 6¼!5QöR¿i~l‡¢W¤5zñã¦öÝøßá°Y±<ÄbúÜë¤faöò଩GáF‘L¶¨ºØ_¯ÙÿöødÎ-à6@m®›s#E¬Íy{÷ YÒD5} GÝ»óŸÇÁê*2÷÷šz¸Zÿ?»±Kz¿éa$…÷kS†.ã´$,¦6Ë•Sf÷f±!m :ãcWa¨t«I8÷¦ß†wo‡3SÞîFiÒºtÜô÷Ĭçݦ O­6Ã{V)L‹vÿS“÷ðÙÓúÖ‚ãîøÊïh/8¾ø‰&æn” ©óâ MŒF–æ$øúÞ™\³Þý_%Œ™¢›øþL„[?¢KÑ»–§xkº’bøcÌze}BãÌuß8 ÅÑ?åøi´¦9%».}qCíb33/ øy¼9Fm™ËhMÜ»?~íL^ò©ø’qUC÷³ØØ:NMuÈ&ø¾ã7”„OÂý­älÙ6;–ëøÛ?!SNhy.c˜èR…¼ Êøü%3vgxx"·#Cà)ž¢ù ÍQô}=YŸktLÂç`Z~NùZ1™ÁŦñ¯AâîBV[-,ÅœùqÃm'ö+2·z©Ñ"Ø“ÿ½šù~)Z5×.-d [¥F7™.ò¡ùÅ¿’=g¢ôÉ¥ŒÒ^êu{Ÿ{ùð\Zí:þ¥£¢ºÊÅ5¯'ùðû4³š æRP‹Jפ=áú®š^xº ÈŽQ[ªóÒ³ú™l’ˆ¿¾×øwÀõßt+¹ÌpøµúŸß!KiÕiO¿ŽY,ŸÜ„õŒ;ú¹ìünS2 0|¯¬"‰“*]±úÑrÄdtcj7œB£73¹Û†È’û3黾á ÙºÙúGÁPûU¦_q[-wÌN+Üç¤ì€¹#ûùAô°•^ßöÆ Í©ù ëÃÉrüL}X/]«öÇ ”€°¶I¼ülü¤lQþšz9Åm¯eô„Hëûü»êëþŽùVY9°jÎÊtcÈPÖüÐ)u^2ÉÌUýPk¼„¦2Ô*ý„=hŽ9,ÏìJ%¸æ1Ê$Éý$´ìÃЦZ$7•ùÓ®"€Ëý%Œüå)²—G®˜ߟ¾¢–¼ý'È_sú®¬÷!ó‹ë¤¸ë˜„ý>¡)fe÷)PF+9LÂíK·ÅÈý?ë¥þw¸wľNŸ¾²èбƒrPýJ»?혼zT¹äßòzŽ8«ý„“ÞsêõéÄÔ³úÁ©£ˆ×ý{ÙýÎ ˜Ó“Aaõ´#VV»ý±8ŒŠHr[?L­ÜÃÌlvi±QýÄ÷¡1m‹¥d _ßw®¬”ýéæ I$]AÞš¨¶üàÓ‰É)þ›ïI’R™î7iGMÝDiq<þh@eä¡Ù`]ô'ä‡ðÝ E7þx-+6#2°Ñ*Vä,û$âÓ°þþ–ñ\oäýø"…ê-¹†>“†Hÿ×èÖZð¦Ô(XhÏ;N«eùÂJ£™¼¨0¶ê¾dbWáztdë¿ÓSø™pîWY/cÙדsQ£Æ<{……ë^CýàÅ¿* yqZ!@hňBki†ºð_Nxøo 2Y³ðb[½;OF{Ÿ Õ˜>‡lùlg;ð5Ò̾¢ ÀÝf’ ÂýÓ=|}»?Aß5þá!ƒ²m>4uûAƒIŸÁƒi+t fÛ>ì£çëâ·Uku±ôpïüd&àápsÞÔ¢WŸ3rÖºƒÑãWtIŽÒ"ÕbQžf½T1l»mè í†  °øS[n•vOW[Z³¥²qבèU¡—˜f4 å»#x´~‘NÍzëö î ÇÖ Â|Ç+/,=qïP´²:ÝM›D½#+ÑÄñë!Ìüú§t|ɹ½["æÇÝš¦'O~É5ê?ª±,ˆ„ÅÝe^,?:šîЈ[\àGµELÎf:¯»”ׂŒ¡¾3Ûƒ-¶A뜵wÕòZ¤©Þ×»d &¸³pJ¢>©P¬®²j¤ð.÷žU¼8æ§ÌIý¹sëQ©'DB>æ3år30f‹:YƲ ‘j.ß±¨é6nàæ‡æ8/ŠÇþÎ2âʯØÙ¡±Äl• 9]Ý“&r¾e«¾E©Yyáßè,ÆòÞ©‘?øîxÏÖ‹Ž¡-†zx]7_Ž\#»!!¢í¥* »§J€Ø¦Â> ¤Î(™/•$ºL2˜Ôi¦¢]iDåöNËX?}ßómK\ÀêNôæa‚vÁô[ t'yEl!aµÞúÜãîk ˆŒ<à‡¾™ •Xr‚¬Xê<¿7"6F‰ÕæÐåÇJ˜ÚÎ[ò(̉™èTåý—7ŒEr¨„Õ_‹S‰Rø€‘e½îå‹áT“^ì–ªî˜#µèùƒWÈÈGzÚÊ®e"ÇÊΓ†P¦ª 0¸o´—„‰ö¬Ç¤´ºÃ€‹ÌÚUþV9ªYóUóŸÊ·ß?¡kcPäêôà•î[!Fþ{:£ÒLT¾u,£¢×j )gWEŸbù­¯©N Ë@j5´SCK¶€˜¯Å0ðãOZÝ79fk WÞþXoÄ'™{‚1{C³Öì”à½ø ¦DE‘2z–H³e4‡€ºc0ÿ/öÃjær¼ÃdÇ‹ñjÄ;"ªÆ–4çb(w©¸šÓl›ï^¥ÖÅ·s?%w„¥_}Ð€Ü ¦°í—lßXÑózse²,B³›˜êZؘ¼•mâ²ÅøÉb“ê’‹`¼ ÷a2¦ÔhØò»2'@þ:£pبtº¸Ö`¹äñD\Qþ°Å*PŠ‹¸Î2.ÓÕûš®+Y=idæÕOüù74ªVˆÚPœd=cØ0¼á­µmLBRmÓ3:¹«ßF2>´<ø}Ôõvn_GE/•yÉÇ[Ž'CPôW:סä0£ÊK_wš?ƒ.;zõ<Û®óÂ:³ö§éWܺ ï.¨çÖ„§`Â% ã)â–†¬;+ò«dø†'Ð3 ·ñ—‡ e¡²ÐSûöXîo†öòfo|³]y²û¥Úcæf¶ªºæç-~¢ymö`ÁRzÊ _xv€¨cž.J2°ƒdÖÝýËy’fP5W’ß½1ûë¹f®@þ¸_Dm½³+öÍyH²¼Bñ±]>ìöAÏ»¹…¨–UCÜ‹ê­[•Ä•Î)^ƒ8¨”u%ÐÖ"H\'´s XÑÜV÷>DÄÜf¦ B-CcØÞŒ±Ïo~Tu›1¤I*Óà4K—(ítC§Nô¬T°7ùFÒ `ï`àrL®>INÚW‰ƒ!rT£N“Sk¿¹!¶L¯%”| —Yùrn½áúDoXlÞK‰P¦z§­«¯ pŒ}ë´EÚ¹gw&ðYj‰ôE‘ݪBú c=‚g|‘ %œ^Õ|gÎåqszÍ{“/#ã´Z„ý¢égçæXÄæ‡¨Àf p1ʼnt™–~;ú³¶û½ üPZÞuý±E‚Õ]ß)ip,+C%t83Ý€á˜qÛóÄ×CÇJ c„¸ SF>šg³—Ç>%g#=9M{®gzŸ@‘F‹—PaÜš‹'Ù’«mßñû¥.ò l5¦ ÆKúH x´aßó<Ÿ&¹Éá$úo« èó7Ï™š!"²iðs¯LÎb­¶«;pÛ\(åÐÆÿ”"QiÔfÝ÷@LÙ;÷ñ=O¢„§>gÉ`Œ ¼ê @‰]ŸÚûST.°XP×£× Ümƒ%@Ì€ Ï]wz­œ¨ýˆg¸G6L·‚¨^Pj©ÍÊœå§Þ$™™×ÕýdÌþê߻ЈíÇã{@÷µ—´/kÕÔ>uÙÙLaÅÃvÝIî’½´Ÿõ<írä’ÑÖ¢¦ç¬Ô¢½‡U>”)bøä?æb•€ÕWô€('èø¯™I¯ç}Bÿñçúî~ƒh}páƒþì!‹ˆ ?âÞ8R@V8;Ak¥èYº«ÃïCþr„5ø`äÚߨãÊeOõ’à#óªa¿¦¸ˆž¦õúŒî³ ¾!z˜¦ëL;c¯g¾Y r*g·ÞV\sx_þ"™ k (ŠHvƒå“P…¡åtˆ"w¹2f”xóׄ“  š®Ò/ «˜Y·iŒ1Á<¦pËû\½Ò; cÉ|8Bœ8%`OÝ,—@—À*W3á\+h.H—w|XãDÛAƒ_ò ½T¢Põš>äI¢:ÛI«€cºœH® Ç3æêƒpß9èGîiõ9¶=]ƒ$líëú”Ïn.ÛÓc-˜Ý³AúhXSH¬«o§OA4—Zn©ÚfÚGi*ÍïÄ©t;Â÷– /*\ŽÇÚ·<­¤Nk5ø!-sÏÒu2φ;k}ƒáDÔüÕŠô=í¶ž¯F©JEÅøÆàâ—ONR 2Xë“ï•:ç*I÷byaÚ…Nš¶¹*kâcëô´Õ·±^ÏOyÅØ`ê‰Ëêx”Àj£1tÐlð5|i™Ê)®xƒòaoEM„Ê,t÷æÿ)¯7?_\£iå¢IýÕâºHK 1ÑNƒ0÷|wC4ü‘³Ý¤Q!ΙOØóì˜'E‚9pP6“ 8ìÉh3K¡ 0˜¹èÆe¡®wx¨H¬ óÅlJF +L†6Bî (_ÊzDjf¨ÂnÒAúhöÀl›•ÍË7’uCÞ–ž%<âÜ wÀ-+,K‚2$œÕPK,ØôèUè)n`}ïk,5oà]èìj„ ’G8L:G ùNò)\Ž:iÕÁöo5|ÍDmÆE øÑ`øïèwäJ»ÖÃ=Ke¨vîÆª?Ö+¡œ¯|V™vñ3ãrÿvÇËÏöU.5¾Vr.ÿ*áÌPˆC_x,ƒ*`(pL+ý ²:î¾¶™l$Ÿ ð§H„© ‚Þ@ë¾ éù“S"p‚gë¹å_W±¯‰‡¢Øz÷–)ÞÃ8ø-G‘Jò•Vb›"KšæŒ:7v«âœv7ôr¤=F $¨œpKún<ÜBÿ¡x«:6£S¨áš‘ýsójAظˆ†d¬%J?RU-(¨~Ú£;ß3Š/Õo¾ÐÂoÀVÚɘÂ’B~:)/òp^ £y ¶Ñ¶‰_Hs pi HD_í è ÄÒeÃÞošÄwТZOÌ’yrÆ•4ÎCóå}#`„„0Ÿ/ÞÓ4ùPµ pJ$Û±tûÌoF©2+nÎ13C`«’¢`*Q\?WIèÜ=íiA´Hï¹ê^­ÀˆªÆ¬#Nð«P·Ó†Â}—8š¾ÇomI=#ùÆKÅàFßí /ÓÝ%%‚o]©ã­¸è õœiéæHž% ¤¤¨åìp”áòkìq<žéB´ªSŽzÃÁAûó9ä^¤—Ö®¨ ÈÔßÒ -ãëÔ*—`¿\ÑF íªûÖ.ª^7±¤èC¸ûþË·[I¿,KSV¼Äåïp…c“/ Ò±rZ¦:Ò&n3èëŽ$Í~²ž­~Ì( ‰5èÔÍb‘­2_1R{Ñ-+ ;nÕm‡Ía…טüóåFÜýQ©Ú¸ºbx´ƒÏe;L¬BËéÈk“æ,xf̯, «ÎÙýæ@iHð™šO} ðçÅz•1$.^~;Ë%1^©©wé¨WÏ/1(©¬ #†‘GÉ/–/šŒãOcZ°½£¡“ØÄè)à ªKoè. ¸9)TÃh[=‹5zd BçϨOÂÐÞû`>Ùª{þàÕaš1¿müöù ²~GÜG¼”î>½FNÖÄâ[ bIWö¨KÚÿ’ú1„_5Q8$ZtC°D“­Hå{‡Óè“•¥zzß]ì#^ ­ÑABi®Áøà8ìÄRüÈ‘„‘žGî½¥g‚#BÑM(îKÁ¹#³™Á "Š›?¦ê\¨º:N×P…Ñaô*ÍN¡‚ŽNÞÒ7šLM8;©?°ÿʱk”MzÔ[PQ°Cl:ݨø/|¥ö=¨Wë{þo<áê8S3f˜ÙEœ_BÕðÿ@$oÜQˆF2}½ jŒpG»ê÷Ûå‚™eƒ`Ì._z-4fײÞO$üí×-VŽÀï7ØYsU.Êçñ͘J‹Œ?Ù¦š3eo½žæ*¸[O?£fåk¯ïÅû‡zþ‹;ÍЫ&&h~Õ‹©OÚëÀz«$CjPëó™V¾bãh‡TÝÿ5*Š >ãú-;AÒ¼P1x¤I»›YGîòÿh3tJÉŸ=ÀüÓaÕÊ@EëîïA?ËÛ¿´¢Y?ã·™èÎI’áiˆdºÉø;‚³œIÌÜ62L¬m•E•¿Jç¢Â.–%r˜õÝí"ñšP^ˆ6¢Ž‹?Žà@l-Zzš}”¤OO¦?Sœë}¦*ª0ð繞4狌JZ_ôŸÍ!ÐBóVW®¸]ˆD“¶=¥MÐY(™½ãDٜٷ4è4²f”]›yÆ:«þÄ?Ï Žc‹Å„`)lŸìOøG‰çÝ%ú»dì€g£¾œ\'ýωò3òO)âÀBºEçš{+ï+&QN(+.!UÎHx~¦ÞáC£^€ÎêGóØ3}'ùä7€ñ±CAgX®~_W@¦»EŸ=Ñ`˜Ý‚&ø.%ý÷›}Ÿï” Íš.#¹ã€<~÷²ˆ.ç¯Æþó>#þHíÅë»Iʳù FB&Õ*½y³b–ëÀèDPÌmΉ%u ÍÃ[z­ÅU üïlySw•É×]‚L&Rè EÞûü´M¯¦|<å0Àú,x8â~Ò¿öß=“×j`êLZ}Ù>j+Ïd»¤¼f O޶¸f„Ö*@°=Õ®{‹÷„z)¡&¼€5Ó<fd*à—•i9k­äzÖ’Ò‰ƒ®ê½ŽÅº8±Vxo\y$÷Üê6–B½š±Ó NcoË»qвAÀÃe—¨ŒœÓw¼œ~¬þx³Ý?* õFx>ãÞ8wü^XéÿiçЕeøáVõþɧêp@ RDøp¾uöL”_o{™ÕŸHî•%Få©Zë‚»Ê9£}f! VïñAõ\ÀxuXn­­¦)/ú£—?È•Š]‡Kà².ÓäRÀS@$—AíkÿÜÜ,ùq‰Eþ¿WÏ÷‘6&ßQGOYºoF6ñž¥œþ‹ž\è9ßP§|IZwGbÑŸ˜Q 1p[í÷ÒöC²mXŠž3RI™rúŽ B嚆§»2m¼:ƒеZìÊ(gß *ƒçÒ íÀ.µ–°€½ÅɉLü™‰Üíä‰ËØ9ø8ÆÏNuý$w÷Q…NBÙ(ÏÛ”¶P8÷ø å–‹u}„ÆwÞ«ä°é|2¶®ã="ÀCÍçÓö–ÙQ^‚#píÏPìIûeòY,6ôŽ ùgõ%QPÏ¡¼xÜÀÔìÁ!¢^<7n¾YolÔ^ TôvÁ\¬¶¿­ô©5‰¨¸šôFô¾¸ó’~º{-9)àZä ØÃx{g•N˜ØÑòš›iØn({Iï®Ç„ÕÇB5÷~jœ‰³Š=­·èÊ£b»À™¸HÄiWö¨ÎZ÷^ž€=Šš2Ó’KÁ…r@¤¹Þ~¼ø@yްÀBÅZ ŠÍšäi&Òe¢¦óW,ã|]9:ó–Q}•!½Lö3Oª$n–i¿Tó7+4Ü7XÙV‚þ¯Æ8(Yrç,áCQ,žÄÀê!,úó(†Ñ ÛbmÞ†d;¥²ó°=ÕÍÝyäHpÑ »UI×ãbjóþÕLÑ ƒ¶iܪ4­åŬÜ8ÂB,ÕaòEHB¦±-t‘-@¨sÛœîk“êào„sž(Ù××6;9K÷ CÒÒ©Q.5KíÇ»@†¬Ë›–ص çôWìë¦RìR­.…5cˆ˜±be>`à2­ÝÍT~–î|€Aò‹’_2µMŒ¡x#¶©Œ»9-ešGî²ø1-ÿîÈþ ¾¹pŸÅ–x^¡@Œ¯%äú€¤Œû\;(CÆÝçBñŠ ÷à¬cÇÂ3Å@Wì¯AÅÛKš÷ôg ˆÝöÜHÚâYÎ’~¾òÇuY‘®ñÛQ~w,"y0¡BÛÕdÈÛôËL×Pâ3xCyÝ+›;¶Ù„Èc6çÎçît+D@$=KP4Úw±Œñ¥¨íéÕdœ+ÿw!I½¸å/†° ÒÒt._èÉäñ㲕¸‹¶iBÇ0sì¸UpØÃnv9—$Î66ˆŠæÎi±ŠS'.2¤¾»¡.›æ°”Ûlíö#2¥]2¤àqïÏî èpf ž~¿3á0Ñ|0†]¿9ÿ-#4¦)ŠŒ¸ ­z4ˆ²Ã~º ÆipÊ÷¥…Ô¾'É$3Cää5b³±*wSƒ«÷HGÑJTw<$s.ËÆ½zq¢2ƒ(!\ž:6/ü5›?™âjzÄBª“ 7¾r­ ‡¡ÉõøDÌŠ>ºb¢=ˆÁn`SÚ‘Jÿг»éUrÓPHëXJâ•{®È׆µK9~ê ‚F–f aÌÚ¢“šŒv¾Û°*¾€Æ_\.u¶xÆ"ö4'a@¼&ô]â¡D¢”!4–7%©—GS,‰K ÔïÊìfB$#Q¹Óü‚Pü&e _Ñ"OYTéá—œªõTa`ékÁq=[_ è–˜['^BØÞ¬ MMŠ_˯Ä|øi£4½ž G0‰šdDŽ%NH§÷¤H¹ü¥1ä:9.u"×g½ Ò'1}¢mR¤¸]8­3>ƃ„˜%ogI¶›Œ¤;´§&¸p ”Øåc Ò˜vr}Á¼¿ýØmKv4”Ð ·‚=S!¹à¯§‹·´6åêNÚõ¸IaØúñQ¶Õ«¼•š~€×wZHµ¢†S̱lWdcf\±êc¯ØQ’±[^ÜÆP{0¾´Þ'Öþ/O¶Ùº|ûC’°° 5-#)NqŽ%'zRÜ«Yª”‹/Jk… ç¡— ”i ‰f4Ñ ‰, [’ç‘.éVNérïªÈ |ë¸il(áöƒ„t @cÛŸ<¢Õ᜷;ùR< rVbP ÔÑÞ›è2Zú2úº9µÜ ~bû.i‘¬öte3ç…Å&æ©&X€¯À¡ç hðù Š% ZJ±_Ì[Q°0 ŽÐó™F÷ >{¯…iÛ °T 1fl5¨sc,œ‚ ýþŠmZÁVîý† ‘À_讨l[òf›¾å¯‘èTñÊ’×h» Z 27ûVtÖÆŠ bÆ€Þƒ Í&û v LïG)eQwš>>Éb`DSöÈüh¹ž›Å 1ðÝâ7´Éž¹ óæÜ«·ž æÚŠí }Ž2ÔÂ;°M¶ìgÑæP ý‡·<€ už€Õ_, =<æš…ÿ¦ Déƒ>çlø­ª4¶­{Ïuž H {ËC€÷¬˜è|—ŒÌT²]…°¯ IN÷Ø —ïL«,áˆþ ’­'Gkh"Ñ(ã iÚPðReY  ”êkÞ×à †¢¯<vūڬ?¤¤™ fØÏ6ÈœYÂÝÑ"9ÿ%!a ™$íü84Ê!·ˆ êEaF†…X@,ŸR¥ó­BŸ.?$4ñð°LiìeË»•'÷k.T aàJKÌ6éТc‘`ªV+ÝtAí(SgkI>Ö­B¼ÿ옇rñ:ó!ÛÎíò5ò3‰…µB¶ W„¤ë\ f` g¥ÏÁš ›J;¬®6EØ-Yñùøèúÿ* ižEÞ Š] Ý»÷7 ‹ú™ÒÌ9«A}n\¥èè4¿3Ÿt4·Ô<±®NIñå”ÛŽKSE¬é} "î >¸±YG ¶Þ•„…þ÷f µÏeñSË0îËï _Š 4÷e5~ùAR}n!k ûÏ âYÓ©âí iµõ‚@0,^0»¦ÿ0ÀÈk<æy ’ì tœs¹4MŸ7t“ ˜ '/6ïY+†+UôMáé/ÍÿRsÄ w6Ë”éx YÇcmiµy øÊ—NùD ‹”ÿL*dÛU`µñ ˜Ä >Ìì°® FÎ#(1Ç…ó dY _SRè6 }Ñ.{h_ 2 Y>{ _û ežéõ¡ þ/®w!Ëë)$A’ I0öd}Z3>—m } 1ë, >6 ýZ­­ H'­^ ¦×¹Uê: ç%Y AÉSÀ ‹­Ž¯Î %DÍ]p †Ó?¦L›þ 2Ìnˇ ° ˜_K±ë·7ÃÈ9¦é ™vç4ÂÕgAnsQ¨“^Ñ/îÅâ"j{ÎêïåA¿ ød°P ü2 è§}ì®H¯² æéb¨}‰}š“D  •u®¦K‚ìNÏ(1D ™: >®K(Vó3PÈlÇp¦Ìú1Î…¥6þ4e’ ‡/;ö©…ÈxùÙjãÉ|Œ”š \@ `+  »ÖB° 9µݯB °Ìç¿Lí ù ê³›Y eÙôëÌ 7µã*Yé ë>úª uÔ `¦eu¯Š Ř@¬SÉh$e6‹70éŽIX]IÖ»1ž„ZB>ÈF&Óx zÉô¼ß ß è) éŠ#qñú¡U ~Æž¸ fê×”¹ö),dKìÜåp=Zî öž—úgï9A%·ëÝÄ,êmå ZÜЉè†4½kE⤨3ÍlŽ ^FY*ú Ba,ëu—_ŒgÌ C=æÔk³ê„ÆI^pž «°ÉÛáju`IC£‘<2rT})ñ×2C=³àj´°ò H·0í¨Äô» h§îîØ %šó9ÜRŒ¬O øOl‘*Ï·8*#º Úæâ#† vFè^/çOezÚé“üi ˆ«Ϻ;spü ’”MáXÈÎG°ÿæ’ Â늕üÇ!aìå_tèàËÅ Œ¸— iJ¹ ’d<±F/€  Æ ] à6–¸v6As â=cÞedŽI|X‘}M^¥NF@ѬÄyCGè³|&QéÏ1 [DÇ(›‡‘ì˜s/ü7ÌžM7Í/Œª^aˆÿ ||‚ f´×d&åÉ?Ò1°2¤¦í $þ ´A‘©¯\ø?ÓÛ‹÷!µÉ gâVïÜG‘IR–ìß¡ ˆæØ»„5Í‘ ýmJí e´½-¹èÓË÷ 틬C\/À¸‡’X ç=gª… sü^º>Eâú ¥w “׫«¿ldÊŒ W˜KÕ›(˜7àÊ*,³K []Œ(11.ÎóÉ]›æ9š3* O ,¾q¨=mP¬ê7õÆïŒDš ·å}¬ï+uÒ í Hgô ¤z—Zscé<s™·qÖÎ|e®%46_ù ý¯ŠˆŽ6í: f£/” Œ:›nò–é½=L£mÁÆ«À@‹d[: °Sã!Z×<oæžGö=A&; ÜÁ dÎÛ(_œ\/ U-š¼ ü7×[Ú:>­ A­re kxbËÈá‚{õy½B/Ü/#CÀù}õê²û@È•Ä_c|§°$)W·_ A ëÌøÑò€ œŸ<òñÛV!t\T_žô§ÐbŸ9 ŽKÜ!"Œ!‘ÛÔWi Ô ”ô`R¶ Yú™°ñ‚†ÓͰ+( h¿öºð@ G¨õ: `j½ ‹ƒ“÷¬æBÅå« û¨ k³ |T ‰â cœÃÐ$& ” “;?‚QÐB4‚S à_-s¶/oUOÞú=?\Ã=Ó᯸oò°ª*i¸ \L mH\õzú_™É ˜4^¦½–w#^Ç g%Ó×Âòî¼°†TùØê á€()¡KÂ? {»P™ª˜¨ Ƴ UAÁ* B°áIg&ÌÓ XÓ¦~ÙnÆ]2ÏILZ R ª b.— f‘ G ‰¨/ž0ókm¥¡Ï¤á ‹GåÑCÎK¹ m ’øšÝ7 u¾å Í‹ý¢Hó„D! { °¿|‹Ž&k 'P¹Óè•?·&Cìïì ÝñŸ"dÞD* ùœû GîD¤ÈE'Žh¦C3H3¢bÖïŠ~S3 bó5 µ„Q1q f×Ð’ ç^ gh f!ñé^ ô Y:ÌrÚwjXžEš>iHü— üå  ß!9 Õ‰óšˆh³áMŸ› &賑{a i- j± BT8 Œ ¾`l¾ kB ±g€8V!ÂO¹> }Õg.íÊ]=heÛg™…, ­ã ŒÈa= c Üä”»ßEö#Y$ã<’^õm†EÍFÍûƒmo¯Gc„qj׎ °ô G‰qÉöÜŸg‹dkˆ É¡6¬¹É°Ÿ!0 î“L#BÁŠhd´zJn v¶Ú©E.  ‡ãe ½ ˜‚§˜5¸?¥] Áh+;úÙV§Fù­ÁÃÏÛ<ø~ ŸäŽ|Ö †l2ÕÚqdžÞj y/ƒ üpòµZ^&É¢¨ê±XmhÔοÇ×YÝtþL4I Ý]È gŒ™> ”7ˆ/ÀDÆ'¡)ˆÔK f ›¯¬¤ÿ­çcq %"<Ó…dÓ&všÛŒäY€¸Ì÷ øÁN½Ÿ3bÆlhs”Ï qE+À"¡ âbPWÜ«EŒ|ÆíéòTÛqˆø½öÉ ±U aG}¹¿¥ø¢æY dûŸ`,d­êƒ`Ô[›ž€ t^RXÐ6 föe^s&½f Tq´Z)’âÚ5pjº± zí² ¢ Š nÚ“¤5CNž;\}·=> G] ˜´)hê•cê: ãpæÆ­ä;É?y@¤·U¥ù€îæ° B 2 '–ãt²Q [ËìjNå a{–¦Q ê f¹¦oCÛ·t’ú? ëFmY™óðÒQ®Câ§\‘å˜Ü@¸ã¬a¢ðíHQçu“¯Ä þ©i[ Ëö° uH‰ ˜Õ*¼u)܇åÿ ZîÐý³åQ©žÉªü3…çÅ+]>dÖ %„ uX}“BŽ (kH60ˆ¤Te¤Ü¢RT4éßæ¦©¬â s”}J‚ k@ƒÎðEï¬ëâT0 b†) Œ ‹¸« v{…¢\l±tâÉ©ª e5¦ @EsÃÛ”)Xk¤ –£Í+ÿ—÷}!ùø0>õY=“#ÞÓ2Em4ÿ€ÃÖ5Y A*Ž P‡ àŽ € ‘¢éÓæ{Éô°]€ó j Oª™ù,JtMÖ)·–>=‘˜Còõ f˜æP Z tå `Ûé똷¤j† tÑ?ÿ Aè, TÎ7úhDÑ _"—¤ß›Ì?rýZ —–Ö á¸ú|;ã– jcY |³ô£ 1ê¾,S‹®ÓžÓÚáücDöŽBÔs˜[a Ñ[ îng ÄòvçìSÓQº} libnbcompat-20180822/.git/objects/info/0000755000175000017500000000000013355271171017736 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/objects/info/packs0000644000175000017500000000006613355271171020764 0ustar jgoerzenjgoerzenP pack-d3dae1fc6344f68e421608d47300985b6109d15b.pack libnbcompat-20180822/.git/branches/0000755000175000017500000000000013355270234017136 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/config0000644000175000017500000000013413355270234016537 0ustar jgoerzenjgoerzen[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true libnbcompat-20180822/.git/refs/0000755000175000017500000000000013355270234016310 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/refs/heads/0000755000175000017500000000000013355271371017377 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/refs/heads/master0000644000175000017500000000005113355271171020607 0ustar jgoerzenjgoerzenbe9f9298fd165ea01a0769c4ffa29a3ec0d22023 libnbcompat-20180822/.git/refs/heads/pkgsrc-2015Q10000644000175000017500000000005113355271161021373 0ustar jgoerzenjgoerzen92eef9ba3e5793cc69bae8df87eda47bf4445054 libnbcompat-20180822/.git/refs/heads/pkgsrc-2012Q20000644000175000017500000000005113355271136021373 0ustar jgoerzenjgoerzen0711b2ad97fa633a68356f920b2e982c600fbd7f libnbcompat-20180822/.git/refs/heads/debian0000644000175000017500000000005113355271371020540 0ustar jgoerzenjgoerzenbe9f9298fd165ea01a0769c4ffa29a3ec0d22023 libnbcompat-20180822/.git/refs/heads/origin0000644000175000017500000000005113355271171020603 0ustar jgoerzenjgoerzenbe9f9298fd165ea01a0769c4ffa29a3ec0d22023 libnbcompat-20180822/.git/refs/heads/pkgsrc-2009Q10000644000175000017500000000005113355271112021372 0ustar jgoerzenjgoerzen4e68f81dc2aa546b8b098af6393c03372e0255c8 libnbcompat-20180822/.git/refs/heads/TNF0000644000175000017500000000005113355270350017741 0ustar jgoerzenjgoerzenbe4bb1bc5a146a6de67454f4ee1ac4d18ad71bd0 libnbcompat-20180822/.git/refs/tags/0000755000175000017500000000000013355271171017247 5ustar jgoerzenjgoerzenlibnbcompat-20180822/.git/refs/tags/cube-native-xorg-base0000644000175000017500000000005113355271032023251 0ustar jgoerzenjgoerzen2e8a28485722786c8d3fe21d92ab897f09a11283 libnbcompat-20180822/.git/refs/tags/pkgsrc-2007Q2-base0000644000175000017500000000005113355270755022167 0ustar jgoerzenjgoerzen9949dd8bc91f6dd7853bc2cacd8d972276089101 libnbcompat-20180822/.git/refs/tags/pkgsrc-2006Q4-base0000644000175000017500000000005113355270743022165 0ustar jgoerzenjgoerzenb33386576d257d30c2972499ee43cb898d367d6e libnbcompat-20180822/.git/refs/tags/pkgsrc-2014Q1-base0000644000175000017500000000005113355271150022152 0ustar jgoerzenjgoerzen17962b85cdee1607f86ca828ea0d1305d36094e0 libnbcompat-20180822/.git/refs/tags/pkgsrc-2009Q4-base0000644000175000017500000000005113355271116022163 0ustar jgoerzenjgoerzenaaa71ae81039f040ae2b6d6f3ddb944eadc79130 libnbcompat-20180822/.git/refs/tags/pkgsrc-2015Q3-base0000644000175000017500000000005113355271166022164 0ustar jgoerzenjgoerzen4be02dfda6078feea57c5a1fde6d756e3b6af181 libnbcompat-20180822/.git/refs/tags/pkgsrc-2018Q3-base0000644000175000017500000000005113355271171022163 0ustar jgoerzenjgoerzenbe9f9298fd165ea01a0769c4ffa29a3ec0d22023 libnbcompat-20180822/.git/refs/tags/pkgsrc-2004Q4-base0000644000175000017500000000005113355270733022162 0ustar jgoerzenjgoerzen511c6afee338839d045707f3fea1b8a20059565c libnbcompat-20180822/.git/refs/tags/pkgsrc-2013Q2-base0000644000175000017500000000005113355271140022151 0ustar jgoerzenjgoerzena99830dd337a65650e5193d28c0380ac9f5e81b9 libnbcompat-20180822/.git/refs/tags/pkgsrc-2012Q1-base0000644000175000017500000000005113355271132022150 0ustar jgoerzenjgoerzen0d874fc8eeb4bd51415baf31e0d0dcdf13e4b52a libnbcompat-20180822/.git/refs/tags/pkgsrc-2009Q1-base0000644000175000017500000000005113355271106022157 0ustar jgoerzenjgoerzend7b12ebb1824220031c9edc27ffc39653477a85f libnbcompat-20180822/.git/refs/tags/pkgsrc-2004Q1-base0000644000175000017500000000005113355270610022151 0ustar jgoerzenjgoerzen6b569d1ae0cfdada8abf3fd11993d57c1299564c libnbcompat-20180822/.git/refs/tags/pkgsrc-2015Q2-base0000644000175000017500000000005113355271164022161 0ustar jgoerzenjgoerzen21aa956016c6e547f7b2bae63020f50104da1921 libnbcompat-20180822/.git/refs/tags/pkgsrc-2005Q3-base0000644000175000017500000000005113355270735022164 0ustar jgoerzenjgoerzen6fe0ec505b4e1d625dd81742278b46e55c39429d libnbcompat-20180822/.git/refs/tags/pkgsrc-2018Q2-base0000644000175000017500000000005113355271170022161 0ustar jgoerzenjgoerzen61284d953079b3dd15e38dadb60fb5bdeab3cfae libnbcompat-20180822/.git/refs/tags/pkgsrc-2013Q3-base0000644000175000017500000000005113355271145022157 0ustar jgoerzenjgoerzenfe17139bef49925299ee3769474ddd440069713c libnbcompat-20180822/.git/refs/tags/pkgsrc-2014Q4-base0000644000175000017500000000005113355271153022160 0ustar jgoerzenjgoerzen94d0c969683500143fe6cc399b21d8307f28c259 libnbcompat-20180822/.git/refs/tags/pkgsrc-2010Q1-base0000644000175000017500000000005113355271124022147 0ustar jgoerzenjgoerzenb3f4b6ce5184bfa9b0a0639bb2811c7a3a574135 libnbcompat-20180822/.git/refs/tags/pkgsrc-2012Q3-base0000644000175000017500000000005113355271134022154 0ustar jgoerzenjgoerzen6557876a2a751036a6e1c80ae3d2c22b537019de libnbcompat-20180822/.git/refs/tags/pkgsrc-2015Q4-base0000644000175000017500000000005113355271170022160 0ustar jgoerzenjgoerzen7418dd22603841a919593485a3671bfbf2574f83 libnbcompat-20180822/.git/refs/tags/pkgsrc-2003Q4-base0000644000175000017500000000005113355270560022157 0ustar jgoerzenjgoerzenbaae3a498ffbc7a8e20c8258aa83e53562680bf5 libnbcompat-20180822/.git/refs/tags/pkgsrc-2014Q2-base0000644000175000017500000000005113355271151022154 0ustar jgoerzenjgoerzena5962b5876d0c2ef73270e1030e8c63c01e907d3 libnbcompat-20180822/.git/refs/tags/pkgsrc-2004Q3-base0000644000175000017500000000005113355270730022156 0ustar jgoerzenjgoerzenef864e2dc8909af950ed57f2fe3d05b56e0799d5 libnbcompat-20180822/.git/refs/tags/pkgsrc-2008Q1-base0000644000175000017500000000005113355271002022151 0ustar jgoerzenjgoerzen3f217ffab581f938f050d38d32498699202ab777 libnbcompat-20180822/.git/refs/tags/pkgsrc-2010Q3-base0000644000175000017500000000005113355271127022154 0ustar jgoerzenjgoerzen0ed51c3d04f4d7bf4d8a6930f8ae525c6c2fe4f9 libnbcompat-20180822/.git/refs/tags/pkgsrc-2006Q3-base0000644000175000017500000000005113355270743022164 0ustar jgoerzenjgoerzen8bf9afe84eed0715cf450299593ee4a08ed74b62 libnbcompat-20180822/.git/refs/tags/pkgsrc-2007Q1-base0000644000175000017500000000005113355270744022164 0ustar jgoerzenjgoerzenbf25657fd3eccf4691ef896592555a8995eaeeda libnbcompat-20180822/.git/refs/tags/pkgsrc-2007Q4-base0000644000175000017500000000005113355270775022173 0ustar jgoerzenjgoerzena83fbee29aacb4cf9b17ecab4596490f7182f4ea libnbcompat-20180822/.git/refs/tags/pkgsrc-2006Q2-base0000644000175000017500000000005113355270741022161 0ustar jgoerzenjgoerzen0d23b0e99a366c972a8f560ef4b21ffc4ecb6d2b libnbcompat-20180822/.git/refs/tags/pkgsrc-2011Q4-base0000644000175000017500000000005113355271132022152 0ustar jgoerzenjgoerzen83f7c51c59a982d133ecd4978b781757ec5c969a libnbcompat-20180822/.git/refs/tags/pkgsrc-base0000644000175000017500000000005113355270350021365 0ustar jgoerzenjgoerzenbe4bb1bc5a146a6de67454f4ee1ac4d18ad71bd0 libnbcompat-20180822/.git/refs/tags/pkgsrc-2005Q4-base0000644000175000017500000000005113355270737022167 0ustar jgoerzenjgoerzended138693aabce9b7c85115ad906df90ead871f0 libnbcompat-20180822/.git/refs/tags/pkgsrc-2012Q2-base0000644000175000017500000000005113355271133022152 0ustar jgoerzenjgoerzenf600eccf0e71f26d2d5c5abd9a13994e9549d9c7 libnbcompat-20180822/.git/refs/tags/pkgsrc-2009Q2-base0000644000175000017500000000005113355271116022161 0ustar jgoerzenjgoerzen2d8842ddfe12fa2477d21285e7ad8339f2316090 libnbcompat-20180822/.git/refs/tags/pkgsrc-2008Q4-base0000644000175000017500000000005113355271101022154 0ustar jgoerzenjgoerzen0b227224bd10eb283a95cd8f1b537a5e3a990819 libnbcompat-20180822/.git/refs/tags/pkgsrc-2004Q2-base0000644000175000017500000000005113355270617022161 0ustar jgoerzenjgoerzend9bd916f9d21af1da015fc43e1036a5f80aeff6c libnbcompat-20180822/.git/refs/tags/pkgsrc-2015Q1-base0000644000175000017500000000005113355271153022156 0ustar jgoerzenjgoerzenb453de3709450fcc9f5047bb14bc859427bae295 libnbcompat-20180822/.git/refs/tags/cwrapper-base0000644000175000017500000000005113355271026021720 0ustar jgoerzenjgoerzen6b4613c5887e81b5f98427abc148b823fc94dffa libnbcompat-20180822/strmode.c0000644000175000017500000000771513355271171016344 0ustar jgoerzenjgoerzen/* $NetBSD: strmode.c,v 1.5 2004/08/23 03:32:12 jlam Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)strmode.c 8.3 (Berkeley) 8/15/94"; #else __RCSID("$NetBSD: strmode.c,v 1.5 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include void strmode(mode, p) mode_t mode; char *p; { _DIAGASSERT(p != NULL); /* print type */ switch (mode & S_IFMT) { case S_IFDIR: /* directory */ *p++ = 'd'; break; case S_IFCHR: /* character special */ *p++ = 'c'; break; case S_IFBLK: /* block special */ *p++ = 'b'; break; case S_IFREG: /* regular */ #ifdef S_ARCH2 if ((mode & S_ARCH2) != 0) { *p++ = 'A'; } else if ((mode & S_ARCH1) != 0) { *p++ = 'a'; } else { #endif *p++ = '-'; #ifdef S_ARCH2 } #endif break; case S_IFLNK: /* symbolic link */ *p++ = 'l'; break; #ifdef S_IFSOCK case S_IFSOCK: /* socket */ *p++ = 's'; break; #endif #ifdef S_IFIFO case S_IFIFO: /* fifo */ *p++ = 'p'; break; #endif #ifdef S_IFWHT case S_IFWHT: /* whiteout */ *p++ = 'w'; break; #endif #ifdef S_IFDOOR case S_IFDOOR: /* door */ *p++ = 'D'; break; #endif default: /* unknown */ *p++ = '?'; break; } /* usr */ if (mode & S_IRUSR) *p++ = 'r'; else *p++ = '-'; if (mode & S_IWUSR) *p++ = 'w'; else *p++ = '-'; switch (mode & (S_IXUSR | S_ISUID)) { case 0: *p++ = '-'; break; case S_IXUSR: *p++ = 'x'; break; case S_ISUID: *p++ = 'S'; break; case S_IXUSR | S_ISUID: *p++ = 's'; break; } /* group */ if (mode & S_IRGRP) *p++ = 'r'; else *p++ = '-'; if (mode & S_IWGRP) *p++ = 'w'; else *p++ = '-'; switch (mode & (S_IXGRP | S_ISGID)) { case 0: *p++ = '-'; break; case S_IXGRP: *p++ = 'x'; break; case S_ISGID: *p++ = 'S'; break; case S_IXGRP | S_ISGID: *p++ = 's'; break; } /* other */ if (mode & S_IROTH) *p++ = 'r'; else *p++ = '-'; if (mode & S_IWOTH) *p++ = 'w'; else *p++ = '-'; switch (mode & (S_IXOTH | S_ISVTX)) { case 0: *p++ = '-'; break; case S_IXOTH: *p++ = 'x'; break; case S_ISVTX: *p++ = 'T'; break; case S_IXOTH | S_ISVTX: *p++ = 't'; break; } *p++ = ' '; /* will be a '+' if ACL's implemented */ *p = '\0'; } libnbcompat-20180822/utimes.c0000644000175000017500000000353513355271171016171 0ustar jgoerzenjgoerzen/* $NetBSD: utimes.c,v 1.3 2008/04/29 05:46:08 martin Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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. */ /* * Your OS is old, eh? * Emulate utimes(2) using utime(2), but losing sub-second granularity. */ #include #include #if HAVE_UTIME_H #include #endif int utimes(const char *path, const struct timeval *times) { if (times != NULL) { struct utimbuf ut; ut.actime = times[0].tv_sec; ut.modtime = times[1].tv_sec; return (utime(path, &ut)); } return (utime(path, NULL)); } libnbcompat-20180822/__fts13.c0000644000175000017500000007521613355271171016126 0ustar jgoerzenjgoerzen/* $NetBSD: __fts13.c,v 1.11 2014/03/14 22:08:17 ryoon Exp $ */ /*- * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; #else __RCSID("$NetBSD: __fts13.c,v 1.11 2014/03/14 22:08:17 ryoon Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if 0 #include "namespace.h" #endif #include #include #include #include #if HAVE_ERRNO_H #include #endif #if HAVE_FCNTL_H #include #endif #include #include #include #include #if 0 #if ! HAVE_NBTOOL_CONFIG_H #define HAVE_STRUCT_DIRENT_D_NAMLEN 1 #endif #endif /* * SCO OpenServer 5.0.7/3.2 has no MAXPATHLEN, but it has PATH_MAX (256). * in limits.h. But it is not usable under ordinal condition. */ #if !defined(MAXPATHLEN) #if defined(_SCO_DS) #define MAXPATHLEN 1024 #endif #endif #if 0 #ifdef __weak_alias #ifdef __LIBC12_SOURCE__ __weak_alias(fts_children,_fts_children) __weak_alias(fts_close,_fts_close) __weak_alias(fts_open,_fts_open) __weak_alias(fts_read,_fts_read) __weak_alias(fts_set,_fts_set) #endif /* __LIBC12_SOURCE__ */ #endif /* __weak_alias */ #endif #if 0 #ifdef __LIBC12_SOURCE__ __warn_references(fts_children, "warning: reference to compatibility fts_children();" " include for correct reference") __warn_references(fts_close, "warning: reference to compatibility fts_close();" " include for correct reference") __warn_references(fts_open, "warning: reference to compatibility fts_open();" " include for correct reference") __warn_references(fts_read, "warning: reference to compatibility fts_read();" " include for correct reference") __warn_references(fts_set, "warning: reference to compatibility fts_set();" " include for correct reference") #endif #endif static FTSENT *fts_alloc __P((FTS *, const char *, size_t)); static FTSENT *fts_build __P((FTS *, int)); static void fts_lfree __P((FTSENT *)); static void fts_load __P((FTS *, FTSENT *)); static size_t fts_maxarglen __P((char * const *)); static size_t fts_pow2 __P((size_t)); static int fts_palloc __P((FTS *, size_t)); static void fts_padjust __P((FTS *, FTSENT *)); static FTSENT *fts_sort __P((FTS *, FTSENT *, size_t)); static unsigned short fts_stat __P((FTS *, FTSENT *, int)); static int fts_safe_changedir __P((const FTS *, const FTSENT *, int, const char *)); #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2]))) #define CLR(opt) (sp->fts_options &= ~(opt)) #define ISSET(opt) (sp->fts_options & (opt)) #define SET(opt) (sp->fts_options |= (opt)) #define CHDIR(sp, path) (!ISSET(FTS_NOCHDIR) && chdir(path)) #define FCHDIR(sp, fd) (!ISSET(FTS_NOCHDIR) && fchdir(fd)) /* fts_build flags */ #define BCHILD 1 /* fts_children */ #define BNAMES 2 /* fts_children, names only */ #define BREAD 3 /* fts_read */ #ifndef DTF_HIDEW #undef FTS_WHITEOUT #endif FTS * fts_open(argv, options, compar) char * const *argv; int options; int (*compar) __P((const FTSENT **, const FTSENT **)); { FTS *sp; FTSENT *p, *root; size_t nitems; FTSENT *parent, *tmp = NULL; /* pacify gcc */ size_t len; _DIAGASSERT(argv != NULL); /* Options check. */ if (options & ~FTS_OPTIONMASK) { errno = EINVAL; return (NULL); } /* Allocate/initialize the stream */ if ((sp = malloc((unsigned int)sizeof(FTS))) == NULL) return (NULL); memset(sp, 0, sizeof(FTS)); sp->fts_compar = compar; sp->fts_options = options; /* Logical walks turn on NOCHDIR; symbolic links are too hard. */ if (ISSET(FTS_LOGICAL)) SET(FTS_NOCHDIR); /* * Start out with 1K of path space, and enough, in any case, * to hold the user's paths. */ if (fts_palloc(sp, MAX(fts_maxarglen(argv), MAXPATHLEN))) goto mem1; /* Allocate/initialize root's parent. */ if ((parent = fts_alloc(sp, "", 0)) == NULL) goto mem2; parent->fts_level = FTS_ROOTPARENTLEVEL; /* Allocate/initialize root(s). */ for (root = NULL, nitems = 0; *argv; ++argv, ++nitems) { /* Don't allow zero-length paths. */ if ((len = strlen(*argv)) == 0) { errno = ENOENT; goto mem3; } if ((p = fts_alloc(sp, *argv, len)) == NULL) goto mem3; p->fts_level = FTS_ROOTLEVEL; p->fts_parent = parent; p->fts_accpath = p->fts_name; p->fts_info = fts_stat(sp, p, ISSET(FTS_COMFOLLOW)); /* Command-line "." and ".." are real directories. */ if (p->fts_info == FTS_DOT) p->fts_info = FTS_D; /* * If comparison routine supplied, traverse in sorted * order; otherwise traverse in the order specified. */ if (compar) { p->fts_link = root; root = p; } else { p->fts_link = NULL; if (root == NULL) tmp = root = p; else { tmp->fts_link = p; tmp = p; } } } if (compar && nitems > 1) root = fts_sort(sp, root, nitems); /* * Allocate a dummy pointer and make fts_read think that we've just * finished the node before the root(s); set p->fts_info to FTS_INIT * so that everything about the "current" node is ignored. */ if ((sp->fts_cur = fts_alloc(sp, "", 0)) == NULL) goto mem3; sp->fts_cur->fts_link = root; sp->fts_cur->fts_info = FTS_INIT; /* * If using chdir(2), grab a file descriptor pointing to dot to insure * that we can get back here; this could be avoided for some paths, * but almost certainly not worth the effort. Slashes, symbolic links, * and ".." are all fairly nasty problems. Note, if we can't get the * descriptor we run anyway, just more slowly. */ if (!ISSET(FTS_NOCHDIR) && (sp->fts_rfd = open(".", O_RDONLY, 0)) < 0) SET(FTS_NOCHDIR); return (sp); mem3: fts_lfree(root); free(parent); mem2: free(sp->fts_path); mem1: free(sp); return (NULL); } static void fts_load(sp, p) FTS *sp; FTSENT *p; { size_t len; char *cp; _DIAGASSERT(sp != NULL); _DIAGASSERT(p != NULL); /* * Load the stream structure for the next traversal. Since we don't * actually enter the directory until after the preorder visit, set * the fts_accpath field specially so the chdir gets done to the right * place and the user can access the first node. From fts_open it's * known that the path will fit. */ len = p->fts_pathlen = p->fts_namelen; memmove(sp->fts_path, p->fts_name, len + 1); if ((cp = strrchr(p->fts_name, '/')) && (cp != p->fts_name || cp[1])) { len = strlen(++cp); memmove(p->fts_name, cp, len + 1); p->fts_namelen = len; } p->fts_accpath = p->fts_path = sp->fts_path; sp->fts_dev = p->fts_dev; } int fts_close(sp) FTS *sp; { FTSENT *freep, *p; int saved_errno = 0; _DIAGASSERT(sp != NULL); /* * This still works if we haven't read anything -- the dummy structure * points to the root list, so we step through to the end of the root * list which has a valid parent pointer. */ if (sp->fts_cur) { for (p = sp->fts_cur; p->fts_level >= FTS_ROOTLEVEL;) { freep = p; p = p->fts_link ? p->fts_link : p->fts_parent; free(freep); } free(p); } /* Free up child linked list, sort array, path buffer. */ if (sp->fts_child) fts_lfree(sp->fts_child); if (sp->fts_array) free(sp->fts_array); free(sp->fts_path); /* Return to original directory, save errno if necessary. */ if (!ISSET(FTS_NOCHDIR)) { if (fchdir(sp->fts_rfd)) saved_errno = errno; (void)close(sp->fts_rfd); } /* Free up the stream pointer. */ free(sp); /* ISSET() is illegal after this, since the macro touches sp */ /* Set errno and return. */ if (saved_errno) { errno = saved_errno; return (-1); } return (0); } /* * Special case a root of "/" so that slashes aren't appended which would * cause paths to be written as "//foo". */ #define NAPPEND(p) \ (p->fts_level == FTS_ROOTLEVEL && p->fts_pathlen == 1 && \ p->fts_path[0] == '/' ? 0 : p->fts_pathlen) FTSENT * fts_read(sp) FTS *sp; { FTSENT *p, *tmp; int instr; char *t; int saved_errno; _DIAGASSERT(sp != NULL); /* If finished or unrecoverable error, return NULL. */ if (sp->fts_cur == NULL || ISSET(FTS_STOP)) return (NULL); /* Set current node pointer. */ p = sp->fts_cur; /* Save and zero out user instructions. */ instr = p->fts_instr; p->fts_instr = FTS_NOINSTR; /* Any type of file may be re-visited; re-stat and re-turn. */ if (instr == FTS_AGAIN) { p->fts_info = fts_stat(sp, p, 0); return (p); } /* * Following a symlink -- SLNONE test allows application to see * SLNONE and recover. If indirecting through a symlink, have * keep a pointer to current location. If unable to get that * pointer, follow fails. */ if (instr == FTS_FOLLOW && (p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE)) { p->fts_info = fts_stat(sp, p, 1); if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { if ((p->fts_symfd = open(".", O_RDONLY, 0)) < 0) { p->fts_errno = errno; p->fts_info = FTS_ERR; } else p->fts_flags |= FTS_SYMFOLLOW; } return (p); } /* Directory in pre-order. */ if (p->fts_info == FTS_D) { /* If skipped or crossed mount point, do post-order visit. */ if (instr == FTS_SKIP || (ISSET(FTS_XDEV) && p->fts_dev != sp->fts_dev)) { if (p->fts_flags & FTS_SYMFOLLOW) (void)close(p->fts_symfd); if (sp->fts_child) { fts_lfree(sp->fts_child); sp->fts_child = NULL; } p->fts_info = FTS_DP; return (p); } /* Rebuild if only read the names and now traversing. */ if (sp->fts_child && ISSET(FTS_NAMEONLY)) { CLR(FTS_NAMEONLY); fts_lfree(sp->fts_child); sp->fts_child = NULL; } /* * Cd to the subdirectory. * * If have already read and now fail to chdir, whack the list * to make the names come out right, and set the parent errno * so the application will eventually get an error condition. * Set the FTS_DONTCHDIR flag so that when we logically change * directories back to the parent we don't do a chdir. * * If haven't read do so. If the read fails, fts_build sets * FTS_STOP or the fts_info field of the node. */ if (sp->fts_child) { if (fts_safe_changedir(sp, p, -1, p->fts_accpath)) { p->fts_errno = errno; p->fts_flags |= FTS_DONTCHDIR; for (p = sp->fts_child; p; p = p->fts_link) p->fts_accpath = p->fts_parent->fts_accpath; } } else if ((sp->fts_child = fts_build(sp, BREAD)) == NULL) { if (ISSET(FTS_STOP)) return (NULL); return (p); } p = sp->fts_child; sp->fts_child = NULL; goto name; } /* Move to the next node on this level. */ next: tmp = p; if ((p = p->fts_link) != NULL) { free(tmp); /* * If reached the top, return to the original directory, and * load the paths for the next root. */ if (p->fts_level == FTS_ROOTLEVEL) { if (FCHDIR(sp, sp->fts_rfd)) { SET(FTS_STOP); return (NULL); } fts_load(sp, p); return (sp->fts_cur = p); } /* * User may have called fts_set on the node. If skipped, * ignore. If followed, get a file descriptor so we can * get back if necessary. */ if (p->fts_instr == FTS_SKIP) goto next; if (p->fts_instr == FTS_FOLLOW) { p->fts_info = fts_stat(sp, p, 1); if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { if ((p->fts_symfd = open(".", O_RDONLY, 0)) < 0) { p->fts_errno = errno; p->fts_info = FTS_ERR; } else p->fts_flags |= FTS_SYMFOLLOW; } p->fts_instr = FTS_NOINSTR; } name: t = sp->fts_path + NAPPEND(p->fts_parent); *t++ = '/'; memmove(t, p->fts_name, (size_t)(p->fts_namelen + 1)); return (sp->fts_cur = p); } /* Move up to the parent node. */ p = tmp->fts_parent; free(tmp); if (p->fts_level == FTS_ROOTPARENTLEVEL) { /* * Done; free everything up and set errno to 0 so the user * can distinguish between error and EOF. */ free(p); errno = 0; return (sp->fts_cur = NULL); } /* Nul terminate the pathname. */ sp->fts_path[p->fts_pathlen] = '\0'; /* * Return to the parent directory. If at a root node or came through * a symlink, go back through the file descriptor. Otherwise, cd up * one directory. */ if (p->fts_level == FTS_ROOTLEVEL) { if (FCHDIR(sp, sp->fts_rfd)) { SET(FTS_STOP); return (NULL); } } else if (p->fts_flags & FTS_SYMFOLLOW) { if (FCHDIR(sp, p->fts_symfd)) { saved_errno = errno; (void)close(p->fts_symfd); errno = saved_errno; SET(FTS_STOP); return (NULL); } (void)close(p->fts_symfd); } else if (!(p->fts_flags & FTS_DONTCHDIR) && fts_safe_changedir(sp, p->fts_parent, -1, "..")) { SET(FTS_STOP); return (NULL); } p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP; return (sp->fts_cur = p); } /* * Fts_set takes the stream as an argument although it's not used in this * implementation; it would be necessary if anyone wanted to add global * semantics to fts using fts_set. An error return is allowed for similar * reasons. */ /* ARGSUSED */ int fts_set(sp, p, instr) FTS *sp; FTSENT *p; int instr; { _DIAGASSERT(sp != NULL); _DIAGASSERT(p != NULL); if (instr && instr != FTS_AGAIN && instr != FTS_FOLLOW && instr != FTS_NOINSTR && instr != FTS_SKIP) { errno = EINVAL; return (1); } p->fts_instr = instr; return (0); } FTSENT * fts_children(sp, instr) FTS *sp; int instr; { FTSENT *p; int fd; _DIAGASSERT(sp != NULL); if (instr && instr != FTS_NAMEONLY) { errno = EINVAL; return (NULL); } /* Set current node pointer. */ p = sp->fts_cur; /* * Errno set to 0 so user can distinguish empty directory from * an error. */ errno = 0; /* Fatal errors stop here. */ if (ISSET(FTS_STOP)) return (NULL); /* Return logical hierarchy of user's arguments. */ if (p->fts_info == FTS_INIT) return (p->fts_link); /* * If not a directory being visited in pre-order, stop here. Could * allow FTS_DNR, assuming the user has fixed the problem, but the * same effect is available with FTS_AGAIN. */ if (p->fts_info != FTS_D /* && p->fts_info != FTS_DNR */) return (NULL); /* Free up any previous child list. */ if (sp->fts_child) fts_lfree(sp->fts_child); if (instr == FTS_NAMEONLY) { SET(FTS_NAMEONLY); instr = BNAMES; } else instr = BCHILD; /* * If using chdir on a relative path and called BEFORE fts_read does * its chdir to the root of a traversal, we can lose -- we need to * chdir into the subdirectory, and we don't know where the current * directory is, so we can't get back so that the upcoming chdir by * fts_read will work. */ if (p->fts_level != FTS_ROOTLEVEL || p->fts_accpath[0] == '/' || ISSET(FTS_NOCHDIR)) return (sp->fts_child = fts_build(sp, instr)); if ((fd = open(".", O_RDONLY, 0)) < 0) return (sp->fts_child = NULL); sp->fts_child = fts_build(sp, instr); if (fchdir(fd)) { (void)close(fd); return (NULL); } (void)close(fd); return (sp->fts_child); } /* * This is the tricky part -- do not casually change *anything* in here. The * idea is to build the linked list of entries that are used by fts_children * and fts_read. There are lots of special cases. * * The real slowdown in walking the tree is the stat calls. If FTS_NOSTAT is * set and it's a physical walk (so that symbolic links can't be directories), * we can do things quickly. First, if it's a 4.4BSD file system, the type * of the file is in the directory entry. Otherwise, we assume that the number * of subdirectories in a node is equal to the number of links to the parent. * The former skips all stat calls. The latter skips stat calls in any leaf * directories and for any files after the subdirectories in the directory have * been found, cutting the stat calls by about 2/3. */ static FTSENT * fts_build(sp, type) FTS *sp; int type; { struct dirent *dp; FTSENT *p, *head; size_t nitems; FTSENT *cur, *tail; DIR *dirp; int adjust, cderrno, descend, len, level, nlinks, saved_errno, nostat; size_t maxlen; #ifdef FTS_WHITEOUT int oflag; #endif char *cp = NULL; /* pacify gcc */ _DIAGASSERT(sp != NULL); /* Set current node pointer. */ cur = sp->fts_cur; /* * Open the directory for reading. If this fails, we're done. * If being called from fts_read, set the fts_info field. */ #ifdef FTS_WHITEOUT if (ISSET(FTS_WHITEOUT)) oflag = DTF_NODUP|DTF_REWIND; else oflag = DTF_HIDEW|DTF_NODUP|DTF_REWIND; #else #define __opendir2(path, flag) opendir(path) #endif if ((dirp = __opendir2(cur->fts_accpath, oflag)) == NULL) { if (type == BREAD) { cur->fts_info = FTS_DNR; cur->fts_errno = errno; } return (NULL); } /* * Nlinks is the number of possible entries of type directory in the * directory if we're cheating on stat calls, 0 if we're not doing * any stat calls at all, -1 if we're doing stats on everything. */ if (type == BNAMES) { nlinks = 0; nostat = 1; } else if (ISSET(FTS_NOSTAT) && ISSET(FTS_PHYSICAL)) { nlinks = cur->fts_nlink - (ISSET(FTS_SEEDOT) ? 0 : 2); nostat = 1; } else { nlinks = -1; nostat = 0; } #ifdef notdef (void)printf("nlinks == %d (cur: %d)\n", nlinks, cur->fts_nlink); (void)printf("NOSTAT %d PHYSICAL %d SEEDOT %d\n", ISSET(FTS_NOSTAT), ISSET(FTS_PHYSICAL), ISSET(FTS_SEEDOT)); #endif /* * If we're going to need to stat anything or we want to descend * and stay in the directory, chdir. If this fails we keep going, * but set a flag so we don't chdir after the post-order visit. * We won't be able to stat anything, but we can still return the * names themselves. Note, that since fts_read won't be able to * chdir into the directory, it will have to return different path * names than before, i.e. "a/b" instead of "b". Since the node * has already been visited in pre-order, have to wait until the * post-order visit to return the error. There is a special case * here, if there was nothing to stat then it's not an error to * not be able to stat. This is all fairly nasty. If a program * needed sorted entries or stat information, they had better be * checking FTS_NS on the returned nodes. */ cderrno = 0; if (nlinks || type == BREAD) { #if defined(HAVE_DIRFD) if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) #else if (fts_safe_changedir(sp, cur, -1, cur->fts_accpath)) #endif { if (nlinks && type == BREAD) cur->fts_errno = errno; cur->fts_flags |= FTS_DONTCHDIR; descend = 0; cderrno = errno; } else descend = 1; } else descend = 0; /* * Figure out the max file name length that can be stored in the * current path -- the inner loop allocates more path as necessary. * We really wouldn't have to do the maxlen calculations here, we * could do them in fts_read before returning the path, but it's a * lot easier here since the length is part of the dirent structure. * * If not changing directories set a pointer so that can just append * each new name into the path. */ len = NAPPEND(cur); if (ISSET(FTS_NOCHDIR)) { cp = sp->fts_path + len; *cp++ = '/'; } len++; maxlen = sp->fts_pathlen - len; level = cur->fts_level + 1; /* Read the directory, attaching each entry to the `link' pointer. */ adjust = 0; for (head = tail = NULL, nitems = 0; (dp = readdir(dirp)) != NULL;) { size_t dlen; if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name)) continue; #if HAVE_STRUCT_DIRENT_D_NAMLEN dlen = dp->d_namlen; #else dlen = strlen(dp->d_name); #endif if ((p = fts_alloc(sp, dp->d_name, dlen)) == NULL) goto mem1; if (dlen >= maxlen) { /* include space for NUL */ if (fts_palloc(sp, len + dlen + 1)) { /* * No more memory for path or structures. Save * errno, free up the current structure and the * structures already allocated. */ mem1: saved_errno = errno; if (p) free(p); fts_lfree(head); (void)closedir(dirp); errno = saved_errno; cur->fts_info = FTS_ERR; SET(FTS_STOP); return (NULL); } adjust = 1; if (ISSET(FTS_NOCHDIR)) cp = sp->fts_path + len; maxlen = sp->fts_pathlen - len; } p->fts_pathlen = len + dlen; p->fts_parent = sp->fts_cur; p->fts_level = level; #ifdef FTS_WHITEOUT if (dp->d_type == DT_WHT) p->fts_flags |= FTS_ISW; #endif if (cderrno) { if (nlinks) { p->fts_info = FTS_NS; p->fts_errno = cderrno; } else p->fts_info = FTS_NSOK; p->fts_accpath = cur->fts_accpath; } else if (nlinks == 0 #ifdef DT_DIR || (nostat && dp->d_type != DT_DIR && dp->d_type != DT_UNKNOWN) #endif ) { p->fts_accpath = ISSET(FTS_NOCHDIR) ? p->fts_path : p->fts_name; p->fts_info = FTS_NSOK; } else { /* Build a file name for fts_stat to stat. */ if (ISSET(FTS_NOCHDIR)) { p->fts_accpath = p->fts_path; memmove(cp, p->fts_name, (size_t)(p->fts_namelen + 1)); } else p->fts_accpath = p->fts_name; /* Stat it. */ p->fts_info = fts_stat(sp, p, 0); /* Decrement link count if applicable. */ if (nlinks > 0 && (p->fts_info == FTS_D || p->fts_info == FTS_DC || p->fts_info == FTS_DOT)) --nlinks; } /* We walk in directory order so "ls -f" doesn't get upset. */ p->fts_link = NULL; if (head == NULL) head = tail = p; else { tail->fts_link = p; tail = p; } ++nitems; } (void)closedir(dirp); /* * If had to realloc the path, adjust the addresses for the rest * of the tree. */ if (adjust) fts_padjust(sp, head); /* * If not changing directories, reset the path back to original * state. */ if (ISSET(FTS_NOCHDIR)) { if (cp - 1 > sp->fts_path) --cp; *cp = '\0'; } /* * If descended after called from fts_children or after called from * fts_read and nothing found, get back. At the root level we use * the saved fd; if one of fts_open()'s arguments is a relative path * to an empty directory, we wind up here with no other way back. If * can't get back, we're done. */ if (descend && (type == BCHILD || !nitems) && (cur->fts_level == FTS_ROOTLEVEL ? FCHDIR(sp, sp->fts_rfd) : fts_safe_changedir(sp, cur->fts_parent, -1, ".."))) { cur->fts_info = FTS_ERR; SET(FTS_STOP); return (NULL); } /* If didn't find anything, return NULL. */ if (!nitems) { if (type == BREAD) cur->fts_info = FTS_DP; return (NULL); } /* Sort the entries. */ if (sp->fts_compar && nitems > 1) head = fts_sort(sp, head, nitems); return (head); } static unsigned short fts_stat(sp, p, follow) FTS *sp; FTSENT *p; int follow; { FTSENT *t; dev_t dev; ino_t ino; struct stat *sbp, sb; int saved_errno; _DIAGASSERT(sp != NULL); _DIAGASSERT(p != NULL); /* If user needs stat info, stat buffer already allocated. */ sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp; #ifdef FTS_WHITEOUT /* check for whiteout */ if (p->fts_flags & FTS_ISW) { if (sbp != &sb) { memset(sbp, '\0', sizeof (*sbp)); sbp->st_mode = S_IFWHT; } return (FTS_W); } #endif /* * If doing a logical walk, or application requested FTS_FOLLOW, do * a stat(2). If that fails, check for a non-existent symlink. If * fail, set the errno from the stat call. */ if (ISSET(FTS_LOGICAL) || follow) { if (stat(p->fts_accpath, sbp)) { saved_errno = errno; if (!lstat(p->fts_accpath, sbp)) { errno = 0; return (FTS_SLNONE); } p->fts_errno = saved_errno; goto err; } } else if (lstat(p->fts_accpath, sbp)) { p->fts_errno = errno; err: memset(sbp, 0, sizeof(struct stat)); return (FTS_NS); } if (S_ISDIR(sbp->st_mode)) { /* * Set the device/inode. Used to find cycles and check for * crossing mount points. Also remember the link count, used * in fts_build to limit the number of stat calls. It is * understood that these fields are only referenced if fts_info * is set to FTS_D. */ dev = p->fts_dev = sbp->st_dev; ino = p->fts_ino = sbp->st_ino; p->fts_nlink = sbp->st_nlink; if (ISDOT(p->fts_name)) return (FTS_DOT); /* * Cycle detection is done by brute force when the directory * is first encountered. If the tree gets deep enough or the * number of symbolic links to directories is high enough, * something faster might be worthwhile. */ for (t = p->fts_parent; t->fts_level >= FTS_ROOTLEVEL; t = t->fts_parent) if (ino == t->fts_ino && dev == t->fts_dev) { p->fts_cycle = t; return (FTS_DC); } return (FTS_D); } if (S_ISLNK(sbp->st_mode)) return (FTS_SL); if (S_ISREG(sbp->st_mode)) return (FTS_F); return (FTS_DEFAULT); } static FTSENT * fts_sort(sp, head, nitems) FTS *sp; FTSENT *head; size_t nitems; { FTSENT **ap, *p; _DIAGASSERT(sp != NULL); _DIAGASSERT(head != NULL); /* * Construct an array of pointers to the structures and call qsort(3). * Reassemble the array in the order returned by qsort. If unable to * sort for memory reasons, return the directory entries in their * current order. Allocate enough space for the current needs plus * 40 so don't realloc one entry at a time. */ if (nitems > sp->fts_nitems) { FTSENT **new; new = realloc(sp->fts_array, sizeof(FTSENT *) * (nitems + 40)); if (new == 0) return (head); sp->fts_array = new; sp->fts_nitems = nitems + 40; } for (ap = sp->fts_array, p = head; p; p = p->fts_link) *ap++ = p; qsort((void *)sp->fts_array, nitems, sizeof(FTSENT *), (int (*) __P((const void *, const void *)))sp->fts_compar); for (head = *(ap = sp->fts_array); --nitems; ++ap) ap[0]->fts_link = ap[1]; ap[0]->fts_link = NULL; return (head); } static FTSENT * fts_alloc(sp, name, namelen) FTS *sp; const char *name; size_t namelen; { FTSENT *p; size_t len; _DIAGASSERT(sp != NULL); _DIAGASSERT(name != NULL); #if defined(ALIGNBYTES) && defined(ALIGN) /* * The file name is a variable length array and no stat structure is * necessary if the user has set the nostat bit. Allocate the FTSENT * structure, the file name and the stat structure in one chunk, but * be careful that the stat structure is reasonably aligned. Since the * fts_name field is declared to be of size 1, the fts_name pointer is * namelen + 2 before the first possible address of the stat structure. */ len = sizeof(FTSENT) + namelen; if (!ISSET(FTS_NOSTAT)) len += sizeof(struct stat) + ALIGNBYTES; if ((p = malloc(len)) == NULL) return (NULL); if (!ISSET(FTS_NOSTAT)) p->fts_statp = (struct stat *)ALIGN((unsigned long)(p->fts_name + namelen + 2)); #else if ((p = malloc(sizeof(FTSENT) + namelen)) == NULL) return (NULL); if (!ISSET(FTS_NOSTAT)) if ((p->fts_statp = malloc(sizeof(struct stat))) == NULL) { free(p); return (NULL); } #endif /* Copy the name plus the trailing NULL. */ memmove(p->fts_name, name, namelen + 1); p->fts_namelen = namelen; p->fts_path = sp->fts_path; p->fts_errno = 0; p->fts_flags = 0; p->fts_instr = FTS_NOINSTR; p->fts_number = 0; p->fts_pointer = NULL; return (p); } static void fts_lfree(head) FTSENT *head; { FTSENT *p; /* XXX: head may be NULL ? */ /* Free a linked list of structures. */ while ((p = head) != NULL) { head = head->fts_link; #if !defined(ALIGNBYTES) || !defined(ALIGN) if (p->fts_statp) free(p->fts_statp); #endif free(p); } } static size_t fts_pow2(x) size_t x; { x--; x |= x>>1; x |= x>>2; x |= x>>4; x |= x>>8; x |= x>>16; #if LONG_BIT > 32 x |= x>>32; #endif #if LONG_BIT > 64 x |= x>>64; #endif x++; return (x); } /* * Allow essentially unlimited paths; find, rm, ls should all work on any tree. * Most systems will allow creation of paths much longer than MAXPATHLEN, even * though the kernel won't resolve them. Round up the new size to a power of 2, * so we don't realloc the path 2 bytes at a time. */ static int fts_palloc(sp, size) FTS *sp; size_t size; { char *new; _DIAGASSERT(sp != NULL); #if 1 /* Protect against fts_pathlen overflow. */ if (size > USHRT_MAX + 1) { errno = ENOMEM; return (1); } #endif size = fts_pow2(size); new = realloc(sp->fts_path, size); if (new == 0) return (1); sp->fts_path = new; sp->fts_pathlen = size; return (0); } /* * When the path is realloc'd, have to fix all of the pointers in structures * already returned. */ static void fts_padjust(sp, head) FTS *sp; FTSENT *head; { FTSENT *p; char *addr; _DIAGASSERT(sp != NULL); #define ADJUST(p) do { \ if ((p)->fts_accpath != (p)->fts_name) \ (p)->fts_accpath = \ addr + ((p)->fts_accpath - (p)->fts_path); \ (p)->fts_path = addr; \ } while (/*CONSTCOND*/0) addr = sp->fts_path; /* Adjust the current set of children. */ for (p = sp->fts_child; p; p = p->fts_link) ADJUST(p); /* Adjust the rest of the tree, including the current level. */ for (p = head; p->fts_level >= FTS_ROOTLEVEL;) { ADJUST(p); p = p->fts_link ? p->fts_link : p->fts_parent; } } static size_t fts_maxarglen(argv) char * const *argv; { size_t len, max; _DIAGASSERT(argv != NULL); for (max = 0; *argv; ++argv) if ((len = strlen(*argv)) > max) max = len; return (max + 1); } /* * Change to dir specified by fd or p->fts_accpath without getting * tricked by someone changing the world out from underneath us. * Assumes p->fts_dev and p->fts_ino are filled in. */ static int fts_safe_changedir(sp, p, fd, path) const FTS *sp; const FTSENT *p; int fd; const char *path; { int oldfd = fd, ret = -1; struct stat sb; if (ISSET(FTS_NOCHDIR)) return 0; if (fd < 0 && (fd = open(path, O_RDONLY)) == -1) return -1; if (fstat(fd, &sb) == -1) goto bail; if (sb.st_ino != p->fts_ino || sb.st_dev != p->fts_dev) { errno = ENOENT; goto bail; } ret = fchdir(fd); bail: if (oldfd < 0) { int save_errno = errno; (void)close(fd); errno = save_errno; } return ret; } libnbcompat-20180822/rmd160hl.c0000644000175000017500000000471313355271171016217 0ustar jgoerzenjgoerzen/* $NetBSD: rmd160hl.c,v 1.8 2008/10/06 12:36:20 joerg Exp $ */ /* rmd160hl.c * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * * from OpenBSD: rmd160hl.c,v 1.2 1999/08/17 09:13:12 millert Exp $ */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #include #include #ifndef lint __RCSID("$NetBSD: rmd160hl.c,v 1.8 2008/10/06 12:36:20 joerg Exp $"); #endif /* not lint */ #include #if 0 #include "namespace.h" #endif #include #if HAVE_ERRNO_H #include #endif #if HAVE_FCNTL_H #include #endif #include #include #include #include #if !HAVE_RMD160_H #if 0 #if defined(__weak_alias) __weak_alias(RMD160End,_RMD160End) __weak_alias(RMD160File,_RMD160File) __weak_alias(RMD160Data,_RMD160Data) #endif #endif char * RMD160End(RMD160_CTX *ctx, char *buf) { int i; char *p = buf; unsigned char digest[20]; static const char hex[]="0123456789abcdef"; _DIAGASSERT(ctx != NULL); /* buf may be NULL */ if (p == NULL && (p = malloc(41)) == NULL) return 0; RMD160Final(digest,ctx); for (i = 0; i < 20; i++) { p[i + i] = hex[(uint32_t)digest[i] >> 4]; p[i + i + 1] = hex[digest[i] & 0x0f]; } p[i + i] = '\0'; return(p); } char * RMD160File(char *filename, char *buf) { unsigned char buffer[BUFSIZ]; RMD160_CTX ctx; int fd, num, oerrno; _DIAGASSERT(filename != NULL); /* XXX: buf may be NULL ? */ RMD160Init(&ctx); if ((fd = open(filename, O_RDONLY)) < 0) return(0); while ((num = read(fd, buffer, sizeof(buffer))) > 0) RMD160Update(&ctx, buffer, (size_t)num); oerrno = errno; close(fd); errno = oerrno; return(num < 0 ? 0 : RMD160End(&ctx, buf)); } char * RMD160Data(const unsigned char *data, size_t len, char *buf) { RMD160_CTX ctx; _DIAGASSERT(data != NULL); /* XXX: buf may be NULL ? */ RMD160Init(&ctx); RMD160Update(&ctx, data, len); return(RMD160End(&ctx, buf)); } #endif /* HAVE_RMD160_H */ libnbcompat-20180822/Makefile.in0000644000175000017500000000417613355271171016566 0ustar jgoerzenjgoerzen# $NetBSD: Makefile.in,v 1.39 2015/05/02 12:52:59 joerg Exp $ # srcdir= @srcdir@ prefix= @prefix@ VPATH= @srcdir@ SHELL= /bin/sh CC= @CC@ CCLD= @CC@ CFLAGS= -I$(srcdir) -I. @INCLUDES@ @CFLAGS@ CPPFLAGS= @CPPFLAGS@ DEFS= @DEFS@ INSTALL= @INSTALL@ LIBMODE?= 644 LDFLAGS= @LDFLAGS@ AWK= @AWK@ AR= @AR@ RANLIB= @RANLIB@ LIB= libnbcompat.a INCS= nbcompat.h \ nbcompat/assert.h \ nbcompat/cdefs.h \ nbcompat/ctype.h \ nbcompat/dirent.h \ nbcompat/endian.h \ nbcompat/err.h \ nbcompat/fnmatch.h \ nbcompat/fts.h \ nbcompat/getopt.h \ nbcompat/glob.h \ nbcompat/grp.h \ nbcompat/limits.h \ nbcompat/md5.h \ nbcompat/nbconfig.h \ nbcompat/netdb.h \ nbcompat/param.h \ nbcompat/paths.h \ nbcompat/poll.h \ nbcompat/pwd.h \ nbcompat/queue.h \ nbcompat/regex.h \ nbcompat/rmd160.h \ nbcompat/sha1.h \ nbcompat/sha2.h \ nbcompat/stat.h \ nbcompat/statvfs.h \ nbcompat/stdbool.h \ nbcompat/stdio.h \ nbcompat/stdlib.h \ nbcompat/string.h \ nbcompat/termcap.h \ nbcompat/time.h \ nbcompat/types.h \ nbcompat/tzfile.h \ nbcompat/unistd.h \ nbcompat/util.h \ nbcompat/vis.h OBJS= @LIBOBJS@ WITH_DB= @WITH_DB@ .if ${WITH_DB} == "yes" . include "${.CURDIR}/db/Makefile.inc" .endif LINK= $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ COMPILE= $(CC) $(CPPFLAGS) $(CFLAGS) all: $(LIB) all $(OBJS): nbcompat/nbconfig.h .c.o: $(COMPILE) $(DEFS) -c $< $(LIB): $(OBJS) $(AR) cr $@ $(OBJS) $(RANLIB) $@ nbcompat/nbconfig.h: nbcompat/config.h nbcompat.awk $(AWK) -f nbcompat.awk nbcompat/config.h > $@ install: $(INSTALL) -m 755 -d ${DESTDIR}$(prefix)/lib $(INSTALL) -m $(LIBMODE) ${LIB} ${DESTDIR}$(prefix)/lib $(RANLIB) ${DESTDIR}$(prefix)/lib/$(LIB) $(INSTALL) -m 755 -d ${DESTDIR}$(prefix)/include $(INSTALL) -m 755 -d ${DESTDIR}$(prefix)/include/nbcompat @for file in $(INCS); do \ echo "$(INSTALL) -m 444 $$file ${DESTDIR}$(prefix)/include/$$file"; \ $(INSTALL) -m 444 $$file ${DESTDIR}$(prefix)/include/$$file; \ done clean: rm -f *.a *.o bits nbcompat/nbcompat.h distclean: clean rm -f Makefile config.log config.status configure.lineno rm -f nbcompat/config.h nbcompat/nbconfig.h libnbcompat-20180822/mkdtemp.c0000644000175000017500000000505213355271171016320 0ustar jgoerzenjgoerzen/* $NetBSD: mkdtemp.c,v 1.3 2004/08/23 03:32:12 jlam Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if HAVE_NBTOOL_CONFIG_H #include "nbtool_config.h" #endif #if !HAVE_NBTOOL_CONFIG_H || !HAVE_MKDTEMP #include #include #if defined(LIBC_SCCS) && !defined(lint) #if 0 static char sccsid[] = "@(#)mktemp.c 8.1 (Berkeley) 6/4/93"; #else __RCSID("$NetBSD: mkdtemp.c,v 1.3 2004/08/23 03:32:12 jlam Exp $"); #endif #endif /* LIBC_SCCS and not lint */ #if HAVE_NBTOOL_CONFIG_H #define GETTEMP gettemp #else #include #if HAVE_ERRNO_H #include #endif #include #include #include #if 0 #include "reentrant.h" #include "local.h" #define GETTEMP __gettemp #else #define GETTEMP gettemp extern int gettemp __P((char *, int *, int)); #endif #endif char * mkdtemp(path) char *path; { _DIAGASSERT(path != NULL); return (GETTEMP(path, (int *)NULL, 1) ? path : (char *)NULL); } #endif /* !HAVE_NBTOOL_CONFIG_H || !HAVE_MKDTEMP */