fwupd-devel-1.5.8-1.13 >  A `Lp9|Xu9Ȕ*̱ 1rWT|ٕ) (%AE C q;t4lӗ4A/;^x4Q?`~& 1T2ZW9hr: vStw"1 )##^RŚ8>ֱE&"BuslO?x\;ZWk^7P 18j(QEs9Ag im4Oǟv s\/g 23G60J!f63e8b794d15a0d9328574f6b11fc62eef91ac6389bca7da924efb111b8c5a210100318e3db4d77e5e3e5c5bfe3ac73c333ad8fd0 `Lp9|(xF YI߾^R^1W!~_ٕ] e Vm%"{\ |Ct_ 4'Ysa"[h:xZ%_CP m jnUTU! Цc96K=,Bz |T1Էu;bTƫFPЖQ~F HޑCZ[.-WoFTo@?Yuj4-p7Fx 0`DsP>p<`?`d  J /Obhpq4q q q q !q "q$Dq&yq((q**+ ,(-8-Q9.LQ:4]QGIqHJqILqXMYM(\MLq]Oq^W bXcXdYeYfYlY uYqvZw\\qx^ qy_`<`@`F`Cfwupd-devel1.5.81.13Allow session software to update device firmwarefwupd is a daemon to allows session software to update device firmware on the local machine.` sheep10D+SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/Development/Languages/C and C++https://fwupd.org/linuxx86_64@ CP " nf--Kvq  *  Z |/ ` I \rAG<I`ٳ[ Q9)]9)DEc!2x*u+Moh^,0Jp1Kq +u-Vuv9?A큤A큤A큤A큤``[^`[^``[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^```[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^`[^``````````````````````````````````````````````````````````````f3cbf852a17766ea52df4ee6d4c531b6b168c97eb157fa91473628bc4783263823999e85357b8b5f3d2f0953e9a2245115bbd48955eba7111fc36f230dbae45e73295a0c521b16bca98b42a29228c78f2687c8561104ec317fa17cf982ee95fbf20a17434988cc1517f54adab67c130aff925ca40d2066def02fe8584a337d716d5f1725d841854294e27f1fe8b6fd4726877cc3b6b7e98b0b376344e53697d0f6d9085cd8205680e7ba35f0e49c76a25bd36c1bf31961889f4106c6bc2f229086066e2a2ccb105be7c2ccd4ca15048ebc8e0a56252f9c52231f1844e4c5ec5908d071153617a0178e0ef5d269c87262928657a5c2271b2b3e96b2214922c383cf1537f7454f41b4a2f28d3207751da5f9c1b48f0b3c2e1ed1a6b3792833a105fd4e9aac3b87474d7b31592861636a1938945d2ff58a566840c2052533e73f0fb9de2d74b3999a8513ebb810380173fea9c145fd94d35565142d31a13f4adf2a887d56a173bdc523cfe38346ab90f60b8b3738684a8c63994b493d043bf180d4579c314ebca225e49e2f0f5c7aaf3ced394822dee5aa654b52f8c25ff62325f95ca9ec2b74d2422ee455608dbee886b63369286413b12ff8578eef790db615df2e9d38d4c8d3f6cad84feea1d97e73f80f38cac83c529133b91a639867571c483ca68c171d09d2f7c1366daccf63aba35a17073e443718be4e1b9a5a0f1cf2bfaba47c62f1dcc8e06cc8cb518fd24d41eef730d4f40b72ddfaf328be1eb70c67a76a8db1206fc8ff1e047635b7e387c47011e38793c2d9d74c859e4b23d28f3d163dbc1ca6ffa16c04f4617cfce2d34a9cd0d1d5a84252dcc1daae690cc8b4f7de2ba7b9213643c272e2bd82eb82cb048e77f601c7a8db7f4cc3860380f83f1c0ec39b218a2342688abb320eccce1d9830c3a3774cb28e3aee902d8786093c890c50d69b21a3da323403f188132b17fa9220b0ac147d7c13ef3c3787a5674d99f6d9085cd8205680e7ba35f0e49c76a25bd36c1bf31961889f4106c6bc2f229078b73e50b009f6c86dad9b514198eb7d4736b623e5dcff65b47f14070d579181e0a5b865b4d118fd3c2f172de156316ebe0b099b3df476c021aaaf0d77641dbc889b043909ddce94d1f24802b0501bb7c9c7497c8968c0318344f22946612d789e47cd14558c5e4d818fa5ecec64c964213a0d3727fa6234f037bd2794c890a486a03e399cf02cb0c84a54f84737381af119e98c2d7918b59e569b1332a0499d361072290c6ad052c9d18d0bacb71921142cbfee8c5e67892096b03e14f885ecd1877f29afe177fdbdae431db1efa6f63f02a2dfa722e9886fd75ca85e743baa41495f3f5e6d72e60dccc1f814cd24b3a93d36b801e58adda4315cddd82086ed7ab67c119ca914e730acd40124e628fdadae91b3b12120100213124cc35d3a5e38638d6576453eab38fe165b12d7fce788ed4944a15fbbfafccaf3e57003bb96c4ba9dcb41242cca5b8711e6b2bcaecb4ee2376b60d2fd2f4b2f3c241258ea2dc64be4767a1677f85edd97c500fd8e573cd8530f4739f5fdc9a3bbda97ebc10a4ba2ee43d804a261230aff29401778905379c7273ea887d30f286a3ecbcdb31d4a744c6caa020d6495e1f92b86342eacaa1e59180531fb0c8e9683d1d444a537e99a3a84faf3a9df02d517648f504037d0fb7705799efb7bae52e273900cf24dd84c221a71b80b78b75f8c8a07c9c91e8801a465aa80f8d0202b922434f3fcceba4b008a01f318d7d55add474b75a6c9289bd9f7919f7b4bb1100eaba87a77cf9051c55028d3bef196650c78f81ee881490065e0a2a3c5dd46418c575aea39cd2bfb40b21bdd7191a3c792b2b0bf51fdc9b05a0c3efa20e3d9e101d29ec34bc7e0aa7bd292179ec55a8e29199d55964b85f86710a58a953eea825103c894de1ae1155a96bd15bc7d804e4f3ff3e60bc1fcb2d1315c1ae40d5006d5329f8ba6ae3cae0b3305ecdf40446932d75d3e4ab92a61494771ae421f3ee2633ad31608814909ef6dd16f23ade68f15e65a3c20f909b983baf6882412c06ac9636cab2a9cbd5a30868c1cf804d4d219eff362a975d10088991e8bc1a01d8a2263433fac17b03fd9955686afd13263790933d6856a6eb1e580c50cdeda5b05f8a5d1581b8f7f2b529e63e34c8d5b4e4d5708d653179db9cff9985f6dca74b9ccbbcbefdc088499434d80f935a31a114ec2169f2ddaf36c216eedbf1fbfe4e91befb1071e16ac867a8112e9846ccb313bb173203a4fd4c515033b67e24b0bce32c825b836f3ab2a4b3f18946c01af41ceecd23db00c41371f6ceb94e9267fbccaaaf937a0d7e80b603a0ac201598cc6db9a74a81f272cb258be4fb0d948d7dfedcbc3b590488915536f3daf988bd6a5420e75dff698e673a94902f2f3ef142d3d91c7ebb181e8c0d6505dc3c9fd3a4c8b7dc1ed8be8afc8a207ed295ea5a8299041b2902b90ec2ade822864477cf15d30113cf9ca98ce9393f736af3c32b32b96ef9869ffb8f79287fa4c737f0e382321c59c16429edb1142d43709a7a573558cc3eaa23a9c7408e2a5aa71f77e2d1c94135b5cb24ea08da34586fde10f1c28b6ad242888fba30a61b3c2747a216272d11312f285fe828654767499567ddd08a18c2e661e2acedab7d6658df962cd674888fceef0bfc425a80716d74b3d0dfcddfa3ae6ba367789b9626dea9aca23eb322ad7924d90bb16d04458e81776fccfe7e6b88d06b836054a2328d17132e4bf95857d20b6e6bb23838c5e9ff8f3e82cc98f90241fce2c9fe23562e56723d223f6c2b24bd62494b13d76d7cfd3e5953b0ae666696a5fc11a95196146c6065072b295f80de0f5a331d972d0a81c12c0ab56e4019d966270dc7aef348335337feb501aef64a54321ab2cd9cad7c39444865fdb6e02633ecf9d5502b88dc6977478f4deb73dbf9122aeba7ef51df6dce1db6f352295f0532044a5eaf98bf431c3667bc8b57ab13227fc84e172636d9f967dfbe931fbedba0c6be291f391f38f7549988d9b26c3501a55dae56fe7df0a1820b3b1799aa2fe21934989e0e67d0552df120a013af846819361587fcf0c4c9ae729a2811e08e6d71a7a16648bc53618c91d8b481a6d06599946f85d7af28f325df17836cf3fe605edc8ef9b2e3b6d7b6b33267e9b3fcf02c1d39a606667537511bb5bc26777a5d9b66b138a7aa19b24104d206675cb9dde59d7eb01321e084672c4b1d0482b4323c6837a960db8cf0b750193daffa9a5c31d8167d7935803cbb117fe399be4fe4ef30ea8122acdb0bfac6527051ad330f95e2f469bf18ebcff00026fbef5577d5889b73adea0be60ee8cb5b60f67a8dfe7ffac1d82a09b80567090fb8246b51bdd19c99725bfac9afc1d62872a3a7cd9be35a0e3e479d5c6551a350f175bc11bc7ac8e6b99638ce178dbd1ac37563654067559d6382a7d8babfc6eb15120af63d3a439fc59fa2afc5d4b3679a94812c7b3f0252d61b1312dcc9004c40882a0f704ed6d01b9ccb49ad9da7a343643a52f83be2634b84f8ea8a69072fbf0e2516abddb8b5af682a7fd8f84678141cb6c68b0f9a2de09916b5ff97928ec1c8f39bf1cec5fcdb95eda182c604dedb5a1b3fe4bf7b7389cf36f7461d08646a631232fd7a89b985ec01d2cfec0efddae636f2c2923d6e445aedb906b3d7802b55b2c454449d3fc73cb4a46bbb006e757923eac7b47d4faf9b9323da34ca2a1e8e95a13612b557065d2d741ebfe06b8de2f1106343dcbe7f28eef78b45132aeb12d46297ba7d54dd0e9ca51f57540afb571f58adbf9adfa11285ddee01a8c4cbe23bc382bac75a28168d496d32ec674158ae741ebeceb6a6e7a003b5a47eba5fd32c334f742f59ffcf01f2b8c712a066ca9866877588d8cc3916fd34c8e515ec8617b03a8e8bfbcdfeb5ba7650d8d9ec83295561237ecb4ecf62a8bf3244db3ac660aa83f70c8ed5c94a50cb382b5821fd0d42f12264923e5b8b9cba74f7ebaeb93a4f9d8ecd3c9e82308471cf4e063f2e3a34c913423b8619ce825af273ba403adcf0b7a8d24b00f5fb6bbb0446249b605efdd36598e8a0f65ac3fab2e18438c73b91e5c564e4586aac398bcaa3e5bfe9efe5b569c1439dca55b06b338d3d0a3130ccb41634b3042e56dc65e9bde9a165c231df4052906bd26af3deba74987e3d7fdeb303355d93cac53410997dc7a3f9bd60f3ce0d8ebae7908978c8731fe9bb139ff0eb96fe775524c2d4d4f167d79041b17c5cc8ae9112478665132c31a1417fb4adbad72f861982bb78e1fd3771ebbc230a1a27559f8f662cf3229cf5b3c6ff567f2130b883b3c95ab17504880cedd2c2c208f6466053e0515c2bcebf4351e838b794050c64c498420599162f2b3b6928232dd0be7991d942b1dc0b1670eb8695e0629ad38280184be1b94602f2015707a28170151058f7171aeda501fcf0979d3b5a67eda502f1d76c81b8ed7a7cbeeda0c867a4c24dc206490ee519d4200dab0371530831b2ba10977c7a6c0fd7e6ca89e221cd416bba0828a20c195dbd73bd40420f2040eebf418098a86a3fb2ef5a9659c87d37b81ee85b69316b045a9453ac54b75948f4d26357dd018159078f36f90deeaf29ce3b9d2bd0ea6655ef1bda801887c0839ca68498a12c20f91817feb1dee5355a185271afd0a0abd188872030fc1a7e7ea726c79f4648ff57fd97c270b1ea1c3bca24c48c6a280c51a44d49201887c0839ca68498a12c20f91817feb1dee5355a185271afd0a0abd18887203312936dad905030c45e53af3485acc8213899f4c43d74e7143bce01a9d6bd959libfwupd.so.2libfwupdplugin.so.1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootfwupd-1.5.8-1.13.src.rpmfwupd-develfwupd-devel(x86-64)pkgconfig(fwupd)pkgconfig(fwupdplugin)@@@@ @@@ @ @ @ @@ @ @     /usr/bin/pkg-configlibfwupd2pkgconfig(fwupd)pkgconfig(gio-2.0)pkgconfig(gio-unix-2.0)pkgconfig(gmodule-2.0)pkgconfig(gobject-2.0)pkgconfig(gudev-1.0)pkgconfig(gusb)pkgconfig(jcat)pkgconfig(json-glib-1.0)pkgconfig(libarchive)pkgconfig(libcurl)pkgconfig(libgcab-1.0)pkgconfig(xmlb)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.5.82.45.82320.3.50.1.01.1.17.56.01.00.1.133.0.4-14.6.0-14.0-15.2-14.14.1`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+glin@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- 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.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq1.5.8-1.131.5.8-1.131.5.81.5.8 fwupd-1fwupd.hfwupdplugin.hlibfwupdfwupd-client-sync.hfwupd-client.hfwupd-common.hfwupd-deprecated.hfwupd-device.hfwupd-enums.hfwupd-error.hfwupd-plugin.hfwupd-release.hfwupd-remote.hfwupd-security-attr.hfwupd-version.hlibfwupdpluginfu-archive.hfu-bluez-device.hfu-cabinet.hfu-chunk.hfu-common-cab.hfu-common-guid.hfu-common-version.hfu-common.hfu-deprecated.hfu-device-locker.hfu-device-metadata.hfu-device.hfu-dfu-firmware.hfu-dfuse-firmware.hfu-efi-signature-list.hfu-efi-signature.hfu-efivar.hfu-firmware-common.hfu-firmware-image.hfu-firmware.hfu-fmap-firmware.hfu-hid-device.hfu-hwids.hfu-ihex-firmware.hfu-io-channel.hfu-plugin-vfuncs.hfu-plugin.hfu-quirks.hfu-security-attrs.hfu-smbios.hfu-srec-firmware.hfu-udev-device.hfu-usb-device.hfu-volume.hlibfwupd.solibfwupdplugin.sofwupd.pcfwupdplugin.pcFwupd-2.0.girFwupdPlugin-1.0.girfwupdannotation-glossary.htmlapi-index-full.htmlfwupd-FuArchive.htmlfwupd-FuDevice.htmlfwupd-FuDeviceLocker.htmlfwupd-FuDfuFirmware.htmlfwupd-FuFirmware.htmlfwupd-FuFirmwareImage.htmlfwupd-FuPlugin.htmlfwupd-FuUdevDevice.htmlfwupd-FuUsbDevice.htmlfwupd-FwupdClient.htmlfwupd-FwupdDevice.htmlfwupd-FwupdPlugin.htmlfwupd-FwupdRelease.htmlfwupd-FwupdRemote.htmlfwupd-fu-chunk.htmlfwupd-fu-common-cab.htmlfwupd-fu-common-guid.htmlfwupd-fu-common-version.htmlfwupd-fu-common.htmlfwupd-fu-device-metadata.htmlfwupd-fu-efi-signature-list.htmlfwupd-fu-efi-signature.htmlfwupd-fu-firmware-common.htmlfwupd-fu-hwids.htmlfwupd-fu-ihex-firmware.htmlfwupd-fu-io-channel.htmlfwupd-fu-mutex.htmlfwupd-fu-plugin-vfuncs.htmlfwupd-fu-quirks.htmlfwupd-fu-smbios.htmlfwupd-fu-srec-firmware.htmlfwupd-fwupd-client-sync.htmlfwupd-fwupd-enums.htmlfwupd-fwupd-error.htmlfwupd-fwupd-version.htmlfwupd.devhelp2home.pngindex.htmlintro.htmlleft-insensitive.pngleft.pnglibfwupd.htmlplugin-reference.htmlright-insensitive.pngright.pngstyle.csstutorial.htmlup-insensitive.pngup.pngfwupd.depsfwupd.vapifwupdplugin.depsfwupdplugin.vapi/usr/include//usr/include/fwupd-1//usr/include/fwupd-1/libfwupd//usr/include/fwupd-1/libfwupdplugin//usr/lib64//usr/lib64/pkgconfig//usr/share/gir-1.0//usr/share/gtk-doc/html//usr/share/gtk-doc/html/fwupd//usr/share/vala/vapi/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:SLE-15-SP3:GA/standard/6a6b6901a6dfd913060eb5b34f62e61d-fwupdcpioxz5x86_64-suse-linux    directoryC source, ASCII textC source, UTF-8 Unicode textpkgconfig fileXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesXML 1.0 document, UTF-8 Unicode textPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedHTML document, ASCII textassembler source, ASCII textASCII textC++ source, ASCII textPRR R R RRRPRR R RR RRRRRRRR utf-89edea9b5a32d98afb16ef9c85fe3022edfa0b95098822d9298a0085cbd17ee7e?@7zXZ !t/Q[] crt:bLL [}=YswK^r[8s/a@d-J{qer;s%Zh}SpynQ% ̥2Rp$r)\}LVh}1Fx|<[ih9/L"` b jyJ+(X2e׬Ipvgpm:OM`nWPwo80z! y r/) 磁w0Mm/SN S"q5HG Ѫドap|⁽.MR\e?"}(ɚiUiRUAU=ZWN}?&륊:׸+72/ YJ2|<6G_QA)6НNxnT J yo1d@y| ]nP60x-R*lz{ݻ-xN&~㻮R)3UͱF0-*$[ԣ~j%3%2:1k>Z6+zԉjp(# LBFۯ_o,.10:bTI-@!ufΜ!ۘ&|S J]. G?4%q2rѤ`uMD3;ZTpMƾӼV3„*^(Lަ]r;Ϝ>oؘ6*Yј'B8 ,m;9uv~7n}?/HOqQ+xB9#!ӗ&J?!zƯV"Ԧxֺ$75$Pa}䫝{v qEx84e7 ?JOFf}ʑ|nQ.M1ulcCE1lK94G)q6Am!EDUpEl3AވkFD`94f?;gXH޸m1֒SLQ;#ycny$X @'5LQHg)M#e?q.z_y]щ(VԬeHYvT!^1^V~Zbl3emLTFD*wW4T/-' H~r2/c"֯_cH|kOBʠpxi2|QoӵQ˕z?LV씯5hQW5ZPFH(?(.%oGfk Htp Ml% d$Mi## ğV;.U-ѼVUS&ǐeY="-lo^]EW>,y4 C|5}<;^cI*TދH}$V{gi΍ЉMM5:o:$n}N#:@vXp'hH֣%Y2EW3ftHm-0@V䦤-0ͷG`٦WX ^ܥUvhB֊rC."tWOkctIekΕp`43*쭙)?sbjlpg|%~DihNqUy:K\pŞ>!Tj'2j7BwDgAjs0U!X,3OaS>|v*[aˋ_ʯJvVPBBٝ9J[ӦQ:q K-KZj8Ӹ>I ɀ)]U!k Ir6uFoag(rSe]f7C>CbU=RrW<@:[5vSP~/x^٘m. +8DвAc=,P'FJ47PoUK%|]]L:]f|o6ѧ'QWdMC ԯ Z0;3V4XRM. +b{ Yy^5i+q>H{b#?"P:d<:%X$ vn{(ܾLim_r;Zݙs |eVV:13IݳφGb*qJlC%DL/͵*m6T53'8E1rݮij4v,rd w 4+|7ir} ͩLI'?Yk$6>0(Ỳcavӄղi|h֕s.-\`;v;ch~<\4aﶝ`ha1N>9bā3B+ֻ)HwcM ʄZK[.]Y.rc#+^ bX2f(ԁ lw!\wfds:kVmvXL{ `]JfrII ήvd 07s d8nSFVlE:#%.LeiNJ0g9erEXa곰2xDn1!~&T[-?f Eݱ%fK:yy8gWE/ɳUYmx  A8 %zԴhi*%.аY*kOS)I›Rzm04\mљ^`1,E7s{}-a>0Oݥ>;jH6( k FF |XC6jJdfx~ȕV\m{]MTq$o"l4|lT_zQ[Ӝ,gr6ePs+/& v^;3˳0lW3$=$N?)@+I"K}^T"Ca9QLj˴،KUaXk,E =e@dȦz"j7 6RE9(Y$ޠ##vߌ#m - "1zW_VI 䣔MT8wz^ꇟhLJ8Ph/`9<Ǹ^tO0eg]D(ET:M֋ $~b|Zm{ss%!R?s|4n o>W[U}OGͶpA;)loHb-x!'}nB4EC.9ȯ>L%\I-J@ ȦJix)S.Q*`ԨIldzpc<,=yչFFH\'Ra}*HpiuTz93 b/EjG5,gKXfVo0}4<=|*P`#YDXSL &*]>*W@Ԩ?9>^" M1WOIMv9ZsBF^T(҃bB;/_%DPk]I\奏?kЛm_boT0ORNP".FG%5u.UiS7GRkۑ_gPa^ Ze/wF;_hL!>!Nm]IуLr $v&98iҿa4:ڏ"p bvmNgzOlq)\j*Ц!.]H{JD4h0>XM$WȈ7٦r̟{ӵ+C+ - mz(%]0lcLc([7;R|4+a㛹vMť:"^د׈Ƞbע5nHo/EA[]|" qjOY'@Vk ^@/b=Ò~~.IތϜqQPS5 ~'[ꃖ%1㲫VO36wF!HFLVj1j_ ctAݾowC;ɳ#1B6HvR%oʃA"2܁ኈNm:M̯p? p؜F`w|" l| ZoHH. Cq{fPv2xKm1`V/%3K[~X%JUL}>,$&vL֌OtA{=󰺨ID{-00w}f{'t!^  V}sD Y0|a @qzC)ӠsvJڏK_xCA't`݃d"1mGd<4iC޽b<4}e*\U'#{YtjȵN'?3K/F$- Z1ap_#Ωd& ⱬ'\RZu "ɀV0,He>ىltD@a}`RB~{{퓂j8Y *VgžTmu;{0[H Jt_A$ӆR փRs |>rNYO9+}ﰐ;Fvn 3FUFՊ0fezM9\Q:DlΰW'9oُ!tFԆ=Uk/ůa#B00][`a Nles#nW'LN>t,ƿ9|eOd) MA["G0MԎ|8w{5ܳ^̨a"Iuit1ȶS,>8ɉ$<9j瀆]:O4 !R+vZ%tHc,:~+Akxg{0W68ﵠ6FWVDi/:opDQ.^ǽE 4HnzGǀ42–X hbxWu;>9q_g\+"gTgg>yG9ܸu3L<{uK1ıqƞQ]-We;k&ʔ ~Y'n(V俵;itU5Zz%`5aEcvQz(*e1Tl ȈDv ZzP\}U Y$åO'#>x^xc: fŨ/l'!3s hxdL4r{/rc ,c[w RvxBcn(L˨?'fV}7bxFhU7E;ŪfsBYF˃_8~'t).'6l6BVB!5V3=tv mf)t%PB=@{ojcs0=<+G|р |8&I|pX|nD/U_0MF^Ö^3Z&v1TvxvJ@t Bå )nrWIݷs18ݜ$K@np:W=[Zׄ BZLK!\Gn,<ϹvM3j->J2mіe/h9˻bqo smva=x8-VfY0f=T76BB׼<]DyچX": rSe -\&"գrX٣%~l.H}WĚrwfdq ;w~XY.hA~{FsY,M91fRF;H/I y15ӊAniH|^UklT9bHX,mUͣcPa@-l*E.E.+682`{C6}&.a85"NKaJQϦɨZqR)]ڴ ZA3eF8Rz jV$J6qmqc#'Wxʝ%pH9CEwABX\w2o+ǃq؁~˜Wy|gN$~rIP[(kY&3HzI*LMla3}~O3jLz? s'|bE}]~!rKP{Wo^'YOizɫ3jkFslbX}]2R rC"\+;,4Gwjf݌-dv&Ȃӈ_^ڱnFh'Va<;u-bo== 3RYAÒrQ`)h%4jb=2!PIgC$YـMdfxGٴ|u<bzXK?K';EPn&gˀ]BX۵RUF񭞘,m(3]kyvqI}BrUiLϳ pԔ) 1HJ;mc)_V|F?J2%V* :]ܿI$̱K{Ԫp8ڭF#E9UqY`ZG]6yhـ[߼]s 2^B&Ȏ:fz?87qB;#]gWST_K.-VDNp! G5Cy5}H,hE[^=C>|FAztZbA<WUɐ!C,u 7R@=DZjpd?4Dػ-`j]ޮk&"?j tEnkE| aAo17<\F)N[ (Ց$=+؎mo \10>/xU SW>_at-}Iwr!L0>eR X s$JZ pIy),Wp:+eg9;h¥sGXpsMZ^|)YZאsS!5|%RX%W661"b֚ Q?9eCQܡzJ-Bu%~++@d| (P;uqHx|:CKx'إ<\>١kB m&C%0P>ˆ%Evxؙ(1EY=^öR3.!)Nll#[E1Rb1q>t^\G} mdOXu- )Y؍H-Dj;%wJ?%'Gttj>x%"=4d|\bLF - .:q'<,h\㨪#.{,zQ>OKK Gf֜nAnU@1NQdқ!Ʋ \vZ|(lHsr($}IKt ىTDw9_n m=/E9\[ʭi_ z7F ^/nDG+_NAͬ{N }hMou>\OEsŊmFӴ͆TKL :MFL&)F$5)//3M:lL8 Xc}S n>euuޭ앤Qv˥A@诉a?f~b S%| 1bNN\tXW:{J瘅qfzׁҖw*԰ݱϵ+4^"m%5ځUrbu}ee%Ky!;$ B&_?<~OzB" Iك ,[3n |Z0iU.S<WTrtAm/9Ԃk p"a唖+1Qysމ0Ñ7`q+9#`{ =`w \Z ȴi HxHӀ |U%( ©'ΣVqmA22-GUzt2v|ZWS;P%|9TW{ro^*?_s$0V*F AU}T?Ot_4VGۼCB@ͫ^#Zl7@L\GgD$~Wor/n?ɱ50$= j):EV#DbklKyp!7w8"js('Pxӓp:Ͽ/;5 9%ψ ImF?:q6m_ϓ6ꬽjxQ+aiGBI|2thrmbfc!BRMt8 qy,,#+_Vޟ H@,P!^u4P2fQf2Oʻ LjXUE}anDU7`nh>O990z3V~r1U֞ h?@h|igZ,bZ*p M̜$Ond 9ϲ#GYp])h BpW!Aߖj )~ܞX! *s+EO} "a@~b2i&Mqd!PIձ3K bKQHg`9M |~Î$J 5oZT'|조ԃy}x:8 ;)KǯofoD| ii"d Mud#) gt*ȗڍD?x@ 0>n[pFe+x)7Vp&sT1!bKRjD1"7/'a_9Qp<[KirY1?˝ 6LQbVXPdn[cj+ T&[}X@Ff~՞p϶:YS78, P% IJN?' VPut[YMqm( Z ڊ1 L[], BmzPVkjo ösqAEq-{k#ĕ؇F}wd\#CAz, b:==CwcU%mZcj_N{,coV1ڊ$mYT~?4J̈́:7(0 KFbT IDJ8哒&q"Xhۨ!hz;`GsC~߇8 @4FoC cR ?Fb+ EՌV>>43 (w |صLNНLu4&+|'XuL(bl'WMM=' b! /Sl/ZɅs,_2ͅ n9JI|^jx䙋"TǞ S[JE'gZ-ju&y98r$LF2gzU>{9Դ-4kLJXKO v[<`6fG 'O3-90x݋6%C ': 2>V}F` w>p"5:JTn-]gjMY璠*dq3$FpJ"X_#.Bn()yJAp9>~Ĉip4u7S`N@AԦ| m'?o}}9\@-󘓤AhgylrTyJ2I_&JFMYemfܞ8gDef{7eѡmC H9RfŠ?D/+~5@V;u(]U݊%%$}va%WO'ZOؗ/9hfRL ]n|զ]~I FKϟS4y& ISe{y̡Y>QGn]@T XIpο%Cwp/^irģEY60ReCЋnG L [VSG1kx8";?ͺ& v~+4蜼jgʔ.*O]wR 2Gg%x,tX N,e^ffg믯Y4la&b/~G ~Ffffdǂ9i6Ȧgjia3P!l繼ʨA#bl&70yy186YLyk|{ P@p|mOJs5N݉q^߂ m;SJ,N%,T'zg V hv]Lj4X $]h@'π_|b*7|v- c%GvT_f%"?fZrB-~ ^1%< 7]cߧ+0)ɘoKo#d>2)_0普 uI):{*+L F}O[fq,0+:8`nZmZy\0ed1Qmw2ĨHWR. 5#^WNgT s{l}7 ^R)yeR#Ϋ# m8HgoMG_)@lQExH '϶>Fυ *2yU{l(~#1 o#c>3$'sIaRh"\F]Kv-De̋nKEulAD"G ܎ "]A?iHn˒?Inced}BmE % t1 AR0]ǐr ЗSϩsU."Lo#Gh>QAbjr>l.'k;<kh>UћOaHג6Ē޼aGSugUTc)I(6#4Rd7lÝzy8$+)%I 95Be2%k~@RD%9Aj:燭:1f[f,Zr-VoGX 3bO8A".1cZHո>vݻe 3UçN-Ⱥ wƪc#%*Bo>L.E!Ag5w:5OLs>it(so&!xʖaw*swN$ ڰWB@^XgGJZǏMYG,T B HI?\DXh3FՇN,dV]`_}U5{%Ȋ3*Yȑ1`>oomR*Bs^d XWV\{"T,9$j}!&Ewݦb''hSq˓f1**b'qЊ;IS@?:yLTjGU[@ѭ\R4ip&o d$H>F6-jp=QIVTbCuXl>Ac7<]qAy Ny5CaPl*[6 aQ\f5ȉ=+NbeUvz@slԮ6yQxy\urXU]#0.Z7'VqTՆOjUhOn5eVsLFA :Q.O SwlJB/ᤝp`]9OoX5JfݧV)@!pئUn.wju-2UHTgFqgq%9moxmד'`pѾ=8K,Gw0g.~ЈTzϒ>ǫNVP.%[0$||)|=V8m#opVI'Rί\ -@)^H"qtvihBuy`uA¹]ɠJyr/l0h\Mp6B0\ %.}m-1jb@fƉ0 ێ$6\I*CUc5C3դQ[1,:.%@LvmȪ_(U0R@DS-$a`4)\@rzqx" a(Gw@-"J1=څ*Cp͊m2ö|$r SNfMmi^/l.G˰Fcۺsy䖿pޗLJ_4~m0>[դm+@>Gx Fh-$p}VLЁegwwNЮhz$2.*@6S]ʽ q;8y+1)ۢ:>@ƷP fu -fa> bn,g auBAyr \m| cyl ?8N]~CIN@Dı9شct1ͳNuӊ>WgQhcOZ(/cn=*V1ۡTԡ@ZqO#$Qz$s@CCZ@u׋zGLc'&9L!eLd13}-zOdNE]e1p"t,Mju{O<'٥ueXDԠZ-w1GЁ/Q͓q)BIܭL%cĊ&q6L|=T?1[q4BB+s@#4i7-v_ÝfP!v¿# 'QE#$,Z,r/mVJyւN:w>"cEhA0ĻjLڗ?lý9Mw[w0\2S50 }PsqS$5;Aj5xq*g*T\$;G1a Ԑܞ34*dV7xsQX鿡9Lའ3TA YckGK]%6f<^*\/NH K"t1 Op&L]!\(IB8=vu՝pN_;wkN#zc0; L|@943,latݺHuv3sM\< ʟ` !.S:,]xtK lrX 79Xn׿Txe.ꐖGk)HΫ곀XIMB⋒OXl:c\ʄ:(𨮻Ť[Ң̔sH ,b%I;{ /[Lb1Wzz_=_jՙ+'*)4r#\ tݧ&/PYwMZϮn[J[OEO8H:7F5ѼMqw9,y@],0/ۉ՞1U]oIgM{O>)B ('\xqI@^;̟}}ZHM3Ez_ < ˈu(lxbn|Y{O$ ݐ{ܾGvs4Fs40*pHB"oPzW~2V'LL|JM?qqVpȲ9 I4E]Kv}  d/Rx0&ت:võнöx4^' ]S]8jaS ϛ7yTPy]>lչRkZ}p@xp*_̘+ D:(I7FD{myg\JH&mY|i"WR$N(Д.@4Rl3nR`~wIc,h3*/Dw#Gkl[H@/w^7;|-_[pY7#N'f!'`[Ԟr>~0D"wF"<럵fʋ0,K⨓Nj^wʥGy׺O1U ڏ-%[BG6 # o뫃ȳB !n Գ Q}\Uˢy6 JvFtѳ3E-'QP6%T@Tȵt^uy梣ܹP`֛j*"c28^ѕ2z楃\[RGm@ to$Ǘ_l:햚^.Y1K_'ЖϻZuHRE+LVo1}WJ[f}Raϫ0,`W@q!oX5 ] (g*-NpZTE:}JYφ(mV |ZzSv!T 212̕4[)E3;..'$5U=Ԙakzč<..ǿI}!Cv7]Q1 1L!K}vYeF[dAQj>Όb.Ɠ Of tn#+_m'9s4Ni2lqӠ^ϝ1T5O+0MG@@RŜcA:>> %a nm z-k|3$`CM| zi/Z'\ɔ=Аnpm/nlٖqƫٕ@ 'Ush ^f8UksOJڈـuOeZͮDnby=߯T# oos}O2{8:%eG =rKDS~BM(603s߁";sA7CPky,O!w>ʼnwx{؅4V?&j~TImh wMx޿8 b{~ }Ig†SWnN"iο*CA6آNTDUf*,"b(0K)Jy%Ԣݺ0aN\Iy2o$ի, ,z^9Zp\'})E#Jѷ@FM/[A̱;3Wmu]}~lGa8T;`btM2vˆWceԚ0,j<9\:ܪ$ 7~aq59Iƭt5GiN7 C&T^eRaFԀr.k~> *Ewa/o- ʖv9K1v eDb7DA6*=6b-3z?Z) }q&rK%9le6~>|r}g[<~zܛe8WFgZƧ>r>zel.~tok[:ߞz1vP3fqAQ?Ye}7E0jLgFWLlPA߈L ,@SPT## &`Ѱ\]a )Ew08SL1rM& L?\&aDZ,&+ T7(ujhs"فFxI!J8j3n!&B@^?T RwEE`vltbMvU:\4bE^O3LaLҵ׈gl)Jg'[)6*ֈ+X PI LS@i Q3ꈘ$m|ܺjJwL{Wn"hM|KyLռhh9 C^|vJ0,}4ioO:zծ(jV{ue|.,KuA[,wɑ)'^"&z0 m p+FoHxZ3嘣NcJ7]8~4}W *莨wPxVBr1C1~@-b&br0z/&{fsQؚUjd%_ BKqvܾWN?\{Lwi%(+Q- I.LmwՠwE(?-:&cU%'>+ \{.G5={O =)(%g6 RZyzN #@DD7ju֚y|* {4@^/9̜NԲ b.4d >Q%D0{/Eo:RA4&+1"~ޅ ؖRPupZk`[p\Mf2#a̽yk򳠹G̻I϶UKh47'[$6+-Kз.B0n.!Ԯ^G$fM!)a6vl|a{K.9ɘ:?]==,N8!e~.Pw/Z(XʒtemljRH9,|/4C\[,Nq]JĽ\Uzv`ϊbϢMcIdc:G>.(53Z2 U @թ, GP,law?QIZހ R}՚:Ӆ XʩS'vB=|_dT R\!S#Ba^WQFj}Nꅮt*=wןD[ :fGTWq4>s{-ۨ;"% 9pwTpa2Mu.ED5՟AG_R4k5B&9Lgw66ɄN H0FEbh{hAy9A7LTD'uY\ʔ:5Êț(N~i7EjN y(kJ*YG\\kV>[)bTֺeD^k#v_  A.o?<,  ˍm.qWbVhZA1]6%( 8Fw>nӋ~im*-"5Wz]֛Ъy%j ޒՕJ w[aW O,'_@Hhg>K̗ 36$s~߱㘂O@*R"{Ebɭy Û_Qr>r2O`c/DP@\_8h%*#G܁8oMn痥orj 3 >0_9uM4Z}k&A[f^ :)~]ǹFu &f18YH LWotq4ijݤrɑ(a:pdH]6l61t2Mb_S< `S {! d. K-DIKY$i'e[u'i 3ܲV5ۃ ,rfiѨtZ1UIJ‡6^VESSx mtj]0E=9Z9{hʵ_Hz_uB,08p"ZUyeKGҍNi㠫X+XA AP#[ȓ!F.V iE.:k]H_{cP6vXiQ L^R|A0+ rٱGd;f g>n+WQVZgd0vF$x,Rt`R5T !qT8CJ:a1 V|mN)-j[x'{ Efx (ǒKϸӊi@?I7Fu>Ncc ƾ熖>/cܗŲihDVΡ߁ԵdZl_56M@?{lZ L|nfX.K|b󳸯?)Jte>2xλpU\ TZ\bi~ʖ̐`RYfhnCIJ.:17zS qX>"Veyw롅rEx Ϙd :/M$^vD8Z 'iEX?q:4Pze2#]+?'Z͵En(Bj;S%YhcJ :wpK󩲈71xѲ sި*P7l')$SJt/eDkJX@ęT%7@k2S#]9O'b^Zسt{SZ\+lu4I /_[h"E4%e"hqҲ~]݈eʼ8iU|8p "F^9nJ*,#?(nI5=*xdImz%;J\_"cKKwYvw[+ƞ鳣3e\7% Wx詬zV`N1QyÍE)XBAD)7ːwN %Pfuo6n`ct`Ty°h7]!f6Yv* fTt "^C!\ l]aDpɼ#+inݖ()b2tvVK";D,@EvcĚØLkݼ8Sx ˂2ɿ Ar*Mm˻"H6Ph[ܞS#u0"2EijU-AG6SNpk𪼭41jJwӟ)$ 7OȀQB Gѫi~ȠPBXZtU_@^P0CZXGck܈ZM&λ !xZ*lq=iTvg dbNvm\s3HF ~sگ;?Rsvap-_V,J jQ]i!X4X< :ޓHP@DoEriwiuPΌy KTnĵmMr90'  y e;=Av/ummH!~fD]I9Mw\]Vy`N#+v|#q.ȱ#\d7 i)hmzN" Dx)0vjcDOjS\npOvc= TC$ ZrDe E -(jhpwFڿO֚Ѭ#F oB]#|s""1ƶҩl!zWQeis&<}*-5y?Mp%wJf@RjT* Ҟk!}fĤ7wf`/WgdJ2 `3هZѤ̀|#]K*e/o|!'c]?C5ѼM7j@*{wq+Xc2wM0Сl5\7sp{b q#k8nmv 1T&95PyF[$ GLB`U\^ˎ[ ,RF2]up;!!/ ɀȿmTZ9(D#x򢽥B\5A"rG(f[~j3 F{;_.o-CĄkpᩇo)t`F!I*1`,n=p ڤ,}w ­Eyj \?Aw>5Nj'S)Mb6xpPKjYKDJyO ^ǢN6 *aVT&Cqn-z'yYgވ"ˏ)d5I`[/U kWp[{;EԂs\9oat7K']zejP`Jz*0 YPOƝ̅e;rH:ngZ-!}cUR!al!$C E;؜ @g Jyk}xT 2L΃/x+S!dwmDo*IM0u "čc]6'؇El$']wacu\04+B 9ފwUL x9&-SۓW ek!,S<73x T:KDoNlԡjTdb@"[pdj8vREZ[\2uP'@ɰRҋt9ȊMlAlԌZ"/]RVcl"'XJrMxkFyb[0j0䷱Dwn_`&JcZ< koLr .IGyN:+4Y\[p]yp'vBbӃu|*$oUܨR6;In{v1ͤ+d5*Ew9iԍ9ƊR9T[zI eHtkk;#J\eOWZJ"څ?ϒEw;EY1j_ͣZxPzD#q+pJ5S:XClp+eehxނXBQ`SL' MlP@:LJ mUU48W% ظ4o H7sytVDb輧a- Rko%jօ>~ G:ӽvq5 t5o dJTsSi&i4#<}Bb/)%&􀡣 zmbbvm k@R1e ӟ{[WTq@ Ke7=~)K ԶF0<$d'}aV%1$Z?:VHp2xXoi;N;6PLMdT%._D~6,~NR Ka 1<^¤ph٤甜prtb*Kt#h:K2ןHj`5{-۳lqFXϾfOH&:@Jf>:>9Q; M/rvNHUh%(4V9tL3rY}_<DKHavrx$6PwQ/$"ժc˒m桢{xHMUeL@#\}dj '9cJ6D}էa:-XVoNl3u`?+$ܝWcw2+Ԝ:WUosSa}kXf&A"K0g}Q_d 3.!ڡR#䡎똱` "U 2?"Nz溪IxpDȊjAšlcJZymeq0aY]"l!|qw")E2;n=-x, fk2Y͛UY3(ڮI0hHo %"KsH#ɿU]9ќ Q(:~LX~0@Gs2tyW4]}żq}wC޵A,^6c!.D3{ZLg\>B??pr!X/;@ kMQ{;O]c8xv.ʺ Ä>FJ755݉dCN "wP%;E^pa{v\M}45zb7G^i9MA7^2<v3lUP.Zu5–Ҙ6[ĭyФ޼6eVA0ӧ3GH! FĜ8Na#Q2H̓(AHu&'Cḑe pU[r~O⏫&y} V@iAb-Spiç#XeK~'zGr9 (Udh_%sڮ+<9{*o˥GpMkw3z]G!4z+?xTӟ=$+$f ˧Zg7fXGDvMiv]ҖxHFnq̘ }(+͞<q3Sӱ=?lP!c3ãӷZyIX.GhK3Cw3"Ɉ|I'NH2}܊oG4"ڑ:őGX $ѬJkhc(%YUxL/ΦG #f]8`]^UN%.cwѫyeEA݊Mθݡ[Py6)`sFGW*|W_q<(ʵUZH&~#IAlRKN9t혳4S} ,ϡI"DW /'er.$Qt=c l 'щ1%۷Pc:hcV@·0:+fJkpLjt.YYV@Z/%e@d7_}^#(d2A`F bNnctMzDA#a)ZtTk DnGb[$)g>G O[悊 eqJJ'(b*kB^eb4^>V2F\ %yGx#zzJ<{k %;o!|FvfL+5L0$ROH0rΘᮢN ++ʿOꎋ~C hlv3 EX &!+j\qr儀Lie MM)``Weajbۙi1Z`dD+P ʎfMk&X`>b9P ESh,D+; 2 kѰw3Ip>oP õkTt3Lt#v$;Dh-_YWn/#-2;s{B292"~:ԟtnw03%4 EiՎN[u7i-K)SNV~b QIL܅qOVTHɉ1h> YѹQ4 d&.~of>\\Y%7!ǎ/́D73]p.*KB7.J(5PyK珦G31LɲӃӄr[6rGKxa) Z)biCdĉ9XkqeLQ }* I"YWIۏ,Ŏ9zu/m|@}yr< RJ t d_Ȼ^s_B&W87tZU W3E#>|Oe,!rL@ 5O-ԮGݔYHĻ5`Yx v+R}!4.0(KQȎq\,]0zG^"|ǝw57ۣ6!YF̡P( RS[FU=)Ï}SÁ%zom3QE Fj0/Òc_#k< Sv5~>~n|*7t8U-HnU'EUBPr]%m:3y4HoRLKHVuWTgt<|s?ӄt(L-8;/s8гRk9fTG}m Жl"Psq*{5?Qou P+ KFE9r'7 r' Nִ<=]dgCxp2֙HE#/Iy+q(/ӹP2,:1هX[W[&n>$\$Ly"8Ps[],$/t8g;THϛ~@wi#G4biwPXvZn_jAl]|VeK: <bce۱2|DrFs]%}>_$n똟$[eDIj>9whECmZ$bwuYNk@maB'6i(H-%.wx+\TPmȪx56r;ڦ鑼) LNd`!@># c=kqi]&۹Ϣܠ M6ݥ>;IgEz;Q;Tyy|#ߜ yJ^Bplҧ uDޞw2w7%QCWآKM* 57 `7U[t }Iq_:Jhg{`gbp.]CQn{r}뛿'FWuQlSMOMQ Q{c?~ }?ڵ&3ˊ9{m^#g7f^kGL=^IOVw<뚲+qw&gRuesX"9q'-]I?~̩ʁt`~"%Fv+o@`5|IeZ.Ĭ^$ pxՓ^m>/-x~HbQq>psPVmG!,ԳwS(dU,Nj%Vޤk8(->zJ˫ OXFUN&A6J EZ|HDBQ}:dR% ^.=z5:ZJr?<|h ʤTm72KwMv|8S@x&Q)XVI櫕2 #<{7FoiV/u2i S$EƮ3rMk.<겘(}'_]C$!,=u T?#U&_x# >rMOTgD@OPhQJr&eʹ5=Bd@"nA10$I-c˸2*zX23 gzMo~[Z?o 'aSÌo(x(ÖpPzAu+9QHY Ӵ~yV͎jW.u3ܶR ,=d[?21oUPXj$w>õ[8^6E7HTb(WI}QuJQJkP.fX5!m){G>N@ ŮoZ1[5׉)t?ZXLjKW1+eQKj Mj"Gm2LWh#DC5m `@7⧁4ƀ#H6p1)~{Š^s:GXⲆǵ#3` jCoYZZB=>+@Ν %"ܲ^lu+{v^ԟzv4M 3KM}o\]͐ ʤ7;]>|ڭ*DqEhk9y\ \V!%W*$ATq0أ)ͦZ4ൈVkJj-dOG2bڷ3)sN2i;dm%v *ff iđe S) ىWth` I.,qF'|s~v0ͥm `t4|99ѻ@5vh=0|5@Ȋ!K`,!ʋ\MMVHЗ1떛gٰzOBcξ@NjR(XD+VƝJ遆9خDsfMf_zxobb[^ēP$Ceֹ.= ¶(rW,[Me=eGL$*fK^ZkAK$iYB@z i;`Z[׮J3~+yzGB+:%YW7rUњ0ܱ)q QMyʲ$d"6?.H9V_5ȋ_NUxy>\-JY`0&Gc l_يNDK 0[Hf|7XE_\~o2??MԗJ0_.r"]u#e}nk8*ulvΙ*tXጅ>ˆv[y`=|}ĿC@9j&e^|{;d &8 MCyy:%[ ضQMۦJmsׇɠPrMᚂ{R@a}{@?l"p~Ύĺde30%فLSK4giFk{6Y* j c/X4Vn9mWTngk1~[*J,4ϑ+ňR;V8 6.Ef=A<BZޜi`|ɧxheVJr/ƴ~xh~r$i'lZ E&P<МlgNVH,Q|`JӋfJ,i lM+}i ETq&Z#=K81DfJvKҳ3kڼwm2ف3 ~þsVע.Qt',{Mnȣ`^!q3Kj1n!1wu[dS)(T/yg\i{æ,pUv#x,'d61JXG`5߼L 525)Ox&{~͉ip~H }c##<sy֞Z ~-EYI!5M[h:Lsy egl\nKcw^t ]`;ĚU_|t8>Pdl 1Tk0Y?dTUe߸[`dz l])RԬpa{N,ʨ* hP;XxǯBy챴4Ez/I0=t9\dHX2X_ǧ5p5x풘ēֽK+6vO?_LP,<,${,*UAXJ֜m xM15J+_B;An<@l0a oia/ ,)ia VdkW> h`D$j!= zau䒔o OΝ!QЌ.#[ .P6ʬiWP+P-A£l$!!h^ "6)lUou:-=h_$<O6_ =zV$;`&uwc貑6&\yY?kG*x1JSE^}-jYߚBiE2jg0+V.yǝKϲ5! 遍p&V"D!| k<\ׄӝ m|aԐM+/\nJBt D}z)%pN*W.З^bA`uOu;9].zAӥv4g[G8oFZKceAa={$֭f^,\vp4ǟ{!8g;„G}T/FBLHУT a]M5ci,Y:&oBUFg1cݱOs>n u$ ,/ p8QY.'՞ 5px gR\^<n@wk8$Ѕ}n \ۋϋMiwKN\2@^m80`}p>۟w7#[WMϝGX<ϐ^.|uMt&mK&>P7$*"Ecr/2uQv>ffԅg}7vL ?׹. Մ %ݰJihz7d$QOrwH_Ri\`VY{12snA*3}p3͕(t ۖ֒"lk=r"K{+\;u#n OؔxTbލJivFT]ߺsATpk0s`4yu\+T=ApH+_ CM6Sd̮XʠJZ`5ge {2{#3is`V}R'HbN:z#cw)ir|lgׅE`zVҀ, ѧ)Ewvl}d&ddGOPx8e\BMkcՐT}78$ 5_N }f6$ݪsN.}t dQ_$i;'DĥIje{Fů3.Tnh;Ho$.GP# /ۋqwrҤjNI(|r1iUv*I~ اh3Ru,FBlV(?OD̢.˓W%#teZ8NSO;!سTi+p҂]\1 UF7KԘyJFlv(\z;%[LR􄁦LW$lɩB# ^mxFz] V+.Rz\%3u"ܦ 19C67|("ёً-QXu^T:ˆؕU*S?=~A30B Yq:~ˑzofupϕ7fG5nQe,0>w{MYK`ȧ0#A^Nj@U/=pjAR5Vu{Pt?wh$cl< 3*U˙Bӹ;`^$c2[e.F(G 7 Òr`3 ;f@,TȬl0z?xE\ dCvy(<~ig]>P0 F_lhN=,ԵY2!-zƹSS)Q(3&QR*̻ h360TV7$Tsr;pom$)ڃ9sKT;v}h\$Շ!ra1i q[+V!|BY7tdMϱo4oKiQ49XWl\ٷj4yr?E&D߻99^r:Qxg R'%Tr`{T+$`Ģ^zs6/9^05~u}=gNvmXkE&bwFT+u?h7u7a2(ɖ{@(@*Oj׋ Z>SAoYtB}4ƒ:׫ f82b\$˙/%^Df)][8^OCyAb1i]_Z*f([?|3%X6h&`>LJ ҋeΥ8v)1!;50VQKkLKaصbIޑl䳣;e Hq@ec4|lΩn(Tl@#rqo c;+kMA~:hM? @`^C.|a ~M :%nݜ*}M`*!A`Q *h|vZhUgzH՘i \Tk.۹-"obS0O߭Bw H7&(˪OϽҳB4UѾ%x RۚBK7. N~0Y؃UcB{z`ֵ.06vf 7ŅPp傽@r)]wn ؊K'1K-_7Dv_؀OŊΕcRj/[޵`s &ᄅG i3[2cy]_2z85(a5ؙ'QAyNCa!?R />4{sK+6K$kK76뫥G%MT[`V% D2A+■AMjdp$AXI dD;5zO)Kb B)/)$6XCfnNG`La*J Qrmq{p_ͿQUPXot=&V N[DYE.YXsqvTkA%ʜf酷6_C*=֊>|$4L"N0v OylaJ_\ ~{n(4QyK8;gbcN7jP8Ry^JIӒcnPt"'`gZ"빮aikLn `}Y366X\SϚ*]I`)Id>y/_Mثi2L{˟me7;HDM*ZP"2pGՄ} *0n. |Sfa͎CkbzuPŌҬ; Xtș"P8yʲEK; ߲5"IO^௯:Ԩ.KO812f~B:%@#b:䐏Y kD^Dh24{̾&ֵm qf}G@'S eEԕi{"vQ;Ӡ0ͱED\sh9e6M0IBaR[[LUշxj]gƉ2&4'ntlJR3U/y&^ : /TPfz'//h>|=ݗA.F 灊* XǢ1/k¶piy "fZrX_f06649,$8?i;::cb<}E2ش.A6ugXL"ϖ.Z}>1/ # OWt|1t q5۲_+PsK8M-AQlԻ/OLO&v#pSVuwGۚ1{By+)xwNyܮFyA7߿a@#e'К|ҏUt.o;>T$dJp<'{$LɖkUa(>:#C SZiF)!F{WnT)  %"/q|JN]Bx/D-Jpf!.M) 4;-FXd1g̚m t~~KN+k, H ` wPcEcO o ίm@ ~qdⅴ+^"߈Իb؊@A0"ߗ'bmwnZ 0^m' UuN ؠJ!j@;p/D ~aߦc|?zSg2^c;&HI`J m3\%fgZkݥư4j:H6~ !.(0H!̕ 7lURԳLc֮/'>O}FIv؍W朌\jf6>gjLOyY?]X$xsFiw]T̅ۙڑ|Gڛ4gnhr3ғ*Y0ŮF^OqPRZW7tC(+ЭIē'X~e 5$5< ذ+w̙JJs8Q fZXEvuTOa|}>Ӹ/ucq9~тpp$ztU0'V ݦ)KK=dcxC8Sx.N9G?8d:xOq hoZiz&Ӷ ZW}ffJW erC/4=+D?gt&XP1*3[T͏xːnősIvx]vu"sZ;Ɓ.eS¯'dyH4|ZT>.]_؈@}`DŠDGK4MRsK~YIJ;csp쮭G;jd>6rS !.CnbGߞ1'@h|Mc@l=7yIK/u._jgȴ6y,ѿ-3g͍e^ 8 _aC4;) *,(C"dkPF5„J${'\~9D|GmhRϪUϦK~N&ILp;yh6wA_oUdO'ܽOIT܏U1QD U3ɩz,dI."ɳ2_Kϱ0OY0`xA x"!F6=UE[?1Y]u\B-Iz̢XRڏ%i`b݈xډ23tlZ Ɛ`Y7VZzJRn{&I7'I2N+S 9axxs%ٷB) *+%!/Ytp5+yl@/&Փ:Q N F`a-/qPT eW Xw gaF*q@ ߇ '>%JѿQ9Hq}yRby"RǼ S /`ױ?P]&diGy2l8w٘OCQN6p)i[x3/^IATJjc&q|"x92\L*?.*ȿƶwR.Nk#hPRR3Tԫp0Rf K4=a>q;Dk9B圀[ qGj:-̄nV/c=nqy rxڠM|0G FVf"֥IʠK C:hr`Z}?]B!g̷HZNX~ \?>շLr`u~!CN};S0>$[E'HMfڿyb/,?LgO$$/egwSd~1+Ehrz(bP 1cEj>QgU}pV/5}#Y6efGnNݳhI M6YfIa_r$h9 M<80q Z; plT*:X)4*ne'Sl 5}4  #T+5l9z5W^I;QUU5dQ!ƍzGa&)CT5_{w͐LwxuȜ.< Q Xi,`*/;UѓfGoOhs88 hoidII y }z=.螺"*բ@KD@0uE|kBv-(j& ,@^#3l)m1bUhh3)2pv.?'sHm=bOf%pgvnzPu"{k[GP#)_Q#x_?pUo(Vē=Uj%–u~sHInΓ! 5u0~,. (0C6t2*Y k&0O]6 #lۧXs=vW"\yjb"WukA|=r}]+MXy94%n.Jb\ՠ 0+^:b-9Tx' gb*)t qU(+e|.*UQR3<:ʖF{F%*繵ERn¼DV hNWdc_;i!>+ #>YDFyʹG} ylsHo֌Wjw2>DX \u©=6;nj:Ad=eUo>"mq{5 IQQHtBw 8=aaQsTZq}V$>%9jOCꘝYG[iޱ4QT'T_I=:ȟzAZot'Դt%ȯmҊjct66k/.ׂ 56U\HZg^/Qo~@MD֢}8ʑ8B`VB(L|,jBAx|t{q@x-gKLC 2'dj~"` [jX]%1Sx YIG@̘fuv;HcL;3 NkC AzS.@Jz4] GZȚi^xܙK}VDqI9+ *zGzs%d5ADBACS U4 +ַjAJ>SI\+*N'%ϹZ0Raj?}n '^_5gn%GNn/\SN$oG/_Ba%`zIKG=}L?ZYMiVc @<t0^$P>ģր(Zc zn,X"X4˾}]W͔t̫5Xʦl* ;<Ӂ Nq{i]W;8%R*!\VFѴrDJ՜Nջ ڪʆ`^Hmz"!y }nA^pTK`7&eKaZW9{rDo*nU2/ gHI/;86ɷB G2GB>|O; ^T].DDz҇ld-?@r X?a_h_2B5Ð% U@ݘ>Cea. Ŋ A`9sZ=QeSd$kBr,et_COMqE1\ -BxBv'b=@ym%!@hRGYa> 'Z&A2&SnF:(Y Z^&b@2[Wab vCMp"IҬL(Rf r3П ӻ0^M>BPm g[I%pv /M#JS#{Ns%wb,W v+=34-۷曨9ЖniКFqrBG1T4ko/ZwQ}?Ljt(=sqj@25Dظs ڶ9mM #kضH}5mfo>jUꇟX[?b$T _G O:A `vN2D nF]cp7R$&㌕6<552n%& &0k2Z- d\$r:;j9$gZCS 1+q1`wv]H'?՘ג̶d"vIFWZ4sF(VxǠm" ;/8ta2~q#u%M3658^}셌Lz%eR5򨼺K:Ş{ 7#Q yF4P\lbx>4jN1PQ},4lINn1"pQ,}Jh]'4%!z]Ue(3dEW1Z}v/ѳfT+nfK^4>xB-x@{[$ogQ{j#+hJ%O$|YQ3Yx;-nZ_am"J\V+lu_^) (rC4rb08~.[ 0e tQt)[CЬZFwGi&tt ZDݛjA/\"esr&[&`FdOeJ o]&LOF U/X+vEk/eμ=?WRBaJ=gג x@ѽFE洎1=PA-r0E IbaQLjxx^GxL|PuS 6ղ+S9DR/xql{ s}隈x @ 9Xn %eiega< "t:9kvx`th?SQl`fӭhx[ݵO&b&f8kۘuY9 $@-UD/ؽyV&u[uC4񝠿b>pZtUܖd"eDFvPjF?3ҁb +ym&qKYIBC`򔋰"b^7lZzg4 X$ZpRSYЎ`Ћxp@ ԫ,$.}nތBze%%_jοAin|a,BqQ1?5GʇK,!O*EH_ig ߂] 1AaֱgD|%Ilې=[*5ozxЪ u)1 (x؟YBl7k̫ѢQc[ \?"0VHX35fAgJ$mܢfN(d o+0S>=9TK16`IX |g߷rd({sQ>&YcQU?o%!Uŗr|yr}v]<SVt(FZ!4;LxGCyBL-cqDlzRecwwsZbxx<>?u:(Ai'&Alaȃ q+yhRzј5o>Gi!ץ~Ǖd_xmz1k7#Ni_1'dXF 3k^b0@ò= OGݱ Sgc=[ -\+L~ط H~usߔ%͢=-륽zo-=7gy4f(' mB*&s^Eﰙ{QSsGo,uQ /`"IEP12z)$ P @lIΔ8kקNE:;|J4sք[o::AINk[K#_;t/涡t`P^:JAmK4;1CR<_b g[z2]q Ńdyd M[w+/U3JǼ s +-%";#B  ?O 倄y-T&QHb ʷQK3@.6:O~ 1z#ڸsYhQ8NEg$Uo ]='/D"{b`*qQ\8B,^ZoKVdmk xt9u,7\S@E^:Ghh{AĦUl b"@ ]0X|yԾvj=QeIv,Z/Ri !Gn^'XQA=ΛWÅ?'󔋛gu니^=ehdݡeR,522P0 gwE b]Fw\0rfkhcVc |d֯$}p+jz25Awvh<2 3g頄4U'GO_9_%:&̎P;ܦH] 3c1YϠ _Y8~zCŎ[ۏHC 9w1cG̍o,7񄲜=&ҥ Wi, j i!\TӶP]G3yNW^'{T0Rrq?e=`Y? mX(vȺ]C SXx+ ]gCAܞ >4Bo<ڨÖ$$![)ҕ:^1״v=i{*!˨9l\ܵmӡ"Q#XT{]%UJx]eQ iRg_ 9 ׮gˏM)-lߦ} b ɢn%ja%tx޻G͏؁p[υJ~Lq͉T+p{`(a{A }&Q]L!;tNJޑ7 4@*S{ٚɵ_ID~058՛RO`(ґx=1c*εC#cEW$oK}XB}j\?JX*1fC<E6Tf\ ^^=SUÞ%VqBh '+v's(xQ~ք ߼v;m?nPc3(OEwm>?|G&;2@{s[S6m)>Ef Ax܏J]L]흘Ͻ+ ,YQE,Vki@>zZ I:zڲn2N\%A~L1K,?رZh6 v%.gy v=4bt+ AA_sM;rS x%)Ojt|cuqj>g=NA4wR _Gz}b/mċk3[&;Ք| |:W )Ml)v5Nq~UҚ2?2ӫ;b%wWkQ^. +P?6uۺ扤y$%~$!&0\H43a'8eh}ƀ\hZeDD`P:HۧX+0_)T`PfXj4xU%tG;@CH>|} OWV2iw3\es2 ,o&vޣy2 #-Q}/eYu>9]h(0sgu ^r1-;jµɧe۵<( [/u-rC ]#`E4 0:UOF2!QДfۘڋo\ 2D+)e~2FYm3I=\ze~2j!NS$~[!b(Xe3AY6&ɄEONzwiY ؀kl#GHLPm3ɮ0'NkĵYH͠ܔ^&ֿ#U4c~*ȐŇ]\W(kYO1 ]G>@LĤ 3GʲC ';r3zAz [d$8f %=CߍIT ]eFLI@P##c?_$%FTmp۔th֝x k {1ڢ;7;F@$C57TCfgxKA)b0lH3)#u- 9s=nBNBo>c)߇]fj7Xym[~[1vydۂ긤tղ+6:&pi"#_j~Vu!8\cC% 4hs,qL_l/ip7 ]ՁvصvLVE`4v.5Me{)! 1] u6A B0tOaT[<(>aоrS>x{XH"2St(mrךJL;0,IqqԓF9v>tW| >ZYYRf߱f2%*HkEyM4JSz MreY?&s\&RogBϭG˜Rn»io/~8ѩ|"o %RUeS|7gn/d;X%gJZOŬd uL7IiA`; (ٟp !ĊcDdaRUh^KCF_{ӣ\#i(UM L\=.QՏCb5KCұ Mv}$0+5J$O5u`6H˟ Rߎi4z X5fHovu<5Q@n 6^ C|;?뻛ݸda\'r,_n nE9}CK(LZxw裮w)ri! p`_J9i7M)R7YaT U%b.F6aI\]B2c3xgADqTN*@{=YO,8fGŖ'.t(o%gVњpX.a>xNg;nB.#KJ3&G#kC.~[ I8#Ƕ?7zCv w56 udMHEEl Jײdj1 ڬ ݛ/S4fFfqVC\^w =g`^t7b>rWVQE=a,D'Gn(t~E)었JTG!BVgEkW9zxT,,#eBָ>U'刕VsvO"q;MJvIKs^@HO&. o] @U'c|ag`Pj#NWZ7^y67\uW2٘L1mp_)#O0R騵tk 5;#˲[4xPpua/ b} o?NcmhЁ9/]o*mz#>J?yIrZSMպ\s\Fk `8CyWb~Ҿ(w7'G{M6NAo6a7 !Nf.eقztH\Ժgóz_NkH)*%%l`[8i]l$ k1 T;˵1: (= QB ܀'l "(G?ixK9xMJ;2 {6PSu*ԣtr]\REko@javhKWqdh%%6_O;JC"3!Z6Yj_Ei^?2r$@v4V p XFy] Le7qg~ڹyhKnY0^vΦQjY9R5Df 8FÓ)ڶh͊EŌ.8VmVЉ#a@Y&B^Û4Yyfƅ־wy,#O% *_AcT']̝a 7&9-!ęr9ԝP=ص,<oWpIwXU&E(j a6X }ziN+?@&ۜ>() ,?IJ]w޷7(<ΊP d~vjnrL*9Y?1lTj=:1PrxkNMcmq+:q1 |k[]1K\aj$:fE8%~X:=uS7+uDsfPQ%s[o?Gɋ9`UG.J xO'O&.3<`PNqÌCUY}@Z&@$y*}qr~`Fk"C!tJрجgnNqy'TeISǏp?bCB.x<,lǖN`p2 'xZ*"U|d]7;-}N/qpX'bzW;z_P+< *6u#O="igg3$'o}ڎT} HNV_ d`pyCr\Olo$;^!NX>TKe:4<ɬrEB'>/((Q5AP-N[6XUl/ ^ ><'eeBȃu{L2$h3cA̽P{/j48ܬBM36݊@F5?PmO/;"d7a.ok4j\IѲ4?-C}j<~RX/Xr XQ,$u6H |'y>[:5rnb[|GcSUG{^ΫycЕ==?Ɣ0_&ha\drS0z:momNk >"{;Ǽ2.y-z|Mh.,f那2L<*Hr5$76aRgvmD3O͵%+ ȆC82ՉG3IB˞. ŧA$pbsǥTxee".ÈgjJT bf=7j֕c@8p,PZ)d/'t`hW\呌H WE\gmOI>s+9H^}>Gȫ&ZhԜp-gLa;}pĂĺPᅵH=[CTJ+Itz.`Z#VP.vJۤb+f*l@>b-72%\=qTtRE!y֦).m٣~Km%k*ˀYRRz~" گ<^Wy\y%`C$'m\G7.tbƒԅBFhYKb; Rۗ?ENw?~PV1֍^#ZI{ rTlnAZPtp?ǣoMh{zϾ"$<`m[ OnD:sB\Xcq -̙g7V+#_8r.W  \E{U r6p>ZY Es}r*3NT)Fq!BHi;/K`$P?2 s CxFD+zG(k l]y_ĝZ^ĈBsnzЕ$ ^>2pE]e lDmxh%!#6/v(=Uڧ"I3BpCx0%_NөҀcg2t9g'zD}W?G? όS,W ? d~r>G?8wCҺjέ1%L+ZK͏XPGW`;J(at2yLRKaxbTh&)AB]HBLE]UsY$)I @b̋MNgdCZѥGf tyٴIyB.3в*Ƞ!jN=#o]7Z/\EOd1'BL|ZeXi nznC7Ԧc<ɻWI0/l5tGh-Tdܤq&Dg=!|#8ϏKP*ocw #@0-hYJ,T'i.G}©" 鞁7$X~Eո1ţ#b`p%xHy' )@͎p݈EsR^pSI(xHh+}DFF%WYvx}Cz6FMxaw'pѾѾ7/*z8*D)M6xCO؄رKϤ3(+J&kM5ȩ)j9`SJO|عC}AE~17B5~Mz_/Ra0Y>?ZQǤAR㋄ Lv Pă3_Dm=?@}m4dyTA4?6,ͅH:EUa=;Qޞ.nO–A5PRLT/y6bw|_0G1٭b֢/# 2?;e@$Aʮr;"@( g0[T(r]VtaZ ob= >ѫ8-HI=x:.W#TfʹzݐزLAg4Y^UsJj5熋ܢ!2?

:!ZFLyO6w[]qոO )&d'~HkDD6OX1#U-a d@vNbEkۈ>/k њ x|htOiO95׶޸\ aaܨc y굶)- )=K@k/8O,pI;y(yGf:q n>8}&xك`F?YZ:3i@8 )Fe:| e'Y<@s5\̟]w +iN 3(47m"? 8)$Epgѿbn$"VT'2/kLˣ+jclB?R%ʨ {MNl WK-Tb=URqޣQTV;3=ləBǬIY)F'֕.F6vt;n4 %QIc?e `uQde(k̏K/g.Ũw7"ep~&*A,%nc% ?ʐ0I]d"r41I@nNlJ?5g>A w{}[#\LG ίV%o 2tߔt2v2 uKH+c)?3CYm/j U޺,1Ӡ"ͺQ+=63w.,Z!|S/"#Ra"k&xbadnVL2}t܋-VE.eR0/Qd[A9(iGcpݨ8pv˅0I p;)!Q, QmbM7k`j@x@7}:Z];>XKnRѩ\0DJ?R (X(Kdu K^cEO[Hcvu~ ]Mn[r0%اX0S%K@niAXvОYpN˟kAL&ٟx1^oUDZčr <9q۵Sttk5o.%~Zc aоx9{ғ-_׍؀'١sDR8p;ijҨ8Ã7'>j8_P@|v0otu<_tr=G!̹3`5~YNKgHvݩ$ӻoUݲ-;cHT?m樬-(dRTQf&og/ZHa`V\^[{#0s/8ۘ(uH'?!k? uu~NABovlqe:IԪ8TEafhlF t'+Nh /؊F YJTl(e3@n5ѡ#iәܱ~x)glyƿq<_u"b@3Ԃd<rsmn)mkŲ@JO oi U`!|=s5]zۛ6=C9(->ԵЃ!bg4\ʖ! X|Vi.KOP_\] W@UN1Jid3K}$~ "*BЀtvb ^ uqhfDCߔ\2>YIBwL%O\/]I!ҌT?BEBn|(nj|ؾͯdfnja | xh6:4-q=ى0KJߨt\T{-ƭNL/#L<;' g^en,7kY}.1xӉNa!=jL^\n 6h)"8pwZi Tf3:VŞHMެx$'j%ض`45d*nϡ4K:[ՙD 0F9PE*z9T%,O58{h! loRy@?, t"]'DywPptA~h7܅>4mB[DuEBCjLh%_M{;u1Gn"oe ԡ̩ |QIeڍ8@䗽gYf 8V4)t5JG׏MQ%csTR. |(VEaYZ|-B%1BuUz4np~ \S㛫xL'oG>01#SY@L;wA'zʠGibf\K3G}P-h/ hɈc/X]!٩C%swD&5 1tvNIH†ZL[:*;Q*b #.& y|q>H۟&o F{e }B| ~d\r e߉GnbI(twm B~cVDjw-м 4$,\d ~P)ny@htAVk~X̾rGNAT^T;^ѺȥFh>nc:(3F+'5[n6sݽG|(v0(^6QnԤED:Ƃ1U5/aYZlCaBWWU.x(~8x̰5?0c֎"v,#TC 8‰ xJG>ٵD&NuarXש+7 EVѨ҂BDux:${1)ZN&n\ 8N&YCm@Bҝayl.bY5T FCEnPQ<߫rqA DB{"@Ǫ {loNO#-n{3/_|'x7mj"=+\fN) 1JSxO ֌VC|Qԣ,Iv t̀V4AQ Y+PGPz<2CԫR@U2"ʑq$S> 1r,f87/e,5ow"(>1Vf*!ľ.Jv]>鴯@53 i5VL8.#ę[tJ`>Fk(j1{zKES14xl0 \Q.,/d{:we1sQ.&(3~rv lU*p ' | i.46 ~G}!;R=*AnBѥD`5ǭa%gE@fw`z ^u7. ՒM8rKzbtBWܬ # ,u:ioeMrܔ`G=8f8bdeU_n?XaEތ-cK\bO4] ʚþVaOtii4;)Eb n*ݿpmOˏN7B;mNP^9x=_7r09zd5މ1ǃzԔXd^p8vU.=A #altcodY:\paS͌1̞@D: 4F ǿG@ 5g;Ckn!J9@?RoK$<ƒ`}bDZ`!|mO紸@IPtQgp6<_a"쒙g"czB0Y<N-ܜkd?$wh+!B M7)F<^k˩8y;pQ,8x`Yۍ&G`8Ex no`8T,ٺn w ,or/WPh`/;HA?zD閛2#n=MZc@L*q !EGݍfOT&"Sצ|PpߍtB.Co1!# W=G *U"tqNCIUZRok.IE Ylp9K=x!2&)z֮l9s2 Ty[H 4/9=P V✻B_u,>E`i5FP*PF,eD#DF%~o33-s.gwv#mTh _)o9 AB4ն IAUl%q ;,a-mN_ŷ8΋8+|1*rC 6͗汅b^f#6 `m/;2@T3e.Y-k*.EDĝZ)oDк1cG:RYs Aex"x4<f0hZXVk?Ԛ5).fZ>tPI |po;} *h~ſQ5St^%G%Bx|N˔L(a'|m{]p<'%X Yg$B4' 򙖠S Phz=:EbyG?Bz2^>amDc{rvg8굊Rs]i9]WΑO~65n6.qWKi9pk02\))w % feL9h7?f5BQ(Șޛ:^jz)ڛސ| ڜ LGOG NodCvTvGJV9ffu} H3C3|.ХrЃx/]5v*r/\W-U9IN+DPnO/i8]:vJ,wOG;NtFg["1c cV3E脎Yꀗj#^nI(X"^ ʀPa `t'/MzO2wpZHlF8 z W縛Rtzvi\}WӮEic`*j~"-H> # @hQIc*T=}&\A":G ?>N  * S  qz\W y`\g΂%bo^Nj;yP VPc8. ֣{})^hM\0vf 뎯􇸃{o@G#ḾRDpGKfَ{¤=CV{粏L6񷾧 J~6U]C'Xi'E%0~Q!9 ?bɟFkA"Y0EcuοfR Z:,Mcu|ڑH7_uľVX~B7OXn*z$v?tp7b \C`dR`"M".m $2RM 6#"%g)rxGm睸V?[ b%Mat9g8IFĂاm}q@qEe f{.*y*R:z9iv-4A/|OlNMI8Gfr2eIdq2Qֵ*#3?Wj!G Q 5!T'$K .7%D׫*jI]XXB( &_(]O[d's[{j+eDWCC/WU &z^^O&,&bӐxn<!pS_^.O6=m0j3 xҹJqy%M4:x : \+[!l Wf@X96Uqi{ ?mdg\*#t[4*3%`p+iЅw(cnO%@ ô-@n_qknokI̤#Pq ;|E$auj 5ty$941[ Qb>}pORrS-`2Ԣ*EX~eZl\?A*eCTe&Q:Bտ} [brBأn!W4^ '^9PE U+܅ds4|fYM@O0fd؜HkV,V􀌹zmDO3RJ}r2Т0ѹ:֙2Pz.δ?ɹ=v>4S#y)DiPXa9iE*Ew8D")ߨmv<,kࠨ"Y '7 KJYM\> lYc&ZZ VD<;/pviPP]1+ /PT}̷'@-'Qfͅ$ʻ*r1K"1~$K0Jb70)__ff>ڻ ,EqД2sYn¼q+SfWϘ0Z3-4=?4g}. ;֪yY]3CVՀ'%j :K&ñ5+^0_"A&{}#0' &nt ZtQeYCN.w 5'kY_[ֱv 1 k`w bt2~2ܧ 7Z67{[)Q<2FcOp(4U;Bd9b@/ZJ+όƝ{݀h6luB9n>rtGz.Es%}Ib˽h˯Fm""4f,J} oVy |dķH}w8;WzHke`j*;B MNX-{7Y{sHIST鬒|] ɏ|0M62ϖ=##70jrfӬ +{`u1UO?8,h1tCsі)Z3{!8Տ-ݸr`|xv6VhTl90at %޾HMO{qܰaV]X 2ON@)~EjJi60ta$nKt,zTD\1IJS$2w?mOpd&.[1o,Ym! PyΝ}=3I^Scnr#ms:lDA]gQRRf[\-8N+u P@2i |MOs>bTߘRd*| K9W9)ݧ3 Ίh"t~i?&_E}j @o;#:# Wy&8F2QP!YB9KB^.D{ZLF0*sıؘR%to2'ɈR0ņ{?̿_g:^ƏdMD2zj&L99 ì᯽47& *|ӑn!ߐf̶aQA˗19B2K?8d96M^ /ųUbO qDkUϋ(?Gك5;R;ul :6O)l}$H,[\弌S&(*`y2DIdN|PD`1ގ &m /9L{#W-|wG[@.?Y;8<=c#b݌q-bT k' d2R۰@6lXTX%iʁsTkFҙ_Z}R-Lp#V":E }6\af K'E׼}0 b6el$"tgaܓ(/tY;XA_;9<1=WdPe}?MGnn{ӿ Xv{AjHJAg2&#؟[( ԭk\pp2Z+ն"pƼJ)H2BHX k;@պ{&!Ek0{7'Vz8EI!kp}b2Bi܄ޱi@iȝ@$bSxnz- FT ψ \?)2}H ADln+@i,1.`*gHԝ,R+fX4=w3On!Nvz<_C6w~44t.SN.t;f4kPv?Oq)jl}W] *ҵUZo0mp1W>ȕō*fTe=uf E^ @WQڊl1PMn׼ 3Ԣh6-%.=rTOavêLk_tP"h&l8$u-F4oǵ&fbh6#f~V'ڱV3E~nzNGHx"9fc~[N{M]#@XT.aWX+HIPiZJY#G"T냬Ȣī(@e5fK ň{i13WfCam{Yn CIgn͙nl288܄O& &5xd,(ff[?`=Z rƂq6voO)230l }/ t[d*oUK9["7N?gFZ",8L3QHfdur[n|%>? 'OU?ҁ9Ɨt]EL2Vk#JBѰ}i"ƂDWErZY<)93U+,`u^ 5F,jMM2s֋.Q7{E}uq^N |ȓS%0WtKApPViEw4G- Սv?(s#MQ 苤~gr `ѯ6rۧW$ٜZo`竳 #VۦtQH|a&AMxoTǪ塨E mU[h(찖oȣ1+~u;dAbd*xҊ:1 p8 /D(y:SxD.bsD:bOo({"@fMP5lၡBb@"N)`ʍ&ת ~H~əDEWy0 .L54 HS*N5;\ `ܫp nn SPKX0p90AW g8G@X8kHw䖱F4y%l2IG/OHWDc`|\^ji\wBDd {4G66dNCw9UCȷۑf/f(zቼs&C&)jx~떕*.84j/ Y`>씄̔apG U=[O H)(K{.U?g\m%enU WGǬ; 2 PS(sXO \D0ٵ XεI1dۙPTDb9 At$h# M ~2ja]DA'^746}`u`,w=/|6gjۛk^L D*0w.XuKWD-\%FY;Ͱ n$/M.l'9\YB` *GK{St9ޯ9 QDG##iKV[^~/ @ .Sϼ\5|S8Sڸ &&aD&ҎJ6 {_@H(rKQF(!#ie)> ڗ}{fjު!Y.^RD126Կ3tf#V< ӛi";z5ean!l߷-*mp!N"VB,肩C_Kl Tԓ\5'* AvWjh,ÌG8H$ܻIqՔZa3g)ϳY?vIngP01J qni.t\6H›Ye upW ~n`<97eNG@UPݡ0Ri5im\WI&%W zu3X~=ߧLgѸ=kNP2RRIwD{x zP夁)SJ"EL#4-h g,:n;>l28c,wNdZ*#f Q#p'(d3cpUq)V" {fa즳,5v$"Rxٿ7o PKUU$d#IE \ m4kUHŕyW"`c1gHbSQ]Kqw,Ę㉂\6 +TȰx&c 2 aۤ7ic eew_I.Y aG͙d1ǾTU^/lWذn  xk&"U]M%=Llk{<b8"xac6DU*-qM= R|[RD {cش9 x&pQ^ w˺93JITKcu7@DnV?_HvJAUba69Iow3$glQtˑ_ht JoCxL)t]9ׂZ_WW|F!AewRQ\='5*5lwzX11 2=X [r ;3+$5*ͯ%_$3=1Cy7mKKQyc]_M|nQHvI-ɇ66'聻 \EقO, u)lT r>Yi=CD)5N}bAAkIwEt$]5cF^W 揖GoѦΔQFPެ_< <C挆 bMma'ho ҍhSxpw6^cW؁Xdk݃[o#ueaSy?' 误S4ytD4XRpq7Fߋ'IP>̄E&i'Lz?GS&.zǝHo9q _5 Qz8Ieumu@KqXqF/-s'#[i]˲>CZ":Pp.RA@`5Vc2(ѷkGuڳ Ni=R;0q8' EMT1 Fo~F\+n@D(sVV`b/]of 6[B밈c*'XއIW}붭Xelɒ?gOS|+=]6J{# |~%9LOjQ_9362>A\5k{B|~\|[9Y^(uS[íNjVhI0Ahӌ7T ~` m݊ž.EVP#ѯB3Pm4+"*= hlKn,37Zv~{C?x5D3@ *{ ָp r.u{\)A>:nNwHߐ/-~-ɺB0)4 _MRНulg_jz#tb2Lg*J##!T?ov $*,a= ʱ]`>?:N6w(ğnﭢ9R\66PaR2ǒd$8!Pn[$V2822嵓(Y؍BiIYpSz[ǭWqHeɨ^8 CCrqvS& Wn՚ϸ kFHh10?QAW庯 )nI煮(qsUFJUzKǤ1ò!F~:1*MQ,9ytU) R1رҗ7[kdӗ%zHZ&ɺXE|2Nbx$F4tsȈ !F*}N%MB^hH (J>dcK =z eUq<{e.`. dK5u}wT/!EL4mR>N^8%'jXB']mv`Oq;5\=6_:x\A~xM #ͥyA.%f]zeʙ@Z4e戺'36HØĚD'mBV|pro=ef Rj{dL%j+p`Y Ag1M#}k\u $NK+*@Yr^ѷ.!:2@B>tւ2o޸eŀbHU=,?:Hp (]"g *"}N/ oXm]u/Y@py ;2kb]nK@h*1řhu4h8N2A!7 8͐UDVk)×}$Gt ڹF <6@Ť~D-gґ`r@X~>GևPNY(csQKUZ RS?aw!v՟I'A]Cvq6 iJ-[ev{Bφk$b5;n+ܕ;aT4(r 2Ponj{_z/Wgfl<k`OJ'B,N֣5O,c˳F2:8h_^CCl}09,_j,.Ϙh9i*KC<4 VEmgʓ ͼ%et * j>@KR4XMOgTq3:vՊ潣̣ _ BZ8S{Shw3eRVj{6JJnj`^; V!]u@ACM`rɼ*:s 3{V>2R3%N)(/6-5 Xb%r[A"?5:F~"K2EQ2~l!;Au8,z;VͰz4kliY۽t*Cw#wcI|]~4>wLb0d7va Ծ鲓˚sk26X)-Phw-]_H38$f0Y2er%n9Xi 86i=CҶJ"rD ]vЎoΡ} pM=ۯt$+`rXhJ&~3_<$kx.J헑cqMZa1a۱kzz15UFY>ӫW˸Żh%odKq6]g7L}V߾"K|8^ ꗶVӊ:j!=, ZT)=A\ ʾn>_tmXI7|YyQ2 04;4JbOSqB)jr]<.,( $Qzب7^O%sLĎb;.sQ3C0-D4^As@9I7y0pV2r=c[;]Mg}p(J[ႉWMۍ^-GiNor+3? ӱ#s^y[.%4P_DFe Bܩb⊹76Oam&|=-_g[%`o=xSI/xT1զ1ۆto𬛾; /|IA=AK=}M9C,[MC"qK$Y$l4C5++7PCɧ4#E;pOtψ +v*@*d:%mZq QةS?݈5+tƥyւpIܕuޖmIC]SA"wn bod e1ij\5A{6Y\FvUs81}*w ?zr VO@>@.4WzEt^r E<@-ޔ\IZ] v:-cĭ,HP_ᨒ"J~5ԋUkYKư8%꘳!Ĝf:`m;rU,P+*|Du>\cw pvY98[V<h≨ P{ ,,-bU"½[h mHhjS{g\ `M4Ce Nׅ^i~{ɼ2|E(dip]W2yi; \\6 ҟ_db4MãC;y~M>Z?nL{c\kՐuta)rol1U>t/K( cgBMY0[#֭dIJD4%ͪ&xh>ZGvי2fr-,["Φga˝+dm1((w,h'iqQ@XF Q@W^B<#"Q 4c&D͎Jm[^/7,(K5o>V:by U'9^;!g`@w`s$Wgk=B抗BvU ,՚m"\WX䏛mQX;j]iX~ Y\gCSn3ьǻXS<сG,x=W]>VXL>AŚݫ1->D9#P@؉eHʾ?+[ϬW 熦 J/ER[Ggs"hX:(HdYx#zY/~U(i-tS7 kw?cmRPqg;jrI|}ΈuʂNOD Pގ}BtF1-=.ub .YqJ&'jMDMAoS|#LFlWI3X/%<8L@ /(+Zz1>ډLcEcoG,\`nzֹ'ڼ!,.3kw2w_wG)IH<"Kޞ8IxݲꎉB^)qH}1~:7hvn )f'qd>|<@ōCL,Dr`XNahغX!0Йy}k, 7Phk$nMw$4ϋk/=e@dDk-~}f+VL'Y -^o-ſ4H#brM3 *=t7^v%ǚU 9t.bϾFsW$!}4ZNꚼ3vTA4Ұ"PTB.j9?Ha‡ٴ!}8.Cc D,m@oaއM/_G˽;u.b76Q9L-Ͻ8-:ңv~tȌeּT1l:Ld)oH/>S߹x |\H,1`L qPM榹n6OkW''% -$.mWa 5ۂVH }ǥPQR#NՕUIJM'{(Y^t[ t7Z)GʖC`8i`WC8m+M6G^70F|p?KF^˩]~~?:F[y 9`̵abT4Xp1'siP3D 6 -iשv__ٜ"VVG`iQl Z.f)tĜxP%)ZbXљr3/gwb5Wߟ4u?%df|>~zf@$Xd+v5kUN~shA:, H~g v3W-(RٜqٿuI꼘yPXIk?;Lg׿eo,SbƟ͒E+rE 14,BPԯ,iRtG)&Li"9[[-3__(r)b~D"( Y~j:'Gg&7kIFwEl=[ )H9m3}%xq~@r׃.jڻy5A7D|;Ъ 0M5A||? 3ӰẨHh55U q=ESפ2ռ谟_Chx}A Oo1_Sbrekv@$[L+ ~$f)ܞ(@#-5:{.ѳtsw+=$'s@"ӤCTB_rGr%/fF.bqo ǚEu<"K )҇F8.X)rܻ.]j\_ד/kgl_~XN#60Ϸ;4\j80|ɌD!\>oՂOM׃VAfTCѪfM@b Qb9qҮJ)\KsI0U- _'D< nlueB7GF%5kWAC&nSi~nZRL'ody"D־~MPӾ!Bl=N_#ah7?S-c>NT];_]J +y]FO)4zzp3NIj\Sl-6Vq] 4 {h'4I-3G<90սݛ0+jfLW_6gg]ArpʆV;x9gK* UH|@˹$Q5E3g~~7I4yAjD~8p{qS5^o*m:7_8#MOZ08Xi?p9IjVc:uF$%HC7]CTWpɓ3oOR7}XCAš@ ۟TQO#u!̰[*K=Q1h5lQvLYLw,j+ JȾ2?e-v2e !]duatjb~Exbh!1ˌc|kzx[T0HQ%4Yh З\H1 #o I}Wh98h>[)Ζ.I&wt7ԠCoSw 9ӻoP*ӈkA \oTy V~a%5^ouec mW#N8]ha5fKGf^Ǟ h~84I,sUDr7F..(d@Fa"h!5섘 a݄R?AI;s(+vOgՊQ!mCa!:~d^G#G"6=ql5yuoy2;˶k; n͵4sTl$8M!C ?p㨒E tcUh5_~u[|u7`jeJPQuql~|y"rN7Y搸+D57Q&,8j3+p4 8UĔ@-I8"΄rsq1M7NRڊѥv7zr w3}X1 P-*|588vtG.a3~DNJ+]qū̗8اeye=1!h' V%d$c"{oΡ{9$=L.F[,_U&ch CLVK+8:'84 _Sn]3صvK5WUڐ:̣?Vw,PcvrgO>9i"î]*3̖E΅CXmU1}W?D[$}|GlH$SՠT&d;.xP@c$),b^!=(rp./:6wIlt<4* $Eyd#'ĥXPߢeaP1c]n0jc(B D(B" /\8GȑSaV/T튴ŏno\Rb؞Rs%`Z XCԸ%H_[5PnjknC㮄妴.ַ0ָ|;ckc4`^yc%x*A?)k1~3zp2S/j,7 W Oɍ ^7D?G4J~SEt!rG@$ʮul S_`A"'1:?XlT.; 'xk_~G;S^,Q(Oj̔PU7k; RZ .rfS㽌@LEڝ&:_P>A@fDIIF?{sP-̖XĔԗHҀi#/X*ͩ@1^*`ϏL:v7"zI`'t`sCBop"җ_GqC}qr`OH]bS676Nfb6DpCo=d'iLdKgligAܷTL R I["'Znl8 ,:Ihyx3':qg(C!Di|0ŒbU$Hz:mM78W."ݺg撝4 EGy#NXe'LtBssˋu2͕O`r?qD J&oyːy[s>5'pN([Y?԰vJ(e ^Dmm@)Dl_,oT=΂@SȄ`bi2=7t-bMZq8?J.)8 Oʐ獡mDό9Ѣ^WQLIvщ#ī7h:kH1S\X-K#p_:M~hěTDy>J%J#` UU/5e8Of>2 :Mr*utzA]Bԛf`Ɩ*1 TI :X$[)rYu *x[ XpR4lх .P~UѼ&?ZfB9mgsqRlV NKMWсv|Dy"csh>\<#d0BOel)W 2n7o"IN5p+Hy|q |7KG[}k% 2r&+ol`aDLT4э=B܁N@0'"پ}Me@Sdl]4Wv jՊ]<^¶O6ҮV]&M G9ex1z؝1oQ 1o4I->;hJAhY/tcrfL͞|e rUcQ3,Hxɻ)SV'ioRlڜ(O;]$/!G-?Zӕ?ԈêΘD^Pز@_HKg7߆Iql 5=&2ߤ 2 Fsهi{.0 Cu\yLiF ž}s7B???mvX֘PG^fr Q3,tc#lzYj''34H>k(5S!uB3eoq(-ܥ@#^Lso1a/©r0 "E]SWq~aG[J{gsbv*2ĩ==~Uu)k O,(}_4As-),x`kvW@:Og~C 46<3Zː}?}4rt[9"~:nkOsvb`Wd@˩iG'JSكңK?Aʏ(Hi~8oV_/yd`j)pf׷3^W?o-'#mxI %Ykp<#)"cXjVN-LOsx{D5gk&' U91woB{R7|B\U>N@2!D֤Q 8|qIEсRXĹ6tҷȄey;`vSCɮ1θ3~;'- g4x8!: pׅ9A7T9*WuZ:lu)_|gBL%z9'rMSQ!(r{< X]'lt2g&)/3& 2r=$D|Ty` v $u vi,*ES`aCIC4-3{7AϏn}du@RT㜾UVR@&aK9D5zݺ߷=Z|?cM Qݗ47~(=CW'݆-ceWl8T|"x ai=sf9͵Ê5IlbEžt[E' ^ACUV{KڒA1l`ikQ׀a[cy% X,ƭV>) K憳VFͽݒjx˖'Bq&Η؁=O7azzJ.$$!tw3ݺUVXb7}l058;*pmDy~e,B.wJfOila^1#>HqKY?tG9ȣ\e{ ŗJ%|Vx-Ӳ-#EEuoռx~=M 9FtfPvK//c]bAh1Qu[liTeL,sqh('o+!?h|tjg^*Ҷ)<&lcv{*49z7 `A *?DKDo}&9zRoзUϢ}y̥-0et$8}Ұ4;t9J 2%SA,I }KAkn(X1š/KJ| &0.s  B+p!^VT6,@ A7nӦ ThS !|h 6DjׅBGU֪4U#NM"u5낝IKNgJ!OS-M eAZpj*rĊU$񱒔JbB9NoP,~>Izdӯ'k롾UF~O)YǕ?D2?YN]Ƀ11^z4n[dvRbO& %J짌1W=yefTJv}IlfkJ ["e]^oVkͯG Pq4COb e5 j2^VH4i^?sU#D^+,H/Pq;eD.Lz?rpߎj!Z=л[Z=`I;_bOJ&I$?3ТH"Oִ|vLGC<4f>nl|Gm*X]ǶݪuqoHLa+ <"ٮD|a(/7 lZE % `G#ֶkjr8Q[*.ni+C@&V4ܭ_(VU!B:ǂk*V߁=z=`=['hf!SXrLIAK2\-‘B:hXXN"HWPm՘x+VW :ccQk j|I'q&Gn0b 66:<20|L+lTpR g1(Sn_%wD^mR " W6w.N OZl4p0'wmZdI):Urߌn F"tw§5GrH59lD\iX _ }٨f4]YzPwe]zwu}KNliWy+LIq\7k>C'_h0.^bz+53F\ 3n0R,t^?o?CwϭOb ɤJ7#-OVW+Y2-f]ڍd^sY6xkT~ cB-ޤf=yYaßvLasEV:8EX1}J#P9;VԊHW)e6Sb7z " kDWҽpږ:Ip`T{3a-$Դ={~'9q]H\CgXj`#1=鱒#9"0z N4Ϧ'+OW;H1H_;4p8[Q`p/0'@$)/!i2?M @z,A WI=*iR@뫰tB7[nh.ൈ;!I$f諉x$/Xᔯbaͧz9QgVQZwqCEecw4k:AGߴ&7Kw X+GErⲤ;u@_ep8ꤣ7mv QVI;de\+, 0{jb@Wv@.u^mY+Z?b:)'r ëgTrX٘YgS):Ed,)`U@)HU1E塀0Q!9/GE+\)^f9`l"_z[CR,3%xh`["ؐ;!TOHly)a qHF٤l&zCoqj-Dm. Nj 2+=Ĵ =..R?MLkKvĘsyCXO| b7vjVrP⺃n-aJH./-c=cGrW?ݣMTi 2*}܂h(,9;H^(/~M.h/d".2D̉{lcmttj-cAa*#C@ 8ҩ!4|7t aȊtzI:YѨzĞY⾡aIۊR}QP/*117HÉO&ťq,VuF *s!ύ\)X%=,yʉ+N#ٿ 5I w@ 5 j+˚waHͩ~,IB5a([рǹlNRc'ܻt8t\e l% $ J&n,?T <#_E`64Y>Z 9%I*_@%$IMG1S̓E.C :);;}Ê{`D!ztpAWf A0G ~_nσ΋ttKЗ1Z$hA;nJӶ>L<m6; s~I#>/bU[ "$mx\F)b/(J%&|JyfH8ZTܵ Dc E:] rc`h;,U$~};.[(RF9#uhc#U.ɦQR- ntмh)nM a7\Vq{ $rMzSg" ยWg0`U~^ U;;\5ǽj mk^;&TfɲVigEyҴ&W3os7fk 4ngIgt4{rK,";R9\ͨи,@ 8ôJ? @[7Ә0Fܭlx몹0[<>ñjRRW3l븍9s]V\r> I:ɿKϭ>^, ]ҎqYLyWy?$冨{i "Ц[|rg}TqeixP 5s A3A0&~g#|ц|~D~:]쌸 ̛0*} L9O*m-Ռ4'S\owtfeXih8e2d]wܫDfndOhOhᅧhr^ "';H2Yi"ox3o)¨ʜ7 `@ء,AgيZF :-)*@Ҩ9-0m͍=ȸ JL==?K*6VQ y<'PV"s=J>k5EYj9Tz<:HyjN5ȸr:{n2Zu5k3'B lURĠk+A|Tԧ !$2+F_š2;LpCQ4P7}X)-(~zE";/FUDGvYbtej/P)˻fqYܶcn13$y0XmAت^ xCt>fvitE$C.\a* mDuFlly[9(r~nla$mJrˠ>ҬLEP! e#>aoU (6Wwiٔ aqO')\ɧ sQpkX]&}tݓ` (?"n|1|~ux*i.pMVn@( v. }l  >YnkBE{YYx+-=P5)ax) "eWpqZz5f0`2<ٹͳ<3K0X0QdKQ9懗cyKMΔHG%+Vv\Wԟa?> &[9Z]ŰlMKU~#/9q2㈘Sh7c ie~&"ms#ϔy NueVN0_ FΞv׸!!*\FiCFa5K{NLp:N$Jz>Ut_hiZtK ]aD;uoN5l `p gUtv?!wNz|h;H(*X 4_"&0+ Fn[>5®m| 5-Ǖ._淎լse\uPh3}n&V0<,ާna)c o ;l #.]}fކ-~aCsPSnס<-]La;P9lZn H[85F 60!M-54x+&yvnM{ɮ⃖ˇ)sj}3|[< H㫑~{ 10eXAmtv#ځMͷ˰y"mTcvb\}ӝMк7򒜃i:G3 61<Aϸ)T/>%8JH}vRA^-XcV+|LFH+)]D{҂CJj:w 1=@@|4{Ϸ> T]ݦcmPdb$%%A3gn!h4{,\+[SKK5xQyǎfx bu;+ɫۀ[6|R#>Cpf5 v L8ɠB(4\TGJK[{m,~l98C#ߡUuv1^^eVlñ^xNB_;E%R4H1BRxđ"C8*4%'WҤkKli+uOl\55aoM긋L7yg" BE/o"B:.QiExSR2uD-3MkKN\]jkIˢn"ݘ|-(\۵TFTsk6mMװ.T{LN/ ҠEV 湢i[4 |9Jk+҉s(KK$@b1AZw\UHVu3"Iqۮ*qW 8{ L֘5QD o(:IdjIXc 5WAS8bCvg6Z_XߝDk "69~tDh8' _b={ҳ_v6Tj :uX5p~Gn,b2N߷3T6Ёcnnel0z3&`>XbG$ \ծP.O/E1ew[#rM_OT}7DJped@O&_ CB^O2*[qMfZRrҀh `<-8P|"l .nUy,hf23*CEx$L̐{H%E׬.%@`<ǔתaVutK1J惫t}[gKQbaГcpibLzPUC}[a3˶JOIdЍ y.PG_hlVVDfmW>c(v~tXbQ$prb~}3 <ʸƛV1ɧBrZ,NT7$ɩ<꺿Ns=8sYN^0S\4`m3ߒwXKX$ߴ ci vx wgҞ s@=TS?/W<0T6zr#ј5$?[)Ѭڗ`*O)W7Ud(Xo5[ĤLZf̢t au%=L'+ؐ!t+,zd%n`h1kziIM{uH -gk(?ړ̈́Uc⸓iom5BAr)8-k?!Tdu w@}Hq3 J;*'Za磩A:l!6B\㍳,5YjYilplAyYp&jK^/j2Pdp;a^c$:&Ţ?F>/C L? -|e= pIeO[l`obe$V|}xwO:L"UMA8s2LnƲ+u/v+.d$P-~l hE*貉OiLͬoE&(K_0zǴYZےhQ>c?Gq5lssT-Z FB@q+N-9d܎Pj0Eyd(mQ?2zo#bd%U`) \y@6SDpάɬ<"jd#Dw罹ݱ_J D!TfoMە*: p66K,{lˆ4z)GF+1V-V2#ۅ}n+{:oCR>~ϱZ`ϻbTWfv_ٞ2;e>B6VpDtz9'4Mbhay3׼UYY, 5ɝ Ys9)"`Qdg9m֦҄ \wCĺp~mg3§+aNGoVMȎ7y F-Ku+fj*a y| +5b/ΞnI$32.JƝ2P&caHwXI) ӡ[X;9@'`}&%$ VYC1I`pԏ墲n._ $%8e@MCAӴ(ߎC[r+<>xp'7t!EF R}t f⠺?n0`&LRБXHyg7:6ՠ—Ba>Z,w54"|I͒HRd6wXp^Yͱ>R`a?_%aȧ]DL-ԞXF"ISB$Ɩir;XNR~wkfOݮ s?5M1JRyN'X IODsՉ­1t -Q3孛'*Ƽ2VS{i_tKƸ0= ucԎ$hc+I>2þ5 a#TD:}R%x!Bs$ b8: B9 qR>d*({JZւo# 3.4c u vK:7S6-M[|0}CKz 34-O seVHב#϶z _B2}XO@h!6 c DADωFٶљdc͕KI Z(pYwC)rh[dR[2u.bm $j*t(W >@u#xV";8{gk]ZJp(Hޥ-"0^DsmG}8FwK~4mpSc:_1\fQH8 Sc+CRF,5""S` rH|yU[9;HjBYNsz]!h@b-\ޞE"iYbUX ʰxHs4yBu|~yOAϫj/hߟ# :YXaQ7cf״#CМ79`K@D%RB\~"/lkKkޚҔƺ1~UDwAmNip#/s@S9qr ߭Z?1ɬ5NsD$CB;qm;LZJa Ś=sXyVC+'ߑ5@MH`;p/M/-7t{[.2s^dVp RpjDs)g 6?]X˒HWH`- d1¸ac9>/F:nڐv?zrD;:zY8wC8q+  v?S26*[&94C=|27d߽Zxk%*Wg$HjS%55bWm)'j{r26x~ybC9QE8Nk i懥"WF)6)"]O|7~ꑠyL0Y=!@nXPn pNNlj_K&8U1)︪RϽ@d̝AKw|I0KlMD4ov߲dsPΟ; gdj=gE{*rA Ť-sJq]˯j)kkpܲڎ}twڒF[D{Zj\ӴNZ`m5S) vH|ɗoP+ T/b5XGh[t\S+oj k0FF|$w@R8v:mC-)Z1&c|+קYW|#gP1Tp:)uP~Xr|ܛ24/> r ;8^#)Jx 3F"(gg* ?UT0;x*s$\2qBn"@)FWk Ȑ{=3:dཱ{?1~ƃ.k;ɦ-ѩ6eޟI-u]J`D nBJ3n5Z5 (~T %ULh+ i1>b';zr9tgyJ}m%Ηޮ3E_1qSJ>$]]]Y7$f-K>gWw׭;J_qF) vt ;k̸5>&#60>&y-V RY!73'qoEa`*f-$S&_42ע^3ZS ! Xp~̤抸&r3FMG坡zt԰`zJ; s4ouI~; 8_r_-ǡ~jfM<Ђƌ-›}z<pm=dy-?ak&ZOs6 OkbXR2-ȌZIx}ͧ >0x7F8(5F/Պjl1*/5 >k ϖjqHZG$]TB"\vG$?@eqzN;c^QݛR۝l+wktw]MGdvT}2[Ra"^2LAj4jqq~nuk Q^h.ԙ+| d"e*eՅnI5ѲI.5˹F^p{0HKnBgy(UIo Y;^ ~ܱQZ7\6oSTٛ'lhz ӕ?X3LINZR"ɘV rDgriEzBbwM} bblʙbHW\pefzxFf$vc/Ơ|No3|q] Gf{5YxځeR67׏HC9|?Nojr `ڶ]cpL05pn@eٞFLLT&Y58rv5tb4LG?*ߒI  ᤎu#]P&Dc6PZf :<6G&V&j;7Ԭ4"zq. CRm*AN#(P!Ț4%@Kc3- ZI9\Ncj,M**a)^91H,9`Lh3޽DN=U+q_WR 5_OëtRwcPG'vNMkrg~hZ"U:QÕmu.2l:|OlG[6 ڨ58-ٙYXфЫP`{ qPw+-S^Ɩl#2lig'o ᧜ӖҒ%Y}Xnt UԻ(c)SP< Үם;( w;wVfյdZ`d?vC1/L`j}0P7;Xz/ES[0}Du(VPE_ ;l:H,<ъSqܾbhW^8n*dȐ@vsqE`ѓa^jЄ]*ċP u(d|†MNa;XY'Rtx,@|SJ7lJc\lw AkiUjOR.:Ō By,~h7(F11?tOGf+ָ~fwKd#07yH#Q˗IOxzR$`DFh+ Fa#dJ?E G+]2(0Zc K? mqV/;t wXv%PHÙ7stBsMszmø'fS'JMd76D+| Bla?Y6yOH^Cm)N{M/g&"^:u~`dnFJ-{oAHߡE_%@}.4ū<ƅ#&gjM3/ї9!noi\JRPʳF/,O`΍<8`պ?U#o1F5̬r5$K ^%,^Ӷx^&qyM(bl/s_p` wG~a`\ƍ)hEpxDAn*uT!p P"TC`Hn'2q(rpE /bW< z9GoR鋇K|"sCo73r#%^Σ(|z,׻ᨐ婢㮞SG˚ޗ2GIlYd.6Y NۛL-z/ yn[wqyǕG H+ADTTEYnK LW!>u"c'8%{bu#b`VD]_DYGfeTԉ> K>犊1# .RIŜC`Lf"'D,,ӷ04ޡ$ GgS+``*b%`wߞ'?}۷9QUc%铌+0gf(Ԕb~gGaoTW#mBe;ަX-]Pq<JB[4e[S=~xTNDCj~od0ṙʨs~9 RKY !'^x籒f3OM+"y:+iV`%1fa0g0l0ʡ\="0wEz#c&h_臞״A33 ^?IDʰ%bj 1U%Q} VE䘉^[*C]e~Y1n-C2ծ garyA-訸{hh%]=K3?[L_~AENN>!YBnndAO6TR>,,sٯ1mQ{ER+DG **')lneBja}O9گlcT[hjVH;0D?IdRoFL}0FpF?["MGmAXn;SуSjHKArZ~AJOH;^1֪4-~쭡' bix/YZ" \kt[C0]`:MIcߌ|U2.@7雸[7w 528 B/Qc4O# W/ȁ 64i`K "ЩjwςM Z/`>nlq<cBJٟR;\-WRimkLw$R |3-h4aWz{9*HY;Vt+tcFhmT;F pss?ċ*'iUU0pYr]n%\w&k/@|C q!RX'T|==Q Wpc _\5y/4%>.<_ʮ|x:E0rrkEM~ yUϷ,1p;xۯ4(#ŖV'bϊ#Aa;]YqgW4$oK dž抋*bDίK2_ɋ~{AtsEsꢅ8Pmc$5aKQ>|q6rk`&KϯEw4P {5ǟ¶2,\:);7Fpgj4B%h1  AQ[# uׁl6'֡n:+8#MLьt X Ёi :\h\+ZQjΎ_/Gfj@|r Jqu. Ho dAQtv?Y4`6%J+\mqP$dӘrE7Zpʟ}=eݲo1(0%|d l]=Bq{?_"zeR(_VIB@b[0. 0sJ4h6JYS#TV(ofJ(lIo?cҔW˗7b+6hwRL>`SDԔڛcoG4Zm #>'l)p״RPWJG1z ] lnE҆A$dUcJρ h~5\ux8M~t+D<4S1.ĞĤ;!P;o PNG\}&x-{ ~}O, '8l_!hMߠxm74cFxvAQomX>kCx@^`nb9]F,((ތ)nj fe{TQCBJiWJ=]hRa^c~d_ޟ0bUW9C|ګw;;nOFj˩͂(lV)a2("rQpPLs qD`EEa(u‚/zBQ}%6J5 fj6(|3kx>0B:䡌TɤC wH;,Q£6ʶ?wswO> %M=`PyHu9s+.8(SfWC77O|pu]i!@H,b=m1dneR;$j^:DB{psV\yx}f7)".7|̧J>0Tpˡ;XjkBb6qe ̩\+9' ,i[S+$5߲m5!%"w `e+8sN?ppSצIuU} =||bQ. 9hz`,_rIL)&@(vW`^.s aD/V7V,&ru~ șd)ڥPeDjșl7[Ie$8`d,H߻rR5_Q]шZ j4lqyax+nS[66ғi-<½B;bdaG>DŽ+vš|HE<sw?fk{x;In2[m viP dgY@.+^S XSc҂$w1MM7hNsE/qOB3]uЇu,MvX.r-w ٕ0L жHr ص2_ÌCScz\z䰫(D/{ddT" 뮓y,EC Pz@ ׽A'yNuJdɛ(A5 n+M_6SLy=.T;)PDVIt7:-/SNPmѻ2pk8eG뉌u^-wrc^BH9u}+mr+RCzXZ˂}rP,il#p 8n'GocĊ#< 6CMSsr/73|5avsVB*eI|^s?n *g(Zvc=$m#cc泯1<͘wo\"gpVo=;'ԴZ"lw\KRz'+%/`|So>oiax`jј{/ą]*7hIsk UT@0"a]:U[B.$RH-(h?ػT/QnIWLc-3/z'c䥆DbUW43՜v;`87 k;IVMx1'?[NQ%v[Ff=\×:jzBE7Q[3L]WxW#2.%Nߏ Ꝧ[LDRMXF)В: vh'ӹk\F`y|+ʲ:k(7Aӝ&眿Az/UܰS )Og7+YGqC ަi?YZ=~,dBkcMϛA{/:ʉR=d BTBtfhS,&)x7 L'Tӻ<4r` Qb\4W+/Y !|1Z?giwii t.rP& ,)ݑ䮂ΠV! &,”{xøCI- TF╄Z7foäHU!A}Z+^ a8e@:y_[U׫K[]8PB"'"r˯08kh b|$ GwqKǦ9ڜ󄋭]:`V W_fq)~S |`܄|}}#Njd PŸ=a1Jb\Nc~sqp]WS?RϠZoHy''Pͺg*>-@ +ϒEWYpR=\pn;W?]U9چ>%i!c<e<'zSX[0K Q6x}$ndH~f~3،0;e4 O$xSx^4쎅<u32ٗ-F\F/ _7I)k[`CgS{9 M*Fe(4JxbK7`DU 6>kT!tgE`krU@xH.Q lI;>C].׫!VK_pRt9#?.񗛻ZmkAf;"4#K|b*gd62+C5gWk/Az %qimг9C!K>0 JjK,u&3Os;(EѲ&:?S c0yc%&VM䎙?\>iPA%ceiY!8GJv{K2w]%lnzid?#H\4H6:WfY\pZc!2#dPx<>G~3 $?FFjRqXq]xb Q]L+VARq6o*jhc]`td׳ TYg3jNԁٿјn">\35- #80>ӋulNfcBas\.4uD>-Mѵ}+_O6oMY*jI$%*Hw"׀d(~v(9bh9`P"gr?Jͯf*uHaUb$rG$P)nzVA-ɼ"/ @X9~3O8wx;H*d[MYHVEy\{/d μLN:2`R1SG^<6r m!ucA9LHd0 '7*Gbi0/DR(v-akvQgGLBu%> ?r6?Uaok oLp~Lt{9NF5꺷!2$u&P3VxdQ´:K k:+KGFJF_"߮^ML3fF 7jTҲvY hfc,. 4]q Lʌ붣9({D[2i6p^ؾ~|9V1hBTa|3Y>foBq3O+IVG%h^ ű * wMrZ˲IP*OJO NO#V C%"(yyU5W%4?f lk{*d"9ݍl6Y{ A`YI}>Ҏ=xiVmhjU faUBCfn&n0qZNaTɚe\Ip'k~b`>S\|A-ʬ`|ۦ3<` B'f?u 7Z.[Di[#Q8 TC:m3&g+|!U(gW|݉Va4O-è[~]&ᡸ;;rt bC+:\ӡ<~iY4_GTXػ!Tj [NP.&|DGաQ L"ǹ%dWq#7nzՅi Wlj#FZ ,8K^DV!i&Vupb!& j3Lߑk`PVW~ 11_G5u@%dmȆE=ݟDUnoX}6v!MN3y-0u:SG2Euq09߯ RF'L Lvd.ORx7wGrJr& H\֫V4P)Qt@}j|ڪZhi3>"4t*~M.VEdͧ8שJğWäT1=+X|1EctVw/imi@3J֮.<;J;FqfYBIda)4YZfRQzg$jlg}dw]1LeH,&#BSְW5'D\B,>b|)8 8TeHAҔiɕ'jVfWʙ~9a6J߆a>nE<CFRnF{KEN|޸\6R{e/I\>WuIQ$pR_M |n.YWmNs &5!_ƙ&^k~ =tSRYZ[c3|aB44`qHYe$f} irjT8B ?9p 4Xif8!0pj!@W3rlYJ`0caKy ᕒ ָQp)EV=+g^q œLGe%[*;J5TH)»t`6B٠nQ_t߉mBc &>ޘ*/L p 4ՃJP 6|x>l=. "_[01H_H\vŠe[ŕ#%jH |AY}TXW<ݒdMjOmy~3&1}MnsxBd!H%b?Wmo׆Dֱi/Syw_I lU30ǀ]vۖ&D\$;[Wģm*QLD=6wUMZ&T3gNHcAEn}(.Y4&I;JoiDKÁ6%ͿCģ*z>IE_¸o^\hx0G;PЕVFnyl?!eYvL`Q}334Uh1-Mjfvug =˙axjLw<舿Dz[eQNsq$}@+ QSLzk±xWhrk,L tʽ (O[? YtJj:Ni?MЃa p@B6yp2E}[-𹺀}@WX@=žzE&~`D[ҸEg9;l KhC[W 21 n ٕ4CHVXgД6gN_uJ7l<X* o$+^ hH;:%ۑvGZ‹$dL4FXWN"?',ܖr 3?>-~<$/Htf",ٹl`ahk}sFMq " E⋍ݶ0g> 4Ȉ `p\}灆Z^ t2Ztl0g$=y zg#Imm8|~!) nQZ;|<~QL!s,N3^dZ{R,!l# Hp18{< *l;5$Pvn򩜑RuL=y`/7?=On\LUVh٘uަˀvR 3< !K|cV(mΧ!!EsˤֽGB"2 //gر77ҩKlg/0) c\'sTᄧFb7Aa"p9 A3p\:velkX,'\o?e$XE |徯1~)"JW]3[S%0.IpM Ef-Ӗ]8uɖ)tόԪUj i?,Ehx-Z_&*ŝ)uG4ZҋCo`YƦK(~eB,UKÁvc)Cu܂ɑ/yA]o7,Efv:P!Tl["#.J?^2L,~fHCуOPlIs/;`066ps7 5ws+% HQvjaI%wU/{? /e[2Xoy礼HX{lXk"ӯ2ExU8'p\f峄&Pf9:U$`#tzOB)k;T5'40R:ԑI Lv`霗B pO=g5v= s::p*0d2?eN\Mo]zv|k)k PG3 h]%0⮢n v8*E-|ǵQWyecC*>`PbAxwc*f`gPPcS=Y1t^Jˊ] j&}s̲@s4HzEB Acz%2맾%TdAJo) n*dPQ?[0@@M(Wn4)ҕ]id:$:~hGL{Toy0*L"{Dpu*W0xPjnn6&\]}I._Sst3, No3k⵨]3ҖafͽzDa>lxB*{#5J])?qj|匴ufbk'S rtaOiz } )+fRG{c_a\9AXvZWGr"}~,wν.iQld!(tl!>}C`{8>1Ϻ41xx$^;?]RsB󇧲4p0>]k:/g57@s! 08od =w?%(s T3ӪOص?z"# .\5(j7߹OC PR>͸mf*V:|OMh*>}- \(@v0ɁWޛ„uްx[jI|h^ 2J"N9IY * <'=ʍ{( K+lzI[TV|!j.X%?=JJ%tf-`/7DZ#D>SgF꟟O_'<+C Ԏ` Y J*;_wf"c;Y^N ח~gRFDE˨oqdwӍg]6kϚgR]!xz6Pgù,v=FB5zZx5G%gEڼ@C^iA%HZN݅Ht҆rz[Bv8}3u{/ɏ΍E!{1 WОk=m](*HXK;{d g"6v;s6DjǟT".Hw`_uƛBMACq^,s:EmIو !Q!V/j¶"v4L[%{[膽UIh)JJR Uu Đh&ql{8mŰ6khxP*~k?i2Aǯ{IJD T%O5C[ \Gy0U[kH^g8xR,-\ܪޕa`N ;t5'd:sh0fg)1ܣir:Qe^iZ y #VgAmEgRd@jo-vCrFD j{P3P!C[~.RguxfRq둋>mؼ€*{C70dGCX1lX7EG1}@|\wXfϘ+īe-n?ݍܡ'<9 ׿a2qwq~>=غ~ ʼn^Ѩ߻7؏Ə+5|;Ӣ)BLb͢/v[7W2fBYwK>7N)i.ũiTErbQ OSz{!CR8z't'&W7_oR4Xne=_Y9\6]2m ,O˹e*e=XdSO^U68#(W}E[ caSԬ O:hijt gZcr:-[D@M8㍁#;1?H6+mOA>uapdC{]nގ-?lI-mTn;DnuA[r L ]42#f#:7a/߯|1I[[bɃD]K7|8 hi~a8 {U.ńzEmvFN˔$zO R|>ȃЀթ+^fxwu!AwWW|UgUWg`yR?BH.|7zѹfi- t>4nHEU} |!Fbh$a?K9ø6稭| $eٿREq4}%Q͋U‡ Š22yavN?X(@yܓBnZO^UXd'G@gǜ֚V~ 4R•pt`c7T@ 9h'椓vmOTQ{!h'ò0D*@W IeuMS.Jgg ~"Xӧ9ȣ HtB'!LV]srƮqN%Z+.eܹyBh؛>^^xt-@V\ b,FR]HH>Pc2Ѡl^>H(=9] 2HyFDG`8;5+Ҍ_D q`}ө/LX=@+H| @RU41JU=%%'\u,z=nĆbUHdW"]X3ѽK/Խ,?,>Jr9%-Ry0P#j%m]J<_G4f'28¹NI$Wʍxأ*Qz> h(W1­b`H$UO|%#d+H TƱC-ƐD2M\ٖD}UQޅl- s#qGeo؃R7~&, fXxA$ظ xL%k]fw߻3:MmbA^yx:( ''%Wv"bXlw(Rks|'BzyGN. & V+GV!U~Z6dldq눵Ċ[2Mu|j9PsKx9M].p*Lt<7^{im1e(gٔ(ۇhMQ! tirѤZX5ϳLK۵D~k^ 8@Qӏ#+`3 %صXp TWx(NBrS -Hī-&C_2_=u uui Lc#)H vZ{8?; \(*K/GP <;·?z_;] f*p\~_ Za2NCtu\+{CNfRO`}Yv(!uJge--J{xtbN1 Πf9 `WfyJR*:-I%C8i$9bs97g)H@¾6fqy'ך]x473؄)<ĕQ'jMJeX^^};gdU,լFCLJ"PxtJE7h}DOa]LKw+%R")RbvF4J_(6lG.E"xXHʗsi [I MLh?uqj•˃i֏GZ4g€+TMdp ţGyRo!W-Kڡb?痨&+;>TD붜߾t,ADYSu/h*O&lR)Tdpǻݦ$}:iWzBuI߇xkeՉ҇։Sn5R\LϟE$US $)8ٍc=.r,iE6sRBo?-@{SjJlke;vF/gMg}j0?Ϛ 'KQZ-E@.z(Pa?@6I5ԌWU,}}Rf&mj1$:,ڼ\F.aklFQÌjv~l@W9 sR";kS>g[6| [3IEOV{?t%?JWDeD0}j7[PϏ2٠BU9IJIuDܝݒژb<xP0Ⱥ&z+ ΚτPKB2f$}{q] HpΣR[\r70J{zWw69pe <#ڢ\dkMqZ<ݟ+y- Ġ"99\#=*ނM8uӿQ![qIh&`NhKfQ.JSDF!5S5H2 {(NG4B-)>gpg )q9$7&^]ȡEW,:gDWVB}O@5¥q>q;ItmIt$9 MU͞@r$6. :2yu7-tAKs`ׇ>-(Tà V.X%3M&adR#Z]jra L:\jŽ^ĩND/4΋,d#hy*jh M /}yh{ꁠg}W;lcy KD_Ls^ (<تn8g l/ ! E)X{bg;\Ѣ\8UQEGP&< AY2 S\W0iu@}czpT3NB9[dp|| ; ЇY;X kڽlQ8S Qy'p<3<, "` Hstslҿrǀi;˸1[]ǻ$ ]^0tj>~WOKMvicZ)"c!ʽur|E8FVg̑ ,0Ic@uc՚Svz7W!ȫ+||$#"L3LқUM'LA9zꇨ45~rz0OPXԷ}< L8 99&b$*bˎSC! Y|jUxN{& L,YZ890V!ob"$Eƥ+}TkYNa۔?)>q ҝ'}*^}H^.?.,e+z{) dQT y{۾?Rf|w8a筳ږl}s(mDqr4XD@ASS,@~p]Q5^'nh"yjlp> XAJ %epCU;h%i33>X1ZY":)Q{`J h?F_ "jxGhgDžkpLsL٭5eSS)HDG#~ sVԴkW]GvdChޏZ ~G3p^QC'@\u巩Q;G2OqQ)*kȤ@׀tfPݯs1{sn'iq~gH˧՛wS)EO1h'x/!2֫~B%}Մ`WC -WZ# N| w{&I'q+]6xac\<4>ϴeTڏNk i|1p*mz3jKcԪy`ߥă]I-| #GPֹ} ɧa )j1fdwUrVM:ֲKy񜬚Tt7Z函n* >udzލNܼ/pBĻ 01=,d=Ϙ8 6lԍ+ kr,txMπ,YB:BV?<;ZtW ! aΙׂv>[ VSuX*5Sb0u HI01ۙSL."s= ƾlCUPvT~Q-0HP"SeL6K~;0⣠p<ޤ;ee6*D*wDtN(dVܽvxUb9 ?8hHP^}C^ٌԱl3a\W+SF^N!D\$qjɬ->J]hMvAcuBH@hsC Oj8.2Nx/$ L<Ԉ:"m% r*Λ5dV]6k [^~}טZI0"p1@<Ed*Vܽo+xtZ ph*o@d\B\,7eCONKA;WH|^/ @E\2\J wamQdM_Q}-clTZX7u8 a%e2up:38o̻^$ o!wr2(6?+$=bijOV%bs9+퇮RL Nc-f‡?Z嘊BO={=i2B%tíUæeAw3rᲅ] ؓj +?s' U~b17^{~89_O!d/U؉D B@߈~lzx e I;ۋ&j3?+tk6ahbAW̜TESaE5s Fl<ب\ UU𸢂6ӏѺ?ƗQm$McOŤ2 ' RgSi: Ę͟Aǥ_j鹴|Q5vġh6[te7MOTG^[mzNH0Z?wT%ynNuu}.cokl rCP&rZb(lrO$SIjfk,T?P( ap{nƆOJ>L}MCWܓByy+%BKx+83rmf[Rq,.(;Q17Rَ0z9zd, iKǚǣ. &l1}mܻƳAN۩0(,r99ۓey ̑ 5cV֞BRzJJkoCB},=wSn?k8 Mݖt ;ީP>QI(k\~[A@t,d:S1isSLiJKuX6Pr)phU:śOlh*`܍F,L`/gA@RP30ўpxdRm{ƷD{?2?Ek-խGZ8$Z61aZPѭ:3S|uTÒGr0d[g݂DHz杉psJ! EzͬsY*Bzg'eN)HjI{t^Cq͟C8N3y[oĺvNB{1IւC6KpNֆaj#DL D:Y~EPf>H'تi-;Yc$^l6afiaײmȹ5Qnb >Ujy` %py<^INn?l%`8g`.-' \e@kTL Kxgn~JvueE>f"p% >?C5olV)f9B64~<_>1cC)]Y)B$0\`3K,=`mHuyr̊桤e~+5p/ c Udx,+p\WD(@h[mx>%r瑄ƌ`O!9}v_ ~8e-DnzF[H(LKgM i#h۷k̪v @< ]@"\8…Yyփn;oMgٲ_Zb2H /"j WV}֟ %w{\-j.MLH@1ʞ*M0c  eG\} xC2M[.ݥ/N(ϳS)V+G~U~i;Dʧ u ?/C{bA2 O:ܩËp@ŏ% 3:mhH3 {gN/@ہr~v-&Xԩ$_ĎQZ>2oW ?ٻnד /&rm$ BKiBbDhb[1j7ϒ'|po 5`AdҫiG_S/ÓQa{:/*2rS |d)LxvYH,Un3fW®Ȁp/ˆ`~yp$V)piRcV݋n-q2 A4sn뺛P W12j88F .YSa*cMYK]W8&tl_U*X!^Kydz"?U"w)ZQ{ PV;~»B"#Z~0F iZ sI"J } HSꞽ2Nxw3k늄@kn-~a\up7-QBd-եuk8Kxlb/&:Ejm}+1sb{8HD}(g9ݹ2j**I0ycNޤ3 *gxC;F hkR9l$0\u !qκ FR5O@T9:@z%Az6ͱ;Ѩ{Sju,bB0d}֙4X[/Rd'O j LWUNC$xsZm91HսcW[Y e'W]Zљkz3KgO )׃{ʄ`T7-sc"A&GǿB t>("KxCP5˥+G%mUﮫvecIHƓu\SGfҥ3qȝPWz_HP=c&JDCĬ6 Xj Vق42`8hL!2ۺ9$MY"m:Z닠|c@ˍ](Lali~fb1k -r8MUiްI( "͔A7]qԆNTSat0S-(4>o}C1~pAw5r-n?QbküDw_\'0Ez3i&G"#{B .E^#4 LjXv@g3H1Gә8̲-7k ?[BaC5gϏN]wmb3y2(m:f{[{:HEʋNwaAn=o{C( DyM*ߞl^+@yAPIi,;]R0fP"_~M>Haaxg#>/֦Ԍhمr%OAt̬2I/x=έ_{RSkŤMү{ݎQ/8FckD ܒ3k^ 19$3q1V$vpɩ>#U}vė*J?D̯:2!CVvu\pQ7#yL8 W>3nlL aִQ`'FfE6)7lKkJސC-o!]ƄmY21Xm[}' + аMy2_PeԷjXGMUiTHAzGs3T[4 ik:DU^_d9N^"i{oI1;h65OgWRm%JdN? ,xJbτNiRZ [,.Kr) ~["#U&KypkS^vRoeQ_^x)ِWEc\}v(sbv/"G?JsVe'_)mlila:~R=BUưwjCNwd_:pfH8໲GW7)T('S woւA߈o?y(#G'}yeg cCbPVL}+FߡĜ}n NKoh~cmũh}kbc+QȋlxÚ⾊6)O]Yg Éuwb#sR>-$\7? ->D31ۿerB<=l*JG&nYL6x;8M7DUcy6jR7?^jɰ;M͔@9-Gן^l\T@YRr0qZH6'C*d.tˉs ŐV& 6EJ~3kjʣ:I3 +:=AϚ@+PuҴ?2F( h_ÙdR>EE.1&a6>6)n**$4KSމ0N-h^yS~So^?y~_~.0* 2 YԐ*լf}\*c2|-'eD^ $e*(ZkͿ󁒜H_*S4)E8@g,M H7CR/_>իP6?+3{Mݵr2}kCT򿵟{Z<0D>NPΘhY5MAQ9k2=87o (6B8HK)_1($&0o6VJkEI)[rGcOMdz=/oG(8w"W<RQPO?z5p[^{AzH|0 ץ`jxh4-2[访@z!S& - y ~Kb[ywjIbfU.H`!hV j94tz9WL{TKy~ɨPֲ&ЊYSV'ȶ3 šS]F(N>ZJrxKMyM=›+ Qu9syxf-% /Q\b)Y Xk(tFvUU|Gm<-QI{򎳙 {݊s@q:h;\"&1t .؜:{M:rݿ@C,撲+c*-ξKgOSpw FOLyc΅0)g?ɂΊtKZz7O8$jYF*zٝNkѓ fyRؽplș2$Y.~T/ YK>)|3JͅE͆Tb],-E1eց-0@2g6kjf\DԵ$:qef&6,wEלCC]EN| af]u(e_j0D+HCgJ=q[]YHE䝯؝vV;׍7ߩ=:7 Jb-X@)Dy"٢=^ůE ZHoܯ]f4,g2]]9ew.VV|;Jc:9}ZW l؋&ks!#@%EpBW$&][-#li]y6äQq\[?G/Ub^; j4Ppu۱ON>oZ˼ޯU4>l1N2\7po@T*z]:e:}P@5&m z]:nb. as\ӥ!/;m׹S,4͸|I5ߡVt"g6}娊5;{dcw񊒅8Z/0Ϳv aqI(vD8~Rvq:|@/9I Hi[DXPqU{G Vc?XȸLGM,@%wV5Dapco\a(KfC8i7~E RѦDN-vL }GCpn5PQS!04Z6%a,!rA=Ðipq̿g4\yNDS` i+,4G »Ās~XwJqn+>Qn OVwR&5.=\WaUZ" A]%dxZ$BJ/r0DnfSഋ8% CQڱazdx'6po{.=퓏::s&D.u_EON?Z}c[r>Tз"W%׾»,&:_6ɏ C]P,I{`6:}Z֘N$/sVܧx6#m]l]q̕&Jڤ,zsI'ή&7Szǣ.A `" e -5=<=y2W{絤!2.pgH¡Hix'1 KG?nfZ"MR^$^{zC$U'"fݑ5RmuE2tQ6| O9Fw ywAM`q?î'@sl2= Qu]C4jM۴""Nc`1%8zxG0֯g)nꁢI9gҁ6{B6Y2 H/tl)HPw}d4Jl*}¿E z[8DiJno8T.0ٛNj~dip/>\"ٴ?Ry38=XxBD9@Rp$Pl5(D tqqrEqA=[Aʧ3 n Se ]1#j`+HT Jtr;lDP/4)G8^Ǔ%X\5  )K&K?^ _:Z_Xš\ͼ 2D4;>61>b!"(nl#tYn;ӂ{>i[vZBEYuԁ绲AqgpS`b0̎vDAzĮ 4xEQx0ŠF(?xn?F:20}-`1n!uwwmZP>VxH?e(I M_N5> -r$J| . {65-u/}<%l(ir[Qj9 誈w`tx yRO"Uce(J#'\o#rс;jU7䀾@!Ӎ8>s:KHT '~iUOvgEԸ9#0M,wHZYS<X'Q*%drLWUq5h5AsJ!KIg3hAE%oh uMP iz0yW.`3rJkYkwbx XW[fRXOe ~%;1xH5j࿈9g#4y@BL$mGg}?#xLp~.".=+4 +2u BZ5ɋ-WX#*?~iDX|r)sfIEu/,U{ڕ@4\GOV̙Yi1Ρ&$gc5r;yE/Ӷʅ7c]W͐押>b/]oZ@w$xgie\}< b\&͠,܄zǏǥ&bli }qVZNW1u_, .]v"SCHX&kﹱcFY!dvb]쿯r~'#SWiZoM%,x(5do%XÄWGZGId!DҌ*rOx*A$ĦSOyZiقП_kY" 5碀yuH2 *9~Gǔw^}џWCo%ET3&w&'Y@_!N  _4XhF4lmK u5^< =2%t-Gޖc= Ә:jcglpuA6ѫ{–oo'/jRixYIMX6@ + r4E7ȽIc𣲯4=Rv; 6cm66 Y!+g̉qvmx%Iƀ[Y?mB'᪯&8akHfoaD Q (mTEb ]h"Evrה_ dĎ}/(?<\T^7OnLȻϐ ScEE$C׊{ ~L kȪ*Q9[7Oð2G4iP3 ,Bx0H U(%b9)HUb*5-";8^_dgXl ".Z=1\եS +sE&ϓL2}f;y]DZzd(t""}@]b׺s%\^yӨQb+aNZIYFֳrA=+Cdt#737XWL sfhdxVS̿`K|(fb⯸)LvFy^h ]E)'&4/.S_fU?%J Q$Zco1s*K(c!@f;m[+U8Ecot {7&s- GiC7a$5a\؉ܘ>l~ b 3.zO\cx $G}elܩ go`2X9XT>ϊuT#D;t@F *mI,$eNvك\?$t% YͮḰLsQ1Pz%Ԉi[ v$+t,CQ[8{K:8^JwmҢV1C Qb'c7os`6uyz,UzIkV&6tdڵr7,6{VS! e򘋯St=y>q)*6w{`ݷR[)?-EX3@s;őG2%n=\43%ï.vJx >9iY˪wtt8.Ø/ 5|!iZBK^ې'!jn/Md {qT7Ұ) fiKԶX]˂ >dJGЫӪT{*E\9 KoO/;e0ֹsE#_x@fhY,P]n  $`Wi1QMA,瑻2?p$hL}Δ0|[];–_馫މ_[)$-+'I`9ad Z3[܂!7+mY &X|1=It@eR֨Mŭ|'3!cU*ߊuO.&;$ O0 h^ee na)'=xB5Aϯ_nM'9z8FP-ߏhTHm:%MOYX7#eQTd8H`>おSl\pWQ8`I__XYV:րpH󆕫mfxKOrCY6X%#DPܚncihx_\Jf rFtůATW|'f~Gba=t~sQQͰS| F̮umjF.ǼYn7x69aQۥ~`!]DRcr NssR\y.sTdJa{0{:>"VieDB|;nSF20["<'.ɌQd9S7/M(" hv~Xvdm3{م-T 7*`-7`/ aڵNUiZie=m(cגxyIR rW.>$㥋 GY'p!ʝ$W1rpD=ܠxrϏ,+ПP/Dtӂ .#Zw&[~|K6K"\1{;`lⱂY6HHs.֕Gp,0U?DhBK@v5 }J<me}M&RoߢjJǍ[A_#Igy8uf®wV*f}/|zgM:AL6i >̌?ʪ3S:1krۭ+,l 4STl!SCGhN& K>Mf B3+щ4:=V*T5@\TGӣgLM+PHQCeq 9|[*xNiKx1W+e_ԤӋryByblfcJA|Ut\E)&MZW/JreՄW}/I%i D!DajvRH~%k3_GTA?T Хi<3kE+Xxځ%E"[t'}_PA-I֜}r/"mux\+ bDc"U.ǰP}]}_,߶D/]Ebw3koخ7vgc=jkL@&5/Z_L@&pfyl%pT r.4b3~_r &j?弗{H, 6@T>n>#(oXK 3Cq;2t :='}l'Gv$l'/ N5,27Rw!%!詢A`%m#gw"[G儉$.$ ,pP\;r=w[{wێb!~d/Ded(FWJыuiwNRYܻ)w{=Ϣa~ ^XLεypc%YY&dS|9\W^dݶ}l[BBC^I:p C3T2GS|BF$bCGqkZɩ#Et]xH@ ߭vq3,0Sڂa_qjDcwDN-^S^+s͝;̛~X%4mUFq4C74E^$WUr6A-= TJ/A D/ RBiAίfX7+߾TD$+7~yiIyȲ!I@0$CgFwY^(*PBPcJ47p38#i. ".FXhr+ Z#A9p"v깿0څu{h9 _C[qo*,E{6-15} J73˥M|t[6o7ٚ]oz+Y q)U]X~7AgD 8G^-ʴz)X;~@Vxε`Sl$ct5Rɉ' RV^y@)l,Ȝ!yCvpXw9]fqJ+ PQ5<)·ȊYK&XE;K`hΑgHW%ܦOyfƊԁg^ll,) Ond_JHcqD+N*=oG?&Ί0UJ!pjSN™fm¤c_d*:!h" Igb(%=R|@}x`Lyn ~JȓYa%H=+D';bx[n#a:iWu!x0=u@)joco Nv#fde4??K`isIA$*21%'!G|Ή|-LP0t=tCS!n̶"\T_>vczvð*[ds#-7Ć_K٤ SƜw$Vӝd_{/7'~lKGUcP1=H(# }[e60:vjs&wn}wOnS! mZ `#R,C8I=\o.Eo(Cf r[ޭkCSwyf캾ԷPN;_bϺ1f$'[0bN

/Oze+J% }-WE{Þ,/[⿂Q:#z|^ETH/XpùTn>]`tbM^Bho#c6t[qoq")rV _;4u&6b[+/]@_㷙hGyoqXν/A0p!8=3 ?+@~  ^ĝYbN*yԤ}("@n4ӼF;_\-8 hw\Tߵ bDE/tzz-|@-xՠ*VZHݓopi9 9s]{@>Lo8ه:K_!1[KV9A)̵l禟څU+\H~%"xO+~ Lۈ`r>a:v1MwNti/zX}u/~ats[~S_pu4OxdyDXB/:%CF`1Q%1W^u~l{8ul q%]uB,uBRTHi7z!(X'?΋3|BH7 a;bb֣uLf)5!?Nu1<[%hFKe.ʌ{mф7Qeוӱqb-4Ho3̅d/aH?}f[_)Ay/7DjYv;8 D&GڷW+, ׈X5_}>h˘Crw$BS0VHjx"zq.S(nt;@@.3Ӿh;.꾸&V-hJ5WߢYJwV\YēXMV]n,TIxQW'2zlxo^>Té s(Φb׉xkǨZy"vMO_rQߑ@t%f/Z܁~A9!##uQCq5tMo\WAS }A~AYD@QRO/T M%k{QqEJy=ݍX?O 1rݸS,yq /hɒvBl,l$^ɬzGs3pGmj)1ʛ/ EFʃ&ݺǡسg XQsRKp5n̻dr7㜲 D'"a 'ց|:=lvq,Yyxus &b|@*sð |7zU-H6*g_\RL`@%aͳ[uI.GUG W#?j z݋2SXoq%hqi?!E:*<윢B%S\h1#7v}Fqns",)Κ̗ W |6_6,SFL SDƓ9UEZf=BC`+9sK-4g6x ZnGRQzO 29e7p[ 9;w(*OUDۋ )DY?thD =Ћ%_[b7i(6RР%ƍ#tw\!<Z,)1.1  w@uT((`Wk4UV֞ X͎uyxgW*}7:%H68 b&Cb-L[zDnPAB"Io$(.wd})_"b!$@D޾>|ltSP4^qon5ޕXkgx ߫\}7.-e}AgbAK*C@~d@^v}3du0D'˵%Z&28JtntI,Wu빫{7{uUy>6!_X\[r+&E<"/sq\L@0J 3j'^LtvYupjlXJsh+AUqNa9$ _ۂzkX#eH-A~c྄B~v''U8 R?N{W|]2> P⨫@ڳ$5L\"xfV-O;x K^h@H{= >DjU5'.eZPOM.7_ݘQfAQ;cT "dU,-VܸHz ^P6U ݢA!z\I ʞj NI1]Xz}a,kڿQ8xosUѥRIຳU(OKT (A՚ "nk,z;G^@J<ٍ5}s{xj 2b$D~q~qg!х1?ެ EYPjWݷ?2Y/ɸtdSv^Əӊo^X5}Ȟ]E;VLpA0)e2DƋv0<0~~g$m"^*8mFR_aҐsue٤#Bv1wCfqշV9 `P̲楓6q-%k{(5Sofhȫ2wse,aZ,Kԥ93RZ=aLu1-"u) v6BɑhS0/m.#hb\eŤ=o-DsG7VWsa\T6kU |h!g8Tx PW ?6P"yNa=@GΩy`=Fwyi6{: zX܋OA튍sqz9$e \xVdv{<7rzdRיpx5 7l!6sY7oM"^284O~Y/5?\(ejz%D{l O] 65|jarD:BR"HKkZcmYc^dP\V~a1\տmIx]=hϦCylX7/D?:ķ.ZUU6)M &7up_5X2*Ån~ZY@Y$AE=J|2Gs+gI^#;e>sG?}ܗl⻒c)/\ [e#M57.yH R{Onv\iTlC6T:j/wM& eDe? %6h*$ÖtCH0^mѦ,? V2wJ2-݇*\JuBP=2mu4Q?ݓ`7B}wbf^c=4oN W5Lrsy:ybȏ#xA D<ٲpײ"ëbVIt2;OapEn2h`TG<8<,=H/6l0ഇEJWMA1#Yc!6crC'Uc9]A}a;dwqMmzJ=ϗu2l5Gif>=A1^QZ8p%@]({03p„U^DPVǸ1:jkurc{?}Vw$Huh> `5."?eٴ'DKGooc+"JUnk01vUX3Nl,KOv5=*侐]Tm/ލAh) FG g9;O_,@ Ui 2+8[_[Me#cm&Q;H)G$50I5TS ,b[aꮈ *m8(yq GseQަ!NliprF*%\BNRʣգ{9]4X}KV|}/L 6 :bOX8E@^>PdGV^OӻA ;nc]WkCm-=њ U2 M&Rbzz>g_fR7]B3+g(b:r6(Ìl[~Y륖FX `) pUg[{/oάJ]˘!-ӸYjZ21 cz"t\kmN+ N ݓ_X"3We>{6?K0k̈CIK۸ݟ$niQNFCY-ҘO\Dn[/Gۦ!6V|Ƚ-3}N,T|~9XvY5[xyjڈ /׵Z.Yἷ܇xl"⵺zh0 Ae. 1Uj6&gmARddt53xe-^AKYnCD&rn_SnCJDfA׋pd4=fD(<Ɉa 4gzQ35o#!fÔ-+9C x2~+|ر8 Z2%cb+ӻxi'yrÜr7J@-߻\ k/R29;XiXR`T'Ef⥚`LeXyqm"prꪽ8=5'(˳ [ԓwC"m\/D0kAS0l{!w0l Գ$u=-pQ x5gF8vq,>ԌQD)?- ۺ0|ڍ><8 ۩BuawAύ)l.U-f#NӘɤɻE =;OPڈ5/mjLT!Twksu Qj9r SQ5r)|Έ} ]f4Kє%[pɡ*Gޒ_P쭳2)y7?hEԫ#dŋUtk"#bJwAM[]rNZD!s5N9f%1 _ٱCta(l$G$?O׈ؒb}۞E [_LYȵb0eNoBDe+}C|w/rKtܚNq +R+]#vmd&^v[b1;tвMIx }0T 먽3-9TX+0 x*`W;l.Bpହt^`_@XjWs1"~EZ6h&GXچ[LAcLw,zr. JrjӂT?☓מ`T+\cFU+,EuΓ hUpFdd1kz8Ywz@ևY'i;Vuiq5.g( m*#ܯY{P8 E2V3ֲ6O}F~2FBo/Uic< 0o'ℑGpjdc(Axc<_lbcfVd:!'z'be\@o:gNI#VITq*:?s)~ bAE0chG!do, w _ePۀk}E)ęCf2DԾB,:yPBN@7DbJZM]=='\s%qܫ=&>n cNSncض a}(pi@(QDuE nG-yuJ m֬.E0خB7 Ha`Epxq8e-xt~wsJ_*N d.՗ǪL0cc4Ч||k=l X,%my;ӂ+` A!,NA뎿g GoiEQD m=.ؖm[B{vFhALÁ5`N`5h$dE|GpIڲpp!%$ƲL.P*J$_Ts"=Cdwl"4U1y+R9Q,I{S4i<Ӓd`l0y!m Hc&TÙsS"] nyet|S쐹χ/d!6yr +iw+ [YS?׿QN+z2ņ7cPm^$IH/zdg$6YϐSεW:5M Y`'S<~ً9̳7! *2]*F"U c.v:v{dF|.|&%N獽P 5S4^*G?&MҏE9n,,l2,. ,l `@%:`&0|UG '6uF"bX6XS XW,,ɟ&PX{yA᪂LӀ3$.mE/a~rE\ 0u#mӏs 1T [d&=n3Ҕ&+Z Ex'ܭAV=36(2!zIͲ:Pp1';RfRD?:YÄΤ2b[=ljSowʖ)L\ %wL H?օ?M7*'&xnkO#;nCљTGI N}I)V^D K܉C|~ gJgoШHoS;x* -׉+K^$\oGS:6QVWㆹREP؃yb 2FG{!}ԜRoRV j~u6dѷ캤YCǍ|uqU/,au73q/.][KMy yAD$cչ:D@).&c=r1qH+GFo_bJ,LD/kx4+F)o` I+̐*s,8tH[wUSt(-l #1($ Th敎=a>te:ݦnS:q4a}y[ TF]L֍ȸLo~U&2`'4W%A(ek> =( ]Y$319@xIb>P KSe)j@(rٳڍʼ o,Du{B,*QrcN O5!3x#k沕AT Esu{@=5%K/V rkOMb*XE8/<Ӗ$VU(ᑑ{%;A,NXNuRk6@QJCi7}RR+K)=CFTXrD &~;2]XL&y gU=?.3'[ds<$[G4!^=4GV ׷ݦ"!=|+XaYl]V$XL9t&jٙfәꎖHMh5^XtlWXQמg+ρbaw-~ x3'ӟ-\jk0m00fzeAV B*'Sum[8KHZԝ ppYc.ےg@%ks,)wdYy+{j/S"j8]ChWw8O-h'"^ɧ7>hcaR7t.-y<粈5 }M7rۚwIGBͨ$2?.ַȧ_ Ѩ6/n[I̗Sxf?|pG֒|Zu@W^߉vܹh?Nb7zy+Y_ɶb roexU!4EkSj^yQp5%B w6?E7" Kÿgt54V@;\<0gjB\dDxM9ޡ4ƏJ9,?ۿZ(@LH-PTҦBp}PUSdr,+ڲת064# 7\`q}7س߼X/N/k'|8 w3xR_/ caΙB,z}7q -a%4ƃHu)&^*0kXR=Ae"eځüVr=ɥRj⌫_FF)DL&ziO=DqɜtB181ND(m\|gâ;WiDgOG.$)}w. o r=mW%hu&*6ĖPzdoPW  Viy 4ρ \tc_ ?x)0 (3`(pc2zԊ7C Rr٤qoV`@ԢcbY䚋G#X*)\xћ脐;:'腁R6\⫾9ިodQn[|;h_hKrǃ6HwzaA7Y0# -bZlP^9tz[JY~YLX0#6jT/и0.͓ZNX-W1 +P(apQncږ`_658^+Q(qՂA/Z O1ݵo?"pêqc3"DJ AiтTaEJvLĻ>),gF(rUbCq$쇄|CH<a: |4_u64֓X;Կ6snyr;N}9У9'oCt~ư9" O#G#r)8fIO?.LXF U;^l0IzomjM q' #d}Uɤ<7[rY\`j >ZCVuKt0yH&kRnVy]kΛ7_XV9ӏk i |{JB!k ZaQD1kAs:h`nߚI) O`A[V:>kP If {LeB:їjpaAXK?x/ 6wn))kې\i V>)sybf+E~%u'2|k~E9~%Je 3o)ZHjhZ? '9ǩܲ|[/Ҝ ?  W'YiYzz'S^+]FW;Os|!xNj,@JKz[tZT.ϕBԉ=HL/@[˝LerCqXͧʔ>+y'Aj[հ콼<vш#Yc^'\ɷ eju&Nhxt3V@}et~$B`*;_|%O;e%"`$KDGɢnQ,l Gky p_V,1O-guς;+Rs7޷xl^x_߳W>6&tuc. y@>] !㶩Dzr{`PqT5B~`Omy`o Ս42wN7HaMVb+3j=e\R7լw%jmams$u׈-|="w[uESAPg OLp@9 ·[u2NZʚ.gNhFӦbP4G)L68R$M>fg}y#q6~l_kZLV&An 2LC*#Iy!jeJ9:Hrr9&vkefakovyn@9cLp@GMdBQ5=ӄSڈ7D]_+~A!\=Z6HvŢ^B hnIc|cF@񣊟]/2X8=,ξ gY0,iY"4P͙X L,^7cPSsMaM>i{C}t%1e8ST,Sj{@(3lJtBcph3O੉ay;Rϋ.UݽzF,XܙBM}6/6|irw~Io1mߪ&8Q O2C X=,t)z9~hK'vz=䃠MOL|.~fM]C;+Jo &]^73zBG`ȴǙ˭~ h[~|$@v,voI "#՗0v^Dwj,ΪƖ4ku\0Pd>=ubG.0OdP"OC`6%:ĕg>^4ܣbV4/c@O W W,yX"4w܏/<,^,mlcXUIqRLT*PDy/!4YS)X=Z6Q,LPg_̞_G.%/`uS.yY5GEaàts=&UM+2jɂ~_<ؚr.c"Ȳn@>g;`ʺ(FoZ2_$܁54̈́܉I\D޺ToD <^|1^LwA=uÌY< $=Ci`~9 ,SKxP:4& }; uhu=y554H.q'Ɖvg@*̩vIK/wMdѤ8ΧÈ=3TIA|΢Irpm<R社#QBZ׷u.8,E C0j8gćz1{,œ":/6-[؀0D4Jph`_.X)Bằhcw0cDb CTeܙ3LJûB , ?D }?[/Yu-<+TW醅ߣ!a=8^@b r{N <%B)sH7lJvс7a.3MaDH .^@E MiC!YLJU|Eu #6[ O0_XQg:8m4E` lϭNQ^uH]PW48E]B5҆'c&Ig xXs񦴜 &`\U!ynV؋ I[5ڒ70:Km({z|֙?)JNj JmĀ䤆JW)j?^ 7GpreHE|ˡo=iKI iz β y꺀Icit3+Дco l H2 +4eLe8ؔΌ*qSݡM#>xBMc꿧d@A+Y~ʜ)P0I<$5w9m)s3[l9$/p#6&`qzPeL\ZF" 5߲Ѭ%AlNd9j>̶xkʟ5AF (è~1s@lJ؇@LOw{wpd;]ݜDK,ɤO*}͖mvLˑފebs%kx~'E`~=9sRXL!*pTM!{̖tTW@iK%C '8ZdF:`TIY}vǂ ջUCQVJʡ.Fd ҿ9bx 2K`D'MK[q'X]FֳȮCx8 A3'/wWop'"taCTM[yHI4YĿw& BsB?% ۹6G\LX6kqd=s>Q okOGeo_ '\$*qdic45 3BJnYq4 Cr`>&+ ǖb/ӄp~J I-VNuk@|U|R8s/J'H#a}j-,5pM!+Ū9fU2̸B>5D4] c9*KEų z:$@k,,(J &V&/sFlQ'4hlv ⁒sUn-vHsGx۟KKUuL[Y "{Qz WWP}ܗu:=$e[h[unAL p}-`TO}`;&x]aQvfe5V^{wӍA. !GG0=rC8񆹈T+ip{ 1=Q{zZ:V0pB? F*6S;YG{욚Jxߒ&|&M1Ǒ4\2;~Cf\aWl{ /2ػUϣF*Ɲ/.*YC zuɪx4T[8$=S\@TwMt39#٭@Y ;˵`P0qOUC g6:D>1vi_檎+E?m jzwdӝFG( <쪗~@m XOzgT&16<b@n,>0% >_l/<VM9vIuYXޯ<@%38Tn,'}k_M!epҎl1pYd6Kj28c>ko1(}z#6OVp40I&f}\VIF@KːԟJjH4k58no:Gvx`A tLf{.Y=A|neC$dXBOrARԓo(cy9]LnĻఉ@c$\vB\'7CB(ݚVEuVވ vj)v#X"0ß(s%3[*0ˑ_i;L(͛>9($w: v.QUB:,@0_rW~^Y(z|㴫 P2Pvbr\z6Nd˙qWHCřa`u0v/O t_3d44+[ 4'co7Xjr]O9] /sou,Kh$q>EfDA[! MT/6s}ҲߎO*XfEͨEC@)*vgk퀾2 <} qV+Y X1^?r> HWfٛ3 K}?]-I3E41F+-?GFU"w#Zo ef0lMzޚ E3'l{bwL qAb̪f$Dv([q-$"r$aUԒ*ǚ& ̙)D',O3nKdnD3`0D7l ~vhb~Γk1`lI,/;y݆AN47ڼә--1YaZSꪇCEȯ%qV?۫]0d=Nåӳ >͵&] sW/]Ʈae8\S ;Ng1oϕԘ3̒vdwY?d!-oa"jOw_@1]Y9OPֱo{X F>2#<)p2ZfiCWoe &W=)f-mJbI}G24gkZ"e5?Nle:Z9v2tү\fމBNh\]ק`/SxY*[A e[i𛜰+荋+\R?.o(y1PYLqisBU$xtr+I DMeV#*] =[{Zp.TaAl)"$r}g+xFߙ0 v)pc]#]WHL-=0BW*xKX-1> 8י-@UncߴNCq z,.t[!)OV֞7[l?xQaTK1Bv>UP4 =:zh)'܌a;7i900R=Jԑa=QsMg-.H4a!8NVS0`oɋ>%yr減l4aU0<"^.A$fgcBֆθJmx] =eѾ;,.z6ɿ -,NMsi~R ӈ

Z~ݔO PwT?Pg2r(NJLt ϗfNg&ʩz0inr+V@^ffa.9| 痱)ޅ}F~1L6Si6}O`8̬d&{J?gjNM4GyC$>`覻P6}!ؒltE?-8z/= ZLܝ1sKzcpQ!8Ǎy+mJB (l'&{| ZAϥ;J@ƾ(۔Z@@BD($AH " szRy(j=)'2IMaٵ62& m29ggo}S{fmJ G-U< 닞Y[\gȠFxxj\\)ǹg2peI&)QNToV Ew8{"V~ M=ƨj?\r[(,E!$u~2#&t1xN.en+IȦQ[BR t1E kkmۊQY&qk>wktԃf'+$w-4*F s=hI?(c@L#<`W:WD1<lN*=0CW ]%^K73^>015]8yjj%9Քq4c.ߒ q _{yB`o%ȈM: Է{\f>ʖ9ףJ dNvG -ע^'_$y8=kM`l^θ6tVI]kr6_є[h}Ԁ@ɜs;-vGq0]7ON3:!X@!FW"D1C;?4-b}}Zh ;[&=ׂ'(0bO&5/Jغ:"NkT(O~F=wJV=5qpn|4,1gRlT'%T^3̼=鿤L ..$DWL(v YO'Mq'`[ۉD CjLU|R:GB*pej`WRu4:|O*mfs+JjRg6%.N9,7i`%TVp%XJ[f1V]bu] vz9> ~@C;Lݹ.1ZI]s svfıДu{ S%uڤp$uCdIaWɏ9¤3[YEJGr+Kii`^zO$`zT~hunф d/;ܶ< !IF8jMfv}ޞ XKiD;#"xh 0#m26$M5N/k;e`DQ}2C`Y!FWy547(y[pQu, _v\ڤqjNө[<Y_o\]T/98!kE(Mg?E(>[2.~Zڇ>k 'f@7@2Wxm#j쇢H'(XmW\d@m=Pl~jkth =>Cc@D (7oX?B8%%vRBM>^m(gJYI@(O]2qnm\H^W9a,䂇'hGwAcUŽQsʖ*s4!Rȶ9I2K| ΄}<ݥHѯBEɂ6N*sɼ2,nVJʷMa_ ʫT&c!O*k$շK/خ±Z jI-%e%a|rrf (kh2CP}CxVp>Y.b}TjQ&nE)=g 5fg]?O"zE]Ъ%e)稝ΏXxcROڳ1kyf[6?`0*i'R0gETER.L2#4Bb0*dOlqll]a|͑4h5OTdu_#֞# ZoĬ]˽PUdzivu ;"z'p#P)Ho' ʃ ?o>CW.[ f,= N-rF 3oo¨]K ά2M0t,r)vAՈ-Z A֕\_:RqY$9!ƧQ(F{=L:z_Tc_@}bz ܔuB@̽A ;ެZ/@bT 5 OX,t,=;eFv5q< t1W1} YuiRБ,Ĺ9h^CxH~5ǻ{5c/fiUdY HJї|`PO)Hх82VfU]FLH(lGk!z\uɾdEQ= WϤ5ȵYtIcUp&b9 кÄNHbjWiY"8&8*]HTMYW$dfSizI/v= ǥ,B0Ye:9ϟx툂UE2J*ۜ#) ïLwyI>Ʌr)uPUI#r0dt=mk7:y<y># "N. [yֽj(RșmV…yYIƥQ܊ĩg MxH,lc?M(ɗBVڛp;#tG9]_.XUy͈^d+r-AlBsJ+ͽmR'^}ONu4bqRhG1C*jૐDnu^XX0>l濒qe[[E<6x.$BF/?!fxs`bق:\QoSK1d~(WxLfaNȗnnCTf]oBXa!L(aƾYi<~/;3__k,hFSS\ϕ޽ca==tB>j|QS— -`ż#k|_` 5@CGV;"| |Z;h+@ԺވNk7n@` ?bǣ)p<QuvTUh2sfjrflupikżJL~'MV d"@8>&%ب5t3ɀ'R#C`uDn 6WZuNTc:\dA/O˹CXq_z6nǕxKׇI )κ,GZeDC<_0P̀bEwP4^# 0[*Y'@[%z0QFBͺa~E8Ц)*wrվzcf/hq'6;׫GN!u!AXS PstƖZ[!vb9eG@aT%_LYNep?6C37l"ik,LiƏvղ{1L1 ĹܹGMt.(DOx4χ޾33f&& ½RyOK&Gx^'Uddǧ/=bοf9͘~|VY՚"WI4Ҭ-*fMYbKcC=;݌8lSA.a<݁~η5CoQUh4c}mX-$Y$z?ьIOk[3)w>t@<=bPWD d7]o]@+91+uX|LEG{ePspq[=. xC}(Mi6^`b(S~N\}I8 Hw<&W^ x />Ka B>Ф]"sohwvE\vTB mnZlR*!R?EEFJPBXEA-5-4? RQQYtD7\sUZ y;ܡS5y) !u?ydM7v>_yFw<`$Zjq'A[q'%s>۰X@cD;Y">pb0E#UMrOGN-l)+gшq3TS9 ŘiwZRķH'u$Nb Mjso< ה~x`gx ~ْF xq\rCUrM <4[7`롯 H^Fi՗i%7F˩~VF dT!/P9M/;ܕ ~@cPfR:L!Ʌr=uӗTI;I9-bENth\ַJ,:k!;r@ u1fs<YGQ^E>8C8wbH?ZCj.>"m_ fF>]oMVZ#>d2b{΅#zThcc8A@PD8u ]dzOl@n Tg\I[+F((,FfC3yޮa/_>ig*S(1wwH][6 ۛb"5,_ݘ Xo61M̶K\/`kةf_% M,@c7+UAVlmܷ+Un6r :)`~Vg j|#$ M+lT$$u"cׯFہ흌D8Gn෍"j1{ ],KިEږU:dV Lti7g߰A~">5DR^wmmtgf" 0Moe<{kkO8k~VU='$#ga˧,bu#w^R>^1ûs9v!B!e7Oe(atłTLZS&i ۢ xsDhC*)g{\oZk448w @^l_K-3T| ) =x)m,Nwf4 .@;[iC(:,( 1@TilurJI+y2q`J1+#_Z@D~c rQ-NWۏ)nI^#O(^cZFLԏX6M%%^IDcBT{:C>8Y3)HaW8m~^5b)Q!G"==)EҧลvgaLWqki BlJy8*O9e}\QNBxX ]H]=$tTDnEAC~.t@jй|.^YT~c_@ҏaaL9,/: ~#MϘ[ /4G RlMab!^ʸȕÕԮLpK,?MfÞ0( xg`ߨ a#:ϵ qއkm)qbBCD'8JD<^|uL?H ^BoTtf=sjB2cG0@;9ZkM& FylB@*l$VS{VxiRĒՎJ'&ݙ+]5Vjܼ;*Udx<s9H/!ɈZQa數S|'T X* !E0w%a(e^nmj]`zaZō+m)ʤ@?</#(f*R}e( '%@'1WD2:a/<5sj IshVss_ai/cp/O#j,1\#9D:wtj2ݬ8q{C/K o L,N) |g0d֭ HK~pcBH(B9xf}haP6 6]ON D=}7i‹ҋ߁T6KJq${ڮxԼ5,3Ip~)1Bc)Zf!j:v_*"e6&C[Ptl)4:Z3{ɑk1:* 􀁽g ~ 8(wSq0PDWJAOV -6ÇݍFUqkN1t8@⋈kև\gǽZV$hp$iq͵IcXAeHv,d'03v Dy8޲~ 3:drs~4!Bt i=0I%J :}],Q,L9];|[~;_eY7nk6!u9y*$c@|1|74:)|Q* :=?-&kAaBXp6} tԟlA <]~-=82ՙwیm׵r9NLBY;0u͉䥑5lgf4rk2}"B`IWDG&BȑC~sqm-vTp~l|qxLk_#Zm՞gN~F jp+Hn.llCE 1dTG観zfkX Q("|d`7pFD2\?חIш*'3Fq; яx/vDXjqx `JKx=S稩+oi&.撬Dzky#x̃ - PAk6Q?M8GH_YAңn#ud?Am} 5L? ԑT"|5EJ\L,YS.I݇b4oa?$Rz|/t>V]eM7$N<Ðϲ0kK+ϩD S( ~#ln]V:*n RsXbUЫCn`G]ָ!SlBI(uz,eފR%/,M%Y"=EnX܋>SFp.|l\3~>"[m;cxfg]eQ,,,B̖~.$'ɞp\/ϴo{HnFdٯ6WQҗtl*n蘚nkNݓb6xϢ.KђձQ@Nڪ6S+&GziKox4OK€$'KZ2]Zŀ6Â.{ \&NFH@kC > {vy^JS}Î@ń4L^!-fYRjMOE_{Wtܛ~0cЋڹ~b&J TvX %@D&vX?: _%i` eGuH<ʖ@68Bͷ*8iOnI^Z Ez%9P6YI/ICd+G1rV**yڬdܫ%4<-gkæA iSEyyʾm;$/Ǿet~AX(6~C|j+p$ċy: z"aЉ.~hh3@^X=C8IA҃*ױaHS.]҆;я'k&O6VDZ* ;݊H&1_WO8_6 )`">FYsE\'tgKxt&G()=z*0ۀV!be(^!fCeMtfx~Fc}iAF^c)r,t$ gVPoNdQ4x潩O/c|Z?M(sSjȓR܁?4Y g+hp ?<:f2r`Q$%$r\8p&F[ݹV]`G%ج3}6E@z,"M0.l跢q=bfV(`޽_!$yg ~d8sgA'so@h>;/[iGv֓BmRQф0J~ 6$_4g4 sq_ΙX+nJ2sU:dz{:P{{}5W'phrԐhŷ@5!>Na9vwlgCo`BZ}UH"o9X}{*kV/w8ZV!IUhD1WDDc~ >" [O?r!)0@O]3 3߼E]:002YftS2+&sv'Ч[l2r9=)WmL/\fNɘ8m XA$ 9?^խ&󜷃M<mub>\|:L>yC rF~Ye QrE oyz3snhjτ.,c;N Eiv>x?2LCVDu>r ^WV2Vvz1A3 *.U$w,o~z3qEV]Ec~/D :I"0WU\"C>7ƒ'nAYmg0?C[$l4ru8E[%OV-"s - d1;E]0p=ƑEۄEi*2SrT2#ceXv9ܧ83r%'x5!&_ƀ:j=Wf"{KY6:ۄϗN-{dkʼn F,cɬtA_CYA!R+I 8}! Ш(!ys/^ȷMD0F<:0 xƯq/ɥ9XŢ M&WDu'<_9=_Nnκf/ Ђf-WpD&4IT<&ZT3*ꓰT< ۔P&`BlT}`B\gvCBy*;&L=3ɷӁ5иy;l@C;-Z xtP B(wd t557jAWt9ViOz|C摣wBr>*6 SA=4"#˨ >Ii'Ҽ #Z񾮇C]Ϛ~3ZTiю n1́49\׉ōOJaɝk]̺7E.Z\:Ldx`@n;Z4 1CP ļ :]}4#NZ[ lyiP1wCA!9 0;8Ҙlx|hQ 9.Q}rL!&aSivV1&!A:as4ܕ':Qm X豇zHt5NBarRgך]5OD%"w gyV~?TxR̉Ȑ@q;oxPDާ!Ҙ@ Lw3!{WVn5LܒKZ5`7D} 4L+n2UlY<ރ~N g:gmMYL s តC)cͯ\aT'p'Mt-WXXBriV^r M/*?=gr$!b=Xpr&jݏ8!29U[:ѿ{4|zT\.DY{Cf[-? t: &Q#<* SI|m~6Le9vrd$W7ɵGyF?NkP OX_B 4;rGXh(īQSHjj9uh+D_hg$Lvo8?^@zvէL+˲Grh0ZKhuE^7 fۨ㼳]-tYk-Z?*Wn8'RoJ"?G 5B~+}wd*W1jL'm- :yvӣ%舁ພȩŰj-x j8E$iqb[*QV[-o[@-^˅rTsxJO{Ӯ tmka>l3jk]eZ- 4ACO `W^~q$>O)'dC8k- AP?;uY|mo Gb.O|IQz;DO~>/_buf]iyRjG{#-y]6m`X yۑaڂ3Aƙ Û%S-19 Em~{{w7"E Փ1$k;Ğh?0[rc+pT+[êtl!ӅEPٶ?ci5 ("{=HUMGUGD{W,* :ǭzI5hJCp80gK1@ î`҉q*+ft:y$dW&Δ TIܘrș{>S+2P7_h J Nb&W ӎ#MJ&gWjQB<2a=L.ӚJUKUUɭ,0DyL?Я#5ӉȐ)b&R53Ù>Q~eHOl’($T%w|-C-e7'ߣ;OJ3Sތ+XyT?t^?>_hv97HO[Jr7C^$DB?r=!Ԟa V :"KMJvxNr;  Ǻǜ N݋S^pqB6Du 3dz%wn*4bga"*AL0q)*Xx/Y F>ýHL:Q*!azRp7 $)LdcΫAC6ߡv|,C@'&ȡo܄7RmO-ĥK,S0n!nG ڊ+wj_m4z)C e'Tϔc=k |PX+g7JKP:ύA\D#r5+{u#;ˀo?ھj9}W;s̶k&S춧g}Q䴸~xOM#w/urV5aE+]{Ch~=cVA1}6VF) ҂MFI _; _6DMDg?כe]^1(Խߩ_ XsO%g g+MR!w1M]7rx#UKK(=4C泀J oB !?*[^ M3`Oz;ufVn@,tnW'Yަv1P&ӇJեPfj-RԕvUfHG=fq/ޥw^oNm 1w ؓjLx}kOGoZNUb_|Gac< ӥ_?EXt#׃U)FQm MTX2~;p< D )=I=_8-`A gʉ&.|p/~>~շ+6@,^+္u_.Yacՙ)j.KBo>472EН4;%1"ueM;\va_Die- ?taچ_قڹEC?9l@SSO76}48bKSFRV1?d;Y+I2='76o>9l h?-tz釦,ׂZ; p|d"Alyʇ@"R;RY^ Q!\G?Y^b8qK]78y*ܥ NDHNVq! L yھ?9 /:xSAV GKVr|XKz{X)x[$7[׌ 1CemP{ 7hQʦ3MS7bS$3!=3h|H $:MP7<3J(*|odr=ݗ)8)9 >ꧨw\IDo+3uCGiަCDdyP@ -R=v@ C]LGNQ ,;v$>w~;"|%ptUX89[mP +mD|-yn/p|Ij7 ~pZXLlw}`ONF&{A qɳЎ|ÜIy }嚥V]"no=/O񏭖M-}YG$h3po0'?_)3/\:ܛnJ Ҳ0 д>II~$#! Ji5ym聉c 9g9[R!5lU"zK_D}˩S]fW1r`]˚i.oP,v Lo;] d5>H[(>%?X"$a=89\CQˍ8*E[8gE=*:xs`~p6#T ]Nߨ!%=}d=آe4ٸq1>'b qaV<{(3u9l8ke@_z\Nnqupc(tskE Ymc v,dkԼ";y0X6W+VilcZf<-A10%j/֍pҧ+zR@F Bh#gw~_tE=]%Guc֖ n/1JAҦc_PeJqxܧܴ'te?sWrMщ:8NEL9=.+4kUó&qPPXD3QQZ-pj%µ]vצ,x n /cr)RŢ'`,;вDWuec}CIӀOAGf6GX|Q.5?/,j_X$ܸJwC߉<0nٷlXs0-rr{Uėn%=B坓21u[hRO"h+YmLRUGм>}&o6|M1CanoDʛKvÈ@ %:L;4w>=t<_zx̪dWĘw-~qJ:OqD7MT]DS5P._} Q<(Sz$>È! +qwwiG<tŒ"!W"TęsxbvA^9L&FN~j?!~K,sgF RkH;:k (Ԃ2zbV>z%ae,f5K65ԩ9ACР`PR?fTiR$ L'3$e:O`D#IdgkYF.+o83NwAQŎKCAk0)LGgܾ堄9;Wa4PV(}o ;tO b;)߾ednV?ؑǴpL`Gfq#̚xFz j}zW"l66$HH }F:Xf[[6G!=R™+,P`]o&*U\RBԋgīVf[8OG9П-WQZOaYC'bꚵ9I$GNz ;会dڽOA3Lȥ;V#u)@P~#vGXIJ!AѠ&M Sԣ3qnק%d H )1VWtPI#<@Hً`TK=ȴ)z_wֆJs >)Z}0 ,X:Чb @pZ&U#]9UE;r^*"_f"YǕEjZM0g`[$DⱣh3y7h UH ]-.UGC# 4>ףbJJ6vL'Oblw%9FZtlNے71I,x+2:ë(&-o$+)2?7LvwZ_zD &f 1u~!)lh(N ?<#׬ZW>0g8Z+'E<-NȞ`A#0EƓ~xgFYy5u3z86#Xf tQWzk (fqAq"/9Wι;.t05'_x#Г;Q4.[]jS#}.wJ%:_qYt<0MLzdjV&ޖ㫻m^,+Ks]]TGg0IjRzr.CGœf\\{i֒U|8 bbp}aÜb^[0d6zN,fZbMDH?)CG5&"؝Mt)lbsԑ͓dgB/TOT%AG yfpMϬП\9Ex4٪Գ>kw˓PcCZ̏BSXv%K]7i߁WW.~OL% J(֭ˎ.Y{g-VY,3bG:]WQ{)a͊90hk6K⋣tCZfͨ9ZZ`fXkQ9VB@< Thܐmrſm)Ŗß*C05؛>&Cwǣ&ҮbPHjXQG=QH9E´ȉDTNN?W1IیGxrZo:wKa$ <~avH)JfG zCRBۚ8 E%_$. ? ) X; Ž./*M0d[ =֗tI:TcC[2M:ӿa}$ 5}ِ6MPlv3-4 -6̺#ܶf8>!Se fyyV I-w*0Z)0[ؚ: >{f"d[T "ڦMUMxq~Aךe,1S@[DN8pPm9(!뒬tO,+F2ǎѕ+i'6 _v1J[pdfof7gK# V8\P`Ǘ]vh5Oēq|Epp鈫|-@ wDqY$IL xZ%,(E S @N3^֊\2n4VE 4>|@DZ-~e0|.]qX9i Ai WQc)>]9SL%DHmc,~diWR/AEA,|9~hHd$֢W'8W#J 2(/I(e9 ){ZS2pǝrHʤ)%D\p˗mZq@i{"H {:wCJg2}Wza7w%*~Ef]3̘9\Պ(SHYЯN6}B0ߥjO)xO$LL7U[xhYW0WpMHc{@BUwL*AMĀ[sV_Oc sg<0((QG3Z_[^քs n05x6X#:`|` ^^Z) i.*;M="!ȗ2U1ZޝAS~Jݡ;Fz*E|9SOCؼUe{„^PӲ u:dxK*I"X _B`h>(kx=R* Ha/[m>dͫP~j#߂]hpOspA*[D<_e\ 2OEQN[bGHݧz .&$9&G6#<\դ6.Se6Pnot}ƀSFeo^Ry g^Z>*!9=3mMNFFO9h7羋},q2/leQ0,?zR&[6@f@\&_>܉mEC]7p2:h_1/)EPffAtx]Ef1g |y0Z%o674ale.@VB݅dtE3mtGȐ\5O..'tI;7XK+DV\*uꅀQ$It(?:eR1n|OMYl=@jK * /пfKBm誗:zZF,FY{5p>$Imsj"iӷ4Y,E]8@9/rjG 2bP)W(U 5^œ!6!;+2R7b. @XQӝ!)/-]V>AR P)ileĠv " pg6#gsI#TjL03{jK%%\,̿&s  n*nd%t Q՜:`-U^b:exEib;g[vt%-{HDmf 2LK3dKEaDtU)' cqCa<" ȩ^Jfi]kXuծ?ǟ!%jP/]u_nIPQvTvny'v@z?9dҟ4A6; 0'p!z iY<Q(k_1*9Wi/ށT15g.Q=(Sa);࿹T 8 ȒD2׻_G Į,&?mȵNƚOƍ1l^ J 4~]AYZ´淮ʼgrl;jPVÓa,{&QJE"_~57Ƅ$<# 4{fFhKǝZy RWbaRZ:77Yy F1isUyXiNٕqB\ʣ'F+[lPw 0$8RLiɘd# LgX ;ɫ#\ګhW`shHLJɅ ,6V1fkd_2BL zmVC "k^}5F.{쭚~jk\4Q~+r],̼T+LP}bxcOo)g(cs ű'q~ Pg}8'p{ԝ=1]'vK9$B0" 1ę.tÈ)*VXU݈6@ -6*+O=?{s7H9||TD:rQg5f'6߿Y |#矈d4c^?;:G&'BDzW& uV`UYiAREPV 0ܘ%c>BTy2n]?ii0snl٤ ĐQD8@0qx[&ܙ,za\?B)ԋV,}xbJ$% 3 _=\R'"=H"Axho#G,x-y=uЌFaȒ v fEOlA JC?F|{#aZՀy~E7bkɄ8-'d> CݑӜ cꝶEOi_YDI l`x@0a}B`A>΢u*d(rZ ] 3YdM&i^DAΈV4ʗs̡H BEtQwĎ](Vh'krYB"ŊNh $X`9-)koeqZ54?\}HRoN uƱsl=J<<(H52ByKEwi К!EyCǰ˨C*f.>[` կpFwMghT$oVGyai-&igr-2\6d?g\WfpIuQ=b<=( YC 7|*N mf2ag=amI{BP":.S "d:|݂NQoR%mTJhG_ix-sW&2!HFyLL@V +M[?&tKv Bq}e5e 0d&ƚ)UdXVԹL!t2YgUov[ȅϠۗ' 7VZ\HwO`Y7"JWה$r]` ǧ_UbZvڵD PclQϙ?jS@\:e6f`_^CX8} ;g`> 4 Aengs|^ ё\Hx5 Dz"Zgnn#  0L2hywsBRG Gu7E]z8suxwm!N3 9UY A ۋ2p}g2a@7C`Jcj [hraFzh Ҙ「=ScX7傼{Q')d/5i~H'M(uS>Dž:ǁk40ыGt_1[,#3p]zFGA)U|-ӟEn\ŷN09īp!(sW\8=DkvVl:{L{8 J ֱ+ -pOOhNk6AO^m4D@V%SBu%h'%BD**-ŋ~./Na9O[SN 8̂č2CaRB Ek_x9g36X)կGv05MRԡaX5+ll]"}չhRB1`;!.gCB=b%اtèxV2ۦa%n|AD,8Rn_R`^>W y3UޔyBo Jb^5oQ86޻YQkSʔlIF;3}j}œh=dU`x:=B`R#@9sR( {+ȾET@w,;st8ȸ=j탕]-1=uIbf08UhP]N NuVA-lj'y;q$89w`6#N°j&(!nR8Xm69 o&E"iU3]:{`@!*'J#A ][%AxpJ:V·8YY1A%M[k'C9n4; /P`D1hM1C)a]]HCB!N+O)߃ФIa=JW>bXJ$u+|q|]3i.47gSH,bkR5`=7H7tx:W 湱ƀ;.AL`Օ٪RQ9(Yο."N!|bYX P_*QԾ4!N]",Z?UV,S!܀f:y6JRuBgI_7@! hUȜ/+o+2v 0xa.3vnֲ^U7D}|:529gtNGtC7݅U:њ*VIAf'M?Zz4Bp~&ZLg& d)fˢBX7R\ !_dmx9,MR_hԋR JoMR&Sɮd(qǽwW X=7|e+ɫ$e!Rѹb|c-Mdۙu&R۝L}9/l\/'N%B tנ][>6-8y*:kkIϢ:u\ `s ōRY3[jpdnU{ӴHCfdccci]p h[|ЭX>yl'X^^tCcD`R tTvp,~彧2$M~3X2SEoXVzdAȣ$>JcCx, DJA)oj?^'z t04=AD/hs6IBrzktG±Ϡ_b25I@W+_=T9B"٬7i~ nȱRX;RoNNі8 ?f(f*uӁzx6iK$RCOUa !uuTI`=ai9t,˰4(+@?9ҿ4x.Z+2 "$T,Iz']QcayVgӤƤt3> $H65L钣GJO-1m`&ATSe[!|u?"ǀEK g͠K P 5~tiD!yTP!d8+\~sݤ~; |QnAfc6f4Yh 6~evYCQ­x=goٓJ :-IO򀅋XAfe9 [60 tfe8 e"o+m1gˊE0?lea_qToNqs$R pNW9'{&+P!@@xTWɫp'ϣ?N@p"6P{͟'h?2wvƚ4B?(¼n}-QGS^;BDGhQTΰf>ȥV3X?BY]Bz%YAcuU?)Y"k:|ČTw]'{Ib.0mA8"ʔ>P9tq6!RB`t&B| ۱AӉ{?8%JBۏΧY=ԓlm$,yl+"QyʛD*ЕJ'~WКdq[[9n@EǼLQK3=w 5NϊJ_(ח+\UR$AMKk5̑fѣ}eG6DFÁSNqf$Po{h۬؊jpbL"nG9BNNPd}6CZ q7tdۢR@m<&paSZJHG',"v굙Ոz~ieF%Ԣ1n~p%زyPczݶ@v\32, uӱe +KqQs;w+# ,1(Xuq~{NCRcZ9C!J>M@o&ʦqcS ?-s7gQQ$&TAN vŦ>B{:]:ҝ,KQ/;̖ʎ^֠Q![ 0 8 䊼)HWym$5 oIpakm폕!Skq#`dO+g0O)2M=5>eΣp30}DEό@T&X26sob{PP^ Ϝ)5TxP6^PO@',N.nfgj/Q&+Xb TIk0@7e+{k_yCV~(`ͺh",LdDƣPhA*0@$`E*vm~8ɦNDwgM% Od^Jl,V8Pkjp=5|R8[\BM4:iM6͸/yxVݹ0̙K{#x8}`֜c {&2{OK4uM`ߢD@NBֺ9ű5i˩{˸ Tzƙa66:3h딣_'0&<?k6v#Mm5>S߃V&8\c:y5F=p ?Gw66й]>(@<68޷/"J*uԼ((C nfL"3ҡ/T[8F4MDj۫YPkk͑a5ED-f(^)<+hgܹ/!㟛u8#j|KV̚ut$ߛY4O4;)p/Jq;exr>鐾KmZ,d,YD9#x]oFnpz[cRF9CDW';?kR=K9!6t ptG360w| tiGatVL s=.pPh_9afof"]6VAyb*;{E3禉Z!|f|>Z=q!P-̩.U+7[Z$pOl'<iI?+S9ONE9W+F/VH={[9N4$)uITM8='c "*/2 [b]EC;ڂ>[5\&I|e{o Я :̺ygV n]t 6Ep#xe5㦛YQIO,En/tVy$VpcpQwVC&,Tqt:~@uz_UNY&R`jGݶv 4KR)S*NsݻF#Y Rёf^&O>Rhmߒ;$>^4_%}"kʲ9wD5C@'7X)\c/ ZJƂ8?w]sz=GE%͠Rtu6`8ܣ*6#Iק$ts=<3e@[Fhe^[ۨS4{S]lqMS3D^A~: E i?E 52b?ZZ{ J-.nR`v:n5 LY}WR<9-*m+Ray=H]2=FFKbGQa< 6@Itg.L%$%^%c5QQ ?46ɩdo.hLИt"=> %յqq|,ElE¼HvO6=|G=IЧy{__|!K9DWխ" :iDڀ6>M׶A5eܬ}#\EjMNwZw hV)z/TIlI_橋lfoE𢅼G;JrYF?oSOs7l9nAZUyX(YJ"DBFOK[e)B8zw_=[yKd>kY̳\`c@^b1Gm.f-%_NOF跘1(T]xb?#JiS3Vh#Uf3=ͧp STZs $R0 ?-nm1TmD2Ca0ǐYu{G@L,*QpÇp]uTs7>*u AO& #1}b-OXzRVu^U[wi,($|]E41CB!ɝt,Cȉ3+b%eQBJ88TМs=K`i(z4@, tSō =A//\r;Qi%QjPbd#0,s ,g'E^ip_i;A\K*t,rRQw~~2iV`2fKΆ/_D:/-)ΑUdA!:bu XCEV.ar5ڇ:skϮm.ިւ|Ut铌!*~۫npi]am_\yx-rS*&U'5Eă3<<"yQQ rI^IynI`MZ 8Ldz;= >7I_bZ`X9o JgDscSfz&II`4EmcNi%Ms^=c^LlJ)aU*m=9S&Pz )\3lcUVy.Ε_ *_:ˈ 4]͛[wRt,?119 6NpO<"#k9 nqqdų6q"FF~5&#nfcA̔Ú^;&a5\N3g's1ʀN(ll( A.ntNI{#!ML@qSX=gfL[YP_W#c̪âޯ$!dgYs ,< h~Zs^ QFxe|2d6dЇb"6 ~}Xi? M̢I4ZNr*ㆉ@ !]Ckz@YRIK#NR9Q[=4V%TV ͻ3WT%CUiK7HB4"h#k64#שWa@gG+ yH؝7G'R L#$ ˻ȽER9*N뚶(H2]BX>i9T62:`aï#k_A b~K`ٱZh 9ӛT_}\'mڛfp։G#MtɗFNhrP\VdI݂iҗf1F>ZW,YoLkv4.5F-dH-6I 9;~SCKK&YQ^<$Sl2#d*̋icɉf[ O}4X0=|ְ_ގ+R#>GK;) Ψ}& 'Y܌~;R[#V[۰/HI`?hߋ~2QƮO0Z)BxHT/-O9ʼnJt mI= "]lW~%bM(F,^yՄ'DS;r ' F/662GlQsY^ 6P}v AH\;Ka-73;hxl}NTwON.G\<!qbƔ[lg)9 iY('ZUxe~XU*bBE|LL؆ ŏ.WԈ'ʻ;A*L{Xu7_[Hwb/IlH θ!lf{pP|ӆn ְK$Ar%m u6eD͂=Dɿs%vU *W [3["wGlc EIϗf((]fxQQ5A?*[)p7ůD ;z$,q X7_sx/] x8gtE ?*7Th "J-!m5ocX}+UiF3(9"5hw jj+νOe^`寘~>13Xv6]p<~yL~Jk ݅B BSk+ܮWF][8`d[c;#5MU]*IwreiVmn~p-XyLLNTiփEqY- 7>[ak,VBh3ݖQ(g0= +Fz>x؟̤"NA8\An&.5W?ΊmŠ1v'(qg] owRMayT&<%(3wt'. }H̉(0Wf*mӪ"Ŷ~_iWvؤPߢU2^C[.=ocLH(*gmAaǮ`;7:kMO( ; &:wzҷJ駛5" s.i63XB(& U@>zGr! 2fBجxy/M|Q7]ZAu˯W2+kCyw7`k,P?a\4͋93FkQl~$Juݲaw8\5 q H[0'%H v$*bBcvn:SbyP0:<!3DW"nޮǰ YƒI ހUe8,)Ҙ9컸v4wؿw1D%t-‡] GbB$Hus_fƺ,eybT$?NA#1f#ٿ&!E+ݴ pt396M+Oǯztη7{!<厼_rU!DޢJ9WxdvBcl334 v_㉦N\vqJC?yK puu)&Ԓs#%̛o"@6 0&(N#uρBGymY?c{Hܗi "?\ay {'*3e9=TӸI%5iIW ">Bc㠺h ʴ+2BvWr4Sax\Vw*Ny>:'Bgyz$w:4~5cST Ƌ6=c E͊oTfØ#ZfP|ҍvF < P1YqItƄ뭭gt@$Yp FpUiiKQrvg~w]rT'^=LbS$αqPT.LS7&dhďf+~BtTd<[k3I Oy|rJ˓ʋ 11âW6̋= ot"?z6!QoNKϫ@ ^6Ck(:î U*oI9>yFɍЧL!Mu49FxIblJqhƄ o!>G+!QH}>P1I:?5b 1GJWxa,}DL@.xqՀJYF KvƐTr0cX7z/WGil$7#I,g 6]fu,?QGT< !ϜRJ:ۀ!Co#P/SIōvuLmD/WruA7 :73tB ]y?+ "ieD1\T&~CRx7چy 5`/Hx~'չ IlprJY?hauF<;Ί3)Obk ڒ`ol=o%h )DrUQ3 {W1 ;&~5\n?隺. K~DK)/͕Y#-(in `TuJ1:Ɯċ(g:V#Dw9 Xyme :/ƈ&'6_%Omt#7rx]o_wkS,XcFV 4(b}$š~ӳ7<[a_DP,G_ ;Rw'v;X&DS>%XQ[0mAhe;ɢ,P$Sѯ ),JU0>>f2z9ևCyEOlT~ADdICM=UN0-󡾒ד@9ˑJQsCRv8үM|# Pڇ J*dmȯiddnB8$?8sd~k0mR6פ-w\! Gݣm2ZJzԀf(4nX\&G\NSw[h2of cv}aa6FC3 mvĆs݌ ,=o$7SbFP+g8DtƗB`⥬ YĊ. 1E(%a7GR ߆i%+d t_w~"T%546SD/-pF?skst\ |̊B&0KOgIgK֯3/S5pD+L'^=zbG VtӾXk=`]}H3HTCԞOf+W? *vtzʈEqx3Zi.f޽߳ /{@qtFe:G4.1IqVQ(%jաOef [/F=S.A&K:96G٧ l& W vλ#Ɍ(n#z]:vO?:T*h͙\ 7+ב Gv"EqΓu+AqXM}+`C]+`>yOY B< wUЃswpjӦlIǕapِc*^z_Ь z)5KP=,Xt8զ&l)rgp jצ/-?xg^ꇃ(0Т1%J j u!_#`gxgEvL3F{ӛ,&dA+G 9+>-LC/C:h r9M.?'Dw,6W5֦fש j(B@.T, ˒G`a6tEļv3F̔|;e Ш?c(0I|kG SKi[nV w{5i1AH*%''=lםtZ<ؾҬ '.rT}fa1׻/ xy8s 5ev-b@iqdR2^ .q"Svplsl֎xL|=N䏞xi/r]"Uғr¶lB&1 q"?m$'z= m-̈#i-6/})E`#[ILghz^j] mY?ZQkf` dxdJJ"kY9lH|'`J@ok0`GHh|aO,J.}X᯽M 1lT@?KuS6Ž%S6K s wVJDž؉V*ohJH!M!U|äwV||~'eG[`(>k$=|_AI牤b?r|tn sxVgRu}m 8\DSt T`F dd73tИ*S25Up;VLe<WI6'Ռ3rdqæ{G7,K, &u f*B۸{zYDGJR]jצZƂ9.1"I+y8=1. oZR^aEZ#R'PK=Xt]@=ůDR [ᛂ!3s|ZeZr!d} jȭc H ׶Pz\yK+S8}E ]C&>k{=KHz/IKODZJbR2!3ZL èo3LD3Wێ|G⇁$) v[7YL,qz9O*BEU~[Q}z%4@GVt@ۘ(;L?DO:5e W&w=&,ڲ(`5gm\!v̐қF=I'ۓ[-tuh`_8dm b)bs AڡS!Tg3N$c({fhv#3=ގ ʌUv]炅 Irg"S|Q(g5MףKouD#+u `ş6% (̪C7G)R'('6.K?8h]42CcY- <i5C欳Jf#'$# DR2 hT.ags !k!YmH/5٫vۗhK;CBnLΟX%> _V:P:_rnإΡ>w%ѿWL)~6M(V[ )u|;ϟMxhSj%wFjL/WEc]o{Y}$,.hܩvBfD6*О%Z<^fUbfPG8䂘==([L|`XVi}H/e\Мs4@DeA{Mk.۾λڒ>N@ $-l.90mKbD?%GC햪9 !n3,^ڷBTKuG#F'ZX6#!aJcR\OuMVͯHuOK7$-ɷ2щFMap3`#_@[P|ܽRąQS"Ϝ>^[#YFtlDA@x )ymea5ЬŦ6sg!.ᤶ֜ϑdHEcP;FeȀ58Abu>˛|"S e _ %!t{w" ϳŘk=g1ڽ"މϣy㱣d 2dvžpߡUSbo=P51LH]4şU KA 8Eg^RVb ËYR$Tf(qtî[Z4&q_Mr; =tGVevI$p!r[nqTm5y =wI~^[؝up~zN (&Jmh|6jMd.͘C'T8xt(+يe?(٣]#jbmwlPb4:ֹDZDZV{0fItAr(ԐWzjެ9gWO`W!pzdo噃džZ.ټ[0){U5γkH`ӰdYqРrԊIXc6A 6h3.Sf-nӂ/b%s]m:%d~矏7W6eY &\=[9!;&bb, n$chE^9`k~FDn?1L1ǫuI܆.ziOV(PlU^ Db0⽗Qt\'|jw̐C[P6~R&h2Whp7 TGg"vyW1,}WbbCE߸ʟ$4atF([riXC#Vn侫<8F%?!n1h.6*uvPYν Tfi k75a0,;<\}VxJ`XLΈ9Q>|T:W͌jJ.8hx$}/i XVFS nD>n`SMrP)ʠHk<\GwZlKHU_THUz>+E.R 2@Ģ-t CR$!r$aΥ@ԶdTE'PTN#7ߖ8!5[kR\#"z_37?bEB#Pe1bq͞sbTУI-ɷN` YK~V#/t/Т8:I@WŰ+ , PȈl{HBG24?@ou&vhU,86r󘹍EEge$҆ge9Zr '9n2$MBO%dC-#ۆ7rܽL+yݬcȨ wn=󃦁ܼȩ{2NZʠ9}$]xqE[cfpLJ+B2~K{'pMg@$K ^[/6G T) H\ܶg$SL`f%TMV2wV4T-i=JW) DMT 0rEۙy9("%Q6͗.a<'S?`>Cap:VP@B:yK.(qXyn :oG3+z]˭漍1*\Mp ߴո|uQtW~.= x[&˄pUv:NN)}bЙ,W:m;*mwł+])P[|ꖯ$KԺTƏ*) y{T'q j &|jOQ_H9o2zfDUyKøw Kb×}H(G"XU)Cx{msf ﱉarӋ" y~$?ߏ$;T-5ⓜ? X7{!Yq(A :wAkb@p-3x`I_ SwⲚKcgW҇`ZF+y&ZK\K (-xp̗6E81VҏV &Jp~݁NTMW:'ϮAͫQ[2߇is⧺cv3R\[Z"ĖM}X^/0δbu%ŨpmV ˷BnXXZP<) ΅|dS}Б1!oU 3*dS|-^t.-OV(_Z/8%3vmI;D"7\W{J棃f2d=&eyKYzU0ԟ1!ҮFxM+a)!Ɛ^@;{)JL32uym S3PS4 p_p`|"\.C8*$81xN!ƜԹ_f2E;r+.c>;V0M9%]2+>_PY_M~[0F݄{|%h8C,8oB$򆗭]jH3zWYWN ;5}0҇w*6#'ѕy;B1Kizf3$B='?g>OFW!jW3YgUEy(2O'$5>Ǐ{=.p'zb-ýeN_Dr0Vs?T*T I.RG]jLwْUZr=_MfMY`ܮ{,U'gdIIwnWtť8P5=pdNT\0G`{=!W>ؔ};U(o/n5D^R_vwy$'w9wdQ <-dV<|QX a|qPm,t#Dpٰ3z܍ 7tA 9?R1O54XE$Zj*FQS4}D䴌:N 8")k¿]E\H\WOܸU.z[[ _'dOq3  \A9Ku%$)в0a+h1^YRn22IN)wInFQFeml巌q[k `K-ى[zD;i"5C%|< GDyԗturjnͱ8 =jM& Z Nz×/aGԃ;=7{ ܰ\|ZCΌS9LcDpk9mBKcd煁pj'HjXNAV6ʎ'&u vʉJ~9 __I|;5YRZF9s[)}Es$b:L q1܌cvcU$=qY0]fٛQ[:WL.+?9Av_t Hb"ڝ,#,r^ kV%7XvQ;h3I9_?WuBJ*uyǦ-KPt>|N>y)BN(<0=O8&ъA$Irَ]JW#m;j)U.*Ip^ \< kxݨ:b/ _9}z׎3*o f곽0cŝnQzVO-OUG!|(& kC$'GoVLaoypjg99"Ġp3[\)'k! ɢ\g;ϞAɁ/%vXl>8údKxmnh[\5~5mP UyשʮdBt(П!Հ QS .Cf; )i& %O/tt7T1d<ۀQxr+h#!x="8z~7k !#e`hja2߶ʮnT!)0jVuˑZNg_6o/YOƑ.uxɻ ʟ W1LWQv\?:la[J L8.4- P +y:é3+:@*3#IWfiR' F5>o.QvR~9mosrsr[&M033&S:j7OCK35)ҫdD]S3 pg~ݑԻ%<%"s=qmWj :TpW3Cy ^:_F%_v&YC++BbrBUbf*E(o* 0?c ntvy袚uW3Q5,5sBX\[XSZF<Ӟ\R 6ea[,l(%A)S@fr\t^ ȼN״OQ#2=Ʈ556-fPI|+p!Mo㤔ڊg謧b*z^C_׵c4k$+#9?kxѺ%L8׺bK۹bIB23G39#푚L"c&Vy W5{ ɓ͐SW2@__ㅻ}*|. qNlR(i_Cu&w>޼ Q/&FU)ݍUl>6MKYѰ)ԀKp zOܰ"8}F@6Sj =nh$ _Giuf?tI0.0ja2J-&v/{OjXl"lt6f):tld6n3SXk [t2kb]k-g}'M\%:iྺzoQ/`0s',HA|1L!f}KeS#?Z"[Z>iwg{< YEM/W[Cȇ^<>οވPcV>nR>IXbz]2\^S-GhcoUOQjS4΢948(k=yV@m+݆[ѾE>!P®CNi(^0TsfP]Φ9g[F:Uׄ$2׸U"lJG8}jD,FX׬tV zQ\ 3"P׆<@X_N')| .ٜ(Z5HJ'n/+20LHIt6*vPL|{n"\ȃ]OeR?tIcE[Z5ktG'ݶ_M"oex sA],E̒(8:=wꜶ΂ʀͳ|FlD(ICLoЛIgMUv=-oGY \e]y"a[ XrIFf=U{HYnk~Edjs57ķŢ~x2,蔪Xԧ4zDNz\^IBc$`3ǽ :H.">!W"M*_hzd9V Ha.>Fa3Gf^# шR^ZYh+S'&W7. TU힮dpBvrfXI>t"+C5KH\K+vH̦zn &"5Q F L9Êly(_ z1 ,h1ќ}C[pM1 !3f5+\g%,ؤ1Hk%Y@dx C'E imoE^.=#D7kp80Z g2)'?Ri e~+ ?+?Y?ex{#{FaI⨥g $ >~?$- m|?S/RQVrdwD9kQh0gUq"dc4uʦkƹ.B75񢖲+PIa;QJyVlqעO@\/ıt8t[=OkYETPZ̺AsS}UZ&iˤȌWJApQA&HlA/Uq$xq \s] BlKQٵ=C܏P^~`Ȁ֬`a`F|a\Dj6."0'.ʍ_yS?!82U6+$**W)4Mc\u`xb dʪ[ܘfY MBLê/.z13nFU6cFALbԣR̋x6 օ3y~c6q[0M6eshOhxF&KKx7U5m e|tlkl?sKrhC,8|~}F?HGCw|ab7sI"!HdWg ؓ eVdG-ȈƢ& fݺCVJ(a laW{8ijeC#=ѕN<9×*1La_.9െgGU %%7޷WIP8unA %բ_f>`ؕw*>kGEq_ _hqtN,?qa3m`XtQ6ʶGßNSm (%Gx0ѥǑ^ڸ+Hf8醃Rla0.~Q TfrltU@%u]WJ$V B?ϸ %PK(يoR*_&漪}G|R,:: YZ