build+ci: Add project skeleton

Change-Id: I0fc7c71b23a99899f70d683b45cc27967db15beb
diff --git a/.jenkins b/.jenkins
new file mode 100755
index 0000000..674d751
--- /dev/null
+++ b/.jenkins
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+set -e
+
+DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+for file in "$DIR"/.jenkins.d/*; do
+    [[ -f $file && -x $file ]] || continue
+    echo "Run: $file"
+    "$file"
+done
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
new file mode 100755
index 0000000..41b93f0
--- /dev/null
+++ b/.jenkins.d/00-deps.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+if has OSX $NODE_LABELS; then
+    brew update
+    brew upgrade
+    brew install boost pkg-config cryptopp openssl
+    brew cleanup
+fi
+
+if has Ubuntu $NODE_LABELS; then
+    sudo apt-get -qq update
+    sudo apt-get -qq install build-essential pkg-config libboost-all-dev \
+                             libcrypto++-dev libsqlite3-dev libssl-dev
+fi
diff --git a/.jenkins.d/01-ndn-cxx.sh b/.jenkins.d/01-ndn-cxx.sh
new file mode 100755
index 0000000..482c155
--- /dev/null
+++ b/.jenkins.d/01-ndn-cxx.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+pushd "${CACHE_DIR:-/tmp}" >/dev/null
+
+INSTALLED_VERSION=$((cd ndn-cxx && git rev-parse HEAD) 2>/dev/null || echo NONE)
+
+sudo rm -Rf ndn-cxx-latest
+
+git clone --depth 1 git://github.com/named-data/ndn-cxx ndn-cxx-latest
+
+LATEST_VERSION=$((cd ndn-cxx-latest && git rev-parse HEAD) 2>/dev/null || echo UNKNOWN)
+
+if [[ $INSTALLED_VERSION != $LATEST_VERSION ]]; then
+    sudo rm -Rf ndn-cxx
+    mv ndn-cxx-latest ndn-cxx
+    sudo rm -Rf NFD NFD-latest
+else
+    sudo rm -Rf ndn-cxx-latest
+fi
+
+sudo rm -Rf /usr/local/include/ndn-cxx
+sudo rm -f /usr/local/lib/libndn-cxx*
+sudo rm -f /usr/local/lib/pkgconfig/libndn-cxx*
+
+pushd ndn-cxx >/dev/null
+
+./waf -j1 --color=yes configure --enable-shared --disable-static --without-osx-keychain
+./waf -j1 --color=yes build
+sudo ./waf -j1 --color=yes install
+
+popd >/dev/null
+popd >/dev/null
+
+if has Linux $NODE_LABELS; then
+    sudo ldconfig
+elif has FreeBSD $NODE_LABELS; then
+    sudo ldconfig -a
+fi
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
new file mode 100755
index 0000000..db41533
--- /dev/null
+++ b/.jenkins.d/10-build.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+git submodule init
+git submodule sync
+git submodule update
+
+# Cleanup
+sudo ./waf -j1 --color=yes distclean
+
+if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
+  # Configure/build in optimized mode with tests
+  ./waf -j1 --color=yes configure --with-tests
+  ./waf -j1 --color=yes build
+
+  # Cleanup
+  sudo ./waf -j1 --color=yes distclean
+
+  # Configure/build in optimized mode without tests
+  ./waf -j1 --color=yes configure
+  ./waf -j1 --color=yes build
+
+  # Cleanup
+  sudo ./waf -j1 --color=yes distclean
+fi
+
+# Configure/build in debug mode with tests
+if [[ $JOB_NAME == *"code-coverage" ]]; then
+    COVERAGE="--with-coverage"
+elif ! has OSX-10.9 $NODE_LABELS && ! has OSX-10.11 $NODE_LABELS; then
+    ASAN="--with-sanitizer=address"
+fi
+./waf -j1 --color=yes configure --debug --with-tests $COVERAGE $ASAN
+./waf -j1 --color=yes build
+
+# (tests will be run against debug version)
+
+# Install
+sudo ./waf -j1 --color=yes install
diff --git a/.jenkins.d/20-tests.sh b/.jenkins.d/20-tests.sh
new file mode 100755
index 0000000..18d1c91
--- /dev/null
+++ b/.jenkins.d/20-tests.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+BOOST_VERSION=$(python -c "import sys; sys.path.append('build/c4che'); import _cache; print(_cache.BOOST_VERSION_NUMBER);")
+
+ut_log_args() {
+    if (( BOOST_VERSION >= 106200 )); then
+        echo --logger=HRF,test_suite,stdout:XML,all,build/xunit-${1:-report}.xml
+    else
+        if [[ -n $XUNIT ]]; then
+            echo --log_level=all $( (( BOOST_VERSION >= 106000 )) && echo -- ) \
+                 --log_format2=XML --log_sink2=build/xunit-${1:-report}.xml
+        else
+            echo --log_level=test_suite
+        fi
+    fi
+}
+
+ASAN_OPTIONS="color=always"
+ASAN_OPTIONS+=":detect_leaks=false"
+ASAN_OPTIONS+=":detect_stack_use_after_return=true"
+ASAN_OPTIONS+=":check_initialization_order=true"
+ASAN_OPTIONS+=":strict_init_order=true"
+ASAN_OPTIONS+=":detect_invalid_pointer_pairs=1"
+ASAN_OPTIONS+=":detect_container_overflow=false"
+ASAN_OPTIONS+=":strict_string_checks=true"
+ASAN_OPTIONS+=":strip_path_prefix=${PWD}/"
+export ASAN_OPTIONS
+
+# First run all tests as unprivileged user
+./build/unit-tests $(ut_log_args)
diff --git a/.jenkins.d/30-coverage.sh b/.jenkins.d/30-coverage.sh
new file mode 100755
index 0000000..e629e83
--- /dev/null
+++ b/.jenkins.d/30-coverage.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+set -e
+
+JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+source "$JDIR"/util.sh
+
+set -x
+
+if [[ $JOB_NAME == *"code-coverage" ]]; then
+    gcovr --object-directory=build \
+          --output=build/coverage.xml \
+          --exclude="$PWD/(tests)" \
+          --root=. \
+          --xml
+
+    # # Generate also a detailed HTML output, but using lcov (slower, but better results)
+    lcov -q -c -d . --no-external -o build/coverage-with-tests.info --rc lcov_branch_coverage=1
+    lcov -q -r build/coverage-with-tests.info "$PWD/tests/*" -o build/coverage.info --rc lcov_branch_coverage=1
+    genhtml build/coverage.info --output-directory build/coverage --legend --rc genhtml_branch_coverage=1
+fi
diff --git a/.jenkins.d/README.md b/.jenkins.d/README.md
new file mode 100644
index 0000000..085e383
--- /dev/null
+++ b/.jenkins.d/README.md
@@ -0,0 +1,34 @@
+CONTINUOUS INTEGRATION SCRIPTS
+==============================
+
+Environment Variables Used in Build Scripts
+-------------------------------------------
+
+- `NODE_LABELS`: the variable defines a list of OS properties.  The set values are used by the
+  build scripts to select proper behavior for different OS.
+
+  The list should include at least `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.
+
+  Possible values for Linux:
+
+  * `[OS_TYPE]`: `Linux`
+  * `[DISTRO_TYPE]`: `Ubuntu`
+  * `[DISTRO_VERSION]`: `Ubuntu-14.04`, `Ubuntu-16.04`
+
+  Possible values for OS X / macOS:
+
+  * `[OS_TYPE]`: `OSX`
+  * `[DISTRO_TYPE]`: `OSX` (can be absent)
+  * `[DISTRO_VERSION]`: `OSX-10.10`, `OSX-10.11`, `OSX-10.12`
+
+- `JOB_NAME`: optional variable to define type of the job.  Depending on the defined job type,
+  the build scripts can perform different tasks.
+
+  Possible values:
+
+  * empty: default build process
+  * `code-coverage` (Linux OS is assumed): debug build with tests and code coverage analysis
+  * `limited-build`: only a single debug build with tests
+
+- `CACHE_DIR`: the variable defines a path to folder containing cached files from previous builds,
+  e.g., a compiled version of ndn-cxx library.  If not set, `/tmp` is used.
diff --git a/.jenkins.d/util.sh b/.jenkins.d/util.sh
new file mode 100644
index 0000000..a89bc27
--- /dev/null
+++ b/.jenkins.d/util.sh
@@ -0,0 +1,18 @@
+has() {
+    local saved_xtrace
+    [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
+    set +x
+
+    local p=$1
+    shift
+    local i ret=1
+    for i in "$@"; do
+        if [[ "${i}" == "${p}" ]]; then
+            ret=0
+            break
+        fi
+    done
+
+    set ${saved_xtrace}
+    return ${ret}
+}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..76e3ded
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+sudo: required
+language: generic
+env:
+  global:
+    - JOB_NAME=limited-build
+    - BOOST_TEST_COLOR_OUTPUT=true
+matrix:
+  include:
+    - os: linux
+      dist: trusty
+      env:
+        - CXX=g++
+        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
+    - os: linux
+      dist: trusty
+      env:
+        - CXX=clang++
+        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
+    - os: osx
+      osx_image: xcode8.2
+      env:
+        - CXX=clang++
+        - NODE_LABELS="OSX OSX-10.12"
+notifications:
+  email:
+    on_success: always
+    on_failure: always
+script:
+  - ./.jenkins
diff --git a/.waf-tools/boost.py b/.waf-tools/boost.py
new file mode 100644
index 0000000..9b9395e
--- /dev/null
+++ b/.waf-tools/boost.py
@@ -0,0 +1,518 @@
+#!/usr/bin/env python
+# encoding: utf-8
+#
+# partially based on boost.py written by Gernot Vormayr
+# written by Ruediger Sonderfeld <ruediger@c-plusplus.de>, 2008
+# modified by Bjoern Michaelsen, 2008
+# modified by Luca Fossati, 2008
+# rewritten for waf 1.5.1, Thomas Nagy, 2008
+# rewritten for waf 1.6.2, Sylvain Rouquette, 2011
+
+'''
+
+This is an extra tool, not bundled with the default waf binary.
+To add the boost tool to the waf file:
+$ ./waf-light --tools=compat15,boost
+	or, if you have waf >= 1.6.2
+$ ./waf update --files=boost
+
+When using this tool, the wscript will look like:
+
+	def options(opt):
+		opt.load('compiler_cxx boost')
+
+	def configure(conf):
+		conf.load('compiler_cxx boost')
+		conf.check_boost(lib='system filesystem')
+
+	def build(bld):
+		bld(source='main.cpp', target='app', use='BOOST')
+
+Options are generated, in order to specify the location of boost includes/libraries.
+The `check_boost` configuration function allows to specify the used boost libraries.
+It can also provide default arguments to the --boost-mt command-line arguments.
+Everything will be packaged together in a BOOST component that you can use.
+
+When using MSVC, a lot of compilation flags need to match your BOOST build configuration:
+ - you may have to add /EHsc to your CXXFLAGS or define boost::throw_exception if BOOST_NO_EXCEPTIONS is defined.
+   Errors: C4530
+ - boost libraries will try to be smart and use the (pretty but often not useful) auto-linking feature of MSVC
+   So before calling `conf.check_boost` you might want to disabling by adding
+		conf.env.DEFINES_BOOST += ['BOOST_ALL_NO_LIB']
+   Errors:
+ - boost might also be compiled with /MT, which links the runtime statically.
+   If you have problems with redefined symbols,
+		self.env['DEFINES_%s' % var] += ['BOOST_ALL_NO_LIB']
+		self.env['CXXFLAGS_%s' % var] += ['/MD', '/EHsc']
+Passing `--boost-linkage_autodetect` might help ensuring having a correct linkage in some basic cases.
+
+'''
+
+import sys
+import re
+from waflib import Utils, Logs, Errors
+from waflib.Configure import conf
+from waflib.TaskGen import feature, after_method
+
+BOOST_LIBS = ['/usr/lib/x86_64-linux-gnu', '/usr/lib/i386-linux-gnu',
+			  '/usr/lib', '/usr/local/lib', '/opt/local/lib', '/sw/lib', '/lib']
+BOOST_INCLUDES = ['/usr/include', '/usr/local/include', '/opt/local/include', '/sw/include']
+BOOST_VERSION_FILE = 'boost/version.hpp'
+BOOST_VERSION_CODE = '''
+#include <iostream>
+#include <boost/version.hpp>
+int main() { std::cout << BOOST_LIB_VERSION << ":" << BOOST_VERSION << std::endl; }
+'''
+
+BOOST_ERROR_CODE = '''
+#include <boost/system/error_code.hpp>
+int main() { boost::system::error_code c; }
+'''
+
+PTHREAD_CODE = '''
+#include <pthread.h>
+static void* f(void*) { return 0; }
+int main() {
+	pthread_t th;
+	pthread_attr_t attr;
+	pthread_attr_init(&attr);
+	pthread_create(&th, &attr, &f, 0);
+	pthread_join(th, 0);
+	pthread_cleanup_push(0, 0);
+	pthread_cleanup_pop(0);
+	pthread_attr_destroy(&attr);
+}
+'''
+
+BOOST_THREAD_CODE = '''
+#include <boost/thread.hpp>
+int main() { boost::thread t; }
+'''
+
+BOOST_LOG_CODE = '''
+#include <boost/log/trivial.hpp>
+#include <boost/log/utility/setup/console.hpp>
+#include <boost/log/utility/setup/common_attributes.hpp>
+int main() {
+	using namespace boost::log;
+	add_common_attributes();
+	add_console_log(std::clog, keywords::format = "%Message%");
+	BOOST_LOG_TRIVIAL(debug) << "log is working" << std::endl;
+}
+'''
+
+# toolsets from {boost_dir}/tools/build/v2/tools/common.jam
+PLATFORM = Utils.unversioned_sys_platform()
+detect_intel = lambda env: (PLATFORM == 'win32') and 'iw' or 'il'
+detect_clang = lambda env: (PLATFORM == 'darwin') and 'clang-darwin' or 'clang'
+detect_mingw = lambda env: (re.search('MinGW', env.CXX[0])) and 'mgw' or 'gcc'
+BOOST_TOOLSETS = {
+	'borland':  'bcb',
+	'clang':	detect_clang,
+	'como':	 'como',
+	'cw':	   'cw',
+	'darwin':   'xgcc',
+	'edg':	  'edg',
+	'g++':	  detect_mingw,
+	'gcc':	  detect_mingw,
+	'icpc':	 detect_intel,
+	'intel':	detect_intel,
+	'kcc':	  'kcc',
+	'kylix':	'bck',
+	'mipspro':  'mp',
+	'mingw':	'mgw',
+	'msvc':	 'vc',
+	'qcc':	  'qcc',
+	'sun':	  'sw',
+	'sunc++':   'sw',
+	'tru64cxx': 'tru',
+	'vacpp':	'xlc'
+}
+
+
+def options(opt):
+	opt = opt.add_option_group('Boost Options')
+	opt.add_option('--boost-includes', type='string',
+				   default='', dest='boost_includes',
+				   help='''path to the directory where the boost includes are,
+				   e.g., /path/to/boost_1_55_0/stage/include''')
+	opt.add_option('--boost-libs', type='string',
+				   default='', dest='boost_libs',
+				   help='''path to the directory where the boost libs are,
+				   e.g., path/to/boost_1_55_0/stage/lib''')
+	opt.add_option('--boost-mt', action='store_true',
+				   default=False, dest='boost_mt',
+				   help='select multi-threaded libraries')
+	opt.add_option('--boost-abi', type='string', default='', dest='boost_abi',
+				   help='''select libraries with tags (gd for debug, static is automatically added),
+				   see doc Boost, Getting Started, chapter 6.1''')
+	opt.add_option('--boost-linkage_autodetect', action="store_true", dest='boost_linkage_autodetect',
+				   help="auto-detect boost linkage options (don't get used to it / might break other stuff)")
+	opt.add_option('--boost-toolset', type='string',
+				   default='', dest='boost_toolset',
+				   help='force a toolset e.g. msvc, vc90, \
+						gcc, mingw, mgw45 (default: auto)')
+	py_version = '%d%d' % (sys.version_info[0], sys.version_info[1])
+	opt.add_option('--boost-python', type='string',
+				   default=py_version, dest='boost_python',
+				   help='select the lib python with this version \
+						(default: %s)' % py_version)
+
+
+@conf
+def __boost_get_version_file(self, d):
+	if not d:
+		return None
+	dnode = self.root.find_dir(d)
+	if dnode:
+		return dnode.find_node(BOOST_VERSION_FILE)
+	return None
+
+@conf
+def boost_get_version(self, d):
+	"""silently retrieve the boost version number"""
+	node = self.__boost_get_version_file(d)
+	if node:
+		try:
+			txt = node.read()
+		except EnvironmentError:
+			Logs.error("Could not read the file %r" % node.abspath())
+		else:
+			re_but1 = re.compile('^#define\\s+BOOST_LIB_VERSION\\s+"(.+)"', re.M)
+			m1 = re_but1.search(txt)
+			re_but2 = re.compile('^#define\\s+BOOST_VERSION\\s+(\\d+)', re.M)
+			m2 = re_but2.search(txt)
+			if m1 and m2:
+				return (m1.group(1), m2.group(1))
+	return self.check_cxx(fragment=BOOST_VERSION_CODE, includes=[d], execute=True, define_ret=True).split(":")
+
+@conf
+def boost_get_includes(self, *k, **kw):
+	includes = k and k[0] or kw.get('includes', None)
+	if includes and self.__boost_get_version_file(includes):
+		return includes
+	for d in self.environ.get('INCLUDE', '').split(';') + BOOST_INCLUDES:
+		if self.__boost_get_version_file(d):
+			return d
+	if includes:
+		self.end_msg('headers not found in %s' % includes)
+		self.fatal('The configuration failed')
+	else:
+		self.end_msg('headers not found, please provide a --boost-includes argument (see help)')
+		self.fatal('The configuration failed')
+
+
+@conf
+def boost_get_toolset(self, cc):
+	toolset = cc
+	if not cc:
+		build_platform = Utils.unversioned_sys_platform()
+		if build_platform in BOOST_TOOLSETS:
+			cc = build_platform
+		else:
+			cc = self.env.CXX_NAME
+	if cc in BOOST_TOOLSETS:
+		toolset = BOOST_TOOLSETS[cc]
+	return isinstance(toolset, str) and toolset or toolset(self.env)
+
+
+@conf
+def __boost_get_libs_path(self, *k, **kw):
+	''' return the lib path and all the files in it '''
+	if 'files' in kw:
+		return self.root.find_dir('.'), Utils.to_list(kw['files'])
+	libs = k and k[0] or kw.get('libs', None)
+	if libs:
+		path = self.root.find_dir(libs)
+		files = path.ant_glob('*boost_*')
+	if not libs or not files:
+		for d in self.environ.get('LIB', '').split(';') + BOOST_LIBS:
+			if not d:
+				continue
+			path = self.root.find_dir(d)
+			if path:
+				files = path.ant_glob('*boost_*')
+				if files:
+					break
+			path = self.root.find_dir(d + '64')
+			if path:
+				files = path.ant_glob('*boost_*')
+				if files:
+					break
+	if not path:
+		if libs:
+			self.end_msg('libs not found in %s' % libs)
+			self.fatal('The configuration failed')
+		else:
+			self.end_msg('libs not found, please provide a --boost-libs argument (see help)')
+			self.fatal('The configuration failed')
+
+	self.to_log('Found the boost path in %r with the libraries:' % path)
+	for x in files:
+		self.to_log('    %r' % x)
+	return path, files
+
+@conf
+def boost_get_libs(self, *k, **kw):
+	'''
+	return the lib path and the required libs
+	according to the parameters
+	'''
+	path, files = self.__boost_get_libs_path(**kw)
+	files = sorted(files, key=lambda f: (len(f.name), f.name), reverse=True)
+	toolset = self.boost_get_toolset(kw.get('toolset', ''))
+	toolset_pat = '(-%s[0-9]{0,3})' % toolset
+	version = '-%s' % self.env.BOOST_VERSION
+
+	def find_lib(re_lib, files):
+		for file in files:
+			if re_lib.search(file.name):
+				self.to_log('Found boost lib %s' % file)
+				return file
+		return None
+
+	def format_lib_name(name):
+		if name.startswith('lib') and self.env.CC_NAME != 'msvc':
+			name = name[3:]
+		return name[:name.rfind('.')]
+
+	def match_libs(lib_names, is_static):
+		libs = []
+		lib_names = Utils.to_list(lib_names)
+		if not lib_names:
+			return libs
+		t = []
+		if kw.get('mt', False):
+			t.append('-mt')
+		if kw.get('abi', None):
+			t.append('%s%s' % (is_static and '-s' or '-', kw['abi']))
+		elif is_static:
+			t.append('-s')
+		tags_pat = t and ''.join(t) or ''
+		ext = is_static and self.env.cxxstlib_PATTERN or self.env.cxxshlib_PATTERN
+		ext = ext.partition('%s')[2] # remove '%s' or 'lib%s' from PATTERN
+
+		for lib in lib_names:
+			if lib == 'python':
+				# for instance, with python='27',
+				# accepts '-py27', '-py2', '27' and '2'
+				# but will reject '-py3', '-py26', '26' and '3'
+				tags = '({0})?((-py{2})|(-py{1}(?=[^0-9]))|({2})|({1}(?=[^0-9]))|(?=[^0-9])(?!-py))'.format(tags_pat, kw['python'][0], kw['python'])
+			else:
+				tags = tags_pat
+			# Trying libraries, from most strict match to least one
+			for pattern in ['boost_%s%s%s%s%s$' % (lib, toolset_pat, tags, version, ext),
+							'boost_%s%s%s%s$' % (lib, tags, version, ext),
+							# Give up trying to find the right version
+							'boost_%s%s%s%s$' % (lib, toolset_pat, tags, ext),
+							'boost_%s%s%s$' % (lib, tags, ext),
+							'boost_%s%s$' % (lib, ext),
+							'boost_%s' % lib]:
+				self.to_log('Trying pattern %s' % pattern)
+				file = find_lib(re.compile(pattern), files)
+				if file:
+					libs.append(format_lib_name(file.name))
+					break
+			else:
+				self.end_msg('lib %s not found in %s' % (lib, path.abspath()))
+				self.fatal('The configuration failed')
+		return libs
+
+	return  path.abspath(), match_libs(kw.get('lib', None), False), match_libs(kw.get('stlib', None), True)
+
+@conf
+def _check_pthread_flag(self, *k, **kw):
+	'''
+	Computes which flags should be added to CXXFLAGS and LINKFLAGS to compile in multi-threading mode
+
+	Yes, we *need* to put the -pthread thing in CPPFLAGS because with GCC3,
+	boost/thread.hpp will trigger a #error if -pthread isn't used:
+	  boost/config/requires_threads.hpp:47:5: #error "Compiler threading support
+	  is not turned on. Please set the correct command line options for
+	  threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
+
+	Based on _BOOST_PTHREAD_FLAG(): https://github.com/tsuna/boost.m4/blob/master/build-aux/boost.m4
+    '''
+
+	var = kw.get('uselib_store', 'BOOST')
+
+	self.start_msg('Checking the flags needed to use pthreads')
+
+	# The ordering *is* (sometimes) important.  Some notes on the
+	# individual items follow:
+	# (none): in case threads are in libc; should be tried before -Kthread and
+	#       other compiler flags to prevent continual compiler warnings
+	# -lpthreads: AIX (must check this before -lpthread)
+	# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+	# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+	# -llthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+	# -pthread: GNU Linux/GCC (kernel threads), BSD/GCC (userland threads)
+	# -pthreads: Solaris/GCC
+	# -mthreads: MinGW32/GCC, Lynx/GCC
+	# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+	#      doesn't hurt to check since this sometimes defines pthreads too;
+	#      also defines -D_REENTRANT)
+	#      ... -mt is also the pthreads flag for HP/aCC
+	# -lpthread: GNU Linux, etc.
+	# --thread-safe: KAI C++
+	if Utils.unversioned_sys_platform() == "sunos":
+		# On Solaris (at least, for some versions), libc contains stubbed
+		# (non-functional) versions of the pthreads routines, so link-based
+		# tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+		# -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+		# a function called by this macro, so we could check for that, but
+		# who knows whether they'll stub that too in a future libc.)  So,
+		# we'll just look for -pthreads and -lpthread first:
+		boost_pthread_flags = ["-pthreads", "-lpthread", "-mt", "-pthread"]
+	else:
+		boost_pthread_flags = ["", "-lpthreads", "-Kthread", "-kthread", "-llthread", "-pthread",
+							   "-pthreads", "-mthreads", "-lpthread", "--thread-safe", "-mt"]
+
+	for boost_pthread_flag in boost_pthread_flags:
+		try:
+			self.env.stash()
+			self.env['CXXFLAGS_%s' % var] += [boost_pthread_flag]
+			self.env['LINKFLAGS_%s' % var] += [boost_pthread_flag]
+			self.check_cxx(code=PTHREAD_CODE, msg=None, use=var, execute=False)
+
+			self.end_msg(boost_pthread_flag)
+			return
+		except self.errors.ConfigurationError:
+			self.env.revert()
+	self.end_msg('None')
+
+@conf
+def check_boost(self, *k, **kw):
+	"""
+	Initialize boost libraries to be used.
+
+	Keywords: you can pass the same parameters as with the command line (without "--boost-").
+	Note that the command line has the priority, and should preferably be used.
+	"""
+	if not self.env['CXX']:
+		self.fatal('load a c++ compiler first, conf.load("compiler_cxx")')
+
+	params = {
+		'lib': k and k[0] or kw.get('lib', None),
+		'stlib': kw.get('stlib', None)
+	}
+	for key, value in self.options.__dict__.items():
+		if not key.startswith('boost_'):
+			continue
+		key = key[len('boost_'):]
+		params[key] = value and value or kw.get(key, '')
+
+	var = kw.get('uselib_store', 'BOOST')
+
+	self.start_msg('Checking boost includes')
+	self.env['INCLUDES_%s' % var] = inc = self.boost_get_includes(**params)
+	versions = self.boost_get_version(inc)
+	self.env.BOOST_VERSION = versions[0]
+	self.env.BOOST_VERSION_NUMBER = int(versions[1])
+	self.end_msg("%d.%d.%d" % (int(versions[1]) / 100000,
+							   int(versions[1]) / 100 % 1000,
+							   int(versions[1]) % 100))
+	if Logs.verbose:
+		Logs.pprint('CYAN', '	path : %s' % self.env['INCLUDES_%s' % var])
+
+	if not params['lib'] and not params['stlib']:
+		return
+	if 'static' in kw or 'static' in params:
+		Logs.warn('boost: static parameter is deprecated, use stlib instead.')
+	self.start_msg('Checking boost libs')
+	path, libs, stlibs = self.boost_get_libs(**params)
+	self.env['LIBPATH_%s' % var] = [path]
+	self.env['STLIBPATH_%s' % var] = [path]
+	self.env['LIB_%s' % var] = libs
+	self.env['STLIB_%s' % var] = stlibs
+	self.end_msg('ok')
+	if Logs.verbose:
+		Logs.pprint('CYAN', '	path : %s' % path)
+		Logs.pprint('CYAN', '	shared libs : %s' % libs)
+		Logs.pprint('CYAN', '	static libs : %s' % stlibs)
+
+	def has_shlib(lib):
+		return params['lib'] and lib in params['lib']
+	def has_stlib(lib):
+		return params['stlib'] and lib in params['stlib']
+	def has_lib(lib):
+		return has_shlib(lib) or has_stlib(lib)
+	if has_lib('thread'):
+		# not inside try_link to make check visible in the output
+		self._check_pthread_flag(k, kw)
+
+	def try_link():
+		if has_lib('system'):
+			self.check_cxx(fragment=BOOST_ERROR_CODE, use=var, execute=False)
+		if has_lib('thread'):
+			self.check_cxx(fragment=BOOST_THREAD_CODE, use=var, execute=False)
+		if has_lib('log'):
+			if not has_lib('thread'):
+				self.env['DEFINES_%s' % var] += ['BOOST_LOG_NO_THREADS']
+			if has_shlib('log'):
+				self.env['DEFINES_%s' % var] += ['BOOST_LOG_DYN_LINK']
+			self.check_cxx(fragment=BOOST_LOG_CODE, use=var, execute=False)
+
+	if params.get('linkage_autodetect', False):
+		self.start_msg("Attempting to detect boost linkage flags")
+		toolset = self.boost_get_toolset(kw.get('toolset', ''))
+		if toolset in ('vc',):
+			# disable auto-linking feature, causing error LNK1181
+			# because the code wants to be linked against
+			self.env['DEFINES_%s' % var] += ['BOOST_ALL_NO_LIB']
+
+			# if no dlls are present, we guess the .lib files are not stubs
+			has_dlls = False
+			for x in Utils.listdir(path):
+				if x.endswith(self.env.cxxshlib_PATTERN % ''):
+					has_dlls = True
+					break
+			if not has_dlls:
+				self.env['STLIBPATH_%s' % var] = [path]
+				self.env['STLIB_%s' % var] = libs
+				del self.env['LIB_%s' % var]
+				del self.env['LIBPATH_%s' % var]
+
+			# we attempt to play with some known-to-work CXXFLAGS combinations
+			for cxxflags in (['/MD', '/EHsc'], []):
+				self.env.stash()
+				self.env["CXXFLAGS_%s" % var] += cxxflags
+				try:
+					try_link()
+					self.end_msg("ok: winning cxxflags combination: %s" % (self.env["CXXFLAGS_%s" % var]))
+					exc = None
+					break
+				except Errors.ConfigurationError as e:
+					self.env.revert()
+					exc = e
+
+			if exc is not None:
+				self.end_msg("Could not auto-detect boost linking flags combination, you may report it to boost.py author", ex=exc)
+				self.fatal('The configuration failed')
+		else:
+			self.end_msg("Boost linkage flags auto-detection not implemented (needed ?) for this toolchain")
+			self.fatal('The configuration failed')
+	else:
+		self.start_msg('Checking for boost linkage')
+		try:
+			try_link()
+		except Errors.ConfigurationError as e:
+			self.end_msg("Could not link against boost libraries using supplied options")
+			self.fatal('The configuration failed')
+		self.end_msg('ok')
+
+
+@feature('cxx')
+@after_method('apply_link')
+def install_boost(self):
+	if install_boost.done or not Utils.is_win32 or not self.bld.cmd.startswith('install'):
+		return
+	install_boost.done = True
+	inst_to = getattr(self, 'install_path', '${BINDIR}')
+	for lib in self.env.LIB_BOOST:
+		try:
+			file = self.bld.find_file(self.env.cxxshlib_PATTERN % lib, self.env.LIBPATH_BOOST)
+			self.bld.install_files(inst_to, self.bld.root.find_node(file))
+		except:
+			continue
+install_boost.done = False
diff --git a/.waf-tools/coverage.py b/.waf-tools/coverage.py
new file mode 100644
index 0000000..ce92883
--- /dev/null
+++ b/.waf-tools/coverage.py
@@ -0,0 +1,22 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+from waflib import TaskGen, Logs
+
+def options(opt):
+    opt.add_option('--with-coverage', action='store_true', default=False, dest='with_coverage',
+                   help='''Set compiler flags for gcc to enable code coverage information''')
+
+def configure(conf):
+    if conf.options.with_coverage:
+        if not conf.options.debug:
+            conf.fatal("Code coverage flags require debug mode compilation (add --debug)")
+        conf.check_cxx(cxxflags=['-fprofile-arcs', '-ftest-coverage', '-fPIC'],
+                       linkflags=['-fprofile-arcs'], uselib_store='GCOV', mandatory=True)
+
+@TaskGen.feature('cxx','cc')
+@TaskGen.after('process_source')
+def add_coverage(self):
+    if getattr(self, 'use', ''):
+        self.use += ' GCOV'
+    else:
+        self.use = 'GCOV'
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
new file mode 100644
index 0000000..629b8cf
--- /dev/null
+++ b/.waf-tools/default-compiler-flags.py
@@ -0,0 +1,182 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+from waflib import Logs, Configure, Utils
+
+def options(opt):
+    opt.add_option('--debug', '--with-debug', action='store_true', default=False, dest='debug',
+                   help='''Compile in debugging mode without optimizations (-O0 or -Og)''')
+
+def configure(conf):
+    cxx = conf.env['CXX_NAME'] # CXX_NAME represents generic name of the compiler
+    if cxx == 'gcc':
+        flags = GccFlags()
+    elif cxx == 'clang':
+        flags = ClangFlags()
+    else:
+        flags = CompilerFlags()
+        Logs.warn('The code has not yet been tested with %s compiler' % cxx)
+
+    areCustomCxxflagsPresent = (len(conf.env.CXXFLAGS) > 0)
+
+    # General flags are always applied (e.g., selecting C++11 mode)
+    generalFlags = flags.getGeneralFlags(conf)
+    conf.add_supported_cxxflags(generalFlags['CXXFLAGS'])
+    conf.add_supported_linkflags(generalFlags['LINKFLAGS'])
+    conf.env.DEFINES += generalFlags['DEFINES']
+
+    # Debug or optimized CXXFLAGS and LINKFLAGS are applied only if the
+    # corresponding environment variables are not set.
+    # DEFINES are always applied.
+    if conf.options.debug:
+        extraFlags = flags.getDebugFlags(conf)
+        if areCustomCxxflagsPresent:
+            missingFlags = [x for x in extraFlags['CXXFLAGS'] if x not in conf.env.CXXFLAGS]
+            if len(missingFlags) > 0:
+                Logs.warn("Selected debug mode, but CXXFLAGS is set to a custom value '%s'"
+                          % " ".join(conf.env.CXXFLAGS))
+                Logs.warn("Default flags '%s' are not activated" % " ".join(missingFlags))
+    else:
+        extraFlags = flags.getOptimizedFlags(conf)
+
+    if not areCustomCxxflagsPresent:
+        conf.add_supported_cxxflags(extraFlags['CXXFLAGS'])
+        conf.add_supported_linkflags(extraFlags['LINKFLAGS'])
+
+    conf.env.DEFINES += extraFlags['DEFINES']
+
+@Configure.conf
+def add_supported_cxxflags(self, cxxflags):
+    """
+    Check which cxxflags are supported by compiler and add them to env.CXXFLAGS variable
+    """
+    if len(cxxflags) == 0:
+        return
+
+    self.start_msg('Checking supported CXXFLAGS')
+
+    supportedFlags = []
+    for flag in cxxflags:
+        if self.check_cxx(cxxflags=['-Werror', flag], mandatory=False):
+            supportedFlags += [flag]
+
+    self.end_msg(' '.join(supportedFlags))
+    self.env.prepend_value('CXXFLAGS', supportedFlags)
+
+@Configure.conf
+def add_supported_linkflags(self, linkflags):
+    """
+    Check which linkflags are supported by compiler and add them to env.LINKFLAGS variable
+    """
+    if len(linkflags) == 0:
+        return
+
+    self.start_msg('Checking supported LINKFLAGS')
+
+    supportedFlags = []
+    for flag in linkflags:
+        if self.check_cxx(linkflags=['-Werror', flag], mandatory=False):
+            supportedFlags += [flag]
+
+    self.end_msg(' '.join(supportedFlags))
+    self.env.prepend_value('LINKFLAGS', supportedFlags)
+
+
+class CompilerFlags(object):
+    def getGeneralFlags(self, conf):
+        """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are always needed"""
+        return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': []}
+
+    def getDebugFlags(self, conf):
+        """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in debug mode"""
+        return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': ['_DEBUG']}
+
+    def getOptimizedFlags(self, conf):
+        """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in optimized mode"""
+        return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': ['NDEBUG']}
+
+class GccBasicFlags(CompilerFlags):
+    """
+    This class defines basic flags that work for both gcc and clang compilers
+    """
+    def getDebugFlags(self, conf):
+        flags = super(GccBasicFlags, self).getDebugFlags(conf)
+        flags['CXXFLAGS'] += ['-O0',
+                              '-g3',
+                              '-pedantic',
+                              '-Wall',
+                              '-Wextra',
+                              '-Werror',
+                              '-Wno-unused-parameter',
+                              '-Wno-error=maybe-uninitialized', # Bug #1615
+                              '-Wno-error=deprecated-declarations', # Bug #3795
+                              '-Wno-error=unused-local-typedefs',
+                              ]
+        return flags
+
+    def getOptimizedFlags(self, conf):
+        flags = super(GccBasicFlags, self).getOptimizedFlags(conf)
+        flags['CXXFLAGS'] += ['-O2',
+                              '-g',
+                              '-pedantic',
+                              '-Wall',
+                              '-Wextra',
+                              '-Wno-unused-parameter',
+                              ]
+        return flags
+
+class GccFlags(GccBasicFlags):
+    def getGeneralFlags(self, conf):
+        flags = super(GccFlags, self).getGeneralFlags(conf)
+        version = tuple(int(i) for i in conf.env['CC_VERSION'])
+        if version < (4, 8, 2):
+            conf.fatal('The version of gcc you are using (%s) is too old.\n' %
+                       '.'.join(conf.env['CC_VERSION']) +
+                       'The minimum supported gcc version is 4.8.2.')
+        else:
+            flags['CXXFLAGS'] += ['-std=c++11']
+        return flags
+
+    def getDebugFlags(self, conf):
+        flags = super(GccFlags, self).getDebugFlags(conf)
+        version = tuple(int(i) for i in conf.env['CC_VERSION'])
+        if version < (5, 1, 0):
+            flags['CXXFLAGS'] += ['-Wno-missing-field-initializers']
+        flags['CXXFLAGS'] += ['-Og', # gcc >= 4.8
+                              '-fdiagnostics-color', # gcc >= 4.9
+                              ]
+        return flags
+
+    def getOptimizedFlags(self, conf):
+        flags = super(GccFlags, self).getOptimizedFlags(conf)
+        version = tuple(int(i) for i in conf.env['CC_VERSION'])
+        if version < (5, 1, 0):
+            flags['CXXFLAGS'] += ['-Wno-missing-field-initializers']
+        flags['CXXFLAGS'] += ['-fdiagnostics-color'] # gcc >= 4.9
+        return flags
+
+class ClangFlags(GccBasicFlags):
+    def getGeneralFlags(self, conf):
+        flags = super(ClangFlags, self).getGeneralFlags(conf)
+        flags['CXXFLAGS'] += ['-std=c++11']
+        if Utils.unversioned_sys_platform() == 'darwin':
+            flags['CXXFLAGS'] += ['-stdlib=libc++']
+            flags['LINKFLAGS'] += ['-stdlib=libc++']
+        return flags
+
+    def getDebugFlags(self, conf):
+        flags = super(ClangFlags, self).getDebugFlags(conf)
+        flags['CXXFLAGS'] += ['-fcolor-diagnostics',
+                              '-Wno-unused-local-typedef', # Bugs #2657 and #3209
+                              '-Wno-error=unneeded-internal-declaration', # Bug #1588
+                              '-Wno-error=deprecated-register',
+                              '-Wno-error=keyword-macro', # Bug #3235
+                              '-Wno-error=infinite-recursion', # Bug #3358
+                              ]
+        return flags
+
+    def getOptimizedFlags(self, conf):
+        flags = super(ClangFlags, self).getOptimizedFlags(conf)
+        flags['CXXFLAGS'] += ['-fcolor-diagnostics',
+                              '-Wno-unused-local-typedef', # Bugs #2657 and #3209
+                              ]
+        return flags
diff --git a/.waf-tools/doxygen.py b/.waf-tools/doxygen.py
new file mode 100644
index 0000000..6d8066b
--- /dev/null
+++ b/.waf-tools/doxygen.py
@@ -0,0 +1,214 @@
+#! /usr/bin/env python
+# encoding: UTF-8
+# Thomas Nagy 2008-2010 (ita)
+
+"""
+
+Doxygen support
+
+Variables passed to bld():
+* doxyfile -- the Doxyfile to use
+
+When using this tool, the wscript will look like:
+
+	def options(opt):
+		opt.load('doxygen')
+
+	def configure(conf):
+		conf.load('doxygen')
+		# check conf.env.DOXYGEN, if it is mandatory
+
+	def build(bld):
+		if bld.env.DOXYGEN:
+			bld(features="doxygen", doxyfile='Doxyfile', ...)
+
+        def doxygen(bld):
+		if bld.env.DOXYGEN:
+			bld(features="doxygen", doxyfile='Doxyfile', ...)
+"""
+
+from fnmatch import fnmatchcase
+import os, os.path, re, stat
+from waflib import Task, Utils, Node, Logs, Errors, Build
+from waflib.TaskGen import feature
+
+DOXY_STR = '"${DOXYGEN}" - '
+DOXY_FMTS = 'html latex man rft xml'.split()
+DOXY_FILE_PATTERNS = '*.' + ' *.'.join('''
+c cc cxx cpp c++ java ii ixx ipp i++ inl h hh hxx hpp h++ idl odl cs php php3
+inc m mm py f90c cc cxx cpp c++ java ii ixx ipp i++ inl h hh hxx
+'''.split())
+
+re_rl = re.compile('\\\\\r*\n', re.MULTILINE)
+re_nl = re.compile('\r*\n', re.M)
+def parse_doxy(txt):
+	tbl = {}
+	txt   = re_rl.sub('', txt)
+	lines = re_nl.split(txt)
+	for x in lines:
+		x = x.strip()
+		if not x or x.startswith('#') or x.find('=') < 0:
+			continue
+		if x.find('+=') >= 0:
+			tmp = x.split('+=')
+			key = tmp[0].strip()
+			if key in tbl:
+				tbl[key] += ' ' + '+='.join(tmp[1:]).strip()
+			else:
+				tbl[key] = '+='.join(tmp[1:]).strip()
+		else:
+			tmp = x.split('=')
+			tbl[tmp[0].strip()] = '='.join(tmp[1:]).strip()
+	return tbl
+
+class doxygen(Task.Task):
+	vars  = ['DOXYGEN', 'DOXYFLAGS']
+	color = 'BLUE'
+
+	def runnable_status(self):
+		'''
+		self.pars are populated in runnable_status - because this function is being
+		run *before* both self.pars "consumers" - scan() and run()
+
+		set output_dir (node) for the output
+		'''
+
+		for x in self.run_after:
+			if not x.hasrun:
+				return Task.ASK_LATER
+
+		if not getattr(self, 'pars', None):
+			txt = self.inputs[0].read()
+			self.pars = parse_doxy(txt)
+			if not self.pars.get('OUTPUT_DIRECTORY'):
+				self.pars['OUTPUT_DIRECTORY'] = self.inputs[0].parent.get_bld().abspath()
+
+			# Override with any parameters passed to the task generator
+			if getattr(self.generator, 'pars', None):
+				for k, v in self.generator.pars.items():
+					self.pars[k] = v
+
+			self.doxy_inputs = getattr(self, 'doxy_inputs', [])
+			if not self.pars.get('INPUT'):
+				self.doxy_inputs.append(self.inputs[0].parent)
+			else:
+				for i in self.pars.get('INPUT').split():
+					if os.path.isabs(i):
+						node = self.generator.bld.root.find_node(i)
+					else:
+						node = self.generator.path.find_node(i)
+					if not node:
+						self.generator.bld.fatal('Could not find the doxygen input %r' % i)
+					self.doxy_inputs.append(node)
+
+		if not getattr(self, 'output_dir', None):
+			bld = self.generator.bld
+			# First try to find an absolute path, then find or declare a relative path
+			self.output_dir = bld.root.find_dir(self.pars['OUTPUT_DIRECTORY'])
+			if not self.output_dir:
+				self.output_dir = bld.path.find_or_declare(self.pars['OUTPUT_DIRECTORY'])
+
+		self.signature()
+		return Task.Task.runnable_status(self)
+
+	def scan(self):
+		exclude_patterns = self.pars.get('EXCLUDE_PATTERNS','').split()
+		file_patterns = self.pars.get('FILE_PATTERNS','').split()
+		if not file_patterns:
+			file_patterns = DOXY_FILE_PATTERNS
+		if self.pars.get('RECURSIVE') == 'YES':
+			file_patterns = ["**/%s" % pattern for pattern in file_patterns]
+		nodes = []
+		names = []
+		for node in self.doxy_inputs:
+			if os.path.isdir(node.abspath()):
+				for m in node.ant_glob(incl=file_patterns, excl=exclude_patterns):
+					nodes.append(m)
+			else:
+				nodes.append(node)
+		return (nodes, names)
+
+	def run(self):
+		dct = self.pars.copy()
+		dct['INPUT'] = ' '.join(['"%s"' % x.abspath() for x in self.doxy_inputs])
+		code = '\n'.join(['%s = %s' % (x, dct[x]) for x in self.pars])
+		code = code.encode() # for python 3
+		#fmt = DOXY_STR % (self.inputs[0].parent.abspath())
+		cmd = Utils.subst_vars(DOXY_STR, self.env)
+		env = self.env.env or None
+		proc = Utils.subprocess.Popen(cmd, shell=True, stdin=Utils.subprocess.PIPE, env=env, cwd=self.generator.bld.path.get_bld().abspath())
+		proc.communicate(code)
+		return proc.returncode
+
+	def post_run(self):
+		nodes = self.output_dir.ant_glob('**/*', quiet=True)
+		for x in nodes:
+			x.sig = Utils.h_file(x.abspath())
+		self.outputs += nodes
+		return Task.Task.post_run(self)
+
+class tar(Task.Task):
+	"quick tar creation"
+	run_str = '${TAR} ${TAROPTS} ${TGT} ${SRC}'
+	color   = 'RED'
+	after   = ['doxygen']
+	def runnable_status(self):
+		for x in getattr(self, 'input_tasks', []):
+			if not x.hasrun:
+				return Task.ASK_LATER
+
+		if not getattr(self, 'tar_done_adding', None):
+			# execute this only once
+			self.tar_done_adding = True
+			for x in getattr(self, 'input_tasks', []):
+				self.set_inputs(x.outputs)
+			if not self.inputs:
+				return Task.SKIP_ME
+		return Task.Task.runnable_status(self)
+
+	def __str__(self):
+		tgt_str = ' '.join([a.nice_path(self.env) for a in self.outputs])
+		return '%s: %s\n' % (self.__class__.__name__, tgt_str)
+
+@feature('doxygen')
+def process_doxy(self):
+	if not getattr(self, 'doxyfile', None):
+		self.generator.bld.fatal('no doxyfile??')
+
+	node = self.doxyfile
+	if not isinstance(node, Node.Node):
+		node = self.path.find_resource(node)
+	if not node:
+		raise ValueError('doxygen file not found')
+
+	# the task instance
+	dsk = self.create_task('doxygen', node)
+
+	if getattr(self, 'doxy_tar', None):
+		tsk = self.create_task('tar')
+		tsk.input_tasks = [dsk]
+		tsk.set_outputs(self.path.find_or_declare(self.doxy_tar))
+		if self.doxy_tar.endswith('bz2'):
+			tsk.env['TAROPTS'] = ['cjf']
+		elif self.doxy_tar.endswith('gz'):
+			tsk.env['TAROPTS'] = ['czf']
+		else:
+			tsk.env['TAROPTS'] = ['cf']
+
+def configure(conf):
+	'''
+	Check if doxygen and tar commands are present in the system
+
+	If the commands are present, then conf.env.DOXYGEN and conf.env.TAR
+	variables will be set. Detection can be controlled by setting DOXYGEN and
+	TAR environmental variables.
+	'''
+
+	conf.find_program('doxygen', var='DOXYGEN', mandatory=False)
+	conf.find_program('tar', var='TAR', mandatory=False)
+
+# doxygen docs
+from waflib.Build import BuildContext
+class doxy(BuildContext):
+    cmd = "doxygen"
+    fun = "doxygen"
diff --git a/.waf-tools/sanitizers.py b/.waf-tools/sanitizers.py
new file mode 100644
index 0000000..a8fe55d
--- /dev/null
+++ b/.waf-tools/sanitizers.py
@@ -0,0 +1,22 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def options(opt):
+    opt.add_option('--with-sanitizer', action='store', default='', dest='sanitizers',
+                   help='Comma-separated list of compiler sanitizers to enable [default=none]')
+
+def configure(conf):
+    for san in conf.options.sanitizers.split(','):
+        if not san:
+            continue
+
+        sanflag = '-fsanitize=%s' % san
+        conf.start_msg('Checking if compiler supports %s' % sanflag)
+
+        if conf.check_cxx(cxxflags=['-Werror', sanflag, '-fno-omit-frame-pointer'],
+                          linkflags=[sanflag], mandatory=False):
+            conf.end_msg('yes')
+            conf.env.append_unique('CXXFLAGS', [sanflag, '-fno-omit-frame-pointer'])
+            conf.env.append_unique('LINKFLAGS', [sanflag])
+        else:
+            conf.end_msg('no', color='RED')
+            conf.fatal('%s sanitizer is not supported by the current compiler' % san)
diff --git a/.waf-tools/sphinx_build.py b/.waf-tools/sphinx_build.py
new file mode 100644
index 0000000..e61da6e
--- /dev/null
+++ b/.waf-tools/sphinx_build.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+# inspired by code by Hans-Martin von Gaudecker, 2012
+
+import os
+from waflib import Node, Task, TaskGen, Errors, Logs, Build, Utils
+
+class sphinx_build(Task.Task):
+    color = 'BLUE'
+    run_str = '${SPHINX_BUILD} -D ${VERSION} -D ${RELEASE} -q -b ${BUILDERNAME} -d ${DOCTREEDIR} ${SRCDIR} ${OUTDIR}'
+
+    def __str__(self):
+        env = self.env
+        src_str = ' '.join([a.path_from(a.ctx.launch_node()) for a in self.inputs])
+        tgt_str = ' '.join([a.path_from(a.ctx.launch_node()) for a in self.outputs])
+        if self.outputs: sep = ' -> '
+        else: sep = ''
+        return'%s [%s]: %s%s%s\n'%(self.__class__.__name__.replace('_task',''),
+                                   self.env['BUILDERNAME'], src_str, sep, tgt_str)
+
+@TaskGen.extension('.py', '.rst')
+def sig_hook(self, node):
+    node.sig=Utils.h_file(node.abspath())
+
+@TaskGen.feature("sphinx")
+@TaskGen.before_method("process_source")
+def apply_sphinx(self):
+    """Set up the task generator with a Sphinx instance and create a task."""
+
+    inputs = []
+    for i in Utils.to_list(self.source):
+        if not isinstance(i, Node.Node):
+            node = self.path.find_node(node)
+        else:
+            node = i
+        if not node:
+            raise ValueError('[%s] file not found' % i)
+        inputs.append(node)
+
+    task = self.create_task('sphinx_build', inputs)
+
+    conf = self.path.find_node(self.config)
+    task.inputs.append(conf)
+
+    confdir = conf.parent.abspath()
+    buildername = getattr(self, "builder", "html")
+    srcdir = getattr(self, "srcdir", confdir)
+    outdir = self.path.find_or_declare(getattr(self, "outdir", buildername)).get_bld()
+    doctreedir = getattr(self, "doctreedir", os.path.join(outdir.abspath(), ".doctrees"))
+
+    task.env['BUILDERNAME'] = buildername
+    task.env['SRCDIR'] = srcdir
+    task.env['DOCTREEDIR'] = doctreedir
+    task.env['OUTDIR'] = outdir.abspath()
+    task.env['VERSION'] = "version=%s" % self.VERSION
+    task.env['RELEASE'] = "release=%s" % self.VERSION
+
+    import imp
+    confData = imp.load_source('sphinx_conf', conf.abspath())
+
+    if buildername == "man":
+        for i in confData.man_pages:
+            target = outdir.find_or_declare('%s.%d' % (i[1], i[4]))
+            task.outputs.append(target)
+
+            if self.install_path:
+                self.bld.install_files("%s/man%d/" % (self.install_path, i[4]), target)
+    else:
+        task.outputs.append(outdir)
+
+def configure(conf):
+    conf.find_program('sphinx-build', var='SPHINX_BUILD', mandatory=False)
+
+# sphinx docs
+from waflib.Build import BuildContext
+class sphinx(BuildContext):
+    cmd = "sphinx"
+    fun = "sphinx"
diff --git a/.waf-tools/sqlite3.py b/.waf-tools/sqlite3.py
new file mode 100644
index 0000000..3d4e46e
--- /dev/null
+++ b/.waf-tools/sqlite3.py
@@ -0,0 +1,38 @@
+#! /usr/bin/env python
+# encoding: utf-8
+
+from waflib import Options, Logs
+from waflib.Configure import conf
+
+def options(opt):
+    opt.add_option('--with-sqlite3', type='string', default=None,
+                   dest='with_sqlite3', help='''Path to SQLite3, e.g., /usr/local''')
+
+@conf
+def check_sqlite3(self, *k, **kw):
+    root = k and k[0] or kw.get('path', None) or Options.options.with_sqlite3
+    mandatory = kw.get('mandatory', True)
+    var = kw.get('uselib_store', 'SQLITE3')
+
+    if root:
+        self.check_cxx(lib='sqlite3',
+                       msg='Checking for SQLite3 library',
+                       define_name='HAVE_%s' % var,
+                       uselib_store=var,
+                       mandatory=mandatory,
+                       includes="%s/include" % root,
+                       libpath="%s/lib" % root)
+    else:
+        try:
+            self.check_cfg(package='sqlite3',
+                           args=['--cflags', '--libs'],
+                           global_define=True,
+                           define_name='HAVE_%s' % var,
+                           uselib_store='SQLITE3',
+                           mandatory=True)
+        except:
+            self.check_cxx(lib='sqlite3',
+                           msg='Checking for SQLite3 library',
+                           define_name='HAVE_%s' % var,
+                           uselib_store=var,
+                           mandatory=mandatory)
diff --git a/AUTHORS.md b/AUTHORS.md
new file mode 100644
index 0000000..42052b0
--- /dev/null
+++ b/AUTHORS.md
@@ -0,0 +1,14 @@
+ndncert authors
+===============
+
+## The primary authors are (and/or have been):
+
+* Zhiyi Zhang            <http://irl.cs.ucla.edu/~zhiyi/>
+* Alexander Afanasyev    <http://lasr.cs.ucla.edu/afanasyev/index.html>
+* Lixia Zhang            <http://web.cs.ucla.edu/~lixia/>
+
+## All project authors and contributors
+
+The following is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS,
+people who have reported bugs, submitted patches, and implemented new features
+in the library:
diff --git a/COPYING.md b/COPYING.md
new file mode 100644
index 0000000..ff81c83
--- /dev/null
+++ b/COPYING.md
@@ -0,0 +1,701 @@
+ndncert is licensed under conditions of GNU General Public License version 3 or later.
+
+ndncert relies on third-party software and libraries, licensed under the following licenses:
+
+- ndn-cxx library is licensed under conditions of
+  [GNU Lesser General Public License version 3](https://github.com/named-data/ndn-cxx/blob/master/COPYING.md).
+
+- Boost libraries licensed under conditions of
+  [Boost Software License 1.0](http://www.boost.org/users/license.html)
+
+- CryptoPP library is licensed under conditions of
+  [Boost Software License 1.0](http://www.boost.org/users/license.html)
+
+- SQLite is in [public domain](http://www.sqlite.org/copyright.html)
+
+- waf build system is licensed under conditions of
+  [BSD license](https://github.com/named-data/ndn-cxx/blob/master/waf)
+
+The GPL license is provided below in this file.  For more information about these licenses, see
+http://www.gnu.org/licenses/
+
+
+----------------------------------------------------------------------------------
+
+GNU GENERAL PUBLIC LICENSE
+==========================
+Version 3, 29 June 2007
+=======================
+
+> Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+  Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+# Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+# TERMS AND CONDITIONS
+
+## 0. Definitions.
+
+  _"This License"_ refers to version 3 of the GNU General Public License.
+
+  _"Copyright"_ also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  _"The Program"_ refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as _"you"_.  _"Licensees"_ and
+"recipients" may be individuals or organizations.
+
+  To _"modify"_ a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a _"modified version"_ of the
+earlier work or a work _"based on"_ the earlier work.
+
+  A _"covered work"_ means either the unmodified Program or a work based
+on the Program.
+
+  To _"propagate"_ a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To _"convey"_ a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+## 1. Source Code.
+
+  The _"source code"_ for a work means the preferred form of the work
+for making modifications to it. _"Object code"_ means any non-source
+form of a work.
+
+  A _"Standard Interface"_ means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The _"System Libraries"_ of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The _"Corresponding Source"_ for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+## 2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+## 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+## 4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+## 5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+## 6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A _"User Product"_ is either (1) a _"consumer product"_, which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  _"Installation Information"_ for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+## 7. Additional Terms.
+
+  _"Additional permissions"_ are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+## 8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+## 9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+## 10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An _"entity transaction"_ is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+## 11. Patents.
+
+  A _"contributor"_ is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's _"essential patent claims"_ are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+## 12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+## 13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+## 14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+## 15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+## 16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+## 17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+# END OF TERMS AND CONDITIONS
+--------------------------------------------------------------------------
+
+
+# How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type 'show c' for details.
+
+  The hypothetical commands _'show w'_ and _'show c'_ should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/src/logging.hpp b/src/logging.hpp
new file mode 100644
index 0000000..24b8c3f
--- /dev/null
+++ b/src/logging.hpp
@@ -0,0 +1,40 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017, Regents of the University of California.
+ *
+ * This file is part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#ifndef NDNCERT_LOGGING_HPP
+#define NDNCERT_LOGGING_HPP
+
+#include <ndn-cxx/util/logger.hpp>
+
+namespace ndn {
+namespace ndncert {
+
+#define _LOG_INIT(name) NDN_LOG_INIT(ndncert.name)
+
+#define _LOG_DEBUG(x) NDN_LOG_DEBUG(__FILE__ << ":" << __LINE__ << ":" << " " << x)
+
+#define _LOG_TRACE(x) NDN_LOG_TRACE(__FILE__ << ":" << __LINE__ << ":" << " " << x)
+
+#define _LOG_ERROR(x) NDN_LOG_ERROR(x)
+
+} // ndncert
+} // ndn
+
+#endif // NDNCERT_LOGGING_HPP
diff --git a/src/ndncert-common.hpp b/src/ndncert-common.hpp
new file mode 100644
index 0000000..6e93164
--- /dev/null
+++ b/src/ndncert-common.hpp
@@ -0,0 +1,97 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017, Regents of the University of California.
+ *
+ * This file is part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#ifndef NDNCERT_COMMON_HPP
+#define NDNCERT_COMMON_HPP
+
+#include "ndncert-config.hpp"
+
+#ifdef WITH_TESTS
+#define VIRTUAL_WITH_TESTS virtual
+#define PUBLIC_WITH_TESTS_ELSE_PROTECTED public
+#define PUBLIC_WITH_TESTS_ELSE_PRIVATE public
+#define PROTECTED_WITH_TESTS_ELSE_PRIVATE protected
+#else
+#define VIRTUAL_WITH_TESTS
+#define PUBLIC_WITH_TESTS_ELSE_PROTECTED protected
+#define PUBLIC_WITH_TESTS_ELSE_PRIVATE private
+#define PROTECTED_WITH_TESTS_ELSE_PRIVATE private
+#endif
+
+#include <cstddef>
+#include <cstdint>
+#include <functional>
+#include <list>
+#include <map>
+#include <memory>
+#include <set>
+#include <string>
+#include <unordered_map>
+#include <utility>
+
+#include <ndn-cxx/interest.hpp>
+#include <ndn-cxx/data.hpp>
+#include <ndn-cxx/name.hpp>
+#include <ndn-cxx/encoding/block.hpp>
+#include <ndn-cxx/lp/nack.hpp>
+#include <ndn-cxx/util/backports.hpp>
+#include <ndn-cxx/util/face-uri.hpp>
+#include <ndn-cxx/util/signal.hpp>
+#include <ndn-cxx/security/v2/key-chain.hpp>
+#include <ndn-cxx/security/validator.hpp>
+#include <ndn-cxx/security/v2/certificate.hpp>
+
+#include <boost/algorithm/string.hpp>
+#include <boost/assert.hpp>
+#include <boost/noncopyable.hpp>
+#include <boost/property_tree/ptree.hpp>
+#include <boost/property_tree/json_parser.hpp>
+#include <boost/property_tree/info_parser.hpp>
+#include <boost/throw_exception.hpp>
+
+namespace ndn {
+namespace ndncert {
+
+using std::size_t;
+
+using boost::noncopyable;
+
+using std::shared_ptr;
+using std::unique_ptr;
+using std::weak_ptr;
+using std::make_shared;
+using ndn::make_unique;
+using std::enable_shared_from_this;
+
+using std::function;
+using std::bind;
+
+using ndn::Interest;
+using ndn::Data;
+using ndn::Name;
+using ndn::PartialName;
+using ndn::Block;
+using ndn::time::system_clock;
+using ndn::time::toUnixTimestamp;
+
+} // namespace ndncert
+} // namespace ndn
+
+#endif // NDNCERT_COMMON_HPP
diff --git a/tests/boost-multi-log-formatter.hpp b/tests/boost-multi-log-formatter.hpp
new file mode 100644
index 0000000..ae37416
--- /dev/null
+++ b/tests/boost-multi-log-formatter.hpp
@@ -0,0 +1,214 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2015 Regents of the University of California.
+ *
+ * Based on work by Martin Ba (http://stackoverflow.com/a/26718189)
+ *
+ * This file is distributed under the Boost Software License, Version 1.0.
+ * (See http://www.boost.org/LICENSE_1_0.txt)
+ */
+
+#ifndef NDN_TESTS_BOOST_MULTI_LOG_FORMATTER_HPP
+#define NDN_TESTS_BOOST_MULTI_LOG_FORMATTER_HPP
+
+#include <boost/version.hpp>
+
+#if BOOST_VERSION >= 105900
+#include <boost/test/unit_test_parameters.hpp>
+#else
+#include <boost/test/detail/unit_test_parameters.hpp>
+#endif // BOOST_VERSION >= 105900
+
+#include <boost/test/unit_test_log_formatter.hpp>
+#include <boost/test/output/compiler_log_formatter.hpp>
+#include <boost/test/output/xml_log_formatter.hpp>
+
+namespace boost {
+namespace unit_test {
+namespace output {
+
+/**
+ * @brief Log formatter for Boost.Test that outputs the logging to multiple formatters
+ *
+ * The log formatter is designed to output to one or multiple formatters at the same time.  For
+ * example, one HRF formatter can output to the standard output, while XML formatter output to
+ * the file.
+ *
+ * Usage:
+ *
+ *     // Call in init_unit_test_suite: (this will override the --log_format parameter)
+ *     auto formatter = new boost::unit_test::output::multi_log_formatter; // same as already configured logger
+ *
+ *     // Prepare and add additional logger(s)
+ *     formatter.add(std::make_shared<boost::unit_test::output::xml_log_formatter>(),
+ *                   std::make_shared<std::ofstream>("out.xml"));
+ *
+ *      boost::unit_test::unit_test_log.set_formatter(formatter);
+ *
+ * @note Calling `boost::unit_test::unit_test_log.set_stream(...)` will change the stream for
+ *       the original logger.
+ */
+class multi_log_formatter : public unit_test_log_formatter
+{
+public:
+  /**
+   * @brief Create instance of the logger, based on the configured logger instance
+   */
+  multi_log_formatter()
+  {
+    auto format =
+#if BOOST_VERSION > 105900
+      runtime_config::get<output_format>(runtime_config::LOG_FORMAT);
+#else
+      runtime_config::log_format();
+#endif // BOOST_VERSION > 105900
+
+    switch (format) {
+      default:
+#if BOOST_VERSION >= 105900
+      case OF_CLF:
+#else
+      case CLF:
+#endif // BOOST_VERSION >= 105900
+        m_loggers.push_back({std::make_shared<compiler_log_formatter>(), nullptr});
+        break;
+#if BOOST_VERSION >= 105900
+      case OF_XML:
+#else
+      case XML:
+#endif // BOOST_VERSION >= 105900
+        m_loggers.push_back({std::make_shared<xml_log_formatter>(), nullptr});
+        break;
+    }
+  }
+
+  void
+  add(std::shared_ptr<unit_test_log_formatter> formatter, std::shared_ptr<std::ostream> os)
+  {
+    m_loggers.push_back({formatter, os});
+  }
+
+  // Formatter interface
+  void
+  log_start(std::ostream& os, counter_t test_cases_amount)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_start(l.os == nullptr ? os : *l.os, test_cases_amount);
+  }
+
+  void
+  log_finish(std::ostream& os)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_finish(l.os == nullptr ? os : *l.os);
+  }
+
+  void
+  log_build_info(std::ostream& os)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_build_info(l.os == nullptr ? os : *l.os);
+  }
+
+  void
+  test_unit_start(std::ostream& os, const test_unit& tu)
+  {
+    for (auto& l : m_loggers)
+      l.logger->test_unit_start(l.os == nullptr ? os : *l.os, tu);
+  }
+
+  void
+  test_unit_finish(std::ostream& os, const test_unit& tu, unsigned long elapsed)
+  {
+    for (auto& l : m_loggers)
+      l.logger->test_unit_finish(l.os == nullptr ? os : *l.os, tu, elapsed);
+  }
+
+  void
+  test_unit_skipped(std::ostream& os, const test_unit& tu)
+  {
+    for (auto& l : m_loggers)
+      l.logger->test_unit_skipped(l.os == nullptr ? os : *l.os, tu);
+  }
+
+#if BOOST_VERSION >= 105900
+  void
+  log_exception_start(std::ostream& os, const log_checkpoint_data& lcd, const execution_exception& ex)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_exception_start(l.os == nullptr ? os : *l.os, lcd, ex);
+  }
+
+  void
+  log_exception_finish(std::ostream& os)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_exception_finish(l.os == nullptr ? os : *l.os);
+  }
+#else
+  void
+  log_exception(std::ostream& os, const log_checkpoint_data& lcd, const execution_exception& ex)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_exception(l.os == nullptr ? os : *l.os, lcd, ex);
+  }
+#endif // BOOST_VERSION >= 105900
+
+  void
+  log_entry_start(std::ostream& os, const log_entry_data& entry_data, log_entry_types let)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_entry_start(l.os == nullptr ? os : *l.os, entry_data, let);
+  }
+
+  void
+  log_entry_value(std::ostream& os, const_string value)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_entry_value(l.os == nullptr ? os : *l.os, value);
+  }
+
+  void
+  log_entry_finish(std::ostream& os)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_entry_finish(l.os == nullptr ? os : *l.os);
+  }
+
+#if BOOST_VERSION >= 105900
+  void
+  entry_context_start(std::ostream& os, log_level level)
+  {
+    for (auto& l : m_loggers)
+      l.logger->entry_context_start(l.os == nullptr ? os : *l.os, level);
+  }
+
+  void
+  log_entry_context(std::ostream& os, const_string value)
+  {
+    for (auto& l : m_loggers)
+      l.logger->log_entry_context(l.os == nullptr ? os : *l.os, value);
+  }
+
+  void
+  entry_context_finish(std::ostream& os)
+  {
+    for (auto& l : m_loggers)
+      l.logger->entry_context_finish(l.os == nullptr ? os : *l.os);
+  }
+#endif // BOOST_VERSION >= 105900
+
+private:
+  struct LoggerInfo
+  {
+    std::shared_ptr<unit_test_log_formatter> logger;
+    std::shared_ptr<std::ostream> os;
+  };
+  std::vector<LoggerInfo> m_loggers;
+};
+
+} // namespace output
+} // namespace unit_test
+} // namespace boost
+
+#endif // NDN_TESTS_BOOST_MULTI_LOG_FORMATTER_HPP
diff --git a/tests/boost-test.hpp b/tests/boost-test.hpp
new file mode 100644
index 0000000..220a481
--- /dev/null
+++ b/tests/boost-test.hpp
@@ -0,0 +1,39 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#ifndef CERT_TESTS_BOOST_TEST_HPP
+#define CERT_TESTS_BOOST_TEST_HPP
+
+// suppress warnings from Boost.Test
+#pragma GCC system_header
+#pragma clang system_header
+
+#include <boost/test/unit_test.hpp>
+#include <boost/concept_check.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+#endif // CERT_TESTS_BOOST_TEST_HPP
diff --git a/tests/global-configuration-fixture.cpp b/tests/global-configuration-fixture.cpp
new file mode 100644
index 0000000..bf4d864
--- /dev/null
+++ b/tests/global-configuration-fixture.cpp
@@ -0,0 +1,86 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017, Regents of the University of California.
+ *
+ * This file is part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#include "ndncert-config.hpp"
+
+#include <boost/version.hpp>
+#include <boost/filesystem.hpp>
+
+#include "test-common.hpp"
+
+namespace ndn {
+namespace chronoshare {
+namespace tests {
+
+class GlobalConfigurationFixture : boost::noncopyable
+{
+public:
+  GlobalConfigurationFixture()
+  {
+    if (getenv("HOME") != nullptr) {
+      m_home = getenv("HOME");
+    }
+    if (getenv("NDN_CLIENT_PIB") != nullptr) {
+      m_pib = getenv("NDN_CLIENT_PIB");
+    }
+    if (getenv("NDN_CLIENT_TPM") != nullptr) {
+      m_tpm = getenv("NDN_CLIENT_TPM");
+    }
+
+    boost::filesystem::path dir(TMP_TESTS_PATH);
+    dir /= "test-home";
+    setenv("HOME", dir.generic_string().c_str(), 1);
+
+    if (exists(dir)) {
+      remove_all(dir);
+    }
+
+    setenv("NDN_CLIENT_PIB", ("pib-sqlite3:" + dir.string()).c_str(), 1);
+    setenv("NDN_CLIENT_TPM", ("tpm-file:" + dir.string()).c_str(), 1);
+    create_directories(dir);
+  }
+
+  ~GlobalConfigurationFixture()
+  {
+    if (!m_home.empty()) {
+      setenv("HOME", m_home.c_str(), 1);
+    }
+    if (!m_pib.empty()) {
+      setenv("NDN_CLIENT_PIB", m_pib.c_str(), 1);
+    }
+    if (!m_tpm.empty()) {
+      setenv("NDN_CLIENT_TPM", m_tpm.c_str(), 1);
+    }
+  }
+
+private:
+  std::string m_home;
+  std::string m_pib;
+  std::string m_tpm;
+};
+
+BOOST_GLOBAL_FIXTURE(GlobalConfigurationFixture)
+#if (BOOST_VERSION >= 105900)
+;
+#endif // BOOST_VERSION >= 105900
+
+} // namespace tests
+} // namespace chronoshare
+} // namespace ndn
diff --git a/tests/identity-management-fixture.cpp b/tests/identity-management-fixture.cpp
new file mode 100644
index 0000000..b9d6d41
--- /dev/null
+++ b/tests/identity-management-fixture.cpp
@@ -0,0 +1,95 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#include "identity-management-fixture.hpp"
+
+#include <ndn-cxx/util/io.hpp>
+#include <boost/filesystem.hpp>
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+IdentityManagementFixture::IdentityManagementFixture()
+  : m_keyChain("sqlite3", "file")
+{
+  m_keyChain.getDefaultCertificate(); // side effect: create a default cert if it doesn't exist
+}
+
+IdentityManagementFixture::~IdentityManagementFixture()
+{
+  for (const auto& id : m_identities) {
+    m_keyChain.deleteIdentity(id);
+  }
+
+  boost::system::error_code ec;
+  for (const auto& certFile : m_certFiles) {
+    boost::filesystem::remove(certFile, ec); // ignore error
+  }
+}
+
+bool
+IdentityManagementFixture::addIdentity(const Name& identity, const ndn::KeyParams& params)
+{
+  try {
+    m_keyChain.createIdentity(identity, params);
+    m_identities.push_back(identity);
+    return true;
+  }
+  catch (std::runtime_error&) {
+    return false;
+  }
+}
+
+bool
+IdentityManagementFixture::saveIdentityCertificate(const Name& identity,
+                                                   const std::string& filename, bool wantAdd)
+{
+  shared_ptr<ndn::IdentityCertificate> cert;
+  try {
+    cert = m_keyChain.getCertificate(m_keyChain.getDefaultCertificateNameForIdentity(identity));
+  }
+  catch (const ndn::SecPublicInfo::Error&) {
+    if (wantAdd && this->addIdentity(identity)) {
+      return this->saveIdentityCertificate(identity, filename, false);
+    }
+    return false;
+  }
+
+  m_certFiles.push_back(filename);
+  try {
+    ndn::io::save(*cert, filename);
+    return true;
+  }
+  catch (const ndn::io::Error&) {
+    return false;
+  }
+}
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/identity-management-fixture.hpp b/tests/identity-management-fixture.hpp
new file mode 100644
index 0000000..29eeede
--- /dev/null
+++ b/tests/identity-management-fixture.hpp
@@ -0,0 +1,86 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#ifndef NDNCERT_TESTS_IDENTITY_MANAGEMENT_FIXTURE_HPP
+#define NDNCERT_TESTS_IDENTITY_MANAGEMENT_FIXTURE_HPP
+
+#include "test-common.hpp"
+
+#include <ndn-cxx/security/key-chain.hpp>
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+/** \brief a fixture that cleans up KeyChain identities and certificate files upon destruction
+ */
+class IdentityManagementFixture : public virtual BaseFixture
+{
+public:
+  IdentityManagementFixture();
+
+  /** \brief deletes created identities and saved certificate files
+   */
+  ~IdentityManagementFixture();
+
+  /** \brief add identity
+   *  \return whether successful
+   */
+  bool
+  addIdentity(const Name& identity,
+              const ndn::KeyParams& params = ndn::KeyChain::DEFAULT_KEY_PARAMS);
+
+  /** \brief save identity certificate to a file
+   *  \param identity identity name
+   *  \param filename file name, should be writable
+   *  \param wantAdd if true, add new identity when necessary
+   *  \return whether successful
+   */
+  bool
+  saveIdentityCertificate(const Name& identity, const std::string& filename, bool wantAdd = false);
+
+protected:
+  ndn::KeyChain m_keyChain;
+
+private:
+  std::vector<ndn::Name> m_identities;
+  std::vector<std::string> m_certFiles;
+};
+
+/** \brief convenience base class for inheriting from both UnitTestTimeFixture
+ *         and IdentityManagementFixture
+ */
+class IdentityManagementTimeFixture : public UnitTestTimeFixture
+                                    , public IdentityManagementFixture
+{
+};
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
+
+#endif // NDNCERT_TESTS_IDENTITY_MANAGEMENT_FIXTURE_HPP
diff --git a/tests/main.cpp b/tests/main.cpp
new file mode 100644
index 0000000..d6380c6
--- /dev/null
+++ b/tests/main.cpp
@@ -0,0 +1,117 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_ALTERNATIVE_INIT_API
+
+#include <boost/version.hpp>
+
+#if BOOST_VERSION >= 106200
+// Boost.Test v3.3 (Boost 1.62) natively supports multi-logger output
+#include "boost-test.hpp"
+#else
+#define BOOST_TEST_NO_MAIN
+#include "boost-test.hpp"
+
+#include "boost-multi-log-formatter.hpp"
+
+#include <boost/program_options/options_description.hpp>
+#include <boost/program_options/variables_map.hpp>
+#include <boost/program_options/parsers.hpp>
+
+#include <fstream>
+#include <iostream>
+
+static bool
+init_tests()
+{
+  init_unit_test();
+
+  namespace po = boost::program_options;
+  namespace ut = boost::unit_test;
+
+  po::options_description extraOptions;
+  std::string logger;
+  std::string outputFile = "-";
+  extraOptions.add_options()
+    ("log_format2", po::value<std::string>(&logger), "Type of second log formatter: HRF or XML")
+    ("log_sink2", po::value<std::string>(&outputFile)->default_value(outputFile), "Second log sink, - for stdout")
+    ;
+  po::variables_map vm;
+  try {
+    po::store(po::command_line_parser(ut::framework::master_test_suite().argc,
+                                      ut::framework::master_test_suite().argv)
+                .options(extraOptions)
+                .run(),
+              vm);
+    po::notify(vm);
+  }
+  catch (const std::exception& e) {
+    std::cerr << "ERROR: " << e.what() << "\n"
+              << extraOptions << std::endl;
+    return false;
+  }
+
+  if (vm.count("log_format2") == 0) {
+    // second logger is not configured
+    return true;
+  }
+
+  std::shared_ptr<ut::unit_test_log_formatter> formatter;
+  if (logger == "XML") {
+    formatter = std::make_shared<ut::output::xml_log_formatter>();
+  }
+  else if (logger == "HRF") {
+    formatter = std::make_shared<ut::output::compiler_log_formatter>();
+  }
+  else {
+    std::cerr << "ERROR: only HRF or XML log formatter can be specified" << std::endl;
+    return false;
+  }
+
+  std::shared_ptr<std::ostream> output;
+  if (outputFile == "-") {
+    output = std::shared_ptr<std::ostream>(&std::cout, std::bind([]{}));
+  }
+  else {
+    output = std::make_shared<std::ofstream>(outputFile.c_str());
+  }
+
+  auto multiFormatter = new ut::output::multi_log_formatter;
+  multiFormatter->add(formatter, output);
+  ut::unit_test_log.set_formatter(multiFormatter);
+
+  return true;
+}
+
+int
+main(int argc, char* argv[])
+{
+  return ::boost::unit_test::unit_test_main(&init_tests, argc, argv);
+}
+
+#endif // BOOST_VERSION >= 106200
diff --git a/tests/test-common.cpp b/tests/test-common.cpp
new file mode 100644
index 0000000..8214cf5
--- /dev/null
+++ b/tests/test-common.cpp
@@ -0,0 +1,136 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#include "test-common.hpp"
+
+#include <ndn-cxx/util/digest.hpp>
+#include <ndn-cxx/security/signature-sha256-with-rsa.hpp>
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+UnitTestTimeFixture::UnitTestTimeFixture()
+  : steadyClock(make_shared<time::UnitTestSteadyClock>())
+  , systemClock(make_shared<time::UnitTestSystemClock>())
+{
+  time::setCustomClocks(steadyClock, systemClock);
+}
+
+UnitTestTimeFixture::~UnitTestTimeFixture()
+{
+  time::setCustomClocks(nullptr, nullptr);
+}
+
+void
+UnitTestTimeFixture::advanceClocks(const time::nanoseconds& tick, size_t nTicks)
+{
+  this->advanceClocks(tick, tick * nTicks);
+}
+
+void
+UnitTestTimeFixture::advanceClocks(const time::nanoseconds& tick, const time::nanoseconds& total)
+{
+  BOOST_ASSERT(tick > time::nanoseconds::zero());
+  BOOST_ASSERT(total >= time::nanoseconds::zero());
+
+  time::nanoseconds remaining = total;
+  while (remaining > time::nanoseconds::zero()) {
+    if (remaining >= tick) {
+      steadyClock->advance(tick);
+      systemClock->advance(tick);
+      remaining -= tick;
+    }
+    else {
+      steadyClock->advance(remaining);
+      systemClock->advance(remaining);
+      remaining = time::nanoseconds::zero();
+    }
+
+    if (m_io.stopped())
+      m_io.reset();
+    m_io.poll();
+  }
+}
+
+shared_ptr<Interest>
+makeInterest(const Name& name, uint32_t nonce)
+{
+  auto interest = make_shared<Interest>(name);
+  if (nonce != 0) {
+    interest->setNonce(nonce);
+  }
+  return interest;
+}
+
+shared_ptr<Data>
+makeData(const Name& name)
+{
+  auto data = make_shared<Data>(name);
+  return signData(data);
+}
+
+Data&
+signData(Data& data)
+{
+  ndn::SignatureSha256WithRsa fakeSignature;
+  fakeSignature.setValue(ndn::encoding::makeEmptyBlock(tlv::SignatureValue));
+  data.setSignature(fakeSignature);
+  data.wireEncode();
+
+  return data;
+}
+
+shared_ptr<Link>
+makeLink(const Name& name, std::initializer_list<std::pair<uint32_t, Name>> delegations)
+{
+  auto link = make_shared<Link>(name, delegations);
+  signData(link);
+  return link;
+}
+
+lp::Nack
+makeNack(const Name& name, uint32_t nonce, lp::NackReason reason)
+{
+  Interest interest(name);
+  interest.setNonce(nonce);
+  lp::Nack nack(std::move(interest));
+  nack.setReason(reason);
+  return nack;
+}
+
+ConstBufferPtr
+digestFromFile(const boost::filesystem::path& filename)
+{
+  boost::filesystem::ifstream iff(filename, std::ios::in | std::ios::binary);
+  util::Sha256 digest(iff);
+  return digest.computeDigest();
+}
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/test-common.hpp b/tests/test-common.hpp
new file mode 100644
index 0000000..2d2ab6a
--- /dev/null
+++ b/tests/test-common.hpp
@@ -0,0 +1,180 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2017, Regents of the University of California,
+ *                          Arizona Board of Regents,
+ *                          Colorado State University,
+ *                          University Pierre & Marie Curie, Sorbonne University,
+ *                          Washington University in St. Louis,
+ *                          Beijing Institute of Technology,
+ *                          The University of Memphis.
+ *
+ * This file, originally written as part of NFD (Named Data Networking Forwarding Daemon),
+ * is a part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#ifndef NDNCERT_TESTS_TEST_COMMON_HPP
+#define NDNCERT_TESTS_TEST_COMMON_HPP
+
+#include "logging.hpp"
+
+#include "boost-test.hpp"
+
+#include <boost/asio/io_service.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/fstream.hpp>
+
+#include <ndn-cxx/name.hpp>
+#include <ndn-cxx/data.hpp>
+#include <ndn-cxx/lp/nack.hpp>
+#include <ndn-cxx/util/time-unit-test-clock.hpp>
+#include <ndn-cxx/util/string-helper.hpp>
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+/** \brief base test fixture
+ *
+ *  Every test case should be based on this fixture,
+ *  to have per test case io_service initialization.
+ */
+class BaseFixture
+{
+protected:
+  /** \brief reference to global io_service
+   */
+  boost::asio::io_service m_io;
+};
+
+/** \brief a base test fixture that overrides steady clock and system clock
+ */
+class UnitTestTimeFixture : public virtual BaseFixture
+{
+protected:
+  UnitTestTimeFixture();
+
+  ~UnitTestTimeFixture();
+
+  /** \brief advance steady and system clocks
+   *
+   *  Clocks are advanced in increments of \p tick for \p nTicks ticks.
+   *  After each tick, global io_service is polled to process pending I/O events.
+   *
+   *  Exceptions thrown during I/O events are propagated to the caller.
+   *  Clock advancing would stop in case of an exception.
+   */
+  void
+  advanceClocks(const time::nanoseconds& tick, size_t nTicks = 1);
+
+  /** \brief advance steady and system clocks
+   *
+   *  Clocks are advanced in increments of \p tick for \p total time.
+   *  The last increment might be shorter than \p tick.
+   *  After each tick, global io_service is polled to process pending I/O events.
+   *
+   *  Exceptions thrown during I/O events are propagated to the caller.
+   *  Clock advancing would stop in case of an exception.
+   */
+  void
+  advanceClocks(const time::nanoseconds& tick, const time::nanoseconds& total);
+
+protected:
+  shared_ptr<time::UnitTestSteadyClock> steadyClock;
+  shared_ptr<time::UnitTestSystemClock> systemClock;
+
+  friend class LimitedIo;
+};
+
+/** \brief create an Interest
+ *  \param name Interest name
+ *  \param nonce if non-zero, set Nonce to this value
+ *               (useful for creating Nack with same Nonce)
+ */
+shared_ptr<Interest>
+makeInterest(const Name& name, uint32_t nonce = 0);
+
+/** \brief create a Data with fake signature
+ *  \note Data may be modified afterwards without losing the fake signature.
+ *        If a real signature is desired, sign again with KeyChain.
+ */
+shared_ptr<Data>
+makeData(const Name& name);
+
+/** \brief add a fake signature to Data
+ */
+Data&
+signData(Data& data);
+
+/** \brief add a fake signature to Data
+ */
+inline shared_ptr<Data>
+signData(shared_ptr<Data> data)
+{
+  signData(*data);
+  return data;
+}
+
+/** \brief create a Link object with fake signature
+ *  \note Link may be modified afterwards without losing the fake signature.
+ *        If a real signature is desired, sign again with KeyChain.
+ */
+shared_ptr<Link>
+makeLink(const Name& name, std::initializer_list<std::pair<uint32_t, Name>> delegations);
+
+/** \brief create a Nack
+ *  \param name Interest name
+ *  \param nonce Interest nonce
+ *  \param reason Nack reason
+ */
+lp::Nack
+makeNack(const Name& name, uint32_t nonce, lp::NackReason reason);
+
+/** \brief replace a name component
+ *  \param[inout] name name
+ *  \param index name component index
+ *  \param a arguments to name::Component constructor
+ */
+template<typename...A>
+void
+setNameComponent(Name& name, ssize_t index, const A& ...a)
+{
+  Name name2 = name.getPrefix(index);
+  name2.append(name::Component(a...));
+  name2.append(name.getSubName(name2.size()));
+  name = name2;
+}
+
+template<typename Packet, typename...A>
+void
+setNameComponent(Packet& packet, ssize_t index, const A& ...a)
+{
+  Name name = packet.getName();
+  setNameComponent(name, index, a...);
+  packet.setName(name);
+}
+
+/** \brief convert file to digest
+ */
+ndn::ConstBufferPtr
+digestFromFile(const boost::filesystem::path& filename);
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
+
+#include "identity-management-fixture.hpp"
+
+#endif // NDNCERT_TESTS_TEST_COMMON_HPP
diff --git a/tests/unit-tests/dummy-test.t.cpp b/tests/unit-tests/dummy-test.t.cpp
new file mode 100644
index 0000000..d6ccd1f
--- /dev/null
+++ b/tests/unit-tests/dummy-test.t.cpp
@@ -0,0 +1,52 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017, Regents of the University of California.
+ *
+ * This file is part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert 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 copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#include "test-common.hpp"
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+// See http://redmine.named-data.net/projects/nfd/wiki/UnitTesting on how to name a test suite.
+BOOST_AUTO_TEST_SUITE(TestSkeleton)
+
+BOOST_AUTO_TEST_CASE(Test1)
+{
+  int i = 0;
+
+  // For reference of available Boost.Test macros, see
+  // http://www.boost.org/doc/libs/1_54_0/libs/test/doc/html/utf/testing-tools/reference.html
+
+  BOOST_REQUIRE_NO_THROW(i = 1);
+  BOOST_REQUIRE_EQUAL(i, 1);
+}
+
+// Use UnitTestTimeFixture to mock clocks.
+BOOST_FIXTURE_TEST_CASE(Test2, UnitTestTimeFixture)
+{
+  // this->advanceClocks increments mock clocks.
+  advanceClocks(time::milliseconds(500), 2);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/wscript b/tests/wscript
new file mode 100644
index 0000000..23518b4
--- /dev/null
+++ b/tests/wscript
@@ -0,0 +1,28 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+from waflib import Utils
+
+top = '..'
+
+def build(bld):
+    if not bld.env["WITH_TESTS"]:
+        return
+
+    tests_main = bld(
+        target='tests-main',
+        name='tests-main',
+        features='cxx',
+        source="main.cpp",
+        use='objects BOOST',
+        defines=['BOOST_TEST_MODULE=\"NDNCERT Tests\"']
+        )
+
+    unit_test = bld.program(
+        target="../unit-tests",
+        source=bld.path.ant_glob(['*.cpp', 'unit-tests/**/*.cpp'],
+                                 excl=['main.cpp']),
+        features=['cxx', 'cxxprogram'],
+        use='objects tests-main',
+        includes=['.'],
+        install_path=None,
+        defines='TMP_TESTS_PATH=\"%s/tmp-tests\"' % bld.bldnode,
+        )
diff --git a/waf b/waf
new file mode 100755
index 0000000..fa68e1a
--- /dev/null
+++ b/waf
@@ -0,0 +1,169 @@
+#!/usr/bin/env python
+# encoding: ISO8859-1
+# Thomas Nagy, 2005-2016
+#
+"""
+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="1.9.7"
+REVISION="c00f221443fc5d8f60edfcad309d0601"
+GIT="4095f1403a11e4138d720e650b435411e757ed70"
+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
+		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¹÷{4Æÿÿÿ°@Êÿÿÿÿÿÿÿÿÿÿÿ$ˆ#)á ð#%E„(aþ\÷>ûw‘#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%#%«ßGtC-±ªëT®¥#)}°w'm•fݺ{tê©ybZØ·§vǵÛíä÷º:wo§Š,÷˾¦³Þݳݞ╩:$»Íî÷[Ûµ´ôö=#)ìEoS‰t#)¾‡Þ6³Y—7Þø}뺣=¼O¹$û7Þ÷ß}ß|:½íñínÍ·¶÷Ø0;ÌÖ.­iՀ#%#%;Ø#%l#%é@ÀŸOACÀٗ0èÛܬ6‡ª5ÝMS ÓA ‡s;ì¯hôÍ#%Ðkم+¶h%`#%ª„¥D¡w¸ôkYI(#%¤€=`$P¢ïpöðrûÌ÷¾îãoqÛo[7®N÷º÷]sJlè8¨í½µZßO¥í§¶í ­÷>ñÕæibvñïyèÛÜ;n^¹½ÍÝÞ½W{|ÙÜ÷òiæz›>ªšðãw·¥í{±Õ#.éov#%Uz×­°¬kZéíîöÚîïsvçtÂ{b…eï=7nI’D$öõÚ`#%#%H*­€i¡ÏBìAÉJ[˨;šÛ&ö5*>Þò¼ûÚï>¼ÞûÞk .Ə¯O	EÖÖ½usîC å¾°vØØ#)öîñÀtéíîÐ	çw"q÷;ìzrî÷±é÷Ǧ½ÙÁëötS}qŽ¯»ÎÛx¨;™”¼/8ùÙ{éÛ9ß]ïim×m¸Ë«»wÛ{Z´ÞÜmÎèîk¶W¸÷¤ô9¾ßW+šÕA=ÃW^÷¼ô衶â>žÙ[–Sʾîí¾9vkÃÁI²UáÝݏŸfú÷$yµõÝ®³HäsöO{/¾îú'ܶZ÷gÎKš{°•ÚîÏ=˜#%ö®yæôé÷}÷ƒJÀu(¥#%¨”„#ì=Ì-¼»´ “¶j±½àέCNƒÜg'w»¹é¯†îÕE;“‹×{)×»w„Ö{39Žð#%îãª#%#.7¸½÷¾ùŸ*úóÝÞìõí­©½_yÈvÇlïvûÞ{º#)Ê#k³º‚w½ËÛåè:$}ŸFݺ®!͇}ÝoÙž¼çÛÞo%ðVîXvÕ³Jàõޗ´¢¯2ð4ódd3í¹æùÇsƒNÎé6o:˜Ï¸|v[ݗu}uצÉݬ½»Þû¼ù[VÛ#.Ø6¬Э>†Ýœeºõ°vçh7L&.ÑâÇyµ»²Åw®«.êwbðMž©Å]crmï{Þ÷»ØõÝÑÓbǎõîÞûÛÕ½ôw§«î»uï3m×®VŸ:îúÝ1éÖß:T#%äСÛs.æo^thƗƒ‡lŽ^ëeÜسè h>ŽSÚ¶#%£käïµ>úo·8B¨]{{oi»9¨w±syâìÝݹ#.ûwÛÅUÉÚss£vàgjUIås»jDS¥Äm³Þ{žifß.¤—gp£s¯w¾|xì>}Ùw'E)à„^Ì2[g±ÄNê°hÛn^ŠT·Ý¾õXÖ¼»ïs·Ûšwwk´x«z‹‹”ñ¯ŽàÓD#%#%&€b2	¦L&F)„“òOTÐÊ4y@Ú ÐÐz=OÑPJh‚ &dÓ"4ÓM”ñM¦ cD1‡ê€#%#%#%#%#%$"DѐÐSaFL%GíSôQ<SôD4Põ¡&@#%#%#%#%z¥Hš)í4i¨Ôõ6	6¦Põ#%44Ð#)¤=M©µ#%#%#%#%#%#%$ˆ #%€#%ÀAOh›Fˆ˜4Sj4#)#%P#%#%#%j"a2#%M&©úi”ÆJ?Ќ¦“õOQ¶‘¨dÈh#%#)#%#%#%ý}—ùõVœH©j5lFtýZ­waMŸUV»„Y£Hƒ"±!1j*‰Þ1OqïöþJ4ãÌ~qDIRMQù_æbeÞ)eØøNb-é®Õ¼Æ1Xµ‰X¬ŸÐ#äÄa{€xì0Ào#%›2¢@››ðR¥+#.`5S¸ÛM¡;#%–®ö!øjœ»˜ríÞ÷E©ˆ–²RœM^½Í]¼Q‹¢RŊƱÇùhÌ'Û²¾F¶ÄR R1"²—uuVšµcm´›ZØÕ&¶­FÖÕíV•U¹bÁƸØ DQ3)#†0Qoè„#%nD„\VˆaH#.¢DdELE5ª ÉÂ&364ÌÒȁ’ˆÍ&™¨‰’¡ÆDYJ4¢›i6©™&‚Q“TÔU#4–#.i¢lÆÆ2&¥( F¥#%i‹*mH¤Ù-¢))e¥)µe¤(&£61­’¨%¢)M2	©(h¦•"(FSchØMi­´ªÔ…2Ô3bM‰’DA–JÓkFih¤¤ÔÉS[ÙªdÔµ2ÒY12JŠ64•²J()‘F‰*$M¢”Ö) Ñ°ÁŠCLÆiQT¦Œ4DŒÊ0KC"2I°Ù+HHE,DŠÌ¡1!"JiY£&&†"–-IQbƒP¤T1d‚,jR˜I‘‰DšÐÆLLT”iѤ„ÚAI4˜’,Y”ÔÆ)6+%†lBE,3*I†LB›É E•†’IŠŠQ%„щF‚JE,PHL%d”‹,™„Y5™Q´&ÉRL„Ô› HD‘d¬€ƒY˜6m$bh˜#`™bHŠQ›	BLÛ,ÆARÁc$i–(ˆÔؤ²FŤ&SI2ÉF€D©f@±&„1*Ie&PcQ¤Í"¢†Fi¢&ª Be‘¤²1%&DÐM2‘•3#.5”ŠLTC)“¤Ê#.F4BC2P˜ #)’eLÍiŒm”Úd‰™š‘H… Íe-0ѲE€¡$‰(‰,Y6l¦hÖ!RfHÉK"lÚ`Û‚"™’†ÌšS$)f,ÊhŠ”IEš–R“4RFLI‘JɢɦÊA@Š,VRI‰$Êj6M"FƄ“Y¤Ãh4lf“!,™FH±¦d1$͒™¢!-!5M›ŠÐ™¤¤‰Q¶A2Ù‰2ØÂA„e$TX%D£iIF±šd)(¦RÆȉL1K,i–Q¤J2Œ¤4MZ›Zѱ$˜M2ŠS#E“2 փd¶%,Ѧ)22™¥•,ÐZ™£alŠXˆRÆR04…4µúí®Œ†ÊÒ¥–Äj6±´Tb£dɖTCdš44´FÂ6I¨ÚȌ-2b1J`%IȊbfišÉ«’SY)F#.P‰bTiBÁdÉKJdɛ& Ø²­4i²„VʑTªVaM›Œ¥­‹"5²i•‘*K3k%Yl¥)¦Y)‘£6–$´”Êm¶#)l%j$¨(ÛhLjJ6¨Ú,l›hš2B¨ ¨,U‹bÃ6l&Ù0±l…(%‚h£jQ4ڕˆÛ‘+´…’ÚI-µ³m´ÈlT$&S*jɦlŒHKH¢’6Õ-¥QŠe¦–Si¬Ò–©¦#R¡eM´³T²*!m	-™2Hk,hf™d֖¥µšb ‚!•HÈc0&ŒC!¨4&02ÔZ„ RTa”ª+$ÓFɓIFŠE,ÑT‚²ÈȆ2‰"P¤£e3@ÅA"Jh4Z*d„E-5&)bÌÓB&’¨ÉŒ4ÂFKE‚²l&Å$±‰3AK2BÔÊÌE&4ÂeI¤„¨Ø¤!(̪¦,Í$”fd)Y›DE3hØƢŠ²lЅ-4…FC"4hÓ)¢JJYKBd¬a”Y$±h¦‹Tl֌Ðj*Ydٍ¤Í¥“hª4	’ÆAd’ÂT•¤T¦˜²AF[$¦Æ Û0©¤ÒXÍ%iFa¥6™µf34ÓS4‘Œ¨" •4Áƍ³BŬÒl”Ä11II	FѪQ¨Ôh£lEFe°Òa¤’…$‹E(‚6(°&ÐVYdÙ) Ø´d,”³If´l$[¨“E	–ZƒE©5FÁF…†1T¥#)´Z#))fY#.ES#PDZ4E”ÛY(¬V2`,š"™”-Ld)ID•,J"JµÚ#.,”Y*5S3E²RV6µ)ŠJ6Sl†²X´4K6d•#)‹LRQ’#²a#)FIA­™0b›%)³6&"•EQ™Y5’)4“QAŠ2š¤¶-”“E’ÑERejPQiM©KQ&£Uc)‹I­‘#%ڍcRQb‘JfÈ̉*DPl͙­b©4[F¤´Óm¡•ˆ1TjBŒ†´S5šm¢Ñ¨±«-©22”HYYX›QŠÅ™cj-*XSl£,jbRA²£b‚J%±¶,ÍIRZÅ&ÙLÍQ£hÃH¨¤¢¶Û6ÛM,‰–0”I°Ä"“F‹*Iµ!‰%X­Ø´Í[F5¬ÚMše­ˆ²[SSl…µm¢Q”P26’cÃYS5²È¨ CQ&$“)&DÈ[&´Yš©é?‡ÞÿAü.Œ¯ó[ùèÿ1ojjÿ©*«èCT®9KË2”ÏÜL"…Ê4ï·4–^Þù¯áz¯\ßÑþ^¤Â …RÓøë‹.)þρD4a×%qÿnqˆŒ(1:7"T°\0RHUD&bo÷êh—Íø³þ­AŸýÿmôJ±Ñ7;)a#ù¹æūǘ±‰°õ]èàž« ÈüìÂC±6Ýak‰F.Xz<(Óð‘½À$j1¨ÉÄD……M5ã¼n‰÷ÕÃ˺hë²wÐCFfҲӗ	0ÊHÑPˆ©^#)»¶¸7­ÇÏk˜«å_/E÷>ïžß#)¸\ܨ±­šF·ÓÏw½nIkϞ×yÛyÝ°ËèÜÙ½niU"ˆÅ•uG#)F¶¹qÊÿÉeŸçBRE-†÷L`UlÁe-Õ§KK( ,_WüxC±æÛ1<›ÂÚŠNÞ+ï9’)+½Y%°v;Aþ;Þ`´5äÎGÙí…h цa»}Iîàڞ'†,ÂåGåçÆÿ4ZGg{¨i¥Ø(Xç#)–¢…4Ð]ƍÍ̔…[$$X#.w	Ä`Z#%¼ªˆ¤õUÏjO0¬Ý¤€SJ"%%4ѯ{,¼Q˕ÄÒjºpÅà)5Lº%µQŽ±F,h4Ê뱪4Š4dƒ{œlË ÔÁŸ71V±n-TR°›‘;¨é\¹&2N»¥æB¢¨ÿ²If‰€)%",,Bš´Z5jł¿EˆyÔ×ô8Ó4ÿÑz`ÿqY4ã@‰_좙ºNzàµX*8ˆÆ#) ûqN-ºÅ?Ð$Á¯Yùbº€Ñš8šç‘ÂhiVR|ªºos°ÁÃê©ÑýÞªÛ‹Ù_‚ÂˌöÙdzc‘GmħWŠrtdØI[øÞã¥m¥CXÌu @ØB#)P”賝²5­á‡1ÉeE–äT*#.8@¦ÈXFDè™LhÑ™¡ý–pÔ<º@Ë1&Âl£ë¢×¦Úç…iuL%4¬´;¬¥béÒñò}ø©ØºÖŒMùó”ÂH#)vZ‡Cf8¯¹—o[Ù®-´.ª+Z7þâ×FX²,S«@¬DbÄD¤c“ÛAc:Y]v1Ñ£´4UÿÞq¿iðs¤¹ÄíX¬cå½X‰1\t£›+±)qM±F5ãsI±¼XÛÇü_*ÀŃàÔF(W­±Œâ{¿uLö­ÊÊü_ôÞUëE,D¦¢“éÝs_>umtéËrîºÄÑ9Ýe)"á)X«)%0Š±yߓ{ïyє£cY6|ÝË¿^k¯—còvìV0‡ÛÜú»nßôóÈy‹‹&¾Çáo¨,„ô5ÕAhí½Fxùæýºð³#%ÉþƦ*’š`pրçÃ6?uC¦J"1Ò¶³d<˜AI­snzЗ¬E„FC­P»ÝI+§/#)FIZÔ-†Ì˜YKJZHR	ÛPZҜËÄôÑà›ä¢™J’ê­¥]»êÅ##)yä2ïáVîòBÎþë°bÂ*0<®Ôن¨Ze¤‚0§Xôq«°·ÊˆÃÅ¢4¶Òӌ±Ìe.ª¶ÏHCû‹8p¹lU©Ï¶¤óCÊ=×â£ÙÁÅÕÇöÆðxŇ½Ž«)¶åßðÍX¸„ïñ‡Ñìo‡ªwb«¬‡éÃ%pî©dêÀՖÃ<l°"€"ƒ‹ÑT‚{#.òÒV Ê()#)h¨pkþ4Þü/,=½ÔD4o…taýþºàÍM¡”ˆø´#.riGëޏÏ˝únŽܜ¼û=Øm#)$m l'$çq4ÛÏt¤—"X܈ÝÕDuûYl4RDÆÍêRøÃw|f4¸¿M̉¦#.<Ü4ÿN·OY$á'y?F.Ï"A**( ‘y{Î&† P£™†æu'å—I|±Ç%s2–c‰ï¶1'Ë֚«—l&;©éÅÈZ²#.ž¤!³y¦«Þ{ôR“D7©0’Ãê;ª»dnß2©n§T° yrH|Î:η¨]S­:q=iÙ{â#.óúúfø…Œ0’NSº)$À‡éUܨ¶åTýj‘¡ý3‘ï®ð rÖ¬1VF½Òc)9ð«m¡8¥w*”2XŠæ÷þWÿS·&ƒ6(tÞ}je	º¢4rÿ9ø"%Ùñ„èôª+4&ö³®D1òÉDØ{&bƒÛ }mxñ½ôGàÑ]Æ”$rëå0Jd†—#.P#.íâ{¢Q?$8›ïËõÚçhã&ýY62/¢)Ä#m§³á/oòbì×®·î‘Ð!Ñ8™£í8yTî!kY–ò#)XEÓF×j!}>ÜéÌʁµmÍ4sܼ3ªÝo›H)„³•`ÊyíAÓ5~¶{ÎõéíÎ^?§ÊøävBI$Šs‰úBùÐØá¦Ižýh»Jà§4ô ð¾B¼#)ú!d á~ÄŽQµvMäEÁ`§ˆTkΠ0:£wµÌ´yü"=:DiËáª󥦢Z±Ò·ˆ?6håš|,ž-¸U#)kAáŠE:¸Ðǎ-“èû¡÷?«^®ðÜ:ÙÌÕ÷Óq®ÿ,>¬†Èjˆ©ºO¶O¯Óã,ח7Ò’¤‚îÕy6/Àõ¯/‡DQKîq›½ªQ:Ñ@È#.£<š8ö\¿6…ªRUBêU@H$•Rkù™úÿ±¹¤9}³ÞzŠÍêŸkš[pTôU¢!uP.¨_{=}Ÿvm~J­s¨ïw3U~	fϋÇn<1@ùn–I÷Ŷ¯¤êÝÂ]â8eiX5ØéT,Ô@À÷|¬1áSKù\¶çº3²c	òË[½a¦gãIOì|Ù¸h¤ŒlëR}IÑÄ0М›.ÄøÖ%ÆVÞ'.Òþˆãú*àf~¢GÄA±•_iXÞ,¿ªª8Î{ò`rd£ë¢‘Àí×6ˆ¢.Æ*ÀE¤YRp«¾ô»Ï)÷îhÆ}½Så¿npq Gب2ñÛy$A)Ñ.âI¸vt/aeß7çvÊcϬÓÓÀ„o¨†ã£ŸŽ!´¡#K0í¦N„ö³2&øü¢­<sN/Gž}tvhˆv^÷Ï0Êe’‡=˜ûLäÈø²_uR<­Âž½»\Ǿ‹ÛE€¬4›•¤fb"Š‹)…³ï”ÛÙUHx&Ù	HêÚV!Ñ'º®Î6-Í;Ä'=eÉ󂭶Û3ßULÉOs ×G«#ã9Ò1¤2|ôìñqÛy›âô¢Ži\XT9Ô,Iܔק6ÅP}‰ˆgß=9zµÄópç¯gH²ã"Ņ.YJ+èÎ…œõ×·ÇqïáÁ/~¦Z]Ã#.Ù?ïÛßDj†õÐÆ1¬ˆü‘þUŒK1xm`MýþðÂÎ_9]_ôhg;ºg>Õ5Û'¿/›¶Ðf-K͍׺#ÏS8t2I2-)pàÖ"Ñ­‡cÐOÿYÚôî½·y×<sAV.%bà¨{uÇÇ]Gã!õo7K‰m|#.§0­œÄqT€Ä#y~ÓCÚ}š°PŠ)ª¾«»WÔØӋ¿5½W‘¤2Ū</Ê0#)„§)ì©à˜”µyù˜‘Dg¹ï[áœÇt²éÒ!$›aÃ7×/.Ò*=¹Ò3ãÃéâËz?wlH›Á­ó|=ä^þáº?¢¥Â.€ÍŸ£­[«|땕ù&Žž_Z¥˜b™üžrä¥ç]*ªÜuè³´ÃiLŽ7–œ<žûdzÂbÑZâݎýZ})·‘|ÿOhc?9›åÁÐþ<ù–ªqaÿ>Ù©…2!eÞǘæ\ÃÕw*ü9.Í8 ’¨ÁxÈ\›Aðš‹M*£Ní¶yzyYíÖ¶0	TÑTe¹ÛS-¿JƒA·mpyOÕ	;û9Btz#)Œ€”ÀÄSåsðchÖ嶇,9Ô÷X·Ä±ÃÞMî-â'MwîÉàQy5©K*¨ãߋ'¼u]*¸!Èôkê߆è=V)"g_…¶„1ªWÓHå±×r"UcRňg„ÒCTn³#jI)ÈH®v|;ìcꪨrcéþš¦Xæ‹f¯á¿JL¯3©²:ny,øHüŸÞÒç#â(ùɏ>0U¦'ç=ö=ñ_#†È2F¹–—ÛáUÀl“¤Ã”“šœ¢;[KTY–âÈf\^A齀¸¼’·ô°qµâéòáfkk84…³,ô³óg¥Î7£v°Ý#Õö;¤%W˜.7¹-Jv’N&zTjôÓÕsx±¶vñ¯ Œ‹ÝÖ¬ÝãtJ×{˜U0•¯ñWكÈҎÖdŠŒX¬ÿLÛؕU—WE`ÙJâìåG¿!ÍÈ9ù:j^˜ójD¨‡ÄäÏÙÛ[3SÇZ-ú»ÖÿTãË|º­òøD~oi©„/èùåKJ©xù<iÕmäM#ù„­Tý¾^vrúí'àòã¢%Êååìý5#.Ï@ø팣¬² –[òMïÇ`–š¿v%û·Ó¥ë }¹¹cø4ëŠ)„¼WÞ£9.~ÜâvT¨bl•Î†3{)ð¥)ûµ¤Ú°1ï—3#YðÝ1˜ã¬’#)Ëìñ¡€ÛcEž”ôêÏ5=ø¢Ü}•/|]ýè‚Í73Ä”P?¦§åë©1ãGs³÷gŠZë.ÁHÅ÷…J-ÞEøQA0Tjº.blÉïO ]³ö@l€Xøo3­®)w¸ONμ;·d#.j-—ÚÕ  ì™K¾Ôs¯Ï»m´&à†Éºcμ{/Uԓf<¼ø瞥Æ,[Š arQêÍҙŠ¼âDË#.ûšžç<p_€ÎˆXÁfÕUt—êłªEâOf8Fpã3|úh¬`úù˾ܞzóÜnF;Q†qU?\KzÂ×:Yì˧ˆlL³‡~Dƽu¬ÂØÅ»ƒ—ñey‘á‰)4 ö_ûê5HÃ.®Êöׅ”Ã@֙lckÅÅg²‡ò„£øç?kJ&!Æctéw:ª<M`¨¨šýɂò¤ƒPj'5":¸Û<šÍec±=œ02‘š’…*‰Bż|n•&b«ªR²¦®xównoµÈ¥ÇUܝu—Ÿ~Ŭ%odYIoì5‚ðÍÛ¿:	uÍKޖ$žÒ¤É<r¾Ü°¯i1vúù]=fïÝËS!F¬0Ò~ãö#%&€êǟ#)§Y»gÈî?'Ç^Š"Þ«O¿ý$¿™œ£;Td{rQå‰_%×1—¾„æKˆÜ3ð^ë#)Y!íIª«>hnñueéZQ®p_~•uDvòŒ©Ll›7¾JÝ5 Ý÷PÎ;“S"˜V‰C7]éÝ%1ªÍÜúU›ÝLÓIKP8˜<&ýԟkpÒ!°;¾n)t¬Ç.æ¿{>Êëh2nž±û¡¶M·uü!žÜÏg9·”RLH)]kô´ø[UàúÁ­b>è>ó\7Œ2߄Ý­‘»ñF…’0/#.ªíõXüø¯’Âðqˆ«u–@>ÚþXמ›™µ9¼Ð|UÀ½­ùwù#¾¿†ªËþ]Ñ/q.!Uëk11™„¶þ¶«—N±¸¾Ž±ÇÏƧyåyw* ŽÈY\*"ç±^3ʝïyÃSÿ°¶Tq(njíUq¾P3s:Êêø½}Y	4ígIƒízV«#Ýú¦v±Ù­Ý •Ô8rîÛØá÷ü]µwÆ3H,Dgyžï”çdñ²ÄÎéÁò/\¡·.«`=¨²+xåÉ[Z$cª§&öªœÒ¹#)CdWZßüwÐ32Î4¸soیTöä’>µ´üó#)µ¸„˜m¡ú¯ŠnZ]dûw+çü(AiÈÉÛ½)ÛÙãáXÕ¤4SŽÕðq¢e;ìa½·¾3d#.V	&·!:‹ÿ%F}þXÝi™ióæ鐃x®)»»Ëº!Òã‰6Õ5©nûD8‡ÏÇÇñ†ŒMŽ@\ԓ”vઌ>–“Y]YÞݯÌs—‚qP»ŠãYgÛżèÔ†CYpNöJ>üg°l¶TMR‡½ðAKŒ¹M¶Ÿ¸Û(ˆ	X1ºÉë½ÎÌø%¶dñ>#)¹ö:._/qÛiš;ã¨à×#.TSÂg¥‰#)GÛ³#.úi£=#)]Ö/íivجõ£.÷l± â¼ŽÏX€Žõi.bŠDŒ±ÔݐÂ9æ:FÜtÂÕ]ٚí·nË,âJNy`·ih½f	Çuqß­Í9˜ö6¬ë`²–°{hRPåDú˜@]:ãӌ”Ôh©”€‚°q¾#.Î$vmVÐe~—œÚR)sa:ßì9ؘæQâú‹¦ÙBBµR—¬ŸXª#)ëÖç…ƒÄ@K$RFº/þÊ:<r°8æCú ^e	q ‚fraő!¿—ûwï×NN\	W»/èFRu“(ø1æï~ìáaÒçc΂wÇÇ$¼c7OX*ç^æ•#*9i_b	Dêœ-å¥,ÎçL—5Óö+jÀ¥yQÆw…ù›On£¯71ÕÛŽ~céYϔÊò~’íéâÇYàJ½6ᇷaìgÌùoš—Ï$«"éBÐD]7‚Þ£@¶Ö°‹tـ‚Ú8‹RC{õ–½kÔs\Qö}Kԓ#.³â-v71Äy¤@úòsÈu5k1zSç½:¦êìœtR°á”ÞÛr]ÇߛžDÚ/#)T&Ûã(cŽiZ£L”8ÕÌ:ñ'#)#uX¡¶(:y""ȵ•\ŽjîÖ»ÝaÔ$(€Ë?êrÚêM¬Ù¡Fg=ΞwÀ‰F÷+öÂõJëȄµ³ð)vpƒºtÖçì¶w;†§M^ë¼XÌ	j¸ù2¤>ù#)^Ëó}s÷‘©#%â•'{ãÐGþCz-£wüÍÝÎ΄N	p<êöƒ(d1çwQÑ®ƒ(ÏkÐ|3i¦U|Hmšõ3åÛñ߯¼4íü@	«Ö—•#·ÛüøˆH’à™ÿÃ^Ï4$Ú§4`»¼TÑ:$9k,’"­SIK{õ‚9qt"<à#)2òr#)W4ªNݙ¹Žß>Ÿå¬róÚ5 @ø•íòªö}{±>øý³§ªþS#q}¤&Ê¢FŽ#.u†v¹í?^G ʳPÕ‘ +d>™¸}¶Ki±ouCôÁÑì;+”$5#)nÄ8m!#%Î#)ÜÚe#%7öøÏúòpFä§U<l[äÌèCžˆÿËáéœß©«’v"0ÔÅÎú¡2*)â|j@ý{ÕÒb·2á%;vœ/góüÍÃéhW¿„×o£oM/øâÕŠÜBUk8#)ê'”<ï±ý·Þý¿‡‘œ~‚`¶À ‹QxéLQÔ¦cŸZûpdp”תhn#©(0¢‰Fà7hlmõå„$—Ò#%•òÓ§ˆš9 ñ#%;ã_=жš=1öú¥Te:?ùþ0úâ€wœ‘5B0Ž®'³`XäåU·è,mDÓy•bã§	–+„óCZþñOÝó¦?©kûKƒ`Û³\ÿ°~DhD[#žûˆæHÞ"³çštÏøhpÀÛc/ÃPû=žW‹¶Õfú¯ßä´Ö¦böe†º’»ÝŽq|ù㮯Ê÷m,ž`?&¸c¡´ÏW0ãîËMZë wÆ?„»HÎúyv?©Õùx9ÂÙ õŽ(m¼¹ê`ès®¤Åœ}ÿg×­}Þ÷%¤vpt	©ö’Ùk…ö3†hG£ç·÷:+2¢’ža˜R¯)„¬)	И=ëÚÌ;ìE. Ë閬XB·<Rê#.Á'ý—øöaÕ9»òž;õÿ+ËτQïd£Ó$–jáâ*ÈÝï'p<~‘-YÄ+¯çZÄ©s¬&Ò÷›¢ä¬’H	*HoëÑyé#)oTUc"Yæëéôþ/ÓÛf#)ÊëϵŠ6،ž<˜à¿lûœá™¼“J°D¦³>QŸZêˆy®h&Ô-M¡³zâÈPjÏ•¢U´’˜ð¼UBGéôŒü;Ä[uÚ’FÕâÜò<¦ÍðÈÅ=˱ýŸ¶å¡D9¹NLÓߍ‘¶«]ž®_7I™#%tú~VfEáT‚(Ž¢u†þþˆiCzüIòAÁ“`akڛ;‡VÚÑ&¦ÃgÚ*˜ÏÝ<bÂه×O•ÚEÿ¦¯F†¬0Pã<(çóiÿe¦Ã¨úBbb/˜Úؤ­Ï›µé·ó¼žäi6,##)=¹û0nµé“Hå[=ú¸@c#.ÚŒÉmo"õ(ò¶œ§GöSšwk9ÇØÄaúó&õ¨úqu£­à¢&‰:Á…¡Ð“¨#.T„ŠÇRi¡ùê¥ú(E%–õôßõ0ž^|ZÚáàûŽx5§®T†C0Ñ`IÄўÖ`+£Ù0€	sGegàO/·n‹éñÚVҟñ#%1ñstdtå±hžh¦Hòä";ßçqwNí0ØdB/Yú~W‘‚cñw3nqMïCýË-Z¦v]ñ,4“]‰†n¯úºÖ‡õõHØå«¡ÙE;D,H±¨Ö2©é£ÃƒzS¿JtmËâ;Fÿ[R—Ï8>z†e<aÆòæ«!qñÝ¿u#)•ÆzNëiÆé¨rP¢ýW‡¹¸_b¸¦¬°âvlˆfŠoqã´vš?›mìy߬I'·Ã¿VGDxª‚E°ïݍ•¸é®RTü'm¹z#%å 4e;U¨Žf¢»% äÀØéßV!ÕQ¿8ú4ݽ/ÇۀÉÍí	» Œ3í×Õ/äáXéûßnµô6´ÒßS,vrD4 “•l;{®=kçuç~0擲›Ã#.ÕNn‰–;ãKÓ»$ÍS´zF×÷}¥×F(‰£ SÚ0¦£8FÐäÈ]Êc!˜·RÆ®§ók «˜Že˜QqPF,–0Å8[WK0ß~’‰ž“ÎgÝu‡Oµ¥ütÁ)ƒÛì¹ÍˆIi“&MQ‰`ˆ«)6gÈßãzÇa®vNþgSWwÙüà	§M$ô$Ó¯â¿«$ãëXæȎ‚+̼æõpΝ a†xÀŽ(òˆ(®a$•çJ&`„Qº€#%¾!êûrà|¦º;u)¿pyƒÎÆÔìî…ó­ØÅðÁ…¯ul£8‚‹t¹¦Cˆaυ‚UÓ9#)ŠØ­uY”æ\'£³ävÖîö~›cg>îëà<t2Ž–lyÕv y”ݝô›Vâ¹z±ÛFq~¸ˆ6sõ—ZéÌ7+8å÷e¦F¤xEãÇy+н;¿…Ø2Ûõ›ˆ™@ï¦Â(_5EÎKÚØw2gÍ`VÂJ’(‹@V£™–÷)8¹`¬Ùí…i•yF•V©’k*I¾Àݝpýl†^p9ëóP¨]ÛÉû#ƒÐÌê‰lnnÙOޓ<#.Mn¯hg…i˞ÏùÂaÌ#ƒC‘ˆ¹ËÔ%0ü£u°¬J«.5OŽ¯¥Â§å|"A²þ:ì{>s„±Ö½o£³ÍÈHâ1Ë°èýMìdéÜ­½8™Û[›Ÿ#tóøäó÷?¶ém×i’o%îè:áTjzb¬¹·Õ”\¯'¿w1÷{Èe·R0,ÜzXـ3ù~ïy“(¶gÎÉjº¿Õ¼…çú}Ï¢^g59÷<èKøÒÒU#%á¹ó37*½4¨å-®Kcƒ¨üØN‹ð(68âÂØÂø¢ÉêˆVnÙ-¡ŠŠ½î×wž.מ9ˆˆ±ÉB)L”YÑÚü±§¡¡ÓQ½Ÿ~õž¼ŸnpøéÌãïy!BILŠ,ª#.Ee˜—0Y„Œ¨Ú0C՞Ìš8tBâR ˆÒR(;*Vå£-7Ô>ú発¼ùÈÕl‘thl2:A¼o#)‚ŸJŒŽ=%œ’~ù;‹Úª(ûåØ7*ˆÙiÙ¡šA?”’P¸ ÅlaÌ«d1W¶<£ n±¹»l¼¦è–ýˆ•—v9¥>îu›*8P)"… VìÎã&B¬Vcx4±4 #)ވî¼{ímÀ¶ã˜¡ÜkT£«­ŠÃËó:®°ÒÒâg\è“jød|:Ã4Šßç&ö©Å×oä;úúN#.Yvgò¿¢Éܕ眍[W;ßM°ÆdÍyöû-YÞy^>Ûgo·`¡;~‹š"8¥¬oSüš˜“'LTá¡12s¾‘4!Ésu›c­šåÜ£,å˜fj€º^FSŒ`—bªš7&fŒÒ(T¨*TÊ8^c#.Å0ùíââŒÀ4V…R®HLÑBó–6ÙeÅ Âòã”sŽþÿôGåµñë¿1¾p¦E#)’JV,Iâºjõ‹Wܯ>zېÅ2(ÅJšŠ¾	¶æ„–4#)‹†³dÉ@Æ%’	ˆÜ¡"^H%„U‘\µVwÙYt½>¬fw	#ÃÇ·œ_¿Ö`+d㮹öløÇ0DN£¤òÊYT#[‚Åìþc(RÒAZȌýܬ•ÔM$-ÊôD¨Qhâ1A·HªL¸]ї‰?IêŸ>¤×® 4¸B>¡k¡ zc´\—»n9ÇðÛÖÑž*„e©WS’ÌÒ|Ôòó]y®Á®eÝ¡?[Ú[1N¨…¦À¦À™&v>w{Șp\p¢ZKn2ØTº¥RZ#)É%Ƶ©ƒ_FÃÆççᵓnª%.éTÍîR0¸Ð³ÞÛU2pÒø¾’Dµª>í3ò¨?*×ر͟1Ãî[’ÔHG“â`$øíiWšÂcÅfúå(ª€µEEáœ^‹ï{ÕSØNš™y'fÈç}®¤cRxhd#.%<°Y-}K:8z +¤CÉzµÐ¡HÕªJ¹hý÷ñ#%cWíÐÖgÄÊI%]-¢àwfšJW1@‹§#.NÁŸÇOt·à9ˆCŒ$.®ì'PÖ&$h@–ç‰ÔœväÆŒžº‚Có(åüÛ®Y¹Ï+^4S­\¤Añ²¢Öˆö6¨ŒÙúiý'óuÓ½šœ’Ž­¿6?°¶ØKVZî*┑å#)PªkY§Gûĺ-#_†)²k{Š—`ÜûŸkËázQÌÝýŸ?ÄÀlLdC@kÇ3»š²"²:¹^nbE4¦‘€ÚÉ(dY$êҔ†„à:Â6#)‹Y)c¤PŽxÚµMѬØkïš‚s ›ŒE`R5Ë(!.$Óç5Ö/«®Ø¯—#)ù—«åå/Œa¡ähˆ#FšMXTiã0Ñ ÄØ!ˆbÓK³#)ý{ΣôÜçBJµôõ´YéTÁCˆÍX蟹E#);s×^z«¾lô#0…1”i%ٞ£—ÉøM»tÍfGîîŒïå#b®rß^±+Œ9©I§òr¤]Qçˆå§—™RÏȾ½4ãø}ó^›=—ÃBn¶K-ÕÍr³`°Sb».¬ÖfÏfoìíí¨:£ÌZiÞ7›®Sxéʍ~FäÔâs `’vÇ[¦e‹#¬áŠzÑØÁ*ÕܶìÆñù_êrðuÂÉI‘?UUJr#.)±û–u­â“c|¡DA-M¿¡ÜÁFËÝ.•>L2ÆÏ´^Þº³\~Þñ	?}Snù•*¿çiYx¹ÛXïÕóù¶YčCíÔäÜb¨ÒòîãéÛt™1Øžd0ÐgYÆ¡Õ=î#)ŒÙ°”ÿnäÏPýKáÖÌ_9Ïìöa®µ$Úa„Te!:)­ŽÚéu(©WÔŒvˆùÞRôÙöoÅcmӑ‰Ç'LiceJH€ZÚæ1/üGÔ»­½Ë€?ÙØ)àÎ.,±F043ú.ŒÛräÊ´‰66R#!›òò•õáU¿´\ìÈCâöË#)ª„N¸'=1þtàÓᓱó*xÁò0¾©îÅr'ã~SaÿŸ0mp¸c‘{Í9Ûœ»•ÿa¯#Ì@uÅV1?¦×ÙI%KViÞ°ß	ŽqMZ@U:ɬ	7¶¯™ÂÇD]ïiy÷S&HõºX€¢*Œ%¹Vºl‘k›rÔiF’ І†!ôÁŠ“Œd–Î%Øb#)½¥$Á„J,ýÙ©:ð.™›w±#.#)5aÆÞnözøk´4á]]#µœP2C¨)=g¬ô„ñÎ#%'؀”#%œöúù—ùÖAØøòÞ«Àyn¨7Ѽ!|•8¯ÄõÕñ9Õûa.^3•ù5)lÊ3§5qšPh4#.ùûu~‡ï»wþýÜÝ(3íP+(?‰E"‰àñC×Aé;6ÑÈ%䆿ïݏɰgݹý»”ýÆ>H€dôObbÀ«` ¢ÏÐM…¥w‘;#.¡÷¼bdöf¸þÊ´K˜ÏÀÿ…^jþ[‹\“e¯©*Wf)YU+CëôT(RwB'|¶õ>ÈxìVˆßÝó†ÏÔ°)øõŒXõÁ{~ˆrtü6Œà	"Þ.‡°jÝût;®ª¤“fß_W7%³¨ü*ÛÍÌÿ§e“çíÇç˜<,Ê…l<~½ÚößÙöëôW^ËŐk¼aŽ1f–AÒ{š•D8ì\ŽæI#Êx·V-óò.y<Q-´~“¶Èìô|ø	„¨ÖCÃƼ‘f,ªaNb7eÂÝ|Où5;Ní!ýχ¿5ûº„®xQV.‡WR¨Ê­®Å¹Z4´†Ü}Uµ±¶í…±³ûºÿ#%ÑÑÿÂø?…«Ԛ~ŸÓøû3ï#%M4ВP–òvsYl*¿¡‡#%}£ÚTwßìNÍ[zñ$Hg#ÊSòû·»ùûñ|y±#.-ˆÏ‰ÚÐE3jK'櫙1›*X”_¦ã14i±WõKàíª‚Â$ªh©C˜Z³·ëœ˜_#.þÀ{ÅM» YSõ!pH"IYšQêãF**„½¦ÛÚìAþ,L ³ì¾¶hŁl‹•w]­Ô·-ú•ç—ãï^ó!žß|6þž¹îjå(m	A®jýtÔ„_O»÷õ/3¶°ŽQ(㑉³ §â”þvI%0ï{¿Â”Ñ&‰HÓ"¼#.gÜڿ󺾴›^͸†ÛԘÈ耈(nUUS!;¡ðÁ?oӁ÷&'[¶ª„¶™-œ")f 4`SC±H=žÓsÄÒÓþ~= ó«ŸçsË}ʽ-þ7vc$¶?Ö^Ճãeþ£÷SõµbÅòÀõâÒè&ùÌà† ˆi&.EΙk/ï<«/ùê[öö#)n‹AÜÜz+ž”xñžC‰À„ðTr…@JE¯Øû	¯~ž“¯ã}¡¸€È(;£Ð&nw9A³bˆrdÂúÉø¥®*GŽÿ:äñ~(ø ~r¡B Œ0?¦äÓzÃ"Š„MD°íâ%SÖ¯4/¼3oZÁòaŒîúRb¡aÐzmDû˜~M¤7vtªÂB‰ýµ&‚b$ýiL%¡·Òôÿ6îZ#.™‚’Ù¹Ð|HïŠ;üÿMŧÝñŸu_àïÂ1ôO°|Ÿ'¼Fˆó;Ž9 ,6yóðFÏÚ?\Çø[!W¬=<‡•ßZåášâ>XÔ~££Þ°DÐ}ºÅÍfK›.ã}nýRW‡ã_W0¤[c?WãĀäA¶d‹Ã®o2åh·ÛJ«ª5r,Ç'š-ùæ—=ÿ¶#.9#«Ÿ–ÃbX…ŽÊÏÇîÏgëˆ]¬¿vÕÐõ•®ÿ7‹º;cìmT¶NüsŽ ÿÏ:ƒUœ*ɇm샖Ý^'„›¥ToΩèøê¹!úh#.‹ÜƘ&¼ _ϑæFoZRþ¼J´°ù”i­¿Œ€6´#%פüY5…¬ºGÇÉ£M!v#.ߝ'gsÇ;½œöMjaÐs]›Êà\£Nù2]†nGuš낐€ª©ïW‰ŒÂÌH¥Æ.ÚDK#.|äþýU”åØ{¤ýp±÷aۆðo(¢¯û•ü¶rŽFóü;€ñÖ&3Ñ"RõÐG‘ü‚“6Dô9‘ÒùçO_ZÁ±yµF"²57`Þam;“Ÿ¿±sœZÜÛãû(@c…ž–iêZzt1î¯<ë‘£ô8ÚùnÑÜ yhª¦ŠÌÃ"—qR¸œçìëQîªaØ þ²ú>G0ð,ÓÛ[õÔrâVéYhTПéÌ£5~©#.ÿb¹0!0ì!	k\ ÎP=€ŒäFˆ!2›¹äªÔÛú?Óû³¤OÌaÛa×â öãԘÂÅþ‰óÙò‡²ÆÁ1XLšûíF™¦ˆPˆU#)«.~tW®¨áYНNt{_½õ>[lر~Ì#.åàȆ%z†lb,H#)E3Øþ܁zž?oj¯§J›ù#%ÜAJŒ¤@7AHK`ÑDQT}þÏ`†ÿ÷ðå©?µX6vüÒàÝ?z•ÿ&þ€: He\áp±…%°(d¦r…ûÓÈG„Å Êû2¬±Å:t_î¸ÄÐÙ¿œL>Ì̺¿<µjì~:ÏÑ×Û/7‹èú&|ÆÍ|Ü°==Tþ8ùªùõ›õUU8p¯Âﲿ|-«ÏŸ8X.º¼”#.[Uuߍ:›Ôȳðí_GWá³Në´ÜÖÇ5Ùú?d;36jù)¿e¢y^Xyoݖ2Q;k{~ϒŽe¬·ˆùuõòKúußõÐëxbpٗ†‡&Ç_ºMà­:?”Š]ÔÿŒ~ÝòøïýZüí›ÈjØý˜òf˛u¿3ΙoplöÞñ`wWšÇÕÍ<¸ø³[A×Çp÷bñåæÉ'ûSÓü§ñwÈ/±„<Éèù]Œ¯C¹ù°Ë)Oaˆ®î#èznÃÝÔñȦ¹¢9EÉáÎäñÕl¯•oçŸVé6Œ:^×þ·Þäê¦+¨Ú–2¶ËÃñѾŽçú¾5»w6	oå*Ëߞ™|3Èó¾|4iÏë}QÔò݀®à¶ˆçC”Vî¹UQv«¹š¸çè2‹ EMŸ‡ánË;k«L쳚F»”#)}oéaVËVwY]³îQò¡·)çÈ\,sÄòØ!0‹•×…¼4d\çs+š_¡ÉŸÕ^l¦»¼¼7]ª®ï7%¾-{<§V¢m–þGùHŸ«Ó¶}º®¿¶“æälwlÉ¡âP؈°>šço'BÆC%,Ïá\¹ú45D	‡'HO•ˆ‘¡û÷ª±Õ˜ì÷äÏÈ|óð—+õǧãíºøçW}Ïþp™/‡Ÿ•z¾ã?o‡”|NŇ»›UԜGÆa¼ìÒ3@_×®ûa¬*¾Šï¾¬~œþ-VݙÅSðu‘WV¾Aד™ôײ]8#ò\lÿ8Öd+ý€2´@Ìð)‡wÑ'`¹jÂèôÃLåÅ~'z‡(–5ÙßUþ=–aEE"º'×äø6[où?õ~9b=WÇa¿åO'ò÷g‘ª¿#)‹òÆé:0?Ì+¹ó6»%ålÞ°žï’6ü§WÄá1¢û!—‘aÃÛÇûµøãƒZs!p¥,/5Þ/×ãk„òírúkgvÖ÷;·‡ZžÎ2ªr½_ÛÍìg|WɯN@W¼¯“úÒ_õônû³gJÅÜY#.;ïÃوÒåÙM”³×éþt«çÒ9xapøà}ÿ/Ëõ7î~]¹õWw,#%Ä8QØú|óßá“}ߐ!’±_[y¦òów°çêü”’T~÷rm6œ‡³ß	ˆþóòôÕÂÿoÔEÂçó†qGÜb%<µ…8¯¾#.÷ÿsùâÖOóQiêGÜ$#.+1ÓK6.m‡ë÷å´ßGˆ'åÒ7Ó³¨_îÓú½\.áœü~o£‘/0ÔÌÚ~ށÕn)èªÄúº_¹¤ù›iùr·Òj!tf‡Ô½h:ÈÝ0ý7rŽÞ¿Dú?·‹¾~¯@ô¼nãÉÉâí¸([õŽm?@€<4j@~‡ÝãzIýc¸{?j_È>×÷Ǎ3|%{†a¯—[l³Û1œLeâJCGñ¹Â·W„yVÁégÉì>/ÏVtöÃ!AÙú<zIJP>ý^ý›€õ·è>	Ztöo`‹ÁYáG¼¯KØ€SòÉ ÖÒïB¡3ýîzéé	¨4Ñ(šÃ4ä÷qxÏkêêýýœýƒp»_' åüäx±_Ø܎ĝ|W.W~ÙïªdÉ}ç¶vSÅ4QïwþŸõÄPvL)ë\2¿Ë1u¿. nžþžD†‡íÎ4°IòJú…=9¤cad#%£¥Br5IºT©ƒמ\§F"ô3J‰¡ ›ªq6`€Qæ5.ðæ¨.ÑX€dÁ'# ¬f­c×]š.´F•FÁëÓ¦͛=|×Õ¾á¼”GZ•"#¡ƒ¡õkâR:7þ½òK+¢cŽ5m]®¼‹D½3$°upÃ`†€3|_Û»-~9åþ›†k_é×ö‹¾.¼¡#%:I˜ìr£S¶WÇQCS)õ½ï…(Û'9¥L9#.Â<v3Gxã#)×FM8åՎlŸ={ã_ÚËÌ#8|ÝÙ2¶­Ø^Hº¨ÃŠrñýsÛ8»ñÖ9~gªÇZ:Coç–MûOÖEîisÂ<"ᑮù;iKÉãQâîõJÑ(‚I:k¯Ú•ëŸ«Ñ1–m‰*ò†¨ç½'…,Ä6œè1Ϥ]´Ua²ƒ4p¾ùw<«†-õv<eíxøáã²ëc_´I!ˆäT’¤Ê$4kÙ;N“¤ÙÃB†ÆlrÉâpvñGk’ÄеÂ	#%ýdzñÛ#%AYãï«¡¾q¿C«â®£‡8¢z³¼wjʸOSvWJ§Rq>æ{>n<Häz"#)|qæK¡ðË­×ÌaŠ(éÑ #.¯Ó¯—E]†6ÓU?«®ê¿c—áõ´©zÝÃnzÆõÓ:Dòæ&LÏì,l¶³lÃ¥ñl½Ÿ6ðã캈俷ÀjnL%À^Ǹh?›Sjaä<æýû'<¯áÃÐÏ÷ßðÄk·’í¾{¼#:ClS$šju ÿf}Îìƒ%`ëÆ/uUºÉŒm	¿ÜêUè¾évþYLcçíF 1A²Jîh¸q$’î´Ÿ¿Ï1Põ/Þä­*ãœf#»ÍºüCª{$§›Ç/—Î5˜;2!ý«ÆílÃY|µøâîü¾|³ÿoˆØó2|éù¹Š•™Î@÷½œåmV܄¬g¦*XâõH¿Cƶ]ÔcÛ[£#)mb#)6,#ˆ#К”T¢MÛ¢2,$U¥EDX鮗qd0+5wrš³,ÍTthPŒÁQWdÇ`a¬sZM†™&ŒBȚ¡#.Hìh4ԐF2¸äcè¯NhÓ}dµAa¼C"’’oú34Ó3)Á¤¸¢6ú"ОÌVŽ6hoë½ÖôwÈ^-g(PP|ÿ˜ü¤”Çe˜¥ÄûÿÍ-#)j9-EëÔåN¤,;#)Œ,"Œm&HF‰aƒÇøü9é/ßü/Éòrììû÷ hґ¶2Å#£¥3Y‡®…¤Þ ÆA±aR4š„!¬öâÒm7#‚°RÈÊ£ú#%”-&iú³}8'º[-øf÷ßd»Å:³ÛÐ%ö]Ó&ÛYùñ¾–æŠE\,çÌk¯,¡d§5+Ç~ª˜oï¦R۟6o˯ˈhñ*Õõþ¾ü`ñÊ?+÷îÓôŽ—¦±¦ôçü4oˆË3¤ÖR¯šÃ¹Þ~µ•UÔs›ë¥ÞháìúHf`÷Ô+(Ã	ò¥éH7ïwÌ]mÉXúÇw/›öýËZ<œåÄ ƒÊWè·¸#%áœ(Ô«gÕ¹€²Ã£áÄSªîÛËњ×®ãžÉNŸÊ·#‹œæ{•ÓsXZwsuÝáÓÝøý~?Ë)Ð"ëþ1lG‹Úí¤s¼þ^O_ìîŸ7§ŸøÙÍÙË.ÂlúÑ:n¯÷Ïöe瘲K &<¿| Ãça´ ä_j°(ëüŸPy]Ù4œ„¯ü¾P—ËV„2biº­ÈRmZ$VҘ9[§l”ò°TkD42ŽTVb¶Æ•i´I6L¥I²)+·}^kÓ^î½×F’šÕ*zr(ˆ0ƒll"ŒR±BÀdQØZáaW–¬f–ÎÞʍ(ãµsš1µ-RµD-•FÓƒ8Û È7N’o7sÁ˜R1®Ü„¢nEL£@„˜2-˜ˆ&’0pí«Îªé²S@ØÆ:D6cIfDÃ3#.ΕE¤> ;ŽŽ‹)ms8$…¡Ã|Î(Z“*c)#.oZXUÖ]WC9©LH“$ʇ#.œDV>õºM&AÞÐJ–´±“"®B(ÅҊ¢0«µ2£묔Œc'PŒÎ]ÒÀæ™ØœëaÆiš’¶Mž,ƒÜÓvò藽CZˆ/“\ƒÛÈXB/µTýHa/ö|ŽV?c-&1.#ÖŀèuˆþjO·|ßuž¡ÑB„ñʾl=®ií÷ý#)~l¼½÷b	±Sç“ú¨~äŠÃàÿ_OØ8y´òêpú1¢ƒ×<SÄ3$ãPzô²n:#.)R"ÉÐÞi;šaAÏg6h4#%¼ö/Î_Ig͈‰ûêçñ«KDù^|wÖhþãô‚à&²ÃCœH¹Ÿ‡ï|ó>@ÿÈÕtÁEqqrÀ/1IFgí)ØAvs¾‰ ~}\f¤K„¬ÕPsÈޚPg__as.uT’K2ª«YÔ£ê‚GX¼%iëG#)½‚!Â=çyÁÓýó–÷ПÁx	HBðï%þ#|'#)Ê$[šÉ¸spòëDG%¤’Hh€ÃüÐ^äöÛd&áð%ßógÍü°×ÇÞtí×uÓ°èɝþÎwŒ‡Ø‘‘7£³¡›cŒ;jH •©u´0UØç’Mbá.ÁU@si÷oÞûª^ˆ˜wV<ÚDןžV{½Ê9%£ 1U	\¿×˜ëmªFÆHG’"Ä5þÆ+`ý\ºo6Ñ/ŽÅÆ;²´©{wòGÑüþ<=¾.|\ãŸõö4­ø‰cÓÓî‡tÔ²`X„#.R,FÆzsaéÉ(W:&‚`Ç®ŠÔ+¸ÐLjáŒ`’dhiXjgK³9,mց˜µ¨!­ÐY†XÑ	æ¥f˜õk«ÖŠ°Ì#.Ô.8Á¬!pfa–…‘Qƒ(­E€Uó½G—‰zð"10±TÖcÈãBM'Ö*dÛã$ –7ùh,±;ÚBV†ïȌ†hŒ5`£yTîeLzDl»Ì¼"*Á‘3«à™,°@9¦‡Æª+ÛÕ§XCZ­¸Æۅ‘2SS¦¡ÕÃcRbˆfÊÅÑ`lfšmƒ@Þ§jU´hî]¦vb'Hn‡	±:ÚvËÁïMՀ¹p\ÃJFœÙøþßóèhh#Ã0ÖÒ^V¨UX¬0ïeÂëºßuïEÞ¶êòÙòºzZ¶ünŠw‡#%n¦\x0“#.œTŒBÂUúüҏ(T¥#%!	At[³“‘ñp†Ï7h­åøӶؾ*xë8,:ƒ"50°{±f+m4Ów#.l«2…³ó6(Ap˜ÎÝøû÷ƒœ´};éÈqµB݆zQ<Ü6£ß¨<=$ùÈú¿NÉÙ£6¯‡§ø;”ùò°CìÁ\.ó@{LÌ8qP¤ºº‚6ÅbÂÒ§üÐÅQœiwxc۬ϯ@ÐÑCr<"æ㈑%N§k©Á§ Hȑ#u0†³~«­é"sΙ¡¬1ÿ7XhÑ'¦ï3µŒ[P6p(w››ÛÀ¡Í;B-¸ðBÑn–ˆ0ˆÇˆF†äbÛw079µtª­Bʜ¶óþ?Ç'fÛ]´+)½HyJ#.%e­[ ‘!€0?·ÿ˜~?}ºcêöóþ[ù%!Ë羧ssçËÁܞüo—ø÷ήº˜Á8 bœª¯Þ`¾Ì>æ,¼q&‚EËJ#qn¨ÆÆì ø˜îp™\ÂÁ6Aiх1`°d"þRƒŒ#L1΄ŒxºÓ	0d`ûII{ªŒªv„GUÄ(Ù¤Üq6æ£ò1™E#Pm§lpr4àRð4«uì¢ËBqµfæw²dÅ1eLáâݨÀò…L9RAQ’f’™DŽ Ö˜o½+#%hfÚ¢FR¥ÓPCª !¤YJ(KðLÄÂæVøÁV™Du*èó‚h‘±w¤Èƒ±²qÆ·&9$8`”f#%p.® Æ3m>•vh.AðÜHˆ/V–CN5XÅàrÀeɚ¤JSð1A´ji¥BÑ-ŠÀÔ `éTy™dŒhŽ™	DªöcÁ^÷}m"ÝIíå•iš1´N"sUùX~8g@Òá	‡SÒ¦6Ÿè;Uç16é¾CÂÛ,-‹Ã<iV ˜ixìòiÅê¨&PL^¾‚* Q՚Ö~¨"‰(!EÿyjBßÕaTèœY!;ê{bP’þTëcA·ÖjÛÓQ¹&SÁ0HǼíÆÃsgp#îÁ¶ÛAŒñ±7Žd#K'†²‡TîÞJ$F"f”(U¹K—q	!6ŸŒW,ÔmÈÞÕ*æ–ãõcj´I…«pS¡Üª¡%…ÝšY^؍¦fÍ{—†Ýô^<êñ`ì8‚ïM´±Æ“6†3Q˜m›ÌR()ï¬(;æªöÕÞÜ1ÿµBñ/ƒcúͬՅ(#)Š§Ón»	Ȓ0ûÑÅTp¡ÚÀî“lìn#mrl;SBG	­A‚ÄN`CŽÅÕ»¹:–ˆÁ‚°_ð"%aûØqƼùq°‡d“ÎÏ#®®\í‹;lÎÌ1nz¸ 4Û+Â~<âÁ‡ †ÔyNٟ$q°ƒL®®ç>cƒ"ŽNM“$$1âÛ¾,¡|ñªÆÍÒ3µy¶Ð“Zï¯#)K£i^ÆÜ>QÒc¾ò+U]äʨ;†•D¥ÐÐk”íæé "w]r­ÍãrË~Kl@ŒA‚Í #·ˆeFҔ[žql›–ÖºW*#ï’Ðkq°Ü#.#Ê#.:27#)Ì.÷ùÚw¡×qFÛQÔuÙ<EdÞbY+z}Î69¼¶wM¾WK¨ÀU´ÈbCL8fV±Rã¢ý—Y±ÚOcÝ5uŒFæ:.c#^	li²ZÈã\ÜçŽnÌá,¶X†-9ÁyȨÄfú9&øD!.15’º]Ûµ`јl`äy&Ôe„å6^f‡/³Ür¯•}º1Yý6ø#l.8ƒøÈXƒçðv	ì•Iã§èŸÉôÁx|ïbh…ðªL?Œý;Ûcݑ–—ÇVvé^³xטŒ8ŒLhºŽ4±Jš­¯–Íÿžã"Neà™Î‰"ê±ô2¦õÓš~3/ïürW»mˆ$§é3Š¨wð©CæårýDZÎ"7VósðPZˆ¹ì`ˆ.#)C¾*íï/œÚȑ¾v©|hœ]¤)\@ÙÄ¡e󇜟-¢K›Ep:^ٙ£&x9S»K¿#.ÚØ£Qߛ¢‹?Õ͜®‰ÒW¾|êM2a2d¯xà‡%2êuÿFÑë¼DÛw¾âÑpGJ–:·h¼'z¶/¡¿UÖriòž„<Áˆz:–s¦+¶ú‘ÕÍW÷œ}·!fw™¥)ix5ÆgG-³	¤aöÚö€ÆB!âŠÙܑ£­ÂäßX4™k¦+(ê¥Lãp܁ÆI¹×q½1ȽÏ29¢tg#)]éõt¯!I&ãðº}·B]•È×xÃã4]¿µJcm4| ÐÈ<áĊHL”¦tΚ¡Úú{XMy@ŽY9F‘—pt’§\c6š9ºŒDˆ±VÞºîë]þTiœv{9î&Cݎ8U¿¢È”¼on-å&¤Šmµ¬5[¦0¡³¯'ÿ0Ɋ;Ç`ÉÒÔëxŸx®ü±Ú;+7ÙÜIM!*§Ã)Ññ¨wÿ£nK¾r#P÷ŒN6…»¶Õ¼”›¼¦‰ÆE¬v¹ðLKqF}Uxþóýçéýp?—˜‡§#ÒY80]	ÛàôKì4õ	 "¥O@ ¯Áèi+¨·ëJ²\;¾Ã©T,WŽ8<±ïGd§™âsæísµ¨@,ž®Ё=ÞzÐïtT0¨ÙêWGáèí-+”vâã§Æú+‡s6Æ|[¿;3àõ·Ék Ó»Kü†7¥U×Fn@-ÉÄ9Á“6ËB@ïçŠE۟„<Ÿ4¢¾Œå4‹<ƃuÃM9ùy;ØJì¿÷/xžöŠ©@0!F–b­‰%€pA>éÝu½ƒ/疚®Ko#.*i»[ƒà3…‚#%ٔi0•QnzãAڐ˜7"’´­…pßÂ#)ëXZ8ãýxÕÒR¦¹<ùƒ—ž"#\9˜_â#)ZjB™Ÿtk'^9DÞõK#%¹Gœ—Ú#7{_Ç{ð®óŽ™ÁônšÅ¸¥; k8ÍM‰‚â^ð°–Ùɀý;}.HÊu•s—]ŸèÖ9œœAÖÕßùÛ¢&óÙº…x`™3O”ÆëêʆòÏdR’­Ù,¸#/r £i‚U‡ð1K²¯	£„LÂ*ôk¦£ÁÜ%žÇ»•'ÒÏ®ï9&"_½ '6՜œÅg}'ò%ŠÚë3PîÕ}&…I#.™”JÄzÅÂy¶6öëQ=Λ‡Œ×°AAüäÕO­µØØAä,7tuÝöQ’þ3º¤ñڋE%·w›Óûø*=n[±ƒ^O’ƒOBêÞzNíË9>GßHøqÒt>#Kºˆ>½BöÆQ72„I8€ïxL’jo<3Z˲ã¢(“q=îèû§y5êL”“ÓUè‚ÍŠ;‹6膇pt$Ì60dǧ‰éÆ5»ö³ršæOÞKÇ¡fó»=×æ-§Ýeü	éú"–M<¸3CŸTÆ8l„¯U¦²OôOL³ªÃttëAN¼øi¾ºÓñG׊V<(ÞàÔ×ߍ=«ëæðÛ=#.ì„Ëeº‹ê[UA\œûëºæGþç_€¹7¢‡Ý’eÐ܆;Á#AùDãiá@'ø.s>ø2d=§XnY5ÆL!œvͨ)JkC9%߂i¸yë}X¤´ZaÐéÃóÔփÁÄqãŸ~[Ý·^š:+Њ!‰mÞ¹¾#)aŒ°Œ©œ¶æÑMð¬/,Fe­¡vG´Õò‡ ñìuþ–_!ïS<g"(Íbílòô?/}ØkG¢Àµ¦°ÂÑ%´ÏÇå僓êo~óç¢ÿ	qtN%Pè„î".½¨ƒãÙzìSӜ§c Œ’_uævžË£C˜7ٓÄ4ÆçO–å–_Å1ø`ñ\3tGNûÐØá I›Å)D-Ó¾"¸…¹08䠅S#~)þ‰N>­ÅÙ99~‡£·„×ùvðË#.ªut¼w?16|èöf£ð+ûMöõî=uKª`Þ0ÄËÔÁ£Õ•ê DT}˜Æ‡,íúÜpßg¤inkõNµ¨{ÿÅ¡ßM¦¢ðÿ/GÕyT:¼zuÛ@f´ÑìáK¨šÛ¬9;$Ú`ÄEk#M~Þsáþ¢çÓF|£q’íeuè`¾ÇÊU¼(®…ú+Q#¸öÌÛ×»ÇÖ05†¤l“ÕÅSþ	Aôþ•*Ï/âp¼|6=}½ÍÙ8Æh'ÄJ–xx¾¶–øZã$Ðùa#.%áZv»{WÞ>ØÄy»›ôΜ:sÍɚ¤ûÃFÍÛ͕4}*Óûñ¢ÚuVš¸68ÏÕ·?Ã5;¹G…ÅŽé0²+JÂÈÊê”9}ʂT’͘‰6²áFmõGµ›Þ¶óŽšsß„Ò&×J/O¼—ÓXó{Q®c'ON¬Kž:öï"®²¡™ßÔ·Ó¥œî#)E;vÃ#ëÂ!ç­ÈÒx¥„]^vg…t	:<B,R$«92v£´¥ì•L…\꒔ îK¦1-jeÊ«”$TÌ3¶ýºˆ'I°‡³G½6¶éƒcÏZ	E¹¸ñ¼ö]LW†„íÚ>îcYó÷Ç¥ZäNwϒšC^!üÞuqÕúãŗ³¸‹.HmåÓV3ú/8˜Îå³юùãaz½Þb”4¶oÔï}‘¢ÐM‘T°ª‡:sñ8P¬,µõÑ4#T8†æ#)›m’}Œ¢”¾ð<m…Ì6#.s!	”;Êà&$8§ÙT#%ÎÊ%ÈvšÖ.Ò\ô±ò@ÂJ-P¼ùÛ5¼’Æ÷lEI4žÕxÀE`c6©Ê¼êžn«$ëêtó¶½ùg=¶Ãl$qdïÄ<ä7¤y¢ÿ;Ì ¾âóד¤Çƒ–FC3fÎèP»W§!#)¥P@[²L˜Ò™­JbFŠýܤ¹ßÝXw¡½j1ôsª›=ŽhŠq?ò—Ã¥±µ	}ˆÆmŒ–‹1¶Û66Þ¦ÛÚïiâ]‘w¶Þlºƒ¤ÜË»««¥{‘CѬö/wÔI%èî}‡{íÜK©yÚ`´nuž¼¥®Ó¬Ì´Cº!f«È‰fÂ^z•}}ŸjínK'I<"íçM!Ñ­“÷QŠoTy6ýúÎKHß$Jˆ#ÈS„]º–dem¹µ¾6‡/,B†ö¡×_Ìÿ™¡µÑÈâQƸ‰mÙ¬Q—wÂ"`:yP˲ãïä±üEíA;÷6Ž÷_®Bé-O…<÷1ŒÖPm+‰ÈÖ8Âù8g„QŠïyœ|#)ø|zËÍk:M3ÀÑhwçtÇ”/+ÍìF!ðùÎÜgÐò.¼`ÆÊ£<gW†¦Ä®ÛL\ÅÊ	°ÂôzK°$»þIØÂòb}CܪEtQäs5¢ª*€ GßÑGF5¨ª”€8ƒ[ž:?«¼„Ù+#)xU:{§#.\^«kÖŠÅÔ”"Œ¤¼ù¨ïfp6Ut묔˜%l]-õ¸‹EQŽÛ#mWeßeg²ê˱eSRýÁ™Â±®½³qªME/ÏW±e¢YAãÀB•‘ˆ©Í˶±KÚç‰pýZCª­òV—	w=zr]sN“ÿßRj«-AÙªšßÈþõ¡q†U֐9ð±Ø)zívg#.J*MyD»~|báŒfeõî®c¬x®ô³Nv™ñ׬M̪ܛ¤¸¹çx\Ž>ï«^\íýýäðn{‡wËñÇÏ·Ÿ;™žÞ5ácÓ,L‘cšµÍ˜W.gÎÈVù#Xº¬„Çrßs‹Å‹©ÕT0½Ô–‚¬0êG^"YzyŸlWx~ë…褅õŽ¿4âÛmo-^’¯yŒéRʊ+²NtîñžÈY% ÈĆò3#)\×dØd3¿4*ðtŸm¬sçĸ‡®¦aöK‡F1Ó}n²NØç‘©îÛ9a*Y,f÷<w‡¡pÚª,»5*œ&UF϶žñ!£’©ÔŠ¶Ue•²ä"¸,ñË D>ÅJèàÝTžðxßÃ*‰šb£K5k°ÖFm­„ÕDM×Ï`’€ëCf|ž%hx`Îç}7÷ëŽNN‚<çbQÓÝÓ±ƒh~\p«ä÷’$Ýðï튒í,Ð9ê†×>oEO#QýG½É¬;Nkù6ꔽ÷̨Å]&+{ŒúÇ»5ö%×_qw߄¨º}Ñ)8(×8á;fÑ@¥Û	ü––°™®EtÝ@ÒE]	¥ž¼ý7G¦|¿VO5)uzˆìÇmwÁ¦ÉaWùô¯UªÎ£³Ï>o£Kˆñ{ȖkêÙæ…ÆJ¯?6gsOÊZæeáyä¸à˜©¼WR|o9ÙÛ?us9‚pL‘œ9+'×=:ïþüDE²sޘ<¨ŠPVø°l¨ìæØRÖPxˆÚi.¡6î.·SqœC¬îsޖå8jÔ¤èáaƒÄÎø¬&Â\bm0´Žë›Ï3•»nå]|©ú æí<´}Fü<jÂd^˶Ö{„¹,`à*à¦.aH)ædØ#%¸™QŸ^åìš66®vét,#©Ñò`ÁÃù¨8œœÕÞ¾^wžsVH´³é:¯†ÚÇmà6HÂú0¨ÞRè׺4t»â+/p¦mÕ6ŒÚãšõIêqÛ\ï0¹œÓŽ&§cÉC“êòÞü¢1¤ûG¢ÙxV¹Õsë›ÚÌðí9ëí¼óøIÓ¶Åìç0ÖÎóJXßÆ&½Sd´9õSÿǗ®”:[{þ“[,3w;3É»ÎT!ÛlÓF|õŠ„¦$±Ñ¢:°ÝžU*í¸{.ȲØL$IÆp•0ӄfÐp:[•Õ]åÞùQ¥*076ö‘i‹ø[r||zÙþμcaÖ·'Åd+ßç]Ô|/F£bŒNÓe¹R~ÈFµjônÜ',k†ª­âÈ´UpPö17T#Ø-®R±#.HLé#}BÊúélé¥À`ùH–‹Tçm+”n"ùTÂúÖ³¾Õ¤¹À×ø,í÷ÑÔ#%Ï[9gˆ’Ws¡:8ÇeضÁžn[ãf›*ÎãÆ#.ë×Ã=çÑ#ïÖ©Õãî_-ïu(Ä¿ lŒ÷Y¥bYöG7.dd[ÆV‹	JD‚Á‰ÁÌ÷·Xåß©òtzmíqÉ¡ÚÍfb£y~m°»T›eôp…ÐÁX4(¡,5ºÊâ+Üýps²¶„,2ÆƤêâÁÏPgjjMܱk«aª©èœÉxghªÃqZJېêÊ:e6¡µÒÝkÁº×‡;0°hgׂã`²bu”]’ào†Iê¯]«bˆu8ó¬Ãfj€¹\÷8+˜i{„íß	Â֎0¦Uå˶ ÆˆOäR±ˆPéŠÚ¶Z´#)1–x²Ë#.8l˜Ö¸ÑTœæ|þj*ül`”Ä/F* žz¯Œë®ös}„wûtþ |-rô¿½ªö;ªð攩n®ë¡ožÑÌxéNœ|Õ_óCëð›Ò®Kl:(NÙsõ=RGÞ.ŵêŸëÚ):ð·ÍÿZB$HRzóç½MpcoÕµcá{üdšÂ).>Ò'»W½ó,ïr¥Ý«gm]sª_Äô°	Ñ\'PÙÁ¿R›—çvôÎ0·¥O|]µî¢Ä>­+e‹×Æ^¼G<.­o»kœêíäXÖDõqöû"³ÝQ‰÷zÇ÷ŒÊp§j˜Ï0DÈ꺹ôÞøÂëQ6¡T÷ý³~ø[ͽí­îìO½ùÓDºØÌnùòl¬9§ß:<£>øۂkۏ‰„¤+¤pïaJ¡JçNÒ«Z‰L	.›ž¯œ®©S1Š$BÁ’¢Ä1Gɽã„à‘:ZLrìX׋Mòý`´½DJUo벋RÞ÷Å.ž~vgòyó4Táe/›Éüʖöã˜<:œÔ-±€Ò«b88è˜X8]Iø«gN+•/w,]fn1BBæ&W¸8hMJ4UÐ̋éü¸GEÊG¡“Î锠½}”òÝP7ë·¶ØÆ#.„½ŸÞoÙªLí¨iKQ³m²±Õ¤ràfÓG,&±díYsáIã-mUk	47rm«cøEI”©G%°Wñ†ÓÒÓ0Ãó¯ÚDD¤1íW£{÷Γqü¨zRÞ;ù¿XÚÇ£IO·yÇ	þ#.ö¶µ]1èŽóÊD_./_Ÿ#.@A«<˜GL/Õ51Rá‹\‚T0þâ2>R,¢åR¢à*k	#.E;J\x¥W+° 8@ @N?_V˜I7öÉFÇï½ÍZy‹™¶9´s»V#';–œ–Ù[n6"ðsW”Ú/¨¶¨ý$‡fõ¯`ôÏ<†À©„”T6‹eÙmJ¨;ÈIë+]H¶ëØß^³–aóg¦cš"%€Pʲ.{¢FS‚â(fbÈ7|$¹reæ5H]…|Š„çóù	u÷º?ÿ6º·Nm6TÑýO„ô-4«Qžnnk`!yU…“úª	[¶ï¹€pÜq’нb°)É[…Tšo¾aX=y¥Êöøk©#.æi#Ìù·3l2qtÅiBî€qQ)Éì°Ì±4Ž~¹ÕK†uÈÙVuQ°…3ÐU®ÂÈ#.¯x¨hìÎùí7»—EU%͐~ïæ‡=³ÒPAÈBØöµÐ´Y«dg1Ù6q’í*âÖTsÙEs^õ­õŽI¹^QŽ‚ k÷+NL°¾­ŠÞ;põBbžT`w^ÒáÆ»Ó4/S£´vz}çú+å·<ùE‡gµm'ûªéƒ·åÊ=õòñt^µ<͗ÏdFßÊã隉•Weõ»íu][EW•Tƒ‚»W|ýeï7¿¼¬ç#¡ÃÒ{©Ïçç‘3¢‘^ã¬Äº¡ÐË9)açÆKö*URóm6~b­7Rt#%•8+6C¿¡ÊPH”(EÏVó´î^y<]#%f‘¢È©_sœ’=Œ¦’²ôXà0éQ°‰Kæ‰ïP%e#%âµâ†¦­,¨J´Nc”E‚9eÕ#.¹Ý £¤ZÕP’Úז^3ieÌ뻝b*Ç--Qž¸vØÖt:§x¬»˜¨öG8­ÈB•B`PÒMuO›>˜Òõ1®" ñ‚mJfù7²hB#.¶œsk…áÓtÑ%É-™.ˆËuÆ2«Éí©ÙqdÕd½×ò|#cf#)m¢9ÒFóÓœð»¨Ž|âÈ#.¹÷+IUdeÀ‚D‹ìª=/™eÊ_"‹…}òñnŸå.{Á¶Ÿ×.}¾1M\93×WÑwÜÆʾ÷ëÏ<>&5ÃÏ{õEM¿º¯í½y>²›í^p¦:.Q…Ñwzeó‰ÝêM”Ó”xqѶ/iEˆty/¤¼ði֛¯ãöóÔן‡ÙåûÍ)'LȘŠpÿÜåw°Á;é]·Ô`LëøPûÝëÅÁÚqÞ~;ê$¿ÓoŽ<±gÇÙ¿ŠŸÌ䌽¡Ñ⋹ɌÝ6¹œÏ¸‘QÚÏtí4æEÊ«s@K—÷QìM®½Z(©˜‹ØÁëVeN;&ÐÃ$•µbqu´Rä<Ì8µîš"3JçúàꦙǏXž6(†åê7gHÎ'Š§ŒÅOWBXæ°Šh›b@®ÝˆoAþE0lΤsèïßwùY×W7pðXíü}&ëßÛ1[Dr&·<Q •ªØf€³CÏv"Bg7ÂV|½_µÚ÷ùSë΍¼œé¬Ôõ}´úæÚW	ÔãF«EN_$jž2­aÙá¦è©?¤-z'ò‡¿³¾ìCϧ\tþ˜›ysÙÈ/^"=qj|jý<ªÈˆ´:-m¾	¯×Óñ8ÕìãŸqpK†ÉÐdÑQ#Z¿wWSÆqb™#.Eñv}Ѐ¥í¬Ì"ºAåÖýŸ'’5™ðœÞjRRÞ3ÏÔwˆtàètp?Äú{ãÈÜÇ:ù[ˆï‘âÜè K—õE	)Iú¿ÂÚx¶=è6¨Of#ËÈÕѕºh%UÞüŸ^ˆA[wi™®ÚIº¤e%ÀÖ1Í6m«Îv„ŽÛÃšgr{l+Múö¶ð%ÓZ›âÏj`šF†pB»¸NÁć`𦔄v¨~“Pä¯GÉ:g}œÒÊÆÙ9®÷$ÄÕ¯·Õxþˆòݎˆ-Îñ—û\sÔèjiÜ)á¥w¶¶#.Zd8^=ÍW‘#)ê›ÙÎ)üˆ*ܕnà¦dÔ³Iè¸ðü7¬7,&…·wKºé|ïÙ­xÀmÃý<ÖÑP ‰Üô½{:bƒÆgo#)*x|+υƒãE,¶ °12yÔeõXK|软bQmþZì«O3#% {>‡ëÏZ«¥ufæP"Ptœ0ÄR0.`­,]a{{Ÿ-‹Ð6uhH+ê®v?DÞñˆ#%“ºy•NÕNhˆ®Þí^[b4gOpl]ïA÷ûpÚÊ—é.B#.Nß}¨>/JîZ™ãúÜý+UK`èÒ؋ÔcζôAŽJ]ìҝñXÞvuþ£[Úk_#)ƒ	)•º÷œÑû}l|ʎñZP5'‡rœGä½Tþiû±33~~Ï|¼DºÚފàˆjHQ8ÏÈ:Üϸ’Þ\زVVQ¦ö%={†iºò0 B¢ÂÖ͹qJ±iQ$Ó£«Œ_ªôÔöD!mÚX`Qåf¨âÔ2s–!eéó7*ùFœLnŽW/Ÿl €ðŠãòx]WÝÝâNøŸWŸÂ|%,—«“@…>RÒGïO¿7ÐB3àÃPä¦Î픡µòá“l,ffŸ·ðîâ鸓,ô…æ˜(Ÿ»§ËúqÌ°|¼ïel.™/î; r‡ÝþùP〈¶$´ŸoZWî訔‹RlÂ,"© ¡Eg«0ï`p1"Z@ù³ Ç ›OßßFø‘šÜRÛp˅̹iõ!Ñà}ƒ§Ӝ“ªŠ‘dŒ¨$P!7Û6uó(ên}yØ¥ƒLk³íù*v«âÙêÕ£ö§›2?µ0Ù°}ÒVäÁUï *:ndF>p>¿#)½Á!`Q1bøýýñäÆ6¶sþîCë#ìõ:ó¬læZKïü×ñԌCŠB£IQ¹\ÏìžÏìâr=šJ(xþãŒ9ó‹ç¯ôå½ßþø/=tú×JÔÍh­(öoSI–oó#%i¡?'XàË \ŒB£Â¢ðÚº6Ž-¸j%]6T>#%Û¹ËÀk?“>ï#'×ó»S¡ZžuÜL3æá=#%5$»9’š—\‡¨88¥ª #.×ÈÂ0øà®M–‘øÌ{¼ýYœ0¨Ul(;”WÃhýX¦2`q$OÚýªhuD1Aú¥ÒMz¸Ùoñ¸C‰Gâ wDã„*}z<öž.ÉÛZk#.ªÌ·Š"hÚvߝ~­>¿´•s<­7MiYeS#º69Pú›Ñã².<™K`p_á#)lèØ*ƒÔh+x¹¬Yp Š9–² ÌÛÁúÐï¢G¥×JX„kaÕ©ŸÖþŽ·Ú‡3 KÔSQdS/m; wÀÊ!öÏlGª…D5[ÝdtGgÏü-¦5ft<b*y꡶uÄ1`á#.ÉÔ[(´ÇÆ*™`/Ž•‡LÔŸRça‹’dI„APØ8a~ÃÌaÀ/éÏx›Q¦,¨º¼(GÕƪ7ôrÓ۬Ŷ·;ÜOë€Ry°:»úsfýӆ¤3’9¬³äùÙVçåE=¡ećÇÁíŒ#ª6M¼ýJÃÄ@,|1í4·»PÏZ’8DƸ—±>¹#.Ú\°­èç4Ø'¶ÎpšÓG»h³ü·âN¨Uè 뙘‘EeW`ÞÕE”@¤^i@ýý|l֐7¸%í<ô¦“Œì¡Cëm»ö÷ÇÎÿ¦AgEë÷\k£ˆ›~>4¡à¤ü÷éñÞÃú³÷;£ñnhA–€Âü睡#%€;ª[‹^¢X‹jãÉÐ×N7‰«Þ®{ÉâŒX})ŸÍùü#§•—ÞS¸‡8éþ[¡eÇmaÛ@êÞ;UROQR”#.ŒØŠ›énjïfQF¥±<ÛÚ¦9÷Á[:ˆÍU0.;xۢğ8«GU³'ˆ3¿dÊÍb^á´Ò)‹@“kZ™!ùe@Û;‹TÆ[RÄÚ`ù‰ms‚™GÈ%Ã56PáŽ</§Ð~óVwÛ0˦¼®»ÎL(#.	„:Wk¾¼…:án¸¿,¶jÓDٙ“a#)]Ë~7Ì¡•^	Ÿ.:øü1Ƙô{yØ<p¢ª²¢³Ã™ß€ñ¼¤»wEž÷sQÂͽ˜sYÏo¸E:3¿ð Ë²Ÿ¹Z˜'c ±Ó£<“LI!Iǵ1-ñіƒOªÛç´x!lÒ§_OLð6Û‘xû¦•02,•”Ê4ͨëA†õí¾<äfû?Ú\úî‚Ón²˜E¨ÄdRrL¥SŽØºaÑÙþcù@óÙf«y²JeʪTTyºQÎ	yâH ƒPä}UÕP#.ᣖ'mÑú¬pÅ=hØ-º²˜ î&0y<¥NÉÇ£}.0|¼ßçaå#?ñ²™Ò媽›¢Ap´'V¸Õœ¾*d,Wµogñ‹	']á)¾mÈ®Vã›#)°€²‡0äÁ…±ŽÙ`à6fo'­5!ªK¥·ž<N_œ™áזÒzdë„	åbé´G÷ô÷Œø#%ò2œäFP×[±Âã=!„Þ’͙ò&Êù$r0©.ðµö«±d“Ú½ÉS „-ÙLµ6y–ûŠ¬M&X¤Óí”0:J(õc[sƤ>§p#cX‚œúPgwÂ#)’!ƙ ÌÁ‡„£"DmóS¤pygF¨–al.&访àÍXã¶lºC–Ç¢ùÂÛIiÃç‘s-çÆqߦÆJÁÙ)龗²½¦Ñ¸o˜ôn¡ˆ÷ð7($ïñå ìrϏ³í»¾ˆlCŸ¯Ë¤’W—áÒ_Ý~¸÷uÜ£UìARw*5_BeØË{AÉ-·0{Oàng³¶½ó‘}Û®3™3¬¬	’#%Ê|~¥íÙÛ#.ßo‹¿¼É~2Ã)ç Tôà1®rk[aô’ሊ¹\¡—UûOà0( 2Fj„\[[,~5Zfïr	(D†êäŽK†-À¶g(º(þþ1†<Œ6ÕbX¡¬e°—Pq½ÕWxxÎrQ{ÀÎwV}+›mû+ƒP8Ø•‹yxr(̸‹F’mUÌÛ-€ÇØu‚þX°^‰éóqZö»Fî/†Z|´Ybn))´D´¿™ÝËÅ<›Cû)^Î`¸ý!Íqã‹ÁÛFW/ó†'³±‘1~ëƒ)‚¥Ý~726ªÂ”8%°@-€²J¡éÓ¦ j‚ˆy±"ìî·ÆFuÕ	e§ŠàümR«•.!ö#)ö¬í_!#)1ÂѺ¾îÎÖ3P½[ãédyí»¸NºEôœž…/‰Á^Â63=!Sz㹁Ӻ(âE1PóWPQqN–`åj®‚õoًZ¯"gmÂûüQ¯|ŒÉnœEø#.>Ç#.Ó|²2#.Ê oÅm5‚4¯n‘Áªºç‡#)c2ג캜Ȩvíb;!/“Áï=téˆ_}vØ!ÓÛÑò”ÖFÅ}ïxL‹¶7Ƽç¨ápàøT’ó—ú8z¤‚ðãהïí»'ÇTxê4m#[OµtŸKß ú7;–ƒતj6Ÿ2î*k”3<L^-~Dm(ðÒ¦§^„¡—M(ü„êÞk!ÆÒB ¨X5=æ­»q<=²s¦>YOƒ55ˆÕz&D¦|õòžÏõW!^¦—B„Ðõ‰¾j©7ì„âúe&i	Ù/7%ùìïoéPq«&½Ì@b’ö[¼0³!gNšT)¹IQ%2#.jçvñ<&®“®æy‡%†àøE¥J#)ŒfGJ<#C¦»¥¶vÆø-‚»„ŠTú0À<¦»]¢T{ÍØr?Æ·¹2ó;5#%ހc‹-0ÁÀ ›Ø(l¤^šÅ¼ì‘ׁDÔà¤0«¾aóÀpIf˜sIØAòÚ>eX»8úfžø#)NaÐã©«J-$ZlaM§>í~=ã§9L5[¯¹7=6g·g•ô_ÆIÂjcw†;¹òì#)3#N¾œmYÀ¤§¸Ö¬Ä@Ö#.^âgä¡âX”Æ=‰O$ˆÎ¥¡îëÛòµÍëÕÒÛóïÏ*®³õýì)gŸwÆ'·¦ºDMP0ÿs<1sZ:ÎÆқ]—/b5*݅Æ(ÒJ¬ìÿ/õûSÀ;jšg’·ïñyåÛìöa†‡ÿþ¾¢ ²ˆ•÷ù÷Uð„ú‚G·H²/¡~$éñÞ{tz÷£åìö†PþôžµO‡«O^DX¨ª°¤ýèv!i‰ü‚f-&€¨ýÿ¾{z†ß°ÍügÕlþ[S¸=çᙀ=|éVÄ.小8yzup(MXÔç/#.[k€R–fU$@r#.ðÚρx/²ŒxU õîùÔl–}û½Lt;ór¾6'¼ȉº÷zº%Ë÷U‰Pé{<1°ã´ÒËéé°ãu0p`¤…ì’§yFúTÑÏor¢˜#)Æ:¶j¡À‘ôgfß²/ÖߙþŒîoÙa½¨!»Ń_ ð軘ö䇔Âm|xÚG‰ -‘g¶CN#)%ûº–`UwçDÒcØ%@(þ£Ù!!ÉݹƒÎ"”k(¿á9Yòª((J#)%!ëü–#)ºé2Ö0‚íД²{Ãȳ_Ð|0{ýê—ßøÜüÏù¿/F r‚>ò¢Q}C3–ûŸíÔ¬ûùýÐ;]‰¢æ-0ÿÐ0;;}°Ú/±n‰Üt….Cͱ(º ˆÝ1pEJ‡$¢aêb¢c:"8…õ6(qȲ‹"äZSLl¤pn}#%\À0š[)`?\sò”‹pÉ4–KRE¸:.R:nPY#LÊêU	ç²Âü\°)@ƒ@Qž±vŒŠÃ!\ØpH”*a‚‘`ÂäZn‚™APC8«ü¡mžÃÂ?ƒìªÕìóü;;?T{±Ïœ0z!wH‹Jb	byûåç͗íß:k6?#%,Ç>Àßý¤‘ä¼+ô0Ís«…ɇ:]ÓäÀ!Õ^DÚëÆ¿<ór…Ëô´ÆFd6ZHq™ûÕq`ϱÑúâ±>yŽñ4šï1O½Õ=ˆ<_ð“lçYiÓ\ûøg ›m҃ï^ë'Žš‚$]¦"ž>$›0eíçÕ]ÑI”bæÝnï%ó¢y6Î.y§®®MR#.I…·mhëS½îïɯˆ÷÷ð«”qi-¤¹üÕN³ÂËýí0±ð<jÓd®©gKšµá8ՋÊèœ4ÈNÏ1¨ÈԓOOØՑ^Öhê¨ÕeKþ7‡hø´Åْ¼.ôyœn͞kr텱ny;<†jnÇâø#.ÈÇê€NéòÊ=òôu’¥¸¾ÓøMJjˆvXË}´X~ðÒ}–rh^Þ ï5%txHb~X<}Z.vL‘†O"Èz=D”hQH‘HÁHŠH,ƒ"FF1‚Þßaé;2*z$‘Ž0P‘ôãáÂÐvX|ìgüŽW(ôÎ9s4°Rr@ßc$Á'4‹I†CÕ$)$H¯¨#.NiTT	DüÇb¾è¸‰m¿èùóú¶wHfší:mcI)ÚA„„R¢k5(®&\©sÐ'l+vÅ]– KBjCau0i*Hh§A–ÇY|ÅËO'@ô˜	ˆÍ±A„`™Þ#.Ú0dÛ«M‰¼9‰궓I҉F6thݨ£H¥¢¦¾'O•´ã\2¯'×ÌÁM*›5Má¶\ËÚF;ÍÐ2Üà›Ò'¡ß	x]ÈõÄ2ŠX7Ó؎Çuß‘œÛÂÇ©H™!C×K"jS#%	Å;“Í÷K"q@ïb‡c(Š¥(Ú*˜Ä¨‹ȉm%[µdÖÞ*ºZ¯l‹Î»ñ<î÷Ývªû>î›%%¤ZjP^5Äȑõ}+ën_T>—·Òd¡ðŽtH€4´xÝ$ Ú\!¸àw¾ÒÇ)Èž!Š¡>†Ü;:Þ$›,Zž}ɹƒ> QÒ¾wCÞ´tðĵ=ó7Ÿ‡3Néññ²=dœÒÁT‰E„A”sÖÉÎjæ[;ä¦já”óñÐ2lx7O#Ó°Bç˜ÌT«]M´¼2ç!´¼¶©)e&I$e¼ñT’סI’sÈãcJ÷g}N£\;ìPDžP™™±ŒK¦‡+aÍ05'#%ÐcTÄj ÐED!E¨‰¶óùwȱh-_2éF—v­ÛvÞàîdæ?.4Ný=–u@ÉÜ#.ˆ´…QZí׈Ņ“jž*2,aÞÌ7Á”\‹3*gˆcŽzètÛ¾ýóג1‰<Te‰²CP,C)7ì÷òåÑ8mßʽ	ôú'ÈW~󨇐®œº­ø±f5…ë):Ia("ç @Wá¯~jõxÀ×N‡lcHî=$j(^	†»Åq#.sV*u×+Ã5”°ãD(‘H¦’4ïçGJ³§°×SJE’,rÎâ çÇ|Ë#%Dz³¦û|}¯w²ðÂ-0l`ïЧnª5 O§^l23¿*<%·_¡àîqõ”|¬ Ê"¦ê¯xûPQ)u9øï}ó:«·+©pž÷“s¦j»ºQ-йŒñÕ_?µÎ@ҟ'8N@å·=³!¬#)èõh¾HdÝùŇŸÇª7ÔûÖÅàðq¬OêíhÈ$õŒ…9¶„ð|•4JøԒ†#%ˆjȘe–C‚Àƒ"í PœžZü#¥ÀÐr7éFª€©Dï…ùå©Û´ð¹’ÜÏXY1Mù>~SKÂZ=ÍY$’a8GÕ?64Ä&Ȭ¦õó}Sa]{-WŽÿ“Kv<K3|>^9=̧T¦·[7'‰¼£óòîÆO6#%ÁD´&ÕH¨Lʓ¾óUN­ñÃ}ƒ™ß¨z>=G}zH|;Uf嬇y٘ïÝå­ê>•÷NFîɆ<œÓè¶:3]=.w±CA"HÃFMpn†ñåŸFú*#)òÈÌÄ°‚`ñ]	û4»®UÆ^í.vlcM-U#.àzlQšÅM4£B“rü>vb¼êåòªX‹|®›‚#.!zÑä{¸qÇNôë¾YUƒ»Žðð)Hþɽ¡…°ßóñ™¶YÒåWTèæô¶¨#)Ñ{g·»7ۚ@U%±Á‚Uˆ+È*}H)†Ø,ßØp@iáAFÎL`Ýí×iKÎM„:~“#ñÃ#)÷ç%cÃÜçîÁՏ"Ý:܏o^¢ØF‚ûTò“4+éE'0ܹš±ç/‡‘fpZ‘P›Ñ)PGºY0M2¾Ø´êµãfzÑÓ©fç²»#.=ñØ_'UvØ;=/¤ !kÙ¨¹î‹{Ù÷>o}ō˜vJ.»Žó¡ö=‘Ö;œ<ÏHcð!¬ñ¹%Äî{†fü0Ô÷ ØTVU;@éۋìÐ_f’ˆ=k‚<ØgmÓ`w`K"ޏO‹ýwòÍîš×)ËJ¡È¾¶^Içl8æùeÊZ]Ïså~€ºq‰ÖÝq±°g¸#.5dR#+Äât¥›‰’l•ÛEP­-ú´Põk¨¤X°¸cQÓZ$oÀÃq²‹“”4юêö{¿¦ÎœŠá 4ÍBµDNoÞT#.#DH@&pñϙ{®1¹^4'2g:j¤¬AÆ!¬ï(›p'!0À‚x=”:£_	Ð.ŃMצÔ6—7Лdw}ö7Js®†v)ŒYáÄË©]¥ÅbÃÔ)TŒ¶Tàûþª#.ªÆ€n836ëZHtN«…óˆ^hk³6uáïºsåÂàaÓ·¨r"#s°ÒOä®å­¤5¨1wßdÎÀgˆëːiª	&[룤¤9Fc‘¨†€v‘ÏÀõnºë#.7ÀÊTáâA„1‹ª&ÉÐðF†ã-dñ´2®Ö1Ž&̇ºŒãT㙩sao›ºïµ·‹HÌM“Öº©4™13Eïm}-zÕøØëå¶ÅJZ¡q“\XšwÔÜöËRðq*\‚ªƒÚÑ)”Ü×#)×Ë8¬Ÿ+™5ÍaXÛ~ÛÔ÷i*5]\í{³µ:w!Ñ	ÑJ;"Æ#.)¨ñ(¤ð©à²`“Ò”l÷Õ}ÍMØSgFÒ@àb“½(IÉ^§ß\ðiž~½@1ïò܆›’6ñö°hĕsŒà´¥ý_,!k¡„ÇæÏÝõW è±ÑþUôÓ{êO}Ãô@ë‹ 8Íd Ýëϧ†®­Xf.­4!ä;baÇù<9ïýºO²Ž›Âç`>ØV%ãŠ|²cÎŒDù¦T’_ÕåýŸ¿àÜçIóíÓõÔï#%Lq#%MoM—ºE.;è·ð|ٞ!äà}5ý`<g}dü@qr¢y˜yñOƒ¡ÌÃ'Ë~ߟ*;‚úÎÑ\óŽøHuÞ2’ ›¿é~8–-¬Óñ×oÛí`³¨›ëL´¤Ã_lÓã4 $Á!˜}?Ù«ñλmÌE·ê%±˜_ûæÄAWô~ÁÓÀ¨0ŠÈ#%<¼©ˆ}äýZÖ¦•&	‘åNg1VY-%ŸÀß±*Ô—ʪuüor¡ßjݍg~ŽŠçÏ7N#%è^„;ˆÞ>ð~Òº¯y9¶„€‚¯z!V@UþÕþŸ·èÿ7ú?ðü™/ýÙB¿íÿ•¤éNUËIbû¨åZ¤çÂ**ŸìwÝIÒAZ–²­R¤=‡gÁºXÄQÿ  ¢˜ãٗY|³9"‘@ñtf:2¦deï…ÊÏE^^@_¦pJ%\BH‘¢?ž®‹þwœºf¼ûýD‰ôJ$*J„Ú’{Aý¿“êτöä åvçñ¼cûøœŽpRŠÌ†BfçåÛÝåßãå}Q½*³ñ?ÈÓ#.BOìJH‰ái€/‚ºêlFåIKçê¯gò—‹þÏkÁù°8ŒÚ¨Ÿå¸‡¦?_í+¯¿ˆoš¦_kžx „#Þ bÊ$X±F]ÙímÂw¸™çŒ.uBsºëC<PBʝç 	LÜ¢	ö¬.@€­$©åF8òiãώZ¯«KˆúùÂÐÜõÔóržÌFéA|ìŸVTíÝùÙV#¿¯Mf€{ò°»toқh&9G×#)qÉ¥úkÛ{)aPÞ#%“íhgE-÷ÙÏú‰ÌïÇòBð^ŸQ¶©õLñº14ôM">_¸ßí(!!²Š„d$műÑãêÕëµ=tGàU)n1ïå÷†IÙÑO›LsJY0!#)‘(rõvl_êðåãßW…³™`µX[¯wxó«üç;!i"¿GÅãaì‰Ý¿q°×¯Oõ'ùYíaÁ4Iý	­ÒÆ"$X²ÖrªÎXxÚÒª¹ËWbŠ¨‰I8bqË3#.¤þÑ98YáÓê6þƒ«oÏݯßýæ{Ž\š;ÅçÄð~™Ò dD¹Ã™9yç¹2t„ñy:z‚v‡(zª›,ˆ±DlTþÊ#)µc®µŠ0e][ý]°jøÞ·Û§ûf·/@`ÕsÉÜÂBMFN“»Æ¨ïküÕF<œâPü‚¸6žmà@œÜ{l)cԈ…s­æ#.;(³îúÿPr&=$õö `H$ÉFïÜ݉Ãñâ¹#%|èS$FwW+tQ̬ªØfãâÓËQäb{¹JkrãxòSé«®Qýa§<»]̵‹Mu½\s>8ðû2ËÚãû+ô”$rÑÿ»‘èïÓ`‡©ÍéݾžJ¬ˆŸá#Ò¸>)Ý+ìOÐ[TÊáŒQ²É7u¯ÚwþL•ùhácŸÑÜ:ôz`æåzˆtr:ä#Œ·0b÷H'ª0;ç#)>›€ëðÖ4¾ y:4yEÃÆQ<¾$¬ÑCçËd³‘ÛÅÎÒ¡#%pX8DE³àù6ŒjÈ2#óš€9õ þâð—Éá§ViˆTž>E^­Ö·EµO6ëd#)ê!çÑ+gd+k·Z¼L‹'£ï¹„nj21º/F (UP"dQÄ{Uäø¥ñðëž•Ö*ßÚ8 ֞É2%éÑÃ^Îoìyʎ‹Ò®h’“×”\ÒüRüNð»=ùʆB™Ì"©™Ä	~>8[w>z_ZÂ3V"r­DUdÕ¹ïå‰XÊ	')I3Û,"êùcËIØ¡m`ßl]”ëì‹]K§bY˜'£Ü¹p\i›	m˜ðPû¦ÏW«ªù’ *"È-Rhz¦€‡•êEýޞOÎIÖïÈ¢c¸x܁<D=Pˆñy,†T#%,#)ˆŠÕëÁu¾r˜œÜåyqÉq×çÉ>òC±û§ï<qÄû®èÍ痰|øþ1ð¸—Ô‚û°Á1¸–ž6ív'KÑ·l Èzè&å”!VúŠ%#.Šë›žl‡-<i1/5aMv4Èj¨åȉ„çE‰œ"¦F¿*©˜ñÀÃ4w#)Á+œ¡&dF÷Má%Cºìùx_À#%@û€9î=﵍OQ¼Û¿fú#)Wjµ#.#%ƒŽø{FÔ#%€Ž~‘ýíç¶ëó.Yå³K¢ˆã«˜ƒ|6*rŠVûû¼¢lÒ„GGfXc¶ìÐ#%¿ŸÒQþ…ºöþýa‡“K# z3z¤>2Ž?² qû$ž§M‡l‘Bç}µý-„å;–›Uޏ(À<Õ<¥è6ƒ«ìýJúÐV°C("*©Üžõu‚>¡ÝÔ3¼û²Ï	U_ê’~	²®bÝ׬¾‘ÿ"±R?—3ÒJëﶲz_Æ#.í¼ÁÊuNúÓÿT¿:Áˆ§ŒEíðˆŒwÖ¡w#ûóεü󘔢<òæXJøÛÊ3â%’ùìð‘)#ÉV¯“>Ê»]íé~Rê÷ˆ15Ì´±a1©tìÌ8ë=‡ÑiªÝǒçüîHz˜Ãt—ò[ÆØDÅUSWwô·G¨EáèN÷n¿¿J¤¸ÿ	G[mkڞgDr¿“êú`¤QÌDcãØúÌguÛé1Y¯†3Ä:ðîȺáÿœçâb¦³çZŒ®Œèê^ÔNœú£mIþ×½gý;ÁñÖø‘qÏ4}¡e¶ÖP郁{<‡„|o°D{6xW],›°,žµ@ëeÞ«å‡X‘‡–÷ÀbÞb£Gj”Û{Ö~÷|°#.+QÏ CÜîÞ¤fÞzÌGØh)<K#+Ú¥ýrüù Ät=2Wa{ñºë¸eN–!þ#.`JÕKé3‹w©ŸÓU_¹tª4œ_©Ž	uñ	÷b¬w©ïŒÑåÎÐv·…¾Mç^»Íඌ˜bµdÁa"?8íž#)m(½e±T£ÄC#.æÁõ¾iS”°ºmÅÔãÏ{ª·N9û¢eŸ¿b¯uu“ÕÒªŠ'¦ÄcÅTÉ÷¿$汙‹•´â蝻Ŝó¬ôμV§TÐcÚÛ§&"çðŠwpÓv3‰âû_[ã¿ç´4#)éÎîR`¥è“yå~øtØ6UÝê£n•	&KÄ»BÔ;{ü@zU{#ÑæjŒ†ä$hxe>ŠëÕp²²¹+@)ÉEÃ"½ø3%¯×ökMO韒®þ¯`îÂ>Âǝ¤r>uQPÚöÒ´òg2Å5ÎsC“.˜ü÷˹ï¿C¶Ñð[špLK¡“öNÊ(ÿ¥ï†š£1$:]ËÃ@Üõ°ÀNo*¹ç#˜WJÄ¡+èÌA©FýEPºš'Ô#ü¯Êç9l»¼S¾ü>¼>ݨÿM|hìÙ¿>86wêâQ3(w‡^k?LuYÄ1¸‡†bmëi·\o½mœv™Èãt§\¸Ep¦§™'Žñ¶Peßàî)Î	¹É‹ÃºwK»ºXîÑàÖúÍ»àÂr|¶?©g+¿×"Ý1ºaV‚µ®zÿ£kɛ{“†ÝߜúzþÎm™Ç2øV[X³—"­à©~?²cÈ ŽÜÅ9Q›úGcóRG¯-4‰Aô%„zâÐ#.ü3¿¡:–#%æû#%ugCìà©L+hò^Â@i”8QÏËpVºÌQIÙâu5j™4AâMõ åAe'쏺j_ïâŇ6@‘ÇOHøm¶vZCû*ÝäH2ž_æˆPa2R.È©	QÏJäpÌë¾ÅY(îMgoÙpÜÇ}žÉ˜ÚŽh¼Î¡¥­<ˆÇ™‡2·áêÓÓÃF—Éèþ˜¶>“Á;x"-?[…#õˆ¹_<àèÅ44Yòr°PãFËQôÑàBùìrUÉÍAÖ%϶_Ö߶+¼ä✬Öèàšò¶»qþVó!ü¯¥Ç^½öúü×A¿R/úW‹\•Q‘iw)ãfô†€GÙåéåJ¾y$[ySÛ1%såç[¶ª#)1P][fÝ—ºEõV×ñ¼?¯É¹?7FÝ4ágV,ÃoãÒ!Þ£2yY!ikoÈq.üýgë>¬u2#.Ô±…Y_X×ÓSɗŸÎõ}ÂjÊI}È™¬Yš.ŽñM¼2ù&?eÐ.	dÇÓÒ¶úŸ#.H6œÔ´#Žþ¦âe^ÉÃԗ,m™ìóµCdGÛº”3ˆl‡O:υì%%06r|«ƒ9¦Mœ{Øýu(ô|x½Ü! Ûé3éüÍxùEÒ(O"ÌÆú|œ#N!6 ÛuŸIŽ\:ãð#.±´ƒÀív7«UÓˆ¤ÎüÌ2‹#.—µ„ø…í¥{ÎTXzTƒÊÐvöC»¼±,f>?GÏpÛ2ϳ(”'O(þ*†¤ÇÀgA´vw™ßéÒùÁt{:aë´0ÔÂPäõºO›n-mS´©	ãW5¬‹…üaJÏ1…õàp¯=m; ڜb±§ÔKF4);8ëœL³îBz“ËJ†Œ^燾Šß‡Ï&SàÃG¿WŒ„m ¯—z§Ûc!²Á¹ú\ ,8§{'Dœ_⯋ù·xøJbûqµUʐUlê’9Õ"j‚gUWùv¸çLe \÷Öø{§=ªRpO¡‡V^BŽ,æ*‡ r…:2"zRÙà‡k–[¢zP¼¢¶”ÁH¡ªŽ5í¯B#%ZHâ/¡ jÕΣ…#.øIàˆEª|½eÕ´z㤻(¹‚ÞÙ$$‹%|(#%/%*ÁI+@#.a”×¼c%QaKÀFñ¹¶\갊}2“œ#%ÎԈ×fí{=RY:¾ËÛF̊g§Å(Ÿ^þ¼k_\åì*,*¶E‡½ÝV+ÕW#œ*ôëÛOÖgSõ[<_̪›ÙëfLÅ#.¿SèqåQÕƒÇCŸ”ÐF±™ë{PïAú…¡…À#%ƒÝù²ý¿Xóøï«J¸B]³a`=,-B#%oPÇt¹š‚†Ò#%a^½çè05}¾¯ÚBLM^;Ð×µØh ýÚ#¸þ+‡ù‹£znîȲ,7ÛÉtý„K@¹¿¾‡ÄÙRŠéø”ü‚a린½­¢°êª´ïúìb~³õÁ#)‰ónèã7Kޭø:.„AÖ$4pÓo|q[(4(žõŒƒñ½ÕI#%cZ¿·þaîÿ€ÍL€Â•Õ|«îô­oê÷ßòª®ŸðZŽXH‡z²Iޙ¿Erìo¼¹-s°‚]žÂ;a°†§»EÃߏÐV€áÃï,ø“±œ 5Šæ©Ä@2WAâ¾ñ"hãü$ÑûÎavÑèÚäÕãGßm~çm^–ãíésÒ$~ç³s}êçÙú¿g>n\㤤€Ã˜åæ`¸eñEì:*tß#.f”J~}™è«úŠrª.ï¡=Ÿ!ý>²Ø„M´tZ®Á©eH@£jT‚ßèÏœIبc¢Óï	ö!ôô|Rá«»‹A@f€û×°@AÿìGÄfÚçúæ\ ÃHýb/¡½d9ˉaBHì.µþßc՝õ/P>¢C·îžvê,ÊÆA"êOŒ!5•,H¶‹‹µìzÌøn­Sw€žI—N&W8Bmú.—š­,>ëtÞ¼Ê1,s,I¹Óuô#%}8V¹Èzq÷Ó"=aÑ?_Û®úá·qvYƒŠq°ìÃZ€w/ r .࡜ ¤g’Ñâåâ ç%sÌ3Ám˜Ê„”ç"B¥AUVcŒë¨4|ž5þïež[ŸQžº‡HÍÎ G0#%°‡µ—-‰PPíîùÞ)¨¢¢s·NÏl;µî“­ž8XǎD/°¯miUD5yhÙ³=šçⴜ§Líð:øÝ5ÄÛHfE‡š	:8Ä`ÁxÙ*Ššé¶A؂-ÎÛÙwÀ¶?]çHrÊVŠFB€Ja8›ß=ä×êÑ@¥6Ôǥ㥏½ÜÜÛúÖ´µïÝé—û°;¿ç?lV]Äú<îÛpã.#.0’Ð#..ž×º;’©j¥Ç¡Q¤hEKÍŲ¹ß”ŸÓÚÛ#.dɾṺ3ôü¸²ƒHûs{ڡ߆ḚfÙeq5ÝIŽÃ3(Ðá¾³Ž¯ŠÞçl¤ˆÞw}žªšQšöv•³·3³(ñ#)'Õt‡1æ•5`2z»ðjé=<¸ã‡\_A˜LÅ:Ïl¢„©:sèŽvó×ç‘fÚ퀻Â#)	C¿@A C”ݵ lt¾–òöšÀ~E5…É¡w“3ÅELי+ÑƧÔ=,ܖnñرØEœßðߤ4®!ö½ðƧç”æ4ÊuJU6™ …ÒÊXgM3Ý`ÊàH%üëçTP‘áH^ë˜/'÷ÔR™š ÕDæ‡WÅ³Ìs½r鵓WT¬ñ±„òÏK$ßÉèŒa#.“¶ÌmÚ0Ú²DA1o‡¯¶8L¦Îu´ý_bØb;„Ú×%Ïþÿ7âmZŠ{Hç]Œ­ÆÌ×îþœUäF‘T=Ýs<ô/ÕòéXûÏ(Á³Ÿ#)çàUkOٌ˜ßKbËû:¬ãGêª"W©"2=²µÉÌ©æ.%*sé¨8>%‹ÀΖv8xÝ <#ŒF68\“¹ŸjäRö€Í–Me™mÓ÷£œä7äιGUfî’+×U*“¤™3ºT—ïÛHÙµñNql½Jšt΂?ÃY©r6Ö=ï}¨0ðÏR[ß8¬áŸo›´yÄ0Ï,ëŽ fG!tås€‚8ºƒ6½¾ÙöfpÀÒçä0ĈÈD<ª±â‰™>?eDzÙd·<v£¼Ûîü'_¼ù÷}#)Á’³È&˜¤³:ÄÄ÷N'z&%À.í^b-z¢Òè´3“;#)Ú"'Éû”ccýC”føb‚í>¸fç5EªÐ…‚Ë[;CÙÕ-“ˆ,ue&ƒDb4Êy­“Qè´·K9Wc#)•#)­žèâ æM'œÂ„\õך3iʁÃtF_±¶yiïìÁG\mpý“ÕyÊêï$Æu¤›zÖ3¼Fu‡sO7§¢•§d#.Êæü½Ò„g¿U'7œ%Añ÷öéz]½Sûqɹ$̓fzóÛÊc7<å½Ý8Î|®ß¶ðëÒ÷èu´ªº—‹/1e–uµU„!X²ôàh	©-Œñ(3à÷cpr.ñZ©#)>(Ó!æ/Ú6b¤NÇ#)™]g!’ç›ô°º'9L·‡õ˜%)*]‘ÓÃn±t H€ðÌ~ü’—ïbÏhä~:!#)Ö|<±``¤ÆÀbA€±==/dw¡¥PöYë7JÖ	µÇ5L —澐rèq¥‹‹,üda÷£>Ÿù_E‡Ý%Õz2!}\¼îy¢… ™*(!ê9°Tu#.’ø¨×ζ´†Ö°›I¢å÷Îðt¿Y¤…‡am”õqŒ²t‡{'>dv<à»'í!Õ‡ºzvꢒým§åݜ¡a‰$Ž|S­|tF™rç¬ûÊ#.¶tÆÄ6¼®†Ù/CÊ0|4\©cÑRÅ°¦Á\”&Òµ™ˆš—Oë÷ˆèpë³/AÖòÚ-Ì2Y.ÉX<úämy¬‘cª‚øoÇæÍ˅´§¨9@±ĵ͘zˆ~OSšJõEˆá™ÂBç¦Zô$eè­X%J£#%Jn¼A ə<·$ý5u§‹Ë¦í2JØ_T#.ƒºØoˆMN“õi)#. Èfòvújâ+A0“`ááÄ A8¤ˆã¢‚©F#.$‚P’IäÂ˒ ÕZ:æž-|¢ã*³ƒj¨MÃΛëÏÐ48­cAé#%@ Òë¡×ԍ0f®"²ŒU¨“LDxï%!uÁ&(œè½MuÅ#%rj‘Þ,ńg®a:;l`Dõ k\LSÕ¶N#%Wp‡#)Ûâ"†Æ@ׁŠæ…zù»Úú¾Ø×Ö”±*ÑÔÎ|^™ôªtǺ4 4ÑRëán¼6æ‹ïiº¡Þë¿sžAC ½=‹	©à§A‡<Ý…E F)=ov*Aº9=Նw-mÍ˹°IŒrÌÖãpk–ˆ6Þ:*g1IöYfc”·`ê8à#‚0u/ ¥OìQª;æ@AV¹ 8á<E£T€˜®R‡+¸ŠeôÑdXë¸#)+ó?Y†ose;³e±Lù°uy¬‰i>y”RåÌ$#psº Ã]KœÞÑ`©" ^EO£>X.eðigtº`ŸåøjUÂùê#.َQMOˆ\Å#.#)JUwĦ&øõƒ¬X]3jÚh¶øÜ$×>A®î¾3GœÞL)‘Ð0‚FãÎöŠEڞc5·ÉUÀT.µ%‰#%( 8Nü³5q×GÖ 3^úފRÒ–­€Ír¸Jj¼Q´õ-‹]„ÛpA'¨kûx«c"÷?—Ï`ý刯eækØw:„]M¼ÔÝýñ#)~‘¡+Ȗ/1”ûŶAç°BÇÅñšÌ¨7åæçA0z`§“5{Žö”UXª(\Ð÷åµò9M͸‡CπÐCÂÓf#% bàÊ&’Ú3#.#.†Œn˜èxƳќj!ÒçUz¸hô†î¿@.ÏÖì¹ë”ÔvÝc	GàÑè…¾i’X‚n²¶u,d8V»Ùá{#ÒÎW4ˆuȆk}¼Â«ò:çA=½#¾¸jN,P2—0­gÂÙùðx«Ô/•u8+  «?]$•NÎ+tœèdBEZ7#år‹–°Õ ¹ê|«h)xç{L…°\ƒˆL\2|šyúŽ­¹£6zòÐѶ*œÍÈ$†Ç¯®l#)i„«Mââ/•ÂÄz £r.¹s»—0yًXm¹z#%ˆz‘uÑÒúѵ­]•Ê"³TQO.#f‡µj9,¢#)X=e¼·\{¸Ö^ú¯®^EIŒvh5µíœf¾ŽuÅ´^¤[z¬ƒq•!Ñ7¼#²ªL⸢H‹'_³¶4dìíâ<7‹j!`ò´©¼Xý!]×Ù¢’ò9¬T')@ãÄت8êªþ\Ûp¾¼Eˆp^n5ϓû0Iíï›6ü·ÆÜk.v‰ó‡·rbv~ß8°ç‚´cmÒœ{Øýi_­[ƒBòd#%´’#%-{ŒüN•ÖÄF@ï"QÄqÄhSÞjtÖñmׇʺ·G\2bƒ5, ×r‹+›“űdó³C6¢҉ˆÓ+JXMõY…V&ôÑf·‰õ§uN§Q4Ê.צÝt)§D3¦@(¬IZddè(+€}!hW´5½,#)Ò·Æ‹Ñ¿Õç,þõ‰ïN!#.Ml\q°`!rIÛ#)ÁáJi<Ú¥¿Xá@ïßÉuâd`z•Ðª„ƒŸ+BÖH(#)ǓEО#)õÜ,ˆ5…hGŠÞ©#.n¥ÚëÎSǧ¢¡§Ô»ék* ¦…ËÍü®Ho©t5߯£™—|ÖºÉóœz)t»Àšÿ—Ý£WÝî÷‹Ê>/£8¸Žd[ærüáÓùAh£èΠ$OöYg}Ð]\§È‰Uj¦­ã½FX÷¸t;¡‚îD6ƙфNvì—cƒå±ÃlàÏÓG?Gõ}â>~.°YP±õ£xŸ¿äªÄïsœ¬†ÞF#%>øO«rñÒ`gvŒÖ°>iN¬Uù¿%åí³§ŸßxöÏïï-+É,8Ãô݂ó,¨/bÔèak=Ú*Düd?uׯL#.ªŽOÄaÒÎÃ>oÌ#)ê±o¢ˆ¸ ¿™ßeѪ€Té*•p)~ã©þÖz«íÿHì?Ç~ϸ?_·ôMDŸÁì#.ȁ`#%¹|ú¡¨²±þÍ €9¢QT”ÿ®ˆpBÄ:ô+áþ¶:EÚÒ#)‰E•¸f…H#%?¥þËAÇVlÿs?¨·~/_UÇÊnuæXmþٶɡlï¨~‹ˆ`ä8<:…õòë6#.š$5-Àˆ;O8œ¹‰^žfÔú¼o6ñH§†%#.¦|=P³:’‡Å‹òH†”gc´ªc¸#%/ýüÂ)ÒÍré°uH06¼}aЏo³ýò_©Ís4CÒ.¨®Q_ö@RÀ½Ûîq:Í,´Žl/rçí»þ|“I#)³­!cõ>x(¤ÒRd'3äÔä˜'‚ž¥â8 þÌTúÔý ìÿG_f#.mLÑO¶Ô9æ¬P+7¼º¸jr„¤H@Æ} fö6(O •ç<ç3rL¹$„o4ÉUêöK]'ö`"9Òp #%R¨†p­D®# #Z?_üøý;þe–‘ŠŸ¶Å¶l²Zê’G¯ËŸ‡°n[ŸíÂý*ê=¬\ÇñMÝ¡ ÊLRªº`T±wܲáóDšO¤ÐÜRùRÔO2´_þ\ù’s=„…¶šîL	‡øƒ°Ó¼ |Ù_€nèý…ÁÙËTÝ©ª‹Fib˜#).3Ž7à“U#}àWñ¶´ÖÃXTà{N"D8ølM9…(ÅbÈ0ýóĨðeH~=«G bÿKóñ¦«…›@ò.I»£á @îOBt@Ü»=-º”5-—ÚIž¤Ó©Toä†Ã°Ð¯´á{O’îDÔ°—ŒPPƒ²Ãpãàר¸.§pҔ`!dèôÈ`E9+˜‰Åxšr$s©V5GQl‰¤CDj«€†¶#ahpø$þïÖ¦ÈâôO®»ïW#)T“ìúB÷'ôéï×ãÞ²G̨K·È¨`óRnËx]B¢Q@ÃAc0cÉ_ç/}?éÀþ#%Ÿ°#.Æýs¼Êñú#b9Þ/ã]_ÁßeF‚HeZ€r,3X’áݏ`w‚–%6÷QÛ"AÙ;¢ùºi–a[@‡RHõpi2¦Žtµ¯ø—–¸ê·ßvÝ£ržÂ+!)	4^*÷û÷êr#%$#."Jé>^W¡ÐxÒR°À÷ü}t¾U|mòñšŠüÃ¥ýµ¯R‹ôŸpøRŸ,E…&„V°h*ß@‘0t˜˜ßÄMÁ¹A¦8Øóüýx]Ó6AúæsS·ñæ}«û;gߤ2¶2_êÙ÷È@F4ëÍ£y„0ðÀ¶ )bjo%¤'Èi=þî.ƒŠ?ÃùŠªCp~ô)L0ï§iPITÂ%@K¯ž³[{ôN ‡Jš"h §Gl†ómK—'ùG1cÓZ²]¯ŸS—¸09içßùáÈ5‘ÒHÁž1‹vI,…X»·t’I!b]í‰_³Û¿,Øa¼¸»íØ>ó°;b:}Žë‡ùÏQŽç–á³^ÀÒža]n.¢2#.tËzPu²ÑÉära›(nÓe-³ÑMe™ö§Œý§Ãëç^ù÷—cúÿI©ÿˆÿJ/‰ÍÂ#%Ëýsx?ÒzÍæv•W‘ƒú#DK^ޒàJM}턣ü-øŒZ`´d¿sÔ¬ßÈü^¯Ióáqµã;YÇGe#%ý>mk™È~@äŒ(:-®˜–,XúÛßêýßÌêåC¾{«2$ÙNÓ"ئBˑKdè»í½ÎS£=Vå3èv©Bƒioûå#)”—ùj—–ÔE"F™$Î.r¶w–°H¡âÒ#%„]Á©ì,Àºöó"@ÀÜí!îð#.L"!ŽeÐÐÃà­_OÓþî(jùÃèçØD"U$%2+Ç¡MfÄúñTì›ÐèôœÛ“½nŒq€VJ "O^È4€h*šûZÅÐϵ,÷#)K!©ÛnV)'©)S[âÃçœUä^Ù2[%†ÜYHSM&Æ°¨ˆ$Ë ³Mʔk!ƒ"LŒ#%´ÙÞFuœ¾Â½Á‘‹ª!öÙ0©žMD)®·?³‚¯¤5›œ¯.ð¹`cÖó2$€Fæo!äbé2y…®”â]L„2$’#…Ç"[îý=˜úß«¨v»oGÙڅÃû>þYÉAkZS?>k¸Ü~ǜkÁoÝáƺ{ïY7LŒF2(¢(]ñuUtfÿÑòº¸q̪5þˆ ´AztBM4UUЇeCƒ˜‚®¹ÄD.èìÛÆdÊ妐ÖN™$ŠLÝ#)µŠLTÍk­.d`óRêȅwUo—D¡íÊP­4ˆ$V©©MJQ«û°¹Ä8Âo†÷¼ue5i´3nF?º-Êe–ÿoÈ‚Ê‚H! ©Ê#%}™	@ï&8PÖÒi0ڏNÇQëý–þÏ,çݺDêˆOÌï>^µçÎÔwȑŒÐ"éJÀV¢#.ð.•M"‹nʸˆ"{Cé)KBE‡gw±>Ä}¿jéݸ6œÐ%¡÷îõZ7¡Ç>˘&¡$æ"ŠB_©ä>ŽZâ³÷ºüy³{\àO©<·ÐµôZFk"Ù¡UÞ®Í`Á$A¥²ŠM£êƒ&IÓÿ6ÜkÉ¡d­î.I$›b°¢IÕÜ:ÊJk;tL¯œÌ¼B……°¡Hiï:v6ÏU7å±Ë)ì;|O‚bpÔyE$Sõ_«Bö˜ÕϦ\<^ÌDԇˆdþ µ‹66ß#%r&ýtέi±ŠI"0´Àý«ø•Ó¡»R›š(4™EeQ!^Û³¯Ü÷§S_ÂtŽÖxïB”|^ÑѲT7hÐ#%cÞ**Or?[²TŽ\bûD…Óç·#þ-MùO@-¥¸•ºŸPÂÞÓž«^’¨¦–¤*Õ‰ LÙ°¡–è#)7VÙ†Ø*Ù»«RÝÂ(8ÊP=égE&'ßïø›sæ×Üл4¡/·xúbo1ùã¾p‹="ˆBÐQCFã{dÅBÓú™Œ‚vCzI	ÈÜ$Öww²XÜ2×#%ä=çé,Í6#%恛Gúɂ…>rágã«v#.›¾zLH®A#%'À~¯,šÜ~çzâ[ÅníÃø§…ׂ@B#.U#)õB{kçµIóåx5¤%½H#.Yò¡Q¢‰}zÁ<KO§Æ/؇”/©þ}GÈËã'¹‡ 8â»Û>‘°q÷f®H¡‚E`ýç ‡ÎÐ+‰»SÚl>¨=ûaÊcq³§ù_œé>A#)UNQu1ýÓðÔêÕڟq´CpñÕcØ©ÔEJH‘ÁÀl{º”a2Z5Úö¤Ëw>ŠßÜí<{±£lxŽ"XVY—#%1ØuÞ•?˜¼$ ‰±Ã¸ò#.#.B)b‰õA5ø9‹ûKuaت³M]ú.qC±8=ßnƒk»€©cà¼ùR’21 :(rxC^ðOkUóPùú9þü~Üýe€úíòÕGÜmˆþcêÀ'Bt*úځXP›Àø äÝ	~#ôy¯¢ÛÀÄ.¦”=Jd YˆHz0Œ’I=€O1õ¾”#)Ÿ³BX¬Dsl#)#%Y"'§Ãò‹øÒ)'Òt¢1ÀÔÐhëä~0Ï:z~ÇwÉA‚=Tϟ“¬j-Ã[[jxû2¶C؆73£^u!rvæ'h…wý^¨êK)™­ÿû]'  Ðxýa›è¾ß†B„ M»EaUùc;Žddškè²46¡šƒhs¸‡¬âNp)»›‰¼4–E¨râ:ûMÿqÁÈÄ£Àh‰]¸¨^-)¯%Y³V¢"R>RQÀɹ³öA.&ÕT҂pᱬ*蘑¡)—úéQ8ììkP¥LJO_¯Ý!˜‰æª#‘TJ³Ž¯^{&y¦Œ…®±nFÙ¼Qlma;f<ƒcÃѿКïÁȊdWpÿ!Ý¢e†‰ ²*¡öxXl¿dõ§è:K±,j¢‡êàr.ÃÒÂUi µ‰bªH’´êvqWÊ·—ŸIèDïˆw™‡Ë' :UÀêÛºr#)$ïAë5Z˜vþ4¶o#%É]ÄjªQ{Þϓ½ýO®¿6ŸÇõx…»OƒnRVfØÄ#1JüÖþAý*’}ø-J¦‡$ÿ¨§úõYB¿öXҌ9CXåå¥AÁEH³²÷/ƒP™¦.ڌ»cUJJ­À4ø|ý]}ÓÐwIÛ<­l¼øQÔ¦#.p@Ú"þxŽ—Kç>àDô¨–þ_<’ò“[a©†Å2ö;i¡î"½²…Oh8Œ}G¨œ¸œ~ÿ‰Èã wžb±•BŠ ”‚Q§ÄNÔÜ}@cõâE#)w¤é¥9ùŠ#)儉Ä.¹¹ž©Ý¥Éx—"ýO5Qôˆ.ôµ{²‘§¿A³|Ûπà{ÂÇ°¹`±bÁFð¡AháôiƒõJÐ5¢ÚZdãѳ_à%±?¡ÑÄ6ú¨wG¢ÅàØñQý3x#.j\¯4Öóĸü‰\qš„ˆ#.º¨-Á#)CºOÕ)	`ˆ û“ã``Ø©n2)¶mî†,{^䮳޶‹Wå[oˆ¤„‚#„Jj”"9•ÈðCðÅQ#)ȄÓHÐÔµøx Úzòö!ÜfFÆ'ovg~F™ î$d„R+#)j´ƒ©…#%s¾´5iO ûâS¯i¡L!Gƍ%’‚ƒ‘t‹Ah0"üÿüۃ–É·7ؼ-kÕq†‡—²‘/•§:ª±Êøö~—ží_E>ÆÃd#cD¦eo¯¼ÕõÍkÖñÐÚ·#4¨A#)–ËnëÏ2ëSË®xKHŒwù©À<~?£+ûÀܛG„t.ú¼g€zŸ=ž¥#.#.#)«ßpÏØÌEù‰#%–½'´€X2O‹¸i5qÀë0é5¿^…*È~`iPÒëBÄST1@ #.ˆÒAV–Q³bÒC={œ £@g0Þ¥…¬„îo𪦻8:¶œ$ðÇo,k§*â.áÁ~Z[Ö4“fäè؟–}4RMõº6uI‡*0#%ÔmJ:ñúµ”kêˆVÁàÐq⎧,ç¢u[•¾›j2pD¸À5˜†á¦ì-œÆÑ븏26ip•ÓU3ä+‚X{ Dø~ÛÊ®-Ý5R•QE¿…`©þ?_¨úR´ª¥<¼ø`SÙ½ó¸| ~¡¦ið#)¯‡ckU*ˆ…ü˜Û?Š&ϬZii˜a¦L0ԅáa9†õ(õ,’¬’HúÜûX?^#)áÛ«ZÀÐ0ÒÖ©‰ƒ2¥¡ãd täBŸA·yïßE!ñ`CYtqÅ# ¢9c‹Š˟îQ!Š®­J@pP†äтŠ|€¡î=#%uz=€ýÜ‚òa!7VÝhò:ŽÔ1B#A‡O=|âPÇí¢ŽÀ’† ü(ù?,ÅéáñìWÕËûá!¾\iNöÀF5Ì}ÛB0­‘Ì;â	‘ŒPRQܞ–`Á•Àd‘aŸžèÙ¡¸Ãgc¸…ù—Â}G۝ÿM}€Ú±þ$¯Ï¿*½!™Ñö_êÇ7H‡ñ‰Sû~gÇS8:Ãє×"ùÔÓ%ÊAó)Uhª='?ñ^ñ6’I¬…ÍÍ?ŸÑӁê‰øˆWéC¹A=¾Œ—f(¬`¸E&“ûQÌ·•Lk‰8z„‰1ˆ’×»e „A þA @\‰©Ã¦¬éù‚Žî×ï;cóÆP9ñU¤R– …ÅÀ`áAøÁØlwfl„HG%rO1ü>À±ÕpÓ>¨\8lë5mi#%³h½Aâàà*D#%tùýVK£SË`ºƒ~*r_F½ÍNAÈ9†×®ù7ì’BÊ-ÃóÙM @ÒèwŠ^x9Ù9`1S§#%0óâ%rˆ¢¬;Ç¡@@`ÀO¥³Ú¨Ã_"›|½~¾HV|›UB‰³‰éáÉ9r	TÈŃÕÂ^Öíý½÷ÈÀ­h¶w}…­)¯F¹áN¬ý—ü®'øtu©}lG߄ã¤¤#.%ë|~[^’ERD҂˜v¤1"m0þò$&B'9íD(wblNv_ޝñŽq8F¬Á~zwj£ë:&TÉúI¤x¢¹Oʨ´µ±´±2ía]\7Ëìį̂¨kŒFÁßØ>¦nì”ÿðí9oîëÀë4½^đWiƹ¯Å³.ARa$Õ*‡XÎD#‹•I‘ÐH^⃬¸óǖ÷R'8,€:€ÀrÊ< •ÙmªÑOðëƤ’a³ZªVGhl6.—MíºÓ$tj¼ÉP·äEM"fu¯kq¤`Bd#)ļmRÄ”mè­ÇºÍ炇Íïóª#.½øì*Ñ¡±l’¶•[¯£q»q8½ZŽ“B0‹¬¦P#òži«#%špr£êt!FÉНùÛ³r¦PÚuŒÄ{èÁDžÐIÓä5™?B5²E‚Š\½®!'mÛº#)yšâ€~4û>yÕåáÛÖazågüQJé¥öüúý_ì3ﶌ¶ÒwìËx_T=ê¾Èlotð÷9ñîAv/Ñ´§O)_(#.ž%EAǦ,cMX,9¢ÿBO«müþû>³ç–Œš™’Îg3»Á›<ÿÛþ+4ìëfñ`9ÈnúªgÓ¿N¯†pÍÇ~÷Sz°#)—Ù¦¥éÊ#%5	º-/BÒÌ݅‚‡#)ÀàQœt`|CeÔßëG,ÃjÐg$ƒH|°@ÐÇs‚æ„,…€èJž>Þïpuòfø¾´5Š1úâ29nˆ!"Æ"?»˜ƒØ#%]QzÃXð^O´Ç°¡È/@˜‰h*<fç_òh*þ_Sqôf6O1ÐSÀq¯pò‰¾-Ž&¹Vp'Å`ÿ¯3}àô‹wQZ¤<Ë jbظM®ÈìÁ³©¸ßxQzÒK!42˜jÓÓ`¯ÃÝðŸ$có¿ç¼û ["#.Ó¢¨²i¨©tS`Û¬+$BCkñšfgÔó{#)2MBXƒé{›o»Ó|és¨®à…»±ŸòTg-Çs95¬^”¢-™/¯ù~ _³–´Çîh%@û#DsOZÚè„5—kÓõU‘X‡l$–o»fð€°UŠÄŠ#)ØSÝE%$j ˜A»,QHÁCîE¹²Ñëðó8yJ굇Ñz,ýŸ¦Ð‰î×Í.@]Uù’ÁÃڝ“Ô|î{ÍàÊ#%5Æi_wO²âî;áŠ:þ	MÃöyQÇ·QPQyD*#.Wю¤à“8?O˜’){-øŸë:îu“™e¶Œø"#Ö­µTQlllbn¸ˆI"kËôIDÅ®w”ÖâþùþŒr#)%ûú‹Znò~;Wڛœõ€`˜ƒXD4n³ò8‰îVÚ£Iº+׫Ì']Ò¾;¤Ì¥¾Î·µCQ$Fæiñ/ËûIþØÜv+˗uBSAÖ ]O/ͅ?%¸üŽì‰í›'¶zÍ4J¥ò£žM[#.k΀´“s”ärYÈù½¯aÓðìq?AP#%P|„¥»> ôîë‘?#%ð‘Tµê!=U\øµ0:>ÞzW'ÛDŸž0ûÐ[æ<G·‡»OyƯû4œ}e5€Hg‘Pʁ8ï;¿wŽÖlþ­¾èAY©TÛC±öCðGOž1¡óôÓ2l?*‰¥ã³5Ö4¡L¡í,Ríð),H’"D°AÔYÚ°éƄ Õû­«û¡Ðlj#%݅ŒœþÞ¾)EšÔùþÓößë×ÏöâVH‰µyív÷ÉZšù„*[F$Áó>`r¹ïC`ZH2ŽíwÙؕ“©ûïr0ù©3"`<Þ`ƒÁÇ8Þ‡Ô£úut/`þjà%Â/ó:+ø¡ñüy!§?Åú¨Nçõh†84C÷4d×53yκf['”ÎóÊÝ°–K-°dÊ°Ÿxɑ‚“#%…FiºÂjjù	˜æ‡’+¥B-P¢°N„˜ZJ™ŠYVTóOö	µ?Æ|¡š…úÆgï#)IS[1׈0µ?#%ú1F÷hpˆ¾ÉHÚUXf°‹ÎZÔ)݊Î8ÁpšjÕ­Á½1WÜ0à€íÄc-A¾è‚S"Î%z–ÿ#)¤«Ár±OÌïa’ÉbS þaØü¹	þÄ×Ø?šÅљ’`$fWÄVk^6|©÷ì¯Þj:Qz±bP_{„_Ñ/Ld“¡Éýg*Š‘ù¬ÏØÎ]6~A¤Ýëé½õß@ûŸn­ÁÄ"P÷ƒB’Ñd´–‘fœZ{:ÙóîQÕþ[æÔÉ9?y •D@©^¬À9vog„#%Ï{N#)á	:,ÏÜðœ#)Á͹qÀ*Âë´µ¹žÚLd M/'˜¢¢ð9ÍiüØüÂ'—¡Ø:éòéÞÁ6,,ƒØÀ^;ÅãÄP¤u†Gz;aXn»·â{lýTª^#%As¾…F Š¿!÷qâ)²I% ¬üø9Æ	YWcÑ<þ(µè{ÜIxrºb2†BP·^ýj &›‡|1—ëeՕCú¹Ì€y¢¹,²°ْƒ+šÁ)^5B®†Iþ_åv`ù#.uõÉchsmã˜Åj),“.\»íæM2>¤ànCÀ¤ppÑãìü êmí:¸q´pÔÔeùܘÍÖr	7´~«(Ã=³üxÏ#)N†cl¿Rv¤ÅôrXCÉhšÚÇì]„ØÇçS¶ °W‡‡@éXoe.—Ö&¢¿Q=¥ÅÊu¬GîëfáeÈ(tŠ]ÍAzÙ0»'[ïJåw¦ËÜöœñŽóYe&k$îúßÉ'°Ïö	Àƒ®5۔PV¶É;7ê!x<9ÑïDAH†	è#uÝãŸt_Ìï9Ʉ®ØMßôW^á$c›Ì¨v#%yaKø”¤ýE¹üý#)„ÏûûjŠ/ÛsœxÁª>#m?ŽáÞùß7كÞò‹à#)èðüz[1$‡q ø#%‹xA}ZFóJý"Ö×»”#.³Œ ÷dâEm¥Ê¡U—œ5ùº$>ËÆÃGG×xƒw™š¬O“í¶Næ#.¿÷ðâÃð^؋ŸààëUpß ßllãháì~•‘³ôaËhs盙Ä#%Gŀà(7Rº"#)lïÆ8òà?k¨=]]^Õ±G­¼G[ÄOaz<ÊÃ#.‘@Ìéü%µÑ?$ýíüd(èáÂæ¹DÝúŠ:ß½|=܂ÒåÍpjÅáâ2‡2ZðÐuÙY="åÂAd¡ïPp¨ä®¬Ö"øNZp‘ihþ«¦•>VÃ&ºRÔؽ4#. Ã#%Q®Q¢k¯Zìç‡HŽwæ´JŽs/º^…M&D#)p£ Ã:¦6,$*WIñ0#%li¸U…:¤§}xDÂnpP¥VF´ëœ·\93¯XÓSΠåÕ­Ó4¦4™²™{9ØÄ^#)ÿdcà¼2m…Â| i³#%<¾mظ¾Ï"@Ø×:-0ÐÖTxß</“g|^·…«Uê—JöÎE²âìÿ’;×}<²÷‘5~0ޗŸ.ÜqŠMäà9;¹ˆnBèîní²ÄöAå:îBéã¦C;[j_Ž‡O[§¶8ÕC’Õ€‚Åš*f¥&Ù©*-öñ™âœtå¬ÑzÖÉ®$¦Go^—&G…«ôÕs#.¤[ïÚ¨2ÖC#)y´¸­ï¢Â`ad²ÿ<À#% £ö÷üCÞ~¯®^ë7# ÈÄT+Õ՝^À¾£R¨//1Юêv¦hs¿^"#é¥p–5¡)ˆ)‰?#.Ïi6ï›}Oå6Çގ¼ñÙµšó$eáÝ÷g#.J·ÿ=õ—Ï]ƒÔúsyô»×NdÏY¬¨U]ÏZvÿ†ï~årŽŽÎ=¢14ñ)O©	6ܗ @ˆÍo ‘#-k›Ì¶Û@mg×H¯Dì‡è…!ø2pBrz¾Ý;Íøšz{«¦š†ì©•)ÅME´J9èó±}øÿgXÏù¸P~‡õþçÕíÇgehïÓÆÝ1‰z¹m¸½öp®±ç"óöëòˆÑµqÚ¼¬£öǑóVl3,øÖf³+åkß#%5øf€>â=ݍ,Ǚœ²<KñîO{0cGT´lþﺻ3g‡·`݇•¾½öh©!L<,èMJ!œTìÛù<‡'í߾ݗ±D^Ó¦æ6뉹©nžÿJè-єc±_ª[¡#Êf˜ZVÎïl̘Äå)Ëyzn¥ÂP9À2Eô ~¶ZC~½–`­w‡R²wþúô37u‚]ÃÏv˜¨㇉^6ÁɶoåkÖ%wü­³VÃMÓ<éåØVM©aJC¶›žLÂ4”)×0«Qäœ5e…kœZ†²J„ݼxÔR#’‰"oU"„hmì6ÙG$·r	Ht‚úùhÍ12Ö`—Žf•Ì¦8Bî%èÈGÀ„EBC/¿!õáˆØŽŠ,ðð"’2Æôyª=τúþÝÙ;öÍ¥zV ÃüýHãþcZ2^“ÜQX~('+Ÿ¿ìóè7hÌ̜öÄì/:áR¾¿mºs‹"&L ‰ÜZ¤üš¿WeÏáûÄþÿëþgÀn!üNäÒ9ù%àã|#.ñªª°ÿqäÀº˜íÿ…K®€Û¥Õ®‰¼­›IӉÈÐù̽ƒÄÍÔìÉüáEۛ]妐’‘##%DÿŸ;aý[˜'@ìÝå7<Jj-9#.·ƒÉú6:nPÂ`Ø`³Yê±$—!è¼Ã٘£Û$°dÚÈMËy3ßau$F¾iTUu)¯¨º[|ëÒnpÅ{'-£À5+ˍ÷uރëL©	GP©s®!DO0£Ìþ£c¼áþƒ`/HŠ«=*•ª¥Qª)°³°š‡S!µNóm€¸J¬umäÃFp”&óÓú“óý5ÓúЧ0¹cA(e¢=Çlâœ<¢¬Cñ=&eݺÑo|¢™mcoCÈ1ÉG‘Ñ[*«AI݈h֒´ãU艦N“O‰ºj¨DÕN,‘Öu~\Ę`Á˜ÃA¨kA€±4#ˆª€ÍQ¨3#)œ o°£•8è7aHgƒ0¬	Fe…qW…ßÅ/‰sRõív†°43ÇÏ3ž#)ªŒ’ p᮳’V	p·8fç#7#)¡;ÍJ v(P	òìñ¿~¬ÿi!Nœý\\ë\ßo¯žçKb~PŒ<ÙhˆÐ7ûãô;¯ÍP¯6zû6È°<{Z…Š’yܤ“t*ª†M*dX£¬Ä,T£rƒ "P0:îb𙯤$K#.×ò*¶î[‰+Wøq‘å}ýàø·Ä¥e,Š/Üß7MæØÖÊë7t„”P~	TK#ßþgR{•óS€xI!*îÛ³å	;ÎàÈÞþÇø`Í2hyóßÑ4#%Ái¡3_ÕÔÒßâ°çîéÐÕV+åÀ՟áÀ±é#)íä‚Ù#)ëK‘c1úHip14‡5$cm"`ŠÃ•‘ÂÅëŠÛV#%xÄAЊÿCoêˆ%7q;fá™ÜCŒTðmú#µQ÷Â<H^ÊÎ0ìú¯6p(6«ì&yóˆÑö†HÈ"AOá*|Í!¬!êÄöøñî¶#!çòÐÆuۇ‡ŽŒ7 "j^	€ˆ”'›Û»mØ.}Çãm‚­Áövh×oº‹Ù¶ð<—´Õ(Ï2„5ókÈ»]f€8#)edҟ¿^è½,*­{ªj9Â#.ae“i—}»¦-#%ŒÍŽô¹ÉؘL䤠ڽ>ºN×Ï·lÍ]ÙUŒ#.hÔb-vÁ̚ŒDÅ K(JÌ«±˜èQzÛÞø4š©ãxªiÂlÉ\Ü89á»E)­-Y©…’M³ÊÇ·®7Pr·Ç–η38‰ È6ÔÁñ7pȅ٢Siz7N4-Èë(Þˆjz–÷mÜò#)†ji-Žó¨…6È7?¿#•3ܽܡ€²pN¡ÐÕΈv—^—#S	œŒN%܅wõU4jëôúôsÖ‹2‰Ò3±rïÀ%'!£o=Ü2÷ü:wëàHC]¨XDD˜2D;O¡˜±èãsצ®-K¾Œ0dz˜›z)E§xO‰¤37:W#-ÀÂêc9„…áf Do2 \g9­;#)– ‘K]ƒÍˆÐ&)eéß!ÝÚ¹@ˆ1ØèsèÓX,÷¹Â×x_#)l8á×V•9‡»Ô;Wa¹.o²–…	º=€$8‡«Öx¼ǖÒjyJ#.u@Ù	ƒè…£s/Á×ræfE¦¦ÛCcÄ4e´š,%²H³Í¼Ã|yÓ§ˆA³“IéŸÌÞ½ÏÆæÌ sïos®CÈÀï÷¬LP潘C¤øè#.Ž›‹©<1‚C†Ažó¸™†\GÉÎ@0q(*W Ò;·!¹™ZkQuM#%oÑúj¢º”n@©ÍépSY5›1&¢ŽÇ«·$ƒ´X[‚—Â)¹%«±á¹)¨X8(Cµ=e]%ÌÜàÎUÓôq,LîhÑßᰟ†Êa&çÇFf6´n÷ŸtÞ(ÓÐÖ,æ•d¤!̀i®u½o5ƒŒÇ&U·)–—[¤O#4²/nщ	Ҙ.²kTȜ@B@a «,<ÑÚ3—‘() °5šc#)¶K³.ç„ä±±¦ª5"·QÆòƒcbw×y¾çÙlnUÎäL¬d͆(Š'j¤hZNefzv֊ÁÐåÎm‚¼zóS0J"¡LÌJ™™yŒÌÌËfdUfd̒UŽÙžIxK÷j¶Ùžìé qa›¾¬¹ËCPŒPY °`0ô‘±´®7,ŧîòߤՕæÎìn9†/Q1“ÊèËwç·Ã¡lrŸžuTF·å¬`ÓCò)™#.ŽÝãh ŸŸ>ž«ž’ÒËuÑq´Nkt4#Í3¤º'Æa¬ÄÙ3=ê™FC¾hYCS8G+}9•­ÇÏ5®ÍGž˜AÏSA¦Nݐ”÷ë·n`h%Q;>=’î1bȔµI.©j’IØÁ¦ú”ñÚÇëæ|»]°×ȳdQçµjF¥„j\Bř$¶%ôæ‘ÇN««ã§>7KM¾g¹žuTØKeÕÜ!”ÍM6áØf#”ÑJ#. ÛÁ¾zN‚Ŀî#%…ç:N:¢¢­:æ&¼ÑMUBî`ø칗WúoÖiH ©;^ÂÄ*z—áå‹M6’zZD|hktKL	ŸO±IzKgÀz·nœpkÂkËlNzýxDôÙ¶lŒäb”6¯QÃñÊ6l8“,ìÐæÖŽ‰SdB!÷­Q«6MÓ´è#)8›CMä$dؒ›o›;œÚКZO#³@ÚM¡£¯[ÛYrä2ŃÏ\¢ôMXáîOi¹HMN#.4¢ˆ½2N&fNw«¤M!§±Ú2gΠcB˜M«$¶rHF³ò³p3¾JJ,†PŒ”F›¡Ð€r¹0Bƒr’0Áxb°¾ÂšN‡ERd]ç†s3 :;8œ8ø’Ëp„ ³,ÈH(òDy³làq뀺Ó3†CRC/gPJ=£p‘ÇDÚÚêƒÏgd	ðyÅ®Š5¢wx˜ÖWþ†"ûõ¤`ÇD ¦R¢PÎ$d#à<Ò;¦º×x;ã	ò‰§xy`#.E!SNÃ6œê|þ®{äL6²Ú†à€s6>9¬àƒ5ÀYR&”#.v‰EKµ#.œÛ¾š É/²œñŒY$±™N ©«ܧg±, „FK‚–ȹIMVɌ¬Fx»3œß#%ϒnMw¦mÚܤ¸``§Ìçìl þJÐè™qÚœ{ãzNïSû. ´>å#%%NÐn_~L#%X‚$D‹ ¦›5LěæßKé&”¯wá¼Õàr䃄͊Î&HîàÄö«M|þ‰-nˆÎž m#ÐRKÖcGFŒÌÊ‘âXT.2s#)´,mt¡¸¡Wå4º#ƒžÄnF/·”æ/Çs~T)O†l`MèÈëñ덄C¥Ý¹+ãîâ—.DÑEP‹®Ò„—=¾ÍšÕÄ5ŽqËÊ´6¤¼Jþ~mdœO‡|¹s3¡¤41ÛÜ c¡€Ü׺è#)¤›‹*É&À%·mĨ Gœ±@PIúúQ»#í0Lÿn‡Oê#%Åw®ŽZ#.)óâW«ÒQ”Ù˜@´”Èb«Ú›AœÝ7	†ºúϼ´Ì“FÄj?aå¼ôŠ9ñ¨>›»l—Jˆã/"èAn„}„Q_ó)_gŒ~4O¥Œëwÿqí ь‰¸“¬;1ž·Åq^§«Ó¹?ë>Ô--/Õy\›ÊLrÕ[û½³»xœZJžíA¢óÎîÂO-1ì¹xÑ°Äo‘RÄ`fÈvҝ‡¹#.!F¿èz#.†¨¡¨SÙÀPX©T#% 5¦z¿Õ¹‘Û­ÌôþÄz?åCþ“ëeaÿOý2©Êi4å[<>$(€ ©I$"½þ*?NžÍ®Ó4Y›$£;VþjٔtôøvXò¥$5}¾%;}vnEôœiϕ~Zý«ózº”–¥´ÉT¤LLUˆÀ1‘ì!S¦ù9ÍC#%#.¬K°¶P`¢~?Ëß¼ªÅ±Y÷ér<]©~«(%¾›/»û{¹s„í`=Q©1pÎôwXCôbŸÛ$K°(j#%#)(nªT#%Éâ;šè¶Çr׺Í^¸Wí$†&Ôçp*;Y#.¤È;•úø+13,l`[%²M	#) }ùž$$Š“îŸl¹Mò‚F*X3WJ‘T#)€íF ˆ¡é¤9ì#.Łñáv²(@¤Ñ2ϙžJ5’%­Å.ëðûµÆNíbèŒ>·*víñk뺊,FC8qdšÊÐÕ"†f@ÿ{dQºzzÍÐØûì}!‰¦*šN\º(¾=§1Xvž7dèÉ_ŒJ*¼½†	-‰9 ÀÌÈè	eë§Ñ	2cSÜ%&d ys€MÀ7VÍ5Þ䛄bö…ZŸFUÚUÎÌyŠá¿~AÖ:‹àtd8 ‡tbŒÏeÎ4bï`EWdE#.‚H„¤(ú‡a^˜#%î‚€È€È "#-Iþh*4ŒDÞcÁø@=ÝÐ_…öß[…Æ`¨Ñþ'(÷ÕAˆÛKT,”û€BÒ՛8•WueÁRALH˜(#) €Øf#%Ép2$¾O¸\ìßäM{"ñ^š”’E½îÞ=kr½›{7.fîí$——w.W5ÇíÞy·‹›¤s£º¹¹¤¬®ë’}s¬—œ‡_8…¥	u)Sþø&#)H„ˆ+úŽBdY!¯/-_³¿ߎ«|Y€Éæé·ô´K#%£ü$OA‘›Ã¾t†±ï¼žŸKüøýåk•EEsÇKHtB†™Z{,¸x給,e´‘ð0ø›æàjP‘ƒÉd@)`ëÌ]Œ°Íˆã•Ut³Ü-#.ˆ{’‚±CàÓF+íýdM1úú­sþ§nͶCUQ¶¾¦µ¿·{ŠSLÅZƒ3ù±1ƒ†ýãÏÙ~[¨<„¥YTÈìjÍeyã_9o<ŒÞ^\‰{\À°êˆHS#.cʹÆ	6d2k¬‡±)&HÈ#.Ì!(aCKhg²•6¹˜Ò’ã`,˜._ƒ\Ç¢¡Ö›w·RïZø<#)èçö$PPíoì²?ë9íҞŠ~ƒ„&ÆlâBlñð4Û¡=gÙßò†Ý†’ÀeZ¬nÛÛ$ºöúIÓ¶žnCäº\ÕøE{^ݧ^|;pdqOù·lÑ|’r©T^UakZì}¿âs„’³pøãSå^[o“¬ΠÏߝít§MZÛNÛ@(©®'%•Ð}ÐWãèùQJ©U(¤éëå±9«(æ‚iO*Lé{ۊ<¢H(43}rA>#%ÂÌÈYHÞXEòÞó9Q7ƋUH°<K`Mº#.1°ÃÖ§íª¸R¤P/œ}­ùÜ4B)´46 €¤07?o—à=ùü¿¤¯ð–UJŒ$jŠd‘EÛlބ ÜÚþ±½¯k~³1³jÅ­ƒ[F-c$©D–ÅbÓiZ³m“R¶*“U†•	$Æ „H‚§‰¹$Ý>}¾R¤á#)څ{„Û#%dDH"22"HñöëˆÙÇ#.AÈ h;>í60è1¯b×}‘n¦¬aÎÕc¿Ës…X#)´Ù3ºÂõÈZ`†7¹óÁ:ÁV]Pö*†*Áɋ)ӊhË+œ¯ð­øâ‘Wˆ†pIà“C%hâ1aµéƒ,744”dZ€Ð֕ƒ	|’L̘³€Å)W‡9Ó±nª;D]zÁ(è€:Á]ñÙ¯*þ鸚j¨‹ŽV´ÝqR<£LD¡@œWïÌcKîø¦øÀs”Q#.ªSX.{)Œ¡("	¯ :3á§!ѐ"Å ÈÀl¶ûùsTi)š­Í¹²W-vi›e¤ÁQQE ¡))Ed‹'Ï3íž-cEaãsLšÈ#%ßXAd•±Ð!mŸckjó>¯fÝM4k–ÄÁÂáW¹ãÇAa<Þ$C}x‚t‰×v) §åƒ¬Ð÷Â#)À÷Hz¾ÎÏø}¿Gíü~_êÿ-Z¢yAòœ/D„øŒ³»Ì¿^(À”ÁªbªA/á")ٕÁÄЄBŠ`TB!#. ¾Ng‘¯ßaÔråÂÆ*æäÒ% ©þ¸ º ?!5}9YE>f\`@ðb‡&Iûïzæ‚Ûx9«¸taª”çtÿm’ž<¨ú%§^ãüÊIùhÚÀÑ6V ¨eÃÖiùPJ‡§Ž=Ûs<NäéhøvÈXq(JPÕNËæÈ#ïÔ5=Ö$©÷-RrYÔgéŠá“h,pbˆQELB]±‚käðNG¿™Ç²Ž’#«`àn˜l®£°¿÷¸ð‚µØ~Ëpµpˆ;0´v:~ƒ×µû o;BKém’8\œªÖzŽ§#ìz\3…pPTè.9Qf6veÈUQx<	ƒ÷K#%‚R0ù;äCØ}4¯Í¨yåD¡¢=ÜR㟓÷Ӊ#)cÒCcËLÀßn¯ôa?ßsXÃH#%Ë]]=#%2Cœ'#p>WÌ	Ä2!fï:¡j UD¨C¦þd8”¸°ÌÂ{©3â^®ÆNàÖº<i#)¡æV˜F¤põNh¥*œkøæ÷³ŽxÞ´±6)ÈȈÅÃy OšDÂÇø˜ÚœTNþ¢žäHÁ6€!`õ”•@÷‡} 	Öû\òCÛJx@CW>Èßéþžâv¤¹W_éŸêf¾!ZŽHDKJ˜ÁØ)d?‡ˆüÅ"0_8UQ*„€°F$yy~Vˆá„EC ¢±;ò@	ÝÓãÇaN9PXí•°·‚’û…B0„뚾–•€Ø8xȋú<jκv#.¬ÚÌÀ>@ÑB+’È&P@#%ÀE&ŸÜWQeê_”xÙ¢}˜´DI›uÏÚz”:¸<3(bEHvÀ:õÙa)]RR¾‚°Ëӆ7V˜Å,7–åx¼Ÿl1ܗ̦—Ô,pW„	çg±Öœj™Õƒ¤DVm„ÚÍTl ¤â±«ɘخ—ø´×J4O„~‰ƒˆ;Ö°:<=v¶ã§jìºxã¬v×<®}ä¾ÙäÇBËÝöiu¶J„Ø@—(íÃíŸç­tãyéµ¥G^=ݦ,ì»(É»Yé}E׿<{c*[#)Ï8æHˆ9x–ÁÅôÜëg^M³µ\9æ>;ú»‚­›ý1lj­ß>öuœˆ|o}HYJE¹cŽ£Ž“#)*v¢Ô3Ì)ü£v9s~ów·ŒVÍMÒê<ÊÄ0(ô4|>œØué¼úî1T&CqÔó’Y1 CSV¥¨W=X¸GLP5¢¤MyÔ( ƒ…ôj	—9ÖA棟i#.ž¢û…#%!.¥ŸHŠ™u^kE¶óåÅìª(Äð™¸JÝváÚäõßߣ†À	TÃ#ÌýDvëÕcâÈÉ`öº³ÂàaÃÀ„„+¯8`»lüì‡çNˆž‹ä9Ýýâ5ŠèuîZ8êÔ¢åóo¶¾=”&øB,Ùã¼0AÚ0G#ÊÔ5[Î:Owd_]îÆMÛ¯Fè3`=/hƒàۛāÈÕ&H]«HMœÙ:šÌ»7Ù#)Ú·Wžä]MðŽz´\tI¦<ú÷,Ü– Ýν”lsÜä#¡êP¨vÊ›œ”ëȋUR‚Æ#†C³³Äå¶ ˜Ä³4Rünü!Ž­RŽK*•O]b{}Ÿ-OAéEhõpÞɓ"!u0Á+Ðédšž9ÓÙ]k„0c¡v)‘1Æ0RiMá¢DW}ïsdŠÑ	Òb§(]†ØQÝ:|4oà6(¡„_ðõì7ºõzsôŠšúAõ÷4CŒ”9På+CªI©£ßYÆpO»¿Î'·RÅ¡´éLJM9*õ+§,_“K½€—­ë–ý9²«ÂȍFö@ý¾ZÔ 2)£ã»OFÅå•D‚øD	:=xµ§b¡8ÙÛ@òc8Ê`—‘ÎÁbÕ@‘"ƒ[]k˜¥††l–®›vNêêY¢h«M+]¿œ·suÝA‘„#.刬mBÅZvʂ!BÒSII»¥»‰Áq+4—½Xát¸¢¥ÂE`‰dsn˜a­$F¥±LÂU™Eµ¢ßu~-o¼¶ð7ÞT„*2G:ÁbɞPn«iÏo"ª$Úú{ÏÉõÛøÿ‰+­ÂWâë¥"ÌiԅŒF’zŠ(=HQU^wMN›-)#.2B‡°9›„	dÛ>󲏍ßctÉÔ®ˆ†ä>Ù"’¼ãɊQžTê °¤“vÖ Ó%šy¤ÑíJ·vÚÑHÇšÎ!EkÀ»šBˆÍ%†¸ü+EʑծûV½h#)4ºô‰™Al¯Ñ…\è€ë<B¢ZbõU~n“Ë.Z7ë;õ‰ØÁ8!>8”Óɯ*˜É"6µIuµl4D9ˆ€¢ˆ¬e#"ӑ¸Ô!Q4"ÔD#%À’ä*,K>&í%s¡JLÀ59‰¼õÐÇCq-¤¢áÀâF"H5E@%0#.BÃù	–I6͆Ré­1#.DÄ#ñ¢þ[‰ë®åÝǕq¶kß"ËÞÍ\Çà·.vñ:ë.Kòd½¸ E1¼òM .*¯ÝÅúr4Nëre¥¦;MQÑ£Z܎‘’)"F"½Yîۓ³§øV‡‰eÒó»‡Pím¡ó•T’”LFB–<"<ˆ6H„ȾW©4š34ˉ‰[,¶ƒTŽ$™74*ß ÌJc÷¿ðÜÈ[ì«îÒBçÓÙïòî:zžçã#.e¸š¡®¨ô.¾§–<Š¯h<‹G)Š(ŸÉ×oŽ9$š&Ö,EŠR„E“™çŽ”1Õ^vµ|®]U3šYú¾‡’©¥¬µ-QFÈoQ8‰L{„ÞèÇÚne9p¹$“œ uªB»:n=ö{Sg¥mÄàp„-Ý#.H5AGÁjRç‰Âöàéí%#³‡×—ʉ‰Àؼ¡#îÉZFÂü“[#%jsáÙñĒ…ßg:¦°É3þ|vÃ,1gRƒ‰9ø812’I!¾aôÛÂf&·¨Á.#%Gèìˆ[†‚iv#)”^<I3@Cau1@b_«ˆ€Ø4†ÈVÙ3°ÙˆXX)r‡Aänw%š¨È=#.è­:ç/#.€¢Ã ƒÁ K dN/òs{²•û3ãC–g‚B%ÂL0Êåx&E$^R¢ TEj#).žed€¦w0[F‚¶µˆÀe6Ĉs`2B5¬¸˜hiƒ"a‚„‹<Í-hŽÊ%݅〖2B–’úK€†°0Å*Àibn¤i5Êl5o®êëmw…Œ0	u)a‡¦ËvA—éç8yâûg„¯tGÜɀ‰û"Fü“m‘w2n'ÃX@XŽ¦ýŸ#.Œ\|Ê/‹(ÚëçAhìÃ:Zo´÷œ&öd9H}!Eð@îN¹ðâŸ&(3ê<‚dÔ))”ΞžÊo‰är>d—ï%¬—î#)uÖMÏÉ­Ž#%I½PÎ&Öê$±U´©«îÇ°`X¿zû»½=húÁ{x=MúÂÃϬ\zëÂþ^0ErêlJã¹cöôó˜:IÙÄ8P‰‚ÒlQPUJ „¡×<ûïH$’+ `èSš©ÍJÔ{xx¨–º° ,ñ†rÀ©aÎqNÈ9†mbT	FÛ^È»¿å—ÜãÞ/0™"ú	`¢`LQïL©x)Ž`úµîwø~1>šƒQñ,Œ`¤€st̸TlDŒ3ö2¤cm"31a	ö.²Ë²#)˜B$À£#%¢lRó¢·Tºíí³ÐÈB‰R­‡V	#%Â!œZ`Ž”Ž×qÉˑÓÀ!´^C¨(Fe—é䝊@y‹`³¡'¶ÜžÑ¦Ì0‰ánÐÿã„4ĸɤnªP8ô±°]0b30}à6ñ¤%ñ$#%Nÿ±ª©°¢d×U#%`G„Ç[ªÕ¦Õ,ÈÏ¡×d×Ù`S7!>Šq´àα޾qÈÚØm¬£^2Y–d—fŒ–ÄÊr$¨/YÜÀ¹#%€{ó´}öO%}'®0YéqYDµ$<õ©žwD2ï½Þ畘ÕŒšf®›m˜ j¢ÈÎBŽUƒMŠi?–ÌF=†¨¤TqÙÅ×½œÎ0aš€Ô÷Mi¹US8&¼ú–š‰FUìD HÉ҄`±ªÛù+—wjzy潖j6ÆÖT@Šƒƒ!ŒÖczõǵ,A£)àÀ¬­R ±è§V64Áb;¸‘µÑË^m¾°¨+\sýNëÃzíš[ìé–êÅp¦ªë»pK#.܍žªž#./[¡)D­Yœùg-¶ím¶¹ 3~”ò¥@«¾Ä$/o”uÎØ8¥Ö‘Æ„„©ÞÏ16¨Çù‘6Bp㉺vÓí¥«VnãÚò–ÛïKWÙkynÍæ¦BdLL`†º™·|m.*›å—	YG!#.(4ˆØ#)ð†-“æ÷(lt̲l2˜j†œ‡‚7­ Â؉#)œ¡‘“T›¡³ Â€dd,MD,TaÍE4³ôl¤†lÞØ+Âé®GC"dŠ!›c+#))„±Y5C-ïRB£‹œ·QÊË!™_áÉ7–Õÿ‘Î#)ñ3e¥¬¦„‘zß1›#[e¥^ڂg#. œÃÊ>ƵЙqŽ§}g=Qy‚]+ŸØ…SƒÄ)!â`Jë'9”D«f%1!²fæ‚P àpm¾»¦cf͐LÆQUoZã>TæXc#‚Ä‘yÁ4	u÷P«´¥8›…݇c0Ì wøQ!؅ð8MŒn&ò73›ëÄ|ÐB êã›ùÇüÌø§¼K¥oS-Ê"¥»Àsdî‘G…û']ÕÓ	2I,l9¼ bP-›6XîKÝ(O”ݲÖ{Œµ|~0܋†¦|¼ŸsáÇc`]ó'5£š}füvÕ,9•µnI‡wC#)2Û#òg´ŽÆù'¥j	r,>$°4!{nð:‡½½z#./Bëùpq1^øøØ‚À)?Y«Ýå̝høê4[N’ÇKE€HXºQvÂÐEƒž@LgÛí¥#){Ö#%80è³#),"@ª1&¢H\˜šlé’HæV0*¶#%"60wh¸ØÄ[}+`Òå#%h¼ðæ˜tÚ*ˆ°kiJ‚ ˆoa˜CI	#)ôðn8ÌE ¼Òž%Ç$iVúž6#.¢3 ÷ûÙf3~7v_º¨ #.m©àc HþÚmyYæßɺg¹=š©Mä°<7—²˜s’7=co«ùT8Múxë‹kŽ™ú̸¬¬[œÖ|Oõúâ‹$€(&Cåd™(}•<àCîdU‚ÍoÒ\ñmĖÚ-Tk^*6ܵ­ŠÕ¨­âÛo[ƶR@Z ¡ uÕáÖ`'""gÒ1цôOôœï@jYBH}l{ºÁ­ÎÃSè>£²Àâ,b °VH%2e,ڙfILšb“lZL¨?ŒêLÍZC-4©C%6%#.Miˆ×Û۔2kI‹$¢S6³B™12™’3 £B*ŠbR–gullŠ‰"’d²€Õ“¢¥F‹S£1Œ˜5¦)¶,„Ê&ƒ&a–	JŒÄPP‘©Š*h¤oŸ—Þ¼ 1®Îݎà*D|AÀbm@™¹øÌF:Ù=~¿Ó¶†Â~â¢zD;8BѪF ì¨_‰ÃÊb«"Ã3Ò£§,d0u8’[@gãÆpmLX¡£ÒXžPÀEa¾§féڅÞMBB£>Úí Ãy³c6ap£e»#)Š÷¹,á¡MkÓsVv„•b`bҟ¶\‚y;0^zY´i/à/*7®§×÷¡¸çÞÒ«t@ÛaŽVÖ1Ò$–+çõõ«Ý·á¯Ä±1¨mF’+%bÉF)6™f$aŒ¯#.-ÝT½›˜QLf©M>֜sêW™ðñU–b¸F))’W˶š©"™ŒZ.ÝXù«v¶ùKØæ(¼?"‘7zÈuÒ2Âu¤óÔysO‡“±~ä‡tïÏIĄ0MàHƒÖB‰ÏPÎœ6 ræÿ‡ãV’<S.ŒÌ¡¹jKquâ|éG§3M„V@ÓTR‘h$dHl`ÊÐ3ùS˜€Úªõ¸*ÕTvAåÖä®x¹Î!Ä,ãmpow~8"&#Þ7-¾Þo;aߣ¼8ó-,°sã¡ëçý´LS\Aà̏ŠfòUwwzí´—lçîCˆ<úôƒªn‰ÄgÌþnÏoó~³?Q„ìGKÍq{}4÷ÓoN8E.¼Ë‘¬1¿&ûLzXfŸdÞ#ÆûÑÎmÈ'é{̋҂]&P¾3tý5߅ï|Ý?xO¼;>u/¶h<©Œi7ËNa¸¢¼Á·’]	&ÜM¬/º”e5rü¨JzŸ-ó\÷¾N’…oN8Ba‘å~´’‡ã_D&³¡¾dâ"!UEÚOhÓ)=-PZeµÞÇEØM•}*tènK…Ëkȵ¡î×IZ<£šV8#%Ÿ“Ñ6Ø@üÜtèžùv7ggxš©"=äé*ß6‡@žŠóì6‡GM·ÌD°øÝô÷Öûßòœ­'4…I°Ü›6£H}~9tZ>Ž_¦ZŒ~ª~nT¼2ÊÓÚ¢X‰B‡Pœ5ã'†]w¦`•£¼¥ùøúïÞÒªGëͅ±A©[‡Æ½‘Ü;ƒUµàUÙ¡RWÃQc°…Ø	 ¨æéÀâc	g-úS"ŒòRs#­ØvàöÏ"wT3&æn»IËÛ§DWNÏØ0#T°­Â UBr‡ºË‡gdúîª$„OuWºÖ±õ:ìˆpâ„Ó"O©¢:21GjFC${3ٚ•¡Pæ­Xåy$cz™šÔiüÙjÞ«ùY¶]Æðæf9/:¸ÈE\Ü2ÃlämÚðY!†ÄÑ£QEMKʙ¥¬Ö°Æ©T°ÌlÂØ[rL›Z™¦h4ö]æôՅXqùL͹uämánò˜Žƒ†oLuó‚ýW]¸#%aÇݦù Á31š£òu¾!Z”ä‰b˽k1t&¶fcZ6c¬Ö5¦©lõÔ«îðŒÆÉÿiÓÑõ:¦ÊÝ8ƒ½8âáÇqÜ~^¥àÎхÆƌcW´m‚Fg*2#%å‹M	9VšNPüµ–k¯CïuNû“‘0p \±•%¼Áb¥úˆ­ZÝ´üišdÞToc ëÌ=¶š³p³¢j­õ)É·RSé‰äݘ®ÈÒ"à*ÇVd+ðµ#)10i«—o0ƒ;Wm¨ÄÉÖúâ̾AxɏŽ3¶7Æ<åîÛ2Pqj7Œç ž–8–{OÎb“:ËK+îäï°1§ã¾ÝxݓôCµÊ‘°v–vˆôëQ¥«RðŽ°X›e£u)ÔáSEdÉ6“Q‡XÄ9çþsµszßPwڈxÎtâ¼âqe—9Û^È¥¬^uQ¬™ÅãÕóS¾«aH	$ÏnÍ#.Ûm„=U¹¾Ù½ñzk8Î [îA;¶Ä-È1#‹=n$éêð%%¬iȝ£QŽo¤²XÚð8$‘³×‰Ž­†Ë±ÅTU#.*ۍðòŽuvÞ±0îò;o’tûpi¶3˜4ÅŽû¸ÛgvÄh¡öÄWðõ»<ª'/JR©g”ÈÙ#dš˜Ç…+Fª(iÝ?C3B6“„ÖI7;-s•‘âvÀnØÅ´…3:I=!Ú^²•t°kJ&qdÖ¸2L‘/_H!µÑ¥†øªƒCHTrÔ9¦ì~:jÕÊ<­ús¬;:ÌÎrÐ2<½âK„×Ä\Ec`åö‹Ù1i°æPÉ		–1f5W3ÔoÆ	“ÂãPîá-Ü}Ë.’œëThq¾ðëƒKÌÒ·”’á#)ç+'ƒ4›™‚²õë!T&Gæ{¬è¦K•¹µ•±³ÁÆ(•Ã¸„rŽS¹Å?³NK!ÉMyêmTs†@S³Z!°Ï0û;B#"Ir;`ß 8‘ ž3)×X 5Asq#%ï	‡d*mêÕÜÙT싇Zèð3bòB–ôg•Eã‡9‡¡#ˆQ™`œÃìå1iç¢l“ÔíŠ`YiÍ>š\^¹hç/YÊm‹–¤Ó(*.$Ž’“w«¦ ¸#.óS\m©„Õ}ÈvcãlÃ4”uÓs0°˜nXTȍ´;oµ[ºd'ˆ{UDŒÎlˆ±!º½QŽíϱQs¸*pŒ`ÃY8—¾ž(wCŽtÄQ4é$‹™JBUg귒™\;^7)ïpNUº´JI=Î2ÃUŒm·ÂsVߎæ0ešºo§MèÓ	XÙ«„âNuXqfÆ]å‰`›·Õó­V2½ƒ[ȈÁšy-2D=tÕ{5·2aU͏Z¦7ÓA7dt1oy“RBUIM“Ä<©C¢O:Ù=º¨ñðÎ:æç#.2¸ä¨%ˇ˜&eLE½QÞ5³è3E,$jÊÔRwÚ 'Ä^íxb£#.ü¢æ‘æ<]sÏ8¼vù^0Uí7»ë©8f¬ÔÀe–¦Ün[æZÑè¤á’#)qŽš›«‘·Ã‚ÓÇ)&TÙXٜ]k¡¬{ӑ–Í]åtÔÖ<±äª±™by&ÈPn­5£Zë½²ÅfA­R†KM¶VXnÁC.|®®løUÉiÙ4%tçF,r²S†|žX®ƒØlšZˆ,¥šŒ)‡ٞÇ/˜"ÖnL“ÆJ3S£9Þå“#¦Ô[ä‘0§m•ñÑò3	ź‘™Rö09*l„QЊpPI©šœ¬#) í#)µZK©ÎjŒ²s©‹EÔ¯µ©c6tR½ãW(¹T„’©`”ÃáØÈ|bvÙÍ%kiv«®;0ŠÞ´!I©8’bw SAh‹ÁF{cëÓ¬3©Êå#%;RD›n¤%+Íß߂h¶—®ˆhs48K²ô4–ÆYš¥8èV˜kƒ£#.ÙÓS†Ëႂãƒe":ѱ‹ÄáŽP5ŽÁaÉ·ßEct„6í#{&	Åq$òaی¶È_*”ŠIŒRŽ1VtaX¨Ìâ„ÏfbZaçJ#)P4y°§ƒÁãL™`¹6 ¶H°Üi‚hT…²RU,,ÏJљ00¡eˆµ¥[6aO&’#³[½Õû7Il†WG))"Å#)qSdñr&rPNi{ÔÝ0Ñ—¥JCt¦kCB9\&ÊfRèêí¾{ï\™Ó³ò8652¹¬]eáq®/‘"Ó@“Jôp‰œ#. .¦PgÃÔgžeÊM¶Xàâ‚Êd™@<½=ˆ<NÒ,îóÃ/´:ò‡‡Ýw:Kq+7:Ý¥—c3¬V†2û=óÍl‡68yËH:Ä´cC!ô4R@ÛÁ#)£#é4Úw§ÄêɄ•šP!ã}¨Ùñŵíz2Òçåƒl<;¸)4C#)5™F°gh9ºšhÌ6u†LãÜjqÐ#V̘Hbkn1A¥mm•ŒC§¥U¾cÕrS”È]¢‹g¬`)“"`)°t‰éààxaµÆB“Fj„Y”¦#.l S˜*¡tQHg‚tãP:¤¶rÈWænIÄäd•#)5#)#%[UŠ#.ȋ4.½®ÿ-qeʱÖ4µ’ÿ™B0}`DÜdGa–!Ó·¡°bCFrç[Œ™` ÚhÏa³ËÁ´8Ž¨¡↨Y†kp¦ÚTäS#$€³}i™&j#.!ÀÔb³KÖ#±¼€j£ô±v„­åR‘êå0ȉåt,“‰ÒjAvð"<CÄヒ4^ìhìG!•T'i©P c#%&³i©ÒŒõãÔFÒ‚ˆo8ÃIè3+Ü5š(æÁ¼x€l0A#%â[ÐÄ3Ð±8B‘¢›;0`ª†g$Ô#)‘Á¤o"»%NÙ-‚v“lp	a²Ó1M‘¤¦Ó"L;#)‘€¬¬KïibzŽö3#)³RP3‡s±ÈpLÄ»-¤g8P©,”î#%ßfo5|ÝÙSk&hɚ³TÖA)þMe/óD„#)ÌMŒ´DÔ	¤¥0Šy¥A¿Ï£ûÀÞ¯ÑܾÇPÒjö•$‘$‘„Œ’@H AØ|Ãû‚N…PgD#%q€œS6ÉjR¿0aRA ELâ8&Æ4˜Öó@’XP`#%¤Ùiaøû¾cK¡"Œdòáðfzê,ªaŸJ‡;Äå²GôàÇì‹#Ÿ4r¶)ðœÝº\¦R™­-ã7¬Ë`´ê@ã8xj(©b®ÇFÿ‚þØÂÝÇë—6“JÚdß6•¡˜ÍŽ§"Æ+‚ˆ-›ŒŒ#.Øq#)\Ní°[,rCÃp„"Áo¯pí V“Ymí”éµ/l&	.P¤IŒv©¼ÿ-T(*Üi¢T‰%%AŒDí„""B6 B#.!ÆH!C`]ÞQ€`±t	|¬†=Ó.;^¼9€•¨-#.£LА4M(–™î÷w¡LPì|8#)ÐßðÄ:~AD×ökQûbj…¢ÂÒUUIKºî̹ºéqb5º_Ú/5>ð—a Žp*?a¤òÖ¢xt|® Òrí†É%3Z*n6 nçæÁT^ @0Œc†\NÈ}¤]ûú,2o"Õ© ÀG/´õÒ?¡]eyŽ‹nj˜—û…KŠ<Øäým•õâkþóßïaŽÁ瑈c=di³5­f<,ƒ%‰L‘Kª„åچÀSúdÒêÊ‘ñʃ7¥¯îÙ°k–8©4‰)¶ £MƒNá°Qá­#•½£XN‘Ä%ɂčîüÃφœ’‹:Ú@J!¤hì?9#%~â)¤>jù|BÅKVµ²7’\ÈÒyžº>x_žÚÔ´$µ±£Q¶¨ÖÆ2&Æi™RT6H@ђ	" ?aßxŸÛë1<4V…O›°PKt©í×Óܸ¦!Šï.Ž“²*ÞGPCæ>peÆè±n6ˆ,–"11Ž³XÞZ	 V£´‰@v´B܃æÚ;#Û¶›@†@ǼêyÑi;ækú-aè.@9›A°vBõb™C'íº-(©÷èU“#.ü€!Ý®ñœ³¿'*ÈVa’`AôÕE3Pk&Yn<êP[ýG`1‹hE‘rϞÖ9zÖ®UÒ·Ö·²õoDÚI¦#.´dÆ-™JY±L¸Â´¸fh„bÆ#ŸÚq”‰®%¢#.kk傧ã[·b;Õ1#8hŠÕFƒ‰$6Ò`À'×½ma¬pɕ»¹Ú£{Ä´¡‹ž&A7»T[Í/!3Mè‡#nÜq8M•‡:t@6UÌjžè‚n I3”@R'qpŠÔ^&Ž²VÆ/íg[k5#%á&q¸ÖTt‰ ¼R@[Ç.ˆ–LEtè¿9ßï{‚ޝÑ:ÎÎò›”\„„-#%«°,](¸7Âß0Ñ&‰u§î‹k …Aa/#%_}pEÈD37¤°Çb#%È}Øù»Ã¼AÓ¬LÍf¤øìfl¨'0î”ÂY_}XX¨3)_}@ÚjÔ#)7©°…ÌÍppVÑF¸ùBðúÞsî)F֌%Ëb2û½°êXÖԐ…ªó–tò¢BLXãM®Ž.™L4ΜirÑ°[Wk(°!Å¡ý;´œ™ÖfŠ…CÎϳJ+|<ëÁKNl°‡Ns׎0ÇB½ºl{tnj‰)Äà…nîˆÃó#.Ý>欴XLaåÊpÅ0~®¶g)Ç;!ÝÙÇѳ؂á¬09E$aäDÎ^#)çŒe`Ô8\[F(DÊÑÊÈs‘6ª{˜+µ,¹.³<4IX`č(3ż\CµdMN¶›ErÎÕ½„ Oي		c#.Œ!KC,±ˆQF1»uu0Ä2¥Ì²PY0‹¢UDÐ@J‰&ÅPl`& `1Ò!b AK·7Bæf£Fû™h÷ošŠÐ?@A€‚»Eõl.^€êò±äU	oÕ{ÕþÕršqH¢ÄöP0zïVéA‡Þ@ûåáõü\AR~p÷ª á-]‚vO;Ø.?‰£»@zdCî‰V«ÎzSBQªo¾ªi€Â¨ªª¨UA§b–ü #%Zѵ’ªÆµ¤Õªý;eI$HBo`9!ódxäxiÆJ¬°¬p£ºe1.GÜøOª*Põö͝õKéÅñ;âY,,Õ¯ëÞhuNñÕhÞ×2˜Ã•bW"†É½4á¬ï3²i™2®jdteJ—tòËY”ë#.±M”ØDÙ•¶.Æ¥«:ÁҔDÐÈmˆ`§	¡EÓ/gœÍ¸=5ÑAr[©S2bI%:S	C*#PôòíOoÒék’4N)¤Ê(Îòá©6DM̗C€èR#E÷áæ¨D]Ê4c:ڝo¡Æ:‡´ku^T¥sùÞi¶?r"#.ÞM©Ö⼉“¹‹x²Ónœ¤R–ŠSæ)#)ô3¡˜é:âLJ¸‰:jÌΓ­·Šªo|6Þ¦Ó\$×3’¾fŸL¥9¯´½Ù16\d“%aÌdž9\î4(ÚwM‡€Èo£ÖNO3I€âàQ¡yûXX=æ(X.ÁFXnNf/‘Þ¶n”¨E„XQ	#% Ô˜±‚Ž+£bÊ=Yz͇‹ÌñäØ9r¾ý¥qîñ\¯2‚X2ÐÁ E,Ñ’HbDƒ"·4œ’èR¥*8ŌóL²fêK7¸§õÕG8ô4õ»©’mj¾˜ùKºí­Ú:Çfé¶;º½Iιº™wuק#.^Q5ºSMÛ­]¤Ö#)Êî»wqI¢×Ò‰–§»®ó-x©#.Üfە»D$RD„Y”ÿñR$ppRŠm<WÅ»Eµ¼le5¦[$„¤È›+bÔԊfº›]+K)i“ZS*3j£O²úüðšYš™µ¬I€±"H#	´·«ÄÉà.j<¡mZ=C¡ˆoLK°$Ä:¬4NØ#%‰´ÜÚ0S%(#%邪H<3tÂ)´ˆy‡ªÁç–̄aÖôèüÌ)aÙÃH#)”ëÐ#)^³gϘlã¬Ü0PNg«²U#.(/®+ð@¶a€§EµHš%u֚RžIkpŠ#%…SGágh“2TÔ±‡›U¦ÚqÍ1Tï>]FVvFÁ¤qoRj0 Mãô¿u¥àËÒ$Š×ßJ¢]H…Û^Êã%؆fPJŒ+#%ŒI#)£¯S¼;^ÏS½ù!«2QüûsÞËý̈́,åSî@á»#%dBšÓZ–GfbK…H>5ÂÖ¦S"¾q„¤0#£D4íôþçWݦdw³fŒ´ÏW¨ÑráQßއQ¬ûØÎCüÍýzZÎúKʨd"å#%@¬\q¼'T?_…<EÖP+i÷°p˜Ú؉%Àw?[d6B]«{ƒìP¹¨àÀÈ.¸+!‘ÉÀ͆²A˜Ë@’Kû LÂcGA•¥Çï%?*ªwX׉KLäÑ·±_è#%ˆH @‚/wŸÈ…q=gÑÈÒÞ"lS²ÖQùE#%~ëá‘FŸOç1/õı"hYPU„üòHBÑ1AC$YD_Ðî¢Ú,ͤøíÕDI$ÞµµÍj%d˜­æêµÉ¦Óh”¶“f*‘L²i¦JV3³ZÆ_ºÃ6¬¦Cf¡‘¦$´Q¶©mSEïqFÒÛ+»¥¨O½[¶»WÇnÅ1&e«L“jiZ“V Ôъ›oä-·Uö¹$ÙXÙ5­¶I"m–Û_+µ-3T“RÖ<ó¼3I-6›(Ì©«#)«-•¾m¶[c¢<[£i²ÞuuçrJmS+•Õš¤Þ¬·uFLKm	­xLTŒ€ÅDŒ‘?Ê6|Òõfœ¶žƒ°CÛ7Ë ~¢³°.P#%á³#åî:exèç§h¶û$ÐLct'\NÙ&Û§_«t[ˆÖÄ£Ýñðá-–ódj¡=I-rœä¸|1jß嶵¾m´ùiifim©Jj¥}ž]~—äë_‰m¾VÈDmf•²•o‚«DAdM²˜¤HY¤¨#.‹¦ª×”ªéQU¹cXյߩ[	55DΛ èÖP¢b¤E>»MnjÛJ´¶j6b–32Z¿6Òº0”jRZ”ÛV›e2ÖM¬4¦ŠT¦ßZÜ¡†#KQ¬ÛÐLR)D(ÐÚm”¦‘5&h²™f‹b0£+e±²dK#B’¬•R•‚¢¥6T”J¤ÚŠM²²FÙDÕ³i¥HP’“#.II„Ó$Ó%³U6Æ5D•dHڊX™[&ekRÍdƓJ0‚@‚°bB(!’U"³kM¤³i#)%¾“Z®›6kT¥[Imª-_-^lÕÞf«¶Š¥-‚øU\ª‚(YAZ6=¡Ònpˆc£oQ0J"}›Õ~8Û#)ÆËí¶ÕðÐ#%þV„0S«HÿLߌ¢h;r6•d5‘;¶…øÒJ“Èî#)kJpr7ßÕRÕB;ïÚ"³`£ì‰áõa€xÃluGÑ	Á¸#)’ÈÅ~>;±®­u݋f€ÍµšËîÈÏ5ÑT߁ÉJ7iC»È"¥+´9‰µúEQ¿8ƒ‹Ú÷PßsȨ$ö‰E‘@Y	xE‚F˜£$‡P,۝êç4™,¾—0)Mó{tí#%àN#%Ë+ó°Oq °>ÀÄÒjӁ²ŽW­A®	‡Ïž<àɒ u(Š[òw@…>͸Àȩ̂ކq”²ÊÓó}äüsb‰ÅLI„ÉRŠ*Ž¬œv-ç¥XJ¡¾;L¼C‡,ÎA¯-Øí¾¨wx9û׸¬C|”«€ãw‘#%—Sù>ÔÐÞ¼}vD.&;¤Ì0(¾Š‡ÍRÀ`ûèÑ-iûá`'£ˆý38m²@¬’3¦õRiP:Ù¨¢UãrC«F÷~‡UG6з)¤Ñ¾k5‚>²CfºÂ>ƒ:™b_%âA#.’rdò‘€~t&f ÒªŠB¤]À#%±¶ÆªŒßj®ëªä=œ0”ÁD+i#)l!æA¬	ÑƇHo:ÚOY=™)*`1ƒ>÷ó¼ðñ>H*LdØñ)G¯ ±ŠÙEIT4‰Ã´-nì®øZtìÆÑ·®ŸA¯ÌÉÑ#)¡‡oÓÆü~€9†òé·½ìê]î'Rúœ#.è톸†I¦>AÀ7“¼@#%ÓP?>Û°ï|]“þïòLÕ`#.¬IÏ¡E#.e"Ÿ]ˆþǟÜ׫¥#J󢮚<êџ¡˜iª0I–JQnYÌh†@‰¡¶Ò¯CAP̒fª(ðn£dŸ/¼Tn‘³·­|ßËëÓN¸«jÇ!aÎEZ9dd6í´ŒæÄÃ"1VW™Jdq´Û­¸) ›I·<l`°Â*­‹+Æ‚ß«~Š“V#º#%›m*#.9¸\áz4J;BGܨ¶Å¡ÖÚY±ïÔy€M‹=P:tª#)…(3Nt④T”˜ùðüØ#»ÃÎ-g×Qêôê1ÈÂmóœÛ›Ã#)dbäc7ӆᚋܻ\™:|óR˜Òʔ`V È+à	}¡Ñ̾Í!ýzÕ´!¥’ÄH{ùþMÁ‹8œ‘ºÅÏ3n½¼:,nL3ã÷þäŽÕ®¥R0ûñ–äãè+“T5ÓWÀ¡óH’¹	±í,÷šÈ㕙‡Ee>¦×L&³£€“›4ÞP7´PІÝ0C	«ÛDÙ²*²¦TF#.Þ¬_˜{¬Åj­a©% #e¼¥ä*%r¼ÀsµqèzäʼþS™«?’êÒvÓúı¢´OÓ&ïQq=ç½4¸ØI	Ղ†éi”rò—'À¹Ýú&Õ°5¦FšR˜n‹,1’FêAb„• š£„îÑîÔEd47	¨Š9F™@éœúÓ­§ÍÏO|ê’àOˆº0]ZX#)¡T2`×tðˆäY®ÙG™­U€Á´à቞w§bETø¡æ‡%I#.'ʊ¡ €Ðª"l×GæúV‡rœû ‚ª‡£ˆcÛg1QIñjÙAßx SÆmËÎg¹LúÈB`0B"ðl«¨[ÙB¬SIDÐã¤Åõ 2­&‚¨1ڐ¶·ióaxÍÕsÞFòYDZZàEÅÂÌäb Ù ðÈRÀ à,³"ž¨É# •#֋#.äõâ¬MbÓöøÜ/:[O˜Z÷æ³Q5{©“D1¾š´GH„†CgÑ1ªpÜ8۟¿˜–èíёØÒÌb†GâQ3´Òèöå¥a¤5›VÀ	‘#%Àtÿ’ræªÅ}4R¯#%‡¨½E€yÿÕ¥†Ó>S{$‚:ò—os›†¤ìrtRìbèÖæf¥ÚÔí]v©®‡^åÚh|ŽÐ4Òԉ<#%Ø#%õ¹c2#E(!°±o,±¸Ù¬‘C’;@uq5” ‡rIMã#%(NœK)"ÉŠëTŌÄ%Ü&.k¨Ýw}låÇŧ1½î>bF4Ƭ„“ZmYwR?‡N‡΋šä¾«®»¹¾¦:—è÷Ò^5|®X_=ϧÒßS{#(S›v}çÍw½É(DÍݧ\$(ãμ]‹\”Òçžu ñ<xÏâ·¹O+«¹J§;£ß;å¼ö5ˆUJ‚1…T‰ú*Ka˜ºCthk_¥"+WÄÂÇvóy#âô®ƒ³=‡	-FzâEHviWMÌ2ؽOXŒ¶¸lDzp7wùÖÜdߤG·~ú©8”ÎL۞)B¯-Âò#)—´½J¬’šÕnëÇêøt¦Ó¹4úÁ7kðóË J¨7/ˆzï8û19$ìyŠjžÖšÕŒ„7s£M§§£³‹0#%ĐžžÌ¦“¼Ê)¡T˜ª`«##.£«ÉÇÛæˆP²0ñí¹a/©7d¼Ss\î "µw]I·á]‘3(ç‚Р„„iE$ ŠT¼$¶Õç³Á㼧‹§uu2UÂ4Ø3Li•0#.†¡E+¥)#%‹#%š´ð­EÜ!½=E”×Ӗ•Ó¹ß2§^ñÌÞ#.T1êÐh±'g7fèñ’k„v5Ù@ÄJ¦"Ð>¯l³ ³Gê:úºé}<תñ_©­:4jȸoù˜‚°æԙ¨Ý~ƒkoU¾šb±Q¶ªäfÙf“M•×Eʆw]4¨¶ÆÛô[nDXŠÑZö”koW«Ùµ¯•¥›7ûÞñk%kM²«iz’èž}·šø{H¹¢L'k÷âœÐ³)÷cK	—]¬Î$2i¸ÊDZq16×H‘ûÚázæJ/aµ¶Æ`‡ô¾ÕZà@.†Ä8Rb a¤f(Zݏ¦#)»#+¶7,#éÚË`í6›Mãꒊ†b'÷0‚éÀ’¤.ɯJ)›ªl5T~J£-U=oal	Ì1*’±aœPí2Aå¥Àsìñ£þMuTÔ¢‘"W]±i‘¨ÒV6ŧm[u8?§›^ÂldˆÊê²ä6ÊÓ&qdœÆ\³r=•#)Æí`¼b ‡(†a•”KxÛÙ6ž€šõ“l †RA÷­%$DäX±¬§€dŸ~½ÂÄË.ì>Ÿù°ÀEÖ箓P`[C'W¸×†#.¥€Q@J?Ï@7ývÅ\M½6}vì–3g"j’°h„$QuI#%›€¹ '·U@@L‘P4Ù½tτlfüÜ ¤{Bu3¤‘D¬Ž0Kƒ1nzæß{Byî‹QÒ9ÆkǚŸ"°#U§äÿ—㇑AM&œËïØ^-EöëåSìå?ªìô(ë†c^:1ʏó}a×·Pò,D#ð	Ăns5)–ØSTSbîð9>Õ~MaKüæqŸ!‰$€È#.u%R5P¢#.¬‚, TT¨ª¤€„2Gj6,À¼¢„‹ ÁdE¦¡çŽp;/ȦX-k½_Ó{LU¶!.¥C(#¨”HQ†wæ:‚&'YÉ9EKÒâû5#)Jn©l”‡Ì<RM‰äž¤£CÌ'ÞiG…œJÇûÝÈ8É$	$Þ ¡ÂÎÒÙã}©-R,¶Šá¥y	! îùvÙä|]IšÍ*ŒGM=>{ñB–XKÐå,°õ#.ûž™Ä»AûÒÚ»'»XzŽíß(÷%­Ói_~tHõqǯŽÝç ~åŒ"„T¬XANJ‘ýõ˜hì#^Bˆ%?šH‚oR)ýÐÆ­­4oo÷—éâ,c¥H±QT* gý«·ÑPÊ ^J¦%,%ŽèVd`†GéK卉ôïñ[ûvõò5¾×<•¹®›hSdœ®‰a%q#.”ÛWF÷D˜EX±ÍñÁ„6`ZE%à¢Ra™·ïEօ†ˆS$¶@à…¢Â<*Ó9qY¤ÇH60-ª²ÄhÈ`êKßX·œÝχ¨Þ4m;­¸!"’+&ˆ6ʐ¼‘[E(Šã#CwˆÃ|2š‰ëcm¤*d”©e²"lŽjM3R*Œ±B2ÎiÃÃ´ÍFZZÁl ´€êQºe\ÖirãlŠ°¬1‡,+E‰½T7¬‹L°wo†ñ}ÞªømäˆÆòs”[+E7vÅÍsQX×1&5çÏz½2=ºí¾¥Œ…º[ÏyœI$™ÃV`«Fð‰)uEÛüºÌ4Ë	o‡á‘Í@¦²£¬ƒz}ÄÄNÐ[|1±Vl°­²6&èÔR"…#)¬U•‡v*=SÆֆÆÙÄ£I2X—pÆ÷ٍö†]g˜L:ƒ‰~óUˆ5-µIãR`šéMŽ‚>§ºC¹·LþKv©™³I²k1¯ŠU©¤±C41¦%щð¿ö~D¡ÏÈÉXVÃ×ÇÞð‡†NH›‘â4PO@jHüÓìƒD,B)º"ó#>¿ßoٕ­;ŠÏ+dÔٌš‹*»mŒ”¨“&ñ®Kc#)Š.VÛ©XµŒm·7kd´Ò¦¾wMe¬»Uâµ­#%Fê*À$XGΟ´1œ LਥŒ!…þ³êz8ÉHt³‡WÏÙÓëíÆÓÍ4´XÀØãôzL×3<4"#.…$hªQŸºŒ ‰*¢…"NtX%Á¦Î¦Æ¬š<ùóû~Þ6™ˆJs=)ËÙî؜9ÀABy±#.¬ â•yh¢¶ýŽï‹·kzÕÂåõ<ÓdQ„QA°bµ¢¶‚n€–%뵤Ø5¬6CmŽ•Šê»¶*õ«âï|…ï[³VúÖ×imy»¨¢ÌL)&µ&µIšl—ÇÏo¶¾EWÃ;J¨½¬¢ÈóŽ‹R±úrê4‡SEħ[„J.7ÔY3Š²,ø$eQRfÞê#%€aP3	”™ƒbL²,–0â¬-#%/}EA¦½2ÉÁf#%!´€›ŽÇðÊt#.X¸…±Cð#)8Íó½Ö–Å$	ë_dPÒ"\yvý´ê/ºÚãž_AôïbÊÂjÕRpF±§¿èèmëڑ|¨Q8#)€¨V;UL\.ÜöÐUH.#)‡Žüøž¨ù1{X’ ¡ïÑ, ª‹÷Àú8DÚà5sè#%J¡³‡=‚º€ê;ÕzÃÆ¢»†×ŽuvÝÅ%SiJ˜ÖÑj½›v¾“]£Mk4ÖSâWQ´‰š+)"[sÞ«›ºvà𢡊mÁ€5X@ëí³7ØȐ„« ÌõØ}¿S}CÙéÛ:Dáňÿ³ÎÃô=¨ÎmÄĹ³ij#)#æÀƈøêP®15ÖàÖÛÓ3Ùúe^/<ñ¢ë|¢ ÀÖõd7ß;é‘:mW¼‘"0J((.ËEÑ#%‡ÅÀ¡dÑ.Bµ”ð¹`ÉÄ(“MâJ¡°b8jíõˆ'w‹×Ò"Àè$‘$™‰Æ#%£ùãsÓáÝfáf€‡7™ÓÁ#%u(h÷¥1¼$¹Ä$	9ŒÑ¡»#.QD$)™?Õȶ8I6ttoS<0gQÒUɳšb?eŽ6‘Ù‰6ž%k¥®BH’‹ý¦#©N–lÃBFk‚91o£mw6Â#)#.1ÄþÖT“b˜l†Œ’\ŒEaB9݀54˜h±R'‚ N:¿Nùíâhžy¡€Â¸®¢bžô7ØôK5F¨Õÿ°uùõÑ3®’£þäØʺÍN7Rr›F‹Sìvð×cæQ­šÒþ)Â/ˆOÂ#%€|g±4f¼kv“‡#D܀‘¨V–Áà£E˜¶"ÙA†©))6i5©µ¦©65£#¦¿$®€“DʋK?e¶¹ª™•M˜Ú5Í2²MYµ1,VʶV›YJjɵ‰b-b҈¶mL¥–ÔÑ%R±«lm$b	$ŒR,ÌüO%•0‰þOÌÒoـj–Ã4„LÑqU9À7~Ä¢ !«k©ÊÕFÔmQk©m«•»7ƒo0¨ÁoåjZõ­~Þób	7¤y³Ü ºèÕ¨…Jš5·(ÆK©~•¦ø­¿=a6ýÑ#%â’~ã#.s$ør EM#.¢1’%IƒDc)òPaøÓêX?ÏCàҞí¯)΁GNÂí¢—‰#.ϒ¨¸#.x÷~‡>)#%#)ñY#%(€ÔUõE{3FÁ=)Á?­ˆäz—ê$ ˜H@(‹Îh#.%A¨Ÿd‘½©n®úÒ¼/g+Ķ2q=ÙcýÙë6kÓr‚ö#%J7L‘LBuõS#Ójm#)RZRš/¤[#.p™9{ÜÑ£GÄ×õøL–—ҕÓ¹#%­‡Æö÷zUO"'Pñpd‹Þ/# h…nuœeU6¢fžãQwhŠîyô“´ƒ°€%d.¢L“(¾Ñs+˜ŽûŽ6@ƒšSìüV³úÞì'ŒEkCPU€††GÚęáý«P4ur…0I…?‚ó?¯ð=å_SAû™Obwà\p"ŸtrÑYóÓX·0ˆPšm,¿(§ç'Ë¡tPû¶£a4÷ áît¾<a°4ßI{`»Ó]!®¿—#£€£ Kß÷kÎxÝ¿‹ð^m<è„!ì#%å59צ_%vW¿Q¼Éñ}O©’jÀªi0]¸Æ*”#)QB}*)%žÿLuÚµ‹¾óñùËñF)dd$Ôd·µ“MçÝÆf#)/ÛáKÅïVô$ä÷ÿ–`Àº5€VÖU5e— DPAˆ3Ê@lG[¶ÈâaS°$HFšo³ÙAE.1ãfˆ 8jCT)"ãJÍõï® ¼z«Õâªi©-oKÃ:$4±é¨Á=Z{®™Ðöu.¹††–Ëo’«fb.=UEm!âŽ0™ÒˆOÔÈPÝ2ÂåvlDT4d­ñ#%£È7­(¢ŽÈQø:Žÿ†sü>ý®œô—­%‰r™ÈÕÂöθw›Æ…›¸B,ÀÊhe&#)ËÆ$ðQjE漏'/î#)ӟ#T}ú/»y·,Tü„^SQ×µ ‘‰Ì 0±BÆ¢ˆRPî) hŠY„,‰L	Roh,àP‹Ð‰Þ(Dóñî¥ápM*ŽC¤íï2P1ÕÑÈ7gWy²ª‰G”‚bUD)„ÝVÔ¡ýîÇÜÇó±‹÷#%ށÍq°oL8Zfžx6­‚p˜W¬#%¸dÇV½ º›ˆX$<‚Âd™¶E€P€ˆ2²ToÉ6™¹Ø¦¾žÏÐoå™ßƒá!͒sB#.#.¡æÊ.T$Š,	áaqÌЉM´#,¦$¤.óÏ0Ûó$š{݂ñBяƒP>®6T=Íq"!‡ÌU#.El[´*TMÄoK´«¾eš`È1êÎfÖ¶66“‰Ä]Ɏj™qI”ûH`öDqM,\`ÉbœÝ›Nö»,69`3ëòö™Ú–ÛÞ׌ÓÈÛ¶©0EGÙH¾Ü#.ªÇ#)#)µ@bi\¹QG" ØmëK	ÌÞCS#%>)‰A4?ãÝþ=ˆ=ÆÆtEøo;k”þ®{ë9/¾½øáuÌEP+S—"BLD­›eֈ2ÔÊ@j¬®‹n·¢HbËh{ª­б‹l9§ÛéÁ¶ j‘…‰ûÉ›Ñ 7#%˜cŠe#—3“„Ä6Ãô Ë&ŒÙ'0ÌÙNÙ4²³ì$½%,J~œéÙF0Ûêð­N¼ÖÊu8—Ã{Ãr'ÄBÓÆ«÷Õ¦®äL{3™É`–ÊÎÏìŸXƒš©Ú få÷ÿ/¥˜ÜçÇÏUÈ·Ílj#¨ ¡ ´*fÆâãqZª	EVì(‰#.[A±h”nKm  í0À*Ü¿E2#.{­ˆ©¡Õ·Ñ:~”ExM{({ˆ;?~ƒX+P	«Vy;Ž'Ö69°PÄÛÑè.à*HÈB(&çv%Äߐ3–æí¢r–QÐåeºI!ÚQ²†‡åˏýe¯YўDÔ¬>Ìbi B/›ëðwé™bžž}œ*ÄÒ	,ÄÕvëޫ҄²%´¼íÍr¼ó¦ëÏ(·xí®Ðóµ®µ“mT˜„12:0n4‚T…H£*‰F2…PY!ñù¹œÍeÀÄƁײ´¤°\DkI²6¦QEUD„ú‚¾ÖÏô½«¶1`¢6}d­i¤±ªÄ­B&‡Ñ“=¥¯ÝÖÛ»Ûzë+¦\.,j¶Ð!ôˆ#0©•5TdÛ^\îlšú"Ç­o_#)óçïw˚¹g™ÏltÒùµǺ2´t‚æ¡i¦&ŽYJZ¦,#.Í@a#)+«™\cy	w”ã¢o £6ÈÚÔŠHٓ€À‡#)bøv­46hK|=âÁŠ¨†á.èJæ!‹e³#%À@†QÏZùÀù#)ÈuÇ¼Í‘!%RHn#%T4Ú8)ÝÃÁc*€·ñ¡È%Õ箌ê˜y¼Ã‘‘ÝËœÂôàM“ýMîÇ­‘iŽ'Dõ]Ç:SÑÐ%s€a$Dø¨SšM”j’¶e£d´š¶5Jj¿"¿+oÒkI•×m³»˜·Aj@¨ŒB!ôt§Ph Ûø¶~L9BÇ}Ë!E͜›TÀïø#)€ˆ¢ÃǪÖjÈT=“@E7t÷l:L½xã¸ȧº5èžâŽ…ÏÈa‰Ô‰K»:Úô§7º,âygþž×mk|	¶Ñ©Â«û_’ȶ‚ËÍîŸ#)Iൾ¦kq´ÂI²lª ߣÊeCCùÿ_^8“6ö›]°Õ“éC|¢i’‚Ò—ªˆØYÃÃ0ëš¸¾%“=ž“$F*1Œá®¸ñéÌ(×]h7·GCŽ¹‚kQŒ'dÌ3›°8ÍZaØÜÉV­¹¦ý:‹h¦Z$f”ԣȕð—u[=9ò6‘’ñùc¹·Ý7;QÀ篂Z®Ã'H»y[U1¡3Ïꗾþÿ<<›k‰|ÿ\s#.£žžG_w¨íÑä øÊ úð(ÎZÏG_ÓpõEß“¨È*jD1Œ„«µcƱ/j’´©¶_Uš	\6<b18gÈIDå–følSQ¹utp©YȚ:?““áB³š»sô˜ÂwÕD“Ú’g'çÕÆüç_VÎOr—»RýBPëï5d†j؎¬§›&ŠI?r½¨MÎsýÞz8’C¼:æ>Kãôb<%¸Ž8¾.a#%ö4Âœ*”"ÀXXÌ2KdRÄÉdÍT-URT‹ˆ¿iRP!Ø®>íOŽ2ÀÀKŒð7f_`†!—ü¿Ì„•ŠÈc´ÛêÝm#†W–R´U`H0n¶Ñ;ŽTª¸#%HÀFð¢('¸Š0C2 ’Çhw4© g‘¹öâ»L‡>|x÷iÀyÝ–UÕùÿ}Âó®J(%UakµjVÅÔ= /¯b{²H'Ãf®0Þl™ÏnÇ¢»<¢ýCæÐÓ£MÝ6Ô*,²H×)ú´ËXÉÖº¶Dé’g…Xyƒ4ḸBKU±é¯Eß#%CF<1D:¿±ŸŽóB2Ç_£ß­$eü¬44u	#3Wm=|•E"²@¢¥&íܤ	N×d¶#%#.ÉݵuËrì[«¬µš[M+iÛ­]IK3VV™µWU±£\¦^.I¥»jßd²M`Å‚Ȩ²('+¹„‡2ïãó}­#)5ð”E1Šê™m™8-€‘Ëö"l›cÕ|2ÉÃ¥j ã}~ÛV[…„Çî  Ìü´wpèp˜ârÚ¡–oÍ©¨S	7ØþJ…1Þ"#Œ‰Fm&Ö£V—!۪՝H¥²”Ɵ!®;h=¿Õà¾ÁqTpÔîßm¤×¬£^bc~ ØRΝÏa±LYX‚z³Jî=o®ºMzGµb‚Ÿ¦¼#)@ù·ñô!céçF¥·†™_}‹#.	;/Ýæð=è®5ÖÛù|¹Uÿ&»UˆÁT®R·Ú¡Iùg]$×&q½Zê$Á„DR5hrÊ#%3$X8	CL}ÿåþêþæý+Äþd]Zî¾È¯Ž_™™|ìg§Ñq¸ÚÎÄ~_<EGqô˜’ÅÉA°-m‰…ã ©ÌÖ^ЇQՓGäÔ»©ªe!^HÛz#)€5  Î1ص#%âRLS¶,_:9mrA¥-ÏÁºÔr;²wBA²páÙÇgwqsù¬Ž#’:oM[·"ªì¢ðú“þAg“÷l¤€‘r9·Ú÷k÷~qÇC9U^ù7#)$u;5Ào#Ǐß„[å~TF·‹„Í™n¨4Àë¾L"Ìz1¾¬í	¡UíÌ«?3íMó6/mƒqû،"0ïø3¹zt¶ÛìéŠB&à(y—IˆõÀ²RaF|‚¾«.’L3•i–RÁ<—Öþ@ú›¹ÅßD‘I©ð5Pùd×0¡”Ìòž‡Oâpz‚G(HËWT˜´Âþ9/Ê!pÓøÖÅhóÞ¥t,eîƐؖ¹&Xnc}ÇÚGw™Î§Ð…³«GÏ D`¶¢½+Ñ£ê‡?µÅ(˜²ŸgCÑÀàÄ;,+{­ºM¥#WÃeæ'xt‡ÅË°œ»ô¾1ò?"$Œ„ð@Jˆ™G dõô! #%˞›ŽoŠ¤’ÔT‰¾,–ƒ ê‹VÑTm¶Æ’¨Ú™lŠ2(…¥E#%‘R €écŒ.µÔèqô~©éìÂzF¢0hˆ¤`@iAù0•W²;#)H¨ã$žöŽ–Û®ßÏ1܇1̞f>Ãίé5Š¢CJ³Ë@· ß†³¾š5ê×	¦§æ¾ï,aÑL|@:é«¡ä#)ü¶£	¶É	!¢¶4ƈ2¨˜ÌýIÄ¢‹¨=‡B†sQ×ÿŸó Ÿš USF£É_-ºÈ#%6›(*¡AÌÀ‡xRW€ßO,ÓÀº?fƒºÃ¯â6‘æq°ˆA¹Í÷¹ÌNd‰ñ3Ž]ûi¾db1¨zh{+qQ@ïˆa˜4¬bó“g(ȐöæïŠ"–„ûSTÛv”[þ-ïm´Á(Mó©"'°÷¢@,ô›"r¹6gÝ#%ó	‚“͹#p>!¶¾G·²¯]Ìßw"ô‰”Ê	FŠjq0ƒhÈà–’Ý`Á†	eH`“àáAA‚èr$l„E‘ýbU‰Øê8Öþ^«^²õä M·‘œÃxbFH!²(`š)kE3Õww9nP±Û+§¯Iú­P•†ÂåÒ7c·WYÕÝÛuÅݛÛ}TÆM…ÛðgÑ>:Ì/|µ<•ªôCöFÍo1]Š§Z™ö›âøùuNiX¥Øµ“´ýÓ$Igì¦z43µŠ\Ywù&¯=¬‚ Bø?UÔ¸àX‹0¦ªžx›)2˧]#%éŸæÓк¨7øt„€9Õ Ö#%˜q~&»±!Cñ>dÁ8ý<LHw|¶‡Ç\)Uæ–Û#.ETk¦ÔÛUˆ"4HFÐÀùj#€#8e'Ζ֟‡µ܄$&7²º‘O­âíäÝynºÙÖé›kººÍ+Jfm`©@÷#%Ý”Í၅AK{ño+ÄÈҞºö¾'[Âg46S¦	M-nì9¨£àè֌©‚©¨‘ ’E”…ZÎÊ?#.¡|s©	Šì‰ú*ؔAüoH¤Æ4†Ò˜Ñ7Û+¢Í“V’®t’ó»;wH€Œ,+Ø–%ÖM™œ ¬M¡âˆƒmÒš‚(RkQÛ2˜MÎV²ÏRW»ÊºÓeL¦4Q©[)X–¦-3l’FÌÚlRٙ&F¶RÒ÷»yu\šws‰F0¡0#&ˆVŠ¬­ÍŠ•C"å¾Ï{â|3aƒ0³#.].•4—™."*æn€6¬Ý0Lj´ðsf²­#%1"ƒ@ÝtÓ՘Æ6ë!·I¤L5¨¥‰±Ü¨Š´p˜h5õÔWŒ$YWlh{ŠÚ$ùqàÄÃ=Ô[É°l n)¹i®†(dÚéˆÓ)7dü1y{o+ªÆØ1µ{k¤XŒšÕF$5B„r8i͙–Kxóãß9<·:L¹#)¯U𠃬Ød‰F;\4d2RP5ËB›M0Œm¦Ú6pQ˜b’#Q±4oqm,d‰3-%¥hCÑV#.ÃNklÆě²	fc¶¦0ÍúåÎ8DF±¼CVä+n³lÉÄ3j†îÇ\pe„&&•h0™1\õÌmµ’"úY™öØd›#.¢žŽ%´7f‡¥27ûPóW	¡Ð§Jªz 8‚|­©šQ(:uyBÏ(±v\*•…3&§chÁÆKgZ.KYb.k™¶öõT•†!K#%Àtñȑð5Îô 87lA~ӊƒƒMÍåY`dbF}àÀî?gÌx-—:MˆêÐ3LHh[zG2äÊc9ª•$(=þ	¡]Ä	2Û#.ÀÆò"21FrŒô³F<g‘`¢É‘¶Œ	›d–*–šoYÖõ½BhQíåߺí	‡MiVB-šTÅV\"¤rØ©Bø-Mè1œmávÞ=\ë8`cՐ6ŠPÝ#.²‡é½*Ü%"»CLê4´Ä=Dœ©[…Œ Ìª·lc~Bnn'l{Ä,\¢(Œ-(ˆˆ ƖªÒ#)iR*#%0DÄ ØÊ#)…°D—FI(ÄÖ†WQÜÀ7ˆ[wsè<ƒ¢>¤Ôk#%vôáéù´L]Wè¤EþÛuĸ+·©¡Ì1õËKÕæŸuSŒ)Š¸>|Ó&M{kc¸z×ÎéU	³úҕaI>›J‘Rš-!lMHŸÙÓË˱\õšÑpnÛXÓo=»º™)doowIٜ„+<õG«8‹¬ºÖjcfgV¢–Uœjâ̔áâ^ß.„Ò²yõ×S5üoº³w[‘—ˆ‡*#/6äê6o:+®xó6á&„2Øq£€ˆ4a!ö‹‘ÒËÖ0$´°*°ƒ!˜ã‚ÚH½.†¹EÕsnVt8|š|7mÌïßÞ`ˆr#)ùê.Š#)k¶Ö$Ýþo ËdñNÝD2cô8ƒ“ÔrQçOsóêÎνq¾äB¼¸`¸vj]sVÑÀ;ã8)èLÓvTU2Ðm–U ™˜ý²ŽueWí²–ÖqEiÎp°ô{>=;iqcg0#)ßEµ}iÃ+A4¼ñÀîÉ™OŠ‡ <‚"y}&\|€Þ>@h‚ÞV"±¶©mõ×ëmFÕ³âhQKq6@ù£"‚hl‰}*’¨¤¼å¨ñJ9$„R6ôóÍãͯ,o]š·mͶJ®ñѱV5y×.šº¶å]ۙ¹xڊu4–6‘¢‘•6ç#.ÛhÕ%eSzª¼Zñ“kIºk]·^yãBKdŠ€¦„¦ŒT-V†*ù¬Tcué–2)3݄æ|ØMd[I"´€ˆ, Á*,)˜ªÁ-ayI„.¥À…!B¶6Xf'U×ם%ÍÊÓ_^LÑ°‚D-'ߦ5Âm¨ÀŽÛMÖ¾TF‹[ÎíJST“øTSe±YÍ)±¨Ö4TÈÔmÑX­2°XÑʍ“cL¤™Œªh#jfK#%Ñ"#%D.´D†ú‘J@Ø{9û±>šÃìóÒ"ˆ‹UÊ!ŒŠ°DŠI’0’Ù}Ç=wú§ÕÝ~Ï›ÁoWñõ\¹þXÙ;rh4C#)u1¦ÑÆzµ›ŽJ	­1Zߕ©¦Ö’™Z/ƹy)³bªü“[ô­ÃV¼mt¿ŽÝ@ÔS<ÝtjÝºZîÒSm®FÆÛhɬVî®Ò•¤€›A…šb0	F@”‹Mÿ”‡×z~r0&€|Š4wԓÉ(1MbՁ0‘Š @c:q'	9f–ª€¤#)ŠeԂ'3Ë¿¨^ð¨4Šõf¦Ä’(Dd#)LGM</#)+hLáæ  ö]©íŽúòš€ú°‡FÌ?F“üçÍ©ÀÅY¶…¡ ù曒@ûñ$#)ÜÕGñg#)k4‚èS3ÏÑe$ƒÆWs$ÓP˜ ƒ&`í2ښnŽ	4Ã2Lá̛}¦S‰Kk¼`Ý¥„yúwœzúg#ÚéÌ­	†ˆt2c¶N›`2­ýَ0NëP ÖÈs'ÜWIv6_'{Æñ£ÂhSÁQXÉXž28Ùß%µ$çÁ‰åá#%»9ÌÕ—_2•×G¶V6Áêš.3Øa‡\&¡PÃLK»Ùîx&‹_ã'm#.ÄAaó'Fà`ììÇnåd>§aºò¸ŒŠ›TÙ8Ùlý8Ú~ßÙXô`¨˜Œ|zÍ&#.vJÞªHH¨ns'kà‡Ì.ô†a¦ø¾²VJ­‹jM·×KóZµÒ¤4•üé¿zmóïU·ËVÞO¢Õ¼“†I	°  „°¢ù{o#%•Õi2ûGplË·ñhBD#%0`€^;.cë)ƒ:֙¼8À¡#.Œ¶šë³ãm)¶Ý6׍y2@¼Z 5ƒPhPhÆkpÒÐKjÀ,‰‰†1Ć#.„[€µqA×$ÛV̓¢­W‹6Åõ{Š¯;µØŸ¼mv‘l¹¯/.¨¼%ï#.±²¬bŒ¬$p…ñÌ+i;XÛ#2ˆÐf#)°&Z6ÍZ”©Ž6‘F‚!š°Ö$c0lmA#.Hˆ±B¡BÖŀӰ†wI#%"Âàڛ=-%ªèˆÀ¤¸( 91xÐ|õ^1=Ä#)ˆêãM1Daê%”òo_)P¼æð)Ş®ˆÈû$ŸV­ ÂÁTçÖ|Ãx„«ÛÆFN,¸“—.'ØfÁ&Œcð£—-½{rٚ§ˆD8YC¨³EE&  `’C+ !÷yOV¸üǸ„	ËçX}õQPÄû¿Ùù¾±¼8ŸBj˜?ת3t~í€AFq9Lö04ڊ¤CºcÜï#%±#)Ûë¾çá/9ƒ|(™ô~þ[-]g>n­AG%Æßr6½Ž˜Ò‡GúSD1	¡¢jI¨³m÷³£è#.¢h8Is·|ã{¢uºD}šSL‹pP#)í€Ä«#)4ØÏyÅ7Œ#%HgÚÐ8âôÙi¼ÎÉsÕ@MpŒ1¤1#)jŠ–¦’Øó‚#.bêŠRÁ¸±h-ˆ’"­ÓT¤"¶\ZÿµQ/ì«¢9㧄êŸzýþ€”(ýo‘ÝÄñøÍ6½O¶¦É¸|¡Í„o‡	å/RBµÀæš9mª¹¬¹¬Ø7§¼ý¼æ@	ÕÍ.s"HUT¢¢PDªF#)C’PÄûãkŠ¡v÷;)(B¢ÔáÉìLsáü–{î;#)q¹Rj€¥¢*1ÔB"ü‚å:Ÿ»‰?UFÒ½ùÎíx»¼î²2åW#.Q×w‹ÈlJrÜËÍÆÓe‘)&¡4¦¨ñªíM²V))60xÝ#)6æÔgé¼Þ]¸ë®ÙŽt.Wwn‘\¼[ǒ¨å4·“ÉnÜ»šÌ±¡ÛͶò­ã[\ÜÕÒ«h©KN·)³4•%gwItæÝٝ+’)S»t«¬¹Ölm9j$‚ÔdD!ühv6Kª¯©=0†£Ô	«_£h>vC°·Y 6r£õøÐ9#%v©Ù؅¢ÁˆvÂ! A:؉`wý@½â"oNx¨÷þ‰Â{S¨pŠ#)„<ÊA¸!Û‚Å]ù>ˆô÷BzJó¾£W²×ÂgYïõyeØ)>º(?¶Ûðê9΃օ‘GbUcY˜#)Z¼îÊfi}Vò¬i@˜¨ZªT-Awý¥Ë患g9û7ØL Bˆ°ˆ2 ¨$‰†€ÀÐaï>,Ç {À4Öú¹uE%¦çjuÝÔ²±cwZïnÕÊòJüÿ7˜™Zh~àš»–#‰//¸‰ 9¶F.”ó¶ßI1ïtɒMÌfÚBÐPŒA¼Xº“Æ#)©(‹ñzª¯$VÚëµ»i³ìmåO‰uÕ·jݒ£#%ÃAÎzöí\ÄÈ(Oz¢Vuá#.Ÿã¼ô†7ábÃ•HÅ`”`{O×ú¦ƒÓXÄ#)<Ã@;Q]ѐŠF©fÍ«4Ú¥Q[J²ËGh€ëÕñ0A¹Ð@AM9ˆèUŠÉRԋ-2f¨Öچڠßí=‘¤#%g3íßH#.#.Àe¦E	V¿ÄeµZ3#.Ä!rá†ÄôÁÇ9¦ÔΪß4ÅԇœD”å#%tÜ¡LÕþá÷è’I¬4ÏG³•ô£©æl9ùö{uìü·Dø/ØHÄ8!Oìc7÷_nؽlÆ.pSù' ÕL"@Î’E°Wù9¢ë¨o"+VlÆE!öã}ƒƒÚ0þ˜Àt/¸Þyx¦“©æi*OaüÍ4ø!vK1¡€5$Kd–Š!¥Dã r l)„li	½<ÀÅæ­%Oíž9åxÚ殒Uʽu¡6î£±j•„#%&c̗Z%‚0QÆ#.°°–‹!´ÍŠ¹R[—Åš­xÕ¶ñOaٙGªÂ$’Zˆ"¦gF £à­'¸Õâʦ™†ƒí\a#%¸ŠeI®£Âï#%€Õ’CZýB hÓTZ5¨6È]H°FØ¥0«(½LÆ#%K•]¶ª5lV«{m®ê딐 ËhvØÊ`lš7¶1`ÇpaØÙ³bj„Ñ¿í°à;nÔ“ÊjNúÃ0é>Ù÷˜fŽ#)ÁU@D@só¸„Áƒ‚­D„5¡H‘@ÄZtøýqÖÃP?Æ>Ȃ›ÉÂH‚#%œŒ£d**…`U"A¢#. 9{`¢œB(Ÿ|3ˆHH3$¥uí§l­rÕy–ó[šÝÑ6iÒČQi	š#%r:瞨C$õ'79„O¤§ý±DM¯ˆ~ß®^ê;UÐÕÝha´A=+tšýÔÐké•}mmq63êî½kÝR®"<]rK&8(BIjº5GLÆ쐊•ÒÝÅþÆ¡¶ihQVäîv¾UY86pÔ*ËÊ«mµ^í1_Úw=‰{”à@fx„A> ‰Üxéo#)fgXxˆçPOäÌO¢:‘¸‡|¨®~J Î šŽ;ADØ##øAY#%$)"¢ÓCLV>©R"¤;*ÔP9„*>`…“´iƒj–Sõ Lßé:ƒ.Þ)­íßýþ¨:ºx ˆÁb¬RI "Oj'º"0šÛ‘DÉ#%M¼Moä#)¾r¶ß4ä[ÒWÙê«ÖTckñ%A¦ÇõõW¡×útSn@†žî`ÀÏ¡BQ‘7žìgsI9vIxl¼—Ø;ë‘4`s—û%±ÄfŽœ¡)•}'2eó©£#)T#p܈&tǧB¨ÜuÎnŒÓŒôKÝwhä!ðCF¶HÍ(?.4ja)•/ Ë©A”ÀÛJ•\2&´bD´÷Ñ|€ü]‰Ø#.ì6ìlQ/ÂÕõ»#)Þb †Cƒƒ$/Âi‘Îγ-–õ)Öø’>ê. sèþ—¼Søó|õ‹Ç–}ØâӖ抣ÎI„aøvG*ªsc¶I{"¡ÞiÈHýϲ´Öÿ¾ã昦>ÑQÚ¶)jŽp?#BzÅ{™oÇ´´7£L€ÁA€Œ( É]õÞùÕã9qν\¹x’K\@Y&#ºbdÁs8ÓÂɔLFSZ>¶w$îàÕÈhd0¹}ïd}®ñÒƒm:Ö<¢2Ø)êãß6£­M/ò<é<áƒÞi/¨ìWÁî'to°k³Z	Yú™;r-^ÝøδäƒFÐ4Ï»¦ñ¿—Y]Hx6²‹MÖ_ÃìþÚ«Ç¢&`!3&l·x®IâHër›¾ô³QºèÐâí#)+Î4ˆ6ÏصÖá:‡§–óþARï^¼›»Qª—$à†2¸D1#Ðñ*Sù(ÐKz`=DPýö6	—w#É¿ê%HUn0­,ªË“ØGÍG{ËÚLZ\dDP*#.ª)·F^<¶ÔŸÖ\îFI™øóл:‘õÔG¼ÐœÐÕç%#)DÚiT¨6æç¡ná™”ì>D?ûÝ0@•¤#)A„Õ}E’áˆøU;¨ÜB T$vQ))#)bÀÙfàòóä;73lš´dzÞ³;úM˶Öëö7ìÎ]­‡‹«™ªò@þqîœ#)I#.I&«÷ü.ÃP6(ÄF—àëMúÖ®ZÞM’Û%Í\ïuÓ/d’3‹fjíèÕ)c^æ?Yó¶æ›³#.--kJù—~¼zôÖÞÖ[–ÿ‚/W§Ù¢?B{xñòj“ŽÍ5Ý£o± 'j©z8שÙÛ¬q£#"Ål!ÄJ|mìÆÂTg!Uò´Q¼A 'If ¨Ð̘FQOÏ_¯3¬7–GÍÜ´Ï\Õd¸@”£>$Ý4·t>÷Á>¨:w6 t}\9tú.ZŒ!Õ	Êüö2p;sÖð†àœÁ‹)—~ÆØ5ß#)1P´ÔòX¨&_£z†ÂŠ«¼ôsöuÆðN½ybÏæ=ݞf—E›œP„Ìݏ€'Û0˜ŒãO'ÛÕñHyгë”5†Ï‚]ƒ	 ¥¢¬’"*u$=Èñû!ïýâ°nõ‘BA	DŠB‡^²õp]@>ë$z+æ>Úð<Ê¹C_FéLj{Q£¬ö'T¸+ñò60ÐÜÑ116#% äzÎ[ÅÇz;>ŸIõšǶn0ë´ßÞá¶ÂÞ_;I)SìÕµmó‰h;´¶ÓkïbÚb¼Š:@ä¡í€ øŒ$ï‘;‘‹–Ó^ÝЭüx›ð™upQÓƏ#)g› ŸpkيIÄaˆ&Œ ˆëPë`#.H#.Œ"uÄX¤b9nóPηx[c=›œuj:„F7WüN#)N„”´+Ґáq‹Zúøÿ#ú¾feeŽ/XALh½"@JFÀ þL­W͎‰À}šõw*Š”U 9Ȑ#%,	 wƒ¶4Þ{)p'‡8½ƒ‡ò›4š­…‚Êtâæ’ü#Ú#.#.™Ÿ±CLìK9š=ùaL7š ×ÐEûKœàäd]P4Ærc謖dZK…õoCu¾…Õ[fY‘+T{‹!ƒ;{7â|%¼b?ÓÁ§˜Vbæ oçš&ƒ	µ:ŸeÛ¥ÎTjmEVVMÅ„#)]Lƒ·è`#A‹…¢MF‘çzpU‰€B Â$É|-ý?>ºÖ†Ë4{3#.›_–ųðhÿW§?“ǟ„ƒýŽXªc‘r’G2%öeÖ%1ܞÝúŽé½c*©Ç#)Í»tÀdvιm=…ìŽ[vës>j3_Ñï^	$NÎF‹}Š¤ß⎒1>¥ò€AÃbŒ:Ñ»O^¯J4‚HC`"u²¤íƒH:aújB1‡éÖ²x¹»£1¤R#䈍q=çѾùÍ##.Ú4éÇurµÜý˵RQ¬b­–ÊilÙ±bmjP€E;5Y#)#.ÐÉ0؇Ébcٟ¿ätÅ<~ŠÓw-FÅ_µý?Û½ö?kôï<ÈB“ďÙ"*`4ÑA)h”KIF’b‰F қ#&ÄФ$Ù²l¡#1ù×n™Ý†¤øÅÎ/	"q}1Óʍ?]יöÅ)$Ù·lÎøÆ#)‰’̲A†t™DgÅÍãžPT4Ám‡z—ÖΘ±Z²:¾â™´)@†’Pªµ¯¨RËA6ÍÊ(B~Éø÷gn{¹:ö^Ô­çÂr~ß\½´m4È'æݶg#%Š`HjÛo,ÜÌoK…ùa°×M€—ª–ì#.»Õ´ô¨qÈÀíØ9•¨hti¢²ô3&¥”ÇVЈÒ^;ƃñ?>­/2¥þBqïä	ɉ‹’ q Fr­œ3Æ«kú$™ýÿéÞûëS©ÃæJƒRi¾m#%Fö¢"@Ñk-‚©Œ”­Ö64ãJ8‚Á£I¶*ØÐ6!–gn7µ¯~:ÊåÔUrÎêênjÝNc#P2F7vRQ¶4ÒJ+52TJVٖA6ь 0Eâ«x€Þ ¥l‰B.Ñr)#.ˆ{è¢A¼¥M¤¸jþ©!6Ú7´jó®Ö™W*àUË¥Ë;†  ´—Ê=÷À	™‹®²^‹¥tË*VJ$dÕ#%©#)ŒA•fZîÄÆ0¥Òâî<ÙQ™0#UlÂ\ÿ6O<&¡¤Îù#wbâi¬©ã*AÈ̜ƒš<êKøµ‹#)êP+½M¥aV#Š) ›Ã¢œSCH ã%K£\*-›m¤‚m"´‰ F̎BÌÕR‹ªXŠ*+m\JF“á`½y$D‚Žž{U°i…¨˜B1²(˜­˨§4U!†Ón9Qdj&Ô4âiãBÍj¶65‰¸IjÁA´=#)Ʉ#*‰•Ê«N–;‘;1F9X#%#.m„+‹ë#.…\ª'bB²Z1Ž¶†ë)VèÌ%(ÃRèÜQ(1Q°bT‡K.z:7#ÍÂã€Þ=ìs.îö‰««¬ÍbÈ´î4è6ða4îñÖ´³Z3æƒ1³Fùžh¯¶ÆŒœ<sq7‡9JV#.µGZXØXVI+ ËV5€êàÇÓ3b²Avãïkƒ:5>žëY‹"[‰Dš¦¨cFøQh4•4h†š¦™x¬R0q­¨µ<nӁ³tÆ6wÖ¬Àn(áHq·1- `žiÂ>™+ŠÅF#.Gp¨â¬h@;‡Tdf#)òœ°%«IƨÀÐȆ•è\Ñ‹fPj!Bd&¤hŽ"hêáÆ&©(	®<ÿ=Mt,ÔÄe¡7ˆPÁÚ­,Ê”Àé!¬•¤9^¸‚44±¤6è™|ü|y¢Úzªæ¹©š²îÙzíãk²§vÝ.–¸Ÿ+ÉU÷v}0Û1÷wÈÆð̊¾R9xbmモ8&ÅSAÁR‰´4°µÍʳQ§D”Mèö0Î2M†ƒž×hƒlÕ"èDÜņn,f½i™Òn™°a£B%F±h±AÕÆìäeÁ­Òt0&@ryÈöÀÕä*%|ÏC#)¬å.ù¾N±½Ä°¡]b"UM}Ú3#)J]#%cfѨŠ©	è”ChôÁª[!ïö$×C¦¹5ŒP"ÝrÍ*#„ÉQvÆx5`ÜŒMn#‚*‰"#%$lM3©…4DA#Ii Q%É´B†ÐT	bJŠ£"¤Â#%E14D½¤²ŠH† †M¦Á€T“õô:÷$j”¦)(m¥e3ú™“%D±Èýq5Û±»´îKrÜï®û+ó­%ڋmŠ¦Í¦l²&­ö\­Ý¶û0!÷¯­K)ü£ŠîÄâ`èw~.g«¢£Tâª4@;D±Ó€+¨ú£]1ŒQL	óÍHgz¢Š8~U©€‡2sU„#%E$T"F#(ÍP**l¡rús½“×$OUJJ€p;+À"M	Í×OªÎ00Ò,PL…Sì ”;ŝëlhaŠXv‰$@ö­ÚÉÞOå6óÞãg;b(ØÛuut«ou҇wG”Ö¥øwuà¯Ç¬J3s0lG]ˆ(°7ª•7bÊY¦ýJYâ@:õ #)Íwe¸`Ó9w:(ÁҝsǓþ¥l-è>é3mAŒK³¼–5Â\Sœ>Û5Ôù\KKîÌ1gE&oŽÊælE$H³FFƒïD€añŽˆ7pƒÚÚÉ{”ëÏçŽ=ͶWòE	¤:¾×R@œs$I‹É÷å¼ÉPêeÁx(aª)!à†&“ak_™æ#%mBa8}üõ¹Qzík'}ʃ^‹”^Íè 4Úk›i¯#…OFž?YïK e§£ñ£óu¢í´~kæéb«VrIÙ§´Y‹{ؐɟ&,Ÿ´—Ï^ûoÑ¡rhHïM#.㰁ð4È@i3Žã#)ä$ ­v|S˜˜¹fûw´Ö²¢W¨`o”MðéjꁦÀ3™¢ÅM=eDT*(›;+F“‡íםÅ#%«Ãï,'«-Tã©|2N¡lˆvœÎóX˜…³TeE‚E#%ETúÙ“$Ài-;iJ¥öULíéJª4sþCõî÷n.U’ Lì0ãœX‚̲¹ª)$%ç-„Ù­9àߤNGPMq4›~‡X`!dÔUÁL#)2¸4ÑL„%7"Q±³Iêå½smâ×Mh·«[±5ÉçU^6r×+<nmuç[X£ÉVCXÔky6ñ«Æ²kÆÛFÎï–ähÖM·ªáE´W‹ÖÛÕ\Ö鷏UçÇVƒ„lZÖ#)ª+ã=¡u6”ÚnHx¡{#F4¡e$B+œTA¢vª-^‘ô¿·Ĉi#oV½•[þ܃¸ÑA¹Û)G刧®	J>ôC/±ý„P3#)ÀúŸë¨6}’Îh)ª¨xþyöó\–·f–»·]Ü.ͧUT'_ap®Ú-.©Œ;Pl&…#%ÁˆªH+"*$"‹J„„(„Y$rÔ-äK·#.˜ƒv׏ ì‰âEd@a	AýÝÆÿŠ¢Ã@ŠitƒÿX<€WÝðè¤é·2Œ-P¬ñ%☂yQKʕ<okJÂà’—x¨)˜½˜³°ì@³ÄԕƒÒ†q8âW¤N4<OFÉ‹×^ñ€OØ0 3d’PÃÔ²FZ4š4J¤ÆÑbÊRRLÉh¡•­ÔV±¶ØÕ©´Û2©¨ÔË5Y´“bÁ6Jýcωhäˆ+Y+dAœ˜ÁFÊäHŸN¸#)mµPÊB26FÁÀÇ‘;bTë#)0YŠ<¢@V‘8#.dXÇHLJ¸TKm#)•±‘"H1’T:€¡TTl-3I†’"\Ô¬•nÒ­5W-j¤¶ÛAºÅ$QC	òü¹Zà)‡])i#%… Æ–˜„*‰Lj¨©%!9À¤¼Õ0BÐQ¥XˆÂYš´O :à’¼h„ž$9Çç¤üÉ·š°ó§èð—ùz3é­.yh¢•E+ؤ$";ƒ;Í?Vfq„uã¦y­ð™:ìø6XXû#¤´´´²ÞщIoˆe±S"¼ùxùï-{¥¹R÷*kVàäşŸÝ½In’![!T#) „QC…Kî±FÑU…Ê•›­Q,zSrt¡Ö:üݒO4”qÞ<ò릺¼²ì©³2…û½µ\Ô[X¬‚(!TPº”–"î	c‘Öš²nþiýŠÂXâ3Ò¸£WÁӍ(X t9ô_¿}®†HҤݥô›é#%ö·ãhþÂOÆå¡E¸×/Ój™þ7„¯¥Î¿¦*sŠxl&ê¦?§/_<k:F“%#ú•ø"×50tÆoNé¼*~/jKtý·ƒ²z®¤Ž.8ésǕºl8-eۇ%<<?Gi‚{Æ͓Ê—\ã~Ër/¢Žø%aäüµÂ)NJ4/ˑüÓtç$snÍ(ÓJlç}.ŸÙÎÎǃØD'b#%|³†‘ZÖ7r_'ŽÃµ¦½Þè¯,óÝÌÒì¶ìÏ(Í'¤RÒ¤e÷¦ý™¨çӞõlb›|u«0bªYºRÁÑÇîüí¿‡õF{k¹•Z•Ì!òW^ÉW\0ÏâaaŸƒ‹ÀV–S1$Ž'—m"{éí'wÛn_áî7›êç‰Ý³HÙ‡Ž(€Hr‰â|žÚk¥¶õwPpAÞš™í»Üµ®†¡	1ãΤÜ?L„¿ ç}ÝÅ(T³ÏŸ¾e4·ð>2Ð`F†'åíâùý1Ñw±FAÂÅ#.§…¨©PÚ@]1AÓKì¥6Åb$ZîñŸîϤ±+”qMVä®ç“¶'ï±:X£Ø\L(«RԏuÂÏõõØZkpí’^½ºLVvT¯/ŠXFsq/î7Ȧ¦ ¯d…p±p//Ã?{•–ê}9wÐi÷Úýþ= lªvuhq#.˜êCâz©nCª²Î<A0ð¶›m—²ÅV$n<¹ÐM«ð S‡bÚûGJòçá]yžsÝ$"Ó=’ï~tÀá#)qQ½s%1Г¬>ÖpÁ¬Ú‡àÐÊa¨ÙvߝÖ#)åÍg_*ø~bU¦Ö×LÎ	„tLÌFÛqVûµáé­ô‰ÉðñÓ°Zdgˆfƒ«tR¡Ó¶è¨$LžžI$î賀|Ï5¹UY·'Æö¢Ã EŽÚ7Ó,Kˆ1â96¦b˜1–í¶æúFœq/+6ÌkíSb0+GÆK@ùFÍlÁ!ZqÄ?1¶;xâÈ3Ü­XSë+:ñLh¼b9´§ŽÇ;§Ö·Cí‰}ë®çhO2òI<¼fj7Ž(“m<)+¶*<k".¾‡‡,™¶´œâKÛv«Ã·¬ÐSÅï¥SÍ{#.•=ç5Þ4có£“G¸Â'Õ¹nÆË·Øߒ/×>Yͯc·•͹µ¹‹â	êøó|‡;ýÒöT‹Š¨ÎåpU©‚¶«×-µ×+ÁÆr­íÉ!Äãt,YyQ·<V{¼83ÆõÓ[uØäôË>ٚÓǤ.ïڏ7¤J6ˆÒˆÛnÔ«lç”âÂãJ]l[NÝWÎ6C¿'J˜Fê¡ßoñ3©G’DÐeð˜=¦úWàò•¿—WPÅocé7^“ïéÛžfŽýÃÂ%†v؍É豋x¨ï9ºéÀï<CÆwMç}7\˜yïƒBk‰–Bgky	¶QKÒs—:”2c~…7 ²›¹Óx'†¹#ɪšÐò††õ§Àfµºd€Ì ky–JSÍc~†0£™…&™ñ×x|_=ÉøÃá¨)¨#%ÛEÙ#.…ñ<^Z¢Ã!Ùíٌfš<Pºs»lÆp~ˆ”Æ5܋ŽžX1 Þ¤ƒ¢ß׌95¡V4Ø»´!×­usJаŽ¸k¿˜›Cäó8ôÁyé@vRìä\0È.ŠqÅLã’F£W«H‰…Á‚,#)Ûdã7'GÒxvÜ=x…²Æˆ^ΆŮ]›*lVÀ˜jـ'æ1´Jä7õp’$‘v®h–¹P§ˆ%î#%ƒkˆC(€ÂDxj6ÃB8™6纺uôãŽYÙ(yœŠ¥Ø%XVoG=Æl’NY#)tÈӂ#)†gBç|±–‹ìדXÅVDÎê†VmV&NèiÝEeU¯š2	¦¡PƘº¥éõõizŽI_OÅ.þÛ8Cû´Ú}Òpó-ËTãc­ÓBs$b	ƒÜŠŸ‰	¨—k÷Ä!v×[68Ì©ßQ©t¸}Ðíâ}f£OÕ¶êý•ç@­mÌ¢Gh´®ª&PâÜ©oi0%ßnúš0âÙt[Ox>º7VµÛ¦6)ˆ0Ûƒ{özl(#%ĝ?Co«'Eµ¥z')™Èú9WÏ=$%CÖÌC[	G¸qÝm³ï]#%ïÇ÷–‹„ds-ÅMVòªw®í’¢Þ0’‡×C‚Z–3oQŠ$ŒÕ©`ãˉK`VZŠè§‡À¡™ç~%‰@½wÙiVkQ-29¾ysæâtÍÅh«†R±Ÿ­ËJuqÌdŽ§:hèöMöé±]›qËn<ï­ð˜ÃÆýýñ(n͒eׇL%Õ¶m,šÁv-ê_ö¯môê8/ö`Þñï—<¯³u,ÀynýíÏ)}×k﹆4ë\W”º[ÆTµ#.1ã¼fL’ÛÉ@ïU>nƒ›ˆKÊG}¼`½´øîÅ3}ã7Ô37R㍰d¸´ð“D3ИbJ=~#)ã†X)bRÁØÒՉi Pû1¾šOAusJ#.¢E'š%Ÿn8*eÒ¹”Y%%â0¨»ƒÁœ'MNL@^ „Ö#.€¿2<Ìd4^²î:2x;÷2y¹ÉúŽØ’ßőН×´(î.0˜Bµ£}²ûâi#)!IÕËQB:ôà>ƒ#%>t Î|Œ(†E#.U¤¯‘àQ‹ƒ6¶z]6G†fyÀÌ£ƒ­­Aц´ô,ŒÏ òöö­•HÕ]B¡¡¯E´ú¸™Ò2,öÒ­&Á¹å+¸jF¥(R˜3aA ˆXŽ°*AÈ΄µ‘Öoc	&ݲi»È7œMƑ҇#%€0Á$xC6ªÉ{þ‡êEu×}F§~ÐÃj+Dõ€§“Äþ:z#)؊ÌÃædRâžÅ´ˆAådzÄÛÛ¾'i¿Lr·/xUå¶,˜>Ú1Õ°‰RbHÎj#)Y‹y±dF­ô÷Phùß<I¢<‚ðä‡o¨=KÔ[‚Ä´`IÑ»—"°1ÄÝFÍ~5ô&ÔOCY¨uí—5zUgfBAYgËbÎìF¯ÕÍú¥{V°#.Va5u¡1¯ŽË±èz[Š¶4Fhr®ò<WƼ]rk“‡UݳºÝïW›ßoUPl[åÉw[›Q뮲ó,józª×‹]6Ûò+WA©UE«xµÜÚ£$…0€…#.ŠošÂÀ ÆÂ3#.#.ƒ"¢ ª(ÈT  ÷$\^f1_腫È#%ê`6:£uší¶_éi:‹Îj(¢y(až6ñ·"ä²[MUkøh«h­ªå¶ÅjÛÖæ·gÇO<~Wsy¿²î•Vð}°Í|®±ã–ËGAKwx«Æ6#)¢¥D2‡;ç…X>›¶”zpÇHpÿ¯ó˜6il‘^#.1¦™@û¦•\“v#/Y§`•f	ž9][j)g>9&‚X ÈHR#)Ðe!dQb8|¸ÓԎðe†«WdDbv	åHyJbÒfêo@õ%q˜A5M¦Ò­I°—*¬lLc!„%Z㍦3Œǃªhêå×Z¦8¥QÎƛÖûMJåZ3x#»“uAH&a#%µ–Ywn1MY[¬5p#.1ØÆW±ÞŽ֚:ñÎÖY½ÈÍMi¢ŠµMkZà ܘÌwG—/'¸Í[+|2b#)±!Œ"#.í7"*9 UbÇ‹KÁˆ¬¡—Z•PÉ3™kòÞõ®z’1‰Û!Ó9Nó+:² ¡#Áͅ@e	C*DcŒi÷f™šÃL"2ê#%²#%`ѐ2‘D‡6YTÞ®e|3Jɒ•¬$»ÖnjŽ8Lº”UÁƒ:@Óv{¤Kz}¢µÍŠD‚nKÝ8axm·‹³6€±&i‘jl¤NC‚ð…hc]õx]g-[ª&‘¡¦rtC%cÔ!´nJ ©B¬2#)n%48LLšayÕ£o[‹o&K,®Þ¼ìYµ°›—OŒZ65#.Š×G‰´š¸:¸C[5F¢¼Ø#.cñwŠ#)”²„L°8D™wÿaÌÑxñJÖ^ûߥaQi¢:0þ6»ˆÓ’?)/EFôð¯u²­ªÒ7y6D«Ù!%y`Õ`ÈÁÆÜré¸2”+M…uØiëF3BÒÑàSÁ„í¬­ƒš”Õ*¥cåå9銍æK®¶Aõ™UVÒ5‚‚§ó4Xⲝe˜ÆҀÊ>*ÄXУԋ]ôZñ»)¡Eß¼#)4ã#)Á”è9Že84ƒïs[u¡ðÖޖÌ¥05Ä.ɦ±™à›hÑpf«›†X#Lðw	Ït®ÖC!]N#)ÄiãKlMŒ)®¬å¶‡¥¦Ó’é™ÁkB"0]C‚1OtÎR4‚Õ#‹ÀÀHãˆÂâ[ÔË&Ú`¹¡ß˜œ‹.@ä7u3Wf‡_p*ô½N>ßT¹ñ•MD‰"6CÌ¥°90ÅÏnÆkç¿WãOª(M9&¥“tþ%·ô»)-rüÍu»\Š’	ä¹üM0¡Ú+Ó;¥Bô—‚qB/6Û=’{%x0È£MWiûÎÄdUFG^B{}%ía]M6àÙ?'«*ö-S+àš®àI'°é#.ö#.sŸU#)OXl“Ñ@€œ[d2“7øyúÂ~;¨#)ý}+ 3°yú|½Yéàùé ĬWiÉś‰¼¸Çèòýˆô¿ªŽ±A²ÕJàòå3>~3{ž{p1¼$F›ºNîäÂ#t¸îÝUNyg›lò{¸Î½IÚÔGÜSÆ r')4UföÑMQ¼øŸ£(ŸAËod24i'1éç¾wPz T-á#)¯$@0š/$j2Ó!KuS)ªÒòîkFÖ®›ÆÛjÅERÄ#);DÅ;”yÉ«ª{:êƗàýÈQb#j•4šÚ‚Èb(™( ©¤†ªelÓ&±¬šŠÕ%bM¤Æ͕4ÓfšT,“I(¥(„•CÔ‰Hš4S4l›#)*š‘†°Ãf!„“µˆÖSõ—è<Šñ˜#.'Q¼è5¡ˆ¾¨–ßAìã:™ÃaöMŠèUÌÄöl~!½ÐiûÍ,$&Þá#)Ä4mŸŸ]´êàlôX¤žùumð…AñÈ$Ûh9€Ä^$uԐ!˜ãrøa1-¸nŒfJAHl˜2ú>¼œ^3ì…_¤äHÅ$"°šu쉈n6È篥3K‘Q1%ˆ>[Ã]ä’BêMoÝçᘠû´ôC—\`^ªˆÔ®ÒÌ>|"FùhՊZìsS¨`MÊÌ<“Œ›Y5ˆŠÈ”F©6ÑGàZµÍ¤[)54€²3‰HT`¬#%…ŠAJ¤})p.@Ž´2CќÔ)#.DDƒ#.”$…w¯0¸5•e±öÙx0éë/‚d‰¾Z†™ˆÃsù2èÕc|\]5•pe¢šŽRb"†ÛÁÉÄÆÂØôÅ5Z°ÓŠÒcÁ̵)†BÙ'’Å¡™l`ª#Q¡Òû^eÊS·kæW™6™S­(ïÕ–f £tff0‰XâÒ¡cc#.8€‚ddVŒKÑt<h㦚OßA¨”Ï‹†EÉ‚C’x¤3…ãÒ©¶âQrÓÔQkԊH·mv3¹k‰7½µô¾/|wó<9VÙúfÄs¯¼ÜŒR©dXzÀqÀ@Ý8L˜BÄ¡±ºª#.ÜÍU,õ2ê…ID¹¤(A€€˜™	@ГBý‚ª³ B#.éÛÇd˜‡#%Ï4Ä#JU#.IⰐU¯>¦Ây?fé!Ù`ö}p~©¸öönç8ÏЕÊPٝ÷¡ê"B2ûp¿©úq&.ˆYíé¶MÏ`˚à;DΉª¤×žªm²ج%-	sg@-j&~‘äå_„Û·IYȬ6lè´\µçóš"®¦E(B³9á•ü¹òsÉ [4Z!åU©¶®€ø7IAOIñ,‡#)9Ó"BY iaÞqµm©a´‚|p4·ñ9$ý´q(üªÈ$ù(u0„'I©ÜF	œÞL¨lh,Rh€JiŒF>¦}œMw+ÂӀc¢Ð‹éô«ˆœûÃw”]Hj¯8'\”hð=´Œ‹UÇ­ë$$@ˆ2/iËIaӎÍÄì·©3<þ2l]C©8|ÆZüTÁ”aê…1¡S‘é5êOôLا™ƒb_¨‰s™c­Ôí/¥Å%&lóä¤=šr«8;R…¯×ñ˜†îÁ¶ªÙ¯çFáè‚)ŒN¾·ÖrˆÀb‚’DDAU/?8ô/mRŽâb_cõku44á qí¤^°0°¦f{õö~np‘ú3ŒB¢\Ÿ‹Þžþ238ègZ–B«¦‹c&0án®'œ$êuNmgà“°Ö0š•þgÒ!èªOg ¿0¿R‡ÆšÒ]üîß^Ã	{‰AWImˆo£È«1¢„:9’7ýVu8ãy’3–°liÍstÑr6cöž.R¡$lºüó‹Ç#.kÃȸ»…†|YÀ‰JxN¢ªÞÜ~1šÎwÔÏ	ÁQ³C#L06#)âF(Š­‰ #)WKޘ’‘#.¦5öÙ´ä)_ê¥-ƒ)Nr$ÁóÃ9QMv›Ñ½08HzÒQ4‚e•0äœÅeȁ2XÃv˜®ÒŠ5çrØL	®L댈5Hµ”0à.q#%Ù5Mø԰͟K7 ژfHf·©1Ä.€áӟCs2uÀ,뎙ai†É½t²¹<˜!âØ'’¢HŠ†´TF¹SSÌþ†Š%213T# ÃžH؃f¢Ò+ÊG¼XoFlIP\oF1.ËJ­f£HÄKÅ"ASA„–'G»¸ÁDz"DR$[#.áëµäÄVÐÁ(Còù@à‘«iš§H!	36¢#%bõ£U~_ӜqºØn–roÀã"¡Ý “HTç(–BdSuÆÐÓR㻣rˆ@ Î*WšÎÙ¿ÓþQ9[qŽ5W;_LL!¤]:€L°à’óÖݔ˜ã’½7îrS°öž¡Áv%³[¥Ðô˜3š¡ªû€e25ìÌ[ÀÃ<é‰D¡#.QŠî3K։Ðdék¬X#`„ÓAÇh´Å³¯5s#.{Ñ­j(¹&žåO”•qac>.I©¸£¾!—žMàL”cÐÆ;:ލ ï™WnR‰*F¤:\L±Zـ©2Ö!Ÿ( ‡ÙJ¢ÅX±ÎŸ<I"ÊÆùQXe2™¡&¸s£KL#%ñ!œäg¬$eèÊ3èЫå¨$ Àõ\S‡chË1Ðdh7mµ©`Ò)”ˆrxt›7xÃ|Î/TӝÌ#ãÇk65¥‘>QÉ.Ú-Ø®Pž¸q ÀËJºrFÈ'VT›mÈ¥¡ȽÇ0¢$¸(vCœ©mEÖø…Z˜-嬺–´ññK¼WL.Ó7é'•ì‚„]ˆ…]^º³~ÑZ·ÛL*¢0@êI&zuˆÜxn­Ñ¼0¤É‘ÛԖÌńºð$MH³N4#^£Â¹­mE©¢!nû0³mMÕNw€á^.gdÒ;¦ÝÊÃöAbÈ+CVž±¼ñÜYÆuÃ4L°G=yԁ$3%JŽ,€Aô¦¾<ÝÛ©à>šâ‰K5ì´‰†;)qç=zãHàUÉÁ®“I“@±XŠeÙ‰d̓â·1Ϧ¥¾]04©qs:ÙÁ`qc*úÛ7\^¤éƆ,$ßanI\D)ß7†‡[íL6´V×}EÔ[@D$MÉ5)™b`—(¨Ëp0ÇÕ\í5H+aB"0oRêV¬­½õ44­l‹h—»1#%ü’b¬›É7Q!'7ÁGSYVK'xØ0Õ18¥šÐQ²†×ºÔL+¼ííúž<6†îi÷Ù¨}ú]›¥ØN”ÐÀ&†ÍDu±¬RöP¸Ãl—À¢]-YÁ¸xÈ.ŒîÌ?-þÏ\e›\Ø®G¡Œå2¾#)žf½¸iç‹çB! £#%‡(nÈÂòþUè<ôP’bmÇG÷f«#.±\Ó^æF^d«‹Õðä#5$è¯Ì3‡8:ÓH-`EìómÍùe…Õ’“Z‚°bZ6t“‹¾-Î9¥ç\<¥C´:lSCðÌ¿wFƒ–¢b#A¶.`«°s%œxeõ]­š›ê+r„‘·@»§sÞ'™œÉ.÷.ݝº«V‚ð‘‚RwæS±½¸ãF;fµVLo#%àɚD	38š(ÑXž½ÍlאÕåÍPðê"WK7¥M›7G4Š¶¾f­å2Cɜo"/9%‘â”띓à-MK©Ï8G	–Ž)Ù#%•ð@@Ž¯ÇIÂ#.1´#))„0ù¼4‰‰÷„ÙÆ´ì˜Ó}œÃFûeÐìº@ÂKOL]žkŠ·à²Nô]ZÇŽ¨b¡4&µ!Û0N–;UM‚á#.­˜££p3Ç©7Õ$m13„p†Üƒ¤Hù˜fHàÆû@†:H"¸ªPÙ5“SºOní热ÐSÞÍW)˜hÄ#.4¡‘mº•-ÝÒÌ@ȹ˜Ý‹DÌ"Â	#µƒ)Â3-æ#%—KƒCAžÂ.K‹¤Å5ATV16#)S$¢Í–JgpÑFÌ̱QR€L#.XU75åJ!d…¥A&¼n˗†à'@KµF…•ÕìƒgjGÈ͉£4¤35	v2`P˜$#)u£VÖ¡L2B.É MÈ»"Œ0]@©£gSBî¡#Ðu]hìäÒLS°¨]ˆš†qFÄðHeç+…š›m¯.4Ó©#)Œ¤£ÍЇ2¡Ø"o†hˆ¡SÆ2±1¬‹“æO/>“àcÖرÊ*	KE0„ˆFuã4ìEКòñç' laìà@‡HhDXD„€š@D* Ä‚ž›~¸Tæ#%†CU{oP¸‘#)¤ÊåƒÇï+LÔßi©Júg/ÐZ‰by$ré̋Ü@_‰éžÊbÚ9‘Ýt­Ã†Ân–€#‚<o]ę f¼»ÈÄf#)´ðfжkù%Šøõr]9i«ÊªE¨ƒøM‘‘Ê]z¨EGq#)´újéÎ%J(¦A5UBuaÐÆq뵚 ýûw¦™8‘qRƒ¹¨™åÊ"påreŠDÉÒ­[¨~t¢W؆µ‘÷• ¾r&™2wëË»cîbæÀé»®9§èkJêF8åhç4 Bè 0b±Hs˜Š_fnZXKÝikšÃêzÔëgk¼ÍÁT7«wt'\1‡¹	í_ED|Õ"£ê£ç¸ø©Ä݆Éàp¾QêCÙRÂOª)®Êl1qâ{³Åx>¢@Ù7Fª{ÒÂê#R…‰Á‘$†=§t¨d'~&ó;IdW²×›{kµï‘Ë»kÍ$2%òMNóºo7u¥sǾu‘,!	d… Èð !D4ªM«4$b£Cƒ@£3í¤ÈVޝnÚêÛå‡FOÜrï´69„ÖSFF–	…ÌÑÌ#%™2€‘Ѷxt=O«¯¸'®cÚvhÓ°ZCä#.tDxpŒNÈÂ㈲p4þ‰ÐÓF'„‰L#!w3323TV‚èh¦áóÖD,Šd×ĉ‘f¹ïƒiByr	¨N'#)̂›XÃsW¯\v©µT×6oLhÝ$ãò†©'¼ÒEüýÓAûHr#)=†|=¤Ð¨> °ò¬YÊXˆmêNzkÒDårFuËÖñѨÕrd.0)2åœf[íMO½•3&Ü£&îXn XÀ<DâuH#.{#ÅQ/ÇUÎåҒ"¨ôl$Òn£•¤õø:Ëѕm†È±q”ãüÐÒÐÛMR1X‰é ¤~ól3|†¼#)(ɝ+‘!ègxsQ_¥!JÂ4„¢@PE²Ú´£5Q%ù’²[TŠˆ"8½Æ”.D´¨¤ 7¶U¨’#.Y"#)Ò#ƒ#P+Õ`	=8éƊ H\1ŸìÀ#%B€™šºò­}Ɔèœs½÷·ÚÖ-,ÒhÆ5k_]ïÛÙí{ƒ“榅V#)雰pÈó# " H"’Ÿ†õûí죾ÁYç¹âi6Œ#6üjø	{mçΧ¸’Åè½ðÀ“˜Pd„®¡#%Ƀ%CH…bÃR$± ¬—%¤"ŒTv¢DÈۉ±9i¡´¡’Ô%!a1#.‚Í#.£ $à§A·EÑÇ€H#.Ž¡«°Â҆«˜–`9Û+×Ô G¢=O#Ï{É,0!&ò¹9ýçÞâÃ[a¥#)Na$0„îøQŠ6|ªbV64¨XÙÒ<ÛPèQK–$@#)Ž¼Xn"/¸ç杠ú$„›VM¯²~•çZبŸN×6ÝLI|-ˆ3}¢­-퓡Hh; ºÖºçv¸EBÀ(x	ÅÈLHÊòþÝ]}œîn8í§·€~kT1	Ø$9J%oUi£6zXd“JªPÄXÆ»ˆ¨Ü4܈AÈb-#.HÔ[ukÝlÉÄzòÞÄÈ.VýtCT>’,^èèʞ“çõë ª09ƒM4AjUm„4é%ïè!rKíl|rèO ñ:×Û±#È#)ü]«[çò{zVmhÓ+,Ԓ¦š‰ŒjA[[0ØJ„Q³ZQV¤·òV#.XÒ*@`2Ns¡Ñ‡'Ù)ÇË&€hëЮÄÚvqšûfn<aïÜù#..+¡Ù«~#)`!¦	"ȯ6¾$nžy)ٗéҦ΁éíSÖû. š§#%…æqÒI!ÄååÛ·|Ζú-ِyáŠÿ	Â=$4j ‚€x›ãßMõÇ®²”^öÐõT w1‡g"‘ãÎøjfAOqL£qA’q–Ýä°|色ƒWSŽ*4›&M5¢Øpu¾0ne–Ëw×#.k`ù¸ãf8Ci1°eƅ¤Î¥±$6Á1cµæžŒ®JI2‡YÒÔ¢­eòð4FäŠH‚ËK]@l¹œÌË-“K¯Æ"m;|¡	#ŽÈ^ôìÙ|#.Î5GFÌ[ý#.k#%åìÞÖëXrp/À°>™û™¾hvEՑӢüî©0!">O ,–{#.íYÙÍŠR­uüTâ?˜`á!:2êçñ›ïë|ü½#)ØÀi/JÕ՞‚b˜ÀzA¨0"0!Ó#%*;˜ôpÁ7{ŽûiOw™B]<þƒš	bH À•I¬èD£ÖThkÔoê	8ò¸°HHZ‡´Ë#)wÜú¶ßêô±[²Œ»1Ÿu:gHèPá6WT¢­Ö½îYö”j#)íöüzý;«20ø¬±·y}ç¾o™«¸$«[á·ýpÚýÒQç¯Ûïhô8ã‡ÿ7}€sØ‚Ó¯º–åãoiühhæìcšø–û#.¨÷q¡O„MdA‡LP)Gj¿áç`»a‰Ó¿J5šòû¨£L˜ÌžuÔTVIwk¢’,4ÊûÝæATWíN{å痽Åg#)RŠl…£bW“u+ÈÙ1¨ÚŠÂÄn[©6¦m¦˜EüŠR0¨õ"š‚*†³þl×ó{NîùE­Š|óßfzC¸’´h‚˜‘§å})èTçÒ=!"ȬˆÅÈ1F#.K øG¨1:Š@!$±S+E’Ë2[6m_£ú‘Q¿«ö÷Üih†6Tm%FҔÒÚ¿CUþ>ï4&X…â|äU#.ˆ™ýP”µ¯Ö32èBêx%’ҝ“¨üX,š‰E#+®lŠlcQ6²Ú(ڐƱ›fbÙ¤Óß<òړV‚EDé¥Ñ‹´Bƒ÷Äp¿PÓÿK¸Ðóì'¹òù¿Qƒ§IÞ¯xA4é#)̓æxüúªjú2*h¹ ýZ®³ƒâ·±Ò v’,uŒrS€©–SD{!¤>§5EWªÿ‹°±’#.¤æÒ|Š¡õQàgHb&7 (ÛhÁ²}ð6'#)‹EvD-Y†—”`~L”}6DÄP䞰*"‚H/­P(	!ûî“)ABÁÈS(DMµRj–өί¦íå1eKš›kØL#%?²H+¤ ‰B°yÀÌÊ´Ô}ˆ°@O¦¡Rz¸yú^5@{<±¬ËFyݾópbܵ™ƒF#‘Ⱦ…³«8–”€çòPœ$råCͤHȔ9ÚÀJՋm£ŽqqÌÅ÷`vLnö;vÞ°ßm&_›	#)˜󱉒i˜],{AÜ>¸ó€%‚šwT0‰"‘‰²F‘¨ÍFŠ)(*#mŒš¨Sh߶­øÖ¼D¨Qµm%2€°©g¯²E YR@’ª$!<ĹEÑøÜ#)0U#@#xÑM=ýF›°RëÒä÷O¢;W^©h;.æ)#%_Þ©Z¼Ö‹j1ZR…Q¡6¦ËV-jik øQâoŽ~ž†ÿwom*²ÉIN~¼~¶}HR„)¯ñN4×ɌÔ¢hiY”ƒ§J)92MýÔdø§Ý…¢À´”—p§qÖ¬ˆmŽ%I#C£CÚDÏ÷°`6Q$ÞZY¨2Ú·ë-ÚlM©¯sa®RÑ»k»²¼kÍåkªmMoUrT[ÍÝfnÌÊ®¹»ksª¬‹-^]ØÍk»«»µ¤ÙRTȔØÖ󺷚kή¯8‘%N#.U„†)Q£m”a¦b-¥4¶MI–UÊ×VòêëÏ;[xÔ[(ÌʲÙK^Mº»·Yc5eÓ]&憃&Ø28„Hb¨µH¤- f—3ø{¤š‡2IÃC‘6¬Kø™Óþ!¢ñ°˜)|ê4Ïh-RÚ»ñh\>ª3™„º)Pü’a1T.^üLȸ P"ÁÕº­*?˨Òs‹Ë<%ÈÇ­Wô›òý˜#%'ªIvN$zû´§Ã0ô³z+¤+¦÷co'™¶“‹Ûg#%‡[Q¬ly7žâ\H[»^9ý—èDèfB§xÁ–YcS{é[§#.š`SS9¹„c}^Ff̅:³ëÛÎ „QGÊ)ȼ.#)õêLoÑ_²ö’jt##..2³/ff6«".ïÈ°÷e$¿ÆGFd	¼ŸöZÇC§ÒJÒt͞[ñÖëCHbyq•-…-Q”4ÅHǏÌ5¬vÕfõ9ï’z™ÀHZ[!KPÓM;¯Fø!Äëƒ]Îñ©ðm.2Pk¦EðùéZy²MÑ@Ÿnu»Ò'ŠÖp`Àí@~¶.JgÊMæ2˜´©A‚i°¸èÍÉT5Ÿsƒ#%[L„̃mG„/¹2u…™ówö>DâP½ÔÙ.H°½#¨cÌ-–%¢–œjèˆf·~³}8#%þèÆ’Áf.PÁ°ƒØ—#%N+ÆÔû¾RA†Ê/ÑâP;nh|x2Ùv÷a&tQÜqš _ë¥jIb8iÕëñ2È©I1Iс™Áüdf•,?{U¶å{h„æv+åV¶ómA¸(¡“üt,Åqw•Ò‚kă#t[#)B®©Ã£¿M¤Z Ñ¬šˆ…m)x{˔loaÊ!"0ŽCTö /m 6‹2”2\ BC‘Ü”iüu¼Ìå†j– ¯Ô#%ݖÜy£ÀÃĚì=föü7œÍ£Èˆb\\,äuþ¼ÌH\‰¨úSˆ>Uü>Kü+×Ôk¹ºž! ƒùåÑ#%»/v+qAÎxÐ"¸@±HlèÅ7ëúJÆS¼øxD%sî=Ìøo> õã^9øhÑ{æ\Ɋ„ÇóYU´÷øýý?ð§ÝþßÿßgþÝßíÿíÿûÛþŸ/ý~oþ_ãþ?åÿ—éÙ³æù>þ¿ïø¿þÿü)þÏTnÿwû¿ýø¿Æñÿñÿûþïø×þ~_Ÿ¿áþ_ñÿ‡ü?çÿ7ùv—þ>˜’ÿõÿ/×ö}qúÕ{‡Üááî€A#%úBÀq\Š¸ñ$D5’¦²àû?L`…Q#)“!=¬ìUs0)»ÏÞ¿ƒ?±îwv$$ÌÏ¿­õÛ$6 J#–“! 6»B³M¢e´Ì¢Ìi¬€ 6Çû,íÿMì¦È	Ò?ëÛ·Zcž²‚æˆ-ÉÞ-¼£ø‰‹Ùý U$æqäW„bA€µ|îÌ3ñŠ?0<ü€¬#%j=?êЦwk|Ï?Ê?ñ²Ob±ãú±xRëܲ¥Ï<#)4ÉÓÏû¬Úd ±`ºh<&XAׇ·ÿ—¹ÉªrI@í{öö?ýúìùg>2֘æ;XÊÈÎålÌÿ?``ڕ5$CS#^Ý­1±­êh$qƆËH‡®a†Ïý4j™U;Ú7­¼{òÒÁ§ì3žÇZqHúv†q›7u¦ˆÔm+J†¢>·ƒ#)î•v­SfÝZM3Z2Ài™ˆ˜©BE’D »k¤	3/~ÉfÂÉw$`‘°†¸m믱XœÞ);¹<è’ZPî‘ÙÖF³‡Û&ôU7Σ³eTæsãÍåŸì´°›?ºè#)”+Š™‹ –ˆ™•’1µËÎؼ¶@Ë´¡û_$q3„ÕúŠ+Tþ	­ál!‹–ºÌÓ§"×¥Ð6+R§—Ë./KþÕP/§± ²äñç³æ…šóo5S܊SàÆÓbcãI<H‰‡˜gՄ»…#äirF„ð¥eÁý¼ÞýφÜ0Ƽ*¨´•7— WN>%v]‰W©Æs3PEATiq„Ñ<í׉n6,	¬Ù	2BiÖì—#)NJÁJX©Ø,Š1ÔxŒwÜ°•d#%Pc$A4ò$¤7»J¹.2Ê”$®õ=^wµÒ÷¾I·ÿ¶ýA˜_¢ÁËi;Mb1€@‰€'4 änÈÒ[¯hCœ!#%¨ÔHJ¶”$jÅĨ”5QjÊS+lZ’Ô¦’E†##f¾Û¶®­môúv­~sA€@S³3‘í ™Ä?ȈÂ+~uRÔU¦Ê)^1·ß¿%Õ|=ÜíSlÚÁëåî#%Oº<Ê?瑆q•»ê¬‡ÉÑ ¿”ÄÐÿµz˜ÆGâÖkÏhÄ`Š!ï¯GJNöØuàÛ7—¾ZÈ/¬2GMµ,g/ÿeþzkë	6KuFªi½Û#.áwÉmò´–ù×XÐqzo“OJzØ?OÁôø‰‰Øx23œ–heM*š<37Ëщ&ǸàŒ'Ƌ#)D'ÂoYv¢÷÷Ý+fã7±44~ç—°àð³eÃ,­øÇW’@Qb“V·Øݚ6üƽZ@Öæ¹´›GѶ橥F7‹mê_#.Ö÷1ªMe ¶ß9ªæÛ|$,ÖìÍZ#.^ðª%ØqC“‘FL⩉ë¥?Iz6n°;¤ƒ$ˆàÃ@Q¡Òë±s¬lØP¦‰On½d—ß>Cª<*¸,XûêJ9…¤aîÿ¸~‹òa&Ân Ñ$Y#%‘›G¸R¿ê½GÍÙG†Ou£›éÞ/vòŒÿÒÀ+p‡‚ûô¨?ú¢#%‚†·Z;­Ñ%(TX¢0€$aˆ*ÐÁ#)‘$"Ä!æ”ñ„ 2@Š uú}~܎ÿ˜ÿ_:‰Ô„wsñã;{¥ßTÇ#)µÚÐ>ýÎ¥º%¢ô:§ŒO|±QIÝôý¡÷þ#%"?èÓöÁÖ;Üø A@X"ÿ(E¯ûÆÜ-?‹û#.R?ÆÿöÀ#.§œÄÆÛÿá°ÿ¸-Ãü5]Àِ¯¸%«Aþî÷õÛö¶*üžO‹àëòߝ9*çÇy9S¢<xì¿¢„xüŽÐ>2ØxË|<þNq;b3mÿÍcÅÀhÿ¸@ìùʧŽ1@û¿ðÒí‰øKÀ¢Ñøqd}ý8ºâ²½ÂÎö.P®¢lÑÿ÷Ò#¯ãªßäf'þ]#%†èJH?¨FÊ?Ž¥ú¨µœ•ÛÄ⨊gMWŒ³˜50ï‘Ä>>½§NÚ gA••äç,Má†/-„±¿Ñ8¨–¼­§0aw<}9æ@Lë(œwª¿{Öë³%Š^²kŠ+Ãçë¢Æ#)úöfgÒpÜÏ}_ñ¬	¤©±Ž¨ÈûKö¶’HÆy‡Fѧþ&:Ÿ¸ü¦F?èý(¢ÿrE8P¹÷{
+#<==
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..2219b6e
--- /dev/null
+++ b/wscript
@@ -0,0 +1,63 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+VERSION = "0.1.0"
+APPNAME = "ndncert"
+BUGREPORT = "http://redmine.named-data.net/projects/ndncert"
+GIT_TAG_PREFIX = "ndncert"
+
+from waflib import Logs, Utils, Context
+import os
+
+def options(opt):
+    opt.load(['compiler_cxx', 'gnu_dirs'])
+    opt.load(['boost', 'default-compiler-flags', 'sqlite3',
+              'coverage', 'sanitizers',
+              'doxygen', 'sphinx_build'], tooldir=['.waf-tools'])
+
+    syncopt = opt.add_option_group ("ndncert options")
+    syncopt.add_option('--with-tests', action='store_true', default=False, dest='with_tests',
+                       help='''build unit tests''')
+
+def configure(conf):
+    conf.load(['compiler_cxx', 'gnu_dirs',
+               'boost', 'default-compiler-flags', 'sqlite3',
+               'doxygen', 'sphinx_build'])
+
+    if 'PKG_CONFIG_PATH' not in os.environ:
+       os.environ['PKG_CONFIG_PATH'] = Utils.subst_vars('${LIBDIR}/pkgconfig', conf.env)
+
+    conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'],
+                   uselib_store='NDN_CXX', mandatory=True)
+
+    USED_BOOST_LIBS = ['system', 'filesystem', 'iostreams',
+                       'program_options', 'thread', 'log', 'log_setup']
+
+    conf.env['WITH_TESTS'] = conf.options.with_tests
+    if conf.env['WITH_TESTS']:
+        USED_BOOST_LIBS += ['unit_test_framework']
+        conf.define('HAVE_TESTS', 1)
+
+    conf.check_boost(lib=USED_BOOST_LIBS, mt=True)
+    if conf.env.BOOST_VERSION_NUMBER < 105400:
+        Logs.error("Minimum required boost version is 1.54.0")
+        Logs.error("Please upgrade your distribution or install custom boost libraries" +
+                    " (https://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)")
+        return
+
+    # Loading "late" to prevent tests to be compiled with profiling flags
+    conf.load('coverage')
+
+    conf.load('sanitizers')
+    
+    conf.write_config_header('src/ndncert-config.hpp')
+
+def build(bld):
+    core = bld(
+        target = "objects",
+        features=['cxx'],
+        source =  bld.path.ant_glob(['src/**/*.cpp']),
+        use = 'NDN_CXX BOOST',
+        includes = ['src'],
+        export_includes=['src'],
+    )
+
+    bld.recurse('tests')