diff --git a/mainui b/mainui index 9b328b4c..e36175ae 160000 --- a/mainui +++ b/mainui @@ -1 +1 @@ -Subproject commit 9b328b4c135b58bee660e4088605f590bd2de57c +Subproject commit e36175ae03e0664d5fb316fd726c5006124b7875 diff --git a/scripts/waflib/clang_compilation_database.py b/scripts/waflib/clang_compilation_database.py deleted file mode 100644 index 4d9b5e27..00000000 --- a/scripts/waflib/clang_compilation_database.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -# Christoph Koke, 2013 - -""" -Writes the c and cpp compile commands into build/compile_commands.json -see http://clang.llvm.org/docs/JSONCompilationDatabase.html - -Usage: - - def configure(conf): - conf.load('compiler_cxx') - ... - conf.load('clang_compilation_database') -""" - -import sys, os, json, shlex, pipes -from waflib import Logs, TaskGen, Task - -Task.Task.keep_last_cmd = True - -@TaskGen.feature('c', 'cxx') -@TaskGen.after_method('process_use') -def collect_compilation_db_tasks(self): - "Add a compilation database entry for compiled tasks" - try: - clang_db = self.bld.clang_compilation_database_tasks - except AttributeError: - clang_db = self.bld.clang_compilation_database_tasks = [] - self.bld.add_post_fun(write_compilation_database) - - tup = tuple(y for y in [Task.classes.get(x) for x in ('c', 'cxx')] if y) - for task in getattr(self, 'compiled_tasks', []): - if isinstance(task, tup): - clang_db.append(task) - -def write_compilation_database(ctx): - "Write the clang compilation database as JSON" - database_file = ctx.bldnode.make_node('compile_commands.json') - Logs.info('Build commands will be stored in %s', database_file.path_from(ctx.path)) - try: - root = json.load(database_file) - except IOError: - root = [] - clang_db = dict((x['file'], x) for x in root) - for task in getattr(ctx, 'clang_compilation_database_tasks', []): - try: - cmd = task.last_cmd - except AttributeError: - continue - directory = getattr(task, 'cwd', ctx.variant_dir) - f_node = task.inputs[0] - filename = os.path.relpath(f_node.abspath(), directory) - entry = { - "directory": directory, - "arguments": cmd, - "file": filename, - } - clang_db[filename] = entry - root = list(clang_db.values()) - database_file.write(json.dumps(root, indent=2)) - -# Override the runnable_status function to do a dummy/dry run when the file doesn't need to be compiled. -# This will make sure compile_commands.json is always fully up to date. -# Previously you could end up with a partial compile_commands.json if the build failed. -for x in ('c', 'cxx'): - if x not in Task.classes: - continue - - t = Task.classes[x] - - def runnable_status(self): - def exec_command(cmd, **kw): - pass - - run_status = self.old_runnable_status() - if run_status == Task.SKIP_ME: - setattr(self, 'old_exec_command', getattr(self, 'exec_command', None)) - setattr(self, 'exec_command', exec_command) - self.run() - setattr(self, 'exec_command', getattr(self, 'old_exec_command', None)) - return run_status - - setattr(t, 'old_runnable_status', getattr(t, 'runnable_status', None)) - setattr(t, 'runnable_status', runnable_status) diff --git a/scripts/waflib/cxx11.py b/scripts/waflib/cxx11.py deleted file mode 100644 index 5b9e0619..00000000 --- a/scripts/waflib/cxx11.py +++ /dev/null @@ -1,51 +0,0 @@ -# encoding: utf-8 -# cxx11.py -- check if compiler can compile C++11 code with lambdas -# Copyright (C) 2018 a1batross -# 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. - -from fwgslib import get_flags_by_compiler - -# Input: -# CXX11_MANDATORY(optional) -- fail if C++11 not available -# Output: -# HAVE_CXX11 -- true if C++11 available, otherwise else - -def check_cxx11(ctx, msg): - try: - # not best way, but this check - # was written for exactly mainui_cpp, - # where lambdas are mandatory - ctx.check_cxx( - fragment='int main( void ){ auto pfnLambda = [](){}; return 0;}', - msg = msg) - except ctx.errors.ConfigurationError: - return False - return True - -def configure(conf): - conf.env.HAVE_CXX11 = True # predict state - if not check_cxx11(conf, 'Checking if \'{0}\' supports C++11'.format(conf.env.COMPILER_CC)): - modern_cpp_flags = { - 'msvc': [], - 'default': ['-std=c++11'] - } - flags = get_flags_by_compiler(modern_cpp_flags, conf.env.COMPILER_CC) - if(len(flags) == 0): - conf.env.HAVE_CXX11 = False - else: - env_stash = conf.env - conf.env.append_unique('CXXFLAGS', flags) - if not check_cxx11(conf, '...trying with additional flags'): - conf.env.HAVE_CXX11 = False - conf.env = env_stash - if getattr(conf.env, 'CXX11_MANDATORY'): - conf.fatal('C++11 support not available!') - diff --git a/scripts/waflib/deps.py b/scripts/waflib/deps.py deleted file mode 100644 index f216515b..00000000 --- a/scripts/waflib/deps.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# Michel Mooij, michel.mooij7@gmail.com - -from waflib import Utils -from waflib import Errors - - -def get_deps(bld, target): - '''Returns a list of (nested) targets on which this target depends. - - :param bld: a *waf* build instance from the top level *wscript* - :type bld: waflib.Build.BuildContext - :param target: task name for which the dependencies should be returned - :type target: str - :returns: a list of task names on which the given target depends - ''' - try: - tgen = bld.get_tgen_by_name(target) - except Errors.WafError: - return [] - else: - uses = Utils.to_list(getattr(tgen, 'use', [])) - deps = uses[:] - for use in uses: - deps += get_deps(bld, use) - return list(set(deps)) - - -def get_tgens(bld, names): - '''Returns a list of task generators based on the given list of task - generator names. - - :param bld: a *waf* build instance from the top level *wscript* - :type bld: waflib.Build.BuildContext - :param names: list of task generator names - :type names: list of str - :returns: list of task generators - ''' - tgens=[] - for name in names: - try: - tgen = bld.get_tgen_by_name(name) - except Errors.WafError: - pass - else: - tgens.append(tgen) - return list(set(tgens)) - - -def get_targets(bld): - '''Returns a list of user specified build targets or None if no specific - build targets has been selected using the *--targets=* command line option. - - :param bld: a *waf* build instance from the top level *wscript*. - :type bld: waflib.Build.BuildContext - :returns: a list of user specified target names (using --targets=x,y,z) or None - ''' - if bld.targets == '': - return None - targets = bld.targets.split(',') - for target in targets: - targets += get_deps(bld, target) - return targets - diff --git a/scripts/waflib/force_32bit.py b/scripts/waflib/force_32bit.py deleted file mode 100644 index c8be5a24..00000000 --- a/scripts/waflib/force_32bit.py +++ /dev/null @@ -1,55 +0,0 @@ -# encoding: utf-8 -# force_32bit.py -- force compiler to create 32-bit code -# Copyright (C) 2018 a1batross -# 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. - -from fwgslib import get_flags_by_compiler - -# Input: -# BIT32_MANDATORY(optional) -- fail if 32bit mode not available -# BIT32_ALLOW64(optional) -- ignore all checks, just set DEST_SIZEOF_VOID_P to 8 -# Output: -# DEST_SIZEOF_VOID_P -- an integer, equals sizeof(void*) on target - -def check_32bit(ctx, msg): - try: - ctx.check_cc( - fragment='''int main( void ) - { - int check[sizeof(void*) == 4 ? 1: -1]; - return 0; - }''', - msg = msg) - except ctx.errors.ConfigurationError: - return False - return True - -def configure(conf): - if check_32bit(conf, 'Checking if \'{0}\' can target 32-bit'.format(conf.env.COMPILER_CC)): - conf.env.DEST_SIZEOF_VOID_P = 4 - else: - conf.env.DEST_SIZEOF_VOID_P = 8 - if not conf.env.BIT32_ALLOW64: - flags = ['-m32'] - # Think different. - if(conf.env.DEST_OS == 'darwin'): - flags = ['-arch', 'i386'] - env_stash = conf.env - conf.env.append_value('LINKFLAGS', flags) - conf.env.append_value('CFLAGS', flags) - conf.env.append_value('CXXFLAGS', flags) - if check_32bit(conf, '...trying with additional flags'): - conf.env.DEST_SIZEOF_VOID_P = 4 - else: - conf.env.DEST_SIZEOF_VOID_P = 8 - conf.env = env_stash - if conf.env.BIT32_MANDATORY and conf.env.DEST_SIZEOF_VOID_P == 8: - conf.fatal('Compiler can\'t create 32-bit code!') diff --git a/scripts/waflib/fwgslib.py b/scripts/waflib/fwgslib.py deleted file mode 100644 index e7cdee0d..00000000 --- a/scripts/waflib/fwgslib.py +++ /dev/null @@ -1,30 +0,0 @@ -# encoding: utf-8 -# fwgslib.py -- utils for Waf build system by FWGS -# Copyright (C) 2018 a1batross -# 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. - -import os - -def get_flags_by_compiler(flags, compiler): - out = [] - if compiler in flags: - out += flags[compiler] - elif 'default' in flags: - out += flags['default'] - return out - -def get_flags_by_type(flags, type, compiler): - out = [] - if 'common' in flags: - out += get_flags_by_compiler(flags['common'], compiler) - if type in flags: - out += get_flags_by_compiler(flags[type], compiler) - return out diff --git a/scripts/waflib/gitversion.py b/scripts/waflib/gitversion.py deleted file mode 100644 index b26316b0..00000000 --- a/scripts/waflib/gitversion.py +++ /dev/null @@ -1,33 +0,0 @@ -# encoding: utf-8 -# gitversion.py -- waf plugin to get git version -# Copyright (C) 2018 a1batross -# 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. - -import os - -def get_git_version(): - # try grab the current version number from git - version = None - if os.path.exists('.git'): - try: - version = os.popen('git describe --dirty --always').read().strip() - except Exception as e: - pass - - if(len(version) == 0): - version = None - - return version - -def configure(conf): - conf.start_msg('Checking git hash') - conf.env.GIT_VERSION = get_git_version() - conf.end_msg(conf.env.GIT_VERSION if conf.env.GIT_VERSION else 'no') diff --git a/scripts/waflib/msdev.py b/scripts/waflib/msdev.py deleted file mode 100644 index df6b2ca9..00000000 --- a/scripts/waflib/msdev.py +++ /dev/null @@ -1,774 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# Michel Mooij, michel.mooij7@gmail.com -# modified: Alibek Omarov, a1ba.omarov@gmail.com - -''' -Summary -------- -Exports and converts *waf* project data, for C/C++ programs, static- and shared -libraries, into **Microsoft Visual Studio**, also known as **msdev**, -project files (.vcproj) and solution (.sln) files. - -**Microsoft Visual Studio** is a mature and stable integrated development -environment for, amongst others, the C and C++ programming language. A free -version of this IDE, known as the *express* version can be obtained from Microsoft -at http://wwww.visualstudio.com. - -Description ------------ -When exporting *waf* project data, a single **Visual Studio** solution will be -exported in the top level directory of your *WAF* build environment. This -solution file will contain references to all exported **Visual Studio** -projects and will include dependencies between those projects and will have the -same name as APPNAME variable from the top level *wscript* file. - -For each single task generator (*waflib.TaskGenerator*), for instance a -*bld.program(...)* which has been defined within a *wscript* file somewhere in -the build environment, a single **Visual Studio** project file will be generated -in the same directory as where the task generator has been defined. -The name of this task generator will be used as name for the exported **Visual -Studio** project file. If for instance the name of the task generator is -*hello*, then a **Visual Studio** project file named *hello.vcproj* will be -exported. - -Example below presents an overview of an environment in which **Visual Studio** -files already have been exported:: - - . - ├── components - │ └── clib - │ ├── program - │ │ ├── cprogram.vcproj - │ │ └── wscript - │ ├── shared - │ │ ├── cshlib.vcproj - │ │ └── wscript - │ └── static - │ ├── cstlib.vcproj - │ └── wscript - │ - ├── waf.vcproj - ├── appname.sln - └── wscript - - -Projects will be exported such that they will use the same settings and -structure as has been defined for that build task within the *waf* build -environment as much as possible. Note that since cross compilation is not -really supported in this IDE, only the first environment encountered that -is targeted for **MS Windows** will be exported; i.e. an environment in -which:: - - bld.env.DEST_OS == 'win32' - -is true. - - -Please note that in contrast to a *normal* IDE setup the exported projects -will contain either a *debug* **or** a *release* build target but not both at -the same time. By doing so exported projects will always use the same settings -(e.g. compiler options, installation paths) as when building the same task in -the *waf* build environment from command line. - - -Usage ------ -**Visual Studio** project and workspace files can be exported using the *msdev* -command, as shown in the example below:: - - $ waf msdev - -When needed, exported **Visual Studio** project- and solution files can be -removed using the *clean* command, as shown in the example below:: - - $ waf msdev --clean - -Once exported simply open the *appname.sln* using **Visual Studio** -this will automatically open all exported projects as well. - -Tasks generators to be excluded can be marked with the *skipme* option -as shown below:: - - def build(bld): - bld.program(name='foo', src='foobar.c', msdev_skip=True) - -''' - -import os -import sys -import copy -import uuid -import shutil -import xml.etree.ElementTree as ElementTree -from xml.dom import minidom -from waflib import Utils, Logs, Errors, Context -from waflib.Build import BuildContext -# import waftools -# from waftools import deps -from deps import get_targets -from subproject import get_subproject_env - - -def options(opt): - '''Adds command line options to the *waf* build environment - - :param opt: Options context from the *waf* build environment. - :type opt: waflib.Options.OptionsContext - ''' - opt.add_option('--msdev', dest='msdev', default=False, action='store_true', help='select msdev for export/import actions') - opt.add_option('--clean', dest='clean', default=False, action='store_true', help='delete exported files') - - -def configure(conf): - '''Method that will be invoked by *waf* when configuring the build - environment. - - :param conf: Configuration context from the *waf* build environment. - :type conf: waflib.Configure.ConfigurationContext - ''' - pass - - -class MsDevContext(BuildContext): - '''export C/C++ tasks to MS Visual Studio projects and solutions.''' - cmd = 'msdev' - - def execute(self): - '''Will be invoked when issuing the *msdev* command.''' - self.restore() - if not self.all_envs: - self.load_envs() - self.recurse([self.run_dir]) - self.pre_build() - - for group in self.groups: - for tgen in group: - try: - f = tgen.post - except AttributeError: - pass - else: - f() - try: - self.get_tgen_by_name('') - except Exception: - pass - - self.msdev = True - if self.options.clean: - cleanup(self) - else: - export(self) - self.timer = Utils.Timer() - -def export(bld): - '''Exports all C and C++ task generators as **Visual Studio** projects - and creates a **Visual Studio** solution containing references to - those project. - - :param bld: a *waf* build instance from the top level *wscript*. - :type bld: waflib.Build.BuildContext - ''' - if not bld.options.msdev and not hasattr(bld, 'msdev'): - return - - Logs.pprint('RED', '''This tool is intended only to ease development for Windows-fags. -Don't use it for release builds, as it doesn't enables WinXP compatibility for now!''') - - solution = MsDevSolution(bld) - targets = get_targets(bld) - - saveenv = bld.env # root env - for tgen in bld.task_gen_cache_names.values(): - if targets and tgen.get_name() not in targets: - continue - if getattr(tgen, 'msdev_skipme', False): - continue - try: - bld.env = get_subproject_env(bld, tgen.path, True) - except IndexError: - bld.env = saveenv - if set(('c', 'cxx')) & set(getattr(tgen, 'features', [])): - project = MsDevProject(bld, tgen) - project.export() - - (name, fname, deps, pid) = project.get_metadata() - solution.add_project(name, fname, deps, pid) - - solution.export() - - -def cleanup(bld): - '''Removes all **Visual Studio** projects and workspaces from the - *waf* build environment. - - :param bld: a *waf* build instance from the top level *wscript*. - :type bld: waflib.Build.BuildContext - ''' - if not bld.options.msdev and not hasattr(bld, 'msdev'): - return - - targets = get_targets(bld) - saveenv = bld.env - - for tgen in bld.task_gen_cache_names.values(): - if targets and tgen.get_name() not in targets: - continue - if getattr(tgen, 'msdev_skipme', False): - continue - try: - bld.env = get_subproject_env(bld, tgen.path) - except IndexError: - bld.env = saveenv - if set(('c', 'cxx')) & set(getattr(tgen, 'features', [])): - project = MsDevProject(bld, tgen) - project.cleanup() - - solution = MsDevSolution(bld) - solution.cleanup() - - -class MsDev(object): - '''Abstract base class used for exporting *waf* project data to - **Visual Studio** projects and solutions. - - REMARK: - bld.objects() taks generators are treated as static libraries. - - :param bld: Build context as used in *wscript* files of your *waf* build - environment. - :type bld: waflib.Build.BuildContext - ''' - - PROGRAM = '1' - '''Identifier for projects containing an executable''' - - SHLIB = '2' - '''Identifier for projects containing a shared library''' - - STLIB = '4' - '''Identifier for projects containing a static library''' - - C = 'c' - '''Identifier for projects using C language''' - - CXX = 'cxx' - '''Identifier for projects using C++ language''' - - def __init__(self, bld): - self.bld = bld - - def export(self): - '''Exports a **Visual Studio** solution or project.''' - content = self.get_content() - if not content: - return - if self.xml_clean: - content = self.xml_clean(content) - - node = self.make_node() - if not node: - return - node.write(content) - Logs.pprint('YELLOW', 'exported: %s' % node.abspath()) - - def cleanup(self): - '''Deletes a **Visual Studio** solution or project file including - associated files (e.g. *.ncb*). - ''' - cwd = self.get_cwd() - for node in cwd.ant_glob('*.user'): - node.delete() - Logs.pprint('YELLOW', 'removed: %s' % node.abspath()) - for node in cwd.ant_glob('*.ncb'): - node.delete() - Logs.pprint('YELLOW', 'removed: %s' % node.abspath()) - for node in cwd.ant_glob('*.suo'): - node.delete() - Logs.pprint('YELLOW', 'removed: %s' % node.abspath()) - for node in cwd.ant_glob('*.sln'): - node.delete() - Logs.pprint('YELLOW', 'removed: %s' % node.abspath()) - node = self.find_node() - if node: - node.delete() - Logs.pprint('YELLOW', 'removed: %s' % node.abspath()) - - def get_cwd(self): - cwd = os.path.dirname(self.get_fname()) - if cwd == "": - cwd = "." - return self.bld.srcnode.find_node(cwd) - - def find_node(self): - name = self.get_fname() - if not name: - return None - return self.bld.srcnode.find_node(name) - - def make_node(self): - name = self.get_fname() - if not name: - return None - return self.bld.srcnode.make_node(name.lower()) - - def get_fname(self): - ''' Returns file name.''' - return None - - def get_content(self): - ''' Returns file content.''' - return None - - def xml_clean(self, content): - s = minidom.parseString(content).toprettyxml(indent="\t") - lines = [l for l in s.splitlines() if not l.isspace() and len(l)] - lines[0] = '' - return '\n'.join(lines) - - -class MsDevSolution(MsDev): - '''Class used for exporting *waf* project data to a **Visual Studio** - solution located in the lop level directory of the *waf* build - environment. - - :param bld: Build context as used in *wscript* files of your *waf* build - environment. - :type bld: waflib.Build.BuildContext - ''' - - def __init__(self, bld): - super(MsDevSolution, self).__init__(bld) - self.projects = {} - self.xml_clean = None - - def get_fname(self): - '''Returns the workspace's file name.''' - return '%s.sln' % getattr(Context.g_module, Context.APPNAME) - - def export(self): - '''Exports a **Visual Studio** solution.''' - dst = self.get_fname() - - s = MSDEV_SOLUTION - - with open(dst, 'w') as f: - for line in s[0:3]: - f.write(line) - for name, (fname, deps, pid) in self.projects.items(): - sid = str(uuid.uuid4()).upper() - f.write('Project("{%s}") = "%s", "%s", "{%s}"\n' % (sid, name, fname, pid)) - if len(deps): - f.write('\tProjectSection(ProjectDependencies) = postProject\n') - for d in deps: - try: - (_, _, pid) = self.projects[d] - except KeyError: - pass - else: - f.write('\t\t{%s} = {%s}\n' % (pid, pid)) - f.write('\tEndProjectSection\n') - f.write('EndProject\n') - for line in s[3:8]: - f.write(line) - for _, (_, _, pid) in self.projects.items(): - f.write('\t\t{%s}.Debug|Win32.ActiveCfg = Debug|Win32\n' % (pid)) - f.write('\t\t{%s}.Debug|Win32.Build.0 = Debug|Win32\n' % (pid)) - for line in s[8:]: - f.write(line) - Logs.pprint('YELLOW', 'exported: %s' % os.path.abspath(dst)) - - def add_project(self, name, fname, deps, pid): - '''Adds a project to the workspace. - - :param name: Name of the project. - :type name: str - :param fname: Complete path to the project file - :type fname: str - :param deps: List of names on which this project depends - :type deps: list of str - ''' - self.projects[name] = (fname, deps, pid) - - -class MsDevProject(MsDev): - '''Class used for exporting *waf* project data to **Visual Studio** - projects. - - :param bld: Build context as used in *wscript* files of your *waf* build - environment. - :type bld: waflib.Build.BuildContext - - :param gen: Task generator that contains all information of the task to be - converted and exported to the **Visual Studio** project. - :type gen: waflib.Task.TaskGen - ''' - - def __init__(self, bld, gen): - super(MsDevProject, self).__init__(bld) - self.gen = gen - self.id = str(uuid.uuid4()).upper() - self.type = self.get_type(gen) - self.language = self.get_language(gen) - self.buildpath = self.get_buildpath(bld, gen) - - def get_type(self, gen): - if set(('cprogram', 'cxxprogram')) & set(gen.features): - return MsDev.PROGRAM - elif set(('cshlib', 'cxxshlib')) & set(gen.features): - return MsDev.SHLIB - else: - return MsDev.STLIB - - def get_language(self, gen): - return MsDev.CXX if 'cxx' in gen.features else MsDev.C - - def get_buildpath(self, bld, gen): - pth = '%s/%s' % (bld.path.get_bld().path_from(gen.path), gen.path.relpath()) - return pth.replace('/', '\\') - - def get_fname(self): - '''Returns the project's file name.''' - return '%s/%s.vcproj' % (self.gen.path.relpath().replace('\\', '/'), self.gen.get_name()) - - def get_root(self): - '''Returns a document root, either from an existing file, or from template.''' - fname = self.get_fname() - if os.path.exists(fname): - tree = ElementTree.parse(fname) - root = tree.getroot() - else: - root = ElementTree.fromstring(MSDEV_PROJECT) - return root - - def get_content(self): - '''Returns the content of a project file.''' - root = self.get_root() - root.set('Name', self.gen.get_name()) - root.set('ProjectGUID', '{%s}' % self.id) - configurations = root.find('Configurations') - for configuration in configurations.iter('Configuration'): - configuration.set('ConfigurationType', '%s' % self.type) - configuration.set('OutputDirectory', '%s\\msdev' % self.buildpath) - configuration.set('IntermediateDirectory', '%s\\msdev' % self.buildpath) - for tool in configuration.iter('Tool'): - name = tool.get('Name') - if name == 'VCCLCompilerTool': - tool.set('PreprocessorDefinitions', '%s' % self.get_compiler_defines(self.gen)) - includes = [] - for include in self.get_compiler_includes(self.bld, self.gen): - includes.append('%s' % include) - tool.set('AdditionalIncludeDirectories', ';'.join(includes)) - if name == 'VCLinkerTool': - if self.type == MsDev.PROGRAM: - # Force Windows Subsystem - # TODO: this isn't enables Windows XP compatibility! - tool.set('SubSystem', '2') - self.update_link_deps(tool) - self.update_link_paths(tool) - files = root.find('Files') - self.update_includes(files) - self.update_sources(files) - return ElementTree.tostring(root) - - def update_includes(self, files): - '''Add include files.''' - includes = [] - for filtr in files.iter('Filter'): - if filtr.get('Name') == 'Header Files': - for include in filtr.iter('File'): - includes.append(include.get('RelativePath')) - break - if len(includes) == 0: - filtr = ElementTree.SubElement(files, 'Filter', attrib={'Name':'Header Files', 'Filter':'h;hpp;hxx;hm;inl;inc;xsd'}) - filtr.set('UniqueIdentifier', '{%s}' % str(uuid.uuid4()).upper()) - for include in self.get_include_files(self.bld, self.gen): - if include not in includes: - ElementTree.SubElement(filtr, 'File', attrib={'RelativePath':'%s' % include}) - - def update_sources(self, files): - '''Add source files.''' - sources = [] - for filtr in files.iter('Filter'): - if filtr.get('Name') == 'Source Files': - for source in filtr.iter('File'): - sources.append(source.get('RelativePath')) - break - if len(sources) == 0: - filtr = ElementTree.SubElement(files, 'Filter', attrib={'Name':'Source Files', 'Filter':'cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx'}) - filtr.set('UniqueIdentifier', '{%s}' % str(uuid.uuid4()).upper()) - for source in self.get_genlist(self.gen, 'source'): - if source not in sources: - ElementTree.SubElement(filtr, 'File', attrib={'RelativePath':'%s' % source}) - - def update_link_deps(self, tool): - '''Add libraries on which this project depends.''' - deps = tool.get('AdditionalDependencies') - - deps = [] # clean out deps everytime - - libs = self.get_link_libs(self.bld, self.gen) - for lib in libs: - dep = '%s.lib' % lib - if dep not in deps: - deps.append(dep) - if len(deps): - add_deps = " ".join(deps) # work around when converting to vcxproj by inserting spaces - tool.set('AdditionalDependencies', add_deps) - - def update_link_paths(self, tool): - deps = tool.get('AdditionalLibraryDirectories', '') - deps = [] - dirs = self.get_link_paths(self.bld, self.gen) - for dep in dirs: - if dep not in deps: - deps.append(dep) - if len(deps): - tool.set('AdditionalLibraryDirectories', ';'.join(deps)) - - def get_metadata(self): - '''Returns a tuple containing project information (name, file name and - dependencies). - ''' - name = self.gen.get_name() - fname = self.get_fname().replace('/', '\\') - deps = Utils.to_list(getattr(self.gen, 'use', [])) - return (name, fname, deps, self.id) - - def get_genlist(self, gen, name): - lst = Utils.to_list(getattr(gen, name, [])) - lst = [str(l.path_from(gen.path)) if hasattr(l, 'path_from') else l for l in lst] - return [l.replace('/', '\\') for l in lst] - - def get_compiler_options(self, bld, gen): - if self.language == MsDev.CXX: - flags = getattr(gen, 'cxxflags', []) + bld.env.CXXFLAGS - else: - flags = getattr(gen, 'cflags', []) + bld.env.CFLAGS - if self.type == MsDev.SHLIB: - if self.language == MsDev.CXX: - flags.extend(bld.env.CXXFLAGS_cxxshlib) - else: - flags.extend(bld.env.CFLAGS_cshlib) - return list(set(flags)) - - def get_compiler_includes(self, bld, gen): - includes = self.get_genlist(gen, 'includes') - for include in bld.env['INCLUDES']: - root = bld.path.abspath().replace('\\', '/') - pref = os.path.commonprefix([root, include]) - if pref == root: - node = bld.root.find_dir(include) - if node: - includes.append(node.path_from(gen.path).replace('/', '\\')) - - deps = Utils.to_list(getattr(gen, 'use', [])) - for dep in deps: - uselib_incs = bld.env['INCLUDES_%s' % dep] - for uselib_inc in uselib_incs: - root = bld.root.abspath().replace('\\', '/') - pref = os.path.commonprefix([root, uselib_inc]) - if pref == root: - node = bld.root.find_dir(uselib_inc) - if node: - inc = node.path_from(gen.path).replace('/', '\\') - includes.append(inc) - Logs.pprint('YELLOW', 'Added relative include: %s' % inc) - includes.append(uselib_inc) - return includes - - def get_compiler_defines(self, gen): - defines = self.get_genlist(gen, 'defines') + gen.bld.env.DEFINES - if 'win32' in sys.platform: - defines = [d.replace('"', '\\"') for d in defines] - defines = ';'.join(defines) - return defines - - def get_link_options(self, bld, gen): - flags = getattr(gen, 'linkflags', []) + bld.env.LINKFLAGS - if self.language == MsDev.CXX: - if self.type == MsDev.SHLIB: - flags.extend(bld.env.LINKFLAGS_cxxshlib) - else: - flags.extend(bld.env.LINKFLAGS_cshlib) - return list(set(flags)) - - def get_link_libs(self, bld, gen): - libs = Utils.to_list(getattr(gen, 'lib', [])) - deps = Utils.to_list(getattr(gen, 'use', [])) - for dep in deps: - try: - tgen = bld.get_tgen_by_name(dep) - except Errors.WafError: - uselib_libs = bld.env['LIB_%s' % dep] - for uselib_lib in uselib_libs: - libs.append(uselib_lib) - pass - else: - if self.type == MsDev.STLIB: - libs.append(dep) - return libs - - def get_link_paths(self, bld, gen): - dirs = [] - deps = Utils.to_list(getattr(gen, 'use', [])) - for dep in deps: - try: - tgen = bld.get_tgen_by_name(dep) - except Errors.WafError: - uselib_paths = bld.env['LIBPATH_%s' % dep] - for uselib_path in uselib_paths: - root = bld.root.abspath().replace('\\', '/') - pref = os.path.commonprefix([root, uselib_path]) - if pref == root: - node = bld.root.find_dir(uselib_path) - if node: - libpath = node.path_from(gen.path).replace('/', '\\') - dirs.append(libpath) - Logs.pprint('YELLOW', 'Added relative library path: %s' % libpath) - dirs.append(uselib_path) - pass - else: - if self.type in (MsDev.STLIB, MsDev.SHLIB): - directory = '%s\\msdev' % tgen.path.get_bld().path_from(gen.path) - if directory not in dirs: - dirs.append(directory.replace('/', '\\')) - elif self.type in (MsDev.PROGRAM): - for directory in tgen.lib_paths: - if directory not in dirs: - dirs.append(directory.replace('/', '\\')) - return dirs - - def get_include_files(self, bld, gen): - includes = [] - for include in self.get_genlist(gen, 'includes'): - node = gen.path.find_dir(include) - if node: - for header in node.ant_glob('*.h*'): - includes.append(header.path_from(gen.path).replace('/', '\\')) - - for include in bld.env['INCLUDES']: - root = bld.path.abspath().replace('\\', '/') - pref = os.path.commonprefix([root, include]) - if pref == root: - node = bld.root.find_dir(include) - if node: - for header in node.ant_glob('*.h*'): - includes.append(header.path_from(gen.path).replace('/', '\\')) - - return includes - - -MSDEV_PROJECT = \ -''' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -''' - -MSDEV_SOLUTION = [ -'Microsoft Visual Studio Solution File, Format Version 8.00\n', -'# Visual Studio 2005\n', -'Global\n', - 'GlobalSection(SolutionConfigurationPlatforms) = preSolution\n', - 'Debug|Win32 = Debug|Win32\n', - 'EndGlobalSection\n', - 'GlobalSection(ProjectConfigurationPlatforms) = postSolution\n', - 'EndGlobalSection\n', - 'GlobalSection(SolutionProperties) = preSolution\n', - 'HideSolutionNode = FALSE\n', - 'EndGlobalSection\n', -'EndGlobal\n', -'\n'] diff --git a/scripts/waflib/reconfigure.py b/scripts/waflib/reconfigure.py deleted file mode 100644 index 333e64ac..00000000 --- a/scripts/waflib/reconfigure.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -# Copyright (c) 2019 mittorn - -''' -Reconfigure - -Store/load configuration user input - -Usage: - def options(opt): - opt.load('reconfigure') - - def configure(conf): - conf.load('reconfigure') - - ./waf configure --reconfigure -''' - -from waflib import Configure, Logs, Options, Utils, ConfigSet -import os - -import optparse -STORE_PATH = 'build/configuration.py' - -def options(opt): - opt.add_option('--rebuild-cache', dest='rebuild_cache', default=False, action='store_true', help='load previous configuration') - opt.add_option('--reconfigure', dest='reconfigure', default=False, action='store_true', help='load and update configuration') - -def configure(conf): - store_data = ConfigSet.ConfigSet() - options = vars(conf.options) - environ = conf.environ - if conf.options.reconfigure or conf.options.rebuild_cache: - store_data.load(STORE_PATH) - if conf.options.reconfigure: - for o in options: - if options[o]: store_data['OPTIONS'][o] = options[o] - store_data['ENVIRON'].update(environ) - store_data.store(STORE_PATH) - conf.environ = store_data['ENVIRON'] - conf.options = optparse.Values(store_data['OPTIONS']) - else: - store_data['OPTIONS'] = vars(conf.options) - store_data['ENVIRON'] = conf.environ - store_data.store(STORE_PATH) - \ No newline at end of file diff --git a/scripts/waflib/subproject.py b/scripts/waflib/subproject.py deleted file mode 100644 index 270ff3ef..00000000 --- a/scripts/waflib/subproject.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -# Copyright (c) 2019 a1batross - -''' -Subproject tool - -Helps you have standalone environment for each subproject(subdirectory) - -Usage:: - def configure(conf): - conf.add_subproject('folder1 folder2') - - def build(bld): - bld.add_subproject('folder1 folder2') -''' - -from waflib import Configure, Logs, Options, Utils -import os - -DEPTH = '' - -def depth_push(path): - global DEPTH - - DEPTH = os.path.join(DEPTH, path) - # print DEPTH - -def depth_pop(): - global DEPTH - - DEPTH = os.path.dirname(DEPTH) - # print DEPTH - -def depth(): - global DEPTH - return DEPTH - -def opt(f): - """ - Decorator: attach new option functions to :py:class:`waflib.Options.OptionsContext`. - - :param f: method to bind - :type f: function - """ - setattr(Options.OptionsContext, f.__name__, f) - return f - -@opt -def add_subproject(ctx, names): - names_lst = Utils.to_list(names) - - for name in names_lst: - depth_push(name) - - wscript_path = os.path.join(depth(), 'wscript') - - if not os.path.isfile(wscript_path): - # HACKHACK: this way we get warning message right in the help - # so this just becomes more noticeable - ctx.add_option_group('Cannot find wscript in ' + name + '. You probably missed submodule update') - else: - ctx.recurse(name) - - depth_pop() - -def options(opt): - grp = opt.add_option_group('Subproject options') - - grp.add_option('-S', '--skip-subprojects', action='store', dest = 'SKIP_SUBDIRS', default=None, - help = 'don\'t recurse into specified subprojects. Use only directory name.') - -def get_subproject_env(ctx, path, log=False): - # remove top dir path - path = str(path) - if path.startswith(ctx.top_dir): - if ctx.top_dir[-1] != os.pathsep: - path = path[len(ctx.top_dir) + 1:] - else: path = path[len(ctx.top_dir):] - - # iterate through possible subprojects names - folders = os.path.normpath(path).split(os.sep) - # print(folders) - for i in range(1, len(folders)+1): - name = folders[-i] - # print(name) - if name in ctx.all_envs: - if log: Logs.pprint('YELLOW', 'env: changed to %s' % name) - return ctx.all_envs[name] - if log: Logs.pprint('YELLOW', 'env: changed to default env') - raise IndexError('top env') - - -def configure(conf): - if conf.options.SKIP_SUBDIRS: - conf.env.IGNORED_SUBDIRS = conf.options.SKIP_SUBDIRS.split(',') - -@Configure.conf -def add_subproject(ctx, names): - names_lst = Utils.to_list(names) - - if isinstance(ctx, Configure.ConfigurationContext): - for name in names_lst: - depth_push(name) - if name in ctx.env.IGNORED_SUBDIRS: - ctx.msg(msg='--X %s' % depth(), result='ignored', color='YELLOW') - depth_pop() - continue - saveenv = ctx.env - ctx.setenv(name, ctx.env) # derive new env from previous - ctx.env.ENVNAME = name - ctx.msg(msg='--> %s' % depth(), result='in progress', color='BLUE') - ctx.recurse(name) - ctx.msg(msg='<-- %s' % depth(), result='done', color='BLUE') - ctx.setenv('') # save env changes - ctx.env = saveenv # but use previous - depth_pop() - else: - if not ctx.all_envs: - ctx.load_envs() - for name in names_lst: - if name in ctx.env.IGNORED_SUBDIRS: - continue - saveenv = ctx.env - ctx.env = ctx.all_envs[name] - ctx.recurse(name) - ctx.env = saveenv diff --git a/scripts/waflib/sdl2.py b/scripts/waifulib/sdl2.py similarity index 91% rename from scripts/waflib/sdl2.py rename to scripts/waifulib/sdl2.py index 368eecc1..39ba179e 100644 --- a/scripts/waflib/sdl2.py +++ b/scripts/waifulib/sdl2.py @@ -64,6 +64,11 @@ def configure(conf): uselib_store='SDL2') except conf.errors.ConfigurationError: conf.env.HAVE_SDL2 = 0 + + if not conf.env.HAVE_SDL2 and conf.env.CONAN: + conf.load('conan') + conf.add_conan_remote('bincrafters', 'https://api.bintray.com/conan/bincrafters/public-conan') + conf.add_dependency('sdl2/2.0.9@bincrafters/stable', options = { 'shared': 'True' } ) if conf.env.HAVE_SDL2 and conf.options.SDL2_SANITY_CHECK: try: diff --git a/scripts/waflib/xcompile.py b/scripts/waifulib/xcompile.py similarity index 98% rename from scripts/waflib/xcompile.py rename to scripts/waifulib/xcompile.py index d4d60d9d..3244a95a 100644 --- a/scripts/waflib/xcompile.py +++ b/scripts/waifulib/xcompile.py @@ -11,7 +11,8 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -from fwgslib import get_flags_by_compiler +try: from fwgslib import get_flags_by_compiler +except: from waflib.extras.fwgslib import get_flags_by_compiler from waflib import Logs import os import sys diff --git a/waf b/waf index c8dade98..652bae2b 100755 --- a/waf +++ b/waf @@ -32,13 +32,13 @@ POSSIBILITY OF SUCH DAMAGE. import os, sys, inspect -VERSION="2.0.12" -REVISION="009555f9c2f7207a25556e6aa50119b7" -GIT="88e9382f1be4083121fe73d9172addafdf42f3c7" +VERSION="2.0.17" +REVISION="0b58f6af6b52bcb6cae0b82df8107844" +GIT="31da55afb92d9865019eb5193e874d1ffb86c522" INSTALL='' -C1='#-' -C2='#,' -C3='#$' +C1='#9' +C2='#7' +C3='#/' cwd = os.getcwd() join = os.path.join @@ -160,10 +160,10 @@ wafdir = find_lib() sys.path.insert(0, wafdir) if __name__ == '__main__': - + sys.path.insert(0, 'scripts/waifulib') from waflib import Scripting Scripting.waf_entry_point(cwd, VERSION, wafdir) #==> -#BZh91AY&SY$h 0#$(b #$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$}:٨S]5v MBlf[5َ#-&fFg/k"ôix}}Fv⼸I-7^T:.|{쮙G>:zxn9w]ۄzӶuo5}d*#$#$#$#$G'Ҥ#$E=Қh#$AQ:t]*mP) HIR*P((v#$4uoׯ#,IƯRKwwF$ص4[WWd} wS޾ى][[}u{;w{-zt>M_]nQ{yGt5R #$#$0t+Tvu}Ι#$yozBE{#$PT#-DN:f`ʹ׷kJwv{޼\U@0;kw{Ϟu_z{P;ޜyz{^#-hRz}m1Tֹ wnuswo{#O5I;.:u˷׻([u[#-K;{=#{mOznry#-Z[sW׹=w}{޶\X{onݝ{-ܙCSgϯw+-zTJ#-!)@qg*vv΃/PO3^M+:GuK5==좻{s(p[;L׳u#$#,n@Uww2}w'6=ʟ5{-ܴoL4͝|{wW5H ޸.z׶w{{ U@[n %Nm|}>qۻoml7>wW>!I:qe6落|;s88^&z6 ZT0UQ{ol0lj!پ=z|}Ok6mM۞CFt#$>ocO[m )tуPϽwlEY^u#-&n>=U#--={rj{q]y׏7Ynvg{igT.fg5w可o^hu}]uٍQƷ4m;c^cm:#-zxssBSH#$ #$#@d#$LFMMH@2!@@@ #,O&Pښ42h#$#$#$#$A" M|Pܳ^4 E2"|W率}Xpp0Q`whS5⸿Sd*>+(vDͱ)'92z) `o"uiWQf#,ǓK`A a>ӡJCmCժ&zB㜺.\ۥUͺyhب5Z4E-)!Qq#iNwqSH&eUOpi#M+ʊCWXYcԷ~z1K‚7mZ((UFxZX-&;U`ek]Y)*E "3 Y@H~_]XUKFCD)bQ#,PJ^u `~k2c)>xW#- Q _o,z%5Fynȁ&w,j+h_J)b(,iFs]-^EIMD4*IuOU!v齘OTYalT4PaLֶjϵ!SCJTdȠjBmU{/#,EQ7ŴT4]E2R]U";F5jxiKS/^,0آ7a$%;Kudɳ&(*7f^,Ҩ%uah;e(@좀NUOGߪy;c5m.+QCR݋DgD9z01w 8}Já2<,""%7w3'n\4ғ7Z9OYяyά0hUIB#"siMF+>8ҹ9(F* mRK,nHriY2ݐa[SS]eD˲4#,>?49y=|{ʮ5#- D`΋S.)ur_4ꅙ$ğ?gHؼYF!&:Τ3N8r">su{G z27W3\2熴zm.2>H=voϭ#-QU);eCPBDI ?]\t΍">ϯO'3A8&XFr7Ck˜a{p'!ܨ4=G^ff}-ڦp)ϫ`WVm?yz KJudV)gҒjp>9 ֫*#,M#,Ǩ2vca GsO%NJI mֻJ\?#-IbyO^~5MauFDܜg NГ;X]i?HďnaL Ӎ7ׇ-98xMhE&׮VA1[/E_Ncpg3WM+HlEM}}=>}l<} AXA B:ZPPy"QXe$Q%#-a>еTEhAQX>Ww_{iZZWEIQTYUϓ=b}oiVTx]*5Sʨ4Q(PzT8hݔ*"Ek\:'?٭<*#,:-<R唠Mѕb:]ƶ& :Fc~EB4Θڞ'.?+,پ / ҭBAH yӎlY_~#,k4I=<9SeT|)h8\w_S8pC!!2-)p"Ѯ|sιߎsBL9!e1g&}kquwi$c0R|gÏL.:*!|MX(EBv/5W1)$@j^ #>4Ǎ#,ׇT-V˂°kZ[aƑ!\V+Z5_*yޣW~7/j)P9(M/4=>9H W㣺M)gpxb{Qnη[r)aA&u+`\;UqJ%.ZxZϞ\scd=k<艏USorΕd6UNS'|c\{FW.3k8wN;# L%Tc,>) #6;wqa TŜKm5=[X?&vs"szm͐mIR#$IM޴wcܥpr0תX .#$>^33c4Dc"bjю5tθ&JET*wg}">ޙNiR#-(c:zmuVFzUGkZ_o#-s XJ|3wpoΜ7T=h84VSZdR)9:sI'Uy{H=#,sx-k#׆,,^zG,#-X?tͽUQ9c:L]փ*}i dBHC֚9v )li#Zhd!~/?ʡiop!jx#5 /s EYk:~@jur8p#s[\vԢ\uPXl3m}fjIzKqeEg=Zkh:,'`V\j}XCPjsAFiA_NR:o\ѦoU8@+3x]7)'DeHꋪ[9mAmO#$CnTf(X0b]K#,WBnjz%3y9:,+k:fuk3E+m"q'3#, 5P$ ]/Y' 4 0ǔ%k˯]#-12N Dmyδ9Tv-b埪tm>_#,h2l7fAOh2U0ʌL-).S_0^j#,DGWgYb#賆֢PlP173=.uJVTv;\\u]ru^}"KZb7Kg#,>s֮틚t9y=z4A"ԶDO_oΪ냈/@6VHsx:Ll6'dЃgC9Tc8V03eLn)VnYŨ#zFNu[}$)t˹燽eu6P-?\6w r4$E5=tXd]QS;Gɋr_-C#-CkV>CO#,ʕx#D(߮"(Ĥ#(ORuTvnZT?yy-|s*!w0CU$Z>{ۜ]">N?[Hv);9zA8D|,tcl|*!"RDvt@ᓒWUtWjq1¦/\)!&_{XDFPtJtM0fg_wRVfF~9mpuLt\\S8li;6oT vv}rYRݩq]߼Z)qH{1iFdK1&YA#-9 83{`9vmZsyPNqf[ֺ͇߮v>3z1.Z\z>R-X:8K'duvZ9_aX92>˥;zy`u^#,XNźiXR^7yg(ʹFC k#,&E\Сܴnny5h0Z!}ꑶlMfQcL:UKQzyKEL??\[.N?5%|۸TM bb~;g@hF.rUU#CFvJɾY;]qȉ(9۠'[cݱ n/6|\3w~G4+Fk[?#-78O_c D^~"{t?h2CX߁rwas/8~LU#$8}BLS $2i~l'XGm.A/C;Zzɡt +moB[剿n6P#-'oZu{6ow=vcCޛٶ=7*䧚N`2#$;}51Sa@$2ffd v~̲wY D?_voT8QT::ȵB cUQ.!a0ZQk0܏__#~nckLlb$"~gΏ"0#$߽^ZB?a׉$Cj>~8?mV%W(G0#$5ʠFږ_#,e{${i~`1+?)з6|`fgq$굩_,g}?F<.3/yW:gM5B5~xQeUUt#Q֜|/ i8z;}>Ŧ_&,~E Ƚ7}uxu4;V~6r#,}G㟋qZM҈ioW[%tS>ܳf4XHSsIg)?xN\\vgUӔQv Lhw3ٿ(*\#}>^IR-rB`m2Hٝ_ő,zE"& Ϩjk 69eiZ<>8hZqG@y̭y.*#}_ mRH73l SѼ-#-!rfl'V4 eK ?2U}m$3a"eR>#,ۡseKp_ÑZðv%6g#{`,d>,ôOti6,##,=}7Zk['7#-NsCXhK y6l:]%llozI3\qRi"nG:p-pm/3`ZL#,v\m?\|3;L|>ːi#$Wڤ^j0t#$cC#p[168{zsN5_U˩/ӿ_;Aq#$gFwFN50fxRjH;@X",7)n2pCL$.̣{qoW#\@q^ot)zfs&U-rq.F"bw4gh<"\9; 1R4JdI#-@Z㠈:\!#,Ut\>8-xɝ#,6ABLEBپuNɧfXqĴ>Dz6%rsB)2ABL YssQROu; 1"# _ l{\!JPI1ٖ١ZLLE[nj0$Z>7uy)%0\Ʉ,1R W֩3 =uWxB$1BPՉdBqRN/g#$b0´qHID`EL7r0CBxFسNM43Z`bA`A#$ag#,_jpt^|J)ISc=c:+)#,P~SU»S_He4lZJ\rU"-sӢ)=kBݛ]k7YיUHV'E*5aǰ[tQ9X9bcWw]Po8ȫڸD7dha,Ե;إکzkj3EM'Y+7u'6C,'+KO8=Mz(@шs1I::2 #Co,:ݙĈóȻ%Í^r{>K׽,n$qJWa[ܣVkh]KdZY&OAՎKe4slnG[O8,}YE/kۉ1.a&vKU} gاڧ^ϭ~Zm!?plO+>/v=6I|c^8x=#-͖uB"&*U~eaFv)  kkO6֫N䆤2e01#-,#,bS"M|Ŷab#$:{w2j>06G-$wH7SQޒNO$Jwgߑmh_XJK{,08,zdmݩxX C[.8P,"S"o*!WTCyp2b P #-'<^pֆ d)e!eP?}XD2gZiD|zCM*&̥d=Cnq+|#k\gX}5ͫ2q?Fpg6hp 3#,֛Ւ,`Bo,6&r\ff)hnil] rW3hR4&D2QZJ`!d?*`+K,F8!3e l"@g÷g{{O&߻ϟ--'k5_jvېcLbщ(#,-ȡT0TèE`V(c`aR DPi¦ZN~NYHź@Q;2=WRIR3S/ჵ4v0]쫐-m"@l97k#.FU__ht~#-쉔jRC2|ԫFўRǛp$DӡGqB (6lC;\lȦif6!24cwxlq]` jI$k\T"pC?FTIDV#-Y-v\kG/Ec8qHMVj(dvMw 56>|lSeF׷>G8>ӓnNHX6"F&aσBHje:q&Ld HDsfWn$"ȵ7?k||#,dlF:G4SZLx9T1pCP&0>הv}m13zXYR"hwkļ|1Uo|#$ k흂MFmreZH66R#!U\ÆA%ht:',N0ogGƞQȟ>My`8H^%#-&g#!HourS3&Aa5{k}-3x<]ۑ2rf=5)H$˓Ԉ,6 6Emj-mmwםc$ҝXYH#,Fa"y#,w^%SVщXXgWGQt#$1`p/Cv~Cqo!Y&{W5s-f]Mӄ)asf~>$s;oow_EMV7?P-h#O8uՖPǚ:]/?}Kxo(x{N̳oeY蟽\HPEh"%D͕,J/8MlU ӶEw:!jٽR~C7X*N'*CHVԘ3 M"uWѫk%tBCd+, A#- _eLE)J #-{N5x-Awk{on:J*sO+*Wm6e_kN&/Rx>iuq! k,űVݿ6kw2.&|haX}g7Vvoǃ)Y7,wHt\jt!q֑a}xh,6t(\ϲ9SGgE潔WwY8>/^1//8)|kHvȜ}jiʖilDtdc€^P8jߎh;rAnuZ|I")V>'lizamǟe;2SvxC.oZ5tGƈd:NEH$ܕR?e$ɜ#-[l%'CANW4 N]NAL6U_4>l+'|FR&EjB~?)l6=#$n9#@cs88>~I4 Cc 1et7BIsyT$quSnz%m=y8azߚx͍|>vr:V< KDBI47]3яwGNܔşg X7oJ.0 ) Y%SA"@":=>]4N7كOP[7veѻ_gjwcV_vy|V!MOa}]Zp} "뇏~|[_wUſ_7$3cNUC˟U~ZgUխ |5EO#-/nx~-:=#-;+wZtXvzuJΪ᫛ɮSq=={ͽޯ,U6/ )eG,%Bz >ɷ&'#k2Šy{ 9B mAYɞ4䇸)ϫ^>}cʓ[ZC_Z=ro?'Vng?T'Sf=xTʭ'\5Br|:?ga|YG\4!G"Qc|8Jc7Or$p?weZ]5UЎ:N@%>_-}ƣ,zv]Uʬmo]Ue4wG}P\R@^* .R1}W헋nr#,<>_VI?Chm×FzMu+Tۣ\}2.ȮL 元ܜ|l՞UG埲Oȇ#,,qVTN$AruAk9I#,Uz)F^VnRզyϜJij32FfXLePr ##-~_JkPaPmR8<RIb4CCXH*J76mp=3֤On `a-AaFd&B)cAEeq8wŌkq$]X$~9]rhG#9!#ohW}R#,X/uoYȔ?~ UZ\µ;sױG!D."U j@gP{E4 H@bi71lXTQ&FCV6ƛfJlm%#-BSh>&x=hmXWB4?ˣ;1ODKu+Vs+V/#n9}~^CwH3xAqݿWR~yq'2g~:FJF?;mֽPm~ZSIǶzGrh8w56$,#(q?gOLײS',A+]HL>%EF10yrn}~#-:wKl+K7 .}cJyï'w_{9uB:p?wM4V)բEm(d#bX*5G /ty9fRɲ!Um(clH#֡SӑDA61D 2(-p#,Q)+oZd--RD- E#- LdI7)nBTPTJ!70e[0 kyU:RL1 6-!ittYKk$-%d(&Ӌ0q-n[qR("ȕ1SDlzL;4UQ9Aچ3XbL:%BCD?,ɳ8+qBmHVɢɛM5>yGMe2=bgODmMt&vOOcxyul|u=^-4 :*K+3㕿kF+EM6A):)|[>A92% pi?(WgGg$=6ܫDѲ$qҵiB?i.9t\#!EM܄ 1Ը=ٷG$4;U֒9s(IBϮmNx-sRLYz啂-;%XqVt_>b-$ @w(p#5jfJcU!Pn΅TfO-B mTw$E_n'$S#5=#,nW[!Q]MaSmR62B8!b?˦mR2#,أg=8;goo?$s#$L$ɂ1qaLs(V_i141-6R65E75@sc0OSꦘ߅a221W0k 8#3 (T`ȋQ`tzm/Dbkf< F9҈A,k!mb{&"I5bLjf#,U`Fٝ j9PuGJ>uNX3+dp&C5"$Bc-!B)2LKDh,j8NXkYX6РMՀ 6҅QǪM4{{7t˅t/ w$i@OAj] 7x0#-TVMqiɐWaßT><JF5yjec4ma7ԢpqWDXeBN C C._Vq Xj#1[یj7 4m`kPCjRn݇yö?uyĈxb,N)Lktp#$Ba:D.[jAHI÷L[I`V&5>D={7xNtówJm-vv#-C:!m8uveSuf'<3b  pCeqpJ'J1!5U$Q>qzH[~5~#-pN67-yCKR ~iːUgaޭ.-cA@<[~uN){.`rtM}>#-sq[<{D3^E:_3闙R*~TY&\H(u5R9x#kM!umfW6owg+;5 0;cVR=-neR 7K?PmV6!##&b}g)IV\.Bm0JdɋaGhZ+RG,KqY}/nQb%6ՙ?$I'$kdv%!#-2ltKEB|#-{ڼό'yum!K=Gmm3:O#-"q)6΁mCٔ, Bŵ؝rؚ)F&/~O}9fo+J1$x]Dd{t&AY1ↇ'dR,a؄>rhϬv~n7I>z>/ igN{<jif#Y[!+6?=23 RS.U8CI6z~4xb#,_K͌AG! C!v4Ʃ1ce.df\AD}މ2Grɧ鶖#-l(jjqr#-LAl#Xs$*tM#-ғ#,$!vpbQ&Onٶ8mS9lsE7ʰ1Adx(rf^ۅi愍r T%&&Z7W6d r=ϻczy.nڡ-\eNid++ u vˣC-m0"ESu.;E-/a H 0N3\Jܘ! hȯ_ 'Mg#,O*T\T?Pݚį͛](:*PGzGQ#h, Pc9=iodӍkֶRpM9:nڠ,5o/!:dψA|>ch3yeښݪ#-?Q4>\λ*W,bqnj<5MFێ !'YC<.1NVIEyάyb^j~8z(WV8謽uu7CyYj'O%ʕ9#8>D?R]T(i#_m#u&,$ZBIl\țݖB` #,(xCVK[r#xq[Qx0a![}OݠICg9]86[@Bjޡfu28K\Af2{(A(}441_*t΋9J4<}[>=<; Z=3i4pQ1sZ-39g"ZX=N[l2Eqy5cs=z/#,>J_zn;έ1'fk4o@ Bẙdܓ*v#,xjZ2#-z\w(eS,Z.}cjgjpYifyZï1#-)uQM #-RBuzf8ֲ*sCJnzmϖ2Qw/zg6.(n{]5Qo]x#Z4o|y'ySwdcOd{\Jdq+q Tز<#,'ߕN#,:(J[֞c'_ S2+l1:+Eu8XD(Y筺sёRnyC\іS]sIF*R)sĕ菦133X'~ZLgxSo4{}n(ӳnvr#--H_6^/"[nكhx>=x|oKs9On9e17e J1:}wT|}:/y=2lTvU5D*b}tV+!IgpXlW__kXԮvߢn2jq%IMʫE\-svҾZܲ0|-'1y͝QppqۊLwsX]{Vgǯk>8;ws8mZw16O&?dVMK>{dy _.|ev MHǵr`R!+"B¡P8:Sv#-J՞\^xg~z\(XE{V9Y=#f+=TܻB@/_^!r bsCLxV+z]l;{qW#-F2dr)=Pe)p*}d>L-DC?^j*_*uJaC{v7_vyQ?5B(H[ؕ\RYU#,97IB:,vڶ@ΩC o܃u\ߒ4Y[Qz>/nlj\D3NJ1>8^Ԩo}ӎsMQcrZogfSr^0/,4MF{g{[?kYo2;G?>o_i>#,O5ޞGLA#,:D&/~la|*5RbJUo벋bϛc#-wK#,]N3bus%fnpѕ(c8c=TdВ75Z^[s)d,lLo'`c`#-:5IjJ#fع,Z^6SUϬmåȶys9 +E#-+ќ\udLCS#-*iONQzWWT:'m^HS=7GN r ::SU/k^tkv|4%VƶJzD0WSeٻ•6 q݂Le8tYGdኹ0+!Im|f47V' =l~xբh&C(9l4#-H@Yg[YZUWIG,N_Y#-?r`p\xnYuﵚ%o]&9n}YbyDXѷC3S!W33ipv:89/3ه]7w>Hu%>\~,P;jnZ}^QguP$ut >UsA]<1pеqQ}WH>b{<7e-4-Țx\Hۺm4y{h[uWˆ"-}gl~9s@_~Myl)t+riѾw.Qk7j_=EO=KۯŖ63+g7}.Y[$c(=EUR'x*}]U%Z6;lSP骐R

