aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/install/module/update_filesystem
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb/install/module/update_filesystem')
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/module.php33
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/task/diff_files.php205
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/task/download_updated_files.php124
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/task/file_check.php186
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php168
-rw-r--r--phpBB/phpbb/install/module/update_filesystem/task/update_files.php294
6 files changed, 1010 insertions, 0 deletions
diff --git a/phpBB/phpbb/install/module/update_filesystem/module.php b/phpBB/phpbb/install/module/update_filesystem/module.php
new file mode 100644
index 0000000000..157c78a1ac
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/module.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem;
+
+class module extends \phpbb\install\module_base
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function get_navigation_stage_path()
+ {
+ return array('update', 0, 'update_files');
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_step_count()
+ {
+ return 0;
+ }
+}
diff --git a/phpBB/phpbb/install/module/update_filesystem/task/diff_files.php b/phpBB/phpbb/install/module/update_filesystem/task/diff_files.php
new file mode 100644
index 0000000000..e3e6db6263
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/task/diff_files.php
@@ -0,0 +1,205 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem\task;
+
+use phpbb\install\exception\resource_limit_reached_exception;
+use phpbb\install\exception\user_interaction_required_exception;
+use phpbb\install\helper\config;
+use phpbb\install\helper\container_factory;
+use phpbb\install\helper\iohandler\iohandler_interface;
+use phpbb\install\helper\update_helper;
+use phpbb\install\task_base;
+
+/**
+ * Merges user made changes into the files
+ */
+class diff_files extends task_base
+{
+ /**
+ * @var \phpbb\cache\driver\driver_interface
+ */
+ protected $cache;
+
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * @var iohandler_interface
+ */
+ protected $iohandler;
+
+ /**
+ * @var string
+ */
+ protected $phpbb_root_path;
+
+ /**
+ * @var string
+ */
+ protected $php_ext;
+
+ /**
+ * @var update_helper
+ */
+ protected $update_helper;
+
+ /**
+ * Constructor
+ *
+ * @param container_factory $container
+ * @param config $config
+ * @param iohandler_interface $iohandler
+ * @param update_helper $update_helper
+ * @param string $phpbb_root_path
+ * @param string $php_ext
+ */
+ public function __construct(container_factory $container, config $config, iohandler_interface $iohandler, update_helper $update_helper, $phpbb_root_path, $php_ext)
+ {
+ $this->installer_config = $config;
+ $this->iohandler = $iohandler;
+ $this->update_helper = $update_helper;
+ $this->phpbb_root_path = $phpbb_root_path;
+ $this->php_ext = $php_ext;
+
+ $this->cache = $container->get('cache.driver');
+
+ parent::__construct(false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function check_requirements()
+ {
+ $files_to_diff = $this->installer_config->get('update_files', array());
+ $files_to_diff = (isset($files_to_diff['update_with_diff'])) ? $files_to_diff['update_with_diff'] : array();
+
+ return $this->installer_config->get('do_update_files', false) && count($files_to_diff) > 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function run()
+ {
+ // Include diff engine
+ $this->update_helper->include_file('includes/diff/diff.' . $this->php_ext);
+ $this->update_helper->include_file('includes/diff/engine.' . $this->php_ext);
+
+ // Set up basic vars
+ $old_path = $this->update_helper->get_path_to_old_update_files();
+ $new_path = $this->update_helper->get_path_to_new_update_files();
+
+ $files_to_diff = $this->installer_config->get('update_files', array());
+ $files_to_diff = $files_to_diff['update_with_diff'];
+
+ // Set progress bar
+ $this->iohandler->set_task_count(count($files_to_diff), true);
+ $this->iohandler->set_progress('UPDATE_FILE_DIFF', 0);
+ $progress_count = $this->installer_config->get('file_diff_update_count', 0);
+
+ // Recover progress
+ $progress_key = $this->installer_config->get('differ_progress_key', -1);
+ $progress_recovered = ($progress_key === -1);
+ $merge_conflicts = $this->installer_config->get('merge_conflict_list', array());
+
+ foreach ($files_to_diff as $key => $filename)
+ {
+ if ($progress_recovered === false)
+ {
+ if ($progress_key === $key)
+ {
+ $progress_recovered = true;
+ }
+
+ continue;
+ }
+
+ // Read in files' content
+ $file_contents = array();
+
+ // Handle the special case when user created a file with the filename that is now new in the core
+ $file_contents[0] = (file_exists($old_path . $filename)) ? file_get_contents($old_path . $filename) : '';
+
+ $filenames = array(
+ $this->phpbb_root_path . $filename,
+ $new_path . $filename
+ );
+
+ foreach ($filenames as $file_to_diff)
+ {
+ $file_contents[] = file_get_contents($file_to_diff);
+
+ if ($file_contents[sizeof($file_contents) - 1] === false)
+ {
+ $this->iohandler->add_error_message(array('FILE_DIFFER_ERROR_FILE_CANNOT_BE_READ', $files_to_diff));
+ unset($file_contents);
+ throw new user_interaction_required_exception();
+ }
+ }
+
+ $diff = new \diff3($file_contents[0], $file_contents[1], $file_contents[2]);
+ unset($file_contents);
+
+ // Handle conflicts
+ if ($diff->get_num_conflicts() !== 0)
+ {
+ $merge_conflicts[] = $filename;
+ }
+
+ // Save merged output
+ $this->cache->put(
+ '_file_' . md5($filename),
+ base64_encode(implode("\n", $diff->merged_output()))
+ );
+
+ unset($diff);
+
+ $progress_count++;
+ $this->iohandler->set_progress('UPDATE_FILE_DIFF', $progress_count);
+
+ if ($this->installer_config->get_time_remaining() <= 0 || $this->installer_config->get_memory_remaining() <= 0)
+ {
+ // Save differ progress
+ $this->installer_config->set('differ_progress_key', $key);
+ $this->installer_config->set('merge_conflict_list', $merge_conflicts);
+ $this->installer_config->set('file_diff_update_count', $progress_count);
+
+ // Request refresh
+ throw new resource_limit_reached_exception();
+ }
+ }
+
+ $this->iohandler->finish_progress('ALL_FILES_DIFFED');
+ $this->installer_config->set('merge_conflict_list', $merge_conflicts);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ static public function get_step_count()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_task_lang_name()
+ {
+ return '';
+ }
+}
diff --git a/phpBB/phpbb/install/module/update_filesystem/task/download_updated_files.php b/phpBB/phpbb/install/module/update_filesystem/task/download_updated_files.php
new file mode 100644
index 0000000000..9271e8fd50
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/task/download_updated_files.php
@@ -0,0 +1,124 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem\task;
+
+use phpbb\filesystem\filesystem;
+use phpbb\install\exception\jump_to_restart_point_exception;
+use phpbb\install\exception\user_interaction_required_exception;
+use phpbb\install\helper\config;
+use phpbb\install\helper\iohandler\iohandler_interface;
+use phpbb\install\task_base;
+
+class download_updated_files extends task_base
+{
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * @var filesystem
+ */
+ protected $filesystem;
+
+ /**
+ * @var iohandler_interface
+ */
+ protected $iohandler;
+
+ /**
+ * Constructor
+ *
+ * @param config $config
+ * @param iohandler_interface $iohandler
+ * @param filesystem $filesystem
+ */
+ public function __construct(config $config, iohandler_interface $iohandler, filesystem $filesystem)
+ {
+ $this->installer_config = $config;
+ $this->iohandler = $iohandler;
+ $this->filesystem = $filesystem;
+
+ parent::__construct(false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function check_requirements()
+ {
+ return $this->installer_config->get('do_update_files', false)
+ && $this->installer_config->get('file_update_method', '') === 'compression';
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function run()
+ {
+ if ($this->iohandler->get_input('database_update_submit', false))
+ {
+ // Remove archive
+ $this->filesystem->remove(
+ $this->installer_config->get('update_file_archive', null)
+ );
+
+ $this->installer_config->set('update_file_archive', null);
+ }
+ else if ($this->iohandler->get_input('update_recheck_files_submit', false))
+ {
+ throw new jump_to_restart_point_exception('check_update_files');
+ }
+ else
+ {
+ // Render download box
+ $this->iohandler->add_download_link(
+ 'phpbb_installer_update_file_download',
+ 'DOWNLOAD_UPDATE_METHOD',
+ 'DOWNLOAD_UPDATE_METHOD_EXPLAIN'
+ );
+
+ // Add form to continue update
+ $this->iohandler->add_user_form_group('UPDATE_CONTINUE_UPDATE_PROCESS', array(
+ 'update_recheck_files_submit' => array(
+ 'label' => 'UPDATE_RECHECK_UPDATE_FILES',
+ 'type' => 'submit',
+ ),
+ 'database_update_submit' => array(
+ 'label' => 'UPDATE_CONTINUE_UPDATE_PROCESS',
+ 'type' => 'submit',
+ ),
+ ));
+
+ $this->iohandler->send_response();
+ throw new user_interaction_required_exception();
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ static public function get_step_count()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_task_lang_name()
+ {
+ return '';
+ }
+}
diff --git a/phpBB/phpbb/install/module/update_filesystem/task/file_check.php b/phpBB/phpbb/install/module/update_filesystem/task/file_check.php
new file mode 100644
index 0000000000..9945e61714
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/task/file_check.php
@@ -0,0 +1,186 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem\task;
+
+use phpbb\filesystem\filesystem;
+use phpbb\install\exception\resource_limit_reached_exception;
+use phpbb\install\helper\config;
+use phpbb\install\helper\iohandler\iohandler_interface;
+use phpbb\install\helper\update_helper;
+use phpbb\install\task_base;
+
+/**
+ * Updater task performing file checking
+ */
+class file_check extends task_base
+{
+ /**
+ * @var filesystem
+ */
+ protected $filesystem;
+
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * @var iohandler_interface
+ */
+ protected $iohandler;
+
+ /**
+ * @var update_helper
+ */
+ protected $update_helper;
+
+ /**
+ * @var string
+ */
+ protected $phpbb_root_path;
+
+ /**
+ * Construct
+ *
+ * @param filesystem $filesystem
+ * @param config $config
+ * @param iohandler_interface $iohandler
+ * @param update_helper $update_helper
+ * @param string $phpbb_root_path
+ */
+ public function __construct(filesystem $filesystem, config $config, iohandler_interface $iohandler, update_helper $update_helper, $phpbb_root_path)
+ {
+ $this->filesystem = $filesystem;
+ $this->installer_config = $config;
+ $this->iohandler = $iohandler;
+ $this->update_helper = $update_helper;
+ $this->phpbb_root_path = $phpbb_root_path;
+
+ parent::__construct(false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function check_requirements()
+ {
+ return $this->installer_config->get('do_update_files', false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function run()
+ {
+ if (!$this->installer_config->has_restart_point('check_update_files'))
+ {
+ $this->installer_config->create_progress_restart_point('check_update_files');
+ }
+
+ $old_path = $this->update_helper->get_path_to_old_update_files();
+ $new_path = $this->update_helper->get_path_to_new_update_files();
+
+ $update_info = $this->installer_config->get('update_info', array());
+ $file_update_info = $this->installer_config->get('update_files', array());
+
+ if (empty($update_info))
+ {
+ $root_path = $this->phpbb_root_path;
+
+ $update_info = $this->installer_config->get('update_info_unprocessed', array());
+
+ $file_update_info = array();
+ $file_update_info['update_without_diff'] = $update_info['binary'];
+
+ // Filter out files that are already deleted
+ $file_update_info['delete'] = array_filter(
+ $update_info['deleted'],
+ function ($filename) use ($root_path)
+ {
+ return !file_exists($root_path . $filename);
+ }
+ );
+ }
+
+ $progress_count = $this->installer_config->get('file_check_progress_count', 0);
+ $task_count = count($update_info['files']);
+ $this->iohandler->set_task_count($task_count);
+ $this->iohandler->set_progress('UPDATE_CHECK_FILES', 0);
+
+ foreach ($update_info['files'] as $key => $filename)
+ {
+ $old_file = $old_path . $filename;
+ $new_file = $new_path . $filename;
+ $file = $this->phpbb_root_path . $filename;
+
+ if ($this->installer_config->get_time_remaining() <= 0 || $this->installer_config->get_memory_remaining() <= 0)
+ {
+ // Save progress
+ $this->installer_config->set('update_info', $update_info);
+ $this->installer_config->set('file_check_progress_count', $progress_count);
+ $this->installer_config->set('update_files', $file_update_info);
+
+ // Request refresh
+ throw new resource_limit_reached_exception();
+ }
+
+ $progress_count++;
+ $this->iohandler->set_progress('UPDATE_CHECK_FILES', $progress_count);
+
+ if (!$this->filesystem->exists($file))
+ {
+ $file_update_info['new'][] = $filename;
+ }
+ else
+ {
+ $file_checksum = md5_file($file);
+
+ if ($file_checksum === md5_file($new_file))
+ {
+ // File already up to date
+ continue;
+ }
+ else if ($this->filesystem->exists($old_file) && $file_checksum === md5_file($old_file))
+ {
+ // No need to diff the file
+ $file_update_info['update_without_diff'][] = $filename;
+ }
+ else
+ {
+ $file_update_info['update_with_diff'][] = $filename;
+ }
+ }
+
+ unset($update_info['files'][$key]);
+ }
+
+ $this->installer_config->set('update_files', $file_update_info);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ static public function get_step_count()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_task_lang_name()
+ {
+ return '';
+ }
+}
diff --git a/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php b/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php
new file mode 100644
index 0000000000..1c6b9aa058
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php
@@ -0,0 +1,168 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem\task;
+
+use phpbb\filesystem\filesystem;
+use phpbb\install\exception\user_interaction_required_exception;
+use phpbb\install\helper\config;
+use phpbb\install\helper\container_factory;
+use phpbb\install\helper\file_updater\factory;
+use phpbb\install\helper\iohandler\iohandler_interface;
+use phpbb\install\task_base;
+
+class show_file_status extends task_base
+{
+ /**
+ * @var \phpbb\cache\driver\driver_interface
+ */
+ protected $cache;
+
+ /**
+ * @var filesystem
+ */
+ protected $filesystem;
+
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * @var iohandler_interface
+ */
+ protected $iohandler;
+
+ /**
+ * @var \phpbb\install\helper\file_updater\compression_file_updater
+ */
+ protected $file_updater;
+
+ /**
+ * Constructor
+ *
+ * @param container_factory $container
+ * @param config $config
+ * @param iohandler_interface $iohandler
+ * @param filesystem $filesystem
+ * @param factory $file_updater_factory
+ */
+ public function __construct(container_factory $container, config $config, iohandler_interface $iohandler, filesystem $filesystem, factory $file_updater_factory)
+ {
+ $this->installer_config = $config;
+ $this->iohandler = $iohandler;
+ $this->filesystem = $filesystem;
+
+ $this->cache = $container->get('cache.driver');
+
+ // Initialize compression file updater
+ $compression_method = $this->installer_config->get('compression_method', '');
+ $this->file_updater = $file_updater_factory->get('compression');
+ $conflict_archive = $this->file_updater->init($compression_method);
+
+ $this->installer_config->set('update_file_conflict_archive', $conflict_archive);
+
+ parent::__construct(false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function check_requirements()
+ {
+ return $this->installer_config->get('do_update_files', false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function run()
+ {
+ if (!$this->iohandler->get_input('submit_continue_file_update', false))
+ {
+ // Handle merge conflicts
+ $merge_conflicts = $this->installer_config->get('merge_conflict_list', array());
+
+ // Create archive for merge conflicts
+ if (!empty($merge_conflicts))
+ {
+ foreach ($merge_conflicts as $filename)
+ {
+ $this->file_updater->create_new_file(
+ $filename,
+ $this->cache->get('_file_' . md5($filename)),
+ true
+ );
+ }
+
+ // Render download box
+ $this->iohandler->add_download_link(
+ 'phpbb_installer_update_conflict_download',
+ 'DOWNLOAD_CONFLICTS',
+ 'DOWNLOAD_CONFLICTS_EXPLAIN'
+ );
+ }
+
+ $this->file_updater->close();
+
+ // Render update file statuses
+ $file_update_info = $this->installer_config->get('update_files', array());
+ $file_status = array(
+ 'deleted' => (!isset($file_update_info['delete'])) ? array() : $file_update_info['delete'],
+ 'new' => (!isset($file_update_info['new'])) ? array() : $file_update_info['new'],
+ 'conflict' => $this->installer_config->get('merge_conflict_list', array()),
+ 'modified' => (!isset($file_update_info['update_with_diff'])) ? array() : $file_update_info['update_with_diff'],
+ 'not_modified' => (!isset($file_update_info['update_without_diff'])) ? array() : $file_update_info['update_without_diff'],
+ );
+
+ $this->iohandler->render_update_file_status($file_status);
+
+ // Add form to continue update
+ $this->iohandler->add_user_form_group('UPDATE_CONTINUE_FILE_UPDATE', array(
+ 'submit_continue_file_update' => array(
+ 'label' => 'UPDATE_CONTINUE_FILE_UPDATE',
+ 'type' => 'submit',
+ ),
+ ));
+
+ // Show results to the user
+ $this->iohandler->send_response();
+ throw new user_interaction_required_exception();
+ }
+ else
+ {
+ // Remove archive
+ $this->filesystem->remove(
+ $this->installer_config->get('update_file_conflict_archive', null)
+ );
+
+ $this->installer_config->set('update_file_conflict_archive', null);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ static public function get_step_count()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_task_lang_name()
+ {
+ return '';
+ }
+}
diff --git a/phpBB/phpbb/install/module/update_filesystem/task/update_files.php b/phpBB/phpbb/install/module/update_filesystem/task/update_files.php
new file mode 100644
index 0000000000..747a86281b
--- /dev/null
+++ b/phpBB/phpbb/install/module/update_filesystem/task/update_files.php
@@ -0,0 +1,294 @@
+<?php
+/**
+ *
+ * This file is part of the phpBB Forum Software package.
+ *
+ * @copyright (c) phpBB Limited <https://www.phpbb.com>
+ * @license GNU General Public License, version 2 (GPL-2.0)
+ *
+ * For full copyright and license information, please see
+ * the docs/CREDITS.txt file.
+ *
+ */
+
+namespace phpbb\install\module\update_filesystem\task;
+
+use phpbb\exception\runtime_exception;
+use phpbb\install\exception\resource_limit_reached_exception;
+use phpbb\install\helper\config;
+use phpbb\install\helper\container_factory;
+use phpbb\install\helper\file_updater\factory;
+use phpbb\install\helper\file_updater\file_updater_interface;
+use phpbb\install\helper\iohandler\iohandler_interface;
+use phpbb\install\helper\update_helper;
+use phpbb\install\task_base;
+
+/**
+ * File updater task
+ */
+class update_files extends task_base
+{
+ /**
+ * @var \phpbb\cache\driver\driver_interface
+ */
+ protected $cache;
+
+ /**
+ * @var config
+ */
+ protected $installer_config;
+
+ /**
+ * @var iohandler_interface
+ */
+ protected $iohandler;
+
+ /**
+ * @var factory
+ */
+ protected $factory;
+
+ /**
+ * @var file_updater_interface
+ */
+ protected $file_updater;
+
+ /**
+ * @var update_helper
+ */
+ protected $update_helper;
+
+ /**
+ * @var string
+ */
+ protected $phpbb_root_path;
+
+ /**
+ * Constructor
+ *
+ * @param container_factory $container
+ * @param config $config
+ * @param iohandler_interface $iohandler
+ * @param factory $file_updater_factory
+ * @param update_helper $update_helper
+ * @param string $phpbb_root_path
+ */
+ public function __construct(container_factory $container, config $config, iohandler_interface $iohandler, factory $file_updater_factory, update_helper $update_helper, $phpbb_root_path)
+ {
+ $this->factory = $file_updater_factory;
+ $this->installer_config = $config;
+ $this->iohandler = $iohandler;
+ $this->update_helper = $update_helper;
+ $this->phpbb_root_path = $phpbb_root_path;
+
+ $this->cache = $container->get('cache.driver');
+ $this->file_updater = null;
+
+ parent::__construct(false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function check_requirements()
+ {
+ return $this->installer_config->get('do_update_files', false);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function run()
+ {
+ $new_path = $this->update_helper->get_path_to_new_update_files();
+
+ $file_update_info = $this->installer_config->get('update_files', array());
+
+ $update_type_progress = $this->installer_config->get('file_updater_type_progress', '');
+ $update_elem_progress = $this->installer_config->get('file_updater_elem_progress', '');
+ $type_progress_found = false;
+ $elem_progress_found = false;
+
+ // Progress bar
+ $task_count = 0;
+ foreach ($file_update_info as $sub_array)
+ {
+ $task_count += count($sub_array);
+ }
+
+ // Everything is up to date, so just continue
+ if ($task_count === 0)
+ {
+ return;
+ }
+
+ $progress_count = $this->installer_config->get('file_update_progress_count', 0);
+ $this->iohandler->set_task_count($task_count, true);
+ $this->iohandler->set_progress('UPDATE_UPDATING_FILES', 0);
+
+ $this->file_updater = $this->get_file_updater();
+
+ // File updater fallback logic
+ try
+ {
+ // Update files
+ foreach ($file_update_info as $type => $file_update_vector)
+ {
+ if (!$type_progress_found)
+ {
+ if ($type === $update_type_progress || empty($update_elem_progress))
+ {
+ $type_progress_found = true;
+ }
+ else
+ {
+ continue;
+ }
+ }
+
+ foreach ($file_update_vector as $path)
+ {
+ if (!$elem_progress_found)
+ {
+ if ($path === $update_elem_progress || empty($update_elem_progress))
+ {
+ $elem_progress_found = true;
+ }
+ else
+ {
+ continue;
+ }
+ }
+
+ switch ($type)
+ {
+ case 'delete':
+ $this->file_updater->delete_file($path);
+ break;
+ case 'new':
+ $this->file_updater->create_new_file($path, $new_path . $path);
+ break;
+ case 'update_without_diff':
+ $this->file_updater->update_file($path, $new_path . $path);
+ break;
+ case 'update_with_diff':
+ $this->file_updater->update_file(
+ $path,
+ $this->cache->get('_file_' . md5($path)),
+ true
+ );
+ break;
+ }
+
+ // Save progress
+ $this->installer_config->set('file_updater_type_progress', $type);
+ $this->installer_config->set('file_updater_elem_progress', $path);
+ $progress_count++;
+ $this->iohandler->set_progress('UPDATE_UPDATING_FILES', $progress_count);
+
+ if ($this->installer_config->get_time_remaining() <= 0 || $this->installer_config->get_memory_remaining() <= 0)
+ {
+ // Request refresh
+ throw new resource_limit_reached_exception();
+ }
+ }
+ }
+
+ $this->iohandler->finish_progress('UPDATE_UPDATING_FILES');
+ }
+ catch (runtime_exception $e)
+ {
+ if ($e instanceof resource_limit_reached_exception)
+ {
+ throw new resource_limit_reached_exception();
+ }
+
+ $current_method = $this->installer_config->get('file_update_method', '');
+
+ // File updater failed, try to fallback to download file update mode
+ if ($current_method !== 'compression')
+ {
+ $this->iohandler->add_warning_message(array(
+ 'UPDATE_FILE_UPDATER_HAS_FAILED',
+ $current_method,
+ 'compression'
+ ));
+ $this->installer_config->set('file_update_method', 'compression');
+
+ // We only want a simple refresh here
+ throw new resource_limit_reached_exception();
+ }
+ else
+ {
+ // Nowhere to fallback to :(
+ // Due to the way the installer handles fatal errors, we need to throw a low level exception
+ throw new runtime_exception('UPDATE_FILE_UPDATERS_HAVE_FAILED');
+ }
+ }
+
+ $file_updater_method = $this->installer_config->get('file_update_method', '');
+ if ($file_updater_method === 'compression' || $file_updater_method === 'ftp')
+ {
+ $this->file_updater->close();
+ }
+ }
+
+ /**
+ * Get file updater
+ *
+ * @param null|string $file_updater_method Name of the file updater to use
+ *
+ * @return file_updater_interface File updater
+ */
+ protected function get_file_updater($file_updater_method = null)
+ {
+ $file_updater_method = ($file_updater_method === null) ? $this->installer_config->get('file_update_method', '') : $file_updater_method;
+
+ if ($file_updater_method === 'compression')
+ {
+ $compression_method = $this->installer_config->get('file_update_compression', '');
+
+ /** @var \phpbb\install\helper\file_updater\compression_file_updater $file_updater */
+ $file_updater = $this->factory->get('compression');
+ $archive_path = $file_updater->init($compression_method);
+ $this->installer_config->set('update_file_archive', $archive_path);
+ }
+ else if ($file_updater_method === 'ftp')
+ {
+ /** @var \phpbb\install\helper\file_updater\ftp_file_updater $file_updater */
+ $file_updater = $this->factory->get('ftp');
+ $file_updater->init(
+ $this->installer_config->get('ftp_method', ''),
+ $this->installer_config->get('ftp_host', ''),
+ $this->installer_config->get('ftp_user', ''),
+ $this->installer_config->get('ftp_pass', ''),
+ $this->installer_config->get('ftp_path', ''),
+ $this->installer_config->get('ftp_port', 0),
+ $this->installer_config->get('ftp_timeout', 10)
+ );
+ }
+ else
+ {
+ /** @var file_updater_interface $file_updater */
+ $file_updater = $this->factory->get('direct_file');
+ }
+
+ return $file_updater;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ static public function get_step_count()
+ {
+ return 0;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get_task_lang_name()
+ {
+ return '';
+ }
+}
z,#FJ"Km&>?Bƍő Pm7usi-Io>3 &#LCe>A *HP`fm^mD&=^8O҈6W)mӎGdHW6Ućn]Ll|IvӅK z2D0?A?)$.0Nc^wtv*|{q?`{n tYeMΆ]45 pޑm,U,~Ïbe%{ hÔqCbvU<+sAn4į\ 3&ӕPUII0LLBЏ2w)!29.kba@A.@哿bZkӸ|;a$xI ʋRݣ6.'aS@{3,^H_k?8jtg``~]dVLH[֟گA=Vf$58ۛѥ+#O3R-t%#;?+#Z̶Qz9xj2VwO^,]SKݢr =R(eO’Y0MFIϚ/N\jcFf^A'E7;~ܥ0K}- ֢H4_hϖzr(+v+ުbV` ױvD 0KcgQjEX$1z|lńR 6$=`B|)sFqE|"]*#E`LG|9XN l9 g+sk4pAa`i㴝Y{I+ 1Rj,rW%DR^F_V2,9ua˓cګ q Y4l0- ǂ h\e0YԒ>\&&g.Qf$}0l<ڗIYXSFMͶ̬<ֵPmt:;ڼ}N'AegO@f.X}ZZӔnݐsKX0umw2A+fuzSt9lPDɊ:)dr 3P@p]!C} sGȥWf/wyCeǃoJ>607"UqإM7MB^#W5W@~ EMT-Ji{ϝX=WxH RڷT)Rs!X 95&ǀJI2z)2?Uſ SCآ}g_x,\;m':թ(qYc>2)mNKg:#{*-A_8p|l !gzS2uhYJZv1˞DN"ȞmD-un-Yl[ˏ/=^5TG2LWaV2RŽF!X'6/ܔ{K `mdS,Ǔ9saz''uo'!ފIȭut1֟דּr6'3Wxlu(y]J~6|`d&E攕;|qt w4\<ʣ^DqFׇ+-D~"IaG S=lw*^8#3>0C6CĞC˱L݆R'ٴgEdǝ9}"VKr z<*jwgrYF։n MBJ@Nw[$nm dS@!$/ɡ=/{JƂ`U EF͔1v@a:CuS8-[p<ŅHTu̼R s @乽(-`H7o*yu#\W9:1xscgj*juڒQg_sh̚ԈL4Lxxz 1l-ڛ.*(q3܍Y er䳖y忔/*Pǜ]Qǰ(Y0EϛTN187S =_RNj396.UdAD[iUxGh`e.$'kέ49.N\TM&BF B;XJd 'nGͩ*3u'%n՗^FpL Bnekン,dQ4d!^)G RJW |2,K̪sꌝ,j)Q T]Ṣ =6a2})n-xosœp"Uġz&Z9)>Bg PT[4uLY~4V|eREo,͵FJ.M|}cG,:OLശR>Fp Pak-2`U)6s.̖mR͸Л6a uӻQ#KK~+X*$w؇W'L_*t|u8~oTf%Z앞G C|YR" N"@ɛy:_&0gk?+#|JetXV 9?Oʏ(Q`иOh|ZAl&;ZH%&Ϋ|19:G@p\_~Ρ+ d4N@tI'wE ⣵ ( ?y0Mݧ0sxQG,}KS-}^6TL78G "sg|%Q@F`:oOtE|;>fZ oc{eC_Iëab hƦuz I9_)*%wu;0 דJzOYd=B>%"t?svO#EI uCs by1y#f;+Vk|1h8_+}Cù=,|-2nxmB@] ݻMo*J ,.mv1of^dB]9;*>͍ܺ:xHGr5U)վNg` 9Q/5ı<[ /1hV7: l' ]BIZevW|:d4ֱA;GNںs)~Z5jkC$# 2 IIQ*ySLN {PoDUqQCP;; ٮEe(loaBlR2xEJ'1vo~a?3EC)gtl[vB4*^Z* btǘߖ;i C&)bZxw JiPT܉B!`6"{yB lE>); d7~/ ӓ&d]]ѩulSb)8O@xSg'9 vyهR#EڇpKlM)J/"X0FeÃ6^Xܥ^F-YdډPY!0[{pPoC;xVóI.WNNa$J&O_ؚzK{=3YK1A2&0w d c=pj0 CB>с1ʼn6B E,9@#`F/Ąo@Ũ$/,+d]{#>d,{K'lWeH'A]$wqKJYo8IUps*sZAFD*`3p^& AcGmpDZ{gmuSC |עl.Op'U~A+gntM]Tg <6$ L 2 (z,[t][mi1,9fnd7Ω%)b"~J_O{-E<:/DYfH(pAtw@WgWۙEj B[{=n1[3ts&@,0'يJ哣2R}"]#9R;C ~Ck]Km Lqj[Vad*vtzvp}D`wï6chydG&](0{!~=EĿƈUʹ 4D-Gc77=ËS Y\6leG,oE)EڼR( X WY{kȒj$F<}?y Vf v`1.Ⱦ Zt.2(Y+ʓ0wfAg5f9U)^fE<\ㄵVo[~jՊƕ6GN<~z0g|nO; 1t]j` K{ׁR/ 4mnk.\z@n}[HåWQ]F;ӽclg%֔'smBЃtgr C ˼H=|vN>C9m~-`pWT Z0dzVa]dLR?;9Kj'ZϦ .IS߈F|6QXFTĕ3p'qR^8Č8[L~NX`W[}.)oq?Mszy:OT"Q gis=8*:Y_ψ,ĩ ngk(/78;I|bH#3m1Wrij`[/5Pɮ 1mȠj{sŕs0C ʝhJ ;) ;a9@`%elh@I.PFj>K9eún [DRCc(dZ,j2'6ZW0@D-; 7YԾ"u\amoIm ʉΧUƸo("m[L (=<ƺWU ܫF2TzwqN9%~' obp,MoPD_1%sϽI/iߘ2Fkmtx=Bk&)忟s3 ;TLpm͕#PǓBA;tm|jld;:"&⚧j4oaE^#FFXF>eRUk2``m1lIy.ɞdNꂃx-^Nl\j7zL+i𬒼>HV;us ^UUfΚM8)Dďy5kGoC7=| 6ek0{])Ta6uTUBSa8 )GE26?kdqG-Z󇿷4d#Pɨ>NN!QUǀ{ v֊+OL]p&8:3Dž-eŒȎ o,p%ȌOű ADŪZQqAlr2 nY?f@Zu{׽BM ۞ ܈fF7+|#)D B\`xN ;CBU^d # z Ha1|gنGj|Z;H;~.e \:sU:K4%h3d5,:-#0F"]>)sz&I?fM=;?TSh*ujj8el-*YHEn䤍RA9kp\C X) G%h18`d~b쭗aoΪom:v@w3^* K@M=y8OHfR|GPBda~XLL`},QHsKUV(HB%;(4^ ?vsǬ)UeSTNhͽc *:+ͦMp4LzoӇ(߹`_`Tݸ/q1cH"ِ#ۇZE&+;X^hZECX$ҝГ?q#]֜FWW ?'+MEX(mFw"U!Hp}2JAqV T A :Chⵕ$;M!e7$n]H$P9Hv!H}j-<C .%5ݽT3r1K1 hܭǶm1E/u7 ڏef2xh xlVB/5!JJbTr!wp{gȸ iU]y2ZW*l29px^w݂KYm<+Dx6hU܀.&H/L?!QL" Q7ѿ ?f4D ӖT}eA7K[N: (+KIΞnBiv٫k# H*7eȗp8˶(ˆ3^j♧"/ם1ԎIˬIQ5l __jXM5}wлu]\A+P>ZȹE#Xa lan1T2f3InoU й\e1&Z,8qgk6OA$iNE5$oRR>j6M앸73q\Y/l;ogb jJf;3"mغP}]SWӏ 1א*96󬈷g(P9>6+M%Jʭ=/".sj2ɓ>+e; բG;Kz=YpJ|U]Cp?:1%е Nټ<_~߻MZCgiӴM7R=7jJN7S%ӕ* ns=cٰ;47G@e0 'ɸ,]O[ˇxϒ/b1^YRPG=`,}M!5SYnW&#+L$f@Чyq ٵϙx]xOҋ Z*08Lg۰Ml(1yy/F-C$:׻+&7 W#HZ# bnjwvǷ✞Z} РhctڐP2mW2^-[tU / ;Wgٰb՘y-LC6== 3d?^;tCsrnzYE䝕%!UCMZdEX|}i䚀%7sWqqgX$bFvt9Zқi̩3Rr ;h(qa_|fE^q3S3-ç梓pCSRt vXT#է R=[n~gJ#[0 FZdRhW)PpjGL8I6hw MټmZTXCNcf~q1~ 1SGΎUh,9:=eDlr_[YcP )Ui7†9S+&;ѻ@}%?0\s=] B\0jPp;~%r ߿zTZwb33W |՛ o -t2nVOѝBn0*ekGuX>u[}a>̀@N{-GkNDE4765" TC;IxGK^bRrE}yUP s~69=WQot/oҐ:˒!)X]WcQ+ R_WD r3/00 du+fUi~ c2M/ˌa=qh :v{1|z@C c]X04`r]. 5c.@٬s%GltfDGMrgWt[J|y=%vu6?1K9d-}X-EL3JK\@#'[ e Z!y}c@Ivi@Զ<IK\[a(oi nZJSz)qY"vhƚ6_&xgkDY[Rҙ9 Qɛg)phhp/Lۏt8"xcgIrOYv/_YuMfwk-fnW` 3 Q{1cYM|'\c`ȹT$fs>@dSZwTND ~"PAtJ0չ,wJ4׀7@p{B gI0.o;o(]u#uU|,8NO=Uv3 (0Q$twK =$Ta[JdO)QG~4mGl{LSQwcMrG?w&۝<^A;W)T0]B魩ۮK&R'uN%FM^,ן\t H0^,x &F\<]ڥ|1\-m'!uv6܇9Rgbu>,W9Oͯ~Ӫ[XἹerA#;*s23{Ia"N[&٧1}IĒtul#59Af>+y "_/3TP 9h-@U~+wĊg!'fr=5=c~5=wTP*'}PA:ƄgA>5y؛Pbc8#$lOrl]1nqhg%>t>%e;C:2#&߆yH?Fzr 9/`ÛC0v2dx{tۅT.u-4{)6Cyru.=hn:0,ȸ\| d̗V0" RzkUDWVyy]-] 8 S:&~w0iQўߟ}cv"~ˁRDvk {X'~(19CV‚\E8+S%23JFԫugT69A^=/"čY+tެ`p @qqW* @ƿb&.1йEn¬ 烡۟1."]8qK#!f2n a+mm$Ms=DtlK,B0(k$.Af܊AёU/k.")il &zlO;eaJD=&/QXʵGy^yj)98tRqîW%To+l>Gvu(ᱵLa^rrje~0)^a$hEJDz ) i4L6o`~I}ɞ>h5{_1k2C.9&BH6&ދm t]OpPGO+QzxYq|6)d!al2fP|:GeS\>0`-|tJ0u˟ gYcr/5dVp?ʙ/pWl5^A*f[ΜQ2c&~ONJk(YKY T!Q`zk#9!#6Iª<(7ݱBA?_5:}u%Ӽ")o)@* L6z=x~ }Ye8Zp[- =V=QFt`8d"dtI-gl|omMupVS+he*A+O(귴z 0[3ډ# DC] V+ :C'x@tWUC0$ r tOEC\ saB_@H"w[S욓f\C.L:g:|&V2lT)Qjcc)stu+N[cpZ/$ S,0x3([7}1\&<۫)g\duNA1zLrH5:z{>U,Jೳ5U}Gn'l^V7mӊBcPgtS5.Hn۵=uo=ByB]*zMvX4G$Fi /bcZd%3{w7!g,fQ,s?AGj97|Uʑ~/)pgLGW]mKb鋤 pu3P=)]'#5*h*ݷs/o&lfxO)ʐj_U` WشRtnc(z͖9`t uăfd k rti6hmO`A;N-QDŽ51<)O-ޞ>Yfc.3 #f. \ b|koEP $3!gyll81p{Th|)#4"Ka ڣrq2| 8j9Ծb=yvL}ڋ=t4Xfc4$Ť>>ؾ s_> kdoBjz;,tw)R*b dI ^fUd,29M%Dǩ5,z<\Sƨ9 eP ־d?h, ~P?7>&uѸ@vH<'̋ La܆\!!a7dX2B[pX.=-.O(H0qvS$B34U/d(}3?j X7;'lU؏uO4v?r91 o7¹,z[ɪZkkw!tY3dܫv9({?2P~%1c.,Oh ;3:Hzv?Wh_"=މ~d]{h`K$2('?:P6AѯL*cC 2ʱNQj[߱F""U>W_5HҠ=#dfc"oև&jBK*u2֊Pڋitsx& E@xOZi%:U /6eEȪtX4Ea~{kCVO墌51tp®$1^݂r8] 5rMbqŒna ¦GnC*2wP᳅:ᅼ>3_o9۞xR?S"M !OC՚Ea8?Yt[(07Rqjj?z,}(*u-bE ?K~nG#=n*տ. F[~+U!z֩;[M E:ܫmeǶI =or+Hu)?L,D/vyJ-N-+Qz6dl]ze +2'mY y/r$.H q$4WIhF-mb;$KIy 5뾍]m1̫c"Ggbg ߐ)3׸*zoksyU7 66L3Q1L{C=gDcIuF0;Xi)B Ss#s"Qdb Vj㥟ޤK-oYݲ]rBTWrTÛu@8q}ĵ%Ln(WNÝ$HC) u!均iSG{; ID'Hj4 P_ڝ#- Ps։mbVT 2 ޓ'np&dͮTt;$FZp֗iuѤwV\/%bkzB[;c/;Jo엂]ޫ2miΆ#XfD`Ґ#//^΍|->6D %lr+&"/[yf1Ĩơ#U4u&.t,ε D"Ѷζ4䢘: ڸ4HMfz m|'#6gJϱPQe/2  LFG.rejc ndnM: U6\e P\:˩*t%;*WP`YS|R%f)H<0*p#-J@"C݈+|ʅD7 ӝ]_ <\ẗc<yZ,Qw?6aU98o5,*uѢf~ٶƑ {8I<7|PIÍԌP0A4DV)d6yebK.8s*mUשҏyquQIVټ ٩R#[UE%)R/^o(K'd2V^j .m: #uy^&lu0`L[5`:|SYEߡ9/0=pNfݒ4r}sSVh^dY+Уԙn8h_{ܢӮSqBcin}᎕luQ mJK*{RO(5K,hD5t/P`o++9hߘ/%} "e-Ŏ{˃Xm[e-Y?jKo7y㝨kJCvɰYI Dn 3103(p[Rۉ"Plblv!YJ3mobi?ec&t(!`CN'c66I'' I/dB'`xs Yֳʚ3D\pV!Gx}@}9?9,{nq+9^dS S6 xV%"IVӯSc)T^R_Wpc8;Fv(C }=kA?SwNsX oKV*/PA\ m*_=ΪZs|eWW|^$Xi'QpFbg6R8I>.̪\zH͝JID %\ 1FMij8vgTiTN-v!leI x@8bx=w0S{@`LY9?+DsNxӘ\ub>Ꮪ/F,NyD ~-EcfT+ 4 t8PU%&i+-l0Q,L 4GĴPήxO@h%bƼ謇>@RBA;GT4#} x)YeURS ;Ϋue!J(BI;5A8_Ոwu<3iEIsW0AR::M5WkNJ% }2d<VbhtXE[r=4wdߛl,:9i+Y(S,#OǷQX%_sn\֋d٫?u"dz(" WxRauhY }_b$h1=]Cq-]و. h0͕{I_Yq*Mcf4~w ?,tBkntNG+:}J8 ŁE7t~1j_͘&k$"x[{rMѧ6;qhG,:G X)- ߽5:=?%@;_x}r}D=]:>u3Y!\۟C A#WFzM2׶$OY'4.~lI+ؠOw=3]eޮr} OH<0+cMRmzѝ %P A fN9[bhnPwÙ D?w)3kk&]R uZJ…T:bӱEui9h>`f (d^[ZsyQib|V~~FX8L{4Lm^P4jK԰u8Q=ґ;4Z3yٖ>Aeby\xK|2qڿR}2b Z(w%z~9>ehhzYdԿZYjR3i!g[Rѡ0l;~ Y ,3c'V<~_y#fP^J6"fT,_D:`N)az&W8 55s-3 LSv,"86V4[*C']DP8j c$c,X&.Z owc~ؐy=UtdWR߼vMň Ѡ=A(W38|bc*S"njUn&>o 1reʅ9FKXP.Ȼݗ 7agy8-!*O?n=--]8"3}kF+dhHlIΥ:Fx(͵YE ">}!^7<#R'+7d𩐥"UAz^ tUzNh%Ymllq7{ p<ت{?an. k"P |8u}mm~sZU:{ DY$ySJ10NX-dP (| ˬ0 ƴbWOs%^EsY@hIZ#2\ILE y* m͇xVnbB4M> &T-vb\!9HU m}zrU֪9`k Pq9Fev0֡zOzMrLxk3VeSeyF\CćÅ|{Yl '=S|ZkQWT olw껨ͫ4빽뙾ۓ1gҡ 5XJFA RE@F8qKV 4XŸ́b[>3Xٳ%ѣAӚ D$}u5N&e-8RBNN{bJ7kK*6 scʫXs*_RE_C/xu`tFȨvGY|&wۺp2n@s}SDn4'$HֆiMi gF_${i 0KO"_PW"?вz=b;y'd!T h4B`ejr8Y|6*Ws;eay߁9f{d\Iw`U{ຆ먽:udyd۷j#%!l B2j=oZ_83 %B+e?HɼY- Ȉ}?*aؾe`z)XJ4Pn)p9z-@-F{V=@ڶ vq TBPS(bBTDQP*8TAj aBGGN:uP[CTN>&;krۉ8W]Wd2c.֝]Q'`H )w|`"Z|sp~S)h.(W2k>x@-8' !_ 4Swo ߠU[DW/ׂO'._`V ܿo J;F'HҲ~G fKZ! G3Ar CI)\z, kq3_Ԯ*ɧ@2Fz_O g"O&ZJ3ioj~˿q14IՓcGPib|^7©DKFd`򟂄GÄzrŕ"du>yOMNFO>m;.O6 S M;lH7ljmuz@q\$LjVm~P,*O3XÎY}؊4qJؒ૗S+ⰏoZ@WZsٗy$e&9OeQ$\%V[.\7GnQ*8zjvac8]j)_9 <}<1|zK(&g'ICRNu)h2H)j|c P m}IGT& & pVC 4<aTef:PE$MY"Ke5$etC=2 3e\E~{ft}~ L%I4UWo,{rϫR)lanB'?ʟm&-Wg~Wq"&z3 N}c8 Db|~x=I \mkx"J#X줞7wLJX EV:ǮX,)'HбmZMQvc 9dGwгTݙJvri21/-ׅXv" ~W_s3hQWюؼo~-%WL@m}ŵZV{CltOa\@C74R=}cXfiVS$E#@[X1ϟ? >.'JOGmf6E[B'@I6~|PuN]%JHG^""]ax]ZygUN&TFg{VNq֦}hBvU9NV#2$)hl a _37y%η샴N ȏBziNc@۾y>ޠ}9A?^l@~N.3 `]u.՟ed H{ Y^ ->#y]NBq"l[bDOUi^jHs~{ v6i=imP#/Lo%OǏbtw@꾷?ř%M+Rl2Q5a^g!!VTFi&Bn pqQ{zӹF*A)R`{ z.4_dRI%2n*RB]aoW~L>&H"|?FܭfpHqA2)ͲtO(V:kd:Cw$9#HlW/av[?Nb1V!7iH^h)G-6|dwN~vXa*X W%pH<cD 7乫{#h#X~:3/UVKPeJAT%c|}=$SAWsdxx'vz4iVL'>7v!{`gE9لm44=qZUz(TL|2quף)[R[ZE) Ziid@Up[Ys{ {17HžџsܷYND4]ۑ}f>ʮ!501}Fi]!Z8X a:23=l:!E⎄:Q7tk}B."AJu4kݵ VRi1Z P* l_ލel'd1xx$?b4κ>ĵ EB!*.0ӷ/ձ:<שtL//FByA>J9QW<.􆋋X-Z?42t~1 J 8wƋi~Ejz*Ls(JZ.R?wa+.* S9p=rX`?!>C*=Ckd13Cj>v (MSvy#n #덞sUCda׆>Z1{2HeAc'zvb_}ŖQC.A b4w,l( _{2 bqs&[$C.)⣘ӈΌ]Ǥ`VJM;H?w Zoi065 4 e'.X q&!X~3lh:~+9RJע5#l!DNݑ"$>_vz!q)r@[h~fIoPFňCcy]FFp!4uk6TԔ3 ^#<Ԃ=Ҧȸ'N}`)h${TfU8"OZ̷ݯ}Pd iT=A[Jᡇ3NiTl\X<`1iKxG@AfpXN;sخ`y( U 󤈈 dI3#lǔug,p-)C20U:St|FEN֝}Bxy^3?F|&DѮB4Ie9t"v!{B5SB>ƊU*5b޵2!fKV1 i>'*2Ma_[pdƊɞ>Jp*+Q=Tcri¡mq [Q B;9"bUD5"og}1a,/𚐘c )O^oazwn3#z-i|%4D6!!&zT.kKCS96mpoī{&F#VkPl¦XVh(M:ǽ*+~L4kg?`=Z3Fy_1Oǹ0;QHvW ꃐg-ZŎ{T5ڡ5̊tG0ޱO:8m59V6: mRd|9 Cg lZdi<,ե؇PL KNy0!F٠4;_I2WM,5zg.}Ese#9|:˟ĤBڢ)Dt=mM\5YH@5Z(ɗUKUf$5M5WvN)VeډF!w6$BcV GrR)x(oϏwSum@jF_}ۼv,&?6mR/cd=gog㦶 wT\P5bP *)"=$vbqTc:ex_>QW&>aͳrN2 ~b&?͖L!@PdՉ$3&-:D_)~=a?DU;h~x(5 q{m`l뾍@ Zf#ȼ A9I}]GClBYlGUe{GDH+.Fcez ;L+mMj.b"K5EU{$1攀S_jF̘ZjhW64k LܿW6t^ P=2u:>P|:,Qٷ9\pVJ s&;@Z}6ll*3 ,(yGY矖 P"6`vH0$}r13sV=di~7Xe@<$"h7miJ #zr$2_p AejnO*&𘓤auh=uu=\z <<5-a ̭^E wf O>(1;k}[G [m!j7f {7Ur3qǞﳤ{?`AO[Vs:fX0 5gXMa '>3Ӎ/%.J̈́,.O ۱j'kV:.1*=.#M1b ᔫP8G8<}AdKY ̩M;[doIˈ:ʨw1?*Jok.ǶzszDPpoPfT"aOn^4ETe܅ XQ U2 OnZ"XyEDO"ȟ[]u͉8oqT;Rq"`ښr y m2zQw hE^>iy_i-^+mclD.  U1``1A"lapk!D|_%w+ljE/ʜ8U׷1 fE)1#ﻞMJa0Lν}], 0'y z+S v H ~%yQԾfG퐲-TmrLv:ez Iaaۂa;r6oL\AAa9%~NM)f(lL"JvDiT@}fN)/Jn)8F;Qs,'~?Q+A}:$}A5c6%` :1ЋbN"EXXP'~(:DH}Dˋy>*” 7pžǞmٗ*QA?~w"S:ONCw/=,FZ ll)`Iu" 8᫰0WPo(Id-1E:w&ogƥ䡄J.ߡU"NQ8DEu]82Cv׹Ä5[yl|*0@D'qˮx͢V\/YI1:`?cJ-G?m;itxo&9rFgoGђ] c*y'=WrIfG {j"Af\>GNsM|mv5GOnH1Pr 8dGnu1AjBIuct2GtHjͅxU~ (B5CZGLi ;s:5)3{mߓXY9>^UtN?aN-&WsF -̀PrhW?DX XH8Pu5A[v9Q4,R||EgXy2t7EV-ؾ f_jk!;C^ee|K !EGb<f,n (mb-&W;OEjkVfHBhr$Qb)xט""p+tRKrTI3DGx7ͥӔ'wwG]ӫ~*t\jx ^ERFXoЩ_^ T%9Hf-7^HmR6m$PZ52@~,=&Dgz>6ߞ`sx`4(ĜiV &'Ebׁ$޳rPcaO\a22+cZ[4\@Ň$;B`ȏ.)t Ӊ(p sؗq"$}:L+O_Z]*ӝecj%~S.-54F߀(O=}$-rcAhlNn U _S=q'm:vtb Z}z5*%~=OLK 84j; +8O/ BD&mmړ?FBY*ņZib_$E]^5HY-Lm#mnelh}ouG!SVa{g|`-G PƌR&,kʵA` گ8kFHCͤνTQFP`1Qh6fP)Kaًդc>ݝ*}teHm#D3GЎVw>r*+YTgRkkS":%یQ׀Ea<*Ci4ߵ[ՉO٢Km"p$ZN|,LsCIM$ kFNAεfdƋ1>d ^~ءffKjXϮ#.~9h!Hf/P8Kl LZid˨q ˑ$`n_Kvd;0 AFEJvdE4 R) 8\9v]q:10^7`!yV8?z@7wNפ潲ix I?oh6x^ l|8{ =&Dτ`DH-KGl6OD2Js[< !mQçFh1yĽ&DP-I/-+C8XQ+(BY? r½r+E~;Jc;pA@$AZHW4?.cLRe${ܯwB7@흊)8K T]`ǿ|ThhTid\bcZZ< AI+.sBr_c%Nѹ\]>9, O4z1pl }\@Ep\D+ݔ1 $ԗWS*(Cd-I l%POv F^\VoEꙺʕo| `]1 (?GuOn<7,W1&7s w[N~6BKVE0UA& W,C4F[[ AT'4M Kz_UFVW EE8]I{[U$(?zNҬ>#eT,qFf6} <&.& ۪qg, ./r(<2[ysqt~#s <1>oՋ%:^{mIr|'.,.-@{ h#o;zz#*Y**@/ G |Gm\Vt*& ޱ(A :BrJ3)ˡ`1ĉ8GICV_r%'nşQ4=~=n.r$} 4njKػAfTOc fP`HZ!(g!32Bn?\)fz~vz0I-vI7s ;/NTEHiO?2-ȖjF*5S` Pb~O"LmX߸iCY@BFK3`"0dvh@Z_մ*@lAC~VcrcI/:4aBX!+ץj".'Q]_yx"m?YhہͪZdf躆Dϙ3\N(H1bVza8g:wڭZS]0o.5\Q FN`lUXQkDkW* ̞E AW!?v3kYw|+x␘M>J9uPc}#el27應Mh4 ZFpJ frB/BWchMV51|8hGz~u-h{-HYI,;kTLV~wgq!TW5KZ&#4ױUõ`F dh1Z<ԟp}c3ƦCc01yF Ȇ`;{]\c`s-yGpG!!6'țb^_ZX qLt/{A~HwSNS=Ol>qeJ:$|yRY𝝼ruhm+iJd ]eQyEʘ:̺ro@Q==W%Wf=,Svt9,G<+n oL;14v^*!LxBp9 $c%Q,܅gY -}.L[DRU9x9Ouo!c-cyt#v7汃ʌUJEI'C}3;#چ :8r|I;$Ư0ە@_;*7 "-9G3jW}IJYEtM'1ʚ+N,ez`ŎPt\Yc.`,$؂͑;;oCQa9l_oYkU0js6 P\B ee:L|rZWzT3vLFȡD9cQi)0fmEKft';N>#}dl;I| 7jo@߆]]3;2j9a |\ysf_MWM%zЕWكN(=m2'蟾Yh4v;|&"Zx,DFxdz2cBΆg 5W/ 5sڋYiR*.bަ=r5Ep 't"tq9},,h},Z13MMbv-*Eɦjb+]VEbdTlu鰋x#vMU#])X}/D>7^v CVA'0.$G2:}(^C,o=.?8;<ئ0~d@y^xnj-7]`JQ`|>9oySGވNi#'h=ˤKc9g"Q@#>tqB ֳLvtrQ4l Q;2j!Xwx _Vq1~{Nl^583>G&8iאP5Ek_yA9ČxL@鬽xeFʮ oaN"cE-O[7> .MdoXOeq6( ?C[I2aN|ՆS\iX8j4YTaN1̢Dtc.(Ft}Apbl7 uX0hƿIݽeڏGڷß?lG=?`n)$b~Z ې\\S3Ls`$7{܈M՚Q,dgb~ ځsن<$ ;Dϒ說ݑ'PqP#KmGn v#= +1 qOtp5X8.N/ɇ% ?XQH~67-{CK=l,WU5 <iX#{nqM?OS--u?[!T:g ^wHh0zFw,WsH僿ib ~Gڍx䕵d@H>"6}B[%~]% ;YEKTđWXtj`jXpg4⸦@ZDv}Ll38g7@]Sn o7)6cXæfXq&]k/mFxi9zfo_R-5i7Q„,xޅzqHZΐeW9֔0wv؎=Tj_P/*tq:,Ӳ:XVtk=䈴.Y:r qeLr5hIJnE3 GSW;|U5Zc:IKaUPPb0l F=]!e:ÎDdgIӆȗun }{9<r"wL'v3 Jybl iHnZ dB=QntB6`z:)/],Ҥն1tf&@ OXVqZUYX>PJI nHJPFZ)>09J:0XE_guxn7e&&Vޚ.͹Gbi 4B0-1>,!,VE Nn8aZDNM0c_\w/+i,^m30#4.D w kZS*#.ߍ0S"- #6FessSQ.n j׆YVav*Mq]lFBQ&yv::m\M+ݖ,hq(GrW_fC(uS=r6g};UٺI}`tPH:(H}9 h"+_ '] A&y@}T Rh<; 0'ZUE:-~ ݂=R uRhuhϺш"j"W -D!d# ܬ|dFBGji:jbb|F;n6dYGlIU=|0t\vu% @u;DCs憘'Qw@GXZ*:|E 7Kc$wl*  7TdDAu룋/"u 9 gZv),8$1:RWpd6?ۈ7{o "fNYW.ʸ_=KXהh.5 G/Za&Ai3ܨ>&>[ |soxMk&L:x3%[e ݐP`tv_";Tԏu׫>#݅8F>7R/B2RܚKFd<@sG֕@˜AΑ!jy=3Vp/Vj+s`Kq?'x{yf24 pto`p>Hm t'㸈Vߤ {Yv 0SuM>1 1^GcWٌ$!3gtVZR8|F]8Hb(!Ndrۮ7$ s O3deoG\^D?N\@:/-҈a} DEuQy<zP8F$nUcq蠒] V+6kwR{vٯ1֯O8 NPmfpg8/F, D}eK E됱6 =AqhXj+UD3dJ6~*g_V!Li|1+GG4g5 #E&]z4n8rCؼy~ܗBnQ"Tn*bl i~m,°'[p!*U wWVnc#`H U0իiaל?ָiƥ`kĈ i.{-<_`|#QKJ{8A sVfW39"-\K!x}J9׫ퟏbrc 35b<¸N{ qf dKu(pP5P*W2"UMQ'HQOUQo(?F֝P"xCBG۩غ,/@vVIPyQdB%Z%0ICY7n3云tRq1C1Y<̕&J)>w1တp Ġֆ PÓoI8YF:Igu/qGtQ]1MW+-c{ʕM/@!׻v`c@񒨎RN6L-ҍ@nM5ZW,b7H/$`L;3s|T  |x J$}C5pU[Xk⾛K{\2߼+](n6wkm-uݬ9 =~uьǘ]0t)R„jwg=\za If"yu >ޟd[sfH?lA_!QplߏbVv~ܥLW 7H.H2R$BئԿ1>?;(Bq8H(1%p~"G:RD|^a4o[tpowIˍL* XʏFJJ[wzc΅Ay@uoÁDXL'Ε7rR4ҍcN~]zŘ;4%עRĕ1'W02v=2~| AtHIb %On63}*g/Bl88}qJDwkuȉQ!{lxtRZb is8]Ce+$mA̠s"mm\e薠ש nMp) 3[,)5=2rhi:V^ >!xDo\5&6|bh[n*@ޒ(Sh|ߟ%03,/p$JP<-nQ'IRntuf8GYvy 'b`C֡Kuq:S}sՅyiOBVfUIS. *%dyȝojX !s7I^w) '\[.HE^JXbU_v,mHP.Q]|?c1 'o=>,D=ݪit.AP^Вz9>3ȨQ*2Vɝ)*V<`RpБ.zz =$5 L \#%N̢DfEZ^O2aY«C&Z¢Qn뱸.7v.0!SX7=C ,~)&7B3P̆Zxqw& +AYZI *Ѳp/qu- Ƶ!1o;-JBh`ͭб S?r@Za;z KTT[@OT< Eg2 Yo8P Zud˝4?M E>t0TeVF=2bq=ʑ ǜYkl\^*{fZB~?.s)~*@4ӓt xK)̫7Pf}‡:UUjb"p nۥDOj[!**A%7Po   QzձN`D3TNE>̂{U$h WiDZCr H +"X`2]Wϖ43e6 B/]$|EF,"a>EPM "N8 AU^KD^jp=L{G1< +-I oF( `)*5X{gvpQn ;vge>ƙw;iлŅSk2$*s+<ұ WDJ)Naf_S0\r0V]+jNwlk4-ulz"nuwc3U^ݨ&r[>-*{h\&*vNg7ZZZ',Mb%8dxTxM(ڸ~=&:O/_!fXrYms#CN Hi<26-fW<u6cuRmhֵ nOuWAEĆwsOisx]!o/;$e&5f+b>khv[j(.3OQ (*NLBA0`3*( ;j6jJ)σYTҼg:O:G>b:-)a~sK_ 6#BT2e^/h~~`xռߧ:at8H/?N8.r[ v6f5XM6:ēD&,J[2UIQZ'C"@q˰7& ou)C-*<s4UB\:WtƟ}Ef[=,(v`Gw]JɢqbV ,jU'kGElgbEs煍u2$~vߙ!;l'hP8Wv^_r_tlg?ɋ#.GKKR XYi`n~IRxvyÇ7TW.dR^IԺjۤ727X  Ðc{:҇È~dja DtoˎlU Aҁ%kZX `%ўc}mHVҬ5ڢ@d~ ;bH&o@rO&2߬*սN Oy8@" !< Džj0NCx2QzDfL/|tHwt: ӇӋ͗+xyC,%/vJA~_ωYnfj3xE/Ȣ}F+|Kx pښC>#9c:vۑ/JmZ Oe ^PdC(E8$Uq6t>N0,#>[Un>=2){: hv%N|;:ʚqƯ:Z "b%. C$'KqÄ']?^crf8j#S\شIif]tG6z,=ʄq ߥ@gJz퇗f^c ԧ:gH 8rzziJyӘBKLcO#1yI݄92d]Eu˫\u؎p[7GlJ*n#?qC jpEsNp,Ot _>{٢'Jpt]MbŬVjSv Lʰ1dlHuԯk#@cbVk$)fϟBSo~SPo.$ՙzĈSyNUiBMR\y/ _ >cr&bv: (s q|| %k ir6+›''I@mw$B1B+6p)6h;z~7 /a_,jr L?k aY*,+;}>%o/^ %/SOum2W]Q:םօ^.@!}Y%`m'Ema NA:nYmœ2AczNq:%\`7S}n4ĽҲ2g0u1hD]3Ψ}=$p{|SR:4dgǵ #)&z^AuIr]ⷼ 0_gN~$/PtrgK]6)."1tz FJgWˡI"F*dA^"iJƁz@A"YAQ9Fdq/+JSr da%(dF)N1:~ꮃh`څg 1ՌÄR=$=%6KglR`(]>T`?!Bbe{ HdE/V.HȘ3 7bZN߾cvsԱ(`C1%b+c>onӂe" J B[ S2({dzh*u]xK3/.X +g%PD ~]:aWAX7xgg-JT SH:⊟A_4'icf2A{G@9Z-f-^e<팙wM(F Aӛd*x3mDIGsH46/fEAǖؤ\ pX:XF4 ;%Qo](\P'Rxr!\&ޣwykۄ#X T|6!˙^2KhҞ YC r y:?EaK쾈{i!~}An8n$c7*O$MHMQU 7K#Z,xW/5q аgŝ;d m{4bk|[POv2%b"M~r\Q'cw+D~di{x3.`ϣAÀDMTG Ri٢F]puE8 b{iGxӓCzhR:knXچeXscG Z-cY?[e_ +b9UpMW:j#q?ZGr6O'ig25W j|0ӯ*'u=zge6N(]mz@+e#UyXBs۹x!~ 8yUX`Чf0hCH*0ׇ`w3͓OVA3Vt=,>v\r%f W&y 5Al#ዹaP+Up΁'nƅ#E r8+|6Lgv7!/3 (P/1ތiq >/́*ŪGD -x2|S*7KbL>P4BFN,&&2/~FllBӰmwj8wفېRIVZY(S|*)9*/ޱd%6QN,0"Su3= S̪'?^IAe@XwqcmJzli4feCzRJr U:T PD ?C ϤjHu߲2@V"@&ϩ<T`al\oSWihvv:T*aG`bbX< r4R%a"'XOH(HUU6AvP\&b݆}ԿQZlGſ6}碚HvlZhO^sE5̎|||=aD1<LA WR]J`iCRyBF k[8o)*1hdCnipO` Ν0%ΙG A0[zY;u5<Ը'pI?QJ__Ob$GΙYu@ m D(>gb4/,xWi (e\U8&O#q*^ec%E107 0 Kcqfrtو>_j߬R LohKJLPDm;.$RŰ:hy=_?gڒJ6\vJ Fmk<%4]|b40gαz8<;x\5(=5yzxN^zd"3=O"tdHAGC7kʻt+Pdg娏9sF& [`qtV<o!YJ"\ZSh2c(kd@ ŪGN{YQV@k+`߸h@&2:9c((AԥݡsXDRm\ِJۙ"y ugCtmvOq@.8(;sϚ|V֝nn8zPg~HiZ˽ZY6wV6l@\[1zfI?eӧ*ⓝU /.% a~Vc 21=D17n6+W'&;W %TV3źPEzq@xIʳn֋[7G8CBע|B's C#dﴧOz9[˗WC@)?_0w. UT$9U\$?D3 o aAD _H^ >\ t'd[luH$JQ`Z{e]#wzL#|箒p/yĝPF ?, d('ѯ)j/5jL<'[ҋgx:";6JVۭNETbJj yߩ HQ_cɋEG E GiZxBP)La |qI2jIĂ#O"Fو䵀[8gz\YXxH#V9W잫ͮ,|2:pCnSz#*7)!k! )TIa O>wl2xYuy?uTiVTy *eHz82wM'yND1+#1ͥM օkO/[╡RU$YV\I"P(bY^`oV^w@~ea7V8ʽÏG;l>CHY$pSƛtjY9xGȓw!{L$5+js?_>[+^ӧF>/t-XsHQ~4m ',Q}*Ah{m]D풑Zy G0ۛNI"%=9eWi+۪+nPkZ:uti3.F>SCxʗCDjfֹ(UF /r~m ZL5= A?K\8(A$7sּޞmvm1[bMZH;6uti Vta5AѾVm!j9mqr}qG{ؗ[0\x^ScCG*(.|˜wbD1Ųj,]:zNt,&X>O-49+GFည HwL*At2GI(&aՑ KYdw_1E %t|Oվ.S490BoF#eUKC N$\*]ىД]69e.tKu $qI<=ҒVz¥s[s I$sIѯH@=M_f{#[!w↧5xHiY; NrF|))S5 لw- 5.Vs,H11UJ#1OUg}8LzTHMh k:;C2` ?(ne/C+ >|x3-CF>dP'pK_9h'Y,uyppY9Ƹ6}fB|,Te-t'g<Cc?:XP+?P~0LAFk.Muo>Kȅ'l9m-\ZJ ,D@gnXY$HyU#? fW1! s!3!-W6Eºy%gQЩbzCݯF<{̟hKr Pq-|;zMO_4_Fq(VHplީ{ GrUٹ1#Y>ќbY260)Сhu|5AL+%.#*Ѧ\p?WR'S]e2D-htfJ=݆8cNiL['K/9# YR4 %WX4F'@vQ9vrJ&U&-KRNhWbCt*RZ3ܲj5-K~d~%/[Kqy\;72g:4:KJx(u(Z|R 9{AA PYjhN$nuww0q'ie7=RL†B>5C2Cݴ풕U+ gBLX7Q\l]ɞǗ( V[7 ߪRG.c;▅![GWa[#:;p'\ige˄aPt!#yC߈C7 J'85Qn69J.Ex+A<'w4yP%}LQif*Hb9~Y9{Ad'oL 'y_@I*l5q*0^9-c{X,kcg림 6 ]%4ͨ&''xG=3Wbi5)a_6{_[)ji+XQq^ 2 2]Z+_zTCG\@*|Rr=EAj"o'Mdszoҧ'f˒o#bO2K.zMJ/vQQqۅiRъE;y'h/4P)~2`thwu{I HY0# E"t{jpljvU ,!X VAh:dgp-SV"2L?X$m18e &'X \*(On.<"=#s*+0gS0lVe_lY5:aIC(ߡtLAO @jCA=!GP"VP+bLE֧8*G\O-/4ia#][=D=hA.2d!=Zzw.wC[n1MK}QqM\ > ߆ q̽oBq TN6һ]r*y~B̓xu|ߎ|f@ Ƌ|TۨSm;mb(%Y#m=1/8 ?;D;y8# ?W!bUcϑ2* (iTX+I䛤UT0=a%Ot뱚let;b8or?|P rOTZ,O%N2/bXM`Q^*kQҀLH"9azDEqeW-Yuŵ^|-tfkzze"MxݷU2I~;veK(KتY3i`m{ "Xx( L}s:VdKO4s,HЏ(~tkC+soZ^KR1~O޻YY:S?23Y 2Y5t,OTTA-=Ƹ';wL#eCbɯ5O|k$ʝo* 7XvtEfɋM$ŀXcUacN56rygSJo =mdCH5ʰ:ƲW.nIm0̨(9BuIw+ <Co\ܹk9V}V*@԰%v|Vɘ ?1-Ҙm"8}{[l, [5wk X+ߥܨAz(1US<OўZnxKX 4AV< ;CPI :Z=Gǿbft)vhpz免< ,4DI<^4UFT]/xjLTi9Y-`~)P1IġtLO^m2F xJհEt2!3]buy}W OW[{tѪ9EShdi!9-yK_yb0VM?wqJL*?0R}99?5r(0gH֔nIGlmԻ [l%A ϷGּ-G^KԲg^%LɥQVJpU5uî)rJP#ɚv 7ϳ @-rw-Tj sҘ/(e#ykBj^HQXy*mu?pnAWu OGw{y_>nmSpZfv1v 597=io2wOBj?ǕuKdM%[C͎KH&yt\Y$o1S0sl"I-}x?,pW;?(lm9~$}R<ݙh5}+8*t?_;WQ*_(ݚFboZ I1M>Kt|Rq;ЋGd.R?Sz ߲#J ?I!`9zfGjWJxUvаuV~^!9a֎RKwaaEM`î @Ճ2({Ef) ]>Ԛ$zg88]0s \xk3U7\n A /^t6$EnVU 8(Ntz "j\%-̑S S,1*젅h{n I9 K"d3|g" ljD:41,,G{gd͔%zs8Z.-յ.QwSkp&Q*gy]{tJ#x>Aݠ<^ '@&/|wIXOxbyp1yY$DO铧.gLf.TQr^*<lQQQLYh*At)Ɗfp b$:nYO `ث뇒+?XJ+ϩɘ]G֞uz%~o GDͳ|?oA[Ɩ'18N(CsZ,'bJ >{<RJK_`t [Q!X bs 'Kf`;GzO s0Kڤ,@ӄM*jB))D}XH,hRO=vExDk7.0;'2R(W,!YHҭ26sS[H6j}=h/m* U"3=%"mZ=ۍm;%^I*̡,R 5 ގf|JQߢlaʸ-=e1=i%4 !P*#L$wI`}VκHf'nƳc] č=.iM[Å )\E8VUCFfWuvLq\Lw=®$Oڎ MɌ+ײrV-~H-Å OT߸.[85Ne"&)Ԏq =w;.Y׾Y8ɹE ۹ &AL7(H!_ )Ƃ]ތpk ЦQ앿g,[۳ND]X˶[-^ԴA謀K0+bg(^*k~rG6E'~2qMB:tل\b%6ϫ2;7wݼ |il BU*xntȦ vpvmx ޫ"2x H+fƯzϮNS8whJ@ 8Dt{{OGVBQQVZ6͂Y{ r5d"&NZƴ:z;gSv%L?0'^[ ki"a/fߑI(%;+|%<>4U##*5LvN}!9L}'@ PLw2oZd5$YNޗ"*u!w4 4` !f& ,*)snSQSj浆\ckE$A wey}p9yC ~/?,21~ig PmG: \S^9lmU2&C,jc\&{Ée]:*V»e /aN֛,a $Da)^Zc\$.QA,6klM,g#5UVNm  ɮ&ƇR)iC}Rgb>6 FSQڏUA3SwV=fÈ)цmIɏcQ>[X2'0 :6IKXm3'd#IkəP(& ʃЕoFqR ӐRZ5~P[̼snV,X1!3Sɂ,&PZ' i@# <%uגY [Scj)Y3CMKL,3i$xSMax;C1Q|`#N;S+am71iG Oi_2cr{PE*8 1da2ɽk46ո E"~< "BpH'O_q qo]R-2͓Th;Z%܂*j25JRJ; 3:iuz-, @^TffkIr]ۖ〸݀;=P*Fk&]bs+& 7?oSn,z]wp\>9Dqݙ7KZY<%OUTp2=,Vw[3xر,>&vR>ϯvUFc!1J9:^~JPE+,bѝH r3ː($Յ6"C7#W,{9·Ψ A,#>70ŗo\5:1`A4ӥЦ%A?blC'-9ɫQ Li\&fBf|BJzo+vcP]a 䬤tB@d\0߇ 2uS؜}D4O,`\j@?lߥm v'zcg# Je8ZT[OIհz`F#b޶m be.O쩽`IIHn"k[4\*ri? ;feoKu/ޅ67s -x;Dב19~#*?@d/43. Z0OccK2 ٱ+H;?MøGo@]6tigȶmmE+|̻OԾ}Eن$GjH=ME괶uLul3g$@]v"xϵN %7`Q uWbH/, v9s!1ihvݸ^zb:16"2z^䎠k=b3]*^k<ۖJ!_0a4?W =|FW3u{6XLskMgNÒ`'X|_8 kRɐz =8>'>#\QJC/m A}_6`: Zȃ}e6.&~\Ph"whУhWc̀†<gTm Lu&X`Yy8ιBr,]jX`0e>LŬ}}(YKu@ 3o-Ǩw ETqP n(KN(Z)jEBd)[SZݶ^7,CG’v#>M:|h; q/mK o0Tp3Dy]ʆq)V@PoA0)ˢ3S AIi I^u(gބ*<"9YwHзKn6 $e3_I"sN"vGRƯG) }@Bd.˰cLY!XY8畏psay+5 !0ҦgjU>:n5"@F&.pkBܥJM{G0ǏUa,BZol! !,"$DqɎۛX>/(9J!^3m$ƹuU%̄J鮅 [[A:~e =qϒ^yҮuq o4XJ*XPQkcY'Ln _8y:1N $iED9ZXAmvOps y}9iy>F &UT'*4!_IErV/-Hxoig"h:m1.a ܓx =jݚ)Ӷ6(DB`b8 Wy㪽2 +&֑AXuSu|aFaZc+_5(z/oCkeE &]>v#>)-_[2G;)n*pĪrM$b_U(ax@&d˳\%ej+3 ]tRߓj-KJwJ Ҕ%+^[:;J^g'915RxtgR'8(q J>߹y+ͱ[Ϲ7\L7`29UQ-?̠Cl -h/r38k2G7DW#M6:9ף 3<>xMS78;N;˭ʦIAw{ڜ]?7m/їyt"-`1VV1G bw6n%l0eLP[H./3_ѢN^OS*(S60ՊL. A1ƗἉ 1'2#.muM0q Gm=S:4РⷞFB~3KQLWr]YRN#p" tF< *ÐbT@Mx^"Ηyk}QIP?>~P~ ʲū6[v~T38:ra< r6i 1f܇ubFO Im!#68B}S{ t*;rO 5,v("=#b9$ r=*,KƋLsPa)j I dǮ<8j8:Қ[A?c̞JyM(UA6;i{QvJ5&${R'x"$k[k'JI>D(E]{AFD{qk,)^ACP(Q*Xjx7n7I03 \$%wsЬj _iržUf7Bz&UMOi߼Mh b[}u70'iCoMlσkc,E.VLL[.%hK@%9X UsPo h7ʔs{,/RRWebvbkp |ȡ"|.G0\F(b )=M#.MWPyCGQ~a V#oLm*]'(x3oznt?tpH U&gz`]7ǂUj]k}:[#&hu!tFe&'Էl vСUx5'ۤkKwԪc&6`HaփlrrabY.ZN ѹe[裾G_%G\Ho9z1?wB ĻHdI劎5ө@4Ut#T$сeyjܭ6T~uukk5G+[KrX5< ޣ59Ώ]5\Dlod@$_ťsT{tK4o!}'KOޥj$?|մ~*דlK kecoFJ0 =/N=`6)I-uU8a/ "`>b~UQj??/ioz}Πvb3CH{eh\F1V[)iut7sGIe颥ח;*$n;yJ";c"VJ`.|0Oq z#)R "K gS<~fښ+pF eqH0qMX~}F@-Iα,9? 5Mǣ.A-걵fs/+\@`qWv#toa[fs%n&>KR]GZs2w{0徘:84v } e+G ,n yA| {9j*SC1eDuh&]X?IrDuHc= |=XPbޗݎj ~GN9s뤥xCv2 (. jqlK)P3p+#-gգ(SO$$1尢 `⺲Jj1L}rVqT%Hݗs%Tr+o=h7A`evq*Pgie L-i]8rWl/>0KLmRBrd;{/dU[|$㶚\KO4_#s*:f%rtHl4e &NbAZoMһxo*n}8y*}'e_#js]k2Ʀ]kv +ۊ.TzP"ݙ:F':nVaw' AC x ܅U7[CD"3Ҏ2G:(#KBQ"۳J T1m5K6/yn"g*B&_LZ/~W!C[*vQUJ'E~Rᕌ B(kq^I{vĵa]nݕ ӕnɓRO _PC 36U*A s|Ζ^ꖏ=Y_<o7rQ+4xyfa&Dt\GʣQm1'ȁKs)v<&^qŃ_6nYaou R sh8>Cc%Y̙ S[CZFn];o4H܀(~zf;j)|^$܂^̾r ߯ 9&$5xhxN+I/yAjcU< Egc%kj]Ԓ:#u :F&a=OE嗵)D-1^߶1Ԉ?fA`3g`D.>%WNune)-<[U {fad5ǥ`DOnP6œ3m\\yˀ.9w45cP8zs6<1FWof]fO0!<~]$|CUSB2}M}}V/8ZV̹>+$3F)IF#Qmp#f.V/G7gw`F|b(N[:Cjq9XO] YKy9iՠ4r .4a){1gA{5JaIb_j P|ipSw ۡ^T>sӊ) UŀS/Fݹ|nW̏jzϸ)+^%$.iX] (+Iwbr=&)|~E[³;-u-RԲ%pDMf"}\m^)|dBL٤v bK k 3J8%B^bWje6aTS5xהW46}k/R0XX#&Pp]_^b9oՄ@:_ff1 gQj yR%ԬLeQ= b}HqY93Aa}4?EVptS askd y7NC#'q=pVs̟E.׌ALbE#M(ud*Q^~{x3~|(bx/Ss-n cY6^BjU?y ^vr"7.jC ˋbO7e! 罩gBY<O9-Ǚ&"z|>֚~/ =zyMCl0(k /w+Y(ݚLٜeA|{H:7h/bʃڿg7w{hQ@~Htzklu7ȯAi٦ś c.&H̙U?;1, p^,' ,3_Os{GetD mRr5`SLJ.~\S^OkOLG)BtȁlVD:ǧ/fmwd2c.*}C99hjN e-,qveT(h^?uct$ts(!Q;]`Vȼ{tC3ŹV&>DBFQ,MM:Yޟh-v2¬B3'oRVӊ >R|="rv ?2ad0(> t)WmuWc(5ّv"J)~C1il<789U!y9%fQ0Q'!S@Sh) I[W?lIuG;n"9lR(5bߺoo*¯!]_. %VOXuf~m;ϏH?^a?}ŊyG]kw@j"ڦ鱬O$ /f3YGǖ$M:1.įJmF BPb LVӒ?;ei _RV0BܞG Vr?} >:|l)8ht[=YyW~yϟB&ܡa| aCzk= 6h҈ӂ$S]6v`u2tu? ۘ [>wpW 8`[(TGy7Ǚ2&(Zn`wVt 8xv'l&\+2ףD*[q׷EBxGϨM~-"pL0H#3/d:C1/ttN0 L Y3 IsNpŞs]קCƌW)IVpa1|ـ̣Q4 ~pQF#r N:Ϣ\ eԒ05!T^T9L$!u̜~ TOf\; jQ1ƻ$1P&n tKì&,vtDkn&J݆i#@> cmﳮyr43jæGOM's3蓡46󕋤supL^x9h4 "fٛU#h?`$#@l)M.Lq>Mw1O=e@,0Ʃ﹪<jok@]>(JGڪ,ۓW Fk$tjO ߥfݶ &7?^ju |5T: tDDn)[1 }V B:Yز ٚm>Qc,?ʢ ǨK;NԐ)PgNlDZI!턛8e/: Grí入!Y*򺲔%@2=AZ6KPIv0%>μᧈ_R߹CzS#e 72&U~yue[^;{q3!{y6VgrSޖ[x^@Ȯܚe٣#4P.Plߗ-Wѓye28LیĊU_d2`Yeu˦e[Z<~Vşp"p,ԶH~^piN>bȱ<+{%a?^/Cpk? NCNrۀ[]%KdQRQU1җ$<9,g| }y|m4u^U.-o!ZPm/s=]Բ ʓGgc,N'$1r/ z&߄jk`K,5@&wH{urO0澶rAT^)`ԭGcr/tz ]?V g6&R-) o$B d*5`,Pr`B%>V*)/S%p+9m; c UlG׌x*PY%m4zHYja`2V=g?.ÀI-& np(WW6EiЋF&[be3&!Ed1Xe>n|7?EUHFV5s'!c>' *j= 91cɶ<&;)aav.(Og!48wbmCȜp.C qGq-mb9}1q=F_lpEHᓓ!bkpM+޾`3 @C&1OQzHx'h)"s3 'Hpݱ)]F=e*-D!U5ѲؐZIwr@a(U ϊa^b-+CڸkFB}"Su;$ PI)á4O[D:!Fqz!~Pv hV81 :MzN%"kt8 Lb|7|i L#'A$m=H,u0Iz3eJ վu|V#7@4@ܫ5KIf/alWyR%xV݇=qU1y(Ę@:Do|Irwf @@.>DC:Ȝ8(|?Œp\7{ݧi\sl8>8{f:[eK]t`UՓlF(wsc;gw!p#^j;E7#` e`W@*kh[/WF <5q҂A,9v~ύmW_f{CA735? &b::x2W T1E@̝)yK {d<Qc̥AmMEwcJ2%" bBl$aA`>vex(#Ƭ:7=p AnꃚGz0!)%0IS_"L.aw#$yFv^*b ^ЪE!i=*{/C 6T1Hio1q8E9C>ckZn9Ojx9caiՆ歹q ڷ 4/Џ}(>UeGBԄ7y1߭hqvK7A/Qٱ}l2{b0w0!/tRx! sKH0icҫ먡%DLq\ E_ g%bʻ[zY],zm;Ѩǵtl- ^ݖэn) ~Zzƿ/7b*n Q}b%Ӕ$ټƙl׬`Xr&mcO ߓkBW嬋d,t` :Th!ጉz}X12_ԁ?^#6dpa2\wA6FbH.3EaiO7W1Ɂ+X{Aan)*$3v?1fќ@f8{1dT;ЛNrYtW P@Zկ|㻮 &2+z=1ҫ$?>]nNZ;;xѶ%~[%1W\˄Yʯ;wۨps9c1yNǑŒڋ(#zx<@\){Ce ~,i`tUmeMyxQ7Q@}e.3FݏIofzFy1ojqeӘf铵 zy>f 5v /ZDdX&Ѧ lNr|D>qy5Δ`vEXG<ؿWa/]L2\X|dmcK,36j,3xBdJCB&ęއzU C$EGiN ܜ4rjHMo ((ZASʦHn?jjƵSb:_HL$r?{藏D՟<47CG+D|Q2'S#VX(\%Ɏ{CF 77Y f7V ̿}F='bHt I +ˠ,ObLb[T>u.JSqk'^j05T ]"X/@M|05PڱSCc9uA>˗*Ҫ:\qr~^~T_ӷO:i|&GOiMUX}R3fAJKBg}!,ӇײT*yD¶>HM%Ryt 5u}f6z7jy>pPa]y7ڂbpA ,NPGҬl'\K&L`R(\1M~Rr&?byq]y hL<Ņ2iɘ/|U}FGt6;bw~|%%){by(|3&r -29\E( q[s\?W?s"Vl$Jf>k7lz`b~ .yC B3nqϋ I4bӟ,S yVr`B2υ bOXb*֏@q[w[Yk7#"ݟu2Kyvк{STi'7BC_c (js;2Y.uAV6Vy9wk))\mHw F }ٱ^ :W7@tnҀRE<ȫMc#%F:lBi[Wn z.1,=qWQŅx_fXBޢĠ^pj^ 4LQ_5Ok^l \641z&o-o3hn8e]}+:I^ӑP5CHnJ嶯޺T}M"„< J4yt <!";Ms&oЂ^i+c M(6Rh? c&ͣ$z>4T"JV) 6,+|>B,5Wivi=aŴⳅ%լUGdr.ۚ=f?6F^Oy Jee}ɯ"|`ESU:ce9 bj9֭dzߤ^HcVS*$oW9OP0ȇD1s?6a^x7#kQZD^_g{,s#\cJ~u _t ukN^l|KS&`O˳Z:?|.ulx(_\)nN Ay>PVȊDI7-s Mķ8)ϨKشRY6q} + oV;tLgB`߾u^;jU}OCh@P.%y:Kb@;}]=Aw'NCB7`m#kW(J 7\v͜CV nݿ>%_]I'*nVNG"Ggr3oh]Ft.C2kyH\>Đҡ%(wt_ o8%~gyAJo:s(h}?W6,f[ ,lBhKŘ'[Iߒl.|h.:r -:l_}h@" R}DVΩ9Gqef#n<&4jjGӹ w@JBSzg<Z ە\ں-(!R{*)]4صӁVh' ek&BUθm2}턮N+ '+|\mJ/ Xdr*=1Ƒ1&TVmYt*@fnga|fFil}M5< Po]EFZ7?-T3*;Ӌ7h@YTĴ0F'cV9XiH}nr9%#Ojh)7`&==1W UEQ<KgzY`AJ;)z'?62ދIGgFiU1Qv{~7yywj}/V_b21.л"- EZnɸU;HǑ:M43"gw2Dkez'je6rbwej|5WpiUnFM>]ɋp>ŏ=`i L`\'Ä6)>g*tb3ֺ탔cL疾*hvJ,)܍g {>Z vz`&5B (u'MZeKR"dzq s2'b٫j/U.F6n7e&QrN=n%jEw?0$4ƗM(쬼^9vUxRuR4 \ P}qIqIGZ)O`eY0"B_Cb{y@E5 t32;.:\AT–T~{@YN^ROvBsW.;gխ27İHhd.ߜ|&rɗ1)kaX|>*۷bw' $Lϵ!}@y*4 e&eiݖj!㐞0IvO T}IW*'[_Vgj Y)8X ve^>n`z__M4Ǿ\Q~NN;= (P'*1iF$zVNs'."wA-gDD[I\ 2efV#'@Y$M9Ʋתr%T@BJ3s0^8-bZ:/ X4@Ѻ]VLDakuPe)祹-ϫOJ՞0 UHd1n&J,,rCU?~6?OBf&Tu ;d*=4ݺ0+fs܁1ƝR9Rl^c.85; ޵4c׺qݿĢꄪV]+rLZn[ͱƧ%YK=_YDkiF=\S icEzKۊyJZ&-}x Nr2kUJ-i-]PSo» ٨ITz0f:vXeg_19=x4#sfe_Ml&ĢS~w)ۍ-Q>n}[$kBREm=?@?z)[l /X8+Ѳ,898ӔRaÙWi6+KtQK-;w:S  05Jj# \"(R޽(rG,!(oeh7`7s*kPؓ3I #nd*h<~^K59u^UjV?DKA/'JEg'6O`]m ?!2z$DZ9 abAjӜi!|llz*&X>V9/CflunbfZRxbd;+t&v壩)^CKH>8+MbaIZ12!OY:gLJ q0뫽f S{pR Nz:%9X42/z<~RdF@IG]d%kVudm2;l%&kc.žYqP'宺FjC`Ho{F~4ǡUxNwJ+dqU~/p(!Yp4^W'w<*{1Y*o6 !&#;&2ȑC/ۦGwuU`pmU?"]?#͗c;EܲNoGd}N^ #"Z*ØG[GJ(FjUR#t'tK 2gMiyW tC,٢<0٬.VᣳQQT~d' Z"r>UWk"bF Ʒq%jbogpwf'9 l+Bˋ0$i֗#x|Mb ®E) XhR<'1v_G֡+̢Q9s4>2#尼^P([Lv%{ j19&ܯHR5,܀Typ"4男 lfeAw 6++6m0<Pd*af+/_4灉?\TتW_ş `~U2ĕ Nl6FC"ʅ2@󣓘5 N0xb<.[Y*l>zpjA+PNУJ#&_֛3o>j6/R-v~U 8Vk uuE`;tQV ݃<< ќ1v z|/)Uޟ_M'{.MR`QLOI{{0&Lh4+5^ހ o1OyuړjLs XBFZR Nc&eW[!ԑcR(ku %;v%7iz,#RH$2YJT3Q Vyv9cG2bj5 k^J tƈ#XSO'kNxpl[]"rE b$_g|2hƼ]qŜ}ʁz5À(ixw9P{wi=%:"j80ӊPSȪڊ fA)YFoݺI(G"Ug:o~;mvĩ ɬB \׿N '3[ݝRLJ{~LL~7,%;ٴArVXFgaz-WHr3@#}W6urO<ۯA|q{̠W㍩0L]߾kw t?=[ 9M-kbO^7l$%Lǫ; #}YT!Au(9Q)YVIlBSZliݼN‰%ѪځbgWZ!Fs`Q=&Ak 1k+xlF$GN݂ Kz%xHt7ZZe$Wڼ4,'^[khIJ<ĺQW=aRӼQ |$@`F>[ 4PT$#֖~ؼ!ϭ30a9JT-|jv| ᯖc諲4a6fpD&Nkn] 'ȉ  ۜO8JhNPUlսGuxyۮ=him}6*mVdϘQt\d;> t0p _?E^(3?8~=RMaBG:#x"T+?Ng|+-S4kI \xl^D$H՘of6#giP>UzN "/l6 w E+ ,ޏJR;'lrz hllz_/d>cA[$ear 8]^sI{gT#hq6 Pn:;mloq 4?A6dw Kak_%I `q`A"L̨p[\0;Npxrn|/W[iI"ՅWop{SI%r \|{6s^ c9̭^:dRoٞ6<})ߨxHT-zCJiYYWzFv@r[ IEӑeû4~gE$ .N˴W||1@c \8Nٰ?5Mvu (^Rvhd h" Vdoo5N2?7 ذV^\*d=NJAAˣP$l W>k7 N{K; YGI`f{U68KMt )")Ǘ!v  |\[ Va<4/T$6I=$ʞAs q .c2fY_VW20[ejŋ:\O& ԒPvr$- ;7X|u)ZN)8OF\07'vǯg $(4o8;U5o(&¤gOR85 ef(nTslͼ7W-03e7^7Ƌ[jOn*}&q@FN9Wb#Jӊu;RO7ds}yL)ϰ"yl~¤c(U#&X̡VZOiT}@;ACo73b,mJ7ɹ FQGZ+KJ7Իu'gP(M-q"1? knFHy\AL!bXOJlѤ m񺳋# Iz_/WnZj}hE>[LJg*JnjAqGZ mMZh NHtzA kyeަ03R!m[z9m>U by9zWF/ xϡ@ ]7Ae1ka=U.ݼ.i)OBBT¬T \M B*L8aߕl&ϟ+yiDXj Z^//pbcqGV>m` kmjwn W3b% ?.IpI3X1WL% ѵqpGt&|XȕrxpP~V5b7GZ=\р{XIFx˴l̅ޖ>aV%j:]iBQGs Z9ہ Q) ehKj2*H%RHX,xFjIzOlt-' ԰z ّniܜj܄c5'8jeAnK0nglڙtq_xETquW\TzNo~&1%&7C+8O$F wJ_`lY9r@"= Kyh⎇"#L;m2j\~3J0" N -[oȩݤ#@ ]}g`7όSxlK WT'\2R\ؓ]6> Ͼ%U/gW`[a4JdBGn5'Vm0攆&w'`)Z< 7!*@tQB8Od0ީ|5AfՒh)f7!D!XCFS[@i:tH vjʆ9AlkedH̏?{K"o6 cB- 5+בJ:|dO[ze\rƳ*ylE+[ UEפ3H·̔YTH>aO {RrH H6~Z|S )|C͆W +ܤ;# ͓1zHB+rI]Zpj$ArOܭ;@/bAʵt~H,:jK4g{曉 |2(ת_BX;(p@I^8ؠ 4Tm@KȤo+U➏A>4yԈn!,"!>ԽC<6Bۆ@$xmvЊ52Pȹ6ͫT {PeB7?^$١}鑔6Z^urt@ZR:*1cwa6TrInt+×BGup} `\ kO5!1 I$Y3abk ik !B!Kli͙?+XqvW{j,(_ϑ>ZpɃ.ޑq 5AKql={ F#`JCBj";j,ŋƠߙmnLX(ۓ1kP «p cL}hڇ LS+HL6)4G^@b?R6m}Ӎƿ~+.qbkIEȰ$MB J%nFT4kZw]fKJO}6ARHfhnв 3<N_+>];¥wjN!:`Y'6g:%0Dµ`d~̂ LM=< ɺbӂj%VJUoN% 4b>|1Y]_kz/疌iيOL)(v{jⲧ"2:Y:i/|(vQKp>(.qKrȜtAљitPz2$`XQU62E3qq/i56+FPT-7BT@,Q+N7ު&3lsZ/˼ztQ0rS$l8Tr'8}v*A2Dt!-!@۪)GMQNjF`ހT#gGͩ`Gk@\YRYɇ3F|ŔWwu O1C1%9,vuFqJйllFC`{Iw 7C'T97zϖ2}^N z;p<݄%0=|JMXjy {- k+fD1|.ߪf2Dhn>7\g gݬx1cg5Ho[-i˾)]\'FzC(6[m1]7Ml ` 3;̚J-t{Ko#).*,u[O76x8V[1?:eo<ȚU4Fd?R)FʦYm7V<&EX(P k1g zoSEj'mj),I ֬_+aeYW . 0ch1 !2,aƽ"O.aȉy*R?aK e5&$drZ=qG<0[~4a5A}~bC}"CD58&jm3a$H=8ua3am9PFGX'qnzK])][ah H;Y0[9]s.Qo?3mJI h3w ̤Gǎ1"B/ɢȎnYDv-Ter:iCܗi؞8#knXe'܈G+wKÜB Y Ef i̿VU^9d-~߮g$}22:^/YqACҠ#)6k($tE;:eID#A?qnh\\]i"+[l$$cG1`@69F; ؅@DL;Xid1}$_:/6'&p6XL(ׁoMY/%m w [Vxww:Yn[F\D[͟^&.4ӽ:cnE44&exz);5.J߈MSqtfx8:X .} 4㖶#dqmpgO=}>.E+ fS>z(IچCJ\84ȏtAJlG̩j\2jZUKޔ bx(܄.b?3NSPPAlR֭WϷ@k0|!;[%.p6&VtV$x 1[w c!~v&{~@`6roiK=A&E5lqUF$j޿9Fe1_#j!!a U?kV?V\㕴GiS4Vҳ,|WtG{:(hoV~r뀹L&3#u& ):juЕoS, L`z$}K moU@m|xC;`~P3"30^H"Lh\޸Ԫ]Lw `9RbOxɄE2F: tpT ^dw&~Z )Yv!W ϙ 1EJ"+ê^çH5ƸM`;Aҗ$O"Qߴ?CҹJnvy>|ZA-aA-1( xhJEFRP$;+),3`KM Ը+t|6[H=},qk. m1?}hesAz[yFd,-v"/X<6Mn+;]PV}12YaDB;iwUn5Oe[s)^pm5>/ Pe=[}Qbx'~\bWÿj,W$zL 1rvom 𯿤huo`Xʝ\D6@U÷(Zsq4+^8=5Ă("ʲ&=ӟ(q/csV#y:X+5JZe.Đ\ 5Cn 1싚vѣ&"5z%έ: צ.- 6oɳ= $)>`;t@nz2}׍$|C͉ZxTS^A#H^T #[kȓmt*ؾY>b Az~5 W%Ͷ?5)f2|9?/#$NkC0ud+ĉ[um "u#.H-޶PL ފ<y]+ $Yo~3~uퟦfȸc/0 WKr~1_(onKFXB<|Jh˵"M>DVRnA3+8 D-d-JQR[kX#vFnq1,[ڿ!qaF(=׋ިE̒܌!,yQ-<^2JW=?yY(lnQko e 5O.nJz}`1 D? ʜ'ɦ|$5޺Gy:㈾W4Wn;VJnӤʇJ~; fӽMqLlftIOᗚIv vNi `,S@BDAdѽr  Z^ċ[+&av%qZ alP[w|9_Vsd*9v3OVUDZr:v,*}HzxwK*D71EGm@Vq9ת/`ed T&3[l#@.S˻Jg/L\P8AϝU~tz"ub$㣲id"WIW7ɁB_cg,24/-10ukڑO` {{ڧ_9B/ܪ}ff+K&%44-G#RƳVTeèү> 1PDKo*;Z~} >bwQôEElLߨ&;,tdx{kY 6M:Idi C= 8P` /A_ FGNS+CG /sN$v~jvIy^?")&h hz HRGxUb4VyF,}ƝgهpPd%OHF Z|OD$z肍*ĆPwdЅ5Br7`1匤 *LQ2Ip]ɛg$)ZDo"bbXʛ$]gi"]vU86-G] _l#7˱SPZHbJ\N$Lݒ/MAG2o?YILdYH!EϸN䎨<%a/ڱ.;tHG+ 7FGa4, ցb8w3պ^qXd|f>N7z=ץ\,xb\jyfnӻ_n.&o";$,s7-&2] &XOi0ߐMr7C\Vv`P$V!wZ')~2PK 4Jm Db.K ) -č抒"ʭZt 1 V\T ]c2tCE[xG\ף .~󮡺&x~ZHZ ,6~{,n12lsnj;4ۉ̓a|30S:j}m+<(p[|F,H`SL"aknd#˞ȂÞ AWaQǯ@W !IRc ]gUӚ~8"`^w_wgعq;У V2t BE_k`}.JHG. .򢆓-m1TImQ[8v‹~Y^ lE(ܦ퍩d{?։̞5@ 'Jx/A6dx|S{<FHIxꕏb6H_6?]4&ph<qcfou9by) glMӄո= ;r>~4vTl5s.ʫŲYo]Y#'5>*Ew:wWݢ!$ RJov{p:Qg[7VCX?87c-A |ȨOATd,@4q<3ntq^09"zuK0޼e>LV t&=D4ZXq Q=>j6.AW /GO#Rs9&VƌFtQ̮]k-y#R%-Hrtoba-W(7x)*y]ʵ{7u-9+zIct% \MzpA@ˀLN0#Bslulnf\?.ʂȎ+J:{l\L"j3rqPg+66'[E {6e5tE/4L_9xmߥ/drW/ 7gg(4qk)+I=B}Z\ysԈ@HOYև'SQl9¾Ԗ`xrZhh[XA[DHKpޯžȁlF.Kh=h=]tc)Wx鐛1y?W\'_ ]ʷΕz|Φjn$v&$>3GTh>C짧e>W$s1E<~A2W}*<9\9kDznj)wy0Ћ7F\\B_*وO$jiy FTc})Ȝؑٗ#0R25j*lKv9珋EƚSsƄE $k~ֵ"@=;'Mg{c*z%>%3TL_`IlK]RfB*Y dDBX˻A,dM4G͸^XOry}D`9H7ZCЖ5Xr ӕZ3i%%eV, h!gJ(} 'JY,~R -o/0o"ͺFhBhl'rJ{oŰcv=i@@Z^.ɢiژ'/9X GiK';z$9\#JOMFQg""RGs> J@oľTM-bCD:Ţ |/FS՞ n ǖg\@MaBxua3D3"T Bo?RࣃI98\N>?|i,)u?xR5\WT1 u["UCL[U ,Maw#}=8@ڎlW@fo"7;?L[B# &]Z$Ӿk$MO̓q0,yc渷2u;Erhw#gmw{ktv3"i.f,0=׎2_* xwCx -"(YZI``7YN5}B~֠!xX_:k?/HpW 4}OXb]&C{B|YSq#ߢs ,p2K? Y ЫJg o;jiE+BG?rч}hlm ʚ}}6ίk#E+mPSsٷ/ -ǻ2KD \tdQUtqW1L#EO)Ai(5As shem>x$``Hh;Y-%.9)mxX\"t؞ͳ^#,}`(3']/#=N񾽲CIVC}U=B_0d:2i9듰V411NkH2<VzG@lMڗ܂SE7tN@M;^_$lCwCsӽAQi>ڰ,2Beud1saTbƌCſ4w*| 2?  %0H/w_s+F,(;5 IK5sj|~'&QƓųOo{ߡGR?L{X.@6N.S&r_ E?&γh뻒[.ࡃ3"u}a[{zT<"^wI%ul|FԹ66) B${}g5)z |;Tpgi޿&1MhiyMW[5>4PQz$ÔfJ4>9eh76LjI\~sQ 8Ġ ]GMHan8'S# @z!xҟ.O1$Ҫd% ' cBO"U z%R"g%X]B:vhwxA4C(>tC_|+ wT1]pC8H9"JL!6J(m3IKt1ݯx)F#a\ VXxW$m@Al;int^znxh*i ɀ=*$ε}#IPAlrHx(T_Ԉk1LIP-GX G<6@2cAzѨ$5O+9HX3`wF/ Z2Ĭ{,i54ƍi<4>(~EIۇGpxW%v}P m %h%UƞNHes kcwANe"aמ(Yx{U0C#;-;UqY}bv(M!*ڪ Y1ZNU^ (W^>}: >}fj0rJ'lvtkE\X4/0BǫB%Iƾ C Q 9c<'$o/<ږݙ'Qo̬Pj0p}*SRU_{Aߤ'ɑ;Ex;5S` L4Un'Oo˓t-4mŹٜLhα8E .6右Is.ŚrLZ0}unr:"F愷R42Γ;VMW:q _Cu>JMOx}zԝx 3+\ߓ$cpԇ3X yFkנtTQ^@3pTwϚIIc0 \(2C\U) Q`k ғ!gsoXܞXc1pо.UwgŘr[ޮ> Tυu_wyß;kռqfzE|IA_B§krjw}I8}Axdj<)EK9RQyCyHl\ ទ;t\[㞩 kBsbEΜzN(L6+|ܾҙ$֡aO&KFT"4h'V6޵j'u;RltNqr]y-+SޣĞ8__=0@W2*i ,VgĴx gL̨hۆAH6M < ;M_ҋ'cH,Xx)窴rԘ5_^9QExM!N](n7#uI7yY*1DJ(uvhB?5"o;'u_F!d?8:o~'\TL6dpіh>|4dd'.Kűn^d|ab)DG43v{fǦ@al Ska;^ƾ {#4J-*iO9UﭡI>1IAPĢ@:+FpQ%(&=+QȐ /DHrG*ԥ/!]SIOg_f+(ͅ_nHzgORZˍ{~>u@͒8:}Ӌ*J꫟Oq%JRV7_?ߗMdAvēcSp7Zq IVD%@ɾ +yx%p FEoc=|qުlR}xnm~7WoS!'Xlʇr3"HFZqgԜA۽[uoia:Jo# ;)rc.+G27bx7.#?J.(#,Kc*~0<}2tJFlN)/C]P DvÍA" ;ITX=ʛoao[bmn1g@1b!~RzZ+ jF(U^ӽQ'+ `2e5\Հ-"MSy?üc8 ^W-9*GN/*u <7Spɸpb2+nJ?;i 80߿տ 5 n+nX! `V%챱/Mf1BL;>k{q\ 8AW*nZϫiˎg{AQ̟Si!.?*|ȡF(Q`<-c}J*1D_ ? 8{ʛQ9S\[?ђtcHq׊C`a(FZ 2/,5 Փ7;M벾 R&~==뀊IiiۘkP~\jezP3n1W\HzV!4%u'~{t d H)bђus||R~|qOu*/ަN[9^$H̻n(~J />@[C^Z9cSZyn$fc G ( /"wQE9r2R1xgQ`XUUٳ[ FD3^뿕]͊#%єN(L/T JQzma=I-bCǎX*7k䪋shcR4S&Bx|U &F[QÓGѥbvr &6c!ܳf[x3 tɔ3SG6icD3(08nQ 2]>eMN!^ "Oj W7Ұ=*5{ۺUqbUXBtc7sl'S @=qs W#kVn_ֽ;**ہ-ܧ654&9y߻\CcPPH7'Zir#n<"?=KKJ~]no \)vBWDN Pg{]7ḧGқ Sάv }K6it -erRGO5ompvtuqB4Nнf*[=SgqY\y ~k]Œf3+E>90l|饩΂B¨ܡ/9ڛg“%`A IE9muSvF3=wL-BX f~2׏\OY" /ցX_JXxziW9Ah/C3h06h)o [jZw>14m47Y$Z7břW“ubRk}9]F6?!5Y_G1>b @M/IjsKnw(mVB"܇B/W f|w}u'J BI C)䕽"cQ#7u i0S׶?M&&ͳe;-Yr#wo| fʢib&W^9ϞXgi@l_W9ÒD^}r}HO{ h cy)<\rq꺯3ck-x 9kmЮ{ȷsDgy '(zC9gjqU&PjiTkF!텫#=m<u!(/im#&a2I,|j떱M0FXg{.g3 p h< W`Dd3Y}R*3ܰ פ`Cw?KQd8E'kt$ωf26x>6񲱕f񟼕̞96f EڟpPhY:mo{pjVM^p/(KHqU HggqZ:Lxt~NHqSM]_:+8Q?%}h^;@ipa-čeH;A'+ؗ+&{NN h^6Y%խ 4 )Iͦ6د 8&II Ev0Pq~B_ t?+ N{eat].K$ÞH/.r2~A08BLՔ21.MmܒU$7l`N;ǐ y*&3&R )S/Ssli dnH#oOSڵOD WżH5-o$؛Ws{iXHzF{4O {_ݺ #"N|{gCB"e ˍSx(%ZH# MkކҾ]" YDnqZ`_Kȿm!n y* [?qt"޴JoEjJR`#=hG>HF ύ3sV.lWo (B!\Q(*BhCT͝ >_؉'@Y#\XH>koyF(uhnbFH≁w#vƂ;Oj%QX# NgYzvC詺1 N^z-)*6@,@,x"P/mB^2͍}$^VQV|컮ڇ5+$ ׻Xa#BٿZ#4qbىG3VuR!`ZNn$IáYgefM @s=or 8um/@z2w*Xz4M=ϖ8bZv, XIPNQsXq[=c1^c|MpM EN;QJ\BOGx/\M8WO_-2:@K P˷Ee_JXYW6tD͑WHJ9f謃DME_z9IXz@'4uR& j(vg2McB i0.sIVU*ﬥdSֽj{sS]ȱoprL^HG^]*2;PyR.gVE"9BeD\W҄L乼p˦8)Hb xP4*oQqjts .yT0l\5[PB3?pZP>6=D"߆3Qʔ_xlQ#mi>7-bZ=cT*d%wQ B0cS3|Cwf P:M÷wj(benZo?E o$jLpgUK@w q'q#pP',5ocIu WNX(.3-?e;TFlvNL &6FLtd{ۗ.ue+1/h%iQLt޿ʪJϋPoJ*E'b״sv `8h}ǝcBIL&Y:Cbd:t/}75ƣdʟcYX "2ْܳ*j$zZ% ƄIgXMMIedҫQϯZo "#;?gދi_M{DW UPPc<цgfg[U>5N>CoPWLoO &/I€X!,󈃳WDɪ\2?r* f:wTe5ngxr 4j.d=m!?LӴW@Õ,!H&swqK̑KЋZpaⳡF,+ WY/ u?+ Q+wmkŬ ,w|95cnށ]cCcc=&ꨋ. 5_v;?8&,ေ5*0& ց؜%Ί |8}fD:ۥa4Z N 驏R 0 @2o$$%RZUITfweo Uak^ާ~kJP8/*R]9A4(?a(Q?y1wέB_>F޽@jjkmȅwAkhm@"z!*CSqᴘA 1" ; |'&GBLG:u}ErꠣwߣuY5q2njqc 3Fg6# ;}ثf_Ǽq/3)i@-}]KS !9mn$}`T k߫bEDvWJԘEZ"QA 0DZߟ00"p95\[νi-l7HdOw;JZ5d-K%]YK1^FeϞ8d穱0E9q;ㆍÜ^[TԤYY*S 5{(Y%DZK'WkGv\siknPۇCS@15Q39*VPal#j(.}~`GDAXL+j=5nᯘuIY#Wko^Lʡ9fD< \VF r-lY~sPLf3Aof}sl2O'^޹Pf{e 2yW&G%k[,'t b$ZlbQ+/8}Fbߖ_-L? SETaZ!Tn] ^9IB2IfR2.H63`܀rk sv]n<l%q{C!$q^ efj ‹`=9Gv̈́ {Zճ-DdE[D_?n]SKÂp $޼4xa,Śyy T!Xq f:3~eM;b%P?P '={Z_m A*DVBѾ| {RhqsD^('< .YEܓDE);gh6eNTTF }48IZo,U|듾 1O5]JuZ.Ki53 ] هwU|e.jtpvZLa[w9Ʊ|PD`b.rܚE=..:*5N~d$B܂:y+ZM'WA=~z( nSXZ^idsϺ4]Z#˻jw<Ͽ%BW=S bCd"' /?_aΰ) 0"t˦ ]kBQ7|`ĕb9i@lp/;&@qShSĶo:CuQblrAׂpՏ[f33ZysDg'ކbOUL0NQk7l9ʙ^-e%![OA[;yh8|sa^*fJa9fA&>aT)~YY]jP`LIJ6װ./K$ͤFj-#%. +f.mL4 $P͹@b$-˺0B5"Rɴy-ǶNl'՟JӁͷК,*M>\j1|Ȁ| t[FhEjBN&"E=$))>vBt.pgV^8|bޔkRs)4r)1,$9a)T ZGi16TmwDrr4>C^^Dt{rE2۵)A8³1]=,Go_Y穤Pc;CJӜ=N.V/kŭA$*u׃T`4Z D,hdYZ[]@| +N/gDC0A'vdNtE T;Y(FsY94܋ | >y>L8|ݞWh[{x\E(39»^fRz#hrl3HGv23>{1{w {Nm{IJkv/-DJԩaRgň`^;^ahT0䂎2z1q#p[I&ۅ݁87m*ʄwBV gN>]sFKUÿm ,]zfQSa}Pq Ί=ϋQVk5x$C>F9~[@DK`*?TN& 4%GQʈR42<{3UrnY ;>5G5Ky#L}nn1PFU޵.*YN]BnQ8&Ee ArWJܱ\Bk$ p߆w8guV;Cɬ1T;C͔65_QrMP ʐ!\$Lɗ\D'ū82r60H&z)jd~Q%ʚ Z;UIB7'oI3*<"M|*dT<061߉zoLԀӲs|Fjl&q 0RBJV',\0o|PyDmoͽJB?f?}ue#X|5:Q2'#lZ| ʈ%ոERmmתg\rFKWJu_z]6w|m1?a˟1@R/f#PD.v@ 兞_heX 4(?>'[5cqdrk*Q;r&8Cՙ^NI~$7w0nfY^;/@{3IU?i+. iz;, =@x6jtҵ Zchb`''TW(0hHLyw_֒?qE}ӦNqD09S0/&GxOH2l~N|E$EH1]Zy}?"뼯&ۃR\,MjdMbHmo㮼݀U; G'C:|AZt''ɑI1Cރ[^wF ^>*M͸O* 7ߡGփ'lGխ~R.pE2w놎Wgo@dFYu\ Vr˺1|XX!De8 yO>GˈyvG~0%M6e!(2:T}V\ĵ"]2lP4sptPVؚp]Vih,g;Ka d]( ȣ(4YHF 䀂݃u *+&MWj kbli!czE/2]\n:4 JR̲6Ĉ}.*JNRv}Ƃӯn%,AQ.@+WM LĖzԝZOB s-ﮝ6+[_@\G;'@J-Յذ~7x8i 胻p byleM֎]h+-D 2 32h6:Hq=+EVHoXzz"Kвn##-`j.).Ղ*փt"6-V` aQJNgqAr6bA3Mt(}BUE.{Rp[fXg* `5CM h9LM0$R`Z=;]..GOT}L̀kNظ'۔0xsJx!`?'u ~ sV<~m=Nl c+ ,k xz)7 ۊM[8 ֫Fac@LF9OעI1˨AfQg%϶uʇI5=]XJqF@.%.w>%\5?"Ϟ]7;Tt#%:$M%`䫚FD!=Lӵ5vdw-Nծ#ZҏJo2q*FdY{NXnƂiT8t,"kxzDׁ`1s]_BߌH p`-^ 2)˯RpըT aOԺ-D@#='Zb{$QP,BZ]GrGڏmטzր1Wb)Gݱ†Mձ3btU(>oӋnԑWŪ5K2f x cs;h[;ɠ GHqnAfqcr )oϜ-*='͜ h9HhUT jN7^n ,p>;n)(9aHYzM2&8hBSij@=):iEuq$UsWYO%jm5¯C:CӎNs C +ŢNN:JuLe8B;,ӆ"~˵7L8gt4_kI$=*}` BZͨz"!( SG#R5,@&c/tQ!ߘ酈I[᦭+ߟxE>TmF>E_Z;Chˢ7Ŕ/_",9I8bFy3TkpfMs%sO_sm믬=Q>,,ǝL.BE߱`R.?\J D@C'Z~DO3NIy t~$nC /΃Uc;4sweݲbshEc#OsI5~NϰV*]x=78# u+ -WL,php"'yp=/?%RuԜRNx^/m/eč)(bbC {,/k  jނ7-B]rǪWR?O2W#&%vۗzQا9}SM5 зDhXC`(Ф1ڱT6H{tɯl:EmS_2P ]bRqp];wsL%?4Y?j?2wʋ}w=቎:0OG\JwDp´ ;MMx;3W͗1 U1v'B +0= 3,}Ŵt2u|4zEjsGP{'&/@_ >GJrAB.<}2=b%zXF[ hINF'Fʔ^,Pgl NN'QD*62eC:ZasM?J+1 MOD úZ ,*{2]_2W1` WQ]̿Z͜CN#F)t;8킘I _ )q,l/z^Sq3c7$ȬOW:~'Ո+&9A3! /!mCDdڤR{0 ʄ,lK1zB"f.#z1_GO!`LX>y ݆9iKJr8KMXl# 6#y1PL(jhR 5+f)b00]Fdowv2^L{ne,,_j|n;ߪN^؜˩ѥ#=\w]~aR^k{؋I {#X ѻDi?e ԯIr(T(%( a6~be4!ۇ|$V7^㽈:`mh 5:9B0%|WLG̚B9GC 2ߊi.nqܝ7 Bz!/^ Ma'"@Y`D|!b| 9P >kz)}J# IJ:R,Il_īL?zWzhfoy頣~J~]9O"Qy$!Ť A{DYL7`+#3=:1zJG5.!GCVXI.~B{`&>'ecR"Fk ?Pxh9[P:h+}ʮޞSO*%q[ A[êrD2 9:hDO- ݇ark$5`aPmhkcfy: RSD b೧ڨ6]aJ@9aBJ[iWWʂ9Ջup4s+ W ̆Sz3O+HLCtpSrƽ!y Aqp3:j=OMRd |} XS9Ĕ2(rH}F:շ{ Z-gӎ ގ3F=e/1>*`.Nd,~1Q4%n"0Zq !Sֶ'k΄)7V [>x(\NM7p -*xnJC ,Z&2 v ]0eσtw JoH&|J)g2nLUq {lg eQ3,JtJS "= H(Vf,}@E "PsJ)>`[H_=|$!y^[lі`CY0_uYr㽌f4]>,!<eSn =&t$> V2V,H@14ie=lmj#I6jyNFV$^倴۴mD O5nέFMB%4P2ιY#'GK$>38p$NEx06nX]$le(=ׁ/ ϙ"έnb^ϙɕZrX}!-JcxFQz4AH\S_&Z+%f6OɠO2q^!0_r|͗# iu[pD9I ]Ep qP~F<66uI)݈*!7 [Bqkz'bθ,{H(+ogc̚EnS~T6ӕ?tsh$ZqDrr-8L6,0}`{ͬ;@ ˣƙ.Ԛuj]P֒p^q.Sr- \sLº,&@~蒉܋)c ',O4)=bC.`J*҉4`5`^ 1}^\ ױ( h'% E2txԗ- Z|dVP1dZ1J Hj=nM*,zڋBt9|7' 1Ż5k;bN;iIDò1/8ԣſl72k1 -jHv~xq;H,RxWeuR.:,lOe|Ъ$ w ds$Zu¹x۠>qݾfdidr|wش7 cRSBQ2R˛sgAwuVi)`xp/NjDp]=U=CJ?,쾓zXoߔSQ+-Jq/åA;Ũ[eӗƦWn)/I'i/G/ !*^kj`69{MQ`7&aWbfQIXF>Ըֲ)Fpq {1HM(.я|P(An9k%u98D@Nk-6/ FUW^I3nUIfEY< I.ZAf3_X tTGv 1xP Q,:beWAhb gMZeGo3OP/65`:!!k]6 13ٞd( kNG'9) 'L0Onk1ahn9*7!A@2OU !k %`SԬlH _ ػ5D~f={G@2S:D$/r;Lo̤@E*0;fT,mIs?NN` 1ܬED ?i<=[i[Fcp6ػژ `fЗrf&w꟠\)!Fe@g{^ * ܑͪR4TiZp }4pZx`hRq=g>RxցŜla ȆoЖQ .>Y^-FzthV>!BGXŒ@2\&p՟)Ρ/P8lډ(cCKV.-'=O5E}*kJ.ZFqOQ+W[eҾ"Q4 bLN 'jSxr?43tۯ %TZw"b.ЙҮds1O+&|KbĒEw(ۛ_H@Ue18ނ-cP9doCЋ0qVռHX.AZ_Z; HՍ+ơ|6S- |m?)|c6ȳ?a~}7ȄJjEI dJ(,8y5–1"ZȘ 7P/yq;VXdM#XryI5^wnIED2XAby>M+#-PGG%fO\jefDtw 3Fz&wᏂ]1*BUl:DNDHbt™dn3VG "8o3(<҈傱~~tOnaUcfrPsnU{`F\~#^ #FcL߽в"koF=];uR8vcq" zձ^UÁwwJ( ";L6=7' ؘQ\zC@az7J$V Tw51T\ O̝1j{LݐjV_!=.\1\8ZMgc1z0j8u_hP-#2޴~idVZq $`URl$6wx?k;8꿷ͦyLT|l^׬)doǂ! ڌ>xK(\W&] <{C+VVN33a&3܄p䍁n%ѩjhtWkm0`j$2 Ҹ_agoZ Z:s!2\H,HٍyT\إ;|%J<K3rKry qt}Mʹy%V 56QC,=Ӭ{[Fَ¹V_T-B5[i<< r$Ȓp~"n0́}IPdEwOD&6T\m$Pݡ;lpdjJwyf)w"fIS=1D [S]si0!H)+#?Cރ` LzS.r97MY*0f"hMJrx_ ZԽ :}YDo*0گ5hY<+R>@8 Aۆw*5ǿ`r@ELf)S2zWn/ӅaEe13pn-. A؅4W~lTg[6Vu}j,^[9m;jZU+MukvI"L ˹I`ĶE0s@e2 >`q!zs]H&Ɲ$URuC/SQqy0$)deXICC& 5oem*RJ9:MT om[)6,+t6-k|י:*JޜR2(C-H.5bmƟt'Oݶ"(En<ڙl=1SE T7 \BW~\Т"*YƦw*nd bzUC b^lKP;EԩǷ;;49 7g"9x[ uW┒GÔ ۽d(@ `CJZ[IQ9+@ʃk,t5Fb%x8y2IQI$7~[R UK.r5w)9}Q͋0W%8%%xjc- džDY{ );t.GWȏqD+'vo.x32yIEYk.jH_iۄ:@t{)?CEӁ#2P$=$s+&Y;Rc0큿+2$B W4(H9% X *2KpH ֬)L< 㱗zKS=KӸBA ܍2dž!k4,j"gh?L >b@̨}^CD ]q>3i>oNOdH6WGyAe]c29뀅IG,e>9(:QW 5gۜN$u}a„$ܒ./Q0TBڂow< 01I^2ab$h5 ݩ++g?yO"FfeѻouٖW3[4nUZ^ޑYl#"|+ӭ03Uf toQ/Ծ0MQj$F]D &rwhjBr18M%BՐ=ԘBbegp2]S(}[L) :k 2 gXwqZ,Zr.i[e]"X;ps`A||̃vBGwd^ȮfxFb>'/SMϩ l{ 4[t=L3~{_ׅr GU 1'ǦՂ~7@; WEzKuDQ_9dHbDXGaEx[mk @\rO|$f{?"pq|P/z 36÷c UE7 'U&R]a݆GRI"q4u X-+ƙzLK;- v@}dzXBeO\u]ÞR'kݝ1vPJm`)dy!Ut > zzeD5+vnLPYb}13T R7 Zڑ:^JB:ԃT9ITDw`1'R3J8Qӽ>]|{':8"ؕ? 5 JR(oS~g"=d 2g|@lruu304o~UQUO ]l{t3;>uDQkMrAk3=pI\Ķ757Tae.EUͮ<`ԤMN1Xf;\d<گPBԧxNؠD '%H\C\65rsY&7>'5խ;4?S`})p!]TK=wvEf˖$VUO }H(g$AGSYo[ٮZe&2iގh$R ͑##9Y;JE(jϞq yUUNmG*`R0;| {3>F휎Msݕ:*y#؉KhZϱF6 .Tf~t$.qE;(Sf)G".ch+sȂvcZD]N17)~6Ԕ8R= bx@ ۍԼYBM 8FجךVeLL WwRZr@J!|Y6tS[nc5hP޲i2i 3W `az dt.Fqut z?nk&Q|s As7:Xɂy6VVA삆3J#uT^,BqKȕ{KDީ8ec"ΜT%I1S1 N2$MFmX#mMQ7|`(:8e1Rcq k_[yЬ0N#̷7|UI\{HZtyJȲP3X`D d,2Vʸؠ0_njy1pGnQ&84(1J 0ޱEoJKD(f1N mf d;w%yWL̑{n ssUt } فǜJ&WxJ0]~A5 -$!.E%H_ё_69xi0'U*[! oKLv)e$7gLnW*0K~)֟)"@DEw6U!HH4t<=/KuIk \:4sl<*>m80 -i6K!& MS[jk o԰ä8mE ?fn}aMľ5y~PW*`L]T5>H)VX8bq9@V_100Vsطp_`0)IQ66vw\/Xm@En4Z>ֱtD"ul2nЁ<㿎֮=+E"Lnrv|se Я{IõgQA0aj݃NRgfvfe*haq/L]NHAN8ڇ%{[PAFrH'kZ0]G jIw,;9 ~*3 xӼF\1I櫊#oRވ㤪̲Y%MaykVf XsnŒX]F>$f !?\E 3~mj J7e@rU v@8cl*$@Dz ĭW T!=VY١[<މ4OD +6L .;Z\+擿=6s8iO[NW ˏˆf14,uL{"$Y9qRdZPw13 *ň̅"Z5ԆjJ9 56S+gL\K\f:[tmQ6_.WX4 /Pӿތ Bp,Xkhi_ι],ź~=kQ] ֿ .$iz}E@k߼лR5-"[\h )w~*=|)o~~<\"'6!ɓN[u@hk@·i^790PO$3= Ev ÁG؜Am;BupS怦wLi5BؕCSZQsAk(V娢?:Hy8o"{n-yE 0pp'֠_ʮdq*3F~.R)Dr*B+R@B:f `Y@b_J$]go1{yMvQ6hlKCWHIwwޖzb89"!tFp/oT&JyI\,0gB+DfΛe@C=LoRiQi^#pSDa ?_'0J,P+VL_"Ș/=`%q!U@\(~Sca'epYZX3cu6\(F5@c0´םrm$AquX z8'5c91~ ;r֮=2I9ؓc=1zR~K 3V j݊;wD X-O&u՗gfS\rBy{zP},1; )0&// *MZD'8BM/ ٷɔS2O. 0Js нIBHV3|e <\gJx˅CeYPݗEؘL[YQ~c5{4# "u jnBX .GiIX\2Gk磠I⃤ykN*@Qvց eBVO|?P iJ>ӷN{E7߮UM&!++.Fy rO@voL][Bkm?ӦE0կ @m$JJ`݃9gT\(/UVe5U#86C5&Jv r1ڢWw?S&o$\E B]S&("6\[Tۓ*>U~kCT]h u}[ۗgm IughLx\u6f2if1(Kmy@c.x}}@ EgZ !ŏcEMuңd\u˅ A1uڈ]/L4ˡ, h89DȧJX"j-@LJJӕ m6VJ}WqV{EEMN*lD9afNI|%/&ChP e崇N",Za 6G5n[56*Hdw ]dO~ mslL:PDOo`G+sɹA1+YץɂUA .sn@d!A+MZ-%;7 ev>0aѼv"e߄zضeR>oڻ< 2@ƞO}&&}[_Qٹozp buǣ7r:f_򈗕t ֬O:y٥y?)dIv 8; 9ϴ6+Z*;CVp-zq i"'-m8`>3l0Td{x;. w7T$6Oʡ<[B?R3e ͽ),ٲBЃA~sh)Z^ GV/eAR<40(b:1.+I1A~r Lg47GpKN};_I,81NT-÷oU2=rGz<JȾRr^8gjk Z3;~sZ;b;VMnݑ_b|k.C+%tGeQ=|tڜo|Y0= Mw4gvh}/kΠN<)J (ܙwvk;wԨo>pRW"R' D>9_E~ z|?L');|ޮ'`]"Wra'чm2ߝd^ODy^ BJGIHkuofS~3rD%P:OttY6B6h3 ]bx[0,{!mAEE^uPv"vBL AqW4"ā1Ifs9 [}6#Y2֤afuN@ɜUx+5,̀WuM[c \;SLy\KDf%/0k$QUr`>^' q)+zj ?`?DhR!(r[8`1]fxN%DPۜ8 ;Ȑ%p#.([N OL)zDƱw*c/._!˛5fO3";{IZ8Uo?u!QքBPWpo&V&9yJѣIF~ YEݦ1MUI#qIA_QyzbȗK5;9ܭYS:wAa*."Kw# a5.M`7J-alP 5y?Lޣ9-fEt|gyCHz zL@꼵kdM{Jr6zF\{ugMPYGV>ጇ)\  3H|;H8NNmܴFBW6{otBҿ-qT4H,dNL#ov4E[%G'hʛ jK1ebny| ߫y4. FJRƿ0;S@yr␀LR䦸˚bF}\j/3.rfۏfMdzύm+3eW_*y05-ŋl)k[@pEV6>R 04"\EG.&ug{8Ab+t^HT(O \qiesY?h4\ITRSX.~tZAh>hI .п7g Sy1?"<<,0*y\ pJБ2gMnW9آ,~E~#Qu/кj[$ i9%)v$N51yj[Bz7>p-K7y?ߔUgyLew["z˨x#_1_7y jA U-,E&9#ĖW sO#d.WiCl|ɷo-)N$tNDvL-}?@J)9tHOPI fP1mSv@1XLQYΒ3&:uJ.e񧦡X7Aomjgg0,ۅ+#f^xt?Ps!rT8TބJnX+}*5Sc.c!]K9OG.p[pE5Yì25iKgGKIʋҗ?Ww({dG䐉s\(@3Rٖ&#vonF&- UaC._q--@0ZX}gYΉ1>ĮOZ yٞS*B&OTH# G;U i;dl{2 FnT0Cw7P:T<ˏĪq6C6񆱌ItylYkؗ-gX踷À Л}3ʄ%O\"$ *Ggrd#T%t h/B{i1roO> cfTo$v)=< cگ rӸ{'SߥUVh:w[aȚ x=`aؽXXi5G[C$X1kolOAC0oZg.ܓNn{[y/c(@XG:Ba ͸9?w /I%N Ph\+m()VNFdƦkt§I玤b7'i+?2Kq6 FkNX)T 2+5j Ą ܲf_+wvn* TE@v!c`D`>zJ'xdTMMTȧ47Ux j R*[&~JX ѐrY'׽DYwwspq2CɒtzcSqΎ/FF6|huRˇ$o{Y|aKb@C# !yZɃ4r>DIrgHfg=\xe.y,BeI"< $'?RQn> h ` Y U?GdLj 'ig/yѯuy7cMU3 ʨ`41uN]*֧DMSqb 9"Xkk&y$"4:\#zn9wCv$,"$q%#1/XwH= mwO\vy(od"T4`D"tX};8\w<Hz󼃧t2Uks28>2(C: w<-ZRV,Sðsx’?;i={$%hU?a6v7\YA{ s!GcxFZ/*12xVXRqЭ<lB'oC0{O{f:f~cznʽܡ b"UFbP:NiP#d]W;txoMzΏ:*A'Xdt^2KeB8O2ִ#R(0Dxϲ-nOXi\0}*YjW1:1,YDUD ۯVwW0`j`I ٫kSwN*,2G)0~acP!|&A册&|8|76ki[\R-@ AQHjE!@NvŰq2 I[V  VKJgeoT+Hjm+Wic9F3236"{\CCѳfcWN* r'!(N&1%b@n!.6pTc1GVlx97]^#d}MQ5$m:+ی2-a)K_+,hy"$<Fra"J\G*ŀ\0.[t5q gh"(D%C\r1eVaL|F\Z)mJ[5[be@ӍB&Cɕg8nfEZp+yڵM"{UȈ]@wrN7Ok'`a҂!e]đ0 Xj3XcaZ2M'Fz@[3~3eihs~ 㲬ߘ|ztʇ yLhmw96GTO_zRF6V|,"-o¿')>rڙ-Ϩ  ~ Ťڮ5e~g7&( )o (ӊH էw_Nڷ@@*!| .d.*:hR0t#L=#z)%ycT5SG5[zB;j$|a\Y*֑٦uӲa]Ol}h<˴wo$Q2*s)?GZUI'4sK5~j?!E{02mj$uC|oR5ROVSN0|J}:9udzYV~ܨ_$+9YM"!D3I[ J z{"^OdȞZ>⛜:3\/WZ D*wlܐ J7s,]Z$8VzX* 7] 6`]xєtE->}@ /ou^-~9}c54AXKb|繰tZj=y 4xXŔ2[DJqbm.16wU"RR.4wya4P;4x&C,0}7cO(;>h>>8{tO?Ι/ܦv{zO[5U*ugo ܕLJ8_ ȡń. wҬܸ`c,i3Vs2:'0Eߎ+EљT_7G#hIXfs|Jfq N2;)ӟ~,wxH㈧亮.c~J@.iw.}%uӵ.'bX q7q6TQOU"uCӠqv7dX3(_؈&OMP3G׍玬he~nX K|ޛZ $s!YS^z=K1u6.Ƽ >*ˀ]̡#{îy"/{a!C1K*]hD9@ĕg&PQcivxR_ =mѪK.#/S.(#ť5zF_W@RS\7.? :S&hkߐo`E*C:.-p,ŲqlŧV척cOKDFa_jU~?M[HrB/ӡd{i@=Pc֯?"1\4qD&N!7 OU;Lt-іXTZV i!Nu& r.i-=>- Z{+A{l)ଅ/jd}ZZGr_[\B{+Dئn_ݩ:D&dAOCayL5+Xjr)" -?b+\iQ` yt[/s-C= ncVJ>s_nP:?BBw,\`3/%|̬q,z5sh3J&gv+WL=ީKύsﶝ4A~ ܰKL `5wjsq믚o! ^6r\ #s U-4`>tH\b?9N8L%$u5baEQ{<'y mp[EVC, $uq44ً-gAc <z.5{ܡjF?̙"3e5x=W͕DغPJ%HZ;͙Go6޹eF2Kw )DV6jeL黤\>1GawѓJ$7i"U8{ɿ6<ӗ,tw 'tEآ?N03F5 HgI9/V.>cr,Տ8qLh:1!e#إljR.`O*# #%j>MgFFAICSEd+mxF\ 7eoTWO7s \i *'i-;R>ǩ8A)H/cJ#I$&, ĶzO O4Wu3L:& [LZqX|TlTRWλlJ͇N p;Dи1+TaC7?^۲ |wjHZ 2{ ?[ aTT 甈a;-ɷIWJx#A#:;w@}VX2[5=ڞYg= is֫}T3ž_hGo-VFjf\sid†F<<0)T9W|nc~A3^H Ew" -}$.!n28ϜQr)ڞ l\q;,;@k]*U'fooY.u)OV@*GӀ͹Ud_ Njް%%QKcɘS4a2?kp\7jH~X:V9&s^`;Cfp Mmm^)|h 3wVE|რdG,zL1>ڌvu(@*~WxȱV,JO۪(GMu*Nq~g i4 C_/Kݺhv _M+\u+lgdO&1KU& D+UGmnyǺ 4i d{q}R|pɩйoe ̶djìToy*{ؔ[PX\uQ<(<"mӔJgd|24l}IA ink=t@ݵyyA'"#2dz^]%,D•]"xJ) @I瀠_G6@2u5n5t򖅾y㬣fJ÷TwV1 -@}Qn$~É#;5?owdFPYV,Ԅ}Rj'9[*7GW }X"[OI;Rjw; 8h']݇Yvsو7Oݖ xsF }=_|AR*ia_m ?2HY°hMCM bTgMÚ¾4fhKqiL=%fM_!FHNiݢT]Nqw_PwA|}G͆x޳J]A B]𼇽B1'%uP_|A mC=1¹HM̚bn~^CC}AjDLcR#W@a谟9O'<zZШȹ1Y?wͥVa8-qxcߓv|`%Cﲛ-MXF"Sy@xآam¢I\ ЏmSή孈52}'rgңW.)+d\AI W ݴ_s}̴r*웹~㝘IDL5i .iKH*Ti[L3l v(NteamR#F&R`PEgr]d];"Jl)~|/ʹO";c*l1- 2ry>SFT稜‰G켡?KvuxWx`>V9p ,,N =n s呵zp_kaـvcVk w W.,&K3.B~H Z|4rCWI}C5+{KBtdeq{ˏHQI۳cI]vܾ@ ,^hm=,P=uU'Fy~өիN6(@n VjbFK7anE %'u)SFAjz#+ b!Uu[FX7:Rb%5W"~Ī/w XAB&Ζs? @bL`}mӈU3TN3 4NL)|8R9~ j6{$ZG; \ mK ~[L+(DhpЦh5;w'VtW@ˣ0F(h( dHٰO9W|Fד 0ծt1o2 :EMpe&Vi6uuXb,bJ1/?v\}9)34yw]+}"8ĉ}nM1|Jػou\V/2͕=hӍnjݖ.0\%+ >[(ʎ$no Xnn#7ն~9$Z0(2 \CJـSuc)#8Ĵ&PO2lK(%,lGT]): R @WG~bAk:.{b mx+ocG-ސ)k‡\١s}[<2wV*=lȤ&fG~{;R}q>zt 9^[06Ϛ$2Z!$>"`(&nN =q~pT쁴~G ?Ա#e ur-֙ ۠u%ci^o䒱  EQ8گBwv= hr k= x^c ,3:|Qv' d֌ħkeҺԳ Moׯڥ^P+1d#0OLLc"*?bxUi7萼BMt>Й0$i88OOm>,H~e.Ml;qZ0[knzNN{\v&:4NiU̠& KҜi_|/J1UlH뛐jw2R{!]nf=$''CYfM{>t,/XWz=bu`/YX:a',ܡ^|.jNkdk.R乜;dP%htb[F8 !~֙HQ@1ző`It q{fh Ib&WwUv%~$j__'_?a?R L!`'``.WMG·t! #ESpª OwxfۛT9vI1~rr |6LmCPj`OL9薵>q5#/NT5j{HC`l JڻK*vU*4#(4\ɓ{9K}< a3*9}e4'6& &" 7Ztl"ʞ l4N`O]>8gRqͮ$Ne5Xj(ԌaGҭɟmrREٝfn *+]}DNI>шtlKȄ9a(Ϯ0Zp9 f8-^Vc@'^/ݼ`TW2K O "l.v.Gs<" or4wK <#_^f92 uA:흅TڂpEU.ݱN:> !tbWo7{mMB]/U}sGqĒ űλΔ6/P~ wi>ʸJ'p]Qw;@Dф Kpg 閴jn0aCS[;}j1Q)#C /)gWoZe>l i-]6h-q%fT{e_%rEJ̠G y.QdA3B#rb=.37@Uۉ-lD$t\("kG,HB|Og _}9|K(%Gje랼WJ]y[, sKQb( SX&bcS_=)qqi,QХ3|2̤sb{ʹ%#0HX1(s^ UaڼDi)%rא DSP_ٴ W< T(h?"/hLp $ SQcVd|JSUl)NVmu#oBLT=:OrVOQ@ۻ׷e>?0 ljzGA } O68rLTH=9Yrܞi 4f 963XL>dv;Z$baeWeT6k@Hn=}D֍eV@uFrMJYL~;wX ni(zMqLQtӐ59z$@/󺢴jg Xl˰(L$Λ'[YK7۪3NEx E2>g/=@Y.\.Ùvg0x YM ɡ+5aD_Q ]V@ŧ-'<]s"0A9-ZlTHl!瘉6/$.&qiWˢmM;!m!׾2)AAkcI8ʓK 6T)VO[|ytqtYr$_=U 5GH藮;HWu-LP.גs5l~p#W"ژ,2py/,ԶMhq%7 Y}7Oӕ 89O!{Xb'ԆxtvdVy JKg3P(' g _$ͩ鄊.e;ֶ_o^id$L +4 hRTȹ/nsn1ntΣzhŝ/2(H'ivIu6֕t_XOf Ԭku4TDˏy.πzת>Fe>@Y=/[J\츱"M<l۬Fo@\X>P &ȫ̚= w !]LJXi/C [Qﮡ,`\f |%ǍdrXfGD)IfOxزQhA(G]ɪ,I&({i }+) 5x@3T|:Cg>OiݫuL7X!}k峉PtRxF# W=I+es ql9C ox!Ι8^w-ꭧWf:=W;-gC+]oSĺ99|0ݓG8Ga6kYVn9ƾXbqi0@ |x"`biu , qFv=|v i  P7 ܸ{!$;Ԭ/= _ķO'0Ct58&;J&B`%FmiRynP X<\5{JXbl&Uu@BQmwu2HɨP+ۚ 1%žJGT}77.mʝ<;ul.(V/0,KQkSMYLNo~sCK"ܣ^T+ǥﺇEiYv4cZ%}6`k`" =|9k".=Αc…\&L14.ya0颽0BYZ;?kKP;uсv8 /ɐʘy"9'K6m] mFk叢zDb~m ; ہհ=Z̻mRgi r=eXQVRYUcU ik JjFYC=^?^[rL0sW%T,TYs|Y&I*Ե! A W}2[x"6Mx$1Xqa0\cBh7֙x0$ Uݣ54[ q>nfc&:=2q 졸R]RLC(vgtMiԒTi'e8s U:JbuHVTS& #;rzBڮXKK/GOG1%!gj@ƋK/;{8nQNqw3{:@O .@.3ll^MJ?W=.A;|j6и'bD-4ߓI]ZA hOeSm(RQfΔH<bM}Oֲ%uw[6&y%$`syZ!V8,-W6+юѯlQ7 {_1MHϏQ&.yJYKpf/D uFIP%_s#4ym;mcz*Ap{:qFKdGvx62Snj~בzCsYTp ڇ[P7Zf, n"Qr تPnC!5QӦNS=bk't]&)^&3׀U %\nDK8eH~ ؓi@ɜ%W-ȌМOfh~! 9=F\H9bawįr@) ;'+LL]C {"=? oJxBC 4.qJ6a>:&ndN' H첒H 3@UQ`])b!*qF/ ٢bi N-$7v~)CWKܔu@d7'CWSZQ#`'c"̮ ~L-nPrpL[ в$7)Ufp$F]z:.Us;d㘩\d; KR rjW. Ǖбdm#I5_kNb×mE/07n,>t-ubR)k8&EY}1]dOg"M gDLahpI \4B\]:"r#D=Ũ| ,|#(n&a>Yⲋa e>>) Y\d{^lZ8I:y?v e*y܌Z8 7ydL|ǜˤ2ڳjh: <].= 8ʑUI>?8i'<=KŠܞ6{^P{kl xT푡O:p6V~˪bWZ4^D^J9Z+g_x)uYv 1i7cv?q|@AR m wvõr>]g 4YHqVtb"dn)#m(9"=>&o㾴DgC7MP?,ecpI5`BcTܘh˷FV!j~SXDa:;‘ D9gφRn<%f/'3)O:‹GT [# j`杖 ]iԜ63Lzx3] Ր#CĘWXZeDŜ&&E=@QstJx8)O +sivNl4cAi^jr|q!Ź4O8+$J f=.@uJ헊R96@1Q!Y7I}tI;)Cn >8 j[JWeV~`NϨX}1,@vIiIO& `bhz}>C8<ϰOiM#h0ꑁi!QR;m]c㱥sHM$1> 7O37[7Dڋo rLR4h3<[eufl1"+P7v=xZ:ݤٯaD;7zRaZ|a3iU +Ov2St8:!X&\Ɍ.Zj '?*F: SgL̔>JN>ůiw-;=/S=,@*:\v.7i/⧉awgR*[^'[P5]Ps<(dWiO>jL'֧Q\v7rO7hfH@]vy&43[([~cٖTZ!rRf{%t4j<{!DO0= !?OT6|oMwy똭^1Z?R$v] MTJhbǢ !a+&sQq؞Nfœgd-[rc} O鬅`O%p 睘/TLA1!!\:M '?VY*ѥ\\3N^qO;FYAl/Zb o⭚B_1%w);,H @S7ͷכr;~ߨхCmm|&y҄!MY40yk#:a5Ury3ኞ[ 7W1kBs4_ da>݉W1G֑5|C6ع!s'1~ [jDLԧ[ܤ0Fw_ZpTfL44%5ڟuXZnk߁rh}o>OCB6|Wnf)(#ݛL֘=H[W=MZ6= *U bswJ!R) }UUSn_-fBUW]%+S.MIe=Ҁ.v/X;I50w:ˏeNFnkvqG2l\x=gxD2&MPW9@e=xbVo! lr zS1egb)52K$ yv3xN-/f }i(qW7ת1f)2ӫ<裡(9qoF}p]?Ppvk.NN 37RO ^2xLT$])WLݴ'n?pㆫlbQ/ӈ D "Q&QrMH-^YkC>f@*&XWl~/0 ސr?bj Ҩ/7WUe4m| * (t"-|2ft͘7k9DJlf ͟$[(F& [/j 9+Σjtqo\ *?ۆ=z͉G jbcd6zN}KJfj 06$ŧM"?Z̆I2k`:,w>ɗHr3#e/@f^Pk9zOTzVfM7< SB-GnnJ&3d̤-3;eM؜:bA`Ң;>/ <-e/R)~C*鲼QPA\R4أ½o* /lՏ7רAX1V}ݞSmO!ɺ"a?]JeKpAUǔRn%%jnΫEr-gQ2jVhO?QQ9eld ZIݯ9;ma80$LL۬ H =ʖj+_R5Nū1˂jMa."QIhȊvj`qQ#o9U>(`վ>VxE}"6XVrR7Db=g3owږIɛ_P#'Ͳ`ڦwTb:]3"j]0PEnI)zPZ^))Ie돯W.JLJ9u6ѽ&l7 HH?u}AS@c3R[X}eߎ-"q(GNPԍ ՟(UѺcR)poo\T: R58O늢̈́S'D SSݹE}Q.ą9C1+RX=@0o8^d"֌i̎:r%\ ~՝g PJ}Z4$kC=.Ŗ-$'#)<㝘JƧ[+E}NTVw (9"kg83f\V(Ndb*:H uF:"Oն(3&F+dWJsdy< dp{D+{!R g먊rU|Zra˃|*h{u+cB55t\Lx1>\ѻԚa*vkf> SB_J}0aW<_>mT,zrnH"* ~2G9~3 F0? P`2íTFrJ"T>;1wQ=s]e=G=](sV \.HL@>tE[_:oaskd>kG`F~%ǩ$vQ >,W*U2/Zk`V#BGٹZaNIӵ"8oOВ6N%7. b!4J#AϫeRbݪ%' "k{? 5OPfi[īBəR#DEӊm+ͪKN0uR:sK-mF[4@]0@B报>1mE?{PC8xMOw{H9ie7&5hso&ٜ9P|;c9զJKF}x r`S>O 8KVt*Z+D c+}e\;v.~Hӕ2qO?y!H"Y /CX>,1GҢ akQq/%;D%m7|ذTIMVaLJ.ֱUzaW1 F!wO4K*`OR`~إy2$`D{LvdczhA5 G<5ߘ\{D7 cILJ P ʀސ Ct{0ᅱZC9Eoskq&2 Cʛf7EN!ZPQ8ƣ5jH)&*%}`eg~7AwiO̥ሔL# Q\f0RhbxS9tIpR3Š+y?:hKNxkOi!\s(I2e{E,īSm8ً+k3'C(ه@PsQaCQ]dy:;O3Zz8"<2=С7?_ˠOqCx/5r/+V%J{YaJ+#+#"%yV C?,"LF;`[XA$ ՗o֏,pKR&-BFfp_kNAnaػO[FzfxRJ &jDko2DEoktj{+AF C^H\=^hk;+/tE*=Y@Fmŷ&wk"W&E>rj^[PC4uD$6Pg~e![j}*3A~NOŎqA[i49=[ 1|m%ɬoEi) FWxSэӢ1.N;( " r'yV^Ri+ao;pK z=KXĉtB G u$j_wl~ NRnABgЦ^@YEIdhI`>c!MledkaoparpJLih5n:xn Ãс\DA[MشXi6 +7\䊸pbN*bPژvdE/ 47Η^r%q-oBHfUD2iɌ5\O(tfKzly}D.iM͚4sH;5 Jk9(B7=F\SZE|vtHTyo(8Ru꠺dZJ)5Bz / zR4cwRPKsbN 6t5zq҇Cy1$FBKcܦ0oF`DDu3aҋ|6BW_VdR| `:FAz$]`27Hv=&J\Rqoun9 K) ƺbʠVmjĽejP(9NQ_ocg c Y2=7y/FU8|nlkiD3^t_ czT]Ϭ,ʬ{Riov.: nȶQE|s[<>x)`IŌK!40 s3btU9/hoij|VMOŸX [luTpP&IM` jԲMdEoV>7 ef͑8nۨ蠚ܦy5c6"5M7 aUEqS*VMƒ1ws 8= qoa*'Wbq_{.5 2<2W @l&f:(~2c)(Sp.?^V@ aZTmJxł[O Vy AWBq5) `uW*ȥ4G=JS_GY`MV!WeYBs"6Tpw*](=iayt7ӎZC9{aoz2XAB@7rѫw9B; w+hcȆl6?$n0{`w$Ί\H ߦKqx՜kHYEx;epOWӔFU8c'a^#M c,G&LH”EC@G= MRঢ k6"S{]bM s%8ga4mZe`VczgEOs2YV}*JUQ~dk32]SwhYys$ܘYްQ5xl 'EM(lNB/>Fڍ8hjEmq*=zGas;bNXBTYyta\PR zKIkEL9밄~TPaAnCo2"oMU- ͑k@ذd>̇civF~ܩ0_C!cUohZUX3io zN:x˦\UI Dl-`2,m)nףbF @v[e}O]V͜%x80޴ÇHg`+ ȋUnI B "RJ[.`̲<778Jxv& c|l&Lؗc8|7Z}œ6:7I鈼`om\p  C}0R6$&T9#O_m0%{U?(h+5Йft!W7/?'KT?ֶqS#\Gx(nrGR9|z78:Q31ܖ2r1!u̠*g-G`kO}) BߝP  .[$Է6d*̦Gh%t+ߠ{2пYdQ<1\2ux؀@/6(ȟ":QlX+ Q@{ٻQV9*@@.sWl`(څiCt8!3P%Qm1-*xVOUK(Pp06%p9_Sbozh~-e#- ekkYj˓O@\krVs  ;:PEfeϺ?w|6~;%!koƫ1$v @b 37 j3nA/aiU*Wn@vR4rvPvdd 3,dRM8WcE\m (Ƽh[pw&]@;ҿ{fU"/4Ԏl ̄Bcna(XLF•I9w *54.ĵ3Y,(:cb5sF;4 &RZvhxqxar#uD2F?'Ts$wn¼0=yGSHU]IrX%'n v7\ނ>d]9i3bӖÍCNsjN86z#gDJa.a1\ey#Y.;ʅfU3\Z " N:r[H_:o HwMnXQ,+>wC/o.nȀU (h"4s5iR3H Y͈i"䆒>˩i6BCw $fb_ܠ*#ټ(+qݭWhz&:BSm3O'Jw0^v؂rYWQ@>I³p5d!c-ӰcqsԈpykM?՞8 Wxp,H\1wzJkLW6;į)Ԝ˼Z!pö6ӭTt66v(h5EҋHk΋dGo >Kvyӧ Y$a _# MkN}*txhh=~Hy۸.IfdCB;^^d"g_UfAIaXdMue`bnxz?bVQs>3I*'fP@M'-LZC#]M-lN)TGM5[ħ?&M^Ek 80މ֪3{ԅ+jJ@ߞga˜{pl*y ^XRp8SKG],H. uܛ*7dJLV'2twm3&5mw+*z|E07 Ǔumi:Ex}ZM!}F gACGPhL;o5RSМN^H{~|?Őeˎ s/3r ,ʹ"g{f}ovK)C΅l[p&[ VHc.XfS* iFs2 ${p lY6kz&s!Fü~t.l~7+fV ĜZ'կaJQɏe_<>e^q?C B (ҕCc8u:4G(`!CO\eQ2D@DEZ)U鮅Z6g(b_r:x:yf>Tꤠfgb6AsْQ rw{>IG=kK[7eCl_(0/6][9xLN{VUKBDNMgߧ.ܻ, (4i ǺgYLk푫ȸ")h {u~F=V\ֽ(A8L MU>$ֻpIJE7@L.r7onkųhE9FY@Q؁XbmFU0e ZO;ɪ8x<@R&H) o3l_إ"VWD;:+鋘"zE;vv>Цf&>Tm,+W*^-*Ŕ"k1AElX|ק_P(A=;^H(l8eTd6\o 2e˾i'⏺m[ )I.eHFDGX6NQ1d)9(7ԇжNy~ A ɼ#n ٿ1FxwwjGE^9IgR^}`7\eqЀz-_mϜiyYQ 52G#+y4@qU$kyՂ4"Md},W. N6" 4ht(?YަٳK(`it,"4a,kfZ=z"#Ӱdkb[8/_a|ԚH:}o|ՅVqpt}lϰ:}ye v#[& {^"egU6CE<(@AU6fP&b$Ċʬ|P@oq2 W0dkvByz[/1g@']- WB!F̂{h8 ~nI~jp'U֍V-:R`XZ,ʏTTGonf5e+}ޛPNMz}ݔV%0F1TyƩPptFZ$q(Yk?@CebPK΢CC| )N@$}P%eNEc,)G { q7t[w#X!uꌠ<Ed^[Tԓ) YʸɀѭAA6o%sD(=y!jI!]-&spmkguvIH,RQKfAb GbU,(?el 縸-5J>[~46orj%XMMЧ} jE\C ȧe\9Ճ 8t•8mEˋkW܀p^az\k:;v'2< ޻`{ۆM*  =l5DE3<@Ͽ|1ePF4"}ɪӬq"!tF!#fj )~~[19s&oKͣX vq\,CTGESrD(̧Ѥjl:x V+XivFuazсsN⳷5ʍu_% ,pV&,7S%tk-!Yh ESKxEFtDrg}MB gWTREO{N0D@0r+pw|4ĖGЄGth3ڿI&:,_RQ]kA G%KW% Rዃth:)Jo=`|M.{;N fa D |&s>}Zf@4 ~;zn7fR˾GBJ+o1Y&7WHk_W䳶thiP+I?^&˻hŞy(k©Szrho;&x`&.t(ׂex(,7U۪X71=.j(0^߆f;@fYsy6ab(.Ql@6Dž\F$`݄[IzSԢ"\lRퟚ5bz&ۡNXL瑆PvYXpGg4i/["nz:1Uōʍ\e,'\'_Irp$: ?AO c0g{,Ҁ؏!-i$1-Jq8hV,^FG*FNɺm&%B>)8bj[Bb_amO*߳(gGonѰQ 0.UwVH}b#p]|ӧr'N Mjj*Of@(Ėg،qy:552 g[[s+ugRIOzpsA~:b61! SOuS 3 #c_:e#q/ ,i7\3~9R繷F)ǥ(2X"zda&Y~bisVzfs\~'JbxR\&FYaՂֲV4`ppPK!v[/vPg-,D<:I/j'n^/vb3;y6on S#oi3~vv?ɵG,jdJ vFWG_y-Ҳ;W$ pI|ةXzC{w'TB)RguUݎG )I΃ɣZR%Q) j5=Sy,hmMƢ9;RC{n낈֛0g<^#RK}zdPv|mK3[EL%&nE7i/nFh;KpWr49nK/<+=zGe x`<(#!FMW~^@^u8xtI^mEGQ5.c~Ǜ=#(Ggf+Z00Dc*ɽ vIgoq=ipa)&6Zi'To>NvYCx0AQQ:qXhӍ)U&7p>;}ћ3-aV52g ܽK">ĂIkRog[%6_e?uf1 ͏k/mtdy=3SG N(w`7TC i6t; m'E[&bM8%͎UJ+%j*X3)x#߳QYc13Y:K;󜫡b}me-`LdyX} ʕTn-0C{SFS`U_ju}׿PcAɣe #d*E E|tEŮ8  p3@rYCgEqq:IYp#+vĵ&],Y㦿6B4SByrd׍ l6Jvhֿ.T݇7UdGpTTخH6F. N_`pM܂ {mLΖֻ8M=P _YZyA11[N,ى{įHuFA/< :@tv ,.tCG`H߶H9 XCï#"MAGv릣 /)[98{b/nʱ5HzlK1·jw]11t=@Pt,MC7I &&\ek/o d;΃ ﻛ`}H7'U̔{}MJ@GOIDPKmr`RƊZAV?j\* )^q%Pmu v R̗žsÖj H;i@5l7ޮ5P1ѽuLsH]({ȖnE4+xT.ӓPoN xMqRhvc?)x9{k6n7*;_<뽎~uі/Ym^+ZC'eNmdlHP:t}OqA&.5nփSi)[#Ȼ s74M5yQ6sTH&b9t"h%p^.G^5ћg[s4yn*a6%nTNW:B<#MKa>#kj5d(jl.6sE$fJ`#qKol.53:Lftn1oj] [98T=‰Vh ,~X~W]JV< \ 2dZD̕xrRy$-(kRp3;|X@׃iH{7:иʳgړ]' =FÍCso'?+e.FJ2v^Jh8,*l©˄%( 2rjo kTU]\& z42|6Q-, ֊a[Q@,A@x:HZԕ>@9fֲGEc YWG"m;Ul߯Q=7m̔քn#C)TUaY:3bdt fa-j\RT[ZpxY,7Yj?^ hwV\wWYn%".iVF|. cf%޶8sF^*~5RZf# 9u8@8ܹuY[I \}i1$J je\\``r}ef`ӻRA3 r " 4d eVpU&YB0ԤUϑ@7#Էq渞:h#FO{:fnʄ ab:"&3s!ZX-XZW=l973)B fpsW&FGR!>#ʰgUcG0GhD z OClhXLJfSkK?CqZ*Oyg , &կU:rY9i[n1n_֢@^ s+AI|z7W8o3qn1|wsM{瑀;g:jkDVZTtr ĄWGGsYdG# ?/PRGKn@\(_:kD/߳}Q} ̟G;3U+%)Wf8= qŴxo;*OTmySI>uA=,5[sNThd 9xJÓ6uN;aa/p?> o7aQ7&Ocvꑕ:`|SeEzaQ`h )VRRwU ϱ꤇gى@p-F ۺ>mN~* Lc.^ yb htN,>r1H&I@-zxt\xiXɎ #yP#rw@k8,"t%ի. {~xW7"q=JGsmPGo;Q. 쯻ۼ $ł׺ MPl |~a"R/ E } Ğ-xsk$pX5,RlQiߡ$T:Frdϰ2x2WY!6x+{Ig ؽf* ]mxP KQg Aͮ~S"o;@gFt:1Aqwsn+4( B~ƛPn"0i[&mI&x^L=4{;:&M;#Vр;Ey+Q?{Sm"-|{A~9ﰴNɑ&2-jV '8|F*5*[ถ ^}TK\l)Ǿ1q5rt7ιj٬upҰ < vi8xEaO" 1H8"5ivٜм. ho~EkN= 6C9 j= t Q遡-iv!o׎u®36PEFys$γ܃pAfBpf7*9;[8׸cG1M~2܂AQUks|}$0[lP;h 3K[|1uBms%7YgʄUsOw MJ?-b84 6E Y::us'5=4TB=BUsowi+YaS$n&1$K+ƾ:m8'+ó?wEQ B$TtT&SHda4Ei [53O|O0E^Gv^ыâG(.>IR#'% +0-X?p:YJT䞰[2b>\JL:~Ƞ _#yJٵoڃ`2Xp1OMj5lQ*[n* vtft,)H\5 ~_g &ϓhT˩o\+/Jc/d$^^`!F= D}&pӛtk閗Xn*S6-/)Y<4 8:KU vsѳQ&?Q,3)UHoRV/Kf*E曇/͝zdMzbs# # 8uRYA 6Y'> Bm~8r)3_5ȩ^g ey,),W3U9rùƥPؾ;짏̼+^u-hbqofLX~;P+ Af--@$쓽?HMkA"-%:].BjGM?nޥjYIX *&7`wކ*`Q *'Ԯ!Ҳ"*eۀBwx 4LjS2s9kaԯ3݉,p*@{Q]fP{۫__KvA< *-&H>u}HO>srQJ?3 [|[p)oO4AS(؝>۟f?\; ž-dJ&,55}dEYs..\+ P!x 5Tp.i\aƉ٬_6G'ڧOqjd}TN84S@o`t, K'Ɗ%>-}{dDeB>\tCTx>YMOhȊcfoR4CNeUQ;ʟ*"}[MY)"it ʷ1mFZ`v}-MSK7ZA /Z1^p[cb6zM% 8Η[N/:_zґIv3|O{(r6ZgtGL-}jq^q 0iIy|V&9U)˺MXOZ tE {([TDEctr1+ nb4/l&~?MpIFo5Xjb!8^:4/L47}^)sbzf+AVγ],SzBx^SWkBvȇ4I:+hhXJ\t^̂~zŶfS) pqIWϙۊ~K+]gg}H.jv#3 I wRF\:)7vo'X\obѶ|bh' E-77ޕJ"DGŇhn H>0 lFcNqC:;fʕs*..z@;׫ql^`wR-G?@[;o W3;͓Re̗uO5-;{.b‘P? qgtBxNk@)Ә z|H9RU[F 20YԆBu<_<;D)i$2?kZ5; X``ľP]4|C8N0HGCX&ʢ9n[W(BV`mKkbY`cxQ)JsBug쉢y%7I!к c{ u]e}GӍ@w^g/Aa؁ú5gUYT\,$r8:9Z !&I߸DrkEm43;4> hķЛOM0_;J qlN(6ĔГKT"q%E,0~BVؘ߽bS=r""J5z>{M2D*Y+ pd5h<]1;b+ШagXe U\ґV ;?[BO":TC;L FxW6eqDR]g${V!邍J*|N] Dyc Z}7% .+IM~з9XQTD៙؃&#eYny*?efXqTdUXWfh!l9-9sS~q>;]C0OQDWæ6ѵB\#} -khLJAj,sP("C0iN`*y6 A_ԐSo5A]ۈ:#vYeZ?~"9+E1,xj L/U&Nmۃp!+#(uH+˽%B0H/o[5lS#zGBuXL̙Ao^䦝Φ`8C~y08 5kRw?kbkwx~Kq~m1fǠYСIU)f)rڨ~ +Mw77"! 67 sIܱ@go]UJ9aB{< 4)], ƷTyތd%M="X+qmI\oe;%' A} NX8TZKbi8{*:e)x;~gؔg:<D{9Te5h1v9r~hC_A`OB-"{kz]Q)Zh,OD66#WoA}sLJߡ;`nmI6.x ľ+}0beq]ɤ!HPX)hej,)_X/n&63{@MoBaybE(F2~dyʏ6ď'*r-i)y{E`˗C$bpނ̼W b;\t|1t,'Juܼ7>ڏ]b#:g IqtsIW}ގ V`19]vl]~0& cic鄿;p!%Ņ"@f֢!ČTv,S7g̘J~w%;s0b{L gZF7 :܌ˮsU-٭T_#\c=%ڢ BJߗ 37wTg^'} ?顲:~3zuf]"쒖M&C9v d"3Y+;"?ulu+7 \w|3F_LWtmR' B^qvStܐ"rr 0H fъO9w~SLhSX)̑>hkZvSA!$?;XG=Dۆ螸 @\Bt/+Cdw"I'z4> Snԍ&)6l6H6(GWR:3Ufh?#کOn'_+q%:|6'1تZ䃙Y!nkkkt64/V*mel\;BZ]AL L`t} I?A+іC0]~ {!S4^;ad.] 14?.5Jƍ CtX\ŐbncUȰ]D٤tC&>9p-*S0rog3G7?KKK9hڹ.&"ܦ~ɇi1,eG۬,30bGQJ?T^@? +LN\jYa3 =SuBS6nxnJJ:BxZHVVd pp؊ppCZN5 h9H3lg+xr"BlK:&E{*OB'97c~88 gT~~*fU=XބYCHm%CO7AӇ (YQ'w}y8i|(ތB>˝ j]WCI}%|eEc;+)ӪyL n2Tx"w~- Frf^EzJJoo$Z“uS$#\4t$x:SY>D#Տ8#N㐳y7aS5E%HTз*9Ӭ"׀-\G-Yv!8BQ&9+C|-4x[uGBN ޟН,(xz n7R rx^s, r2|7/Aw/t@ρ $MNp[[і~#"Wo4*pT~1X5b'׉1#{.v ī8Ȁ!-ٰ??z,"S l~M%w_B7KE~lnt96I!EɉY1_^ڷl:-m6iw>-vēfQ?B^8Ԗײ_xUGb7a/T`stBV*kdD3""6{GW_ YnTrF~{Wg|4qE&5lMx_^-bQkAzVjDtn065*ޥiTfkqx 9im60IPD($"rGܠ%˚#^>OBf^Zym?ؿjV"w&PdkYKFAaةejs"=)4OT?~a2n .qc%t[MĞyi}8CD*$/uOhQsҊ 847gG+1^<^7zc`D%O)KA҉ѻjp'D 5HJ?*Hidv7 z^8>oT΃$,làX)"3KivO|QhDp,Ȏ=0'Ӱ13jBkwܐ2#^o HمR'V/DH| }}[ HGLJnt1Cc8O$ȆB*@C.MpQ19d7ti]grC#etW&΀wSkܑ#\**c8~M4@yY iہeTk3o4[_re+!y# JSs%ZcX䷇B Cxۏ89Az3m (^! 9X<;V _J[dVyxtq3\W@AUY ryWƊŹx۠QV-yH $~ `VRIUˋ~@^ވ4_S-ܖSA&UUj@[jmVcd#~X J\]G5M3|׮,NA\BOvoߎb:NMXq7YB,Sg$b}kY (8&Ajy~žOi2ϣy!Ȣs27r10SDZߚHD0 2!Vy)tD@dp\$cs%[D[tuĊ}kbF/~MߔJ&lpE7H?i;?Z\$`.. H:55PrOj ƃ1+ }$\7H*!~,Ok.>՜;Ū6 ;ܣ'ǎടwN`4#I 7-YS3=ї}wkX r|De&WH%o^3A>:!Bcŕ,ZH6B$ }8-j%\k^% <;aPAv4S|V./|Ϋ8h 0^0mBR!"jaټHe=TK0aDEң(\%&Z0VQ9ݥuEe0ez977΀;|X˶.(ϩ\W eWQO46:& d+Nc#J!Ŭۥj16 9^ե=pchu;_nTNe'tYs謧R^U$;OMA&qmh)VKVXߙʬdƬxoΰ"`iI<Yhʕj7K+F>:;^_$yn$gxxT)$zqe#E(*׸PT9U3l{qRٽ90&]"q!j q3k[tg;\L]ؼhQizîSҖuMn$/{|vNٺ;zjqh"\)PT [H{<~q㿎]6}xIGkeEuA<#c]+a[o䲞hًZĦ4 âw;2A7jx)Q?q~6+RHD@℃n 9|>DZ ՗Bbbk:esp YS|bzrV]ÊؤE앤Ls;u!)%d1fx(a~gJ'LGoB;M9}ߌϒ*u@WKձ{ U纰m-:H}3_Sư5݄~NX 7IFMZP48+J A򈺗@1|U`$M([P~"!lu2ޖЀMXu]EGJ73L&P?ydぢYC:.*% p|` 5brA5*x`ybIyh>?Ho5#= s9Ka1f(0|Ҥڴ4*?`2v`Ŧnp;C86zbdpYv7fJr `|fC4[|1wP`L6=u9jQ* `0r&C1.xbs:Un &Qh?8q/dgs.h~ZʜrԮuM E8u-L:9gXApc[T 7*oērq{V G2D!O 7zNB/i"%o9k_z b`>DP!ʊ8Nz3H h^wD<'ϴn@2P @B?xc$&.>JC pJhzʈ"6ZY2#ny ef+ R ڒ㤲 N;h`|5둵Qwg|M X -*GjFu6Vp+_-z<ˣ[@?)&jN+Ws[l)q S*'Q9pl+%Y`J \,"RY$jw9QS 9f>-!A[2-= ^ }a,j4rz- zY~z +zcsVj*ua9iב< ᯈ\P<ʼnKg}l{& mOyiH.L~V w.-j4c>CCR0a"aԩo^ {3E%LLr*vY炱s ϗiS\Qm{SFwf9\׋ok/ٿM}1OئFŶ*i2tZ3,1+X\toYiꪯ8FLCɹ+h6RZ7$"g>.1@:ix9g:kV=׌!pSz˒/FQEk?oD3-P?|e4YD.q!b{ov x9 鮆)~J>uKa! c6xXXKZ}uQx0>BIO/5%Vףڸm-) I.mf;\dշI|Y8'3l` ;n%}E90e|>#lts;*(DAMWYƺ8^ JrJ^imyI4M. t{vG{p D~LD,xTH+* ՕY]廔K%, kx ˥ۆuD㔀 >:ۍ)ghDM% G?%YT?[ؿ98H KD~-&Y=(sCq^ڰ-qQ +[vg+gV0\;VZi5Ru~x;whWQ76QL ]80`NΦhO9Sšeώn r6㵠Fʳg@1f_8(iˠ`| vHY51+!m#Tb>pY(zuA*.`w4ȋ+kC;w(KÔYFg~hMֺ`$ RW^!3(Fh΀% gR+J\[X_\d"G:sqmi< fX|V~*M12ސ狱Rt-gJjȾ|@E].:Ty;yOhvxw/H `CmQ'gj_y՗FUt~Vq+;[6—E=T''jM8lK&uEZ/gO/s8#A(t0V`tY`pڹ}`1m~QKT*U3?0M0//U!C"V Nީ@8=z c[0Ә8'tc!>wx"c,s@ǬUc%0IPN S{CI4>WTTN)߭W3L9tD7L5X&/d'=0rEkB%~{:\7=[* (" ܿ_i߫k}Lz<9^ PW7h  IfDυJ :(a\O#1uó+Cj*HdW p!2 O5^aT aq%" !dε#j(z8K@{4p$$h;K5"Ki:w$1 @1M'G%EX4*2_->[R^-< uMF}I%|k䔷1D5ۮX_#sj&txcsiX_8$ KV38Hdx[Y8k>TEWKN D2gPqY$]EE^CkH :Rg*1 3O{V\wz9Q#g >|U90A|V&jqD5sȲ 0y$bv|`hL:1 [حed#[j)K#k;ge?1qi(jmhX,kRKn>x7+rnxm&wBgHO`<e7~zG@ ӝў;VR*_#TV5񽱥gN;}~a- msp S=guY[yp$+.k:JEPR'Y?'1 $a)W]H/Bx+PIvMf.uSP}iWpsQr)/WD)Y ml@=ZEb"*]{-5S,ƙ,+\:@jQ![ׁۢ"}EBS% ^$3K:̒t *SO6ϗ2(Z~ۋ>m8snEDJۅEًVpT4A"-+TgNaY`s&ZSFNLt1f/p}:oie9r>x@*/m kPW۶ieNxrecѤ:%Ü3o5 rt@,R%4 \`@V"w9AU^jR]u2l-#:oG8Ca,?[4e dyZWHm;@+Z8\Lz jAM ,Xankn e(]wpF%0c|3^)h&+)r\<(,|{_MߨˁӘM0Z4=vcP|zym/d*W'"R(ɤZPW8^&2dZ5K}StM2 ݵo^2=Atȑ{^C:=3eU,l4"i\oE;D~랽 oiϠbiz%5=bme)]5,^2i]|*-EvBY.A9i l`NwOXX0F?/=PB2k@C2Dz֊@~MiR#&ԣ(n;o1sK$UMBr"nc |Y6Tb;IyPA#5إ:oD񍵻^%ej'9sQa5e׹N'D,F +byp/durʏDGj*Ӏ9\ JpnU :E X=TB]G jN0bZb{q? Ej/cJ\&>6!θwwjG"ΆWOnzf )M@Pۢ/^ ɖ{cX*Ydԍ76]Lsaxp3QDHmO &C6Rfևp,f5PKfvz~-F!7#( VJ noͯUm rCU{jx/\;vSP={!$ BNN%Op㮉g{jc~qU:P p"vJi~CJ*\\k6LLmY'6Drk5!kHEk@[Zϭݪ;Il.KUt  <L,^B