diff options
author | Vijay Kumar Banerjee <vijay@rtems.org> | 2021-03-02 14:10:06 -0700 |
---|---|---|
committer | Kinsey Moore <kinsey.moore@oarcorp.com> | 2022-09-06 13:46:39 -0500 |
commit | 8a9b628ef287addccf24d524af19edc7b3f2a69e (patch) | |
tree | 933e3fba3b87d1159af2e996da56de14c93c2946 | |
download | rtems-net-services-8a9b628ef287addccf24d524af19edc7b3f2a69e.tar.bz2 |
Initial Commit
This adds the rtems-waf submodule, minimal build infrastructure, and
testsuite support files.
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | README | 32 | ||||
-rw-r--r-- | netservices.py | 74 | ||||
m--------- | rtems_waf | 0 | ||||
-rw-r--r-- | testsuites/buffer_test_io.h | 21 | ||||
-rw-r--r-- | testsuites/tmacros.h | 283 | ||||
-rwxr-xr-x | waf | 173 | ||||
-rw-r--r-- | wscript | 56 |
9 files changed, 646 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..618d791 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__ +.lock-waf* +.waf* +build/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ae86e49 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "rtems_waf"] + path = rtems_waf + url = git://git.rtems.org/rtems_waf.git @@ -0,0 +1,32 @@ +Overview +-------- + +The rtems-net-services repository serves as a central location to manage +libraries and tests that require network support, but can otherwise be shared +across multiple network stacks. + +File Origins +------------ + +The sources presented here originate in one of several locations described by +the ORIGIN.* files and whose license is described by the COPYING.* files. +Commits adding such files should include the hash of the target repository if +applicable. + +Installation Instructions +------------------------- +1. Populate the git submodules: + +``` +git submodule init +git submodule update +``` +2. Configure and build +``` +./waf configure --prefix=INSTALL_PREFIX +./waf +./waf install +``` + +More `waf` arguments can be found by using: +`./waf --help` diff --git a/netservices.py b/netservices.py new file mode 100644 index 0000000..08e7595 --- /dev/null +++ b/netservices.py @@ -0,0 +1,74 @@ +# SPDX-License-Identifier: BSD-2-Clause + +# Copyright (C) 2022 On-Line Applications Research Corporation (OAR) +# Written by Kinsey Moore <kinsey.moore@oarcorp.com> +# +# 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 OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +from rtems_waf import rtems +import json +import os + + +def removeprefix(data, prefix): + if data.startswith(prefix): + return data[len(prefix):] + return data + + +def build(bld): + + arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, + bld.env.RTEMS_ARCH_BSP) + + def install_headers(root_path): + for root, dirs, files in os.walk(root_path): + for name in files: + ext = os.path.splitext(name)[1] + src_root = os.path.split(root) + path = os.path.join(src_root[0], src_root[1]) + if ext == '.h': + subpath = removeprefix(removeprefix(path, root_path), "/") + bld.install_files( + os.path.join("${PREFIX}", + arch_lib_path, + "include", + subpath), + os.path.join(path, name) + ) + + lib_path = os.path.join(bld.env.PREFIX, arch_lib_path) + bld.read_stlib('lwip', paths=[lib_path]) + bld.read_stlib('rtemstest', paths=[lib_path]) + + +def add_flags(flags, new_flags): + for flag in new_flags: + if flag not in flags: + flags.append(flag) + + +def bsp_configure(conf, arch_bsp): + conf.env.LIB += ['m'] + section_flags = ["-fdata-sections", "-ffunction-sections"] + add_flags(conf.env.CFLAGS, section_flags) + add_flags(conf.env.CXXFLAGS, section_flags) diff --git a/rtems_waf b/rtems_waf new file mode 160000 +Subproject 1a118bbcd52138dbdc3236e64bc23fd430a064b diff --git a/testsuites/buffer_test_io.h b/testsuites/buffer_test_io.h new file mode 100644 index 0000000..f0eae50 --- /dev/null +++ b/testsuites/buffer_test_io.h @@ -0,0 +1,21 @@ +/* + * Support for running the test output through a buffer + */ + +#ifndef __BUFFER_TEST_IO_h +#define __BUFFER_TEST_IO_h + +#include <rtems/test-info.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define TEST_BEGIN() rtems_test_begin(rtems_test_name, TEST_STATE) +#define TEST_END() rtems_test_end(rtems_test_name) + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/testsuites/tmacros.h b/testsuites/tmacros.h new file mode 100644 index 0000000..8189149 --- /dev/null +++ b/testsuites/tmacros.h @@ -0,0 +1,283 @@ +/** + * @file + * + * This include file contains macros which are useful in the RTEMS + * test suites. + */ + +/* + * COPYRIGHT (c) 1989-2014. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifndef __TMACROS_h +#define __TMACROS_h + +#include <inttypes.h> +#include <rtems/inttypes.h> +#include <bsp.h> /* includes <rtems.h> */ + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <rtems/error.h> +#include <rtems/test-info.h> +#include <rtems/score/threaddispatch.h> + +#include "buffer_test_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define FOREVER 1 /* infinite loop */ + +#ifdef CONFIGURE_INIT +#define TEST_EXTERN +#else +#define TEST_EXTERN extern +#endif + +/* + * Check that that the dispatch disable level is proper for the + * mode/state of the test. Normally it should be 0 when in task space. + */ +#define check_dispatch_disable_level( _expect ) \ + do { \ + if ( (_expect) != -1 \ + && (((!_Thread_Dispatch_is_enabled()) == false && (_expect) != 0) \ + || ((!_Thread_Dispatch_is_enabled()) && (_expect) == 0)) \ + ) { \ + printf( \ + "\n_Thread_Dispatch_disable_level is (%i)" \ + " not %d detected at %s:%d\n", \ + !_Thread_Dispatch_is_enabled(), (_expect), __FILE__, __LINE__ ); \ + rtems_test_exit( 1 ); \ + } \ + } while ( 0 ) + +/* + * Check that that the allocator mutex is not owned by the executing thread. + */ +#include <rtems/score/apimutex.h> +#define check_if_allocator_mutex_is_not_owned() \ + do { \ + if ( _RTEMS_Allocator_is_owner() ) { \ + printf( \ + "\nRTEMS Allocator Mutex is owned by executing thread " \ + "and should not be.\n" \ + "Detected at %s:%d\n", \ + __FILE__, \ + __LINE__ \ + ); \ + rtems_test_exit( 1 ); \ + } \ + } while ( 0 ) + +/* + * These macros properly report errors within the Classic API + */ +#define directive_failed( _dirstat, _failmsg ) \ + fatal_directive_status( _dirstat, RTEMS_SUCCESSFUL, _failmsg ) + +#define directive_failed_with_level( _dirstat, _failmsg, _level ) \ + fatal_directive_status_with_level( \ + _dirstat, RTEMS_SUCCESSFUL, _failmsg, _level ) + +#define fatal_directive_status( _stat, _desired, _msg ) \ + fatal_directive_status_with_level( _stat, _desired, _msg, 0 ) + +#define fatal_directive_check_status_only( _stat, _desired, _msg ) \ + do { \ + if ( (_stat) != (_desired) ) { \ + printf( "\n%s FAILED -- expected (%s) got (%s)\n", \ + (_msg), rtems_status_text(_desired), rtems_status_text(_stat) ); \ + rtems_test_exit( _stat ); \ + } \ + } while ( 0 ) + +#define fatal_directive_status_with_level( _stat, _desired, _msg, _level ) \ + do { \ + check_dispatch_disable_level( _level ); \ + check_if_allocator_mutex_is_not_owned(); \ + fatal_directive_check_status_only( _stat, _desired, _msg ); \ + } while ( 0 ) + +/* + * These macros properly report errors from the POSIX API + */ + +#define posix_service_failed( _dirstat, _failmsg ) \ + fatal_posix_service_status( _dirstat, 0, _failmsg ) + +#define posix_service_failed_with_level( _dirstat, _failmsg, _level ) \ + fatal_posix_service_status_with_level( _dirstat, 0, _failmsg, _level ) + +#define fatal_posix_service_status_errno( _stat, _desired, _msg ) \ + if ( (_stat != -1) && (errno) != (_desired) ) { \ + long statx = _stat; \ + check_dispatch_disable_level( 0 ); \ + check_if_allocator_mutex_is_not_owned(); \ + printf( "\n%s FAILED -- expected (%d - %s) got (%ld %d - %s)\n", \ + (_msg), _desired, strerror(_desired), \ + statx, errno, strerror(errno) ); \ + rtems_test_exit( _stat ); \ + } + +#define fatal_posix_service_status( _stat, _desired, _msg ) \ + fatal_posix_service_status_with_level( _stat, _desired, _msg, 0 ) + +#define fatal_posix_service_status_with_level( _stat, _desired, _msg, _level ) \ + do { \ + check_dispatch_disable_level( _level ); \ + check_if_allocator_mutex_is_not_owned(); \ + if ( (_stat) != (_desired) ) { \ + printf( "\n%s FAILED -- expected (%d - %s) got (%d - %s)\n", \ + (_msg), _desired, strerror(_desired), _stat, strerror(_stat) ); \ + printf( "\n FAILED -- errno (%d - %s)\n", \ + errno, strerror(errno) ); \ + rtems_test_exit( _stat ); \ + } \ + } while ( 0 ) + +/* + * This macro evaluates the semaphore id returned. + */ +#define fatal_posix_sem( _ptr, _msg ) \ + if ( (_ptr != SEM_FAILED) ) { \ + check_dispatch_disable_level( 0 ); \ + printf( "\n%s FAILED -- expected (-1) got (%p - %d/%s)\n", \ + (_msg), _ptr, errno, strerror(errno) ); \ + rtems_test_exit( -1 ); \ + } + +/* + * This macro evaluates the message queue id returned. + */ +#define fatal_posix_mqd( _ptr, _msg ) \ + if ( (_ptr != (mqd_t) -1) ) { \ + check_dispatch_disable_level( 0 ); \ + printf( "\n%s FAILED -- expected (-1) got (%" PRId32 " - %d/%s)\n", \ + (_msg), _ptr, errno, strerror(errno) ); \ + rtems_test_exit( -1 ); \ + } + +/* + * Generic integer version of the error reporting + */ + +#define int_service_failed( _dirstat, _failmsg ) \ + fatal_int_service_status( _dirstat, RTEMS_SUCCESSFUL, _failmsg ) + +#define int_service_failed_with_level( _dirstat, _failmsg, _level ) \ + fatal_int_service_status_with_level( \ + _dirstat, RTEMS_SUCCESSFUL, _failmsg, _level ) + +#define fatal_int_service_status( _stat, _desired, _msg ) \ + fatal_int_service_status_with_level( _stat, _desired, _msg, 0 ) + +#define fatal_int_service_status_with_level( _stat, _desired, _msg, _level ) \ + do { \ + check_dispatch_disable_level( _level ); \ + if ( (_stat) != (_desired) ) { \ + printf( "\n%s FAILED -- expected (%d) got (%d)\n", \ + (_msg), (_desired), (_stat) ); \ + rtems_test_exit( _stat ); \ + } \ + } while ( 0 ) + + +/* + * Print the time + */ + +#define sprint_time(_str, _s1, _tb, _s2) \ + do { \ + sprintf( (_str), "%s%02d:%02d:%02d %02d/%02d/%04d%s", \ + _s1, (_tb)->hour, (_tb)->minute, (_tb)->second, \ + (_tb)->month, (_tb)->day, (_tb)->year, _s2 ); \ + } while ( 0 ) + +#define print_time(_s1, _tb, _s2) \ + do { \ + printf( "%s%02" PRIu32 ":%02" PRIu32 ":%02" PRIu32 " %02" PRIu32 "/%02" PRIu32 "/%04" PRIu32 "%s", \ + _s1, (_tb)->hour, (_tb)->minute, (_tb)->second, \ + (_tb)->month, (_tb)->day, (_tb)->year, _s2 ); \ + } while ( 0 ) + +#define put_dot( _c ) \ + do { \ + putchar( _c ); \ + } while ( 0 ) + +#define new_line puts( "" ) + +#define puts_nocr printf + +#define put_name( name, crlf ) \ +{ int c0, c1, c2, c3; \ + c0 = (name >> 24) & 0xff; \ + c1 = (name >> 16) & 0xff; \ + c2 = (name >> 8) & 0xff; \ + c3 = name & 0xff; \ + putchar( (isprint(c0)) ? c0 : '*' ); \ + if ( c1 ) putchar( (isprint(c1)) ? c1 : '*' ); \ + if ( c2 ) putchar( (isprint(c2)) ? c2 : '*' ); \ + if ( c3 ) putchar( (isprint(c3)) ? c3 : '*' ); \ + if ( crlf ) \ + putchar( '\n' ); \ +} + +#ifndef build_time +#define build_time( TB, MON, DAY, YR, HR, MIN, SEC, TK ) \ + { (TB)->year = YR; \ + (TB)->month = MON; \ + (TB)->day = DAY; \ + (TB)->hour = HR; \ + (TB)->minute = MIN; \ + (TB)->second = SEC; \ + (TB)->ticks = TK; } +#endif + +#define task_number( tid ) \ + ( rtems_object_id_get_index( tid ) - \ + rtems_configuration_get_rtems_api_configuration()-> \ + number_of_initialization_tasks ) + +#define rtems_test_assert(__exp) \ + do { \ + if (!(__exp)) { \ + printf( "%s: %d %s\n", __FILE__, __LINE__, #__exp ); \ + rtems_test_exit(0); \ + } \ + } while (0) + +/** + * This assists in clearly disabling warnings on GCC in certain very + * specific cases. + * + * + -Wnon-null - If a method is declared as never having a NULL first + * parameter. We need to explicitly disable this compiler warning to make + * the code warning free. + */ +#ifdef __GNUC__ + #define COMPILER_DIAGNOSTIC_SETTINGS_PUSH _Pragma("GCC diagnostic push") + #define COMPILER_DIAGNOSTIC_SETTINGS_POP _Pragma("GCC diagnostic pop") + #define COMPILER_DIAGNOSTIC_SETTINGS_DISABLE_NONNULL \ + _Pragma("GCC diagnostic ignored \"-Wnonnull\"") +#else + #define COMPILER_DIAGNOSTIC_SETTINGS_PUSH + #define COMPILER_DIAGNOSTIC_SETTINGS_POP + #define COMPILER_DIAGNOSTIC_SETTINGS_DISABLE_NONNULL +#endif + +#ifdef __cplusplus +} +#endif + +#endif @@ -0,0 +1,173 @@ +#!/usr/bin/env python +# encoding: latin-1 +# Thomas Nagy, 2005-2018 +# +""" +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. +""" + +import os, sys, inspect + +VERSION="2.0.18" +REVISION="96675f149f50dab16c9e2e6aaf5e787b" +GIT="ea17399be6950863390fb7bf25b747b67afe0ce3" +INSTALL='' +C1='#/' +C2='#-' +C3='#)' +cwd = os.getcwd() +join = os.path.join + + +WAF='waf' +def b(x): + return x +if sys.hexversion>0x300000f: + WAF='waf3' + def b(x): + return x.encode() + +def err(m): + print(('\033[91mError: %s\033[0m' % m)) + sys.exit(1) + +def unpack_wafdir(dir, src): + f = open(src,'rb') + c = 'corrupt archive (%d)' + while 1: + line = f.readline() + if not line: err('run waf-light from a folder containing waflib') + if line == b('#==>\n'): + txt = f.readline() + if not txt: err(c % 1) + if f.readline() != b('#<==\n'): err(c % 2) + break + if not txt: err(c % 3) + txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00')) + + import shutil, tarfile + try: shutil.rmtree(dir) + except OSError: pass + try: + for x in ('Tools', 'extras'): + os.makedirs(join(dir, 'waflib', x)) + except OSError: + err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir) + + os.chdir(dir) + tmp = 't.bz2' + t = open(tmp,'wb') + try: t.write(txt) + finally: t.close() + + try: + t = tarfile.open(tmp) + except: + try: + os.system('bunzip2 t.bz2') + t = tarfile.open('t') + tmp = 't' + except: + os.chdir(cwd) + try: shutil.rmtree(dir) + except OSError: pass + err("Waf cannot be unpacked, check that bzip2 support is present") + + try: + for x in t: t.extract(x) + finally: + t.close() + + for x in ('Tools', 'extras'): + os.chmod(join('waflib',x), 493) + + if sys.hexversion<0x300000f: + sys.path = [join(dir, 'waflib')] + sys.path + import fixpy2 + fixpy2.fixdir(dir) + + os.remove(tmp) + os.chdir(cwd) + + try: dir = unicode(dir, 'mbcs') + except: pass + try: + from ctypes import windll + windll.kernel32.SetFileAttributesW(dir, 2) + except: + pass + +def test(dir): + try: + os.stat(join(dir, 'waflib')) + return os.path.abspath(dir) + except OSError: + pass + +def find_lib(): + src = os.path.abspath(inspect.getfile(inspect.getmodule(err))) + base, name = os.path.split(src) + + #devs use $WAFDIR + w=test(os.environ.get('WAFDIR', '')) + if w: return w + + #waf-light + if name.endswith('waf-light'): + w = test(base) + if w: return w + for dir in sys.path: + if test(dir): + return dir + err('waf-light requires waflib -> export WAFDIR=/folder') + + dirname = '%s-%s-%s' % (WAF, VERSION, REVISION) + for i in (INSTALL,'/usr','/usr/local','/opt'): + w = test(i + '/lib/' + dirname) + if w: return w + + #waf-local + dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname) + w = test(dir) + if w: return w + + #unpack + unpack_wafdir(dir, src) + return dir + +wafdir = find_lib() +sys.path.insert(0, wafdir) + +if __name__ == '__main__': + + from waflib import Scripting + Scripting.waf_entry_point(cwd, VERSION, wafdir) + +#==> +#BZh91AY&SY[Pe(¬#)0Z0e#)b<w{{#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)46Z[Yo+fڝٱ67FK;79V}d<Y#-|'r{TaNǶcz9 [={L̫k秞}PtwǠ$*|}e0ٷs{}#)#)'`#)tzx>AGPvmͰteN`;6TiҊ#)i:G#/w`N#/E=FA JQJIJ$@#)*#/Rgy>ǵU=Ww^n&gsTTv%%tsꏠnwzt϶}|M}{;<Gp\a )귖y`0=#-d;`tOyww:hP#0[2H0PIE)@zz#)͢YjT_w{@h[NjQrƁ{3`7tPmkwnb9ВM:Ӡ"I3m:{=[n;j=I9;v[؎y[cTn{={ghltuV<)Mlmٯn{7mZ6kn&=_f^<87mswZo#)OWޫ8z#)TJd%-Al;짼뻔3guُSpni4 s]#)λH#)(]^^٘eZiwnh'iN}s}ۏf3bMsghqo/]]nzs;mWVǷ[y71ϗϳ#-wa.w|Ӳ`ћXdP^Y4r/i`lzfquyg#)0USiѦh\ױN}mWn˧ker }Ϫh=d(o07tׯ:mebuA8q]k{a:W0{#)wb&>7P5{bOqֻK*oix]nwZl)ݶ}W51Nc/@^|w컛w}!}2i}=k#iݛ^^[ɾd+x}}}#-_ #)#)&LF'bC@4d456I~%4A h<"53P@#)#)#)DAi6&SOxxAꞣC#)2#)#)#))" j`h?Pѵ#)C@dѠh#)#-#)#)#)#)I #)&MmFbdɩ2#)#)$D#)44(&Tҟ=?J7mMDѠ#)#)>_GUV0Z檊].D3UREb,kmUɤ?Am?Nvqe31=LV2z xUT1E?{#/G8#@{ho"4rAT,y]eJyxS>"걉&țZeλ?rA 4RuvM"#)p'9YBDhb*PE#)#)=aimWt[jUV2J35#-3M4`ID"XԥQM#/&hA(jj5FmiFh5M4#)m404ŕ6IZ6(JYiM5!e6h&31IFd#-)E %aK-#Jmlm6VѦbK3!4D2ɶm4ԔlZl͙i2LPTEE#/dQ$mEFIQ bTD)BDIb$mHA#-42H fAK+,Idb)dM4L*E,$h&Ĕehɡ&$%D4Y64I"KH"lk$3b$436 ڒ$X$%$(E"(02JaL2Rj,͍FRDKJl!EYR6dM؉")Fl2$YJ#-dM461Y,D M$R0٦@BMI,(1fPE4D֠XLIdd#JLe"Th&m(i1PlB@E&c$h"Y!L1FKbQ2LBB*HIM14Lbe$)30)def XDjd2#/CDR4bjT%4R#&2dSi#/,QE*I1$Shj441LL63Y 14" M(B2l`2Hi,j&IbAeHMRP(0Г2HedFSYJcj#- dDHhmMmh2LM(Z#-JmK4YM#(K,DZX[(Ć)4F#ka͢lVƶ*6L4R44F5Yc(S*HD[%QIKQ&D5cR#/e2eI*4TB+d"TT63,YLS,JJSLl)%2RZ!գ%AEVMdjEHkD$mhŊl2ѵ0U@iR F2&ƍ&di ժ* KY4IR1!MlY"Y1Jm*RYaZDFK"e5MMk,Xlk+,l Db4!-T%KQY&6LJ,&l#-"+,E1Jl4AE$&Fm6F6ScE%bH#!4LQJdRP5BT4 JBj-#/36)F̤!Hbki4F5&a$YP-4)Ě4Yٔda,jE54ECF4#-1RfQj4 2A&ĕ%I1Rcda)ME`0٤lfECJ2ZfhT2Hlق!M#b5MJHH-a*51Xţ2i0IBɑQlQ%bfQFCd2"6cTj4PeQAb 5&0,#(jiM2QF"Z Qb,FRȩEQi0DY4E3(ZR*lJ"eZՃELJ#/b(LkIJm-chh$A (4Im$50A2`BJl͉*eddi#/i&(ԕe$b(Ѡ&"4ZYhj$Ze(Ml!TmIEE4&E23#1F#S6IIb5%K*ɭ6[(QLiV6cm[Rf2BYKQŚTmDm*TRf#-,%FlkeI&IF#-1hƍ[V)*Q`!F4jamlZfZJke,jjmV&I(k5&eDP!Q&$)&Ddb2lf[F/||!)#/rgᬌSRo~+#/{>#/hlz9zSw*7ˋ!#/#)D(0\:8pI m'cDH8g?֏J/e+)#|[s*l=_:eC#X;a8"8'%5'#/-]&dƈ6?Fd;&7]Wx,r]yfsW aBM^,2ٍ.e) ILM6Ő1gQ]-#7D k{vXS#)_?m,:.kדGX_Kb1O.{>GNVQL0ФY;d4Dχ11<IJ<rFXж(D0V+n{76\W(TTv0խ,3ۼw,m$؟mF i=@ⅧnE2.E7.CM֯zx#Q~~ y2Fmꠊa=WR9r2#-!70mxNwDFԣ+ousFkWyݍ:W.d.d| <\#-؇&6SC<6]2rjł)G֓Oܹ6C˵3@?tiKIPC0bVMX_n qC#-fLuBw*-dlA쯃#{rHȦwԊb=yn9:YiaCG/5 yu혬?>95ï~z_;wktΡITm S!YS7L0=F&K>)ZM`RtiP;襈3,TYˈr$eq&2}4:țȱo"ETP1PX+W#cRQ4iїEU9h1Rm++_#/N2hW&xڹ?j@C(WV?w}ngunm(`>?kYĦݹ]t)9]e)2%9JUS梶/]W)VJܱhݖq3kh:UPSE#'cPi-#|ӓݾiDFqJG~ekfL J$:дeuX4k\c8;j<(<J)")۾doSB#/rrӺ5_;W夔|/ d(FlZjڔ."T\x[EbuaX@ENHQT}~t(O9lXtA)\s,1P=D9z01v9Ňo)kGAkٯob)3#/3#H3T/dnbGӺ7w݆?Hjd$51SZj}y]\3~#/ᤎd"Xܑ4,X}Yn0ggk8.|bA#{S<#/tɣJU;xS#-L3v+T,xmJ}7MbZ͆yai-j-1I-7beR<xXsY)ۥ'O9<i6ц\2{ʣ*FLvGcϭ#/Qe#<}l<p"GL3uS߮:HtFHriutFWC5sfx:vC#-`ݐeq9e1 JStL_j.ሧ>A8{ƔL|"=`k\K^t6TႰB;'xo^֫+#7&!{]\krCŶ{Cls>vs-u}:섒HTJSၶ,14KX2}Ȳ=9zC}Nez|+JE1ywX5bw(Ð"IX@+[qf6q6>uXdE(i;w[9u25^/Cd5DT'[7Љ*U!VTօJ+9]zѸu5&]_BR#/QR>WKi;RWWKb"QV#AET|ͿoGչVlϩ\(/rHcѺ#/ѨjvYBwdE^`^sLa>f~Uanq!_)Nj'6ʴOb\Ru616O0"Alg8@2Itӿ;EEB`fHXE':jҦ>;1.7D2Iڔ2Ҹv齇-'mv#/cϼN'\3 w]!PW|TW&1QOŔԛ$v<o)d2TB1k|PBlRK:#4*,(-f`R#/:vuJ)Ix]I̐V6YSo$ydqj+6ӳ>B},_Uc*Ή֏MHe(+vteFW=u/~.e#gFY7'ǻcMd_?2em&yYLS~(v,vQh#yDs32LJ\95kvv=D/Nus-e1g&n.1+Z+g1U 1!QY>P*#-ʢ2,S\&N믯M5^]1TLCׇT-V˂¤X#-4$~ac?-JIˎ4ތ;:bӠic8E7WO7rJdSB^sƪqfayZNG^b^:3yf)!ls5SX1ê}$(W7"IIDp]fm=`MF0T٧ܠ1ȥ>Ol5QתF_?F^Ah|Km5=-,p#-nuUk2(5Bʪ8X#/UaˎCb ֔^=xP/o#)>>33c4DD;Lw=Pu7V^-EuW{QSGP$?pUREWɶ)օZvq[v>v=_#Go2~ˌeKK|q+wpΏT\zG<c/Y YMh=ɿR)9:sIǪ# UKd{k#-;ݼno%x9d{MxbZziG3F,E6%UDl;)]q}(d7r:f2٨ Q#-rAfR#DT1hʱAi$hYz ˍwD`!gxeK_<9aّȷ(Hjy%2,o!#)Gԏ-luX~u#-r>2vcHQp烄ݵҔmXt٬`Ҍ&eUWƂV"ԞfL+"?Smk@`O@c-TS1-9;DwVoƪ~G]dymqKzvud#//x@;+[7ڎuwm#)Ct8FP#+c*kman*QNL^ph&'ӦK<q֡'0b'xH13d]')M:f9l 1_ t(:8c1f^r.u"%L'mCѷoVpo' Gg_҉ctw~J5ZsD'K(T84-[֢PlPm65sk]R5xݹN"W\ufƬ&֘9O㏇эZҫ|vYgŮ! |~5BBh#)#)`#)D;cp/5~eйBʴޣAеȷkd}F֯*z #--ETouDvLl6'dìꄆk0yìf#-rldiɫWm-G z4]ŷщ!w|R貎]^6n(E+dX(#/bS1!,go\S5r`tSLкFeU@/=Nuʍqm|2d߱iW&x-SQu hcsدʝ/yk]*8b_̼=\daOQӹj3I˸};qxҨ?q{%h+WHmx'L^IUoXkFtA/|+yVM!%wmi%fw夏ҵ~ynB'kY?#-ƊFH8ΝIN7єV{6@`ҏ6uqvLڵKJNNݛ{iP%1!?`pfp9}/wNa]Ya,\BR/!rf$(:?s"pc#/7{`9vRg" %`"∱#/hYiܖf8L97OqۋIfjا6}.^lnke_['EDx!P嵼Pz~iӜII,V.,6>:הyA6v`Ԥ?j:?O!Ĕh2{- |gDAA/h;&9(}t!bՕ0Yof<(D>#-)#KNvT뎉!#)% y ft9Ნ%^#Dlڃ:T`)63V:7LwA&訜`5HXʎZ_r D8tNehi%5@YGyw_A=;'^c.i`ey>˥;zxX%nt҈yo\1;P9ts.ĵ,1XqsNǤҜ4j~ou>4 #ʢ.(Ys1Y[eh^$0vѾlvryE8J Ȭrsk6hP#)dƾ(6͂BP|-nwoB0+&7d?\NDg5 *G/?FimÖ%N)82CFX 8L;P07XǏV0#)&~H=νT@rܧ+bUT=$S\<(EPYy"2nקtz#- (J_)4wE##)PRDJ^mNk[PDR #) $e~%lQto]҄,:OB#),;ǗCHEXQ6<v~2VT&EH?3Sr0#)ݽc-!LhG@y:cPi.^aŻ4X*A^9^#-ƝLEDIp糋a9yLT0r#-^8 K#)ݥ"#)#)zSODi((.}q%Qk~?G1Q*`Go3y5ц6cjb!2G~t<`|d #)>בj>ER=S:s|4jGmfտ.4j]:;.>:v@0)f۶_P(>qQ+~7o9$#-MkS#3^E푻Ƌ0YD;|Zsr3~m!&L!BI@4-)R`aȥc.gՋT 8).:7Bzϻ;#l PCI%{ܥ*%8C`0u^J4ZMI:rlYTTho° )@-20SBkM>K^[g2,̣K/rPi+$0pq {ؑ;(c$ה7#o.ۖ93O~[#8I8U3#)#-YzBK̳x=~rP=dAR5}jVI魳Lg1al!_aIHtii`ٞs3!}#v%6g#{`,d>o,ôbOr4>z崎P@۩9X aa(%zoݶt8Jݬ~i3[%t<}C|Wa i鲇1@*RGW0^fzyl#-3iHs@E#)/ #){eTV<B+:E*}PcnKl]M2'0JXЉ1Nm))^-ZwăI5ؘf/CaƩ*-ĵFKHWߔSz]`uE{}Ld"69Bd3 L1-`,ʋ#/Dn}^},8"fax7XNo}c+<x$n;#-8$v|Ac^2i^ Q-8z3:.:d RPOfw(7*0pu60nïePh"#_ zM3 @dM=#/j3m)Ld*&XYwseDE̳#/+J.W0uiAj5lS[!箽^Y#/`&BI37681^M_l$P!"D-;q!g뮣u{T]n#/e0##)Q\#)U$#/`$6v`zBݢ+^<K6#/Nf\3^!t樿#/EXi$N-ҴPaibBv(3 $t2U!U&7MhB-cZǮb#-t^d9W(ݽ!mC1>ՁSa@he5EY2+c%2#/l/%WEϱ4FҖXީnθ~:sEp*(~sꆄ4uy!#-lBI:;˦849BÜuJ8bW8Rʁ2z=:F7hR8cSPx#/hF/x!0Y=31wL^FUMĽn$Ǵk@:M,}#-dJۂ/?C\>=N:}h復|k8ts58sɮW8P#/(";Rɷtb/]̻]֞;#1Jd[Gk:m WM1Åc9|y!aL"D)$CTVmDn `ҡq)ErY8HeޡbIM-D$l;^pjrpBi2Nԯk`ިКI(\Pb0`C[!'ߌ~C[.8TT)h7xɐ#/x!1qߗlUÃ9':w|-eMGWO_ƣʭ6NvϿ䥧`p+OBםmuq2y#/cVfDwT)Ȏiho9*ba1G}"hL͍RP\7t1zBmԱ0$cFv/-0d@#)奉c6PaF=z|4~ٿAp%0X#jūW"X2ѷJxѰh,<b=@wU,hY8tHWsx]J#TjrJ]":85zdf`+Ef,Uq0X3JJY5`|]smH!U?@l.tW:]V^G'ylaׯƟwϫbnP9WlDქ{c^ D#-ݟH\;[7`U-mۜ;uǻ7{>J'.=28.9RY-hRdn9.5L6W<<kS"dXK-]jTa>[;q|w+R~3}U{C|FlߒBB|l$#Qacg%(g=H-52NMu#M<42@ 6Aҷ}m?ه_Mv]4-t52ICq5.i*~a vz,6#-ؙ*q8G~Tvk=O'4J-hbX0FKgY>:; PI\)#35ܽ1640XPII&wVDVANL@2,* 6Jd ::a#- ul#-dQE$6Tu<#-V#Yk#-)$դo.)ڊ"0ѥbQѸ&b̴0V܌e2eCSJ" @y~ws4$_xwKw!(nrZ|~cH\4zdJXmu^k'T4AUL;ERi\Dyb9iȦa=4lצ!F7-+[#-#\!.}|C1ٸC&ǣ"<QqBK`vr[yvbOS%,,`"W^ф>(d#,\E&!>PrmC#/6^tmkT'g3ppkb8:B,\X(h|H%lŔc,;[#-#1>N#5G+NɎ4$;>)͙n$"ص7Sըx:)x؋FgAg%9RqTF;D}wv}Xt<bgcKk*S$@-s~#ڹ#)Cp+.,QL#-5ћn\V#PCP֭UهFa~QF|WU=أ?{#/hDPي:>`n#)lULzYfugXG#qKs8f:F!ksi3[#/z62mFnjK$!QhPV#-RL`iadt#/#}E, 0PkIׁt2P: 5e= |ϙ۲#)(7yտe:=-o@}p!=^Be.:T8iX147z3 bRQHWI۸%_mGPp=xG1lrVܮR냈qa|2>"j&TWdB(&esxc쇎n\gX,Pbv|?_]#-çHن1ۭլٹYoO5өWOKϫ706-#-c/^Őo7T0l=XzVAE$yɬnyKw[f"a*l gкH%Ts*`AftqA,75`+#/W8Sn*AjJۖ~_ u=>6XRi>-#)':(@H#/wEBuyQܝĉypr##/gE3jK&1*X_bhb엣EU4TZ80+|sP8mȥ+(#/;%mW+juRή^e`ѩ)".i>>鮾/bъݵͣ_#-4$(@̌xQ{(#-oRm$H"]TUS!<u}9cuib)f@hH6)7?y[ϼvC?H0`ʟxiuC,u/R4}J%]5aIԽ~(_?v@E`pr\N$9B%8OFxN#-#-=$6p05aB(a~T5AҸ\/#)*0Q--lmg/V0,~29௮RbaQ!?Ki#-ݝ($*Rh!0V!H#)1I[d\T(#/N=>4o~>|w[C#}H||*z<i#+`1yz_.EwC!~#)|Bfӗ0^fx~9w(5"#-@r 2Ft\.g>6,dyD3D]l~ܗc]7)ߺA:߫;d:vP4sH]h13H(#/xPԽ]#-[+F#--@=_ީ3'RA3Jh$Pᙿ)c墏fG=5.R!#/Bc!nblyC(YpO6+У=#Gt=W鞫+lA.*˨#뷗HnVFG#-6Ӱ9X\kf_xaج[x_9}6!d@߬}-;HO䲡P?B@p~*̅yPIBvz>-[옶*ĄǸ$M\?$y1mHҡ[?ʶ_Cwu=0mSHV~%4 CcuKVW[@*9iečh`,ZZWRj_`Oz~=WԱ\jy˨*y^QLHNCCi=q؟،?,RsCK*QKb)#)WݟiiGH ("D27U?OwOW}&ݜ>e3|MW~)u}MWGcAKk\ڬwe#}?=;Ovg.[z!"Zj×[TxϗyI::ݶ+VEV]y#-.nYh{pm\\,3_^V59{#-C} qH#-߽E{3t/>w~/㊛$%Cyz1K6̶St[F<kf72tS?lQα@e\#-ә9alc#-5m_+ƙk٢7Z#-1[x[NsJlkBwt5zewNN6~_?TpP6rzR捃~gG*as'x\blB2.sU?F6e2w?.,<{D,w;D^M{;uhx(aDY'w.~-R$8@4?aXcGefzu?|{OGRx ewiDZ03쾓Á)edF#oUW~W}ߤ[Vٳka莀ۥt̾j;э1}ptd幽G5>#/(H~J6+۴ӣ0δ?o3tF1wRf=#-~$^JjZGݔ(>wZ$Wq#/:|+05ss&K25;Msj_#-~Y슜<Y^[#=6{ƶu6m`~.۟]n)m"Ϫ#/_Fq/#fivy7?Ȱ#)%{P5??/]aR)-l39 hW/@~? AX#/-1HLa՝ܟ:yo'|5~}7./XڻeNG]'ѧNuӫ7ԅ՝^~?Opv{}À\9~#/6ɞۣmOݒM>K.q6kV`,= pDZn"A/-#/~#-?~;x>;#/>`:O!{L!#/ DOBlF%AhoNegxstmKM䳻{2dI} YBA<}Tc☾ZI/Hl<X#)Q92%|U%`iA\2Jԓ2t[?"̍H+V3>yߢuwu,)w7\8ClRDu0`4>#ԈpM-78]fp$: yG@%}iߣgz>oPM+Y4`[xh!^',R+1dώְV Nm\_66{浗"FVSaclb^bV?=7xE|WF9 6?iExS*</[k#-#/d-`A! > A'<ijJ$Ks՝aPpFycy*½>!Gv[}γLÐIIE#/$um|@p),Ck6ZT"ȰH ,~Mu7sj~EDxdW`n)W/#/Ea'JN<s=NEGsϭa(Ѡ#/ߦ-_;1}*G7cӻLZ'"dKs6OSh|ɇkoL8?Sja<];oC?6]=h@ԧbI;6>Kc!cɚy[g$>o %{t)$,F:4͒NY$xz7_uD)揓a#)Q{Lk/1Vϔ<쿥ds#jX݄jAaOQj#-U##5(D #D49ńih,Bt!YՙfOn`a-AȱaILA"hhn)"4[VWc'φđu`\j5w\Qs4*"ОV6b/["?9gA((>?)YŚZ9+rcF6,# Doǹ~F##E4E#3YޠAaRD!#-ZmZI*UPPYOsqrӛޙAFi|-'lDjUuwu_fWV%u[?OctCV<"1Nre#<"!Vu4,eVMqeo9#-C ڇ#/0>GI ]uG<~ק٣OZxF#)8g#/5U6[>aL~Yw?VPwu~uw\3ܮk>&5)n|_{}^M\4}sYO1l@L/0A^u`QH:Z.8vzs14fׁ܅QmZ$V҆AX)%<#-xAVbƕiiɲ(vkжJR"Pmb"\YJg0Uj4cj2#/Zj[*c86FH2#-Ӥfk!(AS(2-LõsjS@:F1,ȘaaYҨqԲ3HZ7KkA#)ekݧ`2zXUֻ]b0Q",&T8T${1TGHM&Db%Ů!h"9*L:%#W:? |AI$9%!Ņy- Edc=ý=1&h2_eqxܾRv?2/Vꇻo1*c#>'=z9#-%a٭)ozLюes+5P^/<"l9k=Tެڬ3&ͥ&~?r|PsvA#)_${ԎV6T>pMh4/\ˡAU$̪(4#)#e $#<N(~휸~o3_\϶Y^O5UP3\D;{s<__mSdΌ)Y7#"=3ml/*\IHKFꑀwf\F?n4xU.B5Q_mldqV!1[#)˦mQn,+JNO]_{H*߈}$<ORɃ(@!1sa虑s,]Wh&r41-6nH)1=jo\AyY=Zﲊ#/gApE30BHV*4qixF&2!f<mD Lgh-Op@nb20ՂS1v*cu|.K,AաͽZu5یmY%5:j&heP)*(ia0ņ `,#-M zD[ѥ]d;Su`.C(MTq20ֲE#/[d$g@ncJ{d8Fߞ#d|y(Pz˓#-v#)8gXoyff4b|L ~8zU*>1'-J'{ x|tjaҝ nXDeFأ,-*~4#-8|ǻb"5#\\axqiF4S>},Y%ө Hȑ#u0MV:EA1=!D1m@zQ4ޝ#/T^Ѭ#-#)i-Z A8:plo1csWJT"9m^Y;5|R(,,-H`~wp?0qyVvm=2|؎_J`CT<2+rndɠrҴuF:;H#+` PJ(#CcPqBF<]i24>:ۍFRvt]YXHQLEUAEtn9RcxBqjxd1LYC8xj0<D#-0 S*4i)XC72(U#-"QB_f$EXЎ7[m/ uLALFKbV4 =٠Dn$DN׳&hHZ1,sIJYb)op+X(GIH_L.m_y[߉ߎ@50.棾0CJRs8eϩӑ'{6A7n|Pl}XG~9w%Ůkbw[m}cFSˑ!vr䂪P-%<EwuOmc.3Q&䊕t=Xڭa&26ǭW$sXizmEMb4ӓHJl1H,Xư(:xTglB!A|lY#/ATb×wDe6TpRY¡M^8-a#/8;\;$3#/|_Ĉam犁;:lf=<(a4!Dk@m&#-X)nV(<[wŔ띯;ck[!rR8r/Ryo&UAw#-.)ǎ*;c`om0Cn*6-d۶ҹQ|[#-;tdlwiއ]mGQgtAY7Jp`gt)uB,7moˎ{HX뫣NLS(ijP;5KM1dፑXe'91#/FoNvJ) ssZ+ݰ,+NmO$Ԛa69q~VLfm!(eߜ~tLReuʒ/;[I^Ut~嶜n rqB17מm[^Jq'ؒ N|~q)xAe2ɉɿH5F蛎JYY1D1ʛtcikITi#/uoB]OmRoNYy\#/wƷ`M㛢?ۧGtJLL k8!Lm?oxta^4@en8¹bUֵim;'yhz7,+ɫ돼!M*K*7:"ԛ .{A3MVFӲok$,!bhEToE0C5vM3^Be,/3KW]-ߜ0z(sqhS#/1pfnO=!;p#-gVs&R^Xm*,Uw+ͷMØI|kҸ0zecZz]ztkh%1BN[Dߌvh "{6Qx#)pwE(l&=k /K<FC#;0s9,ZKul"G#)Ҟ`:_M"ByS@#/ugx".DH``<&K';$0a@M(·ZW(ۋulvK3wA~kIW]^|>ߞ\i_e<8I| d.m,_;:vb3c,#)BP OwwvOeu<[#,j#)E^)l&.2uJ˲w'>82Ǐk%<#/O9yos&ǡ8.}ƵTusE/K(di*KpxMi#/RјWKc:hp`viq`Jg^&b|ἳvK.˗!B#/6%X[qkdŰ#-`Rb]83cO]B$K|\ț|jg}'$jaT;_I)TeeV#.6®j'pw{?T=#/V!}bxGkΈ<*XƌAh1 jDʪ\9[2neq$ޘ]Dd{>M{f.t>Hhp2vBT)@vlџYη~n7I?oR7b[Ox8y4˰JFQ\CfCJqixi?K\ADcHJz3rPDP#Nrc5qݠbY#-ôcmTst:{fNMP2@Lj spm<(ndÜimĎm&a$ǒfseXuaz>xL:- @~Zགྷ̈?_צ"!4~ks6#*g-M/\Fd-vC f縅d14 Vꗸ<WH}#tOQ6[T%:|x~SPFI?d|1ט-{.`fO>4Q!Z<LQE-a H0N3\JܘrSs t UR>\}[crXZ.,#Ώfi?N7I.kSͨ#zGQ#h,ߛє`Uu@MsϝCmDىGQvhf;C;N* r4+f|L1dEDh>VAE,DD[2cofD&#trrGZK0WKR#-V!Ӧ#/gkhAC;Z[뮊V-V>QT <ωՒ'lļpHUVoфrgs5;Gµ9#ZT#ܩ1ȱf\lu_ľJl,Wa&J/OK3b^oB:^Y'&նs˙gybϒmȎ3'V߆2 Ħj0q+J`I\RogDPрci%ޔ!aN`Ώrj荏9E`odbT[h|#-^Ji5xx#o~#)Y{;!W)LkYsZI->sx%R"gɐ5t_}V;.&uA*$"+A\|B*9!rnmG#-LQi`ЂoQ@J*/FvM,DzGw)[k"Qzʧ(Xy}&r~տsnG?F(4ID>_TA3q{Th<qYELQ?=l߈w0}SgN'Rt6/Ͱ-783͝[/raHȻo6]A2]]]EF̚9L7/87_mWX\ S[yTn6]6+l4xw#ÑZ?UC.D '#/Yֱ(1)M?<C&7(egYeյܰdQ;5Sn8?#-c?NWit$ɟ#AtF:eӇŚH6u_֩SC@B}1#{|O<vr!&tv|j{#)`W@l7 `w3ԡGGTxeֺ-N6LfsW Q!%i:k:|ʷ9m(Uk^JDjXNЕ\VZC#/%sh1v_s?ERX\("FLB-ckG!!bַ?+Z*8)#/,Oz:::N,ur[2_~KRVl#-8,XeNnvjۙS++~eadXSU`Y3=KjUX8Cg7-4&`VKm{u{Ügj+Rn%mvW`nifHOah?Yڐ ]\ &H~il*K{&:s5bhZ<^wQ< 0[a*yILO*H+-}Y1fgN}<_T}wv&R{ߎ\gNxOnI15η;?Q-MRڸ6uaZ#-6iT#/3XoW(]Ju(+C͋;ߪ8ak@Ҋ$*d0.yΰ~CV#)t=F>碧G!ueF՛AmRυ[y@Gs.|o?ċ9GK@Y ([u`"%K'l7L<tD[߷}g1K#/u+;zEko.Zho1jۂ:f\1mM<w]7+#/~Jo8FC=f.#)R:LqsD_+]napZm}H&Q|Y)NJWD ו8_$e.n?B<.?w/rF~8\E]ouqPsph<fw#)2Y*đm#)V17-#BK9{}*4snT<w~ٺ4`'UV7US<xBϲ^[r:TlVMKW^E$#/rkrFei=`#-[ub#-maiX3u.to1wm]<2G;I!xyylYѾ\ј6xT Р@&iQI:*|WΈuEd]6QOƾhnm-3q(vm035=Uň4lmMv#bNr`0iXM%\T=Z#/:@cjG#/$}mu8 >K%!k'0ݞ`Vj\C|&rҤZ@4jd$ү*,3ZCQdv/~W#/1o{5dKօP/6blM˰d$ac±^K:]}5"DPKmn\۱-LVXFf[&it^!y拼EC9H2tflkAM1C,`lرkOIiN}#/n#)A^(l!.o7B[8fXHڀWz2sX( pp4YAaX8~ =ޡOϒӯtq8==-$Uma+#1-!%gX'g1UEilG<8?^j*_nS%S(^x]c-MzBDC k>;kN$og$[$v.Ȟ/jknuVҨ99шd~4ti&ϛ/~/[l:unM({-:;_Qcקn:ǫoԙ=CkMQfSprLK8'R#-صƗ˃(=4DSX?dK1ugԎ&xtM(_K՟Mah{/\wTH-/Q4V(-M?|]IY8;p~g6T##-%MPp.gZ+ml!Po`Bb=E;{HQkz@}_p1#/Ե%l\FiH儖"BrZZ,Ya}7zI#/V^8s17f;[P GB6+{NiC&:3:r/U/!Yy4 R&O:#/B֠|g:-rS1qȀQ#)8guv'9%GrWtj^[dۉRy62#)U)QU7=f{|GњhC*s@yqIJ=29K?bm4X'?KOamDѨd>vyXB#L(훭`6$:ܮMádx&#/X+#-<DUn#-qtġw@9(X9֙`/D$)F62!*>9@u啕jyF8{'z=ݳ q#-kCXvNy*|NZY6tӵX,#/1D#-aI0jl= ټvрWc9NDp<aZ~$#-#-#)"-S++ePQ['(xT'7Z@enZT[-/%a^R0~#{,#/G3GBqPt!@Pvwn)%wfsj;3IB:=."IekI+sgŃ%0(2%@h(21#)I{x̺}%cK\iqwUZ\ڛ&1T%mϩD絥z 40AMFN Os;59`KJ Ais>1C9#-ʊ%,J8]$hӜVܮٖaTd:2'iI]]xfM9/cOښrE=|-̇_V[~Hssc|a%sEMe=Wwlfg4ܢ`E3Y(3=nRjR5Lߊ{v#/qւs`WLÍVhw-W8g{mqnO<-9֍, C`N`[y#/Z=s'WH.V|W᪁wUk>&#-~9"ֺN;s4֎Y#/fx}prr=qĖܾ7Αj72sڹV{TsAFŰnm ,#)(lcrgzkKk6w;ŷK!t]= [xJ.;tuY~T+_:>Hا[< ٧*.:'v"Wz&+G|덱*1E-v`#kcdۣrȒR4 s6@Qm3N+ߣl"XH;"=ĐW#/0cM{x|Vf0R5ֽ33|hk}Iv("`Taߦ:bdB;oPhs+!ϖ24jf3(;tipV2pv|ӃmvK1YtܿJ%@NWNދsC9_kz5JmcvF*̆Mry$%TDR'bfsm:N<^WH^u@CyeN{tVzx7)&wAթ@xZ#-nP=N6 kؙЄ8i#"E---i}'˂#-;<M ;cox#)$|ʧ]CI%&1j>6?_5ݜ+T[<9#/B76/ {{Մ*8wV[fv0U#m#/NJxQSD;j,0.ojXUX";&03gU_|=?D_zmP]F@ģzGc[#-,#qGAI^vD3d֠E<Z8$tuќlcP$~tԟNBev:?g/jt@xz<vtOW>2Ġ#)ԠOEskqVsL AD$S~TWƮ]oC#/uܶ$WtlJEEaFDRAB#-=ץY_cH1lgOއGc8v:Y#"R(0`k! |:/WSmKv53TYųe2?0ٰ}W.YzHM#)7ϻ##/&-@{$C̈~gCB"%LCBIQ]잿r_۬*0_=ÖWyΕ$NIeYU`r,e,r1#/#/r96U-Ѻ ܆~#-T^ ltTlIhJk]!gTbXF+?}/Ca8MW08'#/֢Ժv01G:~F{YW#/Uf[g~~s<7EaVN~fPGն.2Z*dم2QJf%9^,햝7CPE3S5@؟zԙJ`r#)_):y Jab\>e:V3Bx5-J܁/ԈܰnoG^q04@<7;,XO#)vxx!/v<h>on~tV:BCv|\υ*2.%HX/t<4;hldpM]<NXHYU7QH7ݐ57j:fᭅU;igtn#/^=C髁)>_|LF<k@wt)yA~Hu,C*ri#-w52x""7sO#=wÙU:T*RBԬ#/~sf4E{QO6X{5T0.{x|`]V8628m4f5j[~$1!blM1>`\A#-.);Y}c>ODȠ(&]#)iuQ:vٮ"HLWQ[epue֔U^9Ss"V¶=@VW|裃 {9¡lΏgV#/@qP,v4Xzy&es-~GwbQ3nq #-A%&N6?ČbIGKVH(ju)9&Qb/6q1oG}.+*`hNBHϭןկ.Mj\(so)g#-4F̷e`0RqQ|;l %#-j'GA>#-GNWYw/9D;z@bR/H'YZt#C,@yNr+(kخ3zL;,"썼BN3$>q64Ҙ#-& [$-Sn-\fx,RoJ R*Op2cM'#1'ة#-$nE"#/xw.Om~ի֑BzbF<%xk5#0_3HWw=d.;#/*d", iVZ<D9$(!=E,Ǟl{nQ&IkjXىt%g<nEmIٓ%8LC|*D@`s59z]^76漎ټy/rCb-g;L"4CqmLmpA@N"JoKf#3>0l@0BQ30[ZQvrI{@{"ϕr[xu 9&j7JsBZlX`az'ﲡSᆟ,XJKDHK]ܰSɴ?;8e.~x$ uRfX~1o'\8`-# rD\Cv_XNe:wQ\+(M-c3Pڿ]daQ#`tWw74|^,4mCzqtZCU6у#-eLw!N*RωljθJL-rj~Ă=%gJP2q#O{xt}=}lRpLn^|æU̧#-yv{G>laoa-3=k{bh+\SaBpc=[1q%~^QDByqN6#\6oF:i:O#)YzL{ygfwaA&A7n$:T9oƚg88oe#-#)Sv FT2@z5[{6wܾߢר$dW6#)}kӛm}dQ}@I4riOObx+iM1ftб>sW0zbi'1(ue0onl14D]@unYM׃\EbRAPE H154#)B}Hגht+wn0oVppYё*tw@#/g*^|b )CU+<ߌOMfjoHAJ#JJVݿJv^yy0|y%#)k]q~ʨ,B1F!#/tW>TuUS!_~GS3x%oFK1_bZ&"Zr'?p#-wlcztO6u@#)9iH_/VkrÅ£笧HO% drI5=[#-qtܷK?>F;Z9f^"q,_ʩ}sker'PFTӏwzf#[5RȌ,i~463eJGZ <|q6'P> Z\IiDݿYh7G<4=>4TgNbʊ"h(GO_r-c]I>k@0~߯쳃7`*d#)!e@·ēZ?5?pW8/v, [2ZB#)Nâ"abe;"97#)J 3#)@#ꂶHdDTKGE@2.&c}#akJlnxX̬f bXp,cnJRbQ%n}Z"#/_B{OJgg.uMŕT;k1@#-AW 3P\V5pEM`Q:sD*23lRNo)ϥΣM!+E>TsΚ?#)`cnh>+BGG%om_u MQ'wDw,EͺJ1Vo%gv[LC(nqK96w:*p️u=Ь+YG&͊F!:8i5;<@FI4?`Ց;5F(zqTz$۳=f[/0K'N-?<tzs?#-|lg@l>Y/wR$!~Q=bX,dPi,S4f̔"z9**g||p-pq6Hk{+q6C"B^JaԐHE{K"ZSO8m۾4v1#kg·MG#/}P&7DJө6Ƣsu&Ȉ#-ha(lUeYVHaةFvtG#-m7[RirpN:7T%#-a 3٨j vQ ݉5EdCzNӹlJM*y{:VF,O&0<t'(v(#/H[nkdcV:ʲZث\mjUڽYwyֺUtRh^eeq2&+/7ɛ<ԒuI릥A3'K0G݊Y<,mKQgߓx ltHh<y̯y|GRuH{ڿege&ѭV*ZlpCoYlkjq0h2/i"k"bw&r#-VRLHy%%B$dqo`'_}<3͏氁'ܶlAġ#-DjAdUk{ן˽V2!D B4Nv&&GonvNޠw Ť*^UɵO%!7\31=t:ьdPQ"S@,Svu{7qm7s`kWIS.~LYbPו%. h#),7cD<xoQĒ!m#`{SS^ϲ*IhDJwY&tB+0.w`V_?@U!7yqFsԁ=Gff Q>{~ymLQ5UyނB,(D(=yyUҒXnbĴPӾj/@{|9AWgy~,sa:lGiop>3Bsp4S%y9|4JԒ#)kDκj@" PoCw;4DpӞ}VN6t fLFt+i7[>nP!Fda/c)9|ۧi3Κ¥k%Gկ;(#/\(Of9#(5QVbX!ź/|ll8@G*)qpkՕ8LA/Q1*P<߷9+k|c`=x|lez9d.7#FH=oz&ԳX};\RWE].Ko7M^,%A|86袐z7R{Ca=؉Ab:*J㿆ybi&z6cH+XrH#-E`=4j#YA#-c4~hyZn<(E7x?MHg 4N=֒%hauuzlFe5ՌXkk7=ڙhG~fmDn5X:&^ZǾq}NGZtm{fN}%A"LKgD01%S}/2=+>(BYC#-mYZyQ2a0H'ĤȯMzRI3t<z 62tB#"T*Zh~ݔ1!$He:nsMCho|~_糳KtgzDGV#/DhsvCdlx.(PQ&³X|dwL_64߈:73`9s| GWcKr% ]vbl F]J*o)Uf[(8?B^f] tJM/B)wE Ce0NϾh9%@0 ϣ3Ŧ,k^>Rt&:NOnP3:0QvJ7pZk\+VF=fEkHb䐈#xmI)MCbph64R&wRq81sDv{}ɆPE6%֙C],Q=#)::WtRG-M-ԔlU~u7aF*thb)p<'0k9]dLf;zqLIW8\WmzpMPbwOϑIIz,=H#/<S鷗f|gY'#- m(#)@~~9if;iabv)D+XVzfTOxly&Y#)&TZ@ztl;ZLWvR*zG#)bt#6a?#/J3?6>TwHY9|L.)* b?}-}H%fL#-#)}kJ/oەZS1_P$TRELk?~lN^;mYmΉat,)#-0V®RS2ΣӔ@7U<DWVg&{녔g.~٧B_V+Vi$|"{~4[UO+#/0eߞW8#)_c#-_KzwUuUR9!+15G 3/'p}9φ`pEOߜ?pI (/*?_\rAjݾAh1 /1u?-%++1~f27I,$?Lo\RpUC,dP?2LʢE=[x&z#Q9@UEt)}H-4JWHq7]rL]QN)Zf<A0y`pܣA6Ppe0HxNL\2nμ_62l{xA>/=Lz3),(KОLb=nu*-/-"% n"@D__y:#-Z,9:$ѩ)F$'dr7?<"nP6ClRxT"œVt_cU^-ʢ%$H19aY?NNѯ]y`2/ÈDϐ>#/m*H<\2^';v$T+#/LLglDaJ 0Z@7bd{S_wxo~w#/g}> |'v4t$W!bsGko !L}=3/V9y89M\z#`}%S6a5;%~wwh_#~gvs+Í<ն>Bb9=b Q$DOaWuy`̰!"-I#-Iv`w`<Z%LQ6_#-Zuu;[$@PXiSY<kai ~zTհ-(Ls|c̠l۪fh+:C4;}΄¹cDC%ș¡$]8hPC->o68q&#)_}1ayZr^[{ޟH}kcm%Q#/x&Ef HV7>ue-!t:yW'#/ &sW>NSMϓfvBy|m<Ro7[|;1!þJ#/b(t|QQo/o/p:B@PP02ug>+swyǂ"4QjykI:fLII<&DbU#)6 SOP{GD9=i`M_zҿ:8CY#/Ws&9\s(KW6#/R_~*ͣ?ǫ0AA3)B`I~Ounc8,'g(P<4zn/#)#)A#/"6wwվg g$d<]m mVDդn9oJ)oyݴ\JLRW<>(B_?C)0jQ^=W8<ze8k/ߩc49Fbjqe'VH,lz߷y2Yˍ_f-{*I89!Oo-ͶKr^[s;;檫ʟU?XTi)4bױoIl.Ihz:+Y|o0fU,&6CKiX_Z!g1Ϲ|Mb+ęLzdn~4mFTGm6{)@vp#)*<4ݾCHcjuPxCugXIN||DM9`Q5#/S /Qʏ,!X Fe<g<|s\2~磰X##)l{hVa }}x'A@!87W.{RKϾүQg-?xL)i]nIHz]KCQPT..Wh#/MJ&#,qˢ]!$Fצ}NYdrŝd1mVG"`(ΊW~d*{s9wu!L*Mwytf<{>gvYϬQgqE)ĸ;t+:szQVAL!Oi֯k_,Xlo[](kړL鷦]UUQu- Ju3\YqXzl+ZP_27HO^^jQDURHG`Bo>_SjԤtsPcV)wc;isga1N#7_h➜iS$SRwѾw/k[3NSu"}͕S-<4?>W,onY<nldԘs.9#-aH!)_,}x=E֝aQ$Ix ]6ywN<C+r{3)NOs5Z~_gѳҙL9׃?ƃ9xIEJ"U P!ɇ䠎v*2~f|9)k-&1@+*jNň#s^^W-w:|&LAH3,.5GQFjc,Lbʃqfƍw.SOpvpq#/5ѣ?s$vܺV|xrNr}?y/Y4Nq+~0QGG|wQ՛sDZ~I˾ŌCJ),"9Sv(Q4Λn#u{EuEA_G&mv.i[DW<gITd0}Xz^.(qv?N=3 ύDs\=I[;H{OHZLU1~2ʼn!̝8?O^ţ9nYpϔ_3E/Z :Ͼ^`ތA{mMG ;-}&}q#-!W#/8t%Gޗ,}x>_#-xBa[zQa))aެȜ-aJOjFCGz3ӲtR8t}˸xwY1ˆ#/r@{ha~9v <70Fpqu&÷-&4J?-wwowA̺igk;|%4PmҤ'bQbPP.2|Q#/_OPB7v}pGvKM.25#dOB7kFh^Á#\ZnUF"qW:'h2,8'By<Qq$ᑴ2#8Xh]Xd#d_&^G"ȝ9BoP4=<x9MIBQIlV)i6q\/O?d>QmkGxCG̋4َÅܤ}ޯSX5HZl#)Yy)V#/J%bx7#"QU֫/#)@NTxY[uS#-_g/k?Rb́+;+*m+7=#/b_wS<3zhv9&"k"#)A?9zrܾjtKd{ƙ80m}䀞y0$< ~I"cĤ )y}^?<#"7ZU#)'O8s3Bp~U!5{B?aMRr#)oM#)1R04);4(4?Yw<T.d=1^<>%H8v7H֮}s`cH(߁ӦkMkmOO"oa[@b0>x#)OcDF(XHy9 3#- }{Dt>ñ#)3IH~)q,(IO=Y2$?TjP]>B T%K-{N\kl^?tLCH@ρpsN# M`txN\~g#$}+ueqN5s pҨ(g*Y9p#/Ps!4$INr$&3Yi0Au*8(#)X˖Ĩ(u#)Ԥ<hzz#/ ܇~%P=e(":/WؤO^-mfAaArB&N0#/zY*Mt tl,tgg2jbON@q7&#/SmLzP>:Q8w76NU{j!^;]yUff#/,#tq+{ޖK](ֽ#/0Q,+*JeroxnR3,>Ŝwn&Y\MwRx=نSq\%OАr:я.8"`i>ˤ:D^c'C&ˎ8]sap2.ZB'>;'"4IB8bM#-ۖmOjhDpɓêКy9Srx-hvd#-Y{ydžڧl~DNPVmH!|O{.zOĨ"R!J!RZU#)&yT<Yz:6huHrG=?O{]X(u.#,)-MW#/<$!Vy>!Ѵ]쭵2P]ҽdRl/UdAr#/+`£ز8FmR?Ɯ̠q)#)6z(^Ig{ hQgܹީB=.lhķq$^1e2htwシms-Ŕ3 vyv\7Ng#/mv 9f$z>WBG'Peo8f+nVbk~<bdRt#/z#æMe^-- \gxѸۙ [ aVfb{A.#-XN/43! 4ߦ#Quag]ꇲ9t:lgi{9k+LAע-4yjnk|ʻ[ql:>0UBM>ku!ˁ:qo= L6i_FR`NN:(XN߯PT^p\Sl6;5*xk,(Y$n!xJcH~OxpQ\%1J }:]#-}ꎽEGCf]q[ȇ+Mν,;qkۿU;#w`#)X&"ǀ~TBøH=FA^#)#jz~>֕Gadػ#פKPrƖ.,Y>~nZ>i??k|9E#-A:N0֝&S<Ljtm̏j\B-Bs:>cS>{v?Bbz<M6P4G2Rfgߒ).u,b?Ү/q狫[ӳS;v+A7)R0<.#-GvCDۚ=[jpy-QuKeȏh})9@Խ͜{+i(s#>N4k<V* ߄)hfO5?U{~%0#/pMry~E!Xep~/67_?cXl}52GZ,\DJI< #)KGl߯eam˞h!Qnp_[4Aw@y{- 2TQ35.$@a dL'UxMrd0JDp᩻%BHod#-fi62Ӵ#/Xfab::-'Um~~3j0H\*Aȷ#]6,8Hb;:#-a>ZK_o/Mxmyyfu`06 `vqpl#-s\]SxHմwQ;fXA]@r<9Œ9#=2Vv!m-ZKX9%dJ%ALS#)\TLP/"r>537mv{?RY+h:5K""#-3v)aSh0"09^%&#-<zZTm{Z_Nc~,p.588N,Nmoqƨ,A`2\%NNܻW$rD.x7dRvmOW_lC_xdF|ÐH.{X[YBB#/#-j#-8A=zbU{S5M(]S#-:ƣȖ_3܊o6)!6{]̽9>uR#}3vagvmZU#qVX*d=ò6PHo7a[yBE#-oe_]: +!҇#-7b>Wq|<_+y['lW}8YD}[ 9PE[tH!5=@Ѧp-PE2DgEg&1r"mxhhNfCc&Zu5jr"V˥|k#--@1#-FDttmk^%aQOf;4=Q@X>B-})VZkӫ#-CB;%?l[_d+OgJ7Rg\.f]%kْt<#-ctg>G@^ Mu^q`mإkNvyÅN`&8yI(K<tI*faHy/"#y#`/-*wl"gfA.Ё#)hڳۘcTq)i8VkjG1xdEu]D7f;}QkSZ&3LBc"Pd#-KCuw}% VgFđw`Q#-߀bzݟsDֺFG}>}vovEOtQYxtt4W}UAM!!K$VA]&[_R۴TKÿyӯ8t9~( K,>FJتix ep#)(tE#VFlj8|2-MRCků#)$?-mOuy0}W;hщNrgק~#3K4?nn|-#-යY`AAb'AN`t@`V=te0*oqgYT*Bu2kW>vyo_4$?(b(03_@##8mF#-FI?R(دxvbQ`AG-`aۨķ{OnwXmttطT#/?Xf9.} N2+yLO.F`W0;.$#/R#-Z:;hy5G{ܝgHs}ߘu6C#+hbd_0wjZGFs_4P46?{#)r65#-Nӯnf/19" eywZpNO,@V®q|t1fw}^qn.I!2UzY Gd(#)C:VWo?#/A`-I#G`nXp&=7i\ݠjBB1>~VΖ#/Ӵ \-^F.4$7W;m6Qh,B)Սpm#w#)ka(r)H#-Naj,d$@Št٬iORy|4U0/?WN{S%tm hM#-j61olyX["K db#"H ar.ⴥ@Kf@t2y3#\)ٮÂm0rN:1#/d_ @:OWM)''#*ނиx͉Ms5,h#/T=| ];`$IQ++]QaC*hZ{0I`_M\DŁŘBwpڝ:m%l0hL̒~yy'QIJ=o)r?OD27GFkqU/i]}: PpF{q#-?;s#-OOF5 #vb#-m@y- >#I7u9D4UH[~ )K~OJ^s{4eL;d7j\q_Ւ|O0@831n%I$xw%~~3[#-W^B8\?{L<d@AF6Pܷ?tʛv!ڰ-EM=?a/s+ڋrp$9z߀ΣHТ%m.AYu>nCFSl]5iׅW x&N#/QmC#/#-iMͬ#-#-|uOfDfq0hLR<AyhnC_4W#j6h҈48C.k,hs*--bCň4D CkAp۸?$Lo2M: !Pg7~ dWb`jv:7&tcQzAJ˃Y#)DRωpڲ^eA%*`k|X}3&Bx .t)cP$ MhL1&Q'_ 1TQ#/D[Mڋ.Ywv0T3aёu0 h $Ġ>-z?<#)܅?6WTj8!IO1k+'iaCQI)2۶HE>ם%=FvKKF2WYiU9ć4+dR#/܍erhR:I$5QIu--m5sVZ\oL:P^kh5bSL.QQD.^7wٍ@NZ!$@y_5($fVi?܄jTm2sx0BwOɨ"$hr#/WQB(cvUyP6 '؏<xi oB!ϲYs@F$$0\%aG]d>D-5#-&喝DUw,D@9#/[(>2d?ۍc94,I$;]I))2bZ mӽiuqwoȧN)"~]b/KᒛoY}quo0woo6F+0?rӌݩM"\ܦRo33;0Dwǂ}4|~O߭[A%/={78~wn:QRR"2m!\;!7VfIJx1)@)Q2?_7Ѯһ?Nd3'; dBQCF؉淩DRѐN(o@d! K#pb`^A5pF`G ,[xSC #)B}yW9o$_cXWjװ%o`Y"Dr'Qȹg?յ_Hl6BA!?8烟tXƜvHCmS]`|@{|S8sO#/wR$jsܠ)Q~E :z#):+P<@¥?˰=ܡD<FE#!v,Wpmr|#-@fC@uo$T`T>΅>^W/+cao+dh|ew-NϲC*ې؇L1 N#$OjS> .`h#)}^_"}}lvjk{O{J;=MW֣;[mb"_݈$˛$_|P+pGhda\=%`p?4.Bv*TgI>Fv:`brs7yv#z۠dBV#Jp2nD,pKU4pᱬ*蘑)Q8gID5//L0tR$)Kswha-G-%q&ޝNdS0G-fyX)">#)lV|'<T(/{LS`Z6KRDkÀ {Ob'>#)Ì+n6wF?[G3#)MO}~aR7Z'K{s*%1%U~QGIB8riYibmJjfg=G|*;TiOzz+ouU[TP1W0QGD6#/(rXb~Qh$45sN/͒.a8\㺔 zc~IW+we?cO9^K"/ޢ>#/z#/WrL2],gXi=]9(nFOc<l H3[T+zzF%F%L[(#)Y$@nj~ lec0)A,EF"=$$T#U Ds]T7?NH(p #)K_ۇh}>O,zGLV, X#)vE:#-SJw5S3`Q,K%'BF1_ZӕzNa=>v}V8U!RȬ,JfQ]FU\7HlLAY$I*6QMX'4אz>WۤӀA}ռPPp_+` k|g6;R9w7?VSd?`4lw!ikۻbk&bjC!#-)D@rRby)y=o#)4z2:o;sG[Qi^4z~I9W,C ӊCGa۸wtBSIϘ;\'w[msu"2#Ci#/}l{{gap'Ve&$$G#-)#/(߽d-+^^CO_{.TDm}A||Ԩ~D/C6|Vޙ0RaX*$V|ÿf!@.*˂^B#-tUO|QH}$ #G<:G<rBJ<#-TeBS\ h>GgYRZFocgH裼$#'!@HS,a]cJ99|AY%!$/?=ѳCqG3#//#-K!,?=y;q@/b#/JEQ9g#/G~{*ΞPO<Ȁ>/8Xc8H.ce E JIp}n40ǯKeRj"Y..O`foXA@#-ӫy<#)w^al}KETgӫ%:'ٻѰ{T/\#-U:$d\UA¦ luy+*OXES#)08Q %AP0Anߍl/g*|7*5^w ݒd0oe*#>1d$N bY"#f}>+x"r!#/IH$bLDhb1"m0F"^o~.-mn~̨9F4cwpΠzU*dqEtOQiNK֡l8ktXrh#-52{";uͳ;R(X5I&hӀkK(L}$ӽ9;Q:Kgӧ]n*ep?Ķ\AN9n#)=A6oUh"5CJNgHFl!IXBF("GKr>P<;:օݐq.dH%VeU-Ëó˔m;MQ]!VU쒓]Qg^<U2#>0P>%'czѭX(bbns5aGqiRl[}4u'8MR&7o~}7y/#u[ChfqXџc~j3l+X#)s,Zukgl+ #G*{!Dċh"(#)4V]աA7@h#-3#-z$GdS:Bl~egYb p,C0U.}#-,<VLc`T^ܽIL(s&BZ#/Arw6[8fd9U9D27%jdߡ?${JVއ}6ln'#qH5#)$#@@5g^Rd#)*׀BFM EK@lD~-b?f oy!mtZqG#-k(b#LΙ/S?Dd)Mq0ײP!Ƃc &43EϿ KwunE &',;^y=k}WiЃ,qN>Ӊ@bvp䙃m^6xm*n`RHWO<<bH+?ڗ>x,xu݁ʥ"I_?~* Æ-ir~lnns,C@kϬ#-[MBA"!#- &H-+|jBz^$D~aqE<ߣ8PGʎy5nםhr:Ǹ9<>W!Ju[dyy4o8^巺eXUGr`6C0z-.?NR_r=5HiPt:#3iO+~coÄBaR|r^(JiT,P@"X ,'eXuʐV066Kw:#r=[>#-d0M+kߺVB%TbLrB$`Wҳ#-{&H1O" T}%ڮ\c3?ݡF%~[N*Fn}#/!FZo9Ld<v,Z5`*~&D% t&cNHB:xjai*f)\a+*ymO (kf:، DX&42]pMc=gs9Blb[5sAEVTi#/aOG1AbS#wx籵À Cٕ߂~#)W5:JX$l*dϦrX/imVov[F/Zq|#-#/KEZEqzS$#)#/f˻w NJ#)M Ī-m*-=@`GD#5c~BO{7e8ҍ,;;51~漱y~-~#)mr0kFSH ِV#/~V_}ۓ>OO}deߔ$#-_2]O^0#-,&~//U!?]>B7@>;~cFnI.=י6ɼ}O#)d*6< <=_+`ޘr 7,?njgbS}`;apu;f,2P]S|MBK^#-l9<)dE'$^s*f1,h?+6G|EJmUw'E( vzN^/Nt{ w(*7䏄IT-C/ٖ+YtvzqH~D?Gy4 I~CpFb#/(|#_#)hGU}j)'"@D#e;w+ePJmU#/a˲C߀E!I08 t "%U|olmv0UË?]jEʊ9Id}~7X34m4vٟ0o|<fs)p{~FC'yHGaDP2totO;)%nQ!;Iߠ#/pkP!Ύi+ިsTXYz%zs,tUꛫ{#-<%-uHi#-3ءb^_v\1cbub`Pmm#/:|;5aCl|<*:yo>zbMu'Yq3#-г>Kx7i3Jc;6S/glu#{ֻ3\b#)xiGgyb@3:-0W</do5-pTP`IqvsÂGz7_o;ϗn8&pDUdEU(bctDfجL鞷<U=Hr[щhZt5$#/N4k<57u^6Ĕ¨dT-mPE!s0ݟ[2:&\PO}t9TY_●g3DzD_Ɉ{w/5Kc"]t/i9=74h*x)*1z>o?\=>Qfao֝5)YkʻLӻϞ p DN&6iQ-9z-bwF-hȁ^P)Q*@KH&Dl6#-cߦp~j-QGcOzP3-TwoQ<4m|zU챔b>xδ0}ZQ^(9#)]= \PDߣ$yAR#))aN^F#H@eUYӏ*li"4{ izv~<|Xm<O|Է0DEFQOQHL|:c7vL7 Ƚ=~MA限pݤꙚsg11g>&Fr IS"#/Fv18I՟g#;nZh8UQ֫BFeR,#cqauY#ǘF y*H`صI贺0jǟg(,;SP)#/8#)$QyM=\4~?e@2zN7#/ݸM/?4t}t4:_^w¥}v9iDLAnuv8~_XN#~?jp~#)$!!1oUUU[`Nc#-#)p7@H;A`6&ۍፁیo8FBJDP6^ۤ6<#/j&ث,tͤ#)#/3#/I-yQX2]hyeȜ[uup*Jn*.[Y<z|n#){AR!T7dJh3!?8aF v-R8ٲCyɰ C\`wP=Е}ޅX$,#wN\}QV!9HWPW3/gàgt'B#ѐk%l2#N؛ !MYqd$#-@ cXbDRAjA90#)"E&hX9Xg1(̰*$|8;GhjH0$K}'8#-<hSX#)Oo!Ny5s~ޛ-0pQfY`xZEC$ĦUaZƣm6ɖQA\e0*kn$կvܙfh67m$mDP~Ī%r|B@F|WvݛnyB?0n2{o{XFΝ a6^ETV"#epu^H-is,h?F`0EaH⇱{q[jB%E 6FpAw9KMfboؔ<@fGbMրm9l&%ہOIs%1LhUQl|LA۽Cm9U$fS-96v۰\ kD#/:;\]vt°:˙>-Vq@ƴoOǝaUk¦SqL`,ݴԏDq3)(4*$]mibN:#q',p:!{~0O9<w5x~]IJgӶt2GVjad:لrZw{mCn_ʴ7C'%x=L(7c#-fX=qm<v`倗!]^3s A7sT>_Ʃgߩ^Yl$/#)0<$t#-|9ߠ9|@C!T<av㩳;VEcfފQEAyxO#-[xPcF06yܤL:\g9;͖ K]ԃ'ؘ!緮$"WMaBI!6[\yZTJl:!;G"rvQ/a]46Kj&Ss `"q}m's10Bhl`V4IYÌyӧ[94跊Z*!D#/Z@D*<(huGsG! ӪH9#/ r(*W@<xqB3;CzlF#ճ\*v=dyǎdQ6. ʁޙ|fdxl<R;8ctܻe@ [|v:EςSc%wJY) sa#-=3z;B8<*]-Sv{O#BMpLjĄޙ.nCk49PE`T874ZꢱQ9j٨5:rT52CȢubwq389IRBrHI x4-+У^Pt9@Cg˞)*2̙s33,mUfdvGRzm#-;4n(EvmJ;F#/Lij^o<)esЍ˼G<i HBgqT#/Jug<bb<N%>#-=Cr#-bl@!4H,!#fo9`4۲b)GVvJH>#Dw#/KłE .eEEb,AX˸-#VyZE&F,YKb_NiύacUMe#-dӒCG)AkotcC~^d#/2#)8I $goTTpk^{IA#s_Бi#H$zZDx#/o.#5U#O9\L:W,y!O! e=;Zw([,Y`']L5m3f#l[}oMM.jV@#-[YrYu0zkP=V%O2(J(Hk2fdqDy".I5ױ]#-0V蹼#-9IEaښ*v;#+(T]Vd:UCϑ˼xHC:#ػ#)2KbmU#-b##kkϲ#-"+S5f#/4L"СiHԊQ*cO$g/uvRb#)4Y]uEQS$B!c5H7FAÑMa!}bȩ z57#-E#>bƁq2&X`dF`r83keUF^Ӧu顉 7;I%:1q 5XT*vCr`ܮ#)"Chl3oJWH81Y3UvG]E5{$#:Z p#{"#aCi#-W7ҹBA\˕$MIAd^Zzl,\Lfx5OZ4sxs˛H*"xxO+74#-Xo(hmIx/udߏ]iD@2 g˸5m7nl$IrA듌O(?ܦC$M;q;#x6P[z1wmudlju?zG?dQ黶tL!=H쾂z:ӽl[qdM'Xvc=oX`pedtԪgMxZ#/V{'eBOXxشhXbb0F͐{6#/FH@rq x(A0>__uHՑpWZ#/G0sH,:Wj AAOTETd7kST.(f((ym!g"~z"@BJR&%o~$[v"1)%\R矠uT. VpdZجRx!;zuo1^鿀uD;Qc)DT#/j-"uhy&co;N#/jkTfOJgHT5DA`6$-&Mc"0pT?&F2B;oT<DHr!8b[&\P+pcMLM;D|\۷^`(]L$nf"-qc2xa>7D_y{C#)XA`3;XE!&lysM7V{ n _ϷJ8Bo#NshwQ}!\#)V H6oXڹhZKBG;;TD5UmkktUl8!OORI;pYe(0ijIKVlU:#-a)`c4ő#-#?G?0kRL[ݼzmMnk(ݠ-ͼ\1nY++Fz% tѥJ L|,ξl@!$Jgps̐ie#-s'`{ OfO%eݜci~i;Ǟ{b]dHvp`Sۜ>8}j1P$MfZ&؉?.\۫B0JrF]14r:rؽC1-#)@_HR?~\;0[,.r7V%"3'*HBP}*pt0SK#/K\cr!d#-xrnYZ=~-hOoo#-"Bo#-Oy~U{a .w-$%6:(|!ӫ2z0ǒ!;DK%^N$+f1&y9m*`ysgbQL*O4I?7˸j);~O&(%&kKz^@@*!afjH"9WRtIs-PBNڄp5[`͟x6*#/Z}BFS?-&ZR?!$ kh-J[%V4eTbYYmXmJ֓Zʍ3)#)V1S~G渖9vUuç҇TAQ C#),x##)P}wa{uX Km~s!CᡱG5jа,XڊȥbaX9;fސ/] $N #)il6M"iҾU744dZ8ab_J &jνt#/ީJhv3N{uqUC&ݨ$[j]8l]*zD`So}=]TWUkZ?gj䢖,$C)#/H>̵$sdkrL5&6dTEo}wWߖr8#) HAdANUG8^gTG i8DP'A^N|.$P#-ym>iw~^h{{(F@Y%vx2PX>SwZU~k?K(*#u}qӧUXʅ:4x($&߷M.[6uD~ZPL}Fj${_<'gAēЋA#-Zbi0"$Xߘ۰:A5S2u#-Ou *}9,*_^Y56@A4lK0i|mnua_<}v~8Z?j@;H_W?GCs.gr0N8WNҋ}#)&ěF!P0@=2pU(4Gw?*=$6<#-o__aj#)({{#)f\d]Ψ}|C!`:J f2F<8]Fbr!mlN8y=h*krgYC$3Ce&SWd+\s18;R=}##)DRTT=tx'{t)耆Σf+nxȐJ5oCqHUBAdDd!G#/fe OcӻTMPb7qB]5}-,F2"YC#-`\>!uXA3d4e7W:zZ5P9#-Zрxx=d1"w@;i YY_A`e5@Rx KߛzuojG̢|z/poyЩVQ0-tiot@szGt]OuÜq1вf[dM r>z@7xhDP$Sx7m"[lmp胁7lsy6m\97`WpScƦSPV;VYJEYͨRȵAEAWDGSt|CCG͇^ϯeO8!5o}5&=ÿ9! aP#/!h{HB`%jBUJ))B=џ'X%)W@uapdOľ::"lhoBB.g1m~pTFy#-CHzEm]=)v#(l|.Uw~f@9FnfuxgsbX9Љ`=6Kٟ$Հ8i}H@m1fܱ1P4ls#8F:2UTb B&.߿\1va>wY1٦в=OwCԊzorg" 3S$Ξ?3ӷN۴Luzt`eH;otx==C~v.^cjZ8>*k٢dʇ)ZRI֦tԍȏ#]IqB'}_ *~tc:V@3cdE3T ~"2)ώ^:v{kfT:s/#Ū&VbFlK);rXSKj/F!VTd-6HQ#/J].dGFm.%#)m!@0Vkhjk%YH#/&NxPz9maMVwq_?}~xJTAJIP#-*X5oB$mPB:*||v?]/RQ[ꫝK4I#gmSPM8٢[3R:M#/"f[+'ʑYUc{^[=x$$> 4U L#/"DRh[!)"HQgݤ止jx>g(Qp9ȒHE 9u4an4kˀI pξtϊUrp:k;d&(`S'\DPijJHbWm)c[bfUTRD#)߄{bv#:cn.X#/"TC#-4:kzL`x7H#-Y&ooig[&4S$.wy}3|ߦ"m}]~WEO#-k" `HtcήT;N"}: $ 3Rk-+Yj6@|D/B3W(߶* B3{'@/]k[jHڍm@s9w.p.˥1n'$Ґ\&qL7kS"yf#s_#/RbU [iv#-^<BBkRք2]~) F'PB=BH#pK5Qz 5Zt%^EA@@Ȝ_e{> < r2/`P*#/gYY),Ѡoyv1RAJ50#/!F"hi"a<-h-<3ܱАxش8XKVFQuuFe s<slD#4d^Mk#)oF/w,6գ6=OofB<;:}$ЋEz)'/KY/٘7鬛#)IP2!D*Hm|\2,aʲ=ZOor>r_N)do S3Aw,~yDpآU*@d #-AU:sACN9[#)Σ7*UUzK"riqJ\Tb"U`beKLsשw=JQQ,,`uˏ:_.5;^{:zaulUhhD4cJԞ&$D#)Br0*Zb#tsrׂ'وL2nM@yiЪ)Q#)W;Ν*I7QCƼtlV|4AF#)#);檦SPXF@.ˊBnJU<f5g#H}N#-#ξml6Qǧ,2KQ&ј\*01<0:(e'&O#/!\4cF($1,Rޫ)Y4Fr9V#-6)z5[E"QA҇8pfr`ƈfW!FN'1McdjB~)Ycd)ƑxdFS#-cot,{)ٍ0X7#kͅtW&[˷kq:¿{עb=cJ`zBLQq?{ץҢKtaig]aBTtsCyGQ/GV+&56-y6 i"H#/A$Ș!@cj\U7.JQjGRO|phH!T9@6\fr#L(62b% mZ74IТMD&0$ٰvt#ń;ômwG8kQJl!LU)hn8T4-"X#-#-ȭ[&fV.۹9ML5##|[Au_kA:QB3e'8`t%u"UJbCdMpiU#)lv5!Q=~86C"4(45""Co@6#NQi@>vhca79/_=L[8qÚƺ;q:Xt3ۖ=قWD- bP@-`ܧ&eQdt՟a5v#-jg>qcC9omRڷF3Lug);Y.E#`M=^C?|;${'/~fY4 2#)#-oN}Mmac@%XV"(bshI=c`{nPdƕH&4 BL,fh#/l#)S`X g7C1 SH0`oaF@M!شȸ2|mBev5گ$y#dE{5Rɠӿ̾'1x?EiTלjJpc,̸[|$"OrZR~eA`VEW6mEomj]-.vw\N/Ջrw⫕H#)33Y4\.zܼkZReHВ L+L$&5I0biC%4DEic^C&J%2hS&&i#0(Њ%(_uIdPJbRYC#-PLJA2E2VR(5R1#-3ii AirMmN##/_)b||X&A~lU_SBݘ3fD~w9lY!,Ai3@s9`gŊ1%q.G\ήbvF$F~%}%<,媗d/v%ۚ#27D#b! 9ufT`ckuݹbmd Z^o_bc5#fV*(i`BXyϗ}u3aDPn;~v{3= ʩ=z0RS8Hթ)[8͏~O~4L+: 18wR>~֟N3=N%ڡ9W2AgˈL0=m p{">N"/C)QR #/U$I#)ܙ1 HQ~~Yw1R="(2F^#->p}1Jxnkw<;YP4p}Z~tI-O>oiȸ*s.#/mf8XPUyk4₶0#)IBFMwp$76[j t@BLvQ+1-/YӇ:whג]mw3FWbTrCs/ )X{N L'&BbP{2vN#-"!UEe<F%٪ յއH#-}*tmݙ{-6:;sV#).֎C#)UP1[7Q=8gm0DN?o\th!I"/6I!~.\̿_]?0镧T9=:ls+ys3}PZ8Z`{i˩nvj+X1wH:;0t2V́:#-|r<ffd("m|$& #)p$PW#)}9Qy>HUJʳKh#ĦaiFELtӃ{m?71csQtΣCL[l͌9BXgFE5(Ԧ.3ZHX\om.tfں-`O6)A-L^%$t/7Qæ ݦ 28?7\b.&e=Y$j,B9+Ҟ.o(ާt]iڃKT-tx3Fӕ3X$07$llI9+HIѰ~Z!z/,7#/R[&*_4To#->02!n6#-ΩсĐLc:R7f"7JՆBh`XD12v2tџhF9i5zY̳~s[icÓXtv&0#/ /#-r,)N4bцI.sП{Ɯ$.6ވYt|TzR3LNvY͔#|Okݶ!>3ONX}kQǖ(#;cCI4jspumZ6cxb.9{3#- PI=sXݮ2Pqu=ths4ZgV4BL1yRw"$kfM(}%meӊ`ݡ)C]4Ȗdz4r=aEPXiSW(m/ްɆ%+a[*ɾU쌦!2(ƪcfz9Rw\~9w2W<,Q!9n64kKc2HupUrs)H1tîp\5NKMzɵQ4P\*[Qyz#/iu%HjTHj&nĒ7fg6vqΰtyYzLk,]EƐ<iQ!XlhpNVNځ]#- H.q:RIFȡb<Pԙ)>4=#/YE&)+afC\ı5F7w#/b=2"r\$d!'tfmlzU}ؒJ#/^n%"eB|8N0j۬}x7[5[sgWXf&,.~x}w8WaN.ff11%39n!Mrë\k({{lQU#ӨBYr㡭7ecs,c/Q%/58QzE<&eQ5Tl ܸ*#-O1W i#\[eqpUX6kC(WG12p8MMՃF9#i$#-ٜ]kc-ޱ&#)XQ:QTTU!D)EH)W<6ni'#-;&CtH,wUꝌybvv -U\)ٞ-8b;J|7o Ժ|&"P&zH9/FP9#)ii.To^Ň&mlJZ5/EpfǕ7LlV[̸Gvwifb]VjX]& %ސLlM(GED,YӌfpVmrt1=D.Paţ#wbhTk!Kႂ`ȳ#`9>nqիIm)⁰'&xle,TmT E/,-û#-ұp04@!JQ&\,fn &SS4,&)U).:Jp$Btm$FZjlX%[Jakdr&\*N,jS5@сi5͜#-8 v!>9eV'A ء6ʹt`N3aTBeq=Fy\mC D0كitA;Hwn!l}qo]q+YLFjfcO:[!͎ @:4cC#C8-Aon4>ɫ YUq/gg'KD.YVg砠+Ʉ&tq#-)"[ebTrE[=Bԇ"4@AC#/f.x?"[R^(e)#/#/HZ@p[RXS8#K4t26Il]|/XZ5HTX$GaJtކ%ҷir(CNng7*C(Cb[8Kb 9bdmU0&22G6#auR"C#)a3dX]8hƎpUC=AD Fz0Fnhg4g.3hn" '[w: c@sdhقə<I)FP8&#/f iv2lCnBdj23iTp#&wM+q*.v#-0lK900#)5NtXkJY3FL՚|C7?$B&"hgx#-*nDPD}H6rQCǶUѫ`#)A>5Fdu"##)DNsR~9Ƥ@:@TC8 8( rO-L(C$SURaϥVCN~Qdpq}8qispj)ѼduQv"ì#5bۨXE0@Cq*G\'IeKZF̓$d!#xF##Cow`dpCp"o #-HRCF#/AgU֠mO"#-1#`B7 B*#)BƊ!Cd^>qJʁm0bgb4lFF-#/^!\C$<WL[4U*#)o7aPWwUٍn.nn-tX@0GH\`C5;1ڪ<#)~(#)u!Hs_9u0g"-Z"fpE>&X7^=<,p?-dȸ|Ar~m>Lr=ٗFwG*ɽf&y.U1{|&3pZ5[&dBboQ*4#/:`Z04Αs.7 ϖFiE#-%4x{1".\b3#/٠NGQ0J)5XѨj$Ƣ&IfAE,bַ>IJSJS2tho@A0~^6IfOm'Zy@%9DAʀ0O'W2xLZt.@Iʁ]ْ4UHm$?#-E@!ۮI@)Ŵ-4LdpR7Qzx^w\ߵ^ʺ@nɁ0ɅE1 iЬ$Ŗ]P)-jdae"f83T"s{F3:сYhxrF0#/K{oRCf< (z#-sdd2Րin.d#RUCuHq#/D-ZW$!F&!K)l^#)Hx IJd+FkL[//HyA;nQvId!D*,JR[?hk%u#/^#/ `0HhsI`_#)=*fV}31teq#k'*(3Ac}"aV9+h&Eה|=uɟ"Ӓ)9xHo*#|1)7v#HPފp(e\#-!4Yw*\[$!M`vhU#/i!Kbg:'5bCJZĭnj%N@"r+t+EeGp0~=l$r/3$Pc#-հ)6eP%* UeYN9#/3l+Mrj]0ֹhč('<;XB&[M"ս1C!aa} QdBc2۫AK-nĨQ4IFI8#)ZH#/]y63Y @A]x?Xvה|ʤmozi"@?["(OΆ|l!ֶC7ALD>QuJb`FC+d& I#^#)vMY6Ս[Ijmi$ Sh}JFJ2byC+Qk>kyC0ZK⸚-J#-ՕUڎ[UȡogM8k;ĭLVfFTqK-fSe6MM[jZt42aSFt^&5 D#-QnfL2a$mn^1>ܑ$SNDIeRn.4AΆpT".Fg[S8"n)ʘ;x\:1iD*n%#/)7`$Hfn!T<Οh40+:IS&2lHYzZ <]"&B"ƅN ȤHCޕK6(kj4`u`ȚT/|qucX]ʥf̡&$r8ڥER.R#-]^qc]nmv#-4z9ХJUr1:G'\AAlm!*\*l]鱀ܐ1q+V2S$nO'qK[njUWi5t)7]L<wWbcJMn5Fv{4pJ)lԁ[E#*BLXR)ZZYKL̩O^xME*fVЕlғm%^SoRLljE5rL$(`@PAK(H\TAo";=^xz)a Bh=0 bz;M$$ <,EqaߞP31bHm\h7NTd9Wtn/Rm1J"cJQ! #)JL2#)Hm-8q[ҖQ,6S#El)р10oO#/CʸZdWr$#/ AQ6p{<#=Chp~,d?L7/4^t"ˎ7G+#-zb3zZ"C&ْU/HUKlx3ݟbL8]dGiiZKv$#/&mПKB~"0T/c]u[<xGꊀ3(E!+AVj/Nj6Y"vKI{v$ƶPDIo7j&JRMlZDSLYL)Yj(ȺVS0ٴ3bMMj'VEjWuj[{vh)f%A_KI(dI"muII5-w6&i*jmi7-TG+6[ήIM2hkRW5xؔĪFaQbHH1YgqW*k_*Jǖd+K(z>?M2u nd4m"F)uQH{-#/nX#/I#)jm)ii[FF#)!=6&#)jEEV$2DTd05sou)UbfDd@!e"aւSaMw)EPA%QĶBQiISm63k&SE*Soܡe%eiI#/46e)MI6f2PX4el&I,V-RAQR*R*RU!$mJ!id(II&Ra44RTVDRdfԳY2hҒX`P$AHmYjCIoymk͛ZY+VWW=\ֽfFK`jB#)$("'2IFפ9;Crh9d#7+#-\֫㨂0{'~,唢jdC^o""y8igI*L0y#OGmKTI}Xq(gQ~Q=wz;c YwEgRk^S%Pkf2Fy.JQICK-ZZc;^ݹ@+rˎtOݾ3Hһ1FI@YmW##65JTAQ`v=k#/T:TI[6'WPRv*W)A<vg_0`䟋p(LT`w%J(iٮ<ot*5+ݱ1Kar67SlHoX9}p@ˏBq1*LPT_P-&{dn?JAuم#/IQ`Ux P~#-F&Y#fəkP#ewܰCQ+Ӏ @#)#)lj]HP#/t(ݓAHk"vsy-bUsX "d[&}3oD:.^DR;uC_Q)ۻ9NorqF4M#)j'{LO`UAg<B)}XԤ410m+H#/+-1VRD4g5Q4k!"da`VC"ku`j6i=-e-qbaqV ՑM1ݥE͉D6&h[Kq,Te!4t2`jH¦?=BTkgn(ݣ k_9D"SecSע ܀x9Pf=#F+%\,fwMH&YRd#ѤȄoɧoFnu>qM2Sb`]/b۫]%}Aq ֪<\v>hyT L~#R=)^ ~w"HRvGBNн(A[JBC<#-X#V͐TF#/߯C>7V^ 1d&yiؙc,8g:160b`v!h+յuz@Å/Hv ~2&¤id-,1H1@iII娊hnP#/9dhL6ڶ^خ4dXkFȲzE<QPiӉ<bz̝:%hԐ8d"L;!ODדGT;NAx%U/VTA(23=j8JD#)-*8J&&M1@b@B%#-{Pg\=tYu(4x,y:IbB#-0RG@/>>epgK)=m!:D#-5wnBnC#ݩZrF!N6ar%quj&ds@9*}(^zv3VT.4;3sΌ9ADJ1,"NU^4>I&Js08,"N2߸C^#)^fpTY#JbW@gUJfT(#-2p`8pv3{rcywwƙ1>5&7"H*1hҵ%$TҩRlTƆO$dMkLpے.yZnj#-/;]]ܠ@ $#8kX7D!~^Ҫ()ÂBy1gaxu#/{WaÜEHwD|g{{ǟmkXLu#]F\h̎NRMݢXbb(z&ƔpwyzsaZW)PNM;{p<1!ON-ϡe#/SY}Y#/F,0%q.FiؒMC2=9yr6[&edТ#T(2/"صkS)xݸ&\/djyۖPc nκe$tw}ᮋG}_fCr@F !}3c;.4bE;Zb~Jf^5f)'hwJM0VY6?Ґ,S&Fl7$&6QkU2MJLIdlV-oΫr1b+Fx\%PF_jVE"Hhb.p+ b4,{ˮg2ZB[%%D(dc:cgTFG70AByͶEָHp2MXbRi 5+?^婰nXG%x$ECUB9lM^.V~N#/JHi&,&2P5HE,FEFh5;[mZ~y26@,2囑q8ޣ#)!tH&Azm>O8< `"i( [`,n-gd(?,}sMp.E.#)$q#)%퉨7{Jo߭wQ)#)8T~ΠMdLd6_#Wf/r ΐ4K^n&Q2zi#/QV$q9?"HC]f\^ިoУxT,;:xCAx=ȠuBk))gG_H'V+kʶ\ںYVA**TPE`^)QY,䢴5;̸j?G0mM"n5[~"dw^5?/pnV!i&'( j/+9A:: C[!as%EIH^E_c|Rgىu(0Rg:^z-5ʁ6ٷ(;͡dT5e֟;Ȩ"tP#8~aϳ$Qޤ_֚?;0MuCF QT*qML)U$);Vhaԁ/owjVkV<`]u#/,Ii%stt`7l8`FAFL+]$eݵ&B)ɆޡLDqIlb-F̬FBjcUF%QT|Zjhŷj#-PÚ117)]"W6mo&Ɩ!FFsؐbZMF`L%YlBdo%#-*°0&P`NY%G]C[*1^Nۚ\Fһrr7Iz`T2,U"$md6gI1N,f0AΤ]aXH|8#-jƎCH\rCXtj4ihre-Ԅؗq-#-;P'Z@FA@/CKmz*L\6'ckwlfS25;ljh41#CՉt1 ו{&UgJJ!BI<5-fէtj7/+cRQeWUҢLtlacX媺Xm%{eYPu7V-J *?d}Xw"j@QHXHE~g`5?l"R<~.Vc/h!1#)RER #/$#/7G 'Auєe:ohKzM5MO7"ʫ4!x,aa)Rʮk6[2"dblTzŊ#)،h4Lc2#/&"4FT-cW,[R``*#)hY(UPTQ#qjV?>]FhȵL.Xي4`O܆QK@T(^`b82ebNI,a"ƚ#)x78#)MEf*A.BYli2zÒؤa=#).>~41ڋLŬUIΝConԈGePFaX#/\k]**}"#)mA>ި#-\{#)lz.;4!WK^9wiKJTcjUk)WQ56`#-w/"Ѫ~R$ a*h3]l)T!wGj3sfӾ֑a$9ӪLM&MS M8ܼs8H⭾ca#GNfGK:#,1v4" ybiLH>#)F9[D$xlC= 䞗#/<EUX"M=߿|oNN-*oٚfLҊ5ZBJZ!7pqgGAʽLGIW&i84-#m<8K\tKj(B pB#)%]8ҺiHDB0PAb$%%ʙQRCt~3i=Y6$x![g^8,@(η*?[WYHfqnf|5Z_̛ORzrkUa( UսWڍ-PajJLie5Һ Dʙig5n[S3TfJESŶjZmfk2,IkESjf&Vhjbl[Zl|ݵt'>}l4HD@\S5$J P Xֵn*0g)Cl$qB'htWӯ\-nlQIu/$#)E?A<3˺ry~s{2&b|VGE/iA#/z|:#)E**:#-~BC'Il*܂%KtD4ByiS~\sþtP#)E0*d3=;i6BZR_QlEt̻M/Y<Nˊ,,#-ZB;U8;g&Ly֝D(vZKa*'C7y#) Fn#-匠7IE#-ɇRI5O讔TD(BH0aUM%LɻTQEar}6ϜRj]CZVr1(Ѳ?,4өcQl& Η<a#)8Wp:k5:1R#/0v8yjHH{9Mf?YL }~jpUDIK)(KAxcը|r]+22oo#/?z_8m-$=阘F@z4ƚ$"F3ƈ#-B4#/ 5bLU)x`HE)*#ӲvDIUVDB@uD]peLc&iOdC#-@6d5V";#-Ă )Ho2KAjYn̤y]MFP5h>>δHOQzRX&p5psto\q4Ph#0\lfuN AX%T76a!e?NB'i@P!r FRPئ)a"%0T$IɠO%'KpMvtG"xUQ# 9I2*<&<)=&ywo#)Ú6`ޘp%|f;`B*YJ;EkooEd(ŐbPaͿg~'%E ͐ RlYX"QX|3R玓yr)}IzyE"#-PEC"{ʡH)E:eݭgMxɪDlQ#-#/(rQ5$mqIηI2h<Cv%v"|Jr+wt}4DUdžPW.T[#->Z^k#)TU!fN/TmĄi\J~o@NBX6mZPd-9Y]oDyP~; #/#-;?JH[b~fH#-&Ⲝ*TNIFlS]2ɜAۗ'Gg֤Hޒ%?FV]TSĺ+njB~9Br,.Vi\o/}eȷik#/"1*`#)#)AI#)IE[%Dd*@(<AOq#),P]=SWnCALZLk7lD28t5T#)#)YDУQHi'!eV[Z#)u_߅#-wp;̚͜ME?[ɞITyJ`z$BSm/;s\<]㶺ěiR$!ԅH2c,CzγqEd?B[.A!$h1@mڱ1&+Dl ZӬCac@F"h}3ZaMiƱ1 #02I껬sx9@kK-m*Eh`B"ZKɶ!0Ĉ)JZ,#/5 VPCi% FmH$lx0@#-h9vQM#E;Ɉflp##-ei}Jw,#/##)eLeN>U!>=-.rO^ĺj~VʬE3LLJwuU-Эk̬YQ2ѲZM[5z(#)ذIHRD>H/c0T[UjT>3P)N]gW.i,#/>ql#/;Z>jDb!ޓQB<mUdb#-#-+KCcXi)ߖ؝n6I6MAyLg^=Gps}a`3@ު &'Rb\q8addɶ'ӧ 1c(Efxv완5jLC/PJۚofhZ%5"]ms6H_G j"qPcg/|)~z"k;.ݤoY<6lD}>qRw@!*#-,!f!LixݤΚ'U.Mhf"(7i/EG/FAb<"~YPUP&P!/jsl2,sg|]/ BAb47-mhۚ$ۺ j,ݭQtߪ*YMA_^d,sm"d(QbH$7X6( ؤpR8LEQ(7%>D!.2 qs8`:\C֜ǬvjYV_(UXj)8!EOiՎFazTkCN7t6a\!yNHReLҺ6y]Iz i0#N$[|M$VՒ佈އj>F$ M fhvc!0::UH̪ZܷWY4Քi۶؛[fu[+˻JVYF*mUc[WƝObJV59[\ j,#/I=w`e#50u>Vdd{#-[r#-0v#/%Э#+43@4jaw;bE,4#-qAo#)1#)bLz(ݠ_#-plɕ#/7l!OAsr>b2nlj+s#)oE~'>t^5cEXjӮk@5*f>*5Ut (̊x;Oߺ-SR$]'v5ÂkPX.KT GLv,6JB#)&?I-`5z.#mlAA[Zip0];`RÖ$C}šX>(DI?X8"iѸtSH˥@~R~Ԩ6(:*@U#//%NtM,!2ߍ7Ck~PY0ّ#-4^)`)`$b6{(47 pp\D!k蚯axAӥgLeXdb;`7xd5Run]3\kCnxVD&ٙ$uGkt0xaJK-C0ܗeElգzб}bXF9sSDUN繙0Wha#-u!幻PmהaФk!#/Yt>{2bAa#)ꪄ!s3<D*5qS@$IjP*)D-jj-m[cF1MhKLhVEJPc]WJ%Ȅ%PFp8.U^ZH1|wN.&"#-8<ab}{̅E&gUnqgۻt&ʟ}Z^jyC-mAHh12L̢r|#-&Ӿ5 $aWѻ0m(#\C)+oƧi]֎)D'.͔BqsY0d:bk$)Men*(Bkm"CݛH,ZT+f[`&#-I+P>S 1Anv3C/m#/|5]$(=|䏟^w2tT]"#-ppR "]lPWֱpB1]\D@O*EZ#/6=680-M"uA#8ČCfUH&P;3}>}éifWSw]վ4FBj؞/.)G=ZS(w,9?3[TKDL%CXѓ2ÄS#ny_[4zJ8AvKz(z$<X%1bκh7y:O'huBl@&@n(7Coiu9JcU%[0ɊUF#-FB#/d#-_!, MIߺ뺛#ݑOi]uηLջґ33XhkzjWyC<A(x`c`7!4*V"1 F#Dg47%Adq3VǪCZ2%F"@#(֘dB#-!m3Q3K`#&IZUM̋6Js7]dʒBݍp2VbQADtjIDV*3V#,0`uLhA[)Y-I$YMK626KKv\wrܐYӷois^o;Ț(T~͆M3P^\{{j#%Xu`3w2@d2Tmq"m;&UCQa0`1+hǃI纣MMŦf#-4ח9>qyzb$+^QFrm|4x4mjBQG4ȋBP2ČE2Dvhd(#)#V+#-#-a%J+dEaFb7H1JЇD(T&0D1~/aen)ᙐi3aCwc<j[J\Mb0s.#-֤2E$PGGGMٷ2TnOV'ڙ4#-/#-8+skhgZFV4.#)cKlTM,AB"GkI/=eF%9i tɏ=MM%}畅e=<}]8F(!_F+!a4c_1qƌLi*lKMjIN'#- 0뜪"ѳk#-*ETrةB9jz1fF[=Ma`&(nYCB]&$,eeUcsp>iGO8a) P4-[y*6T1`HXKdbb:&I.%7GN'_a@noӫ/ozEň~F"G0Kyhzm6>m;MmT(XbjDMdR3=L7\ܯ7M^O7ɫ:)eYIN.Cmc4f33nNf3nawhAk3WXXA1;TXM$+[s;"~zE 7c@Q'DI#-Syx;:MnPjiamW\տ]07eDL6d j+Zus)?a:+#-%͈tᩯgD+M} DlǩpO|#)!0Adp#/aDl- u%> #P,&BY5,9"jXͭktڤڻEkιtۛwnd9uxڊxeŤZF*T;XJ_䭤 %rء#/BKI`[|6nnaI}ا5rzrU-(QBFZb ]Vo7/填')0Đ.Y-Bz[5#/C, (JjEE6Qkjf*65̬4cL&fQ3&%SE3&WDT<3$C@b+OjM+ R,#iz<Oc|,#9uw|aEj:EZߝ֒Z7s}7YUk~5kp^-tin#m;:]JZۘsYRk+nfU]-4}!7g"1&Y}ERIJ#)aA4I& P1D Ij#/BM(*7JLC@]ACS]1NXϼ>vv>Mzfcd=*!sWZ$2,'4>F·"^&m#-S3ϺWs$PcLR+mM7Ga#ɷe8xJG?! 51<t2btV8U;"ǑC}tce;7B^l2yGf-ń%~s5mu)]p{eclOQi=L0놙E4o/fWBO"t`):Cga³y\j3ՍxႤ91V-SVJ\4Bhh`DaձZ5Im?\I\"ri[=F*6m\kr9EP Fnָ䌿7`@i4 .zU#?e<đZ[%]-lfmWl,BurC BL4pHS`̌ $\mVЖْc%[W4/J;'vdYe$qN`Y$c!` 842vBmlթJq#/D3Vi!Q10RDIUPXbix4WeX~z`Rಠh]<C춸2#/LcAATw;T/]o#)8Q>HTYϡobVdͺhd7npE3i9F1KQv*B֪+Z$JW#")gȄT>b?"C،"s4?O#)s?U"U0U]#KecNA@~[-]k>nrgLp#-x5]r\ONΖ̀QM2ohDLJM)3q[=#/x-QU14YE#)غ"P)Z 2H!p.I0X<D_ ;%;>ʤkjlF썶oV#)ωT#8I;ҧ?`< USE2@ Jdb"a,}ƒ*-@\|u+ClUWYZ5O/MCv9d6-\4ؔ^n+6YI#a6T6ݦ4Xh06rlnyv㮻e\"x%Q6[[sY4;wTFG7-tڲ[F,VuMd<V93"U.uFVm6ܣ#-Vd#)7K#/Odp;Q"#/pv-ypޏw/F Jw1؊#/<3PY{SpAA!E #)'+}}h%zs#/?Oqv,#)V55j2_U\GJir #/#)ο+#/)","HAXA|_]+ε8뻩ebkԵ⼓~LښjBXq"U^i f4O:1"2dd$2 \DQ%wH#/5z[UPhiHd[0Bc Ap럿z&AJ}#/)YעOq=X1HAcQ?j{k:/M[6V-j17e&ګ|-o16ii$ #)<'5#)}/{(Ԗ&HI B.":fl3Sd]ऍ(S@#)E$P&sutJ&B̹k{'~F BA%~#/7x]lkF+5pUB 34 ;Y04'h4u|lDHI'8roAr{F%݀O#i{.Z҉O8lH& jH:-CJDŽ"mA#r#)PJ$" aciaC!J1ۭ$صFHJJZfnPƆc淊-5^(*IJM!hKE̩#~N͊Kh*dEaAUq'weU'(@g T( r@zyd4#-7H<'W5R^M- ȈH(J*H#-B4:rL櫰߿xmPM#/ Ce#/C̫:QFЦ咐(LaPP&iP4`D$5MѺZƞ~v6@AH@ܱT,#)Xh#/9#/F3Jէlչjɲ5IHv1#Z@ ::8ϙ7z6sd+j]'4ʾ\C}#ѕ2V<]]vI#/FWYƦcm!+_mZ*Nw|UVa^0z%輨vlxQ>ЦPtPO;QRH9x邲*#)HRAA'*}Hxu)ijSLHuAq]ݨ&Gs؟ B$dT~Voεl(_9 >̺XY(#-(m|zS,z.c0kcc#-k}12%AŶ(E39-oLJ5/i-4k[a^B׀dMXN3.7u٥c"hYf%2KIUj 3&4hȉi<SD77(zق#/v쒀;5#/M$/0aJS[c7幅a}ݑªvsFٓwVN1nkѤ},jۄ{r=RZh{4#-Ԛos<ޕz˫Fc y<@0lAC-F6Iъ]wd2,%ɭ~tPEɴg8F[fkE(=O4֓ͳ`WWI7`;gÖZm#/rxfouԁmⰒ0uWq`-MCv\8!ilp5 EE7#-dtr´B!@6R|(:U4FwX@]=>z;^`#)s#py#)Q#- b,+65r^>F#-)("m H@-+၎`QLsԱtY&ah#$Q襨$D32|q`djڲp9!BPGʩh}l<X+3T#j2JG&-@#-#/1}δ4$CiDIi!B[qSV.jjW!=rMمKaiGbg3En_a0~'m&mƀdNc]c02 JplTg!A34 c$eMbJ;&rߞLΰY7r=sU@3{{4թ'~3УRCiƙUcH<-ݧBe#-Ix(%FddukH#-J5Ac }[A=\q İyLæty#/O8d!{dO#);vYoݕ^P[W_vHADI!dH(w/WAکՂ{k=IS&Ӌ!ۏ't}'PnpD}B>ٸPwxE#)iW,$rdы>i(Xt9C$Pt!'u#/IL~U#/ϙ wR"tz7J.e|ٱl&#Q1lw*)0B'| B<lV3/ߟGp}t/~@)zRЅ1V9\־WYI4^@JFT-M-R~J4U :H@,iP 'd9+cxP;4(Ypۧ;_F<41P_W9B0*hJn?m8G[v1P1K9+\YhRB'9ba싲dؼv8 ʼnhVzUDcCT$>v/ٺ!6*#[?CG8sHH?U9)$s"_f]bS߰wMUN80Xxu1p3C_&UT7[.eS&I҆##)Td"gCBy`0H[b@PlytI:1*2EF/y馤0tI#/`#/pT5liYH"(gn{Zs\.^t;2 Ox5}߽I~#)FeRDh(&Dj"%JHIdPZ6OR}$]"H!Δl厳lK6;]/iy5/s7F@(F-r18p>hԄh>\bC*l>Kn,.q2Q#/TG:J|''G8M2=Lmf7lICꊕyFF˃`j'eR ƛ#)4dC9?bʦ%akh˜&9T/lG8|TMh0$#-ؕLd+o3sYl--^voBAX # 6cwKvG{^wѱUk \a[f1F20_@qRĥB&DCۢGY j$kEcRkL\#/pi %p|uW:^Zb/#/a"iI545q8$nDZї1RED_NwF\M`7a.$C<'5R_|g5#-#o!#Ch%m nT:)ŚPqsNjjhX 6Z#)Ąz#/ju{.ȄO۹e]!zH#)Z$P @9)QEA0lqȚ,eښmMf1 4&$J+*ܖ(5TNUiҒF]mCl"- JQ#/Ymӭi6TJT-1X4t\JaJJU.*.TZ%n5F,x#-M=-,ȶgB&%m]*#ظkJE\)X*qe$+$ JdX5ӃL]*h1bȗ# 0mubXZ:#-5M2:Y"mE1fጒ.kRPnrnbZ@<(ӄ}2#-*^*0R;ê0Si8Ң"ȮA&liLUA<_:/a0AQqkHꚭSZ؊ F7i3%0UεeY2in#/L#MbAZ$Tr ,h4lU!̚px#!lU4M#/DM,)FH|3H ADfMH}cJfzMͅAJ@!s(O+pktCd|E<kmQ+|m^Tbl|_5 f0,;53EJczƢ*"CXD˶FlcYbdD 6.wDKD#biL)" KABb\c(P#/$,IQAdT01A{IfE$C M5HHa(JSmSJʪYC%wNw[_j-(Z"##Z!e#/SB#-:xbDD$X#)݁Se}ת?R։ꢍTY>rEB@!TDޑBi{9 RTC^#,T"N+`Y/5QAƱ#)Ir?UqbƷWWMAnH7A=Taj\l$Qrc >bXC :ha $pu#/.<_V#aa͵61.X xۗfs,`6Z9' A+6xnk%R;G>әkWA+p#-_DdB9Oex(a('hN#Gyn{<"#/dhxC dJ _w|6v̦7@geҏve(xQOݐ픒mz@4q̴Zoűϼ]#-#.]^KMA@!ي<s#-EP@B_<i5OyM!!;Z;T{`lv:ة%AS{}kYnP<z}%Īvgm,["5db J5/m~ֽw<\쪣Hsk"U L00̤5sTR`K~HMq49 #-vF LV"H)2M˻6Tk9[5d5kɮ\6w{5ȱM1F#/KHX-evv7X+J36uifbVaM!{+c:FHPhzPхȈi#~]_o'T(>)Gs"ԁl?X:#-'4Ux#i(ICG0'"dl1#)5Qۭhkk,DNEvEB!.QQwkm6eMdU(ȇ<Bt##)=tQT+L=TR2S{ZPvqP#);f_yހ$<=F䬛炾9=l8ȚkW[WVR$AK$eIfԔV,l%$MB[DZmEmKJ-KFTZlH# KZQ(0ZpRHW`ł,EP(e #-'r`\j< D*i@d(HI7#/#+#)&2KXHP(:0X4ECJP*B*Z0$(B"#/X>ݝRЁ<itmSwtn#/^#-꘩hA[B 䃂z0y:~O}U-R{#)"@/nɱ#74=S(y6;lM>ˋD`K@r"(bJE)y( CT|{.1b=#٢أ֩#0N)܇5!D㼻t]J̡}˽Vj6- P8K·eVF#/RhmH#/2ga,A_)-BQe.͕)m1bchiěiJ%MYS||#/oѼDrC"lª<ﴺ{9ܩe:!Vjv~;/dS=Eh&/רur#)vAւX/2犢}=Ip~nxB?<qM(#)9㽌`n=֬fޥtqqӆvzUjVʍ\?ď16-,bIN7.SOl:g=y'v-8x!#/xA-B=궾A9rָn$Ǐ:pKBlvŁh{>2d'"N>ilYD뢚"sm)+voKSU+\&ufp̺ԏ#)6A^#)R&i#-!5Tqtap{ScbQzj`a #b4r}i4o~r.N;:8㢦nKXwo8#-{wij$V/Jgp\>קLwIOQ;`pTq]8R|:Ct42oߌy,.m"e7Jxml2a$3@#-xzk}&6+bm8ř5IyʪXtF%M'CenvгFͳ;T؆Ehq!1Dl0c#)~#/']Ŵf+2ڧ+^$4Rw[Ai3ĺގ7;BrIy$^34ѼqM&j<c".gR֓Q{>T&JTcvڧkP:o<0{ZeWyϮbV4WKN 3ĕ۬ι8(u<a$#-yL~{&%`V@J20*D)1b]*՛Ec˻ω*Flgu=5ln.b</Deó՝yJ>|@elYxǷpʘDû=1ow+]!;r.Lges->#-G0MS{)N?~HjG.PPt1fJeީtvь3z8Q>8ğf z3.{SP#m"B!?(E ewtlplpLx<LFosCЋD@ع:@iB74JkS'cn#/ fr@<͌)Fvȅml Pq۔HOn=zXDCAK.#)oցU;1bul!#/42&!#/x@ P0kD `0za9ݹe)`rG>27q:hlSAC#)l3X#/"9{LJњ\DuV6Û'(QZ# Dvbj/.qhaPcM`@C AePL">&9L~p][ev5Λ\6Kx;G3?<tT<!P*҈r7AElv [e#ֺh07''(wT&sRM<rzJfbZHg"l xKEZyނkdvxwuJkZ-;hF|iiUWGbg%#uYD}[txlc_Gk&h,|E閌+nWfrïOLM3\mUs2.#-`5.fSop.n[SѺΥUGG<t,w۞%Ѫ`Nq^%3ͶExxԚ;%ު|17x7=Ǔx% ygtjqʋ;<#-"5jZ R 'Tʂ12YuSUGP;'" 1PК]/Cr̆wGѓwdVNx+S\Bbpzꉴ6<P,!ܽt\0w,w(aK2vx5pnPjX,YcǧrTU*Q[Og:Cbu*lA]Pa \Hi+AYpt#$sB7dpl9&0A'#)Y"a⫮5;0 yħWX!Yxȷ<,GPAv#/#-#/eĵk#)#ؠEAr0:+]5UbxtC-/-TQ;x+}:hQˏN=ԉa: ϵi+jEY|Ti6iYkhTЬEsԸ#I#/KJ1m&@<ƅ(`YF91!"TuDmaZ5Xڷh fZe"Ȋ vXkQ4(TQA0:Pc˛_!#)ɀM98)m^NAQ3(_zoxۑrlkJk-Vjʪ*7 D/zN9pSUh\EJ-AKx*1K+ud/io#-hHiѳQ+_)S51%Yxk\0 Rk1K #/A82"4q.k02$fP14AZkBFS"œu h F -2HU?ڛɺ0ɬ&i1۹pb[,M(cueM2u㝬{(D$5kZ֩nˏ$aX:5lɂ6Ć61Aq#-#-HiV,p^,m/"]l[l2L-~[Zv0;Ĭ8`&4!tD#-Aj 8Ƙяv<U1jj!j40nJ/!Nus+}!dJ]c7 R Ƿ+\R$)lՆsT"j6QD4<{Oz駭&ƧG9j]P&dq"7*#/* Ѹ0m0m15+Fn-,zsͭܺ|!Z!*TVL`sU"05C7c.ۺ#/]V&R`ا䴶d~j呶\YbV+3QM#F6Nr#-VFq#BZmWXh3B։339QUo,ߖ%M16Zpi#/A{Sh+Q3FPG QG$u)4cՈshx鷋fRq@ifwM\Յj!i#!ϱ,t4[q*#P&!fx!CoKMqnmkB"0]H3!C F5tc׃3Y[*US;fCr>U(dH)v]60bq<SN|O~!^A#HI_vMp\!v\<'1=RHsάC) ĠEUD#/QJ4׃dnYtÆ&E_yg$< o}P1Tr^H7 l}@#-|%=Dg&rkm. ?O4WJ:U+˔yz0BU4ōULn=ф;|k!澉G s՛߅%CZ~k_dl;hԝyR-G!戆I)*S)j뚱mh6((Wi$OgJ+R(H#)Vkl(2cƐ-jV)lڱIFؒhТ*6C64ԍ)6IF)!%DhcKDj%"Z2B6E*0#-f)BIZH#)?pȿf=3=3*{ї;wo~==:Hx|}wrTG#)#)*چAzK#-8'(e&ƦչMvn]! ,d6n8:nC"FOO y$3e>><aݝ F_Fj-v9*Q-m1y6)51[v@T,%waLQ ¥d[3qe(T½K`ϙp*#4Fv]hPQGJ5$r[lb`[P+#-0H#)As-IcAX&@$-,*#Qkoi^Ro4J̅TZAG<1gxPM+BA22+#훞4qM'i>N&}HNLʃ"@q"fZҍn17-q&}AX#-lSb9nF)TEBX8N&!@0I"80EIDNÐ).#o6II$T9Qo{8#)M4L)\tn)iXH#)l+=p3dCfuއF)ל|tg#)Au:Q 5T:o`CHO"Y0Lmmjfa~!#)>N%lh2FNa/j-/*.SD=}<&BB,Aw$Au|=Ԍ#ƓS@:8ڶ/@Q'Ksr[][4"Si*)iQDn-vW=VA_g5KM'RuZ_IJ+缐"Ⱦ'Mf[]hzro]mTd3+wKOE*NGש?اauH=β{-_`dFz3#/r<#/77V<@MZ1#-݃RfL~n#)9D`~)AdUL}#нJ;}٭$)NîtV.Z϶d8. r}#-p~Ll=Բ]4X`C$0aOHv'FIj&g>C#)pJr`{7s@q{ bQWIq靔zJ IscQFrX72-Y,FHsI![.y;H|YJwa*'*ƦxN#/%J"#)Qd#)a#) f_|˳ gmȷzԆ#)UCS+1j4t7FGjŁ1 IesFPy@p8eFfǭl&s-R)UHT+ jg#-#-q,-07k^Y9$7CɰMyQDT6R"?a bS"&j`pbH6h"+GӍ-h6gJ-2yiQ睬#/F*^)`^Pn9ɾL@Em#)@$'Nif! ,2ox?*}r/3p&#w0d&Ero5:fbZH@ؿ4%)Ӡ /=mRc};]'ں%[/PA3P6{.7o%#-HRA]|ըX$Y#-#/JVLREFLR qlh'ˬ3R7yvh0WW4w"#/D;KC;UM#̢F#o XOѱ[=.3}tͧzf4xY8:Rm:L4+eA,>Y8;f$LK1r=I tW:1cvL4f\zmFD$pñ4S4Z 'fܦg0H6SDK;K.eψ[m0Zyk73kyL.[J®:ċu[[ixȇ-M]>eY,9 "zM"ֳJ0k%LMb]8\ᮛ}qʼ\ɸD&kCV^smvn,$dQŐ_j~E0Vlh<ؘ#/ˁz뜣WC]&&b(nH&l3ytҥg`qoP8qAqHFϹʎ[^,-D$N)6C c*K,#)sՀE%T`ޥԭU9kC#/^ZňIA!'WU𣱬5K`ِ#/͜11HPmQ4,T\q4柁I ddzsoPVh.m#Io{lM4|5fcL>"Ā&v͗'XXx맑65;vK:#rȧ=-1L}_.B5QR/6XZAlphoX,.̓帰0Fk#/`Кփ\߳},`nʈJHP+H*4S&z-4D6s89/s-۪h,D℔%Ҕ3B1HivZ7phb)b4"5ݖf|ŧ0PmSM\ [_N#)!5zc+#vMpR3<Y>j23;^PIXga;]' ;۲i9C4;0k0b뚷dcxb4&!`,fR# 9g"Z,PjcUKaU8iEڊ#2G71AR{l[&ɚ4(m-#-i6Yb#-uR%F@bcáZh4&aBQ(d m2k!hE"+\¦C]@M-4 uKsM^LD6DS*vB]4,6"vApFÑTli4Ȃ@ġddj*m@vF r126MP*!ըУC\$[+%0MKbDfMw<>0!laE jm)8aY0l5UE$Ϥ{XQEDEƽ4xs7-PӴ@ A!"0E*Qdx)oN<ßjPe;EKDӦ7Y:(4-*n09O;`qjQthھHMw]/89IC5F#-x3b[:#/*OwD#)6gJe!DBHUzRYSAEB;40k4AvM2p#-*J;2;˕"p`e"din@#/Q-yZE4ɓ'ky2æ~Mi]HÀ'9i]¦窫[#:=yYg-1ջnc;ؾ1"ESF\x#S *}vǽUK?4@d7i>#/HH(T#RД@or''QK*vZ0b#i`+|C"QoStCm&6,Ial%#bB@45*h#- J4?#/L1iHuTMcwbKDa*vmP͑f%Dp4p(cfiN3Pe'm5#)xAG؈\hhJ1¼=#-G#/iB#-<Pa6 r)x2g>hQ4eU=jbʯ,_YC\N|=Р~' ܣe9/958MHzѨpTbb>.%Ɯ.D;#)#):Ba9Ђ`1nk$ D¹KogkLY~1^H`1-(0(Q3v^;22(=}˲QMXk_ݭE%kZR7M"*8", b,(qMP0@ႄH"lz@hO~^)RL@="hmʷw8جA0"!|ãSUVo3@H#)"-1S˕5ݽp4^3`]bbNs$xjl%8Ai!O0ѲhL$#/rDEyveۓxKA(&@*b#iY'%:C, 5*;1,-"mf?2wr=\a 1V=37#-o]&a#/F^|Csq`mqK$#).k׆KR|>Ec:*'õnmtvAPEUjwM `D('Ş&;`-#/TCCZ#/3hFTT(b-eDT]WcC#)lo8oIa5_N4&=i|PD}Q9#)M4Aj@{#- {\N~OQzF+d#"Db) F)MK-1)AUlZ6ؑEMi+Wt4k6mu_c枸WVF`l؍q<:NsW1#)>47z:W?@;\ua&$ .lH=xǗ@ڥ@ T|.QN#/,糤$u>^,ݾ>}o~R&M#)7ƛhmNCMԥь;;$iL57M'MHƬrKDMUKZ,pu$nI22n<vqp`@H)4$.#-KlEW!$&F4bsYL#rAeKhYr8hM#-ױꊜC2!8[+P|FS+"9oV0XXpm/Yc"hYC;\,âY &G$Q:tsb]2*'0'@G5A*t<tO>lTdZazg))~~o(b #-(C)@R]>[oVF]ϺGBnfrKYL~s(}^f"Fof /p J֍p6}SP!Ǿ͚롣57bH9ȠP.^tl:u H$2c2<]FF$e};>UzyCd)(ļ^Echx[cżfP4J;UOڑM@Peo<<eU}|<=aIYa=Mb> @IbTQ7b {h#/ifJͫ~o4MFت6+kjJ^ޛzjQ#)-3a)ki\]O"#a$HNA@CeQL-fQlc+EkT(@'e(^#/4{rMIӼó"I⯈A6l!FOxO?ژs*kr!f!Ƀxv,!8g:I*z3{{,E|4T#/6XR n!ǻIK8NM?N@4S{ը#/D(JsMZ#/$HB *ZړJMRvW歶m&㔀J\/*SRm/v]~ӏuQ>{<3#-Ytjrfn&<KDBٚN9_6 ;m^,c{{çIzH`rjAe#)jvM)%I51R`F&#/Z76ߑhm&EVEN㟫f#/)W@0̩0E4M#-6O9]eﻪHdF-ڔ5F6Y d F;q5Ǟҫ,?yb @!J+1KL5VFSPʂ/IV#/Ҏ<dol̈m(రR3hm<?FAC(]C-n54Rf»iݖ+ƼVdn3vfUuQW;PIl6.imwuwu*LCE*pR$0p)ڌTlji^חjMIUZuujlm(eRםܷktYc+e])!Rn @1TZLhFрpC?pI7ɸ}FB ##)dOJ6W[Fh&P $6yW3|#/Q7&iQ#-#-Hyr{v/\P}Hp?F"!30`R66<q.$-oM#-UJ]/αo4c}^&f#/v}yD"8QH%poRcxk^:C&0&8cj"$~D`*d|8\.*uAD`#/ PyСFk/8&Mib+UF,ҽd^4CcSm.2L'B^+{KMW8y~fkst~J'`O8)A.F'RK`b=86&g;D:!˄r(C %@5Erԋ/][zk)Mj(ZoWVi\r/JrNX":Km@9+vJ ͍h@9͍/Ѕqf\pGc1|sk =H#-UgNدZ͵pCKmc4҈/6t[Fs~Vj߶4C45QV7gȽ:.8h;T.2ȤQhs$rc'p26@#)՚5?BAx$`5/^gYzȆAᡑvnFw[{}tٲ'p2U}؈Z T#/9F!<~b,^ܦ#/B{s>yeF5и #)Z?v~/?[?壳O?w??_ۄz?ڿOP*X?˙"O0lS ̫|yp\)EX&?{EaT$$ϦV#-Wu\J#{՞HAviC\yb"6l{erd:n(.kA܀{?e=8+H1 @Zwfxŏ`G(JUh$SgNt?؈OU7K=>=#._ѹhPQ`XBe :vΘڳrݞ.ɫK.؍aܭ{Rodkۺ1٠- :a4hS*{F~ZX4CkFvjٻVVM,r͙MGj#-[vZtGImƶ9T,vIg=ͅH0Ha3ZWWZsxl: ;n 7!N솃/>&kMN˖(W3$$b1kؼ@ˍ#)hB#-xe:սkȠ]ui64k)#/f<fw`'wč@u,vj+%'DPR#$pB%)!*x=ٿpkƕݘI3?d@HII#)) T/w>|7l3#)9BFA6nwˆ14DY"%aCD#)# C.'C5ʊgLK3/\ m}߶@XD D'VT7]o?/ni5m)q5ҙj6Tfi"bFqJ yЉ#)}!x7E[)hȼ&ĻR">@psOD![w3RtCMʪb1Eí'_8᭺&g>8dClFgotg,r.;@}r#/op!PAyt韈q~d:sLX@Þ4pLa>,5Ez«绵pm44~/q{.m\ЂIM7ex$߁cbmWWսM,#)0 R[/7`pAÒ܊1!I#-#-!@9I̝BzaX$26E߸gfNu##=-zO_#/h6I@$fRztz#_wP}ErPѱA,Xnw#$JFPbQ!X"\H #/9 |=`?j!xt@O)G2˨m-8@u`9bb{D<O!AEo"f9 G^ =$13B{lzM6wh?o?;G~(|eh9W9Q:Sr{|#<?o'tF[<|F̤I͇ QN,SVFOb#/&U3vCtN$#e赜⨊g=W50>>N gAX7^[ c~qQ-y[Na x(w.[̖)kylBtWPAK#/#IBtu?zǼ\!w$S #/^p +#<== +#-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCgAdFiEEivIt5aBoIuNHTzxwSbTGfAUneqoFAl0q7gwACgkQSbTGfAUn\neqqqtQ/8Dcj08eNGla/JnosmW3PPuCVlA7mYOPBCmdyW3qhmB4/HNniLgprucwMm\nVkkqPzGkTbRXGliDAK3HDFlZsgjcse5PU5/E75bmBAkTMw11YMemAb1E+Z3xbgZR\n2AlfGM6GkQJN5Svfr70LX2nV2S0+Ck+3h6DqPMmBb65Poshes5LvTKPKM2D2CXqs\ngZwDFM3w4b5OXgqeum8On4cM3fxwzJxhw5NBX2Po26t/P7tAxEy+soP3exbtMOtT\nEK6QC08nxLshTKNkVPcgsRnt0lDSYKVeGvSAjMnYrHdCIIGpdiucmWaz1rCZL5He\nB/mcGy+eFbaYZhP4OP5RgizvH+tVqrgPZhRhfuJcU6b4WmmHcowfM+kbxYcptedz\nUM3BTh5WmVUJ08WI2fNyMS1PlufCYpbb/ItO49EsVceoaMfWCW1P0+tN+ZnQmojn\n7wQ+9CQOpP7CI1b8GEabygmef7RkeFMfeGKSA5ptLE5oLwtwVm63pronC/ebg5QQ\nUYWRtpUDZ2oSibyN5Mq5We+9/n0NMEajkPfO1raaFVffYf/zd+q7LN/NK/jwrhSE\nDYGmaTauyVpLW1lkUn1dD1cQJm85GaeSGsq+dyGfSsWdDhkjmKafS16S/DdmozUM\nWL1vkFRMgDPRPzGjh8Bze+bepSvrqOJBErz/ZZNnYQ9SwAV46k0=\n=sEkX\n-----END PGP SIGNATURE-----\n @@ -0,0 +1,56 @@ +# +# RTEMS Project (https://www.rtems.org/) +# +# Copyright (c) 2021 Vijay Kumar Banerjee <vijay@rtems.org>. +# 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 +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +from __future__ import print_function + +import netservices +import sys +top = '.' + +rtems_version = "6" +try: + import rtems_waf.rtems as rtems +except rtems_waf.DoesNotExist: + print("error: no rtems_waf git submodule; see README.waf") + sys.exit(1) + + +def init(ctx): + rtems.init(ctx, version=rtems_version, long_commands=True) + + +def options(opt): + rtems.options(opt) + + +def configure(conf): + rtems.configure(conf, netservices.bsp_configure) + + +def build(bld): + rtems.build(bld) + netservices.build(bld) |