n+xy|OxH.V|WU|Uyz4EնBmzA4 W`}tSLz㍉/;FxΑvkyv_AmqhiA@uZ79%l\zCf|9.Y.|fpat+TS [t2,MjN`V_#-WqO6)*Fs}qwA؁?=16{Wos7-f= Nkly#-열J)o &ls#,ޠc{fF(= flvNvu6tCt}܃r5ּ_ѪPƶ^)Iޞ aӃ{/k=)S.b)m^ռ10B{1^F%sB4$c  f92uu١nY Ǖ$ah͌_:PeFЗTw{UЬsyOׂpgVQ^tuL鸘#,#$J[k ZO.oF#$}}7~Mߎ#,حݫH\QF m\mrBr#@ .iw\ݖCU796:ͺ #_<+]H&.]_6,9k{BGvݍ|PhwG^#,.cxWOev42˔[y1IGjңFw~j #-2 RM~aRŨm4ۤϒ>Eux/qߞ1wP$~>(nոFu%I$jJ*arA \ayuĨ꫼LsD*2, 4?S%"Ԗɱ+W\s b׵偡 2eIe*iHXA^,[*5E0Z(lB KU '%Rd)6wWeژl>+ra;;ĉyP}?rq^O9҇u{cd2__#,l;18ȝS|p%{}箟7:T9'%{#-[0oB/ePd^Gz(!8q۫o,8~Sz/~x7]WC*joQXnjZϾDl@9O"=jÀHc*2rQAٟtk4OFm7Rh=)#H^G6&m{n|I^!Cy<}oZOHQI9ï s27Yt5GVjHЏ5'6*1z9ZTIBzG_f{\g#,FHN\M1hs')d5D5@?'2t_h#$N:^pF"{v032\>,e:V3Bx7.09&a: Բӭu`@>P#,ѿ۰k9a?#,C)ĞŏEb3}a勞_|&,l|l0C&uk|@{K*gǭp1aMq ؑÖ^4;kz=\hg~;lj}u)`a"eWh2v#,!Ţ^i$*Ixf@`"?]!XG#kʩ aI]8e>pM"֙;i5=y@ֵ-?#,bRf%٭R1# (HE8GSyY7~P{r-p`e@ #vݶvR[6p۶},w pR  _4|L\7I5IRjuXrM^#EV9}1~9:uԠ_uv4ͥ3D|;!aފ_CQb Ri0ʅD_#,ZkGRdTg:oI}_|zFߺRPF:|Q9:+N{#z}'.p0g+#$ 涔%.icy因]buX?py&XCׯN_S2O-qGZ͙\0xBIR~z̎8?Q6,LZ [*sI(HZc>FtZk8o`_4NSHCLT[ǣ'v'4مnKl,^Z'P s-8%`KNrжolBkDϞ#--Qv&jA&bDb}%6\oҥqR[gM5ǜ6]u֤ vL1!0KIʧV_Ai#y"͔}T2CeC\iH5Abeq/6 ~nY ˒ nkgimRspIÙKN%Q|;(M-c3P[ڼI2D֖ V HEy9ıg#,)ur&*1x98ui8xE!J?h&LÛ#-T=5Nh[;dܯŎPFkK$Ok"{{j2@' Tp1i/JtjóψQOXwofF?tzm8#-.3IW#,O28${w#-Z|ōL/X"+$Z ^RV7tm1^KdJg_ྪF?1O}Srڟvj=39 [^/v/=eT6dõF{&oF l__g(FICExѲ?6C.붵iͶOmM#,ӌ#,_*.K٦6T>Q/)a,Dj#H+ѽ]#,GM#2,/vwfaLeX;ðs۰=% b(`L:tq_,&L"ۀ]Bji1hN_Z;gٍmeae[!sk4y :hn0oT)}XNIU+I7v)gw'æfjHAh ť+vNݫ<3:tLy_XhwNj֯aUD?X!.G+#$c`/BCpQݻO~0tO>QU`a$Et717넎q;fuUQ (͎hMN̙+t[5atך+N 嵞(B_e H"U&o[/kov'^"r/T#-N,O>jLs3n^6#,]*J!qTSlcfVy8?ۉDZya'\XrM2_S^#-4uqm;Qbϐv%Ba㬬qjnG~G\+"v^,=5=^..>.p^#,̾,('W;_7G_ߏY]41ZԣcA#$sP)#,P.)wCP"Z|, w7@oBF(Y DP&dKGU@AФKT&cE"d(ӀEec1|#ÄeSu-~Ԗ3 f;FP$CҁĠ˵%&.h0lLi2IӺ=!/_|K[$1Q?|)"%Jt4iC.|"yWzNzv~4TobCeӾGXd>'OwǨ==J4R$R0R"TZfJbgJ#ERxt囅G醰ˁxL.Lq ^5d!"hAEY+~5&ReM>Xn0#SqA'iƆwv;˘i27ڕ- b$SEv352S6IDq#$z9Q#-TtL6Rp@$Bb麎6P 6F&@UdXL`׳0(MB\uݭs7!D=Ն;HI#Z1'O]C8)w&1g/Nm J9'zy#֌Wb#-SnhmmZح1`bA1|ɘFml0WI”b(ʹb\ݚԒpL8HZ<.ܯ}S Si4;OU,No\H':Pgqk߇DžO#*wן6/DtB|E5_T̒hU#'=6;k(oE?=Gپ!p&[-El1L`@N61bTVaA~*tgH±C]qN+ԦNLu[gZ;` 2׉g0g`qBmri;Dfz;Zշ-ȧC#-:`g* sAS-Pzjֶ;5vT5ikH1#,h<מfc)\6b.D.ڰl6w3vw}F )y8.bTH&2 +{&CmtZeW^dg6AfhzT(Ud$^nvB]̋#-/6|O~B7'^O6,3q;biÖԙ8` E4^'+|>X؊ |BZlnE($'Y$S"p%D4绿v3Pݵ@C`f&$$l.sl2aia 8)b>Ap`n2V-Ҍ &w?j¢/$cP }| 3/HwcɊn#-QOX@ M6w⟢O~.i+8!wIPMx-oՀb΢o2PwbWpVrE@ /ts(XO0ᙽKYբ0m14R}vZXZ}r@ZmΉac:j +IGWEZqW"!C$1yD/8oсح$d033xg W'hWW[mgO9ZBqmR|_Ynڋ" ﵎4#$Iou^QUF1)rQb!D嵵 >ڢUJ?!?Χ/EO:_t)#EL)yPY{w犬o<`PHAR$.6#t"-%_y3/LŢjqcZ^p$#nI\!(C#NP(D?,km+p!"w]iYp9эO^y4~?G\UP~ۋtۺۻd7JmHΪUpi"AD\CJ#,6#,Hc4\ɞF#,=iFPRkxVC#:BGThWYJa:}?5&N2}0aє)X*,(o0;~Oǧ6m K:H_ۓȘL/4\H1znT QSΊ,Re|ﱪ6u 8U!Rۻt ?ʢFW#,aca5jg9mzk+ h˄ݯȹ., B Ǻ^"O5:Y#-^KcZd+Z[3-;a8_:O؅+Ymʵ n~rU;Q_zj{\;0=h)7{>^Zwc%K%IisTG\o&F;-Vb+3[/܉x/4WմqWY^oa"X3{hșčgk# qz&C%v/dwj8E~Ů8.yNLpes~RNxۢ?rhG!nUvˊ bRH!L*ϨΌnj靴VrsYƳQ~jq.-5Ǖg]uOP;c4Mw^#5zQM>PY!>ynnɻ뽫֫5/xn#2eay%Wa5ܲ0>ׄp('!cQ^>{,i9e-68?W9<6`5QjRw)ƭS9Q>͝8ޝMu#,2sQ,%ȵڝG}jl{|S(~>DKs֏ƇID+HwĞR9wRc~ϟ|sO3wBo{ 8mNBt(N祿R1;m.:U^?G|`nT}j۟""N]ovEfCeguf}m70F1:80{]xMvi]n:t=M~*"948PY)~ssZ[} >c g0wkک+g}cioY;*JE]4cetc#-1159&S"J;q;sّ4b=I@D .ЗM%'qdI9d6CH |!N:#w;ăo+1prZ>ϫ7HqOWo֍C.z3"pgF)a+{wk#,>o8EK:2 a̴=f9pV6q99-S5Jo*`¾zOΥ)[܆~wD5׻05z]9̻}pgjO xr[sI#-督Ά]])g=:ka//mqSV]NN1P>'5 0E|V6O]U2Da#-qW:'X2 :鐠>j-Q俦=]z=G8~O$p26<5 ]cC',EM}fmq/!{>Av~g^ ΘoxvL!( ϣh}IPÊ>C'E{(|DA3?_[ Dr AHM *-̎?{K)e<=OhQGַ:x)tN&N#,e.o;Ty::gԳte4jZh!f144ynF6T{"`!3gd`i- M ݦ>3kI<0AFKH}xBxWJQ"~TwUiqݥ%kRJ'lg|uqW-oQ$ވdndq}GV=:Zo z?0F$[E:c{zz+|:yRUЌ#-Ѕݝ+١D뤣";hПEPZXܗfIYU[{uO;8;'xҋ^{1!4I&E*+.Ϋl!8/v{Q,aebT;;>8\@Mz| #$L~1by_5QUOoYMbr4"9yKm44QH||tFfkwF}.vs(v$r#$N&x_ESN=#,k+? &tro5T |Y q=Vޓ6pM#,ȍџߋ(4g7[C#,q4ͲklfNÇep?NnӑgF^a%SS窝xzvv L M*O[DJ0SWqC!ȏڸR*_g'4-+g̿˜(&:Ų=:/o%/!0%j-L!4 (x+;8z{s^SE542/x&/' PoǭK4&dxZY-Ϸʾ6kuZ7s$ aMKP)ޠ pSkLݟ~]7d_a/nzcfB́{u}ZMkˮ{g߮]1^>Qgwۋ'^ 6[Zӈ?c|id#,R7r#ܟוonǦ^ܾRJӲm>!==:UhyA$]TG\owC?hSD?^D$훇܈&˲nR M<cqtGମU+o]kpfQl^7vVۼ&YӺq09 5*X@5sE<`ْfhy4e81Pb" ??t*>ZnD?>xnj|ޠzŤ|N{)3S#-P?Te˺L{RtԣoMFn䩜s>Rtzq\#-v&[9οw=`!1r"v(hg_ 4gᒚxpgL{d]MCjLlńOhJ|^8Wbmr' buPn')"絞-=:@/gakqh9;=SKg3:6Ӏ#Yo\$ܙI͐z1k}ݎ[4,LmM;fSm>X3]#$v=+0tj|&w9I!&I$;/;o/WvOAa~CSZw9N-QK-[rcBr6!1{?`y#OSmG,:c@\ R|mxG#,D\+_=Mel@ C0k?Ĭ {nNiѽv7e^:fÛ8jKWOqͨŴOX;b2Gm,:k#,hq͙S\d:e!t\Q9+캻֤λ;Rʷ='5"#,6xK1PY-ՠʳMUO;E+VzNe2ݥUD<*2 wI8byX>šN#,oymw*B0ZL[`Bd!ʕ#J&P;K8}ڷ7bUT1D1eJ-YW̤ĺ% *jjƦ,C`մ43PP5QZ;3c/-zHΝm=bsm$Hk /!+EIٶ?50ȖUJMyv-IX?]rqt{%enc)Ǟ K{̖CPy@&!DX M1Tf?Vz%_Cƚ;r(펾---#-WF]tV&ƷKwJ&l[_G[#,J2vvt?8ڤڪ"xfhf*!Kt#wR-gN=פϡAkv#-9ͶƿYciя8p}੾ڣ˻އ6it@od-A2%~~X/}=!'|l":}פ3^\jJe88hO<tl4#,c!#-z渴 AIm3,v{hа}e<%mk7/߶qC@v픶 h[ ZT5T=U;iP7ɤ^G>?+?ԥnqQ|G2z2CN=Ûqȥnf]#$<-+2;! B0&N tttvKE9Vr1W ǭЯ,5vuvsܬpқP 8=.epmOKÿyI峛=>/5  Bqm$~)j}"QNPs4XZ0׌(Tq#, kUN1Ph;AFWhpQa->ʦ`@'Meta{=qkXPO$ѣ33"B wI?5{re^$:BsF}>uU&{Ṿb\omq6xxf.ACAt#$9V)Fg}ie2 Cc$qtn|_Z},[BA%Ui$.\#,[_:Z+[iI{W+bp =!#-a˳r٪Fab`mH#-P4sf;Hn b`Ӹ-Eb#$ ֡@!U6z/3J7-.[#,kmm4͛Vb457ڣbD.ullu,%YHl9Z. ⴥ@{f@sw2{#,$tV7Gqlɓ$j-Z|?&O?#-$CB3>$$azA819FQM8rj($\Ba?=Olq7Xo0{( RZ?}HJ &DyV(D-<?ZuYP#,#-TydtXg~a1&?`2&fI&ǵ0wRh\ߊi37h7{s-Kd\E(4%8#$y1 pD P>Z#-V?uG쭔`RHX! >#- j2Kgc6`@UGw`9Okf1LHȨ$a%םρ4e8i2͇tӅH7OD%Ԑv?"سuJG9jUGMjˌBs݌qSb?n7=\^tψlsR2 pqgQVaܐhMl E#K{OeUO2~͂f!+#-hoX۸qr$]I~S_\Hhf(?1«l<>C?OͦMC#-r,Lwpea~?R~XfRo CFCdglN $gcVEEgW}/Uk!lbHB74?.DH\%g2M:lbohnA CLv)%NЇgq ]z dP ;C4 7Y#-DIgnY#,uXRyL\9*TGC0 )#4fffjMgI'_Hfdn}*ɨ"kUsuE F=y#$P a(̺b4#,$Ġ~οP^ioZ`/`op~ғH`tsaÍtީ7JM3"1B#,`:ǒ_s qEhFhiR#,2ꍔ#,>ӒRYR!$uI&jMb2SRZZifj^Yu.aGꙬ #, 7jxd{uc@(ڈdfi59{JS#$p”!NM#$ Ɵ$L|•6̚aŠsC벃|}ҍEB;¯W2׳WHg]JKuEB@#w;#,`,[zDi7RwI9QHLC%~f4>Z- #-5NiUެX0IA#$)lh$kɡd.I&؆DfeQ>oKKm)|pe#-|(z#w/X=e|2Sx068o'NRv$$X#,0?MUӌݩM".e #-I :݂>?٠y<-g3E&ҷza}9SΡh$ /o,"0v xf6v-HT$!!#U3C}MYnD8EVfeB@0bR%)Q2?}gzW,ؘǤ5Vw=уF(qHڷ2Oxb(Ѹ>Rbi H|#$bӸE 1_1bd/xjavgp F`G .,0Ȉ#$!qA"$o6?=[H "_uO^)gB DQ1@H{F9&<as^ϸl蛰ȡ&`C{ ;8@ n##$!5!3Ӑߵ7U9;x8swR$n7] 13J6vǫ'2k@:#-M8-I.y7(Cǭ  @O`Yܯaq|UCdP ѭ|& 3 PGҽpC@uwMwMo#)#,\Z369 A#hw7rXxy$ P#-I7-,8Hf#\2`.|@b2I$.*Q#-Y6,*tIDN}^!.'wZ 'cW֣NTc'"2l iF*Bh'U_;¹W|*J5Xi,Bvmc*\gI>FV vg,O+b/Qj.fEr,l[PZRy^DiQMȀ>0KU4pᱬ*蘑)Rq֡CJ}ϾC1TF2 "!g^m f9HG-,%9{wWK"!ZDY>]aBIh/=z%ؖ5QDN>QbJ)Ӽ|fy<fiGw.+惩qe=,B*#$vtbql}jY Lj5H$Iox49'E:_!mAYٴ ዒ7-Phw|O/}xgaM"t hwŦOyD%Zꪶb`~5||SK'!;~/ȁ#-xJ#-*SO$>2E" ƿ(*h-#0tl?[O^RSD8>.X)J#- GLϪVЀ8V&.}Mf'K_cEZ:F?kxXjrxoQoZQqщS9#$6L d]P5#$?|PAHK#$@eʀP*BMXɈ"Eb$KRE$0 U Ds]T3%D8tK#$El$#]2Z*`rK4= }ԭSXXXxH;RHuruO58ĸPPwHJ  viےG: ƍ&:&}{D#=(Q*`#JhdDfo\"!1ef2iƸ$[ōG Xl#,̺`%((8 $ZI#${/4a#hif&,A2YdH#-#$6.`ɓdK YJz]@Q˨y۝=B!oEH;8')'Er=q#$7J;zZN|jz*I]>ϺGHV.ϦO`ꊟ&Ilp`V 0_A6aa'۾M۫ZAMR<3P !E*q>]RD #G<:GҕV9g#- )ʎl ȿP¿s6,' T&I~F/8Xc8H * JD\?;-) :sUR A]`\z @G;Oӧy=#$3p~Wd*A#$v? %ŊDMOOiӒaߨ)a^*tZHpAr"l#,^AKsp"8!Ǥ;̌e|ctN79dGO9ac!=>}^#-K6ٟivٟ'k*gGVDJYɛ wDwऽo=I""iPR6rؐc݉u J?m^sqɏ=«:T9TMQ\ʨFk#-A>]7\a 6,w #$aMa&fyU؟[gBIUO#$>]d#IHeuˮNȬ5D(wծ ?1f#$ݫ .=zC#睷tfP9PTqn4HGB"#,^6)aJ@8޺|=}D7?d{V#,duqxvr9ri0#~kT`)<_g<#-C8>t`=вt4+\QV`RǛY}sG#$-`3=akn8tTfզaleh$Ƅ x_tMȒOo+ʇE- h&1,4}gِ sUIWƱ#$!>*sg6w|m:d]&3_uj "7dizf,P5b,p&ppRl~@fM p,sTX~ L~Ƈ? !DT 0Y'`\zxSޙL!2BWHX5g'^zTwFlԣr^yJ'(9,JA?2>wߑt#,[B5S@n4%#,e!{1*)7oA*s¾fb) RR1KnhUB1_f^+ R98!3cd99烃U4i>Ppobƈ枸ZՆ{~,dj,?o.o#$$#,sa7e?+$~})k>>hD#,r C0.`yO#$#$77/=LY7BBM#-IFjkv0#,N4"YGY :_f rQQEXBIՀъ4@?Lg GGmOK#-.M oڀFeʂWuG`6C ~gҌ9Ydo0 PtQ_mnjԺD>ת44+X '\4ӥmL09fE/#,~]_qmh҄t #,Uz;ᓼS[LU>E&Hi4ϊ^ti9SW#,w2QpV6!h>쉱7pt>5X'õ}$1WXa9?S=:K 4䴇Sq jV`qRweD_\P ߠZ!em3!cUu^U?(w|p|Q  Ԡ>#-%]v3*>wʬEx9T~ܒo1Ўع+˭v鷩ڣY#/T켷ZxJuճCg_V?c]z*6)A iVJc\ΙS7FFs5SCpPį/GoK'cQo=1hq8vYW%?>VF-4߿-sntJP%!=j;'U)e*T)>*MVvm'|#jwSke%_=3~>no?sPY0i/WO><#Qt"BM a`v-#,/Z}Wa mbl$ʉŐ;߉'=[jƊIksNK8e\>uNtK*Ʊe, _WGvOV< t_W&iyxT宆AKQ? FO3;>j䙒#$c >X~_sriiKqo]UUc`"k5 P,Ѳ.u#-wf]Qi )1B#y'Yxn{T62Ē_dIZa0lX,pz%yڦ "ˠu}q~]0tno1h#,aӈنǺ[Jw#-|$TXS@gY#,L#,^RT5E6jN̆;Ͷ7#$awdW)Z'G}c&XYS $,#wN\}"C@U?w!z3̴=Jh'o;kUjRz2#,wlMhoPϞ)T"jH:.L0aa5 X@ ("p}eː[a8t Fecܾ]tH#v<3.*i#,/?\~BӰ%ro:ۧWscW{(l9>}]UNA @ɆK "lAApieTA `VxG (C*IJ"#$ȼ??|K5F[/+/+Y~t4tn?bUY>#Y_jT!IWvݛ<q?74EUUUE` !NHFg6t5KQxQXo3%ht^H-is,h?i#,CO66͈49B#-m{A.^C$uC4EܱT$2@Q<{VqgL^8㬘ȗx֥R\2f̐e E#g0| {1˟LyB|3xxx3r&L qMݶ>i#-7{yJ~WbW`bb~'YԶll:Fp{cUхNd!;Y WԏR\yjIę#,v02$^&VI~9R\⡯fuUgG~ʔ tg[#$[zAsmWS !":a74I5m#HM6t88_RqGyCɅ2{rLxiӲ#WBoik=a٠N7X r.u{\,&aMSFݞ~g׽ă'eQ6 P4hI:mWױ!#,acc$C} ň_G<5VǼATRi2HC^j;C166Ci##-+ra0!p1L6XE-t#,&,&Ie6&uyN#$.:1x[)5D&km8K6nSb\UhPh_B6qA( ǥ腣l>]˙1XN#- dk0P]Mt<-籭'c!~\sxb5;0=XrN&e{ۈ+9uŽT9w8g^ uon3r ^v=h,n])A !.9"Tt'S&x1)66,xz#,qʊmPYϻ!jYu#,k7J$")#@w`^1DžYnضYX^4B.a1!.vd*4pm'w`TD9jM:EcT52@({xM;Jh-2I9}ui:yt]Ng*8p <5LeWfd˙clƲ3$cg[3#,;0qQ*W#o==X5OI+͝؋'- {gHv #-gÉnAYg\X3֨d1Q &pM`\ݙ|y88d @|Bqϖ6:#PM6eF™% #,#,7ا#-W|wh+wdQڵ#RLAX3ľ1 eeggTU&Xx==arHv4R-m<#$#s芊ls+N:NS$f:`j:pez#-b2-A `jId#,P#-J}<}yI`N}8߅ #,3nSGp;Z?QaĎ閷ls{D[!FۮTc`SzH #)K7zܛ~h-#,X˗"7c`{jy{BhpQEqdUt6N4(d i< f1v#-,߻ssHFJcAaܚ&I 4s`Lcs& e!24XIDL`j#,v[fUlJ#,PԷTU4P'ȽQma#,rC|M3;`F;$WW(VmǮMYLӗec =z ]9'tBFP#-@ct#!PdjP:hE#-\j#,fMQC䏘 g>#-LzhL4MkWieˣ3$L$lmaU>PhRw|jcZq%Nn_vL#$X "(XCނzcfJ~lنs6'[ttwysc#b 4a;A(*.I -<#,m.t<*_q_&^#,T^icL]:2rH%cS0ݶKbg 4˜O s9:O]؂GLVPL\DUێk`W^% k=V)Xz=R>W 83_=[(@$ b0F͐н(g"<D~#-6Pj!,-F*#qFdGPWU̟Sqں|~B(" #-Z?jRfl銲>J!g}R-9c~># [㺉7Vfe(:F[ HO.MHNAd„CpB7Ĩ:w_[JΗsOT "RЌRېwkarݾ6wj#Lb)J)&!8t6:!+#*C/./vVN'FLQ(K?h\ )@@@>&LjK"?e>I*}$*85+`%;#$l鵄62vVۥx#$۟ON篼tvrb<bòa#$`MjrTm*ICĎ#$@d[iA6T6պl0XK|@I_lGJ>,(FZd#-\R:#,b55`ư#$ ݁ޠ1}_ҚE*RI=mٹģwvKˮ\xcY]vtëQ!Qj Fc`/6AMkR7H#,YR˓"0er-xܑK ;jc9P]QcNR`ya'Ij0/!d5zZO]Xz\#$1j6tUEA|gƙ": xR'z`㓢I#-ٺ>Ny9d$.".ġyƉw4~S~eRNߨ:YEWr{(5=B/dE l#-d"<#$1"T3)_"1TelNbzq)lDm}Wߌ)Tg;6 DG*FSF%ڴ7/[kmMXMIQfbimFԚ3*mbzI')R#,'b )@^~=—900v }ڱlCC*&?L늣5 QoF,NUE1%`e:&w91o;ej+ۊcSXhJ{\#-Dmҽ1*ʶ c[LX^`#-+ 0*라VrtQP1HDmꔪ#-z}9qxkQ:eꨋvz\t^j BSCt 򃬩%U)mi(#- #$/}+Z؊#,mb6jW)*f`&-E"ϯ3#,`CMdRr ,#$7ۓ?馚8Hda'̂{dUPLAt$uyߋoJ``LfG2O0Ig@1UBPQm$:>Q @a!h_d?A3<KMeBPP?#$-⟤ /r!y^6"UE>/22^Eb_Ҁrc3TY ]'O9x8uWFpiTӗ_N`xc]P#,ՐGjaA$}#$ Q\ekhT D(&Tc 8uӬ^; d`haz#-fz8MX3־.gO#-;Cl3n(Iɳ6rڬdT$&#$$*>l=5=J#kyiă=I#,fwzь=§wo`@#,A:,] 2!fmdk2#,2ưפGW #xm1ePW8r5!Yqv I /LV8cbqB$=}# #$'ZPy#$4>SXY۷wȈ?PҐՔQPiF uGR#"UDAPY!BD~ƈ@LL=y/N=#$/_~]gøc#Iby GF1}s @#,|b֨MEӖsL`c|B9uU^ŐM 5M[^2_3|c~P.#tBAEG.+ [V=1XQu㖎F)c729o|+|uQmiC:gJ7'f ]FvkY,4]2]u)s)2f[dM r>r6fʌ#,nxTq̐=p&}7:דlAWA7`WpScƦSPV;Vb:)rѵOk&{MU{ȼYBfVM+10(,q9y.uسPw}n7}١9vByX~.oaָG4;+ XDK}XK^2\Y˞gRW<'==N(51#-q*&1`V0:ANY3 ?8*rD|#[?FYֆCqq$myhLe k$G4&e6A,2BAadTswi8&÷nft3,I4Bۂkօܚr_${wM:"VƬƣ5Ŏ]@ɩ~e #,#-lɹNU*X 2{|ϧ 3Z)D`vcIg33>6d>]zT!"Dw3P)>̳9vbNZǻC 83k0)]-dY"sJژ=R#%}<Ρʾ;UC 9P+CCMSR6ȏ$NtTHǢt%vfmފ\XqdݼB#"6u-%lfVAsh4Y Y˪0B %1A"43dֺ\Guu6nEɣV~_.[kŸ`W,AFBq1(i"rnDp#,eۨ"XDޒ55fZe2Gƶ3AŐ̇h41*찵y}X4nrfY'$UcD̢#-*((AKd#-BCJT '.C{]`@Q尤LqE2LYXg.ae#-}Z6MJJAl3S-{)D3:͙G#> |m>fD5˲-nM6Qxq 3@Ca#,JZm&N@ ץ dHdh],,9C 7 fj2B+N ( $ d .ovWهƈCP&$ĕ9QY.ef`*iq$C#`CL  \YikDpQ. c$)i/ h!k/mZHj u((TfDBԉyE 8y|%0စ~u!XRdN6`Mz@To|DۈRQ#*!mhX7=#-!6c |N\E +'P6I"L9nZwbN2I<[;y#,0Y=|绹h9/C!vdu[bBBTiObÒ;Í-&#-THJ'4z1P{NJtz>7ޙ<4>כq_7|=@UE$2gw&H>`h~*/PŊOCa#,(6 0ܢlPUU@?bUugk?4eu> lLXbc)FB@.E!j.ĜVD#$B?8ЈM-$HG_iU*-^VH#,6)99l~,ŗM =HF~M`q#,1-P##, >##-Ma'p@R `Bit.) +V:YF1(r&Fmezqg|Tcɴf4W"J[Bp`3W@P'WmeM'y"/s/#-|[8j%P#ܝ=:m(buObbOوǡdm"QAC5jf24Fwu-5E HΘP`*0?\Z|'kMFA(cJ7_\}5d#,FS#,cf NliiCr6l+Z0F5iǶml7Vg=^&#;U/O$Xh?m8^QtayQG;#t166C7Na=57Dm#$E#,l4Đ%HF&D0W6񴸪o\^#-(1Ki>GLiCt*Lv"9: "`Fk20DL@e@XQD7IH[$2Q #.,0wxvÍnHuC%i82!q2ȅ0-"fKCt4x8Vh04bȂVv:Y"Mxõ36mMFk0bf"QDk8S(G=ytJN RHpx? ~XqÐDJ A!fP&Թ U36͌e&bS@+Sw|Hstr(r-z xyRĠw`x 'Ll]B؏QFu'pH?ˠx5ȚN1mMCESLmj#-Qa vX(w)iYsY']7a5s?q3f:Tp,Nx-#$i1g) DEiaBt/[UJ&,`H UزeDV QÚl4t1@jbAl4@B0‡#,[mqZCᑯU0$+/NR@Iu+I|Z=3FsQdZmIn-qS^r>usPSf2FiV;lQ!$EFZ/M=!y˞5sDڊ֊F5m655V]ڹ[],鮩l>uPG/T] t|hMVE&]0|O$AA#-)%2S4)I)5EE_Ԙ֐JҚ"aFF}Mi1dJel2df$UbR;,d)%%aBdѨ̦Fh)l%&Je5)Rf AH"ł E(' f-`U}Lb&5ԇ):DV>}ة-*:rfIm0(H4czK0(`#vˠ1,=-CH>/ t;n$~*4-uga6"7KcoPdtm8`deS(,YF:_3#-tZ #edZ#fm2UTQ{x׿!tNߡTnqGkGEڞ$'g_gIX^s#-FXL'؟,sӦ2%ڡ:+gdi+/f8}z^&ɑ/'Ӎr( H$E&'g&ek+Uw|

