tukit-4.1.0-150500.1.4 >  A dRp9|(m1I-W Fgkq;~@b͋Ps qP~*?.-p*Źe+QF?zUd=)_w3WQ1w rKJ#P5pϑ)#}a%̼pÄԭ5/{e_05<&G-LEc ɗ!YDeC_[)x7Xm5{*Qi<T-fpP=1[83b3331a5bffe8957e61e709c246c0a4ccc23ff646a5b5b9c69b141cadaa889fb8a50555c107d27cbdfb3ee2b28b6d61c1b382a1$dRp9|ĴĎ)½s@9ԪP[*a#'^ٔ=vmEцB|X_~mȝK@%6H) VI ᇉhPD_.mC?l@2D7%D B,dҖ #@`7)%_d$*861 mgQ4ng٣vG$\nwF;2q0 #R򣖵l7ꤸ#,ݘ=L.m >NN5h]?Du=wBÂ>pI|?ld  T %1bho  |            0 b  p<(8w9w:(w=>?@FG H, IT X`Yh\ ] ^/bcydeflu v$wd x yz  &hCtukit4.1.0150500.1.4Tool for doing transactional updates using Btrfs snapshotstukit is a simple tool to make changes to a system in an atomic way with btrfs and snapshots.dRgoat08SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Basehttps://github.com/openSUSE/transactional-updatelinuxx86_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 create-dirs-from-rpmdb.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 || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in create-dirs-from-rpmdb.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 create-dirs-from-rpmdb.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 create-dirs-from-rpmdb.service ) || : fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in create-dirs-from-rpmdb.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 create-dirs-from-rpmdb.service ) || : fi fikI\+F~A큤A큤dRdRdRdRcYICcYICdRcYICcYICdR33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e691178ad5b38f62c4ce3f9af98029d0c0e758984d929ac22ac4cf8c91795fcabb963cfb20e8fbec04dd811a77cc5405d863568aad89c5dca78512e23f6a16c3abddee4b41be333a00e70e2e40d53975a3d483a340ffe377a90f1ab6c05867aba59370537fecd78c68361a12bdda1827e52d49ef2fda8fe997cb328d991862c19f4ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73335f1b01381697728151e4466fccfc606566e0182809fcfeeceb1ed02c645f43rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.0-150500.1.4.src.rpmtukittukit(x86-64) @@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)librpm.so.8()(64bit)libselinux.so.1()(64bit)libselinux.so.1(LIBSELINUX_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libtukit.so.4()(64bit)libtukit4rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.0-150500.1.43.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3c6@ccobbb@bq@b$@a@aa@araexaLl@aD@a<@a6a,@a /a /a@`@`\{@`KW`KW`H`H`>(`-@`*b@`&m`"y@`>`@`@`@`U_/@_@__t@_@_o-@_h_h_3_+_$_{^^^@^|@^ku^^F^V]^r]X]V]v>\\@\@\\\}@\eX@\eX@\N[[k@[[z@[#@[{@Zz@Z@Z@Z@Z@ZlZ@ZkZZ@ZqZTZ&@Z@Z@YYYV=@YS@YRHYP@Y0X@XX @XXXXX*X@X@X~@XWXRXN@XF@X5X2X2X-X@X@Xx@iforster@suse.comschubi@suse.comfvogt@suse.comiforster@suse.comschubi@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comaplanas@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comngompa13@gmail.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comiforster@suse.comjengelh@inai.deiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derbrown@suse.comrbrown@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.de- Version 4.1.0 - t-u: Add a "setup-kdump" command; implements [jsc#PED-1441] - Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in the update environment; implements [jsc#PED-1078] - Add support for "notify" reboot method for desktop use [gh#openSUSE/transactional-update#93] - Fix kdump initrd recreation detection; the check was performed in the active snapshot instead of the target snapshot - Document register command [bsc#1202900] - Avoid unnecessary snapshots for register command [bsc#1202901] - Various optimizations for register command - Remove bogus error message when triggering reboot - Rework /etc overlay documentation in "The Transactional Update Guide" - Fix incorrect manpage formatting - Remove leftover "salt" reboot method in configuration example file - Replace deprecated std::mem_fn with lambdas- Migration of logrotate configuration to /usr/etc: Saving user changed configuration files in /etc and restoring them while an RPM update.- Version 4.0.1 - create_dirs_from_rpmdb: Just warn if no default SELinux context found [gh#openSUSE/transactional-update#88], [bsc#1188215] - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure [gh#openSUSE/transactional-update#88] - Handle directories owned by multiple packages [gh#openSUSE/transactional-update#90], [bsc#1188215]- Version 4.0.0 - Last minute interface change: Changed "List" method of Snapshot D-Bus interface to return a map of properties instead of a comma separated list of strings; this will allow retrieving the snapshot properties even if they contain a comma in their value [boo#1202147] - Remove "Snapshot.hpp" as a public API for now - all public functionality is part of SnapshotManager.hpp - Add header file documentation for SnapshotManager.hpp - Add method to delete snapshot [gh#openSUSE/transactional-update#52] - Allow setting description of snapshot [gh#openSUSE/transactional-update#55] - create_dirs_from_rpmdb: set SELinux file context of missing directories [gh#openSUSE/transactional-update#84], [bsc#1197242] - Fix broken logrotate due to typo in config file [gh#openSUSE/transactional-update#87] - create_dirs_from_rpmdb: Fix handling return code of create_dirs() [gh#openSUSE/transactional-update#86] - Fix broken "shell" prompt after selfupdate - Add documented D-Bus interface definition files - Add tukit_sm_get_current and tukit_sm_get_default to C interface - Fixed typos- Moved logrotate files from user specific directory /etc/logrotate.d to vendor specific directory /usr/etc/logrotate.d.- Version 4.0.0~rc4 - Fix building with GCC 12 - Fix stack overflow with very long commands / ids [bsc#1196149] - Use separate mount namespace for chroot, allowing overwriting the bind mounts from the update environment - this could have lead to data loss of the bind mount previously - Fix C error and exception handling for snapshots- Version 4.0.0~rc3 - Add Snapshot interface - Reworked signal handling: All public signals are sent from the main thread now, keeping the same sender for everything - Implement D-Bus call "Execute" for Transactions - Implement interface for listing Snapshots - Implement Reboot interface - Fix bug when using --continue on old snapshots - Fix hypothetical integer overflow in snapshot list [bsc#1196826] - Fix wrong sort order in status command [gh#openSUSE/transactional-update#80]- Version 4.0.0~rc2 - Fix missing prompt in "shell" command [bsc#1196580] - Add output of tukit commands to log file - Fix compilation error with GCC12 [boo#1194876] - Fixed (non-critical) security review comments [boo#1196149] - Fixed selfupdate - Code cleanup- Version 4.0.0~rc1 This release is API, but not ABI compatible with previous releases; existing applications will have to be recompiled against this new version. Major features: - Introduces a D-Bus service to access the libtukit API via the org.opensuse.tukit.Transaction interface - Introduces a C binding via libtukit.h. Other changes: - t-u: Rework --quiet handling to make sure no output is shown even in error cases; this is necessary for automation, e.g. with Salt. [gh#openSUSE/transactional-update#73] - tukit: Allow storing command output into variable by introducing a new optional parameter for "execute" and "callExt". - Replace multiple and non-standalone occurenses of {} in "callExt" argument. - Split transactional-update.timer into transactional-update.timer and transactional-update-cleanup.timer; the later will clean up old snapshots even when the system does not do automatic updates. - tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged". - Throw exception if snapshot is not found. - Fix various compiler warnings - Update spec file: - Include tukitd D-Bus daemon - Only install one version of the library (as there are no breaking API changes yet) - Add %pre scriplets for systemd services - Replace %systemd_postun scriptlets with %systemd_postun_with_restart to satisfy rpmlint checks - Add transactional-update log file as %ghost file- Version 3.6.2 - Bind mount root file system snapshot on itself, this makes the temporary directory in /tmp unnecessary; also fixes [boo#1188110] to return the correct snapshot's working directory via API call. - Use separate mount namespace for transactional-update; this should fix several applications that fail to run if a mount point has the 'unbindable' mount flag set- Version 3.6.1 - Fix rsyncing /etc into the running system with - -drop-if-no-change [bsc#1192242]- Version 3.6.0 - Simplify mount hierarchy by just using a single slave bind mount as the root of the update environment; this may avoid the error messages of failed unmounts May fix [boo#1191945]- Version 3.5.7 Various fixes affecting Salt support: - t-u: Don't squash stderr messages into stdout - t-u: Correctly handle case when the snapshot has been deleted due to using --drop-if-no-change: Don't show reboot messages and avoid an awk error message [bsc#1191475] - tukit: Make inotify handler less sensitive / ignore more directories [bsc#1191475]- Version 3.5.6 - tukit: Add S/390 bootloader support [bsc#1189807] - t-u: support purge-kernels with t-u patch [bsc#1190788]- Version 3.5.5 - t-u: Use tukit for SUSEConnect call [bsc#1190574] Correctly registers repositories- Version 3.5.4 - tukit: Fix resolved support [boo#1190383]- Version 3.5.3 - t-u: Purge kernels as part of package operations Required for live patching support [bsc#1189728]- Version 3.5.2 - tukit: Fix overlay syncing errors with SELinux [bsc#1188648] - Don't print message for `shell` with --quiet [gh#openSUSE/transactional-update#69]- Version 3.5.1 - t-u: Disable status file generation by default The new experimental `status` command requires the availability of /etc/YaST2/control.xml, which is not present on all systems. Hide the creation of the corresponding status file behind a new EXPERIMENTAL_STATUS option to try out this functionality. - Increase library version- Add tukit.conf to spec file- Version 3.5.0 - Add alias setDiscardIfUnchanged for setDiscard. The old method name wasn't really clear and will be removed if we should have an API break in the future - Replace mkinitrd with direct dracut call [boo#1186213] - tukit: Add configuration file support (/etc/tukit.conf) - Allow users to configure additional bind mounts (see /usr/etc/tukit.conf for an example and limitations) [bsc#1188322] - Add 'transactional-update status' call. This is a POC for obtaining a hash of a system to verify its integrity. The functionality is still experimental! - Internal bugfixes / optimizations- Version 3.4.0 - Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766] [bsc#1186842], [boo#1186775] - Implement inotify handling in C instead of Bash; this makes the - -drop-if-no-change option work on SLE Micro [bsc#1184529] - Use `tukit call` for up, dup and patch to allow resuming an update after zypper updated itself in the snapshot [bsc#1185226] - Fix obsolete output type messages in initrd [boo#1177149] - Make different base snapshot warning more visible [bsc#1185224]- Version 3.3.0 - Add support for more package managers by bind mounting their directories - Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539] - Link RPM database correctly with older zypper versions [boo#1183521] - Don't discard manual changes in fstab [boo#1183856], [bsc#1192302]- Revert inotify-tools dependency: The package is not available in SLE. This will probably have to be implemented as a native C version.- Version 3.2.2 - Don't skip patches with rebootSuggested flag [bsc#1183442]- Version 3.2.1 - t-u: Forward --quiet option to tukit - Regression: Add /opt as bind mount into update environment - Remove output indicators of the called command to not tamper the result line - Fix /etc syncing with --drop-if-no-change- Requires inotify-tool to have --drop-if-no-change available- Version 3.2.0 - tukit: Add new command 'callext' to execute an application while the snapshot is mounted. '{}' as a parameter will be replaced with the path of the bind mount. - Fix --drop-if-no-change [boo#1182525] - Check whether self-updated version is executable (e.g. on noexec /tmp) [bsc#1173842] - Fix overlay synchronisation with SELinux (again) - Always overwrite supplemental files (e.g. for network configuration) even if they exist in the snapshot already [boo#1182544] - Improve logging and error messages- Version 3.1.4 - SELinux: Fix syncing of SELinux attributes when using overlays - SELinux: Tag the overlay directory itself (again)- Version 3.1.3 - Fix overlay syncing on SELinux systems - Fix resuming transactions where the parent does not exist any more- Version 3.1.2 - libtukit: Report when application was terminated due to a signal, and return the signal number as a return value. This will cause the transaction to be aborted when called via `execute`. - libtukit: Set PATH variable for internal commands to fixed value to find the helper applications, as in some environments such as PolicyKit PATH wouldn't be set. - Fix compiler warnings- Version 3.1.1 - Fix hang in tukit on aarch64 [bsc#1181844] - Prevent deletion of snapshots when resuming a snapshot where no transaction is open - Make tukit work in non-dbus environments [boo#1181934]- Version 3.1.0 - t-u: Support installing RPMs from the user's directory again - Adapt selfupdate to new packaging - Implement signal handling - Remove empty text files- Add libselinux build time dependency - Remove RPM version check- Fix libstdc++ filesystem ABI incompatibility by using newer gcc version on old distributions. [boo#1181582]- Rework packaging based on Fedora packaging to separate all the components to remove the intrinsic requirement for Zypper- Version 3.0.0 - This release changes the internal structure, but should be identical to the previous release feature wise. - Major parts of the previous Bash only application have been rewritten in C++ with the goal to provide an API around transactions; the transactional-update script is using that new interface internally already, however the API should be considered experimental for now - if you are interested to use it, please notify us in https://github.com/openSUSE/transactional-update/issues/52 - A new tool called "tukit" provides a C++ tool that can be wrapped by scripts to leverage the functionality. Please consider it experimental for now, the commands may still change. - Bugfixes: - Implement support for system offline update [boo#1180808] - Add statistics files to update environment [boo#1173282]- Version 2.38.3 - SELinux: Make synchronisation work for both pre-SELinux snapshots and later snapshots; SELinux support should be ready for most tasks now.- Version 2.28.2 - SELinux: Exclude security.selinux attribute from rsyncing (again)- Version 2.28.1 - SELinux: Fixed changing the wrong grub configuration file - SELinux: Move /.autorelabel file to writeable location- Version 2.28 - Add 'setup-selinux' command for easy setup of a SELinux system - Allow complex commands for the 'run' command - SELinux: Fix /etc / overlay labeling- Version 2.27 - Add support for network systemd-resolvd network connections in t-u environment - Mount /var/lib/ca-certificates read-write to prevent SELinux error - Prevent calling transactional-update from within transactional-update- Version 2.26 - Fix broken sync for second snapshot [boo#1176989] - Add new options to allow separate cleanup of snapshots and overlays - Check for existence of inotifywait before using it - Check that mount options don't exceed maximum length- Version 2.25.1 - Fix inotify watcher setup - Use log_{info,error} for more messages to avoid messing up Salt logs- Version 2.25 - Reduce number of overlays: Instead of using transparent overlays for all previous layers only add the previous snapshot's overlay; this will greatly reduce the number of overlays while still making sure that /etc changes in the running system will be visible in the next snapshot - When using --drop-if-no-change synchronize potential /etc changes with running system - Exclude all non-root-fs mounts from inotify watcher- Version 2.24.1 - SELinux: adjust labels for etc, fstab and grub.cfg- Version 2.24 - Add partial SELinux support- Version 2.23 - Add "run" command to be able to execute a single command in a new snapshot - Add "--drop-if-no-change" option to discard snapshots if no changes were perfomed (BETA, required for Salt integration) - Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33) - Avoid "file not found" message on systems without /var subvol- Remove unused attr requires - Change bc to file requires- Version 2.22 - Use pkgconf to determine installation paths - Enable SSL connections in update shell [boo#1149131] & [boo#1133891] & [boo#1192078]- Version 2.21.1 - Rework error messages on failing umount [boo#1168389]- Update to version 2.21 - Use slave mounts for /proc, /sys & /dev- Update to version 2.20.4 - Mount efivarfs on EFI systems to make sure the bootloader will be installed correctly [boo#1162320] - Fix removal of existing overlay directories- Add dependencies to btrfsprogs, zypper and snapper - most of the functionality is not usable if those applications are not installed. [boo#1166502]- Update to version 2.20.3 - Reintroduce compatibility with RPM < 4.15 for inclusion in SLE / Leap 15.2 - Prepare for removal of /var/lib/alternatives [jsc#SLE-9101]- Update to version 2.20.2 - Use full names for zypper options [bsc#1164543] - Ignore /var/lib/rpm in shadowed file output - Optimize create-dirs-from-rpmdb- Update to version 2.20.1 - Add missing documentation about --continue option - Avoid error message about missing fstab file on first snapshot creation. [boo#1160213]- Update to version 2.20 - Add the option `--continue` to extend an existing snapshot. This can be used to perform multiple operations before rebooting into the new state. [gh#openSUSE/transactional-update#16] - Make sure the dracut service to print warnings on /etc overlay conflicts also runs in the pre-made images. - Add "none" reboot method - Remove conflicting overlay artifacts in case an existing overlay directory will be reused- Update to version 2.17 - Provide network in shell on systems where resolv.conf is pointing to /run directly [boo#1151081] - Print new snapshot number at the end - Always mount /root subvolume when using shell command to preserve history- Update to version 2.16 - Use default command if options, but no command was given [boo#1146116] - Make sure only one process appears in `ps` output [boo#1111897] - Move update check: If a new repository is added (and ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail any more - Avoid unnecessary snapshots / reboots by detecting zypper operations without changes more reliably (e.g. when installing an already installed package) - Update the manpage accordingly - Bugfixes: - Ignore commented lines in fstab when checking for shadowed files - Avoid warning when copying network config - Remove Perl dependency - Building documentation requires Python 3 now- Update to version 2.15 - Move description of interactiveness [boo#1132438] - Enable network during update [boo#1137890] - Add compatibilty with new overlayfs versions [boo#1140057] - Allow updates of the bootloader on EFI systems [boo#1139015] - Add support for /boot/writable [boo#1138725]- Update to version 2.14.2 - Prevent unnecessary error message on systems not installed with YaST (e.g. KIWI)- Add requires for bc, needed for some calculations- Update to version 2.14.1 - Improve non-root fs changes checker based on feedback - Disable snapper's zypper plugin during transactional-update run - Allow parallel installation with snapper's zypper plugin (useful on read-write systems).- Update to version 2.14 - Warn user if contents of /var have been changed during update - Noteworthy: swapped position of upperdir and lowerdir in fstab for better readability - Major update to the transactional-update guide- Update to version 2.13.2 - add hooks for telemetrics- Update to version 2.13.1 - Bugfix: Clean up empty /etc snapshot directories again - Use official release files from GitHub for building- Update to version 2.13 - Fix a serious data loss problem (deleting all files in /etc overlays) in case /var/lib/overlay/etc is not part of any snapshot any more. - Avoid error message in case a system has no /etc/fstab.sys- Update to version 2.12 - Implements support for needs-restart (Fate#326451) - Adds easy rollback to last known working snapshot by using "last" as the snapshot number - Migrate /etc/fstab.sys entires to /etc/fstab for systemd being able to create mount units; this will prevent errors on unmount - Remove implicit --no-allow-vendor-change - this option can be configured in zypper's configuration file now - Add support for mounting the /etc overlay file system as a systemd unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys in the long run) - Various bugfixes: - Only remove /etc overlays on read-only root file systems [boo#1122455] - Disable "Persistent" flag in systemd timer unit to prevent updates during or immediately after the boot phase - Don't set global zypper options during migration - this is not supported by the migration plugin - Fix error handling when interrupting while rsync is running - Filter out security.selinux attributes during rsync- Use noun phrase in summary.- Update to version 2.11 - Update man page to explain new /etc overlay handling - Add special handling for migrating away from old overlay directory - Read default update method for systemd service from config file - Add package "transactional-update-zypp-config" to prevent accidental transactional-update uninstallation on transactional systems (boo#1111319) - Use "up" for systemd service on non-rolling release distributions (boo#1111321)- Update to version 2.10 - Introduce /etc overlays - Each root file system snapshot now has a dedicated /etc overlay in /var/lib/snapshots//etc - Changes in older snapshots will be visible in newer snapshots (if the file hasn't been changed in both snapshots), but not the other way around; this makes it possible to roll back to a previous snapshot even if the configuration is broken - The /etc state of the oldest active snapshot will be synchronized into the new snapshot to prevent ever growing overlays - Removed creation of /etc backup snapshots - Removed complex overlayfs cleanup handling during dracut early boot; only thing left is to output a warning if files have been changed in old and new overlay after snapshot creation - Unused overlays will be removed during "cleanup" operation - Add compatibility with snapper >= 0.7.0 - Correctly detect BTRFS ID when using multiple snapper configurations - Fix disappearing prompt in "shell" command when application was updated - Prevent accidental rollback on fast reboots (boo#1111786) - Use zypper attribute packages-to-change if available (boo#1105992 & boo#1097619) - Add kexec as reboot alternative - Added explicit --with-doc / --without-doc build configure opttions for enforcing or excluding documentation build - Removed precompiled documentation (boo#1088676) - Added more dependency checks to configure script - Small improvements to documentation - Restored compatibility with older rsync versions not supporting the -x filter - Small bugfixes for cleanup in error situations - Fix possible incorrect detection of snapshots numbers during cleanup - Mention parent in snapshot description - Add dependencies for documentation build (boo#1088676)- Update to version 2.6 - Add --interactive and --non-interactive options to change the default interactivity for zypper calls. For previously non-interactive calls (e.g. dup) these options makes it possible to pick the correct solution in case of conflicts or make sure that a script will never be stuck at an input prompt. - Add kured reboot support - Tries to clean up temporary files and mount points if transactional-update quits unexpectedly - Remove trancactional-update-helper (replaced by zypper options) - Create /var/lib/zypp if not available (boo#1104452) - Robustify parsing zypper output (boo#1105992) - Various small fixes - Changed permissions of systemd script again- Update to version 2.5 - Support for overlayfs attributes like trusted.overlay.opaque - this will avoid disappearing configuration files on system updates - Documentation update - Only sync /etc if it's on an overlayfs mount - Use correct locale for zypper - thus updating locale specific packages and avoiding "empty" updates where transactional-update didn't see the change - Add dependency to attr - Fix permissions of systemd script- Update to version 2.4 - Bug fix release- Update to version 2.3 - Reformat help text / synopsis - More detailled output (use --quiet for less output) - Log all error messages into log file - Avoid potential lock file race condition on self update - Accept package names with whitespace - Don't wait for user input during self-update - Fix broken error message output when creating new snapshot without reboot - Fix erroneous mounting of stale grub mounts- Update to version 2.2 - Fix security issue in self update [boo#1091316] - Create dirs in /var more reliably by sorting the list - Rebuild initrd (needed since 2.0)- Update to version 2.1 - Cleanup the code cleaning up /etc- Update to version 2.0 - Create missing directories from rpm database during boot - Merge /etc overlay with root subvolume during update- Update to version 1.29 - Implement self-update - Disable optical media on dup - Ignore certain zypper return codes- Add conflicts with snapper-zypp-plugin- Require perl-HTML-Parser (needed since 1.26) [boo#1085764]- Update to version 1.28 - Adjust for latest grub2- Update to version 1.27 - Fallback to snapper without dbus support if dbus fails - Add workaround for update-alternatives - Add support for /usr/etc/transactional-update.conf- Use %license instead of %doc [bsc#1082318]- Update to version 1.26 - Auto accept repo keys config option - Detect broken snapshots after abort - Ignore user deleted snapshots - Include all error messages in main log file - Add configuration file - Correctly implement migration of major OS versions - Default reboot strategy is configuration option - Salt option is deprecated- Update to version 1.25 - preliminary SELinux support - support for seperate /var subvolume- Update to version 1.24 - Don't save unused snapshots if we may delete them again. Partly fixes [bsc#1071038] - Copy passwd, group and shadow to /usr/etc if modified- Update to version 1.23 - Fix re-registration in rollback case - Fix problems with updating the grub2 bootloader - Add support for migration of products with SCC/SMT - Re-add support to re-write bootloader [bsc#1068933]- Update to version 1.22 - Rewrite cleanup code to be more aggressive- Update to version 1.21 - Reset salt grains even if no update was found- Update to version 1.20 - Improve documentation - Add pkg update option- Update to version 1.19 - Add 'shell' option for debugging and testing- Update to version 1.18 - Auto accept product license in non-interactive mode- Update to version 1.17 - copy modified bootloader config into snapshot - unit file cleanup, no change of behavior- Update to version 1.16 - internal changes [bsc#1045942]- Update to version 1.15 - Rename option ptf to pkg - Add option to set salt grains- Update to version 1.14 - Fix check of return values of commands in pipes [bsc#1034900]- Update to version 1.12 - minor bug fixes- Update to version 1.11 - use --no-allow-vendor-change with "zypper dup" - update manual page- Update to version 1.10 - implement and document rollback option- Update to version 1.9 - fix umounting of special filesystems and subvolumes - fix interactive installation of PTFs [bsc#1023026] - fix dependencies of systemd service- Add Requires for lsof and fuser- Update to version 1.8 - fix references in html docu - build kdump initrd if we build standard initrd, too- Update to version 1.7 - build html docu, too- Update to version 1.6 - Add support for kdump [bsc#1018098]- Update to version 1.5 - Install PTFs in interactive mode - Sync state file between current and new snapshot- Update to version 1.4 - Fix wrong error messages - More debug output if umount fails - Try a second time if umount fails- Update to version 1.3 - Add initrd option- Do some spec file cleanup- Update to version 1.2 - suppport ro-subvolume with overlayfs- Update to version 1.1 - bug fix release - implement lock- Update to version 1.0 - implement and document PTF options- Update to version 0.99 - Support for rebootmgr - Write real manual page- Add empty directory /etc/systemd/system/transactional-update.timer.d/ so to make it easier to override transactional-update.timer entries.- Update to version 0.90 - Finish normal options - Implement support for PTFs- Disable restart on update for post install scripts- Implement activating the new snapshot as new root filesystem- Initial version/bin/sh/bin/sh/bin/sh/bin/shgoat08 1683130307 4.1.0-150500.1.44.1.0-150500.1.4create-dirs-from-rpmdb.servicecreate_dirs_from_rpmdbtukittukitNEWSREADME.mdtukitCOPYINGgpl-2.0.txttukit.conf.5.gz/usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/tukit//usr/share/licenses//usr/share/licenses/tukit//usr/share/man/man5/-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:SLE-15-SP5:GA/standard/ca17255e3778f6783b6ed44c65a94c3e-transactional-updatecpioxz5x86_64-suse-linuxASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a5d49b42bd0b188bfcb199cab1ca0029f5bdfe21, for GNU/Linux 3.2.0, strippedELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a7c4fead4d081bfa807cae2f982c43e5e72b48fb, for GNU/Linux 3.2.0, strippeddirectoryASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)R RRRR R RR RRRRRRRRRRRRR Rlyfك b-utf-86f55abe597013e899ddc4ee73abfcab987fab845f9ccb21f53236206b605daf7?p7zXZ !t/] crv(vX0"㣶IBRf,.~LfvUILDCO_vP`|ɰنx[XFi?os@-|4YJ6g^%| x ŠN"KKKD,A_Swf85"y4y\|z%z뢨h}ԅ"`d p<ܪR捞f2f9uX~ې}E}5|ʵma7 d&V_`ZֻLN/ C)j-GgK$;A}Ĺ[||r읯p))*Y 46Lls`Y{1P|XJ}hG[?;Dt/]!Sڒ" ?g,Zh\l_$~&A/!* F,$ U;>5T_uw-jГf60Ϙx<"q߳tfex1?5KтYY·:g5De I:VLW]o=rqsCBɔWQN1(Co2K*wɲ/6(d5b\ [n^;? \7 4saYʘ/=4k~i %w`0;8pjv}7puh#-2>>z>F<o;﵇];&G{عH ˸ohKLAK=h+u[S"-Ya"摴/Ht [Zz`5b */ErSF]?~+8f^:a:cT$q%B4/K#9& XAl?jgȐaƒ9>*>b R#"Ts%_V0DS\Mm.cvV7AvxvHSim,_mbG 3hejtWFd0&IQNn irʛznibǎJҊP S\vٟ%˅_½ɑ3s -5;#u5{CA9>Ս*¥ ͂ _łlһ)ƫ;h{`t MCE7(xLk̋|ڱ 31A4O9Xrb=TIsh2Wu <`{ !~.# i[?#%jH!&pJEs\x-½|2?)ϻ:'Kƭs3)8#×ZaV?vam:`<*Wq*a>]DMqc1zRg[΄?=G9wc9{5qT(x#9_OJr5Jvvh~]w]H=9^WQ3x*Zm&_l>JɄKRCM qn>_ Ց8mL/N곦I[+WM* MC|u_Iƺ&(ח+wo1xZW]ƃ$6 59Nar_"h9o\ Ȁ:08JsߡuW2 P0Wx* 8H8%dF"a\c%sgYjŕ.ۜ#+kȻ0yX섔2S^8oǂ/] CUA/Bi%v,ٖUS0cZ;hOLG=!W }+pѵgZLFaku#h'" jgD#, ky"{{* ~ v1a5p6'DEP9#g bKùmx*:О`ܵbYQBzg jt6L |`TA+A ~Mʤ]Xܝp&|soV,쁢⻓߆Su?N ~tCuaE!Ir׉iQ(P*(BjQhqPrb^u98j8bSs3T'lTԼu`zwF<$Ŋ./k}DJӓ5IB>79 Ǖ ]ԁ4^iO)enoh@b|wSjULCSjF"uVCLIDN~$[ / ?fcz-ƶ4aQ:kɛn8_s&-!nXI=dFS|2?,L cr,TX .`{Rax}595"̫R8/0m,MZB)qSR7h0 {Ls>p!$&k ^p1_-nhC7>h:}+inз4>]kkP4z5u  \e5Y2'5D/FnSE &\eMXu?cZ#x6)I%DLļGˋ=4^-ڂ:?1hav$a;N{~BnfY:S쭕OG9jjŻ;ٜ CLt R79 ܏Y(yuU}ui@ŧsfY4@wH}iQ0y-F3u{Cϗ{(kSi[&3Iܘ@Sij$$D)N!E`42" 9 |=Ly:7fW5P:I|DK?G]Lu8YVI:cZI 6%㸤:ٷA;Q6B7PX |5ˑoZ7H(XFT*ei7hU4mD[hct&؄u|D1lwh jPfCD@ZR lAlo1{18ŁND.lOдh)U9H+g.z2=rGd 2E @"n,  Hr#ɽhs{NR/K@rpj$'Đpgae xlK.jTnQ#䂧6Zd)Th~sw²WaSWH}+0z!l܈VY!8k;mKnktfRc QvA CadC~I[} WȯyPВ1 zC-g57=8<0s$$۞w&'?nD?xsG1  ܍R'&5/yI)ENxA^9^n!zR~6Wi<'BUA))-?[eSvJJ =G ٖ${l11ӛjQCH/ `7/1u73w|8DqUi wI ]=t"lq>\?2]kfֿͫ*Wqt.q%aEmI=P"[QȪ->^@v]A_e ˸ 6rJ߇)+c =ka˗cku8]}o s{֧ 7gJ(p>{J=^,PB]g# % _gҾQ*吜 t@/[]--I;j4ni䁒J [g')iT:Ɔp6C ےԟMS!_q J5hH`r9E@ m#Sï癔4P=@dͦK-n2MN'ޭlc"ZKV5sz/~B,dΉ5u6z͑fm`M(ĵFuۺDz=nQyU9&򋻼CqR /L˲hp~#X:A\ .s%bX g^d*UKk4vwd]X#D>rxTO~`|좹+VK o_릞?(fOT.QH/S "]q}{J$ ?+)xTR3,2#ΐx.EY ؅;|`wP\P+zy|etI#T );#iPk px7 'O7n=ܿjJ;E1_zD6qX(p3x#&}\\8U=fOzrZ#HDYq]!FV&a<($רx$ k1ܘ]bC^U?0#cV25ѡ%+6Wxs'0Fx0Ľ& }fB,xx cۓ#Y'CșCu/儃RvσnTݲvk Mi ځϠ8}MEV )nBpXQgSWEpQxq]zd.z!銻=r#a44HV=vEm~ H< fQD!wDh7rZ{ 7A3;[O;y0aDA܏c|">5M~C'v T&/<Sw'># 'sfSt{ #5j昭[,k)n_6׶60kN@% [H`Htɣ}Qp$P5{0!n$Д?B/T\{dW9=jh6.뛱#(\ ]dҷ0WDj_xTDghý[Dk%̏ALUP92"`Sԙ#I(ȳ4Aârr[65-j/%rFfl>K>jnlԳޒY#Ùaq&8 a C-g8b' /c }peE!JfpXm7F$ߨ ?Pgm7/vXqYX HTN27 ޝxy tkM5l)i.g. ev Qp4%.&=OHF;MBԄOX(B՘W)k.QG R1yEkY]dGu)䩼lܒ\嫆h{"$¦+Ta{މ~1pk"s&) N4=xSYVbʬz8?8}կqS!4CVnLkA=YN[fb=s鞾 kS g_Z?+g!MѦ6>@
5xaXjAAXr Jqm޴4Sfblr{:V N O$WzHaV3?>)A)l6FU#ʨ1cFR_7o׌ TiQxF~k[AȿX 98~a4S֔ጝ􅮺?B!3aq$r/aޗ[ =W ~feQ"gC6 ET]2-L:tK2 ϶ťOJdq-"ҫu 5 TuK /ziXTZj!W/""L^O1љ] /"з玼>Sc6V\FxsFyD;6@нOHXҙTs'f={Fi*^y ( ]cyoK*No!i_{ip;Խ&ǃꆳ{_4-c4"6tebS%.q6\Xy1D3(m*)qe썿a&K5awf1sWHi,ab˃lU˩85@;"E( Zr#+p;6?i=Cj=Qֈf,~Cib@oTURXW.r^&8׸ZA[v e$9]4%KO|n {̟Nr\aBIVbb, .CNl]'711$WuWPŷ|oˈhTBGq^$aFzڼk+<ȭֺ-5z N{쏮٧zfʌK+?p B*hN@ q}6+j2 uzP$B "Ym_Ɨ[GuXk+2BղsSF)݄'௱g17Qś)bT.q;K,У|{:=|//e|v.@ WhC{ /~Sܤ.zDwM6StpX"E#M!ks;O0B^hvԏw2$S6A~٘ G\ {G,Z8?A?E25LSͶ3;nm< M"%ζw?c~,Zs2&#|m{48caRBy= y+rkzX]! BL.d7e  F6>KO-%qŁ6 8TL2;X>Wm[S@}FK͍W"/HY&P;WRtՐ,yLA[/5d靈sܳu6wXuG qk;Q_. BRHLu?ѐO*b)QH0XS7#2Se!"˄# Re ms> Dc9yшʔaXGdAv ]^WzJξG@TMIG.n-b!\ aP(7]=7Ml{#7Nؾ'~#ٱXSOj=luNSzLsA96.1lӾ䊲F“PJsSsׯg7(=rU->ߙz' BMadd-^QaZa#|om׏]bEDLB9ӤN14F8 ;Z$tN7HVJA !s?QM=bӒ;_"GroXh G 9+~="t|hgfhaoYJsSZ DVoJ;i*7Fz3U߲M<ڳ4RC_. Eo xt`9X[u+/j3VՃk%#5S `N% ?n )/ft &nJ%b x&.{&Dh3GLjhDa'%U9=Dfm[ݥ|8WcS􉦁w r‚އQ|Mϙ$Da \~rQ%" lJ[_L5'߫;{,2%JosNVV)*%?+t|4/$WKnw?nx1tn^X}W󧾺d9;l%XדR75o#7OH, dKLb)x9/uG2Jvʡ:% 5NR ȵB Ug*ȓ ld"7s#ajU|4)ˠ:5ᶚ ]"*ՇFPu*L$|q .{ OY`D%PE~^ZLAmi a~-k1onZ/_oSxmY0XOZJE!s^2~) '3"Y<ƒӑ珁#6joei=$uϩc^ S;,:9&cwI-env!-`P5}5s?Q#=!ѥa&9ԩ rc&O|e XS'7 sݠڼ$Œ,`ZRL~ R9pC @ !''7px?ZYi-ye.v'-v}תc,@R<snHVU_r>˳pU^Mf6Mj!.9kV {0QqRRY=+ay^S o`7Zyj_KZEq{t,k܁"-VT (%;aqrƦ\"ta3Rj+ x+g1ucko(Ԧ<!kKQz6g\>ȠZ%)iߺ}cv!'>SqmﳹG\MmR/_u6j}jKXcp8E,npgn՚:Ƕ+}(o[]PG۰ga[c;a!`.ߝֽݒd &cmI )$PZ*[H:8 ,zw3Ef枪G+D .ҋ:-.(b,KcK`9A*|XX=_xRɇpUƣo *J58I*x8;e yKwi19,M+ v#k>BCIJQ72@W`x]u LuRYxhTSܱ{ztq/τwY\3Å}˺W@2(sL%Ӑ۫븥w .;Y8UMVΧX=/U,*]/ ~b^+]1V{bkkum^.[|h-oLz#0RoSyךC ؟R(@Gp*'⁋'JY*(ݖ,`.|ԇ) 輱W>h<<](Ps~SoJrĂ_72~r "OX_'~;PvA!*BaNM顷+a|ʆ.6ƑqT]EikoCu3ł|qfe.dDa:vd9DVL&Q"TpTZ|靆+=RĮ0Q K|Y`vz.=41N5XX`A۸R>!;"i-%5Xx=>8f+LAlϮNrf=׮$UX_WSŬœ."a,æ{+ڝh-o2Je_[:|t2'@r ;;9A {G?2  *N( ـŷm^1o(-ButLbɩz:8of 弐CaQ>,\t1̽8`݈=`akB40# pX|O%{޴X^xGZZZBhⅶxHzn[qQ;2טg&@z2XX ann϶kSfge4\;Ϭ] 0v}#׌H]h~JCjp ,Ǭsaޛ~]R˿{b;X%3tK DYџJMtANO 3#xu,u` qRuIF =|L퍀t)(Fٻ T"q[@o*}-%"bC0H#?h]A|ɫ6Z,+( Z fV-UL?(l0'9ݾ*ʩcCAJanC -qmU2Y5p%BTOlK!.l敳Cq"~IHHψ4F<|EqʟdkdOR}!QNI}d7= 2X,cwoתŀ@ Ƚ_BwuE۰?&iA`'66o  :'30*5ns^Yߚ7}ZuT1V{D Z2&t^ 7$AÙ$'lնU˙cuqŃo+!rS(oh XK4m *7ZTm8#y:@g}Tn}z+.®tR= z)Vߦ@}ܣx|BCg|2?U))icvv@{X}H`i{ooM37Ib'Mv3a-ƶʼn̒wWeXI&F>>~ڸrX %yEH@ cUBn+ ô8 wZf(JWrf -]{jɠMIZ6D-įl2nvvBnf7*×fQe@F816ɬQMQͥ16 >< >ײ>M1"嬟I<:ER0e-ƭUɁOfyy \3O _$Ro*lXsyZӻ y H E]5HO,tUn [(F“d45݆c]YI0[wI:5:޵eNeWζη,ܶ#v|'J#{6 řwH9¯*z꽐7^ 1.wxI PiwwҢS}?[Ey@+י)aB ebdɪIQ HJ7:VξW|o]jƳ!-Uk$d3\aEF|FƆV2r5im̬ȋ1AHbֶUnr}sL Lf/~ES1ӱX ^]cm<X]їqJ!xY*E(\9T_Gk=ߩgb0ȩKQ rnjOk-opwaH0b)Ƽd[ 1+lwhEwKeFL\+dt2^bn7ۭ{׸]*y(sz2(fEW SxJ_7Ly;RCIBL9gyJ]k )dAA /z̒dmeqޝ_qQQ#ȿpSAYFwkAfpPN<&=H~HY*DldQ-wDG{=&i_I Zє1C>BP¸ O6 G)* Ò/u%=7Dc, 7 _p`s=v/|g:쬅!WaxvϩsG!'+~Im;^Av_P"02ڔ6DkS9Z32ѫ4iF,ܳ[5BPx/VUZSQ%Y_اUn2*yŠqWFVVBÁ\ !UB8O_^k% xzVCQDL*u'"/TTr*_ 7( Ҫǰ[H@6I}bw4̝K"ɩ{x #e/"-|IB<tpE@%zwɩC(hM!~ #1:Β=<)Lݞ {mpv܈=11F1$VikhNi >Dnilyʎ[T{Po_,f߄˱=CC`) ^(f4 CvV xjvzYl 9]$~ċL(>N|CYs+kliqh٧Bڊk~LQ1w[&sQV&/tVi q818v%^q8D1CWú5{Y 0rm8;Jpy9vq(TGx?1x%t͑frjm{DOY\S4 KוXnȔOHڮߞw^qٝ<1̌5Z0 B]v8 L8/At?1.uKk.D3(@4lݝ/PsG7מ1]87C:ǃLP WM%!/=Xq!H2"o& *^2{QDΓ;M# 4lOOaܜ^_,dQdI T}H-f3e6 (pRd_H_°NʗAڐ6'[xWs$֑z%+8n}t W Ct+uP偘,xZo^q3wZ5‹yֻǸndK]EOzI1G?y?gT&]iā8Ai%9_I;w? '(99n $)9]0.7E: I+Bh~@_X.b$L@BoE\Gk|!IջmuN_| I po"YO/)Pba\%o^&EJrU-j'b@1YȉB }Jx>@YBc? :=hL-FN5`@$kO7 OGLEe8X*3"_KgByg^To\"I:sD^@)EJ!䫂&S"ٟWfBc!kX3Ig5&Y)dkYb%=7ϜQ7+!jN% 'r9{di5J`/GMSI/d2%/fWz 3btHvtq1IJo's4:̱N<2Xb '~ceb)wttYK0\Jy3;{WTP.V-o(J}#6SS\pH;k 瑈2Wf!)jpk hMb)0V>|zS1K4o28X+ \7nuct Һ~9Mui8GƓ_#ޥ|h GVbi$1Y3>[L>q"Xqu0OYض4gz^ 7îWt!E+cBA\ ôׂie;A/Ǣws'i-:-tKe 62N>,W18hv(d"_&| Z@4t-c&' }FT}*Ӆxs"c12էYb,$j>N>~$c^) /W}Bǘwfߵ l3OQTV9 ګʞDv?oVi@ `qhgEp +ɺNn=1IS;#X1EUx~wb^i.shCs"E`' 4K!1O$w AM-7"Uae#>"I{ʡ/}µssij½ dU2ո~H+/j\A<]lE">y  PյBstc)k c.X(Yx ѱs(c2X8d,ν.lNyxS6T)9z;o{mФZ!.pcwsoD? V) %`7'xCiWݳ 荦r*l+{;. (8(lB}FI@{'({2ݏhTb@XmB~=d SJMgeGWLd^ ,OzD-"1;Dz> ! Ljfߥ*E=O>ү?8xɖ/ü V9"@f+Z1~vsbf0w"+cѢפ__$rNxhN}v.`6MTe*+qmhieIp)L^/eY☉qOr}M^P xfNtP oWwW5=Xx* 8z "\ d,QHYGr_ԍV=<☬J?Ws`gkߥx>4s ևԎ]QMrL.s=~{\IIxKo9C 0Y3\IϘRSl ^#Bh: J_m cλaun*Zֹi\ =XQF$WV8GΑ *mm~#/yunF-e=&zlLvVbgm]yԈ>kIN>,A;JUJsACz^^Rc}H҃HFwZPZv-)'mP1zg&y$R~MDVjJm:&(rM>Q^~Hhv44^2)TLxN|6b f~.v=L]ɕ =,H߉BHK3?3.o</ʠI/C UmNuuueI>+vw)>kk$8R' >-T)ńRGX9prSLiYRzguih&8ُo·߄Ydv}SƩB \^wʹєOE_M VDd+kc9Z־OD{˛d&.sO1/>0 9pM+LVw领KO6z?~ʎHD .?̵8ŹlM>DiRU QL}^'* BRèF;{8k(91 R0M$p: wb63~?4 Z^!H70̄ pC1\ ÈIx0;-IɱUfmz筋\D#8xW$nd5LJ#q|)$N#H LH^Ĵn<Ӵ6σS'96Ӧv>qܙ3@+_%kzDg5w>kƔ b&e'Pja^/ C GN7Sg)1BJuLLJqQ @>+o$kf%ԤQx:/Ig~ I;TtE}IV\h'S_qwΒFnO_1蝪vTP1DsKJx8 kXh4%؍mdr` oFVKx[ßqjܷۢnt{wE8īqeuR=LUf\{ !D$OOފD+ҨFFE*ECC$.⓹DY qCR6̼Z5ƌ&yf .ls,D;ή9{O!A /r׿Y bv)è^׃ʈ܅PsNNeUקlc0i|j#̴O iv1.ueX~TghLNOn} F -2Y<9Pr{Xz;L5OŀN:;[uߙ`Yҳ Kkx5ZC5z#'7vIR1IF vae^s H^M5?ʻ(@ ɷO꫽sg u!@FhDf&vFV2<ٞWǻ8D8s de1_Wu"W :7{KUђ%U-eA$ju`/&"Y ǕadD3u(/R7ػ;mN $L '2:"Ю`r?А3ͨWۻZ6v7?VLS-VFgfj[% e2jW8М"Ȃ4.)<;D >hmpk sY# @îT7rn%'*N}> > O3(?h un̤,o)f ѩ)\$Gl5&yE]̪:Eh?_D_fK2ErebSd bjǥl&G D b%pY }}k:foUbC+߯nFMwg`9_d/D=g-xg5XA%%R _V`%ԪEo"U:BVU>%Sr[ۯS<&OCƒ lZW?VѬ Cbm ϔEEb#ש˂brd6Feq6 ST&a}4 S1TEϽm7Wp([M "m_H7Q(;0f>&q8ymv_32A㭖H8)UucӸM]IrSS!%N \~@Ddj4IRv6$̙k++8tapT\&'=^Q>(h*nV"4 vgA'ihX o ĢD&Egk@ЧM[Z٣N +EkuG4*(8aopľ㈿&&RƠ^1XHÊXT{s=)qZQM1$ʯW+)EgU#3K7HM 1!Ȱ Qsʢ">`^$.)8诏)ˢ64P3Z\aߨa ^ Kw8Qjs d;bfGCܗZJ!)N{2ӅAQ8G5 TN]3B $Ոlh]*%|T: T,S}r+)u~PM@L g#&K>T dG\zq_῁B4(bdv4M'DRӔpͱ;쮓DžY'Xh}B겷DgqbGlyt]PS FL 7MUә3p38gd n՗C2^\aג&]Gpecw <;e2׬Frg A.Td4!( Mۉ؂cG+˽<L8:T{m%[o-t wRۍҘE|w c).g_7F}iL2uDsEYzѮJS̩nqzwQ`qA0cj:˸Dm^QzQ3E"b("ƾ: ^>mЛյ͕a]3P>?/=xw?̙|f™%_V<3 qHnsw8i up#k"aݟܯFWmDMnɝ},pΟwdSJlط$`3MMt8ӱ+ϗ{6_Z$7N%H Axi!!-H)y#NIh<3Cye2q~_Dc<#?X}/e*,g.>dVg e-G;HddPv 6 z ad6E8U p}/-"|{ Eިp.%!(S5GczjF ̲MrФ}en8_n G NbLsEdqug &+1!JR:<|).YU[reAKb jXY4|]Dz+wh|X-d]@Am81EGu%sAgV0˞ 6~95C4WW- @S!{gPbWd^ (VZ+쏟XQ.GCIG=!1\3Ifōƞe/(Lጥ;CINyR,n{ᐩE+6ǵrGގ(oYmΤ&:*ĔYm@z5m{d_3W`Ydq$}z|Н =N2Uҁ8磛 k(G46YX,-2ŽpYlLٚvFm[6=mf]H>~vWqEvЮaPRkL,*R ^=H:UddS ҃U+ڑ^7E:W#ۢmFz1њ/N +ckڞ'cRQrN% L9ơ.%߽HQ>d[-t9o09~{%08 wIմ} U93@ 3+J=3 KN?-Zٴ"<y?r|<.@r/Q,lfK) $+ZKo9 l( >+ j 3g7 @'iHsuʍxJ 4Z:(5#G2q@5͏@GwUcQo>\bmβrI5:NΛ\ x q%A#S(E@zQ1[?w$+'\9z觳@\jKGE(g=&n |꽸AiŘI"`M`-ދU V4Qҝı}9 icg7z,R)=ǟHJ7\_UCB> VFoUӁ,Zr̨7v1}gmuF,hv5|qx2N/J{5?I3=)^,Wk5j 胀OΔ!JZm86$*m'&]hw xSg`˵rO HN~ַ?RErV,̈b Vll!o>Ncy9NU, Z~{cao?0ދ)Iãښ|x.yɭ@qZ{K}1%x-ruhDI@(ؑs$=N)}8,jsށQ" a  2AMTշf{t짣mraO ӐWY烖HDOY}`*] 5Ճ4"sR~]d1Jw"4j,RtpƩU@tXQ <:k hҺɴWAr1'>{~e'g;"1us8T]?OA{rS&k|J:y0_F:TeO7׊qa};qRGSf \/ ;>Ʀɂd|ba Xv%[S[75UJ2L9?NqI nmԽݬ 7ONR=fn@\~F fdBݘŇ[6L6`cÆ3`=!+g# 럕VoxT>Rϔ:a5MC_l?snji!ɛjŵ`%x,>01_czbS%f#MQX"+ zLC}o]6KV]4zc :GE*).e6 r%Tmc| _/ci+ǣ30~4$a1G̈4y.-fQv;|h Ҍ!<NSidWhpK/CPJ>VJcpCAaX{UGPIn[ c:,ϭ]x̶1L{_q+PZ>^)p4&*qP ʾCR Rzb $F]Nrb*`! Y:6L='^K1PO*zߕtCfuǘėeK6IΤ|IO~.MI fn 7Q&tbl*\fݒUs)Ȳ2BϹcQ ]I,JpɈ3R1q<Oم'h)[?D$Fĺ:y'1:&wS6qNLoē{lkj\TcSH ZXш[L8WeHHU _Lo雋n輞[fk̎y7{%cr"`gu7,B^ф"Dz'7aÔCkJ|RrJP]W(@ yVm?}v ޟ:93TbJb*#a!FкaW:$_0E*]Q{T1Lp߾h[a3\%g+#Ar9RpmB"jwq>ueg=i$ƃT3 ZDmBZUcdkRJsUy# L*JrB;-o2ܔJǬYp ,8c[S31xz` Б*,yy1\(zw"O~*'qyxllx`fC+ Ɛ|K&w{]JǜF6j(v뇩6c'NtzMye+@0:h#[-79T17I_TACAKVpBXa]~d=%̈DM)q΄O%yonG+ VS ~ Vz[xzD`㉣Hq]O⫆ Yq9G|~֝ȋBQ'25Z +YJ׻ڏܜ_žQphAP7M[>:G !0u!:聟hJN[^7=R_+;WpP?zVeKg߄ud.Q0oDƴY??(ԼsS䑈QݚNh@6Zњu.Kq+%(X6Ff]zy AEDvv\X|!ipH}#?~fVNȐ?%Uc8Na 0:6EX뻞|'bwk\c׷P$i> o7>uMG_`fs$+51*5| Zw]Dކ_ٜobDMքU&NS|\}"^:c^V-}oЧ͍+|h޻2UHAOϹs3&5; M ,w1?m[ b=[ 죑 B͗5#sl8veޏ%>Pu­!N*@֭GJaPG&u~Pdi D 惁a)Wůa;Z/?3QKnCNQr'EP ay ɒj*Xv|MKW**lKOw0bk)yZ)ﮜtb[1dY;+d7aT&9Y`%!'g4CۿqKIT6 &vkH1k˼+/qq6S}z-r[nRr;*SCd( --A&Ye_aaynV>Fȩ[#٠@p=y k <=̳E33H"WV 2PP 0Kr_&6 VQ_>o|=eR<ˎi;x 2Sbiqr ὺA/ *E U ݘ& 8Շ&dNI,}_XҎ;7va&|ݤT%UJD{U aI+V` Hj4U D@3dIS NM0wZ.!@y R|a F*TAX͍ǖrGM4ckmS?KI߁Ŗr7\HXr罷T;erQYcCD{3Nb:܌ygC\_n #oQ'> Mi'MJ AjM0PkdUt^E:N~KLa&-=ndh$AIHDAm0HJG PD0ٻ8t4exj=ů4F45aҐ $Rʷy70y7O {թ3r^shNm\DόY(|)F3\UPVNgӺYwr@wJ9F]j-VAuGv4N]&O:.6,L&ki0 ׋9ujjĥdۖ:^? 0κWe$Lϑyx9 [Mcz*o`t$-Rym!= 6f*OwC`VsH)fqZ{H4WUCA:Z4bL[_eow܀kU *n7G28S+}0 K_4C> /Jݼ 뽯ІXV}7An;E?< zVQ~@wmQI(Bgx16:dYսuYT>֜vA GUl0$cHf.]&#dB&RV#虻-458V0"&tVLSp2B;"W4mȵD|qn_g*.jPslw\>1H]}@ `Kn :Q/x'ѩ81T?\\V3d5rUZlcBıwue^ER,0-}g 1v<-6H8Ea_qͭG*"%NЖ:ud ZedP╪^g0 :+вQl֫LwM퇡;RI ̷jraHǃAou[$‚6Jx!u,lA:;G띺ubIɺ^uG-:}.$[cZ(br 'L[CSGYw rgq Z "3kP'I%JbEV"g m D4prF,acgC$ԻYrO &`9`6vjy 1%YO\nl[Ǹʪ=*Xw(c?k x࢑1\3yd%l[ @!\M^ M՘U$sH j(;|>${FF8|p YZ