spfs-0.09.0012-1.vz8 >    `A  }Dͭ*g`W!2J̠<#!Df@0K8<@ŷT>03` epYDD8Pp%pL^ڹ/Z<}0ܟ&DPSc:[aIrW(D5da4dcf0b6dd6bb8e300ace91c57c2c661363a57822416014813a0f278321ac45e5c3513607b06fe0993209db5bc1dab7f0adf98)`A  }Dͭ*)_Ӿ 2#^hdDps00o䆸lKFp*ۻ/ Toq؟-?}߳==MkW-tj BYY ҺF؋wqM/i׵ T*;>p<?d  . (@kqx            H z  l(@8HS9S:0SG H I XY\$ ]L ^b`deflt u v$w x y.Cspfs0.09.00121.vz8Stub-Proxy File SystemStub-Proxy File System allows to replace opened files from underneath of running process. Required to CRIU to be able to migrate NFS mount points.`Abuilder8.eng.sw.ru5HVirtuozzoVirtuozzoGPLv3Virtuozzo (http://www.virtuozzo.com/support/)System Environment/Basehttps://git.sw.ru/projects/VZS/repos/spfs/linuxx86_64 !иp AAAA`A`A`A`A`A`A`A`A`A`A502a07b4f9addb11264f190784ed15e730cb5b716c988b1b4907e629b4b9d17a7f39b83c6f46ef9484f22b225be7855fb47ab9f558827de95370b57ee40b23b8579aafabd8d66bcfabbb8aaf9bf7f9084e6474f76a5dc767a941ba0139cc6fba../../../../usr/sbin/spfs../../../../usr/sbin/spfs-client../../../../usr/sbin/spfs-managerrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootspfs-0.09.0012-1.vz8.src.rpmspfsspfs(x86-64)@@@@@@@@@@@@@@@@@@@@    @libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.5)(64bit)libc.so.6(GLIBC_2.6)(64bit)libc.so.6(GLIBC_2.7)(64bit)libfuse.so.2()(64bit)libfuse.so.2(FUSE_2.2)(64bit)libfuse.so.2(FUSE_2.5)(64bit)libfuse.so.2(FUSE_2.6)(64bit)libfuse.so.2(FUSE_2.9)(64bit)libnl-3.so.200()(64bit)libnl-3.so.200(libnl_3)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libulockmgr.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)3.0.4-14.6.0-14.0-15.2-14.14.3`s^`Zg#Z 0.09.0012VZ Auto Builder 0.09.0011Kirill Tkhai 0.09.0010Stanislav Kinsburskiy 0.09.009Stanislav Kinsburskiy 0.09.008Stanislav Kinsburskiy 0.09.007Stanislav Kinsburskiy 0.09.006Stanislav Kinsburskiy 0.09.005Stanislav Kinsburskiy 0.09.004Stanislav Kinsburskiy 0.09.003Stanislav Kinsburskiy 0.09.002Stanislav Kinsburskiy 0.09.001Stanislav Kinsburskiy 0.09.000Andrey Bondrov 0.08.024-2Stanislav Kinsburskiy 0.08.024Stanislav Kinsburskiy 0.08.023Stanislav Kinsburskiy 0.08.022Stanislav Kinsburskiy 0.08.021Stanislav Kinsburskiy 0.08.020Konstantin Volkov 0.08.019-2Stanislav Kinsburskiy 0.08.019Stanislav Kinsburskiy 0.08.018Stanislav Kinsburskiy 0.08.017Stanislav Kinsburskiy 0.08.016Stanislav Kinsburskiy 0.08.015Stanislav Kinsburskiy 0.08.014Stanislav Kinsburskiy 0.08.013Stanislav Kinsburskiy 0.08.012Stanislav Kinsburskiy 0.08.011Stanislav Kinsburskiy 0.08.010Stanislav Kinsburskiy 0.08.09Stanislav Kinsburskiy 0.08.08Stanislav Kinsburskiy 0.08.07Stanislav Kinsburskiy 0.08.06Stanislav Kinsburskiy 0.08.05Stanislav Kinsburskiy 0.08.04Stanislav Kinsburskiy 0.08.03Stanislav Kinsburskiy 0.08.02Stanislav Kinsburskiy 0.08.01Stanislav Kinsburskiy 0.08.00Stanislav Kinsburskiy 0.07.06Stanislav Kinsburskiy 0.07.05Stanislav Kinsburskiy 0.07.04Stanislav Kinsburskiy 0.07.03Stanislav Kinsburskiy 0.07.02Stanislav Kinsburskiy 0.07.01Stanislav Kinsburskiy 0.07.00Stanislav Kinsburskiy 0.06.19Stanislav Kinsburskiy 0.06.18Stanislav Kinsburskiy 0.06.17Stanislav Kinsburskiy 0.06.16Stanislav Kinsburskiy 0.06.15Stanislav Kinsburskiy 0.06.14Stanislav Kinsburskiy 0.06.13Stanislav Kinsburskiy 0.06.12Stanislav Kinsburskiy 0.06.11Stanislav Kinsburskiy 0.06.10Stanislav Kinsburskiy 0.06.9Stanislav Kinsburskiy 0.06.8Stanislav Kinsburskiy 0.06.7Stanislav Kinsburskiy 0.06.6Stanislav Kinsburskiy 0.06.5Stanislav Kinsburskiy 0.06.4Stanislav Kinsburskiy 0.06.3Stanislav Kinsburskiy 0.06.2Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.1Stanislav Kinsburskiy 0.06.0Stanislav Kinsburskiy 0.05.3Stanislav Kinsburskiy 0.05.2Stanislav Kinsburskiy 0.05.1Stanislav Kinsburskiy 0.05.0Stanislav Kinsburskiy 0.04.0Stanislav Kinsburskiy 0.03.2Stanislav Kinsburskiy 0.03.1Konstantin Volkov 0.03.0Stanislav Kinsburskiy 0.02.2Stanislav Kinsburskiy 0.02.1Stanislav Kinsburskiy 0.02.0Stanislav Kinsburskiy 0.01.5Stanislav Kinsburskiy 0.01.4Andrey Bondrov 0.01-2Andrey Bondrov 0.01-1- vz7/vz8: add targets.list to build both spfs versions from same code branch (Pavel Tikhomirov ) (#PSBM-102629) - manager: don't reuse readlink path as buffer (Pavel Tikhomirov ) (#PSBM-102629) - list.h: replace libio.h with stddef.h (Pavel Tikhomirov ) (#PSBM-102629)- PSBM-101521 (Alexander Mikhalitsyn ) (#PSBM-101521)- spfs: Main process wakes and kills its children on exit (#PSBM-80055) - spfs: Handle non-zero exit status in cleanup_spfs_mount()- manager: use join_namespaces() to enter container (#PSBM-79733) - manager: join_namespaces() helper introduced- manager: use mount ID when available for resources matching - manager: pass replace info structure to is_mnt_file() - manager: store mount ID on "replace info" structure - manager: collect SPFS mount ID - manager: extract mnt_id when parsing fdinfo - manager: discover fd link early - manager: improve debugging and add more error messages- manager: move main process to freezer root cgroup- manager: disable readahead for SPFS "restore" mode (#PSBM-73023) - manager: improve debug prints in content copying - manager: improve work mode change prints - manager: add error prints to work mode creation - manager: do not try to detach from unattached process - manager: improve error print on status open fail - fixed issues with inclusion spfs_config.h (Grigoriy Melnikov )- spfs: check system call was interrupted while waiting mode change in Stub mode (#PSBM-72314) - futex: don't print error in case of timeout - manager: mount spfs in interruptible mode- manager: treat refused connection as temporary error on mount attempt- manager: do not examine threads - manager: simplify iterate_dir_name() helper- manager: treat timeout as temporary error on mount attempt - spfs: fix shutdown procedure - spfs: switch to mount namespace context only when provided - manager: remove obsolete "mountpoint" mention from help- manager: remove temporary original mountpoint dentry when replaced - manager: unmount SPFS manually only if daemon was killed by a signal - spfs: remove access check for proxy directory in gateway_full_path- manager: use ns_mountpoint when replacing resources (#PSBM-66944) - manager: add support for "ns_pid" option in SPFS change mode request - manager: pass mount namespace pid to spfs as a parameter - manager: add "ns_mountpoint" option to mount request - spfs: open proxy directory in child is namespace pid is provided - spfs: improve debug in case of work mode change failure - spfs: mount namespace pid as "Mode change" command parameter introduced - spfs: minor error messages cleanup - spfs: wrap paths in debug prints - spfs: fix proxy attributes initialization in create_work_mode - spfs: switch to mount namespace in proxy mode when opening proxy directory - spfs: pass mount namespace pid for proxy mode to work mode creation - spfs: "--proxy-mntns-pid" option added - spfs: switch to "mnt_ns_pid" mount namespace on actual mount if provided - spfs: mount_fuse() helper introduced - spfs: store current mount namespace in context - spfs: "--mntns-pid" option added - spfs: fix stale_work_mode() helper - spfs: simplify gateway_stale_fh by comparing work modes addresses - spfs: use /proc path to proxy directory fd as base path. - spfs: take proxy directory reference - spfs: fix debug print - spfs: optimize work mode update on restartable operations - spfs: get work mode instead of copying - namespace: set_ns() helper added - namespaces: pass binary type to open_ns() - configure: remove "tags" redefinition - spfs: print error if root directory is unaccessible in proxy mode- Enable hardened build, see #PSBM-58107 - Make build verbose- manager: create new path if "link-remap"'ed exists (#PSBM-64299) - manager: don't close file object fd if negative- nfs tests: add "sk-unix01" to supported list - unix sockets: restore socket rqueue even if already opened - unix sockets: restore DGRAM socket connections properly (#PSBM-65010) - manager: unix_dgram_peer() helper added - manager: move DGRAM sockets handling to separated helper - manager: open unix sockets in corresponding handlers - manager: return socket fd, if already set - unix sockets: alloc_unix_sk() helper introduced - unix-sockets: do not try to delete already unlinked socket- manager: use current directory as logging directory, if not provided - manager: add "log-dir" option- manager: move to target VE on init - manager: revert commit ce578e797811554ae693d9b76fde67326ccbc16c- manager: allow SPFS mount on top on non-empty directory - spfs: add carriage return to error message - manager: move SPFS process to target VE (#PSBM-58606)- Rebuild in 7.3 environment- spfs: replace error with warning in case of system call interruption- ptrace: fix ax register value check for "in system call" status (#PSBM-53384)- swapfd: sync all the private file mappings (#PSBM-53303) - Makefile: remove explicit path to libnl3 headers from flags - autoconf.sh: new helper to configure and build with libnl3 - configure: add check for libnl3/netlink/msg.h header - configure: add check for sys/capability.h header- swapfd: check, that mapping is accessible ater replace - swapfd: mem_read helper introduced - swapfd: open_pid_mem helper introduced- manager: check that private file mappings content is equal after copy - manager: copy content of writable mappings only (#PSBM-53249)- manager: copy swapped pages for private mappings (#PSBM-53161)- manager: expose process state if seize has failed (#PSBM-53092) - manager: expose process internals in case detach has failed - swapfd: create a helper for ptrace detach- manager: remove per-process share_resources flag - manager: do not detach from a task even if it doesn't use resources- manager: do not duplicate OVZ id per SPFS instance - manager: aling debug print for better output log - manager: restore cwd on return from SPFS context - manager: spfs context leaving helper introduced - manager: do not duplicate manager namespaces descriptors numbers - manager: mgr_work_dir helper introduced- manager: skip resources swap handlers call if nothing to do - manager: do not detach from a task, if it doesn't need resources swap (#PSBM-52883) - manager: use add/del_parasite helper - ptrace: simplify "in syscall" check - ptrace: fix error prints in fd sending helpers - swapfd: Add errno print to recvmsg() - manager: fix error print in transfer_local_fd- ptrace: adjust ip in case of process was traped in syscall (#PSBM-52809) - manager: add debug to fd transfer helper - swapfd: Add errno print to sendmsg() - vz: increase spfs exit timeout to 20 seconds- manager: detach from process on release (#PSBM-52700)- magaer: revert multiple integration of parasite- manager: detach from process after examine and attach again for swap (#PSBM-50800) - swapfd: return error from destroy_parasite_ctl if failed - processes: add/del_parasite helpers introduced - swap: do not postpone exe link swap - process: remove empty process from the list early - processes: inject parasite just before process examening - manager: reduce spfs log to NOTICE level- processes: fix size check in fixup_source_path- unix sockets: fix possible write beyond memory border in unix_bind_socket - shm: simplify shmem data pointer assignment - namespaces: initialize return code in set_namespaces - xattr: fix dereference of freed xattr in spfs_removexattr - unix-sockets: do not close socket in unix_listen_socket - unix_sockets: fix typo in error print in unix_bind_socket - trees: fix null pointer derefernce on error path in collect_fd - swapfd: fix various leaks on error paths in set_parasite_ctl - swapfd: fix close of invalit file descriptors in copy_private_content - swap: fix handler check in process_do_swap_handler - manager: fix uninitialized resulting variables usage in replace_resources - manager: unlock cgroup in any case (including error) in replace_resources - replace: fix fork switch - processes: initialize path to empty array in collect_process_cwd_root - processes: initialize return varibale in iterate_dir_name - processes: check source size in fixup_source_path - processes: check, that readlink returned non-empty path - processes: close fd info stream in parse_fdinfo - manager: use xtoi instead of atol for all 32-bit variables - util: xatoi helper introduced - util: make xatol_base static - manager: lseek freezer state fd instead of reopening in freezer_set_state - file_obj: fix leaked fd in case of fifo_file_fill error in fifo_file_open - manager: check unlink result in cleanup_spfs_mount- vz: add static/seccomp_strict to tests list (#PSBM-50020)- swapfd: Suspend seccomp while changing resources - swapfd: Parse seccomp state- vz: move static/unlink_mmap02 to supported list (#PSBM-49205) - swapfd: Test for private content copying - swapfd: Copy only present pages of private mappings - swapfd: Fail copy_private_content() if size is not aligned - swapfd: Use pread() and pwrite() in copy_private_content() - swapfd: Make available /proc/pid/pagemap file- vz: add socket tests to supported list (#PSBM-47017) - manager: support for unix sockets added - porcesses tries - porcesses: some precursor work to handle sockets - manager: unix sockets facility introduced - trees: add sockets tree and helpers - file_obj: early_open operation callback introduced - file_obj: always unlink path if silly-renamed - manager: fd_skip_fast helper introduced - manager: some swap debug cleanup - manager: small nits here and there - manager: use get_file_obj to collect fs - manager: use get_file_obj to collect exe link - manager: remove obsolete file object helpers - manager: use get_file_obj to collect file mappings - manager: use get_file_obj to collect file descriptors - manager: new file object related helpers introduced - manager: drop process_info argument from is_mnt_file and is_mnt_map - manager: cleanup create_map_obj usage - manager: move create_file_obj to file_obj.c - manager: move handle_sillyrenamed to link_remap.c - manager: export fixup_source_path - manager: include to processes.h - util: fix sillyrenamed_path int case no slash is present in path - manager: netlink diag interface support introduced - parasite: keep service socket inode on parasite_ctl structure- manager: disable timestamp print in signal handler - log: add timestamp print control toggle- manager: close spfs namespaces after environment cleanup- manager: do not detach from processes on resources release- manager: always cleanup spfs directory on its exit - manager: improve startup logging a bit - vz: update unsupported tests list - manager: fix spfs release on repalced exit or master was killed - manager: cleanup messages log level - log: print file and line in error messages - processes: pass received file descriptor to create_file_obj - vz: stop command sequence execution in case of error - processes: keep received file fd while collecting - processes: split collect_process_fd- spfs: remove bogus error print from gateway_real_path - vz: toss tests a bit- swap: remove excessive debug print from do_swap_exe_resources - trees: destroy file object on cleanup - manager: fix unmount of SPFS in case of error in mount_spfs() - manager: unmount spfs wokr directory unconditionally - vz: increase wait for spfs exit timeout to 10 seconds - link_remap: fix and simplify links deletion- manager: added support for unlinked files (#PSBM-47074) - vz: add "unlinked files" tests to tests list - vz: add support for multiple sequential jobs to nfs_tests.sh - vz: set running_tests to test_list in empty in nfs_tests.sh - vz: make "kill" faster in nfs_tests.sh - vz: fix "test is running" check - repalce: added TODO comment how to replace monut point properly - processes: add support for "link-remapped" files - processes: improve error message in transform_path - trees: fix memory leak in collect_path - manager: new "link_remap" facility introduced - file_obj: destroy_fd_obj helper introduced - trees: simplify collect_map_fd interface - processes.h: remove redundant struct replace_fd declaration - swapfd: select only private mappings for syscall injection - processes: add "replaced" tag to fd and map structures - trees: rename collect_map_fd internals - trees: hide replace_fd structure in trees.c - processes: collect only unique fs - processes: collect "exe" object with maps - processes: collect only unique maps - trees: collect_mm helper introduced - trees: fix NULL pointer dereference in collect_fd_table - trees: return pid of the fd owner from fd_table_exists - processes: use create_file_obj to collect mappings - processes: split collect_process_fd - trees: simplify collect_fs_struct prototype - trees: pass file object to collect_fd - processes: rename map_open_mode into map_open_flags - processes: rename release/destroy functions - processes: rename "mfd" into "pm" - file_obj: pass "void *file_obj" to create_fd_obj - processes.h: align structures - processes: rename create_file_obj into create_fd_obj - swap: change exe link after all other resources have changed - processes: improve fixup_source_path - processes: small optimisation to get_fd_info - spfs: check link_remap attribute for any file - manager: spfs_link_remap helper introduced - manager: simplify do_replace_spfs a bit - util: sillyrenamed_path helper introduced - manager: pass source mount reference to replace routine - manager: carry spfs reference during replacements - replace: collect process pid on spfs info structure - manager: return handler result from spfs_manager_handle_packet - manager; rename mounts_info_s into replace_info_s - manager: rename orig_ns_fds info mgr_ns_fds - manager: move cleanup_spfs_mount to context.c - manager: update_spfs_info helper introduced - replace: use generic examine_processes instead of deducated helpers - processes: export examine_processes - processes: treat mounts_info object as const - replace: remove unused ns_pid from __replace_resources declaration- processes: carry original process state during replacement - swapfd: Add debug print of used mapping (Kirill Tkhai ) - swapfd: Pull SIGSTOP handling from criu (Kirill Tkhai )- manager: do not stat mountpoint in init_mount_info- replace: use context namespaces instead opening new in do_replace_resources - namespaces: treat ns_fds as const in set_namespaces - manager: ctx_ns_fds helper introduced - manager: close spfs namespaces upon deletion - trees: release fifo paths on trees destroy - processes: destroy processes object trees on release - processes: destroy processes objects on release - processes: release process maps in case of error - processes: release process fds in case of error - processes: pass fd_info_s to process_add_fd instead of it's parts - vz: fix process search in vz/nfs_test.sh - scripts: add more useful logic to nfs_test - processes: remove "unlinked" from fd_info_s as unused - autogen.sh: add "x" bit to owner- swap: fix root and cwd checks in do_swap_process_fs - replace: fix code execution in case of error in do_replace_resources- swapfd: remove redundant code pieces and debug - swap: pass file pos to swapfd routines - processes: collect file offset during fd parsing - manager: remove excessive debug - swapfd: format debug - manager: remove mappings collecting from swapfd.c - manager: remove unused code from swapfd.c - manager: use swam_map helper for mappings - manager: swap_map helper introduced - manager: collect all mapping attributes- manager: use new swap_{fds,maps,exe,cwd,root} helpers - manager: swap_{fds,maps,exe,cwd,root} helpers introduced - manager: remove debug print from get_fd_flags - vz: some improvements to nfs_test - swapfd: Do not force a change of mappings during fd change - swapfd: Print error message in case of memfd_create() fail- manager: split resources replacement into thre different functions - manager: remove obsolete and outdated fifo code - vz: make nfs_test.sh executable - vz: add additional cleanup after tests to nfs_test.sh - vz: improve test script output - vz: improve nfs test script- swapfd: Pull compat mode of parasite from criu- manager: provide O_CLOEXEC to fd swap routine - swapfd: Allow to fcntl::F_SETFD - swapfd: Check retval in change_fd() - vz: nfs_tests script added- utils: strip_deleted() helper introduced - manager: ressurect get_fd_flags and use it to obtain file flags - manager: improve error prints in files opening - manager: fix print typo in iterate_dir_name - spfs: improve gateway prints - spfs: do not remove xattrs for hidden files on file release - spfs: take link remap attribute into account when path is hidden - spfs: fix attrbutes comparison in find_xattr- spfs: fix debug print condition in spfs_getxattr - manager: colelct map file open from from /proc//map_files- manager: teporary patch to fix fifo migration- manager: remove freezer open_cgroup_state helper - manager: cleanup resources replace helpers- manager: drop redundant "ns_list" option from mount command - manager: remove unused join_one_namespace helper - manager: use set_namespaces instead of join_namespaces - manager: replace spfs mounts without ct_run macro - manager: mount target wihtout using ct_run macro - manager: prepare and cleanup spfs environment by using join_spfs_context - manager: pass ns fds to __replace_resources - manager: join_spfs_context helper introduced - manager: split enter_spfs_context into namespaces and chroot parts - manager: move mount-related code to mount.c - manager: cleanup interface functions - namespaces: treat empty ns_mask as error in set_namespaces - namespaces: open namespaces with O_CLOEXEC - manager: create all spfs-related object in child on mount - manager: pass string agruments as consts to mount_spfs - manager: store init namespaces and pass to SPFS info structure - namespaces: remove unused change_namespaces helper - manager: store ns fds on spfs structure - processes: collect fd wisely - gateway: return spfs xattr if match - spfs: xattrs support introduced - list.h: include libio.h- processes: use fd_info_s contents in collect_process_fd - processe: get_fd_info helper inroduced - file object: discover process mode outside create_file_obj - processes: small cleanup to is_mnt_file - utils: unlinked_path helper introduced - spfs: do not treat gateway file operation result as error - spfs: handle only existent cur_wm in set_work_mode- processes: pass process info to is_mnt_file helper - pie-util-fd.h: include stdbool.h and include/ptrace.h - ptrace.h: drop bool declaration - processes: skip anonymous map examining - manager: infect processes right after seize - manager: seize processes before examining - processes: rename processes_collection_s into mounts_info_s - processes: collect_processes helper introduced - processes: rename collect_*_processes into examine_processes_by_*- manager: collect process root path string - swapfd: Use transfer_local_fd() in change_cwd() - swapfd: Chroot after chdir on given cwd - swapfd: Implement and use transfer_local_fd() - swapfd: Implement fchdir_seized() - swapfd: Implement close_seized() - swapfd: Export set_parasite_ctl() and destroy_parasite_ctl() - swapfd: Fully support seized send_fd() and recv_fd() - swapfd: Implement sendmsg_seized() and recvmsg_seized() - swapfd: Refactor recv_fd() - swapfd: Refactor send_fd() - swapfd: Cleanup: use mmap_seized() - swapfd: Bind local socket - swapfd: Cleanup rename parasite_ctl::addr{,len} to remote_addr{,len} - swapfd: Add chroot support- manager: mount spfs with "-o no_remote_lock"- manager: fix typo in error print in prepare_mount_env_ct- manager: fix typo in error print in prepare_mount_env_ct- manager: print fd open flags in collect_process_fd - manager: collect fifo file to avoid multiple content restore - manager: collect_fifo() helper introduced - manager: "fill" callback for fifo introduced - manager: remove get_target_fd() helper - manager: fifo file object added - manager: "file object" introduced - soruces: move namespace code to src/namespaces.c- manager: move process need replace check to separated function- manager: improve debug output - util: simplify create_dir helper - manager: toss fd open code a bit - print: print_on_level_ts introduced - print: remove print_on_level_va declaration - manager: check either process is kthread in actor instead of loop - manager: try to find search fd table before fd collecting- manager: collect map fd which parsing processes info - manager: map fd tree introduced - manager: collect map files via /proc//maps - manager: split read link and actual fix of the path to open - manager: fix print typo in iterate_pids_list_name- manager: ignore collect process fs struct is shared - manager: fs tree introduced - manager: split collecting of process struct fs and exe - manager: split process_env into fs struct and exe fd - manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: do not collect process files if fd table is shared - manager: fd table tree introduced - manager: move kcmp code to separated helper kcmp() - manager: set 10 sec timeout for freezer and print in case of timed out - manager: rename add_fd_to_tree into collect_process_fd - manager: rename fd_tree.* into trees.* - manager: include list.h into processes.h - manager: rename root into fd_tree_root in fd_tree.c - manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: unmount source mountpoint right after replacement and redirecting - futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- futex: fix wrong treatment of syscall(SYS_futex, ...) result - futex: return 0 from futex_wake in case of success - manager: "replace" mode introduced - spfs: use futex helpers instead of plain syscall in mode change helpers - sources: futex-related operation moved to src/futex.c - manager: move spfs creation into create_spfs_info helper- manager: reopen freezer state file on each state check (Stanislav Kinsburskiy ) - manager: trim '\n" from current freezer state in freezer_set_state (Stanislav Kinsburskiy ) - manager: return actual result in spfs_freeze_and_lock (Stanislav Kinsburskiy ) - manager: try to rollback freezer state in case of set error (Stanislav Kinsburskiy ) - manager: wait for freeze cgroup changed the state (Stanislav Kinsburskiy ) - manager: freeze processes in replace_resources (Stanislav Kinsburskiy ) - manager: convert mount paths to canonical view (Stanislav Kinsburskiy ) - manager: open map file with correct access mode (Stanislav Kinsburskiy ) - manager: adjust patch by source mount in is_mnt_fd (Stanislav Kinsburskiy ) - manager: fix strsep usage (Stanislav Kinsburskiy ) - manager: do not try to manage namepaces without pid (Stanislav Kinsburskiy ) - manager: "switch" command added to interface (Stanislav Kinsburskiy ) - manager: make repalce fully independent from spfs internals (Stanislav Kinsburskiy ) - manager: cleanup and rename processes fd info (Stanislav Kinsburskiy ) - manager: move all spfs-related code to spfs.c (Stanislav Kinsburskiy ) - manager: make replace interfaces more abstract (Stanislav Kinsburskiy ) - manager: move cgroup pids read routine to freeze.c (Stanislav Kinsburskiy ) - manager: untie processes info from spfs (Stanislav Kinsburskiy ) - manager: "mount" object introduced (Stanislav Kinsburskiy ) - manager: rename mount.{c,h} into replace.{c.h} (Stanislav Kinsburskiy ) - manager: set SIG_CHLD handle to SIG_DFL in mount replace handler (Stanislav Kinsburskiy )- manager: lazily unmount spfs working directory - manager: do not close fd in move_to_cgroup_fd- manager: do not close fd in move_to_cgroup_fd- Makefile: make swapfd "noinst" program - spec: fix repo path- sources: remove spfs-change-mode.sh - spec: fix repo path- manager: try to unmount spfs working directory few times before give up- Add swapfd and spfs-change-mode.sh to package files- Initial package 0.09.0012-1.vz80.09.0012-1.vz8.build-id6c5ac33ed2c07bd91741ac8febe4a2beda2ac26a9e78ad81353696bcc42ee513d20b8b1c199ea030e8f773b132d2289f53b0f895cbce2797db608698spfsspfs-clientspfs-manager/usr/lib//usr/lib/.build-id//usr/lib/.build-id/6c//usr/lib/.build-id/9e//usr/lib/.build-id/e8//usr/sbin/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpioxz2x86_64-redhat-linux-gnudirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6c5ac33ed2c07bd91741ac8febe4a2beda2ac26a, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9e78ad81353696bcc42ee513d20b8b1c199ea030, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e8f773b132d2289f53b0f895cbce2797db608698, for GNU/Linux 3.2.0, stripped R RR R RRRRRRRRRRRR RRRRRRRRRRRR RRRRRRRR RRRRRRRR RRutf-8330c09b918bb668b5ecf76b8d8558304ab77ccab885614e5791929748019268c?@7zXZ !#,:7] b2u jӫ`(y,x۝gg.pFӮ'1/Ul`7WkaVDq2(?-N[VB)+3 |`;?~5131m]~ӏBl3쿱5T Y.#:7i`Zh"Tѩ9}QgI?]UK;K8> j}ں!jMA <0+s0kʙ7rφ \[kJޗL|6Ƒ3#s E_g'MJ%ؑg<=fbb5Zk Șrq6cCkr"bT6 !XOh苹V߳pF?"srXDr]fڇ{Wwr8,*%5o>$Xm!"H[3zPFU:$ڏyM8s!.InGTɴ#8`?n?{RNƉ7&D}o9f,ȀqRKma3'BW7:_T%+3*M"- 3UnmOL!-G*=!T0}=FtK9w A_u#폵DDM2GS0b_<5M+Eir_Y4RhǹCr3Ja‰ _E5Tʼ3==wq}1gGn\*4[^gx(ȹ tL^)ꆢH܏uJ{(u8pX'p wbMnAEU}w91D A y)C1=j9Z>jƆ=74y]ӄ+s҇4g`Ud "u)thޑtԁ]PbD2 sW="P(Ko1Qw|$ͽ e lE es86Yjt/HqIYzբ[ųWEغXVh!26%/q;`BMSu*H 2n[MU'Sn-@a5Nf;{"Rs%A(H/=vH/X:I{Z%ڴ(ΙJTPԥiק5d Ie#8qlSY0M jhw7 Ók/wck5_eWO2U:{D4h-1MS O_. 熯S| +Jced2"4<$׿NRqZw[ gi\N Q}/Na6T&rT κ0\FОu.-AӄSU#1b7cCn{54UB ~(9 ZoT*hYѓY='`ο*zJV@֥)aQyj^ W"̕!?47$'d Y{frJCf; E2U)3Ͽ<XFƈŸIY; +mC@a  m_9sJNbbWٟiȑb1}`c뵫D`ziI i_ ʣxcҤ2[_&@ɶwso$`ND;"Q !F\%; ߆xB&Sڪc(wHߌh6Go |?!Li+HGGF}.ER)Lu0C6@L ԓ0-& ω[t! W~F&J[>F&^XG%֏L˽2>ѦfLy"`/4 {4D2ug$)!3Ss[{Q0ʔEϖK` DmN6HPctA!%Us2 EѻAu5-0[G&q'iW^n IYSLbؔ;?AO^/&/^5 Ԑ .2z_ɚ; Te5ƺ=*(]oԔtFNٗ~ I`[8|R+'yڊ|0'*ukU[3pDogxpyхdfJ gY=b\ud' vaj+zw Sͨ(=j ˼{tQV\o>oo\Pdaww@].Wݭ6rL! {܊G[ /~!v{6@h0(Mcd3EUoqLyA³KMjqmZےQoГЫ ɶweBT!a)Z)Yb'!A4W:js5vn`E#r"8|~nǮQ>1;A GS'J(̸ ?zZ֨g*˦kYBce4bDVw]V/5 ؂4b3~T= Nilѓ25隚ɸ0r~;X7-ٷ?2]7pG3N?8}N^p|^xC8h ]`OMIE h,Z`wd 7: z5,E.FmeMVf6aǍ|ܾߨbZt )(4`<=a'tk3&ӫ$Vl@\]}p&|/IǯQz +!HFaHX' j4moUo-dzl9PRRDyxw" ˍCMDNB4GR>|Hc/.O*ƖW/)8)/N[1PFuaFSbDn~Q(TOj]w'_lmZO>,鼨+ysNe]f69һM=0 =<,]EM/2ka_vqU%ÐXq+w95>}6ڄAbA +3NiHul&5yt&`}׮۾M:B P ,!E<҂ȝ l-ADodSq5[^V >Y4onbY?47pYBRN * uo_VGc8EU@tt+ XAcvlٶ0hi߆xV4Y lŵMq9Pr.Pw#Td,/ߺxeCm9 ^MAٔ_DB.Sa-7" IML&QR偈$^/ɾQ8y$C*I (Mfutu֧FDIُ[݋B2 mx`IuMŁ VX*'"#q# w^C%BYo]稭%m -.&̶OX!) *F7Gΰo$`Vi>po !w ZhؖQKTn>Z_g{>Mqb;+ȉC} EK?0/ V#6'jsVRwJ^q#'cmٟ=m?19.7~5FھZU[D.DL Oޗҟ<5fqfP+`I^&zF:ݷمOpSI0N掩~w`5k#S+ g2]RujCsPCr)nL 3e^zDk#Cq*f>/ bD)D"*c`才Adž0ʑGał*F"6&G9A aMEN[Kg+kZL"ASY (5 [dֳ#+e_UϙO1'Ēl<xld`h{ǜ_[}S4Qp",ڹ[029jnLQH; u݌zCXz*ħop6^:bGsDŬgUT_Y$L~DW<bÕ<)|$Um/Y(]1PHuګ甖US$5JI_/oAXKirߓ=:`nYY%:OhJlWW&vIv)ieDbCnZ>@2'%]@6HbrAr:ch:k}ID:}a 7V3FC_?jdJv͛E~R{|~pۂY4@-zlpۈR^Jfu—P֒S#U8*!fYdJ٫UqmҺY3}Ȇιv< BsI+7\@kC|핇.~-ŸDN:ѢR b=_Tیr\(Šُ5. m'SqQ /2`'~Q L.ťs7UG?΋ :ͰR|2|@ivX.O'iHnd/xMUװ35QȱgsglGH!PXmV8'Y{[y8o|* 楍QX, јx\hGZך1G*Uq1@}I @uvm(c7q8/Nz|] J-kONhvly1Atp+ lN`a.[tp)"@ ѨdA7ɯ<‚ l(%Loa}7!gDk0Gк vA%,Rrj晨3 ]qh{֊ᓻ:;}K`D[pv ~E5 N`),^?U8uw>PN Uf=+3nrRDevajbi uJqXS^ ,a4ANឰ$zlO@nvOՒJ0EZh*^Xæ & /'^6ڊX~Kv׶ۜ ZH)7  >=^Ϊp h-};x R&!(ijxkSn ޏBg3wL]wflI}1yѾ<3uUP-HebClٯ!;h|++u ~/aV0!AmמBMF/i@L6֐Mㆈ JY<)THĉ#Wy"TیqTVP:Mnj̮͚PP'?g*&5 h8jqO;6~|!iNk2rNj]ԓGɶ yk> zoI "<ɺXgX=QpkQ &x=ނ@ |ƣyLgZ h,6k%5VnZ,]PxщoǸyٱpCAک)=#aRnrbG*2 aql[QTpGE4tr ^0!P=ޯSS$KyHX8>Ð]3.<=?P4OHFr0Erp!\{ &VP$KoMӂXyp]~j.E_6&Zܕ &K_M*RMo WTDJn$53)͡zRg.i a.~jq.\9nv>JӪNuU(_sZp$K ?ng\#"Xɠߙ9xpb&3/'V`sԝ"`mP xضOHb DX$?1 < DpymCeA3(+G!}1hy{ SAJ:qFH%m\MA|;{:"&%̔4ܮ-IVkqʉ2 V0!? S/Jڵqxӝ'2s~hbTjv|< 6!**lf=d >g43Nw_e&31 M+Jy872} 0&S]۽*;rOLju: /\ Im1*Tlzu K X_@ /GANkukboΌ}P]l8bU$.S=CH٤72r<ƶ 8\ٝ[Ȭ!"J^:?le׈߅lէ(gw@Y18i؇zydl ʑ[0^σ"|v]6<@YM)#aۭ:u/ݥT%g#/W3pA9dr gխ!Lqm^1̽440%,qs֜re{רd m5t|,Y6b#4~V(r7ɽq+41dkZb+"7u:²pOL4 R3 \N+#`ǭ2}n_eX@ [ N",H$gھ[ҕ<70h1ѸXk/Qnqh@38DOҚBPHr<]\#cEXQ ܸl_ʊ˔"#G bknf$=lde)n Ùlo1>HȄv{Ꭲ&b- iToĎ9 o冒|hT,z%mA` KcR6JkQ f}8kkn̑27B 8֌ch$E/KRhI8/ՔX=szOlH:ш/!jX7 I! "u[2Ӯ3cRvp)>RgcjeFn'a1,?J)@K (ZhP:~P$.8V1XkXhScERG\ADdea!Ӫ nw^?Č:\ޢZokP-w[#6 o)g2nاVp fY尶f^}ZS>jalȆȼ*ѥrb^7z /_3[wk?쯀 w,j"1A8tdWeX-w Ao<+3%{[1ZW@]3._h,2W1A9zTdEiώ I uYIq^6f* PyxWXZul+R":C\vv}ڮgf[4`ΐ=`> vS#f.2ۺA/S`ȘBTo֯gHu?0 a;/ĻK;a^qJHwC(mJ?й8}{`F/#,'Bۮ ]d2'gK⛆\F{.!^ '|dцp:FL@;nղ4=B`GCO71g'*TQv+`l+tx?1TI 谞&% 37>Yq\NGn'(ud$IէNݤQQvn b `tkA%m}l ێ%?Ra1\7_/t:~ *$;]iR&QO`qD(CR}x4xE-GP oH iSO(o*]-SF<7Jc#JJG,+OHH=q#GŇ xA֨`G:g2;:xTc/@@)y s xץ"tO?D骍m@w4m]#ͳ\9) 0s=}eQ(TةUi!깲io@A%ɔD:-tFt`mV*(^K{ 0\3wx%!Se/{@ubr9'8p*07֦kRx6RIƷ`^t%2ssT!Dn *pT3u&lv2KsVɝPRw zofM^dZ-|4RxDdZBU5g=X_Ii Z 3)]*v}S8tU^"rCQ |!UÐ1J _ N')&S|yKGYܯG!K>dz_BfTĻjf9tY=nriN6`ir$2+ߣ4Dh,|v$,)ny6CEaCHK:eW[9"kHدDLV%ta{gq^= 0XDZcg!\@V. Ŀ=3|j[p]<D8{:֩^!mhV[ܵ0,;uu);9X;?XML)RЛ.uUGdBkߠK􇳢}*'p/ڌ0Y"gy }zl5ٰY|s;Y? GH)s&}OCE4/hy|"fک繁g;rdAz<]rlYj~bjƑXʿavQeS o4ZA:/)je;NC{GUKm8L=3"ʥ0l 3㼳Ss~8u$RcK^OW Om[^A"C]6T.+k"EHakYG-HM9hŶ%F : yӲ7n|4x -PfX;tIXV QqtL,**v>ܱH Ϲκ4 G,f7m&tYX^fPl{K ѢDcKh;pwtv||@+~,hr2ݘstb-snA$c ;]*pd)vr`1ݧ_,t>Evc< 1o ^ˠPI=+ 2(6oғW S1 !}P5Ⱦܨib}߭E9q`ےԆ! vByA:Z<2cB`QD? 1Y~nq6`I{9FvHS+kjRBJ~w>vd{w8 z~l3 KcŒ؂I4aRjNw.#^7;ΣUkUt:;2.aΎGc)"#kM;p􆱎e||@,pk^a[F-CڇTˬ5`Cͮn|zn4AL ` Awh7)0PWp4ȏr5$k+bt:l r y W*k&}c1zM L2k >Fٌ6glF)ɋ{Oڔ%pdz[rp&j~嗩@ϹL:f~Yq1O l/F.yRveE9[79ٯf!/˜81IU~4@i3ExY'Njy1R&I)ʣ+B/q|fn#$Η,㳌Z G?8eeC88Zp@ʾ*f)Png5fȴs;}9qq*]PܣN)P4Klq>B@ \2 cTHK.OEBOIY(imrwPt) dt-}\XL֗lXUՓgyKZ%nn"#0LjH%LS_!928|Pa-|o_ X7V LQQdpcɧ)9FֱO'r {)_yaN/I@a#ӡ"Zak0G+;cr RHM?Cj rVް{" j^rbrfHii_f^gN,PɯDiqqog%!qD%Z<߲,|%U?{J;j/(enHsMJg'9;'9O-u"~-e]P%/rpF}i8\Ps[u4L "(~k\B\`iU=`?[P7DͰn'QT͖k!tO`sxĩ7qFDQY3{e}|g^e3ßc*g0VǻZ:T ;@1\&i$MQV)gP۰(ZS]g~瓻_zԁ7GkbOU%%ݷNbc<*\c[ֺrvƓ٦G/2~![,\Bج`qMhA0Bbsd"[v]< ۽ G_= 7 7+ .Xʼn!d,N! Hy k(FٴYԫ"'jPtOiGϪn8P_bކ=dI|~wB3"$`,=8% !,Nl ."Lfke=YXoF!99v_ν.ih&䭢߭n p)CBoBҺt <Ӗ:Vhiۧ+hhp-1VԐYA[q;V {B4GOӍvaI^qDeMvBwzMk5dSI F{َJ˞$# JJ|?!\ofTTF䬢J3Qݒڽ˚t&Z'wCZQL˥th&y%/oMsۍ7`q5<7_Dр x'+^WcW"E܎$Ɂ [/}ANCɦ&r 1S+ieL2Iй(M9[:N"҄T%E <f}u}>F=P.:"FV 1iN5BM6y Zj3W>;te)xCԍ-5/Ыr@j(%"|Kbr m]x淈<7t4ka¢_d'0r}xժ[k#&?ȵdz"ʴwUiW0epBmnB:1RӋR!n#Y&5"Cl4=B~+$[EX;8;h''.!2*B=|=un&/I>Bv5.MRs̬VZ[ѭ0{n5dTWW:}۞@BVm2Pt|D+3 -?EAtYA)¤^zl-^Wf ]5  ~Ŧ &~#&qFobc Z|ĤhFhJ+y;4'N|^Nr*mcŖ=/o۞̃:gK&\ìF?EuY8 3Ӆ oχ:" RszaΓjL,aX¤XOhQ:Bmh{}997˜+f[l:@ >eGXMa1r[4 >7C*f~:ГRGm VVAQ0af̋P*acmt&_4I|4'~6L8_qyVDV ʯ\tQ(ZFj<4=P2`總ry[5zn5r; UY $7hXkHzBnʻ[5n{eAM3c"[jDIG O>)/x,}p\.@D^P{)2f 5fuYZI(7PsӁRB|/X_tˆRh? WRHn?V .o`f̱VJ:"o !&Nx掖##.RCEaGAɬ4p ])?Px]F]SymX yG./K vhPZϘrDrD5v'd ~x#( M ΍iOMC GJi8>r@:?a2^z^ìDUlAk_DrRG`y7qR`"Wg*DG:*_~javw/.p[PZwK/\ ! (m%AaY I;Z^bF4~qj78>-L4*<1gu2˺V=8/,7-cUJό-p^%澙PYW+F70ү.1 uE_bX7Q4Z߭w7۵ڭiE֊Ľ$g7̳ *1D 2/r L ǟF͍񟁐CDfS>XAB|[ȋDku@4#")h&Jȫ@Kb8/+#J3H|\-ENxlz_ĩ zekb-| cS1;)]O8зgfMSlCSҮP;bLG|ᓁr/3rb}AG)ĮT"zbFEZ ,q`_iO.| zHU~5+Х;y0v 3J.7oމ*VYQHU$:Hw jN3,UjbM:˹\ /c[XҰSП׊JB\ew FK2"nn =QĤE 68e8[Vge$͑&2VU,!N@7 JR _ Rm5K=&+XMaXqyZw1G$M=O S§15$1PSg{YʛqU6_qƂ/,y}6^?#]Xy1%zH32tfԨ cQYleO҃SI@LA"D̋٧ Śٓd @LaixڭG`WZI^7nSn_Ch"Po~uhM~fj%;pcL3΍"zִ~A/bJȮI6p-Wu\vSHb-+Q ^OC^E/H+q%pyv=c:8qwb;qbUPC8/3K|񄊉PeA@tue"@p.\%)XW""O9+34@[y5c '.]͠W2oo/\I I.Ā}A5%^ԫS/ytý^}2i%a;]DlX@#cMK\f8R:%_|r]K-2d&W</} nғ\ʕ\iLA#As6gVcU'PX6*OZY-X{AxU o?B HmukO2l|ND&O-.݁W#Tt`sf֫ 5'_|Kv3>1Q*5Ϣ^n>U4U<ѽl锒 Äñ wpH/>Yv<LԾLGSmyC\aM+_gjXQ-"؏s0i)Ղ 7w5{{ȫ Q!n07Gu0{/8N2w7q}Ԟ$;"2r v ٝn۶(L,a޾#юSn#X}gٲg .Ă T҂M2__i8=&S*8}j},YcL`iK .n!N 3vwZ\fNЯC9iyJ ׬| j/\+j{$f0Po:,}B^wlllW)Fa_ jAl]TE]J u}%~mBA+!BBppsՇh%΄!+Bₐ.DI[Q3x׮8I0 1IL^5 }WsB:Њ=> C|/iO#|nr&xV"bi#?GZ</3>PTo]8LK!KMV"[dwؙ碟LTsF)V؋A_ł}kێBӿW.lJEC&IC;KԿ |/xoM֖Xz`W]D b͉i!n6;WL Jl74>'üXDf+YmXA0:r OEpgA@:gJkKM8\J@3Qn50eAg ~~ׯ*RK.BثV̬ٸ޽|nBш'.d:D70@VadC A0_0ȭ[x@1;wjhf0,Y;E(BF =J6vo@͡hAbaD3IN Ly$ [9o&d> %[1/m:K8%1T/Oi|O0`tFSΰxGJK[fA v,|o.QYxlJ\S4 Fqx _RPףJ+L<nc]0:s\'em"8G#Qy}879mR@ ;8c!蚋UC%]cJe.mژvC_')`A==|o'QpQCUl8?vK! p_!*QUw :)@sr`e3Dm~YЊVgXFfb`3{vˎD _!RYV81Cep2(KxMg:뵴@~gda{ i+]8'4 d/%֬-^luYeB֨?.p='I[X]ᯩ{+%Hcq3 Ra餘i\0ghj9-bDŽ5dlc`8iIA"yfI *gXZ Y^u=҇6w/=L,\ _3ŤӜHr@[Vr;GG@# sivtn#,d% X73&HP)~ pDPfCtvAq}Ͱ^;jm%?m;#fL_Ha,h]aad{0"qSA{wee<G[=]t01K;"eoy"qi *J{/@*@T(s[Rjؕ^D.R~(*0m! jEC&c6ptA%}e3\=˃$ O5H`X$9:<578c`>>}5 `nb> dI"!|䦤INI6 7,U`QR 8[8[ӂ5?S=`F%h2 8,4xƯ>҂<"MCb^fzlN/NP&WUˆxe G[mokGhgIb&{u(; :o&$1 djo`P_+}eIy%T   -̝հ>dV)])zk]X4^g+euT6+tvۣ .Ps}!:Iy +6Y4!N!GTB{?+bzi24Į3"ϸw|| YFjkz,8@eF?`l!bkƁ \}0 cQAUMyO0PW@-věcz&I Hl}ŏO%)GF^lIe>4z"G.#ExObo4%3ޟ #O( ˷cja.nSOgR_?/]IolHEj{ lpb (#r6acq'@g r Ƕe|WH9~N U Q`m( 0Eݗ06AJ^?? ,[7tbdf^צ0F%]?$NBKQ'lOkcxwT6*p "<CȖ `0Bgmװ50hϐmGn˿(A8 =z=™6ͽXh0[fR̾&7*ީbjP=LsfOۊTYPvW6a3F'`34ؑ&-f̯ZBF]R!4NywR Zp mأpިsWh Dΐya]u%cÎUVya-r. ́Ym1ъ^{>g"D[o:5ˈT`GM⍏ɨD:m |\ טDeqW&jN| ԠaL?h>sJ ِȟ'Vxֱ f.>\@nzgMQy ##%($&w\LNq@eHܩD\ Cv_t8#dJfoӹC7xt@0EKխ qhjv#D5:tlzrCžm;sDU6[W F?]nL}J/jmZ.N`FUp{~zG9c230(;Ф<;+c8E*Ry#ZX#d$ VPmmࣲ^v+>GuXcj2bϨ;Eur$1mwg=ȱffԺ IceJq J  ;BXYWц9E٪21i‡*8Pk}LzDn\t&OeU: eaB&LU#p}Ȍq׊F t|tlu~41VMa, Կ,tY/J8)RWqhBʅ掟ͽx Gyx-Cf*n]RG;9|fn bK]L2 x`^0je9] t2&c=uw#wHzvNu;PF"ma^'̎Ȇ:l j̿dYp >+܌s,w;B#͌i0|mq`;^CNV3]єй[/ݠ1!u8onxs@2#B'w!,`>ݰ`HrjDF@z_6-J\"͏{eH+SgزsdlRJjK| {x͍AݓW }\+ʃpcRÖ/q&<j8URfᆌ=ED%x-?rXۀqs]Y&x=򗴉VAKqMVsU]w"M aYl:@N ԮY %L#7"|&t(t1hJB>xK yDceUWn UB?)m'#vk[|IW-)e{ Qޒ&:Y) qdzgO:y+GSlj rF=l=)~ e|g}[H'_eӶ"8 `{,rcҶRxvS+;ހT+22,2XlTa!QM >ː1<\GHV srQGHFeg:aӹJU%rx-؀UkJ 2P-}X} 8"(s(Evl`'.f`F8yLX~ҐksƷ,(tk4Hgz7Qr$/g $374M3=erL@Kdz_[(4sh{l% Yɞai/CGM%뙙avE5m)Ξy;D|1I&v2XkMحJ>h .?3FkS{XAi'#%4k~9;m銺JP 3|(|" )N yfqC Y$&SM_"[q\5'bPF܍:u k\YhЯeۥ ;[Y֒=7yOD, k;9$&dP}GϥdMzIZH5jr V/nH^=1ui@c|-K Ei4bv彥hD]#/s롧,ۗs)u:ktMnB 'K|vdVؾ&[P5P?z?+i؎5k y~VG. d.fO%L'v?g^,6۩x[@-]/O@g5E36 ~uc"irD3Mf2QF׆B(|ej%J;GZ-n#Os82R0烺&F`Omg,AFB S ~K9Ɵi+bp 2xS /Jz)BT|&qe >?( uQנ m뤢j 1%G#9=-o5>DU¬Qh=;ϞkS@UpSټi )Lg;-GxT 7aA4I$d-H.CrrnPm`T{Bam½F!ULc$eԗ@jb)$eU5w]tp}}jPCL/4/lVl3+Jo .7M 4`o_9}=L+!Z 0l󥂂xNk8Nɭ#p܈!s3:р܀ܣT%Ukԏ^J|6&/6V%tiO=(kZR$K­oyUH[ukŗWpI9=cZ5('{9<4ȃm$49jR K9luqx+7OATSyh$hu/S+yG1Dj {ŕ~+0QY K:|1Ce~X(a&ޖaǔ[ѺeD[I^p #<.fU"qB5= 6 n~+GgW݀%qy<,o'Ж(iW1 wQ#Dxg!@ I=f6~n%UqXڏ]i2VPNiKOlttnxGț.LK_Y˂#lН. 37BŝAI[/ cI*^tVru'$VCRn ߭0//BA9l  U]NI(ua;*9SQ#oQZw-`1g;-jA910 ybƴd{_;Xo@ⵄ6ϫu;d;)M58 JeM4U2gpc >P&pkV 1ШC۸嘙̽n` ;!P0-\9SoHѢ,%;c鞰4dY@Ec{ z `lUK`3kD41M= cI0G=r3N9deo?%@)ƒ?f7G =ד)@56 7vP>8x+ N5Q'r7" Y3^",^W[N-mޡ!2-*ʆ{=y 7j8ͼ]cДψI;vGGNM`1pIVt1Ybt`KƑ2zX Eæ!?n`hMv,Y1*cI!)S!e0H2;3W$.8DKo˺1 y9UhF)JopʠG8 xu mLg~^twX·h}`W(mZAKyrL䣻{6y ~Y|<Q;g2U㾃>3~n'H"85DN*he^!PAfnvbiPa7ykg9'6cwN[-=LJ*@,'CI>–Sʗ2h/ztKpu{ t"tb2ö<ՑX5I*3!:v_ղؐ M4/|i",Q&K<'ZW ^ʬ|oy"{[RibAL;1/}pjV,zh|0AmE"ysǐ뵌~z!!;=(6@&* {?^`Â3<MzG/$Kqt4~sf藽?'.ə7q"0R\Iݗ>6iY[LMҭwm@r#w+L\\{x`7C[ mU8l"!K9υFh<&GSd# 6K3c=r/f˻JT~~Yft3“#MSc<3cŊ_J߇uSMu)gxc.ytakr$euUNtu 0fey+e'<^Z7Hf^8ӫZ+"em HcglSI14ިEU WL :<@u ̼97]uh(bX x=1'mڦFN„]t0MۤӲ[ -KW|sMAaGD\+o=w'[óG;UWlxv,Ͱ\͍iV 3=?DC~ʊǦv:j{p); %{v&lZa5\̙BrAbǜZŘ3;3;#mdg&&ՄoL t ;PhY2tj4#](ؔ5df[PBQ_A(a&~V}'$+F6?>p9KOz%MMrC[!o98ws?{|< o*o85XONWB5GQY¬Ax63FBAs0Ev=Dft4!EtHX;#-3&_13Yy)h;&0zj혷DԢOp55|xx˅qi^ n:4)JB͑0叾{t:E>}[g QsPyh=^i̸R&4i|?"g-pdکy1Z~njα;zO[u89"80 )a$;]: Lj+CO>g?w,9߿or yePc;(n~[BmKD w4W-z~4\ɀDkikMq4Ot:Pl .JcѶ>f wW Z[p`y5/.eč͎Y 9]y.}1IYEnߊ f@ra>5dҲ_@AwdODkp/*Lvv|ҿX;5lcky@R!/ǸDu\9YH҉&@^rϖ-oSy}w'RUhp0A*LJldbqx;!.}090 u=<[dPi# "xEAxy؃l*3y]{J$HF)t<-z =h멋 "(*4Byl).+1D'<\OLRݬ7;-_rdG=jn,JbVe˸WA Obnt<4KYD|{GڨGD e,%:n^ G]H&XOwo;Q efY("Ua 5Wc][qh[uPy`7bg"C-XB>Ky (8g#^jtf .>y0͔8da:ewTgz,d# `C7w<:cX? ڴnJo$5j=B)Rހ,@V0|c*vcĻ YDsFNIBxd*!tgŮ|mMr*+9+2y'ZKhkҹZ = M|SÁ(!}(i4vsJYA=//\뫒`([jA*5}ӗ `IdyHl3V``sF=转F\}>Kބ,%ptoG[UjiBUsL@x׊9*~9 'uѡ~V#3 ^Ei ƾ>skՙ 0Xd!c(o-"h‚oP3b@M1(e۬-x$}vk]T'Œ39W`5[GsC7;dtFOTw|xm4bc[^"h_ y+-?+jK}_zn)鎶oȥ'[4}$tQak<͖~9tQ<]z,6eP>q42Na `/: c6#mJ;^?KO2$a3F` oBb_e@j|9*Ѽ/Y gp QQA]1q%UAe3&סּeq`B:aZG0@5wZx7]Cbq)XxFKÒb_JϧN '4._$ˤ-b+9g4d*عY?D)L0gkqd+cxo똉ȕ]`+C!{{v&I҅"Is?eER5yN4n?:6.6־K3g/֜ v4 zRdB;ȶer6iN1IBd^.ٖc $5 cCK;oa2!vI ki':[Y*%c`OGIe D(w8sG]Cmw1YxKFs˧A]$SKo^[B@{&Ui;\>/|oqYyV+%WRuvM)%a $d{ww+GepjFN'b#z0y8Mnli1Ҕs˂vM1䥒6*@4A8,/m1xa|B@sܩy7ec.gAޜ[9E~] 9KY[R%8D+[euU1bbmJ V`{#MT#q B`I]l?t&3s]ī->OZIBu=@ Uԑh2KrU7\F^ њby4ES PC?W.p뱉\`{>Jnbҏ3T9 zw ?ς0^Ɠ6X*膓D<%yOo5T)Ehlb&@],pD:6es"]9V׿}!ފU6 \P5d ɶ C(t \)j!Kj\ k+J( Չ^B篔j8PL.FHA'5^VAo4=o'1IIFh\j4X_x!R]Oq"%bôDNg[L3ٞtmY$qve9m7٪YE)V9Rp~SCTb&jw*IETQɼ\=C=c2|U»wEE"|)H_I5I )=:L%%!#!lS cʝjr[ 8*=H{n:i8sJ{Z܁ ܩiv'+˜B32 m+ b) c! N ^ǿdn@"Hu/敮C\0VfbAXYy;|tw}"$CH Q>c!KcwSa3%$OU:t"rєSyܑWn ;0`3x%ɇf!!hz m==yQ@KLs*=4TL Ś%\U;g \T+/,cѤ[KѼʏ, f>%X5%H\.2VA IR1ѳt17iSX}}crAhSf< SW^0c 'AzON ȳ-X$+4C{wu*zOwcN)J_}YM &4{? ].TM>QL秏*2sGKѰ3H Pۇf8MhEFZg\6UdNSewE6/ Z]032WM|,;ڛT]o2!KXEƏqD3EQszW눈]Dߗ0WC2? ܨ%.s =7(dBP*S^U7Svr(ctD"AnJ: NCS*[ fw.yOEͺ %FB CϫYjSFKƣbEwkZ|?^WCcql"r疕O>Wuы\8DWd_mgOb ؅YU$V0{D%a~ˢF e]jv(h ! ;*,!tH@u 6p@u:4*6!nXe׸\=I\6ObZ @f9&ZGvzPH`z ꣽp[=gP. 8UUjw\xVPcH- xX`ژ*0J{ &ޙ18ڻykKOLXЙzqj9%&tL EqH@[ 7@њ]=+Y1oW޸LE#ЎA%Tl n̥PSϠPwulau ;j#$tYܹ̆v%4q*NB(Mp}é*MU6voLU6@LO`J^/zeh3pIԺ鼒?D> hyշԘt8p7*% ͭu;ѩΜ,j76q8J;AiG8[0yȪ7i<[U<FȽAZDhb8:mm[D_Ҥ-ʒsd~^t/1mvY[H6h$`XVB(F=7Aqr6ji~n9ćU-_Rȶˬ{N~9NMQ+>!@/l/NRq}<]XP%Q1aOcѽ+y>ET4J;q Lֶ.TWve(i@ycߺ}]Gk #BJ-*晶hٙ D87vX8(l Mܣ:rא[/ BGGoM7g !qƚi2=ͳ=@Ebw.T/n1"_Bx])*/3 c7 AJXkdDz==_MwlGJ {1_!`ʑDZo`.`]Ӑ=$0ՠӓ@YV|g<{ 7dIU%8(6𴑝?P"<2n݀@qQ/XrNǖʍ>JxoO`3sk`IxywꘪUWi4h=q9b+LSq/RU=+3'ą:}B }LK[]oP@]?ykJDWJQ0҈zӔn*86{nN{G+TAf|,z(Pzi3axKMt]ͤ_-<[MFI:΃' ;"9"b7#f$3zlCf[RN6glڈ05h И2I+}]8йtxm/m }$|$Z#܅B0Ib'ڇ^1q+oQڜ «:ITP7+[/Qm'XIx~_W9ӌv`n:z!8ڗL[b,/v1E L-hy&0G0mRW}+匩8wl:+9)'|9_ ՓoZqi&ص{?P6?7Pq/<Å(t|'aTC5uN#882p,ٽ9EGC$&CJfbnFd2^0YZ^=ͫ&Y٬=y+*N OsD]x%mFN֑ 셋)`@L9ĺzwRd~ң9ZQui$ݸ_8{o1 fb!:b:b[[,2&tXeVT| r=`T7OT*:J쩹is@VmbtPJ-|,$l2`aH1uj f*pb;lm:fU4yH.qPEfQ ,]?5ʼnnB # L#tD bW[^R{=귎- @_m؊DQ<:~BEl+Z#ݣ >@߯֙%-t B40ϓ 4&=FJo+ KB ,d-pvAw_wP HX[VJvߔ.((n~Q]xwVD7k*Oߛ`]qeH SD6ˬDIӡ9t)C } wOkmrroDP/KLrYZ$92e# 'e\KOFMQ||.٬QMR*F^HoSsIin؂{( Ĥpn}7l2*@T%<֗nԽU l0}F.`x5'$_]KEcʼ6lہl\u4̈́<%F.`airm|{# ZouP 5:z8n ިԊQ b$Qw^]P ;#B{KdFa#x5d jzZ\\~"pNES8spUY4w-hz#Q:fpc3*mgƳf7/k@(G>lINT,V-JN/ajkC~|f/ !u&kup4|#rulrM_' s[~&!0. $+@l(?t&A3/@>%{6f M5DYs}X1DZ+co@0ef*~t[{BLSfKԋa7,j|=[B,X~9Ȳ+J+ -&Ncpïd%=&bci5KRRS 4'S S|nt~νGE(UYuWj)Pr,5 Ŕ9J7 ~.%YX'i+T {( ̞~܋#7Jz#-=orCp>kvj]i:$'l@q!tHa B1LwC"0M]jB9{Å/vov NJ"S00tA$t#JtE%ru^mFAtZ e^ao3K]oe;́Suo+3 PwHkM&Z}+gDWX%ofŻgjw:EMv5Iq_̉e{hcPA <瘷psz x."uHGHj\2P*\³r6jlIk?a]/~=[\{]+S")F,78R37pC}}K*&A1qi&{xGiNnaRaC~}X Zh\Ib&UdZfm-s G1[sig_Tp/lײg0nOdVh+3l`3J|+}y 361]ܞڹ5hxdoA8Ak7{";\nT7z-Q"ktSv# \6^ٶC4m>Nٗ"9E`Y~r`P6+*_Ф2xdJʌ[c.4<͓Iۺ,ʖ4܆|IBuWŜ^Y A|XQ\3B=\S@(zE30֩k!՞l_.:n™镰MHˀb ۸_!Lu`zGF bU~ƒM`jޅwj"n^ xؓ „s~y@2e7..˧;i{2愪 Q_*K$iզ*zvv|nk֑6s_[zxv,VY; ő~ڑ(jY %p!|;N&M&9Bȓ/#OnƓq9ڧĶ ްvG#4^NZ|]%1p^eX KP\a1dG.z}bh4%@VBqQXWZ{90͜` uD}"v-ߋ`戀kwb5f*ѹT?^`4mvs#P+,A \RG\mVo}sH rK|Y:߂RavjMxo⤥/ ~<MdIC+|;CRWUȷ턓g}.'}B7_m='4ཏ|)EAf?$60ݠ?O$mmMuc/xR.`7kdʥH`&KZVͲ$( ffHIz6#)j MV >cgtYz*{Rv #;bzo-n' oäؚFW<`o_۶!9f̡'(vJS~HQeL{{\ @[Y x$z}U9$ )=sXKf, XŅO D U:i8A{c9R.ƞQ֐ 9 uwԪf >AF+TԷu9O9[- x7xȤ8@y뭐'Ve">R!ΜR p ye}D@x8 RVX|H}bi>I!iKOqEg}Zʉ>ixP)̠ʯ- ulyNf$ B/N붟!ѳTֱhxF8+*εh !*[h,w]\ޥJwni|ͤJvcW'x Iʖɒgovuk6Rj\@\!d8⊺U>=bp䱚aR1Ay]}GJ["^׻I@Twd?/9e9W0OٝZ誛Lݎh[fx}}LpBoSᐡ]VAS}:ܹSDr1C̈L0_)#tny̤E/"/9V_OfH܋,BV6c2,Lkx/_2ߙz~͂>~x1@2ʁ`7TE 0 xxjaf5M^bJqљƹVRCX(O3uG^:d} {zE/ t/Q#Ҿ-eioeTzzuUf(ՄB`jZ.PxЀ4)ÁD^y,б+,!ҝQtl ' U@qгu@NkAMM?6zlL wWkئcWH""D;Q6kzf>U;8*Sm>]A+cXphRZd'3_n|Df@ɀ}I4}r ˟ 7ECcj框lCbrϗjS"%Nri5J\6^1F>MVXcx 2H L|/6U!p5LxhN@)MүBJ6PROԙpXrXn,фpƂyIqpT !*y-:@MiaRkS~Q0!,94ANFiӚ _OmmCg`kR0mSZR~ [B\ ^H$~r L5/uC [W`qF] Tcݴ42Hg zhJ}ʀn#L|J*!'PN9.m Rk/ Tb/©yd/a37-.Ү$h>;Yj =uZ@S Z-lFY,(v3?5fN ~Vxޖ_Йw}Z̲6tA3:~nl~cb퀃:J,vMۢ0MUIW3+drH OrFqY8E2bWNojZ0úܖ? 3l5EIYz8vo .mC/ |P,uqt_ķ+5KʦUW,!({Ԛ W؆VӮܠ۝WQLBl\l#ސ!^d#.`^w~l7RPgw{,mL)!]EkJ;G)O?ԡTd& Î_=91r61.m]7DŽl# 2&m{$ʃy8\L sڞiܠ H^L }?adJ :\h]Bq3U#w*ɀ5!*^6|,x&[dHwUTuP?iΊ@"a.0K4#UK'DaC|s µ I;bq,B%Oc.Sbѽl<^㾛J1ᅔUo|yO{.AL*+Hޚ iz[Џ.2€> cev̉F]W~(tgv 7!ik޵7-۩@Q;#S3ܤ:U {9Cr;EV| yNؕ9_h/wl F^Կ1`6H>aȒAB&lK]4־]h16Y N}};nf%f!e&)iwȝƬguKTihs~OX;) حZ<,M/P{8亾F멅K+79ؗFj_A4 D]G+B:eoHphfi&5-!coZW\ = XH5J?Aj'I3@u_M¼I:_4I9S)ۂ0S2U?.{nu#Eh7AMΪHi 0wR6U-U`Cɉ; PT+-C-0ۏnIHMhA, oJ;ZRJ/93[nz,9f<U?rO7F5opt"8Yh}>]|>ER8n}]S-~a"y&mKmJ;+0羥W߼:'sTܫ%o^v5!W˻ 9HvL0 vF=mH٘򭘩u,Q /+k֬L2dѣ6K ڙOJ `| \"OJrZ-IoCRE v䩸dQg*/ OASpɤwmX 4IQ%5 YSb{#q$훓WnXJh8&1l,M (n!4Rg4l<#%8kh4 ܦ25 /q]l$z^_n>HtЯоN{PatJĘn3&o"L3/-eNw"/b0۫eEnjw-d)!oo)ygs[bMV?;!c4{UK;!Mю j=E `SYztn6&a%4d4 /E"BUBOG\|\*><};zb@ɀjoE:Ӄmd6DƇ2nOvmv "KE4o4Ag,Ae͂ biT(TCEFa|1D{\4KxFO$&QRVy|?߄_X3",$`"k Jug@vL3C G s4]Ed=+2O?jJ|Fd+  ^MIx+GEn@;]B(iٕp tgNfM~Q`S u3%MIOv${Crv=!t}WR2'{FJΑy/'Oynahl~)Sy.'VI ~vJs'k'9*d[^4 Aoن =GG89vsNIҽh yIڈ }Q~m>sC&J' kQG9џ8*I?B6P5Uw\*;R<`T̄(@8`&)DlML 4saa~AsMs2W+LGX)# [2maV+uv)U,uZ <_0.!6LtP~/ʀGx5^8"!/ veA: nj@>FbפqL?sh[?k{W#lqX ;xSqiмi^ r) Ɠ`1l#'Oӧln#eΜ]ʬlգ$ bI4wO+ ou;,]>awkw9yjumYL]z3(Bר.vh7#E]¼\Vyie/ 6k J8wmX'2:Q=k$IY\%9\[@޼Eg%_YUC=}G ti6QL aVz况ORpX9|a @ͣM<%LiRNi)| x)IHެ8@HWleD}&*>;ț(*x ]9k/v18*č}J8 ) c"i ,s 496(Ec&PD"O2}Mnlj'ulv>sd"(\J&>"?pkOEy#۾|mtV''KUR G-fm-ejaiRJ-p,>TeyIh % ӭ{R{V*YZ"TMyIƽ~t amaSxRzYTu~1y#L2>?b1KS# g.KI=ȹTl 5 sH! |Ns _쯲~ag۽S?iW#J.^4J▓:T W?VB0ȕqdO/Wh2C 7ON, PQ~S,CK5^E EnX?OKPbY2NPƯ⡜0pQ Aza$%Rab Lǰ 3v5_V.|QAdvҿ!:WOP'0͎~gkDow8Y\u7]AsM־[ɔ,n0؇|%vY2KBwCkx_,>G-2ٰ+øu#0w k0} sAW#o@Rm;'~Dv?5U԰!~$rq~5guݰ8TqDfN >CbeC(( 4mv4ת=7!,$ Gf߮ ;AqaZ[FIRyw\[æS c7q>"7/bZ!˾QF0qmpߛ H_IVt,~x˟_PŸŠ(=D:k/?φjv!~pr?Z%k1@)_3& ɛlu19BkB;ߦ.\`v3E 0*%53o:•{SEo(j9UxGޮ! kIkI.ڽ}T~3B*Qʔ{Q-- 3R5jJ#Qv xTIӋ`=LI&M/[MPw`0oΑ5<:t5:/ԟ;?ChPi;HlwU_QBt%!T,_<wլ3Vc|> A(D(bD1T5OZ/4sDRg4aazo8jgDXF~QG+<FdM%ɽm\>~jJqx1CJeDҬ#~_i5@/gí Q-eMje";gG FQʆhIFN>EDLH~lG\Xl0L|P `RDHz*Ж2b]`M 39&8!. < 7ńHeact)_h{S.ՍYģ!$bׇ}Mߍ9"(L`쨄JXVOs\$3u$SR&MT>Ѯ`1U32vjdU\ڃE oZhf3lgg#w`t_xmyne™I$ZItG uz`Ϸ}[]=7rWy^1](VLϜs̈́nƟH# NœA ÅFO3ND%<͑A3lគW#.sa5Ť4Bf|>TsVa ҃FR ൊ}">ODfP&xzYN_A@CvE_ I˓n_CgTE$F-u-'EXgNjV[)ɨG)db!yDbyk7jb9>k{I.W;t0?kg7y"F"%Kޛ?t$p:H m陑{ \j7!3ҢrZGO4MS©8WCFHR X߈`ȡA3ߡ e0$eGaxmӎ TICr%X: ŋR8yԟ*vʬRg R6) ӵɄ$@Yq&:`G38ꙬCiA=Mg.k8 l;)ih{)6Ax(`YdyU [z1w/uU&HkpdۅdR {(iVSN, F'mJ4iԉQg PIhNUr;#)rp7L>>7vQ8_N(y 6ޏn /Yugo}ᷞ*fΚb%-Y1#mQsyVzoHFf۱SDi~Mkw>ktG!P! r%tZEQ%썔;=0rG+/%R4>. OqYS=b:eQQvo+P7?H; }'+šr>j 3Q$;l]zCm5,0UK ͊5HWJ0GT!1il!H l".3s =d$Pv|6猥 }ϮOcr2hL^'׻ PB xK5-i Iw:l,LV1Rk+3LqE`2fNϱsZT*).BTgѽuTQSw,B&T'_4\Py._"K؍ik< T?g=pUDq4# 8wRKh3"Ye.Dvv>q:Za8Q4,724@:Hi#ͨ Ob_Dfj@A"3Kbn9Em(R)y80YM, w*2ګdMo1.?Hr'¤s)/B;MIdG40LP04m2H׏"#Eb(w!@5x2"i#81]Eh:J٨Dnl.X|v5%e* C'o>ɓ|#XID^UksV,e0mv*Y߬5CV3=2<'ýFVFݥ<^P&W-{t:!,w~E^[ mܧ ć6_0?$ 55))'Mpdg3ja.e-.,"0vKka+xZk]a(YEҺ=&Hta J%w90u7={:QӖg?&0qw+ zqgј?Jle /\Qd*"uv+W\K g"m'Z: v̼aSPXMAӣ"OBU|#m:j1AӲeyS=-_!L_]kH() B7zGg H]^%sПtRSmO, ɧREzWy$'Qp,$:ټu0X11sz|xUb)jYHCxbKd,p1BXTddV$H9n- ޡg+cU/z5Dwߏ5ijJ:a~rV.ghfn+K2h_!ڢx1lQԒ> B t#I]~Ik\sYTL4"1 Ǡpx*l+R5kCHA`!Iux]z:K|tA`#eCrqv`!4ծ5 )356i26@֣)xF{轢>)0Q "_忲2qܙ KWlG>F:VcPIIuAP ]nne|> 16)B;dcIݖfCLPm+o]fƊq<0SvU\lэe8LpJ<ZsHƊJPG~ZoiI1aRui<$hrrD M gdrU4]\Œ7*{m]Wqi5ѡT'`Mo"'b{S$or5(lzmW2ZSrpWfR*.߲ /C/K4JMtb6:,xxq>>JoLj{u؍{}ӱcʖ9U zte"wovW|nh '$%ٸ+ '7&pU?$]ξxZo QTsY1KHyI5d_c>h7Qa[LS8H+ͺz|uG~fKHYo})L&?3#QㅰhJ]f8;<uOU2ȜZș7,ڥ"ܢoCjU{ YFNnw7 &Z~11H^_!֯>/r-W  nK"+2ޘt~j%ꑰq&6{B$g vݎЮ 7`C~^ a S%Z*lEuFBЉJ)Z7_R3@Rkr3)+s"߰qEոw%]dW:`Yc0ձ!ͬ<^FTֽX qJ©mGzQ6 gQ'łi |5Vrt:9сe:L%U$=ZmF=R*?锈Ay9DvR/S3Qp0Jint75e̡Ni!ZAY6!v=9o,_Kn:(/X1\SOM&=-Є p?9 LumB_%TSrpdYveed[G}"a|h9!b ' yvx /Txn+>% ` K)_KD!9EYQsJzO]#N}&( I5 ;` O]0 H/uoh6>魛n` DKH>M&$t(rɽ?t]}4Q7ӨΐB2gMH8re'51BUz8Λ =[OqcZFVv%v̌ƀh dpx8ds4.n0d);y{S_lilnB0E#dlΜx x:۾Fjr`yʩP~6GwS sJ)$2K y?'R']=Al͊uA}SY.=͚ ?0.Q/;*6P7]3lAnL>!@KIM^ [fفSxI?x^5֓P]`Su` W P*""/MP{&i`Gx1܌7XY/|w,>l mZhB mL0C3廰Y)-IzSC]%z&A'ŏKZ|Xyʑٕ&U BӞH;J_b D "oyx]g)#='Buԑ~8yI5aV&]?ijaK齡jL72/:{oh@78Ɏ7ޫg۾w Q,m8U)XKԛa툃,) FaP-̪*~$xQљxdb]{.[OJnt{I1,: *?jVH ݶLm\ͤl˺)9MXk{DU3 !|,+D Q%5He=ԓ{ek'զ)His)!̋p1emRΆ"wF bQAȔ3]D*Xp뾠 Q8F&惻9ft<ƚ~f- Ae^dFlPWqpW>%h 7O^K] *ÙeK>m"=$KV,o6[U)]WKyYא?}`3_@x] { /6Hճ,O%hܟI9B; .+DSxGq]Tqu πvS d|i/q*İ7"t+\?oa1]GBvaqns (\%>K'%$MogeRᙢt[;vX?w0^H-UMlxف,D X/rIa6fkBL.j|^;G 㓠R$;[% jU*eZ{ ʈa uOUJ%CdjHI&N3[v}_E|]B:&u_3!M&Z#`? &BA[Jڡc,bČn/w9`@羷n0('DMB:V;!t#FB@~#RprMM-ϯryzxCxhKDDȢ+?nEO삕c}U<il,")uVB% O 2yM+WF s5R:UrFBTMLSЏKZc n;+.{9/Q?ڵ}x͓/5OpD @,_LK?5 h p0 ŃU]>PF5 Jp5zj*1_3bbF9Dd Τ4bzr*h ?: Hz^s/s'/7-@BzڤjAWTIH; vWAK_ cCi^XZΎ˲|]D|w9TʮMH{-(*-֠^"#xM!%A'pzR *[3UaZYg9t긦cYڏ :Q_ǻDNB q9nuoHَX)lFga1vWF? ѷۄO$ ,_eM=Sd\es<%$زŒw@/,%|3>.;'y!h,)AlғTxV|6 <;ݻb \1:ey0\ZcWvU}b?t; =M$01eVPu uHkm@e@sgNXdI9T4{"v=s`4SJ1f5pmzQ>2vUn!KHXZOЇq ʀaB;!8YoZ-RҌ3$.x`ߚNv$xvޣw[nx!%q40ILq1,'TxmMnU4|j<w HMqG;i;9rE=kbSK>krYWT-_v- "kyY.\kٍt-Aqȃ^S?s=ʶzl#=35aJ3.C?]*Xٵ΄=pZfٱ" k)1] N HJ&N{_M[lf㯱[ɥeJfqL98Ap2d:+S~IΠ8ۻCW: $*RJ-#h#@(.,#mPGZ&=Xg?,Nfj5)d-+ۧS UݔYǗKT2-,ՁEcpHdտj |X=޴aIR'*@6\7SWpx.^#w⛆ wَAd&K*(DQRptRPmۺ$095CZM@gU~XYMs65?,S׀`Y}ubW@,yT0LH?|IsrbuTv CEѺGo, Uc[Vls0Dx8L^2@?)e[w<2{QX'3N3ܜ]3YQá$Qzg3YZ*AFuj_3'4Bc ?|rb?ha#{Dlo2xokAX['%@AەȪpcH.[t2 6j1Hp؃~D%]_71 +Ϲ.~u vJg!C˃(|YRo>}䨼_T{UXD}pQ`-s0¢M2EǢi"ȅ٦/c# -SMwp3l.IAdςkNźWꣁdQf'F. I˸{}d$ITsZWCF`xZ7X#<߭):i 'MsIh AntyjtDD Vm}jWQvjĄwDk4Qdd_NS[fNrs4#&P%:4_3(;ZCS"BQO_k.M#Wh,  fAoTVZacTUlqS $I;C^jZj$`JSAvBRj핹oxU^ڼ^s(M;gqm&bB^v!kMZgmmi&7kwGj|;t$ dz2JW֜Ͱ+HꋴhK< U ZdvX<6AORN2:`Jϕz' b:|rŷy/>>\^c2&Xb̆GYŷS_{.yHJ421ja{1Pr#_m7DžJ}r1H% K]Tq2czTbGsݓiOaU$$Sw042q?Q3єLAڎvjI]jp~xx_xTSR(YFa c13ñM!ƈ-ޘJ;щ|1ji}c%>FNCiyQ(=[@PQ{!M_ `kf6yw7Cܨly?^QKm%THUge;d+2sADըXcr:r/"LF}gVdʩWl x*n29Kp$H)cpsoةtn#rr,sW{.Rҙ Y׸ZE} zӏ67\&#aޖLA)շ?j(8@قrYL`߄6 X}gR>{ NstuFIhk^oyaMLg naJ;K(5y𥿢;8nzbk]06nՠp0 xО6 RqiJ\t[gq_;%~}^]5,H5E|+i곙2-hǐZq~F 66xjZ>,6.אpbln[cik&_7>D RJk%HpIA)EϪg[*GL3t> nFȀ6IgD PSYsfrzA%y0xpvh‡<#Έ8sDzTK ܆È"EXqf;[ ÞhefL8`՞! BFAp[OqsTז>oձO9m9Ԑ!p3WLb.RI$v@7,CB\*-_ȉj]KI`9yt`u?l3c) Ga}"R/e*RPpLVga>EtAZͬO\v/ϏÕpDu /1MI0 M}ĪʔG|3n?<|% 9hXF+M.P3N/B(ykt8{.=W 4)Wy`<夝47zbc FAMN}O5Q8lȦZ@iw1 6_v$3F&ۆoN' 4+,RL?ѷH*۾"׎Cr:tvvz^܅%p'6quLjA=pcwpĉIsCT]E.)hqpIbާG'?oGd??^HׄJC x *Ux%"]^I:Ȗ܏ʔAYP|1Zv'#V-x:x#rfh_X5uϜ@gv.Ny༮G1f Z Mv%kG#WF_]r)!Pw|s%5Agj$v )}R{7: $dA23RHxZb ֚E1p:?ՍRr?TQ8FoRF UDMʨu*X6ѐ}|Иx60#F4KkDvvX'_>x(68 k#=)ͩrrѷ`MvlqVXT3dbh" >uui$YGM:X Q4g͕p&"jVP˪YɯqWvkp[<N8UtV̿E.vXG|=eHQ1줬qa*t u4dm*y׭?r@<W;o2."7{po%(xJߚy8&|+Sܝ*[x !$7,m0 -;ZDF*`8cn6;t\gpLJ>"Cx6lۓ%6ڵ_za*:b+jl&B9ҿB.ZrQpuRC\;?q 8y&ڸuzah+RTYFq#RȲP aGu kԯ1t?UZ_E(| sYkmuHɄȴZU?-0[6ܒ0_C{UP!}`JxX: B"1nմxthkѸնk=&v 9W$+ڛT CGDZ厪g=gX.2`v1fe|?A_LdO"r?+Mas /, xyZ,,oH>~ceF9:.XU+ԋ_ ڏ˩}VFOee_mv:.ATZ:xPSv%4/cd;G [qN`>/]6E+xY }"8~e^Oc[MDǶZ#5:. DMvK*4NmYԂ-nH6cqXD\|^Yc?| h q{x?v}U&G6b!GF8bN(]>>6p-HhXx '8D:fs6詪*bU5he<迗y0Z؇^oysR2cJ. p >O!1B,>̹ H] خ ,sGQ,+)hkG| XaItSwa%.KYM#( ^D*}D--/f B!?nE:lb k=KQp&5ݘTq^N:qlg5rz=:/s%pPhaʽlrB=t(*TܜvbZ] 9?UZx F3_"3W20R5yrf,㫗W%oFnIѻ |Bpqޝ+70ƽH&CC>[7({U'wQM38}ƍ5M 3%È8wܚ5Of~#} E?*Azj?fFxsb B8kf9'[_fvqPOƅ`#yZFL.Tw Ѿ:e\ukGenLh5-@ulsG6+NN%ݿQ'|ol}OFu#6(lg@3@c146z-ev gUhINsxCv/f|jZϪ霌g*^CG[}R;m64;C M8ӫ~7mz¢3YjD(yKd]߃7]n|.=,Ib4 f*-x1}8`"WĔe;kylgHktLт986?.* G FVM&Z-~gH8~_Z)*oROLSir!0|mplpmEHܬ aȨ.-m89;.>TK֋NgTn(epd[rp.Dk&,V⁆kD$K3Pt]_9f?uݗ48m㤐PU;7;;̥0ɅK8dla0Q~؎/]HH믖0-;fH8ѱJw\ ǻGײ@zC4U;!]ŸGFjz)э 8.)Bşw^<2S|zC-kyhɳ5 ݆vT؁Kv!zbv9֙6r$E$Sih99 1ͫ62kh0!$ O߁h)x1k5^﭂uLS@I桢 +׫NһUϝ7 >]H aybJBv T 6yEe7H9^u{Q$-oI_ydwn."wW]T C4VE`8MafAb?T.%jZ_e_m> v[( ]yIp/.c0^k :dƢSdry3v{z!p~WS5Fgr y~H +{@Fij ito2TIyͺnr5dȋJV0^e'lP*=IH<(լS%&A:[./hV4I[Ks%2D4e:aX$ q" Qz)!m{uuMX/~M1ƄvyTH K,w >%E>Ae\!SrYOg8ScQPDk/l*S!6Kw#a|^[w,fr٠I $_KHBh:e;`"+rو"fui !$ɯ8 -3-5KcFO<+0Qj|/u!ɖW)EgIK+u>F*.t*+ȃ[18̳g)NCU]Zm_5>f|37X.[23 B5mӌ1|@Ʒ=g @9Ip`=oHPw0U/Eqso.㏮KT`helGv#"F>gEƪ!Lmc1%FX5](`r@Kh܂l7\ZM![< qӟ@W:/lh~S+pz+)֣XdVK#XZ"xkM?S 錷ふSzz?2FtK$ ieɀSp5;٢-o 8:$&5-}d2Ț‘ 4WD!\7% ~ӈh-~gb)' R|5L>ZV ѕ@!xEi;EcxCTרAKie#Ms0Qy懫@o$XujmhaÔɑTwvas~}#-Z'=`Xptr׃x̤{bXCH93R;% aW q+[] ՝g28gg2{poye; Apx:f ۀC[wbv[)vٴpHjVN7FGmwc'kI~TTwz'vFu2j |mkh5-'lJ1PwF4lR Ø@l_dQ5NcãZeT<ٷ~xx&d=j,d6s"յNSB4|63B/,{YU ʂm Ai3mS@^ :EBߡ!QBkM9Mƹ0嘃UiTA !<;3S8: ,U99Je5evFR*g+9j0":5>M|o0@nh' Cisӝ⿷J]'>qg"۵H?ߔ=:`ж@\@Ҡzpql}6 @\3WTbGga}ǕVtfԠVhf(;ɄqM^$xԒx"mG:#h4˝s.`i-+3Ae|A[^(8l !{KY=E4ED_!$-c8M r 6ݻmu4}nผY.IGAh{t\2X:GOZ2yAuo.AvajI% !tu{7hX-rpN}{QU/Af:kl(LW 0\"|iz*kt C \V¡bxs?Ɂ]}W|Ԭ|!XDZe>I 4pPۈ.SvLbkF8Ԉ͜_{n ˶:k B_#ݼOn CG"2vA]`? b,L_ZBˡv\/2gcMH\x^⸠ԇzn &,u93>FqAPE4JB+`#VO*8%#a@in6fl/*o^j0oF T_pQn̦IP?J9S*ŇnugZGG݉MfՀZ#` zoy_W3ݎlF̺x*LD "_Wr;1@lA9c̴ç'7?vZH%1"N1*fq>CZlh&$(c>d5C\=}7QҤ=,k< Yw(7gs;'ӡ29<$?+P¬'2qK%9 3q.Gu7D_QW+0?Tu;gmW'LRrZ{P5RFdWdʈҰ Jx]v@^$tJ8q)7[,o},ZSIgxăiv^xnubU5vN/([̆}fzm" 0hnEا>j [;ukmZ.I!m >X x=--_q"QZQ&Gz5;#*G@\zIm ,,!MH.kZ&{G㋓y2S'kY?# N$vd5D3j3WUGs{n x6] ~{ s,N_L`/PRIİaJPÂ{a7{Ѓ\hYdwm\ Em6UFuxo~ڕʦm69j6lRA= egI,zlʹ@::q@A9 WTo3Pf#TKy]y ut}U.~[a3晐O7 NPco]ݫ'0cdPEbCʆ>4U5YyRso-\ŘIhY Oo׉AL5Z4~8DAVŦG4Q]2h5XD/yfS>BZ98P\tqD:hɒtIխM!tE64 zmɈڿ-D!>j ,V]HD)(;s~L"6I=Y`7/rRhZ^5Zŗ덦W:m BԲXQS0;R&=%_ẏ%IUV?E URO;NjDQ' ; 7Ô{7[ud߃q`-.5vF"-upkM\m0&vYǎF\IAtgDκ]{0}-c\Q(Q~Kn1 w0Nꢕ-0'H9q/D7o'^ @ЗF&LOFjpȃ7ax# Y+8_j&xkb" > PEioޱ EoctBn6d:u=>{r\=zY=7VUj.yk6Jq!H3wwƄ 5V n/3$P >ȽV${>7vӑ S}e[VMklʂ]R^M2*lMЌHGg+9\\p;v܉h,㑵""3?{lX0(> (;k%x#YofպyQ zl~[\U5f,e&"+g.V7&/1+FmQǑR*V4ZZh~7 }pxF/#79-CO2j_2X7:'"R-v #̛oW舚Yٱ"t?5n匙R$A47 K:r;k _\Uxj톋h|pk}9V(D&i*Co񴿩\"²7Ojte53 FK뀙۠VsP'z2r,Zӈڍl3ʬ/ë̲!aWУ"v&B ?,O{_Q _8oTnXMsIGbo)9gPA EV|$ޔ'}IMs[Iv qݵv-+a% +9Zo=8N2}&JH5̈́4c\#TbyoA7'/8d*}V ĊmK@—m$#. YcЮL?z4dl]a^l'm[dÈVҠk}.*'Vm0;z/5N)$1ɰ"cPݓjrPtko9 xWO\csQ|Jb{Ƙbx ޷%#NYh |$-Btt2QpOIb6LAȚ=(*$QG T7Ct3o%0,o!XuWAŒ^YG YЧz˰jC%D\P^ErJD9_&fA 363A{l~1mJvOI21'3AX89c"႟S|_̆z*Cݞz]\}T 8{ntB+|m{%!%;XHmJ#ޡ@'``V,h"M%ZD36 ?D36!![>=D8}VUPuW&ƴ6j>[ VZ&1"Ifkde QUlTDpu0(h_yZC[DiL <̪˦gQLzFwMIȆV'$34{{D-NXy\敷f$&Dx dv&ԋ܂7yعhec KmATZZVM^qkN&o {H5@bD'>Fxv֬/(-*\ViF顟0.TIhWp-7x'0X$ߦ$j*wcx=1LbDXFJ2ZgMXؒh?A_{2~苕( 5sݰ!WFe0~Q{{x$x$+JWzu+x_ l}-whAݚ/g %Z~0f'LT)~*2F%b*5Y@#XC'q3̼YT'ƴ0tIC]5[9K'c  .1d|5S5pڗ1~:.R831><MBXdrn KgT@X?2v!;i';{f*C3+]~jc ,a۩ɮ5ʹ N?,F Fi;.+ptVJk!*P~~+d]I٬JB| ęn܋Qz\F4(>S2lSg} =R5z#txG ’$}߭j'T<>OZeGp CM@9xjFCx w7СGB?dg ˿AY8;Ļ>絮F|׸gftrs~h/ ]c!OC x+qtc(-58 w%7I{,*{<6<ݤgϨ';;۝ GG1FqDswmnMMb19HWNBZIJ O,K&D ϺRMj;T"u젊'2,0:!d!;)>aG:r%¼胐㮸}xgHݪz&879>^(?!3] "+/8au(ǿls11I(pn** >ǚ7.eg*#ǧ%JTVfa1CH7%:ԝ6=)zH/gJ,Z5""qq9(W 8F \2L֦4#i8D{PK@n0xsrL "l݊0>/b&ZPXo %a4h]DSuTfgL8$ipEqit ieYY:D{]t ˑi/6}d].̰X}#Up_@yV! mT&l}1o?1$%t0,iBeU),V%ײ)$O""̅T2<ݸx@ߚDKÚAft&J ~bkն u֬sZ#^̉2sqPKuI;g;Huv"yln-H>/ O puw^DE&x`X ,qm[ߍ~ yjBZOD8vbSe;Ҋ+8IJm$~)]zY> _S pvc}GfbfFw1z[&Qs#ݚm[_Z.~w_t0XH?zSD݉X'mx~,o*q Ohsl$>ZwGq:!Q|ꓠ[~/KֳEtsM?:*nT߲ Tb#2t&AȌr%,d7҆?ƽJvVőEИɁlt$L͇D.)Gz ]q^c^AN1ڧT4[U=k4`މ<O舫y4Re Kb4M$azUN'WeDިY)uǂ9TAVӻ! u쥱|T,pL^uT|i (YPt~rok МfHHX՘ïW“~6>.Ɇ0Cq/c[EW9r>9y&la6YF"m2j=ٗ} VezF\{#^H-n6|$Ν,m1 /vxI&uﵹY0RY4npU`kvw!!H{Xt~rx&D}H%JD6A]CY)uxY8m@YI6DMcw_q >7e:rnP?ss?q_P%mX.uضC76\BT\$7#b|&:;*'4ΔU鬤5#ej%kqNty/kA0 *ym+ x'93]#Tt  {t "-ֺ[T b&3;#S¶+Yv_{Uc%U_is>jdg]sa湪qxfq;1;"g@uUKe5]m6íKD/PmPCQ0f@: p 9I]yb̛z.(?Q#>RXR|Vse3arKPsRĤ+K8 MpFcy\a{&T ],ThxHPZx(v{ k h2j ^N}7D H?P'Sb@yۄzQNr2vu)p5. M()t? rseNJa+Lؐ IپfՠKkY'Lv'чSAMK 4=S+OME>7gK4j8~ancˆg9m-cdfdc=/" Ѱ!DM/api̥\y#h7`BZ 8_zzfH>H^ |4Z#3Q<f?V'i\:b=s<0YH-3CתrO8swyM&>>=~,\ i[Y-'a12^Ft`PN3qXJd:auݕGn4D&85b-T%DO =ĄX^Ry'Lܛ2W6!s9GtL_V([=>aV2e [6u^HXz6cS3"y[IV6^I&gUzCF@g %|e:B٦Wv{"aP؋N݀gC 0SFQ1ގeI-H{ yxOL/\ũӛ7%Ne5#mB uwU0?aKV>ƴ\e @u*53j$ȹ|!NQP9uJZ{a*?ge'}u<].sԉmlxLU/<8ip< =M(V(Juso딮 BC`F9* zvZbŕ̟6h^vu>[N1_2xpm-k;NY>QC{=T :n9V$q{-XP2K*gO/X֠L<;c=&܈Ju袿vW :8E-H[mZ ˔mI*2͹lxW6G6yxFs_{B]}l WQUX˼mrfakuCWx {ux߀]O{R%|OyZ\+F/K>܁$ygN:H s"9(䕌#lUn ݵDU﬿>ѩؠ~ 1mL)V \.sN읐8ɟV;fчx(ǟ&$62%x3[ U 'nFulE寵 sRn͟3pS7X{0.Av/ AOtAd?]iQgN %fjX#RWIX rmi^DV.Ƅ_7bϻAGR^+pkЀeqhhqvA4Z iڄ/#>ԋz J^tԳށ)H"-&|35w1'vyqsUZonku93ʩ7x "׮#%^ Z7d!jM^Èj"\ ?["qIidr'9(ۡ:ߤa)W3%C5]7J7}k0Cx[rK˂H$.{)9_26QkD*&؜,^.kCrZWj4i!O0Ş)FUҔ:5PރMjNklBxLK-h:>ѸWX++Zm\"'|es\ȣ5ZBZ8Ax,\o_O}lE2. !H_.gqW bARC)eECہ-okƽҢgiDD`g͕Ӻ U1iK7.\2֌ĝH'zm+vp,>GwսvC~c9raMeU/c~7w0>ť;|'* F QsءT },lx2Xc@鰷3D85=hn(!5WRɰ5z\Al ^C(*lz}oLXMA"'S|=x^4g&W8[{ˍIGq, VOT'?%:ww1eWx;~Xl-cp ]6HSBvi(s=SpN](pO a=b6K|N{IAf>G*8NiD7KlDjcl-r羒^38]7:;߰pj2}ٲОhGΨ/-}']g`Tќ ?_Ȇ>ޱ| ՝r6s8i!ʼؑm#Ga,]ruOvnyvYh$BLe>g>>+pddAOKO[iQ3DL O+սmk9.258coˈB(r71~u[8VcGf!(ib`E[t ?qSe6s|hm;f`g^Y?O 41P:c%..%v xH l]PR.:WUvz*@9H;&jB[V/{>m6?`ja D%#@c sʹ8̊"(Uı2>"uK|]Б\G=heI @oU(jLi[:ZYIfm[yFCV{UltamVI.mͳj<✽u Yvh#rgŤ#J%Zoʞ{G&RX[ k5C_RwɖXJ03S·3ؚOsۙݟE ^Ão]}XNKP(Zf7>K&CݍE2-`,ZS^HmRFI6XM!AnQ} 洬R(J'+wL^'X?vE nO]%ɂ/mDnryacZDP'dLulwV ur :d1S ۺ ,}i `W&tفhL8mDLwi^mSIT2"y%9x^O(*セ rFD65-Vl)׮סMf, #(aXcnދά4h$ Eگ6amr" .mK|yȣb|Ϧ zy N6FIu:Q f,I݇ioz V9`ǨZBn(!q]^4o;2&IuSi{H+rOpזꥬ,]|pm9*3"Wj HC !R!UWkztu :P[rQ9A#nseCŊ SMƑ4gc_x!>F5%yLNfMQXUX0 h8^GD#W(_'Gh%y>A5K4E("[x$W6B}V^a*WG͵{ ]*? z.H CX>P8!/:cg`5?diHM]÷R/7CWUU>{ju [3ɗPzXO?3$.}j~\6#*`7Q#FtB~J8SI7sH"} YLbi~irL9LA h}@;F t)<5@a+yF@Ջs, t$On׷4J'V.r$3)CsXN#mS.f;6ѽTqĜ90 ZX0m{FY (*!t-T'vvjncb+57*O,?|qBDEKe?[fOT qOm:\;uE1Ku"#4[yBn5|g ~>fª^CBa1SRsßͲW&y01T6ۢRZG]7\vp"9*x~0ۍ-(Tд_wlxNeKgQx]ʑh"XYvH7(R7hD殄\{%c l E3aS-ѩRɆd.j|Lm]&6 pJKV) ~@3Sj/k|1|&ܪ/TAWN4 /ybE. N^6n`(?hm$41xOXn-#6}@ھ[EJ_?~fcaa,>n ^G|#eεBAGj-}KΥz8>Xg35ry76H$u^]$OzN0!4C˄34lbwH"JDM{+È06>KyQmDQA S.A(['A'|&ұ<4t/~y.nYfa-`/  &Emd)B9<}xhRے9n{;cnO֣%5ϟ믔Ү )qnOC6g+B?MZhs8͹OU$MK\{#뻵W%c@(JPzJT/c}m#0~t~I_fT/CZn~B6Gj+|% ~Uީ&Z:bΓ_G![BpF+]u%q r&D'Xbe񡌲&6?X%#˰|p!x毶AL;n+q3hHFߪ#vrV\8Ý-'B|IW@asO=l-o7>r_ $[+O3Gq0+^Ԟ{1_E\> _h%s>{ XD_MӍCIQoY7 p}Gg 72:w攡sca^p;֦h))R֩2N$.J[XdDJrZm߽8!hegͦGT(ZgDq_-Ey}Vq'|X`{#IpO咘>L3,ZaQׂeuUX$eW$O[4!dY_3f 9TsE%?R-5BRf1_#|ePnG jS_(P%IQY&YPlE50(螈EmoPdQ,*:F99!tiN]oE$LôQΣ7v9ٶa*Oi2Ԁ*k]eP4_Ԑdj&)%v<yg9nRέ\J38FTyPYPF }}DQ!7w>~W -d`oye6 `&bYߑs-]e^RVvZ/so%D$Q&3FRm$Z3StS[P:ȠAB0A{mB7%")(NQZ8RUړ]1@]#gI?f sx@3`gW%+,*Px lڸ&7 LS},mfhwkp1/Q]<rn*4C`bkxL4ڈ;2)q؎ʝL^s)źfl]R,Z1!IR1jaNֳK6Do*4g뱒$O#/!B6fÿe d "1wP\Kq0ɸmOWwa>kthZ]kɸ\ C)\W]Y̴h➻ ϒS3u% َ׍G&F#E 8f2ŀ ^D9qY ^vKz ]\)_^x L?diSA0Ȼh#I?g_]-m'pƳp`z2`Ӟ])Q6@oM$nC|.򆋺F]١rOdNQjca ^d6 } )#8EM` 1 )9@r fsNM,VĮ룏@9x^q2GH`r=sBHS?:o\IDyŸO>PR69>e2te_f!G)>(^S>Ca=n .Ye{ " u1;mwRzש׶}\5)\ n57>E}:zHQrF?%:$X'UL 8sVW%7BzlR*`C" vSPBkW}C,WЏ0f=c9[/ٸ 6Us9rw'IOt!'`Yt@1+(_b5hP1(bf ^9̕WǵE?rA6:h{[ ph1֌a~Wی5H3c;1/9P #mQav^f5 %LȰֺЪ*_+ٶD%ACKg~#y`]GJE&nl?.[UgM|!ULJ/O_/:H̳6КɈQ})V#Ehbz%Ev|ň%ڤzM"P${$vs=?pq/5gPBTknR_"P [F:S9 AUw k0 x]lGEX56Tr-[M|:owU65ZR&ؿܳk1'>iJombD&p"zq4S-Xu@+ [o˧1I$B]I PzIl~[62Z eVZ0b~ݛt5n|Ua"vf\GƒR27鲍)V s[$3gE%Tw2Ffjjo|n,V$lnͥ'0E0;2Ezln !\ gW1IYMN@mD媰VPhj!8\\a|g‹yxIoȢ5[dK@w& 2 ҼLcel%?HPg<pc#$p8B`1Aoƿ7ZXR'[95hoˌ'|/QQ+ji8ߢ3S nA&lW] Wmu M8 n,]Ham7Lt٧PRIY[Bp?XI2U^:JԳ[j͉a&WݔO΍ UbtY+E/UiFUFЀ<ǛFkg@o (ţ;?2rqh:o*i'ٚ;]zˈdaU~Špb9[=7xM¬'a^.&Zu \z:pP~4S;{wȊ^$&QzJSۛ&nA4ɫv͎ܰӷ>A4$j7<*,জ6·N+/^[n?71tm~+v:UP%aԅ} ͬ M=5d.ѻ`4غH ! 8%w.O@'~&.D"Nk]R|ܐc/ ~(w_mZ[jm;+FNOfL\[?fŎvEL DF$NXPl&OE$|35f'8ǧLcA.74\7h/p|O[Z,Z/*ӝw7$< Ky`G5΁k *kQ3h@ӫ;&ҬD-,h(IJ[ c;kPm5ZOk[юww8mZ'z%̰)$r ǟU;A9uCcEL1㳂%Q .<<`Vѓ8U#bԆ*}B2g$%%F&$$ {.P? 68kSҘ<_3P?0;NuCg5{l;ڟ*Mnlj)4~WN.Ȉ@P݆OJyq.6k ^!Í!eabݙ4~ԏCL9VI-"Dw}]20"7|:25y_.t>U:@zK9nd?Mҧ7 ahM>Ѧ1|[Rgy@2˶C<5lU^:/γo N{{y B_BI/Խhf:^ݻU,͌?z]j4ɀP+-:J)D0ӲF7<_vt"z~jJl;_cU+|"G-r;UQbr[f x!8P?ζfh^/ݠ# %zvEa@= k  P&R :&?3ORoE)iP3[>U8[p?!v}n1Ad8)ºiHߣk]?8ͺ[F !YO:PGu`Vֱ`F`DFԁK׽ C[ G])(tHzu)QD|V^P/(dC5kw|?DgXy=yDˢ7+ LkNp'ȩ}hX+v)Bz2}O JvWӽȨŖ@1gr?ğY|Q6k+$u)`ۉ-@uP~uvd>x}ƖSC^zd< 5߁ 2(J13sf_pzͦʖhٹ̥{~"]qdvqb[LeЂyꏁNDt_ SNbE iiAj_grJ4Ev0_ SS7&3+rHEB?CAgR J`T2?6?s??p܇ w؏AJq* rR5=J>$){2W:U, -8T"Z˴Q՜D[ v, Ge>^ g8μ95bQE@ 1W^ئгD!FpA.GBԛ*< K!rkvY/߻3l E8 5=нE7NL6|FI.Ojmpjr' zas-PHXun10ǛcT=HI ^jl3Yb+2_"ZMHD01\;~6MM=+6j1Xʁw :K+1I^Oy}xj45jp#HBNg-;y l"!AUkG?aBo 4GQ SǢJ[.7N;ef''6d. ᢧS }dpppJL6zkS]6$)64VYC\DHYz†xPUJr+\I#YN)R(=<='b L6AQ@O? r5*uQ /Af,)nBHYf@&Lg2+CCӁfk|:M{ u #=S DP8}W)XJtٚ A߳T3r}]w{ELeƁq#Q? -d4tZn*i!|#uJRNw82W%bL,LHz5ޝtĿ'*H{Kh+ 1r -0fϭjGH+2F^:yAl0Xw>XFvv;pcl>YHpNӞi؎$7@6kضӟw"cϭVpեTCt`քӪkB<@ _+ S -&Um8u8 6g:2="T#~s"wEq_p2I4m-+'? 8y+:"wM Od!p3}Y>jt@L[d&$K)DW'T!>&/I$~aPV'}q8Ǎu_o$HvO\iCڽ vFd(̇C>濝 o9]WeQrxjp'Q6JQMh+?wr1v(&/LqXWzYH-K&ۯM!ke;אH rR)0_P>髂CO#kPll4bXU[c"𔅞&V*Jw&$&?ɻjJ%\ϹD`K7q s6(\.C@1i^ UAA@v䛺lm3*Ί;ROѽՂFj<ĥ\C&H|+A)`0HA#5 LcU#V4ӗF7ߊa ,|{!3>HrSyAt7( ǐ߇ҧ4d}.7ul :H<WTh>&,*cwܛfW#O 6C6J @<#>-.܉{QAT^ 1%~!Ԭ* un}6ӽ@=K+7$]xcNџ9WXĊk$\jnEڰ@+Ni2>!{Be yʱQHfa>((k(clh\A liP 󡛩U vvR?)sa [V~ N6y} NJn1R(2v nL(^,_U@zڟ4C~!q Mx @ܦ36WVB2Lco$dq~h!N]')D8uQ{|=ՂEN`_ KnH*|2_V΢d> Nz~3$1msbsN0F& NVҹ(BJxvHW@@nhNk8|۾N}52IJ;IO/jK GLwwnY`nj,T/7|5T]qϜInޙdT+z{g1cژFuj2V [5p\+u\aEM#^֨`yGb yZ!*%#0J[ :;]? s"nviɵUj!yI3{Ҷji3B5a |{X1"%-@ }55Ƕd@:xbcG6A!)^Ywa?+u&q~<@(a|( Ax"жP?r\|7k47CIC|\FJ4VL_N'ct6Q$θm]g7Q'?eqb;޲J(Ր<ؖB\ғ3А,K2}8ڿffOћ *?:ü,^(fϹL@tFޖM`L4y8.fJ 5{@2=uhK#**g`WipR>C 72DȲJrP]Z ^}x 5Á-MGO"85x[E~rYȎz0$+Z6o`}O8I%C< vackpĵz -,Sވ&``5"t鹨vO!2Pt*z+KϝA1&0 QAKQ-@o $hhDNrsv}l|6_P#?'M0\ f 00MS/IgΛZ|NzQU+/?ʻϳ`||cJ;rv[@NxS봇^R\3K2F~mC[Fr4ɤGsʽ:fQRb%U4Dz.9櫄}=bҏ̧:AP_T}4wuVw6n"kv,$BYa)MV94<4Ђ8s?πMŦXD6M.Vkx3>ד5Py4rwYw_b ARk!fT6Uc!-vQ3(2tG;tF"qs-0׌%ζgZ?B.+_VG͔_W'ӐWqYF'BI E @Pb1 ڿE:/ /[ԽcW?)/{P`g1s-CeKlw*\6p[IR~V6 ?Zt0 hk@ൄCǦ~Zi*ru> IC B({mH)@)vv~8wia֏E>(4v8ƝYtx?uV ,R|qc|8J:2v(Q4a:S4BU3xn~Pm5\ ,~"vmT|*bϓxQgs%I_ͫy!oHWwS|)7W;&IUՅPiI {!3䀾nxgYbq->J,M1uԬ"R^ׅԟv{֨e$@\bɗwi\њݚNBLwe)n5ó}U Bfu BlaU8KcIgϧIV8`qQ<-bvz*o/07VdDGppGrrpLDdMpXzvdTtoEY2c'v#Ak?Lݫ=G'1ۺvH={퇵s5l;|?0硖T"TXb(U ('jph>(Z;%Xښ,.⧎'~-U_h 5 EAG96Ƹ¢px}W\BZ.EyHd|(9`6d*eizߴ;1?.@ _Ȏ|lѾ&^"#/(}Ԭ tU,|! )ȜIDҾ-~ TREx 4 zj2{\res6ݔq[9&0U7hݜwfUKًc44{ѽ/5"AФs90 C}t)@5C\: 絈̨BMKKmq C{vV̀b9e'9o5~ch@!_L/f0}$psT\yT$X^e/'PCy0(@'͋1-8@W3yXn_[iV h X2Z\1ѤS)5?.YފMрx^Nr@Ǐ-*|So/N>G{N(tq!7w0x4|F:Oaj@"J6CtU3^1лל輏["jV>pRc^f,(KvE695^utZ=2eaYH[_|Y/6ypCeCx8iG[Ru> [B>oHJF&-_liO Nk)R1pP\0 {~yY+H+9AAE%qF.-o@"rKV5^IH1Y9rPQ0R* ^`i #p?.::iK <` !QDC>[~z)ON>C{N '2dxC~dJ$4dWq| G9gyuH]ncV~3sE@G=ʈFB=_~ܲÈ 6`Lٰ/{\^F3a_GA!ayمe,uVK0Uk]So ?T_wUZS_L(x+6 ωAQ.;оSzB݋t(|hz5D!4#yW;ضbd#y~_MO{%z:HKl:m < Ƅ_X?Q3ևi+|fj@l HbRt:o!ao݂Y1Ғ!YlylIgb8evOCKCABП֯Z'k2#M{ޛĀc(1`T;#feeX:v^ O@/!tDYv1-*Vpweؘ賾lVz;'U@;0;9]EͯN0:9/ Q 5[D[5*{5nq,o_Mˡzks^y/($V (2s r叨>ݬ!sCUHk\2op}Vі r]aw .@@S>yN@#!yc HLg0;4Ko& VG4XzdK >Xw;]䘼Z{-cSՕOUD0.cp./DѴVB,NzdGWI8 dLKVG?8S!c4 \1}o{D&c݋>[sbo Si8,kO_ί$ᔲc[Zg,UG-])#tک(^٫;K=:j9UjC>3~Ip%۷t)|*  88fmb rnZ,dȸ *EQ=޴#om/9qei0.͏ b(E `g>Y+kver&(YIj$<:BdHLwA':F nֲ0kA?d/\$ O 0i EƯK n8db5P&$3Nw(IbbCVjFe};OíL3"8 sJMkx?3 $JKG30#!I`0vlLk1b4ܤq>Kt`Nin*0ݎ^'8JF:S%F1yy(ld>֠ Pm ,z%(9Ff\A7;; !kޙY6dHxrqH 90A0c !s/^uc@M> ?9Hw"ؙaa®P޼i>< cB):"<σd r4KnGAazض;oN7@H/Wu8`MFPt ,j&8E%`3{S&_vh4mʏ"XɛMoj]z[,nPi$kjg4;j!ffl,BW^]@d=IUvg# 8jQ5wcr-`A~eB{`W{ׁ.`viGd~E;< NcD\/9WYnT[1  e7OWJŔ >8s=0[*CVDʂ 1T9/o9{4]- ꅨ$w}Rdu+Y=]bt^(}l$Ф"qD-oxvE-Q^犾a-KV>-^ udޞ(oA0J+X (Xl N(հOWu$OԟG-8+uj(u}bۅO_=O R)rcC&)$vhz,%ǫi%J` u[\-w }5}5=S&$;`ΦM7锼]mҐC\m6t F NMcqWYJśgj+!*%V #ynJ'?͊g\ i2y|)턑؋2hzDQ'P@JD1ꓬQ!n;C4th9ӤH]w<7<z"3a:bD \i Gh {`!7ε[pֳ}mcv]dm^'շKY@i =K@0w̒Ҧ[@z{0 "#GsٜL+σEߚ=ۙlک:?X ]#FA:onu0E^1̪v=}Ŋ5*-P.ۚj:C&10Q-ZMM8M 8u&X2ew5Io>؜QqջNH<?^CxaKIBTFOMsͧP교$p/ՀaK{AVuSH*mxP}%>v S*>wLj?" L62kGbw=%sb Я !(H(~ Byϸ_3P bw4C˭hq13Uh|i[, KKS?%App3)%(&Ŏ !U?&"@Ϗ&"\BJIl~ yR&f\urs&?D^[ѡOCB[vSi{ sR76ŨHa3gp2$ǜH'„]lb,lrw^cXs:ȏ e=XύS$%}0ֽ]~꽫mR BIf[SQTHGjxCꥯ}c㿽@pAY݊S~TLR: N-pa0YdaW",DÖfu'!m/Q3s)jNw/lr\T]1(-S ,KRM|H`+7k#/00FY;cZ^4;5FAȍoI'(xh+,?}rdD`8 x!v0N"ha8ӗmƵՐ X-u}ߗ y@ #*_+_qb,([:+8>l'+Jˈr L:yW"m>抇9V(`:m-}ZY̡k !#$kR.DmҀ5?mtg߸Z;!FҶ-,;k-e_ϕ[ d<ӼRo'Rga>"z:x O `Nnf4h`8Gs&# t-7[JZĒA+?r~UuyXD:ztӸTۓ݌s;'aG :,]َ8Fq$8.JO%Xw]k$btrw*a, ~-LV7LRpB8 ZxS&ApT1Y +K1Feƣ o6U%"źs>ysfhͦTjY ix?9g ˵^Һ@u]SH_TLVJ] 9̘,c(ZN 58G$ LƦnd|-k}:n8apV3|,~C /J:oaȼOUfY\ඦ}$-ya  V{*L(vel*ը-PI:4v*T`7/4 YZ