fwupd-1.8.6-150500.4.3.1<>,(eȘp9|PPj{VƼwTM.B.5?¶d`v C?KRG,/iTr\xWلYEuεFC.B?#@ό֋M@~}jI?FՂ^y|kx K1(bB;Nǎ,Wê'psfvN sۙVSSE1f/!ǦwN{_uUx8.;q5?%200;F SwUt$u;P㿮N>I @? 0d  :04@D]~ ? _WdW W W W "sW #W$dW&W''W)HH5x8V(W8Wd9Yxd:`d=6>>?F@NBVFgG|WHWI4WXHYHZ,[4\<W]W^L*bDcdmerfulwuWvwWxWy\z ,Cfwupd1.8.6150500.4.3.1Device firmware updater daemonfwupd is a daemon to allows session software to update device firmware on the local machine. You can either use a GUI software manager like GNOME Software to view and apply updates, the command line tool or the system D-Bus interface directly.eȘh01-ch5aJUSUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/System/Managementhttps://fwupd.org/linuxx86_64 if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in fwupd.service fwupd-offline-update.service fwupd-refresh.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi [ -x /usr/bin/udevadm ] && /usr/bin/udevadm control --reload || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in fwupd.service fwupd-offline-update.service fwupd-refresh.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable fwupd.service fwupd-offline-update.service fwupd-refresh.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop fwupd.service fwupd-offline-update.service fwupd-refresh.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in fwupd.service fwupd-offline-update.service fwupd-refresh.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart fwupd.service fwupd-offline-update.service fwupd-refresh.service ) || : fi fi ^k(=]oyyi@9@@ H:xT `8t+ pHcF v (ghG+;AA큤A큤AAAA큤A큤큤AAA큤AA큤A큤AA큤AA큤큤AA큤A큤A큤eȇeȇc@Gc@Gc@Gc@Geȇejc@Geieieic@Gc@Geȇeieȇeȇeȇc@Gc@Gc@Gc@Gc@Gc@GeȈeȇeȈeȈeȈeȇeȈeȈc@Gc@Geieieic@Geieȇeȇc@GeȇeȈeȈeȈeȈeȈeȈeȈeȈc@Geic@Geȉc@Geȇc@Gc@Gc@GeȆeleleȇeweȇeȇc@Geȇeȇc@Geie|eȇeȇc@Geȉc@GejejeiejejeȆelel263a2f6372bdba42c5f7b55046bfc29b8cd4bbd0da6d20b37daf6a3ca61c3354d20db3cd6ddf659b0fee0e14082cf52fbf5a74d159b50f96ff66bb00b1857f5d2e32412639ca88fa4cd53aae9ecbc650de64461f8723a33e90ba8a20158e20b263f271c80de96f029e025cae369bef3f893523d1100115ddbfa281535864ac0bec550a9d0ebf01d115e1b830b0993f49c6d62a85f62cb3fa615852889a509bddc33572b5cb72f9a3f4c8ed761d89142e0843910096b8fc3513bb7a48e6bb8394f7cc38298024528ac549b6a95c09aab281ee65aa5cfcd0256b50d2ee23ee71b898c3241a38e8955b1fd20fc81d8ce4e605c690382b6f5995b8ec8fa3681bf7ec7525cac1594f4c7998876e3373b46509363492512cd194ec2a17911a8282a92feae05084bd3d6e95bce3c0a74ce27392d416062c8f0b268439997171efe2b7f8a6c8f21f22f112d8d43c11820b008f5d588036fdf6cf16626d10bbadd64998f020e9fcaaf30ef4242fe3b723bf3ccb4cee8f47977d71244394128d8ecf2b97e620a789b778a835b579fe96c5686f281619d0e1d33321b9df8c61ad2714f728775e95c0c35c50b3fb287b150199e890bedf6eeec65a39d843e048ca0e5f7a359a6b46718d04424994c07a2b158680b47c354c019d62cfaeec6745c8753c3b13211fa524d00c7e9a7aa9b1219f4d81aa7cd9a73568ada92323c98773dc2fa089f65e95c0c35c50b3fb287b150199e890bedf6eeec65a39d843e048ca0e5f7a359a6b46718d04424994c07a2b158680b47c354c019d62cfaeec6745c8753c3b132163059e259287b0831149467ddc8b2d596151a66aa0357327ebc198246a6f342bac218eeb32a261c3ddc1e87d7a6e1e676bc9fce13db48d3f099ca5450f282f2d2f2a522bbc95c6da0d78bb2e794ed4bec34a99f8df0b03a3a87ad1affae0f3469c334dd086ceca85a3ee33afcc68b3d34a29048539f3f0038a4c5854f5c0527f7a3ba8b140745dbdf165deedd81d55191f71e242dd77fcde77875dea1f723ea4235b92d0a7849f0a79df220fddbb86d8d9cde496d6cc6fcafb194a16f91c40130ddfd6290cf2263f5e6be277a9d45e42cbbe1d2f1298fb0f352b7f07c36dd545e375701f6c22c8d1e832964e6c7c6a5912ed013c4c23891063819af91af9b819a8f1bb77aa3731036326b916879ecbcfb3855c3d7613853a851e088570f61f475b3106bbb206a58f3118934bb201b5de52aae41c3d96f2d7e9b5d05a03a86576a9c9f679ae92fcff62c4a4955ccc09612f160b58fd04afcf0a628202e27c29ce84597cdd8c589cf5632e7d9a5f04fc122b8678cc1d7e58d8b5cb9b531987f6f91939aef65c7310a44ce0adb18b28c15956fd37c24db1683a57dcb8b0d7ae14ce473e4621935ba91b07321d76d7f9c896936a1dbaab6a29c0d0e3233cfe6ffdceb3f331489cb974c843d19836d2bdd46c038edeb6c635c78bffecd34b4a9fa0deda4fd1bcc51c96aa9c15d198e59fab45c6078a47c33bd0af61818e69903191279b530b1613134afd47af8ff09628cbd880580f36429b443ebd92e58cfd03c38c35cc3bd7dd1ad09e0b91e685af73a695c6d967d85f1d80defa49336e7b88eb0bb1ab2f9ed57c97dc0dd1b4aea0160786ad9d5f0b06fc2d3f114af942d9499b469fb2adced0c8e5fef3d9fe49b5a106aa5371ce42bb4028c6957a445c76a2c577a45ccdf7c837ecf27fa7392f9e531502401447b0d48d45947f3b11c2fdad936ccb7019b93443ed9172068f47f3c23841877577d391707c206dcaa65287ca33f34bf7225ff28f5ec059fe212b8e528ed84aa153abd7abb769b6633bcd1405ce404f9e3f94d5f909a3ea66a11f9ef12dbca225d76c7932df8185279bab5705b4b687864b8ca5744481415e76238f90a431ca239c0437ab5ff322f90e3372db665e7b7a1bfe1a3bcf0a3d6ff5f7fac330dfaab2e8d1ee3e6427795d7d1700f76fdf615b4d1a72467aa4259c00ed9ee57c8bb6602e3954f3f20ea84d2b614a972755a2d51ef9f1daa3ced2e7075caa37497f9036b8c025f3ee7c13256a7dc59b31080be6b00e39f5e4d2d3161f731d86ce65432920a68c32d95f2d4a7e9381caa6b8c4123258bfff766b3fd4d811a1b1c25ba05841048e03c0782db6e58763b37facb89773c295134293ea86557110695dd168b6f069d1601410c42848a5c44a317ddcd319920c31877d652422d00933ec13386ad5385fadbf2dd823c7e65627c243a197180466fec51e735da3f0fde5fde04a987727bc162946b69e23f36ec047585262b93c1eaa52467423c59f846b2ef70d06bc110e8e22dfc1f80d92e3933d8fdc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551a2a6e3217495388fb55bdf97ccd53d3384a41742a711c054807c44321f83f2427ab425d073d48262db910d0e16e6e6a7a5393be86579d4af0ce208b1cadfb9ae9a916a8df0bd0b74d4423174888ad8daae66549e696cc0b6c1c5095801a8d96cb4c3954c8a54604b26e3e1d5108e15444df8686e98934e50460ae8b48cefb20ba80815316b5ace4399f9533c035bf4a06667142cd1ee9cef5928484f2774a33f322f7f20b41e448845a881ef439c7c48ca8d3d2e2b55da607062ff029abdf2430fde3e0bd06c50e27d27a7b4a3e01779a2d4b74acacf1a57fc78e33da734d001fwupdmgr../fwupd-offline-update.serviceserviceserviceservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootfwupd-1.8.6-150500.4.3.1.src.rpmconfig(fwupd)dbxtoolfwupdfwupd(x86-64)libfu_plugin_flashrom.so()(64bit)libfu_plugin_modem_manager.so()(64bit)libfwupdengine.so()(64bit)libfwupdplugin.so()(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.1.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.6.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.7.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.7.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.8.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.9)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.9)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.6)(64bit)libfwupdutil.so()(64bit)metainfo()metainfo(org.freedesktop.fwupd.metainfo.xml)@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     @@(fwupd-efi if shim)(kmod(msr.ko) if kernel)/bin/sh/bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/python3config(fwupd)libarchive.so.13()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libcbor.so.0.10()(64bit)libcurl.so.4()(64bit)libefiboot.so.1()(64bit)libefiboot.so.1(libefiboot.so.0)(64bit)libflashrom.so.1()(64bit)libflashrom.so.1(LIBFLASHROM_1.0)(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.7.1)(64bit)libfwupd.so.2(LIBFWUPD_0.7.3)(64bit)libfwupd.so.2(LIBFWUPD_0.8.0)(64bit)libfwupd.so.2(LIBFWUPD_0.9.2)(64bit)libfwupd.so.2(LIBFWUPD_0.9.3)(64bit)libfwupd.so.2(LIBFWUPD_0.9.4)(64bit)libfwupd.so.2(LIBFWUPD_0.9.5)(64bit)libfwupd.so.2(LIBFWUPD_0.9.6)(64bit)libfwupd.so.2(LIBFWUPD_0.9.7)(64bit)libfwupd.so.2(LIBFWUPD_0.9.8)(64bit)libfwupd.so.2(LIBFWUPD_1.0.0)(64bit)libfwupd.so.2(LIBFWUPD_1.0.4)(64bit)libfwupd.so.2(LIBFWUPD_1.0.7)(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.1)(64bit)libfwupd.so.2(LIBFWUPD_1.2.2)(64bit)libfwupd.so.2(LIBFWUPD_1.2.4)(64bit)libfwupd.so.2(LIBFWUPD_1.2.5)(64bit)libfwupd.so.2(LIBFWUPD_1.2.6)(64bit)libfwupd.so.2(LIBFWUPD_1.2.7)(64bit)libfwupd.so.2(LIBFWUPD_1.2.8)(64bit)libfwupd.so.2(LIBFWUPD_1.2.9)(64bit)libfwupd.so.2(LIBFWUPD_1.3.1)(64bit)libfwupd.so.2(LIBFWUPD_1.3.2)(64bit)libfwupd.so.2(LIBFWUPD_1.3.3)(64bit)libfwupd.so.2(LIBFWUPD_1.3.4)(64bit)libfwupd.so.2(LIBFWUPD_1.3.6)(64bit)libfwupd.so.2(LIBFWUPD_1.3.7)(64bit)libfwupd.so.2(LIBFWUPD_1.4.0)(64bit)libfwupd.so.2(LIBFWUPD_1.4.1)(64bit)libfwupd.so.2(LIBFWUPD_1.4.5)(64bit)libfwupd.so.2(LIBFWUPD_1.4.6)(64bit)libfwupd.so.2(LIBFWUPD_1.5.0)(64bit)libfwupd.so.2(LIBFWUPD_1.5.1)(64bit)libfwupd.so.2(LIBFWUPD_1.5.2)(64bit)libfwupd.so.2(LIBFWUPD_1.5.3)(64bit)libfwupd.so.2(LIBFWUPD_1.5.5)(64bit)libfwupd.so.2(LIBFWUPD_1.5.6)(64bit)libfwupd.so.2(LIBFWUPD_1.5.8)(64bit)libfwupd.so.2(LIBFWUPD_1.6.0)(64bit)libfwupd.so.2(LIBFWUPD_1.6.1)(64bit)libfwupd.so.2(LIBFWUPD_1.6.2)(64bit)libfwupd.so.2(LIBFWUPD_1.7.0)(64bit)libfwupd.so.2(LIBFWUPD_1.7.1)(64bit)libfwupd.so.2(LIBFWUPD_1.7.2)(64bit)libfwupd.so.2(LIBFWUPD_1.7.3)(64bit)libfwupd.so.2(LIBFWUPD_1.7.6)(64bit)libfwupd.so.2(LIBFWUPD_1.8.1)(64bit)libfwupd.so.2(LIBFWUPD_1.8.2)(64bit)libfwupd.so.2(LIBFWUPD_1.8.3)(64bit)libfwupd.so.2(LIBFWUPD_1.8.4)(64bit)libfwupd.so.2(LIBFWUPD_1.8.6)(64bit)libfwupdengine.so()(64bit)libfwupdplugin.so()(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.1.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.6.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.7.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.7.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.8.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_0.9.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.0.9)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.1.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.2.9)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.3.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.4.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.5.8)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.6.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.6)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.7.7)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.0)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.1)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.2)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.3)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.4)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.5)(64bit)libfwupdplugin.so(LIBFWUPDPLUGIN_1.8.6)(64bit)libfwupdutil.so()(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)libgnutls.so.30()(64bit)libgnutls.so.30(GNUTLS_3_4)(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.2)(64bit)libgusb.so.2(LIBGUSB_0.2.5)(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)libgusb.so.2(LIBGUSB_0.3.5)(64bit)libgusb.so.2(LIBGUSB_0.3.6)(64bit)libgusb.so.2(LIBGUSB_0.3.8)(64bit)libjcat.so.1()(64bit)libjcat.so.1(LIBJCAT_0.1.0)(64bit)libjcat.so.1(LIBJCAT_0.1.11)(64bit)libjcat.so.1(LIBJCAT_0.1.3)(64bit)libjson-glib-1.0.so.0()(64bit)libjson-glib-1.0.so.0(libjson-glib-1.0.so.0)(64bit)liblzma.so.5()(64bit)liblzma.so.5(XZ_5.0)(64bit)libmbim-glib.so.4()(64bit)libmm-glib.so.0()(64bit)libpolkit-gobject-1.so.0()(64bit)libprotobuf-c.so.1()(64bit)libprotobuf-c.so.1(LIBPROTOBUF_C_1.0.0)(64bit)libprotobuf-c.so.1(LIBPROTOBUF_C_1.3.0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libqmi-glib.so.5()(64bit)libsmbios_c.so.2()(64bit)libsqlite3.so.0()(64bit)libsystemd.so.0()(64bit)libsystemd.so.0(LIBSYSTEMD_209)(64bit)libtss2-esys.so.0()(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.11)(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.2.0)(64bit)libxmlb.so.2(LIBXMLB_0.3.0)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rpmlib(RichDependencies)shimtypelib(Fwupd)typelib(GLib)udisks21.8.6-150500.4.3.13.0.4-14.6.0-14.0-15.2-14.12.0-1112.04.14.3e d'@cc@cIO@c6@c,N@bb\@bb[@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+dennis.tseng@suse.comdennis.tseng@suse.comdennis.tseng@suse.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comdimstar@opensuse.orggmbr3@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.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- Fix Bug 1212211 - Partner-L3: There are fwupd/FuEngine failure messages in /var/log/messages in SLES15 SP5 + add fwupd-Do-not-assume-a-file-descriptor-of-zero-is-invalid.patch - Remove protobuf-c BR: SLE now matches TW package layout(Callum Farmer) - Remove gnu-efi BR: efi binary is in fwupd-efi(Callum Farmer)- Change version 1.8.6: + Fix compiling error when building s390x ppc64le - add %ifnarch conditional to spec file + Recover one changelog unexpectedly removed when first pushing fwupd-1.8.6 to 15-SP5 - Thu Feb 24 06:29:53 UTC 2022 - jlee@suse.com - Add fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch to ignore non-PCI NVMe devices (bnc#1193921)- For pushing fwupd-1.8.6 to 15-SP5 (fwupd-1.7.3), sync change log: (jsc#PED-1232) - fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch be merged to fwupd-1.7.3- Update to version 1.8.6: + This release adds the following features: - Reduce the installed package size by more than 30% - Translate more interactive messages + This release fixes the following bugs: - Allow disabling a DFU device when required - Fix a regression when getting the i2c bus number - Fix a small memory leak when reloading the parade-lspcon device - Fix installing the dbx update when using fwupdtool - Improve writing CoSWID and uSWID metadata - Only include the last 5 releases in the installed metainfo file - Only request the BOS descriptor for newer libgusb versions - Prevent high memory usage when loading corrupt SREC files - Try harder when trying to find the default ESP volume - Use a higher compression preset for the UEFI splash images + This release adds support for the following hardware: - Focaltech touchpads - FPC fingerprint readers - Supermicro machines using Redfish - Drop plugin_sover define, and sub-packages libfwupdplugin7 and typelib-1_0-FwupdPlugin-1_0 following upstream changes.- Update to version 1.8.5: + This release adds the following features: - Add a new android-boot plugin to update specific block devices - Add new plugin to display SMU firmware version on AMD APU/CPU - Add support for platform capability descriptors so devices can set quirks - Move the generic Intel Goshen Ridge code out to a new plugin + This release fixes the following bugs: - Allow specifying the ESP when applying the dbx update - Always check the BDP partitions when getting all the possible ESPs - Correctly update Wacom AES devices - Disable changing sleep mode on Ryzen 6000 systems - Do not show the 'may not be usable while updating' message for DBX updates - Expose Pine64 PinePhone Pro MTD as Tow-Boot - Fix a critical warning when issuing Secure Boot modem AT commands - Fix a fuzzing crash when parsing malicious FDT data - Fix aligning up addresses greater than 4GB - Fix a possible crash when dumping VBE firmware - Fix a possible critical warning when parsing cabinet archives - Fix a regression when parsing pixart-rf firmware - Fix a small memory leak when parsing UF2 files - Fix checking for invalid depth requirements - Fix parsing the coSWID firmware ID when encoded as a UUID - Fix parsing uSWID uncompressed metadata - Fix uploading to DFU-CSR devices - Limit the archive size to 25% of the RAM, or 4G - Load coSWID metadata from a uSWID MTD block device - Never save the Redfish auto-generated password to a user-readable file - Only create users using IPMI when we know it's going to work - Write all the CCGX metadata block as intended + This release adds support for the following hardware: - Corsair SABRE RGB PRO Gaming mouse - More Sonix CAM devices - More Intel Goshen Ridge USB-4 docks - Changes from version 1.8.4: + This release adds the following features: - Add a translated title and long description for HSI security attributes - Add support for loading a machine-default BIOS settings policy - Add support for reading and writing BIOS settings - Allow loading BIOS settings for host emulation - Prompt users to fix some BIOS configuration issues + This release fixes the following bugs: - Actually show provided AppStream security issues - Add Quectel secure boot status AT commands - Correctly detect CET IBT - Do not assert when running with no plugins - Do not require UEFI capsule updates for checking TPM PCR0 - Do not show HSI events where we changed the spec result value - Fix applying the latest DBX update - Include vfat in the list of possible BDP partition types - Install all devices with the same composite id in fwupdtool - Only fail the kernel HSI test for specific taint reasons - Only show changed events in fwupdmgr security - Update vulnerable CMSE versions from CSMEVDT data + This release adds support for the following hardware: - Elan non-HID touchpads - Google Prism - LabTop Mk III - ThinkPad Thunderbolt 4 Dock - ThinkPad Universal Smart Dock - Changes from version 1.8.3: + This release adds the following features: - Add resolution flags to each security attribute failures for the user - Allow loading in emulated host profiles for debugging - Check if Intel TME has been disabled by the firmware or platform - Wait for the system to acquiesce after doing each update + This release fixes the following bugs: - Do not use CoD even when advertized on non-aarch64 platforms - Fix a crash when updating the Logitech Bolt radio device - Fix a critical warning when parsing an invalid PHAT record - Fix a critical warning when parsing invalid FDT firmware - Fix fwupdmgr security when plugins are added to the blocklist - Fix parsing SMBIOS data to correct the device hardware IDs - Fix uploading signed reports by sending the correct checksum - Use the correct protocol attribute name when exporting to JSON + This release adds support for the following hardware: - Additional Startech devices - Additional Elan fingerprint readers - Changes from version 1.8.2: + This release adds the following features: - Add startup profiling which allowed us to speed up daemon startup considerably - Add support for OptionROM, CPD and FPT firmware formats for future hardware - Add the HostVendor to the D-Bus interface - Break some internal ABI and add a conversion helper for out-of-tree plugins - Optionally build the quirk files into the daemon binary to reduce installed size + This release fixes the following bugs: - Allow front-end clients to read the percentage property - Allow more quirk entries to add multiple items - Allow to force install Genesys firmware even if the public-key does not match - Allow UFS disks to define the signed status in metadata - Autoconnect the Redfish network device when rebooting the BMC - Copy the instance ID strings when incorporating devices - Do not generate a capsule header for the FMP GUID - Ensure more firmware formats can round-trip to and from XML - Fix a regression for devices using the Atmel FLIP Bootloader - Fix running fwupdtool security with a user-specified plugin allowlist - Handle ENOTTY with the correct error code for ioctl calls - Increase the self tests coverage substantially - Modernize the AMT plugin and split out common MEI functionality - Only move the logitech-bulkcontroller progressbar forwards when writing - Set the device ID on the FwupdRequest to allow better UX - Show the get-details output when the device requirements fail - Simply quirk matching for i2c devices to speed up daemon startup - Support SHA256 fastboot hashes if specified - Use force-detach to bypass the DFU streaming check for camera devices - Use the SCSI target to correctly set the physical ID - Wait for the System76 launch device to re-enumerate if already unlocked + This release adds support for the following hardware: - Corsair HARPOON RGB Wireless mouse - U-Boot devices writing simple FIT images - Genesys M27fd AIM101 - More PixArt wireless devices - More Steelseries HID, Sonic and Fizz devices - System76 launch_2 - Changes from version 1.8.1: + This release adds the following features: - Add archive writing support for devices with composite firmware - Add a way to read device composite firmware in fwupdtool - Allow clients to opt-in to showing updates with user-solvable problems - Allow the device to pause polling when writing firmware - Export the system and device battery levels on the D-Bus interface - Log errors and warnings to the win32 eventlog when required - Add X-UsbReceiver as an update category with icon usb-receiver + This release fixes the following bugs: - Accurately return the last-set status to client tools - Allow dumping flashrom firmware using fwupdtool - Allow specifying a non-file D-Bus transport - Allow to request post actions from fwupdtool - Always be arch-explicit when installing OS deps - Be more resilient when restarting the Redfish BMC - Do not mark all Redfish updates as UPDATABLE - Do not use 'dongle' to describe USB receiver hardware - Download in-process when using fwupdtool - Fix a critical warning on failed modem update - Fix regression when probing PS175 devices - Hardcode the Redfish filedata name to firmware.bin - Set the Bluetooth version if REV has been set - Switch the Windows installer from NSIS to MSI - Use StartServiceCtrlDispatcherA for the daemon on Windows - Use the native certificate store on Windows + This release adds support for the following hardware: - Corsair KATAR PRO XT, SABRE PRO and KATAR PRO Wireless - HP Thunderbolt Dock G4 - Lenovo ThinkPad Universal USB-C Dock - More PixArt wireless devices - More SunplusIT USB cameras - Some UFS devices - Steelseries Aerox 3 Wireless and Rival 3 Wireless - Changes from version 1.8.0: + This release adds the following features: - Add a new attribute for CPUs supported by HSI - Add coSWID and uSWID parsers to libfwupdplugin for initial SBoM support - Add new HSI attributes for the AMD PSP and various other system protections - Add the runtime fwupd-efi version as a firmware requirement - Allow 'fwupdmgr install' to install a specified firmware version - Allow overriding the detected machine type for debugging and development - Restart the BMC after installing BCM updates - Show the device serial number and instance IDs by default - Support dumping the MTD image to a firmware blob - Take a device inhibit when updating a device - Use the CFI manufacturer ID to set the vendor - Use the correct icon automatically for more hardware + This release fixes the following bugs: - Add signed-payload metadata for more devices - Allow Capsule-on-Disk to work in more cases - Allow quirking the detected flashrom flash size - Check for os-release on FWUPD_SYSCONFDIR - Check the alignment when parsing raw firmware - Check the update protocol exists when checking requirements - Convert the build system to use meson tristate features - Correctly probe USB-2 hubs with more than 7 ports - Do not add the Windows compatibility ID to capsule devices - Do not allow the DBX update for specific motherboards - Do not expect KernelCmdline on Windows - Do not export USB4 host controllers as updatable if they don't have unique GUIDs - Do not fallback to audio-card and use a more suitable icon for USB hubs - Do not hardcode the libexecdir to /usr/libexec - Do not leak child processes when canceling - Do not show unconnected or unreachable devices in the client tools - Do not throw away the TPM eventlog when uploading to the LVFS - Do not use /var/run for the socket - Export the version_lowest_raw value correctly - Fix build for MacOS and add to the CI matrix - Fix eventlog replay for Intel TXT machines - Fix several small memory leaks - Fix writing large mtd images than 10kb - Ignore MTD devices that report EPERM on open - Mark the ME region device locked if it is read only - Never send the DeviceChanged signal with old data - Only show the CLI time remaining for predictable status phases - Respect the NO_COLOR env variable - Return the correct error when there is no GPIO device to open - Support the new UPower PENDING device states + This release adds support for the following hardware: - CH341A SPI programmer - Corsair Sabre RGB PRO and Slipstream USB receiver - Genesys GL3521 and GL3590 hubs - Google Servo Dock - Logitech M550, M650 and K650 - More ELAN fingerprint readers - More integrated Wacom panels - More NovaCustom machines - More StaLabs StarLite machines - More Tuxedo laptops - Quectel EM05 - FlatFrog devices - System76 launch_lite_1 - Rebase patches with quilt. - Use ldconfig_scriptlets macro for post(un) handling. - Add shlib_sover define and set it to 2, ease future updates. - Add plugin_sover define and set it to 7, ease future updates, and rename libfwupdplugin5 to libfwupdplugin7 following upstream changes. - Drop gtk-doc and pkgconfig(gtk-doc) BuildRequires: No longer needed nor used. Following this, stop passing docs=gtkdoc to meson, no longer recognized. - Add pkgconfig(gi-docgen), pkgconfig(libcbor), pkgconfig(mm-glib), pkgconfig(mbim-glib), pkgconfig(qmi-glib) and pkgconfig(umockdev-1.0) BuildRequires, and conditional pkgconfig(flashrom) BuildRequires: New dependencies. - Update options passed to meson following upstream changes. - Replace false for plugin_nvme and plugin_redfish with enabled, build nvme and redfish plugins. - Split out developer/api docs in new doc sub-package, add fdupes BuildRequires and macros, remove duplicates.- Update to version 1.7.10 (CVE-2022-3287, boo#1203852): + Always check the BDP partitions when getting all the possible ESPs + Correctly detect CET IBT + Do not show HSI events where we changed the spec result value + Fix aligning up addresses greater than 4GB + Fix applying the latest DBX update on machines with 20200729.x64 installed + Fix checking for invalid depth requirements + Fix getting the new version number of the USI docking hardware + Fix HSI prefix for invalid chassis + Never save the Redfish auto-generated password to a user-readable file (CVE-2022-3287, boo#1203852). + Only create users using IPMI when we've tested the hardware + Only fail the kernel tainted HSI test for specific taint reasons + Only show changed events in the fwupdmgr security output + Recognize CSME version 16 and update vulnerable versions from CSMEVDT data + Write all the CCGX metadata block as intended- Update to version 1.7.9 (boo#1201311): + Do not generate a capsule header for the FMP GUID. + Do not use CoD even when advertized on non-aarch64 platforms. + Fix a critical warning when parsing an invalid PHAT record. + Fix a regression for devices using the Atmel FLIP Bootloader. + Fix parsing SMBIOS data. + Set the device ID on the FwupdRequest. + Use the correct protocol member when converting to JSON. + Wait for the system76-launch device to re-enumerate if unlocked and reset. - Changes from version 1.7.8: + Add the bootloader VID/PID used for the first batch of ColorHug devices. + Also check for os-release in SYSCONFDIR. + Export the version lowest raw value correctly. + Fix a Wacom timeout when parsing very corrupt firmware. + Fix Genesys device enumeration failure by not claiming the interface. + Hardcode the Redfish filedata name to firmware.bin. + Install D-Bus introspection data even if introspection is disabled. + Only set the flashrom BIOS size if not already quirked. + Read the SynapticsMST firmware size in a more safe way. + Restart the BMC after installing BCM updates.- Update to version 1.7.7: * This release adds the following features: + Add CCGX trigger code to support future hardware + Add signed and unsigned payload metadata to more devices + Allow overriding the detected machine type + Allow quirking the flashrom flash size + Do not allow the DBX update for broken firmware versions * This release fixes the following bugs: + Do not add the backup BMC device as it shares the same GUIDs + Do not hardcode the libexecdir to /usr/libexec + Do not leak child processes when canceling + Do not throw away the TPM eventlog when uploading reports to the LVFS + Don't export USB4 host controllers if they do not have unique GUIDs + Fix build for MacOS + Fix the TPM eventlog replay for Intel TXT machines + Fix writing large MTD images + Never send the DeviceChanged signal with invalid data + Return the correct error when there is no GPIO device to open + Show the update message and update image in front end tools + Support the new PENDING upower device states * This release adds support for the following hardware: + Logitech M550, M650 and K650 + More Elan fingerprint readers + More Star Labs StarLite laptops + More Wacom panels found on Lenovo laptops - Split bash and fish completions to separate subpackages - Remove un-needed BRP_PESIGN_FILES - Set GNU_SOURCE so meson detects F_OFD_SETLK in fnctl.h support- Update to version 1.7.6: * This release adds the following features: + Add a flag for UEFI devices that never want a capsule header auto-added + Add a flag to indicate the device has a signed or unsigned payload + Add a plugin to set a GPIO pin for the duration of an update + Add a simple plugin to enumerate (but not update) SCSI hardware + Add two more instance IDs to the MTD devices + Add X-BaseboardManagementController as an update category + Allow assigning issues to devices for known high priority problems + Parse the MTD firmware version using the defined GType * This release fixes the following bugs: + Check the IFD sections have non-zero data length to fix a critical warning + Modify the AT retry behavior to fix getting the firmware branch + Do not run fwupd-refresh automatically in containers + Do not show a warning if the TPM eventlog does not exist + Do not show TSS2 warning messages by default + Fix a critical warning when loading an empty TPM eventlog item + Fix a logic error when adding the community warning in fwupdmgr + Fix loading flashrom devices in coreboot mode + Fix the error handling when updating USB4 retimers + Show the user when devices are not updatable due to inhibits + Skip probing the Dell DA300 device to avoid a warning + Try harder to convert to a version into a correct semver + Use multiple checksums when there are no provided artifacts * This release adds support for the following hardware: + HP M2xfd monitors + Star Lite Mk III- Update to version 1.7.5: * This release adds the following features: + Add a flag to indicate the firmware is not provided by the vendor + Add support for showing dependency versions in JSON format + Allow fwupd to operate in socket mode without a D-Bus daemon + Allow marking a device as End-of-Life by the OEM vendor + Allow specifying the machine Best Known Configuration locally + Fall back to the ARM Device Tree 'compatible' data when required * This release fixes the following bugs: + Be more robust by retrying IPMI transactions on servers + Change the expired Redfish password when required + Fix a ModemManager segfault on startup for some MBIM-QDU devices + Fix a possible dell-dock segfault at startup + Fix compiling with new versions of efivar + Fix the Nordic bootloader type detection + Fix USB4 retimer enumeration + Get the SMBIOS table and host machine ID when running on Windows + Show results when calling get-details if failing requirements + Uninhibit the modem using ModemManager after upgrade * This release adds support for the following hardware: + Future Analogix devices + NovaCustom NV4x - Changes from version 1.7.4: * This release adds the following features: + Add firmware branch support for ModemManager devices + Allow firmware engineers to patch files at known offsets + Show why more devices are not marked as updatable * This release fixes the following bugs: + Allow fwupdtool to be run as the non-root user in more cases + Assign the Logitech bulkcontroller update interface correctly + Do not allow UEFI updates when the laptop lid is closed + Do not autoload ipmi-si to avoid warning on non-server hardware + Do not show a critical warning for a weird TPM event log + Fix waiting for USB devices when using Windows + Ignore non-PCI NVMe devices * This release adds support for the following hardware: + HP USB-C G2 Dock + Many UF2 devices, experimentally + More PixArt devices + Nordic HID devices using MCUBoot + Quectel EG25-G LTE Modem + ThinkPad Thunderbolt 4 Dock- 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./bin/sh/bin/sh/bin/sh/bin/shdbxtoolfwupdateh01-ch5a 1696516248  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW1.8.6-150500.4.3.11.8.6-150500.4.3.11.8.6-150500.4.3.1 812  !"#$%&&&&&'()fwupdbios-settings.dREADME.mddaemon.confmsr.confredfish.confremotes.ddell-esrt.conflvfs-testing.conflvfs.confvendor-directory.confvendor.confthunderbolt.confuefi_capsule.confgrub.d35_fwupdpkifwupdfwupd-metadataGPG-KEY-Linux-Foundation-MetadataGPG-KEY-Linux-Vendor-Firmware-ServiceLVFS-CA.pemGPG-KEY-Linux-Foundation-FirmwareGPG-KEY-Linux-Vendor-Firmware-ServiceLVFS-CA.pemdbxtoolfwupdagentfwupdatefwupdmgrfwupdtoolfwupdfwupdfwupdofflinefwupd-msr.conffwupd-refresh.presetfwupd.shutdownfwupd-offline-update.servicefwupd-refresh.servicefwupd-refresh.timerfwupd.servicesystem-update.target.wantsfwupd-offline-update.service90-fwupd-devices.rulesfwupd-1.8.6libfu_plugin_flashrom.solibfu_plugin_modem_manager.solibfwupdengine.solibfwupdplugin.solibfwupdutil.sorcfwupdrcfwupd-offline-updatercfwupd-refreshorg.freedesktop.fwupd.xmlorg.freedesktop.fwupd.serviceorg.freedesktop.fwupd.conffwupdREADME.mdfwupdadd_capsule_header.pyfirmware_packager.pyinstall_dell_bios_exe.pymetainfoorg.freedesktop.fwupd.remotes.lvfs-testing.metainfo.xmlorg.freedesktop.fwupd.remotes.lvfs.metainfo.xmlquirks.dbuiltin.quirk.gzremotes.ddell-esrtmetadata.xmlvendorfirmwareREADME.mdsimple_client.pyuefi-capsule-ux.tar.xzscalableappsorg.freedesktop.fwupd.svgfwupdCOPYINGdbxtool.1.gzfwupdagent.1.gzfwupdate.1.gzfwupdmgr.1.gzfwupdtool.1.gzmetainfoorg.freedesktop.fwupd.metainfo.xmlorg.freedesktop.fwupd.policy/etc//etc/fwupd//etc/fwupd/bios-settings.d//etc/fwupd/remotes.d//etc/grub.d//etc/pki//etc/pki/fwupd-metadata//etc/pki/fwupd//usr/bin//usr/lib//usr/lib/fwupd//usr/lib/modules-load.d//usr/lib/systemd/system-preset//usr/lib/systemd/system-shutdown//usr/lib/systemd/system//usr/lib/systemd/system/system-update.target.wants//usr/lib/udev/rules.d//usr/lib64//usr/lib64/fwupd-1.8.6//usr/sbin//usr/share/dbus-1/interfaces//usr/share/dbus-1/system-services//usr/share/dbus-1/system.d//usr/share/doc/packages//usr/share/doc/packages/fwupd//usr/share//usr/share/fwupd//usr/share/fwupd/metainfo//usr/share/fwupd/quirks.d//usr/share/fwupd/remotes.d//usr/share/fwupd/remotes.d/dell-esrt//usr/share/fwupd/remotes.d/vendor//usr/share/fwupd/remotes.d/vendor/firmware//usr/share/icons/hicolor//usr/share/icons/hicolor/scalable//usr/share/icons/hicolor/scalable/apps//usr/share/licenses//usr/share/licenses/fwupd//usr/share/man/man1//usr/share//usr/share/metainfo//usr/share/polkit-1/actions/-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:30945/SUSE_SLE-15-SP5_Update/3847439650ba3a48be0afa7608c74a3e-fwupd.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linux  directoryASCII textPOSIX shell script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a99b59b4ce93c1ef989bbd92e49318979c531f2d, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=872a6e981dc73ffff44d37a3323ac5da6f756eb0, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=1bac40c52f58a3fd4904579f0ef9249c00a672d5, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b87b578a3f299106b79d4c5938e2c1cdc535376b, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2d643744ce4168a7d032bb72bd85e942213504f1, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=aa42d6761426ea27ae2b256f759eb812f8a2918a, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7acbd13c972ea5ff43e51577c4269173c8189e67, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=57db0f1d6f6a1f58dd9e4ab6371fa7633c7dd561, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=97741151e315914e561190eeb6f945092b0068f3, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=c0baf0f3e25704dfed4db48ad18880366f895cab, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=deaccbfd991050e9a56c2348d7dae7d7322a520e, strippedexported SGML document, ASCII textXML 1.0 document, ASCII textPython script, ASCII text executableXML 1.0 document, UTF-8 Unicode text, with very long linesUTF-8 Unicode text (gzip compressed data, was "builtin.quirk", last modified: Thu Oct 5 14:30:14 2023, from Unix)POSIX tar archive (GNU) (XZ compressed data)SVG Scalable Vector Graphics imagetroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)XML 1.0 document textXML 1.0 document, UTF-8 Unicode text=rB*58!$26RRRRRoRmR{RuRRRRwRRTRRRRR RR R9R4R;R(R%RR0RERRRR RjRyRvReRR{RXRgRRoRRcRrRRlRRURR[RuRRTRRRRRR RRRRRR&RRFR4R)R7R"RLR(RMR=RER/RJR3RDR0RRRR R?R5R%RRRTRRRRRRR RRRRRRRRRFR4R:RR$R&RP>P?P?P@P@PAPAPBPBPCPCPDPDPRRRRRRRRRRRRRRRRRRRRRRRRRR R RRRRRR,R@RIRER*RR:RMR/R)R+RR&RCRNR=R4RHR%R RQR?RFR0RU@ k6gNK>5Qʄ`0edӐS,b][Amu6OY?ےI׳F[ƥĮ+y3<69Qz?Q˜8/!kkBR{n̽ $Z-ܸD5S{Ǎ+Ic`rE٘1/EvU?ID5NpL)(=T̘sc(IzMסHX ]}?i(kG][lJġϼ) L}7K?kZdCs|PXix^oE"g`ّ$GV,х5\"Nٛ ؁kP5P( >&^K=XP5eL19ЍT䖈3#CPv7djz &iH}@:dp׫ltM=*w+vZ0RLTZRT!re&(E0HP-K RCix'^L]Cw \_P5WNF90ipzLpLw,yxxyA;Ͻ ra%V+F)3'YdSrq9_ZI Ұ~ӞgQo-})F^K?x95>#]_p|j0E)w"eĿyc2s7#)!Xt!7xUEGΣ=-Q.^7p9< '"QQ܅9X IOaςT8& a.8rߊ ¡A3o~RH$yȐ'li\5$;Gh7TL~ԟ&ȢI+J7FZMwxeEh xbb욱/ň:)m$(j: b[xy[qy6V/G_bUo 9w]iWe #pS/P^O}ٙHl!N@ v;bмXRᆨ"Vn`գq,j>SU;r6mE4z L4ͽ!'q‚>҆++/ߩvi1}n麻GBwpw9~z-0DLY(GTpW /c2Fo() R8v$%5 ~zs@Y^< !LG@7 nӷ]9i($hAD.-q>7p AT;Q( prdMdK 3ˎ1QEZ^d!8[<w![E6~Ѻ2hV|B vl"+5ck=g{0Hjf t'2X'(Pzml% loqHlL5E0qw|"'x {ݺcK9МБSy' hcԃ DNZoEA!@{Zwk¥uaK͙R|6G~Z+$ =O{(1J V!5 [f|StQN_Ak J8Ÿ Cu-l0Y=G@mTGֈ5/º(6}q'T,LL |sAVb_K*tz=e4Ѳ|zw%#`km[ !) _MY$r8^ELos"ͨo~$o7.:i[3]{n2צsAĤU`&,9H[:R@9njbFOd'w`6 @|!=Q䟐cP_z|G,V8Pr\#kJ}bN#XyO1FGA#> \V}jFL ~76 縀8@D ${klBĆg,^~Ձφ*8O,hA#?& %$_K_i)-D"I.c')y6qڜ8zYvt€V]iw=lBPin{mZ?3"s 쌊p1ȫr\U\Rc'Rj:qS5 O{BuT͓xq(*2Qܶ|vB?txƃ8'J9r1R:\AM-8*Xq^끨 #u9pO>wf?H1zRH[8ja$yڎs 6l,L{] =^y!\/NX28E׶؋ Pl`D&yL}*܈0o-eNsbX7AЃLT t:։zi&mW":ڧ>M;lq̩)LcHU]Z݃OkЃtP4X Z;VQڢi8_kHIC_/7 ~GZ /S*QWG ^scr|롭i1ly3B$ _a^d# |)Lm{{di6t1D3·bCH!rNJg5BNJ>t [͈Hc<bxa"1f+[@BH?7N7?E9]L/X.3,3`cΔ>g;V_ڪ È{y{~5SFRV\ x)*Yې~Ίd%Z vFB =ӓ s`>Z@`)7"` ?Xa5^34=MrX @s2ݻ̬1r/Ήu_ ;a}[HīFj92wmp/]ޤO#{%U~i3ϒ<հҨ-#^W|FCfZyrciX08?uf\ }_5m Iz=v-r8X@T&]`Oal╂ ,w spm脰Է_w+?_Vd*E_= b5.p6ٗĂ-$54*-aC.ዚOnƄѪPTpz3*)r t eU3WԈҙif+~20ҋH;ԑ2{ԿU+b_,>!O7RvǶ䫲˖Z}K- %=}fRKoxd+ bB/ѠYy;)p<`VV U`w4*΂t*, nkݙ}4+IޮvfXp)95;%xjBpJ^͙앾( :DM9(,p/y"V~VB;a4FnfM8~'zG]̞) <3ʸu)!4aD*s7UBzJ S'iɭdfR=wg3=T_I ^ol&qHa* 3EM})(fN@A7c5"*7e37hnѭ$-/4W,dt5.  j&=%5k3Fm 1JFLܞ;"Z߿f|E@5%;yg~N(=`]|4+fz"}Z({m#Xf^f,~U83 W8R{R`;͜uQiF̂t7ŝ .9j@p7FճlԩgOmu=7B>E &.16g5@ ?ޣh6 U9ѦpUL,sFGw,UD=?֩X1z4宭y'J/JfvgMV ֿ)uSx,$kɕf@&A(dRߛ,iy֩"b% O&ULK?6ٯ=v)AT;, 6G2:!CKxCu_cy`㡺 x0I+K2Q [^gs+R1ŰWrYkx"Έ!wjKkMc"5鼉'tRz~ڨ T,IUn @ߠ2lس7_ i;gM@ W`VL,nќp!t,Iכ ڒ-hv1)y'l Z`X <ݣӹoFJjXeLcWNDL8D5j:i8q=Nc6ϛ֝'M0a⸧&}|~4qS-sHq(J8R iBuO*_CaÓ[׺ƲN\⩥GZpdVP| H$W)[OPe9j}Dh]6-'X,q3"ʲ5G+dlFGvuKR 3%ޡ(8 >K܋;,[2@ {`N<"݅76e\kW)S;1_}8?x庌\x5 $Jnq5gCz݃zΞͬ&ǂU7|8N`xS@fan1UcKG>noXqF0ev | Ģaw[w]Q)xOZ3mr,b⥂͠L22#!U75Lo;}*b <вJP='F 7 & 0V Vz]S(<=Lq%qfS'R!Z HDL"̨[A޸v1 *ͣaNL38*?lbm|C /Jѷݤ~#iv%8"0^Ivɵa~KlO>fnxLKDkGG&qIەBFNw s~w3(`ww"* ׾̟NOw~A^{x0E0{=bG׆7Vl ZA#m~ W>'F]u ճDe;M3^ԑlun &;g{qDEJ[qā"#VG,ipVIQ6SZC>v5!XLLnf4 rZ7Tݯ 3n$WA4Ն F7bMސˀa, thRZ5\)({u¯HFhE)QhbX!_oIiV}@ק{f`\b~Jh6o a'=.$-LQzN)Pv?:0x TYƣ&5Ͻ|I,O0Ui:gvB9~ xVںm.InC:گ>|=8 Qp?QFn8U6UsFmQ6҉yTƍ?m@>W]>EB̓"?'yauzքxZ^Ϡp h5lIUJoS_LVG\/ qt`}#4g1 >y C2謁&)9ҵU9^"L8tIՍ[g: ! h C)R8qhδ.6 *gF6S$2岬[DtogZT7;^{߅2P M$rXNV#ݫ1˚)@ssc q@?5 DJx^7\: շ[&Չ ;J N/G`iƌU O.D[ ǃ7(+a+1;zԵ^= )I*ClVտ-xI|;4Cд fC1gTas1 |N~[O{[x{3iGW'[x~+:v\ct%YYiCU$ȓeV\V{-x-a.qBٹ ia5OM!Va{~0*kU$#4=\&Ns-OiR)8#EZ2K>+cUa\E; GfGf ,˶*<Xh@8' XB0UGϷDS;g7 8gz[azu[nٞ#d[vamN##(D#MM;ճbJV!!֠5l%|R0+O"nI8A[ڼC-CA1Gk^=CKD*Y~1usgGEzGZH SAǕ,6s76IY 9Q}$v 눎xa1 /cdUBT/bBjC>+Kܷa4S&kIhgBk9-fg\-qx*v\{mPM](/~nzOy^cCaV:W;L$j(8MI*@uJMTvF|»߷( \fV5n<͜:"1C5 mauCkbtrľhZ'pB=Lws 𰙥wd {vw(9Y/ ꢫ`uzruKGg]~$`$;Wȩk&?D{EQ AoMGlA d7vQBa@)LT/ ,exS-SCqhƽ fqh/GCnOg-tO!;k+)&Aŗ^=iĠ|Rq"Xt xU`x?V P+aC:{/tk4 ;q iZ #a~cabu_{G]0 RO A>,Z]v~OQ{Gڋ;^>NQ v,t*'s8{e.b_iȎ%YviИT=č:a>x7acarC@-+wٝwKDsD+Thjz1m&HYݱ?dhePu sลK:Ȅ$ u1?dm;RP;_JԾ,ղ\|bY_L~|rbkWuCړb[bIm~dnukWt(GU /6إ]Z .H&*mZB[-Ls'{?;C$uod@:dztD40xoXl{_*r&'|HҸ8hҿLP@,uqP+ }۞6 Hgǒ)1Jbl\= aZ}B81X? <7 T{sEq8`UR:/ n >ai;BaKo2D(e ۦ wh<^yJx.]ES$d1"gG p_h72?[.fpDˋ7<^ޘgav#Z>CEѶ2ucLAC2/ {Mžt+w}2NdCM ZuS߬NudgC2Y b%)̘!0MVʲ2G)YC^̫z=Dodq'-8a(Z?4/3|WaП%+6"8[z`#BS2/s>Ԏ Vkl"j|eT}x{H͓N Xd>5e+8BrҊڱ)Gܹ ߑ$^p+X8ӿME/g{0!@tX{W0~)* *K8XF4ң]a/dzsOd҅vT7ˀ@C,˷#$"jwz*joa=\kXg n"ʹňs\~! j,XvDpaΊF.05royjʤДhnf{-Q :Om% x;Ue)H)UD&L0ȃ$~ :D6@31$ҤࢌnG<01 ;\ovk 8QM|N'?zN[9<3oxVRȸF)GQyr+N;&,ʫ'0H\厲Z(n+ZR2kȚ{ԎEQ$8I; CŴ4qszk yo恧3xq,NT^quiڥon5FͷbMgXdfS @nTu.PvAXA5Skw LkǢ=q??U_+Y Ԋ39j%D(:q@Nx19ɽMC:˷9H El{HYwt꽣ƱR~ sP[k- Q~*>~4\InԕxA?=bC7~gb]*з|=Cx>D6Z}ȭHvrبfNԻr ͭ.P'͌nvฌIԿϪzi=Cf8}zSՎmYt$^NOp7G;!93fle{_'LZxfcO=wSlt2I,ct?2u]Bs>E(D ^$*njY ;}$ Miuv41O̵qB+ykLSK`%r_VJp]#^ɦOtn: 1\v0 䙭Sf6%}`A3ӈ_tۅ8gd]HbB}v\'Mj~fgO-qxYKjo\t;㪸|@3rLT٨R*O;pkjМ1z L}Ľcx3#۱}*zX|9%N]-Ǝx":hn Np./ֽQ[c$`W#K=&ǂ2Yhi u䰾Xnν.O0I;W2o"E`c,svb%[tAl*0.i%`. nzP)Imҽ7Ld&> Q܍t"͖PqĚ"9$p?v?.A^| XR^+lPyXfہ2=S:I$ROߒS`%InS[.?Xq wfMwyPʰ틱۾F Q'6W/!q'[w|}~/8,ĝ[,Z9L?!;~N!KpaɈ2 Q\9 F\^ 6' [hu5ƥ~| kLZӪFXd̓xji쒔z&^J<`@mE{ǩKI tJƳo皗QWĝ6 ѳ߾/FJ*ȲwB?U-[իS(_2sI$cysrR+gWGHH8J)[ze외 t45#g? T8iz6cYtt3d;TզHT\ IYOrsf; kv9x7opwO&eG %D1AZAn_N#Ԁ!gMRj, ':uP.Q& BJ(5)/wt?Njr%p(*)Cl@kVذ+jMn:'ܒ'Ǡߞe3# _f-נ(i 5"=r4}\HLe*֓MtIfL' Б9c޹y/BK?˻ǂms-:5 ȂJv.ჇȭH+ytk|v:rAeo䨄7#~pC{Ι 1S' Z|Lډ 3=PI˅YpV92{Nc9&f ĒA/I88&7<:hF˜̋!5ad&p<8jTF2S͉/GAnE R}Gc&lgLFmzu;[;B(3w245VVѰR-_R _]p}sbU5H }k%OZ{,"Eyx1Z7xGe;=M^xjRɏQ*t &[# p6$ڢ-~)-aZggu ~zl6G7Vq{nmEFؔwR6FZʗ3gQC> d.}9OjhVOglF.\HɁPD@ jQa~ O== \*qQݎX<;~exPʁ,YN8:S3>Ye˧3bazlfG-pJ8/(݇8e 2upKi цBi}F/SQ=[[ %Jna[@HR̰`m2 \>~mwP.K_ZW=".G<{i.uJZ:ý>7|aE  *A_>ebHtw@'9gA,KrvePo}h[ㄯd^{)FST]R{s2r㱓]u}<GvtJc CHBQl.ya}H Cl &-5oRO}76ٛ$"xc/F B6cT䙱]Y%)I& D neF]E7TNe>Y#L~q#ۦ4;1}xwDg/g`D)|=mr1"VЧ}jT|~z<>Mu8& RfҷL0%۪{ÖWCpB?4HT(ڡKRy'k:oAy&X#?dcvfl!ۛ9_Ȕ?Rk`{/' u,rUR)AG$^1zB3Ug%j'hڹ^"u*E^SRPӡa[Wlij\z U>Vs }V'jsx[V1NWpCObI+i|5Q p:E:"F)5`kkI%=:d2xXScxepJx?暗G4C̋%Ot8}{nuehA'!<OVFq.zmx8gG8%,uq WJ0qL_3\fI6YCx٧'bѱi Ar g?w"` rقrv}rX*e~ #_WV;4K^: RM(:`>31}_]+ywuW(8/%VNCKfl7 cş OM&>X$G7ʼB(w7PBif7a_jM?`WLb{xG.}4,L2$ޫz+}-΅Í*̠uv7︋l~dՆúDoOk3.m J78`f /.ڧY*StX'@bJ)s6 C>7&"A:}I&>H"4 >3+uڜ3aB7 3fFd" v>c| [v$9Rd3@8fa~zه+N̵C:ag$^8H gޢG-ڙOZG6mX+gϸ-ޓ"E$y߰ $QIF~Cinee-뜥66dg_M|V*}@ JWr2yU.Q%+ɳᓣc#:-ufe9T%' |SpЙ``UL{߂5=4.s++S- _ߺ!M&nOA3%BOc5ڱ*CYt!vوn~'"0vpưťxJ7<(='NF( royz{J ,6k?[ Rglwg~4n)਷]5 ɥf#%=7,M4Ɉgk* ߃jeiMΰxbè?ŵ13^XDLڶ%JUw͵HugWAsIJ=A Oe9c]T*{:z "8c|/xϺw[?tg7F7L]@|Q/YO%Mg sXɲ*tULW~=ץex] eLv1馼D?8G 1\}GpmCdeP'Y=o!xNJ^Xb ߮+jvՀn1K)4jyI%,T!Q_8Q ]/h 1 ![=_XQѰuw;t99 Ih1a]a]g7~ܸkj1vOMI(d[: tֶ&>iο&s_NFǶ}BMgHml.~o'|+;m*8%R~@jw퇠w=c ɺe_3Q{z6̻v ~^:zM\O ÚB)SMYى8f=*c>ΰ95h]Tڥ蔗2$OVn0>5t  h?cۑBOnܑa[g?5ky% x2Wh' h,W6y{kgm [{Iî |wTN+e!9~BNJl6K;^'P $_iNMp`~N" | >茳&,([#X#TWwY ׁn"k"R7WI1f&ޕKs!2Y$O%beͦyJyɊF. VbT,IE.!)d_OͼL#\Bާ).Ȕ/Gzw>j(+~|5Z8mh<^I%SGÍ;05QW-GO1)d n ΧxLbPUBOSats0l5a,+?vTO`,g]p6 H)z"F^Gmvׁ؝h 9qI't#R*63 |/LzS~A[5דtL|\{QTmjZUEn #EoT{/I{t? 1'Dӝ'ӊiIm^ VeT|*d^% 7- tԓ,\Ykڀ_uީ%3 @&YW)Im05\I> |.I Do,:g > 'PI;VXl:0P߰ g$߳%C_Gk/AJ@c^"(CxDrD8\'wU;'sۊ$tqM _X0 eK UBwL<LFQ5g// r:$I}Rld<^LeSØjpfk1x<+tjirK&mPلY a,ʸ<;ԣZ9ۣ>(辞ل&=,i/"`oT3iND+8MKܗ8z6[3(4]^Jɰe<dqRn䪸2ɯ?څ]:ÚE oT'7 ׿@?$`ӯ0KM l]ıW&VGnY۔}=yD-nDqtF}ԫ*$ZET'Q\ODvu {)d"M.1ST=|({Hթ_O*~:6=f!@r\6kۂ;sy^@!&,D}dVk 7d :SXAtTM xM肥lD.PmJRe#orV\P`fX2yUW6ȁk]M]gɟ3ŠOSa*ɃJ6$)[l%݆oY2ns>C;{F~er@tK&XތzgT˖/]@ۈu^ cS{7U;9%W 1Mޑ/k,DȆv7c3U^zVa%'~`L-* Uri̛4k`rZ4'tYV u'ak^-vL͡/#ߡ X5AG4&Lc r@dl.e@6j\KanYAzoKKcx$<,I3C**rll#/E+cDfA{'D\8- ZU8a85t./n2O)m; )U.,ޒOwnDj!aB/[  $eJAm\'1Mj[_o*{fvCThS7e5?7 9&㣭=@ H.uoI3ttN:!pBz^.J;~66>bYMy!"$ճ/9kx߭WC29yvDh+ 7+Cqz2C9ߙi]ŖIz93a :([PEeɜlvgsocDmUQS'Zi ?0My`Fw@b8kBR|g;'FSM-Q奨>FbnƱ8 8Ug4iؽ5]NDQ cxNjH'vCoUsN]9mz44EaeX(Jy#L=|gNH(JK( ,;Gp`V0.&_NĪ &\ttʝO%ɳipa9HSQY"?LjԷn/!ɥ~G ~;s˳촢E퐒| Ú "?#Nj1Y#+ "?` % c4O:*0?ѭoϩUA3[ mY[m^?*4Ȧ%seÛ>g?:ZSVT2I3Y]O)&R|G8Ti /gSهc׫G@$Dbߜ,G<=5ű+;D%l͐y/lݖub>Dʥ dGd"8@= *//5-ڮ&!􍂊SD!.ͦdDLemG> 4W.7$n.!g.U Z>0QtŚ_ʕ߅3d&Âfڵ%la[9X渕/~9Qn/o%q[%w`Ul{tQ8їKˁf2⧙spI{ļJ@Θ9`gRFD%D4źcD֎q; jc.o?ma(o#|>c u\;ζ3a9Df!v77gB-& ~?xls,05y£l&~*Q#ёˢ3JP>s':{"Dv\OǺńtiNxL}hn?d'(sgQ`j}`2.6t9b=[q@@JOy'u Z*!9_Dm/R]~$jNG ǭT?}t,Iw 5+O6 rH>nf# ϣn+>,jyq8/gپ gUyq6}vԱqt3ٻAzvІ͊=~l62|QslIHFL!}@\fʤgF\z\N,k ^+_wF)=0 cWE4*fOAa,/Kk"ހ E1"N1U›NǵV9A$L7AY޲%r Kx5s*Gsu΄ZyN!o$x;ys[#.jLAePdlsnyYV7' -@0.C|#yyao(F>8NL;な,dxeۘ hER&_!]3XAhjIQT2dHVd#> 9p{0u__֙" 5jcs8PnU^E |=犚X)Y,];ss<:+[e7iY{c|U?Om򭣀új"OX hB=g<Ь z?Ȍ-u'] !RNC%Us$Q,OhN)n>_XIҟy[ED lHauU>J'v׳{Fu,ݧ}= J p[e^1c o23lQո/Stk()qˈ/pasxTEtͣ-wIb<'wn}FTI;鐀,G]iQMI ~ӹCpa%\wnqCrqVD&n#]h_"khxs rmX;z+w7@q* csn t Ջ(ɳ6 x4SӃR.{wH6Ht.l{tV,[SO`Tlm}jn;!LTF3o/vd r& ~pP>oЇ| f(1+zx=ǭɞavQlɪnM 8OnT h˰_Ǒ(B# SQ[:]0(Ah?YǑe.339z94`3,*8BP={pSG]E*a Zy  Eq(~: oTT{l'bzr2x4$H8za\ztHE$mm*x2qHd{myc^l&zeC3/XYϺyN ;A,kx^x> O_{HPIE>Jk<\gT&C7{7|B?׽qMOܾm\#}z;nne&3Atnb [;*I &}d7|÷ y7St[<7qcf`"\v|'-{ӕbOLARvPܗir279DP;OwC Pi/x(T~W_{#:4~/UfƉάI.SHQ.w~%<#U2|Z#WHSS \{N66I0jQIk")εq%(eeϷJgm>5@bk AJVfLDjm6|m]ayEL ' I .:#Ajcqv5$lZgè F0~7zu&)zlB}r KLdǸB,Mvٖl\XMzjBS$$xn,nqeUtfRj^q4FsEe)}` cĵ[}G@iVщ$Ĵw~ 6 !BKc"m: 7n0FiABDiVsC<&|[7LN0z~ H|V6Ib\Їd( o3A"98 ğjze4PZꢽuNˋ`[2cFiK/v٦N 4%f o:#rE4^xP0F)C]`a4]y暳-Y(,OU+($l$m8)Ib|rWY;~bChe 28dBQ0|!˲gcw"^IhFsO,VFr Dr#YbxH*+@5|w? ?+[ !.˗R҂+v*x{-j{P~!Yσܲ_׉7@-.IbۉԂE.N#(Y/ ~Bzj!#M&a}]Vj|=kOvͣU>4sE"3Z(b\Eִne{9{IQxkեm_{vu&Xu1FѦXeAަ߻,%_p b$474aC G-ofK-5 UV_okMS gѧ3?XT9X̺N'Ym%x yÌ`9I.257tk+ ig7P{lxjro?m%C1_wSH ;lEW $==g@Iio;fb5~^틦yQN ?V;iͲ TW!8q_o6y,vwG5abQ YqR59 d{2jf0zdxgOc;݈ =m#7|{$oEqD@ qIm _jx/Gす;+|*T~`| ~.U 1u{8ޣd;VIvXe_ۣH^8ˤ]˶Uqe:/Uq  +Z٭.ޭ6giސEi1%ϟ4AVmۉ s-X$1:޼+@Rc\jw/ɟ._ yrA:Bf2b&x<qF4KeZ3!b*Պ%ݣ@/'\мI(("LIh0U]vt܎o;gCOZϥxӟ%jxG7F `?UY`z"\[8 ƒ|,^F~k 1ټ##.Q:7x#18Eal}cEI&=?C1B}+:uD/M-Yc~xCUڏo!/uż@THx ^VkٽA׶ήG {o 8}}y vldM7y9faFuyS5'0-8{#`9;X7zo} ه¯E_y\m[eN Sq qK,s c5jm^?e q8=y6jI~y}#E>0$ FߴjZ<#xc4;ayu8$d=15"TSAL͛mFhB "fvlWNC̴Mߚ}1fAf5٤u<ӜpCl l dQ!Y]rӷ+Ӂl7S_GQvum3UA%ù\1d]t$*E1dt!8tU]Ջ+1"M-L%q(^8T!%؁Sƣ*޿[ïlo.d 5n)tJtu ѯ0XO)렎IJӅ\;Nd,ZsYSb^. \>4 x燜Wv#^mVwHe Y.s`)QB(b#+.g$tNTqAj仉3)%#Y!PƔblqa_XD^+?l${inїRT@'jsQՋ7b8[\T69īODuǘr+ E[-ꬶ葀`ajDD*Fې֨pz)\C粃jQ6Ń-^8yN8tX7q97sRY`ΆڕoƸW$xF7'[tZU> bQ9p.2)N3K"%aPL0a/ܤТ^w 5y{0P=撡w}W'#N ᠤ!c }LeT]13JQ:Q[`UsCf%3R-gp)\?<62[_Pn7jV/a9OkaQ!ƀzQHP  h~ecGzmru^u\th*H0XevSL;0 04lwcCqPP,w+ #r7ڊFYfe6W{3_)J -spWJQ> t<oM' 3GTb+Ur"F ΣH0Q|^^&Ytgl BI%FK ]]S>R2OmMΨ?mv E#u(~OB0-c#E_$?}__ hiuz0R/( zUtvяd6.fMm&B qѠܧ޳WbX=/#m5,&ShLrgõv̱D0>f=$紑3g:ވh2c7>-EV",ܭ@'s"6mG6l7=UUNIK {~@Z9"rqG0`BScze387KϔšɨҮӊj jHX7S|wzAҬ8)q[l;=flT#}ޑ^!+=h7Z’}Zҩi y+ 7lQ:el ;'9 apFɴûF5fJW.@/fy!aӞ1 @X?~RysX4Lfўd db~2 s[JA<=IRw('Mqăx#'R񿡩2jq3 ,8"ٜ5@aHp~!퀞48UY}zI(:2R(UjѳANnun<`w5 %>s)FQ+=C9+%6O"FQf+Cڙ/6C\"C%wQIJ^ yD$f_<-Lj ' yt&Y>m5fjtcws{W\4.6^ ]&cE6¢U#pKJ9ÊlMkKexB|{TAEE]h@:m%ĴҹsMku%RtG|}]tv;@OfS [poRM7GAS]4lHuʊ ]Ô?2oߧVUUI?~3'V؄%E Lє="Z?Guu1Qڅ#c3w<gi62F[C'#Sّ#:sgmyCXd%Iϐv#=`kYb92vC / y͛Ls bI^DAQ" af:'иﲟ#RI Y+`F*-ǔ&YْI柎ve:b8GɃW9%fs.j9R߀O9|4j?e?,ȼ.F9Ax!GlIEύ[ZnCEZ0pG6|ׅ/0Gٮ~]&s. 3^bAX=X{d u=flS#5UxBlO9tA#0d󼐲֞#Ԁᰜ_NY[D,'T?6ȯ!4cu`0$E$J]5HyrȄ[<8 XY(O~2⁼‚J߲ļ3sCR2Zq `pk]T("AphMQ] 0tpx SDm;cI`isv8QNQ҃޶@iI˳ֹQQM0\9Dy;V-Gy:6ۘfg?J{N\5CJOBBbUNqudƒG|>nG4 X&mO!4fJkG Siwź~!ylA u,]9&p^[72[+{aC^Gr"#[_4Cn$?bEg/? I5Ǣ!wTM#mҐqyqK2oM֯Z!ņwglb;ӽƝCJyKc 4ՄMFxKZZ^ YN] "nQ/?QOB٘-UJ;<ΊTS̀u4Mg7 " {ِ m/ރN9gxLK K]l$ȟsv&x `H0*f/)Dp!#MU-WhM@_V` ZF}! Qڴq \0'#/NvncWk[O;2`LT1: XRTiW%/3HoQyԓRS`B32ʌDAQd*5jDǭ# &rD]:wr.F)kʮ>nQPڎYg6 Up"(-NGY_ÉDr ==Yc\3҇gp~cm_L9 p]yo94 $#uUQ"E*V?yVO _G,ˠI7] V)3y2NBr30;u*H7!gQ46SؕUB1$nٍ8h|J9S=H7&|ko}֯Tθ6r)jiEr12!wP:)al&MXM2]a Ye^!)%Ғo@ w7H{jPF9{?̊*Q8=.ߐ:Rk<ɚu~\W N"cjoOyi[/_y7MhSVPRK|+ DX[i?h6p8^N`"1~[ 9@EˆRU22h-,_>+k J"o6fODԒU0Ԟg.6򗘚hXQLFFDfÂ[BtĜ3X@'a4inEoG=*G*Nv6;VBL=}$6J.0Ð =jK.Ig_cȎԃszHw,m> <394(ŭqxܲG; lf ZȐQ^pmW<U -=J"n'= ̗#j"4VHwmUnrWtnlQ^qvpRQ@u̮l7iK1TqqI'^nYGs@C{mH49 SC=3 ' +6LTt3LDD_WT\@ >1Ĵym.mes*-O*e\)iAkߨ>E!,7 \hg0.OTK}]O g:mӑsxG#BK1`Gu_ ]THiO8Xܔ잖L@Hb}קi+ $ʹqk\ړfvIt@eeKxȃ^Sqy`vWZSWddB> 5VDh_e [~wk@@qՀ,ވZ.f@) S+qR5;7FOe<կ[D#$(󩑏jqV{d^Q zvo!5qIM4nF&61.MV׶eFS+ bxeĚ Bg[2\dS5 9ɂ^ F@'?VA'wT*wԜQy]hD:fb/}H @h'-P [WnuO.m0^b)e1 w3wjw)Ro8ؔL}TޖK1̪t%/[Jpr/zu23$R=֓{iT|`;T -x_ĦVC1%bBfQ㸱=\-`ߎ073 Fm v+8:Um`XF8`u3stE c+pLjc8ϦгkZTj& Jڨ an]<$v0#WÐ@m"!E% jWbp'y*yG/ˬG`[B^ArØ8׍Kۺ1"9̑_,"<)ee}ث{%'? KIPPFMXz\gg 5/nSwHL/m=DލEևϧTIf3(Rͱ qVШdĚ$Aq@4OlkӲƆWq_`[+LؔZ[ 2 q`E @R|Do?kҜtdx1cR{ۚϰ{&鄳y0'(ɒ:(3#cBdJQ9x8_/o3ZPq):ܔac/r)ϴ_R a<ePYQYc5 )W3=)n)x[߀}u!L|`ܒj8Gr׀Q!M(oLٽYQ3hYzn Ei N($#=J;JR ġ̉oa' a' $kJ6Q(C2Bf{P#("c"e%LD/*[Oy:Bam!0P7MFe>$ݙ "@%'?E)O.dKf}C8{c61y$J<@?Z~|@ RJo8էlp Zɍh Sf %{==0h @AsߵNBy\d^Ȼ6CDFR雱FIҾw3Vz!ƒӏAjv闝9ny{qt-&\̦,@)Nֱ̝䗎 gAzN >vZ8_qIxՏDx OUA^耪ui$[[}yE)Lxu4G r, 3~d! o,=]ls49M`;f g[T=p|P<5&b 1Eެی N֣ݒ%DnZډ6d-+x}Y֊FO/ AעnfʭF  WTj vp[ց,q +칞 ՙeI~#]&#k?rW~Y K ֡Y~v17[\@՛$KC1](˦73eu)P.V$jTfe xVu&R.sf*~,wk堣>iT2~Fos;1qU\P#Zcτ%1mxQV69mǻ[az \ ǴQg9Y2QmX"D;$NCGotB\eyGBA9L27$OɊ4>bN*`YX&6Um5s|",u&rXlUgX UT*P{m\J]IL | g)s5]S}vT6o aDtM+̅X— h_Xc$H,WepF e8ƪ-樑qH!T>/@ްSQB"CFD[) K-_Q1ՅNJy=%yhOn'WdQ4 <-G1(sZR[$;[- ewmӑ 4P$[$~ Q6El7NF&Y6GV~gz- /8yfocu(~xlHz3l2EOdH^83Ktـ5A$U2P~u'ZdDZ|K4l4Ui*lE3/1-6YŔwG4J}h@֩o+;7S"v@i_Cwhd.G:+հ܎bc%HI5VMaP{*cNZ321J1.2o#amU,AD*ė}4v;^MSM>'֟B7.JԂ06{ՎwPNv (couw\ [KO~!?D9.?ї.nѵo [`wS㥘ƕt aKoăpY jH 'P!r^9A|-; J]*ѧܒP 2qzVdH;LBs_7 ۏ{Q@XDs㙫3N]NO]/fy_xn[)7+RhgkBzԁ ]q\tF]J(*e}655 \tacg2H9utS$1#`wE.x7("2pi9 U\4A޽@.6QE`)jӗ$WIۘSg;HuZ]ȋ/w0?63ʤC=g~ߩ0t2Ex+;jwojMY<; ~l l%IZ_,We[̮hs<˫= \JWpѴ},՘wVQvKoDh FhldBX]ƹ}=XZ'}\[^DDO&46K+ #"W6#FDлK}KS_aFIJڮ\  |0maց?p}K|b1hww4>G,/_R%UҮĦu6~E|,I/D=OcOo ]s+F(A֗ƙ-Xcư%ԓohV!"h{Z!ن S[UzrTe=sM^h~2j;V%emvӌ'%lEFos<2<*T}3bx8fv g8X8*Ug+r⚧Fmk,gowEdB06 t@PYs\2|0j*9XЅrYk=}7"~|SUv,2„eWErrԏ VA,DEWG!>K7f02 0(!M[OUʗ `rga]~/V9OւYp;"R 9"zhjGch`3h=;K-5Q$boA/nd%FHD2| gcÅOo  +D|Z<]'@:R0ƭ=Zad#<+c# ]ٖF{]2:li3X}tjXx)W9|.(g eK4\H#E|m]cr  -9$Y:ϮuJmkV_^g6yeb>r?1 Hc7fU-!]cĞǂn.ۑs*W$Ю=hH-3رwcsk&Z;U콂BZWHt b=>vR`ƅ鏾I@iş085%)^HhͶFyk_UՎxmM5 75_KdDAhK/o'y5=5K Q.xǤm|=YlLټ{[Tsh G[DUx;Us(/f1G#ƣ[Cq}j67b_f3 0x33/q׽+ub^dpб.֊rW,5/0x@puJE;[29!a{.7uW*b( 6oݲ>hբN>O+Cؔ(Y[UPLz]X[+_<0(dJDȢ7\ @Qw2k9  KJ'h֍"eW`ڐ$DJJQ޷T\ |h>+,P(v492ITn" ?mࠡxfwm֫N#pY/sz4T( X '֓l ۽,~Sל7W1C5c:5ɀ;B?!f۽GTooW#7TU+{@ʈbX"u\;@ְh3>z]7eZrL ?uwrR^#lP\\4ia ꬬtsjc=[Wm.^``2]a9KRtDr)}r^ʎ`S 't|wp<!DL}76߸1*귲 8+7*]L_{/ ʺ>G}Jț}Δly@BhlCrRД-OV`2'AȒB؋*4)a 7:{vPfZKFixT+_S~OV$b$*?6)itv hNG6jWGtqav06Ћk~/](~1PVpmimAμ~.TVVf6!9c;1p3{DH1fBv|Q1ȂDzOw3 QТ" xU ACW3~?0lxCGXn~"/@Dg'CD;P.M`r_4$`7eOq7zyMNw1/J"`yiRf&C r·Ng, eX;壏9R!A3!W Q13X`%r;M=?aSNGR_XW͜ KeCeVSJ:ۋe}WXEX,}4 T9 O]`ağ g}vhU+Eq{4.)wRkӵT*o/۴|!e*X +Ĥl[kwmniݴq>^>ʝUT73pyreoB7 Uꮝd(hLv_}?2Rρ\Tg)r7Ǩ)Gkώn/-lsy U_ q棗VXikmj &-G" w,i) L}5#V٠sFd53;$"cF*7S/syng.› 1,$'~8+ cG:.`D杻o@rE>Y[cscܠŻgH-aI+kt@Nd6K7}ZoT` CN.3c*`Ic$fR_Έ 이G3ödwNBzLx塝u,[,몓Mӳj ym1vǕ@FfQ޹2Kut֍I{ ¦bPlPuTEW.#4Rde53N nU_K(7-pe *Xa "V,bK8Ap䬶yw\B2u$O9w2[)eZ3tS-.pMcF.q1BoHkCҋ,Ri `*,1T?)lz,ޞXKkLٸV:}{.+W/!w|,@gv6 MXcҲb4CcGip} a#HJͅK#o"ج !.7Banfr)nz BMZn-n) ?EP $muGEQ_DZmO!͊zY>66O4&btVIJ=Gli@Mk%܅ ?yqZVs}&eîc;lFQe8AReDBwzSb6/2 );S[v'7bgg!RtQ_=gP/75N26;"dIqbGb'za|Sj7 >e+3/')\U\μʱR}3j 5c-Pom(@ICO75IbRsu.LS h N = `&3m 1M["7ڶV*4˞Onk8+82򌯧%g0V38 o"VHۢVk )&R .J y"$CxqѺ#d<X) ^{^a7+G$!0RnK^rTq3sjJf;VH15/9GB"(h7pexjePw_$_y1|FzІ$O?9zJL5W(t ;x֡Su֫;1mZ> ų L>kHRbSe$;1sSDFsPMNYDn ) 9*%0_yc0 elj] p(kK-Q~j4E0VFYC2pC|%-@o{=ء(E4x( u34h$$m6:]J rS7+-[`mzE<ə[v ȅҳǩzxs1XFvJ{׊ m =YmxmbF:KnyYpQXWp;׽e@|GXH Y&Db4?@׭ ˓3<Ϣ{(@W]2Ya`QO\f78ciBQ"p;լ  e/>dN7[ 7k>렃[w׎a͜NԤـ܂?Yݙ*C׈}Rf)"Jv/&S=_rQsؓ (37|`wirzk-M8o}ym"ﶵb+ED%sRfEKf&nU [yCa to2`#w'iڌRvq>aSd+pqXIq2eحZf1  ttН_$ &;]^8G2X:E!(o38h/( ->jk窪3mNn 5vuz++CrsT=1|Cטs@p\'1{SR_fwճFV ,ӅQhv i:G(Y1M^h4e:-3jipŸx] X:SEņML݊SiZ?,`Ɉ?$ 7,!B\*L\ qn8e:DPoGɳc?}Wmg !(K)9UZG**+]Xk_f;$"IRV.cKv23~L5G&!Nonj徔!lƏ.P<uILRb)w7'Z-52T!oWՍ[b眊bյBZt95d.fS*Hz_7\W'TxwvΞ+1Eja$I1Jӿ,ύVT-3]RŬ2AB VvyR1#hC^ UNa{Y9O[-9KnCOx> UieC8Zg cUit*lVub*iM(֝QٖbY#Cչ_zgQ. ِsͦxܪ#yb/xT%P3f.C`(coD?%?Eg-t6S+XO"mu@MZɣkE4 nwe%_kRL2N6_6{v C^2XC?t]P^HŮC7@{K U>.R-qڽQ)b5۸dbDdAȻjAih +gʞP)fP~%0Nܝ5΋vӯ2ɉH<ؑX/U(ڮtd%Oe1w5d12B =,b ng El7@1a?ߔn4WoFR̊&ޤ~&xth0­*PG\ew=ax2Q UMbB˙S+N"MNQDŽg4P7]lAUp e@Jõa Ȋ /K.N8z.cV0 #åXr \c(Ԯ'@-0Zay_cUy4Ro(@k&f]b(Yљ2ٕuIج-ƾCm~C!Gʵi"l& ,}.j08y])S# #LV^,kJZ)f2r']EW)'i\PbB<.؀Eћ&eE >(3U n¾h #y=gXx@:]w;A:㞃}T+^̐V4]g`AJE'^o|ORdPŋ.wԑ]dfŅqVìoN)}͹>6Q] .--b|P0Crk8qh /+$x_IEwTR"P!ƾxŘbYmg[YGjMo>Y|oxߦIYw) T魢*,ǕQyB\;hW4.!gPfs| I3HɉDJlaKJ5DkXʭ}ӓ3MlӠS\J9%DwH{x4h;"n† }DNЀD+Q{U|v /P" Cj F Z ul;u5%{6.(`adl--G̥%Ab7 >.$]/,fuRK%-~4x T]l%"ɴ ¢韟S1yxsȱd_HٜGRۺ4G_g:qD V\,+PV&KoseVT=m5=7-ԥ!)ɪ& Yw@h[)*bDǎ9pt}9saiBG;=-mOO+:>d`u)0G ،rc(sr8|__h[*WL7X;G%⤆.+l~Kfnj//b`(!Ix&Iߧ 5kz ĴĺUZ{A )my7Ccgyl[ۉF5r)i`N<9*,SP1l$[f!y;" ~vL4p,&#.odQyJ8J&;|BD7$e-+W>S,1]m)QX3nW=rO#[5Y~XLWp 0 Zĩ TnI# l֏SY>oxݡ:8K'wɺiJs`_'W2ׇRh)7 Ѓ}Ĭ'靗q2 t+6lӜD ]W[E!DlX,XL+S>]% laJclj0Ijvn {neUrb ezQrQ5^(;n Otno)l8Hzt:s԰|~](4oOJ#2&a#£V?Jkbb􉢎;:Ʃg7;[aJ!lAl)=^T S;r ++{+ ܒ yƭ-tb馬 v;>QL Q#ݦix%weW,}#BS3Bfؽ:pw,(CCѸvB#1x}exߠuSiXV% &Lu2-?~Y?׬'!)>ڛJW?k&?}4D rA,N=d+CegWFa pѓw^D2`P?$VĐcԙj'JJRڀX=E0JXi'㰮E+!FtC;]@TjH|^arx<%L{(} GvQ5ddZr䕋W Haݸ|ShBXdEWe'M5096rlEVr aV8 =cǡHE湏!ݎp@es|g4ć@6 Bk@,gqIr?{ rRSr(C^8FD{Fl6X'޻FCC`ZWRbw{Aq01jx^YI!u Qʊ Ĭ)W,!oе[ k )y`]O;& gTlo'oHw򼙚P*HVCq EfM0Fw^)Mc~X3w%HI^EX+ΡDTo |LsE7fYK~9@HPbBNeq3}‰N`ˡb Wϙ.99-G)xD#3S&#2\|(+4@a3]qR훕fz0F(+u7η~@|w!|2}3EB[d;r$7fG%:Zڔ~.:bx$sF,^Tr.G6K?9o\Qo9Ļo׸v+W7S YFdI**ot5^\NxS{%V07Aq2c&+bݷހ8bo5ʗVk1> VKűdV%|FVA߸5ʑGRψH}Og5~g0oL8@*De0} CJuz0"g:o hI$\}6`RqXu~vd/ Bnj}QNX}v*F|©nEӴf%6T G)FUBǍxHØ`>w­IQ i0iB7.{beޟ\־.-'*Zd#{ -p;M.BAh]EeJIG SYr)6t=؞cKbH3%`sg~fVv} >Twz9T's6_0P~z()Z .Ւ;Ӵ٪J(IP3d*/tre8}0Rү[Y͸ 8:Zz!g@=zvU *`q޲3 @!Y@R||`, 4 b9 (rgd{qCHY^Fݫ|ΰKB2_'+WR,6 $ade(i)EN>ЊL5g.{i",c3v$,ãIcjGGU0^DtVpIoKbfcKB$yjǖ'JZogVTI=Ӯ2A# H~R(ᥞ#+hbHX,q,G T:.:1~"4Uϼ'XZ#`7)NN1!F3mRC^xV|^'Ufol%v,FpYz=DkRDR$p :\R5wS`*{lD%S9_Ϊ pC=l4󢮻)J뷆aL\}ڕ~fTĸSA\.'7aN&\["eg9H"jkكٷ2;(iҳk+RB`"J6a[3Ƒ$5i/[#T)((<H~ ;g1F}GL 9_x4/7^g:}2LfEl}/tw b$]<;LDoPbcsb}3;+J {B!DFSwzY[ g4ܧ=8B{/PoJSTU35,0@Eb<]4r n,zziz7* ЪiI>ar\{m3)yNŶTVIc*/(EY@60o.m: Ow\dyQDcZ98cʺ/2옇v:+qBIxq83L ELN!#U%}*`J T5l__y8^rY#"H{o̭Y`*['|B?5! .],+zn{s(ບpXUT|Ff2ixS;kM @fv? *&%@Dbc)M G[&E1v0b_fV"0N$(:Q&$PJx*j:^$l=`&syیBrKAx=Y- 9Ӷxu *?YkFa*b ~;u@9A`R^9`A#{ĔnKm1A"|C9*cރ4_jY}Z%Īcva[mht=\M=vnhmL@uk"&[%&@kW!#UI sw|X]肄3Qmm=Lu@9U]坑hxa׵>ٜ⚘cHE9 &XSA&UASLOPqdYI` 7 ,r}VAJOMo? E`/  ݶ4ILO2$?gtV B-ՁX.bNQiy| ?%P+n0`v czWLg9E&6=] { kJ%KDVZf >j 0 \цyz[F_ {YW\ZEZL0;U,1T]#Gk`*uȗS[u)y香A|^d=$P&|~ m$tγBSj 0j <%*?6'?u5T! WKijSCTV/F4DAfd6 {d@jNRT*KDݧmӲYaI$x ?:8[Oؿܦ{"iYex̃)vI !?e^xv;%CtgB7LqsIg{5%vYT)5;3СˁOPfm`9:E̝̞ԲFudΪJ0PCP]b[ Ic ]y~*aU N1NDNs 5UoTGz708|*胦}ǾeD mꀷ`G&ҝ[@IU5tCn]-bSůn]G'㽈.ȾIDPfltX"?r=dy۳u˚,c#5lMxZu6K&e|M9X~è#.44iCJUxF tWVxKX9@obn=Z-e^/`ApRw+gQ΅|VX8(iD l *ڡquE##fr.`ԿVV5 I%=+Cg^ G3sFÌ\Oϝ Fz)w[Ԧh'E%;{U{tB*/l6" 16n9 a td] _"05 \=O`~Jul+d]I-i4KK 4uc  OR}uuxlp 56< pI/;7h TOI0H =s'ҢiC\kG/]#!i<(oV@{4GifT$r}6/ ;Y PgJƑd!||U^'oSIyB.gJºwu="K3gw "s65q7{"o/8gKD#学\P|BETB+Uv] d߂괎p@ybz,7Ø i٤.F eKbM'Toi6YH}]"MK^j@)^RWdUq4wX aҝLU$bQ"N =i!PƏ M;bd,Lt: 6>gԽ,e66 (S4P,;* ̴X!/9|X 7JXl$k uсV~uL`=mo@51\2kKT S!+Hl7(Va?+{~7^21Dr˟xW B7B$HBW1lҏI /zw^{)~ &+*C kBEXTdj¶ 3's+hfF,L'FyNP%fw4ȗT[v\SdRp =A:wrsJ=7#Oafȁ 8L+ )ԤN/$uZp<%S,>AP% q] BD\+--kZhÒu!*er֫Mm4Kn[ϡqLOuSƀ7Rvӥe^(\B~i\¸B:fʣIg, ϾZ7/FŃd>n5 .M>^?ix~G)e||(~V +co(B\^ʊX ժӑ8.Ha*ްukU8J82 3ɿ > &98gYlYBc #)U\%gq?C`SR4mR4]׊ ߘtpP-ܤZ*.Ai0س˵CakR'i[Qrh"W/ ~` (t/,<}"yuI>.IDƮA+Puc'\#$t<9Ap6]r3GÆ9hb漺F"7F,}X%*Jjůz+s(v>˲ Nj]&$D]g%=J(&lh). jC@el礀}:XYwy溫Z6?Obb^Ӑ2>гC<0m{3?!+ِ+5Gpr—B,#}|OH_i m`r<_k2N'U˃ywG]eyi?\}bytuTئj}kqRyU=W1ޒ@iOZxQM":异Z FipYXb<F }!WXQ[,R=:ߏ>98+f9sƒMֻS.693XT{[Ҳb7K`PA)iu*Qd"GAPon8Ѣr<}X'X|Uji6 8ћ.E˲1w2 bR"y~\2L)sUc!2ڡr(FO~CCy$ѻܨY:e5LBAB.I8Hm 3.Il3'}.k拊qM Zie`z83mi\`N}3u)|#@T?f\_ O9ڡBqI6s5=̟֗;(:Q=>%0Qh^0[8m? H:rpP@Ś 6+̡Z[\kr XE\-iLMvPklsbř["e)X2 m6V^փ m^  JAlD@DG\8Ö9OLBFx;5`pøCvL/C)v"gOYG;T]5TSK#rӶfS oϚ/F7GG&*g$s&,$+"JTx158ob@F]gLrdPcɃ/QQ}?pwNk4HYXЋ F?T-9f2x`48I !4/2#ufv_I $2zۥYu$k=zīAo &SծL);*irb:) 4g<<<"}5,͑jY=S(ކ(ut &Cx ;7 {4FU,-"~'QGhTSe@"H i  Ndƴ6rS'$hR`m!' 4ۓ" fu8XHEDŽk3z 4i2"+X@όk3O`˸3J̉k5A gyP>/qb9]#sy: \7&^\Xmw4 9QJ| Md/_|(@>g +A*Rr]o͸!yמn48߬Y ۵ґ"cb҄6!X -}(/5) gO\fJL0)fYZ KnX9j. ՏcгJsq-v9?b;K@ "oMxeeQ*Zň7Q/1 ar^;ةt$m} JKBG )U W W3hcuh9࿁qQwpU6h$Pn:b!O\ZۨFGkX.~6p&?h#$C[Jd(,0Rj%Vq. KLGR*sQ؞ʗ\Քy? `%AP 2t2wSѼWy xD8TGvsi|wE%m6Up~Xd[@ÓJ[ ?}(KA tްN^=fOV3@倃,P&A 1$}_j1Y& 7> iunĥyŋ@] /cTIc'Q ǐ^M>r 2 Җ -}Ez]#ѓ]Lρi*Et<: >bDjʑ-hŋ=̇&W)-8IkDg[?dWdGr:OjcO{L[ ~g P?6\RN"i~o71'5GJՖVFˇ2$̋,]Qu2C`1=0,G~ b5#{R95l;VGaI,:K3`~{;yu pDֈճxoth[O%f @IeWBlm:'bڸ4J?]f^RU$P&؈n>a)?Lvꡝऴَ(8LI (|u*y0,a~“6F,FM6َ-n),=P=Yc}FV*8Q+MQ t)y/*!0tSвWT$(nS%nt B9ݏcٿ#]!@ݨp|LEAFV/;)B۵>#tb&.n\q\|N3OE8lv.bl#8h~-Ä0-Z.ΑMbҩh.9몿ϗ)NݬrN]X]o˧7q{H)Ö^(Z'+PtQ1=JףF.P 7^4'1T\~XJ"؎A推gu6io` ) {4_Nulp^CY.nG>L`V'9K̹l.mb{.x #QaЃҲ)M(ZDh9?B6t*M{L8,-ENK*רn?d@,u=s ] lTӭBڈY ͎K4ɐIm)uxzM 23r? 8 >i:rZv]9+zSaPJ <^Ŵ7 H<*OǞϺ]F_R> H#&0ΟƘ//Le_`)ޛ`/<% #kc;'b8͊`?m' !RAls%ړ XIGn͖4S!7ܑQ7PйǑ魍qȌdA5g9Sxe_̲GwRBFlV.zDPnAir\\/I,MmO)Us+Ne=+2C]}jA; h7݉l5ݠ L;w>+̆Agcgق*BYqWV+D$'SQԹ}1~oZdA59K{ȨL7oJ14ɫ[jgG5!y 3I/28"bpQ"@7bzýEP-(FlQA˩4Cپ옼q.GJ'E(ꉊ U_D*T5*Q2}U o-/yO"a?AY^쪋w]* ҖŇ[(wбp#$)d^dH< bTc栽3sB)3gD0K>)ZLW jh͢Oźg [oa6ng:۽"zFn[VJ|FY:8oئ&z12ڷ~Xǫˎ87Vvíe ?ޚ0[c0 y#Hy\/t$Xrd;sNi">"8n0)~`^~$eu-fӦEh ҽg_~L%]lQ0x9A,T|83=!rqxfU>u5jlP(OM%ŔhM6{j~Q_xY(&crV$^ju[M\bs F \FC6b{|׆|앜U]až&oIز(RV_ 28E<}ծrƒ - TFtJ;+([%Z^@~JƗ+))!,,:bbfxTkZOc$TV/3ˎzO{_7d<'}Mh+/?O^C !?B7Mhlg""a ial|WKద [-ޮWJF,m!WCi)iqiU?stcɁ%ŬٞM8Q$+w`)r 5ß(!3yrd`F|B}ښ[baARTq' &H0w@<֑ ͂K.|?|D6GfaokW7{W|<J~kF%jw?rVКf6#̽DYѰF0Xku6 27ưr_ۥ[#G֛8#Eb L) <\32'`YRGZ@*,C ڽ Q ~pÇ"|@e&-Mc, 'hVgو;XY!AĶô^;&}#1-6>2k ڋS;ϕ$g z5`]eW{@tm={L OWPW$11­Y ;l>1)&پL&7\=Q0e^qo`mN:QDP4 Ͳe.ݱy ך ROj @Rn0]]O$!Ƴ`hx, ..|g&w>;f;6AF)=ÌA${M.u1 AF ܺ뗔8`B0L9Q0=oUT[ TD_|V gbg#&Wzli$fr0$k$>:,w&~OX[ceRzh>͒u>ͤ6!ܔ;E\;к?('NS'1̖0-U8O1U6(νo:&H4ŷDY{MԲQYRGh_PgP}:+]Fb0p>c*bX:V[0k<]YX毆s$rs5Pn!J8|7깲mL b<~z^Bdݺ5Qj!';;hD}#W#C8Pnړ'p}"j5f†`TW5yVcQi1RN!*lZ| b ۠&kafy"%Q9 ( ?+"-Qa`}I AgyOH06[y(ܮ<,x 6ŚByaxrvi][A'm@h 8XC>ɻrm,RVj+J^5JځT,/birSy:۲`m^$>|GcC\T9>) ,i-@إpq3^/kA$ra<$*a+y TAmS 5Bq0K߄TN.b@2d;rI xSUL9rL5'tYC77Sg_b5\mwed#eg }δS&6ѯOr-YTC,YÆ.s$;%AKĽ%'p䕆Mڹ؝֐+ݕGU̔+_:(xZ%g2$3kV8"-@Ule U"|J};bt̋aGNz#:B!Ӄ|PF=agMs Q`P5oHMf,MGc>1-f!_W}/ CQGRcfɕ|w0s)O"Ȭg0h*|8 NҢ`/ wǩ0jD~0ViIGM1͆[&+ZؿkFM*D|+~Mm$p2UDWdsb=\h;W' Ul|_*-6olTeD&y xzMу -" BAp*pz˧('T @ U5NH-۸=0, 9|aKun-|rN-6W4ʘ3]ϩAKR~cIH1:zOV/&D$#x~~'ڄ^$%\Jƴ&fnzԕp#/+&ͺJWc]"JԖ?]yIaWr؛S·1E,mݼ܃";>Sx?W{ #topx}*g 6GCCX nXͷTYU+p+#DQ7گeYGٻLnwgƺ1x h&!ڟvVM+ l(J#6\6&4k $\Վ:5Ji;D.1L֩6"J__VԂƤA)Ԭ&]uxy-f/r2I6c#yT]6{I!Dl>2W>F 9^I3֌$r"SY#>D5YD+G6X4҉%ȈZ|rp4+LL^98M0fsߺva*_l)&!ڣgϱWl"B@pйk(w?"J-T~+SQ8uT+ONXj)FLV D+XtY&GAJyHXskU`/՞SqGI+hTpf6lO*DD3TS#ƌ;G/^pqXw[S"#y7{4LfhdbSet6%E|ttf2TC>O԰)&x,M"S吾. yI=RYmƅ%w1_cBxgY&sDTR~ώ˛&q@Yix%Q`r0@  U . nw cE.u4ɘan6mF4f] MB&. R;9`:VPR"z7cc ,Ўdm$_|/Zgwli w.HjDc"\$\.f&5"9kc.=|GPuzGITV_ոJrH ʝ*!7\ +dA:/b3&V[rwUb։(pȪ!{fmfhwu!r .wHhAzHȐ>2NTswܚ7[+GHMG=%͇76&|R 7v|(t Ab!S0s]!r+nK]]\%*?($ѩGAv7QT+ŭc*KT23$4ӝ)`MW.ǚF۽)_=H&DMx ^kaۥo&T7fQ$S<~z%oPz~ r> 9>[s}!eb;?3aʔ2+na%F!|7xdBJ*m]6[>-~&]('/Hpwةqe1ԯQ ㉠3߾rp6[77A1=+`w+W\tǵкb휊1ıQGir;e'z>Ws!tݹ噡q kX=aI}@i 5hAi𭦅XNs_:hJ\GHO9Kty<%8ؚ8:~M?ܘn 47֏~=~eObq^CQ˙9Rf85 &3N*wq~AL`sǘ6vs~(I[$uaE N{3_L(FMKFNؗ9vuQ<{Ƒ*"RWao Jt?JruoQ&6]lzUpE743aaRm{hw#vYH3%H'Y 4TzKʹa߃FI9τ&LR1-C Jɴ$:h~ywsWu߼ "S$p JNgէ@~3^jb|{l=k11V+g2i?^[2R3V\¸Ckt)4ۮ̍I~,`yu",DvdIpy@jH`>ctJ$"Ww.Jojpe%x]1B?eՄCЁC,uc?f}o*ռI׀rlIL5vվ;jݬ}(/axR+ |B8#L<3,,ƛYkP= dY `]m%|~[Ԣe_|Rȇn(3dŨ#Ep2:kWПkTVN@N%y]aG2άa|gb̓Alx\{#yڜ -RAQ)8|qE.x.(4nfgXw| d%(.a "*!Gʲ/qPp~eKV-ǕqIf Y㶑F8Uf6Jm[9ݶa04+5)yCfӂ^t<0ߵ2N%owǜM[>H/˚}{t@)a/oEuFJݹ.G%.\E눟f4nMo5P^:?Jܛz$lH1ۂfnGlֽ O,&eƪKuGs%F]-B05/I:KxVIv޸nzNh}bh{!a:|%*{!͓4 ܽqK-^E6qiZjqJ~(?z@eσ,Vz|(KMhFGn7 BId 9.HLkW.9+:cb9XӳP<~K9)\3} /.u@uO`3M_mFJhSnF4: =`{x)}NW߶zϦ%9 ~~6 Bztu>Tv_6#*ZZA=:B]$"]z##$3wWfw|OGcX=n#掛3a@}\L$ü{`@̘(Pc#76-8'~,PC! @T_ePgxnvkE5K3٥xn I,*i/W*k':|VKQnޏGlk0Ɏ =Kaѣɣ?xa}{%]O!zHQۖ7S\{l~xy#Ť|M`*j'ƀE dɴKZ`gݽ( X5hWɣ}-6:tؑ LϪ _Le5 Yҝ,em)-m8W+[ϱ:'q ASO;;v{YDQgȶ3 <RJ<4(>z-UϯQk bq#<΁$`Тa>>N(Syϔp2e2d9P;4L?&c8g5! d[7~A®MMNԬVg`~&TVhZ[Sś.F/ ͚*,k`]2%1Ga9c4xygo"OZd* }ƐkG*틓HPt\l@L55hUU=L R^&:F7˰E.h*zuYA5şBFңA4䨳fm$CL[aTeޡC*T-f>Mꋶ8%$/19ϑS "3p$*1Vޖ%e̠ƍ[wEDB^a;QRqi(Kr |$Y(sprG "5FNpOlȦ1"51]P/j9]! 4/Zq4J6!+6o6iPض@CWs@ŘLz $JaP\a''pC[Auڊ uĩxs/@_%(RG3t𑮯>C.. i!M#\vρ^|2úJ:bT/xήeUsoYE O>"R԰I|Ux6QCyhV2o8#F_Fu0[Ġ[}Y3*Ye//1Kw*lka{7 ʡ \L^q@HS4Qe=r59= T˰=a^»Z8Fs BK[{21f˓hs2|MgL^ojz OUeܔ˭|*=L XP+,}rL=` 8!Uł}(|O#2-C8k=߀nĹ S,M4R&xY1PFj}Ԧ1f%);B$BA&k8M ;dqE+@ stV +ʍCmXNjۀ_C'"AF" G}ۋ.-=uN\*mkIl)2D,0 )&{J!uLX=}Yoۄ*L  ΗYEͿ]qc(ҍթz 4Xݻ2'~<ʄn6@oJ,$m$/㵢mY?M5uʨcf|Kh]WPX?U2>;cXx1`{j'c>Q1ƪG*2HoCIfsA@QΝݴgv>2&,ਸ਼lj/rYeȹOLRp ppdG;Ҹ|wiʻ4!\ëUu]ܕ`;DAW\Yzr{^]rmG%"p=~O\v㑸uk/Pݫ:9Px@l9uȐX d-#8Ǹ`ir/L沯 &V!^_|ɂ+]7K WNl]`7HZ_il!X,zHO磫]*jthNP#ec@K1wI0P)N0*i>M_TDTdE_DS97N)|r%P?5HDd= K'y $3hζ"#JN~Ny|XmKo̬y(tl` VyXyj[eb ;`eݶ<(tCHt=DYny"vB&&B֘ njW\87=_EDO ӯj?&L8' WW 9<Ե%E8o(]͈!8?[s& |/)CEc;(m0MŨwuІuBVnLЇJ9ݠ#Q/H`rSNqGdW[jM_L0f|, >D-5ɔTlz8Պf KX*?qͽqU|=jJNiVMoPzX.ȵ[U򐉌HDv BZ2Ƌ@4XLۃC\eyth P!q(~gָ I%trKMjUg/A YnbqdClDF=}lY@&_ ).+QRNv-,^J0|o+h"g܌|K^V3l$=gchϙ:e6N_F!;uM(mױn.xH%ڗ8>}#%ޘkyiKjʕh~`?~c⏅lHzSe_̀d7ʷH@GM!*iS>f6?3ݬ3\c9cIFϏXבNG>5S$3s$7OVڒ KW,{Vh'+Le[=mJho|BRŔ.p 0sv-=u. Oʔ5n[_0uXM&fk೉(#&֞foH<_y4@Rۺ4=0,f]ʖM@^QjWOq K&CqT_iHʍ[bK,LO=z /`ntnd0N߅:t׆!XOY wB߫[g;0 /Ub]#;-Б 4;,;x"{4e..zC+*uXH\/Lgy}܎KXPg~F PNO]47ˬ5nWY"jFhv]7 'Fˢ*@Sy>EԎ"TyzV)څ&ځMb{o:$i෴.4,LT41\_9Eq|SvL4 $/ɯ7mDWv׺/ Ydѱ@} fMMC%&aIk(; a8jqA/82.}e_Eё{~Bg[*&ucfQ8croZS-D/ S60ܽ]k9Ww0!s?TSwװb;H"C°(^\׾U?+;N5Qf(#˂o_{+~U\֏̽!rβ̴ctJ}@`Э~Hܞ_0)G۫7;t}ݿ0^w]oxYzoqfGo< %h,:Wf_)(]վlJS8#O_oPv];h #}^\5%Tޯ-cO~+-0p:[9g(uݽx|DۼpTXN@*E9~xCzU݈`Y>24PP+^̀fRH*avl[A6 ]R9Bޠd{3F/T]K}ޝ>.|βHpC  x5`X.%K7y"XI&eoPwHҁOO بq:+X$'2R1. 7'D#B ^Y''y5u4Qh9Ǟ)P7r>}/!%"-7@: !" ZP'*(S U}8[`3f¿E| >_Uj؝i,ʁ3& WFGo 5 ֡4@ګ5JC2O EiԴAFAa4O;[ȣaFM8YN^s=k=յY #Ϟuz ɇK3Ѫ6V:X@ mKSWNJYnxB/hsx.08 'Ϧ ƾr7z8n< Uqs) ݨ[erS㶕^UɽXm6hW/W3(yUrElE׸l6UDWFoSJʁmmq84)F Q݄yBIzZdO95Z@M ؊UDcDڢWUD\)#M@'xQ Ž;듢7 r;hGwۺ|NuaXM?GqDɄʼn.32XMfzty_<_=S6NeڌqBIY1 Q:VG1צd ݴUtF-UZ8r |Kצ#==H:b>f+aݥ鐲47pdx1HR]VD2҂B]9W_|fCb2 hP')Ed%W{Ƨ'ߥ~ݸP_`;k>o&DU'K3f&e*S4wYئCKR-{2U\ yqôZ{?vF2BV2uQǣ {2.ˠ~1թ1QET҃j)tk<JkaAT:Ѡpn;F&n^K%O̥mHŎ99)(PKjYP8;8e4Ha;)7碅^g'7Ӻ8V-'_9Kb]ҿXSxD0廲CbtIjl1@_`7`DtƗ uFjF8M*_I@$}[o,#(Cos"DtsqcZBt*i/PcObsp`Z"7 `Q~%B'ȬamQ,aw;Hϟւjq׃︀6KU.X2{Ԋs@Ѣjac]><ǵl'?,^P%d?+?(;_gRcl!#OTZ9r͈!:=DMzT/U V"]=*d*ķ;zk|4;U^F'{W5c&>FԮp*&@8*ٚ6Q$!|#gtcb|_[ۈM`_0rmqOVsDU[ۈ/(7glB6FC v>nWhue)tq4O_$ϯ2#M2R ,qb V$+NLeufTzR| h6` pzc“B9޲y/UG;h7$c=-b^ܖrHh<~d|]>wa2CՓ#(izj~ bZe07D@4'.dҘ%/m.yb,tǚN<WpEv޿@ #cuL&o$DoN^2x\w\q٨IMph\3IHPKݝF.OTȎdD; _qY\ ƿ3ſ_eSx0eY1<rgD<",6H},cO&o9!Ԃ7ߤ.ㆍq$\0ɍJ1:)vj;0 lwjA,6km01Đd瑪Oiie}h!do~26:*WR{HznAoEk]"fܩn^x??7sřF]clTI޷аSZ  a 7I!vje5tU\oe #;ѿ7D!ϿKnY+m^;oq $S?8 {s!֣i{??;>}@T{*LP5jgbu_\ K@&7&D8%έt563#2bψLƟ|5*>X\'<"\XM*/A ~k"4DQB8X#[8ҿ;]mV),TFbϣa@ڱ A8~1y{~5$prWSm,q KcS>=N "*?}ڱ d(*X`kzB:L5-&j6043 r06Q퉇9&>J(ܥO;qiLwק4{v~0m 9]!dk:yXwnV܃e7 ?\IΘ=)kH,m5ʑ2hzDd?VK[z]b:4R#eTq1@HwxFST]Xg\xFS(-" Lk< ^~}> Ql]ϯi(1_ 3Zן8yѰ2P+n–C'm /Z--`"VVԱFzXB_ZiRN7FNm/{FmHnBQ;n tdde,̿g$R_ɴdNdۼ>c4JnH< Q={gV9jS@QJ7EP{~,zf>:׮T~ܯqEtK%$J--p?ȳS(ڡ$[\FUK6e-Vaɵ_:0@Փm9 |e mxӀOyP;NR?CVۜ1hx?(˘6 QH9qB{[A[E9~%Qd\58w\ %29b?x05=2mһ/+\p{|zId'k[Oh6mtw_mC'j> g/JhC '{+phT{_cԑ!a?oǂYy'0Ufm8Fv)O3t˷pg>Xkl,!&6D]e{.fsolkY+hWhwZs+96~[/=v2 e I RCóxxo4cy|. NZ _\6+p 40VXi;vvO ?K~ۥN*Ш6e$ $m\{eԜawcS$K ,4x&&H8b#f=<0&&:jR\QD=gCTW{~Y²DЄ.u'`ۓ43Z7SB8YC^ Sȋ%~/CP&V3pv#z&z|uћQ2 z (DžQUw_,\RyX.9D:r]U!՝ *e5egN"Gύg|Sx!Jf{UCEHn'6<֧&#զ `En{ wց 8~f,^zM onpl G"G>+TZٚ%8 *%ۯnO'jMμ6U -7id2v~wxJw!?hbc!w$@Q㨦FByXf jMYLKe)2t0;p-Ԇ<xJbR@,:?s#jrq?xѳGf(/:R] .}rGWs;IL2bavηK *'D29.W1j,h- h2MGYJ\t?(#VlM%),T$<27\:Z?/L@{͍z]lac5f6%蛍S()[ON3߭zQ}H۬jwHz͛c/U6Pp^Gq`(ֹ GsG-(y3@a'w@dt΂^?X,?/ FFr1,PI%b1٩كΒWKqOH8A-r{쎀ݥVQW]0) S*;UE"vdWY9K ų;ɒ!Erf[8= ܒ O&D#ZbrAϵ Ћm,5R=\3I3SpѶ`ȯz}י §vAZA؅9qHfTPJ(3ѻ\$Ďڥg?#[- Bq9NwStA}7'i̤͈k 9 9I&-ۯAhuĐPf])^5ȦR]mfќĆcXQ3v?n g?jGj"%`Mq￱O(9NgLo`Hh{ul:>)`/ Z cE4^q@JrliQ9[AB}CUA%25vzT7TP|Π2Mя6Ks97<5ܕ4@k^Y TJ⳥4Vn]bz9sH"y~%}IGlI!"441>LPHE ,-" UG:po'B*Vcʱ}89pvC0z4%z;Ml#p( ҤPK?EABzxQNI58#⎴yy+'t!\v`|^%ѻ3YkP '}wL+ҎlXU"ptQ^ Arnb| !/I%\f5$ՆÅXjMja,_-: +HKw0nX*LQafS_m7 37_c|<umȾ#qM:0y>ْKs*mKڏ8\oJ쑶ga~D^QOXZO'MmH /RQ}a}'=)zmГ"V$D_^)3E25TZА)N;A1$-)i/w˘2Xw$ӄvM ˆDMν)E_PBp^`^$m؀~\mO7毿)ncmePb>ovaf,t}!d)Zj J4G? @p(]2. e[GbNA Qj c!GkM9`+Nغ$?{4Dޯv3 /{v5{~,dFa^KH1)V[3@IǚW5?}qiVkBQv"&pAHrI %0!Ez1yϩ.1M0,ŨZ,c_ÿ*\qTnX5H'bH `z,,D`ӹL9#-/0bqD_Ϝ0z:z߮_ eʁ. 8 4C\p}ddRETUʎgO*3h|̿rd

|}?6jgB˛/ty=h4kDo遃.ַ5(;t)7 GV;\w7cS7j0{G3UAJj&EEcWW*lEm47>f;6GHp]7/NmDkY BLW񌔐WNvBFSSˋ Y7CJ@v Qkva܁ɝg.vIڂ]Kdžz@/S:_pXC/7n JK^OvP9[x/FiTנJ NT|Rd{&CxQnxխзWڔ1ϰo#$BavU@+zU42Fk+Cnl0jћ'TyʊO`Rٙ[nڵȋ`>sUһtXa,LVHxdJqe-<#YvhOeնL*nUSUvR>RP Dt69uZBwȷHӵ$Q۵jݯGK_p9 o@6[j8+a; Vscu2ll#~ 5(K@"CPZ߽ifjrgҲב*v 4k[Pd4":]4}>I&*m㕲T!a`^`cżc%V7UqJL>(pÆfTBߙ M1L;K6'A9dH|1Axڞ*'~v/L[OXh~wPe67*khŨtʜưyd4W}'j'?p$7 }*}Z;e)|U! L0޴V}v̓lI~=Ţȍ|`_T 7wkfi0q#y>K7RkYYۢR4`nz C%}մj-}-fZrpoHy#!)a_5Q<;NB|?hZDإ8x5#6,Ki f:R?1fԘ8r0i ( Un𾅿bjfěR>FÚ ĈT59(4jKwuzPK+.+QO?pF6j<{ՖE˾?1TukI>:]|++$6IdiEuS"Gu q0)ŝI){Ki4FlS7Ѭ9*=0d! KXPzĢ)ȈA x2ȷl8zrD-Y&:[,KXLAB'q|(> +;`/$r' / (ZR75-Mn6b[/yM wENND]c@fiN'?HQG,pr] N#Esyx"3@GV#jB#+#BvpZeܓ2y`u[>W'^Kdp^W9%oAn`OCz+ Xi`x[}F BmDACr&8-omPTKp8?QZv&ԱfUq vEmJKw+dyc*V wAhL/Wr+F=T!us.Ad۰)C}WE_z>W05GsgWv%Q٠s7;pW ^= Z%i5n! D)*ZPOU WdIπL kR:{~15? v'p)^s_ ]'i8#bэp22YFqYB)^(9 kV c֑~BM 7<1,%}dmml;?լ_-UQ\Y3xx[gń"&IpM $*Lz2Aᄄf\}a)&wn?-j\p*$]yϋ@%Y9h6O;]Z%bSwT ،29hom4߷Ƅh ٰBj KA* r֥nT9p@5[ :Uf, R]ć߳wykFFg)O;侕c* 2{@ ް8flj2e)~luZdGK7{}\u~?_ -C>4󋪔#<7fLx)>%uG=VIRcX*8~\(ie~ ck?10 5C iP\Xlǃ\ I {g`dhş+n0(?Lx6f,% >^ɣ6=%I֢@7XN%Dž y/ǷJ׹.)Vp L:#F7}$d#iw5Y-=7{R*>:tjw ٱx`(ZmNʡ&&;[[eUͼ%*v'V5k>+&/BhI }1ӹ<9ROfQʰnwR.8f9NX/ y46~^-j ̼۠Ϧ"z9;WuyDwNы[DhHI"OQR'y >aZon7ᅫ_0q!+?]lMf%I)(?=~;z(Oz|c acU [syOpU׋WlpM*YgKoD~-/ u qPcQ3]MϪ;%y0*P\:!  Hx:~$Ow)vjg I^o Uqy}+TͿ bz jQp/zav}|bzT^a\/~<r2_'An3Gֱ`2yB}8g<|fz;:ݦjC._\d$o~M =ۀQr` @I$ YDt4qZC|p-B/$@ WA_D}L_j1z ȖKIÂqQؔ0wƒh$'._-aL U2JHDi4텷"R=詳V,9K{}U(8ǽV*e E A=`a>u%ZyTP®pǪč׷k')vsYJ_7@i;繘:aZ2>Qut*fy!F̌]xQ׮KmfX\ N\m_FWt IgA˵~u@r J.5[2k**Ӟj-/g"A7>x*ž%&VYeoaB~ žP:.Np"\eV"o5k*J6pPvzQQ۵פ2N6ۖ_Vؑ > =@qM B:8y鎺)R' i>Ff 1s4?Z@Mx+Hw5͢)*?jŶ:uH@(Y0A%^O (ݏ^?*ɼD,jqzy;9 2Rw~>RB8w6QnY gפgAm Y9( G/* H"F[R=.N x`\Skx[P?lڈ\+&΄@|6QŬ_韃D `w8Q) <{'xy!pF-l ۩C̋uh =UY5Tyȴ$դa㞦;d;ㆷExD.ɞߙbx[!=$6~Q,a,6lS!)8*Ƃ AMs^0_(eov[.ɉw3+zy`>հWl'.BR'Wm[9: ' vSk=m6=0Q|nj!~ 4laNd~:?6*.Ra1A3]%0+xؤ9S]_cqqCTԳC-ȰXi@rci5_M؇`2QT.mʙ-|Rߞavmme};ICe\J $FZd;== ^A5."`,Ȝv=Ķ^2u5tH/WZZ'1Qj>4gy1ULW3WnVh&X5“]jiQzށ!\"W*+'ż[zN3'SI+?i 7rFH~l :qnXR7c=KX{bqǧ}c=𽐛^VcDpywVy5 ,1쮇&;jHVdF @zq^R^xw$]<șv$]Gݤ]Mc2 8x֐:*gnS *U$ Ra~Mw ĚqKZ_zn("IrhXnM=9![:)֢$>MU7lIyX{LŬvjQEP*@4@^͸>R) 4#n29|L] #7x5\XΔye`/v}51=}\h+/{>xSd~~8uCUŀ`~#(sl)rZ1\^9 G?iG޲cz(ӫd8Z]rXЗW3M{+y)?NYE(95ni$²%)-o GjLLj\C'}&;?"h KuM11Y<"RFAL}LZr7R2!W7w[t$k'YȊ|7a0Ԛ]Zb '-x'1 ]o!i txۡGIAV &"M-Ku9qj.\խجqLF{tZ› |?>$s F6Sv՝jƱ>zN1dcoU%#alP$0p(5Hcb(4F]vƌU BR4olr~IZ&@-t?G`>Y\X sڭU&/hkJڱDx,",.#'&EG߼aP0k.|)WŰ '\7ŋCyVD 4"4w^:#;!|@)=p8%,(6 O#@CzHi{IfeDyg.OQ M_Č> i?Kb8%nEDccP㩀BN{,1X$)=SvǬؚdX/xseixj< oօ񔔀H5 5%0vt9'˵7ApMgs aGt& h@7@:q<..on%IU^?, 12&H(ٜ1 PKÈS ?i8$-h3ig-?͙/VuP6Θ =Pi |R1~O!є }(,̹8詔꘿5VWyXѳUk?6 XUѯAg9 dSͯM֤v|)[o ދhV@ 3 Za1&-$U&+07b!LryLVVǴN\WMcྖrBL.`Y7ڧ0CؾQn4<3ZtJ8wBVדd&W+00:9a{kUm&?f,d6F Ƹ84ᙱ%(|s7E :))quyStv='}\c%cs60NӠxW)[TuŻnLv:EiBI1a#f1poE! XD/IG֖"mxCfp, Q `+PaT$F:CAROv:m`/Z?DXr8/8ݱt%|.\%WXp$cN Q8U^(:v@n8>.CH^CP)r:v @qNĎᄊ\r5<.#}hza*Ìnq%1 -No%Cg{wSs__꼀WuS*ݬFm0.!K,pzV <-;Enw;],łσ6;Ƣ]K@Z1rQAݍldmnVa8-;]5ߛT }vgord6, ]nTGZNE.@f rG6vU6? e:dzE5_ƞq6^ qŚo9h'Xl_}C"xz Phw\gt8X%R|+F1wņro_$N&'=3qkE5}{= gl[ 7e qx؍Chܸ,V0a(#Ns.[}5VW>R)O%`0$EJm81Z=ER=zua#tBx Jfs՝h^ƍcx (sl,9Nk>ƹI8PGIf^&ZmgϸTO 4["Ѽv{bDx-9Mg&C25zW+Hw (9MKq _Cxa{0T`|[#O(N4`f#(S0y&h6'j/1C|NuShbͅ,0ڴ[ q Jaq +֥@Q:rAםqJ#6WW ՄRj bN_O$T+_\Zn 5<|[nҪ?6Dtu2CogC^g*Q BC/`݌,T G.c.?Xa^3N*zSx\ jQ/)˕ts ~e9>r»'gމY@ լzGЈaV8ULhnS3mN!_FܕW6vںboՍFxz0(lM;׭= ^Z(~*?p"xQ ܢ6 p wM f4'@12Z[0e~X !umVGNJ#N1v\3Bzï|Yi1>;Gdy@|fz2R7txƣ,xrLLnd}֙an2!@䦱^q Y]r[ՇKr=˹_~-C =⥓xD_I-Sbt-'fL{3J{ݷ h^ux#2Yhgn2|Xj,<NٿkEi GiʰbjA"ʳ }E` -im)hfR`kk4<{rJ)VeUK|+B;a-!+=*t-+9E<[[ %ށj/vC?X7EF" )6 f}N4gՋmeV]ͅ LΰC& {xȚq> hQ/`Nf0ƭQ bYc5ŎR5hG:}\ko3VDafٚ"&Wy=j J[*ԝʔ26\7 @z*qKzLh#1|W!J~I2ȳsa!5 yJ}[D-y:KG u" ۏt}>Ab/yɭajK̑msFO?;= #'46$s['F,6d&eE _;KB1Rڳlh b9A $KCk.4sd?Hp!ݜˈ=j`O:zTß2zx*_h$8EnE26plRld藃ҙZ(uC.sjD ]R[C`eYY>3FID`yYG$ɐl}p^+;D8"d%=o*ȨWC[sgE!ص!ANߵVpZ,1td8b!CmWG.⯛-Q. Q!XĝDwy!o e0_K,vb]|y+ws;/S_tJ4dD%'.g$qY{UC`O(]=f@*ϱҀՐ@20lՋ[TC:eE~ 3KdU;Nd,єEW(ERkOy8MÉF~.w)>Brmd87 G|q& 9Dq(h~M t-FR~GTQȢBw;wS?B^Ѫָ!کDJbz (iFn,P0e2@(F4sۣFOE+ʃ8Hz|9AG09x.Ut|4|.v$F`Gy0x(Ө^U.oȇ^0=nB~v0`hI2 ~zWUA##ZSܼKfܚ+r1.l'H-v﵅~^|πc8 qQ r!BF]R⎏W8R,G[pOgԏ/y4Lt%L˓3+-MMFvgٜn] |=jboP$H0PjwPJ҆@?GO:爅ҢӢč]'Ul@6'owX_Һ4aQtu? D4fi@ C4MPIۓQ!КH<-3a!Θ)>{Mrfw]g VKJ1NhuQ8NrfEGw?`ςH}L0zՔC%6OӬ u 4s?{+ |3pzTAGjƊAM>/[X.󉅿EO۵@ ='4%\CI-pdymPAp:ť)X«n &{iy3Ҋ4@\qԷH͛ ;DYm͝ 3]zBXkmW(I)8țj}l\PܸR nЙ j}_T"(^hπAL&(('nSID`mó;FQ;ѾNfu{&J޹}vCw٤u|v4kH$ L/!1RrE>&k(m2㊤4:VQ[Tɔ[0}CSAMWnjv/-VS߭/2%. Ac B]JЫ(dY}S weC g^4$Ax_k*V$/\̯pJtv/G^2㣬d(KN}+Cuqo>@[H."JpD3޳$P '} :Aòq.Bj[{.隹?':ijB۲#^ :!\`!D& Lqva'ҀLuo6SCS1Dr> K2VCt_xs@Q$9@ w5цOB/N'L\,w.DqE9%#ю\Bt᷌fsja2Gi#:@t| 6wAt I%uId)Dzt8Uict XZ ŕNag@o{{G\Lnl S=dam 5su#dH3|3I;K3润X_g.{ϱiEt~Sg5|d٭T,u +ys?`F5*.Q޺C>z eWݤa ȷ.ƺgB$F;UdH<1Z]Wi@r2%d._=\A,߫م2t&%Z\gE|h\Q~nsa{w֝CZrk1:ESrl֟T@/]q})d/xUP Bc=Z`L=$X)k6qE^(=GLB,S> ej,* jvIK{}J`ܗN2ғ9;OgWA&xQg';/@hRU `/] wC!q橜|Ӟ *rG7 Ygu;y^O4ڝ[KXWG5/*K! }2 {9 P Jfu;s&9Ա ̕g%cƖxmO>>p5vܳ^, g-g!3ıE!ib{JLPv0ĵF3-EU/17Łu3P\!l錾}tt X0 .ZvAf-R; v)cz涩T0wՅgu/&w1;cZKTTN|ZE:E:!z (x@ddg571*=mYܠ/hQdAP =V -W6I&tW`o搎聋cLJ*%Ëuz}9yT>>ZmXAE*kk KJXROZV aփb޽UwςB>r,SGa/, j-±'6K|2A^vyTZ]`?4A3g<NjEPV9~nPG8(WZl~IC r9y{tSST5[J L,{ߓ5Ae1Vw_ _JNT.*ׄm(l4:)؞e5^+sZs ֬}%qSsaPdݴi>B'_Xb{c[STKg/Ǵ+0Jǩ ZR,F}_tV6="Nʨ qڀ)XnvTʲˊf W0%c aT2~kw9FpZ׹#1~`,_σLAGu3&s/bUevLq̈tRe_v=A wqԠ$Ye[TФ<: h|I"r{}EI!(zs%pgMNKc]5+@cvkm`?#u[WȐ &_ڧ2"ohl`9 &nxz5r<1M|&cd0LPZj>)+U,O-R ?(!ks?s  FipD0/K{\JX h[k*E2dBa]c" ioqvE~򯛺a&^,D󑚺iYqlx(PO99ޭbK6̅xS涸jbH>`/׋)s`UL|;,,2Ea_,oFbae6u7PO5ss3VvRئUHjt &Bk7Uw@faGh4V㺴aSn(lU?+el@JX? Tz0li{I4#n/b^i=,n({43> @]͒5N-i^grR̥셯j/0<:SN" GH4U`c"q[  eq?V5 Ήߘ@Y0 Aס@Z΃CIY#j1[p5FIG樾H|% EZW,9?5*\^Rsm2b, uk|Ntܸ#EY֬C2*#zK7wQT$󼇢AIP3t[ӛYrmw_rz H b$O}|A>B3{CF1~7anaUU_Fqf"lR LH/x-ȪK`rgƃV09Pܨ쿑@BB䞒k+&LB5 ֮NCV.j%1&^)Du(Q5sKa]FYŌLZCHmZ_Le @/Sn܋a+I7f=:(9|!q*v1UQչ MN@P?[eqj<ʃ\fh⏢*^l0??E4-0Z*Coݙ r>"Ք.9\DJD2~‰<ȥ2Gead+$Tc8k^*N`p;I'ubcg\j=/TSp?yGףq'exp%=Y,Z[|E\EwT"XF: k%=wDíe}bZe&r0{;G6-(f剂r:yzVGRͱo挑!a$D%Ht\ xLjBN@$E~pCREsekʻLʸNW+av!oՎ S)4H4nh["WєXϚ0 KEY8,wzs30=&v42M O~فu쉐y0̆τ׿,h/ V?fo*[:HT1($'@zՈI؟T#uV˲O*آ 2zd7aѻ0F}ľ'< ΤXW=(bf"B o hY t4zWٟyb:-!}XĉۺG#dShg K}9e~(0˺k(laIOoTJ|/_%K1z׊tT=MV5UxΔJ>ms=ګ0Nˮ+f;c?/ 7b#nΡPb`- } @*_aS)U{*6y} +[t$޻+?+2+0g^kguiXu< r *OgTt4*R5/b}$hqMD"7-A@((eW u)lPbɀ_Dwn_ d ꉳ짗PҊ p)sJFX+5Ի?^ΰfCZ#\#%1,w%#XJn[9:v_&.~#2 UbQUD פ2:印]2_ȄN'.Aq¨VԆ ,VbBSX8qWW 41ORc/~3q9BJ+>0t&+B`~,`(@ػp4St]2|u`up6z6?ꙛE|"B db 4[@da֩us'Q*I.tJtJ} ኯ@YgI'X:y)cJeGGКnS>dE):!yd厺BGR@@C{sL -rm֢ӊ[uU*=*>JȱTU9CQT0Rs#Onq|i {g8Q"6'f4O{ ⵄΆ9ad׆KD!@i׬xmy=X6ffgK"<]ʈYWY?8QNZ5&P#)x!Uh%od)} T-DJqRQii*K{ܟbp^ FJ_᫤ЎhcWV6VlM~nZ Qᅟ*f ȿe6NX_Hy`|P}͇$PqV+}#q\ljmL#q"{c +F24W=Y$graJ:o ʆQ|ǗKUoq-FI$h |gn:w8~/v*A$cKM{5 Wv@S5Lv!tClF;R??< DW[Y;3`2wq ̺D~dP FM6,U~JJT%j/q&';`>| mK ݾ"Y(2.!nyE1o&!aedJq:Yw4LS{ǁ[G\ˍ+A,"2dܗ{Ի?jt<$|K]v:&蹽9w3- 6 0Ȣk jiǦa5U3Rģi[PȲi ?7(T#|8JrSr+䵛+\u&WhԜ.)-2hg%3}4mKOK8a D %WYϓUr(>SЦ#͔%_݋ y>ڑ3J]'Z QD(lic ?:mDs.&?DO,7d)-uptOT #uJHMs2M%-Dp=YtCB"e6 ^fTV@I`{k6<<8 Rm@p4x> wLkmqo?urWz(P: )l/@-/j?4b\yHK $, De&&zlDW1XOH29̎L[4W_Tvuslfnɼ \lEF9ݫ3́  VYٜآDhl{$Xmhc(#1(e5,+!%wvxVp;XX=QT%?@Jh8O~s?M1ya(n*<7U)'ꯑ/LD7*9[9ŃųW莔/%:.,@e;wt)7w'#tHؙv]+c! Gż )(Z( KD/= )$>C49+jF4>x=u.L jmUFErv-U~ٗL|gj)Emfk`L  gn!X) XaE#d#&p+Փ+&A] pkN-r{7nW!-4@1Y )QlV3_0]c? }tg#hA32g1qXu=/^¾LEﻃ22o͒w܃vvސ<藎 [gꌋom:D¾4PuvV4@7ҹJ!ς"r!A>#X<{k$uܖr̓t86]͚Ȏ/#NX+3švygOvE>t_v(Ȫ{`|Jf@^)\ |HXL)y}T23FƦ23}' k;sjVkIVxF)_( ]ƶׯZk%EEpzͶhB*@/qS#[̒|ӮGyyfI8@ǂsqpD_@Rز0 XN-Lu`c)cC]˙6:( ÒFGv^m*VJvƠ]y4_Vmh5?5[^RP "Nc+L4"'SŒA3eC!T5Iv MM`ȥ+U]A9b#Y{Ȫ Y@PzFB%&6$ I>f _X^#a%>;()+u(Q# fnFG$`y e4?:WeB]r mB (C xxYqKIe5c9*#V% Q@O:ng Xc;kSQ LгYk~%c;,vzdmS.ș%&#H t,h?YŰ1wO2Cb ^jXvFEaou;Xe.X$X¹XMΖIauxkb*׾:uXKu+5\sdZXJPsǃɜ67)d&? IfE \OF|% 4)%Lx4X$kv3drˎ_*$6ƥDTo< \Ė¿Hv.:93cf.v8¯_4~Tȭ۲23:ݎˉZ%C'>iw&\џ6z R# -'e]fH,P$ WO,S?U-L#e11"Ϩqe:r2ɕOEmWҨQ1HJ =IGtZ/GhO` {t#{ ox+&aZ#H*ȍ#?H6ASSoSQXȤ  ~.+1z_BI{9]XtEdzy}4Z-, p:ԽZ lͪS1Ȗ_~ds`Hͭ}~ިBddmȷ-1HL:QO}.tAԚvZ~nMu]Y%"s0 R7ݞt1o.nUo*Xg T.3VVL ☔gm/UYTEKp,ǎRu޽&:/b>o2N#whT:cHC"!SkAIg{&2aָ=X5< ,&c`20kRQ_ˍ@+sS1 OK׋ T.Y3DUϪ^Iuonb/810^}d fMWUHofdHh}{wQ灄ǞXxy%0Ņؗi2sBW 2ZqGh\@PAv᯴8Tl׹Wθ'vO>3`[ԐǿNGhBAQu5 ]XFSFP<~>SK7n6Ɋ?m {[TsDd/ccAa(i`T+JIyO33Z@v◝¡83wWG^%fKa*/8Mzf~a|?r\KnVhE}xPKﬠ9~.a3G`_fFҕt-U=`ܴCM.Xʉm=c߁JgBz-<N7fIC2C ?*i^.%i0hqȂj\:7[gB𞁀\=?H쩑MaZ2eŒa1S;c ;"wzhVTW(5lw@> Oi.ZhH2~@dS,DB g꺹Vf/A̰!͏SBt0]^ts0KioŚgB.ۗu!Μ0𨘢CS|al~ۗ~!MnD&C9C?_ |$rM$Z3TD"-yLXkŴ=pԌzrJgC'?MPƹuʄ?(H[+D=9ymnzF ͺ6rZUQ̸ܫu72,t(SDL影`7,yw%9Yf[8˜/ul2_Yk1TIY٢YEb_k6zHnCBТ.#aj8ƞrpp{%|V<ŏ?t'RC6ssuXH~:aVT㋑qTӸ}}99 LBWZkQǟ[[L4!Y!(p3MXC:tٍFMAɹFҩBM .34%&=$_P8z2&kb4k`؋"~9Vk|%x&)_l)y,.yD?HD)&1;J &7P Ӭ[l, NF.pԒ'U ُ [=NvOS!?^$xX=AR@pToLm;637%@R4 ՜1M'F.R, "P:z0`#e˗r3zv- Q9S4rfA+3-xʸ{A웰׭2Ƕ!v& !Wx{7!:l8FhBCrV_G背<9vZrjo)}42%IMg_hR;橠ZQ@$Nzn)z6T,vվf0h/YbYq&$}B3S2UR;V{ۋj#@~[Ϋ`ZFtAy@79j7ivH^E;ءzp"G,Ni[~oQ(eR;#FM2@tfʓˮ~&rB!K31{+%! 3O4 ɜx -gw@\cH G%R"UGJ%$HiiV6()9"1Dl46wN[#R1!y!|*{TCUzZak^R<]RwXKm$jA H?8ҥ$ jIm&| G Braaa`H`I@GFy(vSIx@d&t7(Rvflr%-pSwLi<ه{dI.߀Q0ta ;$n=pq&qi`YÙG:e:KoQ bsdanX ~gpz2{nw^~P>qZJl2^;;VcxR &ux ,.-Ir֗hOjgc[e>>Jf ;ƍsHzyRo27"Ѻ3VCby<$ Sfq75n݆KZ@/⍨SjucX:|euQቘd U"tC=%PQ%eNh^3˸u>=%=3wPae*ژ/|爂ۍ"ۭX]q<.ۖGyB n8YT6o7۪ꕻ٭JEqgn@YYa}%;LA|g[!7_]uphX]6H(DTF^>W.\l%]22Ki5L\dˑ:pP~ue#XF !oWo#T\Is{ُ1C䅶w ˱+2Q?z.;ft{[M6@Okt3 T-@3O1ͿvlDHWqt0^w!Vr '̖6$QauѸ1IuZoZyoE$d*S.߄>2ALF(`#avXAca: d!R3%dD낏Yecb*VR6 ;$n ͔"YTrՆ/E-dI`f y5fpSlzeӟ6 뭉mDd| xmS!Y51@߉/EU'qx?7ۦ<?N\̾ Y@EIJ 2R47meG'-h;(D3 .!l'GMRS@emQdX)!qDlOB$WCsm/Sf _g3P GZ.4.Ć̀ǽOM(:5+de#q+WO{tWnDSa_s:)c<`sڌºt 4tŢ lȯ B;>P' droFaD"'!ԗч5zyIaX j^em.RORQ 2g`(!Ax#ej,CByq&lԙyTIR)W.*3~Qȭ"m]UJN'iD^%5 4)z ~\hp)OgS*D^X`48Ȥ4)B c5|=jXݜ|4d37,pAG]lBuJLh[H( E.YB6+W6rgZ<_l3Ip) Z4 Ohcǖ9 :U=z#i $Hn JCzLi#]6@CQϫ<\oьђט 5 yU٠vO]_z̀N;l ^Xky *H{>\TS5TjK 3)\%AeF(G!i;n|ZrVwg~a|{L3$x]@(mq}W.ـ f\Le^§ MgJO d# )bI}Zoŀ+~&{6@*6JB+=B~upp2{m$^}DqeRk?<(!:a7rS'5 `lj(0 XE޹4M~ SKZs-cVv>"KCPVUIkՏ-niXIˠ[h{^`BAd祝͉&ׇ2؏]ʾw9g@3C֙`;Oz{KZz]]koLvBLhF77P^6fSYiMo0Tq&cDgF /GFY «Ϳ~<(?,V[{$> ޜp_R_plm~h0R^؛iEHCP{"9((vDE;D1^`~N#-yX) H"HUO_bzR(?cq/}:3L"Uùl);lK:f$NX̛-38zY9V `8N ʕ1#?PeU(%@ 7%_ESG}?\®>oi9?hUw$?G%X?䁥ȐU+pnI%9u?Caʪ/r7-D9j '3@UbvL;$BUdL.)g1)e{}e1-cY7? Xs)v󢧋&3|~Ώc漜ꚮ/ x= !jO:e轛{{# D:d xBwZbd7GKm1 08ߧMJO;&LE~\eM`N4_ [/weH.xV05!z6؜Ź3+( D [s|S{o0&é"o[EfzFek.倖E98/tr"8 J#1jHfRUMC99b6;SMiݹ3;UWx"/Y_MR;ZНp<͢ wr}>+gY,ZMa ȌI-NwfQ׎_aidwͲQKDGR,z_)$" emp7\nI+pfhP!4`_E7w7u`QI|/fQ=&1L&P#Z~jS=]m_C@oWTAO DmK`eVP.>T˻mU8nHpݎ_v73$Qn^@rcxg5i~`Jr']`\*NR>̙݂j's %;]U|#GD3fGrEUfbZ37WFB̈##aR''h|R{ 9lň@zq8(#!?NY8@r2`lfsЧlB.-  wӐ,9P+FI|S%h 柃b k <(Z'z;~9lT#\e+;rs}V#*h;l\po0S4b@-L?IIz1Ҫ#