audit-3.0.6-150400.4.16.1<>,e`p9|7nO~|*z*1@7VNyXt _P rrb˧/Tj4$ffhW<-GhKp]b鎰gq0hݵLSg> ;jaBTÃ:ݰFQ>[`N$juZE!da^ﰫã!R'Yp|\$–ȗ'uF[Fl{q^Td:L2mLkC>L?d  A&8 N`[[ [ [ [ 1[ 1[3X[5[67[88 9$ ; (<>89?A@IFQGh[H[I@[XY\[]P[^1bcUdeflu[vhw[x`[yTz,08<@HLPVCaudit3.0.6150400.4.16.1User Space Tools for Kernel AuditingThe audit package contains the user space utilities for storing and processing the audit records generated by the audit subsystem in the Linux kernel.e`h04-ch2a dSUSE Linux Enterprise 15SUSE LLC LGPL-2.1-or-laterhttps://www.suse.com/System/Monitoringhttps://people.redhat.com/sgrubb/audit/linuxx86_64 if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in auditd.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in augenrules.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi# Save existing audit files if any (from old locations) if [ -f /etc/auditd.conf ]; then mv /etc/audit/auditd.conf /etc/audit/auditd.conf.new mv /etc/auditd.conf /etc/audit/auditd.conf fi if [ -f /etc/audit.rules ]; then mv /etc/audit.rules /etc/audit/audit.rules elif [ ! -f /etc/audit/audit.rules ]; then cp /etc/audit/rules.d/audit.rules /etc/audit/audit.rules fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in auditd.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in augenrules.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable auditd.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop auditd.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable augenrules.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop augenrules.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in auditd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart auditd.service ) || : fi fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in augenrules.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart augenrules.service ) || : fi fi/f H((x8x9H8H8]MG/n:Q20C'#FFV+`XFHtR6 QDA聤A聠A聠큤AA큤A큤A큤A聠Ae`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`aW9aW9aW9e`aW9e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`e`c90c9e248efa3381f9344c507450cdf21849945f775d7c59291b6ab54dad830cd9953f20b2be7c063e714b8d2a4895472733fc3d94bcf866e40529afc91b8726b7c3e851e8901bc6b2895a6be8abe38887ea4bf8bcc9bf2699bf940c7974b5672526e4ae01cd81c3ab2d59bfcc8bf3f6828d1e5eb3bd791d009b869f97d1f20c6706201085e33dc29725b0bfa2c7b7d1f2e4083fda0c6b3297b70099e9fec3e981b66f8873daf47927e5cb27bb837c2c4cd95a51855066ed2837fc127df71a125e6239f1e428892c107fb24e998fe75c25e998aeb2cee72c00d73fa8f4ab052cde0c3528e8939f4ceb8d51da9ebccc8fa33c5fb7c3c3db9638c31a660d8e63df30ec0daf28fe9b8b8fd664be73f3acbd6a171cd27de76416fc6645295dce35c91b47e487c48d2efaab7e1eb0ad673a97aedab4bbcd3fe085f2d8528d56cefb95d097e9557c8e779146638c65fefcbd6362694e39a4ee81000e257b32450e697ae607139b99d57d70369c379ac9fa7978b16c3bf81ce6105fff526dec58bfd60cf8be18f89f50460a977145105302a9c50aa77f5b2afd8e39ffd08e0772449f999d8ab883e8595e046372bcb300d67bf0f18e0a776ea043d0fbd8079bdb59bc51703e57e8cd6f64bdb5631b18ffdc18cce824c6e9879f82d90b4c3a001ede77563a2906fe92fd3a41e1aa88d8278fb9a3147f7ca7cd24cf0df8d3fe6ba93229cd5a176e6995f3a61bfe490eb863883f8e5663705c26008914cb61596057b5f0d26b011987df6c4f3e16f231b3124116d067e525c923f924a33bed108b902e5fde54c2cebdaadfb928f7327cc066218e38743f0ff94d02fe162a7a415e148d23a86706201085e33dc29725b0bfa2c7b7d1f2e4083fda0c6b3297b70099e9fec3e95aba151df1a4026ac2bdb4da8652d47c083b63fc5db96ecbbeaf98223ea7db2f5fe258398c4e2a79a1a4a996c262df303c497c444fc29b630028c6bcff8a0680206f8340e59187c1a75b161796d6a5711bb9fcc72784b33dfd9c035a9d127b5ada083a4565d649a86f0fa56d1ed0b686ba78da80a24b290924b9da9ff30743d4d8a12f8a49f111b7aac15f6cac6bc38926d7dc9611691cc290ad23c7b877f3410aca9a37a27583d8bb49d99b6a30f28e04958ac656d35f9b217a4ffaf7c48042d51b846cfb48c1f6eabc2969db872dccfef2a942beafdab7fcb5e79e35b6778195d76e614f68398ad13b48a0f523306aa0bb38aaea285b88d4225fdf69069cf67bc05cbcfde0664abc759bad2fa8577681007d1db77b0bf5a562b1d52f8b0c79c97448ae2dcdbedb4c50464bfcec2a56886314d1ba8ee002f6bf63ec093b1b6bdc6f182ce7a0195e63f1ce60e0812c601e38de022fb8baf03ad6560e78fd73cacaeb9a7f4bb77ab89027f11789e02eb6e9b4f2fc4346eeaea25efe1730d83fe67883a1f395d181e5da850ff77b3a6c69eec5ab68d24e71da1b8f5b5212954599d8267adb81be2e6fffb0b86341297ef0806261113fc59e29a7bf87a4e5dea0d81eb6a682e840cb04f611ab5f768b65d1f41c898e11ad3c6d0545d03562c03ad02c4e9dbd58405bc275e7e187d6ec2eb9436aa54073f557b83ef6e4a06a55fc53ddd91b8bb35bb9559163c6402ebcd3b06e7ecf84a1bb6d5aed89a3f94f4109cd3cf174b6005bfe0fa6cc3aa256bc96a7d335bb9cd554dbc8dda3c916a8f497de1d6a69c3d93637b3bc427c10717d2fc9a6a786b97f33b718c4ce34c2ebe61cb57eb41a6aaf6737c2571b6424fae7fa53af4b41a9115b6c5732a5778ccd9900adc57e70e8785c8465bd22d1cf832c6c1d2c29c67afdb10ec2e338de556e18da83a6d974558dae7b6d24edf083a0d72bb8d15ac463da0717fcd854235168390033c8e5cc97e0b04dce3524a534a85f7005066a284a2d38a104a2f87072d83e3830f36c7a49f882792bb7a15d2d9d388117d14fe09cfc25712972930db6663fe89476b309408dd3ca1876baaecb0117fec0f76b6fd8bcc968e2cc616d95dacbcba2b932715f5989044c0e238fb88ccb5caa39f9554f992bc38cc8ddba55c622c3f30b7754e8ee41c0f579e828502b9d19cceac1db18ef740a80589e59cd35dfc1a534bf22df5c3e2121b431913a3afe6397e30b24453a7ecb7844b17799984895eb88fe75a3bcb807fad74cd020e6e04347f7dbd3ef16de314c0c6a976cdde0dda093222d0d49483ff9c6a3dc9879992e7f61404efb65373eaab12a4b87ef3da02a0761b60c49e34bb46ce344d84d120d62f27d593774d34ef1eddbc85b7a8b15ea5fc54d4981a480e15bc6e1f7e703eeca446cc5b95cc424459c24c40013020d1d52e95855b574e7230ae69fa1ae088a9d582ba7bb493b473d5f10e67f658ae77200e0926039f166a9f8d5b0b825e33358c7f2c1ccc6f86067ba2f684c26d13f95c06136de99e9a6628e4c5a2b007c4f028fcfcef23830a5e58557a7520d8c7a27154100806c1128a8d0456c95bb70f934dc9ceab2e9b6ecb92f764eb8d4924b128655d58e59eb7420d5182aa76017daf40452ebabc1a5131de0a7320aeeee236832b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670902053bbf311b19370f1dcdecd18e5e887882cfe3a2c1fd862926035349efea39ea670026166dd6f362ed954032f06afead4b8e6f121feaf5933be59fe64c57027ac54ae2bf30b7909e61f161154dc2baa0ef43b84b429fc65d028acc32d297411babfd1ab764971df44a1c75b56fb7ee14fca48bc73fe566c3bd88dd52ec595a3debc88bdd2339fde1ae1aa838c437e2af73d9a2f43d0505fb0b1af92c26995e37139d148e3c0e0a3d29e60969dfd591b9e4b1c03a9a6ef1579bce90f56aafbea420ca865e0439c4e9bfb9e9d1d64044f0d93327d7aca25e069916ace89096925317334b644bc5376842459b8050569caf3b203ca48e9c52acb5277d20fe28a10d6c6a953211c26260362afddd07d16b3d246c75893e11af3c245fa1c6fd2a5fa2c911501e9a26d563edf62bb9a5158113e94134bcbe7489fbc5cdbf0518c91ed5560e3ed3b584df4356527afee3116c1f3b8cb12f43d5e0c69e124e4e31230bf0850732938dbe685495d0da757e691198d7533d76273495136adad413f2c530b366481917bf01b313e0c5ba2a3450e517f4b4cd9400a1db6b1a13498ca0330/usr/sbin/audisp-syslog/usr/sbin/auditctl/usr/sbin/auditd/usr/sbin/augenrules/usr/sbin/aureport/usr/sbin/ausearch/usr/sbin/autraceservice@@Qrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootauditauditrootaudit-secondary-3.0.6-150400.4.16.1.src.rpmauditaudit(x86-64)config(audit) @@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/sh/bin/shaudit-libsconfig(audit)coreutilsgroup(audit)libaudit.so.1()(64bit)libauparse.so.0()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.8)(64bit)libc.so.6(GLIBC_2.9)(64bit)libcap-ng.so.0()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libwrap.so.0()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.63.0.6-150400.4.16.13.0.4-14.6.0-14.0-15.2-14.14.3edhdhdq@bT@b?@b=b; aaaim@af@aHwaC1aS@a`D`@`@_ǁ_@^[\|[.6@[&M@ZlZZZz@ZyZ_:ZC@YYYu@Ym@VbUematsumiya@suse.deematsumiya@suse.deematsumiya@suse.deematsumiya@suse.dejengelh@inai.decoolo@suse.comematsumiya@suse.comdmueller@suse.comfvogt@suse.comgmbr3@opensuse.orggmbr3@opensuse.orgematsumiya@suse.comematsumiya@suse.comematsumiya@suse.commeissner@suse.comematsumiya@suse.comematsumiya@suse.comdimstar@opensuse.orgematsumiya@suse.comabergmann@suse.comlnussel@suse.detonyj@suse.comjengelh@inai.deantoine.belvire@opensuse.organtoine.belvire@opensuse.orgkukuk@suse.detonyj@suse.commeissner@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comtchvatal@suse.commpluskal@suse.comaavindraa@gmail.comdimstar@opensuse.orgjengelh@inai.detonyj@suse.comtchvatal@suse.comtonyj@suse.com- Fix plugin termination when using systemd service units (bsc#1215377) * add auditd.service-fix-plugin-termination.patch- Update audit-secondary.spec: create symbolic link from /sbin/audisp-syslog to /usr/sbin/audisp-syslog (bsc#1201519).- Fix rules not loaded when restarting auditd.service(bsc#1204844)- Check for AF_UNIX unnamed sockets (bsc#1210004) * add check-for-AF_UNIX-unnamed-sockets.patch- Drop buildrequire on C++ compiler. - Modernize specfile constructs.- Fix buildrequire for openldap2-devel - audit doesn't require the (outdated) C++ binding, but the C headers that happen to be pulled in by buildrequiring the C++ devel package- Fix unhandled ECONNREFUSED with LDAP environments (bsc#1196645) * add libaudit-fix-unhandled-ECONNREFUSED-from-getpwnam-25.patch - Fix hang in audisp-remote with disk_low_action=suspend (bsc#1196517) * add audisp-remote-fix-hang-with-disk_low_action-suspend-.patch- add audit-userspace-517-compat.patch- Use %autosetup - Don't include sample rules as %doc, they're already installed as normal files - Fix create-augenrules-service.patch: * auditd.service needs to require augenrules.service, not the other way around - Fix documentation for enable-stop-rules.patch- Update to version 3.0.6: * fixes a segfault on some SELINUX_ERR records * makes IPX packet interpretation dependent on the ipx header file existing * adds b32/b64 support to ausyscall * adds support for armv8l * fixes auditctl list of syscalls on PPC * auditd.service now restarts auditd under some conditions- Add CONFIG parameter to %sysusers_generate_pre- Create separate service for augenrules (bsc#1191614, bsc#1181400) * add create-augenrules-service.patch Remove ReadWritePaths=/etc/audit from auditd.service, also removes augenrules call from ExecStartPost. Create augenrules.service with the ReadWritePaths directive above. This makes /etc/audit only accessible by augenrules.service and let auditd.service (and daemon) to be sandboxed again. - Update audit-secondary.spec to accomodate the new service file.- Fix hardened auditd.service (bsc#1181400) * add fix-hardened-service.patch Make /etc/audit read-write from the service. Remove PrivateDevices=true to expose /dev/* to auditd.service. - Enable stop rules for audit.service (cf. bsc#1190227) * add enable-stop-rules.patch- Change default log_format from ENRICHED to RAW (bsc#1190500): * add change-default-log_format.patch (SUSE-specific patch) - Update to version 3.0.5: * In auditd, flush uid/gid caches when user/group added/deleted/modified * Fixed various issues when dealing with corrupted logs * In auditd, check if log_file is valid before closing handle - Include fixed from 3.0.4: * Apply performance speedups to auparse library * Optimize rule loading in auditctl * Fix an auparse memory leak caused by glibc-2.33 by replacing realpath * Update syscall table to the 5.14 kernel * Fixed various issues when dealing with corrupted logs- harden_auditd.service.patch: automatic hardening applied to systemd services- Update to version 3.0.3: * Dont interpret audit netlink groups unless AUDIT_NLGRP_MAX is defined * Add support for AUDIT_RESP_ORIGIN_UNBLOCK_TIMED to ids * Change auparse_feed_has_data in auparse to include incomplete events * Auditd, stop linking against -lrt * Add ProtectHome and RestrictRealtime to auditd.service * In auditd, read up to 3 netlink packets in a row * In auditd, do not validate path to plugin unless active * In auparse, only emit config errors when AUPARSE_DEBUG env variable exists - use https source urls- Adjust audit.spec and audit-secondary.spec to support new version - Include fix for libev * add libev-werror.patch - Update to version 3.0.2 - In audispd-statsd pluging, use struct sockaddr_storage (Ville Heikkinen) - Optionally interpret auid in auditctl -l - Update some syscall argument interpretations - In auditd, do not allow spaces in the hostname name format - Big documentation cleanup (MIZUTA Takeshi) - Update syscall table to the 5.12 kernel - Update the auparse normalizer for new event types - Fix compiler warnings in ids subsystem - Block a couple signals from flush & reconfigure threads - In auditd, don't wait on flush thread when exiting - Output error message if the path of input files are too long ausearch/report Included fixes from 3.0.1 - Update syscall table to the 5.11 kernel - Add new --eoe-timeout option to ausearch and aureport (Burn Alting) - Only enable periodic timers when listening on the network - Upgrade libev to 4.33 - Add auparse_new_buffer function to auparse library - Use the select libev backend unless aggregating events - Add sudoers to some base audit rules - Update the auparse normalizer for some new syscalls and event types Included fixes from 3.0 - Generate checkpoint file even when no results are returned (Burn Alting) - Fix log file creation when file logging is disabled entirely (Vlad Glagolev) - Convert auparse_test to run with python3 (Tomáš Chvátal) - Drop support for prelude - Adjust backlog_wait_time in rules to the kernel default (#1482848) - Remove ids key syntax checking of rules in auditctl - Use SIGCONT to dump auditd internal state (#1504251) - Fix parsing of virtual timestamp fields in ausearch_expression (#1515903) - Fix parsing of uid & success for ausearch - Add support for not equal operator in audit by executable (Ondrej Mosnacek) - Hide lru symbols in auparse - Add systemd process protections - Fix aureport summary time range reporting - Allow unlimited retries on startup for remote logging - Add queue_depth to remote logging stats and increase default queue_depth size - Fix segfault on shutdown - Merge auditd and audispd code - Close on execute init_pipe fd (#1587995) - Breakout audisp syslog plugin to be standalone program - Create a common internal library to reduce code - Move all audispd config files under /etc/audit/ - Move audispd.conf settings into auditd.conf - Add queue depth statistics to internal state dump report - Add network statistics to internal state dump report - SIGUSR now also restarts queue processing if its suspended - Update lookup tables for the 4.18 kernel - Add auparse_normalizer support for SOFTWARE_UPDATE event - Add 30-ospp-v42.rules to meet new Common Criteria requirements - Deprecate enable_krb and replace with transport config opt for remote logging - Mark netlabel events as simple events so that get processed quicker - When auditd is reconfiguring, only SIGHUP plugins with valid pid (#1614833) - In aureport, fix segfault in file report - Add auparse_normalizer support for labeled networking events - Fix memory leak in audisp-remote plugin when using krb5 transport. (#1622194) - In ausearch/auparse, event aging is off by a second - In ausearch/auparse, correct event ordering to process oldest first - Migrate auparse python test to python3 - auparse_reset was not clearing everything it should - Add support for AUDIT_MAC_CALIPSO_ADD, AUDIT_MAC_CALIPSO_DEL events - In ausearch/report, lightly parse selinux portion of USER_AVC events - Add bpf syscall command argument interpretation to auparse - In ausearch/report, limit record size when malformed - Port af_unix plugin to libev - In auditd, fix extract_type function for network originating events - In auditd, calculate right size and location for network originating events - Make legacy script wait for auditd to terminate (#1643567) - Treat all network originating events as VER2 so dispatcher doesn't format it - If an event has a node name make it VER2 so dispatcher doesnt format it - In audisp-remote do an initial connection attempt (#1625156) - In auditd, allow expression of space left as a percentage (#1650670) - On PPC64LE systems, only allow 64 bit rules (#1462178) - Make some parts of auditd state report optional based on config - Update to libev-4.25 - Fix ausearch when checkpointing a single file (Burn Alting) - Fix scripting in 31-privileged.rules wrt filecap (#1662516) - In ausearch, do not checkpt if stdin is input source - In libev, remove __cold__ attribute for functions to allow proper hardening - Add tests to configure.ac for openldap support - Make systemd support files use /run rather than /var/run (Christian Hesse) - Fix minor memory leak in auditd kerberos credentials code - Allow exclude and user filter by executable name (Ondrej Mosnacek) - Fix auditd regression where keep_logs is limited by rotate_logs 2 file test - In ausearch/report fix --end to use midnight time instead of now (#1671338) - Add substitue functions for strndupa & rawmemchr - Fix memleak in auparse caused by corrected event ordering - Fix legacy reload script to reload audit rules when daemon is reloaded - Support for unescaping in trusted messages (Dmitry Voronin) - In auditd, use standard template for DEAMON events (Richard Guy Briggs) - In aureport, fix segfault for malformed USER_CMD events - Add exe field to audit_log_user_command in libaudit - In auditctl support filter on socket address families (Richard Guy Briggs) - Deprecate support for Alpha & IA64 processors - If space_left_action is rotate, allow it every time (#1718444) - In auparse, drop standalone EOE events - Add milliseconds column for ausearch extra time csv format - Fix aureport first event reporting when no start given - In audisp-remote, add new config item for startup connection errors - Remove dependency on chkconfig - Install rules to /usr/share/audit/sample-rules/ - Split up ospp rules to make SCAP scanning easier (#1746018) - In audisp-syslog, support interpreting records (#1497279) - Audit USER events now sends msg as name value pair - Add support for AUDIT_BPF event - Auditd should not process AUDIT_REPLACE events - Update syscall tables to the 5.5 kernel - Improve personality interpretation by using PERS_MASK - Speedup ausearch/report parsing RAW logging format by caching uid/name lookup - Change auparse python bindings to shared object (Issue #121) - Add error messages for watch permissions - If audit rules file doesn't exist log error message instead of info message - Revise error message for unmatched options in auditctl - In audisp-remote, fixup remote endpoint disappearin in ascii format - Add backlog_wait_time_actual reporting / resetting to auditctl (Max Englander) - In auditctl, add support for sending a signal to auditd - Removes audit-fno-common.patch: fixed in upstream - Removes audit-python3.patch: fixed in upstream- Do not explicitly provide group(audit) in system-users-audit: this is automatically handled by rpm/providers.- Create new "audit" group for read access to logs (bsc#1178154) * add change-default-log_group.patch * update audit-secondary.spec- Enable Aarch64 processor support. (bsc#1179515 bsc#1179806)- prepare usrmerge (boo#1029961)- Update to version 2.8.5: * Fix segfault on shutdown * Fix hang on startup (#1587995) * Add sleep to script to dump state so file is ready when needed * Add auparse_normalizer support for SOFTWARE_UPDATE event * Mark netlabel events as simple events so that get processed quicker * When audispd is reconfiguring, only SIGHUP plugins with valid pid (#1614833) * Add 30-ospp-v42.rules to meet new Common Criteria requirements * Update lookup tables for the 4.18 kernel * In aureport, fix segfault in file report * Add auparse_normalizer support for labeled networking events * Fix memory leak in audisp-remote plugin when using krb5 transport. (#1622194) * Event aging is off by a second * In ausearch/auparse, correct event ordering to process oldest first * auparse_reset was not clearing everything it should * Add support for AUDIT_MAC_CALIPSO_ADD, AUDIT_MAC_CALIPSO_DEL events * In ausearch/report, lightly parse selinux portion of USER_AVC events * In ausearch/report, limit record size when malformed * In auditd, fix extract_type function for network originating events * In auditd, calculate right size and location for network originating events * Treat all network originating events as VER2 so dispatcher doesn't format it * In audisp-remote do an initial connection attempt (#1625156) * In auditd, allow expression of space left as a percentage (#1650670) * On PPC64LE systems, only allow 64 bit rules (#1462178) * Make some parts of auditd state report optional based on config * Fix ausearch when checkpointing a single file (Burn Alting) * Fix scripting in 31-privileged.rules wrt filecap (#1662516) * In ausearch, do not checkpt if stdin is input source * In libev, remove __cold__ attribute for functions to allow proper hardening * Add tests to configure.ac for openldap support * Make systemd support files use /run rather than /var/run (Christian Hesse) * Fix minor memory leak in auditd kerberos credentials code * Fix auditd regression where keep_logs is limited by rotate_logs 2 file test * In ausearch/report fix --end to use midnight time instead of now (#1671338) - Fix build errors when using gcc-10 no-common default (bsc#1160384) New patch: audit-fno-common.patch - Refresh audit-allow-manual-stop.patch- Reduce scriptlets' hard dependency on systemd.- Update to version 2.8.4: * Generate checkpoint file even when not results are returned (Burn Alting). * Fix log file creation when file logging is disabled entirely (Vlad Glagolev). * Use SIGCONT to dump auditd internal state (rh#1504251). * Fix parsing of virtual timestamp fields in ausearch_expression (rh#1515903). * Fix parsing of uid & success for ausearch. * Hide lru symbols in auparse. * Fix aureport summary time range reporting. * Allow unlimited retries on startup for remote logging. * Add queue_depth to remote logging stats and increase default queue_depth size.- Update to version 2.8.3: * Correct msg function name in lru debug code. * Fix a segfault in auditd when dns resolution isn't available. * Make a reload legacy service for auditd. * In auparse python bindings, expose some new types that were missing. * In normalizer, pickup subject kind for user_login events. * Fix interpretation of unknown ioctcmds (rh#1540507). * Add ANOM_LOGIN_SERVICE, RESP_ORIGIN_BLOCK, & RESP_ORIGIN_BLOCK_TIMED events. * In auparse_normalize for USER_LOGIN events, map acct for subj_kind. * Fix logging of IPv6 addresses in DAEMON_ACCEPT events (rh#1534748). * Do not rotate auditd logs when num_logs < 2 (brozs).- Use %license instead of %doc [bsc#1082318]- Change openldap dependency to client only (bsc#1085003) - Resolve issue with previous change if both Python2 and Python3 are present, tests were failing as python2 bindings are preferred in this case.- reverted -j1 force ppc specific only- Add patch to fix test run without python2 interpreter: * audit-python3.patch - Update to 2.8.2 release: * Update tables for 4.14 kernel * Fixup ipv6 server side binding * AVC report from aureport was missing result column header (#1511606) * Add SOFTWARE_UPDATE event * In ausearch/report pickup any path and new-disk fields as a file * Fix value returned by auditctl --reset-lost (Richard Guy Briggs) * In auparse, fix expr_create_timestamp_comparison_ex to be numeric field * Fix building on old systems without linux/fanotify.h * Fix shell portability issues reported by shellcheck * Auditd validate_email should not use gethostbyname- force -j1 for PowerPC make check to avoid build failure (lookup_test.o: file not recognized: File truncated)- Add conditions around python plugins to allow us to conditionalize them in enviroment without python2- Rename python binding packages to match current python packaging standards - Update python build dependencies to resolve future split of python2/3- Update to version 2.8.1. See audit.spec (libaudit1) for upstream changelog - Remove audit-implicit-writev.patch (fixed upstream across 2 commits) * 3b30db20ad983274989ce9a522120c3c225436b3 * 07132c22314e9abbe64d1031fd8734243285bb3f - Cleanup with spec-cleaner- Add audit-implicit-writev.patch: include sys/uio.h to ensure readv and writev are declared.- Rectify RPM groups, diversify descriptions. - Remove mentions of static libraries because they are not built.- Update to version 2.7.7. See audit.spec (libaudit1) for upstream changelog Since commit 6cf57d27 (2.7.4) audit is now started as an non-forking service (bsc#1042781). Add config: audit-stop.rules Refresh patch: audit-allow-manual-stop.patch Refresh patch: audit-no-gss.patch- Version update to 2.5. See audit.spec (libaudit1) for upstream changelog - Cleanup with spec-cleaner - Sort out bit /sbin /usr/sbin/ installation - Install the rules as documentation - Remove needless %py_requires from python subpkgs- Update to version 2.4.4. See audit.spec (libaudit1) for upstream changelog - Add python3 bindings for libaudit and libauparse - Remove patch 'audit-no_m4_dir.patch' (added Fri Apr 26 11:14:39 UTC 2013 by mmeister@suse.com) No idea what earlier 'automake' build error this was trying to fix but it broke the handling of "--without-libcap-ng". Anyways, no build error occurs now and m4 path is also needed in v2.4.4 to find ax_prog_cc_for_build/bin/sh/bin/sh/bin/sh/bin/shh04-ch2a 1707237602  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[3.0.6-150400.4.16.13.0.6-150400.4.16.13.0.6-150400.4.16.1 auditaudit.rulesaudit-stop.rulesauditd.confplugins.daf_unix.confsyslog.confrules.daudit.rulesauditd.confaudisp-syslogauditctlauditdaugenrulesaureportausearchautraceaulastaulastlogausyscallauvirtauditd.serviceaugenrules.serviceaudisp-syslogauditctlauditdaugenrulesaureportausearchautracercauditdauditsample-rules10-base-config.rules10-no-audit.rules11-loginuid.rules12-cont-fail.rules12-ignore-error.rules20-dont-audit.rules21-no32bit.rules22-ignore-chrony.rules23-ignore-filesystems.rules30-nispom.rules30-ospp-v42-1-create-failed.rules30-ospp-v42-1-create-success.rules30-ospp-v42-2-modify-failed.rules30-ospp-v42-2-modify-success.rules30-ospp-v42-3-access-failed.rules30-ospp-v42-3-access-success.rules30-ospp-v42-4-delete-failed.rules30-ospp-v42-4-delete-success.rules30-ospp-v42-5-perm-change-failed.rules30-ospp-v42-5-perm-change-success.rules30-ospp-v42-6-owner-change-failed.rules30-ospp-v42-6-owner-change-success.rules30-ospp-v42.rules30-pci-dss-v31.rules30-stig.rules31-privileged.rules32-power-abuse.rules40-local.rules41-containers.rules42-injection.rules43-module-load.rules44-installers.rules70-einval.rules71-networking.rules99-finalize.rulesREADME-rulesauditChangeLogREADMEauditd.cronauditCOPYINGauditd.conf.5.gzausearch-expression.5.gzaudit.rules.7.gzauditctl.8.gzauditd.8.gzaugenrules.8.gzaulast.8.gzaulastlog.8.gzaureport.8.gzausearch.8.gzausyscall.8.gzautrace.8.gzauvirt.8.gzauditaudit.logaudit/etc//etc/audit//etc/audit/plugins.d//etc/audit/rules.d//sbin//usr/bin//usr/lib/systemd/system//usr/sbin//usr/share//usr/share/audit//usr/share/audit/sample-rules//usr/share/doc/packages//usr/share/doc/packages/audit//usr/share/licenses//usr/share/licenses/audit//usr/share/man/man5//usr/share/man/man7//usr/share/man/man8//var/log//var/log/audit//var/spool/-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.suse.de/SUSE:Maintenance:32494/SUSE_SLE-15-SP4_Update/73526a089598575fd6d5cd1f42c951bd-audit-secondary.SUSE_SLE-15-SP4_Updatedrpmxz5x86_64-suse-linux  directoryemptyASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=71585e2efe6db50d3682fb416b1a795f06a96153, 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]=21db607a3920fa2aac38adee92cca8b26ac4bda2, 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]=f5cf8372b68062d15c18c5e5fe5f8d258f0a1555, 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]=cbdf0f3f947e9d422b9419ae82c7fa317a999d79, 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]=c3b05590072f96c5a7d304349b7fd997369d985e, 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]=2c8b385bfceb3ea679d85c4a7da2bd482a0a208a, 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]=5cf9f075a8f2a0acb9fea12e3f3212c7a90ec950, for GNU/Linux 3.2.0, strippedPOSIX shell script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b56bfda337f906f314d810cd818658221cb5762a, 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]=ad80f177301d835d2343047d192a1432a3dc17ee, 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]=8cb3f6eef7f03d5bf26593f253629982079be9f1, for GNU/Linux 3.2.0, strippedUTF-8 Unicode texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)troff or preprocessor input, UTF-8 Unicode text, with very long lines (gzip compressed data, max compression, from Unix) &89CM  RRRR R RRRR R RRRR R RRRRR R R RRRR RR RR RR RRRR R R RRRR RRR RRRRRRRR R RR RR RRRRRRR R R R RRRRRRR R R R R RRRR R /;筷,1fI systemdsystemdutf-8a8ebdf3c8216ed086b5df361c7b3fb90b8aef771cb7f39ce01e87d1f127146e2?@7zXZ !t/O\]"k%fs)q tNZa̅# [279sL|lɁn! !åz:Yl rcx8*2depqɺF<ťU8`I`>b00^beVƒ5ێV;X sMy%y>PX4zMGNIwaČN\ǒ']Uu5EPk v+rތ0@/A_ ~/NgIU{i6:kOWA$ ClF4:FFۋ Ve60R<K Jm9, YHK]+l#>LR+Ak'!rXn(tVY7D7ï%▀OeN i:dJ )1czW@֯đo&-g;mQfOЎ 1yi&1(o05 jUVd"|)& V>yߍUa:DU? NȊTO; 艖p\g|L(!fS9;JJm 2h_hw[UR4fՄ9*R^|esڶujb,bz8@đ 9\pP)o vYV$[q1X(ʁ?3%=/iKxz~~q5Na^+0/A]ȝM 5ZFĄ-Ʈ"nT^608c3Pe4J$ VoM 7;&UNe);)|6NP5kN-OIM0˲6`u[ά8S`R95OUbb%?:8`D;{L8go/=+6?S +5ՍI98FqɀC;iaoRۣ{ʺ,]#6”aK $'$9M̊k &:Ɵml)x8A4Bu 0B1)s/NOëݍRkiئf JOV{*#|T@Q= ,7J(g(-aC'eab x%KƃXk BB}-9bKvnd0_%!\ٍh4 79ܫbF#1 ~>nW!ш=\lY{P')*C:'JJT &RWyjM<}0`ĹGIC, <%<@;+)]ñSQXqq@M CdnUKBg6(4rz1J5T$l\N?|)/w!?n*ݟn`9gn6Pѳb8#56: 6wJـ~#Җ=J9#0P(0n\Iv[-g$捃IG s?b>KBs@ժ[qnY^@&Ʌ * ZTzt2bVo0Hbta3]Vv;e6Cz\B+5y.Yxu07cTJ3}'i7:Z}|q{`]U'j VcVrya.ZCR,`^ȺϠ Ø&rU}$̼A,SG*N=qnųuU!..&AAJ/"(w+o9»gi`QV?3}$RAT;Rf b ZqVDW.F o$2TY5PS:M}Eb?1 {J[[Hu#^8.+,N[Nfc=mϛ~w4T>*YLU.XOq%R~pfCEa,:\ўZs{*#Yi?,jo3&'u s?2Qȭ,x.׌ FhTg踭Y, 6!8`Jv6xeP" ;0;NR% JJ0¥xGvC]' E6F{ ~Es.?;p[ L$Axȍ+?,sq-D@Cu#h,@|H 4d/Sxd QJb1MH-';g7a}fX!2-M$&7`>0-0B,`(Ap1Z$$ NьZտA)4_RnEsbuA} u3阺 \t0͗GŹUb_%NmT拸%&M|a U{R!5(iU"nez&vEQo1([B8j2AMꍀsuݖ}Gڪ=V,uk+9?hSp LM:[J)A6"4a,l#r(gz-%'B qG]] J\ʫ_rK 6f{$yܭhqre2wE=c4"uz rH 7CEtC>qd.ػf5G6=ߪ*3m%P B$[FѾ @YMw94cM幕IGe#Tu"'zO-&P`fDoMv. jSbאcjI,At `=@GX~FL)Z ؀ lX"G{'lp6Cٮ4أӴ'g7Ld!6FSM-:UZ!x4O%k9L>h `'|Qssbq G=(P9sھ)k\a>#WѸ}qYU/涩?;(2{GGy0ݬmd`%; h&2ģ|M:Sڢn{@E#%pCl^ FS i#)-jR0ڧNg:y'Y CKT<%4윹́tG:FaMEkȓՐiJ`pG8; ΤO ;\< O&e֎Ə[Nǯq Kۇ)ބy6 Rw"ru,O"rE$&%@|bd'c=u.UT,̐3ْ==Hs\-}k(CEZOd a@0]'V_b3VpW:`DK;qbwљ>')ix#nz1{`9uхlrڕPhXWUF%IˣmʊƳb,?Po_K<}5Fř\]; u|W䚬bh}C}ekܝ3[vP# @:I ޝ8`X>Y=q#)W8aV1-}q0,berJ,hʓ^ JcnU9 %g29F3< #J0/A~ l})+xa}q-ݸ0t/ףqX͎>zx_/uӤKw|i\)¥l_Z6{x O XB_CJėb&tD&7ZYWH-Q)py yXIs}% Ce肛~=wHܾpUķG O$9Ȑ?uMVDUCY †G NX$x|Y\yUvȧoPt`btÀ" 5mow W5 G0w @ :Z([oo6ft#1f⿩wjMaѴg]coK=fj9n{ zDiޢظ뤝[h3Ob}"Yռߊ; rYyښ.Ik9sl1kNh&-spM=QKMw7T$2cpߕ:N`@fk{9(sfSH}:Гc.mvڊ-K퇂/(:`d,%TѮ٠BŎڴު MKڄەxG$+@'e|H\ڥ)ol`k<%;qב7==[P ӾZoLJjH +'ʰ_AΧˮbB`QrN~{Ǣ].~ B-Φ|=-=@8<>cnq0:(pǾo2`q`:vCǏf⌣0xtc5m@ܒ;[~0n/\¢ ֆr' n>[eGR{y Zݖ E6 wr: ERjˍ=aK_Riv ^pOvjE#|%mƂFgΰhÈ"Fjt ʡ20c1 QO95,y:.rhSzsS'Wf!XJz)|ܟDVOl ieQ]%Infjr5/A4%r\VbZǕO[\8c>!b6Z*A3;W2Bb>=+ʍg' eBՎ_-.ٔ BlȥT(Xk).mn'dFS#38CƦqӑX@ Q CaYo\7"X .w8r9ig,z䅸CIﱫ YmԈ,OmwD^=8[H^1WY n+T'dJ  )$*=[fAP4z4G^Psrdg˅w4_Igͱy,/!Xj"wd6oYwchfl1xl:5bk]Gz'^v.ONo6V̷GAplx~ʟ)\.. :[۝S>O~*L yEj*S";HIN[G8|Yh)k@ZSHbhXG 5P `_x8ڃ$q$D>ZbC~t69ﬗ髷ȏh"FO.M-W'L^C{*xUł$e `Oӥ9G{-3kMnY_Ίv^Rʳ5%BՋ5m3Mޱ` U_1̄*'!V!%!҆?Hd.RPd !uF*=Iu`gԀ]1 *+ZZʰ~6u=H8}hnLllxıeJ>9z54Buk0Ȕ N р2\8A罥Fn(fd9s%b>pr@W7>EmcO2ÜTN^%X5WN@̹Ab奵 JWt|(#swdyTV^/M2!!@teC8͚L&dwXAe,V"ck98㚹PRog>UpV( adhn 6V-@P3zG) P&[iEH/RݢMֻ2 tӡJG- (hmk="#֍=BuBu9O>(sfZGvŤE̾/e7tekE go)]ܦJ>r1*9Y Th"=>xM+sogfڀLpK|,,\4YbIltpg_9+I ^Dͪ aP$ +P6OCz6(Wcj%kvжszYa]=FZșaau?fwk7^@E䵼T_PaUgnWȰ3pCǴ\yCyx{\;s7૩{fǯo_cF Iq͡=*$V5@L7vbFV_veWjO> aѢbpHMD<˕!l_ä1ZO(c \[&pD/ڄ,I;. }'<E*v|[) (_xͅ?v3({Hoat 2bopȝm'p}_x *H4dTY) ,'d RB7^.سjW34|Mgt RqZdͮytny|Yr P݈@;Pzϴm$Z1 #eR[g5apȜ$ FG$-jO.ah$#\V ])jfdӚ3tؔy!p# }1Fb2K#+DxZ\>+9Yȣ][8;6j U/( 8?:LDS,]cu5,iD&^w~t$I<z <iϙߊi*gnxmV|TW`yD"m6SKFm#z"ݯ1UVY] CC+*,{k{ohۦge2Uqo߃/!Ҹ#Lٚ05(LQ&f#[Ig2aBG!n>* F~56yyJl/;oZLESoܲQv$ ]TiYeaj1&qC`fi:IDcHI_eګ3B!>"| ?ۜ^?FU^ܜ@i$CpspbXw֌>5tV_%or5%;_9-2U̳EjXW1o%KpڤIGÙ$3{tU $9̥ a"/ٌg~H=.*ᚏ D!d~Fy'p@op0W@O!ՄCWxϧZh2t!'73IW[b9kɋ?6Jo& LwWvHXɲ%D<}֘Z;@bv5t}axnFdiVEqP :H랙&OuATehstV$9S3&A"=vN Wc!9*!M4X< qгB&%Rc/(G];ؐ+)`fE>c_)iJ' *޲W Mw`'b}Ze<]nY6FvAb[9sW+&RL?>[/|` ia'N#jM5wv\NLn*+na \;fAFIgY> )smYUh$?hl @P[!S˽|-GpB.`|!;fB:qq'c9ϲ.orKaS6s1Po?5+ؓh)w} -E̡o6ߍ٪HNz;6 ߍ('`JF5q$ D信[s}͉sXU;)n.NZSy2s@'(=>h`2m" rnoj.YRx3hm)Гs:vlA/=9ěSW!ǕB8 uS:]J@XSO5@`J1OK*P<#*zYB-_ݜRy5SlQq*n5\/(q*͑O",K te탶49t メSe[}:ѝ 8?d11w0NJ,9Ǣf rR@qV͎Jwd?CVe99/]}ؒ9HE]Ǧ_F\GvO#E_yegO9G5#8{@Cb'3kՍ&g_.jF4f`tXq ⢽@9_5|[uM3tPY#=+us.$줼`QAE$L؊њ:tF2ݸA @DNfd&,7Qߐ6g496a`\LwDطkVFbhf&qGߔ6TGSO|'rГIi)yw.Fr3}CP,Ok`25A`N6Qe#A zbev U8o]mhtGGn:> %I܆Ul>0`[ۙ8" q!'oVOCn.8lO!V'O.sf?4!{HMX_ڣRx՚T@=ݭЅ. SǃEtOaBwgbrY*"٪0n!A@[3O1{BrOD=4Ԥum/8Պ]&$ͿCYT9@v$AlV_ֵ.1V_yEt.iN?aQuoDs{KD\ W$DMv~|#@%XF\ i%LK-B:zZgDFQkbmerPVIt %A,P$JgSx8]ƍ:OIU+n_3|5Xr_Cj|AbVyFHyTnaDQ\.@-z_d ԴëBړ*gSq0)eG>0g*l,؂2hZP5z.4$y[Ơ ,&pGҠyERfCQDFR,so.hVC4w{>_{S`@>F.]Oұ)!nCgd᭖#8+:U/+lЦlHٮ\VNrޥǞ{A:6qyN^'qɔ ֦ 2aNo|lѠj;:D=BH?C4Q9w0S PǎFftpc":e%QjB U3sy UU% -̼'1%C̷ kmɫA-.|)M'eNIړ6)Al2ɇT8{QJnIw8lnqKN'-}Ӿ?1.?.Fn̙ݩPf`u-o11fW*#eXY :nX-ei_0*R!PP)~t` /tb}LӲ/\k`JS"mUЭø0uL(״;LJR!RoMZ*^9[#ɛ$/ b@PM+Bœ-c z /0 \zd/c էLΧjܒ"kktPk>6 蒛jp" YZm%R;$r*.`!P2HnPZU})v>n"2[_-gԡPbML6}PLۥ\W'\!fR. 'Md]5E+$%q1)D4E1 E!9g+s|?Y]z&5H^BʡɶR<  ɢ"gڇH?6Z]'UǨ`>hh //4|%]zgwlJ hڋpSK<{xXxK;ĕϴdȊ_>hDxdU?:QZC c6-i^j 3iD#p=/,5s;OJLk~}!=Z^Y篯*xŭ{Lزo6ocv^1閦"ե@lr x2L._7L0B[;gCg]o #t?װz{TJ iZTsTgdWk#Ӌ3cBzҍ3o<tKʽ.e2g!YzJ*>rpVtU ڞ?Tݴ-K>c,=@\03q mp銎TĿ惧iyLFJ'_E]-hp=c0dL 3.8 fs;> (q)|$Z2zgMPC.;!VAژdoIY.H{ƈ~ Ȯg{G2 6v=AQ9E-.[$ֿ6LOFHv:A̵tNHTM :`*7'ab`å2h)%/cSrU{ Y M i1)ES#!9 =_^?"Qfq{S%͹5t֦C+OhsQkwhF4„w.}WYG l΃n#6E$d \#9əDMa@%\^c 5؊Q5F&h?C. Ц…{/uj0\g-!|hDx@C>8]Fh FWɅHTf'g'PR3? 9;t: a?U(4*3EoݲSYE3]s]"DKV&Q'ܭb8yl1؃}W cx "歯u,9Hi @* QL8vRtz9(j#^Xkʰo9(g-G*Q⮛CY-WiS bAgU'o4׿$zu:7nӨ~[*#m _"N:w(xcq|k6c]3l|B C1 )]7U=F.ƐLy;ti&o̫H^ a2:gU 4z`p1,eoM7|$S#8YzWu߻ؤa%kx{rc_teu3%XZOØ'x1||{/3W4ko?9DCiYFNp6!\=X2RYw,( M䅫r!pP`/ї*+3zґ+tY JXno15J;K\5uf젽f\uA8Ȱ~@8b[eMU'+#Zi%iUΦ]^ΖՀv_0\hRWځƌ®^_c ${>856Id1aSdg i]H/^O1 @`,JyX>ld58;Op'Ʒ)ކlAQ%^ +Q=GGl:J3Ԧ0?6FAMəd4j-Lvէ7-#7odB:/0ucҚAJ Q 'P8MC4puQ8F4pP3pNG+czα( 02fpcT?m*|vnzȪo8˯)f-׺2ŏ`#C ypl3݅YI;V`Ǡ؁Zm/P{؞ xT|I}8b*wX%> A͇a3o^|אo:)O&YlΨ3)*F%r|pbV_KuMI?גqUg M%Lo9bNhӋ.TG%5$ q?X ?6:K ɆkeDm$(hR-te_u|T]}TM&.͚ݭcAeQK|f|{gw17J=tXz=aĝ%/CVܡ$ Bwԝ~N@ LiB-YT6\FI x~>Gu]'|7%QmG2[@€7T{ ܩ@ QР.`l)-3?"v<-g-Lwmprрr+7zRȘvWEphGNV3SU4 s* !4<| !cz ( &Uۧ_"Z%Z+,w(%EU9Sy8<ͻQx7-'UY u1uEiyA3Y&WLDΕe u¡xĞVIr8&2#i4kg3*Y#ޏTO=*S1FYߐ=&[>jœj{-&'Q~>P ;¯YfߴTtfCoo_SNQZC̛2m=˲y\Ӑ2g.[ EwL#X/PȄFċ/+s̈26'H,yH>1紷}_|И46?$7(1G;AOz7Rq{:8-h6{0; cQD'r ՆgDd"Neqbc99O(0Aiʎ}hbm0|-BovSnG>w=OCT'*\Gc6y̕e[?&*eM؆ ~^ՉO+JҜ̼ ,?cK=?o[]n*?c?̩@!~^h9 w=x"\|7p= |N>5yot {a- ΛүZ璠n' e4i#YmR5&?s(5UB~Q@ߨ:hri `ּ5Y {lh@\@͹V#I<c:?*-^V̳QZ~x ytm߄ . ,pN'G~=⍟I(>BVr]o9ܾXGHp5x.A qDUZx2[Wе;sb~DO3T'P=C(UV@cL lю^Qdds&cC6v&vhpZ"2 Au-]f,U<~Jܐ7jŘE33'fNekuI?dYl7z#$'#tJG$K?%(OM3('$1Ҹ(|2tAyېm@)#K?Q`?\W;F ˟6 sE̘ǯ]@c6'g?g[mYG!8OE/##-D!Y %vsř}˭nz$K> ~5l ޾unTS`@yx|G8'6vDQ~,g)!w]eVeC!S=MS&0 _TV1h‡v'ԋFPrvFA䪸cLՃ0jv&dq(a{8-Y:O0Ī].8 T a.2vDA,- J۸T1JQWh|B%jlOПyLvG̅Y욑߽{笽Wv/C{XG)A9zN^7JҺ^ a*Շ~s߲:D~Gz^j)-9"&enPlAQbCRN&%:a@_fԮC }EH : tE/mRef[Es(BT N{M{ <;uN5ӯPR˴q 3{ID?{FeXA[v܅3 z !UmEB$0OeF2j)*,-}7cA> TddymYMH|Zp+>R7VLh8 ,Y':0%Cف^!ŜUlg(qr0yO j#[Ȯd+qB$]i]T~ $wO%*=$|xA?P]4С9Dv&BњFWAOp'+T:UYYlwб̛^7rTL&4hC hz|ef6,z)e7'C\lt냑XXuW ^'}(BE3/;CSwID]8LGRFZsLK10 @&:<zvlGmBgB^#ɆQͣ7 GxÒei2@8 7E^vC>. 1,G_Nyb-֋&U~>j86NuN#V3.= mKߕ5SȢJbZ$dugJ/<lz0%kRԸgj{$@VB#w6#GiniVMR ^7_OGr(&DW(ȅdl刏~uMl=TM^}…-j.K/##sq< p_Qƙk5}#klTZO,81|- /eW7у#V7 ^YENTGy4w#`mr%5"'R 2!H+H*yg'[IX O<^| _p굓x#Y$f{h2<$n -ӈ lNJ| c+r6c- 6⤱6~-OwSͱD 'Xhc WbqmکڒBȭr |Hַ[3Q[mҊaiAxEL,mayb qћ6y:P+ E*RPI΄JбsETNFnVS1iO#ͱ}I KxiX}l e;iG.&fo=Sl0y8f\eP_QU!6KWpP堇A40cfr0'`4/zon/OLx9Mv|%ۈщ{֝"9~X^bHʵN_(d^o=ǿfȅ;⶟;L 7,g,cʄKei(]XeWiS޾<;g~z'iwle 9+5b7bJR@PWX 'eZ4 Abҽ;з 9,>0톐1z,;΄xAƆp1`1p24T):dvjq'KRZŋ,~ }Ɠ|z 9zڦgYfPX~WE~Eh_M5*$vŠ@;(DFǎk;EcVZu5 j^YT3Fkz{ }Cbz18Z HE\=n 4OM L] fOXq3m ߰WeEҧM1p^ṖI?p#A=+LPP̯jΧ#9XLl9|qW@d30$Yk*I*&GbU`Ev0kiB+fr`N4% ".NPZ~x$b1K V:8C؃duW[ \@A/+ jlAB-N5)Cj~`tn3DPW=_ҒL18LhS ^̨ rvC_0zxw: 3#>2BzA „evr79%n#lZJ6;Ѣtm,.?F9g-E!TA¥@Wl3<{Ho HZjf|{iR#o\\Y%p{!]ȉz@,Gއr]i$(Q#,гzMpEӁ&ȦZS_էur2Ok"y3 J#@;1~p&tv7AӯMR k JCKcrPh$o'1~g~B1yJ`ٲ3[?UFz.sexPQ%ŅX5Tm\KXAtK\b _!ܵ vd=1Y>x$GUpayZPג7Kk~w;U^(\_L y݋uy?lY: %7̻f@%ƀ̓1xo51ndT$j7;j8OX招*~H? <>gg7Ħ֛⒓v f̧ Am} 5HN+ލܳ)cӣ'??~bKkzq[[ 0|VU$yeW8H?w<a|Oo/6Fvvd'!BpVDM_ # /rkOIBiA <.iunOlBτ_;mD``^bhHm1:hȹ9G ooq>첢4Pm 1wЊW YZ