libfwupdplugin5-1.7.3-150400.3.5.1 >  A d?p9|Ϟ(r \im*lYY֨qUvVT&AkwRݖk~F9@ꦊ3 8Tj(u*QYb-^a x wڹ&H3+h߭mJU6xLX g 6y4tnL kCҬD,+8Ewj[z2!v3쐒_ZAy) 1O%[ᅭqq1-S857e6737982725d09efbd42dbea7b1e71600dc706911f85c291eb676981f75388e10e70e2a750981843276e554023c4889095a35d?p9|k/'vxlsڟz͂yg&ksϸ S#Zo5vp:X9(F3?n ?baHdӕRk5@C|ud%Jsk,L c "JZӍEuZ|y J=}`d[ Pr< ߄챚}:dv}&q+gD3Q >z t#s%W&rOF]#d~$ށ ~pOIC!5{guW>p@h ?gd % V) ?Pcipx |    $,; ,D<DD(8[9[:G[>a%@a4FaCGaXHa`IahXal;YbX;\b]b^bbbccdd!ed&fd)ld+ud<vdDwdxdydzgggggClibfwupdplugin51.7.3150400.3.5.1Allow session software to update device firmwarefwupd is a daemon to allows session software to update device firmware on the local machine.d?ވs390zl36SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/System/Librarieshttps://fwupd.org/linuxs390xd?Pd?p47372b552520eb7d34e0579d21cdeffe9266ca5824658962e89a5d26f1000dd0libfwupdplugin.so.5.0.0rootrootrootrootfwupd-1.7.3-150400.3.5.1.src.rpmlibfwupdplugin.so.5()(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.1.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.6.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.7.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.7.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.8.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.9.3)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.9.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.9.7)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_0.9.8)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.3)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.4)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.6)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.8)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.0.9)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.1.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.1.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.1.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.4)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.6)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.2.9)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.3)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.4)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.6)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.8)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.3.9)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.4.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.4.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.4.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.4.6)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.4.7)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.3)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.4)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.5)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.6)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.7)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.5.8)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.6.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.6.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.6.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.7.0)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.7.1)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.7.2)(64bit)libfwupdplugin.so.5(LIBFWUPDPLUGIN_1.7.3)(64bit)libfwupdplugin5libfwupdplugin5(s390-64) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfigfwupdlibarchive.so.13()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.2.3)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libfwupd.so.2()(64bit)libfwupd.so.2(LIBFWUPD_0.1.1)(64bit)libfwupd.so.2(LIBFWUPD_0.7.0)(64bit)libfwupd.so.2(LIBFWUPD_0.9.3)(64bit)libfwupd.so.2(LIBFWUPD_0.9.8)(64bit)libfwupd.so.2(LIBFWUPD_1.0.0)(64bit)libfwupd.so.2(LIBFWUPD_1.0.8)(64bit)libfwupd.so.2(LIBFWUPD_1.1.0)(64bit)libfwupd.so.2(LIBFWUPD_1.1.2)(64bit)libfwupd.so.2(LIBFWUPD_1.1.3)(64bit)libfwupd.so.2(LIBFWUPD_1.2.4)(64bit)libfwupd.so.2(LIBFWUPD_1.2.5)(64bit)libfwupd.so.2(LIBFWUPD_1.2.9)(64bit)libfwupd.so.2(LIBFWUPD_1.3.7)(64bit)libfwupd.so.2(LIBFWUPD_1.4.1)(64bit)libfwupd.so.2(LIBFWUPD_1.4.5)(64bit)libfwupd.so.2(LIBFWUPD_1.5.0)(64bit)libfwupd.so.2(LIBFWUPD_1.5.1)(64bit)libfwupd.so.2(LIBFWUPD_1.5.5)(64bit)libfwupd.so.2(LIBFWUPD_1.5.8)(64bit)libfwupd.so.2(LIBFWUPD_1.6.0)(64bit)libfwupd.so.2(LIBFWUPD_1.6.2)(64bit)libgcab-1.0.so.0()(64bit)libgcab-1.0.so.0(LIBGCAB1_0.0)(64bit)libgcab-1.0.so.0(LIBGCAB1_0.2)(64bit)libgcab-1.0.so.0(LIBGCAB1_0.6)(64bit)libgcab-1.0.so.0(LIBGCAB1_1.0)(64bit)libgio-2.0.so.0()(64bit)libglib-2.0.so.0()(64bit)libgmodule-2.0.so.0()(64bit)libgobject-2.0.so.0()(64bit)libgudev-1.0.so.0()(64bit)libgusb.so.2()(64bit)libgusb.so.2(LIBGUSB_0.1.0)(64bit)libgusb.so.2(LIBGUSB_0.1.1)(64bit)libgusb.so.2(LIBGUSB_0.1.7)(64bit)libgusb.so.2(LIBGUSB_0.2.8)(64bit)libgusb.so.2(LIBGUSB_0.3.1)(64bit)libgusb.so.2(LIBGUSB_0.3.3)(64bit)libjcat.so.1()(64bit)libjcat.so.1(LIBJCAT_0.1.0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2)(64bit)libxmlb.so.2()(64bit)libxmlb.so.2(LIBXMLB_0.1.0)(64bit)libxmlb.so.2(LIBXMLB_0.1.1)(64bit)libxmlb.so.2(LIBXMLB_0.1.12)(64bit)libxmlb.so.2(LIBXMLB_0.1.15)(64bit)libxmlb.so.2(LIBXMLB_0.1.2)(64bit)libxmlb.so.2(LIBXMLB_0.1.3)(64bit)libxmlb.so.2(LIBXMLB_0.1.4)(64bit)libxmlb.so.2(LIBXMLB_0.1.5)(64bit)libxmlb.so.2(LIBXMLB_0.1.6)(64bit)libxmlb.so.2(LIBXMLB_0.1.7)(64bit)libxmlb.so.2(LIBXMLB_0.3.0)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.7.33.0.4-14.6.0-14.0-15.2-14.14.3bs@aaA@aaaaaaim@a^@`e`c`KW`6?`.V_S_м@_$_i_F@__@_O@_"@_"@_"@_@^א^א^1^@^h^)^ @]@]@]c]8H@] \\-@\@\Yz\73\\U@\ @[k@[Q@[\[h@[Xf@[GB[E@Zľ@ZlZ@Z`@Z1@Z1@Z1@Z;@Z8@Z2gYYYX @XX*X*X*X*X*X*X*X*X*Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@UeU+U+jlee@suse.comgmbr3@opensuse.orghpj@urpla.netbjorn.lie@gmail.combjorn.lie@gmail.comjlee@suse.comdimstar@opensuse.orgdimstar@opensuse.orgjsegitz@suse.comjlee@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.cominfo@paolostivanin.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgdimstar@opensuse.orgqkzhu@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgyfjiang@suse.comdimstar@opensuse.orgdimstar@opensuse.orgglin@suse.comglin@suse.comhpj@urpla.netstefan.bruens@rwth-aachen.debjorn.lie@gmail.comschwab@suse.debjorn.lie@gmail.comglin@suse.comglin@suse.commpluskal@suse.commaurizio.galli@gmail.comdimstar@opensuse.orgglin@suse.commail@bernhard-voelker.debjorn.lie@gmail.comglin@suse.comschwab@suse.deglin@suse.comndas@suse.denico.kruber@gmail.comjengelh@inai.denico.kruber@gmail.comtchvatal@suse.comoliver@getspam.deoliver@getspam.dedimstar@opensuse.orgmpluskal@suse.comantoine.belvire@opensuse.orgfcrozat@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgstefan.bruens@rwth-aachen.defcrozat@suse.comstefan.bruens@rwth-aachen.dedimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgmpluskal@suse.comzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.org- Add fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch to ignore non-PCI NVMe devices (bnc#1193921)- Update to version 1.7.3: * This release adds the following features: + Add a sync-bkc subcommand to ensure a known set of firmware versions + Add FuArchiveFirmware for plugins that use archives as firmware files + Add quirkable page and sector size properties to FuCfiDevice + Make Upower and powerd support optional * This release fixes the following bugs: + Add some sanity checks to the elanfp firmware parser + Add the CFI JEDEC instance ID if using the vendor-extended version + Check the value range when parsing the quirk keys + Do not wait for a USB runtime if will-disappear is set + Enable the MOTD integration when using pam_motd + Fix DFU regression when merging the FuProgress work + Fix running the tests when fwupd is not installed + Fix the GLib error message when inotify max_user_instances is too low + Fix VLI VL820Q7 detection to fix flashing of the Lenovo TBT3 dock + Ignore a USB error for STM32 attach when the device goes away + Make the HSI tests optional for embedded targets + Make the plugin startup order deterministic + Set Thunderbolt ports offline on host controller + Use endian-safe version functions when enumerating Logitech hardware + Use lowercase flag names in intel-spi to prevent a runtime warning + Wait for the System76 Launch device to come back from DFU mode * This release adds support for the following hardware: + Most Nordic Semiconductor nRF Secure devices - Fix build when not on TW: add BR protobuf-c- Fix build issue in spec (references to libfwupdplugin2 -> libfwupdplugin5)- Update to version 1.7.2: * This release adds the following features: + Add a new HSI check that PCR registers 0-7 are not empty + Add several compile flags to reduce the install size by over 300Kb + Allow overriding HwId data from the daemon.conf config file + Allow overriding the firmware GType from a quirk file + Export the component release ID over DBus + Remove support for the SoloKey and ChaosKey devices + Show a daemon warning if quirk flags are malformed + Speed up the daemon startup by ~40% by doing less at startup * This release fixes the following bugs: + Be case insensitive when fixing the device model + Fix a critial warning in ccgx found by the fuzzer + Fix a DFU crash if the attach failed due to a hardware fault + Fix a Redfish crash when specifying a URL without a port + Fix CLI downloads when using fwupdmgr --ipfs + Fix critical warning when /etc/machine-id does not exist + Inhibit thunderbolt devices to correctly use UPDATABLE_HIDDEN + Set SSL_VERIFYHOST=0 when using Redfish to fix OpenBMC auth + Skip UEFI devices that fail coldplug * This release adds support for the following hardware: All exported MTD block devices - Changes from version 1.7.1: * This release adds the following features: + Allow specifying 'fwupdmgr device-test foo --json' for unattended testing + Allow using a filename when using set-approved-firmware + Inhibit ModemManager device in mbim-qdu + Share the Common Flash Memory Interface quirks between plugins + Show changes in HSI attributes when using 'fwupdmgr security' + Show the user a warning if updating may affect full-disk-encryption + Show translated firmware release notes when provided + Support loading remotes from /var/lib/fwupd/remotes.d * This release fixes the following bugs: + Fix a CCGX regression when loading firmware + Fix a potential crash when dumping Parade devices + Fix build error when sys/io.h is not available + Fix building the Synaptics RMI self tests on s390x + Fix the CSME CVE detection for new generations + Handle EPERM when running the self tests on systems with IPMI + Mark as SUPPORTED even if on battery power + Only save the HSI attributes to the database if different + Raise the client timeout value from 25 seconds to fix Redfish startup + Redirect the old HSI links to the correct place + Relax the ITE SuperIO signature checks for new hardware support + Set device time and timezone for logitech bulkcontroller devices + Set the verfmt of the returned device when the daemon device is unset * This release adds support for the following hardware: + Dell Atomic Dock + HP Thunderbolt Dock G4 + More PixArt devices + Steelseries Stratus + Wacom 3rd-gen Intuos BT - Changes from version 1.7.0: * This release adds the following features: + Add FuCfuPayload and FuCfuOffer for future usage + Add support for an 'unreachable' device flag + Add support for Logitech devices supporting the Unified Battery feature + Allow adding GUIDs to each HSI security attribute + Allow installing the LVFS remote, but with it disabled by default + Convert security attributes to JSON and write then to the database + Convert the device test script to a fwupdmgr subcommand + Create Redfish user accounts automatically using IPMI + Use an interactive request to restart some Logitech DFU devices * This release fixes the following bugs: + Abort on invalid SREC files early to avoid a fuzzing timeout + Allow using interrupt transfers for HID devices + Allow waiting for multiple devices to replug + Fix a critical warning on a Unifying flash failure + Fix a regression in flashing the Dell dock + Fix Thunderbolt host controller probing + Forcefully set checksums found in cabinet files to lowercase + Force UX-capsule over full size BGRT + Make the SuperIO ports and timeouts specific to the DMI model + Only probe SynapticsMST devices that have opted-in + Remove support for --ignore-power as it did not work for UEFI firmware + Reset the CMOS as required when changing system firmware branch + Restart the daemon if any of the the plugin config files are modified + Show HSiLevel=0 attributes in JSON security output + Update the child composite ID if the parent changes + Use a per-device global percentage completion + Write the BMP image upside down to avoid using a negative bitmap height * This release adds support for the following hardware: + A huge number of Synaptics CAPE devices + Elan fingerprint readers + Logitech Bolt peripherals, receivers and radio hardware + Logitech devices supporting the bulk controller protocol + More supported PixArt devices + More supported StarBook coreboot devices + Union Point SPI hardware - Add pkgconfig(libprotobuf-c) and pkgconfig(protobuf) BuildRequires: New dependencies. - Refresh patches with quilt. - Drop sub-package fwupdtpmevlog, no longer built. - Update URL in _service, new home.- Update to version 1.6.4: * Allow overriding the quirks directory at runtime * Fix a regression in flashing the Dell dock * Fix probing the Dell TPM * Show HSiLevel=0 attributes in JSON security output * Abort on invalid SREC files early to avoid a fuzzing timeout * This release adds support for the following hardware: + AVer ATLAS CAM/CAM520 Pro2 + Cayenne/Spyder Synaptics MST + VL819 USB devices - Changes from version 1.6.3: * This release adds the following features: Fall back to the parent if the child does not have a battery level set * This release fixes the following bugs: + Disable the uefi_capsule plugin if Redfish coldplug succeeded + Fix an elantp crash when starting the daemon + Fix compiling with old versions of libxmlb + Fix detection of 8Bitdo wireless usb adapter + Fix the 8bitdo N30 Pro 2 install duration + Fix the modem-manager report that failed to get device after update + Fix writing large redfish firmware files * This release adds support for the following hardware: + Poly Studio P21 + Realtek RTD2141B - Switch service to obs_scm, and recompress to buildtime. - Drop automatic changesgenerate, upstream have perfectly fine and human understandable release notes at https://github.com/fwupd/fwupd/releases that should be copied into .changes.- Add requires to udisks2 for dbxtool update. (bnc#1192344)- If the machine we install onto has shim installed, it is likely an EFI based system. Require fwupd-efi in this case (boo#1192206).- Require libfwupdplugin2 by the -devel package: the -devel package installs the .so symlink, thus we must guarantee the target library to be present.- Added hardening to systemd service(s) (bsc#1181400). Added patch(es): * harden_fwupd-offline-update.service.patch * harden_fwupd-refresh.service.patch- Update to version 1.6.2 - The fwupd efi program be separated to fwupd-efi package. - Removed pesign-obs-integration, moved needssslcertforbuild , SBAT and EFI signing stuff to fwupd-efi. - Moved libfwupdplugin1 to libfwupdplugin2 - Change log from upstream: https://github.com/fwupd/fwupd/blob/main/data/org.freedesktop.fwupd.metainfo.xml - This release adds the following features: * Add a plugin to check Lenovo firmware settings * Add initial support for the powerd daemon * Add support for CapsuleOnDisk * Add support for installing UEFI updates from GRUB * Add support for soft-requirements that can be ignored with --force * Allow devices to only accept version upgrades * Allow discovery of Redfish BMCs specified by VID-PID or MAC * Allow the daemon to request interactive action from the end user * Automatically connect the BMC network interface at startup * Show the build timestamp if set on the device * Show the user how to switch out of Wacom tablet Android-mode - This release fixes the following bugs: * Add the alternate vendor name into the 8BitDo allowlist * Allow multiple devices to set WAIT_FOR_REPLUG * Allow the client to watch for more property changes * Always ensure the SuperIO version string is NUL terminated * Automatically clear the update error as required * Disable all UX capsules for Lenovo hardware * Do not assume the metainfo file is NUL-terminated * Do not save invalid files on LVFS server error * Fix a VLI regression in enumerating the PD device * Fix a VLI regression when installing VL820Q7 firmware * Fix enumeration of the Synaptics Prometheus config child * Fix parsing Redfish USB/PCI network VID/PIDs * Fix the fwupdmgr progressbar spinner to actually work * Fix version number for legacy Wacom Bluetooth modules * Ignore virtual M.2 ATA devices * Preserve NEEDS_REBOOT on successful update * Prevent a corrupt PHAT table from allocating lots of memory * Read the Redfish SMBIOS table when required * Remove the vendor string from the device name where required * Save the update state to the database correctly all of the time * Switch from sysctl to ioctl for ESRT on FreeBSD * Try reading from /sys/class/dmi if SMBIOS direct access fails * Watch for children added or removed after setup has been completed * Work around a XCC-ism on Lenovo hardware - This release adds support for the following hardware: * ModemManager devices supporting Firehose or MBIM QDU * More models of RTS54HUB * More Poly DFU devices * Parade LSPCON * PixArt receiver and wireless hardware * Realtek MST with RTD2142 * SuperIO IT5570 * USB4 Dell dock- Remove valgrind from BuildRequires since it's not a hard requirement anymore. (bsc#1184248)- Update to version 1.5.8: New features: * Add a new internal flag to opt-in to GUID matching * Add D501 Baklava device support * Add fu_device_set_battery_level() * Add missing uint64 read and write helpers * Add Qubes wrapper source and create packages * Allow enabling plugins only matching a specific HwId * Prompt for unlock keypress if reset command is blocked * Remove obsolete dell-dock non-passive update flow support * Remove the Hughski public key * Show a warning when parsing invalid quirk files * Support for GATT characteristic signals/notifications * Support more than one protocol for a given device Fixes: * Align the CCGX DMC firmware to 64 byte chunks * Be more strict for custom quirk keys * Check pixart firmware compatibility with hardware before flashing * Correct a thunderbolt assertion if kernel failed FW read * Correctly erase STM32 devices when transfer size is less than sector size * Detect SREC overflow to avoid adding ~4GB of 0xFF padding * Do not show a critical error when flashing footer-less binary files * Don't allow device updates while needing activation * Fix a regression in the elantp defined IAP start address * Fix a regression where activate stopped working * Fix firmware update of pointing device on Lenovo ThinkPad Nano * Fix the HSI plugin 'Disabled' state * Fix the quirk key name for the Lenovo HDMI with power * Fix writing to the GD32VF103 bootloader * Only call elantp->detach() when writing a firmware blob * Updated StarLabs GUIDs * Wait a few ms for the Logitech hardware to settle after detach - Remove GPG-KEY-Hughski-Limited from the filelist - Drop upstreamed patch + fwupd-bsc1182057-fix-sbat-section-copy.patch- Add fwupd-bsc1182057-fix-sbat-section-copy.patch to set the proper section flags for .sbat section so that objcopy can copy it into fwupd*.efi (bsc#1182057)- Update to version 1.5.7: New features: * Add initial support for Bluez bluetooth devices * Add more supported pixart devices * Add support for the RTD21xx HDMI converter Fixes * Convert MBR types to GPT GUIDs to help find the ESP * Do not allow updating a synaptics-mst device with no customer ID * Drop unused heap pages after startup has completed * Ensure SBAT metadata is added correctly * Move the plugin build logic to the plugins themselves * Only allow verify-update for plugins that support CAN_VERIFY - Specify SBAT metadata for openSUSE/SLE (bsc#1182057) - Adjust the meson options + plugin_uefi => plugin_uefi_capsule and plugin_uefi_pk + plugin_synaptics => plugin_synaptics_mst and plugin_synaptics_rmi + Disable Intel AMT plugin in non-x86 systems- Update to 1.5.6: New features: * Add SBAT metadata to the fwupd EFI binary * Add support for GD32VF103 as found in the Longan Nano * Add support for RMI PS2 devices * Add support for the System76 Keyboard * Allow downloading firmware from IPFS * Install the UX data into a single .tar.xz file * Add a plugin to update PixArt RF devices * Add new hardware to use the elantp and rts54hid plugins * Allow specifying more than one VendorID for a device * Detect the AMD TSME encryption state for HSI-4 * Detect the AMI PK test key is not installed for HSI-1 * Add Maple Ridge Thunderbolt firmware parsing support * Add --no-remote-check to ignore checking for download remotes * Allow creating FMAP and Synaptics firmware using builder.xml Fixes: * Add support for the Starlabs LabTop L4 * Allow using an external ESP again * Ask the user to reboot when required if downgrading * Be more paranoid when parsing ASCII buffers and devices * Check if the fwupd BootXXXX entry exists on failure * Clear the pending flag if restarting the system * Do not allow flashing using flashrom if BLE is enabled * Do not allow Lenovo hardware to install multiple capsules * Do not parse the OptionROM image * Do not show Unknown [***] for every client connection * Fix dnload wBlockNum wraparound for ST devices * Fix OOM when using large ArchiveSizeMax values * Fix several crashes spotted by AddressSanitizer * Fix several places where the Goodix MOC plugin could crash * Include the PCR0 to the report metadata * Report the lockdown status from UEFI and SuperIO plugins * Show a console warning if the system clock is not set * Fix flashing a fingerprint reader that is in use * Fix several critical warnings when parsing invalid firmware * Fix updating DFU devices that use DNLOAD_BUSY * Ignore the legacy UEFI OVMF dummy GUID * Make libfwupd more thread safe to fix a crash in gnome-software * Never show unprintable chars from invalid firmware in the logs * Allow using fwupdtool as non-root for firmware commands * Do not trust the Block.HintSystem boolean for ESP filtering * Fix a memory leak when parsing Synaptics firmware * Fix a possible crash when reading the Goodix MOC USB request * Fix crashes when parsing invalid FMAP, DMC, Solokey and Synaptics images - Deprecate fwupd-bsc1179790-disable-hintsystem.patch- Add fwupd-bsc1179790-disable-hintsystem.patch to remove Block.HintSystem from ESP filtering (bsc#1179790)- Update to version 1.5.3: + Lower the CURL version required to fix build in RHEL + Do not use meson ternary operations to avoid bumping the required meson version + Added Lite Mk III + Allow setting the GMainContext when used for sync methods + Fall back to the misc device for serio devices + Actually implement rescan in FuUdevDevice + bcm57xx: Refactor CRC code to remove extra byteswap + bcm57xx: Fix CRC check + synaptics-rmi: Don't crash if calling ->to_string() before - >setup() + Fix a possible critical warning due to missing retval + Add the serio->firmare_id for UDev devices + Export the driver name from FuUdevDevice + Allow the client to send PKCS7 and GPG signatures + Force the remote kind to JCat server-side + Only parse the signature if the remote is JCat + fu-main: Fix sender_features insert with wrong size + make platform integrity plugin optional and disabled by default + Add quirk for Western Digital + Mark more user-visible strings as translatable + modem-manager: validate firmware update method combinations + modem-manager: remove unused byte counts in QMI/PDC update logic + modem-manager: make sure the correct interface number is used for QMI + modem-manager: udev monitoring only if device switches layout + modem-manager: plug udev client leak + Restrict loading component types of firmware - Enable supported_build to clarify that this package is supported (bsc#1179790) - Drop fwupd-platform-integrity.conf since upstream disables the platform integrity module by default now due to incompleteness. - Address fwupd-refresh.service in %preun, %pre, %post, and %postun and provide a rc link for it - Version "Obsoletes: dbxtool" and "Obsoletes: fwupdate"- Update to version 1.5.2: + ata: Add OUI quirk for Toshiba + libfwupd: Restore recognizing gpg and pkcs7 types still + Register the SoupSession gtype when required + Switch from libsoup to libcurl + Fix sync method when called from threads without a context + Move ABI check to Github actions + Enable github workflows + libfwupd: Add fwupd_client_download_file() + libfwupd: Add fwupd_client_get_user_agent() + Only download the remote metadata as required + Add breaks for fwupdate 12-7 (Closes: #960688) + Install modules-load configs in the correct directory + vli: Do not be clever replugging the MSP430 device + vli: Make some trivial debugging more specific to help debug an issue + make gcab optional + Fall back to FAT32 internal partitions for detecting ESP + Add a flag to indicate if packages are supported + uefi: a new option for uefi configuration to use UEFI removable path + Add a section to man page on scripting + synaptics-mst: Improve reliability by waiting 2 seconds after writing data + hailuck: Add an plugin for the Pinebook Pro laptop + Allow setting global flags for FuHidDevice + Set the SMBIOS chassis type to portable if a DT battery exists + colorhug: Don't set the version format to triplet at startup + Allow components to set the icon from the metadata + colorhug: Fix detection of version on older firmware versions + bcm57xx: Fix reading vendor/device ids from firmware. + Remove HSI update and attestation suffixes + trivial: make dbxtool executable to fix snap build + Ignore an invalid vendor-id when adding releases for display + Notify the service manager when idle-quitting - Refresh fwupd-bsc1130056-change-shim-path.patch - Changes in BuildRequires: + Replace pkgconfig(libsoup-2.4) with pkgconfig(libcurl) + Replace pkgconfig(systemd) with pkgconfig(libsystemd) - fwupd-msr.conf and fwupd-platform-integrity.conf are moved to %{_modulesloaddir}.- Obsoletes and Provides dbxtool since fwupd 1.5.0+ now embeds dbxtool in the dbxtool plugin- Amend the spec file (jsc#SLE-16818) + Only enable fish support for Tumbleweed + Only enable the MSR plugin for x86 + Only install dbxtool in the architectures with UEFI support- Update to version 1.5.1: + Use UDisks to find out if swap devices are encrypted. + Show a link to discover more information about a specific plugin failure. + updated fish completions to 1.5.0. + Remove the duplicate parent-child data in FwupdDevice and FuDevice. + Show a less scary fwupdate output for devices without info. + thunderbolt: recognize authorized value of '2' as well. + bcm57xx: Make hotplug more reliable. + Use a different Device ID for the OptionROM devices. + contrib/ci: switch TPM simulator from ibmswtpm to swtpm. + Delete unused EFI variables when deploying firmware. + Fix probe warning for the Logitech Unifying device. + Include the amount of NVRAM size in use in the LVFS failure report. + Add external interface messages.- Update to version 1.5.0: + Add a compatible re-implementation of the rhboot dbxtool. + Add async versions of the library for GUI tools. + Add commands for interacting with the ESP to fwupdtool. + Add firmware-extract subcommand to fwupdtool. + Add FwupdPlugin so we can convey enumerated system errors to the end user. + Add plugin for Goodix fingerprint sensors. + Add plugin that can update the BCM5719 network adapter. + Add plugin to update Elan Touchpads using HID. + Add support for a delayed activation flow for Thunderbolt. + Add support for ChromeOS Quiche and Gingerbread. + Add support for Hyper hardware. + Add support for the Host Security ID. + Add support for ThunderBolt retimers. + Add switch-branch command to fwupdtool and fwupdmgr. + Allow blocking specific firmware releases by checksum. + Allow contructing a firmware with multiple images. + Allow firmware to require specific features from front-end clients. + Allow updating the dbx using the LVFS, validating it is safe to apply. + Include the HSI results and attributes in the uploaded report. + Support loading DMI data from DT systems. + Support LVFS::UpdateImage for GUI clients.- Add fwupd-jscSLE-11766-close-efidir-leap-gap.patch: Set SLE and openSUSE esp os dir at runtime (jsc#SLE-11766) - Drop _multibuild and build option -Defi_os_dir="%{efidir}": with the above patch fwupd can detect esp os dir dynamically - Update the efidir related %post and %postun scripts in spec file- Update to version 1.4.5: * Add XB_QUERY_FLAG_FORCE_NODE_CACHE * Add support for a delayed activation flow for Thunderbolt * Allow firmware to require specific features from front-end clients * Allow multi-byte FuUdevDevice preads and writes * Be more defensive when remotes are missing required keys * Disable the SQLite lookaside cache * ccgx: Add more hybrid dock support * ccgx: Modify readme to remove customer info * ccgx: add new protocol for dmc dock * ccgx: remove verify flag in plugin * modem-manager: read the vendor ID directly from sysfs attribute Fixes: #2209 * thelio-io: Add the DFU instance ID as a counterpart only * thunderbolt: Add a new subclassed thunderbolt firmware update type * thunderbolt: Allow quirks to skip the authentication step * thunderbolt: drop support for force power * tpm-eventlog: fix PCR0 calculation * uefi: check for free space after cleaning up ESP * vli: Add dual-image feature for VL103 backup firmware * vli: Add the project ID shared SPI PD controllers * vli: Allow chained usb hub devices where the parent needs GPIOB reset * vli: Do not modify the class vfuncs depending on device type * vli: Do not use GUID matching for the MSP device * vli: Rename FuVliUsbhubI2cDevice to FuVliUsbhubMsp430Device * vli: Set FuQuirks on the shared SPI object * vli: Set the i2c instance IDs in probe() * vli: Use the GPIOB reset for the MiniDock VL103 * vli: Wait for the root device to be replugged when updating the MSP430- Update to version 1.4.4: * Release fwupd 1.4.4 * Fix regression when checking for downgraded metadata- Update to version 1.4.3: * Release fwupd 1.4.3 * ata: A OUI quirk for Kingston * ccgx: Fix a potential division by zero * Check the device requirements when returning from GetDetails * fu-engine: Allow --plugin-whitelist to use dashes instead of underscores * Always enforce the metadata signature has a valid timestamp * ccgx: modify install duration for dmc device * ccgx: Add support for HP DMC dock devices * dell-dock: prevent updates to occur via synaptics-mst plugin * dell-dock: Capture the dock SKU in metadata * synaptics-prometheus: Force the minor version from 0x02 to 0x01 to make sure the devices can be updated back to 0x01. * Generate a body for github releases (Fixes: #2034)- Build the package separately for openSUSE and SLE using _multibuild (jsc#SLE-11744).- Update to version 1.4.2: * vli: Add no-guid-matching for all VLI devices * vli: Remove a copy-and-paste mistake * Add two OUI quirks * ata: Add WD OUI quirk 000cca * synaptics-rmi: Essentially blacklist Dell K12A * dfu: Avoid communicating when bitManifestationTolerant is off * ata: Add OUI quirk for Western Digital * dfu: Support MATEKF722SE quirk * Fix various build issues with -Wdiscarded-qualifiers * thunderbolt/dell-dock: Delay activation for Thunderbolt updates * Switch the default of EnumerateAllDevices to false * Add OUI quirk for SanDisk * vli: Add two standard USB instance IDs for shared-PD devices * vli: Use GPIOB to reset the VL817 found in two Lenovo products * tpm-eventlog: Correct the display of final calculated PCRs * wacom-raw: fixup switching to bootloader mode- Update to version 1.4.1: * thunderbolt: Don't show safe mode errors for USB4 host controllers * ep963x: Various changes to make the plugin actually work on real hardware * Make tss2-esys conditional * ep963x: Remove some dead code spotted by Coverity * ccgx: Only update the FW2 partition of the ThinkPad USB-C Dock Gen2 * ccgx: Expand the FWImageType for future hardware * Allow specifying the device on the command line by GUID * Fix the DeviceID set by GetDetails * wacom-usb: Fix a theoretical buffer over-read to make GCC happy * vli: Only show the i2c devices on the USB3 hub * Allow devices to be updatable, but only when upgrading a proxy device * Reset the progressbar time estimate if the percentage is invalid * ccgx: Always report 100% when finished writing * Add a device quirk that forces an explicit device-id match * ccgx: Set the device name and summary from quirk files * vli: Only do the APP5 FW bug fix on affected hardware * vli: Show all the buffer when debugging with FWUPD_VLI_USBHUB_VERBOSE * fu-engine: Refresh device name and format before setting supported flag * Allow a device to set the logical or physical ID during ->setup() * ccgx: Split out a trivial helper to set the instance IDs * ccgx: Set the device name to be more useful * ccgx: Set the logical ID as the FwMode * ccgx: Split out a trivial function to set the version * ccgx: Do not reboot the device write after installing * ccgx: Do no show the flash parameters when unknown * Allow devices to match the proxy device by GUID * Do not skip attach() if the device is marked _WILL_DISAPPEAR * dell-dock: Port to using fu_device_get_proxy() * Allow adding a device 'proxy' device that can do actions on it * vli: Do not show the USB 2 recovery devices for USB 3 hubs * vli: Add metadata to identify which is the same physical device * uefi: correctly format firmware version of Dynabook (né Toshiba) X30, X40 and probably others * synaptics-cxaudio: Use the ->attach() device vfunc * synaptics-cxaudio: Wait for the device to reboot after writing firmware * logitech_hidpp: decrease verbosity of messages that hid++ ID is missing * Prefer to update the child first if the order is unspecified * Do not modify the device priority for child devices- Exclude fwupdate from the architectures without UEFI support.- Update to version 1.4.0: * Release fwupd 1.4.0 * Allow removing device flags from quirk files * Use black to format python source in a consistent manner * Define SOURCE_VERSION when building a package * Only set the parent when adopting children * Do not conditionalize attach() and detach() on IS_BOOTLOADER * Do not crash the daemon if a plugin does something dumb * wacom-usb: Add more sanity checks in case the daemon goes crazy * wacom-usb: Use a per-device cleanup function * Add some more device regression tests * wacom-usb: Add a lot of missing metadata about the devices * wacom-usb: Hide a lot of debugging behind FWUPD_WACOM_VERBOSE * Only auto-add counterpart GUIDs when required * ccgx: remove update message * ccgx: add parent guid for hybrid dock * ccgx: Use a smaller timeout for i2c read and write operations * ccgx: Retry the register read and write with a i2c reset * ccgx: Fix buffer overflow when reading out i2c status * ccgx: Retry the HID disconnect up to 5 times * ccgx: Show a better error message on failure * ccgx: Allow forcing firmware of the wrong app_type with fwupdtool * Modularize the hardware tests * Ignore indirect devices that replug during the composite firmware update * Export the device state as part of the D-Bus interface * Fix devices that use CounterpartGuid when more than one device is installed * Use the GUID as a fallback rather than the connection ID * ccgx: Fix critical warning on i2c write failure * logitech-hidpp: Do not add peripheral devices for receiver in BL mode * Install the installed-tests only if tests are enabled * Load the signature to get the aliased CDN-safe version of the metadata * vli: Only reboot the USB hub once * synaptics-cxaudio: Only use the PATCH2 address when the patch level is 2 * add STM32F745 stm dfuse quirk * dfu: Add a way to set the timeout from a quirk * Export the release urgency * Export the release creation time * Check the firmware requirements before adding SUPPORTED * data/motd/fwupd-refresh: Only order after network.target * ccgx: Do not add the HID device that will disconnect * ccgx: Use Silicon ID and Application type to set flash parameters * Add a new daemon configuration option to control EnumerateAllDevices * logitech_hidpp: set the bootloader protocol * Install meson from pip for LGTM * bash: add completion for fwupdtool reinstall * fu-tool: add reinstall command * fu-engine: export fu_engine_get_releases_for_device in header * vli: Wait for the VL103 to timeout to fix detach * ccgx: Show the UpdateMessage in the correct device mode * ccgx: Add extra instance IDs to match specific firmware * Use a static version number * thunderbolt: Rather than hardcoding to PCI slot numbers, use domain in GUID * Revert "thunderbolt: Create a unique GUID including Thunderbolt controller path" * dell-dock: Port to fu_device_retry() * nitrokey: Convert to use FuHidDevice * nitrokey: Port to fu_device_retry() * vli: Port to fu_device_retry() * Add fu_device_retry() helper functionality * ccgx: Implement writing firmware to flash * ccgx: Add i2c status check when reading or writing registers * ccgx: Add 5ms delay between read registers to avoid an i2c error * libfwupdplugin: Use fu_device_locker_close() * synaptics-mst: Use fu_device_locker_close() * Add fu_device_locker_close() * ccgx: Do not store the silicon ID in the image address * ccgx: Add device quirks for the Lenovo Hybrid Dock * ccgx: Switch HID mode to HPI mode at startup * ccgx: Clear the event queue when in startup * ccgx: Wait for hardware to settle when coming out of reset * ccgx: Do not mark the device as updatable when in boot mode * ccgx: Verify the firmware app type when preparing firmware * ccgx: Set the update message when running in backup firmware * ccgx: Read the FwAppType from the hardware * ccgx: Set the HPI version number for the current firmware * ccgx: Get the silicon ID to map the flash parameters * ccgx: Read the HPI device mode at startup * ccgx: Set up the HPI I²C config at startup * ccgx: Create devices when in HID and I2C modes * Add a new ChromeOS CI target to build without GPG and PKCS7 * Use Jcat files in firmware archives and for metadata - Removed fu-keyring-gpg which caused CVE-2020-10759 (boo#1172643) * csr: Allow truncated HID reads * vli: Only consider the high nibble when building the sub-version * csr: Parse the firmware as a DFU file * Add support for EP963x hardware * Add FuHidDevice abstraction * vli: Correctly attach VL103 after a firmware update * ccgx: Parse the metadata block in the firmware image * ccgx: Add a firmare parser for cyacd files * logitech: Correctly set the protocol * Add the optional device-id to the update --help output * Fix a difficult-to-trigger daemon hang when replugging devices * vli: Remove a dock device from the whitelist that is never going to be updated * vli: Add some trivial debugging to help track down a bug * vli: Never add USB hub devices that are not upgradable * uefi: Don't use shim for non-secure boot configurations * Start fwupd-activate.service after snapd.service * dfu: Actually reload the DFU device after upgrade has completed * dfu: Add one more m-stack device requiring a quirk * Apply version format to releases and devices at same time * Ensure that the DeviceID is set for child devices * Fix a daemon crash when removing children * Allow waiting for the parent device when replugging * Add fu_device_get_root() shared API * vli: Fix an error when detaching MSP430 * vli: Fix a critical warning when getting the USB speed * vli: Fix the error enum values for the MSP430 * Do not add blank lines when tokenizing Intel hex files * vli: Fix the version calculation for MSP430 * vli: Ignore one more error when attaching * vli: Always expect the VL103 header at 0x1003 or 0x4000 * vli: Do not fall back to the recovery write for usbhubs * vli: Only show the 2nd header if the device ID is valid * vli: Fix VL103 reboot from ROM mode to FW mode * vli: Add some better comments for writing GPIOs * Add a helper script to add a DFU header * Add 'firmware-convert' subcommand to fwupdtool * fu-engine: Make two passes of requirements checking * fu-engine: Copy the VersionFormat from the CAB if specified in `get-details` * Add a new plugin for CPU microcode * Don't build/install fwupdagent man page if agent build is not requested * Introduce a new VersionFormat for `hex` * Drop UEFI quirks we now inherit from metadata * ci: build Debian using libflashrom * When TPM PCR0 measurements fail, query if secure boot is available and enabled * fix fwupd.shutdown.in according to the movement of fwupdtool to bindir * ata: Add OUI quirk for Western Digital and Intel * improved fish shell completion * vli: Set the MSP430 version format to pair * Always return AppStream markup for remote agreements * ata: Add trivial OUI quirk for Micron * added completion script for fish shell * Do not fail loading in /etc/machine-id is not available * Use xb_builder_source_add_simple_adapter * Create FuCabinet and untangle a lot of legacy code * nvme: Do not try to handle integer version numbers * Allow server metadata to set the version format on some devices * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * Decouple the version format from the version itself * Add raw versions for bootloader and lowest * Allow server metadata to set the device name on some devices * Remove support for GCab less than v1.0 * fu-device-list: Check protocol before de-duping devices * Do not allow devices that have no vendor ID to be UPDATABLE * ata: Include a vendor ID for ATA hardware * ata: Switch off the verbose logging by default * Always check for PLAIN when doing vercmp() operations * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * Use the system provided flashrom on Fedora * Add a plugin vfunc to run after subclassed FuDevice creation * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * Generate an additional UEFI quirk file using the stable LVFS metadata * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Refresh fwupd-bsc1130056-change-shim-path.patch - Add new dependency: jcat- Update to version 1.3.9: * Release fwupd 1.3.9 * Always check for PLAIN when doing vercmp() operations * improved fish shell completion * vli: Set the MSP430 version format to pair * added completion script for fish shell * Always return AppStream markup for remote agreements * Do not fail loading in /etc/machine-id is not available * fu-engine: Fixup broken-ness from 0c0fada18fc9cb2a0efec351db67f0867bf045cd * Use xb_builder_source_add_simple_adapter * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * fu-device-list: Check protocol before de-duping devices * ata: Switch off the verbose logging by default * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * fu-util: fix a logic error in report uploading introduced in e076d48afb74d1447936d353f12781755f13b047 * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Update to version 1.3.8: * Release fwupd 1.3.8 * Do not use fu_common_vercmp() when the device verfmt is PLAIN * altos: Output raw buffer data when using FWUPD_ALTOS_VERBOSE * altos: Prefix an error to provide more context * altos: Add a trivial _to_string() implementation * synaptics-cxaudio: Make the verfmt match that of the existing Windows tools * synaptics-mst: Allow MST to fall back if no PCI device is marked as parent * Allow specifying a list of subsystems when setting a physical ID * synaptics-mst: Fix trivial thinko caused by the wrong dock connected * vli: Invert the logic to reboot the parent FuCliUsbhubDevice, not the child * vli: Switch around the hub tier values * uefi: Fix a build regression with Fedora 30 * logitech_hidpp: Ignore detach failures (Fixes: #1183) * logitech_hidpp: When detaching to bootloader use non-blocking IO and wait for timeout * vli: Show erase progress when doing a v2 recovery * uefi: Do not remove the 'Linux Firmware Updater' boot entry before update * uefi: Do not rewrite BootOrder in the EFI helper * vli: Add support for the PS186 device * Set up more parent devices for various Lenovo USB hubs * cxaudio: Set the update protocol to prevent a daemon warning * vli: Add support for Lenovo Modularized dock * Add an extra instance ID to disambiguate USB hubs * vli: Remove the unused tierX custom flags for each device * Revert "Correctly delete UEFI variables" * uefi: make debugging output more readable * vli: Fix a potential buffer-overflow when parsing firmware * tpm: Optimize the string parsing and fix the boolean logic * synaptics-rmi: Add a missing error enum value * synaptics-rmi: Correctly identify a checksum failure * synaptics-rmi: Fix Coverity issue that is impossible to hit in reality * solokeys: Parse old versions of the bootloader string * Add a plugin to update PD controllers by Fresco Logic * vli: Set the device progress correctly when erasing a PD device * vli: Use the correct command to get the device firmware version * vli: Correctly reset all VL100 devices * vli: Set all standalone PD devices to not do SPI auto-detection * vli: Mark standalone PD devices as updatable * vli: Set the protocol for FuVliUsbhubPdDevice types * Support the new gnuefi file locations * Cleanup ancient fwupdate-* EFI variables too (Fixes: #1739) * Detect kernel lockdown status * vli: Add the DEV instance ID to all devices * tpm-eventlog: Replay the TPM event log to get the PCRx values * tpm-eventlog: Store the eventlog hashes in binary form - Update to version 1.3.7: * Release fwupd 1.3.7 * Correctly delete UEFI variables * ci: allow working with podman w/o aliases * ci: fedora: force correct rpm package version * src: fu-engine: check version was updated by checking version * Correctly import PKCS-7 remote metadata * Add 'refresh' to fwupdtool * Add 'get-remotes' to fwupdtool * Generate a win32 setup binary * Fix display of UTF-8 characters on Windows * Move MOTD population into the daemon * fu-util: Discourage metadata refreshes more than once per day * Disable the battery percentage checks if UPower is unavailable * Allow getting the list of updates in JSON format from fwupdagent * Revert "trivial: Attempt to fix Debian CI" * fu-remote-list: emit a changed signal when modifying a remote * synaptics-mst: Skip self tests for systems with amdgpu * Allow applying all releases to get to a target version * Split up fu_engine_install() into two halves * logitech_hidpp: use the correct timeout for IO channel writes * Allow quirking devices that always require a version check * Shut down automatically when there is system memory pressure * Show the device parent if there is an interesting child * Allow the client to get the list of FwupdDevice children * Set the FwupdDevice parents in fwupdtool * Don't always get the vendor ID for udev devices using the parent * Add a runtime warning when adding a device without an vendor-id or protocol set * vli: Set more of the firmware max sizes automatically * vli: Add a SpiAutoDetect quirk for some of the PD devices * vli: Use a different protocol ID for i2c devices * vli: Add support for standalone Single PD devices * vli: Move generic SPI functionality into the FuVliDevice base class * vli: Remove the PD emulation code * vli: Use a more standard GUID for the child i²c and shared SPI devices * vli: Allow setting the device kind from a quirk * vli: Make more function names match the docs * vli: Move the SPI command quirking from FuVliUsbhubDevice down to FuVliDevice * vli: Rename FuVliUsbhubPdFirmware to FuVliPdFirmware * vli: Allow the device to specify the PD firmware header offset * vli: Add a FuVliDevice as a subclass to FuVliUsbhubDevice * vli: Define the device GType in the quirk file * vli: Move the CRC calculations out of usbhub scope * vli: Have one 'DeviceKind' for all objects * vli: Rename the `vli_usbhub` plugin to `vli` * Capitalize GNOME - package has grown a few new binaries: fwupdagent, fwupdate, fwupdtool and a tpm event debugging tool, that is packaged separately: fwupdtpmevlog- Drop docbook-utils-minimal build dependency, manpages are generated with gtk-doc.- Update to version 1.3.6: * plugins/coreboot: Add missing fu_hash dependency * trivial: synaptics-cxaudio: Add Google type C <-> 3.5mm adapter * fu-engine: don't expose bootloader version errors to users * trivial: dell-dock: drop unused quirk keyx * trivial: rename synapticsmst to synaptics-mst * trivial: actually set vendor ID for synaptics * fu-remote-list: Drop fallback path behavior * libfwupdplugin: Make sure systemd created environment variables exist * trivial: fu-remotes-list: drop usage of `FU_SELF_TEST_REMOTES_DIR` * trivial: synaptics-rmi: hardcode Vendor string * trivial: Set vendor ID for Dell WD19 to USB:0x413C (Fixes: #1653) * trivial: Document the use of vendor-id in each plugin * superio: Use the baseboard vendor as the vendor ID * uefi: Use the BIOS vendor as the vendor ID * coreboot: Use the BIOS vendor as the vendor ID * flashrom: Use the BIOS vendor as the vendor ID * dell: Hardcode a plausible vendor ID * emmc: Set the correct vendor ID prefix * fu-util-common: correct the default prompt for reboot/shutdown (Fixes: #1617) * Split out the remote loading from FuConfig * vli-usbhub: Fix the quirk for the legacy VIA 813 chip * Clarify error messages when no upgrades available * trivial: Don't handle a vendor-id requirement error that cannot happen * Only check the vendor ID if the device has one set * fu-install-task: Enforce that device protocol matches metadata * Add a new plugin that can parse the TPM event log * Allow other plugins to contribute report metadata * trivial: dell: hardcode the physical device ID for tpm to match the tpm plugin * Add a new plugin that exposes the system TPM device firmware version * Add fu_udev_device_set_flags() * trivial: Render large values of VersionRaw in a more portable way * trivial: wacom-raw: mark all Moffett SKUs as self recovery * Throw exit status 0 (instead of 2) if there is no firmware to be updated * Add a `dell-bios` version format * Add support for multiple LVFS::VersionFormat tags * Do not do semver conversion in fu_common_vercmp() * trivial: Deprecate fu_common_version_parse() * trivial: Support 'plain' in fu_common_version_from_uintXX() * Add the sysfs 'description' as the one-line device summary * trivial: Also print the parent keys when using FU_UDEV_DEVICE_DEBUG * trivial: Add fu_common_version_from_uint64() * trivial: Convert the VersionRaw value to a uint64_t for future use * Allow building on Windows with MinGW * synaptics-prometheus: Allow incremental version major and minor number * Replace 'scheduing' with 'scheduling' * Export the raw device version to the client --verbose output * trivial: Only dlopen the test plugin once * Export the device protocol to the client --verbose output * trivial: installed-tests: try to display journal for failed tests * trivial: ci: debian: enable verbose daemon logging for failure analysis * trivial: installed-tests: explicitly choose webcam device ID * trivial: debian: remove obj-* built files to fix back to back builds * trivial: ci: don't let bad symlinks cause debian build failures * trivial: debian: correct a dependency for libfwupdplugin-dev - Changes from version 1.3.5: * plugins: Fix potential use of NULL pointer in fu_dell_dock_mst_write_register * Fix shifting integer by more than 31 in fu_util_filter_device * synaptics-prometheus: Reload the device version after IOTA update * synaptics-prometheus: Reload the device version after update * trivial: wacom: remove coretronic config from Moffett scope * trivial: Fix a NULL/FALSE confusion * trivial: Add a BR for Fedora * trivial: Fix coreboot commit to fix CI * trivial: libfwupdplugin: clarify name of self test * plugins/coreboot: Improve version detection * plugins/coreboot: Get rid of FU_HWIDS_KEY_BIOS_VENDOR in coldplug * trivial: Move progressbar out of libfwupdplugin * trivial: Unexport fu_test_get_filename() * trivial: Unexport fu_test_compare_lines() * trivial: Unexport fu_test_loop_run_with_timeout() * trivial: Do not include non-introspectable functions in the GIR * trivial: Fix up a few introspection problems in FwupdPlugin * trivial: Include the Fwupd GIR in the FwupdPLugin GIR * trivial: Never add duplicate symbols to the map file * trivial: Properly namespace the defines in the exported header * Install development files for libfwupdplugin * Convert libfwupdprivate to a shared library libfwupdplugin * trivial: Allow building GCab from a subpackage * trivial: Fix under-include to define O_RDONLY * trivial: Allow compiling without * trivial: Do not use FuProgressbar in dfu-tool * synaptics-prometheus: Manually set the bootloader mode when attaching * trivial: Split out a new helper funtion * trivial: Add some optional debugging when hotplugging devices * trivial: Include the correct header for S_IRWXU * Always use the more portable 3-arg form for open() * trivial: Untangle FuHistory from FuPlugin * trivial: Allow compiling without * Revert "synaptics-rmi: Use the build ID as the version number to match the vendor tool" * Add missing documentation from the plugin interface * trivial: fu-udev-device: remove a prototype that was missed in b3d4d2ff * trivial: add missing gtk-doc fields for many files in src/ * trivial: fix compile failure without gudev * synaptics-prometheus: Mirror the _IS_BOOTLOADER from device to config * Allow setting the device flags using GObject properties * vli_usbhub: Set the composite parent at construction time * synaptics-prometheus: Set the composite parent at construction time * Allow plugins to set the parent during construction * vli-usbhub: Whitelist the PD and I²C devices * Set the protocol per-device not per-plugin * synaptics-rmi: Use the build ID as the version number to match the vendor tool * Create a REV_00 instance ID as this may be what the vendor needs to target * fu-util-common: Invert default behavior for reboot and shutdown prompts * trivial: fu-plugin-vfuncs: Add GTK documentation for all vfuncs * Make gudev a compile-time option * trivial: Set the offline trigger using an environment variable * trivial: ci: pull lintian from unstable for now. * trivial: stop including fu-hash.h as part of fu-plugin-vfuncs.h * Fix shebangs on scripts * trivial: Use prefixes for DATADIR in config.h for portability * Allow compiling GUsb as a subproject * trivial: fu-udev-device: add a to_string func for debugging * trivial: Don't assume that plugins end in .so * trivial: optionrom: remove unneeded includes * trivial: debian: ci: ignore library-not-linked-against-libc for more * trivial: remove version-format.md * trivial: Allow compiling without pwrite() * trivial: Allow compiling without * trivial: Allow compiling without realpath() * trivial: Allow compiling without HAVE_LC_MESSAGES * trivial: Allow compiling without getuid() * trivial: Allow compiling without * trivial: Allow compiling without * trivial: Allow compiling without * Ensure the _get_type() gets the same ABI version as the constructor * Use the correct unlocker when using GRWLock * trivial: plugins: only build coreboot when option set * fwupdtool: don't show a warning when calling `get-plugins` - Changes from version 1.3.4: * trivial: Don't force specific linker flash when cross building * dell: Use the more portable g_usleep() * trivial: Fix unused header includes * vli-usbhub: Make erasing less verbose and writing more obvious * vli-usbhub: Correctly print the 24-bit USB3 offset * vli-usbhub: Print the PD firmware offset and size for debugging * vli-usbhub: Open the parent device before attempting to read or write from the child * vli-usbhub: Set the install duration for the PD device * trivial: Fix a failed error prefix string * trivial: wacom-raw: Remove embedded from device name * wacom-raw: Correct HWID support * uefi: Just use a uint16_t for BootNext processing * uefi: Use a simpler entries set algorithm * vli-usbhub: Add support for writing using I2C passthru * vli-usbhub: Support updating PD devices that share the hub flash * vli-usbhub: Support the PD file format * trivial: uefi: correct a NULL pointer dereference * uefi: fall back to `ID_LIKE` when the path for `ID` doesn't exist (Fixes:# 1566) * uefi: Make generate_binary.sh more robust * Tokenize the Intel Hex file before parsing * trivial: Detect the USB version automatically * trivial: fu-util/fu-tool: explicitly block unsupported flags * Add support for matching requirements on device parents * Skip cleanup after device is done updating if `will-disappear` is set (Fixes: #1529) * efi: use a wildcard section copy for final EFI generation * modem-manager: explicitly use plain version format * modem-manager: add quirks for the Foxconn T77W968 modules * Allows confined snaps to activate fwupd via D-Bus * trivial: thunderbolt: clarify error message * Add a new property `Interactive` to the daemon * trivial: contrib/get-version.py: require git less hard * superio: Never read from port offset zero * superio: Fix regression when coldplugging superio devices * trivial: Fix Fedora CI build * trivial: Fix the autobuilt spec file with the new tarball version * Dynamically determine release version * trivial: synapticmst: allow missing `/proc/modules` * synapticsmst: filter invalid chip IDs * trivial: Provide some defines for common image names * Allow aborting early when using fu_archive_iterate() * Add fu_firmware_image_set_version() for future use * modem-manager: increase re-enumeration delay to 20000ms * modem-manager: add counterpart GUID for the DW5821e/eSIM * Add versions formats for the Microsoft Surface devices * usb: make loading vendor/product/serial strings non-fatal * trivial: Fix the protocol ID for VLI usbhub devices * trivial: wacom-raw: add more device IDs for Dell devices * trivial: contrib: don't require TSS for debian archs without EFI * fu-udev-device: Adjust bounds checking to be safer * fu-udev-device: Don't assume all devices have `device_file` * synaptics-rmi: correct an error cleaning up on probe * trivial: fu-udev-device: add some safety checks for fd * udev-device: fix offset of vendor id of hidraw devices * flashrom: switch to upstream source * trivial: fu-plugin: only show an error once "failed to open plugin" was being prefixed twice * trivial: debian: only use mingw-w64-tools in archs with UEFI plugin * fastboot: Fix a regression when updating modem firmware * trivial: conflict with old unifying plugin * Rename unifying plugin to logitech-hidpp (Fixes: #1329) * Add a new contrib script for installing a Dell BIOS from an EXE file * trivial: add-capsule-header: rename to make it easier to import * trivial: simple_client: make it easier to reuse code * trivial: firmware-packager: make it easier to reuse code * trivial: add-capsule-header: make it actually work * trivial: fix some gtkdoc sections * Bump the required gudev version * trivial: Fix a compile error with older versions of gudev * trivial: wacom: add vid/pid for panels in Moffett * trivial: post release version bump - Changes from version 1.3.3 * unifying: notify users to replug when using dfu control (Fixes: #1383) * trivial: 8bitdo: set a transient failure while waiting for user action * libfwupd: Add a new error type for user action needed * trivial: 8bitdo: show the same message for SN30pro and SN30pro+ * trivial: Fix up some typos from codespell * trivial: Ensure config.h is included in all source files * trivial: Fix up some NULL/FALSE confusion * trivial: Add all the _LAST enums that shouldn't be checked for ABI * trivial: Fix a typo that means that UEFI results were never cleared * Always report the update-error correctly for multiple updates * trivial: Fix fwupdmgr get-history if the firmware was not installed from the LVFS * trivial: Do not emit a warning if a child has no version number * Move the file descriptor lifecycle into FuUdevDevice * trivial: Fix some GtkDoc annotations * ebitdo: Modernize the plugin to use FuFirmware * nitrokey: Use fu_common_dump_raw() when debugging * thunderbolt: Create a unique GUID including Thunderbolt controller path * Use device safety flags to show prompts before installing updates * trivial: Use the new possible_plugin support for USB devices too * jabra: Move the Jabra-specific detach out into its own plugin * Ensure the device is open when doing the subclassed prepare() and cleanup() * vli-usbhub: Add support for updating V2 devices * Allow verifying the device image itself from fwupdtool * Use XMLb to query quirks * trivial: ci: disable pulling libxmlb from unstable * synaptics-prometheus: Don't add a config-subdevice in bootloader mode * dfu: Use the VID/PID to identify devices without download capability in runtime * trivial: debian: remove some unneeded lintian * trivial: debian: bump compat version * ebitdo: Add SN30Pro+ to recognized quirk list (Fixes: #1503) * dfu: Add several quirks for Realtek camera hardware * dfu: Always mark devices as UPDATABLE * uefi: use `genpeimg` to mark ASLR and DP/NX on EFI binary * trivial: solokey: correct a typo * trivial: fu-util: fix typo * uefi: rework ESP path detection and lifecycle * trivial: uefi: show more metadata in to_string method * trivial: fu-device: add new method to remove metadata * Add a plugin to update VIA USB hub hardware * trivial: Add fu_common_read_uint8_safe() * trivial: Fix two typos in fu_common_read_uint16_safe() * solokey: Allow parsing firmware with fwupdtool * Allow fwupdtool to dump details of common firmware formats * trivial: Do not do system coldplug when using FU_ENGINE_LOAD_FLAG_NO_ENUMERATE * trivial: fu-self-test: set polling self tests to slow * trivial: fu-tool: Allow `detach`/`attach` to prompt for device * Strip trailing whitespace from USB descriptors * trivial: Add fu_common_read_uint16_safe() * trivial: Add version to the FuFirmware->to_string() output * Add fu_firmware_set_version() * Add a systemd preset file for `fwupd-refresh.service` * trivial: dell: work around a memory leak caught by address sanitizer * ebitdo: if the device has the will disappear flag, don't wait for ack (Fixes: #994) * Add a new plugin for working with eMMC devices (Fixes: #1455) * fu-engine: Check multiple plugins if quirks match * trivial: don't try to enable LVFS from systemd * trivial: coreboot: fix a clang compiler error * fu-util: Add user friendly strings for all device flags * Add new device flags indicating update resilience * plugins: Add coreboot plugin * fu-plugin: Add fu_plugin_get_hwid_replace_value * trivial: Increase verbosity when actually updating devices * trivial: Allow plugins to use WAIT_FOR_REPLUG in prepare and cleanup * Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use * dfu: Implement FuDevice->to_string() * trivial: colorhug: fix a crash that occurs when flashing sometimes * trivial: fu-util: break out of automatic reports if one is not automatic * thunderbolt: some more clarifications when using ICL * trivial: fwupd-refresh: activate motd if using systemd v243 or later * trivial: fwupd-refresh: allow exit code 2 for success * trivial: synaptics-cxaudio: Add Google Pixel buds * trivial: arch: ci: Wait some time for tpm_server to start up * Allow a custom FuFirmwareImage->write() in superclassed objects * dfu: Remove two completely unused helpers * dfu: Make DfuFirmware derive from FuFirmware * dfu: Make DfuImage derive from FuFirmwareImage * dfu: Remove private headers that do not need to exist * Fix device flag filtering * trivial: fu-engine: Don't compare device and content checksums * fu-engine: Read all releases and convert versions when comparing * Add new flags `can-verify` and `can-verify-image` * trivial: make verify and verify-update safer * trivial: test: add checksums for "stock" 1.2.2 * trivial: fu-udev-device: use parent udev device to indicate `internal` * trivial: fix TPM2 simulator tests for arch * trivial: uefi: don't add PCRs with all 0's * trivial: Fix a recent regression causing a double-free * synaptics-cxaudio: Support the ThinkPad USB-C Dock Gen2 * trivial: fu-util: add some extra checks around automatic reports * trivial: fu-tool: typo * fu-systemd: Use correct method for stopping units. * trivial: fu-udev-device: Use ID_PCI_CLASS_FROM_DATABASE if name not set * trivial: fu-plugin: quiet down debug output for optionrom plugin * 8bitdo: use will-disappear flag for sf30/sn30 controllers (Fixes: #783) * trivial: ebitdo: don't dump out firmware header unless plugin verbose * trivial: ebitdo: don't use local errors when writing firmware * Add a new device flag for indicating device won't come back * wacom-emr: Fix a regression for EMR devices * Add a generic DFU firmware object for plugins to use * dfu: Use FwupdInstallFlags rather than a DFU-specific version * dfu: Remove functionality for modifying DfuSe files * dfu: Remove functionality you can do now with fwupdtool * dfu: Remove the merge command as it's unused and broken * trivial: Add fu_firmware_parse_file() helper for future use * trivial: Remove the fuzzing details for DfuPatch * trivial: Add klass->to_string for superclassed FuFirmwareImage objects * dfu: Remove DfuPatch as no vendor actually uses this * dfu: Don't wrap provided VID-PID functions * dfu: Use the standard FuDevice custom flags functionality * dfu: Use klass_device->write_firmware() directly * dfu: Use the generic fu_plugin_usb_device_added() function * dfu: Use daemon flags to ignore devices rather than a special flag * dfu: Set the device state directly to avoid proxying signals * dfu: Use the built-in detach() and attach() vfuncs * Read firmware back from the device as a FuFirmware * dfu: Remove a pointless function * dfu: Remove support for the Metadata Store Proposal * dfu: Remove XTEA support * dfu: Remove the SREC and IHEX parsing out of the DFU plugin * ebitdo: Use klass_device->write_firmware like other plugins * trivial: Remove G_BEGIN_DECLS from all private headers * Remove FU_PLUGIN_RULE_REQUIRES_QUIRK as all the plugins now use it * Set all FuUdevDevice plugins to use FU_QUIRKS_PLUGIN * thunderbolt: recognize new 'generation' sysfs attribute * Rename and modernize the udev plugin * synaptics-rmi: Also add the product ID as a GUID without the minor version * synaptics-rmi: Correctly set the payload length rather than hardcoding it * synaptics-rmi: Write the core config correctly * synaptics-rmi: Decode BL7 status failures as actual errors * synaptics-rmi: Add some trivial debugging to help debug a write problem * trivial: uefi: Make efivarvs errors clearer (Fixes: 1330) * trivial: uefi: don't prefix efivar errors * trivial: Remove some now-unused vfuncs * altos: Modernize the plugin to simplify it * Create the custom plugin GType in common code * Reduce more boilerplate in plugins * synaptics-rmi: Check the correct register when querying bootloader mode * trivial: fu-engine: fix never reporting remotes * trivial: fu-util: don't show warnings for no reports to upload * trivial: debian: remove more conffiles from transitions (Closes: #932617) * trivial: debian/control*: Update for fwupdate transition * trivial: Fix a tiny memory leak when starting the daemon * modem-manager: Fix a tiny memory leak when starting the daemon * synaptics-rmi: Copy the behavior of rmi4utils for BL7 detach * synaptics-rmi: Simplify fu_synaptics_rmi_device_read() * synaptics-rmi: Set the version after ->setup has run * synaptics-rmi: Use the correct mask when getting the bootloader mode on BL7 * syanptics-rmi: The build_id is 3 bytes long, not 2 * synaptics-rmi: Read the config partition the same as rmi4utils * Provide a default implementation of common FuDevice actions * thunderbolt-power: avoid checking for bolt support * synaptics-rmi: Add some debugging for BL7 devices * Fix usage of incorrect type for return value * synaptics-rmi: Do as little as possible in device setup * synaptics-rmi: Speed up reading the PDT from 900ms to 30ms * fu-util: add support for a reinstall command * trivial: fu-util/fu-tool: update re-install help text to reinstall * trivial: fu-util: remove double printed message about succesful firmware update * trivial: fu-util: show no updatable devices error for update command * synaptics-rmi: Ignore the ATTN reports from the hardware when reading DATA * synaptics-rmi: Move the fuzzing instructions to the toplevel README * Fuzz the SREC and IHEX file parsers once more * Use parallel fuzzing for the SMBIOS checks too * synaptics-rmi: Fix the packing of the partition table * Add a plugin to update Synaptics RMI4 devices * trivial: Add a parallel fuzzing script * trivial: fu-util: output newline after prompt. * trivial: fix %u output in report upload * Add a --no-domain logging option * trivial: Fix compiler warning for impossible-to-hit condition * Add support for automatically uploading reports * trivial: motd: disable updating motd for now * trivial: fwupd-refresh: fix a clash with fwupd.service (Closes: #941360) * trivial: Fix Fedora CI * trivial: fu-udev-device: fix some assertions * Search up the tree for a vendor name rather than (ab)using the HID_NAME * Add some success messages when CLI tasks have completed * trivial: Put the boolean prompt on the same line as the text * Never show LicenseRef-proprietary to the end user * trivial: snap: correct install hook root directory * Export the instructions for detaching the device * uefi: detect unmounted ESP partitions (Fixes: #1405) * uefi: stop recording efibootmgr output after flash * trivial: post release version bump - Changes from version 1.3.2: * Add support for '' to disambiguate some firmware * thelio-io: Add a plugin to detach the Thelio IO board * trivial: uefi, dell: skip self tests with TPM if non-root (Fixes: #1396) * trivial: dell: quiet the TSS output * trivial: uefi: allow forcing to TPM2 via environment variable * Do not ask the user to upload a report if ReportURI is not set * Do not enumerate physical devices when running the internal self tests * trivial: libfwupd: skip tests if machine-id is empty too * Add a new plugin to update Conexant audio devices * Export the salted machine ID as a daemon property * Fall back to /var/lib/dbus/machine-id when required * trivial: add stalebot (Fixes: #1393) * trivial: dell-dock: correct another write_size error * Align the key values to the text *width* not the number of bytes * trivial: Move dbus directory location for snap too * trivial: Fix some NULL/FALSE confusion * synaptics-prometheus: Fix tiny memory leak when using FuSynapromConfig * trivial: Fix tiny memory leak when using FuSrecFirmware * snap: switch to core18 * trivial: Return the correct property when getting the host product * trivial: fu-util-common: fix description wrapping (Fixes: #1378) * fu-util/fu-tool: Map out changelogs from remotes * fu-util/fu-tool: Better display historical information * fu-history: Update device_modified in sql database during updates * unifying: Use the instance ID to check for supported devices * unifying: Ensure HID++ v2.0 peripheral devices get scanned by the plugin * trivial: Add some more defines to the srec parser * trivial: fix wget command in fu-tool.c * Allow parsing a raw SREC file * trivial: wacom: Add support for second vendor ID * uefi, dell-esrt: Show firmware version when capsule updates unavailable * Add some more debugging to the SREC and IHEX parsers * Print the instance IDs if the GUIDs are unconverted * Add fu_common_bytes_compare_raw() for future usage * Call the set_quirk_kv() vfunc for the superclassed object * uefi: make the TPM optional for runtime again (Fixes: #1362) * trivial: uefi: Make the TCTI output less verbose * Support in AppStream metadata * Include all GUIDs when uploading a report * Do not crash when starting tpm2-abrmd * trivial: Update DBus conf path for example Fedora package * Move D-Bus conf file to datadir/dbus-1/system.d * trivial: Add fu_io_channel_write_byte_array() for future use * trivial: post release version bump - Package new sub-packages typelib-1_0-FwupdPlugin-1_0 and libfwupdplugin1.- Fix file list- Update to version 1.3.1: (jsc#SLE-10751) * Allow disabling all plugins * trivial: Specify the tpm2-tss-devel version in the example spec file * Move to CI Fedora 30 * modem-manager: Fix two build warnings on Fedora 30 * synapticsmst: Add another name quirk for the ThinkPad USB-C Dock * Re-introduce GUID support to fwupdmgr and fwupdtool * uefi-recovery: Add a plugin to add a fake ESRT entry for device recovery * Add a DMI quirk for the Minnowboard Turbot * trivial: Make it easy to disable or enable libflashrom for distros * trivial: Don't use Recommends for RHEL 7 * unifying: fix timeout metadata * ci: arch: minor improvements * unifying: fix timeout * Allow disabling SSL strict mode for broken corporate proxies * trivial: Allow ignoring the daemon version check by using --force * Try to only show DMI product name once * trivial: fu-util-common: Show unknown devices as interesting devices * dell: Use TSS to query and build TPM vendor strings for GUIDs * trivial: dell: show reasons for lack of updates in `UpdateError` * fu-util-common: strip all trailing whitespace in XML description * trivial: fu-common: match all whitespace not just ' ' in `fu_common_strstrip` * fu-util: show release output in get-details again * unifying: use fu_firmware_strparse_uint16 to read be 16bit values * unifying: fix incomplete hex file parsing * fu-util/fu-tool: Print devices, remotes, releases using a tree * Add aliases for `get-upgrades` and `upgrade` * trivial: UEFI skip self tests if library fails to initialize * libfwupd: Add a new private function `fwupd_remote_set_remotes_dir` * trivial: add libtss2-dev into debian/control (Closes: #1324) * trivial: Fix up the GtkDoc Since lines for API only available in 1.3.x * trivial: Post branch version bump * thunderbolt: Add support for kernel safety checks (Fixes: #1312) * Include the kernel release as a runtime version * trivial: fu-util: Drop GUID support from get-devices * synapticsmst: Partially rewrite the plugin (Fixes #1105) * Remove replug flag after the device comes back from reboot * trivial: Fix running the tests on devices with the TPM in v1.2 mode * trivial: fu-util-common: more cleanup related to topology * trivial: fu-util: cleanup fwupdmgr get-details output * trivial: Don't use topology printing in --verbose mode * Make get-devices and get-topology aliases for one another * trivial: Adjust daemon device sorting * Make get-topology more useful by showing all information * trivial: Fix fu_common_string_append_kv() to align properly with idx > 0 * trivial: dell-dock: correct an error preventing write_size from being set * trivial: Do not warn about deprecated declarations * trivial: Update BRs for the example Fedora package * uefi: add test for TPM 2.0 PCR read function * uefi: use tpm2-tss library to read PCR values * fu-common: Use environment variables for systemd managed directories * Use more systemd directives for directories * trivial: fu-util: fix debug output for devices * Allow turning off the timestamp prefix for debugging * Add a ->udev_device_changed plugin vfunc * Add fu_device_rescan() and a FuDevice->rescan() vfunc * Remove the duplicate files in meson.build * Hash the source files when generating the daemon hash * Split up source files in the build script * uefi: add support for tpm2-tools 4.X * trivial: plugins: clarify stance on afuefi.efi * trivial: plugins/: Update README * trivial: disable gtkdoc by default * trivial: update references of hughsie/fwupd to fwupd/fwupd * Publish docs to fwupd.github.io using CircelCI * Add support to integrate into the motd (Fixes: #1270) * Simplify get-devices output to not show un-useful fields * fu-engine/fu-config: Reload metadata store when configuration changes * trivial: If no devices support updates, show messaging (Closes: #1295) * trivial: uefi: set vendor name for system firwmare from DMI data * unifying: update Solaar url * thunderbolt: Fix logic to work properly with ICL thunderbolt controller * Add fu_udev_device_get_device_file() helper * trivial: Fix regression when using fu_device_incorporate() * trivial: Fix a potential crash when using FuPlugin in the self tests * synapticsmst: Make FuSynapticsmstConnection an actual GObject * synapticsmst: Use the same style as other plugins * trivial: Add some helper functions for GByteArray * Do not use FuDevice metadata for the physical and logical IDs * Use fu_common_string_append_kv() in subclassed device * synapticsmst: Use G_DECLARE_FINAL_TYPE to simplify the object * synapticsmst: Add a SynapticsMSTBoardID for another Lenovo dock * trivial: remove unnecessary CUSTOMERID_DELL define * synapticsmst: Add a SynapticsMSTBoardID for a Lenovo dock * synapticsmst: Display the board ID in non-hex form in the error message * synapticsmst: Use a more suitable icon for the device * trivial: Remove unused variable * Never use memcpy() in a possibly unsafe way * Add a ->to_string() vfunc to FuFirmware * Use FuFirmware as a container for firmware images * Allow filtering devices when using the command line tools * Be more accepting when trying to recover a failed database migration * trivial: Add translation for X-ThunderboltController * trivial: fixup standalone installer * modem-manager: add counterpart GUID for the DW5821e * solokey: Release the interface and rebind the kernel driver on close * fu-tool: Port ability to update a single device from fwupdmgr * uefi: Actually write the new device path if different than before * Allow setting custom flags when using fwupdate * trivial: Do not show a critical warning if no firmware is specified * trivial: Fix overzealous search-replace action in user string * Verify we don't break the ABI * Fix a crash when stopping the fwupd service * Relax the certificate time checks in the self tests for the legacy certificate * trivial: add cache directory into systemd unit rw paths * Never show AppStream markup on the console * Do not segfault when trying to quit the downgrade selection * trivial: Update icons for Thunderbolt and MST devices * Add support for the SoloKey Secure * trivial: Allow a device to *clear* a firmware version * trivial: debian: For signed package fill out Built-Using (Closes: #932757) * Allow specifying GUID to check any version exists * trivial: post release version bump * Release fwupd 1.2.10 * Disable the flashrom plugin by default * trivial: thunderbolt: catch failure setting up device * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using --plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * trivial: uefi: use UEFI-dummy for device ID instead of just uefi * trivial: fix error handling for non UEFI case (#1220) * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * trivial: ci: debian: Only turn on flashrom when running CI * trivial: Fix typos in error messages * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * trivial: Fix the version script to pick up boxed types * trivial: Correctly order the map entries according to vercmp rules * trivial: Fix pylint issue in the version script * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * Revert "Allow SuperIO updates to be done live" * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * trivial: uefi: use the path for efibootmgr that was detected * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * trivial: Add some parameter guards to FuDevice * trivial: snap: make polkit directories if they don't exist (Fixes: #1205) * trivial: fu-main: clarify missing PK file error * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * trivial: circleci: try to fix automatic snap deployment * Allow SuperIO updates to be done live * fu-util-common: Support empty proxy strings (Fixes: #1199) * trivial: uefi: clarify error message * trivial: Fix non-systemd build * trivial: Sync example spec file with downstream * trivial: post release version bump - Drop fwupd-bsc1143905-hash-the-source-files.patch: Applied upstream. - Add pkgconfig(tss2-esys) BuildRequires: New dependency. - Add gtk-doc BuildRequires and pass gtkdoc=true to meson, build api docs even when using source service.- Add fwupd-bsc1143905-hash-the-source-files.patch to hash the source files instead of libfwupdprivate.a to avoid the checksum change due to the random naming LTO profile sections (bsc#1143905)- Update to version 1.2.10: * Disable the flashrom plugin by default * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using - -plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * fu-util-common: Support empty proxy strings (Fixes: #1199) - Add python3-setuptools to BuildRequires for generate-version-script.py- Update to version 1.2.9: * Release fwupd 1.2.9 * trivial: Add two new translatable strings for new category types * Check if the system is offline during install, rather than at startup * Prompt the user to shutdown if requried when installing by ID * Use the correct file extension for the offline updates cache * trivial: Allow using --force to use the wrong daemon version * trivial: Display the correct expected command * standalone-installer: Be smarter about existing installed fwupd * Add a plugin to update Synaptics Prometheus fingerprint readers * trivial: standalone-installer: rename uninstall argument to cleanup * fu-util: Check the daemon version is at least the client version * fu-util: Check that daemon is started by expected unit * fu-util-common: when stopping a daemon, check for snap too * Allow using --force to trigger a duplicate offline update * trivial: Allow using FuUsbDevice without a GUsbDevice * trivial: Copy the icons if unset for the device child * trivial: Copy the physical ID if unset for the device child * trivial: Ensure the parent ID is up to date if the device ID changes * trivial: Fix typo when setting the parent ID * trivial: Disable the flatpak CI build * Allow handling FORCE for devices that subclass FuDevice * uefi: Fix a libasan failure when reading a UEFI variable * trivial: Fix a memory leak found using libasan * trivial: Fix an libasan failure in the dell plugin * trivial: Fix some dead code spotted by coverity * trivial: Fix a typo spotted by coverity * trivial: Fix a missing config.h include in a new source file * Dynamically read path to use for /system-update * Display the remote warning on the console in an easy-to-read way * ata: Set version format to plain for devices obtained from udev * trivial: Only apply SmbiosManufacturer to release version for internal * trivial: Fix two bugs in the hardware self tests script * Never guess the version format from the version string * Only force a semver when the device opts-in * Export the version-format to clients * Add missing gtk-doc documentation * dfu: Add some trivial, but useful, debugging for AVR DFU devices * dfu: Correctly identify DFU firmware that starts at offset zero * dfu: Don't keep showing trivial debug output * dfu: Reset the forced version during attach and detach * ata/nvme: For devices running Dell firmware, set `VersionFormat` (Fixes: #1169) * fu-engine: Check if VersionFormat is ambiguous when adding devices * trivial: Fix fwupdate --apply * Only use class-based instance IDs for quirk matching * trivial: dell-dock: set minimum board to 6 * trivial: post release version bump- Update to version 1.2.8: * Don't upload reports when the user has configured their system in a broken way * Allow setting the daemon verbose domains at runtime * Allow fwupdmgr to modify the daemon config * Do not compare version formats when the release format is unknown * Do not fall back integers to a plain version format * Use the device version format when converting the release version * Set the VersionFormat using the metadata or the UEFI quirk - Changes from version 1.2.7: * l10n: Create Lithuanian translation file * l10n: Update LINGUAS * Updated: Add support for 8BitDo M30. * modem-manager: increase the timeout to wait for modem after uninhibited * modem-manager: implement qmi pdc active config selection as attach() * fu-engine: When removing activation flag match the correct version * Require --force to install a release with a different version format * Match the old or new version number when setting NEEDS_REBOOT * Make an error message clearer when there are no updates available * Add support for the not-child extension from Logitech * thunderbolt: Set require-ac for Thunderbolt devices (Fixes: gh#hughsie/fwupd#1142) * Fix some typos spotted using codespell * Add a component categories to express the firmware type * fu-tool: Port get-history command to fwupdtool * Recreate the history database if migration failed * Move the core built-in 'fwupd' remote over to the dell-esrt plugin * snap: Add a custom systemd unit to call activation on shutdown (Fixes: gh#hughsie/fwupd#1125) * ata: Flush cache before standby and activate * synapticsmst: blacklist plugin when using amdgpu (Fixes: gh#hughsie/fwupd#1121) * uefi: add a new option to specify the os name * Return the newest device when using fu_history_get_device_by_id() * uefi: More carefully check the output from tpm2_pcrlist * uefi: Don't overwrite CustomFlags if set from a quirk * Shut down the daemon if the on-disk binary is replaced * ata: Correct activation functionality * Fix version comparisons after reboot for some formats * fu-tool: save history from stuff installed with `fwupdtool` - Changes from version 1.2.6: * ata: send ATA standby immediate when activating firmware * offline: Be more graceful when dealing with Plymouth failures * Save the new version in the history database for offline updates * Show the DeviceID when showing the updates list * Allow forcing an offline-only update on a live system using --force * Do not schedule an update on battery power if it requires AC power * superio: Add InstallDuration default value * superio: Add support for writing new e-flash contents * superio: Fix reading the attestation checksum * superio: Add support for reading the device checksum * superio: Use the chipset ID in the device name * superio: Move the device flush before getting the register map * superio: Move all the IT89xx code to a subclassed device object * superio: Move all the IT85xx code to a subclassed device object * superio: Split and export fu_superio_device_ec_writeX() * superio: Remove the port from fu_superio_device_ec_read() * superio: Move the register read/write into the FuSuperioDevice object * superio: Check the IOBAD0 is usable during setup * superio: Use fu_device_set_firmware_size() * superio: Move some constants out to the common header * superio: Use GObject properties in FuSuperioDevice * superio: Convert FuSuperioDevice to be derivable * Update Plymouth when updating pending firmware * Ask to reboot after scheduling an offline firmware update * Do not fail when scheduling more than one update to be run offline * Allow running offline updates when in system-update.target * Fix the location of fwupdoffline in the service file * Add optional vfuncs to allow detaching and attaching verify() * superio: Add list of SPI commands for future usage * Add a verify-update command to fwupdtool * uefi: Actually upload the UPDATE_INFO entry for the UX capsule * superio: Get the chip size from the EC rather than hardcoding * uefi: Check the error code of QueryCapsuleCapabilities() correctly * Update the UEFI UX Capsule Header checksum when needed. * uefi: Copy the shimx64.efi binary for known broken firmware * Correctly get the check the new version for devices that replug * Add a simple script to add a capsule header * Ensure the PKCS-7 client certificate exists at startup * fix makecab directive options * fwpup.service: use display-manager.service instead of gdm.service * Allow signing the fwupd report with the client certificate * Add a D-Bus method to generate a signature using the self-signed client certificate * Allow signing and verifying data using a PKCS-7 self-signed client certificate * Fix a critical warning when loading a PKCS-7 certificate with no DN * Include all device checksums in the LVFS report * modem-manager: Fix a trivial build warning * superio: Fix a trivial build warning * Move out the offline update functionality to a new binary * Do not reboot when failing to start fwupd during offline updates * Do not write the schema version to the db when loading * Do not recreate XbSilo caches when running on a readonly filesystem * Add the fwupdagent binary for use in shell scripts * Allow restricting firmware updates for enterprise use * standalone-installer: new --allow-older and --allow-reinstall options * Show the upgrade and downgrade flags when getting releases for a device * Rename FwupdRelease:trust-flags to FwupdRelease:flags * fu-tool: Save device state to @LOCALSTATEDIR@/lib/fwupd/state.json on actions * modem-manager: implement support for qmi-pdc * Add a plugin to support ModemManager hardware * fu-tool: Don't let failing to find dbus prevent engine from starting * ata: Support delayed activation * dell-dock: Use activation when calling fwupdtool activate * Add a support for delayed activation * uefi: Fix the self tests when running on Fedora SilverBlue * Do not fail to start the daemon if tpm2_pcrlist hangs * po/make-images.sh: quote LOCALEDIR and PYTHON3 * meson: print stderr of python3 command instead of stdout * Revert "contrib/debian: Switch to debian unstable" * Add elogind support - Changes from version 1.2.5: * uefi: fix segfault in fwup_set_update_statuses * Show in Flathub correctly * debian: explicitly depend on shared-mime-info * superio: Implement detach() and attach() * superio: Correct the names of some constants and improve debugging support * dell-dock: Filter the last supported payloads of certain board 4 SKUs * circleci: Manage the lifecycle of the snap * Add support to run snap build in CircleCI * wacom-usb: Use the correct buffer format for the touch module * wacom-usb: Set the install duration for each device type * wacom-usb: Return with an error if there were too many retries * wacom-usb: Make updating less verbose * Convert all child instance IDs when converting the parent * uefi: Allow devices to create more complete fake UEFI devices * unifying: Fix regression when recovering from failed flash * Ensure libxmlb dir exists for LGTM.com * Add C build configuration for LGTM.com * Use G_BEGIN_DECLS correctly for internal headers * standalone-installer: Fix issue found by LGTM * Use '#pragma once' to avoid a lot of boilerplate * Force LGTM to see Python 3 * fwupd: Hide firmware-packager behind meson option` * fu-common-cab: Correct handling of CAB files w/ nested directories and older libgcab * Fix a regression in using the InstanceIDs for quirk matching * thunderbolt: Convert the instance IDs as we never open the device * udev: Manally call fu_device_setup() to convert the instance IDs * fu-tool: Correct a crash caused by calling fwupdtool update * fu-tool: Don't fail if dbus is unavailable * contrib/debian: Switch to debian unstable * wacom-usb: Record the block number when failing * wacom-usb: The touch address is big endian * wacom-usb: Accept a non-binary IHEX file for the touch update * wacom-usb: Only poll when the device status is 'busy' * wacom-usb: Only reboot the device when all composite devices have been updated * wacom-usb: Fix flashing failure with latest Intuos Pro tablet * dfu: Fill holes when reading SREC files * Add fwupd_guid_from_string() to drop dep on uuid * wacom-raw: Check the InstanceID rather than GUID * Defer the InstanceID->GUID hashing until after setup * ata: Check for USB enclosures as well * Do not use efivar just to print a mixed endian GUID * Add fu_device_add_instance_id() and prefer explicit conversion * Report the DeviceInstanceIDs to `fwupdmgr get-updates` * Export some of the GUID functionality * Allow a plugin to set _ANOTHER_WRITE_REQUIRED to run more than one plugin * nvme: Add an extra check for Dell plugins to avoid false positives * ata: Add support for detecting Dell GUIDs * Fix the self tests when using glib2 >=2.59.0 * Add support to call composite prepare and cleanup using fwupdtool * uefi: Disable -Wno-address-of-packed-member * uefi: Don't unconditionally enable Werror for the EFI binary * Disable -Wno-address-of-packed-member - Changes from version 1.2.4: * Remove the autogenerated headers in the gettext files * ata: Default to the non-activation 0xE subcommand * fastboot: Use a much longer timeout as the removal delay * fu-progressbar: be more quiet when running non-interactive * fu-tool: Show UpdateMessage if applicable for install command * dfu: Simplify the SREC parser to avoid a crash with an invalid file * wacom-raw: Use the correct error codes when the panel is not supported * wacom-usb: Add some more information to the README * fu-keyring-utils: Don't fail missing PKI directory when compiled with GPG/PKCS7 * dell: Check that the flash interface command is available * wacom-usb: Fix the plugin name to allow devices to be updated * fastboot: flash the partition after downloading the file * uefi: Add a quirk to use the legacy bootmgr description * ata: Mark all devices as needing a reboot * ata: Add a new plugin to upgrade firmware on ATA/ATAPI hardware * udev-device: Add a utility function for debugging * udev-device: Set the firmware revision automatically * udev-device: Set the serial number automatically * udev-device: Fall back to non-database model and vendor values * udev-device: Fix critical warning if the device has no parent * dell-dock: Add support for a passive flow * Add support for an `UpdateMessage` and display it in tools * fu-tool: Port the `get-updates` command over * When using `directory` remote type automatically generate metadata * libfwupd: Add support for new remote type "directory" * Ensure cabinet archives always have a container checksum * Add support for a per-release source and details URL * When generating a CAB Silo use the prefix "components" * uefi: Add a trivial debugging statement to debug a UX capsule failure * uefi: Use fwup_new0() to allocate the updates table array * nitrokey: Correct Nitrokey Storage invalid firmware version read * dell-dock: Add support for flashing Thunderbolt over I2C * wacom-raw: Add a plugin to update Wacom embedded EMR and AES panels * fu-util/fu-tool: sync up reboot and shutdown behavior * dfu: Ignore the SUB ASCII value * dfu: Fix the parser to support extended segment addresses * dfu: Support ihex files with leading comments don't show an error * uefi: Correct a boot order creation bug (Fixes: gh#hughsie/fwupd#956) * uefi: Remove all variable length arrays * uefi: Fix a logic bug in fwup_search_file() * uefi: Use _cleanup_free in one more place * uefi: Do not pass required attrs to fwup_delete_variable() * uefi: Delete the old Linux-Firmware-Updater boot entry * uefi: Use the GNU-EFI BOOL type * Check if plugin changed after the device attaches or detaches * uefi: Refactor and simplify the EFI loader * Show a console warning if loading an out-of-tree plugin * UEFI: Do the UX checksum calculation in fwupd * wacom-usb: Add two more Intuos tablets * nvme: Add the needs-shutdown quirk to Phison NVMe drives * Add _NEEDS_SHUTDOWN flag for devices * Use GCC __cleanup__ features in the EFI loader * nvme: Add flag to support manually aligning the firmware to the FWUG value * nvme: Support FGUID to get the SKU GUID * nvme: Support FWUG to get the write block size * nvme: Add trivial comment to clarify address bitshifting * uefi: Do not check the BGRT status before uploading a UX capsule * dfu: Fix flashing various Jabra devices * upower: Add support for checking battery percentage * nvme: Check the return code of the admin passthru ioctl * fu-tool: Add support for an 'update' command to fwupdtool * dell-dock: Set minimum board to board 4 * dell-dock: Workaround a manufacturing bug for board level 4 * dell-dock: Wait longer for re-enumeration on TBT SKU * superio: Support IT89xx devices * fu-main: remove incompatible locale error message * Add a new plugin checklist (Fixes: gh#hughsie/fwupd#899) - Dropped obsolete patch: fwupd-bsc1130056-change-esp-os-name.patch (upstream PR: gh#hughsie/fwupd#1119 - Fixed fwupd-bsc1130056-change-shim-path.patch so that it works with the new files - Cleaned up changelog- Stop shipping polkit rules, as we have the distro specific setup in polkit-default-privs (boo#1125428).- Add fwupd-bsc1130056-change-esp-os-name.patch to change the OS directory in ESP (bsc#1130056) - Add fwupd-bsc1130056-change-shim-path.patch to set the default shim binary for openSUSE/SLE (bsc#1130056) - Link fwupd*.efi.signed to fwupd*.efi as requested by fwupd (bsc#1129466)- fwupd.spec: fix shell syntax error in %postun section (boo#1120363).- Update to version 1.2.3: * Correctly migrate the history database - Changes from version 1.2.2: * Log an error if started with an incompatible locale * Fix building with -Wl,-z,defs * ebitdo: Fix the reported version number if the daemon locale is not C.UTF-8 * Add Dell TB18DC to the known devices list * Allow replacing the last byte in the image when using 'dfu-tool replace-data' * Check the device checksum as well as the content checksum during verify * Submit the device firmware checksum and update protocol in the submitted report * Include the device checksum and update protocol in the historydb * uefi: Add the PCR0 value as the device checksum for system firmware * Add new API to get the release protocol from the metadata * Allow plugins to define support for a 'well-known' protocol * uefi: When adding headers set the header size to 4k * uefi: Append the header on capsules without headers from Linux * flashrom: Ensure the quirks database is set on the new object * uefi: Do not add devices with invalid GUIDs * Do not allow a GUID of zero * Add shared functionality for reading and writing with O_NONBLOCK * Only run attach and detach if the device is in the wrong mode * Sanitize the version if the version format has been specified * wacom-usb: Remove the DTH generation hardware as it will not work with fwupd * thunderbolt: Remove a superfluous boundary condition when verifying update * Add a plugin to update hardware that supports fastboot * Fix a regression when doing GetReleases on unsupported hardware * dfu: Require a specific USB class and subclass for DFU mode * Correctly parse format the version numbers correctly using old metadata * amt: Fix a crash if AMT returns an empty response * Check plugins set error on failure * contrib: Add a simple python3 client * installed-tests: Adjust to actually use a remote for installed tests * Add more standard USB identifier GUIDs * wacomhid: Rename to wacom-usb * Provide a way for plugins to decompress a custom archive to ram - Changes from version 1.2.1: * Remove DaemonVersionFormat=quad * Shut down the daemon after 2h of inactivity * Create a silo index to speed up GUID queries * Fix flashing the 8bitdo SF30 * Speed up fwupd startup by loading less thunderbolt firmware * Query the XbSilo when calling fu_plugin_check_supported() * Guess the version format when it is not provided * Fix a use-after-free when using valgrind and --immediate-exit * Add per-release install duration values * Fix showing the custom remote agreements * Be more explicit setting the update state * Include the os-release information in the release metadata - Changes from version 1.2.0: * ebitdo: remove SF30/SN30 pro device ids * dell-dock: Drop delayed MST callback routine * synapticsmst: Adjust EVB board handling * synapticsmst: Remove the content checking of firmware * synapticsmst: Access Board ID through memory instead In firmware images HDCP 2.2 will be enabled by default,so access to flash region will fail.` * contrib: Adjust flatpak build for moving to flathub * dell-dock: Prefer to flash VMM5331 via I2C instead of DP aux * Use HTTPS_PROXY if set * firmware-packager: Make it clearer to use * Sort the firmware sack by component priority * flatpak: Update gnu-efi to latest version * amt: Set the full device version including the BuildNum * fwupdmgr/fwupdtool: Move monitor command to fwupdtool * fwupdmgr/fwupdtool: Move firmware builder from fwupdmgr to fwupdtool * Add version format quirks for several Lenovo machines * uefi: Set the quirks on created devices * dell_dock: Use correct offset for finding version of MST * dell-dock: Add missing unlock call for MST via dell_dock plugin * Support the Intel ME version format * Port from libappstream-glib to libxmlb * Bump requirement to meson 0.46.0 * fu-main: Catch SIGTERM while update is in progress * fu-tool: Stop any running daemon over dbus before loading engine * meson: Bump dependency to 0.44 and adjust sysconfdir handling * dell-dock: If marketing name is invalid don't fail initialization * Readme Updated: Added KDE Discover as one more graphical front-end available for fwupd. * dell-dock: Correct a situation that error wasn't propagating * Don't segfault if a plugin returns FALSE from UpdateFunc with no error set * dell-dock: Use different debug strings for each device type * dell-dock: Don't use the VLA feature in the new dock * Add a plugin for an upcoming Dell USB-C dock * contrib: Add information on how to use debugging scripts * Allow setting the version format from a quirk entry * Don't use AppStream-glib for string helpers * Don't use AppStream-glib for version helpers * Don't use AppStream-glib for the GUID helpers * fu-device: Ensure that parent ID is created before creating quirked children * Update all sub-devices for a composite update * Stop showing the current release during updates in fwupdmgr * uefi: Move the TPM unlocking functionality from the Dell to UEFI plugin * Run the Dell plugin initialization after the UEFI plugin * thunderbolt-power: Fix possible linker problem * Allow firmware files to depend on versions from other devices * fu-debug: Redirect all debugging output to stderr instead of stdout * synapticsmst: Adjust panamera ESM update routine for some reported issues * fu-engine: Optionally wait for replug before updating a device * fu-device-list: Use delayed device removal when removing the tree * thunderbolt: Use replugging from the daemon * Add support for devices to show an estimated flash time * Marked some CL options for translation * ci: Run clang static analysis for Ubuntu build rather than just clang compiler * nvme: Initialize the buffer before reading the contents * contrib: Add a standalone installer creation script * rts54hid: Add support for Realtek USB devices using vendor HID commands * fu-engine: Don't show devices pending a reboot in GetUpgrades * Add FuMutex helper to make various parts of the daemon thread-safe * rts54hub: Add support for Realtek USB devices using vendor HUB commands * uefi: Check the amount of free space on the ESP * fu-tool: Import debugging options from fu-debug like fu-main * superio: Set the physical and logical IDs - Add pkgconfig(xmlb) BuildRequires: New dependency.- Add pesign-obs-integration to BuildRequires and add fwupd*.efi to BRP_PESIGN_FILES to get it signed - Add LC_IMAGES and use efivar only if %{with efi_fw_update} + Also update the version requirement of efivar - Disable Redfish and NVME plugins if %{without efi_fw_update} since those two plugins require efivar - Remove fwup from BuildRequires since fwupdate is already merged into fwupd.- Use gnu-efi only if %{with efi_fw_update}, always use pkgconfig(efivar) - Fix file list- Amend %post and %postun to install/uninstall fwupd*.efi to the EFI system partition + Also add shim to Requires for fwupdx64.efi - Mark fwupdate as obsolete + fwupdate has been merged into fwupd since fwupd 1.1.0.- fwupd is require for thunderbolt firmware update in SLE15-SP1(fate#322681)- Update to version 1.1.2: + New Features: - Add a new device flag "ignore-validation" that will override checks - Add a new plugin to enumerate EC firmware - Add a new plugin to update NVMe hardware - Add a plugin for updating using the flashrom command line tool - Allow the device list to take care of waiting for the device replug - Allow updating just one specific device from the command line - Allow upgrades using a self-signed fwupd.efi binary - Download firmware if the user specifies a URI - Include serial number in daemon device output when trusted - Notify all plugins of device removals through a new vfunc - Use boltd force power API if available + Bugfixes: - Add an install hook for classic snap - Allow forcing installation even if no AC power is applied - Allow using --force to ignore version_lowest - Always use the same HardwareIDs as Windows - Check the device state before assuming a fake DFU runtime - Copy over parent GUIDs from other plugin donors - Detect location of python3 interpreter - Do not add udev devices after a small delay - Don't fail to run if compiled without GPG/PKCS7 - Fix a segfault in fwupdtool caused by cleanup of USB plugins - Implement the systemd recommendations for offline updates - Improve performance when reading keys from the quirk database - Remove children of devices when the parent is removed - Rewrite synapticsmst to use modern error handling - Rewrite the unifying plugin to use the new daemon-provided functionality - Show a time estimate on the progressbar after an update has started- Use noun phrase for summary. Trim request for comments from description.- Update to version 1.1.1: + New Features: - Add support for the Synaptics Panamera hardware - Add validation for Alpine and Titan Ridge - Improve the Redfish plugin to actually work with real hardware + Bugfixes: - Allow different plugins to add the same device - Allow flashing unifying devices in recovery mode - Allow running synapticsmst on non-Dell hardware - Check the ESP for sanity at at startup - Do not hold hidraw devices open forever - Don't override _FORTIFY_SOURCE when building the EFI binary - Don't show passwords in fwupdmgr - Fix a potential segfault in smbios data parsing - Fix encoding the GUID into the capsule EFI variable - Fix various bugs when reading the thunderbolt version number - Reboot synapticsmst devices at the end of flash cycle - Show status messages when the daemon is initializing - Show the correct title when updating devices - Show the reasons that plugins are not run on the CLI - Use localedir in po/make-images- Run %udev_rules_update in post as package install udev rules- Update to version 1.1.0: (FATE#326702) + New Features: - Add a initial Redfish support - Add a tool to mimic the original fwupdate CLI interface - Allow devices to assign a plugin from the quirk subsystem - Change the quirk file structure to be more efficient - Merge fwupdate functionality into fwupd - Run a plugin vfunc before and after all the composite devices are updated - Support more Wacom tablets + Bugfixes: - Add release information for locked devices - Allow building with older meson - Detect the EFI system partition location at runtime - Do not use 8bitdo bootloader commands after a successful flash - Enable accesing downloaded files in flatpak and snap - Fix a potential buffer overflow when applying a DFU patch - Fix downgrading older releases to devices - Fix flashing devices that require a manual replug - Fix several small memory leaks in various places - Fix the retrieval of Redfish version - Fix unifying failure to detach when using a slow host controller - Set the Wacom device status when erasing and writing firmware - Show errors in the CLI if unable to access directory - Use the parent device name for Wacom sub-modules - Removed enable_pkcs7_when_testing_only.patch- Update to version 1.0.8: + New Features (including version 1.0.7): - Add an plugin to update some future Wacom tablets - Add 'fwupdmgr get-topology' to show logical device tree - Add support for creating a flatpak - Add support for creating a snap - Add support for Motorola S-record files - Add the Linux Foundation public GPG keys for firmware and metadata - Show a translated warning when the server is limiting downloads - Add enable-remote and disable-remote commands to fwupdmgr - Add fu_plugin_add_compile_version() for libraries to use - Allow requiring specific versions of libraries for firmware updates - If no remotes are enabled try to enable the LVFS - Show a warning with interactive prompt when enabling a remote + Bugfixes (including version 1.0.7): - Add a firmware diagnostic tool called fwupdtool - Adjust all licensing to LGPL 2.1+ - Allow installing more than one firmware using 'fwupdmgr install' - Allow specifying hwids with OR relationships - Do not call fu_plugin_init() on blacklisted plugins - Do not require libcolorhug to build - Fix a crash in libfwupd where no device ID is set - Fix a potential DoS in libdfu by limiting holes to 1MiB - Fix a segfault that sometimes occurs during cleanup of USB plugins - Fix Hardware-ID{0,1,2,12} compatibility with Microsoft - Hide devices that aren't updatable by default in fwupdmgr - Search all UEFI GUIDs when matching hardware - Stop matching Nintendo Switch Pro in the 8bitdo plugin - Check that EFI system partition is mounted before update - Disable synapticsmst remote control on failure - Don't recoldplug thunderbolt to fix a flashing failure - Fix SQL error when running 'fwupdmgr clear-offline' - Improve the update report message - Only enumerate Dell Docks if the type is known - Only run certtool if a new enough gnutls is present - Prevent a client crash if the daemon somehow sends invalid data - Reboot after scheduling using logind not systemd - Use the right encoding for the label in make-images - Added/backported enable_pkcs7_when_testing_only.patch: + needed to disable pkcs7 test during build (can be removed for fwupd >= 1.0.9)- Update hasbang in installed files from /usr/bin/env python3 to /usr/bin/python3.- Update url - Small packaging cleanup with spec-cleaner- Update to version 1.0.6: + New Features: - Add bash completion for fwupdmgr. - Add support for newest Thunderbolt chips. - Allow all functions that take device arguments to be prompted. - Allow devices to use the runtime version when in bootloader mode. - Allow overriding ESP mount point via conf file. - Delete any old fwupdate capsules and efivars when launching fwupd. - Generate Vala bindings. + Bugfixes: - Allow ctrl-d out of the prompt for devices. - Allow to create package out of provided binary. - Correct handling of unknown Thunderbolt devices. - Correctly detect new remotes that are manually copied. - Fix a crash related to when passing device to downgrade in CLI. - Fix running the self tests when no fwupd is installed. - Fix Unifying signature writing and parsing for Texas bootloader. - Only send success and failure reports to the server. - Use a CNAME to redirect to the correct CDN for metadata. - Use a longer timeout when powering back the Thunderbolt device.- Ensure library package has a dependency on main package, otherwise it won't be usable.- Update to version 1.0.5: + New Features: - Offer to reboot when processing an offline update. - Report the efivar, libsmbios and fwupdate library versions. - Report Thunderbolt safe mode and SecureBoot status. - Show the user a URL when they report a known problem. - Support split cabinet archives as produced by Windows Update. + Bugfixes: - Be more careful deleting and modifying device history. - Clarify which devices don't have upgrades. - Ensure the Thunderbolt version is xx.yy. - Fix a daemon warning when using fwupdmgr get-results. - Fix crasher with MST flashing. - Fix DFU detach with newer releases of libusb. - Include the device VID and PID when generating the device-id. - Set the RemoteId when using GetDetails. - Stop matching 8bitdo DS4 controller VID/PID. - Use help2man for dfu-tool and drop docbook dependencies. - Use ngettext for any strings with plurals. - Use the default value if ArchiveSizeMax is unspecified.- Update to version 1.0.4: + New Features: - Add D-Bus methods to get and modify the history information. - Allow the user to share firmware update success or failure. - Ask the user to refresh metadata when it is very old. - Store firmware update success and failure to a local database. + Bugfixes: - Add a device name for locked UEFI devices. - Allow each plugin to opt-in to the recoldplug action. - Fix firmware downloading using gnome-software. - Fix UX capsule reference to the one specified in efivar. - Never add two devices to the daemon with the same ID. - Rescan supported flags when refreshing metadata. - Add pkgconfig(json-glib-1.0) BuildRequires: new dependency.- Update to version 1.0.3: + New Features: - Add a new plugin to add support for CSR "Driverless DFU". - Add initial SF30/SN30 Pro support. - Support AppStream metadata with relative URLs. + Bugfixes: - Add more metadata to the user-agent string. - Block owned Dell TPM updates. - Choose the correct component from provides matches using requirements. - Do not try to parse huge compressed archive files. - Fix a double-free bug in the Udev code. - Handle Thunderbolt "native" mode. - Use the new functionality in libgcab >= 1.0 to avoid writing temp files.- Unbreak compilation on non-x86, upstream renamed options to disable plugins.- Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers + Catch invalid Dell dock component requests + Correctly output Intel HEX files with > 16bit offset addresses + Do not try to verify the element write if upload is unsupported + Fix a double-unref when updating any 8Bitdo device + Fix crash when enumerating with Dell dock connected but with no UEFI + Fix uploading large firmware files over DFU + Format the BCD USB revision numbers correctly + Guess the DFU transfer size if it is not specified + Include the reset timeout as wValue to fix some DFU bootloaders + Make the error message clearer when sans fonts are missing + Support devices with truncated DFU interface data + Use the correct remote-specified username and passord when using fwupdmgr + Use the correct wDetachTimeOut when writing DFU firmware + Verify devices with legacy VIDs are actually 8Bitdo controllers - Add help2man as BuildRequires.- Fix dependencies and build options for non-x86 architectures. At least FW updates for USB are arch independent, and EFI FW updates can also be applied on Aarch64.- Update to version 1.0.0: * Add the plugin documentation to the main gtk-doc * Add a waiting-for-auth daemon state * Add fwupd_remote_get_checksum() to use in client programs * Generate the LD script from the GObject Introspection data * Prevent fwupd from mounting filesystems * uefi: Do not use system-specific infomation for PCI devices * uefi: Support uploading the firmware splash image * dell: only set coldplug delay when we know we need it * dell: only run SMI to toggle host MST GPIO on systems with host MST * dell: add functionality to blacklist HW with problems * dell: only run on intended chassis * thunderbolt-power: always run after thunderbolt plugin * Allow plugins to depend on each other * Add support for SMBIOSv3 * dell: prefer to use hwids to get DMI keys and DE table * debian: remove /etc/fwupd.conf on upgrade * unifying: Use fu_plugin_check_supported() * Add fu_plugin_check_supported() * unifying: Use a device whitelist to avoid breaking devices * Fix various printing issues with the progressbar * dell: Fix a trivial whitespace issue * Do not fail to load the daemon if cached metadata is invalid * Do not store the newest release as part of the FuDevice object * Add a method to return a list of upgrades for a specific device * Move the downgrade calculation to the daemon * Make FuDevice derive from FwupdDevice rather than FwupdResult * Add a command 'clear-offline' to fwupdmgr * Merge releases where multiple remotes provide the same firmware * Remove the UniqueID property * uefi: Do not set the release version * udev: Do not match USB devices, even with a GUID set * Use the intel-wmi-thunderbolt kernel module to force power * dell: drop thunderbolt force power code * unifying: Add hardcoded summaries for peripheral kinds * Create CODE_OF_CONDUCT.md * Ensure more devices set the device summary * Add an 'Summary' property to each device * Add a human-readable title for each remote * unifying: Disable if the kernel has no CONFIG_HIDRAW support * Move deprecated symbols to a new header * Introduce an s390x cross compile target to CI * Add ModifyRemote as an easy way to enable and disable remotes like the LVFS * Do not auto-open all USB devices at startup * dfu: Use FuDeviceLocker * unifying: Use FuDeviceLocker * colorhug: Use FuDeviceLocker * ebitdo: Use FuDeviceLocker * altos: Use FuDeviceLocker * steelseries: Use FuDeviceLocker * usb: Use FuDeviceLocker * Add FuDeviceLocker to simplify device open/close lifecycles * dfu: Remove DEVO support * dfu: Remove the now-unused symtab support * Remove the ELF support from libdfu and move the code to the altos plugin * Use -Werror when building in Travis CI * Do not install the libdfu helper library * Parse the SMBIOS DMI table directly * usb: Disable the fallback USB plugin * Test for missing language translations at build time * Fix the libdfu self test failure on s390 and ppc64- Update to version 0.9.8: * Add a command 'clear-offline' to fwupdmgr * Do not fail to load the daemon if cached metadata is invalid * Fix a crash when using fu_plugin_device_add_delay() * Fix the libdfu self test failure on s390 and ppc64 * Format the BCD USB revision numbers correctly * Never fallback to an offline update from client code * Prevent fwupd from mounting filesystems * dfu: Allow flashing when the target does not specify an alt-name * dfu: Do not try to verify the element write if upload is unsupported * dfu: Fix uploading large firmware files * dfu: Include the reset timeout as wValue to fix some hardware * dfu: Set the vendor ID to the runtime USB VID * dfu: Use 0x0101 as an alias for 0x0110 * thunderbolt: move test for mock environment (gh#hughsie/fwupd#280) * udev: Do not match USB devices, even with a GUID set * uefi: Do not set the release version * unifying: Disable if the kernel has no CONFIG_HIDRAW support- Update to version 0.9.7: + 10 months worth of bugfixing, integrating more vendor specific Firmware update paths.- Update to version 0.8.1: + Delete duplicate translations (gh#hughsie/fwupd#89). + Do not hardcode docbook2man path. + Fix fwupdmgr timeout with missing pending database. + Fix compiler warnings. + Fix a crash when enumerating devices on a Dell WLD15. + dell: don't initialize libsmbios on unsupported systems. + Do not fail to start on Dell hardware. + Adjust systemd confinement restrictions. + Do not dlclose modules when running under valgrind. + Really remove the NoNewPrivileges systemd confinement. + Release fwupd 0.8.1.- Update to version 0.8.0: + Show a different error when checking for updates while on + battery power (gh#hughsie/fwupd#68). + Clarify the test in --help and man page related to offline + (gh#hughsie/fwupd#69). + libdfu: Use a heuristic for the start address if the firmware + has no DfuSe footer. + dell: Don't return the address of a stack variable. + dell: Fix a possibly-impossible-to-hit buffer overrun. + close USB devices before error returns (gh#hughsie/fwupd#73). + Make libelf support optional. + Always make sure we're getting a C99 compiler. + Fix redeclaration of polkit autocleanup functions. + Uncomment SystemdService parameter in the dbus service file + (gh#hughsie/fwupd#74). + Make all providers and plugins share a GUsbContext. + Unexport libebitdo. + Move the plugins into plugin-specific directories. + Convert the providers to plugins to simplify code and for + future features. + Add support for Logitech Unifying devices. + Add a set of vfuncs that are run before and after a device + update. + Return the pending UEFI update when not on AC power. + Move the UPower functionality to a plugin. + Fix udev plugin loading. + fix dfu plugin loading. + Disable PrivateNetwork on systemd service. + Use more restrictive settings when running under systemd. + dell: add a new method for forcing a controller to flash mode. + Add VerifyUpdate to update the device checksums server-side. + Move the Option ROM parsing to the Udev plugin. + Move the device add delay to shared code. + Add initial skeleton for Intel Thunderbolt support. + unifying: Use the actual bootloader VID/PIDs when in firmware + mode. + Allow the metadata to match a version of fwupd and the existing + fw version. + Add fwupd_result_get_device_version_bootloader(). + Fix the appstream-glib version guards. + dell: Add coldplug methods to let other plugins turn on + TBT/GPIO. + libdfu: Don't read data from some DfuSe targets. + Add the ability to run a prepare->exec->cleanup on coldplug. + Allow plugins to request that all plugins re-coldplug. + thunderbolt: Detecting new devices and add an actual device to + the daemon. + Add support for flashing the ChaosKey. + thunderbolt: add some guards around empty arrays. + dell: Adjust the coldplug preparation and cleanup sequence. + dell: Fix possible linker problem. + Revert "thunderbolt: add some guards around empty arrays". + Add fu_plugin_set_coldplug_delay() to allow hardware to + initialize if required. + altos: Add error checking when using termios. + ebitdo: Subclass FuDevice like the altos plugin. + altos: Set the flags in the init_real so they work for the + cmdline tool. + unifying: Subclass FuDevice like the altos plugin. + Include all debug messages when run with --verbose. + dell: introduce a standalone (noinst) tool to force mode + flashes. + Introduce plugin for Synaptics MST hubs. + synapticsmst: Add cascade support. + Only register the D-Bus service when all devices have been + added. + synapticsmst: Refactor away the global state. + synapticsmst: fix cascade support in the plugin. + Updates for thunderbolt plugin. + thunderbolt: Add special handling for safe mode on Dell systems + (gh#hughsie/fwupd#84). + synapticsmst: Iterate all nodes rather than hardcoding to 3. + synapticsmst: build GUID using dock type. + Add a new function fu_dell_supported to fu-dell-common. + synapticsmst: add a test suite. + synapticsmst: Fix up some trivial whitespace issues. + Fix a refcounting issue in the udev plugin. - Add rpmlintrc untill security review is resolved- Update to version 0.7.5: + Clean up PO files + Verify devices support updating in mode they are called. + Fix an assert when unlocking the dummy ESRT device + Don't create the UEFI dummy device if the unlock will happen on + next boot + dell: Match on TB16 as well + Fix a -fstack-protector-strong crash when uploading firmware + Enable the stack protection in local builds + dell: If running in test suite, don't try to get product ID + from sysfs + libfdfu: Show a warning when getting the alt-name failed + dfu: Fix listing devices using the ST reference bootloader + Show the nicely formatted target name for DfuSe devices + libdfu: Fix two possible critical warnings for corrupt USB + descriptors + libdfu: Correctly offset addresses when one zone has multiple + sectors + libdfu: Do not do GetStatus on dfuse upload + libdfu: Fix uploading from DfuSe devices + libdfu: Use the device offset when writing DfuSe firmware + libdfu: Add DfuAction enumerated value to represent a device + action + libdfu: Use an animated progress bar when performing DFU + operations + libdfu: Do not do a zero-byte download when in DfuSe mode + libdfu: Fix verification of written DfuSe firmware + libdfu: Ensure the device is open before claiming the interface + libdfu: Ensure the mode is set correctly when faking a runtime + libdfu: Re-get the quirks when the DfuDevice gets a new + GUsbDevice + libdfu: Add quirks for HydraBus as it does not have a DFU + runtime + libdfu: Match the device booloader or runtime VID and PID when + checking firmware + Add a 'replace-data' command to dfu-tool + string + libdfu: Add dfu_sector_get_zone() to get the continuous memory + zone number + libdfu: Wait for DNBUSY to be cleared when checking the DfuSe + status + libdfu: Correctly erase DfuSe devices + Enable hardening flags on more binaries + libdfu: Correctly set the element address when uploading from + DfuSe devices - Add pkgconfig(gmodule-2.0) BuildRequires: Align with what + configure checks for. - Add pkgconfig(libsmbios_c) BuildRequires: Support dell bios. + Unfortunatly, until we have fwup packaged and enabled, this will + not work. - Add disabled pkgconfig(libtbtfwu): For future thunderbolt + support.- Update to version 0.7.4: + Add a fallback for older appstream-glib releases + Write the ELF files with the correct section type + Fix libfwupd self tests when a host-provided fwupd is not + available + Add dfu_firmware_add_symbol() + Add the Altos symbol table to the DfuFirmware + Use the symtab to set the VID/PID from Altos IHEX firmware + images + Show the human-readable version in the 'dfu-tool dump' output + Allow specifying the argument to 'dfu-tool set-release' in + major.minor format. + sections + Support writing the IHEX symbol table + call + Load the symbol table from ELF firmware + Load the Altos USB descriptor from ELF files + Add DFU_CIPHER_KIND_RSA + Fix a possible crash when uploading firmware files using libdfu- Update to version 0.7.3: + build: Fix gtk-doc build when srcdir != builddir + In get-details output, display the blob filename + Ensure the update ID is set when getting local firmware details + Use a private gnupg key store + Add support for installing against multiple devices from a CAB + file + Use the correct firmware blob when installing a composite + device update + in get-details output, display update_name rather than Unknown + Device + statements + Don't make failures critical while checking versions or locked + state + Show a more detailed error when installing firmware on the + wildcard + Add Dell TPM and TB15/WD15 support via new Dell provider. + file + Allow blacklisting devices by their GUID + header file + Add XPS 9250 to Dell TPM modeswitch blacklist + Only display flashes left in results output when it gets low. + Add a small library for talking with 0bitdo hardware + Add another compile warning and fix up any build failures + Embed fwupd version in generated libfwupd and libdfu + documentation + Update fwupdmgr manpage for new commands and arguments + build: Fix gtk-doc build when srcdir != builddir + online not offline + Get the firmware version correctly from 0Bitdo gamepads + Switch to the Amazon S3 CDN for firmware metadata + Fix writing 8Bitdo device firmware + be updated + Show the vendor flashing instructions when installing + Split out the DFU file formats to separate files + Add fwupd_result_remove_device_flag() + Add FU_DEVICE_FLAG_NEEDS_BOOTLOADER + get-updates output + Allow providers to export percentage completion + Add fwupd_client_get_status() + Handle the 8Bitdo bootloader in a better way + Show a progress notification when installing firmware + Add fwupd_result_get_unique_id() + Use the SHA1 hash of the local file data as the component + origin + Use the correct define prefix for FwupdDeviceFlags + libdfu: Fix hang when parsing corrupt IHEX files + Add a set-target-size command to dfu-tool + Support the 'DEVO' cipher kind in libdfu + Add a set-address command to dfu-util + Disable the Dell specific code by default + Conditionally enable all providers based upon what's installed + Add a summary of providers that are enabled from configure + Do not use the deprecated GNOME_COMPILE_WARNINGS + Ignore devices that do not add at least one GUID + Do not attempt to add DFU devices not in runtime mode + Save the unique ID in the pending database + libdfu: Add initial ELF reading and writing support + Add dfu_firmware_format_from_string() + Normalize the DfuFirmwareFormat enums- Update to version 0.7.2: + Allow devices to have multiple assigned GUIDs + Only return updatable devices from GetDevices() + Add fu_device_get_alternate() + Allow metainfo files to match only specific revisions of + devices + Re-read flags for a device after a provider's unlock routine is + done + Test for a locked device when trying to install firmware update + Enforce allowing providers to take away flash abilities + Support returning multiple GUIDs from GetDetails + Add a GetDetailsLocal() method to eventually replace + GetDetails() + break + libdfu: Add DfuVersion enumerated values + libdfu: Show the DFU protocol version in 'dfu-tool list' + Only claim the DFU interface when required- Update to version 0.7.1: + Fix libdfu CRC check for big endian architectures + Add dfu_image_get_element_default() + Fix libdfu CRC check for big endian architectures + Fix big endian issues when reading and writing DFU and DfuSe + files + Remove non-interactive pinentry setting from fu-keyring + Set the system's DMI product name as the DisplayName for UEFI + Re-order output of get-devices to be easier to read + Make the device display name nicer + update version + Return all update descriptions newer than the installed version + Add summary and name field for Rival SteelSeries + Fix a critical warning when restarting the daemon + Add a 'supported' flag to the FuDevice + Add fwupd_client_connect() + Add a 'monitor' debugging command for fwupdmgr + Add device-added, device-removed and device-changed signals + Match the AppStream metadata after a device has been adedd + Re-match devices when the AppStream metadata is updated + Show 'Unknow Device' in fwupdmgr when a device name is not set + Set the device description when parsing local firmware files + Add support for a new device field "Flashes Left". + src/Makefile.am: reshuffle so enableable bits are only + referenced when on + Add support for a --force flag to override provider warnings- Update to version 0.7.0: + Use g_usb_context_wait_for_replug() + Run vendor plugins as required + Add a plugin for SteelSeries hardware + Add fwupd_device_flag_to_string() + Return the device flags when getting firmware details + Show device flags in 'fwupdmgr get-devices' + Add fwupd_trust_flag_to_string() + Export FwupdUpdateState in libfwupd + Export FwupdUpdateFlags in libfwupd + Add FwupdResult to libfwupd + Add a self test framework for libfwupd + Add FwupdClient to libfwupd + Use FwupdClient from libfwupd in fwupdmgr + Use libfwupd inside the daemon + Emit a FwupdClient::changed when the daemon emits this signal + Rename some of the new libfwupd API to align with the D-Bus + names + libdfu: Fix up some NULL/FALSE confusion + libfwup: Fix up some NULL/FALSE confusion + FwupdClient + Allow other checksum kinds in FwupdResult + Allow SHA-256 hashes when verifying + Show the checksum kind in the fwupdmgr output + Add Alienware to the version quirk table + Do not use /tmp for downloaded files + Add fwupd_result_has_device_flag() + Do not return updates that require AC when on battery + Connect to UPower at startup + Test that GPG key import actually was successful (or didn't + change a key already in the keyring) + Use g_auto() in FuKeyring + Return errors of the correct type when using libfwupd + Allow overridding the location of the pending database for + test suite + Allow overriding the location of the provider offline files for + test suite + Validate that the dbus system bus is available before running + libfwupd tests + Update README.md for changes that have happened in the project + Add some basic explanation of how to use fwupd with various + frontends + Split out the libdfu-devel package + Revert "Allow overridding the location of the pending database + for test suite" + Revert "Allow overriding the location of the provider offline + files for test suite" + Allow the test suite to run in %check + Generate gtk-doc documentation for libfwupd- Update to version 0.6.3: + Require AC power before scheduling some types of firmware + update + Install the hardcoded firmware AppStream file + Correct the BCD version number for DFU 1.1 + Add an unlock method for devices + Add ESRT enable method into UEFI provider. + Only read PCI OptionROM firmware when devices are manually + unlocked + Do not use deprecated API from libappstream-glib + Ignore the DFU runtime on the DW1820A + Export the attribute and quirk values in libdfu + Show ignored DFU devices in dfu-util, but not in fwupd + Allow defining update vfuncs with no runtime support + Revert "Allow defining update vfuncs with no runtime support" + Add a simple plugin infrastructure- Update to version 0.6.2: + Add 'Created' and 'Modified' properties on managed devices + Fix get-results for UEFI provider. + Support vendor-specific UEFI version encodings + Move quirks directly into a single table and file.- Update to version 0.6.1: + Only dump the profiling data when run with --verbose + Always persist ColorHug devices after replug + Do not misdetect different ColorHug devices- Update to version 0.6.0: + Add support for updating USB devices with DFU + libdfu: Add support for DfuSe firmware + libdfu: Generate gtk-doc documentation + libdfu: Don't rely on specific hardware to be present + libdfu: Move the VID:PID checks from the tool to DfuDevice + libdfu: Use a custom error domain + Use the same device identification string format as Microsoft + libdfu: Fix crash when setting a target size + libdfu: Allow setting the alternate settings in DfuSe firmware + libdfu: Add a merge command to dfu-tool + libdfu: Allow choosing a different alt-setting when downloading + libdfu: Fix a crash when setting a NULL image name + libdfu: Correctly implement auto-boot in dfu_device_download() + libdfu: Check for extra args to dfu-tool convert + libdfu: Call the progress callback when doing detach + Ignore the DFU device detach:attach when verifying + libdfu: Require a --force flag to flash wildcard firmware + Use new API available in fwup 0.5 + libdfu: Make the element address 32 bits in size + libdfu: Support the ST-specific bitCanAccelerate + libdfu: Only do a Detach notification if we're actually doing to do it + libdfu: Use the progress bar for all uploads and downloads + libdfu: Improve the output of 'dfu-util list' + libdfu: Support download and upload to ST DfuSe devices + libdfu: Fix multi-interface devices like the Neo Freerunner + libdfu: Add a pkgconfig file + libdfu: Use signals to propagate device state + libdfu: Add a context object to handle device hotplug + libdfu: Add an example showing GObject Introspection + libdfu: Do not ref DfuDevice in DfuTarget so the auto-close + logic works + Close DFU devices as soon as possible after the transfer has completed + Emit the changed signal after doing an update + Rescan the DFU device after replug to get the new version + libdfu: Add dfu_context_get_device_by_platform_id() + libdfu: Add dfu_device_get_runtime_release() + libdfu: Add dfu_device_get_display_name() + libdfu: Fix self tests after recent API change + Split out the DFU provider as a new file + libdfu: Copy the platform ID and invalidate the GUsbDevice when removed + libdfu: Accept multiple spaces after the DfuSe sector name + libdfu: Verify the GUsbDevice is set before using it + libdfu: Remove the weak pointer when destroying the DfuTarget + libdfu: Fix dfu_device_wait_for_replug() so it can work with a DfuContext + Export the AppStream ID when returning device results + Rescan the DFU device after firmware has been updated + libdfu: Handle cancellation with ctrl+c in dfu-tool + libdfu: Add a quirk to support DFU runtime-less devices + libdfu: Add an explicit 'attach' method + libdfu: Add dfu_firmware_get_image_by_name() + libdfu: Make reading and writing to targets easier to + understand + Fix compile with --disable-shared + libdfu: Display all the files shown with 'dfu-tool dump' + libdfu: Fix a few crashers found using afl + libdfu: Fix another bug discovered by the fuzzer + libdfu: Add commands to encrypt and decrypt firmware images + libdfu: Show better device errors + libdfu: Add DfuCipher which is a property on a target and a + firmware file + libdfu: Add support for the draft 'DFU Metadata Table + Specification' + libdfu: Only enumerate the DfuContext when required + libdfu: Fix several reported crashes in the inhex32 import code + Release fwupd 0.6.0- Update to version 0.5.4: + Fix compile error against fwupdate git due to dropped + functions. + Use strerror() when printing errors from libfwupdate + Use new API available in fwup 0.5 + Release fwupd 0.5.4- Update to version 0.5.3: + Avoid seeking when reading the file magic during refresh + Do not assume that the compressed XML data will be NUL + terminated + debugging + Use the correct user agent string for fwupdmgr + Release fwupd 0.5.3- Update to version 0.5.2: + Ensure D-Bus remote errors are registered at fwupdmgr startup + Show the dotted-decimal representation of the UEFI version + number + require appstream-glib 0.5.1 + not found + When the version is from the 'FW' extension do not cache the + device + Support cabinet archives files with more than one firmware + Add the update description to the GetDetails results + Add profiling data to debug slow startup times + Fix verify-update to produce components with the correct + provide values + Clear the in-memory firmware store only after parsing a valid + XML file + Release fwupd 0.5.2- Update to version 0.5.1: + Fix the error message when no devices can be updated + offline update: Use glib api for for reading symlinks + Release fwupd 0.5.1- Update to version 0.5.0: + Do not merge the existing firmware metadata with the submitted + files + Raise the dep on GLib to support and use g_autoptr() + Do not reboot if racing with the PackageKit offline update + mechanism + Release fwupd 0.5.0- Update to version 0.1.6: + Install fwupd and fwsignd into /usr/lib/$(triplet)/fwupd + instead. + Use the new secure metadata URI + Update the offline update service to invoke right command + Don't apply firmware if something else is processing the + offline update + Remove fwsignd, we have the LVFS now + Depend on appstream-glib >= 0.5.0 + Add application metadata when getting the updates list + Simplify the version properties on devices to avoid complexity + and bugs + Release fwupd 0.1.6- Update to version 0.1.5: + Allow fwupd to be autostarted by systemd + Sign the test binary with the correct key + Do not pre-convert the update description from AppStream XML + Devices with option ROM are always internal + Prefer the GUID from the firmware than the device + Allow no arguments to 'fwupdmgr verify-update' and use sane + defaults + Add the ability to remove a vendor on the LVFS site + Fix validation of written firmware + Move the verification and metadata matching phase to the daemon + Add a simple config file to store the correct LVFS download URI + Make parsing the option ROM runtime optional + Add a Raspberry Pi firmware provider + Use the AppStream 0.9 firmware specification by default + Generate the ColorHug test files at runtime + Release fwupd 0.1.5- Update to version 0.1.4: + man/Makefile.am: Add --sgml to docbook2man invocation + Make statements about storing private keys stronger. + Provide a way for clients to add new firmware metadata to the + system cache + Fix fwupd-offline-update.service + Revert "man/Makefile.am: Add --sgml to docbook2man invocation" + Add a Udev firmware provider + Extract the version string from the ROM in PCI devices + Add a 'verify' command that verifies the cryptographic hash of + device firmware + Make the ROM parsing more robust and add self tests + Get the version number out from Intel VBIOS too + Provide a way to dump the option ROM using the command line + build: gusb is required even without colorhug + remove unused variables + Do not return NULL as a gboolean + Fix Intel VBIOS detection on Dell hardware + Do not use the subsystem information when constructing the fake + GUID + Actually parse the PCI option ROM + Accept multiple files at one time when using fwupdmgr dump-rom + verify run + Add a 'verify-update' command to fwupdmgr + Fix trivial bug when parsing firmware versions + Keep hitting the hardware until it gives us enough ROM + Make the version parsing more resilient to corrupt firmware + Fix the example .inf file to reflect reality + Fix ROM PPID searching to work for all ROMs + Move the LVFS website to the fwupd project + Add the ability to create detached signatures + Allow cab files to be saved + Add a simple signing server that operates on .cab files + Automatically download metadata using fwupdmgr if required + Don't call efibootmgr after fwupdate. + Associate the contact email address directly with the vendor + key + Use the actual LVFS GPG key + Allow running fwsignd as the non-root user + metadata + Do not merge existing LVFS metadata + Do not use the file hash when storing the LVFS submitted + firmwares + Move GetUpdates to the daemon + Change the DBus method for installing firmware to 'Install' + Allow installing an offline UEFI update without --offline + Add a 'fwupdmgr update' command to update all devices to latest + versions + 'update' command + Increase the size limit of firmware to 50Mb + Only sign files when the entire file has been copied + Fallback to offline install when calling the update argument. + Reload appstream data after refreshing. + Release fwupd 0.1.4- Update to version 0.1.3: + Coldplug the devices before acquiring the well known name + Add an UNKNOWN status so we can return meaningful enum values + Run the offline actions using systemd when required + Get the firmware version from the device descriptors + Added syntax highlighting + More markup + Support OpenHardware devices using the fwupd vendor extensions + Move boolean properties on the device to a set of flags + Release fwupd 0.1.3- Update to version 0.1.2: + More markup + Fixed typos and markup for executable + Add slovak translation + Add helper code to validate public key signatures + Decompress any firmware signatures in the .cab file + Verify firmware if a detached signature is present + Show the firmware trust status when doing GetDetails() + Only allow signed firmware to be upgraded without a password + Add some guidelines for vendors to README + Small grammar fix + Extract the .cat file alongside the firmware + Release fwupd 0.1.2- Update to version fwupd_0_1_1: + Do not crash when there are no devices to return + Add a 'get-updates' command to fwupdmgr + Add and document the offline-update lifecycle + Create runtime directories if they do not exist + Create a libfwupd shared library + Export the status as an enumerated value rather than a string + Release fwupd 0.1.1- Initial package./sbin/ldconfig/sbin/ldconfigs390zl36 16819073361.7.3-150400.3.5.11.7.3-150400.3.5.1libfwupdplugin.so.5libfwupdplugin.so.5.0.0/usr/lib64/-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:28662/SUSE_SLE-15-SP4_Update/89f7692e61fb502bdc3753005819faa5-fwupd.SUSE_SLE-15-SP4_Updatecpioxz5s390x-suse-linuxELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=b506822ca13a0839f7b34b213dbd5082fb16437e, strippedPPPPPPPPPPPPPPPP P P P P P P P P P PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP P P!P!P"P"P#P#P$P$P%P%P&P&P'P'P(P(P)P)P*P*P+P+P,P,P-P-P.P.P/P/P0P0P1P1P2P2P3P3P4P4P5P5P6P6P7P7P8P8PR1R3RRRRR.R,R/R-R+R*R#R!R"R R;R9RR?R6R=R5R8RRRR RRRRRRR RRRRR R RRRRR R4R$R'R%R0R)R(R&RRR2RDutf-87dc5e289c5cfdeba79543215715af9453a9995d7d5b2e0f970020d1322f38833?7zXZ !t/3] cr$x#H2Hrʲ\jLPUNbʜ kY>sJ}\+v)DŽ#/ '6iCѮМVOjCiCԊ/D@R*Ίd_੩τzJ!{g#`a/z /HU_\wk3I&h/?EP!x^7nu -(8J^QVdUWN! 8Lϧ3u$~iW_e;oq\*>ŵmep+2EjCxTa8>^:яZ]F~ty` }f/.9Hg!AhWD=thNK܋$~zhxfq"|P,v厶j`qmT~c\ 5nmL p٦Ǹ6Rq[+Жخci|p \5D־qкq4Q5"޺ ĺO2vWG;=tߢhpwA1͇,^?rS=u5M`E BKFCr$)/%E+< Mxs q占\̩)M1M,f$]n[EL?!z/Ծ׫)2l,?78?z:~ Am(pH(&lr~8,%T#a@t?2gbvRDROr!.zKQM[Zlk̀I\omMJ )PhkhiEsK(;9sV\_% 5[f! ՠIա ?A$UǿdK9\HʧdkJ%^+OL6'O^2r.#X &)g^E5ށRɬ zRVB^ 5$rtVF!"ʦN3Tߊ7ϔVM#t˰a|9xLf["cl5Z71U;cNX bh]gD]K&u3C6+/5|(ȋ39@qAS?#N}L-MCN`iQM&%@ '^/;9"K'Ы.Ryzg /NdjIqaV\_v=,`nXhh/;=h0^3kF_s۪IueYB) }:OYƂxu~Z#vL V\ y*Rܒ#xӽ+E6Bd:?83ij[CI'5[mhh]dFi8';rZE ͍Ixs77r'E wq_ Fez5MЊSP<@XBEbM k({.Z[@=:2Ba]G=ev42͔Ѵ%4=Z 5|,Dn> B*0 C(Ce^"e:oe kHY+We!қ/l㈋i~o]]~ Ǭj &n'Pml2H-Y*e i?8pM9.gV_+jF՝D\>  kW: \rwQG;PrqOS&#UpO3YDAJ0ZUd'I2B~T()Pb_'K@'3h`_s KޟU"C~uv2C:g:GD2{3M8#~MH@˼wjkony j8`->!.(#;תё{'bAYg/B}"A Z#br:1f\OZ;\]ɭ3ETR\-ܚ~i)O(zrK=RS%~8XAIJ$cJZBAbK{ȓ;mQCd3h#s`I* rȤ^bCÅa~x:S'1@JԱtB]!ql  o~JoO8= k*|2_p2Z}~XK6 {ZUɌgKڗOℤ^@M 7eyI HUꟴvY!N&E }~yG㧪]p\3Injjf?tFE>"n\'1DNjG4'Ip_veNHU|;f.~y2>^TM[Y *X ?0nDvA$u`#WGZn`C՗Ԃp7I+D~E5xt:][=|D `x80tx]v<L٣B؁re:o*2z5A ᙿKly՟Rqz,J4w/udcH' ,\\#!2 z2erZ`ty1ß}olEf^8Ba eDs0gj:$h@X\QL}\"쿨|6?<=ѿYxrDԉtvd" BP3J.f7nKWNS[NoM&b]bh%}7DΘ5㓀G_O#* M|i@_BZ=xݬ۳]3О2EGSn^XbP-"i(FlQ)-ޗҹ ־W+W{Y׬@H}%jS)lf#"Yr beA-CQ_ TȍmB<*ѧM4lH1>9'ܸ͌$[<"hLsqsOCT?|HȰs)[d*C7C`C]|_a8R2=M9aEi=P ʇS:&#!i@`6x<ԷD^gF!2 _w7ص|l$ ׆-AJ |x ~=A{ֵ&>B"6otcm98Pcg\S[ `IZfoB?k|`!V(02OuUd ) b yKo_rH!1Svh a v2fg ,yz ;X+Ż|Lł,z.7;{}PL|nLy4`ڮs, ?f#eg u]%&,V[W #ncbXo.R\'x låYժo+3U{FD"_0+x':0Y-WZv?Q)>Q. Eʰ4ǡi wʦܑkMʕ'qjryZ. OCY|(iXw(fsݻ鱕-O*m\y&$a*H8W(5\A.U)tTzb4+:ƣR)Gz'YeAc-߉lؙm2nM[Xr8/5r6$!. ѯxL@'K ElwfkM1qm׎"}-x, G(Rp[5*J#X"`0:F`s*ތNg-ыr,PHWX{~wL˥\n,Kq/12\ۖbjn^}k:ˤ> vɔOx!peֺ3TGK4cG*s͓3% ԣkr /N@@T^F[5jPzjvX 1zͅ#]ieGQl>tLP1ͪO&!Ty Xآ(s􌒬ZKh^->ZVO=fF&RsC^\>)gг tR%xUZ`Z8J=ET< %$`8N"WB#^w,PDG Iw.!XPZT&7wT)  `A42mmP:(b؎ ʎi^w== O>}" %}hF A w`a4u3I.ǐJ4a٤(][LzCHw8'M\'kobD å;B/:(Mt&jh@8Mw06wf'!\&k;OK3wؿߌ.۹HpTҳl1QcUF橋re6ccj"Ѽ_F]$hJо|jO6`vMξʟ2JHlmRԋ WxxuQ[&2[lܕ,3 5@fJ_1lWK牵:gp}JvwdT}f'ڹM]OD=U!@H,}~`6nngMnYkl]o_íLE-޲vćwTȕа\":/n ݦ+ϞUa5 w0Yvy4Y=.e5&1s(HUj>Ev)[# (˞lBKxfl{k򃖂ulRG{ \exWLbٿ]"ԯseyb$>IOiJ>~ǭCk^{]9a3+ƿMAʟN#x,0+dCU?od-]=g|5!^dZƽEKy29ĬVHB߁44GS!Qt>bqƆaԲR>˄|#qD~s<$v`:#g,f؜20Gx:_')ҔZpb\7[-O Ea/p/XZ ݰi,*rpWTK|.N2Q5ٛ^^BTېO2>>'YI{巅sL̬ Iyܿ^UFv=2U#<҄c"sF~I[۵SW3"*ˌOبj=Ƽ/EѹM:3de:%oERGNJDQ LpԆR1W(X<Э{F;BFG X ^t+*5"?c~L`RE%$9ym}' ne?w7.A!YY2@̄ž07w"ۍVaP&'[?M VU wƐ-kzhOTT Q0 /9NDF:)q4 z@DLmᦇ:!-sTP9BRWO$^[;:EE=dmݛٹL".md;:M2J9{BfJ*ޣ:N'*&w3/EΜ ZXa'(ApaD PL."*}?o2ke\{ex ]"#0AbKDVo5SO78ӽad,5$ZOA_WV;!^%s7ozh,316*tBҞq ^xeǖI)|7]u q* gb>-cPVy(08:{Lv5=м&Ct BHҐ7~8caAe3cVT AJU b s#xO>?' d`%kK!uDU{D(vZKqq^U$ yPG)KPq®߈X4BJQ[Ja,VK?kmH޴uGVrQOs#L@Ƨ<`܋(Nǁm^R;G;7u/.+*2VTa;dqu_6Z$>{:>!ršD |Hf߼~CPS(v^ po'{ǕKTJя"W~~lF|A3w+@]Dh֧ ?yoM}lY" ziW[ TgʨA;~(gFG<3_tk߼Pqnpۜ5ö(T>joHey3CÍHcFJw^^#hkT;bLd݁gv[4}aneV]?!6\t 3ˊ:PN#۞ӋMs%|_$*ƻ]21<]WÄÌ|U6)LO$N=zhO0 (ex)'z:紦$cvsMuviru\C/7lh-$o'-b5ӅUI/}f hD"1mAqnav=hf 1Bu>t3G2z^=j87tߟzPeJd'Nn*$"Q()bc^1p"|]X99xE"nDٞUGlJk2FHmӱ' sX$(ߚ#9I߃y`cr6[ysVA\tSCɡa #l=8>򄗙`tyR;>Gm͏ 7+4 -WglME*@@N_10W% yB@`P@fD4#H%mz_xI_׀ [ua?̻kCR붆VPWGAw"G( 5H!BML0 u6ҕ lRr=܅\FL4@`~xw~@4(TW6r)w#32xESyKNE=.@ Է4OK{mi1PwJZB.#M8UʸoN6W視2+WcL`%mV&cC"P %ɞ[i2b0d+&8nr=$ qa9P+% ȘVf]nhag0t%8ڟ:"x8uh5 `ǨAGa"PMػץUxD7+.' 9n^(AS yWP )0z&UG| ,?Hçҷ66*>A3mtp@l$?P+EYCfĬҍ!6pT5Ip-m7 UѪ7P.D0ݑWj8Mkʨфloto_*I~GĘFpOƹ?=cs#i(&O7w&rMhώjO}M:j1Z*wApJ19j\R3(*"sHZ-F'>hLnu(b[fٵYu'عҡ*'=-j'=X:PݵVcϥoҤQ 2=l<:{A<{8j2=hݯF $f~> %Z-^J{ xv^V\ԵۥvB pƛ͕0*OՉ<53kǃH%FO{+,WeJ32OG݆~3D0w ?oeQӚ$b- p"IOW=ݩb8'uxw͡|Iɑġ>{s!:j 1d/u1aܬcXh;U}_`N0<|Ggb(!]_] DPb귌9kJmzVJWE'-).b<13'Ki'ɍIT|~ƶs|&Z~ٰ=<~w&p,PW T+_E~ 47AFjj~BT)>j!:b߆<ɫ{Om OmtE?o8Ό& 'P),PXrH֎?Q*z)uZh\1]ŋu[:oOLo56e*LwjoRݪӏbB+AJaIBlK4 Xhj҇*%_@nk8 z7o)2 7?Pʎ^y0d$텞&2_?'UA`{[|}.dE1O[Kǟ}.@ƭj?҉c'@sw7gM ja%IT:u*7p,l(t-xFaiꇨVpI@ m!8(S,̛dz<|vI橑)N1y1~-X+Huy1N[mjEG$R?0V'2j|o0bhNGƵ;^;4϶b7alٌ " BֶǓ~YGIL]jIS_J4_D՗5 #]\Le k\NVm7b[N?MIЀ5DKtxz/A _/,b~]t}@pKȜ{g=am{MXE/*e5NZ6Ie x&fY DEhfqf2B w&{^N}u SK>mTƥjo1XW /Hoh9ޱB]o2܌9\u8v ,sj&Ol EǣMe1N W:"% lxI [be+OpF6ؼHdb`7)+<ȋHC3ngӇrKewp]@" cjM9F=͓Ocl(sG8DVej%%;ޗ:oGQ>3M8>%DISo%5 #彸p;&9? D@-[CJlU b.6Np-Jض{*SD+ûX{CC"2lbv^|;kG%ǀ|b>Y@Pak*ʡ~B'E1y6Szm:U7irȆx9 9Rxm`7TCqH*`&/#/l,j73U|.ci4'C4X(2y`Mmn |q]T3 w$@ HnS|FnG\SHḤj V wPJŝLQW+[rDnZl-i D#WߡKFok+:],-yOS6Pڊz4@rA, ?T8ApNa^AGغ$dc^^4U^%qֿxfVS!PuA5uiaիTT}Z=`\n/AM<.xJ:G)]2U/l<`* Jqtwz֗sߌm`ۧh2Wé/|9RvDQC;!b&C&=<|H&dxMS!,X1ʌ+.լ$mkVq-l t.)2v~ 8 8IYl++/Hu"#bبA3{= ݓ>Z>=9)=Z%Tf)Pi@qN7B1xP }D@]V@_Pt9>.,Hz>kp/< ::|h^y_'iRFrqjP [߇fF@xKZBDiZz. +PKt.'/9^[C4=) RrF;NM{mxSyf9I1B{jy?E_r^wqK\ԋZ\= ʑL҈^n=wjXPJqK7GE||]hfrv-R5ctq%Gs(B{gG< .bEanWzJ/ݡfrW!WB FD*Wh'߇VtnnW3RTNW3 Vߘ鸯"缫Onm,w+Br#>&rɈ}HErt3I$*J}}PZо3@a8IUk! B,T /;kTxu1"*r}iF@En7ŦFP@-ٵAg?KfU4($PQXgAF._Lj [( ʸPԂ@u;6J'r%oGJ)F,RfR5pCcq(մe  KM( υ-IoHX+!|٨Ӡچ#8'W[6GO>jA8t]N(K} #Px/Q?}RׂHvsjw9 ŀs6~ dyKjn*M|[+RpP_w ˽i BSJ<3Pړ ui%a]WN{ȡ_y,LLE&RRQq>2 z ӡQ}R*R ~Zg&d;eTp%N"FCԟ)>TSi]okޚNL &`?|,?C?[zG+)[z1\SJAAMV}k@Q ^[54&#F0藓.r'r3t-#*-ݗS_fT *D#N^D{? A qh/,ofKܣnp6v"t$㪏Kn4܁{eut)2 Ù<]/-.39 ʯ`ݱ2c N(_ʔwujsQ̂VO3 ;3gEt6sLjLK#$y[1\H{?R>Ne̡[\P b9 +@v;EQJ"r ZS'br| Re,HOiJ&`9lXd% %tFySD~6|ᙴ 53/6rLJĎ._9Em4x;T(3m0Lq"p;Vhd}nJѮ<˯@b[eT;Xxg@G˖W.[37ޠ0``%=n[^nƌ1,̆U6g8腴^F~jwJc4lD?$ol:Վ<j!'E;[^Gpz3TXbU P)&} e$zI7b9rUqJ^j$%N ]O9_&gxz,U0*5Fd9f=ZF۫`IOvR=@֣Œ} ԥB=U\62&Qꛢ\bW4ۗ nN5y:&IK^po=!rAH !wRhwHfxLMV,P&!%I)$C z|Ĉ%bیB $BA^G-PMcr$aL=+6nXLsl'{7-`<$lOL Q{I HW '+3B1"jϏ iqjΨsmp:lWN ⫈tQJDQ8w4Rj[ZHlmPsZ)f!^ F,z[GoTGq:9N[࡭ ]a(| rB ⴩흶ZkU!i B먽|VG]4%}fM:O^jHQfjgTrP5&SP@f:3?3+C?̄i`TePt;&lP:łQ+}I ?h$2vAm$װV=,:32Ga.HraK(RE1e[$Sğeay1';)㩬+kZ\dRuk2.?A PBD5$$gT+~="ZD}*Jǎ(T$xfqA*(ha[N쳡is&.R+eU nx)#y f# %/106$_%IR AC2[^ LP*',J[x )_㓘b8Ec/KhJĞͽL}ߵH݉aSva,q3Bw01ݬ`>^MZ&*ŚY[ I̟#SyN;m.>WH3w_V:};Rt6mdP0:ƷqNY_v$/؆ZLVzUK#0bK#Q"5c;':tm8!4aբo:-J4JJ,`k; Y' (  'l&$C{Zh=;L&3Yk%D.?l'|Us]j-x~jL!ԽS0Pj %3 >e$: Co8\U8d>} B#1ρLsF C[r&NȜ=70~<3|&|4 F9'[NkǪ+tU!)80 ,ܚ sgZ([*x"ў{<7Ylv|*QOnɀVzE &<xiWjZZ !q 7/b'qqvNdOKad(icRÃ])>E8Ry(S<[gg;-HkX2l ₶ +zJЗVMvue%}dže1Fp$m#FۛMU3=faӾπ[>9ϷRqHN/lL$hM;.@<bj?<= tV!G3GyɌ<ױig Gd|TDy0dpmy3LӍZzo5 *&=xΫW禐31ajSZ܈Vg6B $cH{ FD5q.w壄Ƶk`h)-ݖaM5V$ޟ+h u8ugY[dIz2Y*m:EpgCRzL:%;瘨Q]OtTSS0oHN̅Ƭ6]S1nsHwk0O7ƱV3KP/ם˗b@|.^ȳHA0[>FᵎG~R4:u qH]\SSm{9G߲կSƴ#ЇN akQ?o,8B#⣐!H>\? n7@=X0 }ivo܍:tlFqfX5IsAu2e-M'kpmཤ/?fgo]#jeLqEU9 JPD W Hles5u5Fؤ+&K_zXlW&3&\ܵUkFpEo>a% D$$K٫S&W*0J\ۍ'Wl+߉/UxQ(S#'cA57?NP @Ɠ˗Sut8+mF.sgo4l)=aE \A71y>|d`+C|-)ibrSa5r *I}Z5tb" wwcEĽ0; S*[ eO8/_nDZSVcttO֖[9䯴q@~Nٰ#a\VLU23ˁv3~w1[(jcFٕB瀻"-y f~<&*PYI3b4;խ=\F7G&FĆs_Ԩ!&ܤdK(K&XOАXU"3q\Tb2GOtAe6ʴ ےZ$؂#ms%A +Oȗ4EChS?|GutqČnE~|&Ce 4d7'պJV#(,z䫎nڿ egq(m("沆C@ꋣ^g=I"~dQMy̜W)Viϴ ט:3 DFˆq " EJu7R62L B9T45JBD6'6$ Dm]o65F ǽl2h N&3G@581 ]K}$ニP[lkz8f^s'=2<ٛx58YӏUI$Fd7 gÑt_T<Yó[A`@Iyѝ$‰Vq)R=:;>'D`E[Jh`\ߩA¬f#7w* IYH%fh9d,T u!מ/hm,[̼1rClKZٵQvd\Cc͜rZ00wA_H20jC8P7?x`?~xI7)J"#."w$('o0GY(`?oriPb#5<ʂ^u.pX/I^9;}\(t P%K_C̸q6Pr hqgr{6buHNĐ\Y?h?ALkeV`|lnYr&DטơܷS؊qsGo\̠F`VtXG wGtBw?m@znpJ1_I+EfN}rR*KwLxj5*xza~4]:V-hۧiC*PfV.4J 208% r=[|Ĩʮ_"Ѯ +^$itlQ1:$MmI <}lƺ n>&&Zꦲ^9pT: \`^ey,?Ya2U,|R0Qb24ݽ]ާe?0oX‚ޢn^_gN݁9Q& j1,TM*2VwoY̛'ܒTVd|MV>u" c|hJd JHPyAsʲ۽EJ镓h>|!=3A)6t1>ܵZڝăbiߦhGϤt'Ι#(\6Gʟ4V D[I9lWko5ިQ!+"'1υ-:*]'ɱL<9~0a*0< qM2r%SYx8 |ZhkR L$.C٣z{4C1v'MMpMF֎u>1)NL쑾\RTE{xL2 7MMOb7~Nçh1[TddҗҭD٨4>SqYn(ۿoXRd@Mc&$5?2mX8&`|]V=p2 h=Ehn pM<HA|?Gx_04ذIn!?m`o[3".9.)QIdžl]lNnY4= wHRQQkuTfUz y,//CfB^8~!pSu`MZBm`i'goӌ'!$?* H\ܩɍٜHɻݓ qCHh&t+yշ36>ә'@j%K8-e'Gf-V+tbFOKRTեף,q"X6Q@F 7t~ݪ`x}U/JGqNl ޶܀Hh54iX@ = &onkc$VDtۘnc,* E 1A)Nur]3)A%*T7Hɜ@}IU٢ܑuI` XKRwX*2=vZTwi?>;>7[a6F_F;?V4v6 jRl—\8AxI)9M %}wL[6Hluݠ wj>NoXH!>/0';șPu[}]T#³<7Ețw&~kǥ֜ܦ#O-Rx5:BoȳrXDW;;T,/E2*bc=vF,º E4fNBgU0yS%v31hL\ݔ4yB+O"F hKh9P C;)/bs,#yD΄nHb. y̷ڊ ^V)S7LA(Ӂb_pSײ;={_<멚GZ<9udqx4BU0|*-#?X$thuhi}n V?D'[Fnʗr-mX~~`@`ʁظ%Ggo 2Q!R6e!|N O^d|ܞS".δ3W¦m~kd(ɐR:WoBgSx HR3d'[y(hY=$' !!|Q$E豘l[7(y?^zwY o 6.qQZ&Gj^Q5-mlֈ4e#4HDT_s1:G(`(ne>}&QԖuq | ,xEݨA8A4ɤ靾}WdfNPf'^6/ LdUcVŌ~?t4C>^|oR5(̄_\5\g,Nh_ h(s|Z#PԿZ㤧į^:buIT~:طi?erZ]HxRF朦)R3^78}1]N$T,Η\~r+yPvDmxU: B0VE&q2ˑNMIz bOȎ, *dz@H3 ~k&װhtrty1=O&[ E A(mth:xV~139S |з?R$cѮQ59t3䗱Yc[u   2tBƈ<5c[^RB 3|+Zh-n}WE]!`6}ڋJbIY3Rj"Hu:C Id ӟo:1K/xzNE9LNVԀZGt1urs#lC"w%9εC)w<~&[UdhOBT~$a #( |mDhXd hN50x'Z3ys:pGU`SʟXn{/ /ߡ6Gj"5tLZp;Dw%V9kOz2> =eOИМOmىNŋ1R< ,6pavM^J~& {fT#B,’(PQQb$ܸ+1pdNuPԃحTNX 8Fk UvqsBnLi ۡ>/壏 x Bg0vKEn~dJKX{G&$)f%|3˷bȆj!4X-nD]]$nˑCiC| e6/R1`SMrAeZt 6ެb"z'0ֈ9^( {nad!!W.NMc) ev)mW6$D/i*p{%y5G :iL nPʷ炼,zIrWmWN5nO53\j9F@|r[8XCݦHN=7h1 ơ`覞Ra}F 2)X_[*jv/t@0q[e^X_ղ )fʫV vZ}: e`LFerkmӪps]pѻo_|U@iP(g Q#B (|2!uBвN0&fYqdPl'%I )fۗwR%:!3 9P88Y'迀7a#O`Rz C]~> MhuS{y}9.0Y"h;5U,S;۷59n%eB,oʎA8n/O}&kNCim`1&q/ S֓# 3b-v:cb{j,4V4M^eM0+<^U4", 5`j3РQZ+Ńw_D[WOyBq}xfǿ SqZRh27ѻ  .2UXd ]@55et`nΚB-OHݤw1ͳf>%YfJKȶklx_18|>RL(62Ā꫹eKC 3~݂NǪ=2uR-/nt*5iUz]X$]'dzuF,<!]'թ¸ܐV]Lal8#-wBY"QVP!T"f5dW H#T4Cn?>u?T]Cց%cLsU¼5nkG qrzȆUf΅W`Uhn@ng) kX|D%,oc_Ƨ]gdY*/Ž ^(yْP''8ӫE4:pl8=ORsU*sgEmYfԧfe@,9FuH1֑IѴw0B*:hZ:5]uL01ӉG%D`X\ؐ/6q2Z-i~UT"oC?,V(&*oyMÚȡvߓ\[4 SHʁwgPGщ]sٞy$ORT}.uiR=b~8X52awQ ΂kg+-_Λ!P[W=X|,B٤o0Z:b"Opr[6G{dU):2!Ro㷂uOeT:z"=~ƇU~S@%v[)%Y+pd$L=EF{"TEYB8O6@WC!7YT˦Yb2V7f#sNo܈(W #~MsBuUUZUO/YSNC ݀qi6g0̕6XN~Wt@GG4!/revP~(s|0c.x ?Q\J@Q {1/yA4~-Pw&GDusioJW丷ۦ*GXIi88?`ʎYs`}껆v<1c1t-lZXM>h}@zCVX/5@YZ :{sNIn PC%<+0j  eqP9FS,F& BC Fl mTwzw}Vʔ)NxޢmF&0n&o A!EFw=)\OjGZwaew ^lYs$t !Fc~0(8\MW $e.]]uk0mʤ-IȚs56WX̀fwc ＀pVcݴ:iv4(Cz|~$pftjml\ܱu .$:h JvA`%]otxxuw1ˀ/mo> )w ҙs'y$j, 窔W0?ň)v s}E5 'lىA5׿(XH%$`(c2r,ܘR|1i!h{;_Ғu88Zt}<.*;9iά#&b+]CR̬ƽ6nz\ P+zW'2%vC}|^ Kx1U/3nPjMFK<@kNpUԯc^Z;iJGx)^Ɍ9} R7H9+#cm(]Tź^7 ( >,8(wꍪ qp˦8_w2 ^K٘l ]ӂ%'B&`WSkL3Den 3Կ63Š z9Ied@KgcpAG%di3i)Xoʹyoqg/a-=tiMQO:˅A-feYXuB,էj9.\7mU9{廴 I2”㜶[Yq3m1&ԛ bi:4rxr+؎xmGv.W&Fe3Bͧ DH1Ԇ^IBSy"hl2^-PֽN!W،dQȆ/} Ḻn*tHnUV4k(v6`ܯ]94@ -MYIS$w(sA* NoP@w̥62z!(`{ΏSHɚMH1sXM,юP7Uw6Qn ťQ!8چ-8aTRcDK#CJ!~Y_Gp u)fxgkwU_]էB H6SC 5¦V +hi3ڂ܏jo&Uu5F6{#0؏K^. $1Ad8'Cw68$܈/@ówR;c]e#9 -nTt\Yx,U6xubcXl¥} Y`rP*J>8ۜr=yyXG;/& PBخ'I%0Mfn`;M?P4[D:-rM]LI/xe" H7LtQ>%*U0h ~ώ+r_L|L?١Zc?XfPZ-˝Ih%[Vp2N$ƖPʲ~C1|OxԤ|{_=k[[D=e8&d0Dy{2Dg2"b r|$D¶5@`:%0P_Qhm#otE<[2{WvwrzoUʈ6vvLk#A I+N+mOz@gI CZbUMBࠕ{-~b?;A4K+A$ Y)AzNTy h=y4j;# I!~(iN~ŘO=%"WʹVx6f#?S:g&&g$۷y \G.Dmr D kK gUB풎`t:CLvLs&3&iʤH?ðZ= '1Dsٶ.RCwfnm#*dh!Y+n]8.78K0z-TL@f j߲}>v%71m/Z>!i:݃\B|-S'Om~{/4ibE*ɮA!=MM9 {&kA<ʠ?E^/)5k -*u;1QwA`ʵ6{eN;NOD<> 8V+(hf<3}}E1NI>Ga6$o`.oK1ݲL!*iD~FUw 9l^ԓ*5r0br4å9uC~j䞕-})"mj6c Ֆ|ӡ2qpT]H9`#ɳk]'2ޭxw@5O{*c)F&ixw Ѿk@o*z>D|#ĢJIJŝR|as~iK>u bt/邶\d+-I&d9q`aoCrCү5q&"A cFy6ϧyzʗ ޣjve_VԻC5H)/CJâx*Є}+P(L `ߺ솈 c0xoX96? BLRQ;K&H b>s@XIL l*G vۨ%FNQ6$|:R;anj5Bjy fkpeo]bH4*DTbhkӍ k֯^YX^{k,qW(d6S3_%ڲLmՑ>(Y'a9T P3^06B*z Q] );W'.f1#C7~zJ+,;6t)W)mx: U۴bv|`V#1UHo6B})"rdKsr'݀b# EJEHQ+&ˎU%f'b9dvqHljRFc,'ࣻh̨m9- i!)֐,\\ νx\aQNd>ES%]Poɺ ~w]?:U|bkj7" bթH%eiYA?~-QRRL`AHt1}08}5oY1$b-7>[HcY. IVbz6K\x,o.~VvvU.u?h̔kٖw}c& h8w/sj #Ya E)`d&Y %If 1s@+>tLn]RP!,$(2P ȇÔҲl%u{H4z$: J+B-iI{t\V.u֟fj(,]@ZK @JF sovUW;UT>#a,WӁr\ތϲ<VkH),ШWSOPیa`Q6L6y;fDeCn +w}Ҋ^#9KHbCrT39=)VAG+TAbh:P&E WZ]ck;<~.-XAJFp(1w$Qဏ%s!袤K+@|ZiPQF~^LNoK)F@~)FYOoFpK->{2.r KQfavWx6pY/;h'per-}+\.PGҞ14H(GBy5}!=6b]dP%>c DK;tw_ , *?7p)):M4ShRߪ0%! @|jӍO;8 l8Rܧ}xYˇ[h/ͰoO.;X(~qnzI,غK5(6S^)teT׭lxomv4,U/fB)U؛ {)^ZmP(CGA}YGwr볪gHKm}^abw yˊbXϵuiu 'R1 Uc1TO4c,eG롮\B{Д^=3혯Kf09`PXu`6 PY϶ڕ;%ӆ@{BBQdp8G4)P,A=h"8LV|x ^,)1Tr#\q2GЋϧR2 x:]W>҂"O&= aY iOwc9lIWO [Tq7C'ܡX#v (Wl/Q!U2 ScCN ٭õ\ic!)̊CN7hqMV!~t,vbP.o XӔ;>sh#G7'(CqoUh8֕''n[Ū\, q#ɰِ%x3oQCĠv3k`9C_c͒5CȆP3ޖo(( ź FOR!=M +nNlqwj,TygXMe泗_l;OL1RkI.vE'|0! OH7v|B a8tf}t4pL}~"?H7P+umVՈt_xFcR(Rss>S06LM @Oo?xJF|Y<8JM=i+q`; VSw?R2Hɂˬ P cX/zNxʹL͜\g]ywO+[.mvz;;a n}=c1=#6lǮx)MRQPKqfQBh 9I:rzn鱜EF5vH@+lf1H__GqlNa"mUאO˨ [p`@O,Y\jS"Bś943s6 /L!o Ъ]\NBh.ѶL萉蕐MEN0MY.# rJb4JwσҮRZɿ?-ߕl,yU q/GOOy=T "kbj_d$.{QTAۺdrodeqP!;sȃT_/tm/PJ$OѰi.(54Cw8.n~?U7ּ+q[2T0OdhSiba?E.A L<),zfDzۜ\&]+ &oao'JV΍$ +N8 5`]0Z,2(* 8Dq$^ߣ9WiͺJ]*~GC*!-,/."֘|.Gs &;.+M7,&{vͺh'!DC2Z_˯Ӏmf 0 +Q Ҹ()zMOV΂ԇ_Y>*f1ž4\Civo{ene䗀ًU_kPumi[HQ +S}JQ/n,P5e \>D ^2f JM>ݚd~^Lv`ғF?+xȠLlK{A50-mQ6S]ll* !Gږثw;n; Աk"4#S-Cp=I<tkŭn¢KV&Ne*UR,;@?N-"|9,პ0zSP\YDsYsǽP%?OP?MlMz݊ʭZ :/<"+{W>;XU?i(Ɓ[l\kRk"$d4uX|H~oɟBH0Pm{B Yf {6\L+HL3#o\oA%6iD$ -7À@>@g%9!<4|ppEVo?jTxn&G7dÃr3`P<}DQB$՝WoM˧Lxd! %xk)r%G<'ߴR? `6-f&WN.C,?: KE7Dvܻa[ +h #0&-n$ܿgp8y.mj c`Fɹ ,VRkw6S>vuTuJ1X?\ .>Jxh{pKVl27u?ig)Mc,r8$P}ܚ1xзMCJ}fͪw=RX¨#-h}t PZ5x}&)ND, NLXXl~}Ɂ#+UJ\tՖώrޏ켘=X:K^.|0)2FX4Mο\*Nzvy(Z~ij{`pYKwyGPd3 (R=nu*TAd@;v}lgq qJ2P,%ئ{4>WP6 ]mւkhOaduCply977b5̜$ y[ᑖjd} LZ/az*BD5E=Vj(0ĄK>j)%:B CǼ/G?9] -[ݍX J˫7e]ѻ<8m*\-]<pN˼WƺJef=#;hNt4 6ϼ\]k)ka E)Y҃bbA} /3#0?_}!{Mc|O=^?ډK.6JHE(R(8w 3M^L515v`Ey`i3ZzF7ْpagp_bm\;A(RB]& )~93K.Xu$L?6 P;=%ʒY´\N:`E[^p\Em1UЪRWFXVj &Ϭ:'XNE[M <1?͢4<`f%;}rUK<'XIHugTgJzYR5n=D ѣEo[qh`po.g5[-`DEqV{elo4+fn3\A?$E3p=Jr5`plflZ 7`M)ٌ|V:c> U#Y*ZCj2:s0bMg¥UXcDo}FQ{I(knzjTǾm Rf H8I D"z ?eiθEͅ,W6XofS >ɿmC^6jPKEJyyىʼn AsWp 5#Gfos1%=]VM&:PIF2{ȬvX#562i^q5 S6adDR=H.^:L)w"緐_܍X,4%{LE‡ " ?$ƕ5wI=vZ=bk48d(OnWô=)9^1S b3MYӕ꺂e-XpمV.P_#ȧ+c,5ϺMV%^,ZDV9&ɆSp1tDT`je >>o/w=e״^i2MD&ٹ"=/.UklG5`t_dЬrhK-\ ;HSv4Max(ߚ1C_\0HB94ucҝ^3]ΐ7K~Eev9S`ٞ) (>"KǤ5<w^zcD^WD"wúՀRu G kԣUq6"[ vES1G#xE՜P9G(C߶+ȣZ= 8@'pVrKy6bٵ|n}'M F.:gTUo'3'IPE 6!à_Xu֗ n@Tu !QCg}jfTw_XíBfL^U81"5iidb4 A!EToY?YQSf gC,D,Bcsy\׭sQ9'sK4&gq޺jSهo v:![K(:U8w:P ;\՞1}XrA^ b3XT:>km>T;E@zf0)DEVdPߎd vN= mb[T?De]56sT~o - 5\= ƌ,0٫3=Cn'Ɠ ں,%CwezRzr|Gt^ ;Dր3oSf2.`$8 *hbogڎ3&'AZ||bS+17xZ.}6%ϻ(\F R`=\q_Խ&틳s?o;WSYdSh3U/&9;#>2Ɂz "GE*CSR DFgd5]QG9NI ۩t _Q⚚T8;Ӆ{2ZKU44iq,Q/zmXzx#Qs$ɭ@&u\VFU K=2RE[i_`1.y ("> j\iotn bH\0A$ Ss 5Ux 71")ҋmh9L=%MM%Ѕi1 cQۆZ%c2a98jSUU$B5< ~)Qaa6;#GLq|&~j's2Ķ ݝudb9P"-/r^=$jX%-8hL|9WA|'}e4߭m*;ZۍiB4K- !HVMdׇENc>k x.tz2YbtW\= ^2qJ_fu:5ڋ "lפ[M?7ZP̼\CG*9^$>j#CRبd~k{;EF\t ^,*7xZ I R玴O}RvfrFeH(ʖsT+D}|O . x#n?1[)WqbV聙顠 lo\Or5&ydF@.NV쐪XFٟ:d_ ը $5#j Ġkڇ UE0C#֎9B)k`!o0kG_OB |6ƹ5 dž9 If I2S3N7w}T_osS,~Ζꆹ\,.I}#,?q5PyTHo zX2}R޺+H6a$[enC 캋0 ^z)vHsH~H{3'zɟith>a(T ,c,ny͹͖_)/7"rS,aI~RRBݥzfGl74 v }4tWwuҿ$+>0}+ԝ 9T,ʾ+MV\;X-!si eqoۻ2bdevBc9-)Cȫ;-Ҩ[[`}6q0++RPI'1^hc'ˏ2s5 Zl.k>V?ч+DNC_NM.XIfwssQz{$A_0,-a4CY 4Qq[QIqpQ0\BQ~LwsiuBY2MJ=T%^uoD9g؂%M+J Hzm4s )5@`$bfc-_3X)UZPXmthK3R/ƌW]_P K@x˞FM'h z4On` ߴ_bͫZsʓ-@ހz$/x},Dyz\6-+xgCܓB٥U^Ɨ;O) )@}O߸+X[X<%#ρte>I9. 3=**g L@ΌMF$0Z*Cx ˵Ymp3O겹;rgZ<'^sJn UĬn98-vT^qf%'A ;q?t-)@|Xik7gM70 =0 1TqxQy, MLzGj#Y6o*y f GnaJ84~#@Gn ΞGs-Xmժp]`t/y jU)py_D@M^ SIղIjsP6_(wz 4 \2etݥJu@t3|)Ϩm$>u@`//V=(4u9\#\GGg|o)Eƻ3};@WQ槁}PЊ8, ᦰiie+)-Fq1O.{̆/ga !@lU+hZGy Eƾ@2ITl}MWHM="i[BI]F'ʛRdA_Kwe:T1\,OȖV-Smyʾ)`t5R,Z!kfT_8A, ;v"ˑ+ . s4s JـȊƋoKПV˻T&gAã|Buihki2>}QL.o@#$0oB_Dhڅ*gێ&b)q>w*]bXn:A€*oY[ lQ MrW{& ݮX`F7qBQG-ckzaZCL`/a!G13%Sa -Pmޕ3Y@6E 4?l( m 8>@ <&*0T Cv讚=13}:\t?E 73v p0nz^D'Zb;mO@NŴ[pM^˩ \ 6' PQŽq3࠵'e2/vg1ohdkޞ[]Ͼh;Jfw屩^+s҈+R=E!ydLI#O kVZ]H20$`LQt~Νm"YLT8`^$ E.bubV;Dl_bů~/!A-Ӎ+E:XM4wƫα#s`x'B\ 9ӭ'2^ypcCLװQK%˂;c4&իAlː[a  |۞a_ȁKYAyBpzre?YBGkPD%J_x'B -rjPN ly ^#C) bBL !l E ֶD$ŵi{,ϭg}ՃbDIco:OP vgXh4e:FFA+S2|t'6PM8Cd TQo%6᢫و"? B4Xd9bQp6a`?6þ~^䶅`g+&ڃe_@QѰ0Hx?nj!o0 M|IE,|dj=K6@l= ]XF"IW v rء"gq m0i Wy쪅̖N’X|OE.ʽW~K5]L"[P U5o YHJQqN&Ij|8v8Mav}\25I=2Ҽ m.V( =K6%)4ݦsz#xh}iWj`e͢L`^bB滥Zx.ہqח,]@94 mYNxܐv\S%PZ k` 8W|蜅p# Ҋ(Zسlx&'HHZt3o9ǭ:I[Lib;x pt$ۼX4vB=+A/d[;kPXYڟTA;EU4mʛSU+Lβ*g~z'c/=NEun S$ _T" [9[Qk%SvS0S3S,l?@Vw=et`;6#ao!eVLN }9MD'c/]Z;8]Gы Ow`dR)y' b%*^?`4IE=\:\]Ɉ[-:[6>Y"%vgnii-~9/rg6,?l}%׋+Ώ[HuvcN񰒲*$sk* o5ufXab"y՛*ڳ8kTݡyF7?-5U9׹IV]vV$rd>,\ *pM~LGi9LyS,rEc .YɎW zyq*Xo^$Ptv4J %k;!ĈN*>rIfE~FAt-`gC0SS$mt-’nCJOvrTs[uxAیR6`l > "IG`DP7Rŷׯ650չa`W Sc@{g@XNisv4LĿ}( kڅzvr#4Ejlm'Le.xt;XKj @(S@+)^>ZXui߰UCncX"o ˒/ҤIr΢J' ғj%"̈́^ q0 1 G?L4t>qR0K Ty4u ێ S_4'F> / '=Zײ9 ?*s,u5hSl\ >>,B/6qz׎:fxˁDEL3Dd< *mߑss_E/~&$^rүAK\!>LÝrRxUUaQ|r:đ>PA1-@k4eV8ZkKLW( :zұTo/!գW[ﳵXsm`qz@4WG쐄5 ($T3z #KNC\~9f\=D"Ps&!>Ԡ][yOl1#@#0 Wv*2Vu\|-N_vrĜ he{bUJH ZD?yvXE.c!6)#d^makB0*MNX55qˑcz0osJ& ot1 9)M5(RՌƒ$,cs]{]>_,83~`( .–pOvD/WcOH'3?G>6@(k5(}i: WY_5`ٱk 蕨64?k%/s4Ī>&f/_`A~a1l9oVY_ǶX-zukBu~//w5ԟvkյ=g+,rvvhvwC:.5hܕi8W|ݸVL+z1) #uPRN`aywG6DD: GI4L/v[KՆ(߶& v (Ap3%K T)'DD,_xb ~*^(O>n5MuD܅jmU3,eHז߲lizT IvSKTijMӼ K]^[ݷXD ,8(^Pֿs9NCyYrhn:Z0l,Q6[kD(IBoWzpȨԉjcçB]KLz% ^J+a{(gX|XU, WM׫smnxYYS .^&R> lIPT̚k?hLE50eFŸ1[Y:)f(s/4*\p=H[j; @:/`kf$Q|PJR#υ#Y,3c$#=ƶOd]e1 u[ "$ZÄLg3ת:so6?13doE6BVS4+PG>u^]Ht"9G+-#0;;K~Qo^g)в_~:5/P&@Y L{z`ρ}usF* 3%\@Z`efv~gnghsr9Qbʕ+/.^GstsF#FaψG Nqѿ_P乓SuR×Fa4y~1>3&/00V&WQ_Z@W0bڱ[,mfg,-k2[IZ2<ޅʲ:$= HuJ& +,Lhs[T-aR%(&1g/ĺrK49Y~#R9i>^lt<񉦺0uL ZpkeMKxPOb%W>Sv:B̠;h>9Dol̿Rl%kو5ty4\l,e 4d0WDTeh;8f| 1:[iXQ΅F)WnkGzpӅXpH \;bA8/Vxcg0VV )<Z0 eF¥$ϔ#k!]V5kN ,֏5e#\6g RXqvٻO/`ne  yޓPA`׸x;J{R嶓VN*vR2#X[Rɓ|J.C;Y-K7]`)3 *tsT xSL+ ='ӿFNZtċ}qS#xf+lNŧTO*h+o͜PK)-NUEf4o Ækk4«~=#7Uq GF IߤL{,U_I 4-G`6T TNzȬbp77:{ET'?9B'u&"Gl'J\5 $(?`Yk׹ /)m|koۄ ca 5F]EM@-^C ]2|˗̬8XOR޶gz 4Ÿ/\.o9Wy²ϙ(CT(ή6Q"M@}*[Po@Gz?hIY;v:8s\`;$n ZP[(8]~`OEV֙N5GqfPy癀ZtIuPZ7iڌ({W7? Zo?9Bj6AN%Qo6FlROд)!Evk*( 5Mo:/<Pv86RW%CU*&%o .YEgeac=$h=WǟLfNu]pLS7)ا1x0 JKrF w=Q_8-t2Zr!-h; R& TatK߀^?UA'ueYcMUNTJbfmw3._ zA>53ͷuzWVa[9]/?AtHs-Bb{2;ob97T{TzϏ`Y#|V!;Q(il_~"b0#*5g.[jM  :2hTHWK:nXWJotDF m/M[5?䍌S%`{Qflery?>/_Y;_U@3#3#x),mڞПl%$#j"z%|Tr ,4Qi-lh2֪6_d~$*ySeE*?,1~NneQhR Zf-s{k12++' ۏ ɗ'/^WN3rԹ2td|rhg~IO61i ~%>xvd $F=a-F+a;]'<׀\oW9^ilՆ)6S1:5VmJ>?N#/CC+ iXwhf:!"I: Xɲ|]߈~J}o$_8oRSsh/!{P%TCţq$m)Kg>_sL 0nl<g zXcLB{yC;Y͐JwS@r$; Q|-dža @%[@^}.KB[V 3SK~3QJRMڲY(';R`>eD42LD/]oM犷[[ UF{7e8-R7Du~ؗ2 t}TnEsݸv]|a DEq^Z#KD^.vMcy8}L'qsF$ ۺOAmTv&"&]bJaQXt*6 *j -%0;CE>JF#ȘjX qFZ^,qXBTTHR ]9x K/X*f1'Ns孷y@5Jhۊ+ ) vIE8`\z&2,*5BZEf}EbfOJ67?o0WST1IԞM]6r#&`X^ KM/{;x&,Tff=R_upmkx"kq;Ms_cY%``pG']qjUJA,"Z s'^%(#.8(:2բzW0tӣL!Wt`_#˥F3Sż 9Ϗ+TۥR|lK@yV 10aP~2Uhˏ)u*Ya,*Jѡo<Ď++쒊zգяXKNHG^-&/ m2"gm(Ys:B,ذ?)d\ =Hdjk&J1U=~\-2G/}y͜MZ]NjimJ}zȐAd2 oApFyyD8;jesGq|GxLF~sP-#ޅTLQyR҂3=sk+<%`&M*fj*EFH(R(`M,}ѕûp.m;0,aYnoxKɅ̏u7l`gR|*n39qlGg'݁5;iBrGeN|jA~ma0޲fƥUxq.xE/6M[00*όy^FCɉ@5eoĢ#a}ŐyBwDB`Ppzur|72&,eJQSٍ!H;Fj"I֏ydAR?^{?J.A9J@sf7&h&n! d?|߃g|ݗM"Dc u-x,?7(%% փWGh8" F`w}x;7ha'K#wQ7j`jN45lBˮ|Ҕi'`DB~@(˝# 7O5z/ҳK'<g 8B2|G{]uc'C5+n7CdzPӛ[!4ӌ+Y%_3/F\Mh$vˊj/& pMvndߕ" fbk$tn&n]6g~vs<>f@ڰ Փl'eom&md 4?zǷI8T(4i|P婴`-%Skn;ni,8a֕BHɐCf-00szqLg %E$+&&*s^K#fUNY@Vb]۵r?*Gװ (Y&^)Xl4 - >*c0ZG/N6U Rp). b\{#z̷ZqŶ*'~o-eZ/'4z@`Or8JiѦ!Ipѩ|sm,""iGj̰:Vvӝ`ôlh Z9ǂ?(:Ca43%'PAF"JK J zfWs9x̝-zg> xt> HlNΓqȓNH3&;5lnh=-23 悢{גgw N15UL?AL G=x21c^wh*kEi20,['zPxrfMm0>^19\y@3Կ`>j+Qi BC7CCOl.o)+eNoc+q.ϋU,2q7iM%ķhjO'62| MMD`ψܗttN >p/9)ME=8t0„T@a<`Smk[g*׏5 CK Cuu΢:^AAn{ ux,ʼnUQn^Q־G0>H="a /w{c|j;ˮBa6hG3{& ,|sU㦄~ d2|b*5R}g=VǨ|nPu绢W}ͅFk3#`RҶǵOj) <ԣ:"/ֈvf#~\= hpCFpq:ּ+ĵKMW;ydOlfiՐ5MN0`Uo?(V/NLZWVEfS!xfͦw~UaGفo Òz8%VI0>9bUX@x m1S>.nn*#ƩsHZLs1lπMN3AfLʠ_V¦Cz1'o\{NkES 2iѢ`gA sX"8E4ZHmqwdw֗ z3 LٲkHHͥ#yٷӚjƷ{[TOTƘr qY9<~()zdrS h%w`KS7֚ۊ蛚w'ۦg+O)\.O7ea4Xd t^uOp;t3hM ^DͩPBS! VT]Yօy,?pL/~Ge[ݓ1Y/gi L[, rq5<8x=޻o|ւod sXTSb7[2Edgﺬ`DNFkB'XR8}>oQl#y7V.V)NH6pbRHJL=&qjK,:;r(}(,Fܖ۹,>PkNS/_jjK^ ML iM'u wAcz{v&+ d;:r`EWg@ nyrD,:ع-amPU6$Q5t_J^L$.,; s+Y%ǙN\5XfuަjZynT:@f}D _y*.Է$E+aMb>׺X#`>~ nlN?|XW1:M##B/~X,Vsgpi&)]!ug~Jr硪٬q0j~,S1J`$Umdo}\B횣}r usJ5԰D^'J-Eո:7G26~k%|trƱv~"4MQHiHk:QdjQ?՝6(3&898c?v흀TWa:\@RX}A& u1x)c:D/{ͫl;{1 "R(%%yMg_$EKK7o/WIr*dԕ\:a[R TQES;;YQP~g/_39 .1שӄoW*MzVqW N& |kRƧE̡|D.Ai[3qfHxNjD}]ml.O+2[8AWĕxHFv?8%A*oFk"DVP##گB\:ZFXu%2.U- Rr];*Qg CPk=VVgSj͡A E޵`1ê`+ ݫůWvDj(9V*TN7p"#1/Ľ 3lYi."l2I{ݎdt91`>8Un_Olt[p颋pCk"QRTGvnJ*|{Z;\QbdUlA:ҹmD|~dE5Y:m"ʢ=v_.@- A3t" EUͲYl@`?$ N>hB'SV֍{i\xFs5鐦`} Xj%{&$1]hOܠ\i뽚VE^KG1e 5%JunǬ~pvT^F Oj$[kIg4RMLLtcn!3B +1]3߶A뫌N_8'ޜ;b{qr2iW#nvxwnW4U^ud(4~r9Ծ+eWAt񌑓Қ7o/5I8(BF+k_U%rt}6 pY)Q,N6H%c`" uIߊj8;U'|u'"p:^`Ym%TZ*w6hRE#v2teҳ^Bl;6Ņ-볽k2bRq|9zK_2{*~34;/il'@U()X[%Qγxd9-`]錶hMM@[/[ "P:$X>UHӲE%[ɀ-UYkJ^x<sAgCr4Y>y8耷8y@)݆}ZK@y Ƿe?s%G?El[ m.0aK|`-7S$A!wTVI wuq:HqѬyq Q6!rJqc'.x|G+M/y^6 FRt.:Fc@o2[M~˂NBXj'h+K)`fYt%^@ [w ~fu7]QUz.-afpNjS<Ι~xux| ˺2q[›r&zGm'J̖\/=jH %=.'Ht^e Þ-a5s(Ak3zEՏ8.1ȷǢU2e=m>Tp0dc?=VQvt+~)Zc?mFzI i!KGBo`1{K6Wx'[Dk:+!(muJTqj\!q~ gs଀iE5Ok7pUGYcەZ5ӨY6iҽӪyiUeT?V +Lԉsш0<ė&Q(f ?{BJ69TiEtGjpV:vw F=ѐ]ZB, SCpY6>JB{SXӷD(C]ˁ۔ DJẆ[Oi}|Im5L "ph7tzׯ\z ss|iocõDD|}|9$8mY4q(UXb(طd|\հGqA*K ,QNoDКޗHje/TXf<=y?;P蹌I윛U_̢jBgY0F4&ޘOSYGx(RBM:;=K,.ʱ]P7Vp٨ɭi[u qlqɦ_Â6bG0 k-R^.R7z)q^ O8& LJhjĊӞNZmQUw0|!HJyWȴlj}Zgk'GtXt͎vYt4D+h.xPd}T7 I`!>/%NXqL!n SS\/MIЙE{iI[sMRuЮI j;P_s bw=V w ՄX+x%w=QjvPRUqBro.r ʘUjtlm_Z9#Yf@X]v@$e&,,cliV E}A;,O+yGwΓ0@@DbD[~wGƈCLg 4}C\0tSa )x]^u$ Hn9 LtVPYvQ<5fפSL᱕͗h ١P՛%z!Z@P6mzyaQa<,{ $@ҙ0(ϸWXY.~faF\OɞZsMS2|D{G;ssݍYGwr=oh0k0X{ z<+&~_I_ $24jG^2Rn&9u.x4wԐ6zGG %@ cEC/*9o76 0}P qКZk >q8=Iҕd,xcm fh #^ɿ?1 Mzdf_a'`b%mMa)۴N:in@WeݎQ94 =Wz2}πh. 7=y,Nrwe921RDgv.9w XͨmOt-^Vs.A;6h*vFʣ1uB ڑݟQ0rP`s>0k%;x`>&SNbx׭CHNZkfbU=hJV3]A ڙ]Ct4HǫLL{kvŃw~&.nZրGدٮl&c:/: gDM ¤--|}c\*3>ϧ։Ij)hֶsf&:*\ H "Cna 5=ľ",`]76Y@M ƀ/LCA('Y9vXȱ厹>+X ?ikJM~Vꓫҿ`x1ߙiqz; R::u؛Z5T"4 djN׿ه@rIGn LڪȷmySj!4vK^o]~t v*3/3R֙m$ST# 8R(vOB5~ 6bÔHl ;!y9foҞ-SH3T;!OwHbɍzb51?:§ueBI *NygǿHCN tQJ_ 汇rK4f$I*.4R,:gh)?MkIW=ݲJ+n9VɄڢf[GHeF=3|[i{lHtr>xkU ׎Ƴ+Qn 7V= tU/(@\KέLF(UΠNXxϯBr}jmj~.c՜^j.S]i 6Y]yhUZ3 cQHV(Qzٛ{v8'17a^- E+ 8TR&[hbD -`ܚQ, 2EK8[u0Gu8`TA38<!g`Cvֻ,{8:tFYOY+s)~䈏f=dوpT:إ%]¢/:gԉݲa*BDJGrdPs]_ʘ8`gX :̃|<Μ<" Vgw9$ h$"sN_;aw NظH>`a@l!E/ ^Ӥ\{R=jD\hj8K$O>a *‘r"N-'H\t/LS_GnL?# I Y @R ƱENR:-|3&GӅ!0+Ie.|5 NBbp#HX1gSuI=J07o]ϝ&Zԍ=TC 'x\$ѫp$((?.^`ugѸJWMۘf0HY1XivU[Aܩ\v1_ B³H72vi(lxV9.X[r~n)e<0 _4u 0B%C)WCR+dPGZѷ .T[+֗k.v`r2:<+oocM#Y1 ^0__#'|S1bJtppn#Mĵab)C=L7 eLyO]t#'2}:t 9ࡃS$˷ΒZGiCg7&4DdⓅ{My!Df(|!1+DYƟ;'ר&X4$r᝱i=ؑ䣄m*M*h9u]sXH.g&f 3Sk,o8r\(J_BI9mXo{؎nUChV6-xe*Ly]NŶYMU_$Z;uTHq̽:hIQp+WtnۛC*ȥsY%`籛^MCkySb/&f,qPZC|>q^&2 D;e\@ 4h4Jɉn9b ('ނv {gWkqkʰ Q~S ~D2GYġJ2<:y8)  EJsN0I: ɜC&0L S: \F@EHXb^&iyP m;7 y&0utӮd ڄY' ʩe<\('ܚ rUA!dBmt)xQQy1آo77kA mE\S՘)`6~n뙱T+" ZM ]W!jc@D:N%bc+9ل1 fT4e$2#kr-k`x&{Y$QCkk ERo?#1<,Mf:TɔK]BPc>N =.tP^Pb£&:N}LCTjº2|pl(z {%dA(<>tF]dnb=edt!P. gX uEjHT^vAI--@Dbpc06:%#ޝABl(gQ\&v"F'2^dX)(@xKf(߭#R<( m7~^%ɅtpT ػt+@D4ukͨ_SlYO֏8PF,xjUi{DL!0kL߳WG)!Yk9X"Ų%Y/%{9+=ߧÎW$t]՜| #C(,V:|W@x~x2rrC *sZ)x(4ڭ)T00' jy JSoJjKB@:'ݬ' {V)̚ȣ]g8{ LqR%T3AP(p.o?3h#*rbH|X?;QLdN~N&'#p=o$h$+ FwNi|"Ep:aKp&кw.Qc]0#?Ǫ]6rHrJ|U|NLNaۑx ۔J+D @7j&yaVH(5LJM Ҧ] ͠ZQ= wlVtAΒދT:߆f= ogIp4m͍;}!W۵гcd0]R= fv%C2EVTI%:{#捏M~$]F~-ڀWgS vN !zƉ e`)3Ezcv S[0iOie.m!koaXPC(-,L398#[K2W")3~)BU.Y ՄYΣt]b@FU;` HnGl&#nRK5G'X8 QVw|MQ_|w% HX Q:t8/xW*W PjrqY FΧ|`Ĩ溉 j3-l#u#9C a`%ݖشӬ%CpX=O:q}@y衁TIܗ͹`|v|U\z;~N.aqTQ~S+ #Qza-c*f:SqgBELT]<ٕe_!pHo7>1׃J]F|m x}B&"#dh{5,@Kh<+i9A|7 ;Ϭo؞ٲv˥lUY~Nkե  f+qš;MVT^ Fӭ,[Td Za@Ld,6znmlAk]b4'%]R豞Z Rl՚ (`Z0|vq'ם8!Rkqٝx ) Yz_1 B;_ȻVx8t \*3r| '4ͲP>9܁P@=TpQ4 vGZ05Y[XhBȒ 9j]N/(B M}&jiB6ݜRiBؗGU{AtC͢kɀ2N9h杼hVw XHb_؀u}c8LLlf'GɧR:5I1J^aWhN.NnnȮyo_F*}b؄!1A3& _n6!;Iz6 v:bKʀ2{"HA`0tny S 0+G/F<j8uƒ%r3]UB@L0[w@FPows!<'PWmmvvv}GPF\S@- 26.>T GPmSoSyU5[cm|gGV~j5˸=/Iܛ0:=\VT'ըZ`N)06{BpY!S+Dp1.cj<b/O`o"FoGjRn8#ٖ2m\ LYP 얍%$ɼsŪ`udMh>;4rJmOE2w{%uT d9JWV5qA7"!vc_0i'؏cp!] Zjש9Ы)$KKW AlZX)siv= Zޱ\ nD"g4*'M5 #iv~`б-P;07S= [2.E<˞nuk+ \8Hnýy]dZm,^ؠe/ LҌX~b]=/eau4; y yҐ=#1Kz&Z5!z<+*<i#U1Bp nۍz]Rrxc+.BPEXFYS9m2k_ >X>)݇mNBNG 1û|{ܠt.~Hv%!oGBs |nO̟.u@(1ZYJ^նuS, ن'ΰnO)]T*=^"[oHŬ7n k)E4Ɖ+ğ5&b5XP>/seOCf_8c gtdn|g<"92:m~%ƚW! f ޡsSduԞRv ]AF6(mB h:)'ɩI$ )ڵ إ1M8Yʝ@e`tХpkJc,lC7u_?,b}ڨ8F&!zE(P3Yeʟ. `"pfVd綺F%C澜˼z:@`Müv+Jb5U: *hJib#J;&G3Q\av/O2oj\ 8;rO&N3¥1jPb mUte4}]|!.:>U7 BVX*SIuJГz嬠sh?!Z(3LUS &! mzy@^ol^r ϶_n7+bIfYI8 kA@)Xq.UÍhmyal/!Q]%AI"Y #Ȯ"`8M+bH-ϴROÔRKs *Ez@kbW8Q#B[c7ʝo`I W {ck݀ix> r  WN lcheQ$e!&:Tz $DPSi =4{Imwzb߭X|RËܯ;[´-cTNL2F7~\ t (pgk*5b8̖*YǙ!ȍ6ا?rF͇J;9<4p3,^,-% *XbAn*Uw4a.C=L3FrY%Q'&f//CHIȗ*}H+JcVu( nRi 2r]udj-_xopR6 gIeMUF]K b4wiҡ}`?(1A@cb&NQvu̐ヱW V?ŝ;#dHeCL4 $"JtHVHg~:05-AnxpޅA{} e#l BQnt(rg-a]1S%R>b⤱%.OS_5wey} R8 n[9Ur k=3_DE魮k̄z Z b4 CN )PầNݎ&R*%{66u,44ؖ[c~izBTP_uy=u,Կny3ǎ3mfUaq !#F{FNn|20rL V*thb2u^45.%o`ld N"1-=؉˱0F(bt@Odm㧯b390$3yyek5AfS5|]2,Hj"Պ{% Z1TR7P"0X=I[Xt?4nf:T%pgnu^Z%ǻIsD|[)d/sMF!9PmIoYҔ2Lva9dҔٞM"j;3#|k+=bfZ Y$ưԤWVؼ$*HI?ԋn^,ܰ;szSĜB#9HWjNb;lykQ{$!Gp.7@J((M=pcLP36P]gigW6u`-s2XO):\]!2/pw{AW8m滛&E-/Ӽ/҆QO#$@ / ĩ?xPz֏ 'c3bp_g M8-`Rfvɿiߐs<,4B 5m>~B߄g%=4]dzZ1 Mnf^âb)EQո `ZpcP?I";BDJ,PXkC8<ۚp,NW- z#o%t` *ںsnJ,x'@'Ss#T0JE:2n_=u,iKY Ӫ '_i~YON z9 &PԯbYR1G2 t`1L &l_@$tL v\2 ]\s_` :C:|8f۰Ez\p8َM}x{'Ty+f!`a-Hn8oI6?A9Gؔ>U_jZELӬm]?F.F4 cڃO{пxӟ(F_:,dN$Fy} XZ֠jbb=1\ހն\aZvj._;F9XH$ˠo?5B"U1O s up,=ΊiN>Vnω%u>D0\cI]p!_PŰ^,0" 4a5Q16={ClKewyKIԇП`p&cc! j UQG{DW|BN>Ř ^L?hzx_@T+˧s9.h"}-uWRs.%82u (ͩ!-I\o3IӁ1P&a(Ff`7 @uI>\ĉ1ima+T;,qVߦ}FVHXSWZ# _j1~?K aCs" 0ucIbm82Lȣ3BL$p@3=L5X{HƮSjD+ ˞ڶ2 Tx&>ϨĞoJ2u j!]f߹e"i5W/ њqQB;8'pҌY]pWЇ,4⟓g# 9"=[t%hWSa}M䐔fTmP{ƘQqs{^bt[[G+8q 5  .8{e/`mtJދȌboEݣ[DT0D-ץ(-]/߳Eosy~V; -ot^CfN=tE.pb{ˇH1jT&bzYgyݸ?Ξ@~2w@]x8˂P ݕcgX:moGz8~`0"$s1(%iBj`+U?I>Ȝj{dyA Q4et4!35w Wks"Yw4>¨Rȵ[To $J%S?WKU V˒la[ p90fgJ`BV߀\cDzQo﯏vR~du7LT,Y'F5N1XJ‰; phWۉ㉨ԐpND`i8ws@6< wLm&bdc3R9(ISETJ+!e;&\(ra¨Rx)$xoL_I'8nk]d%f5paQJ_*N y}чhۗ`O8C ^S IiR+ &>L<H^o[(7uLs2KYR,2y g#p>'BX=iRY-Cy,$|ͤA(Rp'0KT@ka }Ck4v48ڊ\pU7VADKy!\]DJSteb%~ uC'wmAt$SΟDž)Rś֩)Nc2$~7:hQZJP3t;<$)DP @^]};=TH8Os3IЂu|{*5Z'YEiye?|]p=kXmrg'T].j[Tw%L@VI鷬"U U"InH#Zk2rSJvζy$.6iɊ17$v\vZT6L4"51y Y䡌_ -Jɴ\}Q] .Nc Ч'n{dWn[5 L~[JTV)C`bAZe"7?0m5NqT ^t8NEj!g$G!ډAx; )fU&C1\"W-;%_Cz3,5m#+f5D#w kZhKP'KׇyP^G|FSJojKfVBt+(62k>F ׽5ZWEIEX$<Aޑ^X!rrs%`(nji)} ;[]F)% `4rL.vN`ۭ| naYnk׿xѩHJy=8a;Z C}<;/bΜ曶ڮ_ K7wY$ ^Rj M s[|n@<0k0Wcyp 9ha3 KT/r8M mNV_ Tdq[3$_oma+Q<hzYlai*KV_k+627%2.d-µ~)!?a-A{ǜwXZ>fSݐ8>RО顫`c#7r0Ȋ6l% X'XRXq;^hoڄ7HfNo 6 %q_7?AΪtٜf;,6oS| ~!Í7Dpo,3kk]GJU!KYb]~vp48͝Lf^d^rS`L:/t#{+8ƈ=ۚ;D=* lIͶ>(a IU h4A$tv}WN8dc)KO,ֳb -xѺ)%L&i(()^,Y]ZNчwbhĵ@&ݮDNQKzR RXhϑBζ*-uYvX.WVdVuk}ՃQ{mfq* mhmfCqN`l:6xL?\;Y yɭj'63rpjUbvc𢙺:T@WJj}{*\l\@aPWg"9ԁF#)2wu@ir$7pߡx bOwC!ayq[WZ<_ؠ92j' = x!Z;)x%oKH&@=3JR f##< JD# [#߁w yY];[7_ IMqPlunTh4cPڇs`s-@#P* ? #X(9?jy? 4t~15Q#TjBf?J]Ĉ&p4F&=4\N~gƼ?0*"mn%qu_)ؿ{(KP pNg:ݰwUo+K֞Ø.J[YzT18BxIBGgo7AP.3XV=4Z!ԙ. :OE Hw fܬ.zzi6@ģkH@`o%0(os,ـCV$~H5)X(cz}e Ku {2 lԄoLw?g􈲛5?D^Zf-EGPAgl&&]I lU=ePsJʼer\6)αԀN}$wf;VS#这;Bs-O>bb/3^B]J3u`T.u8`ک U 2`SiX>Lۭm pjZIaSac =9J]9o_odAw_%i@>T?MB&օC"2I$|B__#zc8uzE,v뮹}fκq?Xm>`'&. 5f?VWj! }$aWLUIi> jWΞ}њ/3:iV$-?AՍU[roeRVJl@# Ccpvn&Ť1%g&#,0n.(M&_p"=')(lӉ=k28tG!%E^Ʃ-,])D;CH@~65>Uak b-yllE^ ՜hO %ԯ[ځYL _kw库L}j IʔDT'<闆p7̡֑=--;MwhΆۨͻq#Y0SkW?@:%C"l! ^6BS,;(,ZoA &v[Ϣ<$bJ'` L $3~=UB06ZdS2 %ؙ>2QMg3F.8]1Tm/KNO,~ND?@R}0aLwQgK&:f 2ZF)nO`2c a6CSH7? w!. m>_;O$8.J1NQmʖR^q7gH鏫\IVQނCs Z3eQG̫!^w]r^`{dBAz[ ]sc+\V,DٖY7/)Rypt)18QA`}pL1Q8KO>j@ zҢRBxhkn?vdRP(&KqVaiNrl*B<ǝT>'X0p ^+ek_b7菙vr#|y l‡}t :fyhS+G^.X C8%bQM7fmFՙHK^z*Rň6>!'0t}ra 4*PRJ7/A,q@? +:K^T\$bMprJ$V! yӐ yT!o(\8 67/M|F%8$+0y JkvӶi`؃_B[ѶzҸjrP dnQE̠4^ c y#BVE,od$ԗ5s8*4<獭 iJ*wyq_tA*|lM]aبffEBEc^3Q\O2[v"WmW7qA΀aOyG|,_M@JCȲٵ=>cRģXKݙ%(hPTR'ˇ ak?]넌[1z>d -NAq Yr?U&aښт_EW@:02TCdN&(ZD1&]{, 䊦`~DH"(?)x%v/JQ<6Kt 7Vk"a7apr(a.b 4-6N.)>jug  5 .BRPj<}b24 m'o KneSs2:FgO\ Lz<9( tt7Ds$VD,cbf>&;}ttA'#13MJOȹCh3)}S{U2n\8h=1H$|%Vi w796g']ӀK$> e ]:W%Gs/ \JgnYh])롆HOzZL{!|&]S>, w^u1(V=㽂pg`'{xzatC224*H)S8a+jZgSEIL;U *($ 1cys63($P?MYBE%~[V4DAFt@gP|$;ax}YEɡd$&@('σjө]ȐVq[<?E\+*o\=)U'm"ϯ4 d K^8puVހ;رsnΚ3L #iHaմ=| #@k&џҟ 2_[ / E} @{l|!9NWԁ 뫰:yw@<$av5k34ɏQǮe cJ,L].¦yr`Ԋl"[6o*-cz|k=U4NB,=IiS B?KL @<ϝV~RO KSkNžm.kBR_>yT'Ta% ^u{9l+ RM߯a_k3YWОU'Ϟp4<?tp-f(3ꐬ_tk`[cQ-YLp'x5ځCЧODTbʿRf٢[׽s㓊KcipU+5aO _upw'2ˋY#hqoڶ?Ft%Hr82qO!j12QfJs bu.\v"O^c:]䃧L;8O B5XR:\lü]J0ļ6o58arn,O_"G 42ťlϕ&?MWZ!zZ9gNRUoO?e~x'*S+w \ 3熙V[H6WӔXCD\L.l lFUKO?䱅)+F.8ǬG#BٷcU6HWq :mIѢ[ M05zUƯ5>߽32:t$RMWߋxHo 8N'뇌#\.K! #'sX17Pq05 n02bxJPٿGaTUDظ5ͩ9N9Gc=LUg4PDǕw@/i^;PLty5v~{)s,mL &}:ĩB+*ݙ>ϸ Z*Y5G(6Ţ.ZeTkЪZt Lez~j?ȯQ6윺_?J@gתqD0f8w:tw`ć}jTL/=avPB#GaW7yUn5C#R-͓,͂r츽uN3cjg(,ݮ.rʈs,$&s)d2N'#Lj}A(L& p;s^xlQas"lP$K%XL[8\f+c3*4/{#[{"Q~ut'< V腦g07s.}174vC59( 2tߏq$d`}(H 0 vi'҄ ^OaXtwF=j+XD&h~i-f91sJ ?8$Xzh$ uM>m,2qG%o(豋iҬۍG:jbl%^!!G7.ez]х֗ourk.RQU@M]֚0 iom5C߮@&=b?&G)].@Qtt›Xv~k eoκbs*d!φL ){L:\V)/Oһ\W0^+Q1U/>eZ#mO6v:?{?T[ZÛq L&{\>[n.BJzvdطV8A1_.hc|p&K|M'x o8&Ka>C Y?զ_>݂ ޴]* r./x"A?r|WXF| ʩ~OZϫFR].h&U"-)_zR^[h:Tߣ)k_X]yTx 1XatpsP*]Ydt~0Whr%$-׻D vcI@%x,6gY+v9a̰[1,`Uq*+_ B56ۉ5ֶN3Ff_{gR:ic2Qc;;ZE?w(>i~4V;(}B>ǃ~_GCb,Ca㡤o,91g&gΐgxȈҼcLE{3k=46A;#AsFڞqyǿqJ؊1C)љpLbu윀LTdZp@fU:#hQ:[nQ '?gY+G:M&D GֲԢ:ᒌnϟnMSeig1wA/)yPZntwLT ?SMmz^pg[#hY{\N}`SWiZ͒s4/1q#3ͨHO9f fg+ҩ^0gl/H}rA7 RccnoBl0=с@T⋄T'>ΩuqAdPQQk(aۆU t)t"i_@]2Ch3m*+:/w;X] @&GC8 i߂C2,y&$ia7 eL^3ha4N970T[3yk-畿V#3)d ՋƂ:q=137shBrl89 S7LqqDE:JxtB#4gҩP MtTNY5$h >( AIiO-@D_ގ4􄰅1&3O" UJׇ')rI ~s({q?z BjzQpI[pz-Zڗ|Oqau!kG6s5Ң u33uyƕRi BhPj43(b8Fq5OрA]oL,f$z[~rgfPI9sx,;Ee8!A9qwA^5\cɮ֊x"myxH pyロ4rJg BleQkXy#}?ۂ$ .96>}Zc X.ߥ!O3F}e[…]>xnH#VRG[@G)PN4G=Xnf7U`pӢ/ /$shDlvtx@ K.U{$%N*au,~ _ >u H_}gAD1,LI ΂ACJyt L?M !'!\>WR-a*z4j\&pQ@**⻒tpW=eTKUyXǏUg&+)(C*B*ʖ? p5Xj0E[VK)aOiv]iy5Ʉ+awNӕȵcXTCd:OVQ\6!}cz{Ǖѯ3 e\8tV^ YJ^m7)1oRn]1+'VMͪP =<DkKdceE0T۰. ֘n\TY~}1:WВP4)̵v5~y@tEb3t2H(?5^:-}#.hrΖ:A O%Jz҈EpC`W:rB=J%N#?GSOfvѣ~tӞeN)U\Q5ސzyYL__3p"]>Il";4!ŭIUENzc .f~wOJ- XnO]tۍ?qe@MP3Xk#s?n: ׵T |{,(WL@&3XZۖ@-Q-WY`'2W}tݺ2/igɭmC!@o0.xSjЛ"E{FG~*odͽm1ipu;'vqg/7?f%US_9ҡY, ~ѝ[J(\eJ7|S"I݂Yz=H잎FХ{ë!͉EVnϜP dftEQp i]nF83G%<]fTD0B,p34-<73- qPb^ΚqsO-jM$| LFHw]!`Pyh^ϧS_f|7 Y6m"hbM# o;Jt;3 KA`-W(!qfұ I8}FZ;\b^4JӞC[Q"殷pHcő,|wJѺbwzptP"Ԥ/%iKԎ_4h~t&@zE+!? .GYG1T͒"9p|HUKO~GHKʝW1 Fe -RESRV/#q;NA;]sy.mɀ`, BA湝Z:ۿk紤'#5ڬ /5՛~H|[vlmgQR1EO)B?8m/SIl y:鹮(-r50CZ<oPT9Hhm065Yq_3r)Z7)BDK0.y"l[_ULdN:WqMx1O ya=mDSsZ0Gswp;䌦7-ټg!" H).RYq 7?t Ab95=vS&%˽73N(qՇ=~ C*W@a>M3O!1_ _nw*;ׅE2*2 Bhc uq!o6,v'bLA'UD  ./ (h9ـ`]V[ȲNJJbIo91;;,#Jw6ʘp4S_v l-̯L3`4b/ԫ*v]='V z3#IuJ=LU뚏dwpr7[^H|@G %E鍳TEEx,2P̥<3O*R,kjИYtt΂}xeNvƲOmP*$لcI{age">:)j[sJ|E&q|RDeJڇPN9uF\' Pލz_>RHhUx c,f{d~5 NzQ-g(*)6~T#] pRsv~ BД3W\TQ6HIaWۯ !b<(u?Pۙ{߭|Fgh%e_vuVúΓ,E+kvdơ]np^OzQbk];G/-֚9&#k45[j<6tZ[ ͚Y!ӵY/MhPJ!Jn(<1HX{g8KAR̫\c,y1ZZ:T885OӡJ1ۨ)-I3LB|q[®֓{ZαLKɍ:}- ::(=kf;PZ] z DϮ>f*7>5DJ|IYҮ[rN_しmd}1BN^6|-h.9 bDXuwZ䱣̼94E@ॉC6qBRۧ pw?ګԢZǹ hUq@D8"i{>׍j&%\;˰rc;/hl_#3ZB?>YF>'DõtC5J7tHQ:o~ ^yXI}"qd{Z.opo0Fe%rO"U"-+^4FU סO "֌+X3o mk%>g˷[,AF9v;f~~$LxF dNũ%q85Vd:s<'qKԭbR= msؤn䎉BFX)Yq,j{}rkeZ@;Jt>/ɺ 9K1Si3PAR"1mWQ@t;:ǥvxЈukpdU p*,ݐյΐ6vk)˄νOXGܱ)C4c}|ᣖ,Yk߅cW*,4ieD$Ng Rb\ϻ4Yvifw9eDCvZyTX)gJ w6.j)HV\q=K.K ԜAxe/~M䨌y\~p4T BY 6rK^l)r !䒢5M*s?i@sݣ{IuL2ؔنGNGlhp!V^d1i3m^%wrpNW(+!UdOЋ8vdSzbJuCHC fze0ܹ?0|Q_A%H*K m_Wf>y^Y9P:Ѵ[Ano _GOX2N#GHsDSY Zig}y49v U X8m'3}QΝ߻zs]5STzǡ je~5̇|. ]" <4CKHP2+% n-)מ\6Md$dƃ|G;dSDBicXU4ΞJqi&D]%9}~#|ZaiߘYX3TH޶Qv]| җ`zq#=N+ڮ lH޹f:(td/7(>V飣Yw#X|7z @`rU紃YNtT#z Lǩ^b#IHG7:LPVl'`ZBh'[~ޱq@ɲVs{E">:4p)G] y(.΂aE#ʑZ'u([G'!,q_\␫$HdX& _&@!nhCb#@t@1ݒ9 Z8Kt&ZCGZIWlȆHV"Mg6ʢLB]H7P,_.GP&X {u6{|CG+R-%L"g壖(q,P1qqyWdc !EBwg;e*^zV/C5!\INbsDA<_vZ RS}CޗZK5V9:7׈ӯֹd%ǒyF:S̙ǷWaoCR0a91-yQ:XwN8V*"n,R-m [7Zz99rK@e81QE7R4 صĭ&pXgxXțJ!n7wUaS-bN =ijo)9 /J,"Db\|z kz!G90-OZ)GeY%R'x@'Tr nO"2n*^ZLgƞEZHar..9=*xvxv2<6'/[rك ,aH&"@ ZXj .>UuËa @.5R褓LK ڏ\m4EМ枎~+ȇM"uR'|b뾴P$Gpꖐ.])W,':l3uݾ3lKc#ȅN8 - O; lg;7&Xz4X?YO$q7Α|> 5ߊ#I橴X~a=mҋSڗ >Eኡ˴) %k~^jv+Cnp\H|C>Ȥek/QYQ*0~?h 74fF' 3>F9HDr߳\j\>`[Ki&9BI46Xw2lXszB$\ܬ?Ϥv\ zqY3"v3״Ms7*sDi8遨5#g3K'z Tpau1zmVQ74+qTm9Ɓ6|&۞,a]pi0|3>gtrhVQ1<1+?U*D=b3jyaj_;3FdGx~.纃5dhQLL@3X3Cc}!4$},gH+Ml܈|})4u²N-P"[A[]OdVwS&y'Wq+_c;!Eol$y x^ (%e|>zpۗrXy49$"V~~DZ6(WLI9D=!$͑ u7A`WRd,G7cb]ges=v3~g2J`d/dH_ R.ә#ur+ 2U>wߴSHpCGh\h 8m@r5$O[<Ѽ}"Z&Ue.%^ڱL}-j%y pź>M~@O_hv49fy %𒸌iv.ZKy6p0:C9GíIEՇrZ3s¬=3|NB!{R@ڛv҆%al,背-Uү $J?&=׬}߁9Dn?-gԹ#uwz%⏵2bW^L7qGkkFas39iĶ+$dШ!i~  lZuVF8ZRb#bmA,,<hqLa;7 bւݴ7̲UWͧܛ _qTpyfWs4LVdgCv>/N& 2W0ƂcU}x&\=ל'@`Tߤ86qb$074r 9ܒ7_jMfGއ>d V""i^CWV\vKw0sD}?I[Ibt92i3q ͥtD ;/E0onl{| !6LB;ɯig Bf2 !Ğ`,ԫ\mzChςK#uqETbKWeuUEe~f+Ƙ3 ׳ k=.sH.bEr‹m#Z/+=HՓNԖB/Jdiv6{HRxYAt{b+g9k>{&"v C{4$~O_fDfii:T$T(5]|Q:è0&G9DH1Y/ejsË<IM L2j\,J6aA/૾$E67؅1VD inY^ ,%q=훚oF7iˍډ4SL8){#t?./sEBA1tO||%rL.d3Q\  YX{a0V7 ̇&H%e44$/q#OhfWϙ&NvoEJ' BJƗn7{ӌ']!G~l7' `J0uI+ 9y0慠}amܦ!\d)уNwzӛ%]1vKb1Q8h]0ĸ̷wm'e"2>=ŵHF+@ ӣzE&sR_yau6lD%/ffi`c#FpN^2r8]XPf3c[LfY+wurpaQwvYgsYXep)$$q&@@YTn6[7mD,V]4_j4*=7LkY96qIme\!f!V> %tk`o/a)g:* 5u ЋWдPp'6M>Sd@Dj꺷1S 5cĘ0 |TPoH,L>*4}#d͜` {NCTrݣNZtrJEh?w1։^:SF5iuv, UT}"h VZIgX ^,OYT>I't^Ì_<٣ ЫΞ#9lUf6Pv164_ԗ9Q .PZc Kswox K_q).Z-dX\DźYnG?j7dm06EI ]ޱ:X:Xv"9Ӳ6EbdBT3>3 &t\y[;xux?5 \ 5ok):Vv5N#C|2@ I7C@){fa AZA` ::Z\| YCǍڞ'iN}Tvct}˻{6ߚU-b/f<3ALS%v)43Qs^p<vjVp袦2ABYarٽ^ cY NpN%ңQ3ŷ!SwB+ ItJ޷U^Aٞ0{gYm8+g@ \.W{ >ʈ%-.~M\iTf%K鰊Q}K55mmK}pߕ9pR39ɝ9ֶ?Kxmmln;`QZ1\tV,*Gw7 5I#DU5̆UP#º i&VS{b̩`g ߊeWO߰J lǹ.D5[{{}lI{aVPGIJH04f$LaazpE?0d.JluArnhNJ_z倔Am7Pi3Qu؉j.>v&;TϦboM,`]EJׂ619u&w-06@,_U@2w%G?M_+gߞ9a )3*\ݥ35\-džGqb<7v_$ߨHq"ٔNcBh lzj[bf$Rظh꒮I_QCX.YL7O7`3m?_G5AZV+[0OepYLS6Sv*2IjjW𸯚UڱqdCFkԘf\Br&D88-Ho ~nS yǵ'Lqss l*v{]> *PZYIFKeaO4V0W*e]WYqP1 F&x?xٚm-'o"jټʎ{,zot<<׌X:JDNʞ[16)PhDv5d팉v=sRSI֨)Ck^ d%SeUj81aQH⸷0&Dyֹ5g"jGȭ<j+:/E2JXHkd19]nV^"nj T_}OTLaO~c *DVw;cƞ1 s{*6-l59EC" s MX/TnM2F] R$Y0 ֹ:9n0k'٬,Ѭw(Ak~մW86.z=]֛D>b˗LD21 V(a7GwԥW>Fjf)0k]/ 5OciWj,-BXS+ ڧB ,THŒ4# GYZT/(EtقC,Y}~^ĪJ% 0JvApqs jǺp G4?DSA qB j6tk'&kЊ#41/u['.N:q#w} $=SGf G:L%R|U!Z""WV~vŵA!Ĩ֗Hu]w# |:?.VȷeD?ldp>p>*&lvb2yq,B?L<՚(CyUIVT3~-q3*-$"4V3EڐjI5R%@ظ oX1l挧lzvdž^Z*z<1^7+@)_ $v5~=-l2#hǀ|3  pjpձE9$'*Mz<s<֨}rԨuEF!34W< *aHǹ3hߴM? x`_MuHkONM[+;b(G;,E1W ~q~ޚG`:;b,C=5..R+!Dр(֎:gpKWv H_Ωgt2ޢa W1WqBFה:#fƾvR7F7'm^mfrPG4hc.D5d+!#O؇_#.GCUIi4q>5nEx1ou z{0}upLa5zZX'BG{=ł`{ "4SC;U.#xF=t3ix["qAuՆPM} 9A 2D#=CøSDnTZ);28fˎK=@~S8cm'OjHn XQTBNgNZg*N/*\Z{EgdLiJ\ExAf͟18]߭|(r4'ʝZRI+h9.jH<>Cu)b:>^W ScDO?5iW+I7ghp16C7Daiu2vps6r!;X/n/qm|WW{pMxc5^ҊDeO;K/hzS >pؓr{3t&#T^=S]21 Q02 R'H1PN+dS ƓS̆q0_"i-IG1RO,:#oV(N|)- _dE5^q.S ?P~<\55͜i= ](RrdѴB"3z+p ]}jx?L ̹l4ZĤD'L0Oa-T@lUwDy\ES"Qg;-M{Jc(u$yrgHN{|Rb^vW,2cx&aT˧_+.uti, ."sZۦxy PT[h9yg6IP v1bRD|nQPHc ~xe2ac"Dwp}`нWdpDaeĺe Oc{L4Na{a\Vke 7x\uF&6^o#536/:G96븿 Z Lο<ȄnDid] ]>v@uvnBI/M;cPHiI?U<-q\Sk}U5Ѧ*dfcE5}K v6(4adHVRWHuAX~d ,BK9<$"bT'8`.*!% IaaC"&bIN+ At~ɣkW7:|&0&,YgX*?U]Im ətt_q́JqŸ_˯ fR(YЇȐ,f4g& "Zb/tO5_g'lFKtu'|2yNI 0*I\AU2DH9R*ap%L(p\"AB5Iq{6/xs 0LMLN{ڋ8a!;ֲxec1چo<~|nzplي}3u/TpS8,G5{@kHX([8͂I:wJc'Djhğ` <2^:Bߪ)۳n Q17{? R:RtlT%B0},0+&-ga]J:=Ws\>fKp#}_l(M',be#as. .v_όh4D)QR ֩je+I"ZM)V̏;+,Թ=3X txNTUVz9 `KL_g=!Y0*@%̬Q* ~UR#6zj F^6r"{V?iJG{{(whʺoМS׉a~+_lnVˆQx1gv++4솰+tb㋍<#s3'_R OMf?\vj s _)sbFz$l.=ߒ-;L]դ%wdp}Kmn1Ydb cV13kX;Fgj>yCNs<&j:(> RX6 {E;mp@ :Ow C9GWW(ÏVF'mϯNo;jf!(t xc$Q^GᇰЃr|ƨJ_*Z* a o^m~[O`ޫ&21xHwV`~/.A6_@92ݠVΫ $̷-PNz5nmvj'Q"cbWvߤxE: \oHܕD>|Ζ^lV-~$d@-ՃeT /(~n0po$Wp +Jt³_bLϴL w .F w2uMOCcဤ$x:IovAx O .P\ ZSpƒUNЙǁٰ#dVb7ډ-,Mb"$=S\{n? WLU]0#eWSm.mfŵy[ʜwiOD%uC-i?mܶly%_&ҩ!6__ĞsW L=Q)v[)@§(zܷ'( N_]f!#()Y`Z 1Y-X\Q#^8]1DC2iZ!&qaŪ#$?!5GE ,]MU=#YuĒ6]5A:A*щ{K ?g&•pzu `f jw ɩ}]2Fd/Ir;{HzT@l_ӥtOݝ̯@Lp#,L~3뱞żDa8mivcNlr60IE؞YxmtϏa./HOWNeH6jďF)P"2Ծ-dCw7T*~uD*=)STH!-|6H]4y2#sybTrD?DaH9/Ee7h= [Y$ .`⯒LB@T,1ձ=\qojۗ;+JI&E^dCѰnps^$sՠKBcFw5ڦ=tx `,"g`# Z[|zV B`C *2X])[mmK{WۛĚZn%N1g#$)3LLzåc0 Am/1YfW |$misiaYH\U:8-N}mnxt?yL~V>7`ie@a8QLH/)G[*K(|!?=SV>Kζi:F/ztSdr1),m8"Rހ:QPaVXC[xSX)SS bkOl_NpNˈCmu%޵}tah.XC>Yc(W673 CVr,X]ߞ"E,ḋ3Ðc^$*cxeJBw@To[?o5`m>f௡}˕Mٙ`G9O)Aeeiͼ[TAךAb)Zz'nQıj¸aӆ%y8W$ &H;H*.)g6"&njroȀ":9 dDVPچ.UVP#m`H|H1p9h [7M_yr_fvg#Q`?gY[~c/ ?TrHD&c\|̠f\A 0K}4e!@EX&<q:IGdMc(0 #Q3"=q7%Ǖμd֕^yd'|#>ŮRKs~5XїLYbzͯƿ\lԇe?Ѥ\2";(&o[k7thK;PQM/ S2ï=I7C|un=(bl֡Okػ(JD` eQr쌶'>gJoF+zsl{n@C+'O$8]G\#s id%Yδ܁ L^JQ{6W**49:M06m;5;DTn1]UbӸEnpA* ;,: 7DM("05iU <j&݃nV(XLKu<{-w`I1/U "hSP:1šƛǍ(*Lښv+6jKpB[]%^%do0ﻔߡbD4^Km9}j9oE8 ғ֋]fGOL>W^ oLkh2&̽];:m>7SF.zB/{nN]c`#[HK#r})K~kS>ŠؖbDuINj%~ F5O"@=*l['G㲚]K8v+E쵿nDxr`Ϗ>3jf[ʆ}JEз+y_!Id_6J=vKk5Ny5zcH+, WJ( 4~Kt(NDw d K k@ 5fhB_ro,3,( #v!|ʗ̅P&sM YXJQ{!SGWrD7ndrvjbv-]E?ӗQgk7I$ k,$ik>RPU[n)?펯 ˧|VXv9Q8ZNFQTڨ*{seni:QC<H%At?J2z{pP M9i?vp:i=.^4>4x :V) 3Dvn~'\Х@*2>;7(YF"LU"ePEx߸?/grhs&aK# '/B ' 2Ln5}uHL'| [o8IVj",Okl# l,ҲGDd 1&T-ML%VMtR`B?  UZ?'&rCQOt_Wڌxo&_݂5#o > а{ W]O41U TV DXG;lȎLqϰ3%n&̟+ab-"4cc`^6Oj&vhL5D +<uˋY<ޟev_ %.Le&3jW093(Ҩ!xk/T۪3X+, |Aȋin0RƵH(k׷cp ; .Q\u3ΰ%PfrIr<k*yFShe7S>^W.Ouɂ´v׍L =Ǟ퀕)yO:ilgSn}Ȍ1y*rUx RhqZ_`ke]_Oo nqkY-VQB̋烈LC)B >A}PԢiF_` iySlB" fWB=k2XNz@Mzc[)3Z~ي>N0AL+a(8\Ev{CvBȂTYӟ5;ZwŝP~rᅪ>Trϥ fc Bbx׆xC \ ki/ B v A6qPQ7=!M:fb=CG܎ C7LOr27wUD tq6esk= X sb7M|ƙ ޫ+#PpK/l#@e]CmPFk{[Fq_&NW-e^kԖ&%`~66Xok\Ҏ)㇚_@{[Cܧi͢aԚ>BPHghJvVS$Z9].rUSjwNFV>mU{wbwN{:}'?הnF|lʲ֎ݔ<ѽ#W6-*z(J1ޫ,7~uufɛv6+>Aomg}0N'yỂVrrێƺ\Pzx~(u^Ut < /=|BmON4tȲt[ r5rd_2{E0.֡Ic"/xώCtN1)-I|=j#"NumҭR|TtY9!1 m p(RsqZ*Č痄{^8⼞Cϵ-ٮѺy&U xpay~r9  1Ҫ'Ey;ĤvdOew3B/悂."cmm fvM*'ĦeJ_Yva,o庫߰ >-&Xъ,{ː&H]#ޔSQ|~x0Y27w$":4 &e0_A$:)4p_BRUi=$*;NΛg+QѼX! T 69Ԏ$[7$ձ^lxiܱXұ6#gacEkT´EM\vX١ >lmrxiO6 yaX{0 D=g(ri=kԌ(aɎyq Jc`%,=?JsV&jl/;H@vmGl V)"kAjw*h+50,_,ؘТ>Bz:"d9dOS<.Jn]Q[B~WLJhF,q9EsvSꡟwyG̶(AmoVHTl l;{`}qT4QtzM6b m(\,65j shG{}"2> ٢L7f \ԻdFr8NV5K dNCap#H\₆@ VՏ#qQہU7d!K2hNf`rHQc9dm1҅ba )~%!ʳ)kw-maģe7*'1nMxTnrؖ"F#Yl-eHp,7X_*8[qQfĐB8Sވu 98v>d`ǵu֪p|CdP|.U2kb̮jtz moVtRB~db38+qR!C1xB9DR[6|{.TNd\=̜lyryֿKjI6[Hm0s9Y4_/!}pmSsXHq*9}re֘_DJ~S:+.n-M- 70xmVgSZ.=%;c3 `1SSX`<7Z.aX/*ٜq"H}dcιa3b[Y78d,`."(JWf7?J]WOr'i/.@3R^Z|I@%h;D8ocM省}aHr~2|W3v_>=ܬ7nJ'5oS[\%ŋ  p}uޅrcpv%I%HlhΝ)7JcFD-}=m[ϫ|7Hˮ4s-7%x ./y'oLRDeܸvi[|7(-ZBn+*F:zZxl NÃ,Xt'-TRkDj ]9_ al@#/gEqKDҤwar1]];:G$#9~?gY$O|̥dq): !S:5|KfRMKsroJ8U,Ӧc9my$=ʷGNt~-i$ |!2Vb)+5ih|,;oy4h~ ÀK{qEQ MJ_֝,C4~JD R|6UĿp) %$(5Ҫw?Qn `+PIj }g1_jPF1cL_Ԃƻ–_HRV:4F~Y@|Kl(yU]u{ؑ . drv Z"yeKͽu7;D!m`?r#Hi,Aqmrhr(QIUj= U~"rg[$XO@|J9 d4-gà 5 7.S2k=wuaO2Q"qF(AP̃Kb*_+<Q/f f^6^N`ZYJ^WZ=3̤Bp * 8w(&6 Xfv\$p| K5ձqPlԿi^BLK}dwc1a?hMu}GEge, ʷi҇V߈>WCyOaWD7zv{lcX3.o ǘ,@Jr-.+k.٥YsI |8EDڃC"L.ga,/{zCL BF ^KV4lTk)u]2j 堕J_,™=Qx[龱Nd(w/p( 9xDD4U ]us炦9X`qw ' DC8'>~[: 7kyTXWc|O1 ;V"oZf%twϚ~_sd=ۤ;JHƨ:vE2Z$.jm v$@Ww3ByÂU+fO4VECYV<~[Lg2}Q1F',7l^?|%=J![=]~ñ"]_ĸz.&=$8g[͞W OF7ɦNzx&:S} AeyBɒ66^{p bfbcŤ?~ GDR#s-'gȌ:gv#XMm!_wDɂbYP6M+W J3QG)AEZ(ʲ4s0Wk—#A:)c#![T߹8i<Mm+㋱TD1qJrzq7)y]H&ŌyI:T73AN@%`-3aG޵Ik2Ge%46cω(QOVQldƈ>w}] =!6gR)eسA~u#$vA G7Kal?^ {U4Cߋ蔔NS!k rt#^@FfLjjf.C "Ś~#+y eֹdu2|&H4ǂA+csaD8;\HjSq׀@gfb}1Ig FƆMBź?/'㟄cnW,|ZJ<4fwF[ UxS5(%{*'Ϋl5[sഖ4/\6lP߇2RZSz#!6ᏜvќY!ܗ2y,vNw%呚v{+dJap!Op @8wCHUoqy]}X|:B9o :7Kk3ezvL tRGz##w jBaFgG 26vtY}&:.wPGǍbc?&%uu=Rdk3ϰݴ%$YOil8y؋EO :CO&3"gU z ܀ 6Ll(2O2 `oE'W0j,~UHy,c<1w'ѬRUDlǢR)W,T<9zf69htƐOI[b"& L| f |5[Di pY#6#O&Ҟ𬑮/^1VCz|7BTzEd:p[N,Rb! e>לF 2 4 <鑕)>׀yz.l[>ɖO )%ؔ.y[|ak8[,y"%7 .UJA_Ä ŕ5OqoPtOXp%8ܢ] w\﹈岢C:>:('Vap%@<=LxΩV3`Hs;, *gh$.MreZȰAaJУqzJ/yt 2 0w<6 k͍]]{sXkܞ tY})"x fƚŇr!') *Y.j7L߇}g  >?RJ*Hs|4(Wn:MEkU.[+OYҐEI1GrZҕ9%{Z/xǐ11`8D 2Pq\hyw/{oۢyѫT?j=fXHlujkA|y5AGNJ]y@"r_|L^s tA~IU5pbrS+jӴ CZ[hklqLjcGzRzCw;拹vMI7+(`NFcU]Y˝D8{Eq[џ7JLJq >F䡝caON\2Vj6uAeu)r-nN^u׆ Z],]/QQUMp g|7ӜTNe4+#-\)OrN-iO(ܶ9*|/.seMڄ9y?DBX3vY&>݉&; !4ۼm>PlVǗsu^]9GZD#Yd ;ǷLiWw0;b1nE Q:JC`\; s f>t*Z(vP6Op3٠2n'*|5Ynd G*=qc+g`JtU 3b_Yj&K9bȝljtԫP^ sքcse5h6P jUtڼMmM[~!K}S'hayn|7? K1T>oOfR` "[czRQ7prK-*j'b@Aڻs r.ƌ8c 0*Ƒ<׶@J -ip/]xc~}Pp\fMȰ&VљȝGC)*w.O&;̏Qio>wpxQihi!)̊?^oOQPꕒ8#7豃KG*H8փ*@h.Հ#ᮨOƆS)D Q5P_[]vS&ҧoZF['.eYFF>=I5rnXqeYwh ϡe+N㣭Vk6xx[Ho0ݺ-_j 䰩x _[U#3(e{ J ɼ^,69\ye4NTG@,\g*^ NտRJ=I lNE8 a-ZL J69,;SÚ ou . v]%[WyF5OX*tvJ;^9Pmco07=t$^I} =1 G'91itb3ի@侘hYϜ4_1Awޒ˜ID| _FxnxȚ+-2j8lRYq܇7$~QveuEHyQvEAsRGǒl<n=Cc3IY~ n*kH<]q[vŠ Hd7csJy ٜOVp<k%zne-ⲽYOn}48;4v`FW%ܽ2haa^MQ*Rz4tmS들sRSY0{S#2}ЦnVh`q3 mrrS+ޞa"{-O7&ұOW 0DJv8phwi|aw^e39C"8Ωݶe.'7>b= ոZݪ[Baw9gÀ5lvd,}ש<Ǖ SqRi{6"Azh{Ə2Sr(Km 4Iތ 73YR kB4RUQ`LC-=^8w 3Y}^Z\ ^g/k;1(ۼroj_*g5X*O ;pm6Z ׇ+y138 o}M:{)f 8v Ja텸zAFs4XTYN`USO?Dx!U>Ucxm H|}\Ir:Xao A7QA(q 0c$\E^ǔ_"f (ڛ£!&gݺES)ʭ J6R48zLau;I7>RFՔ:?{ÔQPl;gub%BtbU&-9}"0+( -ҷQ;xwۻOJrA J-0=[I.)ˀ[CI?y;݌~ǯ2WW6_=f! 7ݑF`_,)g 0]bPFuдm/5}b2ռgcx<F# r'{QobW/@e !bHWH30QAdy=A%fV$W`0]ݬ|ONFLӝk[>JD9KaӞ ܝ v_ru* 0?sze{ A?ф}N3  kmb,ՀQ[| ;6$wOԁÄuڝC+-'RFxp~AlW$kmQb{=ҟ{))H`rt, Alى2@_Uq@Ì,n L 1،WIJ V.OkQ8ހ x&jpEe(/X5ݕbɍ:r߁,HajA+NY^6ՠq ^C{C7F8JS0RZ" e ;MY# y5 FO&Ϸ9_qOQrﵙYIc;V. ) zg䝧QͦJ!,u#ɛZ}$/1rh{V=1' \iVxqp[ [ҧ1VU/aYWu @S5'ah4ޡfFPAՎ h/z@DFbѤ1mϟy Hp_%bL+o`hCcyILp!&J%:b ŤŬH _*b)ӟ{.qhTtwYLjS[~Ih }( @@IZ52!Ϛ5\uZiO&XOiR& ͜l ^4wJloT =W}RctʟUyw@\ Db܅q}YVR~ݥZ 9N7zp_P[1Tb<.pˌ5@KO ~1>OnG"8?bϏe,[n4.k]B(.#JŐ}mΏT#2~e񒏲RtKGؐ U{lO`fZ#zxgK5~xv4:%uqhm+L+ʈU!:4,+UZ4%1P8Txŋ SK58ϴ/!/UFG3CLT _'۰F= "eBfIo k7[os2f[ o)Vn2lq[6wEDyŚ_n- ؊Np[ b1w@w L݃;*|yHmc/~-$捸Hf7d~1d+->PRxӥb$Ţ$}oؙ6?((E!aYD.jaHʮ[ӴXwΦ,q$-T(&0RmIn-q?}{Nny YlkMSGR9#p@/Kz7 $[FWw,5 T=ヤ [҆WLot4Ï*}\ xr4,=~ϰՌSG1)M\qEqAFlUd SXz{E]b(U0ׯRH8 ڮ`A-Zl6ǖc8%ԡ+<FA-(wk5\oԲ7$R}8%3:;Ap'~f \NךoF3A4#.i0dJ\:{mYn[>ia!@qh ]a.. fg?(P<PV[aj u(+]BC;[U=_=B$e&WY_FE+t-=w ʡSmo`?JǶY-{j̅.R?mۙT^D'z_w%ۤ&E@~iŒuq 8 \YA>f ]̼IFPmJ{@kfS&J wCTD~foa\0?dHѱDޑQ*@9/48 (1Q ۺC%$a?i"@'fZSN3.%;͆{oU;lұ@V,~0WA{Nz>F4溔Id@E7}ig"E@'{Z[f(21Zː;!5, AW w|1Ͷ׊b6AUaW0p F)&Luhi'8##` uGFѺt؃Fe,i?z[xKCOx|Kaf#rn2%}Q23Xw~OVya hHk$& 1#Hqe>LP O`,JAUFZdδDR)#"2F2 ŜsU^.Vý/n͛*֑pxc',y2KXXpۯI,ם05+H"REUӓh:%qqy)'+Gl^ֶׄF S8oWY[٫F Sm|[KZphq,#3l JWjh$Zɥ VɴLN0`)3QoYv k}Hv$J!rR 6WJdJA^cضqQPGg$=iw_qZu\S*?AQ+q|&W >*( ݬN|)H㚅y|M84[u*Mf_'6}ѐ[yQgIC>9Kk7y@nhfv/'Aڷ.:mé#Vvy32DʩU33(huFPx=%8^{54%ߊHokشX{8 ȳF6iҳ}s}Tw0<8DO ƨF_l#)}W3BU8dv^C:ȼG`^ZaT-\~~k ]4'FT߳k5:P7$6N0RLǰgi8_}{\0r\Ǟo(!kĔĘ EynUAtMA/8*ߨ|1Ӛ) Z"Q8eNJ.%5k@t}lюG\ƔU+g )ᕁ@zD''ݨS_Y@(#7%Pf(-q+>9"p4W ТZF;H>aћRbdȊ?\<B7> \b2v`#BKkb 3*uj5[]kgS"45zVHCe6nޭ_b ԽZzUSեp<[4b zwmA QwHaifWՀ[􉜙ԘX!m^;8ͻ_TMfj-S=ec%р)ki-^IϨ ː)) M@ 8D;Mˀ[$o4įdQ(BbX:qvX%8_.Od>kwdXdϼ*H" Zs2ZrZœ-%vjie,48ֽ{*a0}=Qbs&+x]0NP\HW~ixl/P7+6x.[;CD.p&_e~løn_juoQP9HaWѹdgKg]W vOꚄJMeţՕSRU PV/{x>/7p=A1m ,*OṶ+yMVbpƸxO %)I2^16Xns JbLgyK?g$=NLN[u_Y1 Xo]A2Mm< nK\ 3;Ӝ&Y(zEEw;7ЏVT2|1*Ma% djG/I)NAOѡM#i.z_jMTkyQuP5̲UyJՓPts!rk(TE{<h֪cdr9a_y%}*s'rLϪ0 H՝zJG$reHq8Z3_d9z$5Oc,*aBI8mxmmiC>7F%j1ئ'DRG JR:=k"9Qف9 -7֔0CNz1Q̗2J$wgx /GuN@z: ԠuQn1ړ>7B鴓n_n3F|aGeYaLiD0~$΀gCh0w1eM=&đo -sG9 x!u`:v9WXZ^%+SXLLc-xTP`oY0׸T'ܙ&hah#pjK}6`Tv_ZD265#2_J|K*r5$$΃aS(E/bGch2f-6X䚼DMXqb?>){5@&J+&RJ= '7$8Hd"Φ7o~;l18x[7 5F FϐN>FwxKme}rd/Rx-/>N@=<ײ<oweveEK`֫r~; sĺh<F!K()6{MTv;L.:A[JΛ cFjUu1Ԏ/A"k0XxAȚRmU1ȡ5H,@]V$*޷ Oi>7PPi}"Z-4?̉/y6'1 'B5~%"yge#E֗\ @SIݾ~&}x$ܧY;FZ݂jɺκ 0HQ͑{h|k"ջ{(59 Ϥ5ZΉ5Li"K/Z@_ _(,"qsijcc[hkpķU٣ B/mje!̖o_V*K(jO_b2)lgA4Qam%ߪ^ЫȋU<H<4bai]CG2 ;Վ^]Qȹ4o&ˇdL =/ K`ڶPOŨF/7([[xZ~Jf\*3H.mjGwQ%g *wO\+bIڵ6ZptC:w5mG4$Ǎcyr RtIߺ\{\2(%2t@s ;3 "̰R-yMF(zxUu rsKػWgjtdkqanSئcx  )#O, }{ +m/NthDѸE7UJa%9:\x#״7#.@Pш,ֹѪ):r +"tM Q }Dc 8= 7zZz¿oOl'Q +9Y=A\^9SV`g٩SlB#|ID0F @ :•adcίPp zhR_"jǀֳ;ǩ]20,uݙ64X^{926|q9*}٧E~KϦ'uf@C%rF1JtOZ.=mSӆ mBs]?5lca2y,PzЮ"m~/Wڃv1[qlAHD(UMwUtiσm ԔWekoR@7'iJQ8B}ӗ4F3~'F:Yj07?Q 2ʽ&Q &XT ߣrcܧ&=S ާ/&MVF&%칼Fj6vfB-lGj2r62+8E.\VWhfW~!'@9ؽ 7EP\{iӅQ%"$RV2^|PPЙ ř6RjTzdw9.Qs9Y11,0Az3Ids~ ] q@ߨx)!R Ple! fj~ DfZ'w^Etݖf֋CnFxB `ԊV&r(Y$hKQq>>k=EU-vP64>^jRVw#p8ϚbH;Qʘ juW 5\ohuԅc3eS}K{aiev?LM)s].vNQؒx $+(fm)hOl > +~՚ 9:8vh·qMh?Un:EӤ;xrzF[ mHF+iKċx b/5To9?&յ I$Db3bF 3rqYyMm&Hl<I\9Z ؤMt6W=Vĝ;!lՎ) 3hh e4ݺ 0tr\jW\mFf26jw=T3A xz֎!9- SON86/ x 0 maTȤ~P_jKCtkޱ1DZ{D!0R SPqVS54qM7y۵Lcy p-.k6::j 0V/ ~l˖ ıpyC (Q-jBX㓈e.`4ݠȹ)]{pmݫzlq<`sUWlHYzۏQp[qL+w r 2DP΋&ٱ=0`RB/=)R.zvz{>tv}~̈́A[6 ±piB>hbF t: $cB}v"} 2@D"Շxl^y;kʊP ̽i9K Xn>?Ra$#K7BH7Kri5Ɏ<8d}Bs^0RAU0\6urDZjO'ӿH<}o=I0z$uCXܴ&ٸlqh|=pn)QDŽp?LHNh0ZA6쿓oA<"9j*ecI[x+1S$fOXQo#hm}V%Q >˧tO뤝BF44X? /"ߕyeC| j?-nJc""*3{Χj=^0>}OH5%]\I^j]K{P3j[7͊s5p[xňzȺQYDXuЂmj]?絴i۵[μ0 RnCSuw@ ݪ%w:u i,S? hCǣt?0 דO*(xҤ2y21`lTɯxSS.Igc~ e G2k7X[uQHjQJH\%P%֣[{7'ώ-#'[n[G kcϕ M gW+NYcnPyvL/ c( d]YG6cl+01r]aui!+C&yAx muYXa@g ?~}yL4JE ަxCCLo:Аnl W.D:1IhDžnbVq"Kj y[jjFzKwǿ UozfU>U|#|nsW^*RXġ>(TЖ|m.e-W`1V"2fh&MY_{V0ʿa9+ʟ͈e& sk!\Mי`*S 4 \ƈ(`C``M#fEϳ"NCF$6hQK\AҘ@33 Ә2\Ԣ0S_HxJSEKinײ L} Hļ^<@(@#9DH+T6)}tiwzX>"+%)0d0 rR̅wl@~j58.JNDCtCݱ銉8j {@FfK@󋿃:0#Q9[,U* ~gݶp2M\Q]NdPzV\-5_GvLRSq,IHNlYUz?N'X-`\'xTC=OCF> ☡{ %8nP+gm55iz%:% hS*Tv֣Eht)!:v0|&*>$=;X MSڧ>oZ*or33[ jc dQϰ@HW>A>;^melͧ`D:rD+Ye93aWk_ XB*5כ&.2$CoW+Uꙝnp\3nJzmȚfHx""\| љ9+xs}$EoErA^ՎEp3}٣,RR/ϑb"iGtf@HCuT?*e9o!噦qMp,#@c߿Ry/CQy>%Y3 3*{4ZAKݒ8Knlʵ";TEifln#P8~/o7;A[×T1<9uaA߬鋡dT.H"Eaq=ZGgC0Gxc9o.Ym^+1m X+}u#)ϑmAw_N|N~aTXx5T 18FI I&MyQڠlsfL oI<* Uj rtAmON2(n,$X'0H9;R`X;"2ǴabZ}{CƦ&3~FlE!bCQ $b6fl{l>L&2D)v/^ ݉pn}r6iVsl$<Z3QB=>MK$ur :Z*]>lg)3;+@[T/m;zXw,:ӕ>:xL-C"cTk]-ʿ*8B`PT8o@j Y$TRr:fOF_>d?4!YX\E:"!LP6͘lޡ󮊡F#rqQ InA%M_Zcurj~vuԜ{=G>Jr1Z} 䠯Ҍ`܅/9$`arHd9ڲ>DY$vJTh02U90 5 o 4n|Df2b64kܣ*bR#،&$ #Z,I@su ɚ):m͞a ɦvQ"Ds*:-CmKPΥX =׹ntӮujb~PȡIVt_+۰ UlW&D;-)ۼh_>Y@ܶƁT\Okңk|Ǫge'Rc.~,N\!pK6w?ŲThK'#&QM7kfuK{^aJ3\\0V7ݡ ʥ^l N ޺ WĞ3ڣT!ۡxG&<]2rw?M@^1QnXL&[Ç1] tj^xNLhP^ԅ6Mq)3WCVysX=UźnUm^5=RNyvRB-_5:;l ~O3r0tD9_Xp'2;"|w2l* -cH/@ 0uy7ro6@u4QVN|!3v9(BWD(I˱/cӑTaqS SJ/^fyh!T&M?oaoв v,qWNGDN cs]Y"d )ul܇d4=fֳUI  Oɚd 5lqx˚*qnF(p0ݣ <*&*݈Tuvln>f3բC-QMh/Jq =wL7PIi:x]!ZqHrîA:AhHm:?: Łn[qha!t7Uq],$p,$,7@чHsu'2,Wko,ԄtJyr/\%նyr^=oy0x-R?V(\5C{-1b<LH '+Xŗk{^YCk*VS oTƁs<j5r\";O5AbNTӡeX24sO*^8y ^&?{ HɝOIwʄ|^t"ͮ;1ɿթ}i-N^ˬ#QL.<䔏`@d5dSf[c{m0:jnb1Cаc\cױt5qxk}[kTa/ ;rA'54R\WvJOT93flPC[pNl; O >9.aNAKF>)NÚ܁ی^/g}w>ko5|_~!,I~ lj]k A_+쨯v 6r$y835zIS,j0:xv'/i-$$ ?Ѿ}G2\o*C@^6L8[8gXu)T90pyu-zvj؇'~Laug Wз嚯2,6Ƀq -csћEU`O%Tq> zG([H ٙyᎋj)"f6Zm\Ljsp#!eK2L+` lzȶ> -RF2o'v.'#v<~5\!iV>L4"}62مOM gX>\U@3&eF`u` T_)5>J9B͢45K47%VxL _rloKa )HܚX)ŭ,;>NF|ex+d\q(T+^rݗN&,䱓P^xN}iW@R Df;S42㺯2Юeq܃R[e>XyǟN'N{iR,ғ]pqI(kP!XYoNK_"E;ZsRg$=ZљJp'nyߓ= mAܰ|so9cCiگM,`J{qTaIP@.w3\A $5'g@VS_[+Yطc,`'!2gc~q ju6kZڇ'X/ o7cesa82]>V\p dX8.9l-rS|svӮ ^ +!K @"FGxAzN3,)5$2C?@-SA]&aÕOzhhVF)F"&-'(ݦ9sYlKΒ>Mh5Ca=lgYyyA!jԎ䪪3 giY[p ޢz\?v$O69{0Zǰ/bH6dzs+Ѫ)I^gW,tf%=\*!.i!xndAga$5w] Um&ǬNR{Gurpf:F9E_I'ŝLk]Xٍ}u4|`+#W-8Kln.Qd.qYd/ ŠzvjRQ1O?|TY :Ǯjr+6 0781iϵ|"'xl5nh>%(:H}mDgidEBqdeϸyDԺ0o$==К=Nj|~8sjծd 9}ts-G+Hwbꢠfse*E֡.XP~:^ e؇d27"jpk3_zW]~KC3>ANQgWA4c%!%C?S?#Aez1wl<c'?VA1bC?:3cz md}5Bopz@<_?JRN;N qcg 1PR]F*FF.C@+7B fy1.x ց,,}Ac$˙i~ݪŒz""^̆_aK4g>4ap'" 78+@V,HW@vj_s 8;ܔGNp;6l=MI6eۓb<d}? ġ5##RpS3. a ώ,`mCg*zu'Mnbu範5,\ؓbR܇~35"*ˆ8)t^u_YNѲ'HDm|vI:z'ѻ{3<-t0eC#DjZFLj.i EEeAxT _4 &8=_=SځC_,m}d*7_W1ڼf a/5˔>Қ#LZV<ԫA.N*f ޳9^jR{tdo;]ziII[V4} F`Ivڞy5䛘TщtO&j,}5F:BtND!^õ>}:$o2rOO='d_[bXB `v)BM&ޘ5[b6"bU zQ K]@,(dtNMޤ.EHJ6MwAvp.f-`xL4𾐴 ¬XEwg%?rݷ~^Q"L#1s-5\vM,2FlU9 qՆ'ٴZpaZek*#wsv۝F'jT(嵧 h.a[y Qmᤕ kxq]u]20sCЏ )Few{:ji$(2"O*Ed,h(hO}[9~:ڵvL.ui2YVZͼ<~^ Iub 2@iX~)۬Fv:LOܵU _&J֒=dJ;ۨWjaMK!WD+sp%(|>Hbk@8)RbJVY>yԉxN>@٫tDɧ$+J템pÎՕ̿`ӌ'k]!i<G'j\\,9d]8LA`a=訠 v|`itUv. KFPa}(M,LYdo| 3fmw$%*Ja{/|\/o=v\Q+h~KNVRP_HKr]Mv@Š/?/"s0Z缤/Lr J:5weO.p9A2ŵlٌ͌ӵ$v#-}ǝ9h)i,R kx\Maq7s U-;N4T{e b9?oL@GrU}I74)>m!meEک=^{' , h&"m{`-S*sy]<\ňWĨ/pip03};!4ףh0u|M] FK_f)@ٞ4sp&`>F|z$dLλu4PZsXM]E1šq br\ +o%_"-J7hy#/54fL{4{}ms*~V ϯh&cvf",3[PW5q my5?*toXG٭Y9T M*g\483=c д呺ͱۡDNW4IJ0Z%8 W8OrRwђ hۯKL"= G;'eڒ>\Z웼[~GO] o@[X[(?iX[^ o`VhWrEZ=Xű MK%IYT02 .)2 NQuFș"⩰` YZ