#$ײ;>o#%:H7ņ$umGqk/YZ|K(9y}![/ݚ L$#-b,Őt&U2 K f/ISGv(K9l55Mp`X#,3P8>#$ #$p$PWJ9A7nRHLt;Ͼ1M3ڙN <y> qf[ɭ#,&Pz _9L,]tO3#,sNjӤuj;[lӜgRY!cѨRR[ 1q"E,.a\dQ%\<, R#- jg|O\ֲ\a:S#-=Ok_jqi>0LӉRWSz!4J#, rWTg`B;PZ8 qcOj~Iѕ%kQ(D06 nkC3'Oc2>:6$O.F 'D෻0/@eh} GWgm>x4jOǍ1vnuMU7Y4"yqvHkѝwJՆB4o1a'cjyftf~.Ѻ4vmimFdg@:wChz͔#|OjQ;fEܚᶇ.-B~t%&1KQ8$Fq\[VX7k;9[3#, PI>1w#-/Ll'KMutcD$uXBcз2hYC5B8L&/0CfƖCH9bSbGf#,2(4%WB وrT GXXDj }dTOLw6ۍl_ʰɁb¬XWo}L 2cY4N^ _dE{𙹒@e|yНm1fncWx1MRn&#-T upU:!mx27L:T䱺ף%vsLH%0;Bb2$8M$ؙ vɒ3(j"#,.!Ll`Lg(j#,^.#,#,XɊR"Cd!)J&B#,89#EƎpUC=N! cQ[I.T sFq6Hl2 8#(΢Vt43=Ҷ@pcM2,q.f;2l:r3sad)ՕcjK ͡cP46K hYvp-`s\0n\*a4QbH1 A(PHE.k#,#$xL@iSzC2}J߻G(jFCp4U0KSmGu߷FA'0`9H߅mj6F*vT `\X=5βHDH;i햳=.` OvʪL>g=!;N85rh2ne Ku\\8ViB>Ge;$lt2aC#,#-r#,܍-:!Cڝr'IE9!â#,4J$q)pU$#$aJ#,7,(0(F@/Gʁ"Xbg"d&gB$Ґmd-bBp65B%!K=`m #$wO!U@#$6U\SWwUٍn.nn5sdך_ŻB@T`#dP1;Lw9#$ "k=cYaGS`>?b 4_Xccg&EQ4pqs`v#,~9p\`~LI!pH,J@,vo@Jc_bށ"DIEoMU)R\3otvΑs.2d#ѐv4 #,hz?~?0YА#$¶h<=~(|UDYcRmLj"afZ5llkѫW"|™z5P|#$T:7y.Id|;v$h>pH\Db&&(DBU$JXB#,A`2L'{uI#-GkEv0 iA̜e2OD~:Xo$#$'z)d7tг#0" L, u(.ZLic$YƄWKooeoDU3[ů>Wz̥,؁7V#,fF,`293Lq] CX*~' .#-xU1#"EUPm& |1;\sPЁ1{M#, 1>;t뭋Hd#RUBm@3@R'BjG2$tCEl#,QcZD!"Pij.3\9y~@x i)E$-DBƚ)CxG A W#- 'Mo``#,`ArH8ʂj$tbR҆1#M%j:5⋁H҂sNjvMNYYڷ4$4?f;#,Gv *&X\d )eh:H#UD@L\J$MD :IlP$PR& 07&#,VfhPW[o ;k>eP6_ܦR(= (0P,\3_E=a w5jݠ#-=2#,g=)FC+d2BE$c#bZ?khTZɶ[JkU! C*(]|I.|pz@ikE/#,\MomJ1ՕU/rW"NTeʵS0鲥Z̧Zm(m B җZQWZQS0̳pdgHgE6ᨸxRA#3y&dEAN mnWrD|SNDI%Rn.8Eojhh:Zonn)clߘHLcDAﰞ!Ü[Zmx#-|!j1sx3Bfcm̑3rNd[VdfM>ORYɛ!4&j+xm8#,HKil`T iin:XJ 1R#0 oZJPERIQ#$ADrHF==y/&r}Mqx)`C`DbHpi@$H?`)R'*Cpb#,J8(-1Jݍ 5CDQ`HSHwmhs-d'E|{7vv51b Hm i̱UeNTd:7Q ԛPB} v ޕ*FR$.#-1#$TfdB#- ۴1R3!p3%cn{a 9T8n$BH̀ƸZ2H^BVm_os7ذ"z&QS 7hZ'Y nX#-I׍K[oϺfXR#$0#-Fb@4H"DmfK[Vž0IP"#,EڨKV%E҂YHG]"J@Q-@ACrɭcf)i3*(Ԥ)f[#,))nPe%eiI#-46e)MI66 Scd%cdՋTPTTʔJHbmfJ%&,I$%K*ͱQdHڊX&IVږ[&KS&H#$BU %P"@ZK64ͫ]6l@a(-sjڱ)lmW @d kTYòq#{u9XE#-`n5<ӎnp(LT@L&JQU8oInMxX.8`>97CXe?B?//2~#,UanG},~:k3AQmCT##q+39 D%g87rѨ%W V~iiF>$:Vo=Yĸ7#-3/ZR6W0/v*@#$#$+lj9EIHA:#$VBYԤEBvP?ntKbmAU@ƴ #."0GKaH,Z)қhPֱZVFA4^"lƠH90Ȇm ig5h慊T1UP5 dRաIL~u#-CYtC|e(O#$cVhqTh%jLhJXW#8A"tŤMc؍cՁJ,ΔlhBWIFP%f/jOSLƕi~emVA\:;?a~<:-sBcMo)^>?#ȡ*xI;ZUCK^CM#B^ZLty9lRhLp V͐TFJ߷ʆ|uRy\ƤBhl6)!@Ofs{JZl#tA-cbJ4sϨ1kB! mD;P΢rL ~2&\#-J#,#,1I1$RhCcp,rɅeW2Myۦղ Ν:`0W#-Pe#<zE%9,G,Mc兪ֲ#'p&#,M#!GcT G!nn@A9#XɍXȅٙdݴ66$IF3! }t.0}(^zv3VT.4;3sΌ=d*%R;jwLInы*#$馱S!`"#$q.( /#,E@K"S %b1l[u߫;YFiˏN{݌!4YuEUb3+87׿ߦ#lv -H0"#->dRB20`Kyփ?oe\e۵RH6A `0Zל$PfY7e)#,ŞLàWػxtj0dTv;_׊_8ϣmݕvg#K6Ex`drpKLEW9RN}bU@e?VG:ҼMvriߔ:;'#~3<1!ON-ˡe#-f>YFPar\vh$X ێ.2&f$'^^J3v_;^صgyev0RR(&Q\v2RK( n]D:AS~T}o:A9vB`_wK5yS#F|Jr^Ⱥ ٥~-ZcZJ5dګ#0,'JLnBK`,bUfٳIĮ.UbK#b5_s&+_U(^fxK6&ҩV듣']2quI29fS.C.řĆRXK@ $oU0E_51X Xba`ߟ3ni:5,; , ,P6zOT5A0G-T7DgBZS$l*~5J-UT*dWdsa@ ;ltђ}BQ#-DUI#EFh5;[mZW`a#d#-N.Y#-*偮X#-=QDC ŘAL_pryװ+ J#$ Ow;H]a#,bi>0aE`"QBs&aA%U%Poa]~W>6xR2pE:Dt@OnCx%6q_/DtkDl]bBe׍ yNG(;ش8;;xۧŷbY#47 ͻ6;:xCAx=Ƞut7STSb~^H#,$"!ADNVҶصW5V ⍋0D/H1.$|ԉݍfe8`̕тAi`( 53RumS~ǧrxI4zzܔuC^8+$ yLU tuN-R(ZJEp(vu|xi;K m4`3 uA#$Q`KQ4gw\G^ q6A?GS6ЀӞt1fV ~H"M{UįfTԴRLJ2)4 @X5Z`F#HF ,wd0-#-%0Q֏ {euh46D6tȏ IFj%w*Ȓm6J|1ݰHa2&k-%AvicB} `3Lm(G"ڬThiZbMLcj-BPLQH rѶ#HrǾa F Y CF56MƍMk^.\6͵t&5KIh VV#jtgw27dUV+zM ;d3q%[cciEr65bnkw.H+Qm-Md ƭ;AcXdNEf#,2FĸkL( yA5&ΨhPaM$[H 8ZԬwqhfVٝ#-THA 2eO!Bv1_CRt4M؅F}BU]]y2fhʼnh=_&A=1O#,MwֱTi}?o6;Q{m⫖4/KTbd[0XR*WniA:%DEGN؟2#,H `(R??̰#-D˻啧v(4\T) +E#R`1%h@V%#- pNB2k 0mRU.so99Jx+15F6_MD4Dg,Y6kκRW56DQl6B:k+WٵͶ*o7uYI%ji_.BIU8+ǗQ:Q8ɸqa*ȦpБE.I}S@x&,e rIbHQ-U{<#$&YUeٱZlF u0h8]^'IiR$K _|`ٙ-Eǟ&L!+S)O͉KD&Lp (#-iSm-`aC2ї >R!1`@#,(a>ޘ\#,\{@l㯊.;}d+$-PDX4-Xֿ6|vƚYO]Fh"%D/:ʭѪۆ(P\9 ur$XOcTtMuET#G WwO l]w,13C9Ib9E3Ŭ! :#,taQ͝LLhd+h a#$Tb8p{m벏#$CDU#,|ād><@BUX"C`m(fFEIq-2}>כlX6[#,WԱd#,#-e3'|sm΂~#$gQUɳb?51cDGkF%(F4C#$Yӂ91omw6 1.Hld4a%@b( „#,Le(ʩC @W6~#!i)6 P13g#$TLg[[WYHfqm GP Q"KV9`9۩ld#$54hQk(0%4b-&›QDʘʱmLͩ6e)MlTXij[Y46JehJ6*mBbXUfh i jU}/ݵOa_ cDM*u9~F A*"4DDmck[W6ݔ0H?HIxvrеom\jьP!^ ?+}1ysY漻\^^ύzșH'鰽p\v.)xN&!: $044(p%v4e#$pwd9 XO7Q?xV5X4JT#-#,eQEn,M<^_QM65ZOt0 a)[qNI`^ ":b?Ch&֩d"0EEU5WFAҨiUHDg#,uFaS$RFH>gׂbLc.#-AA#,)R˄ l0A6Ĵ!(0Mjqo:xٓtDh7!r{񾢺5r,l m~!,L.A0WEǑiX?IPHc?RP\;b)5{"' i)pf,kiidbic7p0t2թk}vj m05. s%aUl Ab0G%XcSa_~`ί^oԎ#,6IrΆ '$BA`#,!IhXqK d'Qa[PyL#$Y:^#-+8Pxve#-O]UF͑DZ܄ f<#-`#$l QR0/ 𘅨##$&f[d0  ұ^oSr]-!p˅ŌIAH"-#-dFǦkRi7Z9f|#WIxO!cLL9x5bP#XCd#-rO"tx%F֢D$Zn٩/#$…8kB@TG˛^1`EQ"Ɉflp##$r)z΄{3P$&7Y,&wdUgNW\|g 9}^?wDN%B܌#-6j!W޶ګ47WF>ܵkqIQF` h)amLQ1H B^BF')1{n.8qp0B1~< m8̍:HLR`2Mf#,Z[3S-AK.ͩ79 " ۦ6ǸR.٠Js#- 13뗾7qȴAޏ z/v]gdG_@_|*Dw!֙@m(#,c1^bSwceᯔ.63{lSQolB-Xs!fI4?eLB{Lߜ遳܄.ԿXzG* } #.#'#,e-!vTKD!k@P#-BݨE 1(B ]ZU y:EW#,A@P#,OY?-rmTM<5kuI$,E 7Zl 'bID Z V@AXpDDlKjMW( k6"Fj6iU5Ʃ[Y:#$LcŅڵK2sDq;T,#-GӫMĆ5bA$))<.NPI#-p\!%؋G#^辶 9'j7CALJOxH%#,G3Cw2qlhB(Ώ0BmeJ 64FU-ݹfm;v٦]VƊeݲX֊#$s@':[B])ZkRk3t[Șp*KH$rBM)6;>I3vSYtkxj(L}9ǀhf4׌%RVl3Kcƃa-j&Fk"`ta5gǣ`՝LHuFh~`0D@LȜ3(9_#plEr`.H#$bA~5o}#$}~,d]#ݰ[ѴW #$V61ج6k /Q4d&)#-ӮI}jfAePd @$U-w_H;M >5//1}IݭMtH~"#B}&$rADDl [bax*Ca`zC֠ )HY4#$jP{](vÁZ c^&-#,ZB)!2FwZtn2Q5CL3K`T>O61gI-L,ŷJ ТFl\8 ` fW(DR:ylشm#,1Dagrmi] R`QD$P \sCi ,#rL1jyfb $3SK{h:݉(3׆9*C<HvBźϖ~ ADFW"BBNIǒ#-|60W6~EXb6j+kcF1jKh+brض&2*Lף쮛x.E`F.ʫdw$]{'sno߆rCyRQM栅بdgU tcyLߺmSߗܦ> t#,mFm CEli53)j(y wƿP{@*#,O5ly=@HL0`#'/wnX~ï m&670;obp[ p9w颗̐PVA'!e9Aս6XF:IG3"Ltr|ۭ32(|5_JC׍I+eGo(8Ȓ].{7N#$Xuy*Z.UE,Z6LM #-d)ƨQ`Cf&͞42ޢ9#-]**."@aMEE$6i#jdbѮ%t%ǼxtTfo+`1Z*QcLL21ġC!ɎǔѭSFDG$Q11ȑ#,!mv6z~lֿϝyvIjU̍%ZJ$uD!J-+bn{[DXoT@!JG!cٙdǏ>=3.԰Cc Nn#-p#,pA#$1~sMdNc&`bbCv\?Ud.y펕EAZ+m9a]WъcBĀqr:Yzp6b 9-.HI+:>/>ۙ`r#,.Ek CwƃLe98"Hdn$JosggEyqBƟ bCUYxddz f"e#mB #,ⳆW!#,2{~t_6s<*՜cS O`z"zC.>9#,` $"E6Op +2t[utו_ΔZQ#-HlM*d"d!aERFȤm!ڨ*mV۲ᵺmRZEιtۚ2^-E<3RXE6wuX%VZ5WKZMͫujF*,R[,=m (CXŒzrE%φYȨ*Z(D!B4V k*LBZB/K #-VAX0̅`H@]i5ktVWZV5Jjꢛ(13Jj*S4ThUE4hf6K2dĵ4QRHƶ^v~ QRC̐>#,b*1׶#,%Z6#,MVмQ[&h/Lˑ5hs0â#-(w!$RZJehߕoz6ߕZ5Y?w-osiZK[sQU]+ZV٬Qv\A9Ё{}@4& f!D@Us#,5]m/U"Tj#-D"2#,Am1Ah#$D̸vt!؄zC.ϣLy౴=~d1R,'՚l$}ǐ"k360f3lc]̓MBb?$f#,AeBa-suKk%#|=uc]yLjĘ|Uc*wkd9+/xс4)iy̘)As\ra0xfm̅u؞i=0놙I.gBUy;hV1"xR zfAhVAwK!ڀMLm?8*&*ž2uJکXl>j(\}f FXDQKo/ַMIEc\BQQ3K #$Y **o[VqLJ:.3H">ҒtL_! #-"3i㍍[ۥcWXIiU+2% % Ac;,Fda 1sZ|m$6K[WB;9KA JR( L,dadA083ix-fED2 L0m-jKZdTlm L(PIUPXbix4WeX#4dCECѐXE#>q,^[{؅)胞#;v SyobVdͺhd7np3h֙2e[#-}1X#,#5UE_xLE#$n!G#$D/#,t#$ϑCi W*=o LDO+'d8?x J͂uá~zXӐc"<߿sN<#,o:Sǎ:jVHEo@&;w7'B /!(Dī#,4ω4#$m#,+pe)P/G0`# #,,9-EuB4asl,T/m$E퀢<<DŽ`Rz"oFgTF̧#$vp#$]sUt5WvLCPZ]BQLg,x*BWka2˯72} X#-HF,KH\4/+(RȖDFlj/Ԛ,RRl`lFܮ[swyq]Fc1rtx&6[۫UfXZڌ;m[Y*,muscvY6MoѺrvgMrF;Aʺ˝fhͪ-uڠH D#$J?f+#-YTjz#,MȑP{w@;OLB<8#$DWxxBA`j 's,#,/ 䢧O/ᜧ;Gl$!#$P.tpB E?D2m P9JV&-&N3CAkk(r8ϤvC1 ds\Zvz;ք$cvHEJƅb٥" g#QU#-l+ݦv=z/.9(pE #-$PUT #$NOx@;jsZl#$qmT .p'e"/0nmzII Lѧֿ>kVP~\'떱btA_dd/c3M(xDZ)#-&I}lz0#$HhTvء[rsLZBj]."c}-LJfIS#,;*ɧtٱsL8Z)7\5 EAƐj#$3 &4hȉi , <Zݟ8=j>@]$e |>8'[fZ?#-WU9UOXc0U>L#3#U9̤K*%P޿}S7"6J#.d4MԚowg:ֹL˫Fc y<@0m1=,"ћciiDMcûEAٟl5~)zXDoP(#F2քrDNt^``WȆWtttoǜ E,ktq㦾S#,@5ۈӴ< o:&/*/4M^)@à)ukI7} h:#,XoD1!BuaHyU^ڧ=^'YerDr:0Ѥ4LŐ.cdD%NtCY4||Ϡ?'>w1;O* 8ZT;f4uT x/]\uY\X*Shft#,۩-lU#- %L,`+H&ah# H{)#$1S)"Y jN'iGOu9^4k<1f[qnF֧͇McKk8[!d~SkP6v EGƿ;#-mw]#-P"UqJ2wB|k&nco}uquF`8+4^LM-ͪNMwG"]M#$;J,kqfDCov6CWBPRdNA#-DɄ!r_qZU-3X.[lؔqk i[iX֪2XJ׸r͢z2^D$-FTi+gh9]?o\o덑a }Bvt#-9H#$3~;j4Ipם81oEihudmRZ=0p $$VP^#ǧ"{ku=IhrDrcaOwKjQ2-יn(:ٚYw>°ڲ%7I0}I^_;#$'lPvm[|Z㴗6JgvDWB)?Xu#8'@ҕDH:Ѵ+-&HTې0uf0-`#,Ψ1_F!(Nʳ o'ӎ/RD$PR0Lˠݴmn$v13wЅ1V8\bּy|{UcER6(5j Ρ8o hF$HCQY(L; C8tE)YYӆx|]ĽT0B>-4|!#-u9L!&[B^.3н!(\D?{R|<rVaF~>f⏊{XI@8yyxbH$Z$TlrDžʴJ!?U#,G=V CDBU"EIȗۗXr{o;ƚ:t^sb!BLI=jULF\9ޅj" h< nIj^G?BOoPM2>&>Vv5&t4!חâE##-VְE@Y!S䪮/W%ڭ藂؅Y1+y#%TNcʻ"#b@ D$UzkT @1ܞbf_e(mP=*"Xr?w63d0h&&)1 1Q)2lM#-L*M <>qtI#ć/F޼{JI7m6e1AdH0Î!(cXsȊFxΘV݇ bt,\4ifO7F;ͦ6^Sdȁ%l`zo,f78lIEi0bV!#,.,MWu5v~•|3 M;x`wݪO ($~8rIV6M𙭬x$B,o#-|f~@4ZbU1^ mm훦`foBHM#$NuM۵.n;$QUk \a[f6%ad0) 0͢#$buF*Q?[`E5mn#$dbr#-0#$ϧ4'ݙQuD.Aa8:#,9SFVxHj2B{)~/S@kAyfxK„#-D3:#qGHFEQ[y![ZMV խ4T[8 6ZHF]69!w6QuG܉#$ژF#, )hiB @8SL"EA0i9 2mM6L0c&ADy#,toۄq!)ZEiYBH2QN }!F ʧF>~D1k'#,kf,F4mE1fጒ.kRPn rnbZ@<(ӄ}2#,*4T`w QZF`)ZjD17E4E.A&lh&b^)xaԆب#,3Y~A<.9ܱvƤcQ*EHX`oTghδ"L+"##,3PBfk:Y9e׍o3d H;x-R&#,dӃFH`MBhicm1At6C ܩi h;MZ%F`$0AAj+#,<: O9ARW0rfE:{aQYu-slh3"]1#,eTETOH?8epTt3+DZ#iLgTx:vF#,UE*Dc#,0RPAD0#-AD%*("Rp$CB$0ŭaX#$8ZhTUHTdI\6ԑV?貐iiDIhT5H-njN j-(Z6ɑd- )OS c!\D D(>9<#$߀Sſꢏ5zoJˋ}ABD!DQABrDԤIz &giPR+,t/1F r &TPY GY6& #, DA$T3HQ6Lm֠1̥FRP OޥPz)M%T ZCl 3e61.X yS^znU!tR`6vR<$Yj?0tH~1bЭF^w|s:~:%z@q$d&섉2w<): KDL 'hN#G#G#-dhxC dJ _wƚ:j|6|ct ̻C?}nGqxm7V$5W#,"̈;)#,-̃—ܣDaSj"B#$Ruc"t1N#mP;`@=3MTA80xVV[r)#$?2U;gmb)h: fJM$(ڿZxT|agOTu X W5T%Qa?&HL-aB!_馃x"+21Di QkslVMkkv&ܻm\mŎnVƮKkn\kQ&hQxj[ǭ|+ŭ`osC#-24ӢfbVaMް2Gtԑ! #$U? "]û7փU~*iGTs"!l ?,}#-`]#-E#$v<}VZiL) ChKوD ;01fXa#$ H$E"Dub]޲D@R Mddh5hT#dǑ@h(:T#$D=VQF-PFQHAF0jWlkFD RvLw/BA$ oJɺx+3P̀zs |j)flJPK$eIfԔmFRdaMlmj5jZVj52ѫE$Яgʷ[1d"]ooo|c#-e 1`DAP#v(Ĩ2H*O V:B` hpc`#,2KXHP(:0Z``P0h`)#-A #-/H#-5Ĉl0C>!h"P[wf.jzWLE@-U$l)9\T7Q|,p!0&jΟ>疊)TR}! *H@6Dw4=S< M~ Xhh eŢ0% L̆6GGD <#oÌJRӊDǪ#-S0 Mj?#,x*s! O9;˷JyeԩL]sQڨV8KȞeNNҨS 1MǼu0bY|uƶݙ N˹4gU\|WL 9sZYLĒ89vҞ=[?17٥'Q#$ )ULH*IvzZj^u&L?Y󄓃z\$S|ʭ` A#,K.H\Tڊ#,Q":Œ#-G+'Ή9+mp|76B]@KPT, ~קr'_/+)oáUo9Fpr*H;V֧=+ˏЌ$8]S8[訄})*^Ӄi;F;tX){[=bCקLwIɃ 1q%1Zqpo3#(!_^ s똮6aM. ^8e ]+L <(DLcyJ(+pө:fy#,c|~:o3g޿| >zs0>O8L]ϻb-u;=7+ ;tcww۰4#7L4]=O'SAX daMʹ:ݤ3DHrB ӊ;dcT,LcO3fCj0#iGQ1antf$xjGPP%K] p2T:y;h|0l{daB㱜#,b…⬰rTNTMQ;6c86r8Cy110~n8X(&7 nA҅Tnh1 'Ǧ#J'h^D0s9iaJ7{lVa#,~\)\Uv (fG$ v#-߭rbycn6CH\HRp?ze!̺b7Z#,>9)i;hF#->|R cxp ;,JB[*j$sN+bFJƾk"Dv:e;F#-~ٸ|!4Uِ*OK-iJِXqfkԾ&{N U}!)}Ѫù+]-9|`ׂPhS9H﷖ v{nT3ڹ:F봭T+2">> @9 ՉiPLqvZ*/DaGPYq3TQ[*CC^*ZmodGz7MchxX3_Nr`N8ڛ }D(H~Ikhd֓m, FbQAP4d ShXЂUNsj/]S$$-#$ NP$j6ͫr:)DQ5X#,E (+)6K@B_㞸}s5-fr#$2`?# N,Бa~nw^*"ضMhjrI@e ,RRcOnc3kǎ[-L/c2Dk``0ma#,?:6b"#-0eq2 U>D:kN4`*C<2J^|-y4BBb)J+ƞw$KFe#-bf60m6C#-&IXԑK wQXؚi43IcEo-4Nn锎B-ټQl#-@Y1!Md3N Cf;w. S5+qcn5)Vsor3SEhckZ2#,cYql59eoL$1 o0lDXL*cRV Ee Р&t-NyٻZ`,+!xlQ#,PPs5%%#,A11NJ-\D#,Fd!jDU8̯iY2RzeԨ3F۳mG-87s`NKf54Ӟ.Tqaf0OZMN ʎrԺ#,igD2V8jmRTVĦi ^5hŷ%WoNvO2CdTux1qkd505C7c.ۺ#-~OJ1N5'䴶Ԭ(~5 MO Ɗ$*6q+M4 %k3xpww;:]uxC!a)2,[ Ll\3j:wkct#-kfS+:6nȐ4DEm#->c("{hG[ 5x,M##,iMA DN^xe)$ՌF0\d#3$d3lR#,{)2q' )LCH"fxs25Ɖ4m! F ֧PKO0!4255pgN 8I4sJB/M>҄Jү\`O#zL"0PRcDcz+8&K/.OԵ~4߃HRMQ:.!H}G| ʧ}X1c)#-H$=*SjŗNq>&E_!$sq? w怟@/A<& *,{$&ڷm¶hI^@#$1P6B^c,$mbLKnnJAHi2`n};uޗ~'i chNJàWyô\:7"eH(2c0)$`Ysa^w$jEկ q@H #$XR%KXkZԋe#-MFjgW3iB T,'Nhd'}2‘D#- #-=̋fn(RIa\%J(#,3Ѫƈ|]5J82V)#fH6 mǦ9b#-@C)v^[--ռc/.В|y4QJko^/4MV(@p.@+qvw@ hE`GLĈĽVtI|h5OCBod4”7RB*E&LĮmq3~m|>!`3g.bHqba:f`DFYD,$@#-6Sߏ#,{w1Qꁜg%D3=dHFB/t|>~':hx\\cHR KIpFRKC]8N?d#$f\x̊iEu?ûע^I!!G C3z(p}~TXGAwm[hXw0&k 1G%2N5J%86C*CEBC(Ԣ-7b]N[B/{lWBSu}iҝ6(|()$$@/gbr'{ເ7#$EJ0>)QTJS6'6)0l8)qQsZF@+eϨ#-_V<#,e;DZpTč#$(vE EAI" TRjw_j*<Y#,d>Vto6kNjY#-,0![btk?$z!;;N>Eę!P#$"wnn밈Qk*1.hU\zce)^5#Ё'4A1*)8g!Hͼ{7bl#,#,-ՊؗSÏxfuA6#$LICJLFyApBE?almXllӼUXɧ #,#$qkT Úr '"8dB#-(^vƠ#6^f#$S0,  gj9ۦ .>;GF) %1ͷNz5#,D鎳 J,r`n`UCj" #-#,C  6k#P;SZ5xTIo!zj &1DHX)ϙsua X;z& " AB%0áDFP8*sN5NAB5X0eQf/GYfL#-FpaLc97WZL-$TLNIsZ9'eyl뛪vJ ^zۨ $w#,%p]T[#,RͰB i4筌,jB @:;B g XɂH!ԢN5@Ilg Ԭ*RxMռX- y;:]$>*M#ȢA: 5evA[P,'ѷMl|8D`6yH<#,XN|dѝ |tFFi3m&#$vm*Gu2X2Ғ,4f\|iwdNirLG 8o(4S46@Oo]6!A:Ne;mrF)Km68d.ebLZ˙CA.& 5wʼnRt$!9 %vaUD<&Z]͔:N-fSK8g2hSX-ia#-׬JXU˼q5N*s&iZBĴa#,YxB˕¬E;!#,g5 Iy*U8aεl.uY\T8C5Ht]ʁ덑WC]&!@E#-56ɛ!;ncMK|`iRu0:ù_Z&ppB ܒ%q}Nphs‚k2ZΉLCzL2Z@Yjdj:Ab,!Q#$UXm[3\nP[d,7`$-Y7nzzo]γX7`i֦8!x`a$LzS0W>mW&8+RfR;mc]6Ebs-\hb|;-:]?G9\ØGoia߲%f8`HnhZb .O"#-e9gWM}1)fd\b\kQ<'ai1Lpʹo6X,*. lp6h~fe8tɁxko#,Q I#-dމmfd04UXSOL۠6 Ï4a-۪h,DB]iC7#,2 0o )BI%1wmp׉ۇ&ʱbmiXzbS U-9}_SHI*xx1Q}鏭R*2GN\dL3ǽ>聾p˙iQ>#-CH TPZNDLbHa&3ULk1S,U",c%v3I(z޻w^Ky#{+lu1H2G.)#-b(MY#Z4“5X1$*3-|gPY1l-M. Vf1'q yW6ͫsuzYO"ZC@z#:c#DMOz:QILaɤ #,Z5 &\2bj~ .5#$:B9ЂhԂݿIT*#$dcsm#,sRت8v΍#-6Pm0ۅlaoӊ2LC&Ht 3vx`3eF e]#-|dv5ݵDjkiHJߩԖɰ*8""`Јe6I)HK0#-8`!܂xO~~)RLªp5`v03 2"Ed#${.z«✰* mˇG-|qwPoFr"`\t}a[ 'n^I#DI)Rch#-k0 "5_QtV3DT,R<X#,FD9St@;Ϡ#,#,εб2vA$YrgȍspjZ^(~TE8{il-MPĒ0M#,`0ܴwqAI˙2e0Y#,4H:`Ãp,a@&tCnm 6U&5[AFa) HM"X>)6ڝ#r#,$a-ɉBU(pC= ҡuvwPŀE 3.%sv*5V0XXpm/fPOڗXKKB͏7 @,yoh@R#-%RȐq!2=˙ 9: Z7@$`D`CbhS{wKAF]..xwcIUhkީBIf}[k[G T<#- Λ6X}V@$LfG،hK #,}kG=yų)5Qnl6;qwuy]կ$_#,+!GSpDPu'w"0nwLoz31l$A441Cہ+cLlVMѩݭ[˫WE#ch%Sfb~W#-4CflUJRhżkr &l%-n= 0Hrd"ĝ₁ ʫ"jcfF+XJKeB#- (ZxP(hOu$#-mQޞ|TՙS[׺ 1>M"L' X"y`ں$^*{)(iWBwnBRAuQ0"@M{{n/dH$D֞j#-#,\SZW7FjM(FREM2 #,[mP)#,B#$+Ը^TĥYY^LueQ1s+ӚXq1vl%#`:+44~p2(tže#$>ۂ6|rH BC~(zg `WVU#Y()M46EE-T`MoƯ$Z6ɦPl-4ItYmb~(ܫ}!wE uTH&zyF`9l|SJ8R#$1XYkQh-JFBABF$]#,/Ofd=?qCZ6Tp7mֶVC$#-qXa>/h]i#-:'//,pcoG>D 7(6ւդIlqA#,3ܝn#,XDlR/%3f9!狵#I*1\JSnÉvg `oׇt4!]p<֗#:u`.qO6SC>wJXPnnkl } fiN!Dj9*}C5Hѓ$j"+3P'dWέmuuX$X"#,%t#čPޜ;U#-7#,F![J^"6o57¡w: lYm!Z5$$;y#,'3wC2V*7S&=d(1>:6J”->}"nJ&Gqܢ&GrT.r)3;Նwlv#$0WݔЀ\)*O0, D#$kaec)ܯTx&#,#,0L&ȭ?oo?_<}~:~w/>o?3)~W9>~|>oؘ #e  Mi@AWLp\d [8#IO2TE%|b$$,TѰ#$m;/EPg#,HAviC\yN M#-G#-?ǎtP\O@p@gS'/2dwo+r #aA6xQ#uA0?__@=Cx#-#._J#-,K,v!rIE8kLs+uٙ]ojTԑ#,L{nLlkvh$q#,CT0FE2wo[x奃O<=]`8kU4ûcXC !,74[Xj۴pӪi[qAmp^`b #$8l,rAXɔR2xS#r#uq1o/xZ1R!/Y\e#-)L|I"6m!L90{塶M^AȊkW0Rvo 80lƊw= ~H/-Cvؒ {^BBCFy~+7ᅬ$t%迶k#$aюE݃i;ڛPwƀK] zG~c')4HU4xf<(#,Qa>,5>9l/Ae˖|5.WD4[۲Ƽj5+~&}nmcŶFս-RhW+\_> ,jn:+Cx=&Ƽ&Ds"}Wȁ˧@N"#'@=fp0dxfaHWNcr]pX*J:H|=뿄EyPm$Y#$5J<|Qߣԏu||q?W%HQ#$#,wD Qem[S3]-5WeX5%{UۑFѵ)o#,Q/3iBf#,<9V =;Lez `g)9FlH=߾$\ B(H2)" Di9ǣ*I>TьhglC)Gt??'䗏3pQkBa$饟/ql|*tҜ9p^b!uF?J?k8+Q #,W 50>?N gAX7 ^[ c~qQ-y[Na E?tn;]"K*|.rX%"aώ$4xynZy#-#-q;'-UEBqGν\8x ok`3x ,+}?X3ܑN$!(` +#BZh91AY&SY5I x9u  8X0EbQ<{#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/#/{׫mMvOcݗյ"P}vwtvtݷz8gY'_s1lWJ=;7}ݛݘ/[{uulzܚ+Hޏkn}woy{v54u-Oi{=>=[ݧd^w7g#/#/#/#/4Tpy=E#/.`u#͒5i#/6nv4)#9֌aMt4kE]#/(TJOM@#/JٕU@EC {YlnXUHU%)\QIOwA7uiZv3w7ɕE[gw{Ekww^ݶ#9]"#/RA͝hn]Ӎ;v{W{]91"nsEPP#9J@VC׳{N^z[||^}Z68y-U'#ywxvgS{}-=s:y{ٙ#/*oZlɍ=}@[y|y[-nv֛{sI&զֻ[bOzoo`eҹ0.OomU{eۻ[׼tM8lJT>>'};-zvL[qr㛅#99e0#/^J{Yu@#9)IBivÜ],_x/Mꫯ^C,Mѷ6Nvo:Y;[#/T*#/!szw;]:}]͝.tdr}]dOWcJ́_ÑݯM#7Cu6A,u\}]73#9hv5m<۷&;7uvdqWiʶ={5jӦۻһo{hqv[Ϯncm+Kx8:7a[u}9o:uhSy.Yonׯ_Gvu|gn2_leәÓJ=z#/8T#9Tzv{0m:9y Lр{ݻǜ2}oT#7<#9Om[y(#/R5g@iB(UJT)z]S&ε3}ǽitfE Vҋ1UWxi,l-hnί'yޝg^x'Z'Ӷ9v+ݙʢw]}:5wvs<^.&4#/@#/#/#/a2 juQ"r[ܹn}w25g¡0f[b#6ݭՒEP/X {zႹ#9mQ7|_;rgxW\Ѩ8wTnQҹs%Dk#94m10{f0#^ D#9ܢEȅ3Ӗ4uɨjł)Gaᛜ>Ff d~GR#9({p6vVMd40k柟xjOO(|h&]Fr0jGQ{-rHSSjEE#91pq,\}xʼnqe NnM8K^ յb(Ce 9)~= `nn}lKRJv,Ep|sq ?{&E²٪3 l,QS%"V}Ɲ/bbd]T}=Ȱ2M>,j[9-aLY|uz@c#7[bV#cJDѧF^(qU9jW[:]|k{*gZP:()ra;NCPS}=y@Rc忏٥`0*jh&HhME'߼o:n0wD:]e* Q)5m}@UhJÅ^2R xwG\Ƣ[uBQC򰪊J`&=w٦`=SeSLPi̠#l՟I#9%Ca+[X0BFNO$mEBu y!L`dE2R]U";FUjxhRœzY`ńD%05=%]%7g$՗o(*̣7f<$Gzm7#9A`׌8ʨܒ<,-UBNRvDpENQʩRy]#9'},㶁 3Vpzc{PT.?κCiT4(kC0M~Y4y4kM-vIQT:?/w0_*EؠKomYLD 7F?I:lIvj=ɛ:b~ϯn=l)]=3^JCMX /sziRKo1mHmYݐawԇk{?Cϒ"uN 5C(ٳu)Ҹߝ\(?FP>w]pu03b'#9Z|}/uBΤğ_{~p^h{a*@:@6uLj !aguIU&Gchy2cXg8qu&!/q(q<{sޝrdn$g [sZ=6\jhDYa7zUaYLV*҄p"G]FLŹتTh0yBQH+\ʳޡ\qxBL!w0x͙mP|l0iPAnrD2ob5 CnSqʽ%NS/QiLP_>L&l~tn%ۈzR haR^F̛Tr~PT$4k(FegM;90(hTWL ߳7J*/`")F[qEOsF3oh(2O݋#GS#z:E숿=g)TU?m5'}㗉]<$-6d2iFuZrvfdmFsA,beZN&;:mW =/NoT0~l"(>t\:x1TS0IqCɛPAGTұrTl\OGv$3%Fk>~/7/9,J&*$CE#9FAޮ`FR5v.5bգCی#Wq*3}o7>d|#g ZPm\&Y@B0/HG#/Q^]Cޠ)H[걑3>wU,MTaq#LcAr-CobMuҟ'[Hz>%Y t(2G ![q}=5ir'^ng:0=~\8WӓQʦ]ս#f\q#7 LwM#9/Zb7+#dnt) ݳ:3/UW#76T"4{mf=2ӾpSq@4߷$(UF7Px[l&~@!a4Q?[~Ãnaqך"pg#935J.rFxD@J2Bd,#7Ɖ>Գhصє|ÜL JQ ?t܍ !NہME~쵺t?N*Zek`q+h"[N]EU8( !n`>yyX?ȷ>#/dSQ e9j+{x$T tBZE6\E_70SJA#ۀÎm9wQ:zLmG)͑*Yb4om4 ]Fm'Oc#77ʉ`(e􁿒TrJ&âs6iYκ/ Ќ\tPc1Q 6F( #9Nǧ(_w^? ~ op$A%٠O`űZV#/xnTF7IG|.R% #7!pR o;{$,tBVN#/J*##/t"£:7c m%p}K]v5^1D1M`f'^geu|i%e=G_ @@"%H(@)\k#9h(M[T sAH}>a)|ŽU${$=_}Ȅ.5$€YAzU#/d'bXFH4+[ْG;vmi#7d>|G`/mEoӁM.%_#:i웶uG'OɾT;}QJV?wS(HņH,vbb"39,ﻪsȏTTG|V#/r$ytJr#7xQ-(!q]3xf"<:]>NYc}Px AH@5٬j~rpFo:.Xs-#9!#9#9|sO^-{?'I#/tX\]r a\ֆ(wM͠?1̈́#/$Z|5aa vx mESaLcq0F?La!cu(HF֡ZXJ\['<ў%)8c p"{Ѥذ4t0nַN( n!,4BbFL=M7t#7Q4q%Ae5UUH !I-لjo}y^"#7#lFx21HSXM?m#/Ilwǘjk;x9^ ߝ`ߓ'r#Nv@Skwg#B01f$F{򟚛,#7:vJgijBI/L}28mt#993z7ӦªH)D,ykK}5V'?j07#9#/q#/0ĵ{=l0=3$vyrY%CL9c%.tT㠑+.~#/l0 i HbZx,@SH.'ֱtXkH5 ۝~c}V!`XPLP"=+gᕹ[:!;/E|C7-$4z^L>Oy #/Yu! 0&$%#/0_&d?|5jps(\h ~KJjTbM vCODUo\bLjU{): *\6,T#ҚIxuYApv3X߱sew'r<[a&lvŋk6XcDɡ\Z CGrT(P`Mm{zWF9hR8c<}|-h5;zmucz`;K`tn5<⬲maE/kQxnHN]C aā?R-{awsA*|@GѠȦƝ.% M#=C]F!?Br=#9͖2[B((]ykaFj)  kЌ;LQ_.Wjtn>˄IhM5#9I1\)iJČkݡ4Zi @#/q۔wG;~˽UӦ,ic}^UD6x5-m |FY̘Ǐj^Xɓj4Þh`@J=껎k025ؗfBHV;^zDs"͙Rʄ>iIiC&~Ϲ*OGhcFojVN\uҁl0A,'#7]1k`n0՛48<~*l F{?WeZ`an:&y3EjGw1KrC{@%s0Rl`XSH8A::ky6R$1 h$Լ6BfY`,E#ĺ?vv5Bo) IM/צ6WQF1bhF$mZIAd 1&5Nڡ0 YH&1[k_^僌I>~-keKD 1I&Y#7{7ìsV>:K|4vMrVW@,D$BeHAo0 x ;x9W"nk[H]ֹshl˚_v)t2RLb#7lsb\Ȏxjا_Oj\#/Hx_nlDzqE2\Jk`h;\b'iLm $${D{e!V}NĘ^Dɢ|۬p;䊳ž$Y"tU#QDim-"$Y2bY /- 3.vs:۶dpLy@`̡YB/,$-]G5gPN9)F;PG4_Ukd*:M^xXb'u/mfnܱY̙X1ƭRdTКaWGWH߯6|s}+ 徝qwF#7 85"URZHQBU QCᬹ6PDKQ#9r_n1^ƒ>E*`Sȟ~M  !\3~"7y`9<}̝Q-BJt^_7ofA|`B!@u"YC^&9iÖD}#S?u&f2I)p;)KLJÒE R#9 b4f!1ZYiOe)xS.50(3 l72ƍ#VB#/#9PBfR'˷ b?!/j|8 C@p[-ho:F_ ύhaaΥٌ8jJ߷`}j3+!Di`Lt\4q#9|J0{'2I$HgMܯx#7 i.-*#/C~wvq 샣|+aᴋ,@w-t]KgoG&6]~)O;a~XyNO^7 {aq#jV!h B<&#/O.:[It]$TO=5Q;7Lj#9 `VA@k_̗k grHU;W3S%]ۺi}M:OJg>%]5 aIԽ~o~h_VZ:|_?F|׵ ?y֌w驗-1_867\z $<곸 mږ*cT+ A}n&Q&^h#9*(H$ կHfZfd9hem2vv]~pa?=sW 3hO#/@%RD?2#/+ #/)8 QHkd5o?%oV#ُ]ig]>!/?1KEdSfch(vku [>(D$f{m>{-zuJwI<2~T~Rѿj\x(Θ?܌N,wlm#k~צ+R-TN#94g#/l9h7RfN0gsT(rߪ.v9!;WArI7FZ9C`W",ZP-vѼ.2jZMZs0ho0mvt|tؓNl F(V,l͜/eh:)aI5ǘDZeE'Q1`ςCFL2 4I\7@c`ADd1rѿ=~/X7o>#V 4oW6vo-G7@4|VN _Fe/[5U˧}/³?w#7>=\7ttr^%8zͲ*%ZE~;ڥ}^#9';4y۷?^!_\g;ݳ٣?1^G>W.b n;ILG7LǣEmѐÇVOwޏB*@k>~+ۭ]+:q2+A9r=#9mdy[e#7r-zu{YcY^@c&p9ps1\Uyv |Ƹ)e#7i|)F;mZXJ.6oGukuĵo`6AF4Uļ8#`ëLoXAم4d\U\>=5r٣>]rw'awk&cr%pUN[44 3^C#7 2Fڠ2@cLL.]q=9qi{GHUZ8אa\ֶn|9GG%~W|Mp8XO%jycO|pqgot2@aSVC7v]_wlsӂ|?qiѷ}f+z{Q<0u󶖗㵺{ y[lcz쿣$ȡ#/\CVcf$weF}#7iYCA>hOV`}]N~#7N=_WcݣxZ<]cGe'ӫVկ?ԅס^NGO]ώgu0ݿ#/rǞ~!…pmduTgӺW&Ϝ~M~dinWo.|1vQ[ž3y>5Z|cPy? Gw/LLjxWsR!#9>rv?m{pj!PDE2z&iP$.#7[ ӳȃxn_|wr.W~sY%Ov4Q<dhH<}ƪ1Ӈ}{}8ru?|F > aQO^aPgyTzƫQ񎪨i 0+t4v\Ѧ,}'& m 2WtgV#9`&˓\7r/vyNpJ;T`4c׊(B-E׋"Ꙝ %^oD>ӻCM_/#/F =ڡa4k rZ*+ Y^2hHDru6_G(wsњ)3EnZMk"8W|k^;v}1v.M?虲anJe%uR\9թhy'iƻM-'K)$e g<veFc*GcwiE^9L4G o=3H!%'qS@;n;WE̷13dE\ܓL<^q0L?[ka<]Ə+=-=fZKJ'1I'fP0|d);In}#eNN;_G` o=1$b1JU)ːď}TA쒞Q|z#/o'FdQʇ8f9%%d&29#ŒoEkPaPmR8<RIb4CCU UiAQQ;!YՙfjB!-AȱaHSjȚ#9HV"4#7^daX,dX##ohW}uR#7Xu}?/λ6PP[w]ZOCOMH_鶼`#9ˏ#9fvb,;.ELE(O;c??rѠFE4cR"GGAP#5hZM d)TIը,Mم ڐMw~=?^6/+ֆiôO8`ۯ*sxkaRsݕٟ.<ݯJ/~ݾ^AU>p/C˯;No}a#<"!V}1{<;-fםه=8yj#7xZ.(Gg $SlW۷Vg-BU-qp Tpc:N uڻ\.sWI`ahat9^4#9S→gog& ܉+?l=dؾз?;X#9PB(zAp?)./zmMb;֡*Qj|Ĩֈhe#9-jY()fm!lB #76cQ7+F'h4 qM4\˥AU$̪(- (X~B>!|5C]#9-s"&I$#9OPômFH<9Q"#=~@t%CLQH2t50rDVb#9s&!/pN͚/\3Dj5#+B#7؟#9Diڤldq",CQ/b?eyytlBYQK2|=cx0qO&[X#c=zԙ"+Qe(A1a#ipjLo# 0-#7T)8#9X "=eQVƈS#JR0iIpE30Bj412X]k^MuC7y#9FC6Z@Ma##7i֬"}S"%8*c](-n9:UhoMZer̭DuDQ63#9D#Ma(gxmbͩE#71ll݃0!heJ(m}0sJmm #7 w$j3,!$Cas(8&C|~\r~"ACpux,<(!#/1&^s2pzPbA4#/>Ctifi}G:g\tH'X) Fgp{$AbXʪ `ӌw=e֑" ˋJ1J>`.H)FD~ۦZ<`q`_z3OV3[P6qzM7Bv~x#F#7:҃6C`>ʯ h0sgThv-V!'d4xU`b9roC|`/#9!-%,c$V/Uם>m1(;K#Y$W3lchxC"mh19:zޗhe75Ʋl`AиYK*.q̺JAb>u`5W[mZV3LЛVga1f8|K"smә060&ÃuBbb8;OAf`P`#N\5#9#GV]Wk"wT%QvtwDydw#96#99c\&2]qq5#7ٌHm:1EjhD7]]g2rgfʙCKW#Xcj}6E7Ea3&5SerI E!-l #9Өc.lNZA',7M=Og-KyhN2\8#RjDѹFuw[[> 2䀹iƴ$pCɥDI^9yqh]t1"FY>6*2glb#/Ф#Re:{? N牢NW/|ӗ6C{ck#7wiI.& ?SYƬw9*=d*?с<#7F}ad#9;?@QMSTuFqA&&ӏws/#7.D|Eɴ 0L61W@;!JU#~:Ohvsw3 -pȗ%2_ɘ|7G(~<#7JJ,˗!B#96%Xa-4 XE_S]q?O)W E#7޾y 9՜wm#939Y)(#/13\H*cd#7Vݦ‹@VD2ldB|#9|xy|#6xTumBu=L:ot߾:#b'2ZL@jߢAvzb$)j"]J`q%[2Q92e#9̩6}-ǻQ|gW;ɯp=2ROi a9"Dch>5=H^#9EbhC>}+IfM$֏Of7bm=㬘˻<nif#`Md⧮BB|DJgv{NMޟ<1Jǎo˧vBCn}JiDZ- @d1T0-C`fW0`Бv9D#/#7̞2eN|w#7bۜ5ng53TueXazm> L:- !"#8#7{bQ&Onٶ8r2r>fBe-3J#7{R{ghFT]R=@4 3 "x`71TJ#9M;3"J D(]uGn5y#0|#›<ߊ; uEۻ` 'PVnL($ı#Ւc0$J<",3Q6nNtL\語m@F7tuΛ&^ȳP;E >huZI~5ΌuxٺΖΓQ7s7⛪d#9Q4ӻZ Mx8|d)^0o||=Qt;f^v,G߅Fz7mmH9ޠŊ-$xxO*MF9`,m:TiiHAM+l#b?#9zYǻET`پu#N'P:Cz1aZnpg}>pE0h싽dS䇗+,3BӦI{#c6 EyNJA`ң"ĻR) -E%yywȚY<;g,[Xi&|3MU]u@E(:eXwD#KmcFQ "1)M?LC&7(egYeյܰdQ;5]~%}ÃlCy ]]Cr؀˘u2,DUsY-yl(&{H>;ލbo|8P7S L Ս {y=18N,sǿ\G~$BM :<e-OZ#4mq-M>8:o&?tUkܡGQDy9ium#/TjW*B#\ne+ұ.Vkm)ckagYb5,#7{K7[hJܝ8ʸ> !Ri @Xxo[Ym#78U/s7^*$rzOlb,pQ#9]/l]Vl":*xyX:r]jt"Vt )~p٭vRrv,(Lඐ?:V,W!?`ɋ#9೭$*r^(g0#=2dN!o~_}.WInXmxۮfiY瑪6]s4u,syl14p"oFN(Rߗ h&v]6W2oK9T>2xttA?WFcE)Z/ٟCYb#7[Lp'8J޾juα{wq=s獹-]4#9+Q:237>ڶ,8ؼ^'WcuI"1$$%V>XmZ4JV ;#9CsdmZ6^կ06Sۭ*4MBʇl}%th'UV7Uo)<`n}=#9ۣ}^D긝,tYA` r2w\]A|%BV]Z/tc8+ҥk=n^-sMMPcEVerW ЫeF3ws`w#7/|9۬`m'>#bF5Lv헌ݠT6O~Ɩ*?RR<LN6ۏc_luͿ`ţ',ۢ"[XdMu=629MBWI Z[Bw]Jp|JVs:Rqn"EˏZ@4zo&ղ؏ptwsjtNl\s0(U j=g8"]q3|C 4sc`isM)"$drϓE=S糥2Q(G!mkgA2[ V, mo{{! B>3ՍtT3l Mi)Y,>7ge}-[#{ܥ榺޶~k꼽5:~Umb!btc(ż#db8gv6Lyԙ:|q&1+TkRw١çnr#7\q!9Qau^S{mאQ+sxJ38#9c)&΁-b uimUU!fCW%DsS’7/-A9梩ubwTD7iVIH[X|ʐv[%`IEFqxp#̴" fE BfH9SjU:3}3Yyeo3uGtzk{̹\d ,{>k&Q];_38ziGw ݼ%y̦fp/\u&Ɣ:g E6\-|e'e!; MU6FZ5q7FtyjHLV֚_a 2 7uX"=rvlos`KJ%h#/ rŏF=*mcyqU)y+N}vL,O8Cܢ}m]yҤe/㗜@7"U4oWdUx9̎!ձm_icJ6}ZMMU6=w9+MfqJm7!Q %bFMmJV)5[[#AGOnhfHFgi?>WV`9ZiW#+7M۵ъWMF eGyEFBfFyUǭ#9iMs')ߪH\#/({ Aa~)C:\L]9ˣNV芝\X5%=Fܷ(\d#P$_IrMo(#9o9h3}gǟɈ:J0ٟhT|Qyou ۡxGlz;_ϓ<ݝMNJtn| Ŧ:^](s[EτԤo?=vc0׻wr9>G:n<$=@JP'VǂamB{1-j"^(Fvo<I`-F)S8|wn 9 Ǎ$ah̀5UsFyw]#997x-uL>,QeӤJ7r*JG˗7^WW n}9ߦNO1KLjW6*'~Fv2eOflWJjdU2+R2V M?R9FQ3@>'w`:20c2կ.GӽW>]S:n&#/V!z[#7kh7n\|z#7avAD'aJ#7dj/dRӵ#_r/`ùCaeuH@h#/yagTSn[F6#7zr? |y}GZnei!nU=n4/JN/ֺc%R:3)>iJL9#9@Z% jv^?VG{E岊 _˩36y=}T- 2Qo8~Ӥ0-|ZHg?3O&Vn#7-ͤh*“G$~ԟNBenFu%I$j~r/i@xgP=|nǂxϖR|4aBRDHR ܎a/G1?/9tPgM6C#9Se=Gn{ s#9pAםŔiEr*"j~9fӖbvGa0&2c_[6WXDBĴ)HoC}a/J}hXAÔ|Jog,cfk8g&y?eе~\y<*(&;]vY/[' ialtgyӵgZy#̓BW.ށϳ},?Ao'##9(.@-v/wsfᨣ0ӚW)NdAfBUQn7<QA@6VO*H=D-gvk夙 X.Eb [+>ppFz#702}H6:)鱸:bK)v6`pFs00|PsQ&N>v(6 S908'ucTCH:vlkCõ4߿/{?~D6V*UYAmIW3q*Ѓ{/j!/bP[6S_#7CK$WVyp-8{OF`Pt竏,kf8v"|PـӔH~=1' Z'qCYAiiL(&Ib1XXLOq᭱bC,A3#7f<)>TV=_E3bCw0YY N/l_Vwk6Pt5gݖ2&P,@q %#/Qw'[!8_wLYg=;P$ft{? קS'Nzf4>~"9HѺ,F"%v(\0?C`(-3M q4|L\7HqHl#96:QDQzG0RϣqߵS̪~}YM#/d-.WT1DMز獸* F:"X=6h~^:;#)S8S|;, #7:7ݍaNQy2}}#9o#7GNWIw/9"jĥ71t5.f]ShI|Go_;$bGlg!Mm= ] Uadm#9u#7xXd.g|R#7 " n [!-l)a7zJX'?׬nE?"ipxiZӓTi(⤂<]1"' lDE_S(~-r!eg=0^2VOM*cnGcI5qwglHopxE+7Gl *5WA#7]s܂;`u8 sqB@$te–`#ȴX~:R2РCQzAKl!/i X :6[;,aKˑݔ_eGn~[ƃ2܈J㗏" Q}مȒZAﲡnS߆XJKDHK]ܰSA;6ÛF`u#7*XT&>ړHoQˍ`; CH1ҌrTggL@2M8aU.Rq`7%!*828yBq8vpjy[W܀mߍ1>s?e8:Kq`\ۏ%$dУ"1ުg/`'x nHTzD{}lgÛ#9T>=?=z\י-nnJAB ЫlХ 7`Ow)eNivpaр[hT5a; mN1_fG?h틦?T%ʨV;.06ҰL6^\UU~~aDby8'.E8p}l4Ǖ'ǀ^KdJgo)_Ur؈jvޱ0otvROjAoG6-78J p%{-u0HmsO\&Ɠ6]2niF(MbrDd )$^Q:ҁ.3PA\}`Qd$#79{&k⚿|Pb6,DB9#9ާ.#ߑ};;0&w{n2]1U"Av&L2ҋItt)ߙ-= /&驍;9ϧV&dvC&%=L l%CP|ב?s#xhM\~vuIk瞷|U*\CgM&7|:h.D1 1bk44~PP~R8#/nyW1UTM"ji:h*x#!)=zݧ?0R}|/>QU`CA HO>>l#/#/^x 2 uJ\e#/֨Y ީyIwo{:Kp#9RўMbB}[Y9&;(@SW E9'fzRhRA+V̿P<1%CIgqkEXr'PFTӏwzf#[5RȌbY1 \KL?T+jT/x`,#7:]MC wZ\IiBlABw2zѐ赲S݀#a}0R:<~oٴ|Iup4rJӊ)DyBpMH7fY'0Q0.~YKϟ׫{-#/:0#90 s?à!P`YAhB'/AAD#1#9`ˁmr1#/i55HKӔ[&#/d3 q^2v@*i@:t&)Bl=G6@&&n#7'7F:&EÉDQhbm8$E8p h*g#9}G~To{#9WV@5 EU.,郙١*1@Э,a0?A#W+&!Rğr#9BpeO@O*MǪB'qPwrMnqu sCbHJPSuOh<G60,J[|3Mcnh?+2GG&0$hPQ['m9h) hr%32A4ήd7Kȼ;ߘvD9%ee_%\/j0u{%gGqQ\աPxM(#9܂:Jp!a ddp?XC'z3Tj=O8|bQtAv~`؆oʚ+SD_9'~ej}"K|<塜1OSX3F ׻`MΉ➈5"qIbN#/:lCB&:&0$QV ^tHKT !#9@K͗L .w<[oK&:)KQO-ô<."::Ԃt%JǕNyO|PD4bK6>X(`fC3H[#-*ق=nF q!8|:#9R@JHw^/trvNޠw Ť))ׇ\#/FDUVHhf:.9yOJ.",#7e3}kSvrcZMUߓcX>uIiBˤA#/YdUVu<}H<7!)'ku`Isz8˷.ɗЩonA~2BE F8Xwo+J L<;܌3Ȳ콮 =8C&8wS)A\u||V+T'nխV#9tEM^y|Q(PUzV!TeuwPgn:wt 2F=]GFͨ4 vJL]{6[5rNA|v߻XhJ`Ou,L ș:!Hl;h'tGP';KPG f#t0Y@n͝g}*f87ul#쟛cC`gޏA}D3r=p929^㢟t91AA#7M '46SwK8Q3QTא}Xbd]oﶸ!_3v\B@bJwy50?վӹrp9s0 Tx!zvz:z{zz~$Đm4yxY*r#r9dfQyzv&fKCa$v^uqECd phˇ2MnoTwQ#9&tgs{C a3ns<1Ngm<B0uCk^oِ:;$ٲ`mAVeʍI&#/bd`5i"@{\M҂.0sy8x2{=>I9{9NmAK0iڣ%v 0@Xl)XHvt@J+`S=08zr*PP`Ȣ,RCT:1 6kN85_:[^c[;:~40{5mF-o}卺;-ܧl-{#361g3!1|#/>(-glCnoܨQvW$|:Py^!-[Xnܩ2]A4"i&D#JĞpG%yb+.NŇ#7'6^(AĈ4(38J>*Zh~ݔ1!%,3+ueŪn#9G#/ߋ%wIT #/:֩hzT<,Yz`rO#4ˊD~tvk: fIlgZ!UHM[1~z|E#7J /mlSH [R*܇wوc `?z8{ d(>QaA~*vpL#7]IdE|#aĝۉ's+aX3}aͦ,k^O'ciޯ?!;1$(hu&^rlI--CG!ʉ9ba#7d#71rUi \DQ4T>K)454&z^Xh.aR[{<.bt$ru2bb @ӌg ɌuYRfj|4Sh<9nity@HT S nT=PAiSdDZ{U?P'څMEo^  m!RE󢟫{YhuҺD( DU5At$QC(|#/_|g`T٢!L%t3<'g^)S92OZ,h՟}B퇶QM*~gw! IDZ 4}ZJB:ᬦē#9lkC8*}$4)r{&z!;4=$=3Jj3#9_ښAJ=:ẃmI?8O2thcәܳShao2I}齮#[L;H54ݑq 4xR$"_{s.{{?ܺ3NDJoVnO•H*#/y\v3!Z#9UJ`(g7`^A_?rj{#/C^5(r#/#/ogeV#7c,J~.{sMi0.}gJUazZs#7uDD( /P$4$ '#9пueS1'٭Sm:h`Q0 j&#/}n5տe-k7D>(",_r5A v8vQh2i O;l^55=)_ߗxF iA /1u?؍Ј>_>SzG : )5Q,jSH|7krz~b1'HtpsH} >ZkЛ6(͢#/Ρ۹X4ҡ%4rucѯu.VI5ɁJ2ǥui'#7RLbo'UJRtO%NP5$S cIROyfz\h|5vLHZOv=zQOa`_?O| !KM>ȪҬǢeEv[Y0)#9Ih"X#/9&Ɓ'9<"MPs{/_^Sbtnc!^_=1p^=oԓ3F`N0 DT>fp᯻4g?yjZad.IY%eg;kCⵘ)_-n,3@}oП>N Кs>ݟwR0@I,a.mBר#/!Bݝ_f[<8xm_P"j @Ω&v5~C4;)/#70 .Y0'[1 CYc"l` #o/ʗ#/_oz]h>#Zϥ s=#/|oϱsx ^Ysk_Ja `zʊ_!m*dhBpe$gː;SPi >+9XϹ_讪^e2"6{-.jֽb{}>vR(#~E=S^OCU~POn #7I4mU`m8 t8`yO'neK螓G&;3( ~S>9\3~[ﹱT/땽qc/5ƪQ?碫coDŽfgQ٦z3urp\v0i(#7D=O7(U^kg-?xL)i]nBi8b7:{{*ݩE˷Je2g\Xcq[e4Q|6YtK$`c^gm<(;G1JཛyrkvB]l%/f6?+Mwz:1g>k]sr(ɉ_f87|K8MqYkS%~+ )~XৈSܮ]Z9cFt5ggL\j5Ϧzɻ뽽Zj3X)TxU|z}Ih[^#/NՀL)P亳1Wuwٓ1K]wf=5Eym:G=Lp!^uG0܆cO퇅`6ל%j6vP#7CqOI-2q6r$C@2Wd-FBjg;O[Kqk?mi7n~2:K©N80N.f=;^?TLt]:ΡmWoZu#9Dtw}%㢑y~6k\Fjgz]y+C-?ny:nk#9Ó$qBJ)mg!/c꺌$dĖJÒ3+%]:h(r'glkS+4.H@lt|Qh~ܺ"X`GsvCyW=J H}jwhG㊬&M#Hq&>R+_j1!BXEniT;CT<S˳E?.9&M~Q>YVVNm'WXO .7#9s=Ž=UWWY3}GPWxG&^-op׽}n:E*mf]N:*iG] pW~pMLR>y}r^(8ɥֶ&dZ#76YV#72e >FddO?awyg9~|o,|hk'SKy {=SVINm6Ѝ= @c}^F.!ӓN9P}ru_ {āIIh=%%"˰OVdN 7l0}Lz|6m>ќ+o8EK:2#72;>zr;8m%GÙu;H"™쿡K MniD; YbJ pCBt7n@#7 @X*qJ)/KyNi6\r߃˳2Oh08y\ \v i}Cڤ'7z5 $E|é˫`;sچ(tNd4Yqߵ:OGؿ|GmsI1fm*U@`1D]XdG&8{Ma~vmR(jC8BԈal<KIB(%!m&_xk_~lz_?d>qmkxn̋ 4ل7aܤ}͚HUQ/ YvFCb&@#/>-!\fDQv ؟#/"37O Hb _|zj>W_0V1#9{|ҁs3r!H]p6Al"W},'f:tGEpXGm=12ryOV-v8Mv ;xxua@FF( d~.S[a%£/x@?"%3A 'Ȑ H#9Pg?~~A#_("kWRCv真/##v#/z}) W[pQz_a>Ȧ>ڟst[))N2>%tp>~n)$ m פz_7ӎuN^:͊nC*φ9?iLc/{G#9#9&4s պ (تAqOHL@A$V& #/=yG_ăO0=d:8lb @V=E(VM2ѻ'6\f&xmZ#9+ݿL#7#xDiв9q,$7?^8}C񖝖|IODd9(BDB[&Γy{+v@wŐ7Dwв}Y\Pq"ɴ:DKTA?*#(Vng8SdTmzTmE5_VE0 mr)Dd&2V_#7*85zM|gB):u1Aq#/jR4~i'tۂf4/J(1,A\/o!7f?#{sDaP1 4v*Ɔ>Z)\o1Dfkގ};9CT*r#/$łű{f  :*@,bޗ)3Mvآ^UdRk!Y6#9#/ˉf=}iP& -G#7bJ~[4ͲkI6|S3)~&I8=#0yeNZ,pf^*Y^c(XxхM[̆1~l:svUks񸗳M>x@r]Shs<_PM\ܶp{܁A?|5+l~DNP}VUfdQzqi U&ϽJs_7ZiT| ]=cE|iĂ#!ܩ7#/Pu(yM'`yZ:ie}mݷs);l*t/ْoX1{z^SuI!1m2vIϹt=S03ܩwc@2(zwU$F:`FRP)/ zr yQ}j5yv*~Y/p1],OfG3)3#7 *\I׭J:2:Fm yeL}Z0󯍥:ysYhm̐-ǐM0V+31݁yH%e=R*,7! 7Vpߺe`z"$EAlSPV#9'ZA٪-3ѕuajFrs֗U|#9׉yKuCΜDiOV Fysn쑔#9V#9RլFyV~!y'k0jaP>{_-Uls݅ͳS q*,!x8-*` ܓaK)70oʚq4tGܬU+o]|Cgm8a'O =nL\`݂Uo,SP1|lf|H志bD?j=|jUM@ C.#9#9+/jLGY9~&RT-"e(bӁ!RtuZ:CkNip䩜s']W(LzPt}Ʀ|U^px82zɑy;ggi43HJL#>:B)ͿI{3sí2^W;e(ը)E7OG$#/9AA3Bm_Uo8<Eb>ӣ)@+|,toRǟ@3S&&sHr #7cpz+[ZE)53'dV~⼐M`7m)`[`#9-KA<ޒ:c?9!ڒBLI}=)ٶh"V Q+Tr\ZuG'tzBu~;E;?i};`k3)u&( ;^#/fyE2F{e"t!Hn;xw<&dLWz6[>40M̝rB9k <9Cøh㫖jk$PV%#7sD4ŹvxY5y7C<3㞽4=j%sώO6^R3-juk?{iX3IffQ+%3Q* 0~bc#/YF(Q-<y7nwj|#֫X=aϣVqqL"#71v){E7#7y٣lx5FN!FFZ;ڒI?\-Y1|+e"p7-6sNOz֥kxnv݆q%#7MsZJjS9%ʖ\.*s5Uӓ/I'm#9&>li5։c*ׁ֡~FҲ2AJsu [7mLJGMSx#jb=aTD$(v *t=Zń<-4#0EI^4#9_= v| Yvhvm[fj'#]t#7LǶ!:ޅ !n¸5(\ Et2/b<,X j GRiV#7]#/nƶc)%[pEtf~GlךcpDFjN7u4B7I9E3ptrp2M$4m3r !2y06hq^P Hv6!tZmoPB CQoj׺m$Sِz(a}E\o=t_Yy hD f,60s>+i̢ېȃquΨhC|ħfeud'govLHb _} a`!v#+6RV#7'A@uX絞thᖌV55b=(6ٌR5;FX#9.Gm֮~H&s#9(UDLHN6Fa``|~D^Ig9ܸ#xC>8CxR1#96q|+s]#7|?b#L\HW~Uː\`*d[>[ [ڷ.C(e#{]kzsREʸ%5o㳗#7#/ c GrhN;#9+Èu\^'GGTEgIe1c $ р!Oj#/vL೶*5-9<2_;vv#Tx˭PT,lix"5/X&4׋]a9#/VoykN<#/|ܛB#7N٦5y^_WwO<пC!P.00?~7mtO4"0舀L#928~яpFv:|,:nݘ#9Q02JW!{y?/ƒ!@P`f##8md_s22e4!L )/xOQ7#/ #/m"lhN4IsX'OښffK8ɀHQj8xQr8&HNN\į_3jOg#MġXΎt3DL7 GXLP<#7SsuHOH0w>>b~F>?^{O~/Q;WGP#sH԰~@A 4&6؏ӳrcb,<?SN@dvQ =➁z x" g,uc֋&xA:[>p#7㬌wT|5 =snZ$&^dH<@KBJ3 )ڔUG>mQ_yu{62˕(ռtxofǴ!Ϫ~ԎI_RkH\I:0B#7?V!J1mMO}.D|p#;wu~'^q3x\GwX#/Csx8Sr!˴ܙ5Zh@hRi8-CZTrz'`yOHzy39@is8f>r=3s1pK>6cP0dR kN.@w`^qL7A&A)fKumsf ±8`؍W:@?d([!^h~&U%3h_BR{}~|,u44M10gj0}?*5@3#/  Hzjb5\ĮH%܄BO nu8t:.(>?;Z,V aϋ}f.ɉ1Xm?o2z$OjzD#/Q>Ų0|]7XRHEU;GZ@ZciKjt&<n'AD󚜓/C҉&rz$r,F#p; ?#/)"*H #7?Ȫ5sx~M#!,"RB`A;rz9Hnp=#99g4#7D$ˬOD%Bar\tboX%9RV8ɤ'w@RvyN=raYQ9"!Pes0͔7-ΙSn4[x1yP`f#/xǗ=zo0 /pD#7҈"~A'>;."xx#7㈊%NOQ#/1m_CԺA뭦7?4+=#9_ąEdyk%B*pr Qf=_gmz#9ᥐ+BZ#6*M*|uYEA7!*mJҡ_G6|8qM2˜0.{{CAw@ Pm?@ 2#/Ct(#7yA:~/g/Y 8Ҿ:?ry#9⇧Fx#7k^( {Äk:u#/7C52dStD?a>CKD1i;Mȧe/"C:nTY w#/j`70}~}c'aPMD)]n5$ G*o#9āыyUb )L2 XL!~<_mY_aWhD _?Eס8quI)2$96#7~ Fvuq"S4J#k4k4Z4̴lif4QF˕)M&uI$7QIu-ǘiՖf=2]Cz3X#7 71Y\fLYF5ͶH2nGަ3BQD+ M )&O= @ْLl\ڇ_m jΠG$DL"!3nsYUؐ(Z3LAOQ#9=#~"yvvw-Јtd) cҴX>BPAiNdNP]5B)62NmƱLU WlF wnĢ{I.TvSPƣP'szJp Ck?e:܏dv⛯{$`}ӌݩM"\ C9ϧɋQJ={>bSEuPj?#0(4(7 cxXcih3|-p@?Mi40PHW}?=/G@^ٯ '+vT/Go9۠zva$ u|cWh OTMOG>Kw=?#9=#/y~`<`XG:҄!(COHGp4|^/õxG%ǀ_G\njV?Owx} >Tsd{}ޠT\A)#9}zx? ܳ#7g#/a7P<}U;<ft=)iZHh>'/4W ڀ91TsGk ~5klk(9kׁ'Ĭo}1nD>6P4Q5U} _ JM\ ?I/ &|χǠgb%>b{TϏ'H[2qx̃f÷1#@wa-InKY&aw~Hz 8˳*oOfpa^ҧyY;"H#9ĺ&}v͌x4FEҷxc&q#7J!{+QGJ86",,jiDדK8256vq}nlDL-Q^m f9HɁtOÜuCld5#/$fX,@>#/ lV|'<Cı#/Г;DjP]6U+w^)#/i~Z9t^#7LD_c yWj^#/A!@.8]|g~a'I*_a15 Aߤ#7}#7?F^76@pa3rO%dc_ gC*1[T.F,7ĸFs+P#/m$ٶB!PAH?lɀh*<Ó.Pփf$J wTbQM1GN/IWUW}oCM@mQ#7YGu3Z*'tX*G`=[m؇^ӚN:-&'" ~[;Ut U_}ûrKHW"0+!lB5+^{ơd2Q_'y[(ۚJtʄۯ<тu&R4lzk|y~`5Bvn}>OC#9#9{&|w8>SO7B~j<|sN1(0#/'M<3A24P#/6\'m)p2n$6凙M D|vwݦ^QZ>>ߵ㏜^!EҸaJdyxEA#53D`Q!8(d *R?clTOal\a>>{b*B-<ɆjB6F4|ŴdG0}ÿf!@#7LH4-!)$x' xݤC5I krwB!:Rq#9 >0Oq>ZOgD|=pFGG&,z¢'_>̯p}9ցz?0_pi 3v`Z@A-J JXE459qX/?(XOkzxh$%H`G](>s{٪uDs&(C?a`=}i08JUZ*1(28S庠ȿ`¿r}iڠr{#9LaN K!JC#9. w_3}\E]UqŅ 2 `NarY;#7,2ؙw?Qˬ'`8#/{9x+xR:M%T8Q7/H|Ost{PmUBP Oy*҈xo;pb0X>Z,/ay⿫i~,G v=ωo g}DG!/vAZ'Oa>Dђ' B5\(,R117:UKP4.?o3Ƹ6n??")TW}aS<ŦaذE]dLD1<+kOR嵂1ѱD?#~g5[ę;:{838}#{^;.?^5IPd"#9fH#99`'g  dU%@7g C@OzS6^?R,Z8zL#9 ̠a2L z@_`z|ھ)#7@=qRЃ#/=lj7YALw>@>{I^x kaxKϏbӹuUN 9 3g0l՗eSGִvX,d"[4í V#/PhxrPٮ6 QH"@m֊PI=1 (}yy+ R9&> d6SS6VClb+:LHoEFk-gT0?~_&9=`T$atA4z ƨb}n@/M^E#7m8bN^~OyYx9Bwʡ8#/ȃ!#7CYAϼ~#OӟݘNvP%̇tu2( J3ۼz!ꞃ}R#WvF#/:{<>Wi$ }7k&Հǣc mt)9YZz|ka#7t9iY6HkX隌31"f a Ш]=/{=c1#HB0ò3R~GQdǣ>9PG2j)}lsI.0N^t濕#/$JJ#"{}|ry%4a#2-,G6̏xn|_^-?[|k`\pW~਱D ǗTFWDvCI~ RЭ4>~2p¢KUQ#9" a:4ZH*$Cn@{FmX47ZGvтFIז9Z\>@ArS=G/}6k/̎k#9sK0e2BgYa,Z,JR6k`F>^#9yIYH#7*#9+A:CJTSjM? ?ga#/*D`[1׈0B3 h /.&I/kՂڳ0\&'J0oy#7d)$t -iXZIX,b#784b1k&;~uE8=_7ܷ͇#Ԫ1UeE@H+ҬLG2I9Tig6cl7||QL$a+),)uً;IOw7-~&ִRsdTZ#/^9w#9x0zVh8$'7#/tnԷU>pvGD#s[LOs^dȾ;˿met7hkI4ӈx Ghdw t/z7vy0#/y#7#7a!mAgs&(?.pubgխch(t]P!D_c۪5a#/4*,Q^^;ʺ$FjrQMܜu.Z6鍘gvZ-3]Dv9Q@FsAΫ7?Ѓ:OI ]k?.;"ǣ,A5EK;%WZ4THNNJr?W6W^!#/me_Da=ivK#7/%9zT|Gup54I6#/Q(vF4R_{X2h@v^`}frԩoupίJґx*hD#9QAE`ww pBs}d1)R*$MLG t<  {}/\\cS!KMnA#7ߎvDn7Ja ]Gh N.v#iC{"n:M>D`ug]]X?HefجLcmhp9-0Abh4=]6Hk<7UlIL*VL *QaANwT l!#7Wi00h(G^O|ߦ^s⏋܎"lvbJS-{TӂI*>I>*@$Z\wl^Pv#9XĊ=]O߭zf2>}o7w9OTg&WAIлav+ss&A8$$ߒbхny_^>?ɝ^,< c#9g擋 ;_(mۘsovpGqs֔?&#/.O'Wl+wzw E7nSщ.7y1a ޺@B@"QO{L~7x@sۦ1S}<$)R¼!#7| q#/@&pÅ;Rfߣ/#ǧs~zM{n:%uF?x~:$P&m n*d̆A6CU{?iv`wiYsN!'w/I;"%ƽq(r>a!b+Qa\U琺S_%#7^W$~{lIH# utk~&BzR>>;t~Bysrw[0qc]?.ϯ^Bz<$z}{9+ V4H65h.1L%D#7#7 <1aq}_TD .D_lRƙHb-iu*f ڟXWC'1Ywmٿ x'qDUUUXEL!C8`I3:w?.6^ETV"#{{Xg*bTnO'gSF-3b+#7BG?p@!Pg{ձ& {hzG?Ξ8su@MJrҠ*yFC ڨ!#/w#9-!!Ȝ@vdM<"e E#s6 ccFC?pyPkn'X)2ᶷ3Nɓ5NeJyɘ >)#a5Zl&DˆoaFMf"f%_KcBr9wy*9}7M|9Q s5n`H5}8{j(!!"Dz׍ܭeeh6U;i26z/<z66E0pyܤL:\ g9;͖I#7Έì!pM/_ ܏?DNכǜO1#9Mw ,':ҧ(8AlKjM#9އ@+*i7o|Ai;Nӣ%_a4s;4J{oa !E 6V4IYA=)-OLMmه#uw0;Ŋ׳4:bׁv#v0Hrv$t3#;UPVos#71ϬGA9qH$CtM(zuyzLGa!7 F(kzׁxl<RΔ+5NL`x̔W>Ph߸HHӰpCԳ+vVyRI $ECOL^Ъ0#9WKoTݥРƓ\|C$[; z#ΆBITc9udtK/9,^Ƙԋ$cc7L{nӐZDN_+]YN9W]ÛxS0c-̸3&\f5fY$kG˃wB~:QlcRt<;R LNYַ*j)۴%z}C`ܙ@!053lv2v''#KIxN9Pfñ=?o. eM,Ld 놕׈25g+چL,Y%/4kcMN$}:X6c=*؊2uui!f#J#9 #/SyxEV=DunS#/ =gx,#733xd=Ԏǜg.Bs6 `v}> Z[>ӍZOfDgEAz1pëRuu 'dVFt;s D[!ڍ\&q1ע*: Y;>ix;h6ǖ\Xq6q} ^aRy&QD^(Mp&L̝ldG9|Q\+F@x% !pys4 f1dģ#9vχۈM7P,a#/CTXMaz#&ERedȖ]bM@2W뉛Pj$ꥢh`d#ԍkfEСSЛa1\Z0Ǩ3u3vCs6v&,i˲L$G:nI&lJ u70n3]B#9DjBY#9,`ܡ({tT)u6M&C`r`q8YpPYrhKo&ıa#y#9iUTlbRe- t$naU:YC8zj#\qIh}f;v`dksc !(Yf'9!igʆ2H,R,#93lB9) C;d'58wPwC`x&s8C}a` BCb =E*Ll~p*:M`#9 :_ޅo4Pڒz߯o0FAA#96@ {-Ǻ( 7K*&Ҕ#/Jyf,(jc<#9k @(} $aޛYq#7D5 >)&0ΧϾ(φExsE?s"zo3D HDA`p,'|mZCDެ|Pӧw5iwA󋁊bwQw厛.8{v 6^b0}T tb"eabe⃀R y'`*{Y8u-EdsҀL$}%LUDzTKR[3dgZ=χ},#1iDA1ķ?ЇܑD BĭDS2kvsz/ :LgOqLZ^ 2AAETV{$>Ca d)Ӵ"w\ZLieݫ9dn i/6fFhȉNF&RSا~b g0剆#hk@#9BXwysffK'jqH˪ݸC9*_ԙ#9XPe*#94lF>#+e =#/:z BO:%`Fc <=7h2I>#/g>qP,+ P:긾U_Im\U-2ͥIJ?GO#/#/KJ'`CB#9q2Z`*j]GD%E|L}n|ɨgLEU&+zR+j,]G.;F8#73~^>a_/=E5x6U^}|.zD yyJcqvI'WV2a  O8Fw]`'#/b#9bIgI۷ט}]yXzKJշx?"7ŶǴgBspޏ/%8-Y A3öb͒f]t~>;EfXF'<ǽ J/T:iy(}8Q#v H +#/YYP:gr$L`UA\h8ALtkXP]|WʡiB̑qU#74[i^ɖ&1IԊ$ݾ1qb \XѶ6mXMIQYXU%Zd#PA3#/$3]xkh#9#/‹@4#/@̦Hhe z|׼;ɋ+w`EV@늣D,跤##/_B=#/["<g5RyJTb $V&zql ppLx)JksEv#/naG0!.:vCi$}:I$M%khe b#/T@#/v#/q@{yB #7&눱 20#Dٶ.D!!aDS_<$yL&Yv#/Ȃ8h~5d"٦iW\(VmnjL)P[3-#9E7 ߅#9Q @3 #7vog}*8;9BE3aMJ!@YvRdbCͯ*>??Gw:4*Y/"@~VB,YT^(ݘKduP>X##7#/  UL4>㝘q<<;MncCyCzE]7Z3A`gSͻJ I?Ro~e%7|CF=轱s\{9dPGgh"$vyJr.*p6 TbADpUx4m9Fyt]d@8'bl1Oa{OWˇ!{{#/hH$Pkoߺ~h4O&C[eo.gu$/'=p/-Z=uE:^Ayz3~.];#"Oȶ_PD=׆H3w OáPht"kC$!#/v/%=IGs}pF d%-q)qɅ~ƲoMf=ޙ b=\~NRkTQʰ$<:1m7~^a]֬z kQD14礂&9%Qg@x<#/IZ@!#/ f>^ 0LzWygH<ۖpYm".!|,Rwȶ+Ce}di\ɇ% k~= ne^SA8V1{|"7Ƈͼ>yD1?Mr|.: n`Zz8mNtv<(mY٨m*e\x7GMra۞=q!s$De~f:}8 ,LyA .mu&<*jG>P!}>e!RD9NjU#/rᱰ۫t/A lKpAMpZdYK[?i`W#7-5&66(LlT#7f=B:!(2nrS"-UJ # gg9&peTɭ.dFf;|Z'! `A01 d9^{zv66.5c^CK#!;8Y:a 3yCLK"d9^7$FKv:8o5ebQgC4{GdG8/?R:~j}S#/ݛ=vVLɛr9C~|yE ;R ':e05>mo $WrRZEN` (H)F@1 Pq\$!RnsV(i#/HI 6alڜ56BX:Gn^PȸK'oSX( )P9gDbj󫦹TU3%NytD#7ym#7Cu9N5a:+_.G5(Ѐfm98)kʕNVö`a:6QSm|qpic"]-nM6Qxq 3@Ca#7J*x#7CP8ޤ Q(!y4'DK;ÒY=#9y,'BRtJ0%Y"q{ݕvaճZ0 ڣB%gU:#p:vflHHPH٬10 femyE7#7X2B034AH `^f*N2vtq#㿐S|0RpNf+J(X8΀,Wf|ѕ#9A!;4mv#9xq%ۤx彿 =@ fI[{u=ēK%B]w}HrgI7#7]TorlHY5w{#7`4pK.}f0Er֦Ĺ.gN;xÍ-&#9T(?̐eC>SЀ"+Z t3K'Q; =TUE$D7M1V:|Rd<_MH+ D4,BFmi`f3"?0$iZgX73#7EHU2QlM#Hjj.󮤉,yWB;/o@yBFʅ6d~ۇ\8 )LuJI'<חgTڈ$56rBZ1x"FӽQSM \-qN̐V /a0iq#71-PC fטnt T7E+٘(\IHȝ݀v(Bn[Gjv¤F.:-n_HdAmYϧ9,$&ј\#9m#9xaƮFfF=OfFB4|upMzb^QGQĆ]#9T(TR%#3bkٸpl0KQkI+J01E kY/@R96sCg,Pc]3 XU^Ӗ64Qq#7ͅvBucZG;vgyƛ+|o2|wLG=zOI.0ѫ$^SJwH*N՝sZ v}ӣXŋi֛!P}0Za#7{;H(,̈ V1$F)Sk5iqTF\^#9,eVGaنL^^2Ril``-N Q&S bRգa!Тh-2Q #&̓LLbZCOM#9˘/O9BilJ?2s;V_}ao\#2"3TcٜG"+& r7ym c4 Ձ42:l_:61oH%d#/ a=g/{#9q.p& @Lg$਀#7,"HU!rcGLG14!ARIR80gT &D1#/3Úl6t1@jĂ4$4#77EM;zyt Ma8q9>gϰ1>H|bW51 \^8!+I|?s83+V\}&9sP5>.e<&&I\)SmLZ7#j=";+tzODA!MhbuK\ 6AJԥ#AC@(Њ4ԣ- b!1 (A"?'AVx8cX3T s\iK(@ꃩN2j]8ipDO124"#,ɒedϰIMQi3%\LIH`DҦAM)&[Fo׿naZf,DV1fbJD62b"TPĥQE#9#73#9IIfdژL5Q"(b-DL*Lh4ͤJEH|fu1!YK#/Kgr@bej|!nkWfx\m3wHP8*rKJٸ[L%~Sb)4pӔ4g#7yQB#9>1:r0Gr2F@e~myhM|pdMihD!ӊ/3B݋ґ4 o~I? LT/Jh6& pd pDp'Ab$,lZe %\x%tuOT{3ySyza#9VvH2#9gP{}Ztp0m 0^of#sa9#/^y?!}=CRPj.oa8ri/bB[>Ɓl+ ߿@+H!”Fu/6 oi5{2(F UUI*"gSqObxq FWM1Z#9m±qBi҉]+{15kv Zlm$قf8wB)!=Hˏ}7M&[rL!U@@@݀#9YG@D`Cz?:?RޛJ\ވG#hAǯxPl-BXHOE;3+-~_/GhDLBOjY]w+<7;6α5,'XAdNy9#mp.DC`o?Q>9H 2#T@W@%L_[Tc}lgk'T#9sK?MM$|ѓQ~[zy5䄚AX<d"=mf75Ij c*^ty ͅ;ԌN=dOfRqd$ugS7nPmGd\8F ֟jw퓭#`rL7r5La;&I3&N馩$TF\;0y)K=`:pa8禸,uq&_} mg袓0!4S±gwfȄ o挨;HКPhQv;"n`׃rQ뇁DhuAm^2Cq<5f̝$R/}Vg&Aqn= ;΀t6zv,xmRXX(KM^\-yrv#95R \Du#/E)i%6UBL=D?$o:8X'fX@8lCع11N!\L+"$Ƥze ,8XGFq/e'ْ-݆j69Fnro/=/ppj851S[Os04^#7V֞ad8vV(U3(d2Sg3AQviJ @_&z8:[ 0v=IۃT .AE j0@$d.x'Ha$3A&C@u29I!é [>F$sxնZx`EFV; pn2u+|LVTY ak <P:yɐ爓6hz,8O#:nuPFjfcNn'[!͎ @:б!Ũ mh2Fvbj`ӗU#7ߊ~@4LbŐ]"-0pR9>vԹ;1Z_*4#+@; ˽3ƛ,΢h#7Ԁt/vR;Ha"ѦX{Q\!C*Tj$I6$ 649*Ffa8sd)Q`nH P9q̓%dFñ$h3;f*zM(dXD Fzq0F nhg4g.3i7& !Ɩꎃ ä4,NniuAf{1Ҷցr@Zy Sm;HI8f,#7lŵf5Kak#//+Ԗ1=G{M jFрD3a`I2%9v@ÄOi`Rl&jV-RI0}%JD(`8s@;yo &֘"09^~Ay<Ĕ!kϹ/ck`P#/0U|)Jt򂝤J":B%RP$q!`ō # @ k#/@ j\$~EMZON?}{yU?SHwYzmp$mwgWkW)L֍&;, ι}qB8D6r5!!A+ASQŮxպS;/#NM(W#9u98בus"j Ixz@۳#/EP#9d;Nh:*I2=#/C n(]n8ԤmvU&bv#/lhA#7b1T8_7J #7[rg˷#7HnhN8]bj Jz@ѪjY}ޠ:>) `jg}( vC#/$d~ #3#/Ʒ]ٗ7]7l5͒PB\(G?Q "{_4zȓM?g|D<_ 䇤~C0b5GrS7!?{@:#gCp] O>F'΄>]ϻ r=o!B26v94KD DdF8ZH@lT@D9F)`6sy\vx[Ɂz!sB\mB^? -q2:88O$6#~BI !рX>ȴҒſ@~@z" -HkhDX4̴V#7/H%!)Wbl}&p~(<}#/)Q׭O7o޼6*{aکB8epEj^=Gi5|eaK=-+ZQlRTt'eI+%qZñ1vSea\:m)B%)}e6M6VJj iOZQB3S0oF#9DmYMjN2 K,zfd2Lz5Ճlhͦ- f3mM9LNtDt88kT8& v\4Ktm528SiJ9׃LO"#7Sn(ΖVQxg-U!\N]2EvF6LUlܐ(S nK[imP }9#72&j+>5#9 Ҝa]>ƚca5ixz_SwMײv]MCm3p Ғ:am@(ebD`EשÏ-Zm&B2?ɱyaOZDa5‚3*hnylגdžݺil1 cˎ7G+~&xLn#9ѼxQ6lC0 Gσ> sCaFlKIX#9 ]*Pnr`Λ3_@VDѾ? RH#/2)#/BPJ>kKx5HEiىd@',FWeMTGof#/ A1P U֐i"u(I{vMt*P*/)U4[(Ԋe,RYL1K5")ou,z~׹SiJ*bMV+#HAa(TGz+! i( AS*-JkRU@jhƓ*8]m9Ưv5.*pjI0ڍUѤͳdԭz•iE0Յ-I;mj)kŢytVlyy;RvBY%x.׊S魮$m&-T5p#9ټJ#70kp'ӽ'4B^!yޞ"}dI;7B3qy5$8e;txqȾ=Xu\'Y#߆4j4D#7 pI#/ O~隖K ldDA{"hnd"6J٥mM @02Fzf 0Z%hsJJGyc}""b#/(.C -,B31-_vJMlL-I6 vPeDbQi#946e)KISFL3) Scd%cRV,XR**SeJS&Md2 HڔCj6iY#9RbIM2M2TU#j)bfԙ$YZYV(b"F #/UPE3RA%"X*H#9&#/$4Ģ pJ2#@#HDZ +W*iR&Y)'4y4?#/IswÎrRraZrqBFs #/󢀁=5mB}\bT'.: *s#9K*0ÿ7LO3> $uFqg)3lK#<;t݋f͵1.K;TvUrv9`ՇKPS#9 /a!!p)kHƘeRWy}*ھ#q#/T _Iۮ{dwh||C*~]S߷(N8'ɡM5Q3?ILLc1 B."[ 5oMcиؘ/0`;AԝD>dE76*7P -ߨ3߿Ȅv ]*+}5Y/e2Q+!_s^!`EFvaU=MEFJ+bmbzGlpA=G,K}aBу u! HR^#nŁ? eU @#/#/dcUF#7*nCDA 1O9t R#b/3P=i?r[|pE`){ڋtNLLP4 Ix9g|pm"u*Q&5KHL dg[;P <99SvIs%B8l^#7B%(Cck<#/5ߙq\PWz$?@8\u#9,E7QE 2S!WwnuK-,#/ێ:w L72 H`N\46$#7H`i#7B4ڨ$6Ρ,6U%nR)L#9k49bP6VyjsBF[JUdQˤKVEʦqP1.t_,@¨#/Y'&<åƈETv8DCs 93*d2R4j#9pyz$~b=Qgx׫k` b*[6&2˕Iѽ[=9Huk-6PH٧tT@k]K$}oʆK@^J,׏t~m+mmԷh`/Ww}U%O 'kYikqɹ$hXK8BJM qk}QAƄJki0n P!+]7em=t{1!1CwT>9 uN~\?$8th:4L;WpِԹgM<ȆfBcj$`-Yԧ'$+`2k[ԕms(Lxܥi@iII4{|Q!MĊ9d#/tż-8P0:z6a22˷V 1i Bh)MW"ymR=ܦ|B#7#/i `6AySp(&(c522 "^1!Xgv;ι{uEǚptB#H#9IY\ݓ5 -'ۤ wdK'74Lv.! TH#9CgɗvqEY)(;-]NH2c2!vPc+v8ؑ0@6] 7P۴<|^S^)W'Ex 7< ;LwI`Nj#9 ᆅ B`F!vz0<"y:c*D1b`qHT<YUm.ZOsklP̉KhcO#/(ih#/l&yw#/(v'=/$LjsFCVd1pO\*9Yx4c ]Ak|;3H+]Su7S|\κ5{x5#AAs*>w"*zaLnSI6a#9wWkSǙf<gfm2LH #7C8kX7 -ƽR7̆0*c`5P!;)yct߆n$ ON' gӹX@ihXRVv#/X-f#9`#]Y qow298EI.M xb'ޝwOoÏLcՇWyB]eJ墉BC:] `Pg꾎FxUd0LJU lYӠ؍l6'1V#X!ёe&(X'^ֵWY$3t#/q1iujβRۗ#CL`ʚhjD)H uNx{~u;z.v|;|GJ<=^MOw*4gT>uv]aEa<: b'sH29r,? ʢuU> LRMbA: <&?ə dJI.f HCC4J#/);~=a(Zf؞`<9ڣH~"qAѿo<_<֤thmT/`U bxI#7o~ b* 7D_qٿPtq$0:ϓX.P<?.Cww1Q *?!;?x" "mR#7E<1|#9K 5J3McBzH=x(Cxy>29€:!e81#9\g(::u $)fX}_#/h4&~ "79۪T*X#/}=QJiPYd&"#/p 5#/HA!{ѦPM%2iHZtJ(ϓg,%:5Cq2WFbIb^F` aGCItG} !>=U2v'><w3EUAJ8B~|M}̖-%"iyHtvu}V+r6"fRza%C fU L7o:є C@k?OiEm^:]ɑ@Pw#7c.Ҡ %M4<\?X!砎`XH.Kگ#/_~!BEi#7E-efdtgj3U QT*lZ8Dp$`9YHA /\ Q2TƠƒΙJ1;*IUU1ajՁa2&k-%Aveh1>4 6&&:A[Uʍ#7161Y+@F jF51XV]TE#2@&r h(slEh0#"f7m $*i7KY4a @6ӣL jtreYm |볻#7*Z1FYZ A4vzuW#ݹl\FһFW-ݼO;gk]vA\r9Z:.ZvcX2'Fu"mfe7Ép֬Lhot4%፠ے5cMѨmOc47EࢦCT! Z3N/i(rHCzP8gmR_%䁃hqp{U,M'&`ub#7 80#/Iъc#75p̾Ġ =os$ޒB@<J)J@HH'+m;Qz\乴$Ԛki6Q*$r&0XSVh)#/3"I$bI0cZs%&H#9U`$a0 DsS#9sO EBn&.!&Z`ĴqG9K* ,OPP@:_ҼpЉQ#9#/Ԫ @,|49y<Tc=3NG=xVWJ#Q,n:]Ȇ$X1 *dsÆ@927?);{#/"2WmRF!ZQW֨42r Ť-rk")!$oc{Op;g顦R|X|ZTJ `ПwxEjUgo_C)I=G,#> * t(wi㵩G+o/ apVBA:vOG6uI11LZ81CLGr`>@ lhr#9SBؼ@ğ+='!D#9`$ $t6Y=˧~}?u;l*oY2Aӵ6TVX*jCu"jI@Vg3*1Ӭ-'ᰙd֬'%pcM gNž0f+Ô&n8afӎ*!_o=W`j;qe07V|;82uG᱕uٯ( *Qͭ?C ÐlpP}9I{Wd>$J#l4#4+SjRjj21JAeLԳl+E&if*JZjQ66Z@D2@$# #9%6QMX"-YiUFa"#/k_+.?nݺFsHnHxu0%TL $ 2iL T2W"Hi#9j;1B!:BOHG!ND;1 dP).-{}2mBH_E߳E.f!ј{ 4|0}Aԓ(Dyt;l$G3gRIr!S'^j (C @r>d ?Wn`x_D.r ]DX$ߊ23-24M#/dߗz(ٽ`g$.5#iS 6Ԇܒɼ}o8)S(`kccCtf! Bāx9}HI|Fy9Wwj2fkPɼ>Ñ#(r{{rFCyc(;MK#/d((Ae#/B}#7S'EkEi$4$pIׄkgW!UM +=k!sDU>Ejco7ZE>>4/(}F[Q{pw:8t\XZˍ_R[Xҩ6)kieh6bA8>ͨ@'F;kJKtXqS}|`pLpuQj(20dP0|~~&='#/Y"#9.e,C*LVkXuy S0Si |?14`@ٚ04(C3uFaS$RFbobLU)yb`H0rCd5JZ032vJ!  `] Z{-S/P[2cUhL!wE)A8F4! `G#|#9o٭$I&?4rz HAץҒĸMuΘ:o7#7L#9šx0>48THgP.6n/UB?R܎cxHE.F& %4$h@(qtw0.kgI|~_5'G!C{30cL@p$bxQϵȍ|K#X!o<҄Gހ> gNnr@THy{IQ {{ԘH%^亠Bڊ 3#9q<>$9JdAk2}sP)ixAj'FA)H]P:Hv h#/85CeEs\Ha*!(n"^l 7v`.Ζ0``DqM7DTLƸ^dK5T#7`d@x}N6'Zֲ \#//Ȍ_fihDi]ܩer(r[A\@^Cͮ?9cQր i5{9/똊V.P$Zh˭d-G5]=#RҰ~a$qX`Q]# l4ɝd CwjTSFK8ZS]3Xji>R i8su1fYO;#4*g7b4Bzj[kB!9a Ӄ(q 3t\#9q$|=_lYT:#7u AEP\:&a& #/E@#7p15.;c4*A'pt+qtƅ>#/^UCovCi2JHV~'6rvQ'/A#/Hh;CiA! =9䭂jiNp?l>ϯ#/ny͵=~͘rFO}_ËL4O8Ց)#/#mz0"jɛ׊05(Yb8J,#I%(#Ҍ1$Y&f(df3WM]HJXQ>Ȣ?̈́9skt/PTiaY~p3_5DGջ!ɍƑF6c#6`#9X{GG#9nKsE.;NҮA4#9P2U+A`H)$j z`9[ff'#7Zl"ZKɶ$SfܨMj+55-+(s!ˌm<[afZikf#9m V4QZF!o61a #9lAKGpN{A>p_Q{+Qg]&3EXǑOOl!(#OKKlnO,K(_NF?-w#ű5=@!ʾ04LH#90$JHJ{`hF& 0@-k#RL$#9B zlЌvg/ tg?̒ #/0̊jA-C8e: #/\s$-c*1U-18Cj6͗9Rz-om0odTaN`/Clx :7Ma)LlUqM=E: o{&z;̑H3˯@]tc=|D4HC:pA.#9!̘4%a\*Y-h#9~E/A!Ga~DpwoZ'Xy32b `#8=>xCԻ?=OX2'K|RP!*#/1w?#76|eM[CN7tCՋ,a -hP=MB:U$ :jǢ:4BKU9+tx8G8iu$V(OxCЂFu|5k5]H`DX Ck0 Rӈ-"#/3!qQC%#7H@+" $ m( }^iQJ 1f2Aї" _J6Ǯ xg1}djC!`4x%97Ԋ#7PPTD#7&}lKi #9LpP:0aǣ`՝LHlDcg\¾D=i$?2c7o.p9g9a}#7 voypa^H;w}Y;9Ģ$:8#93y~-}DY#/5]#7~[tB}w#7cCmcb'uJ4ƧXIg s`6皪S#/,(DE5@fEFPOoqg9}q~ItdJXODjK䢨#0aH~cYX,;BVٙo_:#9G6M#7ظq)z 'xmB jd#9EN8; c$g'l)-`u>l,(4T]͟^ۅ,Xٙsjӈk~z\mL\&K^nD2$Y#/#/AceG^HG#Pxp7K݉(6cJ0RR5u^"v'Y}u#/ʿ LBA3DGxN'̧Sl<&`=8[7q;6̲Z2tNI#9*֪|D=1^jd8$CQBb_3+#/qHN;(t!YWiBB,uD5LZzI6DTS  !1 $Hl«#9 "";~=C{|}5xcס!M"|h)FMve/4u^hǢ>}=&Gqaڞ`ZTʥl$ZvB#7u>i법8젻%(z$<^jAD@Q<'ъ<9{;]{ C1۬#/0y Z,)׭-ꢯZ)Ҟ958g #9ɳ#9 &."AI`oaorLo4W afXNCa N9vIbѮl0&}<8 Cd F#7$!`҉Ѝ1G +h䚉&;f& "@ "Q15"Y>#9$SZ#9YBb5̂8)R64i[Fv%!=wInȒ"A v7W#9B10&ۤ$j(R#/=j0mYeico^V횙h6R)bԒSi2SM#[)wcȆr&mhgc ,p5nAظڍ2$4W׳ٛ MȆTlJPh^ 0gaXD`x7l@5D$mqM1VN\Zi48!h`kꪵ$X4ƵZ#/8i_{<{tct{Q23!_L#9hƽCuƐxi#7VFSa&Q񲬄Ħa9UFͭ#7f2*˖*P Ytq5A37&χrֹf8FPES`~쀃 Q{%8Hov4ZPfPs7'qG㧜pR+JAL i#7R^1)J F]$ @3d60(#9`a0КF$Di#9x&U1#/^}O'"SoıT`MS#7#7_" iJdF"X^^bէiFMJD?M-'l06v$iz2#9̞)M50\)ex;ض/Q7R&i!\ސʥR#9[a.RaDBIaL#77nSHBx6&RWf#77Mi;C֫clXp?t= c%uL0,߷ }l q Tw}lzi5(/۞8J!cO10=h<1JŘsb--Z4*Bt~&%E[1. ;A(#9@(DF>QCH.lA|E!*r6E"m!贁#9u#/c@bM]ܮjvCmxIRnՋK (IA5(hH2B\5! I`#7X%'BhXaI}3߄C#9!V#(2$b2 #7gR!(`Ε#)(JTY"`d#7dCIzlp,UY]kٴV+Ԧ6ȿ'*TTSJ4UAci*4j*Z 4m2ѲTe4fLjh6Z@KH#9| (L;7T>#;iJ#//oyt6mG/'CÊdI#9_vT!!$DSꜘv2R|[ۅU' FuEӻݢ*BA&FJ*JN3#AM#/ҚCK8})پnPL}&E)p #0`*F`$yB!vDumI(hq+0XvP!EwMI#7LCɏav.W(cGs,>1̢ 1RKQ| I-1 60f3}82&#~ H͒9S842[85]&d9&NӀMp#9.# c6%oCp§vXBAOlnFЦ-a1&2' FZM3-ҍJ?9Ѷ<'gڗ0-X^ļ RɆ.wB _'u#9ņЯ|$1;m4'~vحwU@QڦgOoF)5MkїY4;E9aȇ0))HR%b#90Q/#7=phEعB)X#9P"9Ǵ:.HD#7ӷ!#]gۣ#7FE c+@RL`!$ iJձ!Ćš`h^ @`+(#/1SK̬bAord"dg!ѣ amM 0A22R͸mL&i-@wKj\N#LK{P鷰MPlҮ+Hu.XI@ʞFM$&ADrbS՜n- PI{ǩP߲>IPu#/GCҒO=P SqobFdͺhd7npE3i1sn\:kh#7D;<#/E@|HACj &D0#/B:-gM?CohZoӦEaGCbƅчg?H׼##9":MtŮ:l,2sOOM>:œ}#/3-3S#9`ȞB":΢,вp\fImQ41U`Pəu}MA@7BIh^j([6ά L BqQ`11#7jx#7'fȒk}#9("UCХb)T,+1x74#/_ ԅwx/_rI rpZHSX7gm+K@kC˾`*\](Uݶ[0`l721% % gq/ q@$7-D}!B=,pmkAf4I0ʒ*%(E-,dDl%JmubM7#7\ەnno7n:s.WwnW/y<ͺu\e*1Z0iJXt,I-wft$jTAʺ˝ehrڋ] A@@ t@#9iE>X{!DGS7>i6Q=l)tJ*@{ˈ]Ј><A;P͏12b?0?U^h {ࡁ~Xy;A!Dh^5*ffm}J$JHB9mJ#/QjpP#78@eCKx#9T5Ike*)he">`^HR%whMsnwvw]NL-MA ZsAx27É\KJx~?9ؔQp Ȓbғ$oul.(F(B0%NH:6H#95zUF*8b8.\\q"H 87_ܼDi~H@3' -&"D13+)n}g?uspp* ($JTRiM,$w(vt7G%X0Rbd@h )e1Xڿ*VX5s" EL.ݮRq#7 TKHA1)"q8xۭp鴺D? #/!Gf<-%Ig0X?š)`*%hİ\p#a,rE\()O>z2L7$PM+=/hqO<H&׏8}? 6,4&ԺN3CAaA/gץkK`֦Njm%$I#L+ǃQS1쐊Ќb4U>MS973pm.h[كW/rH j{L#c?d JH`'LI=HT{U;(!F`#9?=4Q2$Оl70oRÜ7kD<z2t?ޕH#/AуHX*f>ε'k(<@?s(@|x(ͻ,1NWJJ6Ov5S]DR>y(MHH@P6#9ce4J*;lPCuvӅx\3]CuM1rU#7Y8U9mRwf3`bhqwl h)3>-1#/*5ʆƊgO{! |]/V{30 G#/lV`|Ȅm,nTNFy 8(up{ݛ{B!-M$8X*K*%PkzQLPp,ڶ+hB㜏cCԻ}GgLih$&IN 64dVBG.F 2CPћciiDMccvC"9S>}K!QY#9Cm6`3ZS¹Yk:S/_``v-ܼ`k_b`G|0}AöɝY^ǦS#7@5ۈϴ'ʱ/*/#9$S5ZQD!o'D dzv36z\'4[_oNH6cGͭCH\6' Rv;f6Ѳ I#9FPUt=>J;/i0UhMr$$={}< #/F/SK *'Pz [=4>ROD{Ή8.kkdBafB4>?{hLG8 z) @Da]B>5ȫiwFG ?QkShlpQk8[!d̏kGƾҏe{(r"M ıƂ_1[ernns$g߆ns10o457׎8FyV.eXabRCiD+H\}+!EJZIRl#/q!2}};t)gz_#7o@ C% C#/>s_P?Y#9lgr#/< #7T8p } =b|;!!@])!B|Zwـow (l-_vd12)ͩCqc_PmJը/Uɉ{vd\~j9 =HxW|#/ޞ'9+\YhRB!8Q/͋UA_l<4 4V1pUuŸ%zLiIb n)3cǒ: Sp<}}_ "11#/ui.%#7]yp`7pTf.Sa!Lj#8XԶc1HHL/vj?q0iNV|T}SZe=U|ruMc"0= Lmq3~XlIC>TO t̝W7؞Z&0;#7@JS;~߇v*O LD D?S)T䓔5Ʃ$?D"ɖ'|! THh hĪdf%D #/Pmf.;fj]ҌfU@2lTCB jR+ 2#/i#$`aH#7 L hۨKR$FTfi-fׅʨ #!$ MY~\贻3(iP)@p0[wFVxȪx0ǘ2aBhML+pS FVdc8tD3 pPQȆyODj:kMqFFSV*@ܤxFiU5fg,h+H1#/z^qx6͔]v1/S"$:yTTiB A?yy)Q EA4m,vf2ӈpf٦j#9>$#7^ϡG*16m\_K708}09Rڇ?^w#Z#/M.cP,Ѝ1Ƨ2OwL:((Lc<]hi&T]1"lh#Ih6(@K `#9@\SDcBSÃN)HpPw\p)$LGv3(ɤYTcY 5FM߇ɒz0S#9T!,D11 #7CLST{3~#9 n' Dd\`p #/6Gt7N#7Zq}pç&TD#9 J$G%#7t嶇R}bd{sdxmLJףYPRձ#K%ILvvIpqvH= ²A©?ŗ.Zmj4#9Gh8PmjGkPR`4H4|eX@Mwf,(e)SD#7u5&ċ#7c%p9ٮ* tR`6vRcpdY~ -vbŦ/a2vO͡_08"|k !u@פ<@wYz*Z2VJl=x: ?#/NpQ^=g,KÀtM0U(}ߌS=~Q}gt]};?aZE=t1 qpfibpP%X{'u_o<1!LDf07TrEL !^hL@4&N OZkVdӗOiwLs9'#9ӕJ,'{1]" B԰xaqcC} KbTYb8UF|-sV#oN#73v%iH#9hYosNGX&l6 HEqoWdlkBaY1r>PЛJ1 "D#/)رnmt6[\KrrӻٮEFFьQQ\ZF?Q<m\Flf©0Y4э8K#*UӾ'8bnO':}_ #/?)~d^@CI"U`]S#9FAHO>4MfVQ9f^pϷV2#9hn(СH1"jU0j"OOpԛ;*DCg|$C%FUImd+ IVR͵ (tr&Aዓʏ"(LbIz7fD)(fȼ 2P[FIk1#7#9֓6i*;gTk\ _ ,hVZJ7铩ay{Ń@1Ld[:w6W"jsW.D:ix2.|&-Bgsrq>ǮC=J ob"A;X다0}1ͯ2.TOFɰ2.*w[= :0tW4񃧟=`5F1x1lȩ\Ἳ=\ʭJ8xs*`fpÕvP489vҞ=5B⺹;inw"Tyi1,[$ħKU=|_Z5')$$ǎ{pg9d9Poǘͪ!s.#{J:3}w̡A HozJ7Kp$ /PԦvs1ߣT9cH0u(Xj~v!A#9p(!mjSvDbJG뎰e[˷R q-0ӦqRj>i42Svp:mY̌c{osĹkjN#9/R9[F-L$fb3HŵD}1BdkgG jU'4`FV*/Ow*70@׆QA"#7ir0ɵ3ls|lŖTf0v V\C',\ ]xHNR}EkjZf3 XJGuIٳ:mGaRbP#/i&ftcO! wNI 2v tĄo+٤S";KW~.r#7Pt;hpqT%V&5Sx%3Ͷ /^4l.ywh3q x[x97J#/Rz}82!`NVWdE4{|OoSB)$-05bZhXUqvBmꌳRdn/Y 6wN,E$*X+ܲ.pRn#7G8?3+߳ &jB9Gۼgr;Ӑ\z9@; .OAr;M!ET=#x;"\'jo 7 <~v#/W\F3j<=;ʧPjmGR{8r,ҭ&۞A]F1Cxjx:K#9+8!]`ŒrFEwh#7;d`X#7W05nb@>#kZ&@d@r `#/5Y<%oVffE.)-B hAvc~&rfȼ#7#9#73!tV9R!X"uhdFJ#7{#}D ,0<~м5>Цm$RI*f9W8LM2 _#/`⇑[+71m:k])*SH TdJa(2#/I~7=߂'#H_ٞ}yo#9SI6S*#912cő5jV(RضJbJFlأ͡M6I&J6RTF4Eh#9f)R I0 6a"bJE?[='|G7! Ibi9ܓIF|wӸWߓ~0++OPOCS%20@ο#7tۦv~H;uum5#/償i)0!6T-v*1v#73% i%Z'rL>O'ׇyoCCQ BJ*v5S=OQ&&#/M7{{T!p?G9beTzȼS5k9,iT=+};VkhE&&jZ}rTjPhŬF}+s613O_Aǃ8m.dQ &#>vhMHٱY46,w|8!#9x۴L[D{>Bn{ 3#9xIŠO#/0K#/<6 eT69rMqL)HB{4f/R=*$s>>3~>;Mh|"hoϸ%A}#/rr=A7۱gIOq.VFp3ʤuqM#9#/:s+5 {]by1YߋELTRkP頧KN@d ':׀ZS妪 ̵}\f"w,Ru8V!CEQ8Q10Qrve҉EڜK#F c2`(Pi6$8'ӝph>ʄ( /A~?)RPDQƹzË[0pm%0u3d't#/K,0!cS]ߊ#/tu3v::u0Q#7#7,71H2X8R:/tT#9IUrJo!nYUhm2LJ#/Dv0r'ndBH88$B mzay03!@(qP#7QRIq2wvҥ;oMBZ@99b\ȘuZ'm&&w P2˻`pòFxq#725Tʼn6)#7c| NLnfP&HMGמxpsrf֨јXLRdNH.wK,@E #/k%w&٧M8+BaCxabκ cfJm1{A(?(33p~w$^3öhɐn.2"֍,@`*&P'ʣ/+Y?q"[:ݺ璥38|eߨfVIM.]pݚؔ0h7#9rhQj04oK@dpcit *q N]qG'#7Qo4T0DS)!!1RMj%,)E"rµ;b `5 V<2 cj"tT4XDa#9q׫XƬ1e #YgL}Ng!d0Aɖ 'VagV%*'*oMF3m&X ݶi`.G"j``F%,Fә `]Y\#cCI=C6@Oo]6.[dɈm*ܡg0ڛLi ;Kܺ{՗[9[m0Zyk.eFVY0I6&|ӸE]f]*Xwylœ-.r닄VsVtrY:JRh>PҌ!ZS7ĵ #98ynE̛D&~ 95e||U3#j :g: 2%@l7 kᚨ"ߑkk%Fb;RX#\W\"5=H4#9f(QpHۦlۙ^]04v\ζs`X@uwȵ"B5!>j4l\Ll*#7!fݘCqH:43yPLPAUKd39O48xD*#7LN;;!΄ysAqa9 11HOej3Xc\a97\L^ CJaC#%$[A hpwѶ7\\.æn~e\M\>-]sæ$ $9Mx/m:OXx맑-AYԖPbSly[,q:˲^0_ Idճmylk."ʸL\2oH&MNNp, {9U8Ls= 22ږvA=38L$wqWjݒ]*5i3"/SQIi\&>2(['s{10<q#Ƒz)7LCb0gađSZ$dAH̑Q*5Md#98 u%=5M@x4* Ý'WwFnuî.G`p\20>su ItNx!0伓L<^#/V1#7-SWHi ŏY.9HEDg#/%fN%([v&aeHC!2 JF+.8i:БW 6"&dGfA3bTli4Ȃ7VFHF-"94 v aM:DeZ#ud˭—eu&$0m Ġ)*;N< # 15N0Y1C"Q(4d04#7t^~IQQVKoKCχ@6QEDJ@1M^;B 9m_,4O@0$: I @OP>qVz#/8#.u{r(\@Ck2Qj,0lJ7#9ԙ0K4Xr̲7DžD[D4s#T[kϽzaQ#7O.0#7[IL sN}:=3b1u킃< L;߬m:,4No3 ?rw_.#/yQ>C1ZƃX0ōEN1#9s;]FL]dmO0"5w"]<]o,̂cz:zwhF+n0 HFeTv1tBP0 !2a8U`=ΞL%8*+Zaj.<p*fxFbs@@C5B>(%hD;0aͥg80%#8%QtkҌһ}@}aﰂL%>#9IFZsU%muDB$`#/D#9P b@لm#/2ؐ% #7#7]TL+JP2@;R.$UЊ|Qvy2#m%ҥR14[ck0b(QUmWP!tf#7S2`={Cm,d vk ;@QΜGĀt4݉dД׋a<9{|4dMp[ jK1|pXM8e",H`LV8Sf)O`)mj1gq6t;8[aq1I˙26PjaW#7&;3h$ha_ 7 BiD|U{HlU&35#h"(1yODTJBi"uCu&6ǀЂX,iC<)ώT} mlZ4M2YAبփŘZÃi}e~]#9]%OZZl}0 E!YGiYb$! #9-$;\X'yA$#9٘ۃAF"=j)7{]#92J C)K#7wmDvlC/bciu59pCd7nD1(E8@#7wg_rD,}sE˸WXǡT?5\#/S#/GiӞ93}|`~ՑBq9'ge$"hh)!6#LFٟ7yQܯSGzǿ)#9 $MQKc+*~Y#7#7IBI0U-BQ8/wtpQ%L_*'#7Vb,|xca4y~+=׸#7#/۽`+#-!)Z* VlM2B0?0Wo#7y#9#OvBvtLP"cyP1񶼚fn$ڒƩ!lq^]΅RR<<M,CbXY%. 2`8#9(iMX8LdA36N0 JC%Ә38*svU["[˻%neIR"`:I5WG%*CmFƨNˈJkuSRq74kXJF#9dMfd801b"f͏C8L$) 6Z}l.g{h]b>ѐEF*n-lB#9dw19a8;Ƭ3T#9I1P{5\J@d&T*@$9×eZ׉50EwT6|VGq>|[`W=OQQÆpuF[q!nxݒ8_ ѝb#7-xcM3\; >ݼ EW(g7ש1\$b#9&E$3UwX)%b: @⿠j>V]J[E'#/@a#7"M>Xq3M^D&R;ۺzi8~ҡ; 0?GO6ud;K/r4kHQ8yM#7h-ZNQHXG`k#7'Q@bBWgFÜ#9 ti~r9<*UTi6E5e)S]5UP4 EU/}g8ץ%'#ȝ]:K8ځKT;%OU,(775l;5Cl? ֺ W#7Wϓj'IrDVv+VmAn 2 09$(ۭF@N20,Z֠j1#9R8ټ׀FS5OhޚAdIE#7d \&qo!dp`>;IB38{q]}BQc>=lY,y#/t;" {؆6~1(bNn(t:U92<ˎEU92<˒p%$C"sENr_r%Q R|.cd1` ܳ@Z?g_s?lwgtZ^vr/_^G^j}ꀏS Ǭo#9@{rwz:[|*dE 6g h"lR;NoSILBS0?*jG ]mg$*dSB^>Yd#/e'9CBmȠQH#/ׂ/"!d'a߇%@ls#7yZcYE::7sR%Ľ$Sg3y;숄F/#9]]RhTz^e[W\7\t!HA5jOx/JF2YܭvSR JgEB),T!MUO FԫM"eBZ!W*gxta#9c[һ0hѿ#7oN+Gab4DV#9=&:CR{9p5 MMbvW9U`=bcN#7U!8qAyr*K0 inY#9a#/Z<>|^&z||(FT`M?)dɔz:{Od$SѶԤLm Dж#94V$H35nں6!H)#b#/ǥStU0X" I8[bqS9B;=FrIP9f?D25ǻK*"(P>)5fz4yVz2C$n03oEhmᢏ^"M(;@[%=#qd4^P;o4%4֌嫽FX$æ4!j8,'Ek_p|ĕ,ӟqZM@LP8I"_2iiJ d M:vv$B%* !jv m唰qp71Fgd9StI` ReAFgdɻ((6#9i#/!Rx.1&%ǕIGPOx|6¼׿K@SvLŰO:=}_|l'ޡ)s?Œ2\#9L@ 0 ab%!E>B()Jx |t>LC{ ŐD$!}~Əe=g8n!:_zñˇa~?mwvpR3:4#9RQKG#9yMCO=ECL;? Qh,|>o~D>BC#7}Ӯ!Wk+G%Mb#9;UGDRAY]N*pMj\e|!:v: W9bo1yl%xFDm9l9pKA$@3\ bZGC.$\2#/sc #Wpnկ˒SȪb0<J ˰ >um^6\/-p_y?_/!iXh.@@ x_چ?6фfqQ"(H#/ #<== diff --git a/wscript b/wscript index a1ae81e4..4d75084f 100644 --- a/wscript +++ b/wscript @@ -7,10 +7,6 @@ from waflib import Logs import sys import os -sys.path.append(os.path.realpath('scripts/waflib')) -# print(sys.path) -import fwgslib - VERSION = '0.99' APPNAME = 'xash3d-fwgs' top = '.' @@ -71,7 +67,7 @@ def options(opt): def configure(conf): - conf.load('reconfigure') + conf.load('fwgslib reconfigure') conf.start_msg('Build type') if conf.options.BUILD_TYPE == None: conf.end_msg('not set', color='RED') @@ -163,11 +159,11 @@ def configure(conf): } } - conf.env.append_unique('CFLAGS', fwgslib.get_flags_by_type( + conf.env.append_unique('CFLAGS', conf.get_flags_by_type( compiler_c_cxx_flags, conf.options.BUILD_TYPE, conf.env.COMPILER_CC)) - conf.env.append_unique('CXXFLAGS', fwgslib.get_flags_by_type( + conf.env.append_unique('CXXFLAGS', conf.get_flags_by_type( compiler_c_cxx_flags, conf.options.BUILD_TYPE, conf.env.COMPILER_CC)) - conf.env.append_unique('LINKFLAGS', fwgslib.get_flags_by_type( + conf.env.append_unique('LINKFLAGS', conf.get_flags_by_type( linker_flags, conf.options.BUILD_TYPE, conf.env.COMPILER_CC)) conf.env.DEDICATED = conf.options.DEDICATED