bcc-lua-0.12.0-lp152.2.1 >  A ^۠0/=„xtMQgx<#b䉂cg@ ߃[=:u |X62F9rA{^ ~[P_93lbOʟwST~x?a4oƒ:U!Q"hX--޺MX-d!ʌĖ5 ũn@ uڒ /;.fPc:vEusI|K(T? 34!I1+ʑDOo,Cf?0 U$QVT419747f40cc406f1b5e39f697d87d3c46d8651d1562e19fa2414b7b39737c7afc0fdf33fbd909e46100ec3ad4126110045afe93eo^۠0/=„PH%u@# x @g~mlv&9GMlǸIc^Z̄AL[˽D&ʅ| }le/?iXЦCM[l 0CJ6?w#_sßR0<堬Ԙ%;Wγ=~Y:]4wۥf#38 _q~XTMD:/Rld$ωNk#pԸHP :tF~ <>p>w?wxd   K|     $ e hlqv   (8$494:4FtGtHtItXtYt\u]u ^ubucudv!ev&fv)lv+uv@vvDwvxwywzww(w,w2wtCbcc-lua0.12.0lp152.2.1Lua interpreter for the BPF Compiler CollectionLua interpreter for the BPF Compiler Collection.^۠sheep83@openSUSE Leap 15.2openSUSEApache-2.0https://bugs.opensuse.orgDevelopment/Languages/Otherhttps://github.com/iovisor/bcclinuxx86_64@^۠ 9e89ab09c3b587020fea04c4295ad5be30e3be29bff22ec8d7ddcf6396cea97frootrootbcc-0.12.0-lp152.2.1.src.rpmbcc-luabcc-lua(x86-64) @@@@@    kernelkernel-devellibbcc0libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libluajit-5.1.so.2()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.04.1.00.12.03.0.4-14.6.0-14.0-15.2-14.14.1^@]q]@]]c@\]@\@\M\\@n@\=@[[;@[(@Za@Z2@ZZ`@Z_@Z|;ZaZ8@Z3@Z)-@Z%8Z!D@Z Z@ZC@YY5GX•@X @X @XF@X@W WҤ@W/@W Wo@V@V޾VVŲ@V@V_V@VqR@V\:@VI@V*!@Gary Ching-Pang Lin Gary Ching-Pang Lin Gary Ching-Pang Lin Ismail Dönmez Gary Ching-Pang Lin Gary Ching-Pang Lin Gary Ching-Pang Lin Gary Ching-Pang Lin Gary Ching-Pang Lin Jan Engelhardt Aleksa Sarai Aleksa Sarai Gary Ching-Pang Lin glin@suse.commsrb@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgglin@suse.comglin@suse.comglin@suse.comglin@suse.commanfred.h@gmx.netglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.com- Add bcc-bsc1172493-Make-reading-blacklist-optional.patch to make reading kprobe blacklist optional so that the bcc scripts can work with the locked down kernel (bsc#1172493)- Update to 0.12.0 + Support for kernel up to 5.4 + klockstat tool to track kernel mutex lock statistics + cmake option CMAKE_USE_LIBBPF_PACKAGE to build a bcc shared library + linking with distro libbpf_static.a + new map.lookup_or_try_init() API to remove hidden return in map.lookup_or_init() + BPF_ARRAY_OF_MAPS and BPF_HASH_OF_MAPS support + support symbol offset for uprobe in both C++ and python API, kprobe already has the support + bug fixes for trace.py, tcpretrans.py, runqslower.py, etc. - Update libbpf to 0.0.6 + New features - new extensible bpf_object__open_{file,mem} APIs and DECLARE_LIBBPF_OPTS() macro to go with them - bpf_helpers.h, bpf_endian.h, and bpf_tracing.h are now distributed with libbpf - BPF CO-RE: added field size, field existence, and bitfield relocation support - BPF CO-RE: BPF_CORE_READ(), bpf_core_field_exists(), bpf_core_field_size() and other BPF CO-RE related helpers available through bpf_core_read.h header - bpf_object__open() API now auto-detects program type from its section name - BPF_PROG_TRACING programs support (incuding BTF-typed raw tracepoints, fentry/fexit programs) - mmap() support for BPF global variables - declarative map pinning support added - probe_read_{user,kernel}[_str]() BPF helpers added - bpf_get_link_xdp_info() function to get more XDP information added - a bunch of other AF_XDP changes + Usability improvements - no need for int version SEC('version') = 1; anymore - raw_tp/tp and uprobe/uretprobe section prefixes added - new bpf_program__get_{type,expected_attach_type} getters - preserve error code on program load failure + Fixes - btf_dump padding handling - bpf_object__name() returning name, not path - ELF section handling off-by-one bug fix - mem leak/double free fix in BPF program relocation code - Replace lua51-luajit-devel with luajit-devel to reflect the recent change in Factory (bsc#1159191) - Add bcc-fix-test_map_in_map.patch to fix the build error in the test case- Enable USDT for s390x since 0.10.0 already supports it- Add support-clang9.patch and apply it for llvm >= 9 - Fix sed call for python- Update to 0.11.0 + Support for kernel up to 5.3 + Corresponding libbpf submodule release is v0.0.5 + Fix USDT issue with multi-threaded applications + Fixed the early return behavior of lookup_or_init + Support for nic hardware offload + Fixed and Enabled Travis CI + A lot of tools change with added new options, etc. - Update libbpf to 0.0.5 + bpf_btf_get_next_id() API to iterate over system's BTF objects + libbpf_set_print() now returns previously set print callback + libbpf versioning, build, and packaging improvements + convenience helpers for working with BTF types + experimental BPF CO-RE relocation support + various AF_XDP fixes and enhancements + BTF-defined maps + tracing attachment APIs and bpf_link abstraction + perf buffer API + BTF-to-C conversion API + btf__parse_elf API for loading .BTF from ELF files + libbpf_num_possible_cpus() added + passing through prog_flags through bpf_object__open + new attach types detection added - Use version for REVISION instead of libversion- Update to 0.10.0 + Support for kernel up to 5.1 + corresponding libbpf submodule release is v0.0.3 + support for reading kernel headers from /proc + libbpf.{a,so} renamed to libcc_bpf.{a,so} + new common options for some tools + new tool: drsnoop + s390 USDT support - Update libbpf to 0.0.3 + Also add the source url of libbpf - Drop upstreamed patches + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch - Drop bcc-libbpf0 since upstream dropped the so file - Enable SMP build flags since we don't need static clang anymore- Add upstream patches to improve python3 compatibility + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch- Update to 0.9.0 - Add libbpf-5beb8a2ebffd.tar.gz since libbpf became a submodule of bcc - Drop bcc-bsc1080085-import-readline-from-lib.patch + Upstream provide an additional argutment for the shared readline- Correct the library version- Remove unnecessary use of xargs. - Remove idempotent %if..%endif guards. - Update descriptions for grammar.- Update to 0.8.0. - Remove upstreamed patches, and un-needed ones. - bcc-check_int128.patch - bcc-python3.patch (replaced with sed pipeline) - bcc-install-additional-headers.patch (bpftrace has fixes now)- Switch to %license over %doc for licenses. - Add upstream patch for bpftrace builds. boo#1117223 + bsc-install-additional-headers.patch- Update to 0.7.0 - Refresh bcc-python3.patch - Drop upstreamed patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Remove bcc-bsc1065593-llvm4-hack.patch and set ENABLE_LLVM_SHARED - Remove COPYRIGHT.txt which was dropped by upstream- Update to 0.6.0 - Add upstream patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Drop upstreamed patches + bcc-fix-build-for-llvm-5.0.1.patch + bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch + bcc-bsc1080085-backport-bytes-strings.patch + bcc-bsc1080085-detect-slab-for-slabratetop.patch + bcc-bsc1080085-fix-cachetop-py3-str.patch + bcc-bsc1080085-fix-syscount-str.patch - Refresh bcc-python3.patch- Add bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch to fix build with LLVM6.- Add bcc-bsc1080085-fix-syscount-str.patch to convert ausyscall output to string (bsc#1080085)- Only enable bcc-lua for openSUSE (bsc#1085810) - Amend the spec file to enable bps only for Tumbleweed (bsc#1085403)- Add bcc-bsc1080085-import-readline-from-lib.patch to read the symbol "readline" from libreadline. (bsc#1080085) - Add bcc-bsc1080085-detect-slab-for-slabratetop.patch to detect the current memory allocator and include the correct header. (bsc#1080085) - Make bcc-tools require audit since syscount.py needs ausyscall to get the syscall list. (bsc#1080085)- Add bcc-bsc1080085-backport-bytes-strings.patch and bcc-bsc1080085-fix-cachetop-py3-str.patch to fix the python3 compatibility issue (bsc#1080085)- Update bcc-python3.patch to make python3 default for all the python scripts (bsc#1079961)- Add bcc-fix-build-for-llvm-5.0.1.patch to fix the compilation error against llvm-5.0.1- Replace clang4-devel-static BuildRequires with clang-devel-static: use the unversioned one, folling the llvm meta package version (like all the other llvm/clang packages in the build chain).- Request at least 10GB disk since the clang4-devel-static needs more than 3GB and sometimes caused build fail (FATE#322227)- Request at least 4G RAM for the s390x build (FATE#322227, bsc#1070362)- Tweak the installation path of bps directly instead of installing it manually. For those architectures without luajit, %{_bindir} wasn't created and it failed the previous install command. (FATE#322227, bsc#1070362)- Update to 0.5.0 (bsc#1070563) + Explain possible reason of an error in scripts that rely on /proc/kallsyms + bpf: fix a couple of issues related to arm64 + bpf: Add support for prog_name and map_name + Add a few introspection helpers + Introduce BPF Program Snapshot helper (bps) + Trace external pointers through maps + Merge BType, Map, and Probe Consumers + Fix exception handling in python3 + Add usdt support for ARM64 + bpf: make test py_test_tools_smoke pass on arm64 + Add soname to libbpf.so + Fix Module display for unreadable Modules + Use bpf_prog_load_flag in APIs + Add flag to enable verifier log_level 2 + bpf: use MCJIT explicitly for ExecutionEngine + change frontend rewriter to better handle anonymous struct/union + Move BCC debug options to an installed header file + use user-provided log_level in bpf_prog_load + Add utility for cc tests to read command outputs + Fix 'test_libbcc' from failing due to symbol name mismatch + Update perf event type and config checks + libbpf: Support unbound raw socket creation + force linking the whole api-static library into shared library + man/bps: Add a man page for introspection/bps.c + Do not keep Loader instances around + python: make _decode_table_types aware of __int128 + python: Avoid unnecessary pointer object creations - Only exclude ppc and s390 build (FATE#322227, bsc#1070362) - Add _constraints to reserve 2GB memory for linking with clang4-devel-static - Rename armv7.patch as bcc-check_int128.patch to check if the compiler support int128 or not - Drop upstreamed patches: + bcc-bsc1065593-switch-to-mcjit.patch + bcc-add-soname-to-libbpf.patch- Add patch (bcc-python3.patch) to explicitly use "/usr/bin/python3"- Use the python3 package by default - Provide and obsolete python-bcc (it's python2-bcc now)- Update to 0.4.0 + Fix helper to access stack pointer for powerpc + bpf: rename helper function bpf_get_stackid + bpf: print out the src debug info to a temporary file + attempt to compile with system bpf.h if default compile failed + sync src/cc/compat/linux headers with latest net-next + Fix segfault with enumerations + Allow BCC to parse vDSO symbols + libbpf: print error to error stream + Avoid potential SEGFAULT when resolving Kernel symbols + Fix 'tools/statsnoop' from failing to attach kprobes + Update USDT argument constraint for powerpc and powerpc64 + examples:dns_matching: make it work as DNS sniffer + add debug option to dump asm insns embedded with source + examples:dns_matching: helper function for adding cache entry + Traces external pointers in parenthesized expressions + examples:dns_matching: fixed loop break condition + Fix bcc_resolve_global_addr on shared libraries + BCC macro for the creation of LPM trie maps (#1359) + bpf_probe_read*: src argument should be const void *. + hardirqs, softirqs: Fix distribution mode units handling + Add a generic utility to check any binary availability + Fix 'test_debuginfo' from failing if a symbol has multiple aliases + nfsdist tool (#1347) + annotate program tag + add helpers to access program tag + examples: fixed http_filter example + nfsslower: trace slow NFS operations + Update after lookup in map.increment for HASH types + fix a bug introduced by previous lua-bcc build fix commit + Better check for compiler standard support + fix lua-bcc build issue with cmake try_compile + Fix segfault on incomplete types + Trace external pointers from helpers + Allow the flags to be specified in remove_xdp() + bcc-lua: --no-pie, not -no-pie + solisten, tcpconnlat, tcpretrans: Remove unnecessary bpf_probe_reads - Add the new subpackage libbpf0 - Add bcc-bsc1065593-llvm4-hack.patch to work around the llvm libraries searching issue (bsc#1065593) (Also add clang4-devel-static to BuildRequires) - Add bcc-bsc1065593-switch-to-mcjit.patch to switch from OrcJIT to MCJIT. OrcJIT actually doesn't work for bcc, and the bug was covered until we start to use the unified LLVM shared library. (bsc#1065593) - Add bcc-add-soname-to-libbpf.patch to install the shared library properly - Update the group of packages - Disable USDT for ARM and AArch64 since it's not ready.- Update to 0.3.0+git1502955391.9de830a + avoid large map memory allocation in userspace + python - set attach_xdp's default flag value to 0 + have uniform uprobe event names for python and C++ + Remove extra S_MAXSTAT array allocation in some tools + Omit include of ptrace.h for empty usdt contexts + Add clang check for -nopie option + Correct commit id for BPF_FUNC_get_socket_cookie + tools/tcptracer: add timestamp option + Since LUA_GLOBALSINDEX is obsolete from Lua 5.2, use lua_getglobal function instead. + better state default value handling + add --state to offcputime + tcptop: Filter out negative values in receive probe + tcptop: Cleanup argument parsing + Use unsigned conversion specifier for nlmsg_pid + Fix wrong netlink port id check + 1. Use more safe snprintf instead of sprintf; 2. Modify procfilename buffer length in bcc_procutils_language function. + permit multiple pids attaching to the same probe + generate proper usdt code to prevent llvm meddling with ctx->#fields + MySQL tracing without USDT (#1239) + Fix a clang memory leak + Update bpf.h and virtual_bpf.h to 4.13-rc1 + Fix trace.py for library filenames containing colons (#1252) + cc: Add open_perf_event to the C/C++ API (#1232) + memleak: expand allocator coverage (#1214) + libbpf: fix build warning on setns (#1246) + usdt: Use ProcMountNS + proc: Enhance bcc_mapping_is_file_backed + Fix bcc.lua build issue in Ubuntu 17.04 + Added helpers for BPF_PERCPU_ARRAY (#1230) + Add an option to strip leading zeros from histograms (#1226) + gethostlatency was rounding to full ms + Change clang frontend optimization level from 0 to 2 + fix cc: error: unrecognized command line option -no-pie + fix incorrect code generation in usdt- Update to 0.3.0+git1496334311.6fa3681 + Improve PerfEventArray clean up + make libbpf standalone-ready + Add support for generic XDP mode + Add option to control bcc_elf_foreach_sym behavior + Add bpf_get_first_key helper + Enable recursive scanf support for char[] as string + Fix computation of LUAJIT_INCLUDE_DIR + cc: Work around verifier error when reading USDT probe arguments + Disable non-static function calls + Added the option(USINGISYSTEM) of Cmake for controling whether using -isystem. (#1064) + softirqs: Migrate to kernel tracepoints instead of kprobes (#1091) + lua/bpf: implemented packet direct access + lua/bpf: support for NET_OFF for dissector + KVM hypercall analysis example (#1082) + cc: add support for prog table + cc: add support for array table + Add TableStorage class for wrapping bpf map tracking + funcslower: Trace slow kernel or user function calls + map.insert bcc helper to expose the BPF_NOEXIST flag (#1085) + bcc container improvements (#1051) + cc: define load_func and unload_func public + Python 3 compatibility fixes around string handling (#986) + Verify format specifiers in bpf_trace_printk in rewriter + Add build option for installing C++ examples + bpflist: Display processes with running BPF programs and maps + python: Allow module=None when resolving kernel symbols + mdflush: Add missing #include - Enable AArch64 build (FATE#322227) - Remove remove-isystem.patch since it can be controlled by the cmake option now. - Add gcc-c++ to the BuildRequires and switch to gcc/g++- Update to 0.3.0 + Added s390x support. Needs 4.10 Kernel + Restrict rewrite of unary operators to dereference operator + cmake: Explicitly mark static libraries as such + Fix bpf_dins_pkt rewrite in BinaryOperator + cc: Symbol resolution with multiple executable regions per module + cc: Fix assertion for debug builds + cc: Don't parse the same module multiple times for USDT probes + add XDP return values to python interface + python: handle null module in BPF.sym + filetop: support specifying sort column via cmdline argument + cc: Retry symbol resolution using perfmap + cc: Handle nested functions correctly when resolving symbols- Add remove-isystem.patch to unconditionally removing -isystem, looks like the gcc check is broken. - Add armv7.patch to disable __uint128_t usage which does not exist on ARMv7. - Always use clang as C compiler, note that the build system will always use clang++ ad CXX compiler if it finds it.- Update to 0.2.0+git1488325605.4d0d430 + Fix long running test_debuginfo and python3 fix + Make perf ring buffer size configurable + docs: Update eBPF features list + Improve matching of file-backed memory mappings + Fix symbol resolution by name (SymbolCache.resolve_name) + cc: Resolve symbols from external debuginfo + cc: Correctly treat PIE files as shared objects for symbols + Migrate to new symbols resolution API + Simplify BCC symbol resolution API + trace, argdist: Treat small USDT arguments correctly + Support base + index * scale addressing for USDT arguments + cc: Fix SEGV when there is no build-id section + syscount: Summarize syscall counts and latencies + u* tools: PHP support + bcc: add support for lpm trie map type + cc: Support for __data_loc tracepoint fields + Fix python2/3 incompatible percpu helpers + fix iteration over CPUs + Fixes for LLVM 4.0 and python3 + Update [virtual_]bpf.h to 4.10 + add bpf_obj_pin/bpf_obj_get to pin/get bpf objects + uobjnew: Attach uprobe only to the requested process + uflow: Trace method execution flow + ustat: Activity stats from high-level languages + ugc: Monitor GC events in high-level languages + ucalls: Summarize method calls with USDT + Example of using USDT + Add USDT support to C++ API + Improve linear histogram limit, and improve error message + add runqlen tool + docs: Update eBPF features list + Improve C++ API perf buffer polling + add support for bpf map flags + Fix bug of missing to install simple_tc.py + Add support for aarch64 + Avoid unexpected log message on BPF program load error + Add lru_hash/lru_percpu_hash to python/lua + bcc: add lru_hash and lru_percpu_hash map types - Remove the clang workaround since llvm 3.9.1 supports gcc c++11 abi tag. (bsc#935533) - Enable PowerPC64 and PowerPC64le build- Move manpages back to /usr/share/bcc/man since trace.8 is conflicted with the one from postfix.- Update to 0.2.0+git1480569532.5647de0 + profile: -p should match user PID + tcplife: reorder logic to catch missed timestamps + hello_perf_output: match the data type of pid + Remove debug flag override in bcc_exception.h + Use StatusTuple constructor in mkstatus_ + Implement StatusTuple class instead of using std::tuple + biotop.py: fix compiler error on newer kernels + Determine kernel dirs at runtime (fix #743) + Rename exception.h to bcc_exception.h + tcplife.py: Catch passive closed by server, #788 + Install exception.h and common.h + Fixup test errors in clang, c api + trace: Avoid passing -1 as the pid to USDT + Fix Tracepoint example (#809) + cc, python: Clean up BPF module and tables + Fix warnings covered by -Wdelete-non-virtual-dtor + Fix argument type for increment() in documentation (#794) + trace: add pid/tid filtering, fix symbolizing, misc nits (#798) + Expose destruction of SymbolCache in libbcc + perf_reader: install perf_reader.h + Use headers from BCC in installed files (#793) + funccount: Bail early if there are no matching functions (#792) + python: Grab all keys before zeroing + funccount: Switch to BPF array instead of hash + Update profile.py to use new perf support (#776) + Example for using BPF perf event + funccount: Do not prepopulate location cache + python: Filter duplicate in get_kprobe_functions + Python API for BPF perf event + Add bpf_attach_perf_event in libbpf + Add BPF_PROG_TYPE_PERF_EVENT to bpf_prog_type enum + add tcplife (#773) + add reset-trace (#766) + funccount: Verify probe max limit (#771) + python: Fix kprobe quota test breakage, add uprobes + funccount: Generalize for uprobes, tracepoints, and USDT + bcc: Make regex helpers publicly accessible + stackcount: Style fixes for linter (pep8) + fix profile.py page_offset_base breakage (#768) + trace, argdist: -I switch for trace and miscellaneous fixes (#761) + cc: Support glob+offset format in USDT arguments (#753) + Support filtering by process ID in the filesystem slower tools (#756) + trace: STRCMP helper function + mysqld_slower: Fix breakage after USDT API change + trace: Add %K and %U format specifiers (#742) + Update opensnoop to filter by PID and TID (#739) + funclatency: user functions support (#733) + tplist: Print USDT locations and arguments (#734) + src/lua: LuaJIT BPF compiler, examples, tests (#652) + stackcount: Support uprobes, tracepoints, and USDT (#730) + trace: Initialize USDT arguments to 0 before reading (#725) + argdist, trace: Native tracepoint support (#724) + argdist: Cumulative mode (-c) (#719) + trace: Print USDT arg helpers in verbose mode (#723) + argdist, trace: Support naked executable names in probes (#720) + docs: Update eBPF features list by kernel version (#717) + fixup the issue in which distributed_bridge example (#716) + Fix bpf_common.cc include style (#715) + Fix argdist, trace, tplist to use the libbcc USDT support (#698) + [tcpconnect] filter traced connection based on destination ports + Fix bpf log buffer for large bpf program: (#680) + opensnoop: Introduce process name filtering - Exclude the cpp examples from installation - Remove the isystem path since we are using clang++ - Install the manpages correctly - Improve the spec file to search the luajit pathes and fix some dependency issue in Leap 42.2 - Remove "-DBCC_KERNEL_HAS_SOURCE_DIR=1" since bcc can detect the kernel dir dynamically now.- Add llvm-gold to the BuildRequires since the package was split from llvm since 3.8.1- Update to 0.2.0 + examples: fix indentation in tracing/tcpv4connect + fileslower/filetop: use de->d_name.name, add filtering- Update to snapshot v0.1.8+git1472097662.4ebb7cf + fix biosnoop after kernel change + offcputime improvements: use less RAM, add PID/TID support + Add perf_submit_skb + Adjustments to the documentation + fix build with 4.0 llvm trunk + frontends/clang: Safety check for invalid opLoc in ProbeVisitor + Tool to sniff data contents before encrypted with OpenSSL or GnuTLS + Add bpf_get_current_task() helper definition + USDT Python API and example + Lua Tools for BCC + BPF: better format for `ksymaddr` + table: Implement a StackWalker for StackTrace tables + added percpu support in bcc + Fix error handling when attaching {u,k}{,ret}probes + Fix python3 incompatibilities + Update headers with 4.5+ features + Add v6 headers to proto.h + Use pre-calculated function addresses in funccount + Add name to address ksym helper + Add a table.zero() function to bcc.TableBase + Enforce limit of 1000 open [uk]probes - Drop upstreamed bcc-kernel-header-search.patch - Add bcc-docs to collect the documentation - Add bcc-lua to process the lua scripts - Add the license files to libbcc0- Use the upstream tarball and add the URL - Amend the description of the pacakge - Use the right group for libbcc0- Remove "strip" from "make install" to enable debuginfo- Switch to clang to avoid the c++11 tag issue (bsc#935533) - Update bcc-kernel-header-search.patch to include headers in /lib/modules/$(uname -r)/build/- Replace bcc-suse-kernel-headers.patch with the upstream fix, bcc-kernel-header-search.patch, and add "-DBCC_KERNEL_HAS_SOURCE_DIR=1" to cmake. - Fix the formation in the spec file- Update to version 0.1.8 + http_filter renamed, README fixed + Migrated filelife to bpf_perf_event + migrated to use bpf_perf_events + Migrated killsnoop to bpf_perf_event + Print traceback only if verbose mode was requested + trace: trace function execution with custom format strings and filters - Add back python3-bcc - Make python-bcc require libbcc0- Update to version 0.1.7+git1455766673.13e74d3 + use __builtin_memcpy() instead of unrolled loop + http filter example + Add bpf_module.h to CMakeLists.txt + different man formats + Fix segfault in ~BPFModule on syntax error + Add bitesize tool + Support array and pointer types in scanf generated function + Add biotop tool + Added memory leak tracer + Fix python map.items() racing with bpf delete + Don't show allocations newer than a configurable age + Add bpf_get_prandom_u32 to helpers + Added --stack-depth switch to control the number of stack frames captured for each allocation + Fixed long arg name from stack_depth to stack-depth + Added option to display only top N stacks by size + use bpf_perf_event_output() instead + save one bpf_probe_read() + 3 tools: oomkill, dcstat, dcsnoop + Implemented histogram functionality, including strings; added examples + Added ret probes + Renamed to argdist.py, updated command-line switches, added kernel probe pid filtering, added verbose mode that prints the BPF program + ext4 and xfs tools + tcp to bpf_perf_output + 3 tools: tcpretrans, zfsslower, zfsdist + inline C in /tools + 2 tools: btrfsdist, btrfsslower + Split bcc/__init__.py into multiple files + Split bcc.table.BPFTable into multiple type-specific classes + Support native integer indexing in table.Array type + Fix breakage in open_perf_buffer + Embed runtime header files in libbcc.so - Add bcc-suse-kernel-headers.patch to fix the kernel header path - Drop bcc-workaround-gcc5-abi.patch since it never works... - Drop the dependency of bcc-devel from python-bcc- Update to version v0.1.7+git20160131.143df80 + Updates to use cmake GLOB and libbcc.so.0 in python init + Add decode() to ascii string in offcputime.py + Add libbpf.c support for uprobes + Add python support for attaching bpf programs to uprobes + Fixes for address calculation + Fixup objdump calling syntax and add docstrings + Add uprobe strlen histogram example + Update test_dump_func to be python3 compatible- Update to version v0.1.7+git20160119.f50ca1f + fix pep8 lint errors in the rest of the tools + Close fd and unshare when public map is destructed + stack walker typo and improvement + optimize code, remove unnecessary filter check + add -u, and change from 2 to 1 traced funcitons- Update to version v0.1.7+git20160110.a0aa7f2 + Remove runtime dependency on gcc stdarg headers and make + Add ability to set custom cflags when loading programs + Add ability to export maps, enables cross-program sharing + Rename BPF_EXPORT to BPF_TABLE_PUBLIC + fix pep8 lint errors in biolatency and biosnoop - Remove make from Requires of python-bcc- Update to version v0.1.7+git20151210.23b87e5: + Fixup dependencies of bcc-tools package + Automatically bump memlock ulimit + fixed bugs in control-flow generation + Fix breakage from LLVM 3.8 API change + make sure LDFLAGS are propagated as well + Improve json type support for misc struct/union types + Drop broken p4/docs symlink and create README.md+URL - Drop upstreamed bcc-honor-external-cflags.patch- Udpate to bcc-0.1.7+git48.g1c7debd - Add python-future as the Recommends for bcc-examples so that the scripts can be compatible with python 2 and python 3. - Remove python3-bcc- Update to bcc-0.1.7+git34.gfa9684d - Add bcc-workaround-gcc5-abi.patch to work around the old c++11 abi in clang - Add bcc-honor-external-cflags.patch to adopt the external cflags - Drop bcc-fix-packaging.patch which is already in the tarball - Amend the requirements of python-bcc + make and kernel-devel are necessary - Add python3-bcc since the python binding is compatiable with both 2 and 3- initial import: v0.1.7 - Add bcc-fix-packaging.patch to fix versioning issue of the shared librarysheep83 15914516650.12.0-lp152.2.10.12.0-lp152.2.1bcc-lua/usr/bin/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Leap:15.2/standard/e49a7bd8452dc5bb56f5a4f2ab49aa32-bcccpioxz5x86_64-suse-linuxELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, BuildID[sha1]=d16b30353d703e15782c337ee49d62de7ff28083, for GNU/Linux 3.2.0, strippedRRRRR\U)ܼutf-86bc0ec37f2baf1f42f685c89d6041846b06661f186c1636457522de1ef3d2959? 7zXZ !t/8] crv9vWe< xҙ.ԟ p5.LKz($jF Pvfs$jLccX/Sj9C`a['#<ƽ:/?uāO-gIl>Sh}PZ!hyR6+Lxvi wӔP {(5$\~yTM/dn W2NA}Q&ucc{I5kx~`Dh4ַGEagm?ܷ[Kr8flM=اJ;C|2VC$fH)BնCT5Eyq_ÓZa'CvX2LW U] ETznje gC IV>2uRfk\jT* ՉVgFf[y.ł|_SsuT_aF22f5]xV#k7%ySԖ0Nռp&aD@МZ;(mr[5&}nQq!/CqTw(2+Ad_:5=I{ԼEF3ޖkcY BUapXOQ2A2yq}=N"%/[58C aVs̸@%|+姮Ipn^t~PDWbUI:քg{[OԈUU*{㳙s1gEYm#{Ge8R_#MCs_{be̍@Uqvq3<ȕȲ`Mm 4#i݋~^ ^*"oD1xʞ6ZFVg7, "+c}G`Օ,o *10Xf?rrGYVs Ck_WJ-FbiPc ݛxCZ2OBmȼy^fT3PX3С|+ތW#~zyJV^Tά+uQ=ok[lKmDSg4LtL05ka W= c6='J0gb4ƿh\c1k!T~Κ wLa#,e:*4WNmL# C *m~ 81($4Jrd#a1$ڍ}-|VR5ғE ZN,t#JYPu6dՎ*V M%qF/[yQAw[ nJ eŠ{_] ~&l7XIfWfibPApwHe*2t&B4alp ܐgϙڱB^2SFZNTe$,uL΂]8B}%S?[ ON3KHcԵm晝+{^濺{+8[Uz3)DnĵًHv*&t^fR&1zHaa5O3=v>Ӕ;&s ehߋr}jYuE=gTȭu!CIm3ݲUoZ4x|ڹdx J[ܬ~ yz=^?69Xʲ2_01(4}y(J> xWZ=E.K;tb_Tb3.TنhaG!{{/eWd\hQk3kH~ec?eYM\1aQ']T}=]8[ Or\} eI/怴^IGqEFCXxurcDҡ+y/"26&oW. 8hFMQňXtC 0kI7r\1%x?|H+{ҹ(TVz|c(Ɲ޺E'8 $0y4^4'3R^%Ab۰kO/^o bH {fg:NmIW[HC(T0't-셭e"~64ITroG\sC)<߲M#Jt aHrDδMsϼsUc [?M$e`VJ\,$r Tw>X)uc8hguV}/F:SDJ~P׽֮{5HsZ?c?T \|:_^Uu{Bw1!Y)Q9m5Bي Zي5W;=٥TNW!bGhBAcM{Sl7|9ݞC0`mIn@|.ׇQx!Nv)an$-"=vO`Mi]3:| {nNQM nK,=c[ԠFm8 J0V}f@hO .GTlѳ^;>viY{=n<ȇ t2Njjc1lEe,f Ev㕒"vU_!Fk{>l/}Qh!nKus s#@Gk0r75\.-\/:1ڳJBHCxFfΕ|s*sH\=E &YۍXGYH_nOmट hԄPz/IjOЊo?"w%R0A}֝ʙBZGg{zS|0-}J`4:u Ts=ĸyC7q'K@JFJ+pvȧ4 'rZxŠ; -=*\zU檒^hPF;&!O>[]/(ik4ӬuAD_Pؗ ͒jLXG):TW/dY0="<זxP':xsn7Wp|:_(0 K&v&I~3j Śf4<~l#c/=|\Y {;]7c=V1²jPL`pWއ{DP0 3Z6<!6l#Jp}''B,U פǭ}^Ѱdk2 \: 1K|$p!Dqa$a6Ԏm'^x{(bQ]C@.M?*0jL 8Qɔ`UQ- ɤ~US o6QH0!枊s3環;^!>VƩnՠxeDZH'6.6SUq景9i8eCZ hrF"ioȂY5zu8C4)3 y돿LPATu p 89&)p:ϯZP"@[):QP@ %cmXmXiJrʤfg Is`4J),ꐰzg\JYM)'bby0Ox 2ΩobF"yj5[:|P!nPIe"ŜQdPx{ظʮ,ihmmouvsR0;=t4< zh&8snO_qw<@4/Xl7$mj)%vZgߜKPg[ ʬe28݀Wއҋ&\RC5WA|n&y\.,w&`[ M>GiO {ߪZ4ja8xǮta86sa μ+buØe -]6OQ:B~dd~ECZUAKV/I`K(!z9L]>Zy3&-{ɮmBrOxTO6:^|7tIu;]{SC_Is,CY6=l8yNc*"3Sa91N47~4q~N !p%HE99*[oFW)_Y'#@xaY[DPl]4aZjrFV+zlП09* }ʼЗA9rz\ ǻՔd+^W*D=w&>EӰ&k~SnX &,lQ_e X C)ȼ=%wA5b TFmK/uOަ=Agor{^U>Q@h"*`Y;N՗n WJ|&I^XJ@H!;+.aLa♔wŕj1ƐݞkGlSRd4D?L9k:9x c<7&׶ò&~[~xâw%O"Flny^x+ .35y*q?sRcT< \&b7؀b$v$+(֚k5c!ujT+d_`Ge~[tKMjm~"S|BQS6U3`teJB=oKC>0. CU ?Hx|ۗT`:KbD̦8G}"t({xb@$? }h9Ee8P㴶!4v+]Vp2_K~V/ A~X$ׇכkuGBüގyPœR-*3wfedqx5 Ye) "۲7<{䔱A98`=YlMa{Ra_$\W&+5ӆY>q,bL]C_Z,ShW1>BDۤ~3a.1TtH `=<wTRH«C$uH͝vEOd&j' uX6{I2ۢo.?)f_`u0 w\bí#, QZt._5-0qշErDГ,a.WJm>w7OUxw1%dR+ @x|~St?|rm^J,9hi(U^\_ t^uc̉ ߐ\fV_ߣl̾7B@i% mUT|W `[{.5y)Yu ʫE'(Ԯt/ pZ A&Ӷ*r);kxPBg%M|+quOo<5v#lۯ̞URq=t t1q&a9ۄX D_r 즐i C~ d3o>Z&m¦ WnR,mc|oFԺi+ V5PlH hѢXܬHtYT33=2,^ҁv[ӻ&8 <<D A&)0B#XHyv,lB6B@%sM'pk*9Eo? Y.x6T/ʆ!n 3u_L]; 0D.N;X~Xv3݃$U \:f4Z?&Q&P|P;j:%7cEˈ:}2m7j/ߗOΑLD,>2y V5 9>mGEj)-ļ #C@e?}{tcKWۡ S˒yM% o PVŧ@.BH#u7Se,Kpg%>;Aժj?̶VFvq:0l+PA[`F);ى{QdRԮ}Ӝa>.ſ`r[86-.j=Ν؁huknOeaG6u8ue`f#ZHe4Df!͓*P*QJ^O*o@GT \m\NUmqbVd9nL^-ᓟ!_¿;cZGj|zG|D@P"igPDt"AHoEAIP8RZ!G,-7[Xr&e~z݁\ހZ9{\٩JN/ꔔۚn^ƟCxG L'7c~392kI'9vKN\)Le3-xȡ ,"3U{J,JU;;? eXЇn>Yf`-ga|` У}c5+b49C}j$!%J}>l o;XdU %q ߯'+dyy1؃7%Ph0pxPD8m+y:v ʣQP X64W6Qe.T@i-`N7 3鐱pʿ궷fg*4SZ g.1j75`9 LoG6iK, f7JgSxnQ-~Wo,UMt"G'2UQ5:[ 0L 4$s]u# >cO$#JITטroyoI7OhLl=Š4RV٨oa<}<&f d凱d_IyuP}z8b dk$å+3!Z)~xz[ab/-h3eoc7A |_dNlђs7=h@4yzMLSrB68yFOšt$fXOꑌV!C8QU$Ȕz, )ߠsY(G8r׌.0(D6*wl?&Bۣ[%8 1D)^xJc -InazRxyU Y0%#aG[gf5|,xᮾU@ܼf.IgXR0Wԇ?l 2Sm`58o۩2rg*XُN:R"Ŧ_^AL/Ϣ$sL"U2" rŎ|7Xl"'eBQX҆FeI/B ,/boi{z<یT~'A0,R4*UYM(TOߍ2O^IWgx:CCQbg[F-ug Uho5 NwW=:ho-CCzNba7"0Id$< уuPo9.\GΌ&?AA 68яɽs-؇hWpw>>Syy36 6Ms+9x9&84' ،XژMkc,6u0GaZRa'oTӸ8c[/&eDb\7VC*z (3 ?y'Z1 >\\B%(zEcich9 hCO{4ɻBFO%A"0{l5D Rm,i,֪ezmB$B &˧@_*g{C4uKo}~ر<{C H4Y]nbDő9óen ߈sN%@;X:j:^ۃFrw{54`ah43Ta-n;< am&q2)wTb15:a@DF@+a[m t1#hI"ߥO3L閎7(S0Th BEXT: L t/3\N E ¹;6Bk5+R'>8'Na?6 74)NBb҆@iXٕ\zo>9{/\SCqo ڠO!_xˌ[)!"dxt1ߵGC|>Z 8h䙻!+Aӿ[3 ,}+;*c"leL M!U>.=!DT7$fgJG (KrCU0G&wVk~bB"BQaaֿ ßԻ8kȺr=N\QD4H\nĦ=J4FLIq8 s!#ݚvO;a%ؓ'ڤ{!("4sЩt-5 J΁v1/.*Ar;*r]mu/eoԻOp-D@P%q7"-f &Kf0㠰tKɢH:iJ}*!nϸ̉x$A&g|=^-}/?3j :w Dڡ'@~N~1ؾYfÞcJ ?z9ز]d)[#!^* 6Y.?'NƹE@=N6,`P v =*/sA˨5c ّ"`Mo "]9C) OSn1!/Z?I2+RsK%kH'Ҽ*wEf"T@`%֝-~e aoz ѡ&MQ'PYg". I^ :V !ߧy8,`-?s%L^$\PT|Wt9 Wxx%ROz54 ܓ*NI "#q8XX@Vv6t\2lT٬6GB!Kѿ hl-_ù_^X@d;@=8$]:=׊ڄThsm*+2JWHjN G8RwڋB?Ҍ5ߖu 6z3}&ԦTRkͨv1s`TOd9]0R"cAnMF&০ЛAS{95ϖg !ᚕ&mC{Db_Ȣ] [i w _|dw"i=̈́/hmL1OkmO;#K?+kg`5;/!^kc*lVF;+xٯ-y=g8pG֗$49ρ%~LWa+AXKh. `_3}si$&*` H/BhX“&Az2BM AoDx~)--P|E p&rp._p2eh9:7'}lRzxǗT ":nX:hR%8,JZkC7a Fժ.QfX31%dҳ=*#[~,PPOj>#yAc BDGE4"ѨqͬQ45H$u9ґҝ""~R%Y+=8S/mnv_=xc;I7Ѽkkbb5X=xaY?ϹHNl8  EOUC\QZ\0=^χڻً }OcmpǗlZuOW ;Re㕆siݲ=+M9>:7]hԲ萚Gg G!|{+ T;Z;'>iJ[a0~P@B]F-p2bc DAcb@Oyr?&#*WF*U|]ej;G^}GՂ&.+(XwNQN,DtY}d+% (ER|@A!<n`9ѡLv]K kXPCKtCLX/Gz80 %cڅV"bk?0&e"׽M1؎Pj8=[0yplĬ_qO(wť3K4P~pǿ=tc'FC-Pt93^@$avF"WzU`1idkLBctw$֕oFmFn$L-NLX*O&{?%N6kaUnPL. A uIg7'R .Jw! BZHo ě!NNs0Ծdfaq/FFv}s1V$QtN;~/V޲AU|8e5P,X<lV暻S(+N%3^U'Wp@]F̝hy;Zj%[_*(%]ku0x-v j3} uG1.qm]ߕs6MTU0Ρ.!ֽˣUS[K&ż1Z @xUXz']=3y ƚRLz~oMGLv>BFKLCbΣUS1PKsI押 JU޲y}:8?rT;O$ݷtV\oXt9/nbZ)J+1(Y3zyO8R}Io`%,} PY2Wr1wd7էP2;'Qߪpr[}5lc@Wf\H,ܕCeA,`9-FvZ j&W!H[Tz6W[#ׅ>p$rAS?`֖fĚO}?/W/d8rφHwݵ\p`[ח5(:-y@Dh 8tH806}iW<KLj?b'Sݓk ^z^ q0e|$Y.^뜕̰B}j,@8z !|5=a-F !_6mW&Y?uë:HR{RcHu{ֈ^d=A5RK| !h!BĂ&Yj|I^pg@ͧ*v=.[?Zg σI,UX Zǒ.Hn]I3Ho!e?2XsEJKm5ЛsK <s' 0:wDrQk0z9x {>XZC8f;A-o;GKlM%9::lp BcswoʙpڜKn1o&;q{3)i8zMnLM9< lh(U雧6.fGS%_6~KE׸qPCPɪw~„L:`) #U*d/jՋ4ȌFM+q_O*=R;iGl uZBAح~T^^rr|6V!ʩ#9#*vyphyakC&In$l{TDHj[fyY9~gkZy kټcq+v}w_;̛, V3үUچ#B1~A81\Y#])\U.FrC|n7Aje IzZh wźIVmzR@O}%@Djj@>'fiQ*pN\ P$5UxIwJz@? |;(mI/O?aG_b*ޏ N>'FQwc#M-W$jw!-!Y8RkSLcGC} 62J:FfjZo ''RL2p?%X$) *M7% z^ P:JX|my)3)-:GbO?sؚ:on٤'N~{`H\m8QP]\ oDYq8hn }S2Ύ-ׯj7'CCֺ 2$0jÞc[\#d}IBA퐌o\r*9L*דCӧlto~ d,m3¿_,`"Yh;aj!ٿiz@uJ ƷsT\xY K=mhUv: `D侩zgOsG?yDoobbaMj݀G /ex[L-C@Ww~hR%fe֟9#O:!9.+ke^(I >\%ҽ(&z$5|0㵉ZK'\nz|TT$iDdwFd5VűI:PW`T z@&xM~1H9|5(!]yN.?P4(!9v|МnCO=譂[a?:qEA ռBn/:qKcz(l䅈 Y7c@xŌww)3O*w,~'tozĹw@K2ҢYp5F_+V[} pA5FS=oHT I: C3ʙSqώ'˞ 5=9jb(7]}CA*HjȊVڻDhެ'Vx͎U^(yb QC`.y-y)Yf%T Pq#46K 2IPak6uK$T h7봉VeѰw=&͚26zTAViȮ$/$V0)# _?.Nu)8)=b Hnb exHT4JVu#v!ylI_oe6!K<:3!(L|^7#Yf70T'gD1ФJ3OdV3"\|DD|NcW#VpzkRU #BT%a$$Љc~ގ+c#I}._T| _2'2{zOxt;-Hވ`I_os{6*,HEjNVcXWG߄G@Tglֆu5(E}f!4۠V )k0.x.G*΅˙0LMd:ѷf R7+ r1VJrF 6Z>ŷ{ 9_jny ^@v]iOC}}@'-xzєvBے'z_͆(ݓ~ׇ 5#F"}cdi@KZ^*2?cs1ꁉNw[\ &1BSx3vbb~u"tVl|a-tLlx!f?E'b;6l]<gW R7ˤϛkW݅SI I7KȸL([gKZ:@-,p4ϔ?)OݷܒF(x>6A %d+چy>$)o'$ TKTWlC[ed; d?u(Z/Ӓ| ͑,T֝&@>dJ nƚ )θq"ɓ?xU-ң3ў-8-/| {)OuU)e~rSe_[ljKSȣc3.F>_|@nkBgۃ 8- RzV4Gáyd UwLRkFR?V 1ɺG9 "Kcg,*$˫By4ܨjw <9&u4j#Zw+X7^O'kt*&fO'.+jA.JxZEP7~]kc&28#/$,x.p}iNzfnٿEPmkYL<1pz{FuiVVXjG4g]\gUSH S?ԡX 0%K>pB:=)iNBl a[IկYvcM ԫ`&\A`@P8oV6zLzz<ŷay1:jU+,P HwB#5;d6 d8Ӷ̙RV5ɷ,;* 9_,Jp!mBYmbCzF 雨dz^H|7va [}ׄN6h<]&;!@~|sGaKL TfMhzBV=zAmo 0$X:xYL=e'}$t5n,rA;rl xQ_2jsTz 灭@"gvB܆ ' LZD^4`/:nO*?IOƧ3"S"zM~l AXݴypw*VliOqewʺCaxrq Y)lN`4ot$-lDJj@R@18onz2z{Y@Fh3'ϭUBbc1Hw4PWPUͿ_'q&l鸂0S[35J"iwotTJǶҿ/$Zw۸8_|ǔ^((PWR]Gz6=B\3H.bPI0bth/Cфo8S' Q}9Ugocd.Zܔ[(JxAT+|p[AYI{󬎫 h&;8_ĸ ܜDpH]JJyN.yh[ߺW(Ԣ(y`M]iT"$ y'Jfung"FV$y-Zɛ.t+|-7 ]>s af>'5nH 󼏼EI xn\%L*~5-DN\h;y؀m^7^FGɷ" |Y{#)7V\7IW*3GxB2 3# L*4Ԡh'FJY]GI@LN TT,Ec=\KʷAK |#Hl1XgtPj g ꭵo A^I7ט:4DD:"xeUHQ"΁Ph~'' )&<0iGSLwt _1~({FIn-'cn)ϳ`Ae(Umj*{~&QFR_ ьkx2D̈cdV7d%SnSA(j?$ni"\7R$bј<67DkBѰ_%R${\%hYIoevX+JJDNDmS]Mo&<7gq)I? AZWGyb E(=Qu gG^yoxg9=L]htI:8L X 0c6zMVA|QMdQqԮdwoC.w]yS{x/nٵ\@NP˵I*dU9!)- n.)W4ƺywz&tWlhz>2n`q,Au$q%$ܒ\U5Lo[W)R'fTMmh{ZF :*Om}H%HA +}˼+Zw21u~/ M%gu 4-mTak0!dPg_A mS';m5ZnO 7s%g,zn+ ( d( [6yc;Y瓴ϱ[eB1tG*6u;}2: ιſ]s h3M]wfgSJ\4ZP&%n\nEfxO їgNșxMY(T t" W^XWPq`&iRchmo ͖c[sȰRNi$M\%gU읈&9zMD[@E}H+B>9Q;O"p Q5?$ac۴{s- 'yW)#6v!s\V'1M8/#̰tܶa7u}d$9>ҩ'ta8;$^ @LYv%$v9ëU bD5$qxAiw [vv! ջlg ;5P^SC̭݂ɬ6矞 Yg@R *9ڍ[Gyռ$jI ME||GXooܲ:bAPܻ`~iPkvږGB79l OܭCgSNfRArĀ'!0P(}eVo$Aìr5=P,ak7׷Ŭ4%;otC9b9BTkY 4l7dhMw4-B8,7ӷ~qa)[z`s cdq@ދQ(vT5f{3-x N0[Cm]OZVpkgFཕfZOH%+L+\A7΀E7Mԝ X!kERc h/pQX_B[vvie DI碻fGAG TPmzۏHI{2,?!c~li-a5ɨIJfd"rB}u߉fpֲbxp4)i(U,Hw\RXxfZR% M7rU<''$)$5-%[M[֊ W$9D)!Bc|P}AYoH.!"'/|hBd mIt Sz]1+/=YHA84lWG~L5n-Sћ)rv]:I^-sxNS c{IV~3 EB39A@68_mC5xo4ޝU+˩w9CT ;#bfPZxC??FvyV$LSCbVy{.t6O4 s[j@o2_HFw]/kN󳆈Qַ2li掳u%0Nmʫpf/}!=`=Y^P@_4١(`Yd-=e%>K=u"ύ|S||"f^u3=E.b"=@z00}Cr(d/ ~|X"9,~S* ?#HJf*f-b*N`CVx"C4'4v3 {cГ߄n&R{Xg1,uxRkŠq5A!|pC߷Z*.lxc$M8Js)fT=?Ҹ9Ns~%߯QAR8]'Fh1u? G`<9״=IqzbܔpGòAa3IR?f%lDN+m HBeAAYwrT'^.U89+c>+btٿtXOhc~%e7yƉF:):;xsdk1]}|tᳯʪ^)&o,x-NT^矰: ;b?,uF (ȝ5v 35f?Fq}=vK"="E$>sX\wj#BI\[%,Y1ZRJ˄kXssg<B%3+M]HZ =K d&IЖH}oe6q#^}~JϕLRou^ }(MWd"I\wQ1ص@,(VPћuZ9*Kew#;s"_dž#{MĽ<\WVVH;eKo+VPo])1 JE)k j^ȰbudDfb:tM Σu*̗]wUZE/V9xtFr|sg)=z8O^ I4%нU/#GYI~xʣS 919X_y*W"\5;$I`dޠo<(ánHiR {"{so1"Jd 3 l߮odQK='JW=jj|` z])s0z(2 Hs j-Ų/އwVKDrxY=#흶b0ig-{Ym!'/fxk~./jG,-;SڅWKfM nY%pX;#A菓l'c1|EprpUcA{+L^KV线VR8j rxr-ugoyc\VIdC!lAR7\)Y)WB (NH+)rCj G&:8wFb1ǜϷwh/yM' <,,2  pI+pY=Rj~ So(Rr1tae'~Pt m[ڴٔI RBqP6mG9 Q *;]S;MYC>NF%Su1`S?~|; @uU9Nkw|BX|13BN;#z^@HnI 70ڥ$P5v jڠW ߠ ,+e|)S@bX'))v󅔯6B{2'6cr';Kv4Ф!)rX13 2xl++!T0L8F< UN:V]Zb5^TصC )J #jڧ 272y*%4Ic ŭS Y<^`in`mõ gN"|`QB|V"+DO?1l8FueQBV.MlZ+/R;#Bс;ɊLY y]&#UOcvd^V[|ntZmZ 8ay#']&5z_Ȩ(mnfLjn͛U SH J 6;$vEdQk0+0 WE+XH:K8{<1/ӿN,-7#:ʙ_R/jXxWeY2޿}Aĉ2Z+tDeD=ؐ͠|3)"\^|%@nuVPVeihHBvѺ^W!c ~ONb0]fKVw:@tuWZ?u߀Y :;YOF)p )_F{N pZ_ aO߲5YkZ7X+CoɅFx󏶺3iM2dzb^V@ґՂ/ęT܆k$e24ӻdyqQv4櫁OȓfVI{)-j$ę+@ӟj~=8Z~^6Fz+zs&`Tm;ڍ$_$0 xקV}A|$*d3Y/  ԉ} v|Ci!\~_C6}Hٷ8 f'f <5QN &C_$-æ8l;Q ]h|V&!0u݅qlɤ0p-TM =S'` v!CTZNAtr[$6 ([o1jTR0PUlcr-S=ۼ~NvQ/p {-6$ד.k;OAjo|w|27 LdZ>*]ZKx8 q'JXl2fvcArf$I'ے+ gr_H\<]{hPc!/A"!EOdbm :!M GWlQ z.W!\~-.0UF{MPWCBfd%̒%fp".N9? [!ϬgOag0},A镡F}8ѨxuϗAEzjkZ;a)}f (o{v4si6!Pv&gPvJ*!X`4/㑇rQaQch8qQzhD;_I6L/(ON:ՠ=! m|&.SQzgW8MpΎ Byܥ3er JrAKxR&m팞GjMi0.0R@~4./Yr6BldP%7DXD+PqO}?P: Ƌ`[1}Mf(.+PvM桌!U(tdó0F~^xRضAzA ~H>B#õdv?vR=hVFOÛk&h[̒p?j^p׺R~}cA9HrTxE*lEO7b8G7iqT}@ 0c5;Qݠ&y`9oZAP- fkx%;[ΣA{ еue9s?MEpO*[GIH>Ns1LZ-@|?ѡ7s¨^eNßuκ?I^'6{u'r2r'f4ȐFY+1͓n4lRr={&*ېlgLWʗCƉEfsbw2O6+bw$QYzdIDx#+tD*H+UUҚJ~N\Wlռ˂F8L[ۊp {[Q" ֏0T]NJ770GT>xmsS$K7]jcq8q9O=]B|ԏ`o@,Э@`m'.H;FN,xMnS!  )36 Nv9DEٖ9/@ Cbs X#a2036`ϑ<73Cn1JKC yŚA:/71|/ <b"bbeaT/xIU)0%nva!#tȜ,˳Qe s\R>$ErG C{c >ʘĚBQ G#-d c!x&H?[uM O#fkg?AH9l:hw9&\)^/Z\E;ݚuQ!QhD#N#5E It8.>]hp'`9M֋i5o1IqcX rtjl:[$\~wse]aB!z[<l숩"ph @#GLfS\l>PPd#kQv)V"DaV e0' dU{E]ݞ^S&-6|ȧ0w]/!xwxSAhc~2 {-dʨHCʊZ;r֝^1L<}U{I ̌E1~Qc'4Pr }\%Di(Fӕ/8J3uLv1r{8?pߋл2ATi][oAA.Y[ԁ]^|| `;Fxtc$]A.K)N`NXjsϸI|ۭfLk0s͔Y@c#k@X<|4j|w#,QE!&)5@4S2!WN,!PG.U]~8L{-Bt!ab!mYh$ED2Lbx%XžznKS3+*4}~3Д XOsvVDNKJ܂FDp{2z7&MjE,Bǩ.^\sNX)n'\nhomcG)Ctlp #墋V6_$0kW yQwޘ|iv" )"֫7 Mq#dXuQDTAip%^^X$ Wh$ldf2Fwؕ/;eJ O$nt*?hxh;Juo4σUި2 ްj3oNXGb*6Bg0ǭ8 {NT-$P7#:hD K6ݎ [$Qd>?s8AށfOO +GlS$-:•$A'&9Q W o{RU" h:Щ wv'j(ۀyNȭy¥ M(rPY s4*H'bⷤЅyڬMFWdyK3FUVh(Jtv`kꢂpLD˃%L~q%y&" 5$) 2_miѻf#%,$^A*Wō/o}W(,#ńLˤnW1+? l+d].fs#)Z{In0*X;ئsoĕM8|y)ڌ3kQ\f#-_cz,)#1RW DgY'`ux-Sx?. ije0gտ"KQy$4- sm2e_lr繢Gc .W{:Xop&.lhiZϜe/g_ Ӟ_?FRM Dy6U{AO0H| T@3{e@[qx-fju'xiUo:)w2'2 yF"=UZ(+rK|y{rTgmڜrMƍ2vE4OdvoNy>'4c>5u2aY Tޣ^p]υ>H1z,8e?^ >\g1y $a&' 7X=Vupo.]fpyЂb}^zF )D\m@2Kgh~y@,gNr\MY;oF=+N8B0Duǃ5;s<ԐOE!Kۣ g"}E K™7rJ1H%Ys"s]1Bi!;U %Q֘7v,e3磻s[UXy b~[WBVI\[J|qc]`0rgImuu yQ{G#bG|ͣ5_Jz`Ic 4=vUo-(3=h;tӞz]^4i KB rC*[ ,slL<乡\AVg^ [UdD[ :W}n(kjI;~.-k S^g_LټΝh-nM*ƚC|$&@H3xh3Qyh-C)%Z\'~Mv uzVTQ"pop%L~ZW b!}a:ǂ+BL{&: t"h35}g/0*)K.­:Li~hFL (b].=̽+\C 2gT廻Yj 8#b`]$́J'Uۅԡ Տy/ێ19pu{ qE7B-ʵ׳3h̀W\X.ݓmY 6,ISs2#qfBڳR3zy|^߳0RA0vh\ Wmv7Cw~ъ2♑Zs.M"RO+v@gM1b&`I7=I)جw!9q[ S+8:N#*E+h +Gl '}oJP5Pk_9/B֪iS㰚8dQA݋ܐHAU4L=d˸ ?U:5΀ʣ(R?.6)4Q5e!~Jz"t Ii6/VUAkSt6lP[b %Z=MX-vVք3a "v+!7q3y@s; D$6'oJ'i<#S߃jW f6m?O:|>`4y?m^jOx`? .A' gbg)_n'޸KcU-c_>|+2!nG~J+:ϖ‰}7qhCo4:O7}bKҟ} w@?p5JFlb" >8f@f^8!>TB~1&\[S K;z][ݜ]FV0}\̌9Qڿ q[jJ\ۿHe;#s+\o,|Oi\)FA2J`euB ?=`6J48)[wM 7/ҏpyq0_z72jz/C+;g}혒|rR5V@Fc<x)0!Ӧ`5@j ض?I6Ն| -d 9Ss+,4лѕb N'6{&}Jls;jqA1*GqN&.T'f jNƑk>/ti`Dm,ɊGR@.ab lW ¥>B [jJlP,k^2G- ^|7_pQ㯊KZQ HrJ4*tquRr5sx\Q$7ãiufQPM~a~gDva۶iOC6-g?Ն9gw:+.Q*̺YhcpƥvLX*Aa`:iT^n#Ek.g{PE쁅3&_ocĻm)Xˈ.&~I61@< rLj@lML#HdcC>SγMHLh_b1 Ǯ zc?8#z*KC"L?xK̆Fg;%2 l8#YLy$:0yXkZIs„D#-FP>o;6Z.d9Tm+F(,}@p:j2M5=`^۳KX)nկʤBiX0֦ǘO}efDY UץJHYvy{USHv#LX; K^cux9%8 UyTt<Tzq,'#'vk/ex4AQpzI9Тkxj;N  a|B{ tyHHRjڮ@U`#w冣&lYHzUq \XFiaK5nhw`aY̡NyZY[)Z RP6a†\#(1/ol- ]jڏΧw`]۳D1s)O-IB땏TJZg^@`cXG,BN2B\ZuRSt0~)a=D,ݒi 7A- 8yFd5WLA:!sG㻆ξ,N5d,"c3`qѕQH}gӶ%@ꀨMN|TiţrVP,=O_8X$7~ gf0EAwQ}IA6AP5!Kݤ05)tHfpݬ,ST׎uMa:Z5K_EOMۓM8E?u{?-B:ʯS群 z4\+ il2S^Q*?QقM6xNHdl*nu@$ڇ4tem̉`/X婨nݬai3,s<6V;,OtJi^ȁ7@ڧUtjd}`䛈:uyO6 (d3 ^rIp槽vI)}<ڤJP 7JE Ed,4N+(Ɵ6 @wU_̮s޽Huvn 1atMv]m,zC␠s239KU3zgۅ] ͸ 㛘8GN8ށs²#!A Av+~B#1[/.~/Xg [/*d#YQݣ@Qj}ʩ:kiM[k*qtyT +zj3BT1% p \܉rx-ڿͤOhC0+Xq9 X=PCjgeYتIg6zn|6)-3PUԬ?U<|^Mt!@ejtvyJ鮐qF /S%)yl>=ϲcq(ᜅg, .H)"#E'x;uA05S0 p,vf6ZO7݀f3Dy^ YMsgق$wEh²nڣiӁZ>n5:),w4SMF \ ˖Y`Az$cfsDaTܰ^ʘNe Q욵BO}d&u&#KòQWvc'26!;9wgHUŸVXYIsx?ٓ\!*v/N=&WQZ1!:zbk)b%TaB\u%j5%טNkcNAZ^'$\4y]jJxaPĻΘq{m\- c@絥tj$XUĚHt |Cw5^".XNjLCVW~!NkR5nA8.5(کھEtsǖXJA@K*!ls~:✾{f.s[s01xMe^@ 7|`K-c[v ]/A#Uo)^&]'u%Cݞ?n4] pVs%@ݼ ҽ{s:Lg-BfLpxˮZ#.(W^^xx-,"Q"wXR'Ӱfd~ qWNL<QmxY7|;"iIBCsbF2BsR=ꬴ!\rpD9v #J%J,T?)d$)dI' K2kUz5_t9DVR]gQ΅Cu|kCisz3t|UOc!7xYi얽C:4]l-"LpSm j@¸*~5K~#  $2;#?ډFhxE*WUo_3]v$%?IiҡF OI= 3p %Q\z^?eZU%y $b/oQtX:g󯑰9lp7ԯyf[z.ۇ vbfR,>( Gq8.yhݩ*9uglGt!jG\i-/FetG_ʎ^TD`^jrlm)|KEL_f嬣ҁk}Vگ O`v="Mch2~5/: oj-J6O]&юmN]p}'ES =_V~0ٍ g5<1xa $վNeOףEӱ*HֺwcC4g{r7$9pl~ > צBէnPם1EDY[2蕘]1ctؽEqL7ڼ6pq o5.ЈFnSNR>H'iKg3_`6] "궡;+"buc{!)? l`WM ݇(\x(KPRxtXΆMAIk:˨R*2[^}2s}΃ȥ_ d4lߦ}< qt*Q^{؎>,AٜE)g Aǘo;IH~eqA!|"MOb6.KVgPܯU :${JV=WS׷󄡮>01#ׂ@ iFCLvxQێmU"G@UVL*!; q"W5雥Kzz4Oذ8=E+l _E `Հjy,,ÙjS(,gwl>/KK9RGUk= gT6y-K⦷|Pc4ٺ^*̖/Hx؆^BE(n:~<_qu(r'qȖP^u!֡=WoNZrqjv3w2uc2ؓR _n ?[I|Qtk9Txc.oaS&M;+%ϑ>zyJ 9ylyrYf=a!6yiJѢ q*/KHLyA5HgAA/ἺX'藀:gqH{Mfّ|cHrݢTy$r_23EX,t%r%9lC Pbu86PZ=սtS:݊hKYP( ,;rU;h߇]-<7m. _̶{t/'K}Ƒ&k.Sî;J}oͫifzo , }6OLC/,q'ue>X$6L#;kZ"3 JG|LOd!uD`/߿!1;7Ʉ6wf ۰B{D&>xR# pt k%o8}ExԵ B# B^7]0&j&|zv#qr?*d#wܴ="96!V &ؐ\oڻVXN#8dU@gۧBغca.RI.] }9l"mSkN7 98hpb]Z oBSF8< H>lBҜP wev-МHU X<c$"a\ETyZq^&s/gyN~ctGDsk̠!>^GjaFwkD4p_!vOs֋v;>kF96OeGp^)m܌.P:2F˕o҅G,<6d'E0ؔ4_&4'µ29AH:kT5LeE/3(2Ú0[W'7ř>e-muhmGUՑ_iM4V7N (H82Kl9o6,ԥ8H0?S0et1fBJJHZˊx>C5\ʩ! (uaW9qQH_;ZN.ÞJ!* &7+/L ĭEeQL!? ِYc Ubm3Nzr~"cDVg(VS˝.+46xuMp$me_bum>+z?ZN>ōJ_1}WN&/%%mp!طzh>:-n/.iȉcpFxC>,"gֹ7C̦Bpt sv)jD h6Qx_BUIu$%BvCprwl!)C"ޛkf ?` ϶tʜG >= "I!Z,clsų.(sZQ)_&b^(Z^%`^F Lռk1kv77=A&a{պ7*d|f ʁnhH,0̾$PQ9yg@ 1^Uk-V>}^Џ|GDч;piʋFzG X ;?4qQ!cYq8Gk_;*E۹V>o{[cvp&V 4m7-SMSj>؆qJ5+^*@$g*-/8_0N@)F˰<1X_KxvT%irumiJjgxG`v:cУ܉"%;Rab\'r]IufoeF=ptſW"; P BVq60n+.]ϙzO EX˗p.&fW4}ÈQӝkx_p2}\+/ GZYr]vyt8l_${Jw@%E,ہsrvF ꁪ-ߕS0~;;:n96\.&^JfL+ hx}L~b4{GG4Eu؎3ɼXqtv0 5; ԁ]X.!G? ]FH vM|KG9ཛྷ,gnz'/g\|t䣨KtDX3#%R EbJt'Y:kz$rX|F%gY̓&u!W *4}$dQ>$o~.N*GPŪWOfo7V[ر')d%Ⅳ@~;vz+!] l!S~dU+hQ!0`o Om:pMpnS\>11>ܽ16N6o͞*`t; _*!|bg\JݣeiDWY׏Lc/UΉTEP,%x6s$τ 1\Gpa]xGYD2 S=]h>CTi9 8TlexRooCq.;f"N=K/fBeضe5fYH ЂE$syT_߈}G+K?kN_.=j)^`!f4U }D91ɷqj[@>{T"ʕьEmM ;V3o nҚ Ygʺyf-usS; n?WrlEpBmʖTou*HC2̃ AݍzuwH"EHoP l?85^\y~ΆXe T=?FbQ5c8VyvX8v5:5`U7FFt n89OpAHgS]M G6cyrJ37~{;Lp|(> ݠ4g2 }*ȵ(rr\$/l#n7$t`jS Rv1б|[śrw2}(n; :%Y-ay0 ʡp~K\2تEi)0X"k31 DSa2jz,5T/9"DϛLv'?x,眪x87FT;E ےbFt7T 6i9&gb^>V!^)^9k*0'(| 97ڮأK~l#TN3 B5b]хbՉu<`?{d).RT@lA޿gRU^!F|Oe.mNGi8VJy*-I3ʊ|#7 w<){o-7$[^IJ.Q_n;ෝP`9nŧPFDTIzƘH읒w|0a^GF>jyy~J2&YTleY2z>A[O5ugt\T۟h>ѭ@GE-lF7qlm*}3H ^(fĢ`f)H ec*8`u! |ǸW|tbҀ_js=:%;1Ӗ T'8洦iJ:%=X_#jhoWXkcdž{r].w1EWT,3{f&%Era?b`:}6lvDd|vf~fSU/b}~c'Mۏ$1u" T)M弴֣7f9(YղVfWZ-F&k^՜eH.k\>2[))|9)^MyxK6m+W"]S °aTV95AFoQKk>lOÁm &.}9AB*dx;Y=Q@qC1>V SYb vPXt̘LO"̙!LbȣɡNxAX-Rw}[(Hj&J f0 D$1A.ԙ$ѿ*#Wy#r>M#C2Ȁ|#S2JmtOA-ieh3ە8I!'H&Cc123A@C(r*:ooqbq#:Ղ(bɷ ݯd(͹wҔX hޓcmX4NىS(75 0;~47^uWtY1[- OF-VwWu:4w Z9HJpYC'ɛD몎F?j)bctLUV]vjWR'D=?d7xΰkaJ?Jc؉Dqm7 NΝ`ן [!Kt4Ay N&K<6]w1)@]TqrvV5uyfu57RK_7{j`E/ݓ e*S[=@aO-Q,u(n* Ĉ!s3q-ᷛ`YRGs?̠fTM\~Ock#$5[TZoSž1`n-;u$CȔX|3FÜ= V xRo~oKgV>*~C7ҊPix,VaQsVsr"[ mTh B]n gzk}8!5-kf5"blŲWyE<I7ݻ0su=HNkF ީ[K1fԯ{JB_ ;(PYۀҀuQrZ .xU[$g2g'\ɬۡHrN0t?=X皺RkiL|@{yVP] #(tE)t=3[Bymg4?`BJa(kFzҝI lNQZd{>9IO#E٤EjN(VL{ZAp4Nv91):s2~PX#-P'2o`إm!kX!ȞDV_ 늈nʎK#6(vNt?sgbWUV^fr5q 74}A7H>wf4hs44T@&$Y+겡= ;OjΦ)pj{g鏛AcϹϽlrĮ:Gҩv˼ދȑ 7 0!؏ȀCN\0N g fa8 LKxݸ:2=*2HXvI/69Z c5%rmqVkI  4>0^xJ0u2c\,`Ɩ0 oo9́!0jf1"Ȏ|T!Ra[D䢁!0 6pl65 ' &C]J [#t#.=wKڊ@{/ Belp"ÀŹJU>a@YO@ /`H#"o|PৼssN}E9ievnf+ Yk,TKQk0˻/" 4fz yhדάfx:[F.!y"V `q\Feoi[y ԝ8+ƙCE$PbW΢ c_47,"TqiξZƱ~9!"ܻGMuY3FHk$?k`d?;74uw<b~\RzT\Zхke鑰Ft=5@>z<Õ&BxZ9W+V:8qgxO~!2۹sVZ2,|;aQĉkhp?I ijLo'ҊR^#jAG{0*(g3rMQKvh/\m3 _`QX"7ӵ@$Ur6}̸aE$ӎҔx3}i*Aeտw`&#@0q0Y%$Ľ5W9L5NL!I L>9.$Mj`J|k]hn;n7RO:l{EjWb~Q,ka.)mP1h8ǯB$0]BQ!B23 >:PCZI%<#>QU91K"VWњć'Y#5f{0WakBoK!H5,T7֪ ;[[2h7旵T0Os}QhGJOɥ=s6eJ"rxs>efPHC-YQ u>usx܀׈iTuvzd]q|D|d{P)AbQLGxyίou,Gl 2-XV*af,{IPãOJ!3ba.]s8P͵J _H2{=(|Ptg$S6Әv ƔE35SGGHDcGћSHf^֢0o@0HqZcyѧ|DjO?m@.mk@И0;a h-Q@00^3;6FvJx@]ӄXbtw>*zQÓF['@*=U pIG,%%C*i);4WZeVT#s0筫U8z[ \gՇ]qS^g%imuجI"ҶzRpR\G>ajA\4Y| ? {{0 ALJ6`gEjI7RT‰+ 凶f1$TfːYh۲BhiMtĊ-|z#VhQdOm5#:7W4oެsD ?{~L&]1F5BuEy)Γmiw:er'HOG%ژu[YRz6M ΨʚW?uRs_j`(s!NLxw)I&bEM(p]̮5IIc~Mv=+f-=r:,nS}Wp K)f>@?%g%ay՚1e5y e5"<#yi.45e"("w>hDzɝ<5wΥcǛ-!l +Qel:e"}'Iт(‘s~IRVERcc"e 6H(6@Ou8|hfj'8$f0kMC;'|sԊ\@S5?gJ] r Õ`EV촗qӗDj@sM7r\u2/ґ<)dK#""x xu'7[˖Vx)N6OJPR=/a@I2`QTP>]u HhRra:^ Ar}oÐ*ҧ@MZ9?zm/'e0=h%2 tnMY0ğ\prH Q*KfLSo~Xխ[KpT _ >,$ua< l~<da_tgQw<߯zYꩬ ]{ǵЀڒ)ꞳK2=GM)z9c.h:KQxh@)PU.%J t]k'r"wt`*Eb=@Ϙ V4Q6m7j饥H\pH 3rR Zpi#`^=JNv*ejD (GêôvF\;#ϡLn_`"CJس3$AAsE"L\oH": sS5ܥ aKǺYzJsKXaF\]^BW=N.,. 1!:=G@O8"ehNz8J،X往N!["\ݓ<5V3z\G'CKF}YW(ga ybi3HY03M 66D 3nѣky(PAP`⋿Lcv}M@ %w[IR;Ȗc*E - }iq0>ofTh/#@|"f0|آf YɃn0U2ykF=z"8u ڿ3Icqu00]( "`-p/y3UrAmXƄ`~ @$TrGpڸ.P&Y_Pð;0S3yu-_cVMۀ7=f{.$;Tt`nH;BX_ɆWZYv>!3CEӬ l[6jyHu׼#r aS4R;qo}QSұe$)Pef$R0? )HAOu1 UjUm "Mjk^SqI;~2;|F9bsG}Bp XC/np</rH<GzID[j .S,8|npA #yi*FY"q)ԗn9fS-')au}uU]\ZQnx0\r4Z]J%`mT \Rqyo@ƒger"I:^1MžK Q!dH:fBw昜syW5~Ugl $t'¯ (WsvյDlAlȷ %1auČ?TVL Q]i)9xϯcǛEuB*t 9ke"OckY#}$L ͒n;+k/%CRASe1su%dL В6O(sܪY|}NYJ|:DȄ?Ni4iz~3Њ70N|ea/#4ƅBO$]rkOv{O՞ SaFK0菶2,'5E"`WRSУ{($ #֪5Ae U1&oЋi}݌jBCaQeL_SY&yF*Ʌc"ֻ+J=Ւ#D 'Jom2`l=Q#f;(^#L}|+// 4W8*d03L. UtSd$W49Ksb:)r2t@Jd bAJIsƼ-nM;k:w{~C^@ $dr=rv?ܪÚS-IxNR3nյc3a59+/Od4O)8(oZKY0cESQym6(g&8P֭"(vĺ^LXptc6IQBsoU+dN6m}cJgeG9vEd|hxX="R,>TJ#k,s dM!EFafi|<$bͯ6(m$ZѮ8#N#X&חN}BXobb\熒e/_'%J{a! )o il(0=y&'PJ\=ruUޤUa-1;eĚo"k;էyn@ϸdֱgݮKG*g-C-1b%|4I=Bz _ofcΔ~ɰtxA V}p}58F&wU\3X#5⁧PH3#KT*$'xH|*M/wY8:O< XW@]Bj2aQLA%5|JHqCoBF/; zB4SP,T`Chrۅz0z'񌟾E="oXJDtvE$N8@3\\p,>MFpZV~ ; mQmr@w3=#M-p]Zl ]ؕZn>Y󥀘qaH,ل4> ePIgE q_]ԙE4x9õ}At_;}$ Xcnl}qB&+~PFxnkњd |(N?0E"hMDF,Ɋ+`\إSOH;Hk4ӥsuފM@O;xldyPIA^P3ʇ,AAk>Z?Nʀ΄,72'ZÏO6s1EPIqC Pƃ&H8vCdN?8h-^gw}l*`_׳ܐ!gtTSW_B&sU}l,2X$Nf8kϟrwMp~wo-mfhrԛ</F?f ͟aD)U22iR8^@H۟_7dvg5ϿRVW):&gd['7rϭXCƕb}{9n5}")I8z?:i/jf ^$%Aw@}MT<~YkS@ ,b^VYkޙn(VH5JufSXpLtL*?"|ώÅ= w){5\#In?TybQOsF! ;_`#ZS&v-e$ ɃNZ 3ւTxS@pLcZ䍑'%iݫ]|n1K`oWO5OɟTA&Ȑ>Waa7nw:+77rX܃z@B2XID J-(x: Y˜o4L>FS 誯٭5um(Z82#,NxsUs/(c~f>%"2"xֳch$)x=Ǵ{ VZ 0 LT-vz >0 Eu\~S* " =ToG7NM!5h4}2j} ̥ Ω>5OotN3\i;4@a#rj_Y)W~D E=j7S|e4h3&Ώ RYی!z\}wlrdey7b46=P؀PR,YqnyY%p(}R^N B\ Hҟg H('W@G P. @+Mt0[O] 557%1T8i*/61rӨ/v"DĀ2ks3rK A8+{ lnHuYK;1s ?NrRfIiWC†Yus.[2u,U$./ےVd럃aLMVzzg/ Ӿ[<ƚd'c1Ӣ{E|2ωS&2bذǃ sS!EVTzI,!'7JOu x@;WBgpc$G\^KӵN^wqN9 7w vi7G"lЈ;yb]G/B%56YkT@܎[lniȃϜ$wӌ![qs_BVhKzj1/.&2{/pQG/z94o:M{PJ.! |maC mŏR21)TيHU-Tu;1H~T'PLFڬ*ݟI# }  r,@Yn@~4Xu>/+x" k~o 8Dͱo^̈́7,`2%sԒbK[E8$,ˣ>bf1'B+붺 ]=?29i{Ho:yT%eī::D]>IaעTŠ ?)Ů"aP}9?VY& m^j-&ML͂)8 !'KI8`/nok5UYn3 CmglmV %PitnۖweaL"lU5+&KY~Km!l"'Er4"<)~]Т_MЦ0 <ϜϮɉx opEI G4>' eVYl {ut7=hɊ)ஂ m~oM@wTC5)@<+=ҭiY@Wб 91qCARU@a{`nV%R͗\ XlXw!m%f0ǥNfW.Ic(m4 }sJA9qgx좜,sHaD uo熍֨ਜ਼u:Ah宩PdG5Aǝ9R=syva5NydY"cr)ib@8ox+J9pj6<K5F;MDXQewuOsͩbZr,tMBFA v]!ksJJE`;hg+nM!bU`k]XT7V\XJTr5w7dKois |klQJ=4(vE6-Mڂ;FQӛN c#lQտr{gxZb.2̘b)B?ҡx!6P\)CeUx с|L\}%7s]n4@*(CL t&M5q6gHtㄑФ~[#iwdʏ(3J\!^̒@[TRD36md?4"0U:ϙ16t>l XC m;1ByZN()"']V421:_Q>#Ќ1,~aĝI[$ \O_xM7mG)g:}6ձSK,)c^R,xd~{x%lP٬D f$2ILTۍf^2ݻ4LN& QgI ;&_yԈ\ӆiRCfn#O޸Jpwd+ 7/'dR\1Z=:Ebj[I1d/~ cX hV@fܥZ 7u\\"(*Lf(tNa|++ $eM,AX7!YXsǏ/5=SoRAhEI`rFdI|]!X1},}Ӹw/u0;Juʃ'XG5.5!8>n14P4K\I{ +/ɆY 9`ꆇsAo!Ž$騷@̵)$e&<|K/@KIqa,MTdNGTtYˣ_+ˍjB>A>paoY v<7枝a aDaH`<_;zy-gz,tjeDomx{3Uz ́,𒥌RuJ-6@Pk˪Dp6 ` ZaP"Y}QU΀ƾBN7FD>Ŧ5G fԱi_RqzrJxҍ}+NͦEc:~ #@ [ ;jZifR9Zmv]^?܁&09,<(ĤGۻ#)2i,V }|"WJoOf@+)%SRthFcMnkLCJu !x&UeE"֋߸\]y/ͳh/8Ug F 6?g7sWS0wbQW!W2 S9.= MWAT=dwS6ЃN U_xi1H|K hp=X7sF=(9y6Hu6ƭ*( Q(]D( .9A`Jc?Hkޑq6X-x& 8Psr6>[}L˹_]hu/P{}de(t._s,)_ w |Ɇg \эEy%pQ%Kڈ.g$yT"AϷoS3mj/ziJ~.n]#i '埶|B{&]ˈ֓ .V}+so_*r;t5:ܭQ+| C>Cx_mm=_Xz!eGl! h [(D(l"H̸9 ʒߞQY'_h>>2(J̷ <*:78| bO>'TOCͫFD>cAقv ,v% YZ